You are on page 1of 3502

### Harmony id=it.stapps.cities.parallelroadtool, version=2.0.4.

0, location=E:\
SteamLibrary\steamapps\common\data-0000000022595390, env/clr=2.0.50727.1433,
platform=Win32NT, ptrsize:runtime/env=8/Bits64, Windows
### Started from virtual System.Void
AlgernonCommons.Patching.PatcherBase::PatchAll(), location E:\SteamLibrary\
steamapps\common\data-000000002286E110
### At 2023-02-07 02.24.32
### Patch: virtual System.Int32
PlayerNetAI::GetConstructionCost(UnityEngine.Vector3 startPos, UnityEngine.Vector3
endPos, System.Single startHeight, System.Single endHeight)
### Replacement: static System.Int32
PlayerNetAI::PlayerNetAI.GetConstructionCost_Patch1(PlayerNetAI this,
UnityEngine.Vector3 startPos, UnityEngine.Vector3 endPos, System.Single
startHeight, System.Single endHeight)
IL_0000: Local var 0: System.Single
IL_0000: Local var 1: System.Int32
IL_0000: Local var 2: System.Int32
IL_0000: ldc.i4 0
IL_0005: stloc 2 (System.Int32)
IL_0009: // start original
IL_0009: ldarg.2
IL_000A: ldarg.1
IL_000B: call static UnityEngine.Vector3
UnityEngine.Vector3::op_Subtraction(UnityEngine.Vector3 a, UnityEngine.Vector3 b)
IL_0010: call static System.Single
ColossalFramework.Math.VectorUtils::LengthXZ(UnityEngine.Vector3 v)
IL_0015: stloc.0
IL_0016: ldarg.0
IL_0017: ldfld System.Int32 PlayerNetAI::m_constructionCost
IL_001C: ldloc.0
IL_001D: ldc.r4 8
IL_0022: div
IL_0023: ldc.r4 0.1
IL_0028: add
IL_0029: call static System.Int32 UnityEngine.Mathf::RoundToInt(System.Single
f)
IL_002E: mul
IL_002F: stloc.1
IL_0030: call static EconomyManager
ColossalFramework.Singleton`1<EconomyManager>::get_instance()
IL_0035: ldfld EconomyWrapper EconomyManager::m_EconomyWrapper
IL_003A: ldloca.s 1 (System.Int32)
IL_003C: ldarg.0
IL_003D: ldfld NetInfo NetAI::m_info
IL_0042: ldfld ItemClass NetInfo::m_class
IL_0047: ldfld Service ItemClass::m_service
IL_004C: ldarg.0
IL_004D: ldfld NetInfo NetAI::m_info
IL_0052: ldfld ItemClass NetInfo::m_class
IL_0057: ldfld SubService ItemClass::m_subService
IL_005C: ldarg.0
IL_005D: ldfld NetInfo NetAI::m_info
IL_0062: ldfld ItemClass NetInfo::m_class
IL_0067: ldfld Level ItemClass::m_level
IL_006C: callvirt System.Void EconomyWrapper::OnGetConstructionCost(System.Int32&
amount, Service service, SubService subService, Level level)
IL_0071: ldloc.1
IL_0072: // end original
IL_0072: stloc 2 (System.Int32)
IL_0076: ldarg 1
IL_007A: ldarg 2
IL_007E: ldarg 3
IL_0082: ldarg 4
IL_0086: ldloca 2 (System.Int32)
IL_008A: call static System.Void
ParallelRoadTool.Patches.NetAIPatch::Postfix(UnityEngine.Vector3 startPos,
UnityEngine.Vector3 endPos, System.Single startHeight, System.Single endHeight,
System.Int32& __result)
IL_008F: ldloc 2 (System.Int32)
IL_0093: ret
DONE

### Patch: System.Void NetTool::RenderOverlay(CameraInfo cameraInfo, NetInfo info,


UnityEngine.Color color, ControlPoint startPoint, ControlPoint middlePoint,
ControlPoint endPoint)
### Replacement: static System.Void NetTool::NetTool.RenderOverlay_Patch1(NetTool
this, CameraInfo cameraInfo, NetInfo info, UnityEngine.Color color, ControlPoint
startPoint, ControlPoint middlePoint, ControlPoint endPoint)
IL_0000: Local var 0: BuildingInfo
IL_0000: Local var 1: UnityEngine.Vector3
IL_0000: Local var 2: UnityEngine.Vector3
IL_0000: Local var 3: System.Int32
IL_0000: Local var 4: UnityEngine.Vector3
IL_0000: Local var 5: System.Boolean
IL_0000: Local var 6: ColossalFramework.Math.Bezier3
IL_0000: Local var 7: System.Boolean
IL_0000: Local var 8: System.Boolean
IL_0000: Local var 9: ColossalFramework.Math.Segment3
IL_0000: Local var 10: ColossalFramework.Math.Segment3
IL_0000: Local var 11: System.Boolean
IL_0000: Local var 12: System.Boolean
IL_0000: Local var 13: System.Single
IL_0000: Local var 14: UnityEngine.Vector3
IL_0000: Local var 15: UnityEngine.Vector3
IL_0000: Local var 16: UnityEngine.Color
IL_0000: Local var 17: System.Single
IL_0000: Local var 18: UnityEngine.Vector3
IL_0000: Local var 19: UnityEngine.Vector3
IL_0000: Local var 20: System.Int32
IL_0000: Local var 21: System.Int32
IL_0000: Local var 22: UnityEngine.Vector3
IL_0000: Local var 23: ColossalFramework.Math.Segment3
IL_0000: Local var 24: System.Single
IL_0000: Local var 25: System.Boolean
IL_0000: Local var 26: UnityEngine.Color
IL_0000: Local var 27: UnityEngine.Vector3
IL_0000: Local var 28: UnityEngine.Vector3
IL_0000: Local var 29: BuildingManager
IL_0000: Local var 30: System.Single
IL_0000: Local var 31: System.Int32
IL_0000: Local var 32: ColossalFramework.Math.Segment3
IL_0000: Local var 33: System.Int32
IL_0000: Local var 34: UnityEngine.Vector3
IL_0000: Local var 35: UnityEngine.Vector3
IL_0000: Local var 36: System.Int32
IL_0000: Local var 37: System.Int32
IL_0000: Local var 38: System.Int32
IL_0000: Local var 39: System.Int32
IL_0000: Local var 40: System.Int32
IL_0000: Local var 41: System.Int32
IL_0000: Local var 42: System.UInt16
IL_0000: Local var 43: System.Int32
IL_0000: Local var 44: System.Single
IL_0000: // start original
IL_0000: ldarga.s 5
IL_0002: ldfld UnityEngine.Vector3 ControlPoint::m_position
IL_0007: stloc.s 4 (UnityEngine.Vector3)
IL_0009: ldarga.s 5
IL_000B: ldfld System.UInt16 ControlPoint::m_segment
IL_0010: brfalse => Label0
IL_0015: call static NetManager
ColossalFramework.Singleton`1<NetManager>::get_instance()
IL_001A: ldfld Array16`1<NetSegment> NetManager::m_segments
IL_001F: ldfld NetSegment[] Array16`1<NetSegment>::m_buffer
IL_0024: ldarga.s 5
IL_0026: ldfld System.UInt16 ControlPoint::m_segment
IL_002B: ldelema NetSegment
IL_0030: ldfld Flags NetSegment::m_flags
IL_0035: ldc.i4.8
IL_0036: and
IL_0037: brfalse => Label1
IL_003C: call static NetManager
ColossalFramework.Singleton`1<NetManager>::get_instance()
IL_0041: ldfld Array16`1<NetSegment> NetManager::m_segments
IL_0046: ldfld NetSegment[] Array16`1<NetSegment>::m_buffer
IL_004B: ldarga.s 5
IL_004D: ldfld System.UInt16 ControlPoint::m_segment
IL_0052: ldelema NetSegment
IL_0057: call NetInfo NetSegment::get_Info()
IL_005C: starg.s 2
IL_005E: Label0
IL_005E: Label1
IL_005E: ldarg.2
IL_005F: ldfld NetAI NetInfo::m_netAI
IL_0064: ldc.i4.0
IL_0065: ldc.i4.0
IL_0066: ldc.i4.1
IL_0067: ldarg.0
IL_0068: ldfld Mode NetTool::m_mode
IL_006D: ldc.i4.3
IL_006E: ceq
IL_0070: ldc.i4.0
IL_0071: ceq
IL_0073: ldarga.s 4
IL_0075: ldarga.s 5
IL_0077: ldarga.s 6
IL_0079: ldloca.s 0 (BuildingInfo)
IL_007B: ldloca.s 1 (UnityEngine.Vector3)
IL_007D: ldloca.s 2 (UnityEngine.Vector3)
IL_007F: ldloca.s 3 (System.Int32)
IL_0081: callvirt virtual ToolErrors NetAI::CheckBuildPosition(System.Boolean
test, System.Boolean visualize, System.Boolean overlay, System.Boolean autofix,
ControlPoint& startPoint, ControlPoint& middlePoint, ControlPoint& endPoint,
BuildingInfo& ownerBuilding, UnityEngine.Vector3& ownerPosition,
UnityEngine.Vector3& ownerDirection, System.Int32& productionRate)
IL_0086: pop
IL_0087: ldloc.s 4 (UnityEngine.Vector3)
IL_0089: ldarga.s 5
IL_008B: ldfld UnityEngine.Vector3 ControlPoint::m_position
IL_0090: call static System.Boolean
UnityEngine.Vector3::op_Inequality(UnityEngine.Vector3 lhs, UnityEngine.Vector3
rhs)
IL_0095: stloc.s 5 (System.Boolean)
IL_0097: ldloca.s 6 (ColossalFramework.Math.Bezier3)
IL_0099: ldarga.s 4
IL_009B: ldfld UnityEngine.Vector3 ControlPoint::m_position
IL_00A0: stfld UnityEngine.Vector3 ColossalFramework.Math.Bezier3::a
IL_00A5: ldloca.s 6 (ColossalFramework.Math.Bezier3)
IL_00A7: ldarga.s 6
IL_00A9: ldfld UnityEngine.Vector3 ControlPoint::m_position
IL_00AE: stfld UnityEngine.Vector3 ColossalFramework.Math.Bezier3::d
IL_00B3: ldc.i4.1
IL_00B4: stloc.s 7 (System.Boolean)
IL_00B6: ldc.i4.1
IL_00B7: stloc.s 8 (System.Boolean)
IL_00B9: ldarg.0
IL_00BA: ldfld Mode NetTool::m_mode
IL_00BF: ldc.i4.3
IL_00C0: bne.un => Label2
IL_00C5: call static NetManager
ColossalFramework.Singleton`1<NetManager>::get_instance()
IL_00CA: ldfld Array16`1<NetNode> NetManager::m_nodes
IL_00CF: ldfld NetNode[] Array16`1<NetNode>::m_buffer
IL_00D4: ldarga.s 4
IL_00D6: ldfld System.UInt16 ControlPoint::m_node
IL_00DB: ldelema NetNode
IL_00E0: ldfld Flags NetNode::m_flags
IL_00E5: ldc.i4.s 32
IL_00E7: and
IL_00E8: ldc.i4.0
IL_00E9: ceq
IL_00EB: ldc.i4.0
IL_00EC: ceq
IL_00EE: stloc.s 7 (System.Boolean)
IL_00F0: call static NetManager
ColossalFramework.Singleton`1<NetManager>::get_instance()
IL_00F5: ldfld Array16`1<NetNode> NetManager::m_nodes
IL_00FA: ldfld NetNode[] Array16`1<NetNode>::m_buffer
IL_00FF: ldarga.s 6
IL_0101: ldfld System.UInt16 ControlPoint::m_node
IL_0106: ldelema NetNode
IL_010B: ldfld Flags NetNode::m_flags
IL_0110: ldc.i4.s 32
IL_0112: and
IL_0113: ldc.i4.0
IL_0114: ceq
IL_0116: ldc.i4.0
IL_0117: ceq
IL_0119: stloc.s 8 (System.Boolean)
IL_011B: Label2
IL_011B: ldloca.s 6 (ColossalFramework.Math.Bezier3)
IL_011D: ldfld UnityEngine.Vector3 ColossalFramework.Math.Bezier3::a
IL_0122: ldarga.s 5
IL_0124: ldfld UnityEngine.Vector3 ControlPoint::m_direction
IL_0129: ldloca.s 6 (ColossalFramework.Math.Bezier3)
IL_012B: ldfld UnityEngine.Vector3 ColossalFramework.Math.Bezier3::d
IL_0130: ldarga.s 6
IL_0132: ldfld UnityEngine.Vector3 ControlPoint::m_direction
IL_0137: call static UnityEngine.Vector3
UnityEngine.Vector3::op_UnaryNegation(UnityEngine.Vector3 a)
IL_013C: ldloc.s 7 (System.Boolean)
IL_013E: ldloc.s 8 (System.Boolean)
IL_0140: ldloca.s 6 (ColossalFramework.Math.Bezier3)
IL_0142: ldflda UnityEngine.Vector3 ColossalFramework.Math.Bezier3::b
IL_0147: ldloca.s 6 (ColossalFramework.Math.Bezier3)
IL_0149: ldflda UnityEngine.Vector3 ColossalFramework.Math.Bezier3::c
IL_014E: 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_0153: ldarg.0
IL_0154: ldfld Mode NetTool::m_mode
IL_0159: ldc.i4.1
IL_015A: beq => Label3
IL_015F: ldarg.0
IL_0160: ldfld Mode NetTool::m_mode
IL_0165: ldc.i4.2
IL_0166: bne.un => Label4
IL_016B: Label3
IL_016B: ldarg.0
IL_016C: ldfld System.Int32 NetTool::m_cachedControlPointCount
IL_0171: ldc.i4.2
IL_0172: blt => Label5
IL_0177: ldloca.s 9 (ColossalFramework.Math.Segment3)
IL_0179: ldarga.s 4
IL_017B: ldfld UnityEngine.Vector3 ControlPoint::m_position
IL_0180: stfld UnityEngine.Vector3 ColossalFramework.Math.Segment3::a
IL_0185: ldloca.s 9 (ColossalFramework.Math.Segment3)
IL_0187: ldarga.s 5
IL_0189: ldfld UnityEngine.Vector3 ControlPoint::m_position
IL_018E: stfld UnityEngine.Vector3 ColossalFramework.Math.Segment3::b
IL_0193: ldc.i4.1
IL_0194: stloc.s 11 (System.Boolean)
IL_0196: ldloca.s 10 (ColossalFramework.Math.Segment3)
IL_0198: ldarga.s 5
IL_019A: ldfld UnityEngine.Vector3 ControlPoint::m_position
IL_019F: stfld UnityEngine.Vector3 ColossalFramework.Math.Segment3::a
IL_01A4: ldloca.s 10 (ColossalFramework.Math.Segment3)
IL_01A6: ldarga.s 6
IL_01A8: ldfld UnityEngine.Vector3 ControlPoint::m_position
IL_01AD: stfld UnityEngine.Vector3 ColossalFramework.Math.Segment3::b
IL_01B2: ldc.i4.1
IL_01B3: stloc.s 12 (System.Boolean)
IL_01B5: br => Label6
IL_01BA: Label4
IL_01BA: Label5
IL_01BA: ldarg.0
IL_01BB: ldfld Mode NetTool::m_mode
IL_01C0: ldc.i4.1
IL_01C1: beq => Label7
IL_01C6: ldarg.0
IL_01C7: ldfld Mode NetTool::m_mode
IL_01CC: ldc.i4.2
IL_01CD: bne.un => Label8
IL_01D2: Label7
IL_01D2: ldarg.0
IL_01D3: ldfld System.Int32 NetTool::m_cachedControlPointCount
IL_01D8: ldc.i4.1
IL_01D9: blt => Label9
IL_01DE: ldloca.s 9 (ColossalFramework.Math.Segment3)
IL_01E0: ldarga.s 4
IL_01E2: ldfld UnityEngine.Vector3 ControlPoint::m_position
IL_01E7: stfld UnityEngine.Vector3 ColossalFramework.Math.Segment3::a
IL_01EC: ldloca.s 9 (ColossalFramework.Math.Segment3)
IL_01EE: ldarg.0
IL_01EF: ldfld ControlPoint[] NetTool::m_cachedControlPoints
IL_01F4: ldc.i4.1
IL_01F5: ldelema NetTool+ControlPoint
IL_01FA: ldfld UnityEngine.Vector3 ControlPoint::m_position
IL_01FF: stfld UnityEngine.Vector3 ColossalFramework.Math.Segment3::b
IL_0204: ldc.i4.1
IL_0205: stloc.s 11 (System.Boolean)
IL_0207: ldloca.s 10 (ColossalFramework.Math.Segment3)
IL_0209: ldc.r4 -100000
IL_020E: ldc.r4 0
IL_0213: ldc.r4 -100000
IL_0218: newobj System.Void UnityEngine.Vector3::.ctor(System.Single x,
System.Single y, System.Single z)
IL_021D: stfld UnityEngine.Vector3 ColossalFramework.Math.Segment3::a
IL_0222: ldloca.s 10 (ColossalFramework.Math.Segment3)
IL_0224: ldc.r4 -100000
IL_0229: ldc.r4 0
IL_022E: ldc.r4 -100000
IL_0233: newobj System.Void UnityEngine.Vector3::.ctor(System.Single x,
System.Single y, System.Single z)
IL_0238: stfld UnityEngine.Vector3 ColossalFramework.Math.Segment3::b
IL_023D: ldc.i4.0
IL_023E: stloc.s 12 (System.Boolean)
IL_0240: br => Label10
IL_0245: Label8
IL_0245: Label9
IL_0245: ldloca.s 9 (ColossalFramework.Math.Segment3)
IL_0247: ldc.r4 -100000
IL_024C: ldc.r4 0
IL_0251: ldc.r4 -100000
IL_0256: newobj System.Void UnityEngine.Vector3::.ctor(System.Single x,
System.Single y, System.Single z)
IL_025B: stfld UnityEngine.Vector3 ColossalFramework.Math.Segment3::a
IL_0260: ldloca.s 9 (ColossalFramework.Math.Segment3)
IL_0262: ldc.r4 -100000
IL_0267: ldc.r4 0
IL_026C: ldc.r4 -100000
IL_0271: newobj System.Void UnityEngine.Vector3::.ctor(System.Single x,
System.Single y, System.Single z)
IL_0276: stfld UnityEngine.Vector3 ColossalFramework.Math.Segment3::b
IL_027B: ldc.i4.0
IL_027C: stloc.s 11 (System.Boolean)
IL_027E: ldloca.s 10 (ColossalFramework.Math.Segment3)
IL_0280: ldc.r4 -100000
IL_0285: ldc.r4 0
IL_028A: ldc.r4 -100000
IL_028F: newobj System.Void UnityEngine.Vector3::.ctor(System.Single x,
System.Single y, System.Single z)
IL_0294: stfld UnityEngine.Vector3 ColossalFramework.Math.Segment3::a
IL_0299: ldloca.s 10 (ColossalFramework.Math.Segment3)
IL_029B: ldc.r4 -100000
IL_02A0: ldc.r4 0
IL_02A5: ldc.r4 -100000
IL_02AA: newobj System.Void UnityEngine.Vector3::.ctor(System.Single x,
System.Single y, System.Single z)
IL_02AF: stfld UnityEngine.Vector3 ColossalFramework.Math.Segment3::b
IL_02B4: ldc.i4.0
IL_02B5: stloc.s 12 (System.Boolean)
IL_02B7: Label6
IL_02B7: Label10
IL_02B7: ldloc.s 11 (System.Boolean)
IL_02B9: brfalse => Label11
IL_02BE: ldloc.s 12 (System.Boolean)
IL_02C0: brfalse => Label12
IL_02C5: call static ToolManager
ColossalFramework.Singleton`1<ToolManager>::get_instance()
IL_02CA: ldflda DrawCallData SimulationManagerBase`2<ToolManager,
ToolController>::m_drawCallData
IL_02CF: dup
IL_02D0: ldfld System.Int32 DrawCallData::m_overlayCalls
IL_02D5: ldc.i4.1
IL_02D6: add
IL_02D7: stfld System.Int32 DrawCallData::m_overlayCalls
IL_02DC: call static RenderManager
ColossalFramework.Singleton`1<RenderManager>::get_instance()
IL_02E1: callvirt OverlayEffect RenderManager::get_OverlayEffect()
IL_02E6: ldarg.1
IL_02E7: ldarg.3
IL_02E8: ldloc.s 9 (ColossalFramework.Math.Segment3)
IL_02EA: ldloc.s 10 (ColossalFramework.Math.Segment3)
IL_02EC: ldarg.2
IL_02ED: ldfld System.Single NetInfo::m_halfWidth
IL_02F2: ldc.r4 2
IL_02F7: mul
IL_02F8: ldc.r4 8
IL_02FD: ldc.r4 -1
IL_0302: ldc.r4 1280
IL_0307: ldc.i4.0
IL_0308: ldc.i4.0
IL_0309: callvirt System.Void OverlayEffect::DrawSegment(CameraInfo cameraInfo,
UnityEngine.Color color, ColossalFramework.Math.Segment3 segment1,
ColossalFramework.Math.Segment3 segment2, System.Single size, System.Single
dashLen, System.Single minY, System.Single maxY, System.Boolean renderLimits,
System.Boolean alphaBlend)
IL_030E: br => Label13
IL_0313: Label11
IL_0313: Label12
IL_0313: ldloc.s 11 (System.Boolean)
IL_0315: brfalse => Label14
IL_031A: call static ToolManager
ColossalFramework.Singleton`1<ToolManager>::get_instance()
IL_031F: ldflda DrawCallData SimulationManagerBase`2<ToolManager,
ToolController>::m_drawCallData
IL_0324: dup
IL_0325: ldfld System.Int32 DrawCallData::m_overlayCalls
IL_032A: ldc.i4.1
IL_032B: add
IL_032C: stfld System.Int32 DrawCallData::m_overlayCalls
IL_0331: call static RenderManager
ColossalFramework.Singleton`1<RenderManager>::get_instance()
IL_0336: callvirt OverlayEffect RenderManager::get_OverlayEffect()
IL_033B: ldarg.1
IL_033C: ldarg.3
IL_033D: ldloc.s 9 (ColossalFramework.Math.Segment3)
IL_033F: ldarg.2
IL_0340: ldfld System.Single NetInfo::m_halfWidth
IL_0345: ldc.r4 2
IL_034A: mul
IL_034B: ldc.r4 8
IL_0350: ldc.r4 -1
IL_0355: ldc.r4 1280
IL_035A: ldc.i4.0
IL_035B: ldc.i4.0
IL_035C: callvirt System.Void OverlayEffect::DrawSegment(CameraInfo cameraInfo,
UnityEngine.Color color, ColossalFramework.Math.Segment3 segment, System.Single
size, System.Single dashLen, System.Single minY, System.Single maxY, System.Boolean
renderLimits, System.Boolean alphaBlend)
IL_0361: br => Label15
IL_0366: Label14
IL_0366: ldloc.s 12 (System.Boolean)
IL_0368: brfalse => Label16
IL_036D: call static ToolManager
ColossalFramework.Singleton`1<ToolManager>::get_instance()
IL_0372: ldflda DrawCallData SimulationManagerBase`2<ToolManager,
ToolController>::m_drawCallData
IL_0377: dup
IL_0378: ldfld System.Int32 DrawCallData::m_overlayCalls
IL_037D: ldc.i4.1
IL_037E: add
IL_037F: stfld System.Int32 DrawCallData::m_overlayCalls
IL_0384: call static RenderManager
ColossalFramework.Singleton`1<RenderManager>::get_instance()
IL_0389: callvirt OverlayEffect RenderManager::get_OverlayEffect()
IL_038E: ldarg.1
IL_038F: ldarg.3
IL_0390: ldloc.s 10 (ColossalFramework.Math.Segment3)
IL_0392: ldarg.2
IL_0393: ldfld System.Single NetInfo::m_halfWidth
IL_0398: ldc.r4 2
IL_039D: mul
IL_039E: ldc.r4 8
IL_03A3: ldc.r4 -1
IL_03A8: ldc.r4 1280
IL_03AD: ldc.i4.0
IL_03AE: ldc.i4.0
IL_03AF: callvirt System.Void OverlayEffect::DrawSegment(CameraInfo cameraInfo,
UnityEngine.Color color, ColossalFramework.Math.Segment3 segment, System.Single
size, System.Single dashLen, System.Single minY, System.Single maxY, System.Boolean
renderLimits, System.Boolean alphaBlend)
IL_03B4: Label13
IL_03B4: Label15
IL_03B4: Label16
IL_03B4: call static ToolManager
ColossalFramework.Singleton`1<ToolManager>::get_instance()
IL_03B9: ldflda DrawCallData SimulationManagerBase`2<ToolManager,
ToolController>::m_drawCallData
IL_03BE: dup
IL_03BF: ldfld System.Int32 DrawCallData::m_overlayCalls
IL_03C4: ldc.i4.1
IL_03C5: add
IL_03C6: stfld System.Int32 DrawCallData::m_overlayCalls
IL_03CB: call static RenderManager
ColossalFramework.Singleton`1<RenderManager>::get_instance()
IL_03D0: callvirt OverlayEffect RenderManager::get_OverlayEffect()
IL_03D5: ldarg.1
IL_03D6: ldarg.3
IL_03D7: ldloc.s 6 (ColossalFramework.Math.Bezier3)
IL_03D9: ldarg.2
IL_03DA: ldfld System.Single NetInfo::m_halfWidth
IL_03DF: ldc.r4 2
IL_03E4: mul
IL_03E5: ldc.r4 -100000
IL_03EA: ldc.r4 -100000
IL_03EF: ldc.r4 -1
IL_03F4: ldc.r4 1280
IL_03F9: ldc.i4.0
IL_03FA: ldc.i4.0
IL_03FB: 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_0400: ldarg.0
IL_0401: ldfld ToolErrors NetTool::m_cachedErrors
IL_0406: ldc.i4.0
IL_0407: conv.i8
IL_0408: bne.un => Label17
IL_040D: ldloc.s 5 (System.Boolean)
IL_040F: brtrue => Label18
IL_0414: ldarg.0
IL_0415: ldfld Snapping NetTool::m_snap
IL_041A: ldc.i4.2
IL_041B: and
IL_041C: brfalse => Label19
IL_0421: ldarg.2
IL_0422: ldfld NetAI NetInfo::m_netAI
IL_0427: callvirt virtual System.Single NetAI::GetLengthSnap()
IL_042C: stloc.s 13 (System.Single)
IL_042E: ldarg.0
IL_042F: ldfld Mode NetTool::m_mode
IL_0434: brfalse => Label20
IL_0439: ldarg.0
IL_043A: ldfld Mode NetTool::m_mode
IL_043F: ldc.i4.1
IL_0440: bne.un => Label21
IL_0445: Label20
IL_0445: ldloc.s 13 (System.Single)
IL_0447: ldc.r4 0.5
IL_044C: ble.un => Label22
IL_0451: ldarg.0
IL_0452: ldfld System.Int32 NetTool::m_cachedControlPointCount
IL_0457: ldc.i4.1
IL_0458: blt => Label23
IL_045D: ldarg.0
IL_045E: ldfld ControlPoint[] NetTool::m_cachedControlPoints
IL_0463: ldarg.0
IL_0464: ldfld System.Int32 NetTool::m_cachedControlPointCount
IL_0469: ldelema NetTool+ControlPoint
IL_046E: ldfld UnityEngine.Vector3 ControlPoint::m_position
IL_0473: stloc.s 14 (UnityEngine.Vector3)
IL_0475: ldarg.0
IL_0476: ldfld ControlPoint[] NetTool::m_cachedControlPoints
IL_047B: ldarg.0
IL_047C: ldfld System.Int32 NetTool::m_cachedControlPointCount
IL_0481: ldc.i4.1
IL_0482: sub
IL_0483: ldelema NetTool+ControlPoint
IL_0488: ldfld UnityEngine.Vector3 ControlPoint::m_position
IL_048D: stloc.s 15 (UnityEngine.Vector3)
IL_048F: ldarg.3
IL_0490: stloc.s 16 (UnityEngine.Color)
IL_0492: ldloca.s 16 (UnityEngine.Color)
IL_0494: dup
IL_0495: ldfld System.Single UnityEngine.Color::a
IL_049A: ldc.r4 0.25
IL_049F: mul
IL_04A0: stfld System.Single UnityEngine.Color::a
IL_04A5: ldloc.s 13 (System.Single)
IL_04A7: ldc.r4 10
IL_04AC: mul
IL_04AD: stloc.s 13 (System.Single)
IL_04AF: ldloc.s 14 (UnityEngine.Vector3)
IL_04B1: ldloc.s 15 (UnityEngine.Vector3)
IL_04B3: call static UnityEngine.Vector3
UnityEngine.Vector3::op_Subtraction(UnityEngine.Vector3 a, UnityEngine.Vector3 b)
IL_04B8: ldloca.s 17 (System.Single)
IL_04BA: call static UnityEngine.Vector3
ColossalFramework.Math.VectorUtils::NormalizeXZ(UnityEngine.Vector3 v,
System.Single& len)
IL_04BF: stloc.s 18 (UnityEngine.Vector3)
IL_04C1: ldloca.s 19 (UnityEngine.Vector3)
IL_04C3: ldloca.s 18 (UnityEngine.Vector3)
IL_04C5: ldfld System.Single UnityEngine.Vector3::z
IL_04CA: ldarg.2
IL_04CB: ldfld System.Single NetInfo::m_halfWidth
IL_04D0: ldc.r4 48
IL_04D5: add
IL_04D6: mul
IL_04D7: ldc.r4 0
IL_04DC: ldloca.s 18 (UnityEngine.Vector3)
IL_04DE: ldfld System.Single UnityEngine.Vector3::x
IL_04E3: neg
IL_04E4: ldarg.2
IL_04E5: ldfld System.Single NetInfo::m_halfWidth
IL_04EA: ldc.r4 48
IL_04EF: add
IL_04F0: mul
IL_04F1: call System.Void UnityEngine.Vector3::.ctor(System.Single x,
System.Single y, System.Single z)
IL_04F6: ldloc.s 17 (System.Single)
IL_04F8: ldloc.s 13 (System.Single)
IL_04FA: div
IL_04FB: ldc.r4 0.01
IL_0500: add
IL_0501: call static System.Int32 UnityEngine.Mathf::RoundToInt(System.Single
f)
IL_0506: stloc.s 20 (System.Int32)
IL_0508: ldloc.s 20 (System.Int32)
IL_050A: ldc.i4.1
IL_050B: blt => Label24
IL_0510: ldc.i4.0
IL_0511: stloc.s 21 (System.Int32)
IL_0513: br => Label25
IL_0518: Label26
IL_0518: ldloc.s 15 (UnityEngine.Vector3)
IL_051A: ldloc.s 18 (UnityEngine.Vector3)
IL_051C: ldloc.s 13 (System.Single)
IL_051E: ldloc.s 21 (System.Int32)
IL_0520: conv.r4
IL_0521: mul
IL_0522: call static UnityEngine.Vector3
UnityEngine.Vector3::op_Multiply(UnityEngine.Vector3 a, System.Single d)
IL_0527: call static UnityEngine.Vector3
UnityEngine.Vector3::op_Addition(UnityEngine.Vector3 a, UnityEngine.Vector3 b)
IL_052C: stloc.s 22 (UnityEngine.Vector3)
IL_052E: ldloca.s 23 (ColossalFramework.Math.Segment3)
IL_0530: ldloc.s 22 (UnityEngine.Vector3)
IL_0532: ldloc.s 19 (UnityEngine.Vector3)
IL_0534: call static UnityEngine.Vector3
UnityEngine.Vector3::op_Addition(UnityEngine.Vector3 a, UnityEngine.Vector3 b)
IL_0539: ldloc.s 22 (UnityEngine.Vector3)
IL_053B: ldloc.s 19 (UnityEngine.Vector3)
IL_053D: call static UnityEngine.Vector3
UnityEngine.Vector3::op_Subtraction(UnityEngine.Vector3 a, UnityEngine.Vector3 b)
IL_0542: call System.Void
ColossalFramework.Math.Segment3::.ctor(UnityEngine.Vector3 _a, UnityEngine.Vector3
_b)
IL_0547: call static ToolManager
ColossalFramework.Singleton`1<ToolManager>::get_instance()
IL_054C: ldflda DrawCallData SimulationManagerBase`2<ToolManager,
ToolController>::m_drawCallData
IL_0551: dup
IL_0552: ldfld System.Int32 DrawCallData::m_overlayCalls
IL_0557: ldc.i4.1
IL_0558: add
IL_0559: stfld System.Int32 DrawCallData::m_overlayCalls
IL_055E: call static RenderManager
ColossalFramework.Singleton`1<RenderManager>::get_instance()
IL_0563: callvirt OverlayEffect RenderManager::get_OverlayEffect()
IL_0568: ldarg.1
IL_0569: ldloc.s 16 (UnityEngine.Color)
IL_056B: ldloc.s 23 (ColossalFramework.Math.Segment3)
IL_056D: ldc.r4 0
IL_0572: ldc.r4 0
IL_0577: ldc.r4 -1
IL_057C: ldc.r4 1280
IL_0581: ldc.i4.0
IL_0582: ldc.i4.1
IL_0583: callvirt System.Void OverlayEffect::DrawSegment(CameraInfo cameraInfo,
UnityEngine.Color color, ColossalFramework.Math.Segment3 segment, System.Single
size, System.Single dashLen, System.Single minY, System.Single maxY, System.Boolean
renderLimits, System.Boolean alphaBlend)
IL_0588: ldloc.s 21 (System.Int32)
IL_058A: ldc.i4.1
IL_058B: add
IL_058C: stloc.s 21 (System.Int32)
IL_058E: Label25
IL_058E: ldloc.s 21 (System.Int32)
IL_0590: ldloc.s 20 (System.Int32)
IL_0592: ble => Label26
IL_0597: Label17
IL_0597: Label18
IL_0597: Label19
IL_0597: Label21
IL_0597: Label22
IL_0597: Label23
IL_0597: Label24
IL_0597: ldarg.0
IL_0598: ldfld ToolErrors NetTool::m_cachedErrors
IL_059D: ldc.i4.0
IL_059E: conv.i8
IL_059F: bne.un => Label27
IL_05A4: ldarg.2
IL_05A5: ldfld NetAI NetInfo::m_netAI
IL_05AA: ldloca.s 24 (System.Single)
IL_05AC: ldloca.s 25 (System.Boolean)
IL_05AE: ldloca.s 26 (UnityEngine.Color)
IL_05B0: callvirt virtual System.Void NetAI::GetEffectRadius(System.Single&
radius, System.Boolean& capped, UnityEngine.Color& color)
IL_05B5: ldloc.s 24 (System.Single)
IL_05B7: ldarg.2
IL_05B8: ldfld System.Single NetInfo::m_halfWidth
IL_05BD: ble.un => Label28
IL_05C2: ldloca.s 6 (ColossalFramework.Math.Bezier3)
IL_05C4: ldfld UnityEngine.Vector3 ColossalFramework.Math.Bezier3::d
IL_05C9: ldloca.s 6 (ColossalFramework.Math.Bezier3)
IL_05CB: ldfld UnityEngine.Vector3 ColossalFramework.Math.Bezier3::a
IL_05D0: call static UnityEngine.Vector3
UnityEngine.Vector3::op_Subtraction(UnityEngine.Vector3 a, UnityEngine.Vector3 b)
IL_05D5: call static System.Single
UnityEngine.Vector3::SqrMagnitude(UnityEngine.Vector3 a)
IL_05DA: ldc.r4 1
IL_05DF: blt.un => Label29
IL_05E4: call static ToolManager
ColossalFramework.Singleton`1<ToolManager>::get_instance()
IL_05E9: ldflda DrawCallData SimulationManagerBase`2<ToolManager,
ToolController>::m_drawCallData
IL_05EE: dup
IL_05EF: ldfld System.Int32 DrawCallData::m_overlayCalls
IL_05F4: ldc.i4.1
IL_05F5: add
IL_05F6: stfld System.Int32 DrawCallData::m_overlayCalls
IL_05FB: call static RenderManager
ColossalFramework.Singleton`1<RenderManager>::get_instance()
IL_0600: callvirt OverlayEffect RenderManager::get_OverlayEffect()
IL_0605: ldarg.1
IL_0606: ldloc.s 26 (UnityEngine.Color)
IL_0608: ldloc.s 6 (ColossalFramework.Math.Bezier3)
IL_060A: ldloc.s 24 (System.Single)
IL_060C: ldc.r4 2
IL_0611: mul
IL_0612: ldloc.s 25 (System.Boolean)
IL_0614: brfalse => Label30
IL_0619: ldloc.s 24 (System.Single)
IL_061B: br => Label31
IL_0620: Label30
IL_0620: ldc.r4 -100000
IL_0625: Label31
IL_0625: ldloc.s 25 (System.Boolean)
IL_0627: brfalse => Label32
IL_062C: ldloc.s 24 (System.Single)
IL_062E: br => Label33
IL_0633: Label32
IL_0633: ldc.r4 -100000
IL_0638: Label33
IL_0638: ldc.r4 -1
IL_063D: ldc.r4 1280
IL_0642: ldc.i4.0
IL_0643: ldc.i4.1
IL_0644: 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_0649: br => Label34
IL_064E: Label29
IL_064E: call static ToolManager
ColossalFramework.Singleton`1<ToolManager>::get_instance()
IL_0653: ldflda DrawCallData SimulationManagerBase`2<ToolManager,
ToolController>::m_drawCallData
IL_0658: dup
IL_0659: ldfld System.Int32 DrawCallData::m_overlayCalls
IL_065E: ldc.i4.1
IL_065F: add
IL_0660: stfld System.Int32 DrawCallData::m_overlayCalls
IL_0665: call static RenderManager
ColossalFramework.Singleton`1<RenderManager>::get_instance()
IL_066A: callvirt OverlayEffect RenderManager::get_OverlayEffect()
IL_066F: ldarg.1
IL_0670: ldloc.s 26 (UnityEngine.Color)
IL_0672: ldloca.s 6 (ColossalFramework.Math.Bezier3)
IL_0674: ldfld UnityEngine.Vector3 ColossalFramework.Math.Bezier3::a
IL_0679: ldloc.s 24 (System.Single)
IL_067B: ldc.r4 2
IL_0680: mul
IL_0681: ldc.r4 -1
IL_0686: ldc.r4 1280
IL_068B: ldc.i4.0
IL_068C: ldc.i4.1
IL_068D: callvirt System.Void OverlayEffect::DrawCircle(CameraInfo cameraInfo,
UnityEngine.Color color, UnityEngine.Vector3 center, System.Single size,
System.Single minY, System.Single maxY, System.Boolean renderLimits, System.Boolean
alphaBlend)
IL_0692: Label27
IL_0692: Label28
IL_0692: Label34
IL_0692: ldarg.0
IL_0693: ldfld ToolErrors NetTool::m_cachedErrors
IL_0698: ldc.i4.0
IL_0699: conv.i8
IL_069A: bne.un => Label35
IL_069F: ldarg.0
IL_06A0: ldfld System.Int32 NetTool::m_cachedControlPointCount
IL_06A5: ldc.i4.1
IL_06A6: bne.un => Label36
IL_06AB: ldarg.0
IL_06AC: ldfld Mode NetTool::m_mode
IL_06B1: ldc.i4.3
IL_06B2: beq => Label37
IL_06B7: ldarg.0
IL_06B8: ldfld Snapping NetTool::m_snap
IL_06BD: ldc.i4.1
IL_06BE: and
IL_06BF: brfalse => Label38
IL_06C4: ldarg.0
IL_06C5: ldfld ControlPoint[] NetTool::m_cachedControlPoints
IL_06CA: ldc.i4.1
IL_06CB: ldelema NetTool+ControlPoint
IL_06D0: ldfld UnityEngine.Vector3 ControlPoint::m_direction
IL_06D5: stloc.s 27 (UnityEngine.Vector3)
IL_06D7: ldloc.s 5 (System.Boolean)
IL_06D9: brfalse => Label39
IL_06DE: ldarga.s 5
IL_06E0: ldfld UnityEngine.Vector3 ControlPoint::m_direction
IL_06E5: stloc.s 27 (UnityEngine.Vector3)
IL_06E7: Label39
IL_06E7: ldarg.0
IL_06E8: ldarg.0
IL_06E9: ldfld ControlPoint[] NetTool::m_cachedControlPoints
IL_06EE: ldc.i4.0
IL_06EF: ldelema NetTool+ControlPoint
IL_06F4: ldobj NetTool+ControlPoint
IL_06F9: ldloc.s 27 (UnityEngine.Vector3)
IL_06FB: ldloca.s 28 (UnityEngine.Vector3)
IL_06FD: call System.Boolean NetTool::GetClosestDirection(ControlPoint
startPoint, UnityEngine.Vector3 startDirection, UnityEngine.Vector3& dir)
IL_0702: brfalse => Label40
IL_0707: ldarg.0
IL_0708: ldarg.1
IL_0709: ldarg.3
IL_070A: ldarg.0
IL_070B: ldfld ControlPoint[] NetTool::m_cachedControlPoints
IL_0710: ldc.i4.0
IL_0711: ldelema NetTool+ControlPoint
IL_0716: ldfld UnityEngine.Vector3 ControlPoint::m_position
IL_071B: ldloc.s 28 (UnityEngine.Vector3)
IL_071D: ldloc.s 27 (UnityEngine.Vector3)
IL_071F: call System.Void NetTool::RenderAngleArc(CameraInfo cameraInfo,
UnityEngine.Color color, UnityEngine.Vector3 pos, UnityEngine.Vector3 dir1,
UnityEngine.Vector3 dir2)
IL_0724: Label35
IL_0724: Label36
IL_0724: Label37
IL_0724: Label38
IL_0724: Label40
IL_0724: call static BuildingManager
ColossalFramework.Singleton`1<BuildingManager>::get_instance()
IL_0729: stloc.s 29 (BuildingManager)
IL_072B: ldloca.s 6 (ColossalFramework.Math.Bezier3)
IL_072D: ldfld UnityEngine.Vector3 ColossalFramework.Math.Bezier3::b
IL_0732: ldloca.s 6 (ColossalFramework.Math.Bezier3)
IL_0734: ldfld UnityEngine.Vector3 ColossalFramework.Math.Bezier3::a
IL_0739: call static UnityEngine.Vector3
UnityEngine.Vector3::op_Subtraction(UnityEngine.Vector3 a, UnityEngine.Vector3 b)
IL_073E: call static System.Single
ColossalFramework.Math.VectorUtils::LengthXZ(UnityEngine.Vector3 v)
IL_0743: ldloca.s 6 (ColossalFramework.Math.Bezier3)
IL_0745: ldfld UnityEngine.Vector3 ColossalFramework.Math.Bezier3::c
IL_074A: ldloca.s 6 (ColossalFramework.Math.Bezier3)
IL_074C: ldfld UnityEngine.Vector3 ColossalFramework.Math.Bezier3::b
IL_0751: call static UnityEngine.Vector3
UnityEngine.Vector3::op_Subtraction(UnityEngine.Vector3 a, UnityEngine.Vector3 b)
IL_0756: call static System.Single
ColossalFramework.Math.VectorUtils::LengthXZ(UnityEngine.Vector3 v)
IL_075B: add
IL_075C: ldloca.s 6 (ColossalFramework.Math.Bezier3)
IL_075E: ldfld UnityEngine.Vector3 ColossalFramework.Math.Bezier3::d
IL_0763: ldloca.s 6 (ColossalFramework.Math.Bezier3)
IL_0765: ldfld UnityEngine.Vector3 ColossalFramework.Math.Bezier3::c
IL_076A: call static UnityEngine.Vector3
UnityEngine.Vector3::op_Subtraction(UnityEngine.Vector3 a, UnityEngine.Vector3 b)
IL_076F: call static System.Single
ColossalFramework.Math.VectorUtils::LengthXZ(UnityEngine.Vector3 v)
IL_0774: add
IL_0775: stloc.s 30 (System.Single)
IL_0777: ldc.i4.1
IL_0778: ldloc.s 30 (System.Single)
IL_077A: ldc.r4 0.005
IL_077F: mul
IL_0780: call static System.Int32 UnityEngine.Mathf::RoundToInt(System.Single
f)
IL_0785: call static System.Int32 UnityEngine.Mathf::Max(System.Int32 a,
System.Int32 b)
IL_078A: stloc.s 31 (System.Int32)
IL_078C: ldloca.s 32 (ColossalFramework.Math.Segment3)
IL_078E: ldloca.s 6 (ColossalFramework.Math.Bezier3)
IL_0790: ldc.r4 0
IL_0795: call UnityEngine.Vector3
ColossalFramework.Math.Bezier3::Position(System.Single t)
IL_079A: stfld UnityEngine.Vector3 ColossalFramework.Math.Segment3::a
IL_079F: ldc.i4.1
IL_07A0: stloc.s 33 (System.Int32)
IL_07A2: br => Label41
IL_07A7: Label51
IL_07A7: ldloca.s 32 (ColossalFramework.Math.Segment3)
IL_07A9: ldloca.s 6 (ColossalFramework.Math.Bezier3)
IL_07AB: ldloc.s 33 (System.Int32)
IL_07AD: conv.r4
IL_07AE: ldloc.s 31 (System.Int32)
IL_07B0: conv.r4
IL_07B1: div
IL_07B2: call UnityEngine.Vector3
ColossalFramework.Math.Bezier3::Position(System.Single t)
IL_07B7: stfld UnityEngine.Vector3 ColossalFramework.Math.Segment3::b
IL_07BC: ldloca.s 32 (ColossalFramework.Math.Segment3)
IL_07BE: call UnityEngine.Vector3 ColossalFramework.Math.Segment3::Min()
IL_07C3: stloc.s 34 (UnityEngine.Vector3)
IL_07C5: ldloca.s 32 (ColossalFramework.Math.Segment3)
IL_07C7: call UnityEngine.Vector3 ColossalFramework.Math.Segment3::Max()
IL_07CC: stloc.s 35 (UnityEngine.Vector3)
IL_07CE: ldloca.s 34 (UnityEngine.Vector3)
IL_07D0: ldfld System.Single UnityEngine.Vector3::x
IL_07D5: ldc.r4 100
IL_07DA: sub
IL_07DB: ldc.r4 64
IL_07E0: div
IL_07E1: ldc.r4 135
IL_07E6: add
IL_07E7: conv.i4
IL_07E8: ldc.i4.0
IL_07E9: call static System.Int32 UnityEngine.Mathf::Max(System.Int32 a,
System.Int32 b)
IL_07EE: stloc.s 36 (System.Int32)
IL_07F0: ldloca.s 34 (UnityEngine.Vector3)
IL_07F2: ldfld System.Single UnityEngine.Vector3::z
IL_07F7: ldc.r4 100
IL_07FC: sub
IL_07FD: ldc.r4 64
IL_0802: div
IL_0803: ldc.r4 135
IL_0808: add
IL_0809: conv.i4
IL_080A: ldc.i4.0
IL_080B: call static System.Int32 UnityEngine.Mathf::Max(System.Int32 a,
System.Int32 b)
IL_0810: stloc.s 37 (System.Int32)
IL_0812: ldloca.s 35 (UnityEngine.Vector3)
IL_0814: ldfld System.Single UnityEngine.Vector3::x
IL_0819: ldc.r4 100
IL_081E: add
IL_081F: ldc.r4 64
IL_0824: div
IL_0825: ldc.r4 135
IL_082A: add
IL_082B: conv.i4
IL_082C: ldc.i4 269
IL_0831: call static System.Int32 UnityEngine.Mathf::Min(System.Int32 a,
System.Int32 b)
IL_0836: stloc.s 38 (System.Int32)
IL_0838: ldloca.s 35 (UnityEngine.Vector3)
IL_083A: ldfld System.Single UnityEngine.Vector3::z
IL_083F: ldc.r4 100
IL_0844: add
IL_0845: ldc.r4 64
IL_084A: div
IL_084B: ldc.r4 135
IL_0850: add
IL_0851: conv.i4
IL_0852: ldc.i4 269
IL_0857: call static System.Int32 UnityEngine.Mathf::Min(System.Int32 a,
System.Int32 b)
IL_085C: stloc.s 39 (System.Int32)
IL_085E: ldloc.s 37 (System.Int32)
IL_0860: stloc.s 40 (System.Int32)
IL_0862: br => Label42
IL_0867: Label50
IL_0867: ldloc.s 36 (System.Int32)
IL_0869: stloc.s 41 (System.Int32)
IL_086B: br => Label43
IL_0870: Label49
IL_0870: ldloc.s 29 (BuildingManager)
IL_0872: ldfld System.UInt16[] BuildingManager::m_buildingGrid
IL_0877: ldloc.s 40 (System.Int32)
IL_0879: ldc.i4 270
IL_087E: mul
IL_087F: ldloc.s 41 (System.Int32)
IL_0881: add
IL_0882: ldelem.u2
IL_0883: stloc.s 42 (System.UInt16)
IL_0885: ldc.i4.0
IL_0886: stloc.s 43 (System.Int32)
IL_0888: br => Label44
IL_088D: Label48
IL_088D: ldloca.s 32 (ColossalFramework.Math.Segment3)
IL_088F: ldloc.s 29 (BuildingManager)
IL_0891: ldfld Array16`1<Building> BuildingManager::m_buildings
IL_0896: ldfld Building[] Array16`1<Building>::m_buffer
IL_089B: ldloc.s 42 (System.UInt16)
IL_089D: ldelema Building
IL_08A2: ldfld UnityEngine.Vector3 Building::m_position
IL_08A7: call System.Single
ColossalFramework.Math.Segment3::DistanceSqr(UnityEngine.Vector3 p)
IL_08AC: stloc.s 44 (System.Single)
IL_08AE: ldloc.s 44 (System.Single)
IL_08B0: ldc.r4 10000
IL_08B5: bge.un => Label45
IL_08BA: ldarg.0
IL_08BB: ldfld System.Collections.Generic.HashSet`1<System.UInt16>
NetTool::m_overlayBuildings
IL_08C0: ldloc.s 42 (System.UInt16)
IL_08C2: callvirt System.Boolean
System.Collections.Generic.HashSet`1<System.UInt16>::Add(System.UInt16 item)
IL_08C7: pop
IL_08C8: Label45
IL_08C8: ldloc.s 29 (BuildingManager)
IL_08CA: ldfld Array16`1<Building> BuildingManager::m_buildings
IL_08CF: ldfld Building[] Array16`1<Building>::m_buffer
IL_08D4: ldloc.s 42 (System.UInt16)
IL_08D6: ldelema Building
IL_08DB: ldfld System.UInt16 Building::m_nextGridBuilding
IL_08E0: stloc.s 42 (System.UInt16)
IL_08E2: ldloc.s 43 (System.Int32)
IL_08E4: ldc.i4.1
IL_08E5: add
IL_08E6: dup
IL_08E7: stloc.s 43 (System.Int32)
IL_08E9: ldc.i4 49152
IL_08EE: blt => Label46
IL_08F3: ldc.i4.1
IL_08F4: ldstr "Invalid list detected!\n"
IL_08F9: call static System.String System.Environment::get_StackTrace()
IL_08FE: call static System.String System.String::Concat(System.String str0,
System.String str1)
IL_0903: call static System.Void
ColossalFramework.CODebugBase`1<LogChannel>::Error(LogChannel ll, System.String
msg)
IL_0908: br => Label47
IL_090D: Label44
IL_090D: Label46
IL_090D: ldloc.s 42 (System.UInt16)
IL_090F: brtrue => Label48
IL_0914: Label47
IL_0914: ldloc.s 41 (System.Int32)
IL_0916: ldc.i4.1
IL_0917: add
IL_0918: stloc.s 41 (System.Int32)
IL_091A: Label43
IL_091A: ldloc.s 41 (System.Int32)
IL_091C: ldloc.s 38 (System.Int32)
IL_091E: ble => Label49
IL_0923: ldloc.s 40 (System.Int32)
IL_0925: ldc.i4.1
IL_0926: add
IL_0927: stloc.s 40 (System.Int32)
IL_0929: Label42
IL_0929: ldloc.s 40 (System.Int32)
IL_092B: ldloc.s 39 (System.Int32)
IL_092D: ble => Label50
IL_0932: ldloca.s 32 (ColossalFramework.Math.Segment3)
IL_0934: ldloca.s 32 (ColossalFramework.Math.Segment3)
IL_0936: ldfld UnityEngine.Vector3 ColossalFramework.Math.Segment3::b
IL_093B: stfld UnityEngine.Vector3 ColossalFramework.Math.Segment3::a
IL_0940: ldloc.s 33 (System.Int32)
IL_0942: ldc.i4.1
IL_0943: add
IL_0944: stloc.s 33 (System.Int32)
IL_0946: Label41
IL_0946: ldloc.s 33 (System.Int32)
IL_0948: ldloc.s 31 (System.Int32)
IL_094A: ble => Label51
IL_094F: // end original
IL_094F: ldarg 1
IL_0953: ldarg 2
IL_0957: ldarg 3
IL_095B: ldarg 4
IL_095F: ldarg 5
IL_0963: ldarg 6
IL_0967: call static System.Void
ParallelRoadTool.Patches.NetToolCameraPatch::Postfix(CameraInfo cameraInfo, NetInfo
info, UnityEngine.Color color, ControlPoint startPoint, ControlPoint middlePoint,
ControlPoint endPoint)
IL_096C: ret
DONE

### Patch: System.Void NetTool::set_Prefab(NetInfo value)


### Replacement: static System.Void NetTool::NetTool.set_Prefab_Patch1(NetTool
this, NetInfo value)
IL_0000: // start original
IL_0000: ldarg.0
IL_0001: ldfld NetInfo NetTool::m_prefab
IL_0006: ldarg.1
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.1
IL_0013: stfld NetInfo NetTool::m_prefab
IL_0018: ldarg.0
IL_0019: ldc.i4.0
IL_001A: stfld System.Int32 NetTool::m_controlPointCount
IL_001F: ldarg.0
IL_0020: ldfld OnPrefabChanged NetTool::eventPrefabChanged
IL_0025: brfalse => Label1
IL_002A: ldarg.0
IL_002B: ldfld OnPrefabChanged NetTool::eventPrefabChanged
IL_0030: ldarg.1
IL_0031: callvirt virtual System.Void OnPrefabChanged::Invoke(NetInfo prefab)
IL_0036: // end original
IL_0036: Label0
IL_0036: Label1
IL_0036: call static System.Void
ParallelRoadTool.Patches.NetToolsPrefabPatch::Postfix()
IL_003B: ret
DONE

### Patch: 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)
### Replacement: static ToolErrors NetTool::NetTool.CreateNode_Patch2(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_0000: Local var 0: System.UInt16
IL_0000: Local var 1: System.UInt16
IL_0000: Local var 2: ToolBase/ToolErrors
IL_0000: Local var 3: System.UInt64
IL_0000: Local var 4: System.Boolean
IL_0000: ldc.i8 0
IL_0009: stloc 3 (System.UInt64)
IL_000D: ldc.i4 0
IL_0012: stloc 4 (System.Boolean)
IL_0016: ldc.i4.1
IL_0017: stloc 4 (System.Boolean)
IL_001B: ldloc 4 (System.Boolean)
IL_001F: brfalse => Label1
IL_0024: ldarg 0
IL_0028: ldarg 1
IL_002C: ldarg 2
IL_0030: ldarg 3
IL_0034: ldarg 4
IL_0038: ldarg 5
IL_003C: ldarg 6
IL_0040: ldarg 7
IL_0044: ldarg 8
IL_0048: ldarg 9
IL_004C: ldarg 10
IL_0050: ldarg 11
IL_0054: ldarg 12
IL_0058: ldarg 13
IL_005C: ldobj System.UInt16
IL_0061: ldarg 14
IL_0065: ldobj System.UInt16
IL_006A: ldarg 15
IL_006E: ldobj System.Int32
IL_0073: ldarg 16
IL_0077: ldobj System.Int32
IL_007C: call static System.Void
ParallelRoadTool.Patches.NetToolNodePatch::Prefix(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_0081: Label1
IL_0081: nop
IL_0082: ldloc 4 (System.Boolean)
IL_0086: brfalse => Label0
IL_008B: // start original
IL_008B: ldarg.0
IL_008C: ldarg.1
IL_008D: ldarg.2
IL_008E: ldarg.3
IL_008F: ldarg.s 4
IL_0091: ldarg.s 5
IL_0093: ldarg.s 6
IL_0095: ldc.i4.1
IL_0096: ldarg.s 7
IL_0098: ldarg.s 8
IL_009A: ldarg.s 9
IL_009C: ldarg.s 10
IL_009E: ldarg.s 11
IL_00A0: ldarg.s 12
IL_00A2: ldloca.s 0 (System.UInt16)
IL_00A4: ldloca.s 1 (System.UInt16)
IL_00A6: ldarg.s 14
IL_00A8: ldarg.s 15
IL_00AA: ldarg.s 16
IL_00AC: 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_00B1: stloc.2
IL_00B2: ldloc.2
IL_00B3: ldc.i4.0
IL_00B4: conv.i8
IL_00B5: bne.un => Label2
IL_00BA: ldloc.1
IL_00BB: brfalse => Label3
IL_00C0: ldarg.s 13
IL_00C2: ldloc.1
IL_00C3: stind.i2
IL_00C4: br => Label4
IL_00C9: Label3
IL_00C9: ldarg.s 13
IL_00CB: ldloc.0
IL_00CC: stind.i2
IL_00CD: Label4
IL_00CD: br => Label5
IL_00D2: Label2
IL_00D2: ldarg.s 13
IL_00D4: ldc.i4.0
IL_00D5: stind.i2
IL_00D6: Label5
IL_00D6: ldloc.2
IL_00D7: // end original
IL_00D7: stloc 3 (System.UInt64)
IL_00DB: Label0
IL_00DB: ldarg 0
IL_00DF: ldarg 1
IL_00E3: ldarg 2
IL_00E7: ldarg 3
IL_00EB: ldarg 4
IL_00EF: ldarg 5
IL_00F3: ldarg 6
IL_00F7: ldarg 7
IL_00FB: ldarg 8
IL_00FF: ldarg 9
IL_0103: ldarg 10
IL_0107: ldarg 11
IL_010B: ldarg 12
IL_010F: ldarg 13
IL_0113: ldobj System.UInt16
IL_0118: ldarg 14
IL_011C: ldobj System.UInt16
IL_0121: ldarg 15
IL_0125: ldobj System.Int32
IL_012A: ldarg 16
IL_012E: ldobj System.Int32
IL_0133: call static System.Void
ParallelRoadTool.Patches.NetToolNodePatch::Postfix(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_0138: ldloc 3 (System.UInt64)
IL_013C: ret
DONE

### Patch: static ToolErrors


ParallelRoadTool.Patches.NetToolReversePatch::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)
### Replacement: static ToolErrors
ParallelRoadTool.Patches.NetToolReversePatch::ParallelRoadTool.Patches.NetToolRever
sePatch.CreateNode_Patch0(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_0000: Local var 0: System.UInt16
IL_0000: Local var 1: System.UInt16
IL_0000: Local var 2: ToolBase/ToolErrors
IL_0000: // start original
IL_0000: ldarg.0
IL_0001: ldarg.1
IL_0002: ldarg.2
IL_0003: ldarg.3
IL_0004: ldarg.s 4
IL_0006: ldarg.s 5
IL_0008: ldarg.s 6
IL_000A: ldc.i4.1
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: ldloca.s 0 (System.UInt16)
IL_0019: ldloca.s 1 (System.UInt16)
IL_001B: ldarg.s 14
IL_001D: ldarg.s 15
IL_001F: ldarg.s 16
IL_0021: 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_0026: stloc.2
IL_0027: ldloc.2
IL_0028: ldc.i4.0
IL_0029: conv.i8
IL_002A: bne.un => Label0
IL_002F: ldloc.1
IL_0030: brfalse => Label1
IL_0035: ldarg.s 13
IL_0037: ldloc.1
IL_0038: stind.i2
IL_0039: br => Label2
IL_003E: Label1
IL_003E: ldarg.s 13
IL_0040: ldloc.0
IL_0041: stind.i2
IL_0042: Label2
IL_0042: br => Label3
IL_0047: Label0
IL_0047: ldarg.s 13
IL_0049: ldc.i4.0
IL_004A: stind.i2
IL_004B: Label3
IL_004B: ldloc.2
IL_004C: // end original
IL_004C: ret
DONE
### Patch: System.Void ToolController::set_CurrentTool(ToolBase value)
### Replacement: static System.Void
ToolController::ToolController.set_CurrentTool_Patch1(ToolController this, ToolBase
value)
IL_0000: // start original
IL_0000: ldarg.1
IL_0001: ldarg.0
IL_0002: ldfld ToolBase ToolController::m_currentTool
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.1
IL_0013: call System.Void ToolController::SetTool(ToolBase tool)
IL_0018: // end original
IL_0018: Label0
IL_0018: call static System.Void
ParallelRoadTool.Patches.ToolControllerPatch::Postfix()
IL_001D: ret
DONE

### Patch: static System.Int32


ParallelRoadTool.Patches.NetAIReversePatch::GetConstructionCost(System.Object
instance, UnityEngine.Vector3 startPos, UnityEngine.Vector3 endPos, System.Single
startHeight, System.Single endHeight)
### Replacement: static System.Int32
ParallelRoadTool.Patches.NetAIPatch+NetAIReversePatch::ParallelRoadTool.Patches.Net
AIPatch+NetAIReversePatch.GetConstructionCost_Patch0(System.Object instance,
UnityEngine.Vector3 startPos, UnityEngine.Vector3 endPos, System.Single
startHeight, System.Single endHeight)
IL_0000: Local var 0: System.Single
IL_0000: Local var 1: System.Int32
IL_0000: // start original
IL_0000: ldarg.2
IL_0001: ldarg.1
IL_0002: call static UnityEngine.Vector3
UnityEngine.Vector3::op_Subtraction(UnityEngine.Vector3 a, UnityEngine.Vector3 b)
IL_0007: call static System.Single
ColossalFramework.Math.VectorUtils::LengthXZ(UnityEngine.Vector3 v)
IL_000C: stloc.0
IL_000D: ldarg.0
IL_000E: ldfld System.Int32 PlayerNetAI::m_constructionCost
IL_0013: ldloc.0
IL_0014: ldc.r4 8
IL_0019: div
IL_001A: ldc.r4 0.1
IL_001F: add
IL_0020: call static System.Int32 UnityEngine.Mathf::RoundToInt(System.Single
f)
IL_0025: mul
IL_0026: stloc.1
IL_0027: call static EconomyManager
ColossalFramework.Singleton`1<EconomyManager>::get_instance()
IL_002C: ldfld EconomyWrapper EconomyManager::m_EconomyWrapper
IL_0031: ldloca.s 1 (System.Int32)
IL_0033: ldarg.0
IL_0034: ldfld NetInfo NetAI::m_info
IL_0039: ldfld ItemClass NetInfo::m_class
IL_003E: ldfld Service ItemClass::m_service
IL_0043: ldarg.0
IL_0044: ldfld NetInfo NetAI::m_info
IL_0049: ldfld ItemClass NetInfo::m_class
IL_004E: ldfld SubService ItemClass::m_subService
IL_0053: ldarg.0
IL_0054: ldfld NetInfo NetAI::m_info
IL_0059: ldfld ItemClass NetInfo::m_class
IL_005E: ldfld Level ItemClass::m_level
IL_0063: callvirt System.Void EconomyWrapper::OnGetConstructionCost(System.Int32&
amount, Service service, SubService subService, Level level)
IL_0068: ldloc.1
IL_0069: // end original
IL_0069: ret
DONE

### Patch: static System.Void


ParallelRoadTool.Patches.NetToolReversePatch::RenderOverlay(System.Object instance,
CameraInfo cameraInfo, NetInfo info, UnityEngine.Color color, ControlPoint
startPoint, ControlPoint middlePoint, ControlPoint endPoint)
### Replacement: static System.Void
ParallelRoadTool.Patches.NetToolCameraPatch+NetToolReversePatch::ParallelRoadTool.P
atches.NetToolCameraPatch+NetToolReversePatch.RenderOverlay_Patch0(System.Object
instance, CameraInfo cameraInfo, NetInfo info, UnityEngine.Color color,
ControlPoint startPoint, ControlPoint middlePoint, ControlPoint endPoint)
IL_0000: Local var 0: BuildingInfo
IL_0000: Local var 1: UnityEngine.Vector3
IL_0000: Local var 2: UnityEngine.Vector3
IL_0000: Local var 3: System.Int32
IL_0000: Local var 4: UnityEngine.Vector3
IL_0000: Local var 5: System.Boolean
IL_0000: Local var 6: ColossalFramework.Math.Bezier3
IL_0000: Local var 7: System.Boolean
IL_0000: Local var 8: System.Boolean
IL_0000: Local var 9: ColossalFramework.Math.Segment3
IL_0000: Local var 10: ColossalFramework.Math.Segment3
IL_0000: Local var 11: System.Boolean
IL_0000: Local var 12: System.Boolean
IL_0000: Local var 13: System.Single
IL_0000: Local var 14: UnityEngine.Vector3
IL_0000: Local var 15: UnityEngine.Vector3
IL_0000: Local var 16: UnityEngine.Color
IL_0000: Local var 17: System.Single
IL_0000: Local var 18: UnityEngine.Vector3
IL_0000: Local var 19: UnityEngine.Vector3
IL_0000: Local var 20: System.Int32
IL_0000: Local var 21: System.Int32
IL_0000: Local var 22: UnityEngine.Vector3
IL_0000: Local var 23: ColossalFramework.Math.Segment3
IL_0000: Local var 24: System.Single
IL_0000: Local var 25: System.Boolean
IL_0000: Local var 26: UnityEngine.Color
IL_0000: Local var 27: UnityEngine.Vector3
IL_0000: Local var 28: UnityEngine.Vector3
IL_0000: Local var 29: BuildingManager
IL_0000: Local var 30: System.Single
IL_0000: Local var 31: System.Int32
IL_0000: Local var 32: ColossalFramework.Math.Segment3
IL_0000: Local var 33: System.Int32
IL_0000: Local var 34: UnityEngine.Vector3
IL_0000: Local var 35: UnityEngine.Vector3
IL_0000: Local var 36: System.Int32
IL_0000: Local var 37: System.Int32
IL_0000: Local var 38: System.Int32
IL_0000: Local var 39: System.Int32
IL_0000: Local var 40: System.Int32
IL_0000: Local var 41: System.Int32
IL_0000: Local var 42: System.UInt16
IL_0000: Local var 43: System.Int32
IL_0000: Local var 44: System.Single
IL_0000: // start original
IL_0000: ldarga.s 5
IL_0002: ldfld UnityEngine.Vector3 ControlPoint::m_position
IL_0007: stloc.s 4 (UnityEngine.Vector3)
IL_0009: ldarga.s 5
IL_000B: ldfld System.UInt16 ControlPoint::m_segment
IL_0010: brfalse => Label0
IL_0015: call static NetManager
ColossalFramework.Singleton`1<NetManager>::get_instance()
IL_001A: ldfld Array16`1<NetSegment> NetManager::m_segments
IL_001F: ldfld NetSegment[] Array16`1<NetSegment>::m_buffer
IL_0024: ldarga.s 5
IL_0026: ldfld System.UInt16 ControlPoint::m_segment
IL_002B: ldelema NetSegment
IL_0030: ldfld Flags NetSegment::m_flags
IL_0035: ldc.i4.8
IL_0036: and
IL_0037: brfalse => Label1
IL_003C: call static NetManager
ColossalFramework.Singleton`1<NetManager>::get_instance()
IL_0041: ldfld Array16`1<NetSegment> NetManager::m_segments
IL_0046: ldfld NetSegment[] Array16`1<NetSegment>::m_buffer
IL_004B: ldarga.s 5
IL_004D: ldfld System.UInt16 ControlPoint::m_segment
IL_0052: ldelema NetSegment
IL_0057: call NetInfo NetSegment::get_Info()
IL_005C: starg.s 2
IL_005E: Label0
IL_005E: Label1
IL_005E: ldarg.2
IL_005F: ldfld NetAI NetInfo::m_netAI
IL_0064: ldc.i4.0
IL_0065: ldc.i4.0
IL_0066: ldc.i4.1
IL_0067: ldarg.0
IL_0068: ldfld Mode NetTool::m_mode
IL_006D: ldc.i4.3
IL_006E: ceq
IL_0070: ldc.i4.0
IL_0071: ceq
IL_0073: ldarga.s 4
IL_0075: ldarga.s 5
IL_0077: ldarga.s 6
IL_0079: ldloca.s 0 (BuildingInfo)
IL_007B: ldloca.s 1 (UnityEngine.Vector3)
IL_007D: ldloca.s 2 (UnityEngine.Vector3)
IL_007F: ldloca.s 3 (System.Int32)
IL_0081: callvirt virtual ToolErrors NetAI::CheckBuildPosition(System.Boolean
test, System.Boolean visualize, System.Boolean overlay, System.Boolean autofix,
ControlPoint& startPoint, ControlPoint& middlePoint, ControlPoint& endPoint,
BuildingInfo& ownerBuilding, UnityEngine.Vector3& ownerPosition,
UnityEngine.Vector3& ownerDirection, System.Int32& productionRate)
IL_0086: pop
IL_0087: ldloc.s 4 (UnityEngine.Vector3)
IL_0089: ldarga.s 5
IL_008B: ldfld UnityEngine.Vector3 ControlPoint::m_position
IL_0090: call static System.Boolean
UnityEngine.Vector3::op_Inequality(UnityEngine.Vector3 lhs, UnityEngine.Vector3
rhs)
IL_0095: stloc.s 5 (System.Boolean)
IL_0097: ldloca.s 6 (ColossalFramework.Math.Bezier3)
IL_0099: ldarga.s 4
IL_009B: ldfld UnityEngine.Vector3 ControlPoint::m_position
IL_00A0: stfld UnityEngine.Vector3 ColossalFramework.Math.Bezier3::a
IL_00A5: ldloca.s 6 (ColossalFramework.Math.Bezier3)
IL_00A7: ldarga.s 6
IL_00A9: ldfld UnityEngine.Vector3 ControlPoint::m_position
IL_00AE: stfld UnityEngine.Vector3 ColossalFramework.Math.Bezier3::d
IL_00B3: ldc.i4.1
IL_00B4: stloc.s 7 (System.Boolean)
IL_00B6: ldc.i4.1
IL_00B7: stloc.s 8 (System.Boolean)
IL_00B9: ldarg.0
IL_00BA: ldfld Mode NetTool::m_mode
IL_00BF: ldc.i4.3
IL_00C0: bne.un => Label2
IL_00C5: call static NetManager
ColossalFramework.Singleton`1<NetManager>::get_instance()
IL_00CA: ldfld Array16`1<NetNode> NetManager::m_nodes
IL_00CF: ldfld NetNode[] Array16`1<NetNode>::m_buffer
IL_00D4: ldarga.s 4
IL_00D6: ldfld System.UInt16 ControlPoint::m_node
IL_00DB: ldelema NetNode
IL_00E0: ldfld Flags NetNode::m_flags
IL_00E5: ldc.i4.s 32
IL_00E7: and
IL_00E8: ldc.i4.0
IL_00E9: ceq
IL_00EB: ldc.i4.0
IL_00EC: ceq
IL_00EE: stloc.s 7 (System.Boolean)
IL_00F0: call static NetManager
ColossalFramework.Singleton`1<NetManager>::get_instance()
IL_00F5: ldfld Array16`1<NetNode> NetManager::m_nodes
IL_00FA: ldfld NetNode[] Array16`1<NetNode>::m_buffer
IL_00FF: ldarga.s 6
IL_0101: ldfld System.UInt16 ControlPoint::m_node
IL_0106: ldelema NetNode
IL_010B: ldfld Flags NetNode::m_flags
IL_0110: ldc.i4.s 32
IL_0112: and
IL_0113: ldc.i4.0
IL_0114: ceq
IL_0116: ldc.i4.0
IL_0117: ceq
IL_0119: stloc.s 8 (System.Boolean)
IL_011B: Label2
IL_011B: ldloca.s 6 (ColossalFramework.Math.Bezier3)
IL_011D: ldfld UnityEngine.Vector3 ColossalFramework.Math.Bezier3::a
IL_0122: ldarga.s 5
IL_0124: ldfld UnityEngine.Vector3 ControlPoint::m_direction
IL_0129: ldloca.s 6 (ColossalFramework.Math.Bezier3)
IL_012B: ldfld UnityEngine.Vector3 ColossalFramework.Math.Bezier3::d
IL_0130: ldarga.s 6
IL_0132: ldfld UnityEngine.Vector3 ControlPoint::m_direction
IL_0137: call static UnityEngine.Vector3
UnityEngine.Vector3::op_UnaryNegation(UnityEngine.Vector3 a)
IL_013C: ldloc.s 7 (System.Boolean)
IL_013E: ldloc.s 8 (System.Boolean)
IL_0140: ldloca.s 6 (ColossalFramework.Math.Bezier3)
IL_0142: ldflda UnityEngine.Vector3 ColossalFramework.Math.Bezier3::b
IL_0147: ldloca.s 6 (ColossalFramework.Math.Bezier3)
IL_0149: ldflda UnityEngine.Vector3 ColossalFramework.Math.Bezier3::c
IL_014E: 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_0153: ldarg.0
IL_0154: ldfld Mode NetTool::m_mode
IL_0159: ldc.i4.1
IL_015A: beq => Label3
IL_015F: ldarg.0
IL_0160: ldfld Mode NetTool::m_mode
IL_0165: ldc.i4.2
IL_0166: bne.un => Label4
IL_016B: Label3
IL_016B: ldarg.0
IL_016C: ldfld System.Int32 NetTool::m_cachedControlPointCount
IL_0171: ldc.i4.2
IL_0172: blt => Label5
IL_0177: ldloca.s 9 (ColossalFramework.Math.Segment3)
IL_0179: ldarga.s 4
IL_017B: ldfld UnityEngine.Vector3 ControlPoint::m_position
IL_0180: stfld UnityEngine.Vector3 ColossalFramework.Math.Segment3::a
IL_0185: ldloca.s 9 (ColossalFramework.Math.Segment3)
IL_0187: ldarga.s 5
IL_0189: ldfld UnityEngine.Vector3 ControlPoint::m_position
IL_018E: stfld UnityEngine.Vector3 ColossalFramework.Math.Segment3::b
IL_0193: ldc.i4.1
IL_0194: stloc.s 11 (System.Boolean)
IL_0196: ldloca.s 10 (ColossalFramework.Math.Segment3)
IL_0198: ldarga.s 5
IL_019A: ldfld UnityEngine.Vector3 ControlPoint::m_position
IL_019F: stfld UnityEngine.Vector3 ColossalFramework.Math.Segment3::a
IL_01A4: ldloca.s 10 (ColossalFramework.Math.Segment3)
IL_01A6: ldarga.s 6
IL_01A8: ldfld UnityEngine.Vector3 ControlPoint::m_position
IL_01AD: stfld UnityEngine.Vector3 ColossalFramework.Math.Segment3::b
IL_01B2: ldc.i4.1
IL_01B3: stloc.s 12 (System.Boolean)
IL_01B5: br => Label6
IL_01BA: Label4
IL_01BA: Label5
IL_01BA: ldarg.0
IL_01BB: ldfld Mode NetTool::m_mode
IL_01C0: ldc.i4.1
IL_01C1: beq => Label7
IL_01C6: ldarg.0
IL_01C7: ldfld Mode NetTool::m_mode
IL_01CC: ldc.i4.2
IL_01CD: bne.un => Label8
IL_01D2: Label7
IL_01D2: ldarg.0
IL_01D3: ldfld System.Int32 NetTool::m_cachedControlPointCount
IL_01D8: ldc.i4.1
IL_01D9: blt => Label9
IL_01DE: ldloca.s 9 (ColossalFramework.Math.Segment3)
IL_01E0: ldarga.s 4
IL_01E2: ldfld UnityEngine.Vector3 ControlPoint::m_position
IL_01E7: stfld UnityEngine.Vector3 ColossalFramework.Math.Segment3::a
IL_01EC: ldloca.s 9 (ColossalFramework.Math.Segment3)
IL_01EE: ldarg.0
IL_01EF: ldfld ControlPoint[] NetTool::m_cachedControlPoints
IL_01F4: ldc.i4.1
IL_01F5: ldelema NetTool+ControlPoint
IL_01FA: ldfld UnityEngine.Vector3 ControlPoint::m_position
IL_01FF: stfld UnityEngine.Vector3 ColossalFramework.Math.Segment3::b
IL_0204: ldc.i4.1
IL_0205: stloc.s 11 (System.Boolean)
IL_0207: ldloca.s 10 (ColossalFramework.Math.Segment3)
IL_0209: ldc.r4 -100000
IL_020E: ldc.r4 0
IL_0213: ldc.r4 -100000
IL_0218: newobj System.Void UnityEngine.Vector3::.ctor(System.Single x,
System.Single y, System.Single z)
IL_021D: stfld UnityEngine.Vector3 ColossalFramework.Math.Segment3::a
IL_0222: ldloca.s 10 (ColossalFramework.Math.Segment3)
IL_0224: ldc.r4 -100000
IL_0229: ldc.r4 0
IL_022E: ldc.r4 -100000
IL_0233: newobj System.Void UnityEngine.Vector3::.ctor(System.Single x,
System.Single y, System.Single z)
IL_0238: stfld UnityEngine.Vector3 ColossalFramework.Math.Segment3::b
IL_023D: ldc.i4.0
IL_023E: stloc.s 12 (System.Boolean)
IL_0240: br => Label10
IL_0245: Label8
IL_0245: Label9
IL_0245: ldloca.s 9 (ColossalFramework.Math.Segment3)
IL_0247: ldc.r4 -100000
IL_024C: ldc.r4 0
IL_0251: ldc.r4 -100000
IL_0256: newobj System.Void UnityEngine.Vector3::.ctor(System.Single x,
System.Single y, System.Single z)
IL_025B: stfld UnityEngine.Vector3 ColossalFramework.Math.Segment3::a
IL_0260: ldloca.s 9 (ColossalFramework.Math.Segment3)
IL_0262: ldc.r4 -100000
IL_0267: ldc.r4 0
IL_026C: ldc.r4 -100000
IL_0271: newobj System.Void UnityEngine.Vector3::.ctor(System.Single x,
System.Single y, System.Single z)
IL_0276: stfld UnityEngine.Vector3 ColossalFramework.Math.Segment3::b
IL_027B: ldc.i4.0
IL_027C: stloc.s 11 (System.Boolean)
IL_027E: ldloca.s 10 (ColossalFramework.Math.Segment3)
IL_0280: ldc.r4 -100000
IL_0285: ldc.r4 0
IL_028A: ldc.r4 -100000
IL_028F: newobj System.Void UnityEngine.Vector3::.ctor(System.Single x,
System.Single y, System.Single z)
IL_0294: stfld UnityEngine.Vector3 ColossalFramework.Math.Segment3::a
IL_0299: ldloca.s 10 (ColossalFramework.Math.Segment3)
IL_029B: ldc.r4 -100000
IL_02A0: ldc.r4 0
IL_02A5: ldc.r4 -100000
IL_02AA: newobj System.Void UnityEngine.Vector3::.ctor(System.Single x,
System.Single y, System.Single z)
IL_02AF: stfld UnityEngine.Vector3 ColossalFramework.Math.Segment3::b
IL_02B4: ldc.i4.0
IL_02B5: stloc.s 12 (System.Boolean)
IL_02B7: Label6
IL_02B7: Label10
IL_02B7: ldloc.s 11 (System.Boolean)
IL_02B9: brfalse => Label11
IL_02BE: ldloc.s 12 (System.Boolean)
IL_02C0: brfalse => Label12
IL_02C5: call static ToolManager
ColossalFramework.Singleton`1<ToolManager>::get_instance()
IL_02CA: ldflda DrawCallData SimulationManagerBase`2<ToolManager,
ToolController>::m_drawCallData
IL_02CF: dup
IL_02D0: ldfld System.Int32 DrawCallData::m_overlayCalls
IL_02D5: ldc.i4.1
IL_02D6: add
IL_02D7: stfld System.Int32 DrawCallData::m_overlayCalls
IL_02DC: call static RenderManager
ColossalFramework.Singleton`1<RenderManager>::get_instance()
IL_02E1: callvirt OverlayEffect RenderManager::get_OverlayEffect()
IL_02E6: ldarg.1
IL_02E7: ldarg.3
IL_02E8: ldloc.s 9 (ColossalFramework.Math.Segment3)
IL_02EA: ldloc.s 10 (ColossalFramework.Math.Segment3)
IL_02EC: ldarg.2
IL_02ED: ldfld System.Single NetInfo::m_halfWidth
IL_02F2: ldc.r4 2
IL_02F7: mul
IL_02F8: ldc.r4 8
IL_02FD: ldc.r4 -1
IL_0302: ldc.r4 1280
IL_0307: ldc.i4.0
IL_0308: ldc.i4.0
IL_0309: callvirt System.Void OverlayEffect::DrawSegment(CameraInfo cameraInfo,
UnityEngine.Color color, ColossalFramework.Math.Segment3 segment1,
ColossalFramework.Math.Segment3 segment2, System.Single size, System.Single
dashLen, System.Single minY, System.Single maxY, System.Boolean renderLimits,
System.Boolean alphaBlend)
IL_030E: br => Label13
IL_0313: Label11
IL_0313: Label12
IL_0313: ldloc.s 11 (System.Boolean)
IL_0315: brfalse => Label14
IL_031A: call static ToolManager
ColossalFramework.Singleton`1<ToolManager>::get_instance()
IL_031F: ldflda DrawCallData SimulationManagerBase`2<ToolManager,
ToolController>::m_drawCallData
IL_0324: dup
IL_0325: ldfld System.Int32 DrawCallData::m_overlayCalls
IL_032A: ldc.i4.1
IL_032B: add
IL_032C: stfld System.Int32 DrawCallData::m_overlayCalls
IL_0331: call static RenderManager
ColossalFramework.Singleton`1<RenderManager>::get_instance()
IL_0336: callvirt OverlayEffect RenderManager::get_OverlayEffect()
IL_033B: ldarg.1
IL_033C: ldarg.3
IL_033D: ldloc.s 9 (ColossalFramework.Math.Segment3)
IL_033F: ldarg.2
IL_0340: ldfld System.Single NetInfo::m_halfWidth
IL_0345: ldc.r4 2
IL_034A: mul
IL_034B: ldc.r4 8
IL_0350: ldc.r4 -1
IL_0355: ldc.r4 1280
IL_035A: ldc.i4.0
IL_035B: ldc.i4.0
IL_035C: callvirt System.Void OverlayEffect::DrawSegment(CameraInfo cameraInfo,
UnityEngine.Color color, ColossalFramework.Math.Segment3 segment, System.Single
size, System.Single dashLen, System.Single minY, System.Single maxY, System.Boolean
renderLimits, System.Boolean alphaBlend)
IL_0361: br => Label15
IL_0366: Label14
IL_0366: ldloc.s 12 (System.Boolean)
IL_0368: brfalse => Label16
IL_036D: call static ToolManager
ColossalFramework.Singleton`1<ToolManager>::get_instance()
IL_0372: ldflda DrawCallData SimulationManagerBase`2<ToolManager,
ToolController>::m_drawCallData
IL_0377: dup
IL_0378: ldfld System.Int32 DrawCallData::m_overlayCalls
IL_037D: ldc.i4.1
IL_037E: add
IL_037F: stfld System.Int32 DrawCallData::m_overlayCalls
IL_0384: call static RenderManager
ColossalFramework.Singleton`1<RenderManager>::get_instance()
IL_0389: callvirt OverlayEffect RenderManager::get_OverlayEffect()
IL_038E: ldarg.1
IL_038F: ldarg.3
IL_0390: ldloc.s 10 (ColossalFramework.Math.Segment3)
IL_0392: ldarg.2
IL_0393: ldfld System.Single NetInfo::m_halfWidth
IL_0398: ldc.r4 2
IL_039D: mul
IL_039E: ldc.r4 8
IL_03A3: ldc.r4 -1
IL_03A8: ldc.r4 1280
IL_03AD: ldc.i4.0
IL_03AE: ldc.i4.0
IL_03AF: callvirt System.Void OverlayEffect::DrawSegment(CameraInfo cameraInfo,
UnityEngine.Color color, ColossalFramework.Math.Segment3 segment, System.Single
size, System.Single dashLen, System.Single minY, System.Single maxY, System.Boolean
renderLimits, System.Boolean alphaBlend)
IL_03B4: Label13
IL_03B4: Label15
IL_03B4: Label16
IL_03B4: call static ToolManager
ColossalFramework.Singleton`1<ToolManager>::get_instance()
IL_03B9: ldflda DrawCallData SimulationManagerBase`2<ToolManager,
ToolController>::m_drawCallData
IL_03BE: dup
IL_03BF: ldfld System.Int32 DrawCallData::m_overlayCalls
IL_03C4: ldc.i4.1
IL_03C5: add
IL_03C6: stfld System.Int32 DrawCallData::m_overlayCalls
IL_03CB: call static RenderManager
ColossalFramework.Singleton`1<RenderManager>::get_instance()
IL_03D0: callvirt OverlayEffect RenderManager::get_OverlayEffect()
IL_03D5: ldarg.1
IL_03D6: ldarg.3
IL_03D7: ldloc.s 6 (ColossalFramework.Math.Bezier3)
IL_03D9: ldarg.2
IL_03DA: ldfld System.Single NetInfo::m_halfWidth
IL_03DF: ldc.r4 2
IL_03E4: mul
IL_03E5: ldc.r4 -100000
IL_03EA: ldc.r4 -100000
IL_03EF: ldc.r4 -1
IL_03F4: ldc.r4 1280
IL_03F9: ldc.i4.0
IL_03FA: ldc.i4.0
IL_03FB: 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_0400: ldarg.0
IL_0401: ldfld ToolErrors NetTool::m_cachedErrors
IL_0406: ldc.i4.0
IL_0407: conv.i8
IL_0408: bne.un => Label17
IL_040D: ldloc.s 5 (System.Boolean)
IL_040F: brtrue => Label18
IL_0414: ldarg.0
IL_0415: ldfld Snapping NetTool::m_snap
IL_041A: ldc.i4.2
IL_041B: and
IL_041C: brfalse => Label19
IL_0421: ldarg.2
IL_0422: ldfld NetAI NetInfo::m_netAI
IL_0427: callvirt virtual System.Single NetAI::GetLengthSnap()
IL_042C: stloc.s 13 (System.Single)
IL_042E: ldarg.0
IL_042F: ldfld Mode NetTool::m_mode
IL_0434: brfalse => Label20
IL_0439: ldarg.0
IL_043A: ldfld Mode NetTool::m_mode
IL_043F: ldc.i4.1
IL_0440: bne.un => Label21
IL_0445: Label20
IL_0445: ldloc.s 13 (System.Single)
IL_0447: ldc.r4 0.5
IL_044C: ble.un => Label22
IL_0451: ldarg.0
IL_0452: ldfld System.Int32 NetTool::m_cachedControlPointCount
IL_0457: ldc.i4.1
IL_0458: blt => Label23
IL_045D: ldarg.0
IL_045E: ldfld ControlPoint[] NetTool::m_cachedControlPoints
IL_0463: ldarg.0
IL_0464: ldfld System.Int32 NetTool::m_cachedControlPointCount
IL_0469: ldelema NetTool+ControlPoint
IL_046E: ldfld UnityEngine.Vector3 ControlPoint::m_position
IL_0473: stloc.s 14 (UnityEngine.Vector3)
IL_0475: ldarg.0
IL_0476: ldfld ControlPoint[] NetTool::m_cachedControlPoints
IL_047B: ldarg.0
IL_047C: ldfld System.Int32 NetTool::m_cachedControlPointCount
IL_0481: ldc.i4.1
IL_0482: sub
IL_0483: ldelema NetTool+ControlPoint
IL_0488: ldfld UnityEngine.Vector3 ControlPoint::m_position
IL_048D: stloc.s 15 (UnityEngine.Vector3)
IL_048F: ldarg.3
IL_0490: stloc.s 16 (UnityEngine.Color)
IL_0492: ldloca.s 16 (UnityEngine.Color)
IL_0494: dup
IL_0495: ldfld System.Single UnityEngine.Color::a
IL_049A: ldc.r4 0.25
IL_049F: mul
IL_04A0: stfld System.Single UnityEngine.Color::a
IL_04A5: ldloc.s 13 (System.Single)
IL_04A7: ldc.r4 10
IL_04AC: mul
IL_04AD: stloc.s 13 (System.Single)
IL_04AF: ldloc.s 14 (UnityEngine.Vector3)
IL_04B1: ldloc.s 15 (UnityEngine.Vector3)
IL_04B3: call static UnityEngine.Vector3
UnityEngine.Vector3::op_Subtraction(UnityEngine.Vector3 a, UnityEngine.Vector3 b)
IL_04B8: ldloca.s 17 (System.Single)
IL_04BA: call static UnityEngine.Vector3
ColossalFramework.Math.VectorUtils::NormalizeXZ(UnityEngine.Vector3 v,
System.Single& len)
IL_04BF: stloc.s 18 (UnityEngine.Vector3)
IL_04C1: ldloca.s 19 (UnityEngine.Vector3)
IL_04C3: ldloca.s 18 (UnityEngine.Vector3)
IL_04C5: ldfld System.Single UnityEngine.Vector3::z
IL_04CA: ldarg.2
IL_04CB: ldfld System.Single NetInfo::m_halfWidth
IL_04D0: ldc.r4 48
IL_04D5: add
IL_04D6: mul
IL_04D7: ldc.r4 0
IL_04DC: ldloca.s 18 (UnityEngine.Vector3)
IL_04DE: ldfld System.Single UnityEngine.Vector3::x
IL_04E3: neg
IL_04E4: ldarg.2
IL_04E5: ldfld System.Single NetInfo::m_halfWidth
IL_04EA: ldc.r4 48
IL_04EF: add
IL_04F0: mul
IL_04F1: call System.Void UnityEngine.Vector3::.ctor(System.Single x,
System.Single y, System.Single z)
IL_04F6: ldloc.s 17 (System.Single)
IL_04F8: ldloc.s 13 (System.Single)
IL_04FA: div
IL_04FB: ldc.r4 0.01
IL_0500: add
IL_0501: call static System.Int32 UnityEngine.Mathf::RoundToInt(System.Single
f)
IL_0506: stloc.s 20 (System.Int32)
IL_0508: ldloc.s 20 (System.Int32)
IL_050A: ldc.i4.1
IL_050B: blt => Label24
IL_0510: ldc.i4.0
IL_0511: stloc.s 21 (System.Int32)
IL_0513: br => Label25
IL_0518: Label26
IL_0518: ldloc.s 15 (UnityEngine.Vector3)
IL_051A: ldloc.s 18 (UnityEngine.Vector3)
IL_051C: ldloc.s 13 (System.Single)
IL_051E: ldloc.s 21 (System.Int32)
IL_0520: conv.r4
IL_0521: mul
IL_0522: call static UnityEngine.Vector3
UnityEngine.Vector3::op_Multiply(UnityEngine.Vector3 a, System.Single d)
IL_0527: call static UnityEngine.Vector3
UnityEngine.Vector3::op_Addition(UnityEngine.Vector3 a, UnityEngine.Vector3 b)
IL_052C: stloc.s 22 (UnityEngine.Vector3)
IL_052E: ldloca.s 23 (ColossalFramework.Math.Segment3)
IL_0530: ldloc.s 22 (UnityEngine.Vector3)
IL_0532: ldloc.s 19 (UnityEngine.Vector3)
IL_0534: call static UnityEngine.Vector3
UnityEngine.Vector3::op_Addition(UnityEngine.Vector3 a, UnityEngine.Vector3 b)
IL_0539: ldloc.s 22 (UnityEngine.Vector3)
IL_053B: ldloc.s 19 (UnityEngine.Vector3)
IL_053D: call static UnityEngine.Vector3
UnityEngine.Vector3::op_Subtraction(UnityEngine.Vector3 a, UnityEngine.Vector3 b)
IL_0542: call System.Void
ColossalFramework.Math.Segment3::.ctor(UnityEngine.Vector3 _a, UnityEngine.Vector3
_b)
IL_0547: call static ToolManager
ColossalFramework.Singleton`1<ToolManager>::get_instance()
IL_054C: ldflda DrawCallData SimulationManagerBase`2<ToolManager,
ToolController>::m_drawCallData
IL_0551: dup
IL_0552: ldfld System.Int32 DrawCallData::m_overlayCalls
IL_0557: ldc.i4.1
IL_0558: add
IL_0559: stfld System.Int32 DrawCallData::m_overlayCalls
IL_055E: call static RenderManager
ColossalFramework.Singleton`1<RenderManager>::get_instance()
IL_0563: callvirt OverlayEffect RenderManager::get_OverlayEffect()
IL_0568: ldarg.1
IL_0569: ldloc.s 16 (UnityEngine.Color)
IL_056B: ldloc.s 23 (ColossalFramework.Math.Segment3)
IL_056D: ldc.r4 0
IL_0572: ldc.r4 0
IL_0577: ldc.r4 -1
IL_057C: ldc.r4 1280
IL_0581: ldc.i4.0
IL_0582: ldc.i4.1
IL_0583: callvirt System.Void OverlayEffect::DrawSegment(CameraInfo cameraInfo,
UnityEngine.Color color, ColossalFramework.Math.Segment3 segment, System.Single
size, System.Single dashLen, System.Single minY, System.Single maxY, System.Boolean
renderLimits, System.Boolean alphaBlend)
IL_0588: ldloc.s 21 (System.Int32)
IL_058A: ldc.i4.1
IL_058B: add
IL_058C: stloc.s 21 (System.Int32)
IL_058E: Label25
IL_058E: ldloc.s 21 (System.Int32)
IL_0590: ldloc.s 20 (System.Int32)
IL_0592: ble => Label26
IL_0597: Label17
IL_0597: Label18
IL_0597: Label19
IL_0597: Label21
IL_0597: Label22
IL_0597: Label23
IL_0597: Label24
IL_0597: ldarg.0
IL_0598: ldfld ToolErrors NetTool::m_cachedErrors
IL_059D: ldc.i4.0
IL_059E: conv.i8
IL_059F: bne.un => Label27
IL_05A4: ldarg.2
IL_05A5: ldfld NetAI NetInfo::m_netAI
IL_05AA: ldloca.s 24 (System.Single)
IL_05AC: ldloca.s 25 (System.Boolean)
IL_05AE: ldloca.s 26 (UnityEngine.Color)
IL_05B0: callvirt virtual System.Void NetAI::GetEffectRadius(System.Single&
radius, System.Boolean& capped, UnityEngine.Color& color)
IL_05B5: ldloc.s 24 (System.Single)
IL_05B7: ldarg.2
IL_05B8: ldfld System.Single NetInfo::m_halfWidth
IL_05BD: ble.un => Label28
IL_05C2: ldloca.s 6 (ColossalFramework.Math.Bezier3)
IL_05C4: ldfld UnityEngine.Vector3 ColossalFramework.Math.Bezier3::d
IL_05C9: ldloca.s 6 (ColossalFramework.Math.Bezier3)
IL_05CB: ldfld UnityEngine.Vector3 ColossalFramework.Math.Bezier3::a
IL_05D0: call static UnityEngine.Vector3
UnityEngine.Vector3::op_Subtraction(UnityEngine.Vector3 a, UnityEngine.Vector3 b)
IL_05D5: call static System.Single
UnityEngine.Vector3::SqrMagnitude(UnityEngine.Vector3 a)
IL_05DA: ldc.r4 1
IL_05DF: blt.un => Label29
IL_05E4: call static ToolManager
ColossalFramework.Singleton`1<ToolManager>::get_instance()
IL_05E9: ldflda DrawCallData SimulationManagerBase`2<ToolManager,
ToolController>::m_drawCallData
IL_05EE: dup
IL_05EF: ldfld System.Int32 DrawCallData::m_overlayCalls
IL_05F4: ldc.i4.1
IL_05F5: add
IL_05F6: stfld System.Int32 DrawCallData::m_overlayCalls
IL_05FB: call static RenderManager
ColossalFramework.Singleton`1<RenderManager>::get_instance()
IL_0600: callvirt OverlayEffect RenderManager::get_OverlayEffect()
IL_0605: ldarg.1
IL_0606: ldloc.s 26 (UnityEngine.Color)
IL_0608: ldloc.s 6 (ColossalFramework.Math.Bezier3)
IL_060A: ldloc.s 24 (System.Single)
IL_060C: ldc.r4 2
IL_0611: mul
IL_0612: ldloc.s 25 (System.Boolean)
IL_0614: brfalse => Label30
IL_0619: ldloc.s 24 (System.Single)
IL_061B: br => Label31
IL_0620: Label30
IL_0620: ldc.r4 -100000
IL_0625: Label31
IL_0625: ldloc.s 25 (System.Boolean)
IL_0627: brfalse => Label32
IL_062C: ldloc.s 24 (System.Single)
IL_062E: br => Label33
IL_0633: Label32
IL_0633: ldc.r4 -100000
IL_0638: Label33
IL_0638: ldc.r4 -1
IL_063D: ldc.r4 1280
IL_0642: ldc.i4.0
IL_0643: ldc.i4.1
IL_0644: 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_0649: br => Label34
IL_064E: Label29
IL_064E: call static ToolManager
ColossalFramework.Singleton`1<ToolManager>::get_instance()
IL_0653: ldflda DrawCallData SimulationManagerBase`2<ToolManager,
ToolController>::m_drawCallData
IL_0658: dup
IL_0659: ldfld System.Int32 DrawCallData::m_overlayCalls
IL_065E: ldc.i4.1
IL_065F: add
IL_0660: stfld System.Int32 DrawCallData::m_overlayCalls
IL_0665: call static RenderManager
ColossalFramework.Singleton`1<RenderManager>::get_instance()
IL_066A: callvirt OverlayEffect RenderManager::get_OverlayEffect()
IL_066F: ldarg.1
IL_0670: ldloc.s 26 (UnityEngine.Color)
IL_0672: ldloca.s 6 (ColossalFramework.Math.Bezier3)
IL_0674: ldfld UnityEngine.Vector3 ColossalFramework.Math.Bezier3::a
IL_0679: ldloc.s 24 (System.Single)
IL_067B: ldc.r4 2
IL_0680: mul
IL_0681: ldc.r4 -1
IL_0686: ldc.r4 1280
IL_068B: ldc.i4.0
IL_068C: ldc.i4.1
IL_068D: callvirt System.Void OverlayEffect::DrawCircle(CameraInfo cameraInfo,
UnityEngine.Color color, UnityEngine.Vector3 center, System.Single size,
System.Single minY, System.Single maxY, System.Boolean renderLimits, System.Boolean
alphaBlend)
IL_0692: Label27
IL_0692: Label28
IL_0692: Label34
IL_0692: ldarg.0
IL_0693: ldfld ToolErrors NetTool::m_cachedErrors
IL_0698: ldc.i4.0
IL_0699: conv.i8
IL_069A: bne.un => Label35
IL_069F: ldarg.0
IL_06A0: ldfld System.Int32 NetTool::m_cachedControlPointCount
IL_06A5: ldc.i4.1
IL_06A6: bne.un => Label36
IL_06AB: ldarg.0
IL_06AC: ldfld Mode NetTool::m_mode
IL_06B1: ldc.i4.3
IL_06B2: beq => Label37
IL_06B7: ldarg.0
IL_06B8: ldfld Snapping NetTool::m_snap
IL_06BD: ldc.i4.1
IL_06BE: and
IL_06BF: brfalse => Label38
IL_06C4: ldarg.0
IL_06C5: ldfld ControlPoint[] NetTool::m_cachedControlPoints
IL_06CA: ldc.i4.1
IL_06CB: ldelema NetTool+ControlPoint
IL_06D0: ldfld UnityEngine.Vector3 ControlPoint::m_direction
IL_06D5: stloc.s 27 (UnityEngine.Vector3)
IL_06D7: ldloc.s 5 (System.Boolean)
IL_06D9: brfalse => Label39
IL_06DE: ldarga.s 5
IL_06E0: ldfld UnityEngine.Vector3 ControlPoint::m_direction
IL_06E5: stloc.s 27 (UnityEngine.Vector3)
IL_06E7: Label39
IL_06E7: ldarg.0
IL_06E8: ldarg.0
IL_06E9: ldfld ControlPoint[] NetTool::m_cachedControlPoints
IL_06EE: ldc.i4.0
IL_06EF: ldelema NetTool+ControlPoint
IL_06F4: ldobj NetTool+ControlPoint
IL_06F9: ldloc.s 27 (UnityEngine.Vector3)
IL_06FB: ldloca.s 28 (UnityEngine.Vector3)
IL_06FD: call System.Boolean NetTool::GetClosestDirection(ControlPoint
startPoint, UnityEngine.Vector3 startDirection, UnityEngine.Vector3& dir)
IL_0702: brfalse => Label40
IL_0707: ldarg.0
IL_0708: ldarg.1
IL_0709: ldarg.3
IL_070A: ldarg.0
IL_070B: ldfld ControlPoint[] NetTool::m_cachedControlPoints
IL_0710: ldc.i4.0
IL_0711: ldelema NetTool+ControlPoint
IL_0716: ldfld UnityEngine.Vector3 ControlPoint::m_position
IL_071B: ldloc.s 28 (UnityEngine.Vector3)
IL_071D: ldloc.s 27 (UnityEngine.Vector3)
IL_071F: call System.Void NetTool::RenderAngleArc(CameraInfo cameraInfo,
UnityEngine.Color color, UnityEngine.Vector3 pos, UnityEngine.Vector3 dir1,
UnityEngine.Vector3 dir2)
IL_0724: Label35
IL_0724: Label36
IL_0724: Label37
IL_0724: Label38
IL_0724: Label40
IL_0724: call static BuildingManager
ColossalFramework.Singleton`1<BuildingManager>::get_instance()
IL_0729: stloc.s 29 (BuildingManager)
IL_072B: ldloca.s 6 (ColossalFramework.Math.Bezier3)
IL_072D: ldfld UnityEngine.Vector3 ColossalFramework.Math.Bezier3::b
IL_0732: ldloca.s 6 (ColossalFramework.Math.Bezier3)
IL_0734: ldfld UnityEngine.Vector3 ColossalFramework.Math.Bezier3::a
IL_0739: call static UnityEngine.Vector3
UnityEngine.Vector3::op_Subtraction(UnityEngine.Vector3 a, UnityEngine.Vector3 b)
IL_073E: call static System.Single
ColossalFramework.Math.VectorUtils::LengthXZ(UnityEngine.Vector3 v)
IL_0743: ldloca.s 6 (ColossalFramework.Math.Bezier3)
IL_0745: ldfld UnityEngine.Vector3 ColossalFramework.Math.Bezier3::c
IL_074A: ldloca.s 6 (ColossalFramework.Math.Bezier3)
IL_074C: ldfld UnityEngine.Vector3 ColossalFramework.Math.Bezier3::b
IL_0751: call static UnityEngine.Vector3
UnityEngine.Vector3::op_Subtraction(UnityEngine.Vector3 a, UnityEngine.Vector3 b)
IL_0756: call static System.Single
ColossalFramework.Math.VectorUtils::LengthXZ(UnityEngine.Vector3 v)
IL_075B: add
IL_075C: ldloca.s 6 (ColossalFramework.Math.Bezier3)
IL_075E: ldfld UnityEngine.Vector3 ColossalFramework.Math.Bezier3::d
IL_0763: ldloca.s 6 (ColossalFramework.Math.Bezier3)
IL_0765: ldfld UnityEngine.Vector3 ColossalFramework.Math.Bezier3::c
IL_076A: call static UnityEngine.Vector3
UnityEngine.Vector3::op_Subtraction(UnityEngine.Vector3 a, UnityEngine.Vector3 b)
IL_076F: call static System.Single
ColossalFramework.Math.VectorUtils::LengthXZ(UnityEngine.Vector3 v)
IL_0774: add
IL_0775: stloc.s 30 (System.Single)
IL_0777: ldc.i4.1
IL_0778: ldloc.s 30 (System.Single)
IL_077A: ldc.r4 0.005
IL_077F: mul
IL_0780: call static System.Int32 UnityEngine.Mathf::RoundToInt(System.Single
f)
IL_0785: call static System.Int32 UnityEngine.Mathf::Max(System.Int32 a,
System.Int32 b)
IL_078A: stloc.s 31 (System.Int32)
IL_078C: ldloca.s 32 (ColossalFramework.Math.Segment3)
IL_078E: ldloca.s 6 (ColossalFramework.Math.Bezier3)
IL_0790: ldc.r4 0
IL_0795: call UnityEngine.Vector3
ColossalFramework.Math.Bezier3::Position(System.Single t)
IL_079A: stfld UnityEngine.Vector3 ColossalFramework.Math.Segment3::a
IL_079F: ldc.i4.1
IL_07A0: stloc.s 33 (System.Int32)
IL_07A2: br => Label41
IL_07A7: Label51
IL_07A7: ldloca.s 32 (ColossalFramework.Math.Segment3)
IL_07A9: ldloca.s 6 (ColossalFramework.Math.Bezier3)
IL_07AB: ldloc.s 33 (System.Int32)
IL_07AD: conv.r4
IL_07AE: ldloc.s 31 (System.Int32)
IL_07B0: conv.r4
IL_07B1: div
IL_07B2: call UnityEngine.Vector3
ColossalFramework.Math.Bezier3::Position(System.Single t)
IL_07B7: stfld UnityEngine.Vector3 ColossalFramework.Math.Segment3::b
IL_07BC: ldloca.s 32 (ColossalFramework.Math.Segment3)
IL_07BE: call UnityEngine.Vector3 ColossalFramework.Math.Segment3::Min()
IL_07C3: stloc.s 34 (UnityEngine.Vector3)
IL_07C5: ldloca.s 32 (ColossalFramework.Math.Segment3)
IL_07C7: call UnityEngine.Vector3 ColossalFramework.Math.Segment3::Max()
IL_07CC: stloc.s 35 (UnityEngine.Vector3)
IL_07CE: ldloca.s 34 (UnityEngine.Vector3)
IL_07D0: ldfld System.Single UnityEngine.Vector3::x
IL_07D5: ldc.r4 100
IL_07DA: sub
IL_07DB: ldc.r4 64
IL_07E0: div
IL_07E1: ldc.r4 135
IL_07E6: add
IL_07E7: conv.i4
IL_07E8: ldc.i4.0
IL_07E9: call static System.Int32 UnityEngine.Mathf::Max(System.Int32 a,
System.Int32 b)
IL_07EE: stloc.s 36 (System.Int32)
IL_07F0: ldloca.s 34 (UnityEngine.Vector3)
IL_07F2: ldfld System.Single UnityEngine.Vector3::z
IL_07F7: ldc.r4 100
IL_07FC: sub
IL_07FD: ldc.r4 64
IL_0802: div
IL_0803: ldc.r4 135
IL_0808: add
IL_0809: conv.i4
IL_080A: ldc.i4.0
IL_080B: call static System.Int32 UnityEngine.Mathf::Max(System.Int32 a,
System.Int32 b)
IL_0810: stloc.s 37 (System.Int32)
IL_0812: ldloca.s 35 (UnityEngine.Vector3)
IL_0814: ldfld System.Single UnityEngine.Vector3::x
IL_0819: ldc.r4 100
IL_081E: add
IL_081F: ldc.r4 64
IL_0824: div
IL_0825: ldc.r4 135
IL_082A: add
IL_082B: conv.i4
IL_082C: ldc.i4 269
IL_0831: call static System.Int32 UnityEngine.Mathf::Min(System.Int32 a,
System.Int32 b)
IL_0836: stloc.s 38 (System.Int32)
IL_0838: ldloca.s 35 (UnityEngine.Vector3)
IL_083A: ldfld System.Single UnityEngine.Vector3::z
IL_083F: ldc.r4 100
IL_0844: add
IL_0845: ldc.r4 64
IL_084A: div
IL_084B: ldc.r4 135
IL_0850: add
IL_0851: conv.i4
IL_0852: ldc.i4 269
IL_0857: call static System.Int32 UnityEngine.Mathf::Min(System.Int32 a,
System.Int32 b)
IL_085C: stloc.s 39 (System.Int32)
IL_085E: ldloc.s 37 (System.Int32)
IL_0860: stloc.s 40 (System.Int32)
IL_0862: br => Label42
IL_0867: Label50
IL_0867: ldloc.s 36 (System.Int32)
IL_0869: stloc.s 41 (System.Int32)
IL_086B: br => Label43
IL_0870: Label49
IL_0870: ldloc.s 29 (BuildingManager)
IL_0872: ldfld System.UInt16[] BuildingManager::m_buildingGrid
IL_0877: ldloc.s 40 (System.Int32)
IL_0879: ldc.i4 270
IL_087E: mul
IL_087F: ldloc.s 41 (System.Int32)
IL_0881: add
IL_0882: ldelem.u2
IL_0883: stloc.s 42 (System.UInt16)
IL_0885: ldc.i4.0
IL_0886: stloc.s 43 (System.Int32)
IL_0888: br => Label44
IL_088D: Label48
IL_088D: ldloca.s 32 (ColossalFramework.Math.Segment3)
IL_088F: ldloc.s 29 (BuildingManager)
IL_0891: ldfld Array16`1<Building> BuildingManager::m_buildings
IL_0896: ldfld Building[] Array16`1<Building>::m_buffer
IL_089B: ldloc.s 42 (System.UInt16)
IL_089D: ldelema Building
IL_08A2: ldfld UnityEngine.Vector3 Building::m_position
IL_08A7: call System.Single
ColossalFramework.Math.Segment3::DistanceSqr(UnityEngine.Vector3 p)
IL_08AC: stloc.s 44 (System.Single)
IL_08AE: ldloc.s 44 (System.Single)
IL_08B0: ldc.r4 10000
IL_08B5: bge.un => Label45
IL_08BA: ldarg.0
IL_08BB: ldfld System.Collections.Generic.HashSet`1<System.UInt16>
NetTool::m_overlayBuildings
IL_08C0: ldloc.s 42 (System.UInt16)
IL_08C2: callvirt System.Boolean
System.Collections.Generic.HashSet`1<System.UInt16>::Add(System.UInt16 item)
IL_08C7: pop
IL_08C8: Label45
IL_08C8: ldloc.s 29 (BuildingManager)
IL_08CA: ldfld Array16`1<Building> BuildingManager::m_buildings
IL_08CF: ldfld Building[] Array16`1<Building>::m_buffer
IL_08D4: ldloc.s 42 (System.UInt16)
IL_08D6: ldelema Building
IL_08DB: ldfld System.UInt16 Building::m_nextGridBuilding
IL_08E0: stloc.s 42 (System.UInt16)
IL_08E2: ldloc.s 43 (System.Int32)
IL_08E4: ldc.i4.1
IL_08E5: add
IL_08E6: dup
IL_08E7: stloc.s 43 (System.Int32)
IL_08E9: ldc.i4 49152
IL_08EE: blt => Label46
IL_08F3: ldc.i4.1
IL_08F4: ldstr "Invalid list detected!\n"
IL_08F9: call static System.String System.Environment::get_StackTrace()
IL_08FE: call static System.String System.String::Concat(System.String str0,
System.String str1)
IL_0903: call static System.Void
ColossalFramework.CODebugBase`1<LogChannel>::Error(LogChannel ll, System.String
msg)
IL_0908: br => Label47
IL_090D: Label44
IL_090D: Label46
IL_090D: ldloc.s 42 (System.UInt16)
IL_090F: brtrue => Label48
IL_0914: Label47
IL_0914: ldloc.s 41 (System.Int32)
IL_0916: ldc.i4.1
IL_0917: add
IL_0918: stloc.s 41 (System.Int32)
IL_091A: Label43
IL_091A: ldloc.s 41 (System.Int32)
IL_091C: ldloc.s 38 (System.Int32)
IL_091E: ble => Label49
IL_0923: ldloc.s 40 (System.Int32)
IL_0925: ldc.i4.1
IL_0926: add
IL_0927: stloc.s 40 (System.Int32)
IL_0929: Label42
IL_0929: ldloc.s 40 (System.Int32)
IL_092B: ldloc.s 39 (System.Int32)
IL_092D: ble => Label50
IL_0932: ldloca.s 32 (ColossalFramework.Math.Segment3)
IL_0934: ldloca.s 32 (ColossalFramework.Math.Segment3)
IL_0936: ldfld UnityEngine.Vector3 ColossalFramework.Math.Segment3::b
IL_093B: stfld UnityEngine.Vector3 ColossalFramework.Math.Segment3::a
IL_0940: ldloc.s 33 (System.Int32)
IL_0942: ldc.i4.1
IL_0943: add
IL_0944: stloc.s 33 (System.Int32)
IL_0946: Label41
IL_0946: ldloc.s 33 (System.Int32)
IL_0948: ldloc.s 31 (System.Int32)
IL_094A: ble => Label51
IL_094F: // end original
IL_094F: ret
DONE

### Patch: static System.Void


ParallelRoadTool.Patches.NetToolReversePatch::RenderRoadAccessArrow(System.Object
instance, CameraInfo cameraInfo, UnityEngine.Color color, UnityEngine.Vector3
position, UnityEngine.Vector3 xDir, System.Boolean flipped)
### Replacement: static System.Void
ParallelRoadTool.Patches.NetToolCameraPatch+NetToolReversePatch::ParallelRoadTool.P
atches.NetToolCameraPatch+NetToolReversePatch.RenderRoadAccessArrow_Patch0(System.O
bject instance, CameraInfo cameraInfo, UnityEngine.Color color, UnityEngine.Vector3
position, UnityEngine.Vector3 xDir, System.Boolean flipped)
IL_0000: Local var 0: GameAreaProperties
IL_0000: Local var 1: UnityEngine.Vector3
IL_0000: Local var 2: System.Single
IL_0000: Local var 3: ColossalFramework.Math.Quad3
IL_0000: // start original
IL_0000: call static GameAreaManager
ColossalFramework.Singleton`1<GameAreaManager>::get_instance()
IL_0005: ldfld GameAreaProperties SimulationManagerBase`2<GameAreaManager,
GameAreaProperties>::m_properties
IL_000A: stloc.0
IL_000B: ldloc.0
IL_000C: ldnull
IL_000D: call static System.Boolean
UnityEngine.Object::op_Inequality(UnityEngine.Object x, UnityEngine.Object y)
IL_0012: brfalse => Label0
IL_0017: ldloca.s 1 (UnityEngine.Vector3)
IL_0019: ldarga.s 4
IL_001B: ldfld System.Single UnityEngine.Vector3::z
IL_0020: ldc.r4 0
IL_0025: ldarga.s 4
IL_0027: ldfld System.Single UnityEngine.Vector3::x
IL_002C: neg
IL_002D: call System.Void UnityEngine.Vector3::.ctor(System.Single x,
System.Single y, System.Single z)
IL_0032: ldc.r4 3
IL_0037: stloc.2
IL_0038: ldarg.s 5
IL_003A: brtrue => Label1
IL_003F: ldloca.s 3 (ColossalFramework.Math.Quad3)
IL_0041: ldarg.3
IL_0042: ldc.r4 8
IL_0047: ldarg.s 4
IL_0049: call static UnityEngine.Vector3
UnityEngine.Vector3::op_Multiply(System.Single d, UnityEngine.Vector3 a)
IL_004E: call static UnityEngine.Vector3
UnityEngine.Vector3::op_Subtraction(UnityEngine.Vector3 a, UnityEngine.Vector3 b)
IL_0053: ldloc.2
IL_0054: ldc.r4 8
IL_0059: mul
IL_005A: ldc.r4 16
IL_005F: add
IL_0060: ldloc.1
IL_0061: call static UnityEngine.Vector3
UnityEngine.Vector3::op_Multiply(System.Single d, UnityEngine.Vector3 a)
IL_0066: call static UnityEngine.Vector3
UnityEngine.Vector3::op_Subtraction(UnityEngine.Vector3 a, UnityEngine.Vector3 b)
IL_006B: stfld UnityEngine.Vector3 ColossalFramework.Math.Quad3::a
IL_0070: ldloca.s 3 (ColossalFramework.Math.Quad3)
IL_0072: ldarg.3
IL_0073: ldc.r4 8
IL_0078: ldarg.s 4
IL_007A: call static UnityEngine.Vector3
UnityEngine.Vector3::op_Multiply(System.Single d, UnityEngine.Vector3 a)
IL_007F: call static UnityEngine.Vector3
UnityEngine.Vector3::op_Subtraction(UnityEngine.Vector3 a, UnityEngine.Vector3 b)
IL_0084: ldloc.2
IL_0085: ldc.r4 8
IL_008A: mul
IL_008B: ldloc.1
IL_008C: call static UnityEngine.Vector3
UnityEngine.Vector3::op_Multiply(System.Single d, UnityEngine.Vector3 a)
IL_0091: call static UnityEngine.Vector3
UnityEngine.Vector3::op_Subtraction(UnityEngine.Vector3 a, UnityEngine.Vector3 b)
IL_0096: stfld UnityEngine.Vector3 ColossalFramework.Math.Quad3::b
IL_009B: ldloca.s 3 (ColossalFramework.Math.Quad3)
IL_009D: ldarg.3
IL_009E: ldc.r4 8
IL_00A3: ldarg.s 4
IL_00A5: call static UnityEngine.Vector3
UnityEngine.Vector3::op_Multiply(System.Single d, UnityEngine.Vector3 a)
IL_00AA: call static UnityEngine.Vector3
UnityEngine.Vector3::op_Addition(UnityEngine.Vector3 a, UnityEngine.Vector3 b)
IL_00AF: ldloc.2
IL_00B0: ldc.r4 8
IL_00B5: mul
IL_00B6: ldloc.1
IL_00B7: call static UnityEngine.Vector3
UnityEngine.Vector3::op_Multiply(System.Single d, UnityEngine.Vector3 a)
IL_00BC: call static UnityEngine.Vector3
UnityEngine.Vector3::op_Subtraction(UnityEngine.Vector3 a, UnityEngine.Vector3 b)
IL_00C1: stfld UnityEngine.Vector3 ColossalFramework.Math.Quad3::c
IL_00C6: ldloca.s 3 (ColossalFramework.Math.Quad3)
IL_00C8: ldarg.3
IL_00C9: ldc.r4 8
IL_00CE: ldarg.s 4
IL_00D0: call static UnityEngine.Vector3
UnityEngine.Vector3::op_Multiply(System.Single d, UnityEngine.Vector3 a)
IL_00D5: call static UnityEngine.Vector3
UnityEngine.Vector3::op_Addition(UnityEngine.Vector3 a, UnityEngine.Vector3 b)
IL_00DA: ldloc.2
IL_00DB: ldc.r4 8
IL_00E0: mul
IL_00E1: ldc.r4 16
IL_00E6: add
IL_00E7: ldloc.1
IL_00E8: call static UnityEngine.Vector3
UnityEngine.Vector3::op_Multiply(System.Single d, UnityEngine.Vector3 a)
IL_00ED: call static UnityEngine.Vector3
UnityEngine.Vector3::op_Subtraction(UnityEngine.Vector3 a, UnityEngine.Vector3 b)
IL_00F2: stfld UnityEngine.Vector3 ColossalFramework.Math.Quad3::d
IL_00F7: br => Label2
IL_00FC: Label1
IL_00FC: ldloca.s 3 (ColossalFramework.Math.Quad3)
IL_00FE: ldarg.3
IL_00FF: ldc.r4 8
IL_0104: ldarg.s 4
IL_0106: call static UnityEngine.Vector3
UnityEngine.Vector3::op_Multiply(System.Single d, UnityEngine.Vector3 a)
IL_010B: call static UnityEngine.Vector3
UnityEngine.Vector3::op_Subtraction(UnityEngine.Vector3 a, UnityEngine.Vector3 b)
IL_0110: ldloc.2
IL_0111: ldc.r4 8
IL_0116: mul
IL_0117: ldc.r4 16
IL_011C: add
IL_011D: ldloc.1
IL_011E: call static UnityEngine.Vector3
UnityEngine.Vector3::op_Multiply(System.Single d, UnityEngine.Vector3 a)
IL_0123: call static UnityEngine.Vector3
UnityEngine.Vector3::op_Subtraction(UnityEngine.Vector3 a, UnityEngine.Vector3 b)
IL_0128: stfld UnityEngine.Vector3 ColossalFramework.Math.Quad3::c
IL_012D: ldloca.s 3 (ColossalFramework.Math.Quad3)
IL_012F: ldarg.3
IL_0130: ldc.r4 8
IL_0135: ldarg.s 4
IL_0137: call static UnityEngine.Vector3
UnityEngine.Vector3::op_Multiply(System.Single d, UnityEngine.Vector3 a)
IL_013C: call static UnityEngine.Vector3
UnityEngine.Vector3::op_Subtraction(UnityEngine.Vector3 a, UnityEngine.Vector3 b)
IL_0141: ldloc.2
IL_0142: ldc.r4 8
IL_0147: mul
IL_0148: ldloc.1
IL_0149: call static UnityEngine.Vector3
UnityEngine.Vector3::op_Multiply(System.Single d, UnityEngine.Vector3 a)
IL_014E: call static UnityEngine.Vector3
UnityEngine.Vector3::op_Subtraction(UnityEngine.Vector3 a, UnityEngine.Vector3 b)
IL_0153: stfld UnityEngine.Vector3 ColossalFramework.Math.Quad3::d
IL_0158: ldloca.s 3 (ColossalFramework.Math.Quad3)
IL_015A: ldarg.3
IL_015B: ldc.r4 8
IL_0160: ldarg.s 4
IL_0162: call static UnityEngine.Vector3
UnityEngine.Vector3::op_Multiply(System.Single d, UnityEngine.Vector3 a)
IL_0167: call static UnityEngine.Vector3
UnityEngine.Vector3::op_Addition(UnityEngine.Vector3 a, UnityEngine.Vector3 b)
IL_016C: ldloc.2
IL_016D: ldc.r4 8
IL_0172: mul
IL_0173: ldloc.1
IL_0174: call static UnityEngine.Vector3
UnityEngine.Vector3::op_Multiply(System.Single d, UnityEngine.Vector3 a)
IL_0179: call static UnityEngine.Vector3
UnityEngine.Vector3::op_Subtraction(UnityEngine.Vector3 a, UnityEngine.Vector3 b)
IL_017E: stfld UnityEngine.Vector3 ColossalFramework.Math.Quad3::a
IL_0183: ldloca.s 3 (ColossalFramework.Math.Quad3)
IL_0185: ldarg.3
IL_0186: ldc.r4 8
IL_018B: ldarg.s 4
IL_018D: call static UnityEngine.Vector3
UnityEngine.Vector3::op_Multiply(System.Single d, UnityEngine.Vector3 a)
IL_0192: call static UnityEngine.Vector3
UnityEngine.Vector3::op_Addition(UnityEngine.Vector3 a, UnityEngine.Vector3 b)
IL_0197: ldloc.2
IL_0198: ldc.r4 8
IL_019D: mul
IL_019E: ldc.r4 16
IL_01A3: add
IL_01A4: ldloc.1
IL_01A5: call static UnityEngine.Vector3
UnityEngine.Vector3::op_Multiply(System.Single d, UnityEngine.Vector3 a)
IL_01AA: call static UnityEngine.Vector3
UnityEngine.Vector3::op_Subtraction(UnityEngine.Vector3 a, UnityEngine.Vector3 b)
IL_01AF: stfld UnityEngine.Vector3 ColossalFramework.Math.Quad3::b
IL_01B4: Label2
IL_01B4: call static ToolManager
ColossalFramework.Singleton`1<ToolManager>::get_instance()
IL_01B9: ldflda DrawCallData SimulationManagerBase`2<ToolManager,
ToolController>::m_drawCallData
IL_01BE: dup
IL_01BF: ldfld System.Int32 DrawCallData::m_overlayCalls
IL_01C4: ldc.i4.1
IL_01C5: add
IL_01C6: stfld System.Int32 DrawCallData::m_overlayCalls
IL_01CB: call static RenderManager
ColossalFramework.Singleton`1<RenderManager>::get_instance()
IL_01D0: callvirt OverlayEffect RenderManager::get_OverlayEffect()
IL_01D5: ldarg.1
IL_01D6: ldloc.0
IL_01D7: ldfld UnityEngine.Texture2D GameAreaProperties::m_directionArrow
IL_01DC: ldarg.2
IL_01DD: ldloc.3
IL_01DE: ldc.r4 -10
IL_01E3: ldc.r4 1280
IL_01E8: ldc.i4.0
IL_01E9: ldc.i4.1
IL_01EA: callvirt System.Void OverlayEffect::DrawQuad(CameraInfo cameraInfo,
UnityEngine.Texture2D texture, UnityEngine.Color color,
ColossalFramework.Math.Quad3 quad, System.Single minY, System.Single maxY,
System.Boolean renderLimits, System.Boolean alphaBlend)
IL_01EF: // end original
IL_01EF: Label0
IL_01EF: ret
DONE

### Harmony id=com.klyte.redirectors.ER, version=2.0.4.0, location=E:\SteamLibrary\


steamapps\common\data-0000000022595390, env/clr=2.0.50727.1433, platform=Win32NT,
ptrsize:runtime/env=8/Bits64, Windows
### Started from static System.Void Kwytto.Utils.Redirector::.cctor(), location E:\
SteamLibrary\steamapps\common\data-0000000024235B20
### At 2023-02-07 02.24.33
### Patch: virtual System.Void ColossalFramework.UI.UIView::Start()
### Replacement: static System.Void
ColossalFramework.UI.UIView::ColossalFramework.UI.UIView.Start_Patch1(ColossalFrame
work.UI.UIView this)
IL_0000: Local var 0:
ColossalFramework.PoolList`1<ColossalFramework.UI.UIComponent>
IL_0000: Local var 1: ColossalFramework.UI.UIComponent
IL_0000: Local var 2:
System.Collections.Generic.IEnumerator`1<ColossalFramework.UI.UIComponent>
IL_0000: // start original
IL_0000: ldarg.0
IL_0001: ldc.i4.0
IL_0002: stfld System.Int32 ColossalFramework.UI.UIView::m_FramesRendered
IL_0007: ldarg.0
IL_0008: call System.Void
ColossalFramework.UI.UIView::InvalidateAllComponents()
IL_000D: ldarg.0
IL_000E: ldfld UnityEngine.MeshRenderer
ColossalFramework.UI.UIView::m_MeshRenderer
IL_0013: ldnull
IL_0014: call static System.Boolean
UnityEngine.Object::op_Inequality(UnityEngine.Object x, UnityEngine.Object y)
IL_0019: brfalse => Label0
IL_001E: ldarg.0
IL_001F: ldfld UnityEngine.MeshRenderer
ColossalFramework.UI.UIView::m_MeshRenderer
IL_0024: ldc.i4.1
IL_0025: callvirt System.Void UnityEngine.Renderer::set_enabled(System.Boolean
value)
IL_002A: Label0
IL_002A: ldarg.0
IL_002B: call ColossalFramework.PoolList`1<ColossalFramework.UI.UIComponent>
ColossalFramework.UI.UIView::GetTopLevelComponents()
IL_0030: stloc.0
.try
{
IL_0031: ldloc.0
IL_0032: callvirt virtual
System.Collections.Generic.IEnumerator`1<ColossalFramework.UI.UIComponent>
ColossalFramework.PoolList`1<ColossalFramework.UI.UIComponent>::GetEnumerator()
IL_0037: stloc.2
.try
{
IL_0038: br => Label1
IL_003D: Label2
IL_003D: ldloc.2
IL_003E: callvirt abstract virtual ColossalFramework.UI.UIComponent
System.Collections.Generic.IEnumerator`1<ColossalFramework.UI.UIComponent>::get_Cur
rent()
IL_0043: stloc.1
IL_0044: ldloc.1
IL_0045: ldc.i4.1
IL_0046: callvirt System.Void
ColossalFramework.UI.UIComponent::InitializeParentVisibilityCache(System.Boolean
parentVisible)
IL_004B: Label1
IL_004B: ldloc.2
IL_004C: callvirt abstract virtual System.Boolean
System.Collections.IEnumerator::MoveNext()
IL_0051: brtrue => Label2
IL_0056: leave => Label3
IL_005B: leave => (autogenerated)
} // end try
.finally
{
IL_0060: ldloc.2
IL_0061: brfalse => Label4
IL_0066: ldloc.2
IL_0067: callvirt abstract virtual System.Void
System.IDisposable::Dispose()
IL_006C: Label4
IL_006C: endfinally
IL_006D: leave => (autogenerated)
} // end handler
IL_006E: Label3
IL_006E: leave => Label5
IL_0073: leave => (autogenerated)
} // end try
.finally
{
IL_0078: ldloc.0
IL_0079: brfalse => Label6
IL_007E: ldloc.0
IL_007F: callvirt abstract virtual System.Void
System.IDisposable::Dispose()
IL_0084: Label6
IL_0084: endfinally
IL_0085: leave => (autogenerated)
} // end handler
IL_0086: Label5
IL_0086: ldarg.0
IL_0087: ldc.i4.1
IL_0088: stfld System.Boolean
ColossalFramework.UI.UIView::m_VisibilityCacheInitialized
IL_008D: // end original
IL_008D: call static System.Void
Kwytto.Redirectors.UIViewRedirector::AfterStart()
IL_0092: ret
DONE

### Patch: virtual UnityEngine.Color NetAI::GetColor(System.UInt16 nodeID, NetNode&


data, InfoMode infoMode, SubInfoMode subInfoMode)
### Replacement: static UnityEngine.Color NetAI::NetAI.GetColor_Patch1(NetAI this,
System.UInt16 nodeID, NetNode& data, InfoMode infoMode, SubInfoMode subInfoMode)
IL_0000: Local var 0: UnityEngine.Color
IL_0000: ldloca 0 (UnityEngine.Color)
IL_0004: initobj UnityEngine.Color
IL_000A: // start original
IL_000A: ldarg.3
IL_000B: brfalse => Label0
IL_0010: call static InfoManager
ColossalFramework.Singleton`1<InfoManager>::get_instance()
IL_0015: ldfld InfoProperties SimulationManagerBase`2<InfoManager,
InfoProperties>::m_properties
IL_001A: ldfld UnityEngine.Color InfoProperties::m_neutralColor
IL_001F: br => Label1
IL_0024: Label0
IL_0024: ldarg.0
IL_0025: ldfld NetInfo NetAI::m_info
IL_002A: ldfld UnityEngine.Color NetInfo::m_color
IL_002F: // end original
IL_002F: Label1
IL_002F: stloc 0 (UnityEngine.Color)
IL_0033: ldloca 0 (UnityEngine.Color)
IL_0037: ldarg 1
IL_003B: ldarg 2
IL_003F: ldarg 3
IL_0043: ldarg 4
IL_0047: call static System.Void
ElectricRoads.Overrides.ElectricRoadsOverrides::AfterGetColorNode(UnityEngine.Color
& __result, System.UInt16 nodeID, NetNode& data, InfoMode infoMode, SubInfoMode
subInfoMode)
IL_004C: ldloc 0 (UnityEngine.Color)
IL_0050: ret
DONE

### Patch: virtual UnityEngine.Color NetAI::GetColor(System.UInt16 segmentID,


NetSegment& data, InfoMode infoMode, SubInfoMode subInfoMode)
### Replacement: static UnityEngine.Color NetAI::NetAI.GetColor_Patch1(NetAI this,
System.UInt16 segmentID, NetSegment& data, InfoMode infoMode, SubInfoMode
subInfoMode)
IL_0000: Local var 0: UnityEngine.Color
IL_0000: ldloca 0 (UnityEngine.Color)
IL_0004: initobj UnityEngine.Color
IL_000A: // start original
IL_000A: ldarg.3
IL_000B: brfalse => Label0
IL_0010: call static InfoManager
ColossalFramework.Singleton`1<InfoManager>::get_instance()
IL_0015: ldfld InfoProperties SimulationManagerBase`2<InfoManager,
InfoProperties>::m_properties
IL_001A: ldfld UnityEngine.Color InfoProperties::m_neutralColor
IL_001F: br => Label1
IL_0024: Label0
IL_0024: ldarg.0
IL_0025: ldfld NetInfo NetAI::m_info
IL_002A: ldfld UnityEngine.Color NetInfo::m_color
IL_002F: // end original
IL_002F: Label1
IL_002F: stloc 0 (UnityEngine.Color)
IL_0033: ldloca 0 (UnityEngine.Color)
IL_0037: ldarg 1
IL_003B: ldarg 2
IL_003F: ldarg 3
IL_0043: ldarg 4
IL_0047: call static System.Void
ElectricRoads.Overrides.ElectricRoadsOverrides::AfterGetColorSegment(UnityEngine.Co
lor& __result, System.UInt16 segmentID, NetSegment& data, InfoMode infoMode,
SubInfoMode subInfoMode)
IL_004C: ldloc 0 (UnityEngine.Color)
IL_0050: ret
DONE

### Patch: System.Void ElectricityManager::UpdateNodeElectricity(System.Int32


nodeID, System.Int32 value)
### Replacement: static System.Void
ElectricityManager::ElectricityManager.UpdateNodeElectricity_Patch0(ElectricityMana
ger this, System.Int32 nodeID, System.Int32 value)
IL_0000: Local var 0: InfoManager/InfoMode
IL_0000: Local var 1: NetManager
IL_0000: Local var 2: System.Boolean
IL_0000: Local var 3: NetNode/Flags
IL_0000: Local var 4: System.UInt16
IL_0000: Local var 5: BuildingManager
IL_0000: Local var 6: NetNode/Flags
IL_0000: Local var 7: System.Int32
IL_0000: Local var 8: System.UInt16
IL_0000: // start original
IL_0000: call static InfoManager
ColossalFramework.Singleton`1<InfoManager>::get_instance()
IL_0005: callvirt InfoMode InfoManager::get_CurrentMode()
IL_000A: stloc.0
IL_000B: call static NetManager
ColossalFramework.Singleton`1<NetManager>::get_instance()
IL_0010: stloc.1
IL_0011: ldc.i4.0
IL_0012: stloc.2
IL_0013: ldloc.1
IL_0014: ldfld Array16`1<NetNode> NetManager::m_nodes
IL_0019: ldfld NetNode[] Array16`1<NetNode>::m_buffer
IL_001E: ldarg.1
IL_001F: ldelema NetNode
IL_0024: ldfld Flags NetNode::m_flags
IL_0029: stloc.3
IL_002A: ldarg.1
IL_002B: call static System.Boolean
ElectricRoads.Overrides.ElectricRoadsOverrides::CheckNodeTransition(System.Int32
nodeID)
IL_0030: brfalse => Label0
IL_0035: ldloc.1
IL_0036: ldfld Array16`1<NetNode> NetManager::m_nodes
IL_003B: ldfld NetNode[] Array16`1<NetNode>::m_buffer
IL_0040: ldarg.1
IL_0041: ldelema NetNode
IL_0046: dup
IL_0047: ldfld Flags NetNode::m_flags
IL_004C: ldc.i4 -1048577
IL_0051: and
IL_0052: stfld Flags NetNode::m_flags
IL_0057: br => Label10
IL_005C: Label0
IL_005C: ldloc.1
IL_005D: ldfld Array16`1<NetNode> NetManager::m_nodes
IL_0062: ldfld NetNode[] Array16`1<NetNode>::m_buffer
IL_0067: ldarg.1
IL_0068: ldelema NetNode
IL_006D: ldfld System.UInt16 NetNode::m_building
IL_0072: stloc.s 4 (System.UInt16)
IL_0074: ldloc.s 4 (System.UInt16)
IL_0076: brfalse => Label1
IL_007B: call static BuildingManager
ColossalFramework.Singleton`1<BuildingManager>::get_instance()
IL_0080: stloc.s 5 (BuildingManager)
IL_0082: ldloc.s 5 (BuildingManager)
IL_0084: ldfld Array16`1<Building> BuildingManager::m_buildings
IL_0089: ldfld Building[] Array16`1<Building>::m_buffer
IL_008E: ldloc.s 4 (System.UInt16)
IL_0090: ldelema Building
IL_0095: ldfld System.UInt16 Building::m_electricityBuffer
IL_009A: ldarg.2
IL_009B: beq => Label2
IL_00A0: ldloc.s 5 (BuildingManager)
IL_00A2: ldfld Array16`1<Building> BuildingManager::m_buildings
IL_00A7: ldfld Building[] Array16`1<Building>::m_buffer
IL_00AC: ldloc.s 4 (System.UInt16)
IL_00AE: ldelema Building
IL_00B3: ldarg.2
IL_00B4: conv.u2
IL_00B5: stfld System.UInt16 Building::m_electricityBuffer
IL_00BA: ldloc.0
IL_00BB: ldc.i4.1
IL_00BC: ceq
IL_00BE: stloc.2
IL_00BF: Label2
IL_00BF: ldloc.2
IL_00C0: brfalse => Label3
IL_00C5: ldloc.s 5 (BuildingManager)
IL_00C7: ldloc.s 4 (System.UInt16)
IL_00C9: callvirt System.Void BuildingManager::UpdateBuildingColors(System.UInt16
building)
IL_00CE: Label1
IL_00CE: Label3
IL_00CE: ldloc.3
IL_00CF: ldc.i4 -67108865
IL_00D4: and
IL_00D5: stloc.s 6 (NetNode+Flags)
IL_00D7: ldarg.2
IL_00D8: brfalse => Label4
IL_00DD: ldloc.s 6 (NetNode+Flags)
IL_00DF: ldc.i4 67108864
IL_00E4: or
IL_00E5: stloc.s 6 (NetNode+Flags)
IL_00E7: Label4
IL_00E7: ldloc.s 6 (NetNode+Flags)
IL_00E9: ldloc.3
IL_00EA: beq => Label5
IL_00EF: ldloc.1
IL_00F0: ldfld Array16`1<NetNode> NetManager::m_nodes
IL_00F5: ldfld NetNode[] Array16`1<NetNode>::m_buffer
IL_00FA: ldarg.1
IL_00FB: ldelema NetNode
IL_0100: ldloc.s 6 (NetNode+Flags)
IL_0102: stfld Flags NetNode::m_flags
IL_0107: ldloc.0
IL_0108: ldc.i4.1
IL_0109: ceq
IL_010B: stloc.2
IL_010C: Label5
IL_010C: ldloc.2
IL_010D: brfalse => Label6
IL_0112: ldloc.1
IL_0113: ldarg.1
IL_0114: conv.u2
IL_0115: callvirt System.Void NetManager::UpdateNodeColors(System.UInt16 node)
IL_011A: ldc.i4.0
IL_011B: stloc.s 7 (System.Int32)
IL_011D: br => Label7
IL_0122: Label9
IL_0122: ldloc.1
IL_0123: ldfld Array16`1<NetNode> NetManager::m_nodes
IL_0128: ldfld NetNode[] Array16`1<NetNode>::m_buffer
IL_012D: ldarg.1
IL_012E: ldelema NetNode
IL_0133: ldloc.s 7 (System.Int32)
IL_0135: call System.UInt16 NetNode::GetSegment(System.Int32 index)
IL_013A: stloc.s 8 (System.UInt16)
IL_013C: ldloc.s 8 (System.UInt16)
IL_013E: brfalse => Label8
IL_0143: ldloc.1
IL_0144: ldloc.s 8 (System.UInt16)
IL_0146: callvirt System.Void NetManager::UpdateSegmentColors(System.UInt16
segment)
IL_014B: Label8
IL_014B: ldloc.s 7 (System.Int32)
IL_014D: ldc.i4.1
IL_014E: add
IL_014F: stloc.s 7 (System.Int32)
IL_0151: Label7
IL_0151: ldloc.s 7 (System.Int32)
IL_0153: ldc.i4.8
IL_0154: blt => Label9
IL_0159: // end original
IL_0159: Label6
IL_0159: Label10
IL_0159: ret
DONE

### Patch: static System.Void PropInstance::RenderInstance(CameraInfo cameraInfo,


PropInfo info, InstanceID id, UnityEngine.Vector3 position, System.Single scale,
System.Single angle, UnityEngine.Color color, UnityEngine.Vector4 objectIndex,
System.Boolean active, UnityEngine.Texture heightMap, UnityEngine.Vector4
heightMapping, UnityEngine.Vector4 surfaceMapping, UnityEngine.Texture
waterHeightMap, UnityEngine.Vector4 waterHeightMapping, UnityEngine.Vector4
waterSurfaceMapping)
### Replacement: static System.Void
PropInstance::PropInstance.RenderInstance_Patch0(CameraInfo cameraInfo, PropInfo
info, InstanceID id, UnityEngine.Vector3 position, System.Single scale,
System.Single angle, UnityEngine.Color color, UnityEngine.Vector4 objectIndex,
System.Boolean active, UnityEngine.Texture heightMap, UnityEngine.Vector4
heightMapping, UnityEngine.Vector4 surfaceMapping, UnityEngine.Texture
waterHeightMap, UnityEngine.Vector4 waterHeightMapping, UnityEngine.Vector4
waterSurfaceMapping)
IL_0000: Local var 0: UnityEngine.Matrix4x4
IL_0000: Local var 1: System.Single
IL_0000: Local var 2: System.Int32
IL_0000: Local var 3: UnityEngine.Vector3
IL_0000: Local var 4: UnityEngine.Vector3
IL_0000: Local var 5: EffectInfo/SpawnArea
IL_0000: Local var 6: System.Single
IL_0000: Local var 7: LightSystem
IL_0000: Local var 8: ColossalFramework.Math.Randomizer
IL_0000: Local var 9: UnityEngine.Vector4
IL_0000: Local var 10: System.Single
IL_0000: Local var 11: System.Single
IL_0000: Local var 12: System.Single
IL_0000: Local var 13: UnityEngine.Matrix4x4
IL_0000: Local var 14: PropManager
IL_0000: Local var 15: UnityEngine.MaterialPropertyBlock
IL_0000: Local var 16: System.Int32
IL_0000: // start original
IL_0000: ldarg.1
IL_0001: ldfld System.Boolean PrefabInfo::m_prefabInitialized
IL_0006: brfalse => Label0
IL_000B: ldarg.1
IL_000C: ldfld System.Boolean PropInfo::m_hasEffects
IL_0011: brfalse => Label1
IL_0016: ldarg.s 8
IL_0018: brtrue => Label2
IL_001D: ldarg.1
IL_001E: ldfld System.Boolean PropInfo::m_alwaysActive
IL_0023: brfalse => Label3
IL_0028: Label2
IL_0028: ldloca.s 0 (UnityEngine.Matrix4x4)
IL_002A: initobj UnityEngine.Matrix4x4
IL_0030: ldloca.s 0 (UnityEngine.Matrix4x4)
IL_0032: ldarg.3
IL_0033: ldarg.s 5
IL_0035: ldc.r4 57.29578
IL_003A: mul
IL_003B: call static UnityEngine.Vector3 UnityEngine.Vector3::get_down()
IL_0040: call static UnityEngine.Quaternion
UnityEngine.Quaternion::AngleAxis(System.Single angle, UnityEngine.Vector3 axis)
IL_0045: ldarg.s 4
IL_0047: ldarg.s 4
IL_0049: ldarg.s 4
IL_004B: newobj System.Void UnityEngine.Vector3::.ctor(System.Single x,
System.Single y, System.Single z)
IL_0050: call System.Void UnityEngine.Matrix4x4::SetTRS(UnityEngine.Vector3
pos, UnityEngine.Quaternion q, UnityEngine.Vector3 s)
IL_0055: call static SimulationManager
ColossalFramework.Singleton`1<SimulationManager>::get_instance()
IL_005A: ldfld System.Single SimulationManager::m_simulationTimeDelta
IL_005F: stloc.1
IL_0060: ldc.i4.0
IL_0061: stloc.2
IL_0062: br => Label4
IL_0067: Label5
IL_0067: ldloca.s 0 (UnityEngine.Matrix4x4)
IL_0069: ldarg.1
IL_006A: ldfld Effect[] PropInfo::m_effects
IL_006F: ldloc.2
IL_0070: ldelema PropInfo+Effect
IL_0075: ldfld UnityEngine.Vector3 Effect::m_position
IL_007A: call UnityEngine.Vector3
UnityEngine.Matrix4x4::MultiplyPoint(UnityEngine.Vector3 v)
IL_007F: stloc.3
IL_0080: ldloca.s 0 (UnityEngine.Matrix4x4)
IL_0082: ldarg.1
IL_0083: ldfld Effect[] PropInfo::m_effects
IL_0088: ldloc.2
IL_0089: ldelema PropInfo+Effect
IL_008E: ldfld UnityEngine.Vector3 Effect::m_direction
IL_0093: call UnityEngine.Vector3
UnityEngine.Matrix4x4::MultiplyVector(UnityEngine.Vector3 v)
IL_0098: stloc.s 4 (UnityEngine.Vector3)
IL_009A: ldloca.s 5 (EffectInfo+SpawnArea)
IL_009C: ldloc.3
IL_009D: ldloc.s 4 (UnityEngine.Vector3)
IL_009F: ldc.r4 0
IL_00A4: call System.Void SpawnArea::.ctor(UnityEngine.Vector3 position,
UnityEngine.Vector3 direction, System.Single radius)
IL_00A9: ldarg.1
IL_00AA: ldfld Effect[] PropInfo::m_effects
IL_00AF: ldloc.2
IL_00B0: ldelema PropInfo+Effect
IL_00B5: ldfld EffectInfo Effect::m_effect
IL_00BA: ldarg.2
IL_00BB: ldloc.s 5 (EffectInfo+SpawnArea)
IL_00BD: call static UnityEngine.Vector3 UnityEngine.Vector3::get_zero()
IL_00C2: ldc.r4 0
IL_00C7: ldc.r4 1
IL_00CC: ldc.r4 -1
IL_00D1: ldloc.1
IL_00D2: ldarg.0
IL_00D3: callvirt virtual System.Void EffectInfo::RenderEffect(InstanceID id,
SpawnArea area, UnityEngine.Vector3 velocity, System.Single acceleration,
System.Single magnitude, System.Single timeOffset, System.Single timeDelta,
CameraInfo cameraInfo)
IL_00D8: ldloc.2
IL_00D9: ldc.i4.1
IL_00DA: add
IL_00DB: stloc.2
IL_00DC: Label4
IL_00DC: ldloc.2
IL_00DD: ldarg.1
IL_00DE: ldfld Effect[] PropInfo::m_effects
IL_00E3: ldlen
IL_00E4: conv.i4
IL_00E5: blt => Label5
IL_00EA: Label1
IL_00EA: Label3
IL_00EA: ldarg.1
IL_00EB: ldfld System.Boolean PropInfo::m_hasRenderer
IL_00F0: brfalse => Label6
IL_00F5: ldarg.0
IL_00F6: ldfld System.Int32 CameraInfo::m_layerMask
IL_00FB: ldc.i4.1
IL_00FC: ldarg.1
IL_00FD: ldfld System.Int32 PrefabInfo::m_prefabDataLayer
IL_0102: ldc.i4.s 31
IL_0104: and
IL_0105: shl
IL_0106: and
IL_0107: brfalse => Label7
IL_010C: call static InfoManager
ColossalFramework.Singleton`1<InfoManager>::get_instance()
IL_0111: callvirt InfoMode InfoManager::get_CurrentMode()
IL_0116: brtrue => Label8
IL_011B: ldarg 2
IL_011F: call static System.Boolean
ElectricRoads.Overrides.ElectricRoadsOverrides::CheckElectrityNetForLight(InstanceI
D id)
IL_0124: brfalse => Label24
IL_0129: ldc.r4 0
IL_012E: stloc.s 6 (System.Single)
IL_0130: ldarg.s 8
IL_0132: brtrue => Label9
IL_0137: ldarg.1
IL_0138: ldfld System.Boolean PropInfo::m_alwaysActive
IL_013D: brtrue => Label10
IL_0142: Label24
IL_0142: ldarga.s 7
IL_0144: ldc.r4 0
IL_0149: stfld System.Single UnityEngine.Vector4::z
IL_014E: br => Label11
IL_0153: Label9
IL_0153: Label10
IL_0153: ldarg.1
IL_0154: ldflda UnityEngine.Vector2 PropInfo::m_illuminationOffRange
IL_0159: ldfld System.Single UnityEngine.Vector2::x
IL_015E: ldc.r4 1000
IL_0163: blt => Label12
IL_0168: ldarg.1
IL_0169: ldfld BlinkType PropInfo::m_illuminationBlinkType
IL_016E: brfalse => Label13
IL_0173: Label12
IL_0173: call static RenderManager
ColossalFramework.Singleton`1<RenderManager>::get_instance()
IL_0178: callvirt LightSystem RenderManager::get_lightSystem()
IL_017D: stloc.s 7 (LightSystem)
IL_017F: ldloca.s 8 (ColossalFramework.Math.Randomizer)
IL_0181: ldarga.s 2
IL_0183: call System.UInt32 InstanceID::get_Index()
IL_0188: call System.Void
ColossalFramework.Math.Randomizer::.ctor(System.UInt32 _seed)
IL_018D: ldarg.1
IL_018E: ldflda UnityEngine.Vector2 PropInfo::m_illuminationOffRange
IL_0193: ldfld System.Single UnityEngine.Vector2::x
IL_0198: ldloca.s 8 (ColossalFramework.Math.Randomizer)
IL_019A: ldc.i4 100000
IL_019F: call System.Int32
ColossalFramework.Math.Randomizer::Int32(System.UInt32 range)
IL_01A4: conv.r4
IL_01A5: ldc.r4 1E-05
IL_01AA: mul
IL_01AB: ldarg.1
IL_01AC: ldflda UnityEngine.Vector2 PropInfo::m_illuminationOffRange
IL_01B1: ldfld System.Single UnityEngine.Vector2::y
IL_01B6: ldarg.1
IL_01B7: ldflda UnityEngine.Vector2 PropInfo::m_illuminationOffRange
IL_01BC: ldfld System.Single UnityEngine.Vector2::x
IL_01C1: sub
IL_01C2: mul
IL_01C3: add
IL_01C4: stloc.s 6 (System.Single)
IL_01C6: ldarga.s 7
IL_01C8: ldloc.s 6 (System.Single)
IL_01CA: ldc.r4 0.01
IL_01CF: add
IL_01D0: ldloc.s 6 (System.Single)
IL_01D2: ldc.r4 0.01
IL_01D7: sub
IL_01D8: ldloc.s 7 (LightSystem)
IL_01DA: callvirt System.Single LightSystem::get_DayLightIntensity()
IL_01DF: call static System.Single MathUtils::SmoothStep(System.Single edge0,
System.Single edge1, System.Single x)
IL_01E4: stfld System.Single UnityEngine.Vector4::z
IL_01E9: ldarg.1
IL_01EA: ldfld BlinkType PropInfo::m_illuminationBlinkType
IL_01EF: brfalse => Label14
IL_01F4: ldarg.1
IL_01F5: ldfld BlinkType PropInfo::m_illuminationBlinkType
IL_01FA: call static UnityEngine.Vector4
LightEffect::GetBlinkVector(BlinkType type)
IL_01FF: stloc.s 9 (UnityEngine.Vector4)
IL_0201: ldloc.s 6 (System.Single)
IL_0203: ldc.r4 3.71
IL_0208: mul
IL_0209: call static SimulationManager
ColossalFramework.Singleton`1<SimulationManager>::get_instance()
IL_020E: ldfld System.Single SimulationManager::m_simulationTimer
IL_0213: ldloca.s 9 (UnityEngine.Vector4)
IL_0215: ldfld System.Single UnityEngine.Vector4::w
IL_021A: div
IL_021B: add
IL_021C: stloc.s 10 (System.Single)
IL_021E: ldloc.s 10 (System.Single)
IL_0220: ldloc.s 10 (System.Single)
IL_0222: call static System.Single UnityEngine.Mathf::Floor(System.Single f)
IL_0227: sub
IL_0228: ldloca.s 9 (UnityEngine.Vector4)
IL_022A: ldfld System.Single UnityEngine.Vector4::w
IL_022F: mul
IL_0230: stloc.s 10 (System.Single)
IL_0232: ldloca.s 9 (UnityEngine.Vector4)
IL_0234: ldfld System.Single UnityEngine.Vector4::x
IL_0239: ldloca.s 9 (UnityEngine.Vector4)
IL_023B: ldfld System.Single UnityEngine.Vector4::y
IL_0240: ldloc.s 10 (System.Single)
IL_0242: call static System.Single MathUtils::SmoothStep(System.Single edge0,
System.Single edge1, System.Single x)
IL_0247: stloc.s 11 (System.Single)
IL_0249: ldloca.s 9 (UnityEngine.Vector4)
IL_024B: ldfld System.Single UnityEngine.Vector4::w
IL_0250: ldloca.s 9 (UnityEngine.Vector4)
IL_0252: ldfld System.Single UnityEngine.Vector4::z
IL_0257: ldloc.s 10 (System.Single)
IL_0259: call static System.Single MathUtils::SmoothStep(System.Single edge0,
System.Single edge1, System.Single x)
IL_025E: stloc.s 12 (System.Single)
IL_0260: ldarga.s 7
IL_0262: dup
IL_0263: ldfld System.Single UnityEngine.Vector4::z
IL_0268: ldc.r4 1
IL_026D: ldloc.s 11 (System.Single)
IL_026F: ldloc.s 12 (System.Single)
IL_0271: mul
IL_0272: sub
IL_0273: mul
IL_0274: stfld System.Single UnityEngine.Vector4::z
IL_0279: Label14
IL_0279: br => Label15
IL_027E: Label13
IL_027E: ldarga.s 7
IL_0280: ldc.r4 1
IL_0285: stfld System.Single UnityEngine.Vector4::z
IL_028A: Label8
IL_028A: Label11
IL_028A: Label15
IL_028A: ldarg.0
IL_028B: brfalse => Label16
IL_0290: ldarg.0
IL_0291: ldarg.3
IL_0292: ldarg.1
IL_0293: ldfld System.Single PropInfo::m_lodRenderDistance
IL_0298: callvirt System.Boolean
CameraInfo::CheckRenderDistance(UnityEngine.Vector3 point, System.Single
maxDistance)
IL_029D: brfalse => Label17
IL_02A2: Label16
IL_02A2: ldloca.s 13 (UnityEngine.Matrix4x4)
IL_02A4: initobj UnityEngine.Matrix4x4
IL_02AA: ldloca.s 13 (UnityEngine.Matrix4x4)
IL_02AC: ldarg.3
IL_02AD: ldarg.s 5
IL_02AF: ldc.r4 57.29578
IL_02B4: mul
IL_02B5: call static UnityEngine.Vector3 UnityEngine.Vector3::get_down()
IL_02BA: call static UnityEngine.Quaternion
UnityEngine.Quaternion::AngleAxis(System.Single angle, UnityEngine.Vector3 axis)
IL_02BF: ldarg.s 4
IL_02C1: ldarg.s 4
IL_02C3: ldarg.s 4
IL_02C5: newobj System.Void UnityEngine.Vector3::.ctor(System.Single x,
System.Single y, System.Single z)
IL_02CA: call System.Void UnityEngine.Matrix4x4::SetTRS(UnityEngine.Vector3
pos, UnityEngine.Quaternion q, UnityEngine.Vector3 s)
IL_02CF: call static PropManager
ColossalFramework.Singleton`1<PropManager>::get_instance()
IL_02D4: stloc.s 14 (PropManager)
IL_02D6: ldloc.s 14 (PropManager)
IL_02D8: ldfld UnityEngine.MaterialPropertyBlock PropManager::m_materialBlock
IL_02DD: stloc.s 15 (UnityEngine.MaterialPropertyBlock)
IL_02DF: ldloc.s 15 (UnityEngine.MaterialPropertyBlock)
IL_02E1: callvirt System.Void UnityEngine.MaterialPropertyBlock::Clear()
IL_02E6: ldloc.s 15 (UnityEngine.MaterialPropertyBlock)
IL_02E8: ldloc.s 14 (PropManager)
IL_02EA: ldfld System.Int32 PropManager::ID_Color
IL_02EF: ldarg.s 6
IL_02F1: callvirt System.Void
UnityEngine.MaterialPropertyBlock::SetColor(System.Int32 nameID, UnityEngine.Color
value)
IL_02F6: ldloc.s 15 (UnityEngine.MaterialPropertyBlock)
IL_02F8: ldloc.s 14 (PropManager)
IL_02FA: ldfld System.Int32 PropManager::ID_HeightMap
IL_02FF: ldarg.s 9
IL_0301: callvirt System.Void
UnityEngine.MaterialPropertyBlock::SetTexture(System.Int32 nameID,
UnityEngine.Texture value)
IL_0306: ldloc.s 15 (UnityEngine.MaterialPropertyBlock)
IL_0308: ldloc.s 14 (PropManager)
IL_030A: ldfld System.Int32 PropManager::ID_HeightMapping
IL_030F: ldarg.s 10
IL_0311: callvirt System.Void
UnityEngine.MaterialPropertyBlock::SetVector(System.Int32 nameID,
UnityEngine.Vector4 value)
IL_0316: ldloc.s 15 (UnityEngine.MaterialPropertyBlock)
IL_0318: ldloc.s 14 (PropManager)
IL_031A: ldfld System.Int32 PropManager::ID_SurfaceMapping
IL_031F: ldarg.s 11
IL_0321: callvirt System.Void
UnityEngine.MaterialPropertyBlock::SetVector(System.Int32 nameID,
UnityEngine.Vector4 value)
IL_0326: ldloc.s 15 (UnityEngine.MaterialPropertyBlock)
IL_0328: ldloc.s 14 (PropManager)
IL_032A: ldfld System.Int32 PropManager::ID_ObjectIndex
IL_032F: ldarg.s 7
IL_0331: callvirt System.Void
UnityEngine.MaterialPropertyBlock::SetVector(System.Int32 nameID,
UnityEngine.Vector4 value)
IL_0336: ldloc.s 15 (UnityEngine.MaterialPropertyBlock)
IL_0338: ldloc.s 14 (PropManager)
IL_033A: ldfld System.Int32 PropManager::ID_WaterHeightMap
IL_033F: ldarg.s 12
IL_0341: callvirt System.Void
UnityEngine.MaterialPropertyBlock::SetTexture(System.Int32 nameID,
UnityEngine.Texture value)
IL_0346: ldloc.s 15 (UnityEngine.MaterialPropertyBlock)
IL_0348: ldloc.s 14 (PropManager)
IL_034A: ldfld System.Int32 PropManager::ID_WaterHeightMapping
IL_034F: ldarg.s 13
IL_0351: callvirt System.Void
UnityEngine.MaterialPropertyBlock::SetVector(System.Int32 nameID,
UnityEngine.Vector4 value)
IL_0356: ldloc.s 15 (UnityEngine.MaterialPropertyBlock)
IL_0358: ldloc.s 14 (PropManager)
IL_035A: ldfld System.Int32 PropManager::ID_WaterSurfaceMapping
IL_035F: ldarg.s 14
IL_0361: callvirt System.Void
UnityEngine.MaterialPropertyBlock::SetVector(System.Int32 nameID,
UnityEngine.Vector4 value)
IL_0366: ldarg.1
IL_0367: ldfld UnityEngine.Vector4[] PropInfo::m_rollLocation
IL_036C: brfalse => Label18
IL_0371: ldarg.1
IL_0372: ldfld UnityEngine.Material PropInfo::m_material
IL_0377: ldloc.s 14 (PropManager)
IL_0379: ldfld System.Int32 PropManager::ID_RollLocation
IL_037E: ldarg.1
IL_037F: ldfld UnityEngine.Vector4[] PropInfo::m_rollLocation
IL_0384: callvirt System.Void UnityEngine.Material::SetVectorArray(System.Int32
nameID, UnityEngine.Vector4[] values)
IL_0389: ldarg.1
IL_038A: ldfld UnityEngine.Material PropInfo::m_material
IL_038F: ldloc.s 14 (PropManager)
IL_0391: ldfld System.Int32 PropManager::ID_RollParams
IL_0396: ldarg.1
IL_0397: ldfld UnityEngine.Vector4[] PropInfo::m_rollParams
IL_039C: callvirt System.Void UnityEngine.Material::SetVectorArray(System.Int32
nameID, UnityEngine.Vector4[] values)
IL_03A1: Label18
IL_03A1: ldloc.s 14 (PropManager)
IL_03A3: ldflda DrawCallData SimulationManagerBase`2<PropManager,
PropProperties>::m_drawCallData
IL_03A8: dup
IL_03A9: ldfld System.Int32 DrawCallData::m_defaultCalls
IL_03AE: ldc.i4.1
IL_03AF: add
IL_03B0: stfld System.Int32 DrawCallData::m_defaultCalls
IL_03B5: ldarg.1
IL_03B6: ldfld UnityEngine.Mesh PropInfo::m_mesh
IL_03BB: ldloc.s 13 (UnityEngine.Matrix4x4)
IL_03BD: ldarg.1
IL_03BE: ldfld UnityEngine.Material PropInfo::m_material
IL_03C3: ldarg.1
IL_03C4: ldfld System.Int32 PrefabInfo::m_prefabDataLayer
IL_03C9: ldnull
IL_03CA: ldc.i4.0
IL_03CB: ldloc.s 15 (UnityEngine.MaterialPropertyBlock)
IL_03CD: call static System.Void
UnityEngine.Graphics::DrawMesh(UnityEngine.Mesh mesh, UnityEngine.Matrix4x4 matrix,
UnityEngine.Material material, System.Int32 layer, UnityEngine.Camera camera,
System.Int32 submeshIndex, UnityEngine.MaterialPropertyBlock properties)
IL_03D2: br => Label19
IL_03D7: Label17
IL_03D7: ldarg.s 9
IL_03D9: ldarg.1
IL_03DA: ldfld UnityEngine.Texture PropInfo::m_lodHeightMap
IL_03DF: call static System.Boolean
UnityEngine.Object::op_Inequality(UnityEngine.Object x, UnityEngine.Object y)
IL_03E4: brtrue => Label20
IL_03E9: ldarg.s 12
IL_03EB: ldarg.1
IL_03EC: ldfld UnityEngine.Texture PropInfo::m_lodWaterHeightMap
IL_03F1: call static System.Boolean
UnityEngine.Object::op_Inequality(UnityEngine.Object x, UnityEngine.Object y)
IL_03F6: brfalse => Label21
IL_03FB: Label20
IL_03FB: ldarg.1
IL_03FC: ldfld System.Int32 PropInfo::m_lodCount
IL_0401: brfalse => Label22
IL_0406: ldarg.0
IL_0407: ldarg.1
IL_0408: call static System.Void PropInstance::RenderLod(CameraInfo
cameraInfo, PropInfo info)
IL_040D: Label22
IL_040D: ldarg.1
IL_040E: ldarg.s 9
IL_0410: stfld UnityEngine.Texture PropInfo::m_lodHeightMap
IL_0415: ldarg.1
IL_0416: ldarg.s 10
IL_0418: stfld UnityEngine.Vector4 PropInfo::m_lodHeightMapping
IL_041D: ldarg.1
IL_041E: ldarg.s 11
IL_0420: stfld UnityEngine.Vector4 PropInfo::m_lodSurfaceMapping
IL_0425: ldarg.1
IL_0426: ldarg.s 12
IL_0428: stfld UnityEngine.Texture PropInfo::m_lodWaterHeightMap
IL_042D: ldarg.1
IL_042E: ldarg.s 13
IL_0430: stfld UnityEngine.Vector4 PropInfo::m_lodWaterHeightMapping
IL_0435: ldarg.1
IL_0436: ldarg.s 14
IL_0438: stfld UnityEngine.Vector4 PropInfo::m_lodWaterSurfaceMapping
IL_043D: Label21
IL_043D: ldarga.s 7
IL_043F: ldarg.s 4
IL_0441: stfld System.Single UnityEngine.Vector4::w
IL_0446: ldarg.1
IL_0447: ldfld UnityEngine.Vector4[] PropInfo::m_lodLocations
IL_044C: ldarg.1
IL_044D: ldfld System.Int32 PropInfo::m_lodCount
IL_0452: ldelema UnityEngine.Vector4
IL_0457: ldarga.s 3
IL_0459: ldfld System.Single UnityEngine.Vector3::x
IL_045E: ldarga.s 3
IL_0460: ldfld System.Single UnityEngine.Vector3::y
IL_0465: ldarga.s 3
IL_0467: ldfld System.Single UnityEngine.Vector3::z
IL_046C: ldarg.s 5
IL_046E: newobj System.Void UnityEngine.Vector4::.ctor(System.Single x,
System.Single y, System.Single z, System.Single w)
IL_0473: stobj UnityEngine.Vector4
IL_0478: ldarg.1
IL_0479: ldfld UnityEngine.Vector4[] PropInfo::m_lodObjectIndices
IL_047E: ldarg.1
IL_047F: ldfld System.Int32 PropInfo::m_lodCount
IL_0484: ldelema UnityEngine.Vector4
IL_0489: ldarg.s 7
IL_048B: stobj UnityEngine.Vector4
IL_0490: ldarg.1
IL_0491: ldfld UnityEngine.Vector4[] PropInfo::m_lodColors
IL_0496: ldarg.1
IL_0497: ldfld System.Int32 PropInfo::m_lodCount
IL_049C: ldelema UnityEngine.Vector4
IL_04A1: ldarga.s 6
IL_04A3: call UnityEngine.Color UnityEngine.Color::get_linear()
IL_04A8: call static UnityEngine.Vector4
UnityEngine.Color::op_Implicit(UnityEngine.Color c)
IL_04AD: stobj UnityEngine.Vector4
IL_04B2: ldarg.1
IL_04B3: ldarg.1
IL_04B4: ldfld UnityEngine.Vector3 PropInfo::m_lodMin
IL_04B9: ldarg.3
IL_04BA: call static UnityEngine.Vector3
UnityEngine.Vector3::Min(UnityEngine.Vector3 lhs, UnityEngine.Vector3 rhs)
IL_04BF: stfld UnityEngine.Vector3 PropInfo::m_lodMin
IL_04C4: ldarg.1
IL_04C5: ldarg.1
IL_04C6: ldfld UnityEngine.Vector3 PropInfo::m_lodMax
IL_04CB: ldarg.3
IL_04CC: call static UnityEngine.Vector3
UnityEngine.Vector3::Max(UnityEngine.Vector3 lhs, UnityEngine.Vector3 rhs)
IL_04D1: stfld UnityEngine.Vector3 PropInfo::m_lodMax
IL_04D6: ldarg.1
IL_04D7: dup
IL_04D8: ldfld System.Int32 PropInfo::m_lodCount
IL_04DD: ldc.i4.1
IL_04DE: add
IL_04DF: dup
IL_04E0: stloc.s 16 (System.Int32)
IL_04E2: stfld System.Int32 PropInfo::m_lodCount
IL_04E7: ldloc.s 16 (System.Int32)
IL_04E9: ldarg.1
IL_04EA: ldfld UnityEngine.Vector4[] PropInfo::m_lodLocations
IL_04EF: ldlen
IL_04F0: conv.i4
IL_04F1: bne.un => Label23
IL_04F6: ldarg.0
IL_04F7: ldarg.1
IL_04F8: call static System.Void PropInstance::RenderLod(CameraInfo
cameraInfo, PropInfo info)
IL_04FD: // end original
IL_04FD: Label0
IL_04FD: Label6
IL_04FD: Label7
IL_04FD: Label19
IL_04FD: Label23
IL_04FD: ret
DONE

### Patch: static System.Void PropInstance::RenderInstance(CameraInfo cameraInfo,


PropInfo info, InstanceID id, UnityEngine.Vector3 position, System.Single scale,
System.Single angle, UnityEngine.Color color, UnityEngine.Vector4 objectIndex,
System.Boolean active)
### Replacement: static System.Void
PropInstance::PropInstance.RenderInstance_Patch0(CameraInfo cameraInfo, PropInfo
info, InstanceID id, UnityEngine.Vector3 position, System.Single scale,
System.Single angle, UnityEngine.Color color, UnityEngine.Vector4 objectIndex,
System.Boolean active)
IL_0000: Local var 0: UnityEngine.Matrix4x4
IL_0000: Local var 1: System.Single
IL_0000: Local var 2: System.Int32
IL_0000: Local var 3: UnityEngine.Vector3
IL_0000: Local var 4: UnityEngine.Vector3
IL_0000: Local var 5: EffectInfo/SpawnArea
IL_0000: Local var 6: System.Single
IL_0000: Local var 7: LightSystem
IL_0000: Local var 8: ColossalFramework.Math.Randomizer
IL_0000: Local var 9: UnityEngine.Vector4
IL_0000: Local var 10: System.Single
IL_0000: Local var 11: System.Single
IL_0000: Local var 12: System.Single
IL_0000: Local var 13: UnityEngine.Matrix4x4
IL_0000: Local var 14: PropManager
IL_0000: Local var 15: UnityEngine.MaterialPropertyBlock
IL_0000: Local var 16: UnityEngine.Matrix4x4
IL_0000: Local var 17: PropManager
IL_0000: Local var 18: UnityEngine.MaterialPropertyBlock
IL_0000: Local var 19: System.Int32
IL_0000: // start original
IL_0000: ldarg.1
IL_0001: ldfld System.Boolean PrefabInfo::m_prefabInitialized
IL_0006: brfalse => Label0
IL_000B: ldarg.1
IL_000C: ldfld System.Boolean PropInfo::m_hasEffects
IL_0011: brfalse => Label1
IL_0016: ldarg.s 8
IL_0018: brtrue => Label2
IL_001D: ldarg.1
IL_001E: ldfld System.Boolean PropInfo::m_alwaysActive
IL_0023: brfalse => Label3
IL_0028: Label2
IL_0028: ldloca.s 0 (UnityEngine.Matrix4x4)
IL_002A: initobj UnityEngine.Matrix4x4
IL_0030: ldloca.s 0 (UnityEngine.Matrix4x4)
IL_0032: ldarg.3
IL_0033: ldarg.s 5
IL_0035: ldc.r4 57.29578
IL_003A: mul
IL_003B: call static UnityEngine.Vector3 UnityEngine.Vector3::get_down()
IL_0040: call static UnityEngine.Quaternion
UnityEngine.Quaternion::AngleAxis(System.Single angle, UnityEngine.Vector3 axis)
IL_0045: ldarg.s 4
IL_0047: ldarg.s 4
IL_0049: ldarg.s 4
IL_004B: newobj System.Void UnityEngine.Vector3::.ctor(System.Single x,
System.Single y, System.Single z)
IL_0050: call System.Void UnityEngine.Matrix4x4::SetTRS(UnityEngine.Vector3
pos, UnityEngine.Quaternion q, UnityEngine.Vector3 s)
IL_0055: call static SimulationManager
ColossalFramework.Singleton`1<SimulationManager>::get_instance()
IL_005A: ldfld System.Single SimulationManager::m_simulationTimeDelta
IL_005F: stloc.1
IL_0060: ldc.i4.0
IL_0061: stloc.2
IL_0062: br => Label4
IL_0067: Label5
IL_0067: ldloca.s 0 (UnityEngine.Matrix4x4)
IL_0069: ldarg.1
IL_006A: ldfld Effect[] PropInfo::m_effects
IL_006F: ldloc.2
IL_0070: ldelema PropInfo+Effect
IL_0075: ldfld UnityEngine.Vector3 Effect::m_position
IL_007A: call UnityEngine.Vector3
UnityEngine.Matrix4x4::MultiplyPoint(UnityEngine.Vector3 v)
IL_007F: stloc.3
IL_0080: ldloca.s 0 (UnityEngine.Matrix4x4)
IL_0082: ldarg.1
IL_0083: ldfld Effect[] PropInfo::m_effects
IL_0088: ldloc.2
IL_0089: ldelema PropInfo+Effect
IL_008E: ldfld UnityEngine.Vector3 Effect::m_direction
IL_0093: call UnityEngine.Vector3
UnityEngine.Matrix4x4::MultiplyVector(UnityEngine.Vector3 v)
IL_0098: stloc.s 4 (UnityEngine.Vector3)
IL_009A: ldloca.s 5 (EffectInfo+SpawnArea)
IL_009C: ldloc.3
IL_009D: ldloc.s 4 (UnityEngine.Vector3)
IL_009F: ldc.r4 0
IL_00A4: call System.Void SpawnArea::.ctor(UnityEngine.Vector3 position,
UnityEngine.Vector3 direction, System.Single radius)
IL_00A9: ldarg.1
IL_00AA: ldfld Effect[] PropInfo::m_effects
IL_00AF: ldloc.2
IL_00B0: ldelema PropInfo+Effect
IL_00B5: ldfld EffectInfo Effect::m_effect
IL_00BA: ldarg.2
IL_00BB: ldloc.s 5 (EffectInfo+SpawnArea)
IL_00BD: call static UnityEngine.Vector3 UnityEngine.Vector3::get_zero()
IL_00C2: ldc.r4 0
IL_00C7: ldc.r4 1
IL_00CC: ldc.r4 -1
IL_00D1: ldloc.1
IL_00D2: ldarg.0
IL_00D3: callvirt virtual System.Void EffectInfo::RenderEffect(InstanceID id,
SpawnArea area, UnityEngine.Vector3 velocity, System.Single acceleration,
System.Single magnitude, System.Single timeOffset, System.Single timeDelta,
CameraInfo cameraInfo)
IL_00D8: ldloc.2
IL_00D9: ldc.i4.1
IL_00DA: add
IL_00DB: stloc.2
IL_00DC: Label4
IL_00DC: ldloc.2
IL_00DD: ldarg.1
IL_00DE: ldfld Effect[] PropInfo::m_effects
IL_00E3: ldlen
IL_00E4: conv.i4
IL_00E5: blt => Label5
IL_00EA: Label1
IL_00EA: Label3
IL_00EA: ldarg.1
IL_00EB: ldfld System.Boolean PropInfo::m_hasRenderer
IL_00F0: brfalse => Label6
IL_00F5: ldarg.0
IL_00F6: ldfld System.Int32 CameraInfo::m_layerMask
IL_00FB: ldc.i4.1
IL_00FC: ldarg.1
IL_00FD: ldfld System.Int32 PrefabInfo::m_prefabDataLayer
IL_0102: ldc.i4.s 31
IL_0104: and
IL_0105: shl
IL_0106: and
IL_0107: brfalse => Label7
IL_010C: call static InfoManager
ColossalFramework.Singleton`1<InfoManager>::get_instance()
IL_0111: callvirt InfoMode InfoManager::get_CurrentMode()
IL_0116: brtrue => Label8
IL_011B: ldarg 2
IL_011F: call static System.Boolean
ElectricRoads.Overrides.ElectricRoadsOverrides::CheckElectrityNetForLight(InstanceI
D id)
IL_0124: brfalse => Label24
IL_0129: ldc.r4 0
IL_012E: stloc.s 6 (System.Single)
IL_0130: ldarg.s 8
IL_0132: brtrue => Label9
IL_0137: ldarg.1
IL_0138: ldfld System.Boolean PropInfo::m_alwaysActive
IL_013D: brtrue => Label10
IL_0142: Label24
IL_0142: ldarga.s 7
IL_0144: ldc.r4 0
IL_0149: stfld System.Single UnityEngine.Vector4::z
IL_014E: br => Label11
IL_0153: Label9
IL_0153: Label10
IL_0153: ldarg.1
IL_0154: ldflda UnityEngine.Vector2 PropInfo::m_illuminationOffRange
IL_0159: ldfld System.Single UnityEngine.Vector2::x
IL_015E: ldc.r4 1000
IL_0163: blt => Label12
IL_0168: ldarg.1
IL_0169: ldfld BlinkType PropInfo::m_illuminationBlinkType
IL_016E: brfalse => Label13
IL_0173: Label12
IL_0173: call static RenderManager
ColossalFramework.Singleton`1<RenderManager>::get_instance()
IL_0178: callvirt LightSystem RenderManager::get_lightSystem()
IL_017D: stloc.s 7 (LightSystem)
IL_017F: ldloca.s 8 (ColossalFramework.Math.Randomizer)
IL_0181: ldarga.s 2
IL_0183: call System.UInt32 InstanceID::get_Index()
IL_0188: call System.Void
ColossalFramework.Math.Randomizer::.ctor(System.UInt32 _seed)
IL_018D: ldarg.1
IL_018E: ldflda UnityEngine.Vector2 PropInfo::m_illuminationOffRange
IL_0193: ldfld System.Single UnityEngine.Vector2::x
IL_0198: ldloca.s 8 (ColossalFramework.Math.Randomizer)
IL_019A: ldc.i4 100000
IL_019F: call System.Int32
ColossalFramework.Math.Randomizer::Int32(System.UInt32 range)
IL_01A4: conv.r4
IL_01A5: ldc.r4 1E-05
IL_01AA: mul
IL_01AB: ldarg.1
IL_01AC: ldflda UnityEngine.Vector2 PropInfo::m_illuminationOffRange
IL_01B1: ldfld System.Single UnityEngine.Vector2::y
IL_01B6: ldarg.1
IL_01B7: ldflda UnityEngine.Vector2 PropInfo::m_illuminationOffRange
IL_01BC: ldfld System.Single UnityEngine.Vector2::x
IL_01C1: sub
IL_01C2: mul
IL_01C3: add
IL_01C4: stloc.s 6 (System.Single)
IL_01C6: ldarga.s 7
IL_01C8: ldloc.s 6 (System.Single)
IL_01CA: ldc.r4 0.01
IL_01CF: add
IL_01D0: ldloc.s 6 (System.Single)
IL_01D2: ldc.r4 0.01
IL_01D7: sub
IL_01D8: ldloc.s 7 (LightSystem)
IL_01DA: callvirt System.Single LightSystem::get_DayLightIntensity()
IL_01DF: call static System.Single MathUtils::SmoothStep(System.Single edge0,
System.Single edge1, System.Single x)
IL_01E4: stfld System.Single UnityEngine.Vector4::z
IL_01E9: ldarg.1
IL_01EA: ldfld BlinkType PropInfo::m_illuminationBlinkType
IL_01EF: brfalse => Label14
IL_01F4: ldarg.1
IL_01F5: ldfld BlinkType PropInfo::m_illuminationBlinkType
IL_01FA: call static UnityEngine.Vector4
LightEffect::GetBlinkVector(BlinkType type)
IL_01FF: stloc.s 9 (UnityEngine.Vector4)
IL_0201: ldloc.s 6 (System.Single)
IL_0203: ldc.r4 3.71
IL_0208: mul
IL_0209: call static SimulationManager
ColossalFramework.Singleton`1<SimulationManager>::get_instance()
IL_020E: ldfld System.Single SimulationManager::m_simulationTimer
IL_0213: ldloca.s 9 (UnityEngine.Vector4)
IL_0215: ldfld System.Single UnityEngine.Vector4::w
IL_021A: div
IL_021B: add
IL_021C: stloc.s 10 (System.Single)
IL_021E: ldloc.s 10 (System.Single)
IL_0220: ldloc.s 10 (System.Single)
IL_0222: call static System.Single UnityEngine.Mathf::Floor(System.Single f)
IL_0227: sub
IL_0228: ldloca.s 9 (UnityEngine.Vector4)
IL_022A: ldfld System.Single UnityEngine.Vector4::w
IL_022F: mul
IL_0230: stloc.s 10 (System.Single)
IL_0232: ldloca.s 9 (UnityEngine.Vector4)
IL_0234: ldfld System.Single UnityEngine.Vector4::x
IL_0239: ldloca.s 9 (UnityEngine.Vector4)
IL_023B: ldfld System.Single UnityEngine.Vector4::y
IL_0240: ldloc.s 10 (System.Single)
IL_0242: call static System.Single MathUtils::SmoothStep(System.Single edge0,
System.Single edge1, System.Single x)
IL_0247: stloc.s 11 (System.Single)
IL_0249: ldloca.s 9 (UnityEngine.Vector4)
IL_024B: ldfld System.Single UnityEngine.Vector4::w
IL_0250: ldloca.s 9 (UnityEngine.Vector4)
IL_0252: ldfld System.Single UnityEngine.Vector4::z
IL_0257: ldloc.s 10 (System.Single)
IL_0259: call static System.Single MathUtils::SmoothStep(System.Single edge0,
System.Single edge1, System.Single x)
IL_025E: stloc.s 12 (System.Single)
IL_0260: ldarga.s 7
IL_0262: dup
IL_0263: ldfld System.Single UnityEngine.Vector4::z
IL_0268: ldc.r4 1
IL_026D: ldloc.s 11 (System.Single)
IL_026F: ldloc.s 12 (System.Single)
IL_0271: mul
IL_0272: sub
IL_0273: mul
IL_0274: stfld System.Single UnityEngine.Vector4::z
IL_0279: Label14
IL_0279: br => Label15
IL_027E: Label13
IL_027E: ldarga.s 7
IL_0280: ldc.r4 1
IL_0285: stfld System.Single UnityEngine.Vector4::z
IL_028A: Label8
IL_028A: Label11
IL_028A: Label15
IL_028A: ldarg.0
IL_028B: brfalse => Label16
IL_0290: ldarg.0
IL_0291: ldarg.3
IL_0292: ldarg.1
IL_0293: ldfld System.Single PropInfo::m_lodRenderDistance
IL_0298: callvirt System.Boolean
CameraInfo::CheckRenderDistance(UnityEngine.Vector3 point, System.Single
maxDistance)
IL_029D: brfalse => Label17
IL_02A2: Label16
IL_02A2: ldloca.s 13 (UnityEngine.Matrix4x4)
IL_02A4: initobj UnityEngine.Matrix4x4
IL_02AA: ldloca.s 13 (UnityEngine.Matrix4x4)
IL_02AC: ldarg.3
IL_02AD: ldarg.s 5
IL_02AF: ldc.r4 57.29578
IL_02B4: mul
IL_02B5: call static UnityEngine.Vector3 UnityEngine.Vector3::get_down()
IL_02BA: call static UnityEngine.Quaternion
UnityEngine.Quaternion::AngleAxis(System.Single angle, UnityEngine.Vector3 axis)
IL_02BF: ldarg.s 4
IL_02C1: ldarg.s 4
IL_02C3: ldarg.s 4
IL_02C5: newobj System.Void UnityEngine.Vector3::.ctor(System.Single x,
System.Single y, System.Single z)
IL_02CA: call System.Void UnityEngine.Matrix4x4::SetTRS(UnityEngine.Vector3
pos, UnityEngine.Quaternion q, UnityEngine.Vector3 s)
IL_02CF: call static PropManager
ColossalFramework.Singleton`1<PropManager>::get_instance()
IL_02D4: stloc.s 14 (PropManager)
IL_02D6: ldloc.s 14 (PropManager)
IL_02D8: ldfld UnityEngine.MaterialPropertyBlock PropManager::m_materialBlock
IL_02DD: stloc.s 15 (UnityEngine.MaterialPropertyBlock)
IL_02DF: ldloc.s 15 (UnityEngine.MaterialPropertyBlock)
IL_02E1: callvirt System.Void UnityEngine.MaterialPropertyBlock::Clear()
IL_02E6: ldloc.s 15 (UnityEngine.MaterialPropertyBlock)
IL_02E8: ldloc.s 14 (PropManager)
IL_02EA: ldfld System.Int32 PropManager::ID_Color
IL_02EF: ldarg.s 6
IL_02F1: callvirt System.Void
UnityEngine.MaterialPropertyBlock::SetColor(System.Int32 nameID, UnityEngine.Color
value)
IL_02F6: ldloc.s 15 (UnityEngine.MaterialPropertyBlock)
IL_02F8: ldloc.s 14 (PropManager)
IL_02FA: ldfld System.Int32 PropManager::ID_ObjectIndex
IL_02FF: ldarg.s 7
IL_0301: callvirt System.Void
UnityEngine.MaterialPropertyBlock::SetVector(System.Int32 nameID,
UnityEngine.Vector4 value)
IL_0306: ldarg.1
IL_0307: ldfld UnityEngine.Vector4[] PropInfo::m_rollLocation
IL_030C: brfalse => Label18
IL_0311: ldarg.1
IL_0312: ldfld UnityEngine.Material PropInfo::m_material
IL_0317: ldloc.s 14 (PropManager)
IL_0319: ldfld System.Int32 PropManager::ID_RollLocation
IL_031E: ldarg.1
IL_031F: ldfld UnityEngine.Vector4[] PropInfo::m_rollLocation
IL_0324: callvirt System.Void UnityEngine.Material::SetVectorArray(System.Int32
nameID, UnityEngine.Vector4[] values)
IL_0329: ldarg.1
IL_032A: ldfld UnityEngine.Material PropInfo::m_material
IL_032F: ldloc.s 14 (PropManager)
IL_0331: ldfld System.Int32 PropManager::ID_RollParams
IL_0336: ldarg.1
IL_0337: ldfld UnityEngine.Vector4[] PropInfo::m_rollParams
IL_033C: callvirt System.Void UnityEngine.Material::SetVectorArray(System.Int32
nameID, UnityEngine.Vector4[] values)
IL_0341: Label18
IL_0341: ldloc.s 14 (PropManager)
IL_0343: ldflda DrawCallData SimulationManagerBase`2<PropManager,
PropProperties>::m_drawCallData
IL_0348: dup
IL_0349: ldfld System.Int32 DrawCallData::m_defaultCalls
IL_034E: ldc.i4.1
IL_034F: add
IL_0350: stfld System.Int32 DrawCallData::m_defaultCalls
IL_0355: ldarg.1
IL_0356: ldfld UnityEngine.Mesh PropInfo::m_mesh
IL_035B: ldloc.s 13 (UnityEngine.Matrix4x4)
IL_035D: ldarg.1
IL_035E: ldfld UnityEngine.Material PropInfo::m_material
IL_0363: ldarg.1
IL_0364: ldfld System.Int32 PrefabInfo::m_prefabDataLayer
IL_0369: ldnull
IL_036A: ldc.i4.0
IL_036B: ldloc.s 15 (UnityEngine.MaterialPropertyBlock)
IL_036D: call static System.Void
UnityEngine.Graphics::DrawMesh(UnityEngine.Mesh mesh, UnityEngine.Matrix4x4 matrix,
UnityEngine.Material material, System.Int32 layer, UnityEngine.Camera camera,
System.Int32 submeshIndex, UnityEngine.MaterialPropertyBlock properties)
IL_0372: br => Label19
IL_0377: Label17
IL_0377: ldarg.1
IL_0378: ldfld UnityEngine.Material PropInfo::m_lodMaterialCombined
IL_037D: ldnull
IL_037E: call static System.Boolean
UnityEngine.Object::op_Equality(UnityEngine.Object x, UnityEngine.Object y)
IL_0383: brfalse => Label20
IL_0388: ldloca.s 16 (UnityEngine.Matrix4x4)
IL_038A: initobj UnityEngine.Matrix4x4
IL_0390: ldloca.s 16 (UnityEngine.Matrix4x4)
IL_0392: ldarg.3
IL_0393: ldarg.s 5
IL_0395: ldc.r4 57.29578
IL_039A: mul
IL_039B: call static UnityEngine.Vector3 UnityEngine.Vector3::get_down()
IL_03A0: call static UnityEngine.Quaternion
UnityEngine.Quaternion::AngleAxis(System.Single angle, UnityEngine.Vector3 axis)
IL_03A5: ldarg.s 4
IL_03A7: ldarg.s 4
IL_03A9: ldarg.s 4
IL_03AB: newobj System.Void UnityEngine.Vector3::.ctor(System.Single x,
System.Single y, System.Single z)
IL_03B0: call System.Void UnityEngine.Matrix4x4::SetTRS(UnityEngine.Vector3
pos, UnityEngine.Quaternion q, UnityEngine.Vector3 s)
IL_03B5: call static PropManager
ColossalFramework.Singleton`1<PropManager>::get_instance()
IL_03BA: stloc.s 17 (PropManager)
IL_03BC: ldloc.s 17 (PropManager)
IL_03BE: ldfld UnityEngine.MaterialPropertyBlock PropManager::m_materialBlock
IL_03C3: stloc.s 18 (UnityEngine.MaterialPropertyBlock)
IL_03C5: ldloc.s 18 (UnityEngine.MaterialPropertyBlock)
IL_03C7: callvirt System.Void UnityEngine.MaterialPropertyBlock::Clear()
IL_03CC: ldloc.s 18 (UnityEngine.MaterialPropertyBlock)
IL_03CE: ldloc.s 17 (PropManager)
IL_03D0: ldfld System.Int32 PropManager::ID_Color
IL_03D5: ldarg.s 6
IL_03D7: callvirt System.Void
UnityEngine.MaterialPropertyBlock::SetColor(System.Int32 nameID, UnityEngine.Color
value)
IL_03DC: ldloc.s 18 (UnityEngine.MaterialPropertyBlock)
IL_03DE: ldloc.s 17 (PropManager)
IL_03E0: ldfld System.Int32 PropManager::ID_ObjectIndex
IL_03E5: ldarg.s 7
IL_03E7: callvirt System.Void
UnityEngine.MaterialPropertyBlock::SetVector(System.Int32 nameID,
UnityEngine.Vector4 value)
IL_03EC: ldarg.1
IL_03ED: ldfld UnityEngine.Vector4[] PropInfo::m_rollLocation
IL_03F2: brfalse => Label21
IL_03F7: ldarg.1
IL_03F8: ldfld UnityEngine.Material PropInfo::m_material
IL_03FD: ldloc.s 17 (PropManager)
IL_03FF: ldfld System.Int32 PropManager::ID_RollLocation
IL_0404: ldarg.1
IL_0405: ldfld UnityEngine.Vector4[] PropInfo::m_rollLocation
IL_040A: callvirt System.Void UnityEngine.Material::SetVectorArray(System.Int32
nameID, UnityEngine.Vector4[] values)
IL_040F: ldarg.1
IL_0410: ldfld UnityEngine.Material PropInfo::m_material
IL_0415: ldloc.s 17 (PropManager)
IL_0417: ldfld System.Int32 PropManager::ID_RollParams
IL_041C: ldarg.1
IL_041D: ldfld UnityEngine.Vector4[] PropInfo::m_rollParams
IL_0422: callvirt System.Void UnityEngine.Material::SetVectorArray(System.Int32
nameID, UnityEngine.Vector4[] values)
IL_0427: Label21
IL_0427: ldloc.s 17 (PropManager)
IL_0429: ldflda DrawCallData SimulationManagerBase`2<PropManager,
PropProperties>::m_drawCallData
IL_042E: dup
IL_042F: ldfld System.Int32 DrawCallData::m_defaultCalls
IL_0434: ldc.i4.1
IL_0435: add
IL_0436: stfld System.Int32 DrawCallData::m_defaultCalls
IL_043B: ldarg.1
IL_043C: ldfld UnityEngine.Mesh PropInfo::m_lodMesh
IL_0441: ldloc.s 16 (UnityEngine.Matrix4x4)
IL_0443: ldarg.1
IL_0444: ldfld UnityEngine.Material PropInfo::m_lodMaterial
IL_0449: ldarg.1
IL_044A: ldfld System.Int32 PrefabInfo::m_prefabDataLayer
IL_044F: ldnull
IL_0450: ldc.i4.0
IL_0451: ldloc.s 18 (UnityEngine.MaterialPropertyBlock)
IL_0453: call static System.Void
UnityEngine.Graphics::DrawMesh(UnityEngine.Mesh mesh, UnityEngine.Matrix4x4 matrix,
UnityEngine.Material material, System.Int32 layer, UnityEngine.Camera camera,
System.Int32 submeshIndex, UnityEngine.MaterialPropertyBlock properties)
IL_0458: br => Label22
IL_045D: Label20
IL_045D: ldarga.s 7
IL_045F: ldarg.s 4
IL_0461: stfld System.Single UnityEngine.Vector4::w
IL_0466: ldarg.1
IL_0467: ldfld UnityEngine.Vector4[] PropInfo::m_lodLocations
IL_046C: ldarg.1
IL_046D: ldfld System.Int32 PropInfo::m_lodCount
IL_0472: ldelema UnityEngine.Vector4
IL_0477: ldarga.s 3
IL_0479: ldfld System.Single UnityEngine.Vector3::x
IL_047E: ldarga.s 3
IL_0480: ldfld System.Single UnityEngine.Vector3::y
IL_0485: ldarga.s 3
IL_0487: ldfld System.Single UnityEngine.Vector3::z
IL_048C: ldarg.s 5
IL_048E: newobj System.Void UnityEngine.Vector4::.ctor(System.Single x,
System.Single y, System.Single z, System.Single w)
IL_0493: stobj UnityEngine.Vector4
IL_0498: ldarg.1
IL_0499: ldfld UnityEngine.Vector4[] PropInfo::m_lodObjectIndices
IL_049E: ldarg.1
IL_049F: ldfld System.Int32 PropInfo::m_lodCount
IL_04A4: ldelema UnityEngine.Vector4
IL_04A9: ldarg.s 7
IL_04AB: stobj UnityEngine.Vector4
IL_04B0: ldarg.1
IL_04B1: ldfld UnityEngine.Vector4[] PropInfo::m_lodColors
IL_04B6: ldarg.1
IL_04B7: ldfld System.Int32 PropInfo::m_lodCount
IL_04BC: ldelema UnityEngine.Vector4
IL_04C1: ldarga.s 6
IL_04C3: call UnityEngine.Color UnityEngine.Color::get_linear()
IL_04C8: call static UnityEngine.Vector4
UnityEngine.Color::op_Implicit(UnityEngine.Color c)
IL_04CD: stobj UnityEngine.Vector4
IL_04D2: ldarg.1
IL_04D3: ldarg.1
IL_04D4: ldfld UnityEngine.Vector3 PropInfo::m_lodMin
IL_04D9: ldarg.3
IL_04DA: call static UnityEngine.Vector3
UnityEngine.Vector3::Min(UnityEngine.Vector3 lhs, UnityEngine.Vector3 rhs)
IL_04DF: stfld UnityEngine.Vector3 PropInfo::m_lodMin
IL_04E4: ldarg.1
IL_04E5: ldarg.1
IL_04E6: ldfld UnityEngine.Vector3 PropInfo::m_lodMax
IL_04EB: ldarg.3
IL_04EC: call static UnityEngine.Vector3
UnityEngine.Vector3::Max(UnityEngine.Vector3 lhs, UnityEngine.Vector3 rhs)
IL_04F1: stfld UnityEngine.Vector3 PropInfo::m_lodMax
IL_04F6: ldarg.1
IL_04F7: dup
IL_04F8: ldfld System.Int32 PropInfo::m_lodCount
IL_04FD: ldc.i4.1
IL_04FE: add
IL_04FF: dup
IL_0500: stloc.s 19 (System.Int32)
IL_0502: stfld System.Int32 PropInfo::m_lodCount
IL_0507: ldloc.s 19 (System.Int32)
IL_0509: ldarg.1
IL_050A: ldfld UnityEngine.Vector4[] PropInfo::m_lodLocations
IL_050F: ldlen
IL_0510: conv.i4
IL_0511: bne.un => Label23
IL_0516: ldarg.0
IL_0517: ldarg.1
IL_0518: call static System.Void PropInstance::RenderLod(CameraInfo
cameraInfo, PropInfo info)
IL_051D: // end original
IL_051D: Label0
IL_051D: Label6
IL_051D: Label7
IL_051D: Label19
IL_051D: Label22
IL_051D: Label23
IL_051D: ret
DONE

### Patch: virtual System.Void LightEffect::PopulateGroupData(System.Int32 layer,


InstanceID id, UnityEngine.Vector3 pos, UnityEngine.Vector3 dir, 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
LightEffect::LightEffect.PopulateGroupData_Patch1(LightEffect this, System.Int32
layer, InstanceID id, UnityEngine.Vector3 pos, UnityEngine.Vector3 dir,
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.Boolean
IL_0000: Local var 1: UnityEngine.Vector3
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.Quaternion
IL_0000: Local var 7: UnityEngine.Vector4
IL_0000: Local var 8: UnityEngine.Vector2
IL_0000: Local var 9: ColossalFramework.Math.Randomizer
IL_0000: Local var 10: UnityEngine.Vector2
IL_0000: Local var 11: UnityEngine.Vector2
IL_0000: Local var 12: UnityEngine.Vector2
IL_0000: Local var 13: System.UInt16
IL_0000: Local var 14: UnityEngine.Vector3
IL_0000: Local var 15: UnityEngine.Color
IL_0000: Local var 16: UnityEngine.Color
IL_0000: Local var 17: System.Single
IL_0000: Local var 18: System.Single
IL_0000: Local var 19: System.Int32
IL_0000: Local var 20: System.Boolean
IL_0000: ldc.i4 0
IL_0005: stloc 20 (System.Boolean)
IL_0009: ldc.i4.1
IL_000A: stloc 20 (System.Boolean)
IL_000E: ldloc 20 (System.Boolean)
IL_0012: brfalse => Label1
IL_0017: ldarg 2
IL_001B: call static System.Boolean
ElectricRoads.Overrides.ElectricRoadsOverrides::CheckElectrityNetForLight(InstanceI
D id)
IL_0020: stloc 20 (System.Boolean)
IL_0024: Label1
IL_0024: nop
IL_0025: ldloc 20 (System.Boolean)
IL_0029: brfalse => Label0
IL_002E: // start original
IL_002E: ldarg.1
IL_002F: ldarg.0
IL_0030: ldfld System.Int32 LightEffect::m_groupLayer
IL_0035: beq => Label2
IL_003A: ldarg.1
IL_003B: ldarg.0
IL_003C: ldfld System.Int32 LightEffect::m_groupLayerFloating
IL_0041: bne.un => Label3
IL_0046: Label2
IL_0046: ldarg.1
IL_0047: ldarg.0
IL_0048: ldfld System.Int32 LightEffect::m_groupLayerFloating
IL_004D: ceq
IL_004F: stloc.0
IL_0050: ldloca.s 1 (UnityEngine.Vector3)
IL_0052: ldarg.0
IL_0053: ldfld System.Single LightEffect::m_lightRange
IL_0058: ldarg.0
IL_0059: ldfld System.Single LightEffect::m_lightRange
IL_005E: ldarg.0
IL_005F: ldfld System.Single LightEffect::m_lightRange
IL_0064: call System.Void UnityEngine.Vector3::.ctor(System.Single x,
System.Single y, System.Single z)
IL_0069: ldarg.3
IL_006A: ldloc.1
IL_006B: call static UnityEngine.Vector3
UnityEngine.Vector3::op_Subtraction(UnityEngine.Vector3 a, UnityEngine.Vector3 b)
IL_0070: stloc.2
IL_0071: ldarg.3
IL_0072: ldloc.1
IL_0073: call static UnityEngine.Vector3
UnityEngine.Vector3::op_Addition(UnityEngine.Vector3 a, UnityEngine.Vector3 b)
IL_0078: stloc.3
IL_0079: ldarg.s 9
IL_007B: ldarg.s 9
IL_007D: ldobj UnityEngine.Vector3
IL_0082: ldloc.2
IL_0083: call static UnityEngine.Vector3
UnityEngine.Vector3::Min(UnityEngine.Vector3 lhs, UnityEngine.Vector3 rhs)
IL_0088: stobj UnityEngine.Vector3
IL_008D: ldarg.s 10
IL_008F: ldarg.s 10
IL_0091: ldobj UnityEngine.Vector3
IL_0096: ldloc.3
IL_0097: call static UnityEngine.Vector3
UnityEngine.Vector3::Max(UnityEngine.Vector3 lhs, UnityEngine.Vector3 rhs)
IL_009C: stobj UnityEngine.Vector3
IL_00A1: ldarg.3
IL_00A2: ldarg.s 7
IL_00A4: call static UnityEngine.Vector3
UnityEngine.Vector3::op_Subtraction(UnityEngine.Vector3 a, UnityEngine.Vector3 b)
IL_00A9: stloc.s 4 (UnityEngine.Vector3)
IL_00AB: ldarg.s 11
IL_00AD: ldarg.s 11
IL_00AF: ldind.r4
IL_00B0: ldc.r4 30000
IL_00B5: call static System.Single UnityEngine.Mathf::Max(System.Single a,
System.Single b)
IL_00BA: stind.r4
IL_00BB: ldarg.0
IL_00BC: ldfld UnityEngine.LightType LightEffect::m_lightType
IL_00C1: brtrue => Label4
IL_00C6: ldarg.s 4
IL_00C8: call static UnityEngine.Quaternion
UnityEngine.Quaternion::LookRotation(UnityEngine.Vector3 forward)
IL_00CD: stloc.s 6 (UnityEngine.Quaternion)
IL_00CF: ldloc.s 6 (UnityEngine.Quaternion)
IL_00D1: ldarg.0
IL_00D2: ldfld UnityEngine.Quaternion LightEffect::m_lightRotation
IL_00D7: call static UnityEngine.Vector3 UnityEngine.Vector3::get_forward()
IL_00DC: call static UnityEngine.Vector3
UnityEngine.Quaternion::op_Multiply(UnityEngine.Quaternion rotation,
UnityEngine.Vector3 point)
IL_00E1: call static UnityEngine.Vector3
UnityEngine.Quaternion::op_Multiply(UnityEngine.Quaternion rotation,
UnityEngine.Vector3 point)
IL_00E6: stloc.s 5 (UnityEngine.Vector3)
IL_00E8: br => Label5
IL_00ED: Label4
IL_00ED: call static UnityEngine.Vector3 UnityEngine.Vector3::get_forward()
IL_00F2: stloc.s 5 (UnityEngine.Vector3)
IL_00F4: Label5
IL_00F4: ldloca.s 7 (UnityEngine.Vector4)
IL_00F6: ldloca.s 5 (UnityEngine.Vector3)
IL_00F8: ldfld System.Single UnityEngine.Vector3::x
IL_00FD: ldloca.s 5 (UnityEngine.Vector3)
IL_00FF: ldfld System.Single UnityEngine.Vector3::y
IL_0104: ldloca.s 5 (UnityEngine.Vector3)
IL_0106: ldfld System.Single UnityEngine.Vector3::z
IL_010B: ldc.r4 100000
IL_0110: call System.Void UnityEngine.Vector4::.ctor(System.Single x,
System.Single y, System.Single z, System.Single w)
IL_0115: ldarg.0
IL_0116: ldfld UnityEngine.LightType LightEffect::m_lightType
IL_011B: brtrue => Label6
IL_0120: ldloca.s 7 (UnityEngine.Vector4)
IL_0122: ldc.r4 0.01745329
IL_0127: ldarg.0
IL_0128: ldfld System.Single LightEffect::m_lightSpotAngle
IL_012D: mul
IL_012E: ldc.r4 0.5
IL_0133: mul
IL_0134: call static System.Single UnityEngine.Mathf::Cos(System.Single f)
IL_0139: neg
IL_013A: stfld System.Single UnityEngine.Vector4::w
IL_013F: Label6
IL_013F: ldloca.s 8 (UnityEngine.Vector2)
IL_0141: ldc.r4 1
IL_0146: ldarg.0
IL_0147: ldfld System.Single LightEffect::m_lightRange
IL_014C: ldarg.0
IL_014D: ldfld System.Single LightEffect::m_lightRange
IL_0152: mul
IL_0153: div
IL_0154: ldarg.0
IL_0155: ldfld System.Single LightEffect::m_lightIntensity
IL_015A: call System.Void UnityEngine.Vector2::.ctor(System.Single x,
System.Single y)
IL_015F: ldloca.s 9 (ColossalFramework.Math.Randomizer)
IL_0161: ldarga.s 2
IL_0163: call System.UInt32 InstanceID::get_Index()
IL_0168: call System.Void
ColossalFramework.Math.Randomizer::.ctor(System.UInt32 _seed)
IL_016D: ldloca.s 10 (UnityEngine.Vector2)
IL_016F: ldarg.0
IL_0170: ldflda UnityEngine.Vector2 LightEffect::m_offRange
IL_0175: ldfld System.Single UnityEngine.Vector2::x
IL_017A: ldloca.s 9 (ColossalFramework.Math.Randomizer)
IL_017C: ldc.i4 100000
IL_0181: call System.Int32
ColossalFramework.Math.Randomizer::Int32(System.UInt32 range)
IL_0186: conv.r4
IL_0187: ldc.r4 1E-05
IL_018C: mul
IL_018D: ldarg.0
IL_018E: ldflda UnityEngine.Vector2 LightEffect::m_offRange
IL_0193: ldfld System.Single UnityEngine.Vector2::y
IL_0198: ldarg.0
IL_0199: ldflda UnityEngine.Vector2 LightEffect::m_offRange
IL_019E: ldfld System.Single UnityEngine.Vector2::x
IL_01A3: sub
IL_01A4: mul
IL_01A5: add
IL_01A6: stfld System.Single UnityEngine.Vector2::x
IL_01AB: ldloca.s 10 (UnityEngine.Vector2)
IL_01AD: ldarg.0
IL_01AE: ldfld BlinkType LightEffect::m_blinkType
IL_01B3: conv.r4
IL_01B4: stfld System.Single UnityEngine.Vector2::y
IL_01B9: ldarg.2
IL_01BA: call static System.UInt16 EffectInfo::GetBuilding(InstanceID id)
IL_01BF: stloc.s 13 (System.UInt16)
IL_01C1: ldloc.s 13 (System.UInt16)
IL_01C3: brfalse => Label7
IL_01C8: ldloc.s 13 (System.UInt16)
IL_01CA: call static UnityEngine.Vector4
RenderManager::GetColorLocation(System.UInt32 instanceHolder)
IL_01CF: call static UnityEngine.Vector2
UnityEngine.Vector4::op_Implicit(UnityEngine.Vector4 v)
IL_01D4: stloc.s 11 (UnityEngine.Vector2)
IL_01D6: ldloc.0
IL_01D7: brfalse => Label8
IL_01DC: call static BuildingManager
ColossalFramework.Singleton`1<BuildingManager>::get_instance()
IL_01E1: ldfld Array16`1<Building> BuildingManager::m_buildings
IL_01E6: ldfld Building[] Array16`1<Building>::m_buffer
IL_01EB: ldloc.s 13 (System.UInt16)
IL_01ED: ldelema Building
IL_01F2: call UnityEngine.Vector3 Building::CalculateMeshPosition()
IL_01F7: stloc.s 14 (UnityEngine.Vector3)
IL_01F9: ldloc.s 14 (UnityEngine.Vector3)
IL_01FB: call static UnityEngine.Vector2
ColossalFramework.Math.VectorUtils::XZ(UnityEngine.Vector3 v)
IL_0200: stloc.s 12 (UnityEngine.Vector2)
IL_0202: ldarga.s 3
IL_0204: dup
IL_0205: ldfld System.Single UnityEngine.Vector3::y
IL_020A: ldloca.s 14 (UnityEngine.Vector3)
IL_020C: ldfld System.Single UnityEngine.Vector3::y
IL_0211: sub
IL_0212: stfld System.Single UnityEngine.Vector3::y
IL_0217: ldloca.s 4 (UnityEngine.Vector3)
IL_0219: dup
IL_021A: ldfld System.Single UnityEngine.Vector3::y
IL_021F: ldloca.s 14 (UnityEngine.Vector3)
IL_0221: ldfld System.Single UnityEngine.Vector3::y
IL_0226: sub
IL_0227: stfld System.Single UnityEngine.Vector3::y
IL_022C: br => Label9
IL_0231: Label8
IL_0231: call static UnityEngine.Vector2 UnityEngine.Vector2::get_zero()
IL_0236: stloc.s 12 (UnityEngine.Vector2)
IL_0238: Label9
IL_0238: br => Label10
IL_023D: Label7
IL_023D: ldsfld UnityEngine.Vector4 RenderManager::DefaultColorLocation
IL_0242: call static UnityEngine.Vector2
UnityEngine.Vector4::op_Implicit(UnityEngine.Vector4 v)
IL_0247: stloc.s 11 (UnityEngine.Vector2)
IL_0249: call static UnityEngine.Vector2 UnityEngine.Vector2::get_zero()
IL_024E: stloc.s 12 (UnityEngine.Vector2)
IL_0250: Label10
IL_0250: ldarg.0
IL_0251: ldfld UnityEngine.Color LightEffect::m_lightColor
IL_0256: stloc.s 15 (UnityEngine.Color)
IL_0258: ldarg.0
IL_0259: ldfld UnityEngine.Color[] LightEffect::m_variationColors
IL_025E: brfalse => Label11
IL_0263: ldarg.0
IL_0264: ldfld UnityEngine.Color[] LightEffect::m_variationColors
IL_0269: ldlen
IL_026A: conv.i4
IL_026B: brfalse => Label12
IL_0270: ldarg.0
IL_0271: ldfld UnityEngine.Color[] LightEffect::m_variationColors
IL_0276: ldloca.s 9 (ColossalFramework.Math.Randomizer)
IL_0278: ldarg.0
IL_0279: ldfld UnityEngine.Color[] LightEffect::m_variationColors
IL_027E: ldlen
IL_027F: conv.i4
IL_0280: call System.Int32
ColossalFramework.Math.Randomizer::Int32(System.UInt32 range)
IL_0285: ldelema UnityEngine.Color
IL_028A: ldobj UnityEngine.Color
IL_028F: stloc.s 16 (UnityEngine.Color)
IL_0291: ldloc.s 15 (UnityEngine.Color)
IL_0293: ldloc.s 16 (UnityEngine.Color)
IL_0295: ldloca.s 9 (ColossalFramework.Math.Randomizer)
IL_0297: ldc.i4 1000
IL_029C: call System.Int32
ColossalFramework.Math.Randomizer::Int32(System.UInt32 range)
IL_02A1: conv.r4
IL_02A2: ldc.r4 0.001
IL_02A7: mul
IL_02A8: call static UnityEngine.Color
UnityEngine.Color::Lerp(UnityEngine.Color a, UnityEngine.Color b, System.Single t)
IL_02AD: stloc.s 15 (UnityEngine.Color)
IL_02AF: Label11
IL_02AF: Label12
IL_02AF: ldloca.s 15 (UnityEngine.Color)
IL_02B1: call UnityEngine.Color UnityEngine.Color::get_linear()
IL_02B6: stloc.s 15 (UnityEngine.Color)
IL_02B8: ldloca.s 15 (UnityEngine.Color)
IL_02BA: ldarg.0
IL_02BB: ldfld UnityEngine.LightType LightEffect::m_lightType
IL_02C0: brtrue => Label13
IL_02C5: ldarg.0
IL_02C6: ldfld System.Single LightEffect::m_spotLeaking
IL_02CB: br => Label14
IL_02D0: Label13
IL_02D0: ldc.r4 0
IL_02D5: Label14
IL_02D5: stfld System.Single UnityEngine.Color::a
IL_02DA: ldarg.0
IL_02DB: ldfld System.Single LightEffect::m_lightRange
IL_02E0: ldc.r4 0.5235988
IL_02E5: call static System.Single UnityEngine.Mathf::Cos(System.Single f)
IL_02EA: div
IL_02EB: stloc.s 17 (System.Single)
IL_02ED: ldloc.s 17 (System.Single)
IL_02EF: ldc.r4 0.5
IL_02F4: mul
IL_02F5: stloc.s 18 (System.Single)
IL_02F7: ldarg.s 8
IL_02F9: ldfld UnityEngine.Vector3[] MeshData::m_vertices
IL_02FE: ldarg.s 5
IL_0300: ldind.i4
IL_0301: ldelema UnityEngine.Vector3
IL_0306: ldloca.s 4 (UnityEngine.Vector3)
IL_0308: ldfld System.Single UnityEngine.Vector3::x
IL_030D: ldloc.s 18 (System.Single)
IL_030F: sub
IL_0310: ldloca.s 4 (UnityEngine.Vector3)
IL_0312: ldfld System.Single UnityEngine.Vector3::y
IL_0317: ldarg.0
IL_0318: ldfld System.Single LightEffect::m_lightRange
IL_031D: add
IL_031E: ldloca.s 4 (UnityEngine.Vector3)
IL_0320: ldfld System.Single UnityEngine.Vector3::z
IL_0325: ldarg.0
IL_0326: ldfld System.Single LightEffect::m_lightRange
IL_032B: add
IL_032C: newobj System.Void UnityEngine.Vector3::.ctor(System.Single x,
System.Single y, System.Single z)
IL_0331: stobj UnityEngine.Vector3
IL_0336: ldarg.s 8
IL_0338: ldfld UnityEngine.Vector3[] MeshData::m_normals
IL_033D: ldarg.s 5
IL_033F: ldind.i4
IL_0340: ldelema UnityEngine.Vector3
IL_0345: ldarg.3
IL_0346: stobj UnityEngine.Vector3
IL_034B: ldarg.s 8
IL_034D: ldfld UnityEngine.Vector4[] MeshData::m_tangents
IL_0352: ldarg.s 5
IL_0354: ldind.i4
IL_0355: ldelema UnityEngine.Vector4
IL_035A: ldloc.s 7 (UnityEngine.Vector4)
IL_035C: stobj UnityEngine.Vector4
IL_0361: ldarg.s 8
IL_0363: ldfld UnityEngine.Vector2[] MeshData::m_uvs
IL_0368: ldarg.s 5
IL_036A: ldind.i4
IL_036B: ldelema UnityEngine.Vector2
IL_0370: ldloc.s 8 (UnityEngine.Vector2)
IL_0372: stobj UnityEngine.Vector2
IL_0377: ldarg.s 8
IL_0379: ldfld UnityEngine.Vector2[] MeshData::m_uvs2
IL_037E: ldarg.s 5
IL_0380: ldind.i4
IL_0381: ldelema UnityEngine.Vector2
IL_0386: ldloc.s 10 (UnityEngine.Vector2)
IL_0388: stobj UnityEngine.Vector2
IL_038D: ldarg.s 8
IL_038F: ldfld UnityEngine.Vector2[] MeshData::m_uvs3
IL_0394: ldarg.s 5
IL_0396: ldind.i4
IL_0397: ldelema UnityEngine.Vector2
IL_039C: ldloc.s 11 (UnityEngine.Vector2)
IL_039E: stobj UnityEngine.Vector2
IL_03A3: ldloc.0
IL_03A4: brfalse => Label15
IL_03A9: ldarg.s 8
IL_03AB: ldfld UnityEngine.Vector2[] MeshData::m_uvs4
IL_03B0: ldarg.s 5
IL_03B2: ldind.i4
IL_03B3: ldelema UnityEngine.Vector2
IL_03B8: ldloc.s 12 (UnityEngine.Vector2)
IL_03BA: stobj UnityEngine.Vector2
IL_03BF: Label15
IL_03BF: ldarg.s 8
IL_03C1: ldfld UnityEngine.Color32[] MeshData::m_colors
IL_03C6: ldarg.s 5
IL_03C8: ldind.i4
IL_03C9: ldelema UnityEngine.Color32
IL_03CE: ldloc.s 15 (UnityEngine.Color)
IL_03D0: call static UnityEngine.Color32
UnityEngine.Color32::op_Implicit(UnityEngine.Color c)
IL_03D5: stobj UnityEngine.Color32
IL_03DA: ldarg.s 5
IL_03DC: ldarg.s 5
IL_03DE: ldind.i4
IL_03DF: ldc.i4.1
IL_03E0: add
IL_03E1: stind.i4
IL_03E2: ldarg.s 8
IL_03E4: ldfld UnityEngine.Vector3[] MeshData::m_vertices
IL_03E9: ldarg.s 5
IL_03EB: ldind.i4
IL_03EC: ldelema UnityEngine.Vector3
IL_03F1: ldloca.s 4 (UnityEngine.Vector3)
IL_03F3: ldfld System.Single UnityEngine.Vector3::x
IL_03F8: ldloc.s 18 (System.Single)
IL_03FA: add
IL_03FB: ldloca.s 4 (UnityEngine.Vector3)
IL_03FD: ldfld System.Single UnityEngine.Vector3::y
IL_0402: ldarg.0
IL_0403: ldfld System.Single LightEffect::m_lightRange
IL_0408: add
IL_0409: ldloca.s 4 (UnityEngine.Vector3)
IL_040B: ldfld System.Single UnityEngine.Vector3::z
IL_0410: ldarg.0
IL_0411: ldfld System.Single LightEffect::m_lightRange
IL_0416: add
IL_0417: newobj System.Void UnityEngine.Vector3::.ctor(System.Single x,
System.Single y, System.Single z)
IL_041C: stobj UnityEngine.Vector3
IL_0421: ldarg.s 8
IL_0423: ldfld UnityEngine.Vector3[] MeshData::m_normals
IL_0428: ldarg.s 5
IL_042A: ldind.i4
IL_042B: ldelema UnityEngine.Vector3
IL_0430: ldarg.3
IL_0431: stobj UnityEngine.Vector3
IL_0436: ldarg.s 8
IL_0438: ldfld UnityEngine.Vector4[] MeshData::m_tangents
IL_043D: ldarg.s 5
IL_043F: ldind.i4
IL_0440: ldelema UnityEngine.Vector4
IL_0445: ldloc.s 7 (UnityEngine.Vector4)
IL_0447: stobj UnityEngine.Vector4
IL_044C: ldarg.s 8
IL_044E: ldfld UnityEngine.Vector2[] MeshData::m_uvs
IL_0453: ldarg.s 5
IL_0455: ldind.i4
IL_0456: ldelema UnityEngine.Vector2
IL_045B: ldloc.s 8 (UnityEngine.Vector2)
IL_045D: stobj UnityEngine.Vector2
IL_0462: ldarg.s 8
IL_0464: ldfld UnityEngine.Vector2[] MeshData::m_uvs2
IL_0469: ldarg.s 5
IL_046B: ldind.i4
IL_046C: ldelema UnityEngine.Vector2
IL_0471: ldloc.s 10 (UnityEngine.Vector2)
IL_0473: stobj UnityEngine.Vector2
IL_0478: ldarg.s 8
IL_047A: ldfld UnityEngine.Vector2[] MeshData::m_uvs3
IL_047F: ldarg.s 5
IL_0481: ldind.i4
IL_0482: ldelema UnityEngine.Vector2
IL_0487: ldloc.s 11 (UnityEngine.Vector2)
IL_0489: stobj UnityEngine.Vector2
IL_048E: ldloc.0
IL_048F: brfalse => Label16
IL_0494: ldarg.s 8
IL_0496: ldfld UnityEngine.Vector2[] MeshData::m_uvs4
IL_049B: ldarg.s 5
IL_049D: ldind.i4
IL_049E: ldelema UnityEngine.Vector2
IL_04A3: ldloc.s 12 (UnityEngine.Vector2)
IL_04A5: stobj UnityEngine.Vector2
IL_04AA: Label16
IL_04AA: ldarg.s 8
IL_04AC: ldfld UnityEngine.Color32[] MeshData::m_colors
IL_04B1: ldarg.s 5
IL_04B3: ldind.i4
IL_04B4: ldelema UnityEngine.Color32
IL_04B9: ldloc.s 15 (UnityEngine.Color)
IL_04BB: call static UnityEngine.Color32
UnityEngine.Color32::op_Implicit(UnityEngine.Color c)
IL_04C0: stobj UnityEngine.Color32
IL_04C5: ldarg.s 5
IL_04C7: ldarg.s 5
IL_04C9: ldind.i4
IL_04CA: ldc.i4.1
IL_04CB: add
IL_04CC: stind.i4
IL_04CD: ldarg.s 8
IL_04CF: ldfld UnityEngine.Vector3[] MeshData::m_vertices
IL_04D4: ldarg.s 5
IL_04D6: ldind.i4
IL_04D7: ldelema UnityEngine.Vector3
IL_04DC: ldloca.s 4 (UnityEngine.Vector3)
IL_04DE: ldfld System.Single UnityEngine.Vector3::x
IL_04E3: ldloc.s 17 (System.Single)
IL_04E5: add
IL_04E6: ldloca.s 4 (UnityEngine.Vector3)
IL_04E8: ldfld System.Single UnityEngine.Vector3::y
IL_04ED: ldloca.s 4 (UnityEngine.Vector3)
IL_04EF: ldfld System.Single UnityEngine.Vector3::z
IL_04F4: ldarg.0
IL_04F5: ldfld System.Single LightEffect::m_lightRange
IL_04FA: add
IL_04FB: newobj System.Void UnityEngine.Vector3::.ctor(System.Single x,
System.Single y, System.Single z)
IL_0500: stobj UnityEngine.Vector3
IL_0505: ldarg.s 8
IL_0507: ldfld UnityEngine.Vector3[] MeshData::m_normals
IL_050C: ldarg.s 5
IL_050E: ldind.i4
IL_050F: ldelema UnityEngine.Vector3
IL_0514: ldarg.3
IL_0515: stobj UnityEngine.Vector3
IL_051A: ldarg.s 8
IL_051C: ldfld UnityEngine.Vector4[] MeshData::m_tangents
IL_0521: ldarg.s 5
IL_0523: ldind.i4
IL_0524: ldelema UnityEngine.Vector4
IL_0529: ldloc.s 7 (UnityEngine.Vector4)
IL_052B: stobj UnityEngine.Vector4
IL_0530: ldarg.s 8
IL_0532: ldfld UnityEngine.Vector2[] MeshData::m_uvs
IL_0537: ldarg.s 5
IL_0539: ldind.i4
IL_053A: ldelema UnityEngine.Vector2
IL_053F: ldloc.s 8 (UnityEngine.Vector2)
IL_0541: stobj UnityEngine.Vector2
IL_0546: ldarg.s 8
IL_0548: ldfld UnityEngine.Vector2[] MeshData::m_uvs2
IL_054D: ldarg.s 5
IL_054F: ldind.i4
IL_0550: ldelema UnityEngine.Vector2
IL_0555: ldloc.s 10 (UnityEngine.Vector2)
IL_0557: stobj UnityEngine.Vector2
IL_055C: ldarg.s 8
IL_055E: ldfld UnityEngine.Vector2[] MeshData::m_uvs3
IL_0563: ldarg.s 5
IL_0565: ldind.i4
IL_0566: ldelema UnityEngine.Vector2
IL_056B: ldloc.s 11 (UnityEngine.Vector2)
IL_056D: stobj UnityEngine.Vector2
IL_0572: ldloc.0
IL_0573: brfalse => Label17
IL_0578: ldarg.s 8
IL_057A: ldfld UnityEngine.Vector2[] MeshData::m_uvs4
IL_057F: ldarg.s 5
IL_0581: ldind.i4
IL_0582: ldelema UnityEngine.Vector2
IL_0587: ldloc.s 12 (UnityEngine.Vector2)
IL_0589: stobj UnityEngine.Vector2
IL_058E: Label17
IL_058E: ldarg.s 8
IL_0590: ldfld UnityEngine.Color32[] MeshData::m_colors
IL_0595: ldarg.s 5
IL_0597: ldind.i4
IL_0598: ldelema UnityEngine.Color32
IL_059D: ldloc.s 15 (UnityEngine.Color)
IL_059F: call static UnityEngine.Color32
UnityEngine.Color32::op_Implicit(UnityEngine.Color c)
IL_05A4: stobj UnityEngine.Color32
IL_05A9: ldarg.s 5
IL_05AB: ldarg.s 5
IL_05AD: ldind.i4
IL_05AE: ldc.i4.1
IL_05AF: add
IL_05B0: stind.i4
IL_05B1: ldarg.s 8
IL_05B3: ldfld UnityEngine.Vector3[] MeshData::m_vertices
IL_05B8: ldarg.s 5
IL_05BA: ldind.i4
IL_05BB: ldelema UnityEngine.Vector3
IL_05C0: ldloca.s 4 (UnityEngine.Vector3)
IL_05C2: ldfld System.Single UnityEngine.Vector3::x
IL_05C7: ldloc.s 18 (System.Single)
IL_05C9: add
IL_05CA: ldloca.s 4 (UnityEngine.Vector3)
IL_05CC: ldfld System.Single UnityEngine.Vector3::y
IL_05D1: ldarg.0
IL_05D2: ldfld System.Single LightEffect::m_lightRange
IL_05D7: sub
IL_05D8: ldloca.s 4 (UnityEngine.Vector3)
IL_05DA: ldfld System.Single UnityEngine.Vector3::z
IL_05DF: ldarg.0
IL_05E0: ldfld System.Single LightEffect::m_lightRange
IL_05E5: add
IL_05E6: newobj System.Void UnityEngine.Vector3::.ctor(System.Single x,
System.Single y, System.Single z)
IL_05EB: stobj UnityEngine.Vector3
IL_05F0: ldarg.s 8
IL_05F2: ldfld UnityEngine.Vector3[] MeshData::m_normals
IL_05F7: ldarg.s 5
IL_05F9: ldind.i4
IL_05FA: ldelema UnityEngine.Vector3
IL_05FF: ldarg.3
IL_0600: stobj UnityEngine.Vector3
IL_0605: ldarg.s 8
IL_0607: ldfld UnityEngine.Vector4[] MeshData::m_tangents
IL_060C: ldarg.s 5
IL_060E: ldind.i4
IL_060F: ldelema UnityEngine.Vector4
IL_0614: ldloc.s 7 (UnityEngine.Vector4)
IL_0616: stobj UnityEngine.Vector4
IL_061B: ldarg.s 8
IL_061D: ldfld UnityEngine.Vector2[] MeshData::m_uvs
IL_0622: ldarg.s 5
IL_0624: ldind.i4
IL_0625: ldelema UnityEngine.Vector2
IL_062A: ldloc.s 8 (UnityEngine.Vector2)
IL_062C: stobj UnityEngine.Vector2
IL_0631: ldarg.s 8
IL_0633: ldfld UnityEngine.Vector2[] MeshData::m_uvs2
IL_0638: ldarg.s 5
IL_063A: ldind.i4
IL_063B: ldelema UnityEngine.Vector2
IL_0640: ldloc.s 10 (UnityEngine.Vector2)
IL_0642: stobj UnityEngine.Vector2
IL_0647: ldarg.s 8
IL_0649: ldfld UnityEngine.Vector2[] MeshData::m_uvs3
IL_064E: ldarg.s 5
IL_0650: ldind.i4
IL_0651: ldelema UnityEngine.Vector2
IL_0656: ldloc.s 11 (UnityEngine.Vector2)
IL_0658: stobj UnityEngine.Vector2
IL_065D: ldloc.0
IL_065E: brfalse => Label18
IL_0663: ldarg.s 8
IL_0665: ldfld UnityEngine.Vector2[] MeshData::m_uvs4
IL_066A: ldarg.s 5
IL_066C: ldind.i4
IL_066D: ldelema UnityEngine.Vector2
IL_0672: ldloc.s 12 (UnityEngine.Vector2)
IL_0674: stobj UnityEngine.Vector2
IL_0679: Label18
IL_0679: ldarg.s 8
IL_067B: ldfld UnityEngine.Color32[] MeshData::m_colors
IL_0680: ldarg.s 5
IL_0682: ldind.i4
IL_0683: ldelema UnityEngine.Color32
IL_0688: ldloc.s 15 (UnityEngine.Color)
IL_068A: call static UnityEngine.Color32
UnityEngine.Color32::op_Implicit(UnityEngine.Color c)
IL_068F: stobj UnityEngine.Color32
IL_0694: ldarg.s 5
IL_0696: ldarg.s 5
IL_0698: ldind.i4
IL_0699: ldc.i4.1
IL_069A: add
IL_069B: stind.i4
IL_069C: ldarg.s 8
IL_069E: ldfld UnityEngine.Vector3[] MeshData::m_vertices
IL_06A3: ldarg.s 5
IL_06A5: ldind.i4
IL_06A6: ldelema UnityEngine.Vector3
IL_06AB: ldloca.s 4 (UnityEngine.Vector3)
IL_06AD: ldfld System.Single UnityEngine.Vector3::x
IL_06B2: ldloc.s 18 (System.Single)
IL_06B4: sub
IL_06B5: ldloca.s 4 (UnityEngine.Vector3)
IL_06B7: ldfld System.Single UnityEngine.Vector3::y
IL_06BC: ldarg.0
IL_06BD: ldfld System.Single LightEffect::m_lightRange
IL_06C2: sub
IL_06C3: ldloca.s 4 (UnityEngine.Vector3)
IL_06C5: ldfld System.Single UnityEngine.Vector3::z
IL_06CA: ldarg.0
IL_06CB: ldfld System.Single LightEffect::m_lightRange
IL_06D0: add
IL_06D1: newobj System.Void UnityEngine.Vector3::.ctor(System.Single x,
System.Single y, System.Single z)
IL_06D6: stobj UnityEngine.Vector3
IL_06DB: ldarg.s 8
IL_06DD: ldfld UnityEngine.Vector3[] MeshData::m_normals
IL_06E2: ldarg.s 5
IL_06E4: ldind.i4
IL_06E5: ldelema UnityEngine.Vector3
IL_06EA: ldarg.3
IL_06EB: stobj UnityEngine.Vector3
IL_06F0: ldarg.s 8
IL_06F2: ldfld UnityEngine.Vector4[] MeshData::m_tangents
IL_06F7: ldarg.s 5
IL_06F9: ldind.i4
IL_06FA: ldelema UnityEngine.Vector4
IL_06FF: ldloc.s 7 (UnityEngine.Vector4)
IL_0701: stobj UnityEngine.Vector4
IL_0706: ldarg.s 8
IL_0708: ldfld UnityEngine.Vector2[] MeshData::m_uvs
IL_070D: ldarg.s 5
IL_070F: ldind.i4
IL_0710: ldelema UnityEngine.Vector2
IL_0715: ldloc.s 8 (UnityEngine.Vector2)
IL_0717: stobj UnityEngine.Vector2
IL_071C: ldarg.s 8
IL_071E: ldfld UnityEngine.Vector2[] MeshData::m_uvs2
IL_0723: ldarg.s 5
IL_0725: ldind.i4
IL_0726: ldelema UnityEngine.Vector2
IL_072B: ldloc.s 10 (UnityEngine.Vector2)
IL_072D: stobj UnityEngine.Vector2
IL_0732: ldarg.s 8
IL_0734: ldfld UnityEngine.Vector2[] MeshData::m_uvs3
IL_0739: ldarg.s 5
IL_073B: ldind.i4
IL_073C: ldelema UnityEngine.Vector2
IL_0741: ldloc.s 11 (UnityEngine.Vector2)
IL_0743: stobj UnityEngine.Vector2
IL_0748: ldloc.0
IL_0749: brfalse => Label19
IL_074E: ldarg.s 8
IL_0750: ldfld UnityEngine.Vector2[] MeshData::m_uvs4
IL_0755: ldarg.s 5
IL_0757: ldind.i4
IL_0758: ldelema UnityEngine.Vector2
IL_075D: ldloc.s 12 (UnityEngine.Vector2)
IL_075F: stobj UnityEngine.Vector2
IL_0764: Label19
IL_0764: ldarg.s 8
IL_0766: ldfld UnityEngine.Color32[] MeshData::m_colors
IL_076B: ldarg.s 5
IL_076D: ldind.i4
IL_076E: ldelema UnityEngine.Color32
IL_0773: ldloc.s 15 (UnityEngine.Color)
IL_0775: call static UnityEngine.Color32
UnityEngine.Color32::op_Implicit(UnityEngine.Color c)
IL_077A: stobj UnityEngine.Color32
IL_077F: ldarg.s 5
IL_0781: ldarg.s 5
IL_0783: ldind.i4
IL_0784: ldc.i4.1
IL_0785: add
IL_0786: stind.i4
IL_0787: ldarg.s 8
IL_0789: ldfld UnityEngine.Vector3[] MeshData::m_vertices
IL_078E: ldarg.s 5
IL_0790: ldind.i4
IL_0791: ldelema UnityEngine.Vector3
IL_0796: ldloca.s 4 (UnityEngine.Vector3)
IL_0798: ldfld System.Single UnityEngine.Vector3::x
IL_079D: ldloc.s 17 (System.Single)
IL_079F: sub
IL_07A0: ldloca.s 4 (UnityEngine.Vector3)
IL_07A2: ldfld System.Single UnityEngine.Vector3::y
IL_07A7: ldloca.s 4 (UnityEngine.Vector3)
IL_07A9: ldfld System.Single UnityEngine.Vector3::z
IL_07AE: ldarg.0
IL_07AF: ldfld System.Single LightEffect::m_lightRange
IL_07B4: add
IL_07B5: newobj System.Void UnityEngine.Vector3::.ctor(System.Single x,
System.Single y, System.Single z)
IL_07BA: stobj UnityEngine.Vector3
IL_07BF: ldarg.s 8
IL_07C1: ldfld UnityEngine.Vector3[] MeshData::m_normals
IL_07C6: ldarg.s 5
IL_07C8: ldind.i4
IL_07C9: ldelema UnityEngine.Vector3
IL_07CE: ldarg.3
IL_07CF: stobj UnityEngine.Vector3
IL_07D4: ldarg.s 8
IL_07D6: ldfld UnityEngine.Vector4[] MeshData::m_tangents
IL_07DB: ldarg.s 5
IL_07DD: ldind.i4
IL_07DE: ldelema UnityEngine.Vector4
IL_07E3: ldloc.s 7 (UnityEngine.Vector4)
IL_07E5: stobj UnityEngine.Vector4
IL_07EA: ldarg.s 8
IL_07EC: ldfld UnityEngine.Vector2[] MeshData::m_uvs
IL_07F1: ldarg.s 5
IL_07F3: ldind.i4
IL_07F4: ldelema UnityEngine.Vector2
IL_07F9: ldloc.s 8 (UnityEngine.Vector2)
IL_07FB: stobj UnityEngine.Vector2
IL_0800: ldarg.s 8
IL_0802: ldfld UnityEngine.Vector2[] MeshData::m_uvs2
IL_0807: ldarg.s 5
IL_0809: ldind.i4
IL_080A: ldelema UnityEngine.Vector2
IL_080F: ldloc.s 10 (UnityEngine.Vector2)
IL_0811: stobj UnityEngine.Vector2
IL_0816: ldarg.s 8
IL_0818: ldfld UnityEngine.Vector2[] MeshData::m_uvs3
IL_081D: ldarg.s 5
IL_081F: ldind.i4
IL_0820: ldelema UnityEngine.Vector2
IL_0825: ldloc.s 11 (UnityEngine.Vector2)
IL_0827: stobj UnityEngine.Vector2
IL_082C: ldloc.0
IL_082D: brfalse => Label20
IL_0832: ldarg.s 8
IL_0834: ldfld UnityEngine.Vector2[] MeshData::m_uvs4
IL_0839: ldarg.s 5
IL_083B: ldind.i4
IL_083C: ldelema UnityEngine.Vector2
IL_0841: ldloc.s 12 (UnityEngine.Vector2)
IL_0843: stobj UnityEngine.Vector2
IL_0848: Label20
IL_0848: ldarg.s 8
IL_084A: ldfld UnityEngine.Color32[] MeshData::m_colors
IL_084F: ldarg.s 5
IL_0851: ldind.i4
IL_0852: ldelema UnityEngine.Color32
IL_0857: ldloc.s 15 (UnityEngine.Color)
IL_0859: call static UnityEngine.Color32
UnityEngine.Color32::op_Implicit(UnityEngine.Color c)
IL_085E: stobj UnityEngine.Color32
IL_0863: ldarg.s 5
IL_0865: ldarg.s 5
IL_0867: ldind.i4
IL_0868: ldc.i4.1
IL_0869: add
IL_086A: stind.i4
IL_086B: ldarg.s 8
IL_086D: ldfld System.Int32[] MeshData::m_triangles
IL_0872: ldarg.s 6
IL_0874: ldarg.s 6
IL_0876: ldind.i4
IL_0877: dup
IL_0878: stloc.s 19 (System.Int32)
IL_087A: ldc.i4.1
IL_087B: add
IL_087C: stind.i4
IL_087D: ldloc.s 19 (System.Int32)
IL_087F: ldarg.s 5
IL_0881: ldind.i4
IL_0882: ldc.i4.6
IL_0883: sub
IL_0884: stelem.i4
IL_0885: ldarg.s 8
IL_0887: ldfld System.Int32[] MeshData::m_triangles
IL_088C: ldarg.s 6
IL_088E: ldarg.s 6
IL_0890: ldind.i4
IL_0891: dup
IL_0892: stloc.s 19 (System.Int32)
IL_0894: ldc.i4.1
IL_0895: add
IL_0896: stind.i4
IL_0897: ldloc.s 19 (System.Int32)
IL_0899: ldarg.s 5
IL_089B: ldind.i4
IL_089C: ldc.i4.5
IL_089D: sub
IL_089E: stelem.i4
IL_089F: ldarg.s 8
IL_08A1: ldfld System.Int32[] MeshData::m_triangles
IL_08A6: ldarg.s 6
IL_08A8: ldarg.s 6
IL_08AA: ldind.i4
IL_08AB: dup
IL_08AC: stloc.s 19 (System.Int32)
IL_08AE: ldc.i4.1
IL_08AF: add
IL_08B0: stind.i4
IL_08B1: ldloc.s 19 (System.Int32)
IL_08B3: ldarg.s 5
IL_08B5: ldind.i4
IL_08B6: ldc.i4.1
IL_08B7: sub
IL_08B8: stelem.i4
IL_08B9: ldarg.s 8
IL_08BB: ldfld System.Int32[] MeshData::m_triangles
IL_08C0: ldarg.s 6
IL_08C2: ldarg.s 6
IL_08C4: ldind.i4
IL_08C5: dup
IL_08C6: stloc.s 19 (System.Int32)
IL_08C8: ldc.i4.1
IL_08C9: add
IL_08CA: stind.i4
IL_08CB: ldloc.s 19 (System.Int32)
IL_08CD: ldarg.s 5
IL_08CF: ldind.i4
IL_08D0: ldc.i4.1
IL_08D1: sub
IL_08D2: stelem.i4
IL_08D3: ldarg.s 8
IL_08D5: ldfld System.Int32[] MeshData::m_triangles
IL_08DA: ldarg.s 6
IL_08DC: ldarg.s 6
IL_08DE: ldind.i4
IL_08DF: dup
IL_08E0: stloc.s 19 (System.Int32)
IL_08E2: ldc.i4.1
IL_08E3: add
IL_08E4: stind.i4
IL_08E5: ldloc.s 19 (System.Int32)
IL_08E7: ldarg.s 5
IL_08E9: ldind.i4
IL_08EA: ldc.i4.5
IL_08EB: sub
IL_08EC: stelem.i4
IL_08ED: ldarg.s 8
IL_08EF: ldfld System.Int32[] MeshData::m_triangles
IL_08F4: ldarg.s 6
IL_08F6: ldarg.s 6
IL_08F8: ldind.i4
IL_08F9: dup
IL_08FA: stloc.s 19 (System.Int32)
IL_08FC: ldc.i4.1
IL_08FD: add
IL_08FE: stind.i4
IL_08FF: ldloc.s 19 (System.Int32)
IL_0901: ldarg.s 5
IL_0903: ldind.i4
IL_0904: ldc.i4.4
IL_0905: sub
IL_0906: stelem.i4
IL_0907: ldarg.s 8
IL_0909: ldfld System.Int32[] MeshData::m_triangles
IL_090E: ldarg.s 6
IL_0910: ldarg.s 6
IL_0912: ldind.i4
IL_0913: dup
IL_0914: stloc.s 19 (System.Int32)
IL_0916: ldc.i4.1
IL_0917: add
IL_0918: stind.i4
IL_0919: ldloc.s 19 (System.Int32)
IL_091B: ldarg.s 5
IL_091D: ldind.i4
IL_091E: ldc.i4.1
IL_091F: sub
IL_0920: stelem.i4
IL_0921: ldarg.s 8
IL_0923: ldfld System.Int32[] MeshData::m_triangles
IL_0928: ldarg.s 6
IL_092A: ldarg.s 6
IL_092C: ldind.i4
IL_092D: dup
IL_092E: stloc.s 19 (System.Int32)
IL_0930: ldc.i4.1
IL_0931: add
IL_0932: stind.i4
IL_0933: ldloc.s 19 (System.Int32)
IL_0935: ldarg.s 5
IL_0937: ldind.i4
IL_0938: ldc.i4.4
IL_0939: sub
IL_093A: stelem.i4
IL_093B: ldarg.s 8
IL_093D: ldfld System.Int32[] MeshData::m_triangles
IL_0942: ldarg.s 6
IL_0944: ldarg.s 6
IL_0946: ldind.i4
IL_0947: dup
IL_0948: stloc.s 19 (System.Int32)
IL_094A: ldc.i4.1
IL_094B: add
IL_094C: stind.i4
IL_094D: ldloc.s 19 (System.Int32)
IL_094F: ldarg.s 5
IL_0951: ldind.i4
IL_0952: ldc.i4.2
IL_0953: sub
IL_0954: stelem.i4
IL_0955: ldarg.s 8
IL_0957: ldfld System.Int32[] MeshData::m_triangles
IL_095C: ldarg.s 6
IL_095E: ldarg.s 6
IL_0960: ldind.i4
IL_0961: dup
IL_0962: stloc.s 19 (System.Int32)
IL_0964: ldc.i4.1
IL_0965: add
IL_0966: stind.i4
IL_0967: ldloc.s 19 (System.Int32)
IL_0969: ldarg.s 5
IL_096B: ldind.i4
IL_096C: ldc.i4.2
IL_096D: sub
IL_096E: stelem.i4
IL_096F: ldarg.s 8
IL_0971: ldfld System.Int32[] MeshData::m_triangles
IL_0976: ldarg.s 6
IL_0978: ldarg.s 6
IL_097A: ldind.i4
IL_097B: dup
IL_097C: stloc.s 19 (System.Int32)
IL_097E: ldc.i4.1
IL_097F: add
IL_0980: stind.i4
IL_0981: ldloc.s 19 (System.Int32)
IL_0983: ldarg.s 5
IL_0985: ldind.i4
IL_0986: ldc.i4.4
IL_0987: sub
IL_0988: stelem.i4
IL_0989: ldarg.s 8
IL_098B: ldfld System.Int32[] MeshData::m_triangles
IL_0990: ldarg.s 6
IL_0992: ldarg.s 6
IL_0994: ldind.i4
IL_0995: dup
IL_0996: stloc.s 19 (System.Int32)
IL_0998: ldc.i4.1
IL_0999: add
IL_099A: stind.i4
IL_099B: ldloc.s 19 (System.Int32)
IL_099D: ldarg.s 5
IL_099F: ldind.i4
IL_09A0: ldc.i4.3
IL_09A1: sub
IL_09A2: stelem.i4
IL_09A3: // end original
IL_09A3: Label3
IL_09A3: Label0
IL_09A3: ret
DONE

### Patch: virtual System.Void ElectricityManager::SimulationStepImpl(System.Int32


subStep)
### Replacement: static System.Void
ElectricityManager::ElectricityManager.SimulationStepImpl_Patch0(ElectricityManager
this, System.Int32 subStep)
IL_0000: Local var 0: System.UInt32
IL_0000: Local var 1: System.Int32
IL_0000: Local var 2: NetManager
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: NetInfo
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: ElectricityManager/Cell
IL_0000: Local var 13: ElectricityManager/PulseGroup
IL_0000: Local var 14: ElectricityManager/PulseUnit
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: ElectricityManager/PulseUnit
IL_0000: Local var 19: System.UInt32
IL_0000: Local var 20: System.Int32
IL_0000: Local var 21: ElectricityManager/Cell
IL_0000: Local var 22: System.Int32
IL_0000: Local var 23: System.Int32
IL_0000: Local var 24: NetNode
IL_0000: Local var 25: System.Int32
IL_0000: Local var 26: System.UInt16
IL_0000: Local var 27: System.UInt16
IL_0000: Local var 28: System.UInt16
IL_0000: Local var 29: System.UInt16
IL_0000: Local var 30: System.Int32
IL_0000: Local var 31: ElectricityManager/PulseGroup
IL_0000: Local var 32: ElectricityManager/PulseGroup
IL_0000: Local var 33: System.Int32
IL_0000: Local var 34: ElectricityManager/PulseGroup
IL_0000: Local var 35: System.Int32
IL_0000: Local var 36: ElectricityManager/Cell
IL_0000: // start original
IL_0000: ldarg.1
IL_0001: brfalse => Label0
IL_0006: ldarg.1
IL_0007: ldc.i4 1000
IL_000C: beq => Label1
IL_0011: call static SimulationManager
ColossalFramework.Singleton`1<SimulationManager>::get_instance()
IL_0016: ldfld System.UInt32 SimulationManager::m_currentFrameIndex
IL_001B: stloc.0
IL_001C: ldloc.0
IL_001D: ldc.i4 255
IL_0022: and
IL_0023: stloc.1
IL_0024: ldloc.1
IL_0025: ldc.i4 128
IL_002A: bge => Label2
IL_002F: ldloc.1
IL_0030: brtrue => Label3
IL_0035: ldarg.0
IL_0036: ldc.i4.0
IL_0037: stfld System.Int32 ElectricityManager::m_pulseGroupCount
IL_003C: ldarg.0
IL_003D: ldc.i4.0
IL_003E: stfld System.Int32 ElectricityManager::m_pulseUnitStart
IL_0043: ldarg.0
IL_0044: ldc.i4.0
IL_0045: stfld System.Int32 ElectricityManager::m_pulseUnitEnd
IL_004A: ldarg.0
IL_004B: ldc.i4.0
IL_004C: stfld System.Int32 ElectricityManager::m_processedCells
IL_0051: ldarg.0
IL_0052: ldc.i4.0
IL_0053: stfld System.Int32 ElectricityManager::m_conductiveCells
IL_0058: ldarg.0
IL_0059: ldc.i4.1
IL_005A: stfld System.Boolean ElectricityManager::m_canContinue
IL_005F: Label3
IL_005F: call static NetManager
ColossalFramework.Singleton`1<NetManager>::get_instance()
IL_0064: stloc.2
IL_0065: ldloc.1
IL_0066: ldc.i4 32768
IL_006B: mul
IL_006C: ldc.i4.7
IL_006D: shr
IL_006E: stloc.3
IL_006F: ldloc.1
IL_0070: ldc.i4.1
IL_0071: add
IL_0072: ldc.i4 32768
IL_0077: mul
IL_0078: ldc.i4.7
IL_0079: shr
IL_007A: ldc.i4.1
IL_007B: sub
IL_007C: stloc.s 4 (System.Int32)
IL_007E: ldloc.3
IL_007F: stloc.s 5 (System.Int32)
IL_0081: br => Label4
IL_0086: Label10
IL_0086: ldloc.2
IL_0087: ldfld Array16`1<NetNode> NetManager::m_nodes
IL_008C: ldfld NetNode[] Array16`1<NetNode>::m_buffer
IL_0091: ldloc.s 5 (System.Int32)
IL_0093: ldelema NetNode
IL_0098: ldfld Flags NetNode::m_flags
IL_009D: brfalse => Label5
IL_00A2: ldloc.2
IL_00A3: ldfld Array16`1<NetNode> NetManager::m_nodes
IL_00A8: ldfld NetNode[] Array16`1<NetNode>::m_buffer
IL_00AD: ldloc.s 5 (System.Int32)
IL_00AF: ldelema NetNode
IL_00B4: call static System.Boolean
ElectricRoads.Overrides.ElectricRoadsOverrides::CheckElectricConductibility(NetNode
& node)
IL_00B9: brfalse => Label7
IL_00BE: Label6
IL_00BE: ldarg.0
IL_00BF: ldloc.s 5 (System.Int32)
IL_00C1: ldarg.0
IL_00C2: ldfld System.UInt16[] ElectricityManager::m_nodeGroups
IL_00C7: ldloc.s 5 (System.Int32)
IL_00C9: ldelem.u2
IL_00CA: ldc.i4 65535
IL_00CF: beq => Label8
IL_00D4: ldc.i4.1
IL_00D5: br => Label9
IL_00DA: Label8
IL_00DA: ldc.i4.0
IL_00DB: Label9
IL_00DB: call System.Void
ElectricityManager::UpdateNodeElectricity(System.Int32 nodeID, System.Int32 value)
IL_00E0: ldarg.0
IL_00E1: dup
IL_00E2: ldfld System.Int32 ElectricityManager::m_conductiveCells
IL_00E7: ldc.i4.1
IL_00E8: add
IL_00E9: stfld System.Int32 ElectricityManager::m_conductiveCells
IL_00EE: Label5
IL_00EE: Label7
IL_00EE: ldarg.0
IL_00EF: ldfld System.UInt16[] ElectricityManager::m_nodeGroups
IL_00F4: ldloc.s 5 (System.Int32)
IL_00F6: ldc.i4 65535
IL_00FB: stelem.i2
IL_00FC: ldloc.s 5 (System.Int32)
IL_00FE: ldc.i4.1
IL_00FF: add
IL_0100: stloc.s 5 (System.Int32)
IL_0102: Label4
IL_0102: ldloc.s 5 (System.Int32)
IL_0104: ldloc.s 4 (System.Int32)
IL_0106: ble => Label10
IL_010B: ldloc.1
IL_010C: ldc.i4 256
IL_0111: mul
IL_0112: ldc.i4.7
IL_0113: shr
IL_0114: stloc.s 7 (System.Int32)
IL_0116: ldloc.1
IL_0117: ldc.i4.1
IL_0118: add
IL_0119: ldc.i4 256
IL_011E: mul
IL_011F: ldc.i4.7
IL_0120: shr
IL_0121: ldc.i4.1
IL_0122: sub
IL_0123: stloc.s 8 (System.Int32)
IL_0125: ldloc.s 7 (System.Int32)
IL_0127: stloc.s 9 (System.Int32)
IL_0129: br => Label11
IL_012E: Label21
IL_012E: ldloc.s 9 (System.Int32)
IL_0130: ldc.i4 256
IL_0135: mul
IL_0136: stloc.s 10 (System.Int32)
IL_0138: ldc.i4.0
IL_0139: stloc.s 11 (System.Int32)
IL_013B: br => Label12
IL_0140: Label20
IL_0140: ldarg.0
IL_0141: ldfld Cell[] ElectricityManager::m_electricityGrid
IL_0146: ldloc.s 10 (System.Int32)
IL_0148: ldelema ElectricityManager+Cell
IL_014D: ldobj ElectricityManager+Cell
IL_0152: stloc.s 12 (ElectricityManager+Cell)
IL_0154: ldloca.s 12 (ElectricityManager+Cell)
IL_0156: ldfld System.Int16 Cell::m_currentCharge
IL_015B: ldc.i4.0
IL_015C: ble => Label13
IL_0161: ldarg.0
IL_0162: ldfld System.Int32 ElectricityManager::m_pulseGroupCount
IL_0167: ldc.i4 1024
IL_016C: bge => Label14
IL_0171: ldloca.s 13 (ElectricityManager+PulseGroup)
IL_0173: ldloca.s 12 (ElectricityManager+Cell)
IL_0175: ldfld System.Int16 Cell::m_currentCharge
IL_017A: conv.u4
IL_017B: stfld System.UInt32 PulseGroup::m_origCharge
IL_0180: ldloca.s 13 (ElectricityManager+PulseGroup)
IL_0182: ldloca.s 12 (ElectricityManager+Cell)
IL_0184: ldfld System.Int16 Cell::m_currentCharge
IL_0189: conv.u4
IL_018A: stfld System.UInt32 PulseGroup::m_curCharge
IL_018F: ldloca.s 13 (ElectricityManager+PulseGroup)
IL_0191: ldc.i4.0
IL_0192: stfld System.UInt16 PulseGroup::m_mergeCount
IL_0197: ldloca.s 13 (ElectricityManager+PulseGroup)
IL_0199: ldc.i4 65535
IL_019E: stfld System.UInt16 PulseGroup::m_mergeIndex
IL_01A3: ldloca.s 13 (ElectricityManager+PulseGroup)
IL_01A5: ldloc.s 11 (System.Int32)
IL_01A7: conv.u1
IL_01A8: stfld System.Byte PulseGroup::m_x
IL_01AD: ldloca.s 13 (ElectricityManager+PulseGroup)
IL_01AF: ldloc.s 9 (System.Int32)
IL_01B1: conv.u1
IL_01B2: stfld System.Byte PulseGroup::m_z
IL_01B7: ldloca.s 14 (ElectricityManager+PulseUnit)
IL_01B9: ldarg.0
IL_01BA: ldfld System.Int32 ElectricityManager::m_pulseGroupCount
IL_01BF: conv.u2
IL_01C0: stfld System.UInt16 PulseUnit::m_group
IL_01C5: ldloca.s 14 (ElectricityManager+PulseUnit)
IL_01C7: ldc.i4.0
IL_01C8: stfld System.UInt16 PulseUnit::m_node
IL_01CD: ldloca.s 14 (ElectricityManager+PulseUnit)
IL_01CF: ldloc.s 11 (System.Int32)
IL_01D1: conv.u1
IL_01D2: stfld System.Byte PulseUnit::m_x
IL_01D7: ldloca.s 14 (ElectricityManager+PulseUnit)
IL_01D9: ldloc.s 9 (System.Int32)
IL_01DB: conv.u1
IL_01DC: stfld System.Byte PulseUnit::m_z
IL_01E1: ldloca.s 12 (ElectricityManager+Cell)
IL_01E3: ldarg.0
IL_01E4: ldfld System.Int32 ElectricityManager::m_pulseGroupCount
IL_01E9: conv.u2
IL_01EA: stfld System.UInt16 Cell::m_pulseGroup
IL_01EF: ldarg.0
IL_01F0: ldfld PulseGroup[] ElectricityManager::m_pulseGroups
IL_01F5: ldarg.0
IL_01F6: dup
IL_01F7: ldfld System.Int32 ElectricityManager::m_pulseGroupCount
IL_01FC: dup
IL_01FD: stloc.s 15 (System.Int32)
IL_01FF: ldc.i4.1
IL_0200: add
IL_0201: stfld System.Int32 ElectricityManager::m_pulseGroupCount
IL_0206: ldloc.s 15 (System.Int32)
IL_0208: ldelema ElectricityManager+PulseGroup
IL_020D: ldloc.s 13 (ElectricityManager+PulseGroup)
IL_020F: stobj ElectricityManager+PulseGroup
IL_0214: ldarg.0
IL_0215: ldfld PulseUnit[] ElectricityManager::m_pulseUnits
IL_021A: ldarg.0
IL_021B: ldfld System.Int32 ElectricityManager::m_pulseUnitEnd
IL_0220: ldelema ElectricityManager+PulseUnit
IL_0225: ldloc.s 14 (ElectricityManager+PulseUnit)
IL_0227: stobj ElectricityManager+PulseUnit
IL_022C: ldarg.0
IL_022D: dup
IL_022E: ldfld System.Int32 ElectricityManager::m_pulseUnitEnd
IL_0233: ldc.i4.1
IL_0234: add
IL_0235: dup
IL_0236: stloc.s 15 (System.Int32)
IL_0238: stfld System.Int32 ElectricityManager::m_pulseUnitEnd
IL_023D: ldloc.s 15 (System.Int32)
IL_023F: ldarg.0
IL_0240: ldfld PulseUnit[] ElectricityManager::m_pulseUnits
IL_0245: ldlen
IL_0246: conv.i4
IL_0247: bne.un => Label15
IL_024C: ldarg.0
IL_024D: ldc.i4.0
IL_024E: stfld System.Int32 ElectricityManager::m_pulseUnitEnd
IL_0253: Label15
IL_0253: br => Label16
IL_0258: Label14
IL_0258: ldloca.s 12 (ElectricityManager+Cell)
IL_025A: ldc.i4 65535
IL_025F: stfld System.UInt16 Cell::m_pulseGroup
IL_0264: Label16
IL_0264: ldloca.s 12 (ElectricityManager+Cell)
IL_0266: ldc.i4.0
IL_0267: stfld System.Int16 Cell::m_currentCharge
IL_026C: ldarg.0
IL_026D: dup
IL_026E: ldfld System.Int32 ElectricityManager::m_conductiveCells
IL_0273: ldc.i4.1
IL_0274: add
IL_0275: stfld System.Int32 ElectricityManager::m_conductiveCells
IL_027A: br => Label17
IL_027F: Label13
IL_027F: ldloca.s 12 (ElectricityManager+Cell)
IL_0281: ldc.i4 65535
IL_0286: stfld System.UInt16 Cell::m_pulseGroup
IL_028B: ldloca.s 12 (ElectricityManager+Cell)
IL_028D: ldfld System.Byte Cell::m_conductivity
IL_0292: ldc.i4.s 64
IL_0294: blt => Label18
IL_0299: ldarg.0
IL_029A: dup
IL_029B: ldfld System.Int32 ElectricityManager::m_conductiveCells
IL_02A0: ldc.i4.1
IL_02A1: add
IL_02A2: stfld System.Int32 ElectricityManager::m_conductiveCells
IL_02A7: Label17
IL_02A7: Label18
IL_02A7: ldloca.s 12 (ElectricityManager+Cell)
IL_02A9: ldfld System.Boolean Cell::m_tmpElectrified
IL_02AE: ldloca.s 12 (ElectricityManager+Cell)
IL_02B0: ldfld System.Boolean Cell::m_electrified
IL_02B5: beq => Label19
IL_02BA: ldloca.s 12 (ElectricityManager+Cell)
IL_02BC: ldloca.s 12 (ElectricityManager+Cell)
IL_02BE: ldfld System.Boolean Cell::m_tmpElectrified
IL_02C3: stfld System.Boolean Cell::m_electrified
IL_02C8: Label19
IL_02C8: ldloca.s 12 (ElectricityManager+Cell)
IL_02CA: ldloca.s 12 (ElectricityManager+Cell)
IL_02CC: ldfld System.UInt16 Cell::m_pulseGroup
IL_02D1: ldc.i4 65535
IL_02D6: ceq
IL_02D8: ldc.i4.0
IL_02D9: ceq
IL_02DB: stfld System.Boolean Cell::m_tmpElectrified
IL_02E0: ldarg.0
IL_02E1: ldfld Cell[] ElectricityManager::m_electricityGrid
IL_02E6: ldloc.s 10 (System.Int32)
IL_02E8: ldelema ElectricityManager+Cell
IL_02ED: ldloc.s 12 (ElectricityManager+Cell)
IL_02EF: stobj ElectricityManager+Cell
IL_02F4: ldloc.s 10 (System.Int32)
IL_02F6: ldc.i4.1
IL_02F7: add
IL_02F8: stloc.s 10 (System.Int32)
IL_02FA: ldloc.s 11 (System.Int32)
IL_02FC: ldc.i4.1
IL_02FD: add
IL_02FE: stloc.s 11 (System.Int32)
IL_0300: Label12
IL_0300: ldloc.s 11 (System.Int32)
IL_0302: ldc.i4 256
IL_0307: blt => Label20
IL_030C: ldloc.s 9 (System.Int32)
IL_030E: ldc.i4.1
IL_030F: add
IL_0310: stloc.s 9 (System.Int32)
IL_0312: Label11
IL_0312: ldloc.s 9 (System.Int32)
IL_0314: ldloc.s 8 (System.Int32)
IL_0316: ble => Label21
IL_031B: br => Label22
IL_0320: Label2
IL_0320: ldloc.1
IL_0321: ldc.i4.s 127
IL_0323: sub
IL_0324: ldarg.0
IL_0325: ldfld System.Int32 ElectricityManager::m_conductiveCells
IL_032A: mul
IL_032B: ldc.i4.7
IL_032C: shr
IL_032D: stloc.s 16 (System.Int32)
IL_032F: ldloc.1
IL_0330: ldc.i4 255
IL_0335: bne.un => Label23
IL_033A: ldc.i4 1000000000
IL_033F: stloc.s 16 (System.Int32)
IL_0341: Label23
IL_0341: br => Label24
IL_0346: Label54
IL_0346: ldarg.0
IL_0347: ldc.i4.0
IL_0348: stfld System.Boolean ElectricityManager::m_canContinue
IL_034D: ldarg.0
IL_034E: ldfld System.Int32 ElectricityManager::m_pulseUnitEnd
IL_0353: stloc.s 17 (System.Int32)
IL_0355: br => Label25
IL_035A: Label52
IL_035A: ldarg.0
IL_035B: ldfld PulseUnit[] ElectricityManager::m_pulseUnits
IL_0360: ldarg.0
IL_0361: ldfld System.Int32 ElectricityManager::m_pulseUnitStart
IL_0366: ldelema ElectricityManager+PulseUnit
IL_036B: ldobj ElectricityManager+PulseUnit
IL_0370: stloc.s 18 (ElectricityManager+PulseUnit)
IL_0372: ldarg.0
IL_0373: dup
IL_0374: ldfld System.Int32 ElectricityManager::m_pulseUnitStart
IL_0379: ldc.i4.1
IL_037A: add
IL_037B: dup
IL_037C: stloc.s 15 (System.Int32)
IL_037E: stfld System.Int32 ElectricityManager::m_pulseUnitStart
IL_0383: ldloc.s 15 (System.Int32)
IL_0385: ldarg.0
IL_0386: ldfld PulseUnit[] ElectricityManager::m_pulseUnits
IL_038B: ldlen
IL_038C: conv.i4
IL_038D: bne.un => Label26
IL_0392: ldarg.0
IL_0393: ldc.i4.0
IL_0394: stfld System.Int32 ElectricityManager::m_pulseUnitStart
IL_0399: Label26
IL_0399: ldloca.s 18 (ElectricityManager+PulseUnit)
IL_039B: ldarg.0
IL_039C: ldloca.s 18 (ElectricityManager+PulseUnit)
IL_039E: ldfld System.UInt16 PulseUnit::m_group
IL_03A3: call System.UInt16 ElectricityManager::GetRootGroup(System.UInt16
group)
IL_03A8: stfld System.UInt16 PulseUnit::m_group
IL_03AD: ldarg.0
IL_03AE: ldfld PulseGroup[] ElectricityManager::m_pulseGroups
IL_03B3: ldloca.s 18 (ElectricityManager+PulseUnit)
IL_03B5: ldfld System.UInt16 PulseUnit::m_group
IL_03BA: ldelema ElectricityManager+PulseGroup
IL_03BF: ldfld System.UInt32 PulseGroup::m_curCharge
IL_03C4: stloc.s 19 (System.UInt32)
IL_03C6: ldloca.s 18 (ElectricityManager+PulseUnit)
IL_03C8: ldfld System.UInt16 PulseUnit::m_node
IL_03CD: brtrue => Label27
IL_03D2: ldloca.s 18 (ElectricityManager+PulseUnit)
IL_03D4: ldfld System.Byte PulseUnit::m_z
IL_03D9: ldc.i4 256
IL_03DE: mul
IL_03DF: ldloca.s 18 (ElectricityManager+PulseUnit)
IL_03E1: ldfld System.Byte PulseUnit::m_x
IL_03E6: add
IL_03E7: stloc.s 20 (System.Int32)
IL_03E9: ldarg.0
IL_03EA: ldfld Cell[] ElectricityManager::m_electricityGrid
IL_03EF: ldloc.s 20 (System.Int32)
IL_03F1: ldelema ElectricityManager+Cell
IL_03F6: ldobj ElectricityManager+Cell
IL_03FB: stloc.s 21 (ElectricityManager+Cell)
IL_03FD: ldloca.s 21 (ElectricityManager+Cell)
IL_03FF: ldfld System.Byte Cell::m_conductivity
IL_0404: brfalse => Label28
IL_0409: ldloca.s 21 (ElectricityManager+Cell)
IL_040B: ldfld System.Boolean Cell::m_tmpElectrified
IL_0410: brtrue => Label29
IL_0415: ldloc.s 19 (System.UInt32)
IL_0417: brfalse => Label30
IL_041C: ldloca.s 21 (ElectricityManager+Cell)
IL_041E: ldfld System.Int16 Cell::m_currentCharge
IL_0423: neg
IL_0424: ldc.i4.0
IL_0425: ldloc.s 19 (System.UInt32)
IL_0427: call static System.Int32 UnityEngine.Mathf::Clamp(System.Int32
value, System.Int32 min, System.Int32 max)
IL_042C: stloc.s 22 (System.Int32)
IL_042E: ldloc.s 19 (System.UInt32)
IL_0430: ldloc.s 22 (System.Int32)
IL_0432: sub
IL_0433: stloc.s 19 (System.UInt32)
IL_0435: ldloca.s 21 (ElectricityManager+Cell)
IL_0437: dup
IL_0438: ldfld System.Int16 Cell::m_currentCharge
IL_043D: ldloc.s 22 (System.Int32)
IL_043F: conv.i2
IL_0440: add
IL_0441: conv.i2
IL_0442: stfld System.Int16 Cell::m_currentCharge
IL_0447: ldloca.s 21 (ElectricityManager+Cell)
IL_0449: ldfld System.Int16 Cell::m_currentCharge
IL_044E: brtrue => Label31
IL_0453: ldloca.s 21 (ElectricityManager+Cell)
IL_0455: ldc.i4.1
IL_0456: stfld System.Boolean Cell::m_tmpElectrified
IL_045B: Label31
IL_045B: ldarg.0
IL_045C: ldfld Cell[] ElectricityManager::m_electricityGrid
IL_0461: ldloc.s 20 (System.Int32)
IL_0463: ldelema ElectricityManager+Cell
IL_0468: ldloc.s 21 (ElectricityManager+Cell)
IL_046A: stobj ElectricityManager+Cell
IL_046F: ldarg.0
IL_0470: ldfld PulseGroup[] ElectricityManager::m_pulseGroups
IL_0475: ldloca.s 18 (ElectricityManager+PulseUnit)
IL_0477: ldfld System.UInt16 PulseUnit::m_group
IL_047C: ldelema ElectricityManager+PulseGroup
IL_0481: ldloc.s 19 (System.UInt32)
IL_0483: stfld System.UInt32 PulseGroup::m_curCharge
IL_0488: Label28
IL_0488: Label29
IL_0488: Label30
IL_0488: ldloc.s 19 (System.UInt32)
IL_048A: brfalse => Label32
IL_048F: ldloca.s 21 (ElectricityManager+Cell)
IL_0491: ldfld System.Byte Cell::m_conductivity
IL_0496: ldc.i4.s 64
IL_0498: blt => Label33
IL_049D: ldc.i4.1
IL_049E: br => Label34
IL_04A3: Label33
IL_04A3: ldc.i4.s 64
IL_04A5: Label34
IL_04A5: stloc.s 23 (System.Int32)
IL_04A7: ldarg.0
IL_04A8: dup
IL_04A9: ldfld System.Int32 ElectricityManager::m_processedCells
IL_04AE: ldc.i4.1
IL_04AF: add
IL_04B0: stfld System.Int32 ElectricityManager::m_processedCells
IL_04B5: ldloca.s 18 (ElectricityManager+PulseUnit)
IL_04B7: ldfld System.Byte PulseUnit::m_z
IL_04BC: ldc.i4.0
IL_04BD: ble => Label35
IL_04C2: ldarg.0
IL_04C3: ldarg.0
IL_04C4: ldfld Cell[] ElectricityManager::m_electricityGrid
IL_04C9: ldloc.s 20 (System.Int32)
IL_04CB: ldc.i4 256
IL_04D0: sub
IL_04D1: ldelema ElectricityManager+Cell
IL_04D6: ldloca.s 18 (ElectricityManager+PulseUnit)
IL_04D8: ldfld System.UInt16 PulseUnit::m_group
IL_04DD: ldloca.s 18 (ElectricityManager+PulseUnit)
IL_04DF: ldfld System.Byte PulseUnit::m_x
IL_04E4: ldloca.s 18 (ElectricityManager+PulseUnit)
IL_04E6: ldfld System.Byte PulseUnit::m_z
IL_04EB: ldc.i4.1
IL_04EC: sub
IL_04ED: ldloc.s 23 (System.Int32)
IL_04EF: call System.Void ElectricityManager::ConductToCell(Cell& cell,
System.UInt16 group, System.Int32 x, System.Int32 z, System.Int32 limit)
IL_04F4: Label35
IL_04F4: ldloca.s 18 (ElectricityManager+PulseUnit)
IL_04F6: ldfld System.Byte PulseUnit::m_x
IL_04FB: ldc.i4.0
IL_04FC: ble => Label36
IL_0501: ldarg.0
IL_0502: ldarg.0
IL_0503: ldfld Cell[] ElectricityManager::m_electricityGrid
IL_0508: ldloc.s 20 (System.Int32)
IL_050A: ldc.i4.1
IL_050B: sub
IL_050C: ldelema ElectricityManager+Cell
IL_0511: ldloca.s 18 (ElectricityManager+PulseUnit)
IL_0513: ldfld System.UInt16 PulseUnit::m_group
IL_0518: ldloca.s 18 (ElectricityManager+PulseUnit)
IL_051A: ldfld System.Byte PulseUnit::m_x
IL_051F: ldc.i4.1
IL_0520: sub
IL_0521: ldloca.s 18 (ElectricityManager+PulseUnit)
IL_0523: ldfld System.Byte PulseUnit::m_z
IL_0528: ldloc.s 23 (System.Int32)
IL_052A: call System.Void ElectricityManager::ConductToCell(Cell& cell,
System.UInt16 group, System.Int32 x, System.Int32 z, System.Int32 limit)
IL_052F: Label36
IL_052F: ldloca.s 18 (ElectricityManager+PulseUnit)
IL_0531: ldfld System.Byte PulseUnit::m_z
IL_0536: ldc.i4 255
IL_053B: bge => Label37
IL_0540: ldarg.0
IL_0541: ldarg.0
IL_0542: ldfld Cell[] ElectricityManager::m_electricityGrid
IL_0547: ldloc.s 20 (System.Int32)
IL_0549: ldc.i4 256
IL_054E: add
IL_054F: ldelema ElectricityManager+Cell
IL_0554: ldloca.s 18 (ElectricityManager+PulseUnit)
IL_0556: ldfld System.UInt16 PulseUnit::m_group
IL_055B: ldloca.s 18 (ElectricityManager+PulseUnit)
IL_055D: ldfld System.Byte PulseUnit::m_x
IL_0562: ldloca.s 18 (ElectricityManager+PulseUnit)
IL_0564: ldfld System.Byte PulseUnit::m_z
IL_0569: ldc.i4.1
IL_056A: add
IL_056B: ldloc.s 23 (System.Int32)
IL_056D: call System.Void ElectricityManager::ConductToCell(Cell& cell,
System.UInt16 group, System.Int32 x, System.Int32 z, System.Int32 limit)
IL_0572: Label37
IL_0572: ldloca.s 18 (ElectricityManager+PulseUnit)
IL_0574: ldfld System.Byte PulseUnit::m_x
IL_0579: ldc.i4 255
IL_057E: bge => Label38
IL_0583: ldarg.0
IL_0584: ldarg.0
IL_0585: ldfld Cell[] ElectricityManager::m_electricityGrid
IL_058A: ldloc.s 20 (System.Int32)
IL_058C: ldc.i4.1
IL_058D: add
IL_058E: ldelema ElectricityManager+Cell
IL_0593: ldloca.s 18 (ElectricityManager+PulseUnit)
IL_0595: ldfld System.UInt16 PulseUnit::m_group
IL_059A: ldloca.s 18 (ElectricityManager+PulseUnit)
IL_059C: ldfld System.Byte PulseUnit::m_x
IL_05A1: ldc.i4.1
IL_05A2: add
IL_05A3: ldloca.s 18 (ElectricityManager+PulseUnit)
IL_05A5: ldfld System.Byte PulseUnit::m_z
IL_05AA: ldloc.s 23 (System.Int32)
IL_05AC: call System.Void ElectricityManager::ConductToCell(Cell& cell,
System.UInt16 group, System.Int32 x, System.Int32 z, System.Int32 limit)
IL_05B1: Label38
IL_05B1: ldarg.0
IL_05B2: ldloca.s 18 (ElectricityManager+PulseUnit)
IL_05B4: ldfld System.UInt16 PulseUnit::m_group
IL_05B9: ldloca.s 18 (ElectricityManager+PulseUnit)
IL_05BB: ldfld System.Byte PulseUnit::m_x
IL_05C0: ldloca.s 18 (ElectricityManager+PulseUnit)
IL_05C2: ldfld System.Byte PulseUnit::m_z
IL_05C7: call System.Void ElectricityManager::ConductToNodes(System.UInt16
group, System.Int32 cellX, System.Int32 cellZ)
IL_05CC: br => Label39
IL_05D1: Label32
IL_05D1: ldarg.0
IL_05D2: ldfld PulseUnit[] ElectricityManager::m_pulseUnits
IL_05D7: ldarg.0
IL_05D8: ldfld System.Int32 ElectricityManager::m_pulseUnitEnd
IL_05DD: ldelema ElectricityManager+PulseUnit
IL_05E2: ldloc.s 18 (ElectricityManager+PulseUnit)
IL_05E4: stobj ElectricityManager+PulseUnit
IL_05E9: ldarg.0
IL_05EA: dup
IL_05EB: ldfld System.Int32 ElectricityManager::m_pulseUnitEnd
IL_05F0: ldc.i4.1
IL_05F1: add
IL_05F2: dup
IL_05F3: stloc.s 15 (System.Int32)
IL_05F5: stfld System.Int32 ElectricityManager::m_pulseUnitEnd
IL_05FA: ldloc.s 15 (System.Int32)
IL_05FC: ldarg.0
IL_05FD: ldfld PulseUnit[] ElectricityManager::m_pulseUnits
IL_0602: ldlen
IL_0603: conv.i4
IL_0604: bne.un => Label40
IL_0609: ldarg.0
IL_060A: ldc.i4.0
IL_060B: stfld System.Int32 ElectricityManager::m_pulseUnitEnd
IL_0610: Label39
IL_0610: Label40
IL_0610: br => Label41
IL_0615: Label27
IL_0615: ldloc.s 19 (System.UInt32)
IL_0617: brfalse => Label42
IL_061C: ldarg.0
IL_061D: dup
IL_061E: ldfld System.Int32 ElectricityManager::m_processedCells
IL_0623: ldc.i4.1
IL_0624: add
IL_0625: stfld System.Int32 ElectricityManager::m_processedCells
IL_062A: call static NetManager
ColossalFramework.Singleton`1<NetManager>::get_instance()
IL_062F: ldfld Array16`1<NetNode> NetManager::m_nodes
IL_0634: ldfld NetNode[] Array16`1<NetNode>::m_buffer
IL_0639: ldloca.s 18 (ElectricityManager+PulseUnit)
IL_063B: ldfld System.UInt16 PulseUnit::m_node
IL_0640: ldelema NetNode
IL_0645: ldobj NetNode
IL_064A: stloc.s 24 (NetNode)
IL_064C: ldloca.s 24 (NetNode)
IL_064E: ldfld Flags NetNode::m_flags
IL_0653: brfalse => Label43
IL_0658: ldloca.s 24 (NetNode)
IL_065A: ldfld System.UInt32 NetNode::m_buildIndex
IL_065F: ldloc.0
IL_0660: ldc.i4.s -128
IL_0662: and
IL_0663: bge.un => Label44
IL_0668: ldarg.0
IL_0669: ldloca.s 18 (ElectricityManager+PulseUnit)
IL_066B: ldfld System.UInt16 PulseUnit::m_group
IL_0670: ldloca.s 24 (NetNode)
IL_0672: ldflda UnityEngine.Vector3 NetNode::m_position
IL_0677: ldfld System.Single UnityEngine.Vector3::x
IL_067C: ldloca.s 24 (NetNode)
IL_067E: ldflda UnityEngine.Vector3 NetNode::m_position
IL_0683: ldfld System.Single UnityEngine.Vector3::z
IL_0688: call System.Void ElectricityManager::ConductToCells(System.UInt16
group, System.Single worldX, System.Single worldZ)
IL_068D: ldc.i4.0
IL_068E: stloc.s 25 (System.Int32)
IL_0690: br => Label45
IL_0695: Label49
IL_0695: ldloca.s 24 (NetNode)
IL_0697: ldloc.s 25 (System.Int32)
IL_0699: call System.UInt16 NetNode::GetSegment(System.Int32 index)
IL_069E: stloc.s 26 (System.UInt16)
IL_06A0: ldloc.s 26 (System.UInt16)
IL_06A2: brfalse => Label46
IL_06A7: call static NetManager
ColossalFramework.Singleton`1<NetManager>::get_instance()
IL_06AC: ldfld Array16`1<NetSegment> NetManager::m_segments
IL_06B1: ldfld NetSegment[] Array16`1<NetSegment>::m_buffer
IL_06B6: ldloc.s 26 (System.UInt16)
IL_06B8: ldelema NetSegment
IL_06BD: ldfld System.UInt16 NetSegment::m_startNode
IL_06C2: stloc.s 27 (System.UInt16)
IL_06C4: call static NetManager
ColossalFramework.Singleton`1<NetManager>::get_instance()
IL_06C9: ldfld Array16`1<NetSegment> NetManager::m_segments
IL_06CE: ldfld NetSegment[] Array16`1<NetSegment>::m_buffer
IL_06D3: ldloc.s 26 (System.UInt16)
IL_06D5: ldelema NetSegment
IL_06DA: ldfld System.UInt16 NetSegment::m_endNode
IL_06DF: stloc.s 28 (System.UInt16)
IL_06E1: ldloc.s 27 (System.UInt16)
IL_06E3: ldloca.s 18 (ElectricityManager+PulseUnit)
IL_06E5: ldfld System.UInt16 PulseUnit::m_node
IL_06EA: bne.un => Label47
IL_06EF: ldloc.s 28 (System.UInt16)
IL_06F1: br => Label48
IL_06F6: Label47
IL_06F6: ldloc.s 27 (System.UInt16)
IL_06F8: Label48
IL_06F8: stloc.s 29 (System.UInt16)
IL_06FA: ldarg.0
IL_06FB: ldloc.s 29 (System.UInt16)
IL_06FD: call static NetManager
ColossalFramework.Singleton`1<NetManager>::get_instance()
IL_0702: ldfld Array16`1<NetNode> NetManager::m_nodes
IL_0707: ldfld NetNode[] Array16`1<NetNode>::m_buffer
IL_070C: ldloc.s 29 (System.UInt16)
IL_070E: ldelema NetNode
IL_0713: ldloca.s 18 (ElectricityManager+PulseUnit)
IL_0715: ldfld System.UInt16 PulseUnit::m_group
IL_071A: ldc.r4 -100000
IL_071F: ldc.r4 -100000
IL_0724: ldc.r4 100000
IL_0729: ldc.r4 100000
IL_072E: call System.Void ElectricityManager::ConductToNode(System.UInt16
nodeIndex, NetNode& node, System.UInt16 group, System.Single minX, System.Single
minZ, System.Single maxX, System.Single maxZ)
IL_0733: Label46
IL_0733: ldloc.s 25 (System.Int32)
IL_0735: ldc.i4.1
IL_0736: add
IL_0737: stloc.s 25 (System.Int32)
IL_0739: Label45
IL_0739: ldloc.s 25 (System.Int32)
IL_073B: ldc.i4.8
IL_073C: blt => Label49
IL_0741: Label43
IL_0741: Label44
IL_0741: br => Label50
IL_0746: Label42
IL_0746: ldarg.0
IL_0747: ldfld PulseUnit[] ElectricityManager::m_pulseUnits
IL_074C: ldarg.0
IL_074D: ldfld System.Int32 ElectricityManager::m_pulseUnitEnd
IL_0752: ldelema ElectricityManager+PulseUnit
IL_0757: ldloc.s 18 (ElectricityManager+PulseUnit)
IL_0759: stobj ElectricityManager+PulseUnit
IL_075E: ldarg.0
IL_075F: dup
IL_0760: ldfld System.Int32 ElectricityManager::m_pulseUnitEnd
IL_0765: ldc.i4.1
IL_0766: add
IL_0767: dup
IL_0768: stloc.s 15 (System.Int32)
IL_076A: stfld System.Int32 ElectricityManager::m_pulseUnitEnd
IL_076F: ldloc.s 15 (System.Int32)
IL_0771: ldarg.0
IL_0772: ldfld PulseUnit[] ElectricityManager::m_pulseUnits
IL_0777: ldlen
IL_0778: conv.i4
IL_0779: bne.un => Label51
IL_077E: ldarg.0
IL_077F: ldc.i4.0
IL_0780: stfld System.Int32 ElectricityManager::m_pulseUnitEnd
IL_0785: Label25
IL_0785: Label41
IL_0785: Label50
IL_0785: Label51
IL_0785: ldarg.0
IL_0786: ldfld System.Int32 ElectricityManager::m_pulseUnitStart
IL_078B: ldloc.s 17 (System.Int32)
IL_078D: bne.un => Label52
IL_0792: Label24
IL_0792: ldarg.0
IL_0793: ldfld System.Boolean ElectricityManager::m_canContinue
IL_0798: brfalse => Label53
IL_079D: ldarg.0
IL_079E: ldfld System.Int32 ElectricityManager::m_processedCells
IL_07A3: ldloc.s 16 (System.Int32)
IL_07A5: blt => Label54
IL_07AA: Label53
IL_07AA: ldloc.1
IL_07AB: ldc.i4 255
IL_07B0: bne.un => Label55
IL_07B5: ldc.i4.0
IL_07B6: stloc.s 30 (System.Int32)
IL_07B8: br => Label56
IL_07BD: Label58
IL_07BD: ldarg.0
IL_07BE: ldfld PulseGroup[] ElectricityManager::m_pulseGroups
IL_07C3: ldloc.s 30 (System.Int32)
IL_07C5: ldelema ElectricityManager+PulseGroup
IL_07CA: ldobj ElectricityManager+PulseGroup
IL_07CF: stloc.s 31 (ElectricityManager+PulseGroup)
IL_07D1: ldloca.s 31 (ElectricityManager+PulseGroup)
IL_07D3: ldfld System.UInt16 PulseGroup::m_mergeIndex
IL_07D8: ldc.i4 65535
IL_07DD: beq => Label57
IL_07E2: ldarg.0
IL_07E3: ldfld PulseGroup[] ElectricityManager::m_pulseGroups
IL_07E8: ldloca.s 31 (ElectricityManager+PulseGroup)
IL_07EA: ldfld System.UInt16 PulseGroup::m_mergeIndex
IL_07EF: ldelema ElectricityManager+PulseGroup
IL_07F4: ldobj ElectricityManager+PulseGroup
IL_07F9: stloc.s 32 (ElectricityManager+PulseGroup)
IL_07FB: ldloca.s 31 (ElectricityManager+PulseGroup)
IL_07FD: ldloca.s 32 (ElectricityManager+PulseGroup)
IL_07FF: ldfld System.UInt32 PulseGroup::m_curCharge
IL_0804: conv.u8
IL_0805: ldloca.s 31 (ElectricityManager+PulseGroup)
IL_0807: ldfld System.UInt32 PulseGroup::m_origCharge
IL_080C: conv.u8
IL_080D: mul
IL_080E: ldloca.s 32 (ElectricityManager+PulseGroup)
IL_0810: ldfld System.UInt32 PulseGroup::m_origCharge
IL_0815: conv.u8
IL_0816: div.un
IL_0817: conv.u4
IL_0818: stfld System.UInt32 PulseGroup::m_curCharge
IL_081D: ldloca.s 32 (ElectricityManager+PulseGroup)
IL_081F: dup
IL_0820: ldfld System.UInt32 PulseGroup::m_curCharge
IL_0825: ldloca.s 31 (ElectricityManager+PulseGroup)
IL_0827: ldfld System.UInt32 PulseGroup::m_curCharge
IL_082C: sub
IL_082D: stfld System.UInt32 PulseGroup::m_curCharge
IL_0832: ldloca.s 32 (ElectricityManager+PulseGroup)
IL_0834: dup
IL_0835: ldfld System.UInt32 PulseGroup::m_origCharge
IL_083A: ldloca.s 31 (ElectricityManager+PulseGroup)
IL_083C: ldfld System.UInt32 PulseGroup::m_origCharge
IL_0841: sub
IL_0842: stfld System.UInt32 PulseGroup::m_origCharge
IL_0847: ldarg.0
IL_0848: ldfld PulseGroup[] ElectricityManager::m_pulseGroups
IL_084D: ldloca.s 31 (ElectricityManager+PulseGroup)
IL_084F: ldfld System.UInt16 PulseGroup::m_mergeIndex
IL_0854: ldelema ElectricityManager+PulseGroup
IL_0859: ldloc.s 32 (ElectricityManager+PulseGroup)
IL_085B: stobj ElectricityManager+PulseGroup
IL_0860: ldarg.0
IL_0861: ldfld PulseGroup[] ElectricityManager::m_pulseGroups
IL_0866: ldloc.s 30 (System.Int32)
IL_0868: ldelema ElectricityManager+PulseGroup
IL_086D: ldloc.s 31 (ElectricityManager+PulseGroup)
IL_086F: stobj ElectricityManager+PulseGroup
IL_0874: Label57
IL_0874: ldloc.s 30 (System.Int32)
IL_0876: ldc.i4.1
IL_0877: add
IL_0878: stloc.s 30 (System.Int32)
IL_087A: Label56
IL_087A: ldloc.s 30 (System.Int32)
IL_087C: ldarg.0
IL_087D: ldfld System.Int32 ElectricityManager::m_pulseGroupCount
IL_0882: blt => Label58
IL_0887: ldc.i4.0
IL_0888: stloc.s 33 (System.Int32)
IL_088A: br => Label59
IL_088F: Label62
IL_088F: ldarg.0
IL_0890: ldfld PulseGroup[] ElectricityManager::m_pulseGroups
IL_0895: ldloc.s 33 (System.Int32)
IL_0897: ldelema ElectricityManager+PulseGroup
IL_089C: ldobj ElectricityManager+PulseGroup
IL_08A1: stloc.s 34 (ElectricityManager+PulseGroup)
IL_08A3: ldloca.s 34 (ElectricityManager+PulseGroup)
IL_08A5: ldfld System.UInt32 PulseGroup::m_curCharge
IL_08AA: brfalse => Label60
IL_08AF: ldloca.s 34 (ElectricityManager+PulseGroup)
IL_08B1: ldfld System.Byte PulseGroup::m_z
IL_08B6: ldc.i4 256
IL_08BB: mul
IL_08BC: ldloca.s 34 (ElectricityManager+PulseGroup)
IL_08BE: ldfld System.Byte PulseGroup::m_x
IL_08C3: add
IL_08C4: stloc.s 35 (System.Int32)
IL_08C6: ldarg.0
IL_08C7: ldfld Cell[] ElectricityManager::m_electricityGrid
IL_08CC: ldloc.s 35 (System.Int32)
IL_08CE: ldelema ElectricityManager+Cell
IL_08D3: ldobj ElectricityManager+Cell
IL_08D8: stloc.s 36 (ElectricityManager+Cell)
IL_08DA: ldloca.s 36 (ElectricityManager+Cell)
IL_08DC: ldfld System.Byte Cell::m_conductivity
IL_08E1: brfalse => Label61
IL_08E6: ldloca.s 36 (ElectricityManager+Cell)
IL_08E8: dup
IL_08E9: ldfld System.UInt16 Cell::m_extraCharge
IL_08EE: ldloca.s 34 (ElectricityManager+PulseGroup)
IL_08F0: ldfld System.UInt32 PulseGroup::m_curCharge
IL_08F5: ldc.i4 32767
IL_08FA: ldloca.s 36 (ElectricityManager+Cell)
IL_08FC: ldfld System.UInt16 Cell::m_extraCharge
IL_0901: sub
IL_0902: call static System.Int32 UnityEngine.Mathf::Min(System.Int32 a,
System.Int32 b)
IL_0907: conv.u2
IL_0908: add
IL_0909: conv.u2
IL_090A: stfld System.UInt16 Cell::m_extraCharge
IL_090F: Label61
IL_090F: ldarg.0
IL_0910: ldfld Cell[] ElectricityManager::m_electricityGrid
IL_0915: ldloc.s 35 (System.Int32)
IL_0917: ldelema ElectricityManager+Cell
IL_091C: ldloc.s 36 (ElectricityManager+Cell)
IL_091E: stobj ElectricityManager+Cell
IL_0923: Label60
IL_0923: ldloc.s 33 (System.Int32)
IL_0925: ldc.i4.1
IL_0926: add
IL_0927: stloc.s 33 (System.Int32)
IL_0929: Label59
IL_0929: ldloc.s 33 (System.Int32)
IL_092B: ldarg.0
IL_092C: ldfld System.Int32 ElectricityManager::m_pulseGroupCount
IL_0931: blt => Label62
IL_0936: // end original
IL_0936: Label0
IL_0936: Label1
IL_0936: Label22
IL_0936: Label55
IL_0936: ret
DONE

### Patch: System.Void ElectricityManager::ConductToNode(System.UInt16 nodeIndex,


NetNode& node, System.UInt16 group, System.Single minX, System.Single minZ,
System.Single maxX, System.Single maxZ)
### Replacement: static System.Void
ElectricityManager::ElectricityManager.ConductToNode_Patch0(ElectricityManager
this, System.UInt16 nodeIndex, NetNode& node, System.UInt16 group, System.Single
minX, System.Single minZ, System.Single maxX, System.Single maxZ)
IL_0000: Local var 0: NetInfo
IL_0000: Local var 1: ElectricityManager/PulseUnit
IL_0000: Local var 2: System.Int32
IL_0000: Local var 3: System.UInt16
IL_0000: // start original
IL_0000: ldarg.2
IL_0001: ldflda UnityEngine.Vector3 NetNode::m_position
IL_0006: ldfld System.Single UnityEngine.Vector3::x
IL_000B: ldarg.s 4
IL_000D: blt.un => Label0
IL_0012: ldarg.2
IL_0013: ldflda UnityEngine.Vector3 NetNode::m_position
IL_0018: ldfld System.Single UnityEngine.Vector3::z
IL_001D: ldarg.s 5
IL_001F: blt.un => Label1
IL_0024: ldarg.2
IL_0025: ldflda UnityEngine.Vector3 NetNode::m_position
IL_002A: ldfld System.Single UnityEngine.Vector3::x
IL_002F: ldarg.s 6
IL_0031: bgt.un => Label2
IL_0036: ldarg.2
IL_0037: ldflda UnityEngine.Vector3 NetNode::m_position
IL_003C: ldfld System.Single UnityEngine.Vector3::z
IL_0041: ldarg.s 7
IL_0043: bgt.un => Label3
IL_0048: ldarg.2
IL_0049: call static System.Boolean
ElectricRoads.Overrides.ElectricRoadsOverrides::CheckElectricConductibility(NetNode
& node)
IL_004E: brfalse => Label5
IL_0053: Label4
IL_0053: ldarg.0
IL_0054: ldfld System.UInt16[] ElectricityManager::m_nodeGroups
IL_0059: ldarg.1
IL_005A: ldelem.u2
IL_005B: ldc.i4 65535
IL_0060: bne.un => Label6
IL_0065: ldloca.s 1 (ElectricityManager+PulseUnit)
IL_0067: ldarg.3
IL_0068: stfld System.UInt16 PulseUnit::m_group
IL_006D: ldloca.s 1 (ElectricityManager+PulseUnit)
IL_006F: ldarg.1
IL_0070: stfld System.UInt16 PulseUnit::m_node
IL_0075: ldloca.s 1 (ElectricityManager+PulseUnit)
IL_0077: ldc.i4.0
IL_0078: stfld System.Byte PulseUnit::m_x
IL_007D: ldloca.s 1 (ElectricityManager+PulseUnit)
IL_007F: ldc.i4.0
IL_0080: stfld System.Byte PulseUnit::m_z
IL_0085: ldarg.0
IL_0086: ldfld PulseUnit[] ElectricityManager::m_pulseUnits
IL_008B: ldarg.0
IL_008C: ldfld System.Int32 ElectricityManager::m_pulseUnitEnd
IL_0091: ldelema ElectricityManager+PulseUnit
IL_0096: ldloc.1
IL_0097: stobj ElectricityManager+PulseUnit
IL_009C: ldarg.0
IL_009D: dup
IL_009E: ldfld System.Int32 ElectricityManager::m_pulseUnitEnd
IL_00A3: ldc.i4.1
IL_00A4: add
IL_00A5: dup
IL_00A6: stloc.2
IL_00A7: stfld System.Int32 ElectricityManager::m_pulseUnitEnd
IL_00AC: ldloc.2
IL_00AD: ldarg.0
IL_00AE: ldfld PulseUnit[] ElectricityManager::m_pulseUnits
IL_00B3: ldlen
IL_00B4: conv.i4
IL_00B5: bne.un => Label7
IL_00BA: ldarg.0
IL_00BB: ldc.i4.0
IL_00BC: stfld System.Int32 ElectricityManager::m_pulseUnitEnd
IL_00C1: Label7
IL_00C1: ldarg.0
IL_00C2: ldfld System.UInt16[] ElectricityManager::m_nodeGroups
IL_00C7: ldarg.1
IL_00C8: ldarg.3
IL_00C9: stelem.i2
IL_00CA: ldarg.0
IL_00CB: ldc.i4.1
IL_00CC: stfld System.Boolean ElectricityManager::m_canContinue
IL_00D1: br => Label8
IL_00D6: Label6
IL_00D6: ldarg.0
IL_00D7: ldarg.0
IL_00D8: ldfld System.UInt16[] ElectricityManager::m_nodeGroups
IL_00DD: ldarg.1
IL_00DE: ldelem.u2
IL_00DF: call System.UInt16 ElectricityManager::GetRootGroup(System.UInt16
group)
IL_00E4: stloc.3
IL_00E5: ldloc.3
IL_00E6: ldarg.3
IL_00E7: beq => Label9
IL_00EC: ldarg.0
IL_00ED: ldarg.3
IL_00EE: ldloc.3
IL_00EF: call System.Void ElectricityManager::MergeGroups(System.UInt16 root,
System.UInt16 merged)
IL_00F4: ldarg.0
IL_00F5: ldfld System.UInt16[] ElectricityManager::m_nodeGroups
IL_00FA: ldarg.1
IL_00FB: ldarg.3
IL_00FC: stelem.i2
IL_00FD: ldarg.0
IL_00FE: ldc.i4.1
IL_00FF: stfld System.Boolean ElectricityManager::m_canContinue
IL_0104: // end original
IL_0104: Label0
IL_0104: Label1
IL_0104: Label2
IL_0104: Label3
IL_0104: Label5
IL_0104: Label8
IL_0104: Label9
IL_0104: ret
DONE

### Patch: System.Void ElectricityManager::UpdateNodeElectricity(System.Int32


nodeID, System.Int32 value)
### Replacement: static System.Void
ElectricityManager::ElectricityManager.UpdateNodeElectricity_Patch2(ElectricityMana
ger this, System.Int32 nodeID, System.Int32 value)
IL_0000: Local var 0: InfoManager/InfoMode
IL_0000: Local var 1: NetManager
IL_0000: Local var 2: System.Boolean
IL_0000: Local var 3: NetNode/Flags
IL_0000: Local var 4: System.UInt16
IL_0000: Local var 5: BuildingManager
IL_0000: Local var 6: NetNode/Flags
IL_0000: Local var 7: System.Int32
IL_0000: Local var 8: System.UInt16
IL_0000: Local var 9: System.Boolean
IL_0000: Local var 10: System.Boolean
IL_0000: ldc.i4 0
IL_0005: stloc 9 (System.Boolean)
IL_0009: ldc.i4.1
IL_000A: stloc 9 (System.Boolean)
IL_000E: ldc.i4 0
IL_0013: stloc 10 (System.Boolean)
IL_0017: ldloc 9 (System.Boolean)
IL_001B: brfalse => Label1
IL_0020: ldarga 1
IL_0024: ldloca 10 (System.Boolean)
IL_0028: call static System.Void
ElectricRoads.Overrides.ElectricRoadsOverrides::PreConduct(System.Int32& nodeID,
System.Boolean& __state)
IL_002D: Label1
IL_002D: nop
IL_002E: ldloc 9 (System.Boolean)
IL_0032: brfalse => Label0
IL_0037: // start original
IL_0037: call static InfoManager
ColossalFramework.Singleton`1<InfoManager>::get_instance()
IL_003C: callvirt InfoMode InfoManager::get_CurrentMode()
IL_0041: stloc.0
IL_0042: call static NetManager
ColossalFramework.Singleton`1<NetManager>::get_instance()
IL_0047: stloc.1
IL_0048: ldc.i4.0
IL_0049: stloc.2
IL_004A: ldloc.1
IL_004B: ldfld Array16`1<NetNode> NetManager::m_nodes
IL_0050: ldfld NetNode[] Array16`1<NetNode>::m_buffer
IL_0055: ldarg.1
IL_0056: ldelema NetNode
IL_005B: ldfld Flags NetNode::m_flags
IL_0060: stloc.3
IL_0061: ldarg.1
IL_0062: call static System.Boolean
ElectricRoads.Overrides.ElectricRoadsOverrides::CheckNodeTransition(System.Int32
nodeID)
IL_0067: brfalse => Label2
IL_006C: ldloc.1
IL_006D: ldfld Array16`1<NetNode> NetManager::m_nodes
IL_0072: ldfld NetNode[] Array16`1<NetNode>::m_buffer
IL_0077: ldarg.1
IL_0078: ldelema NetNode
IL_007D: dup
IL_007E: ldfld Flags NetNode::m_flags
IL_0083: ldc.i4 -1048577
IL_0088: and
IL_0089: stfld Flags NetNode::m_flags
IL_008E: br => Label12
IL_0093: Label2
IL_0093: ldloc.1
IL_0094: ldfld Array16`1<NetNode> NetManager::m_nodes
IL_0099: ldfld NetNode[] Array16`1<NetNode>::m_buffer
IL_009E: ldarg.1
IL_009F: ldelema NetNode
IL_00A4: ldfld System.UInt16 NetNode::m_building
IL_00A9: stloc.s 4 (System.UInt16)
IL_00AB: ldloc.s 4 (System.UInt16)
IL_00AD: brfalse => Label3
IL_00B2: call static BuildingManager
ColossalFramework.Singleton`1<BuildingManager>::get_instance()
IL_00B7: stloc.s 5 (BuildingManager)
IL_00B9: ldloc.s 5 (BuildingManager)
IL_00BB: ldfld Array16`1<Building> BuildingManager::m_buildings
IL_00C0: ldfld Building[] Array16`1<Building>::m_buffer
IL_00C5: ldloc.s 4 (System.UInt16)
IL_00C7: ldelema Building
IL_00CC: ldfld System.UInt16 Building::m_electricityBuffer
IL_00D1: ldarg.2
IL_00D2: beq => Label4
IL_00D7: ldloc.s 5 (BuildingManager)
IL_00D9: ldfld Array16`1<Building> BuildingManager::m_buildings
IL_00DE: ldfld Building[] Array16`1<Building>::m_buffer
IL_00E3: ldloc.s 4 (System.UInt16)
IL_00E5: ldelema Building
IL_00EA: ldarg.2
IL_00EB: conv.u2
IL_00EC: stfld System.UInt16 Building::m_electricityBuffer
IL_00F1: ldloc.0
IL_00F2: ldc.i4.1
IL_00F3: ceq
IL_00F5: stloc.2
IL_00F6: Label4
IL_00F6: ldloc.2
IL_00F7: brfalse => Label5
IL_00FC: ldloc.s 5 (BuildingManager)
IL_00FE: ldloc.s 4 (System.UInt16)
IL_0100: callvirt System.Void BuildingManager::UpdateBuildingColors(System.UInt16
building)
IL_0105: Label3
IL_0105: Label5
IL_0105: ldloc.3
IL_0106: ldc.i4 -67108865
IL_010B: and
IL_010C: stloc.s 6 (NetNode+Flags)
IL_010E: ldarg.2
IL_010F: brfalse => Label6
IL_0114: ldloc.s 6 (NetNode+Flags)
IL_0116: ldc.i4 67108864
IL_011B: or
IL_011C: stloc.s 6 (NetNode+Flags)
IL_011E: Label6
IL_011E: ldloc.s 6 (NetNode+Flags)
IL_0120: ldloc.3
IL_0121: beq => Label7
IL_0126: ldloc.1
IL_0127: ldfld Array16`1<NetNode> NetManager::m_nodes
IL_012C: ldfld NetNode[] Array16`1<NetNode>::m_buffer
IL_0131: ldarg.1
IL_0132: ldelema NetNode
IL_0137: ldloc.s 6 (NetNode+Flags)
IL_0139: stfld Flags NetNode::m_flags
IL_013E: ldloc.0
IL_013F: ldc.i4.1
IL_0140: ceq
IL_0142: stloc.2
IL_0143: Label7
IL_0143: ldloc.2
IL_0144: brfalse => Label8
IL_0149: ldloc.1
IL_014A: ldarg.1
IL_014B: conv.u2
IL_014C: callvirt System.Void NetManager::UpdateNodeColors(System.UInt16 node)
IL_0151: ldc.i4.0
IL_0152: stloc.s 7 (System.Int32)
IL_0154: br => Label9
IL_0159: Label11
IL_0159: ldloc.1
IL_015A: ldfld Array16`1<NetNode> NetManager::m_nodes
IL_015F: ldfld NetNode[] Array16`1<NetNode>::m_buffer
IL_0164: ldarg.1
IL_0165: ldelema NetNode
IL_016A: ldloc.s 7 (System.Int32)
IL_016C: call System.UInt16 NetNode::GetSegment(System.Int32 index)
IL_0171: stloc.s 8 (System.UInt16)
IL_0173: ldloc.s 8 (System.UInt16)
IL_0175: brfalse => Label10
IL_017A: ldloc.1
IL_017B: ldloc.s 8 (System.UInt16)
IL_017D: callvirt System.Void NetManager::UpdateSegmentColors(System.UInt16
segment)
IL_0182: Label10
IL_0182: ldloc.s 7 (System.Int32)
IL_0184: ldc.i4.1
IL_0185: add
IL_0186: stloc.s 7 (System.Int32)
IL_0188: Label9
IL_0188: ldloc.s 7 (System.Int32)
IL_018A: ldc.i4.8
IL_018B: blt => Label11
IL_0190: // end original
IL_0190: Label8
IL_0190: Label12
IL_0190: Label0
IL_0190: ldarg 1
IL_0194: ldloc 10 (System.Boolean)
IL_0198: call static System.Void
ElectricRoads.Overrides.ElectricRoadsOverrides::PostConduct(System.Int32 nodeID,
System.Boolean __state)
IL_019D: ret
DONE

### Patch: virtual System.Void ColossalFramework.UI.UIView::Start()


### Replacement: static System.Void
ColossalFramework.UI.UIView::ColossalFramework.UI.UIView.Start_Patch0(ColossalFrame
work.UI.UIView this)
IL_0000: Local var 0:
ColossalFramework.PoolList`1<ColossalFramework.UI.UIComponent>
IL_0000: Local var 1: ColossalFramework.UI.UIComponent
IL_0000: Local var 2:
System.Collections.Generic.IEnumerator`1<ColossalFramework.UI.UIComponent>
IL_0000: // start original
IL_0000: ldarg.0
IL_0001: ldc.i4.0
IL_0002: stfld System.Int32 ColossalFramework.UI.UIView::m_FramesRendered
IL_0007: ldarg.0
IL_0008: call System.Void
ColossalFramework.UI.UIView::InvalidateAllComponents()
IL_000D: ldarg.0
IL_000E: ldfld UnityEngine.MeshRenderer
ColossalFramework.UI.UIView::m_MeshRenderer
IL_0013: ldnull
IL_0014: call static System.Boolean
UnityEngine.Object::op_Inequality(UnityEngine.Object x, UnityEngine.Object y)
IL_0019: brfalse => Label0
IL_001E: ldarg.0
IL_001F: ldfld UnityEngine.MeshRenderer
ColossalFramework.UI.UIView::m_MeshRenderer
IL_0024: ldc.i4.1
IL_0025: callvirt System.Void UnityEngine.Renderer::set_enabled(System.Boolean
value)
IL_002A: Label0
IL_002A: ldarg.0
IL_002B: call ColossalFramework.PoolList`1<ColossalFramework.UI.UIComponent>
ColossalFramework.UI.UIView::GetTopLevelComponents()
IL_0030: stloc.0
.try
{
IL_0031: ldloc.0
IL_0032: callvirt virtual
System.Collections.Generic.IEnumerator`1<ColossalFramework.UI.UIComponent>
ColossalFramework.PoolList`1<ColossalFramework.UI.UIComponent>::GetEnumerator()
IL_0037: stloc.2
.try
{
IL_0038: br => Label1
IL_003D: Label2
IL_003D: ldloc.2
IL_003E: callvirt abstract virtual ColossalFramework.UI.UIComponent
System.Collections.Generic.IEnumerator`1<ColossalFramework.UI.UIComponent>::get_Cur
rent()
IL_0043: stloc.1
IL_0044: ldloc.1
IL_0045: ldc.i4.1
IL_0046: callvirt System.Void
ColossalFramework.UI.UIComponent::InitializeParentVisibilityCache(System.Boolean
parentVisible)
IL_004B: Label1
IL_004B: ldloc.2
IL_004C: callvirt abstract virtual System.Boolean
System.Collections.IEnumerator::MoveNext()
IL_0051: brtrue => Label2
IL_0056: leave => Label3
IL_005B: leave => (autogenerated)
} // end try
.finally
{
IL_0060: ldloc.2
IL_0061: brfalse => Label4
IL_0066: ldloc.2
IL_0067: callvirt abstract virtual System.Void
System.IDisposable::Dispose()
IL_006C: Label4
IL_006C: endfinally
IL_006D: leave => (autogenerated)
} // end handler
IL_006E: Label3
IL_006E: leave => Label5
IL_0073: leave => (autogenerated)
} // end try
.finally
{
IL_0078: ldloc.0
IL_0079: brfalse => Label6
IL_007E: ldloc.0
IL_007F: callvirt abstract virtual System.Void
System.IDisposable::Dispose()
IL_0084: Label6
IL_0084: endfinally
IL_0085: leave => (autogenerated)
} // end handler
IL_0086: Label5
IL_0086: ldarg.0
IL_0087: ldc.i4.1
IL_0088: stfld System.Boolean
ColossalFramework.UI.UIView::m_VisibilityCacheInitialized
IL_008D: // end original
IL_008D: ret
DONE

### Patch: virtual UnityEngine.Color NetAI::GetColor(System.UInt16 nodeID, NetNode&


data, InfoMode infoMode, SubInfoMode subInfoMode)
### Replacement: static UnityEngine.Color NetAI::NetAI.GetColor_Patch0(NetAI this,
System.UInt16 nodeID, NetNode& data, InfoMode infoMode, SubInfoMode subInfoMode)
IL_0000: // start original
IL_0000: ldarg.3
IL_0001: brfalse => Label0
IL_0006: call static InfoManager
ColossalFramework.Singleton`1<InfoManager>::get_instance()
IL_000B: ldfld InfoProperties SimulationManagerBase`2<InfoManager,
InfoProperties>::m_properties
IL_0010: ldfld UnityEngine.Color InfoProperties::m_neutralColor
IL_0015: br => Label1
IL_001A: Label0
IL_001A: ldarg.0
IL_001B: ldfld NetInfo NetAI::m_info
IL_0020: ldfld UnityEngine.Color NetInfo::m_color
IL_0025: // end original
IL_0025: Label1
IL_0025: ret
DONE

### Patch: virtual UnityEngine.Color NetAI::GetColor(System.UInt16 segmentID,


NetSegment& data, InfoMode infoMode, SubInfoMode subInfoMode)
### Replacement: static UnityEngine.Color NetAI::NetAI.GetColor_Patch0(NetAI this,
System.UInt16 segmentID, NetSegment& data, InfoMode infoMode, SubInfoMode
subInfoMode)
IL_0000: // start original
IL_0000: ldarg.3
IL_0001: brfalse => Label0
IL_0006: call static InfoManager
ColossalFramework.Singleton`1<InfoManager>::get_instance()
IL_000B: ldfld InfoProperties SimulationManagerBase`2<InfoManager,
InfoProperties>::m_properties
IL_0010: ldfld UnityEngine.Color InfoProperties::m_neutralColor
IL_0015: br => Label1
IL_001A: Label0
IL_001A: ldarg.0
IL_001B: ldfld NetInfo NetAI::m_info
IL_0020: ldfld UnityEngine.Color NetInfo::m_color
IL_0025: // end original
IL_0025: Label1
IL_0025: ret
DONE
### Patch: System.Void ElectricityManager::UpdateNodeElectricity(System.Int32
nodeID, System.Int32 value)
### Replacement: static System.Void
ElectricityManager::ElectricityManager.UpdateNodeElectricity_Patch0(ElectricityMana
ger this, System.Int32 nodeID, System.Int32 value)
IL_0000: Local var 0: InfoManager/InfoMode
IL_0000: Local var 1: NetManager
IL_0000: Local var 2: System.Boolean
IL_0000: Local var 3: NetNode/Flags
IL_0000: Local var 4: System.UInt16
IL_0000: Local var 5: BuildingManager
IL_0000: Local var 6: NetNode/Flags
IL_0000: Local var 7: System.Int32
IL_0000: Local var 8: System.UInt16
IL_0000: // start original
IL_0000: call static InfoManager
ColossalFramework.Singleton`1<InfoManager>::get_instance()
IL_0005: callvirt InfoMode InfoManager::get_CurrentMode()
IL_000A: stloc.0
IL_000B: call static NetManager
ColossalFramework.Singleton`1<NetManager>::get_instance()
IL_0010: stloc.1
IL_0011: ldc.i4.0
IL_0012: stloc.2
IL_0013: ldloc.1
IL_0014: ldfld Array16`1<NetNode> NetManager::m_nodes
IL_0019: ldfld NetNode[] Array16`1<NetNode>::m_buffer
IL_001E: ldarg.1
IL_001F: ldelema NetNode
IL_0024: ldfld Flags NetNode::m_flags
IL_0029: stloc.3
IL_002A: ldloc.3
IL_002B: ldc.i4 1048576
IL_0030: and
IL_0031: brfalse => Label0
IL_0036: ldloc.1
IL_0037: ldfld Array16`1<NetNode> NetManager::m_nodes
IL_003C: ldfld NetNode[] Array16`1<NetNode>::m_buffer
IL_0041: ldarg.1
IL_0042: ldelema NetNode
IL_0047: dup
IL_0048: ldfld Flags NetNode::m_flags
IL_004D: ldc.i4 -1048577
IL_0052: and
IL_0053: stfld Flags NetNode::m_flags
IL_0058: br => Label10
IL_005D: Label0
IL_005D: ldloc.1
IL_005E: ldfld Array16`1<NetNode> NetManager::m_nodes
IL_0063: ldfld NetNode[] Array16`1<NetNode>::m_buffer
IL_0068: ldarg.1
IL_0069: ldelema NetNode
IL_006E: ldfld System.UInt16 NetNode::m_building
IL_0073: stloc.s 4 (System.UInt16)
IL_0075: ldloc.s 4 (System.UInt16)
IL_0077: brfalse => Label1
IL_007C: call static BuildingManager
ColossalFramework.Singleton`1<BuildingManager>::get_instance()
IL_0081: stloc.s 5 (BuildingManager)
IL_0083: ldloc.s 5 (BuildingManager)
IL_0085: ldfld Array16`1<Building> BuildingManager::m_buildings
IL_008A: ldfld Building[] Array16`1<Building>::m_buffer
IL_008F: ldloc.s 4 (System.UInt16)
IL_0091: ldelema Building
IL_0096: ldfld System.UInt16 Building::m_electricityBuffer
IL_009B: ldarg.2
IL_009C: beq => Label2
IL_00A1: ldloc.s 5 (BuildingManager)
IL_00A3: ldfld Array16`1<Building> BuildingManager::m_buildings
IL_00A8: ldfld Building[] Array16`1<Building>::m_buffer
IL_00AD: ldloc.s 4 (System.UInt16)
IL_00AF: ldelema Building
IL_00B4: ldarg.2
IL_00B5: conv.u2
IL_00B6: stfld System.UInt16 Building::m_electricityBuffer
IL_00BB: ldloc.0
IL_00BC: ldc.i4.1
IL_00BD: ceq
IL_00BF: stloc.2
IL_00C0: Label2
IL_00C0: ldloc.2
IL_00C1: brfalse => Label3
IL_00C6: ldloc.s 5 (BuildingManager)
IL_00C8: ldloc.s 4 (System.UInt16)
IL_00CA: callvirt System.Void BuildingManager::UpdateBuildingColors(System.UInt16
building)
IL_00CF: Label1
IL_00CF: Label3
IL_00CF: ldloc.3
IL_00D0: ldc.i4 -67108865
IL_00D5: and
IL_00D6: stloc.s 6 (NetNode+Flags)
IL_00D8: ldarg.2
IL_00D9: brfalse => Label4
IL_00DE: ldloc.s 6 (NetNode+Flags)
IL_00E0: ldc.i4 67108864
IL_00E5: or
IL_00E6: stloc.s 6 (NetNode+Flags)
IL_00E8: Label4
IL_00E8: ldloc.s 6 (NetNode+Flags)
IL_00EA: ldloc.3
IL_00EB: beq => Label5
IL_00F0: ldloc.1
IL_00F1: ldfld Array16`1<NetNode> NetManager::m_nodes
IL_00F6: ldfld NetNode[] Array16`1<NetNode>::m_buffer
IL_00FB: ldarg.1
IL_00FC: ldelema NetNode
IL_0101: ldloc.s 6 (NetNode+Flags)
IL_0103: stfld Flags NetNode::m_flags
IL_0108: ldloc.0
IL_0109: ldc.i4.1
IL_010A: ceq
IL_010C: stloc.2
IL_010D: Label5
IL_010D: ldloc.2
IL_010E: brfalse => Label6
IL_0113: ldloc.1
IL_0114: ldarg.1
IL_0115: conv.u2
IL_0116: callvirt System.Void NetManager::UpdateNodeColors(System.UInt16 node)
IL_011B: ldc.i4.0
IL_011C: stloc.s 7 (System.Int32)
IL_011E: br => Label7
IL_0123: Label9
IL_0123: ldloc.1
IL_0124: ldfld Array16`1<NetNode> NetManager::m_nodes
IL_0129: ldfld NetNode[] Array16`1<NetNode>::m_buffer
IL_012E: ldarg.1
IL_012F: ldelema NetNode
IL_0134: ldloc.s 7 (System.Int32)
IL_0136: call System.UInt16 NetNode::GetSegment(System.Int32 index)
IL_013B: stloc.s 8 (System.UInt16)
IL_013D: ldloc.s 8 (System.UInt16)
IL_013F: brfalse => Label8
IL_0144: ldloc.1
IL_0145: ldloc.s 8 (System.UInt16)
IL_0147: callvirt System.Void NetManager::UpdateSegmentColors(System.UInt16
segment)
IL_014C: Label8
IL_014C: ldloc.s 7 (System.Int32)
IL_014E: ldc.i4.1
IL_014F: add
IL_0150: stloc.s 7 (System.Int32)
IL_0152: Label7
IL_0152: ldloc.s 7 (System.Int32)
IL_0154: ldc.i4.8
IL_0155: blt => Label9
IL_015A: // end original
IL_015A: Label6
IL_015A: Label10
IL_015A: ret
DONE

### Patch: static System.Void PropInstance::RenderInstance(CameraInfo cameraInfo,


PropInfo info, InstanceID id, UnityEngine.Vector3 position, System.Single scale,
System.Single angle, UnityEngine.Color color, UnityEngine.Vector4 objectIndex,
System.Boolean active, UnityEngine.Texture heightMap, UnityEngine.Vector4
heightMapping, UnityEngine.Vector4 surfaceMapping, UnityEngine.Texture
waterHeightMap, UnityEngine.Vector4 waterHeightMapping, UnityEngine.Vector4
waterSurfaceMapping)
### Replacement: static System.Void
PropInstance::PropInstance.RenderInstance_Patch0(CameraInfo cameraInfo, PropInfo
info, InstanceID id, UnityEngine.Vector3 position, System.Single scale,
System.Single angle, UnityEngine.Color color, UnityEngine.Vector4 objectIndex,
System.Boolean active, UnityEngine.Texture heightMap, UnityEngine.Vector4
heightMapping, UnityEngine.Vector4 surfaceMapping, UnityEngine.Texture
waterHeightMap, UnityEngine.Vector4 waterHeightMapping, UnityEngine.Vector4
waterSurfaceMapping)
IL_0000: Local var 0: UnityEngine.Matrix4x4
IL_0000: Local var 1: System.Single
IL_0000: Local var 2: System.Int32
IL_0000: Local var 3: UnityEngine.Vector3
IL_0000: Local var 4: UnityEngine.Vector3
IL_0000: Local var 5: EffectInfo/SpawnArea
IL_0000: Local var 6: System.Single
IL_0000: Local var 7: LightSystem
IL_0000: Local var 8: ColossalFramework.Math.Randomizer
IL_0000: Local var 9: UnityEngine.Vector4
IL_0000: Local var 10: System.Single
IL_0000: Local var 11: System.Single
IL_0000: Local var 12: System.Single
IL_0000: Local var 13: UnityEngine.Matrix4x4
IL_0000: Local var 14: PropManager
IL_0000: Local var 15: UnityEngine.MaterialPropertyBlock
IL_0000: Local var 16: System.Int32
IL_0000: // start original
IL_0000: ldarg.1
IL_0001: ldfld System.Boolean PrefabInfo::m_prefabInitialized
IL_0006: brfalse => Label0
IL_000B: ldarg.1
IL_000C: ldfld System.Boolean PropInfo::m_hasEffects
IL_0011: brfalse => Label1
IL_0016: ldarg.s 8
IL_0018: brtrue => Label2
IL_001D: ldarg.1
IL_001E: ldfld System.Boolean PropInfo::m_alwaysActive
IL_0023: brfalse => Label3
IL_0028: Label2
IL_0028: ldloca.s 0 (UnityEngine.Matrix4x4)
IL_002A: initobj UnityEngine.Matrix4x4
IL_0030: ldloca.s 0 (UnityEngine.Matrix4x4)
IL_0032: ldarg.3
IL_0033: ldarg.s 5
IL_0035: ldc.r4 57.29578
IL_003A: mul
IL_003B: call static UnityEngine.Vector3 UnityEngine.Vector3::get_down()
IL_0040: call static UnityEngine.Quaternion
UnityEngine.Quaternion::AngleAxis(System.Single angle, UnityEngine.Vector3 axis)
IL_0045: ldarg.s 4
IL_0047: ldarg.s 4
IL_0049: ldarg.s 4
IL_004B: newobj System.Void UnityEngine.Vector3::.ctor(System.Single x,
System.Single y, System.Single z)
IL_0050: call System.Void UnityEngine.Matrix4x4::SetTRS(UnityEngine.Vector3
pos, UnityEngine.Quaternion q, UnityEngine.Vector3 s)
IL_0055: call static SimulationManager
ColossalFramework.Singleton`1<SimulationManager>::get_instance()
IL_005A: ldfld System.Single SimulationManager::m_simulationTimeDelta
IL_005F: stloc.1
IL_0060: ldc.i4.0
IL_0061: stloc.2
IL_0062: br => Label4
IL_0067: Label5
IL_0067: ldloca.s 0 (UnityEngine.Matrix4x4)
IL_0069: ldarg.1
IL_006A: ldfld Effect[] PropInfo::m_effects
IL_006F: ldloc.2
IL_0070: ldelema PropInfo+Effect
IL_0075: ldfld UnityEngine.Vector3 Effect::m_position
IL_007A: call UnityEngine.Vector3
UnityEngine.Matrix4x4::MultiplyPoint(UnityEngine.Vector3 v)
IL_007F: stloc.3
IL_0080: ldloca.s 0 (UnityEngine.Matrix4x4)
IL_0082: ldarg.1
IL_0083: ldfld Effect[] PropInfo::m_effects
IL_0088: ldloc.2
IL_0089: ldelema PropInfo+Effect
IL_008E: ldfld UnityEngine.Vector3 Effect::m_direction
IL_0093: call UnityEngine.Vector3
UnityEngine.Matrix4x4::MultiplyVector(UnityEngine.Vector3 v)
IL_0098: stloc.s 4 (UnityEngine.Vector3)
IL_009A: ldloca.s 5 (EffectInfo+SpawnArea)
IL_009C: ldloc.3
IL_009D: ldloc.s 4 (UnityEngine.Vector3)
IL_009F: ldc.r4 0
IL_00A4: call System.Void SpawnArea::.ctor(UnityEngine.Vector3 position,
UnityEngine.Vector3 direction, System.Single radius)
IL_00A9: ldarg.1
IL_00AA: ldfld Effect[] PropInfo::m_effects
IL_00AF: ldloc.2
IL_00B0: ldelema PropInfo+Effect
IL_00B5: ldfld EffectInfo Effect::m_effect
IL_00BA: ldarg.2
IL_00BB: ldloc.s 5 (EffectInfo+SpawnArea)
IL_00BD: call static UnityEngine.Vector3 UnityEngine.Vector3::get_zero()
IL_00C2: ldc.r4 0
IL_00C7: ldc.r4 1
IL_00CC: ldc.r4 -1
IL_00D1: ldloc.1
IL_00D2: ldarg.0
IL_00D3: callvirt virtual System.Void EffectInfo::RenderEffect(InstanceID id,
SpawnArea area, UnityEngine.Vector3 velocity, System.Single acceleration,
System.Single magnitude, System.Single timeOffset, System.Single timeDelta,
CameraInfo cameraInfo)
IL_00D8: ldloc.2
IL_00D9: ldc.i4.1
IL_00DA: add
IL_00DB: stloc.2
IL_00DC: Label4
IL_00DC: ldloc.2
IL_00DD: ldarg.1
IL_00DE: ldfld Effect[] PropInfo::m_effects
IL_00E3: ldlen
IL_00E4: conv.i4
IL_00E5: blt => Label5
IL_00EA: Label1
IL_00EA: Label3
IL_00EA: ldarg.1
IL_00EB: ldfld System.Boolean PropInfo::m_hasRenderer
IL_00F0: brfalse => Label6
IL_00F5: ldarg.0
IL_00F6: ldfld System.Int32 CameraInfo::m_layerMask
IL_00FB: ldc.i4.1
IL_00FC: ldarg.1
IL_00FD: ldfld System.Int32 PrefabInfo::m_prefabDataLayer
IL_0102: ldc.i4.s 31
IL_0104: and
IL_0105: shl
IL_0106: and
IL_0107: brfalse => Label7
IL_010C: call static InfoManager
ColossalFramework.Singleton`1<InfoManager>::get_instance()
IL_0111: callvirt InfoMode InfoManager::get_CurrentMode()
IL_0116: brtrue => Label8
IL_011B: ldc.r4 0
IL_0120: stloc.s 6 (System.Single)
IL_0122: ldarg.s 8
IL_0124: brtrue => Label9
IL_0129: ldarg.1
IL_012A: ldfld System.Boolean PropInfo::m_alwaysActive
IL_012F: brtrue => Label10
IL_0134: ldarga.s 7
IL_0136: ldc.r4 0
IL_013B: stfld System.Single UnityEngine.Vector4::z
IL_0140: br => Label11
IL_0145: Label9
IL_0145: Label10
IL_0145: ldarg.1
IL_0146: ldflda UnityEngine.Vector2 PropInfo::m_illuminationOffRange
IL_014B: ldfld System.Single UnityEngine.Vector2::x
IL_0150: ldc.r4 1000
IL_0155: blt => Label12
IL_015A: ldarg.1
IL_015B: ldfld BlinkType PropInfo::m_illuminationBlinkType
IL_0160: brfalse => Label13
IL_0165: Label12
IL_0165: call static RenderManager
ColossalFramework.Singleton`1<RenderManager>::get_instance()
IL_016A: callvirt LightSystem RenderManager::get_lightSystem()
IL_016F: stloc.s 7 (LightSystem)
IL_0171: ldloca.s 8 (ColossalFramework.Math.Randomizer)
IL_0173: ldarga.s 2
IL_0175: call System.UInt32 InstanceID::get_Index()
IL_017A: call System.Void
ColossalFramework.Math.Randomizer::.ctor(System.UInt32 _seed)
IL_017F: ldarg.1
IL_0180: ldflda UnityEngine.Vector2 PropInfo::m_illuminationOffRange
IL_0185: ldfld System.Single UnityEngine.Vector2::x
IL_018A: ldloca.s 8 (ColossalFramework.Math.Randomizer)
IL_018C: ldc.i4 100000
IL_0191: call System.Int32
ColossalFramework.Math.Randomizer::Int32(System.UInt32 range)
IL_0196: conv.r4
IL_0197: ldc.r4 1E-05
IL_019C: mul
IL_019D: ldarg.1
IL_019E: ldflda UnityEngine.Vector2 PropInfo::m_illuminationOffRange
IL_01A3: ldfld System.Single UnityEngine.Vector2::y
IL_01A8: ldarg.1
IL_01A9: ldflda UnityEngine.Vector2 PropInfo::m_illuminationOffRange
IL_01AE: ldfld System.Single UnityEngine.Vector2::x
IL_01B3: sub
IL_01B4: mul
IL_01B5: add
IL_01B6: stloc.s 6 (System.Single)
IL_01B8: ldarga.s 7
IL_01BA: ldloc.s 6 (System.Single)
IL_01BC: ldc.r4 0.01
IL_01C1: add
IL_01C2: ldloc.s 6 (System.Single)
IL_01C4: ldc.r4 0.01
IL_01C9: sub
IL_01CA: ldloc.s 7 (LightSystem)
IL_01CC: callvirt System.Single LightSystem::get_DayLightIntensity()
IL_01D1: call static System.Single MathUtils::SmoothStep(System.Single edge0,
System.Single edge1, System.Single x)
IL_01D6: stfld System.Single UnityEngine.Vector4::z
IL_01DB: ldarg.1
IL_01DC: ldfld BlinkType PropInfo::m_illuminationBlinkType
IL_01E1: brfalse => Label14
IL_01E6: ldarg.1
IL_01E7: ldfld BlinkType PropInfo::m_illuminationBlinkType
IL_01EC: call static UnityEngine.Vector4
LightEffect::GetBlinkVector(BlinkType type)
IL_01F1: stloc.s 9 (UnityEngine.Vector4)
IL_01F3: ldloc.s 6 (System.Single)
IL_01F5: ldc.r4 3.71
IL_01FA: mul
IL_01FB: call static SimulationManager
ColossalFramework.Singleton`1<SimulationManager>::get_instance()
IL_0200: ldfld System.Single SimulationManager::m_simulationTimer
IL_0205: ldloca.s 9 (UnityEngine.Vector4)
IL_0207: ldfld System.Single UnityEngine.Vector4::w
IL_020C: div
IL_020D: add
IL_020E: stloc.s 10 (System.Single)
IL_0210: ldloc.s 10 (System.Single)
IL_0212: ldloc.s 10 (System.Single)
IL_0214: call static System.Single UnityEngine.Mathf::Floor(System.Single f)
IL_0219: sub
IL_021A: ldloca.s 9 (UnityEngine.Vector4)
IL_021C: ldfld System.Single UnityEngine.Vector4::w
IL_0221: mul
IL_0222: stloc.s 10 (System.Single)
IL_0224: ldloca.s 9 (UnityEngine.Vector4)
IL_0226: ldfld System.Single UnityEngine.Vector4::x
IL_022B: ldloca.s 9 (UnityEngine.Vector4)
IL_022D: ldfld System.Single UnityEngine.Vector4::y
IL_0232: ldloc.s 10 (System.Single)
IL_0234: call static System.Single MathUtils::SmoothStep(System.Single edge0,
System.Single edge1, System.Single x)
IL_0239: stloc.s 11 (System.Single)
IL_023B: ldloca.s 9 (UnityEngine.Vector4)
IL_023D: ldfld System.Single UnityEngine.Vector4::w
IL_0242: ldloca.s 9 (UnityEngine.Vector4)
IL_0244: ldfld System.Single UnityEngine.Vector4::z
IL_0249: ldloc.s 10 (System.Single)
IL_024B: call static System.Single MathUtils::SmoothStep(System.Single edge0,
System.Single edge1, System.Single x)
IL_0250: stloc.s 12 (System.Single)
IL_0252: ldarga.s 7
IL_0254: dup
IL_0255: ldfld System.Single UnityEngine.Vector4::z
IL_025A: ldc.r4 1
IL_025F: ldloc.s 11 (System.Single)
IL_0261: ldloc.s 12 (System.Single)
IL_0263: mul
IL_0264: sub
IL_0265: mul
IL_0266: stfld System.Single UnityEngine.Vector4::z
IL_026B: Label14
IL_026B: br => Label15
IL_0270: Label13
IL_0270: ldarga.s 7
IL_0272: ldc.r4 1
IL_0277: stfld System.Single UnityEngine.Vector4::z
IL_027C: Label8
IL_027C: Label11
IL_027C: Label15
IL_027C: ldarg.0
IL_027D: brfalse => Label16
IL_0282: ldarg.0
IL_0283: ldarg.3
IL_0284: ldarg.1
IL_0285: ldfld System.Single PropInfo::m_lodRenderDistance
IL_028A: callvirt System.Boolean
CameraInfo::CheckRenderDistance(UnityEngine.Vector3 point, System.Single
maxDistance)
IL_028F: brfalse => Label17
IL_0294: Label16
IL_0294: ldloca.s 13 (UnityEngine.Matrix4x4)
IL_0296: initobj UnityEngine.Matrix4x4
IL_029C: ldloca.s 13 (UnityEngine.Matrix4x4)
IL_029E: ldarg.3
IL_029F: ldarg.s 5
IL_02A1: ldc.r4 57.29578
IL_02A6: mul
IL_02A7: call static UnityEngine.Vector3 UnityEngine.Vector3::get_down()
IL_02AC: call static UnityEngine.Quaternion
UnityEngine.Quaternion::AngleAxis(System.Single angle, UnityEngine.Vector3 axis)
IL_02B1: ldarg.s 4
IL_02B3: ldarg.s 4
IL_02B5: ldarg.s 4
IL_02B7: newobj System.Void UnityEngine.Vector3::.ctor(System.Single x,
System.Single y, System.Single z)
IL_02BC: call System.Void UnityEngine.Matrix4x4::SetTRS(UnityEngine.Vector3
pos, UnityEngine.Quaternion q, UnityEngine.Vector3 s)
IL_02C1: call static PropManager
ColossalFramework.Singleton`1<PropManager>::get_instance()
IL_02C6: stloc.s 14 (PropManager)
IL_02C8: ldloc.s 14 (PropManager)
IL_02CA: ldfld UnityEngine.MaterialPropertyBlock PropManager::m_materialBlock
IL_02CF: stloc.s 15 (UnityEngine.MaterialPropertyBlock)
IL_02D1: ldloc.s 15 (UnityEngine.MaterialPropertyBlock)
IL_02D3: callvirt System.Void UnityEngine.MaterialPropertyBlock::Clear()
IL_02D8: ldloc.s 15 (UnityEngine.MaterialPropertyBlock)
IL_02DA: ldloc.s 14 (PropManager)
IL_02DC: ldfld System.Int32 PropManager::ID_Color
IL_02E1: ldarg.s 6
IL_02E3: callvirt System.Void
UnityEngine.MaterialPropertyBlock::SetColor(System.Int32 nameID, UnityEngine.Color
value)
IL_02E8: ldloc.s 15 (UnityEngine.MaterialPropertyBlock)
IL_02EA: ldloc.s 14 (PropManager)
IL_02EC: ldfld System.Int32 PropManager::ID_HeightMap
IL_02F1: ldarg.s 9
IL_02F3: callvirt System.Void
UnityEngine.MaterialPropertyBlock::SetTexture(System.Int32 nameID,
UnityEngine.Texture value)
IL_02F8: ldloc.s 15 (UnityEngine.MaterialPropertyBlock)
IL_02FA: ldloc.s 14 (PropManager)
IL_02FC: ldfld System.Int32 PropManager::ID_HeightMapping
IL_0301: ldarg.s 10
IL_0303: callvirt System.Void
UnityEngine.MaterialPropertyBlock::SetVector(System.Int32 nameID,
UnityEngine.Vector4 value)
IL_0308: ldloc.s 15 (UnityEngine.MaterialPropertyBlock)
IL_030A: ldloc.s 14 (PropManager)
IL_030C: ldfld System.Int32 PropManager::ID_SurfaceMapping
IL_0311: ldarg.s 11
IL_0313: callvirt System.Void
UnityEngine.MaterialPropertyBlock::SetVector(System.Int32 nameID,
UnityEngine.Vector4 value)
IL_0318: ldloc.s 15 (UnityEngine.MaterialPropertyBlock)
IL_031A: ldloc.s 14 (PropManager)
IL_031C: ldfld System.Int32 PropManager::ID_ObjectIndex
IL_0321: ldarg.s 7
IL_0323: callvirt System.Void
UnityEngine.MaterialPropertyBlock::SetVector(System.Int32 nameID,
UnityEngine.Vector4 value)
IL_0328: ldloc.s 15 (UnityEngine.MaterialPropertyBlock)
IL_032A: ldloc.s 14 (PropManager)
IL_032C: ldfld System.Int32 PropManager::ID_WaterHeightMap
IL_0331: ldarg.s 12
IL_0333: callvirt System.Void
UnityEngine.MaterialPropertyBlock::SetTexture(System.Int32 nameID,
UnityEngine.Texture value)
IL_0338: ldloc.s 15 (UnityEngine.MaterialPropertyBlock)
IL_033A: ldloc.s 14 (PropManager)
IL_033C: ldfld System.Int32 PropManager::ID_WaterHeightMapping
IL_0341: ldarg.s 13
IL_0343: callvirt System.Void
UnityEngine.MaterialPropertyBlock::SetVector(System.Int32 nameID,
UnityEngine.Vector4 value)
IL_0348: ldloc.s 15 (UnityEngine.MaterialPropertyBlock)
IL_034A: ldloc.s 14 (PropManager)
IL_034C: ldfld System.Int32 PropManager::ID_WaterSurfaceMapping
IL_0351: ldarg.s 14
IL_0353: callvirt System.Void
UnityEngine.MaterialPropertyBlock::SetVector(System.Int32 nameID,
UnityEngine.Vector4 value)
IL_0358: ldarg.1
IL_0359: ldfld UnityEngine.Vector4[] PropInfo::m_rollLocation
IL_035E: brfalse => Label18
IL_0363: ldarg.1
IL_0364: ldfld UnityEngine.Material PropInfo::m_material
IL_0369: ldloc.s 14 (PropManager)
IL_036B: ldfld System.Int32 PropManager::ID_RollLocation
IL_0370: ldarg.1
IL_0371: ldfld UnityEngine.Vector4[] PropInfo::m_rollLocation
IL_0376: callvirt System.Void UnityEngine.Material::SetVectorArray(System.Int32
nameID, UnityEngine.Vector4[] values)
IL_037B: ldarg.1
IL_037C: ldfld UnityEngine.Material PropInfo::m_material
IL_0381: ldloc.s 14 (PropManager)
IL_0383: ldfld System.Int32 PropManager::ID_RollParams
IL_0388: ldarg.1
IL_0389: ldfld UnityEngine.Vector4[] PropInfo::m_rollParams
IL_038E: callvirt System.Void UnityEngine.Material::SetVectorArray(System.Int32
nameID, UnityEngine.Vector4[] values)
IL_0393: Label18
IL_0393: ldloc.s 14 (PropManager)
IL_0395: ldflda DrawCallData SimulationManagerBase`2<PropManager,
PropProperties>::m_drawCallData
IL_039A: dup
IL_039B: ldfld System.Int32 DrawCallData::m_defaultCalls
IL_03A0: ldc.i4.1
IL_03A1: add
IL_03A2: stfld System.Int32 DrawCallData::m_defaultCalls
IL_03A7: ldarg.1
IL_03A8: ldfld UnityEngine.Mesh PropInfo::m_mesh
IL_03AD: ldloc.s 13 (UnityEngine.Matrix4x4)
IL_03AF: ldarg.1
IL_03B0: ldfld UnityEngine.Material PropInfo::m_material
IL_03B5: ldarg.1
IL_03B6: ldfld System.Int32 PrefabInfo::m_prefabDataLayer
IL_03BB: ldnull
IL_03BC: ldc.i4.0
IL_03BD: ldloc.s 15 (UnityEngine.MaterialPropertyBlock)
IL_03BF: call static System.Void
UnityEngine.Graphics::DrawMesh(UnityEngine.Mesh mesh, UnityEngine.Matrix4x4 matrix,
UnityEngine.Material material, System.Int32 layer, UnityEngine.Camera camera,
System.Int32 submeshIndex, UnityEngine.MaterialPropertyBlock properties)
IL_03C4: br => Label19
IL_03C9: Label17
IL_03C9: ldarg.s 9
IL_03CB: ldarg.1
IL_03CC: ldfld UnityEngine.Texture PropInfo::m_lodHeightMap
IL_03D1: call static System.Boolean
UnityEngine.Object::op_Inequality(UnityEngine.Object x, UnityEngine.Object y)
IL_03D6: brtrue => Label20
IL_03DB: ldarg.s 12
IL_03DD: ldarg.1
IL_03DE: ldfld UnityEngine.Texture PropInfo::m_lodWaterHeightMap
IL_03E3: call static System.Boolean
UnityEngine.Object::op_Inequality(UnityEngine.Object x, UnityEngine.Object y)
IL_03E8: brfalse => Label21
IL_03ED: Label20
IL_03ED: ldarg.1
IL_03EE: ldfld System.Int32 PropInfo::m_lodCount
IL_03F3: brfalse => Label22
IL_03F8: ldarg.0
IL_03F9: ldarg.1
IL_03FA: call static System.Void PropInstance::RenderLod(CameraInfo
cameraInfo, PropInfo info)
IL_03FF: Label22
IL_03FF: ldarg.1
IL_0400: ldarg.s 9
IL_0402: stfld UnityEngine.Texture PropInfo::m_lodHeightMap
IL_0407: ldarg.1
IL_0408: ldarg.s 10
IL_040A: stfld UnityEngine.Vector4 PropInfo::m_lodHeightMapping
IL_040F: ldarg.1
IL_0410: ldarg.s 11
IL_0412: stfld UnityEngine.Vector4 PropInfo::m_lodSurfaceMapping
IL_0417: ldarg.1
IL_0418: ldarg.s 12
IL_041A: stfld UnityEngine.Texture PropInfo::m_lodWaterHeightMap
IL_041F: ldarg.1
IL_0420: ldarg.s 13
IL_0422: stfld UnityEngine.Vector4 PropInfo::m_lodWaterHeightMapping
IL_0427: ldarg.1
IL_0428: ldarg.s 14
IL_042A: stfld UnityEngine.Vector4 PropInfo::m_lodWaterSurfaceMapping
IL_042F: Label21
IL_042F: ldarga.s 7
IL_0431: ldarg.s 4
IL_0433: stfld System.Single UnityEngine.Vector4::w
IL_0438: ldarg.1
IL_0439: ldfld UnityEngine.Vector4[] PropInfo::m_lodLocations
IL_043E: ldarg.1
IL_043F: ldfld System.Int32 PropInfo::m_lodCount
IL_0444: ldelema UnityEngine.Vector4
IL_0449: ldarga.s 3
IL_044B: ldfld System.Single UnityEngine.Vector3::x
IL_0450: ldarga.s 3
IL_0452: ldfld System.Single UnityEngine.Vector3::y
IL_0457: ldarga.s 3
IL_0459: ldfld System.Single UnityEngine.Vector3::z
IL_045E: ldarg.s 5
IL_0460: newobj System.Void UnityEngine.Vector4::.ctor(System.Single x,
System.Single y, System.Single z, System.Single w)
IL_0465: stobj UnityEngine.Vector4
IL_046A: ldarg.1
IL_046B: ldfld UnityEngine.Vector4[] PropInfo::m_lodObjectIndices
IL_0470: ldarg.1
IL_0471: ldfld System.Int32 PropInfo::m_lodCount
IL_0476: ldelema UnityEngine.Vector4
IL_047B: ldarg.s 7
IL_047D: stobj UnityEngine.Vector4
IL_0482: ldarg.1
IL_0483: ldfld UnityEngine.Vector4[] PropInfo::m_lodColors
IL_0488: ldarg.1
IL_0489: ldfld System.Int32 PropInfo::m_lodCount
IL_048E: ldelema UnityEngine.Vector4
IL_0493: ldarga.s 6
IL_0495: call UnityEngine.Color UnityEngine.Color::get_linear()
IL_049A: call static UnityEngine.Vector4
UnityEngine.Color::op_Implicit(UnityEngine.Color c)
IL_049F: stobj UnityEngine.Vector4
IL_04A4: ldarg.1
IL_04A5: ldarg.1
IL_04A6: ldfld UnityEngine.Vector3 PropInfo::m_lodMin
IL_04AB: ldarg.3
IL_04AC: call static UnityEngine.Vector3
UnityEngine.Vector3::Min(UnityEngine.Vector3 lhs, UnityEngine.Vector3 rhs)
IL_04B1: stfld UnityEngine.Vector3 PropInfo::m_lodMin
IL_04B6: ldarg.1
IL_04B7: ldarg.1
IL_04B8: ldfld UnityEngine.Vector3 PropInfo::m_lodMax
IL_04BD: ldarg.3
IL_04BE: call static UnityEngine.Vector3
UnityEngine.Vector3::Max(UnityEngine.Vector3 lhs, UnityEngine.Vector3 rhs)
IL_04C3: stfld UnityEngine.Vector3 PropInfo::m_lodMax
IL_04C8: ldarg.1
IL_04C9: dup
IL_04CA: ldfld System.Int32 PropInfo::m_lodCount
IL_04CF: ldc.i4.1
IL_04D0: add
IL_04D1: dup
IL_04D2: stloc.s 16 (System.Int32)
IL_04D4: stfld System.Int32 PropInfo::m_lodCount
IL_04D9: ldloc.s 16 (System.Int32)
IL_04DB: ldarg.1
IL_04DC: ldfld UnityEngine.Vector4[] PropInfo::m_lodLocations
IL_04E1: ldlen
IL_04E2: conv.i4
IL_04E3: bne.un => Label23
IL_04E8: ldarg.0
IL_04E9: ldarg.1
IL_04EA: call static System.Void PropInstance::RenderLod(CameraInfo
cameraInfo, PropInfo info)
IL_04EF: // end original
IL_04EF: Label0
IL_04EF: Label6
IL_04EF: Label7
IL_04EF: Label19
IL_04EF: Label23
IL_04EF: ret
DONE

### Patch: static System.Void PropInstance::RenderInstance(CameraInfo cameraInfo,


PropInfo info, InstanceID id, UnityEngine.Vector3 position, System.Single scale,
System.Single angle, UnityEngine.Color color, UnityEngine.Vector4 objectIndex,
System.Boolean active)
### Replacement: static System.Void
PropInstance::PropInstance.RenderInstance_Patch0(CameraInfo cameraInfo, PropInfo
info, InstanceID id, UnityEngine.Vector3 position, System.Single scale,
System.Single angle, UnityEngine.Color color, UnityEngine.Vector4 objectIndex,
System.Boolean active)
IL_0000: Local var 0: UnityEngine.Matrix4x4
IL_0000: Local var 1: System.Single
IL_0000: Local var 2: System.Int32
IL_0000: Local var 3: UnityEngine.Vector3
IL_0000: Local var 4: UnityEngine.Vector3
IL_0000: Local var 5: EffectInfo/SpawnArea
IL_0000: Local var 6: System.Single
IL_0000: Local var 7: LightSystem
IL_0000: Local var 8: ColossalFramework.Math.Randomizer
IL_0000: Local var 9: UnityEngine.Vector4
IL_0000: Local var 10: System.Single
IL_0000: Local var 11: System.Single
IL_0000: Local var 12: System.Single
IL_0000: Local var 13: UnityEngine.Matrix4x4
IL_0000: Local var 14: PropManager
IL_0000: Local var 15: UnityEngine.MaterialPropertyBlock
IL_0000: Local var 16: UnityEngine.Matrix4x4
IL_0000: Local var 17: PropManager
IL_0000: Local var 18: UnityEngine.MaterialPropertyBlock
IL_0000: Local var 19: System.Int32
IL_0000: // start original
IL_0000: ldarg.1
IL_0001: ldfld System.Boolean PrefabInfo::m_prefabInitialized
IL_0006: brfalse => Label0
IL_000B: ldarg.1
IL_000C: ldfld System.Boolean PropInfo::m_hasEffects
IL_0011: brfalse => Label1
IL_0016: ldarg.s 8
IL_0018: brtrue => Label2
IL_001D: ldarg.1
IL_001E: ldfld System.Boolean PropInfo::m_alwaysActive
IL_0023: brfalse => Label3
IL_0028: Label2
IL_0028: ldloca.s 0 (UnityEngine.Matrix4x4)
IL_002A: initobj UnityEngine.Matrix4x4
IL_0030: ldloca.s 0 (UnityEngine.Matrix4x4)
IL_0032: ldarg.3
IL_0033: ldarg.s 5
IL_0035: ldc.r4 57.29578
IL_003A: mul
IL_003B: call static UnityEngine.Vector3 UnityEngine.Vector3::get_down()
IL_0040: call static UnityEngine.Quaternion
UnityEngine.Quaternion::AngleAxis(System.Single angle, UnityEngine.Vector3 axis)
IL_0045: ldarg.s 4
IL_0047: ldarg.s 4
IL_0049: ldarg.s 4
IL_004B: newobj System.Void UnityEngine.Vector3::.ctor(System.Single x,
System.Single y, System.Single z)
IL_0050: call System.Void UnityEngine.Matrix4x4::SetTRS(UnityEngine.Vector3
pos, UnityEngine.Quaternion q, UnityEngine.Vector3 s)
IL_0055: call static SimulationManager
ColossalFramework.Singleton`1<SimulationManager>::get_instance()
IL_005A: ldfld System.Single SimulationManager::m_simulationTimeDelta
IL_005F: stloc.1
IL_0060: ldc.i4.0
IL_0061: stloc.2
IL_0062: br => Label4
IL_0067: Label5
IL_0067: ldloca.s 0 (UnityEngine.Matrix4x4)
IL_0069: ldarg.1
IL_006A: ldfld Effect[] PropInfo::m_effects
IL_006F: ldloc.2
IL_0070: ldelema PropInfo+Effect
IL_0075: ldfld UnityEngine.Vector3 Effect::m_position
IL_007A: call UnityEngine.Vector3
UnityEngine.Matrix4x4::MultiplyPoint(UnityEngine.Vector3 v)
IL_007F: stloc.3
IL_0080: ldloca.s 0 (UnityEngine.Matrix4x4)
IL_0082: ldarg.1
IL_0083: ldfld Effect[] PropInfo::m_effects
IL_0088: ldloc.2
IL_0089: ldelema PropInfo+Effect
IL_008E: ldfld UnityEngine.Vector3 Effect::m_direction
IL_0093: call UnityEngine.Vector3
UnityEngine.Matrix4x4::MultiplyVector(UnityEngine.Vector3 v)
IL_0098: stloc.s 4 (UnityEngine.Vector3)
IL_009A: ldloca.s 5 (EffectInfo+SpawnArea)
IL_009C: ldloc.3
IL_009D: ldloc.s 4 (UnityEngine.Vector3)
IL_009F: ldc.r4 0
IL_00A4: call System.Void SpawnArea::.ctor(UnityEngine.Vector3 position,
UnityEngine.Vector3 direction, System.Single radius)
IL_00A9: ldarg.1
IL_00AA: ldfld Effect[] PropInfo::m_effects
IL_00AF: ldloc.2
IL_00B0: ldelema PropInfo+Effect
IL_00B5: ldfld EffectInfo Effect::m_effect
IL_00BA: ldarg.2
IL_00BB: ldloc.s 5 (EffectInfo+SpawnArea)
IL_00BD: call static UnityEngine.Vector3 UnityEngine.Vector3::get_zero()
IL_00C2: ldc.r4 0
IL_00C7: ldc.r4 1
IL_00CC: ldc.r4 -1
IL_00D1: ldloc.1
IL_00D2: ldarg.0
IL_00D3: callvirt virtual System.Void EffectInfo::RenderEffect(InstanceID id,
SpawnArea area, UnityEngine.Vector3 velocity, System.Single acceleration,
System.Single magnitude, System.Single timeOffset, System.Single timeDelta,
CameraInfo cameraInfo)
IL_00D8: ldloc.2
IL_00D9: ldc.i4.1
IL_00DA: add
IL_00DB: stloc.2
IL_00DC: Label4
IL_00DC: ldloc.2
IL_00DD: ldarg.1
IL_00DE: ldfld Effect[] PropInfo::m_effects
IL_00E3: ldlen
IL_00E4: conv.i4
IL_00E5: blt => Label5
IL_00EA: Label1
IL_00EA: Label3
IL_00EA: ldarg.1
IL_00EB: ldfld System.Boolean PropInfo::m_hasRenderer
IL_00F0: brfalse => Label6
IL_00F5: ldarg.0
IL_00F6: ldfld System.Int32 CameraInfo::m_layerMask
IL_00FB: ldc.i4.1
IL_00FC: ldarg.1
IL_00FD: ldfld System.Int32 PrefabInfo::m_prefabDataLayer
IL_0102: ldc.i4.s 31
IL_0104: and
IL_0105: shl
IL_0106: and
IL_0107: brfalse => Label7
IL_010C: call static InfoManager
ColossalFramework.Singleton`1<InfoManager>::get_instance()
IL_0111: callvirt InfoMode InfoManager::get_CurrentMode()
IL_0116: brtrue => Label8
IL_011B: ldc.r4 0
IL_0120: stloc.s 6 (System.Single)
IL_0122: ldarg.s 8
IL_0124: brtrue => Label9
IL_0129: ldarg.1
IL_012A: ldfld System.Boolean PropInfo::m_alwaysActive
IL_012F: brtrue => Label10
IL_0134: ldarga.s 7
IL_0136: ldc.r4 0
IL_013B: stfld System.Single UnityEngine.Vector4::z
IL_0140: br => Label11
IL_0145: Label9
IL_0145: Label10
IL_0145: ldarg.1
IL_0146: ldflda UnityEngine.Vector2 PropInfo::m_illuminationOffRange
IL_014B: ldfld System.Single UnityEngine.Vector2::x
IL_0150: ldc.r4 1000
IL_0155: blt => Label12
IL_015A: ldarg.1
IL_015B: ldfld BlinkType PropInfo::m_illuminationBlinkType
IL_0160: brfalse => Label13
IL_0165: Label12
IL_0165: call static RenderManager
ColossalFramework.Singleton`1<RenderManager>::get_instance()
IL_016A: callvirt LightSystem RenderManager::get_lightSystem()
IL_016F: stloc.s 7 (LightSystem)
IL_0171: ldloca.s 8 (ColossalFramework.Math.Randomizer)
IL_0173: ldarga.s 2
IL_0175: call System.UInt32 InstanceID::get_Index()
IL_017A: call System.Void
ColossalFramework.Math.Randomizer::.ctor(System.UInt32 _seed)
IL_017F: ldarg.1
IL_0180: ldflda UnityEngine.Vector2 PropInfo::m_illuminationOffRange
IL_0185: ldfld System.Single UnityEngine.Vector2::x
IL_018A: ldloca.s 8 (ColossalFramework.Math.Randomizer)
IL_018C: ldc.i4 100000
IL_0191: call System.Int32
ColossalFramework.Math.Randomizer::Int32(System.UInt32 range)
IL_0196: conv.r4
IL_0197: ldc.r4 1E-05
IL_019C: mul
IL_019D: ldarg.1
IL_019E: ldflda UnityEngine.Vector2 PropInfo::m_illuminationOffRange
IL_01A3: ldfld System.Single UnityEngine.Vector2::y
IL_01A8: ldarg.1
IL_01A9: ldflda UnityEngine.Vector2 PropInfo::m_illuminationOffRange
IL_01AE: ldfld System.Single UnityEngine.Vector2::x
IL_01B3: sub
IL_01B4: mul
IL_01B5: add
IL_01B6: stloc.s 6 (System.Single)
IL_01B8: ldarga.s 7
IL_01BA: ldloc.s 6 (System.Single)
IL_01BC: ldc.r4 0.01
IL_01C1: add
IL_01C2: ldloc.s 6 (System.Single)
IL_01C4: ldc.r4 0.01
IL_01C9: sub
IL_01CA: ldloc.s 7 (LightSystem)
IL_01CC: callvirt System.Single LightSystem::get_DayLightIntensity()
IL_01D1: call static System.Single MathUtils::SmoothStep(System.Single edge0,
System.Single edge1, System.Single x)
IL_01D6: stfld System.Single UnityEngine.Vector4::z
IL_01DB: ldarg.1
IL_01DC: ldfld BlinkType PropInfo::m_illuminationBlinkType
IL_01E1: brfalse => Label14
IL_01E6: ldarg.1
IL_01E7: ldfld BlinkType PropInfo::m_illuminationBlinkType
IL_01EC: call static UnityEngine.Vector4
LightEffect::GetBlinkVector(BlinkType type)
IL_01F1: stloc.s 9 (UnityEngine.Vector4)
IL_01F3: ldloc.s 6 (System.Single)
IL_01F5: ldc.r4 3.71
IL_01FA: mul
IL_01FB: call static SimulationManager
ColossalFramework.Singleton`1<SimulationManager>::get_instance()
IL_0200: ldfld System.Single SimulationManager::m_simulationTimer
IL_0205: ldloca.s 9 (UnityEngine.Vector4)
IL_0207: ldfld System.Single UnityEngine.Vector4::w
IL_020C: div
IL_020D: add
IL_020E: stloc.s 10 (System.Single)
IL_0210: ldloc.s 10 (System.Single)
IL_0212: ldloc.s 10 (System.Single)
IL_0214: call static System.Single UnityEngine.Mathf::Floor(System.Single f)
IL_0219: sub
IL_021A: ldloca.s 9 (UnityEngine.Vector4)
IL_021C: ldfld System.Single UnityEngine.Vector4::w
IL_0221: mul
IL_0222: stloc.s 10 (System.Single)
IL_0224: ldloca.s 9 (UnityEngine.Vector4)
IL_0226: ldfld System.Single UnityEngine.Vector4::x
IL_022B: ldloca.s 9 (UnityEngine.Vector4)
IL_022D: ldfld System.Single UnityEngine.Vector4::y
IL_0232: ldloc.s 10 (System.Single)
IL_0234: call static System.Single MathUtils::SmoothStep(System.Single edge0,
System.Single edge1, System.Single x)
IL_0239: stloc.s 11 (System.Single)
IL_023B: ldloca.s 9 (UnityEngine.Vector4)
IL_023D: ldfld System.Single UnityEngine.Vector4::w
IL_0242: ldloca.s 9 (UnityEngine.Vector4)
IL_0244: ldfld System.Single UnityEngine.Vector4::z
IL_0249: ldloc.s 10 (System.Single)
IL_024B: call static System.Single MathUtils::SmoothStep(System.Single edge0,
System.Single edge1, System.Single x)
IL_0250: stloc.s 12 (System.Single)
IL_0252: ldarga.s 7
IL_0254: dup
IL_0255: ldfld System.Single UnityEngine.Vector4::z
IL_025A: ldc.r4 1
IL_025F: ldloc.s 11 (System.Single)
IL_0261: ldloc.s 12 (System.Single)
IL_0263: mul
IL_0264: sub
IL_0265: mul
IL_0266: stfld System.Single UnityEngine.Vector4::z
IL_026B: Label14
IL_026B: br => Label15
IL_0270: Label13
IL_0270: ldarga.s 7
IL_0272: ldc.r4 1
IL_0277: stfld System.Single UnityEngine.Vector4::z
IL_027C: Label8
IL_027C: Label11
IL_027C: Label15
IL_027C: ldarg.0
IL_027D: brfalse => Label16
IL_0282: ldarg.0
IL_0283: ldarg.3
IL_0284: ldarg.1
IL_0285: ldfld System.Single PropInfo::m_lodRenderDistance
IL_028A: callvirt System.Boolean
CameraInfo::CheckRenderDistance(UnityEngine.Vector3 point, System.Single
maxDistance)
IL_028F: brfalse => Label17
IL_0294: Label16
IL_0294: ldloca.s 13 (UnityEngine.Matrix4x4)
IL_0296: initobj UnityEngine.Matrix4x4
IL_029C: ldloca.s 13 (UnityEngine.Matrix4x4)
IL_029E: ldarg.3
IL_029F: ldarg.s 5
IL_02A1: ldc.r4 57.29578
IL_02A6: mul
IL_02A7: call static UnityEngine.Vector3 UnityEngine.Vector3::get_down()
IL_02AC: call static UnityEngine.Quaternion
UnityEngine.Quaternion::AngleAxis(System.Single angle, UnityEngine.Vector3 axis)
IL_02B1: ldarg.s 4
IL_02B3: ldarg.s 4
IL_02B5: ldarg.s 4
IL_02B7: newobj System.Void UnityEngine.Vector3::.ctor(System.Single x,
System.Single y, System.Single z)
IL_02BC: call System.Void UnityEngine.Matrix4x4::SetTRS(UnityEngine.Vector3
pos, UnityEngine.Quaternion q, UnityEngine.Vector3 s)
IL_02C1: call static PropManager
ColossalFramework.Singleton`1<PropManager>::get_instance()
IL_02C6: stloc.s 14 (PropManager)
IL_02C8: ldloc.s 14 (PropManager)
IL_02CA: ldfld UnityEngine.MaterialPropertyBlock PropManager::m_materialBlock
IL_02CF: stloc.s 15 (UnityEngine.MaterialPropertyBlock)
IL_02D1: ldloc.s 15 (UnityEngine.MaterialPropertyBlock)
IL_02D3: callvirt System.Void UnityEngine.MaterialPropertyBlock::Clear()
IL_02D8: ldloc.s 15 (UnityEngine.MaterialPropertyBlock)
IL_02DA: ldloc.s 14 (PropManager)
IL_02DC: ldfld System.Int32 PropManager::ID_Color
IL_02E1: ldarg.s 6
IL_02E3: callvirt System.Void
UnityEngine.MaterialPropertyBlock::SetColor(System.Int32 nameID, UnityEngine.Color
value)
IL_02E8: ldloc.s 15 (UnityEngine.MaterialPropertyBlock)
IL_02EA: ldloc.s 14 (PropManager)
IL_02EC: ldfld System.Int32 PropManager::ID_ObjectIndex
IL_02F1: ldarg.s 7
IL_02F3: callvirt System.Void
UnityEngine.MaterialPropertyBlock::SetVector(System.Int32 nameID,
UnityEngine.Vector4 value)
IL_02F8: ldarg.1
IL_02F9: ldfld UnityEngine.Vector4[] PropInfo::m_rollLocation
IL_02FE: brfalse => Label18
IL_0303: ldarg.1
IL_0304: ldfld UnityEngine.Material PropInfo::m_material
IL_0309: ldloc.s 14 (PropManager)
IL_030B: ldfld System.Int32 PropManager::ID_RollLocation
IL_0310: ldarg.1
IL_0311: ldfld UnityEngine.Vector4[] PropInfo::m_rollLocation
IL_0316: callvirt System.Void UnityEngine.Material::SetVectorArray(System.Int32
nameID, UnityEngine.Vector4[] values)
IL_031B: ldarg.1
IL_031C: ldfld UnityEngine.Material PropInfo::m_material
IL_0321: ldloc.s 14 (PropManager)
IL_0323: ldfld System.Int32 PropManager::ID_RollParams
IL_0328: ldarg.1
IL_0329: ldfld UnityEngine.Vector4[] PropInfo::m_rollParams
IL_032E: callvirt System.Void UnityEngine.Material::SetVectorArray(System.Int32
nameID, UnityEngine.Vector4[] values)
IL_0333: Label18
IL_0333: ldloc.s 14 (PropManager)
IL_0335: ldflda DrawCallData SimulationManagerBase`2<PropManager,
PropProperties>::m_drawCallData
IL_033A: dup
IL_033B: ldfld System.Int32 DrawCallData::m_defaultCalls
IL_0340: ldc.i4.1
IL_0341: add
IL_0342: stfld System.Int32 DrawCallData::m_defaultCalls
IL_0347: ldarg.1
IL_0348: ldfld UnityEngine.Mesh PropInfo::m_mesh
IL_034D: ldloc.s 13 (UnityEngine.Matrix4x4)
IL_034F: ldarg.1
IL_0350: ldfld UnityEngine.Material PropInfo::m_material
IL_0355: ldarg.1
IL_0356: ldfld System.Int32 PrefabInfo::m_prefabDataLayer
IL_035B: ldnull
IL_035C: ldc.i4.0
IL_035D: ldloc.s 15 (UnityEngine.MaterialPropertyBlock)
IL_035F: call static System.Void
UnityEngine.Graphics::DrawMesh(UnityEngine.Mesh mesh, UnityEngine.Matrix4x4 matrix,
UnityEngine.Material material, System.Int32 layer, UnityEngine.Camera camera,
System.Int32 submeshIndex, UnityEngine.MaterialPropertyBlock properties)
IL_0364: br => Label19
IL_0369: Label17
IL_0369: ldarg.1
IL_036A: ldfld UnityEngine.Material PropInfo::m_lodMaterialCombined
IL_036F: ldnull
IL_0370: call static System.Boolean
UnityEngine.Object::op_Equality(UnityEngine.Object x, UnityEngine.Object y)
IL_0375: brfalse => Label20
IL_037A: ldloca.s 16 (UnityEngine.Matrix4x4)
IL_037C: initobj UnityEngine.Matrix4x4
IL_0382: ldloca.s 16 (UnityEngine.Matrix4x4)
IL_0384: ldarg.3
IL_0385: ldarg.s 5
IL_0387: ldc.r4 57.29578
IL_038C: mul
IL_038D: call static UnityEngine.Vector3 UnityEngine.Vector3::get_down()
IL_0392: call static UnityEngine.Quaternion
UnityEngine.Quaternion::AngleAxis(System.Single angle, UnityEngine.Vector3 axis)
IL_0397: ldarg.s 4
IL_0399: ldarg.s 4
IL_039B: ldarg.s 4
IL_039D: newobj System.Void UnityEngine.Vector3::.ctor(System.Single x,
System.Single y, System.Single z)
IL_03A2: call System.Void UnityEngine.Matrix4x4::SetTRS(UnityEngine.Vector3
pos, UnityEngine.Quaternion q, UnityEngine.Vector3 s)
IL_03A7: call static PropManager
ColossalFramework.Singleton`1<PropManager>::get_instance()
IL_03AC: stloc.s 17 (PropManager)
IL_03AE: ldloc.s 17 (PropManager)
IL_03B0: ldfld UnityEngine.MaterialPropertyBlock PropManager::m_materialBlock
IL_03B5: stloc.s 18 (UnityEngine.MaterialPropertyBlock)
IL_03B7: ldloc.s 18 (UnityEngine.MaterialPropertyBlock)
IL_03B9: callvirt System.Void UnityEngine.MaterialPropertyBlock::Clear()
IL_03BE: ldloc.s 18 (UnityEngine.MaterialPropertyBlock)
IL_03C0: ldloc.s 17 (PropManager)
IL_03C2: ldfld System.Int32 PropManager::ID_Color
IL_03C7: ldarg.s 6
IL_03C9: callvirt System.Void
UnityEngine.MaterialPropertyBlock::SetColor(System.Int32 nameID, UnityEngine.Color
value)
IL_03CE: ldloc.s 18 (UnityEngine.MaterialPropertyBlock)
IL_03D0: ldloc.s 17 (PropManager)
IL_03D2: ldfld System.Int32 PropManager::ID_ObjectIndex
IL_03D7: ldarg.s 7
IL_03D9: callvirt System.Void
UnityEngine.MaterialPropertyBlock::SetVector(System.Int32 nameID,
UnityEngine.Vector4 value)
IL_03DE: ldarg.1
IL_03DF: ldfld UnityEngine.Vector4[] PropInfo::m_rollLocation
IL_03E4: brfalse => Label21
IL_03E9: ldarg.1
IL_03EA: ldfld UnityEngine.Material PropInfo::m_material
IL_03EF: ldloc.s 17 (PropManager)
IL_03F1: ldfld System.Int32 PropManager::ID_RollLocation
IL_03F6: ldarg.1
IL_03F7: ldfld UnityEngine.Vector4[] PropInfo::m_rollLocation
IL_03FC: callvirt System.Void UnityEngine.Material::SetVectorArray(System.Int32
nameID, UnityEngine.Vector4[] values)
IL_0401: ldarg.1
IL_0402: ldfld UnityEngine.Material PropInfo::m_material
IL_0407: ldloc.s 17 (PropManager)
IL_0409: ldfld System.Int32 PropManager::ID_RollParams
IL_040E: ldarg.1
IL_040F: ldfld UnityEngine.Vector4[] PropInfo::m_rollParams
IL_0414: callvirt System.Void UnityEngine.Material::SetVectorArray(System.Int32
nameID, UnityEngine.Vector4[] values)
IL_0419: Label21
IL_0419: ldloc.s 17 (PropManager)
IL_041B: ldflda DrawCallData SimulationManagerBase`2<PropManager,
PropProperties>::m_drawCallData
IL_0420: dup
IL_0421: ldfld System.Int32 DrawCallData::m_defaultCalls
IL_0426: ldc.i4.1
IL_0427: add
IL_0428: stfld System.Int32 DrawCallData::m_defaultCalls
IL_042D: ldarg.1
IL_042E: ldfld UnityEngine.Mesh PropInfo::m_lodMesh
IL_0433: ldloc.s 16 (UnityEngine.Matrix4x4)
IL_0435: ldarg.1
IL_0436: ldfld UnityEngine.Material PropInfo::m_lodMaterial
IL_043B: ldarg.1
IL_043C: ldfld System.Int32 PrefabInfo::m_prefabDataLayer
IL_0441: ldnull
IL_0442: ldc.i4.0
IL_0443: ldloc.s 18 (UnityEngine.MaterialPropertyBlock)
IL_0445: call static System.Void
UnityEngine.Graphics::DrawMesh(UnityEngine.Mesh mesh, UnityEngine.Matrix4x4 matrix,
UnityEngine.Material material, System.Int32 layer, UnityEngine.Camera camera,
System.Int32 submeshIndex, UnityEngine.MaterialPropertyBlock properties)
IL_044A: br => Label22
IL_044F: Label20
IL_044F: ldarga.s 7
IL_0451: ldarg.s 4
IL_0453: stfld System.Single UnityEngine.Vector4::w
IL_0458: ldarg.1
IL_0459: ldfld UnityEngine.Vector4[] PropInfo::m_lodLocations
IL_045E: ldarg.1
IL_045F: ldfld System.Int32 PropInfo::m_lodCount
IL_0464: ldelema UnityEngine.Vector4
IL_0469: ldarga.s 3
IL_046B: ldfld System.Single UnityEngine.Vector3::x
IL_0470: ldarga.s 3
IL_0472: ldfld System.Single UnityEngine.Vector3::y
IL_0477: ldarga.s 3
IL_0479: ldfld System.Single UnityEngine.Vector3::z
IL_047E: ldarg.s 5
IL_0480: newobj System.Void UnityEngine.Vector4::.ctor(System.Single x,
System.Single y, System.Single z, System.Single w)
IL_0485: stobj UnityEngine.Vector4
IL_048A: ldarg.1
IL_048B: ldfld UnityEngine.Vector4[] PropInfo::m_lodObjectIndices
IL_0490: ldarg.1
IL_0491: ldfld System.Int32 PropInfo::m_lodCount
IL_0496: ldelema UnityEngine.Vector4
IL_049B: ldarg.s 7
IL_049D: stobj UnityEngine.Vector4
IL_04A2: ldarg.1
IL_04A3: ldfld UnityEngine.Vector4[] PropInfo::m_lodColors
IL_04A8: ldarg.1
IL_04A9: ldfld System.Int32 PropInfo::m_lodCount
IL_04AE: ldelema UnityEngine.Vector4
IL_04B3: ldarga.s 6
IL_04B5: call UnityEngine.Color UnityEngine.Color::get_linear()
IL_04BA: call static UnityEngine.Vector4
UnityEngine.Color::op_Implicit(UnityEngine.Color c)
IL_04BF: stobj UnityEngine.Vector4
IL_04C4: ldarg.1
IL_04C5: ldarg.1
IL_04C6: ldfld UnityEngine.Vector3 PropInfo::m_lodMin
IL_04CB: ldarg.3
IL_04CC: call static UnityEngine.Vector3
UnityEngine.Vector3::Min(UnityEngine.Vector3 lhs, UnityEngine.Vector3 rhs)
IL_04D1: stfld UnityEngine.Vector3 PropInfo::m_lodMin
IL_04D6: ldarg.1
IL_04D7: ldarg.1
IL_04D8: ldfld UnityEngine.Vector3 PropInfo::m_lodMax
IL_04DD: ldarg.3
IL_04DE: call static UnityEngine.Vector3
UnityEngine.Vector3::Max(UnityEngine.Vector3 lhs, UnityEngine.Vector3 rhs)
IL_04E3: stfld UnityEngine.Vector3 PropInfo::m_lodMax
IL_04E8: ldarg.1
IL_04E9: dup
IL_04EA: ldfld System.Int32 PropInfo::m_lodCount
IL_04EF: ldc.i4.1
IL_04F0: add
IL_04F1: dup
IL_04F2: stloc.s 19 (System.Int32)
IL_04F4: stfld System.Int32 PropInfo::m_lodCount
IL_04F9: ldloc.s 19 (System.Int32)
IL_04FB: ldarg.1
IL_04FC: ldfld UnityEngine.Vector4[] PropInfo::m_lodLocations
IL_0501: ldlen
IL_0502: conv.i4
IL_0503: bne.un => Label23
IL_0508: ldarg.0
IL_0509: ldarg.1
IL_050A: call static System.Void PropInstance::RenderLod(CameraInfo
cameraInfo, PropInfo info)
IL_050F: // end original
IL_050F: Label0
IL_050F: Label6
IL_050F: Label7
IL_050F: Label19
IL_050F: Label22
IL_050F: Label23
IL_050F: ret
DONE

### Patch: virtual System.Void LightEffect::PopulateGroupData(System.Int32 layer,


InstanceID id, UnityEngine.Vector3 pos, UnityEngine.Vector3 dir, 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
LightEffect::LightEffect.PopulateGroupData_Patch0(LightEffect this, System.Int32
layer, InstanceID id, UnityEngine.Vector3 pos, UnityEngine.Vector3 dir,
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.Boolean
IL_0000: Local var 1: UnityEngine.Vector3
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.Quaternion
IL_0000: Local var 7: UnityEngine.Vector4
IL_0000: Local var 8: UnityEngine.Vector2
IL_0000: Local var 9: ColossalFramework.Math.Randomizer
IL_0000: Local var 10: UnityEngine.Vector2
IL_0000: Local var 11: UnityEngine.Vector2
IL_0000: Local var 12: UnityEngine.Vector2
IL_0000: Local var 13: System.UInt16
IL_0000: Local var 14: UnityEngine.Vector3
IL_0000: Local var 15: UnityEngine.Color
IL_0000: Local var 16: UnityEngine.Color
IL_0000: Local var 17: System.Single
IL_0000: Local var 18: System.Single
IL_0000: Local var 19: System.Int32
IL_0000: // start original
IL_0000: ldarg.1
IL_0001: ldarg.0
IL_0002: ldfld System.Int32 LightEffect::m_groupLayer
IL_0007: beq => Label0
IL_000C: ldarg.1
IL_000D: ldarg.0
IL_000E: ldfld System.Int32 LightEffect::m_groupLayerFloating
IL_0013: bne.un => Label1
IL_0018: Label0
IL_0018: ldarg.1
IL_0019: ldarg.0
IL_001A: ldfld System.Int32 LightEffect::m_groupLayerFloating
IL_001F: ceq
IL_0021: stloc.0
IL_0022: ldloca.s 1 (UnityEngine.Vector3)
IL_0024: ldarg.0
IL_0025: ldfld System.Single LightEffect::m_lightRange
IL_002A: ldarg.0
IL_002B: ldfld System.Single LightEffect::m_lightRange
IL_0030: ldarg.0
IL_0031: ldfld System.Single LightEffect::m_lightRange
IL_0036: call System.Void UnityEngine.Vector3::.ctor(System.Single x,
System.Single y, System.Single z)
IL_003B: ldarg.3
IL_003C: ldloc.1
IL_003D: call static UnityEngine.Vector3
UnityEngine.Vector3::op_Subtraction(UnityEngine.Vector3 a, UnityEngine.Vector3 b)
IL_0042: stloc.2
IL_0043: ldarg.3
IL_0044: ldloc.1
IL_0045: call static UnityEngine.Vector3
UnityEngine.Vector3::op_Addition(UnityEngine.Vector3 a, UnityEngine.Vector3 b)
IL_004A: stloc.3
IL_004B: ldarg.s 9
IL_004D: ldarg.s 9
IL_004F: ldobj UnityEngine.Vector3
IL_0054: ldloc.2
IL_0055: call static UnityEngine.Vector3
UnityEngine.Vector3::Min(UnityEngine.Vector3 lhs, UnityEngine.Vector3 rhs)
IL_005A: stobj UnityEngine.Vector3
IL_005F: ldarg.s 10
IL_0061: ldarg.s 10
IL_0063: ldobj UnityEngine.Vector3
IL_0068: ldloc.3
IL_0069: call static UnityEngine.Vector3
UnityEngine.Vector3::Max(UnityEngine.Vector3 lhs, UnityEngine.Vector3 rhs)
IL_006E: stobj UnityEngine.Vector3
IL_0073: ldarg.3
IL_0074: ldarg.s 7
IL_0076: call static UnityEngine.Vector3
UnityEngine.Vector3::op_Subtraction(UnityEngine.Vector3 a, UnityEngine.Vector3 b)
IL_007B: stloc.s 4 (UnityEngine.Vector3)
IL_007D: ldarg.s 11
IL_007F: ldarg.s 11
IL_0081: ldind.r4
IL_0082: ldc.r4 30000
IL_0087: call static System.Single UnityEngine.Mathf::Max(System.Single a,
System.Single b)
IL_008C: stind.r4
IL_008D: ldarg.0
IL_008E: ldfld UnityEngine.LightType LightEffect::m_lightType
IL_0093: brtrue => Label2
IL_0098: ldarg.s 4
IL_009A: call static UnityEngine.Quaternion
UnityEngine.Quaternion::LookRotation(UnityEngine.Vector3 forward)
IL_009F: stloc.s 6 (UnityEngine.Quaternion)
IL_00A1: ldloc.s 6 (UnityEngine.Quaternion)
IL_00A3: ldarg.0
IL_00A4: ldfld UnityEngine.Quaternion LightEffect::m_lightRotation
IL_00A9: call static UnityEngine.Vector3 UnityEngine.Vector3::get_forward()
IL_00AE: call static UnityEngine.Vector3
UnityEngine.Quaternion::op_Multiply(UnityEngine.Quaternion rotation,
UnityEngine.Vector3 point)
IL_00B3: call static UnityEngine.Vector3
UnityEngine.Quaternion::op_Multiply(UnityEngine.Quaternion rotation,
UnityEngine.Vector3 point)
IL_00B8: stloc.s 5 (UnityEngine.Vector3)
IL_00BA: br => Label3
IL_00BF: Label2
IL_00BF: call static UnityEngine.Vector3 UnityEngine.Vector3::get_forward()
IL_00C4: stloc.s 5 (UnityEngine.Vector3)
IL_00C6: Label3
IL_00C6: ldloca.s 7 (UnityEngine.Vector4)
IL_00C8: ldloca.s 5 (UnityEngine.Vector3)
IL_00CA: ldfld System.Single UnityEngine.Vector3::x
IL_00CF: ldloca.s 5 (UnityEngine.Vector3)
IL_00D1: ldfld System.Single UnityEngine.Vector3::y
IL_00D6: ldloca.s 5 (UnityEngine.Vector3)
IL_00D8: ldfld System.Single UnityEngine.Vector3::z
IL_00DD: ldc.r4 100000
IL_00E2: call System.Void UnityEngine.Vector4::.ctor(System.Single x,
System.Single y, System.Single z, System.Single w)
IL_00E7: ldarg.0
IL_00E8: ldfld UnityEngine.LightType LightEffect::m_lightType
IL_00ED: brtrue => Label4
IL_00F2: ldloca.s 7 (UnityEngine.Vector4)
IL_00F4: ldc.r4 0.01745329
IL_00F9: ldarg.0
IL_00FA: ldfld System.Single LightEffect::m_lightSpotAngle
IL_00FF: mul
IL_0100: ldc.r4 0.5
IL_0105: mul
IL_0106: call static System.Single UnityEngine.Mathf::Cos(System.Single f)
IL_010B: neg
IL_010C: stfld System.Single UnityEngine.Vector4::w
IL_0111: Label4
IL_0111: ldloca.s 8 (UnityEngine.Vector2)
IL_0113: ldc.r4 1
IL_0118: ldarg.0
IL_0119: ldfld System.Single LightEffect::m_lightRange
IL_011E: ldarg.0
IL_011F: ldfld System.Single LightEffect::m_lightRange
IL_0124: mul
IL_0125: div
IL_0126: ldarg.0
IL_0127: ldfld System.Single LightEffect::m_lightIntensity
IL_012C: call System.Void UnityEngine.Vector2::.ctor(System.Single x,
System.Single y)
IL_0131: ldloca.s 9 (ColossalFramework.Math.Randomizer)
IL_0133: ldarga.s 2
IL_0135: call System.UInt32 InstanceID::get_Index()
IL_013A: call System.Void
ColossalFramework.Math.Randomizer::.ctor(System.UInt32 _seed)
IL_013F: ldloca.s 10 (UnityEngine.Vector2)
IL_0141: ldarg.0
IL_0142: ldflda UnityEngine.Vector2 LightEffect::m_offRange
IL_0147: ldfld System.Single UnityEngine.Vector2::x
IL_014C: ldloca.s 9 (ColossalFramework.Math.Randomizer)
IL_014E: ldc.i4 100000
IL_0153: call System.Int32
ColossalFramework.Math.Randomizer::Int32(System.UInt32 range)
IL_0158: conv.r4
IL_0159: ldc.r4 1E-05
IL_015E: mul
IL_015F: ldarg.0
IL_0160: ldflda UnityEngine.Vector2 LightEffect::m_offRange
IL_0165: ldfld System.Single UnityEngine.Vector2::y
IL_016A: ldarg.0
IL_016B: ldflda UnityEngine.Vector2 LightEffect::m_offRange
IL_0170: ldfld System.Single UnityEngine.Vector2::x
IL_0175: sub
IL_0176: mul
IL_0177: add
IL_0178: stfld System.Single UnityEngine.Vector2::x
IL_017D: ldloca.s 10 (UnityEngine.Vector2)
IL_017F: ldarg.0
IL_0180: ldfld BlinkType LightEffect::m_blinkType
IL_0185: conv.r4
IL_0186: stfld System.Single UnityEngine.Vector2::y
IL_018B: ldarg.2
IL_018C: call static System.UInt16 EffectInfo::GetBuilding(InstanceID id)
IL_0191: stloc.s 13 (System.UInt16)
IL_0193: ldloc.s 13 (System.UInt16)
IL_0195: brfalse => Label5
IL_019A: ldloc.s 13 (System.UInt16)
IL_019C: call static UnityEngine.Vector4
RenderManager::GetColorLocation(System.UInt32 instanceHolder)
IL_01A1: call static UnityEngine.Vector2
UnityEngine.Vector4::op_Implicit(UnityEngine.Vector4 v)
IL_01A6: stloc.s 11 (UnityEngine.Vector2)
IL_01A8: ldloc.0
IL_01A9: brfalse => Label6
IL_01AE: call static BuildingManager
ColossalFramework.Singleton`1<BuildingManager>::get_instance()
IL_01B3: ldfld Array16`1<Building> BuildingManager::m_buildings
IL_01B8: ldfld Building[] Array16`1<Building>::m_buffer
IL_01BD: ldloc.s 13 (System.UInt16)
IL_01BF: ldelema Building
IL_01C4: call UnityEngine.Vector3 Building::CalculateMeshPosition()
IL_01C9: stloc.s 14 (UnityEngine.Vector3)
IL_01CB: ldloc.s 14 (UnityEngine.Vector3)
IL_01CD: call static UnityEngine.Vector2
ColossalFramework.Math.VectorUtils::XZ(UnityEngine.Vector3 v)
IL_01D2: stloc.s 12 (UnityEngine.Vector2)
IL_01D4: ldarga.s 3
IL_01D6: dup
IL_01D7: ldfld System.Single UnityEngine.Vector3::y
IL_01DC: ldloca.s 14 (UnityEngine.Vector3)
IL_01DE: ldfld System.Single UnityEngine.Vector3::y
IL_01E3: sub
IL_01E4: stfld System.Single UnityEngine.Vector3::y
IL_01E9: ldloca.s 4 (UnityEngine.Vector3)
IL_01EB: dup
IL_01EC: ldfld System.Single UnityEngine.Vector3::y
IL_01F1: ldloca.s 14 (UnityEngine.Vector3)
IL_01F3: ldfld System.Single UnityEngine.Vector3::y
IL_01F8: sub
IL_01F9: stfld System.Single UnityEngine.Vector3::y
IL_01FE: br => Label7
IL_0203: Label6
IL_0203: call static UnityEngine.Vector2 UnityEngine.Vector2::get_zero()
IL_0208: stloc.s 12 (UnityEngine.Vector2)
IL_020A: Label7
IL_020A: br => Label8
IL_020F: Label5
IL_020F: ldsfld UnityEngine.Vector4 RenderManager::DefaultColorLocation
IL_0214: call static UnityEngine.Vector2
UnityEngine.Vector4::op_Implicit(UnityEngine.Vector4 v)
IL_0219: stloc.s 11 (UnityEngine.Vector2)
IL_021B: call static UnityEngine.Vector2 UnityEngine.Vector2::get_zero()
IL_0220: stloc.s 12 (UnityEngine.Vector2)
IL_0222: Label8
IL_0222: ldarg.0
IL_0223: ldfld UnityEngine.Color LightEffect::m_lightColor
IL_0228: stloc.s 15 (UnityEngine.Color)
IL_022A: ldarg.0
IL_022B: ldfld UnityEngine.Color[] LightEffect::m_variationColors
IL_0230: brfalse => Label9
IL_0235: ldarg.0
IL_0236: ldfld UnityEngine.Color[] LightEffect::m_variationColors
IL_023B: ldlen
IL_023C: conv.i4
IL_023D: brfalse => Label10
IL_0242: ldarg.0
IL_0243: ldfld UnityEngine.Color[] LightEffect::m_variationColors
IL_0248: ldloca.s 9 (ColossalFramework.Math.Randomizer)
IL_024A: ldarg.0
IL_024B: ldfld UnityEngine.Color[] LightEffect::m_variationColors
IL_0250: ldlen
IL_0251: conv.i4
IL_0252: call System.Int32
ColossalFramework.Math.Randomizer::Int32(System.UInt32 range)
IL_0257: ldelema UnityEngine.Color
IL_025C: ldobj UnityEngine.Color
IL_0261: stloc.s 16 (UnityEngine.Color)
IL_0263: ldloc.s 15 (UnityEngine.Color)
IL_0265: ldloc.s 16 (UnityEngine.Color)
IL_0267: ldloca.s 9 (ColossalFramework.Math.Randomizer)
IL_0269: ldc.i4 1000
IL_026E: call System.Int32
ColossalFramework.Math.Randomizer::Int32(System.UInt32 range)
IL_0273: conv.r4
IL_0274: ldc.r4 0.001
IL_0279: mul
IL_027A: call static UnityEngine.Color
UnityEngine.Color::Lerp(UnityEngine.Color a, UnityEngine.Color b, System.Single t)
IL_027F: stloc.s 15 (UnityEngine.Color)
IL_0281: Label9
IL_0281: Label10
IL_0281: ldloca.s 15 (UnityEngine.Color)
IL_0283: call UnityEngine.Color UnityEngine.Color::get_linear()
IL_0288: stloc.s 15 (UnityEngine.Color)
IL_028A: ldloca.s 15 (UnityEngine.Color)
IL_028C: ldarg.0
IL_028D: ldfld UnityEngine.LightType LightEffect::m_lightType
IL_0292: brtrue => Label11
IL_0297: ldarg.0
IL_0298: ldfld System.Single LightEffect::m_spotLeaking
IL_029D: br => Label12
IL_02A2: Label11
IL_02A2: ldc.r4 0
IL_02A7: Label12
IL_02A7: stfld System.Single UnityEngine.Color::a
IL_02AC: ldarg.0
IL_02AD: ldfld System.Single LightEffect::m_lightRange
IL_02B2: ldc.r4 0.5235988
IL_02B7: call static System.Single UnityEngine.Mathf::Cos(System.Single f)
IL_02BC: div
IL_02BD: stloc.s 17 (System.Single)
IL_02BF: ldloc.s 17 (System.Single)
IL_02C1: ldc.r4 0.5
IL_02C6: mul
IL_02C7: stloc.s 18 (System.Single)
IL_02C9: ldarg.s 8
IL_02CB: ldfld UnityEngine.Vector3[] MeshData::m_vertices
IL_02D0: ldarg.s 5
IL_02D2: ldind.i4
IL_02D3: ldelema UnityEngine.Vector3
IL_02D8: ldloca.s 4 (UnityEngine.Vector3)
IL_02DA: ldfld System.Single UnityEngine.Vector3::x
IL_02DF: ldloc.s 18 (System.Single)
IL_02E1: sub
IL_02E2: ldloca.s 4 (UnityEngine.Vector3)
IL_02E4: ldfld System.Single UnityEngine.Vector3::y
IL_02E9: ldarg.0
IL_02EA: ldfld System.Single LightEffect::m_lightRange
IL_02EF: add
IL_02F0: ldloca.s 4 (UnityEngine.Vector3)
IL_02F2: ldfld System.Single UnityEngine.Vector3::z
IL_02F7: ldarg.0
IL_02F8: ldfld System.Single LightEffect::m_lightRange
IL_02FD: add
IL_02FE: newobj System.Void UnityEngine.Vector3::.ctor(System.Single x,
System.Single y, System.Single z)
IL_0303: stobj UnityEngine.Vector3
IL_0308: ldarg.s 8
IL_030A: ldfld UnityEngine.Vector3[] MeshData::m_normals
IL_030F: ldarg.s 5
IL_0311: ldind.i4
IL_0312: ldelema UnityEngine.Vector3
IL_0317: ldarg.3
IL_0318: stobj UnityEngine.Vector3
IL_031D: ldarg.s 8
IL_031F: ldfld UnityEngine.Vector4[] MeshData::m_tangents
IL_0324: ldarg.s 5
IL_0326: ldind.i4
IL_0327: ldelema UnityEngine.Vector4
IL_032C: ldloc.s 7 (UnityEngine.Vector4)
IL_032E: stobj UnityEngine.Vector4
IL_0333: ldarg.s 8
IL_0335: ldfld UnityEngine.Vector2[] MeshData::m_uvs
IL_033A: ldarg.s 5
IL_033C: ldind.i4
IL_033D: ldelema UnityEngine.Vector2
IL_0342: ldloc.s 8 (UnityEngine.Vector2)
IL_0344: stobj UnityEngine.Vector2
IL_0349: ldarg.s 8
IL_034B: ldfld UnityEngine.Vector2[] MeshData::m_uvs2
IL_0350: ldarg.s 5
IL_0352: ldind.i4
IL_0353: ldelema UnityEngine.Vector2
IL_0358: ldloc.s 10 (UnityEngine.Vector2)
IL_035A: stobj UnityEngine.Vector2
IL_035F: ldarg.s 8
IL_0361: ldfld UnityEngine.Vector2[] MeshData::m_uvs3
IL_0366: ldarg.s 5
IL_0368: ldind.i4
IL_0369: ldelema UnityEngine.Vector2
IL_036E: ldloc.s 11 (UnityEngine.Vector2)
IL_0370: stobj UnityEngine.Vector2
IL_0375: ldloc.0
IL_0376: brfalse => Label13
IL_037B: ldarg.s 8
IL_037D: ldfld UnityEngine.Vector2[] MeshData::m_uvs4
IL_0382: ldarg.s 5
IL_0384: ldind.i4
IL_0385: ldelema UnityEngine.Vector2
IL_038A: ldloc.s 12 (UnityEngine.Vector2)
IL_038C: stobj UnityEngine.Vector2
IL_0391: Label13
IL_0391: ldarg.s 8
IL_0393: ldfld UnityEngine.Color32[] MeshData::m_colors
IL_0398: ldarg.s 5
IL_039A: ldind.i4
IL_039B: ldelema UnityEngine.Color32
IL_03A0: ldloc.s 15 (UnityEngine.Color)
IL_03A2: call static UnityEngine.Color32
UnityEngine.Color32::op_Implicit(UnityEngine.Color c)
IL_03A7: stobj UnityEngine.Color32
IL_03AC: ldarg.s 5
IL_03AE: ldarg.s 5
IL_03B0: ldind.i4
IL_03B1: ldc.i4.1
IL_03B2: add
IL_03B3: stind.i4
IL_03B4: ldarg.s 8
IL_03B6: ldfld UnityEngine.Vector3[] MeshData::m_vertices
IL_03BB: ldarg.s 5
IL_03BD: ldind.i4
IL_03BE: ldelema UnityEngine.Vector3
IL_03C3: ldloca.s 4 (UnityEngine.Vector3)
IL_03C5: ldfld System.Single UnityEngine.Vector3::x
IL_03CA: ldloc.s 18 (System.Single)
IL_03CC: add
IL_03CD: ldloca.s 4 (UnityEngine.Vector3)
IL_03CF: ldfld System.Single UnityEngine.Vector3::y
IL_03D4: ldarg.0
IL_03D5: ldfld System.Single LightEffect::m_lightRange
IL_03DA: add
IL_03DB: ldloca.s 4 (UnityEngine.Vector3)
IL_03DD: ldfld System.Single UnityEngine.Vector3::z
IL_03E2: ldarg.0
IL_03E3: ldfld System.Single LightEffect::m_lightRange
IL_03E8: add
IL_03E9: newobj System.Void UnityEngine.Vector3::.ctor(System.Single x,
System.Single y, System.Single z)
IL_03EE: stobj UnityEngine.Vector3
IL_03F3: ldarg.s 8
IL_03F5: ldfld UnityEngine.Vector3[] MeshData::m_normals
IL_03FA: ldarg.s 5
IL_03FC: ldind.i4
IL_03FD: ldelema UnityEngine.Vector3
IL_0402: ldarg.3
IL_0403: stobj UnityEngine.Vector3
IL_0408: ldarg.s 8
IL_040A: ldfld UnityEngine.Vector4[] MeshData::m_tangents
IL_040F: ldarg.s 5
IL_0411: ldind.i4
IL_0412: ldelema UnityEngine.Vector4
IL_0417: ldloc.s 7 (UnityEngine.Vector4)
IL_0419: stobj UnityEngine.Vector4
IL_041E: ldarg.s 8
IL_0420: ldfld UnityEngine.Vector2[] MeshData::m_uvs
IL_0425: ldarg.s 5
IL_0427: ldind.i4
IL_0428: ldelema UnityEngine.Vector2
IL_042D: ldloc.s 8 (UnityEngine.Vector2)
IL_042F: stobj UnityEngine.Vector2
IL_0434: ldarg.s 8
IL_0436: ldfld UnityEngine.Vector2[] MeshData::m_uvs2
IL_043B: ldarg.s 5
IL_043D: ldind.i4
IL_043E: ldelema UnityEngine.Vector2
IL_0443: ldloc.s 10 (UnityEngine.Vector2)
IL_0445: stobj UnityEngine.Vector2
IL_044A: ldarg.s 8
IL_044C: ldfld UnityEngine.Vector2[] MeshData::m_uvs3
IL_0451: ldarg.s 5
IL_0453: ldind.i4
IL_0454: ldelema UnityEngine.Vector2
IL_0459: ldloc.s 11 (UnityEngine.Vector2)
IL_045B: stobj UnityEngine.Vector2
IL_0460: ldloc.0
IL_0461: brfalse => Label14
IL_0466: ldarg.s 8
IL_0468: ldfld UnityEngine.Vector2[] MeshData::m_uvs4
IL_046D: ldarg.s 5
IL_046F: ldind.i4
IL_0470: ldelema UnityEngine.Vector2
IL_0475: ldloc.s 12 (UnityEngine.Vector2)
IL_0477: stobj UnityEngine.Vector2
IL_047C: Label14
IL_047C: ldarg.s 8
IL_047E: ldfld UnityEngine.Color32[] MeshData::m_colors
IL_0483: ldarg.s 5
IL_0485: ldind.i4
IL_0486: ldelema UnityEngine.Color32
IL_048B: ldloc.s 15 (UnityEngine.Color)
IL_048D: call static UnityEngine.Color32
UnityEngine.Color32::op_Implicit(UnityEngine.Color c)
IL_0492: stobj UnityEngine.Color32
IL_0497: ldarg.s 5
IL_0499: ldarg.s 5
IL_049B: ldind.i4
IL_049C: ldc.i4.1
IL_049D: add
IL_049E: stind.i4
IL_049F: ldarg.s 8
IL_04A1: ldfld UnityEngine.Vector3[] MeshData::m_vertices
IL_04A6: ldarg.s 5
IL_04A8: ldind.i4
IL_04A9: ldelema UnityEngine.Vector3
IL_04AE: ldloca.s 4 (UnityEngine.Vector3)
IL_04B0: ldfld System.Single UnityEngine.Vector3::x
IL_04B5: ldloc.s 17 (System.Single)
IL_04B7: add
IL_04B8: ldloca.s 4 (UnityEngine.Vector3)
IL_04BA: ldfld System.Single UnityEngine.Vector3::y
IL_04BF: ldloca.s 4 (UnityEngine.Vector3)
IL_04C1: ldfld System.Single UnityEngine.Vector3::z
IL_04C6: ldarg.0
IL_04C7: ldfld System.Single LightEffect::m_lightRange
IL_04CC: add
IL_04CD: newobj System.Void UnityEngine.Vector3::.ctor(System.Single x,
System.Single y, System.Single z)
IL_04D2: stobj UnityEngine.Vector3
IL_04D7: ldarg.s 8
IL_04D9: ldfld UnityEngine.Vector3[] MeshData::m_normals
IL_04DE: ldarg.s 5
IL_04E0: ldind.i4
IL_04E1: ldelema UnityEngine.Vector3
IL_04E6: ldarg.3
IL_04E7: stobj UnityEngine.Vector3
IL_04EC: ldarg.s 8
IL_04EE: ldfld UnityEngine.Vector4[] MeshData::m_tangents
IL_04F3: ldarg.s 5
IL_04F5: ldind.i4
IL_04F6: ldelema UnityEngine.Vector4
IL_04FB: ldloc.s 7 (UnityEngine.Vector4)
IL_04FD: stobj UnityEngine.Vector4
IL_0502: ldarg.s 8
IL_0504: ldfld UnityEngine.Vector2[] MeshData::m_uvs
IL_0509: ldarg.s 5
IL_050B: ldind.i4
IL_050C: ldelema UnityEngine.Vector2
IL_0511: ldloc.s 8 (UnityEngine.Vector2)
IL_0513: stobj UnityEngine.Vector2
IL_0518: ldarg.s 8
IL_051A: ldfld UnityEngine.Vector2[] MeshData::m_uvs2
IL_051F: ldarg.s 5
IL_0521: ldind.i4
IL_0522: ldelema UnityEngine.Vector2
IL_0527: ldloc.s 10 (UnityEngine.Vector2)
IL_0529: stobj UnityEngine.Vector2
IL_052E: ldarg.s 8
IL_0530: ldfld UnityEngine.Vector2[] MeshData::m_uvs3
IL_0535: ldarg.s 5
IL_0537: ldind.i4
IL_0538: ldelema UnityEngine.Vector2
IL_053D: ldloc.s 11 (UnityEngine.Vector2)
IL_053F: stobj UnityEngine.Vector2
IL_0544: ldloc.0
IL_0545: brfalse => Label15
IL_054A: ldarg.s 8
IL_054C: ldfld UnityEngine.Vector2[] MeshData::m_uvs4
IL_0551: ldarg.s 5
IL_0553: ldind.i4
IL_0554: ldelema UnityEngine.Vector2
IL_0559: ldloc.s 12 (UnityEngine.Vector2)
IL_055B: stobj UnityEngine.Vector2
IL_0560: Label15
IL_0560: ldarg.s 8
IL_0562: ldfld UnityEngine.Color32[] MeshData::m_colors
IL_0567: ldarg.s 5
IL_0569: ldind.i4
IL_056A: ldelema UnityEngine.Color32
IL_056F: ldloc.s 15 (UnityEngine.Color)
IL_0571: call static UnityEngine.Color32
UnityEngine.Color32::op_Implicit(UnityEngine.Color c)
IL_0576: stobj UnityEngine.Color32
IL_057B: ldarg.s 5
IL_057D: ldarg.s 5
IL_057F: ldind.i4
IL_0580: ldc.i4.1
IL_0581: add
IL_0582: stind.i4
IL_0583: ldarg.s 8
IL_0585: ldfld UnityEngine.Vector3[] MeshData::m_vertices
IL_058A: ldarg.s 5
IL_058C: ldind.i4
IL_058D: ldelema UnityEngine.Vector3
IL_0592: ldloca.s 4 (UnityEngine.Vector3)
IL_0594: ldfld System.Single UnityEngine.Vector3::x
IL_0599: ldloc.s 18 (System.Single)
IL_059B: add
IL_059C: ldloca.s 4 (UnityEngine.Vector3)
IL_059E: ldfld System.Single UnityEngine.Vector3::y
IL_05A3: ldarg.0
IL_05A4: ldfld System.Single LightEffect::m_lightRange
IL_05A9: sub
IL_05AA: ldloca.s 4 (UnityEngine.Vector3)
IL_05AC: ldfld System.Single UnityEngine.Vector3::z
IL_05B1: ldarg.0
IL_05B2: ldfld System.Single LightEffect::m_lightRange
IL_05B7: add
IL_05B8: newobj System.Void UnityEngine.Vector3::.ctor(System.Single x,
System.Single y, System.Single z)
IL_05BD: stobj UnityEngine.Vector3
IL_05C2: ldarg.s 8
IL_05C4: ldfld UnityEngine.Vector3[] MeshData::m_normals
IL_05C9: ldarg.s 5
IL_05CB: ldind.i4
IL_05CC: ldelema UnityEngine.Vector3
IL_05D1: ldarg.3
IL_05D2: stobj UnityEngine.Vector3
IL_05D7: ldarg.s 8
IL_05D9: ldfld UnityEngine.Vector4[] MeshData::m_tangents
IL_05DE: ldarg.s 5
IL_05E0: ldind.i4
IL_05E1: ldelema UnityEngine.Vector4
IL_05E6: ldloc.s 7 (UnityEngine.Vector4)
IL_05E8: stobj UnityEngine.Vector4
IL_05ED: ldarg.s 8
IL_05EF: ldfld UnityEngine.Vector2[] MeshData::m_uvs
IL_05F4: ldarg.s 5
IL_05F6: ldind.i4
IL_05F7: ldelema UnityEngine.Vector2
IL_05FC: ldloc.s 8 (UnityEngine.Vector2)
IL_05FE: stobj UnityEngine.Vector2
IL_0603: ldarg.s 8
IL_0605: ldfld UnityEngine.Vector2[] MeshData::m_uvs2
IL_060A: ldarg.s 5
IL_060C: ldind.i4
IL_060D: ldelema UnityEngine.Vector2
IL_0612: ldloc.s 10 (UnityEngine.Vector2)
IL_0614: stobj UnityEngine.Vector2
IL_0619: ldarg.s 8
IL_061B: ldfld UnityEngine.Vector2[] MeshData::m_uvs3
IL_0620: ldarg.s 5
IL_0622: ldind.i4
IL_0623: ldelema UnityEngine.Vector2
IL_0628: ldloc.s 11 (UnityEngine.Vector2)
IL_062A: stobj UnityEngine.Vector2
IL_062F: ldloc.0
IL_0630: brfalse => Label16
IL_0635: ldarg.s 8
IL_0637: ldfld UnityEngine.Vector2[] MeshData::m_uvs4
IL_063C: ldarg.s 5
IL_063E: ldind.i4
IL_063F: ldelema UnityEngine.Vector2
IL_0644: ldloc.s 12 (UnityEngine.Vector2)
IL_0646: stobj UnityEngine.Vector2
IL_064B: Label16
IL_064B: ldarg.s 8
IL_064D: ldfld UnityEngine.Color32[] MeshData::m_colors
IL_0652: ldarg.s 5
IL_0654: ldind.i4
IL_0655: ldelema UnityEngine.Color32
IL_065A: ldloc.s 15 (UnityEngine.Color)
IL_065C: call static UnityEngine.Color32
UnityEngine.Color32::op_Implicit(UnityEngine.Color c)
IL_0661: stobj UnityEngine.Color32
IL_0666: ldarg.s 5
IL_0668: ldarg.s 5
IL_066A: ldind.i4
IL_066B: ldc.i4.1
IL_066C: add
IL_066D: stind.i4
IL_066E: ldarg.s 8
IL_0670: ldfld UnityEngine.Vector3[] MeshData::m_vertices
IL_0675: ldarg.s 5
IL_0677: ldind.i4
IL_0678: ldelema UnityEngine.Vector3
IL_067D: ldloca.s 4 (UnityEngine.Vector3)
IL_067F: ldfld System.Single UnityEngine.Vector3::x
IL_0684: ldloc.s 18 (System.Single)
IL_0686: sub
IL_0687: ldloca.s 4 (UnityEngine.Vector3)
IL_0689: ldfld System.Single UnityEngine.Vector3::y
IL_068E: ldarg.0
IL_068F: ldfld System.Single LightEffect::m_lightRange
IL_0694: sub
IL_0695: ldloca.s 4 (UnityEngine.Vector3)
IL_0697: ldfld System.Single UnityEngine.Vector3::z
IL_069C: ldarg.0
IL_069D: ldfld System.Single LightEffect::m_lightRange
IL_06A2: add
IL_06A3: newobj System.Void UnityEngine.Vector3::.ctor(System.Single x,
System.Single y, System.Single z)
IL_06A8: stobj UnityEngine.Vector3
IL_06AD: ldarg.s 8
IL_06AF: ldfld UnityEngine.Vector3[] MeshData::m_normals
IL_06B4: ldarg.s 5
IL_06B6: ldind.i4
IL_06B7: ldelema UnityEngine.Vector3
IL_06BC: ldarg.3
IL_06BD: stobj UnityEngine.Vector3
IL_06C2: ldarg.s 8
IL_06C4: ldfld UnityEngine.Vector4[] MeshData::m_tangents
IL_06C9: ldarg.s 5
IL_06CB: ldind.i4
IL_06CC: ldelema UnityEngine.Vector4
IL_06D1: ldloc.s 7 (UnityEngine.Vector4)
IL_06D3: stobj UnityEngine.Vector4
IL_06D8: ldarg.s 8
IL_06DA: ldfld UnityEngine.Vector2[] MeshData::m_uvs
IL_06DF: ldarg.s 5
IL_06E1: ldind.i4
IL_06E2: ldelema UnityEngine.Vector2
IL_06E7: ldloc.s 8 (UnityEngine.Vector2)
IL_06E9: stobj UnityEngine.Vector2
IL_06EE: ldarg.s 8
IL_06F0: ldfld UnityEngine.Vector2[] MeshData::m_uvs2
IL_06F5: ldarg.s 5
IL_06F7: ldind.i4
IL_06F8: ldelema UnityEngine.Vector2
IL_06FD: ldloc.s 10 (UnityEngine.Vector2)
IL_06FF: stobj UnityEngine.Vector2
IL_0704: ldarg.s 8
IL_0706: ldfld UnityEngine.Vector2[] MeshData::m_uvs3
IL_070B: ldarg.s 5
IL_070D: ldind.i4
IL_070E: ldelema UnityEngine.Vector2
IL_0713: ldloc.s 11 (UnityEngine.Vector2)
IL_0715: stobj UnityEngine.Vector2
IL_071A: ldloc.0
IL_071B: brfalse => Label17
IL_0720: ldarg.s 8
IL_0722: ldfld UnityEngine.Vector2[] MeshData::m_uvs4
IL_0727: ldarg.s 5
IL_0729: ldind.i4
IL_072A: ldelema UnityEngine.Vector2
IL_072F: ldloc.s 12 (UnityEngine.Vector2)
IL_0731: stobj UnityEngine.Vector2
IL_0736: Label17
IL_0736: ldarg.s 8
IL_0738: ldfld UnityEngine.Color32[] MeshData::m_colors
IL_073D: ldarg.s 5
IL_073F: ldind.i4
IL_0740: ldelema UnityEngine.Color32
IL_0745: ldloc.s 15 (UnityEngine.Color)
IL_0747: call static UnityEngine.Color32
UnityEngine.Color32::op_Implicit(UnityEngine.Color c)
IL_074C: stobj UnityEngine.Color32
IL_0751: ldarg.s 5
IL_0753: ldarg.s 5
IL_0755: ldind.i4
IL_0756: ldc.i4.1
IL_0757: add
IL_0758: stind.i4
IL_0759: ldarg.s 8
IL_075B: ldfld UnityEngine.Vector3[] MeshData::m_vertices
IL_0760: ldarg.s 5
IL_0762: ldind.i4
IL_0763: ldelema UnityEngine.Vector3
IL_0768: ldloca.s 4 (UnityEngine.Vector3)
IL_076A: ldfld System.Single UnityEngine.Vector3::x
IL_076F: ldloc.s 17 (System.Single)
IL_0771: sub
IL_0772: ldloca.s 4 (UnityEngine.Vector3)
IL_0774: ldfld System.Single UnityEngine.Vector3::y
IL_0779: ldloca.s 4 (UnityEngine.Vector3)
IL_077B: ldfld System.Single UnityEngine.Vector3::z
IL_0780: ldarg.0
IL_0781: ldfld System.Single LightEffect::m_lightRange
IL_0786: add
IL_0787: newobj System.Void UnityEngine.Vector3::.ctor(System.Single x,
System.Single y, System.Single z)
IL_078C: stobj UnityEngine.Vector3
IL_0791: ldarg.s 8
IL_0793: ldfld UnityEngine.Vector3[] MeshData::m_normals
IL_0798: ldarg.s 5
IL_079A: ldind.i4
IL_079B: ldelema UnityEngine.Vector3
IL_07A0: ldarg.3
IL_07A1: stobj UnityEngine.Vector3
IL_07A6: ldarg.s 8
IL_07A8: ldfld UnityEngine.Vector4[] MeshData::m_tangents
IL_07AD: ldarg.s 5
IL_07AF: ldind.i4
IL_07B0: ldelema UnityEngine.Vector4
IL_07B5: ldloc.s 7 (UnityEngine.Vector4)
IL_07B7: stobj UnityEngine.Vector4
IL_07BC: ldarg.s 8
IL_07BE: ldfld UnityEngine.Vector2[] MeshData::m_uvs
IL_07C3: ldarg.s 5
IL_07C5: ldind.i4
IL_07C6: ldelema UnityEngine.Vector2
IL_07CB: ldloc.s 8 (UnityEngine.Vector2)
IL_07CD: stobj UnityEngine.Vector2
IL_07D2: ldarg.s 8
IL_07D4: ldfld UnityEngine.Vector2[] MeshData::m_uvs2
IL_07D9: ldarg.s 5
IL_07DB: ldind.i4
IL_07DC: ldelema UnityEngine.Vector2
IL_07E1: ldloc.s 10 (UnityEngine.Vector2)
IL_07E3: stobj UnityEngine.Vector2
IL_07E8: ldarg.s 8
IL_07EA: ldfld UnityEngine.Vector2[] MeshData::m_uvs3
IL_07EF: ldarg.s 5
IL_07F1: ldind.i4
IL_07F2: ldelema UnityEngine.Vector2
IL_07F7: ldloc.s 11 (UnityEngine.Vector2)
IL_07F9: stobj UnityEngine.Vector2
IL_07FE: ldloc.0
IL_07FF: brfalse => Label18
IL_0804: ldarg.s 8
IL_0806: ldfld UnityEngine.Vector2[] MeshData::m_uvs4
IL_080B: ldarg.s 5
IL_080D: ldind.i4
IL_080E: ldelema UnityEngine.Vector2
IL_0813: ldloc.s 12 (UnityEngine.Vector2)
IL_0815: stobj UnityEngine.Vector2
IL_081A: Label18
IL_081A: ldarg.s 8
IL_081C: ldfld UnityEngine.Color32[] MeshData::m_colors
IL_0821: ldarg.s 5
IL_0823: ldind.i4
IL_0824: ldelema UnityEngine.Color32
IL_0829: ldloc.s 15 (UnityEngine.Color)
IL_082B: call static UnityEngine.Color32
UnityEngine.Color32::op_Implicit(UnityEngine.Color c)
IL_0830: stobj UnityEngine.Color32
IL_0835: ldarg.s 5
IL_0837: ldarg.s 5
IL_0839: ldind.i4
IL_083A: ldc.i4.1
IL_083B: add
IL_083C: stind.i4
IL_083D: ldarg.s 8
IL_083F: ldfld System.Int32[] MeshData::m_triangles
IL_0844: ldarg.s 6
IL_0846: ldarg.s 6
IL_0848: ldind.i4
IL_0849: dup
IL_084A: stloc.s 19 (System.Int32)
IL_084C: ldc.i4.1
IL_084D: add
IL_084E: stind.i4
IL_084F: ldloc.s 19 (System.Int32)
IL_0851: ldarg.s 5
IL_0853: ldind.i4
IL_0854: ldc.i4.6
IL_0855: sub
IL_0856: stelem.i4
IL_0857: ldarg.s 8
IL_0859: ldfld System.Int32[] MeshData::m_triangles
IL_085E: ldarg.s 6
IL_0860: ldarg.s 6
IL_0862: ldind.i4
IL_0863: dup
IL_0864: stloc.s 19 (System.Int32)
IL_0866: ldc.i4.1
IL_0867: add
IL_0868: stind.i4
IL_0869: ldloc.s 19 (System.Int32)
IL_086B: ldarg.s 5
IL_086D: ldind.i4
IL_086E: ldc.i4.5
IL_086F: sub
IL_0870: stelem.i4
IL_0871: ldarg.s 8
IL_0873: ldfld System.Int32[] MeshData::m_triangles
IL_0878: ldarg.s 6
IL_087A: ldarg.s 6
IL_087C: ldind.i4
IL_087D: dup
IL_087E: stloc.s 19 (System.Int32)
IL_0880: ldc.i4.1
IL_0881: add
IL_0882: stind.i4
IL_0883: ldloc.s 19 (System.Int32)
IL_0885: ldarg.s 5
IL_0887: ldind.i4
IL_0888: ldc.i4.1
IL_0889: sub
IL_088A: stelem.i4
IL_088B: ldarg.s 8
IL_088D: ldfld System.Int32[] MeshData::m_triangles
IL_0892: ldarg.s 6
IL_0894: ldarg.s 6
IL_0896: ldind.i4
IL_0897: dup
IL_0898: stloc.s 19 (System.Int32)
IL_089A: ldc.i4.1
IL_089B: add
IL_089C: stind.i4
IL_089D: ldloc.s 19 (System.Int32)
IL_089F: ldarg.s 5
IL_08A1: ldind.i4
IL_08A2: ldc.i4.1
IL_08A3: sub
IL_08A4: stelem.i4
IL_08A5: ldarg.s 8
IL_08A7: ldfld System.Int32[] MeshData::m_triangles
IL_08AC: ldarg.s 6
IL_08AE: ldarg.s 6
IL_08B0: ldind.i4
IL_08B1: dup
IL_08B2: stloc.s 19 (System.Int32)
IL_08B4: ldc.i4.1
IL_08B5: add
IL_08B6: stind.i4
IL_08B7: ldloc.s 19 (System.Int32)
IL_08B9: ldarg.s 5
IL_08BB: ldind.i4
IL_08BC: ldc.i4.5
IL_08BD: sub
IL_08BE: stelem.i4
IL_08BF: ldarg.s 8
IL_08C1: ldfld System.Int32[] MeshData::m_triangles
IL_08C6: ldarg.s 6
IL_08C8: ldarg.s 6
IL_08CA: ldind.i4
IL_08CB: dup
IL_08CC: stloc.s 19 (System.Int32)
IL_08CE: ldc.i4.1
IL_08CF: add
IL_08D0: stind.i4
IL_08D1: ldloc.s 19 (System.Int32)
IL_08D3: ldarg.s 5
IL_08D5: ldind.i4
IL_08D6: ldc.i4.4
IL_08D7: sub
IL_08D8: stelem.i4
IL_08D9: ldarg.s 8
IL_08DB: ldfld System.Int32[] MeshData::m_triangles
IL_08E0: ldarg.s 6
IL_08E2: ldarg.s 6
IL_08E4: ldind.i4
IL_08E5: dup
IL_08E6: stloc.s 19 (System.Int32)
IL_08E8: ldc.i4.1
IL_08E9: add
IL_08EA: stind.i4
IL_08EB: ldloc.s 19 (System.Int32)
IL_08ED: ldarg.s 5
IL_08EF: ldind.i4
IL_08F0: ldc.i4.1
IL_08F1: sub
IL_08F2: stelem.i4
IL_08F3: ldarg.s 8
IL_08F5: ldfld System.Int32[] MeshData::m_triangles
IL_08FA: ldarg.s 6
IL_08FC: ldarg.s 6
IL_08FE: ldind.i4
IL_08FF: dup
IL_0900: stloc.s 19 (System.Int32)
IL_0902: ldc.i4.1
IL_0903: add
IL_0904: stind.i4
IL_0905: ldloc.s 19 (System.Int32)
IL_0907: ldarg.s 5
IL_0909: ldind.i4
IL_090A: ldc.i4.4
IL_090B: sub
IL_090C: stelem.i4
IL_090D: ldarg.s 8
IL_090F: ldfld System.Int32[] MeshData::m_triangles
IL_0914: ldarg.s 6
IL_0916: ldarg.s 6
IL_0918: ldind.i4
IL_0919: dup
IL_091A: stloc.s 19 (System.Int32)
IL_091C: ldc.i4.1
IL_091D: add
IL_091E: stind.i4
IL_091F: ldloc.s 19 (System.Int32)
IL_0921: ldarg.s 5
IL_0923: ldind.i4
IL_0924: ldc.i4.2
IL_0925: sub
IL_0926: stelem.i4
IL_0927: ldarg.s 8
IL_0929: ldfld System.Int32[] MeshData::m_triangles
IL_092E: ldarg.s 6
IL_0930: ldarg.s 6
IL_0932: ldind.i4
IL_0933: dup
IL_0934: stloc.s 19 (System.Int32)
IL_0936: ldc.i4.1
IL_0937: add
IL_0938: stind.i4
IL_0939: ldloc.s 19 (System.Int32)
IL_093B: ldarg.s 5
IL_093D: ldind.i4
IL_093E: ldc.i4.2
IL_093F: sub
IL_0940: stelem.i4
IL_0941: ldarg.s 8
IL_0943: ldfld System.Int32[] MeshData::m_triangles
IL_0948: ldarg.s 6
IL_094A: ldarg.s 6
IL_094C: ldind.i4
IL_094D: dup
IL_094E: stloc.s 19 (System.Int32)
IL_0950: ldc.i4.1
IL_0951: add
IL_0952: stind.i4
IL_0953: ldloc.s 19 (System.Int32)
IL_0955: ldarg.s 5
IL_0957: ldind.i4
IL_0958: ldc.i4.4
IL_0959: sub
IL_095A: stelem.i4
IL_095B: ldarg.s 8
IL_095D: ldfld System.Int32[] MeshData::m_triangles
IL_0962: ldarg.s 6
IL_0964: ldarg.s 6
IL_0966: ldind.i4
IL_0967: dup
IL_0968: stloc.s 19 (System.Int32)
IL_096A: ldc.i4.1
IL_096B: add
IL_096C: stind.i4
IL_096D: ldloc.s 19 (System.Int32)
IL_096F: ldarg.s 5
IL_0971: ldind.i4
IL_0972: ldc.i4.3
IL_0973: sub
IL_0974: stelem.i4
IL_0975: // end original
IL_0975: Label1
IL_0975: ret
DONE

### Patch: virtual System.Void ElectricityManager::SimulationStepImpl(System.Int32


subStep)
### Replacement: static System.Void
ElectricityManager::ElectricityManager.SimulationStepImpl_Patch0(ElectricityManager
this, System.Int32 subStep)
IL_0000: Local var 0: System.UInt32
IL_0000: Local var 1: System.Int32
IL_0000: Local var 2: NetManager
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: NetInfo
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: ElectricityManager/Cell
IL_0000: Local var 13: ElectricityManager/PulseGroup
IL_0000: Local var 14: ElectricityManager/PulseUnit
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: ElectricityManager/PulseUnit
IL_0000: Local var 19: System.UInt32
IL_0000: Local var 20: System.Int32
IL_0000: Local var 21: ElectricityManager/Cell
IL_0000: Local var 22: System.Int32
IL_0000: Local var 23: System.Int32
IL_0000: Local var 24: NetNode
IL_0000: Local var 25: System.Int32
IL_0000: Local var 26: System.UInt16
IL_0000: Local var 27: System.UInt16
IL_0000: Local var 28: System.UInt16
IL_0000: Local var 29: System.UInt16
IL_0000: Local var 30: System.Int32
IL_0000: Local var 31: ElectricityManager/PulseGroup
IL_0000: Local var 32: ElectricityManager/PulseGroup
IL_0000: Local var 33: System.Int32
IL_0000: Local var 34: ElectricityManager/PulseGroup
IL_0000: Local var 35: System.Int32
IL_0000: Local var 36: ElectricityManager/Cell
IL_0000: // start original
IL_0000: ldarg.1
IL_0001: brfalse => Label0
IL_0006: ldarg.1
IL_0007: ldc.i4 1000
IL_000C: beq => Label1
IL_0011: call static SimulationManager
ColossalFramework.Singleton`1<SimulationManager>::get_instance()
IL_0016: ldfld System.UInt32 SimulationManager::m_currentFrameIndex
IL_001B: stloc.0
IL_001C: ldloc.0
IL_001D: ldc.i4 255
IL_0022: and
IL_0023: stloc.1
IL_0024: ldloc.1
IL_0025: ldc.i4 128
IL_002A: bge => Label2
IL_002F: ldloc.1
IL_0030: brtrue => Label3
IL_0035: ldarg.0
IL_0036: ldc.i4.0
IL_0037: stfld System.Int32 ElectricityManager::m_pulseGroupCount
IL_003C: ldarg.0
IL_003D: ldc.i4.0
IL_003E: stfld System.Int32 ElectricityManager::m_pulseUnitStart
IL_0043: ldarg.0
IL_0044: ldc.i4.0
IL_0045: stfld System.Int32 ElectricityManager::m_pulseUnitEnd
IL_004A: ldarg.0
IL_004B: ldc.i4.0
IL_004C: stfld System.Int32 ElectricityManager::m_processedCells
IL_0051: ldarg.0
IL_0052: ldc.i4.0
IL_0053: stfld System.Int32 ElectricityManager::m_conductiveCells
IL_0058: ldarg.0
IL_0059: ldc.i4.1
IL_005A: stfld System.Boolean ElectricityManager::m_canContinue
IL_005F: Label3
IL_005F: call static NetManager
ColossalFramework.Singleton`1<NetManager>::get_instance()
IL_0064: stloc.2
IL_0065: ldloc.1
IL_0066: ldc.i4 32768
IL_006B: mul
IL_006C: ldc.i4.7
IL_006D: shr
IL_006E: stloc.3
IL_006F: ldloc.1
IL_0070: ldc.i4.1
IL_0071: add
IL_0072: ldc.i4 32768
IL_0077: mul
IL_0078: ldc.i4.7
IL_0079: shr
IL_007A: ldc.i4.1
IL_007B: sub
IL_007C: stloc.s 4 (System.Int32)
IL_007E: ldloc.3
IL_007F: stloc.s 5 (System.Int32)
IL_0081: br => Label4
IL_0086: Label10
IL_0086: ldloc.2
IL_0087: ldfld Array16`1<NetNode> NetManager::m_nodes
IL_008C: ldfld NetNode[] Array16`1<NetNode>::m_buffer
IL_0091: ldloc.s 5 (System.Int32)
IL_0093: ldelema NetNode
IL_0098: ldfld Flags NetNode::m_flags
IL_009D: brfalse => Label5
IL_00A2: ldloc.2
IL_00A3: ldfld Array16`1<NetNode> NetManager::m_nodes
IL_00A8: ldfld NetNode[] Array16`1<NetNode>::m_buffer
IL_00AD: ldloc.s 5 (System.Int32)
IL_00AF: ldelema NetNode
IL_00B4: call NetInfo NetNode::get_Info()
IL_00B9: stloc.s 6 (NetInfo)
IL_00BB: ldloc.s 6 (NetInfo)
IL_00BD: ldfld ItemClass NetInfo::m_class
IL_00C2: ldfld Service ItemClass::m_service
IL_00C7: ldc.i4.s 10
IL_00C9: beq => Label6
IL_00CE: ldloc.s 6 (NetInfo)
IL_00D0: ldfld NetAI NetInfo::m_netAI
IL_00D5: isinst ConcourseAI
IL_00DA: brfalse => Label7
IL_00DF: Label6
IL_00DF: ldarg.0
IL_00E0: ldloc.s 5 (System.Int32)
IL_00E2: ldarg.0
IL_00E3: ldfld System.UInt16[] ElectricityManager::m_nodeGroups
IL_00E8: ldloc.s 5 (System.Int32)
IL_00EA: ldelem.u2
IL_00EB: ldc.i4 65535
IL_00F0: beq => Label8
IL_00F5: ldc.i4.1
IL_00F6: br => Label9
IL_00FB: Label8
IL_00FB: ldc.i4.0
IL_00FC: Label9
IL_00FC: call System.Void
ElectricityManager::UpdateNodeElectricity(System.Int32 nodeID, System.Int32 value)
IL_0101: ldarg.0
IL_0102: dup
IL_0103: ldfld System.Int32 ElectricityManager::m_conductiveCells
IL_0108: ldc.i4.1
IL_0109: add
IL_010A: stfld System.Int32 ElectricityManager::m_conductiveCells
IL_010F: Label5
IL_010F: Label7
IL_010F: ldarg.0
IL_0110: ldfld System.UInt16[] ElectricityManager::m_nodeGroups
IL_0115: ldloc.s 5 (System.Int32)
IL_0117: ldc.i4 65535
IL_011C: stelem.i2
IL_011D: ldloc.s 5 (System.Int32)
IL_011F: ldc.i4.1
IL_0120: add
IL_0121: stloc.s 5 (System.Int32)
IL_0123: Label4
IL_0123: ldloc.s 5 (System.Int32)
IL_0125: ldloc.s 4 (System.Int32)
IL_0127: ble => Label10
IL_012C: ldloc.1
IL_012D: ldc.i4 256
IL_0132: mul
IL_0133: ldc.i4.7
IL_0134: shr
IL_0135: stloc.s 7 (System.Int32)
IL_0137: ldloc.1
IL_0138: ldc.i4.1
IL_0139: add
IL_013A: ldc.i4 256
IL_013F: mul
IL_0140: ldc.i4.7
IL_0141: shr
IL_0142: ldc.i4.1
IL_0143: sub
IL_0144: stloc.s 8 (System.Int32)
IL_0146: ldloc.s 7 (System.Int32)
IL_0148: stloc.s 9 (System.Int32)
IL_014A: br => Label11
IL_014F: Label21
IL_014F: ldloc.s 9 (System.Int32)
IL_0151: ldc.i4 256
IL_0156: mul
IL_0157: stloc.s 10 (System.Int32)
IL_0159: ldc.i4.0
IL_015A: stloc.s 11 (System.Int32)
IL_015C: br => Label12
IL_0161: Label20
IL_0161: ldarg.0
IL_0162: ldfld Cell[] ElectricityManager::m_electricityGrid
IL_0167: ldloc.s 10 (System.Int32)
IL_0169: ldelema ElectricityManager+Cell
IL_016E: ldobj ElectricityManager+Cell
IL_0173: stloc.s 12 (ElectricityManager+Cell)
IL_0175: ldloca.s 12 (ElectricityManager+Cell)
IL_0177: ldfld System.Int16 Cell::m_currentCharge
IL_017C: ldc.i4.0
IL_017D: ble => Label13
IL_0182: ldarg.0
IL_0183: ldfld System.Int32 ElectricityManager::m_pulseGroupCount
IL_0188: ldc.i4 1024
IL_018D: bge => Label14
IL_0192: ldloca.s 13 (ElectricityManager+PulseGroup)
IL_0194: ldloca.s 12 (ElectricityManager+Cell)
IL_0196: ldfld System.Int16 Cell::m_currentCharge
IL_019B: conv.u4
IL_019C: stfld System.UInt32 PulseGroup::m_origCharge
IL_01A1: ldloca.s 13 (ElectricityManager+PulseGroup)
IL_01A3: ldloca.s 12 (ElectricityManager+Cell)
IL_01A5: ldfld System.Int16 Cell::m_currentCharge
IL_01AA: conv.u4
IL_01AB: stfld System.UInt32 PulseGroup::m_curCharge
IL_01B0: ldloca.s 13 (ElectricityManager+PulseGroup)
IL_01B2: ldc.i4.0
IL_01B3: stfld System.UInt16 PulseGroup::m_mergeCount
IL_01B8: ldloca.s 13 (ElectricityManager+PulseGroup)
IL_01BA: ldc.i4 65535
IL_01BF: stfld System.UInt16 PulseGroup::m_mergeIndex
IL_01C4: ldloca.s 13 (ElectricityManager+PulseGroup)
IL_01C6: ldloc.s 11 (System.Int32)
IL_01C8: conv.u1
IL_01C9: stfld System.Byte PulseGroup::m_x
IL_01CE: ldloca.s 13 (ElectricityManager+PulseGroup)
IL_01D0: ldloc.s 9 (System.Int32)
IL_01D2: conv.u1
IL_01D3: stfld System.Byte PulseGroup::m_z
IL_01D8: ldloca.s 14 (ElectricityManager+PulseUnit)
IL_01DA: ldarg.0
IL_01DB: ldfld System.Int32 ElectricityManager::m_pulseGroupCount
IL_01E0: conv.u2
IL_01E1: stfld System.UInt16 PulseUnit::m_group
IL_01E6: ldloca.s 14 (ElectricityManager+PulseUnit)
IL_01E8: ldc.i4.0
IL_01E9: stfld System.UInt16 PulseUnit::m_node
IL_01EE: ldloca.s 14 (ElectricityManager+PulseUnit)
IL_01F0: ldloc.s 11 (System.Int32)
IL_01F2: conv.u1
IL_01F3: stfld System.Byte PulseUnit::m_x
IL_01F8: ldloca.s 14 (ElectricityManager+PulseUnit)
IL_01FA: ldloc.s 9 (System.Int32)
IL_01FC: conv.u1
IL_01FD: stfld System.Byte PulseUnit::m_z
IL_0202: ldloca.s 12 (ElectricityManager+Cell)
IL_0204: ldarg.0
IL_0205: ldfld System.Int32 ElectricityManager::m_pulseGroupCount
IL_020A: conv.u2
IL_020B: stfld System.UInt16 Cell::m_pulseGroup
IL_0210: ldarg.0
IL_0211: ldfld PulseGroup[] ElectricityManager::m_pulseGroups
IL_0216: ldarg.0
IL_0217: dup
IL_0218: ldfld System.Int32 ElectricityManager::m_pulseGroupCount
IL_021D: dup
IL_021E: stloc.s 15 (System.Int32)
IL_0220: ldc.i4.1
IL_0221: add
IL_0222: stfld System.Int32 ElectricityManager::m_pulseGroupCount
IL_0227: ldloc.s 15 (System.Int32)
IL_0229: ldelema ElectricityManager+PulseGroup
IL_022E: ldloc.s 13 (ElectricityManager+PulseGroup)
IL_0230: stobj ElectricityManager+PulseGroup
IL_0235: ldarg.0
IL_0236: ldfld PulseUnit[] ElectricityManager::m_pulseUnits
IL_023B: ldarg.0
IL_023C: ldfld System.Int32 ElectricityManager::m_pulseUnitEnd
IL_0241: ldelema ElectricityManager+PulseUnit
IL_0246: ldloc.s 14 (ElectricityManager+PulseUnit)
IL_0248: stobj ElectricityManager+PulseUnit
IL_024D: ldarg.0
IL_024E: dup
IL_024F: ldfld System.Int32 ElectricityManager::m_pulseUnitEnd
IL_0254: ldc.i4.1
IL_0255: add
IL_0256: dup
IL_0257: stloc.s 15 (System.Int32)
IL_0259: stfld System.Int32 ElectricityManager::m_pulseUnitEnd
IL_025E: ldloc.s 15 (System.Int32)
IL_0260: ldarg.0
IL_0261: ldfld PulseUnit[] ElectricityManager::m_pulseUnits
IL_0266: ldlen
IL_0267: conv.i4
IL_0268: bne.un => Label15
IL_026D: ldarg.0
IL_026E: ldc.i4.0
IL_026F: stfld System.Int32 ElectricityManager::m_pulseUnitEnd
IL_0274: Label15
IL_0274: br => Label16
IL_0279: Label14
IL_0279: ldloca.s 12 (ElectricityManager+Cell)
IL_027B: ldc.i4 65535
IL_0280: stfld System.UInt16 Cell::m_pulseGroup
IL_0285: Label16
IL_0285: ldloca.s 12 (ElectricityManager+Cell)
IL_0287: ldc.i4.0
IL_0288: stfld System.Int16 Cell::m_currentCharge
IL_028D: ldarg.0
IL_028E: dup
IL_028F: ldfld System.Int32 ElectricityManager::m_conductiveCells
IL_0294: ldc.i4.1
IL_0295: add
IL_0296: stfld System.Int32 ElectricityManager::m_conductiveCells
IL_029B: br => Label17
IL_02A0: Label13
IL_02A0: ldloca.s 12 (ElectricityManager+Cell)
IL_02A2: ldc.i4 65535
IL_02A7: stfld System.UInt16 Cell::m_pulseGroup
IL_02AC: ldloca.s 12 (ElectricityManager+Cell)
IL_02AE: ldfld System.Byte Cell::m_conductivity
IL_02B3: ldc.i4.s 64
IL_02B5: blt => Label18
IL_02BA: ldarg.0
IL_02BB: dup
IL_02BC: ldfld System.Int32 ElectricityManager::m_conductiveCells
IL_02C1: ldc.i4.1
IL_02C2: add
IL_02C3: stfld System.Int32 ElectricityManager::m_conductiveCells
IL_02C8: Label17
IL_02C8: Label18
IL_02C8: ldloca.s 12 (ElectricityManager+Cell)
IL_02CA: ldfld System.Boolean Cell::m_tmpElectrified
IL_02CF: ldloca.s 12 (ElectricityManager+Cell)
IL_02D1: ldfld System.Boolean Cell::m_electrified
IL_02D6: beq => Label19
IL_02DB: ldloca.s 12 (ElectricityManager+Cell)
IL_02DD: ldloca.s 12 (ElectricityManager+Cell)
IL_02DF: ldfld System.Boolean Cell::m_tmpElectrified
IL_02E4: stfld System.Boolean Cell::m_electrified
IL_02E9: Label19
IL_02E9: ldloca.s 12 (ElectricityManager+Cell)
IL_02EB: ldloca.s 12 (ElectricityManager+Cell)
IL_02ED: ldfld System.UInt16 Cell::m_pulseGroup
IL_02F2: ldc.i4 65535
IL_02F7: ceq
IL_02F9: ldc.i4.0
IL_02FA: ceq
IL_02FC: stfld System.Boolean Cell::m_tmpElectrified
IL_0301: ldarg.0
IL_0302: ldfld Cell[] ElectricityManager::m_electricityGrid
IL_0307: ldloc.s 10 (System.Int32)
IL_0309: ldelema ElectricityManager+Cell
IL_030E: ldloc.s 12 (ElectricityManager+Cell)
IL_0310: stobj ElectricityManager+Cell
IL_0315: ldloc.s 10 (System.Int32)
IL_0317: ldc.i4.1
IL_0318: add
IL_0319: stloc.s 10 (System.Int32)
IL_031B: ldloc.s 11 (System.Int32)
IL_031D: ldc.i4.1
IL_031E: add
IL_031F: stloc.s 11 (System.Int32)
IL_0321: Label12
IL_0321: ldloc.s 11 (System.Int32)
IL_0323: ldc.i4 256
IL_0328: blt => Label20
IL_032D: ldloc.s 9 (System.Int32)
IL_032F: ldc.i4.1
IL_0330: add
IL_0331: stloc.s 9 (System.Int32)
IL_0333: Label11
IL_0333: ldloc.s 9 (System.Int32)
IL_0335: ldloc.s 8 (System.Int32)
IL_0337: ble => Label21
IL_033C: br => Label22
IL_0341: Label2
IL_0341: ldloc.1
IL_0342: ldc.i4.s 127
IL_0344: sub
IL_0345: ldarg.0
IL_0346: ldfld System.Int32 ElectricityManager::m_conductiveCells
IL_034B: mul
IL_034C: ldc.i4.7
IL_034D: shr
IL_034E: stloc.s 16 (System.Int32)
IL_0350: ldloc.1
IL_0351: ldc.i4 255
IL_0356: bne.un => Label23
IL_035B: ldc.i4 1000000000
IL_0360: stloc.s 16 (System.Int32)
IL_0362: Label23
IL_0362: br => Label24
IL_0367: Label54
IL_0367: ldarg.0
IL_0368: ldc.i4.0
IL_0369: stfld System.Boolean ElectricityManager::m_canContinue
IL_036E: ldarg.0
IL_036F: ldfld System.Int32 ElectricityManager::m_pulseUnitEnd
IL_0374: stloc.s 17 (System.Int32)
IL_0376: br => Label25
IL_037B: Label52
IL_037B: ldarg.0
IL_037C: ldfld PulseUnit[] ElectricityManager::m_pulseUnits
IL_0381: ldarg.0
IL_0382: ldfld System.Int32 ElectricityManager::m_pulseUnitStart
IL_0387: ldelema ElectricityManager+PulseUnit
IL_038C: ldobj ElectricityManager+PulseUnit
IL_0391: stloc.s 18 (ElectricityManager+PulseUnit)
IL_0393: ldarg.0
IL_0394: dup
IL_0395: ldfld System.Int32 ElectricityManager::m_pulseUnitStart
IL_039A: ldc.i4.1
IL_039B: add
IL_039C: dup
IL_039D: stloc.s 15 (System.Int32)
IL_039F: stfld System.Int32 ElectricityManager::m_pulseUnitStart
IL_03A4: ldloc.s 15 (System.Int32)
IL_03A6: ldarg.0
IL_03A7: ldfld PulseUnit[] ElectricityManager::m_pulseUnits
IL_03AC: ldlen
IL_03AD: conv.i4
IL_03AE: bne.un => Label26
IL_03B3: ldarg.0
IL_03B4: ldc.i4.0
IL_03B5: stfld System.Int32 ElectricityManager::m_pulseUnitStart
IL_03BA: Label26
IL_03BA: ldloca.s 18 (ElectricityManager+PulseUnit)
IL_03BC: ldarg.0
IL_03BD: ldloca.s 18 (ElectricityManager+PulseUnit)
IL_03BF: ldfld System.UInt16 PulseUnit::m_group
IL_03C4: call System.UInt16 ElectricityManager::GetRootGroup(System.UInt16
group)
IL_03C9: stfld System.UInt16 PulseUnit::m_group
IL_03CE: ldarg.0
IL_03CF: ldfld PulseGroup[] ElectricityManager::m_pulseGroups
IL_03D4: ldloca.s 18 (ElectricityManager+PulseUnit)
IL_03D6: ldfld System.UInt16 PulseUnit::m_group
IL_03DB: ldelema ElectricityManager+PulseGroup
IL_03E0: ldfld System.UInt32 PulseGroup::m_curCharge
IL_03E5: stloc.s 19 (System.UInt32)
IL_03E7: ldloca.s 18 (ElectricityManager+PulseUnit)
IL_03E9: ldfld System.UInt16 PulseUnit::m_node
IL_03EE: brtrue => Label27
IL_03F3: ldloca.s 18 (ElectricityManager+PulseUnit)
IL_03F5: ldfld System.Byte PulseUnit::m_z
IL_03FA: ldc.i4 256
IL_03FF: mul
IL_0400: ldloca.s 18 (ElectricityManager+PulseUnit)
IL_0402: ldfld System.Byte PulseUnit::m_x
IL_0407: add
IL_0408: stloc.s 20 (System.Int32)
IL_040A: ldarg.0
IL_040B: ldfld Cell[] ElectricityManager::m_electricityGrid
IL_0410: ldloc.s 20 (System.Int32)
IL_0412: ldelema ElectricityManager+Cell
IL_0417: ldobj ElectricityManager+Cell
IL_041C: stloc.s 21 (ElectricityManager+Cell)
IL_041E: ldloca.s 21 (ElectricityManager+Cell)
IL_0420: ldfld System.Byte Cell::m_conductivity
IL_0425: brfalse => Label28
IL_042A: ldloca.s 21 (ElectricityManager+Cell)
IL_042C: ldfld System.Boolean Cell::m_tmpElectrified
IL_0431: brtrue => Label29
IL_0436: ldloc.s 19 (System.UInt32)
IL_0438: brfalse => Label30
IL_043D: ldloca.s 21 (ElectricityManager+Cell)
IL_043F: ldfld System.Int16 Cell::m_currentCharge
IL_0444: neg
IL_0445: ldc.i4.0
IL_0446: ldloc.s 19 (System.UInt32)
IL_0448: call static System.Int32 UnityEngine.Mathf::Clamp(System.Int32
value, System.Int32 min, System.Int32 max)
IL_044D: stloc.s 22 (System.Int32)
IL_044F: ldloc.s 19 (System.UInt32)
IL_0451: ldloc.s 22 (System.Int32)
IL_0453: sub
IL_0454: stloc.s 19 (System.UInt32)
IL_0456: ldloca.s 21 (ElectricityManager+Cell)
IL_0458: dup
IL_0459: ldfld System.Int16 Cell::m_currentCharge
IL_045E: ldloc.s 22 (System.Int32)
IL_0460: conv.i2
IL_0461: add
IL_0462: conv.i2
IL_0463: stfld System.Int16 Cell::m_currentCharge
IL_0468: ldloca.s 21 (ElectricityManager+Cell)
IL_046A: ldfld System.Int16 Cell::m_currentCharge
IL_046F: brtrue => Label31
IL_0474: ldloca.s 21 (ElectricityManager+Cell)
IL_0476: ldc.i4.1
IL_0477: stfld System.Boolean Cell::m_tmpElectrified
IL_047C: Label31
IL_047C: ldarg.0
IL_047D: ldfld Cell[] ElectricityManager::m_electricityGrid
IL_0482: ldloc.s 20 (System.Int32)
IL_0484: ldelema ElectricityManager+Cell
IL_0489: ldloc.s 21 (ElectricityManager+Cell)
IL_048B: stobj ElectricityManager+Cell
IL_0490: ldarg.0
IL_0491: ldfld PulseGroup[] ElectricityManager::m_pulseGroups
IL_0496: ldloca.s 18 (ElectricityManager+PulseUnit)
IL_0498: ldfld System.UInt16 PulseUnit::m_group
IL_049D: ldelema ElectricityManager+PulseGroup
IL_04A2: ldloc.s 19 (System.UInt32)
IL_04A4: stfld System.UInt32 PulseGroup::m_curCharge
IL_04A9: Label28
IL_04A9: Label29
IL_04A9: Label30
IL_04A9: ldloc.s 19 (System.UInt32)
IL_04AB: brfalse => Label32
IL_04B0: ldloca.s 21 (ElectricityManager+Cell)
IL_04B2: ldfld System.Byte Cell::m_conductivity
IL_04B7: ldc.i4.s 64
IL_04B9: blt => Label33
IL_04BE: ldc.i4.1
IL_04BF: br => Label34
IL_04C4: Label33
IL_04C4: ldc.i4.s 64
IL_04C6: Label34
IL_04C6: stloc.s 23 (System.Int32)
IL_04C8: ldarg.0
IL_04C9: dup
IL_04CA: ldfld System.Int32 ElectricityManager::m_processedCells
IL_04CF: ldc.i4.1
IL_04D0: add
IL_04D1: stfld System.Int32 ElectricityManager::m_processedCells
IL_04D6: ldloca.s 18 (ElectricityManager+PulseUnit)
IL_04D8: ldfld System.Byte PulseUnit::m_z
IL_04DD: ldc.i4.0
IL_04DE: ble => Label35
IL_04E3: ldarg.0
IL_04E4: ldarg.0
IL_04E5: ldfld Cell[] ElectricityManager::m_electricityGrid
IL_04EA: ldloc.s 20 (System.Int32)
IL_04EC: ldc.i4 256
IL_04F1: sub
IL_04F2: ldelema ElectricityManager+Cell
IL_04F7: ldloca.s 18 (ElectricityManager+PulseUnit)
IL_04F9: ldfld System.UInt16 PulseUnit::m_group
IL_04FE: ldloca.s 18 (ElectricityManager+PulseUnit)
IL_0500: ldfld System.Byte PulseUnit::m_x
IL_0505: ldloca.s 18 (ElectricityManager+PulseUnit)
IL_0507: ldfld System.Byte PulseUnit::m_z
IL_050C: ldc.i4.1
IL_050D: sub
IL_050E: ldloc.s 23 (System.Int32)
IL_0510: call System.Void ElectricityManager::ConductToCell(Cell& cell,
System.UInt16 group, System.Int32 x, System.Int32 z, System.Int32 limit)
IL_0515: Label35
IL_0515: ldloca.s 18 (ElectricityManager+PulseUnit)
IL_0517: ldfld System.Byte PulseUnit::m_x
IL_051C: ldc.i4.0
IL_051D: ble => Label36
IL_0522: ldarg.0
IL_0523: ldarg.0
IL_0524: ldfld Cell[] ElectricityManager::m_electricityGrid
IL_0529: ldloc.s 20 (System.Int32)
IL_052B: ldc.i4.1
IL_052C: sub
IL_052D: ldelema ElectricityManager+Cell
IL_0532: ldloca.s 18 (ElectricityManager+PulseUnit)
IL_0534: ldfld System.UInt16 PulseUnit::m_group
IL_0539: ldloca.s 18 (ElectricityManager+PulseUnit)
IL_053B: ldfld System.Byte PulseUnit::m_x
IL_0540: ldc.i4.1
IL_0541: sub
IL_0542: ldloca.s 18 (ElectricityManager+PulseUnit)
IL_0544: ldfld System.Byte PulseUnit::m_z
IL_0549: ldloc.s 23 (System.Int32)
IL_054B: call System.Void ElectricityManager::ConductToCell(Cell& cell,
System.UInt16 group, System.Int32 x, System.Int32 z, System.Int32 limit)
IL_0550: Label36
IL_0550: ldloca.s 18 (ElectricityManager+PulseUnit)
IL_0552: ldfld System.Byte PulseUnit::m_z
IL_0557: ldc.i4 255
IL_055C: bge => Label37
IL_0561: ldarg.0
IL_0562: ldarg.0
IL_0563: ldfld Cell[] ElectricityManager::m_electricityGrid
IL_0568: ldloc.s 20 (System.Int32)
IL_056A: ldc.i4 256
IL_056F: add
IL_0570: ldelema ElectricityManager+Cell
IL_0575: ldloca.s 18 (ElectricityManager+PulseUnit)
IL_0577: ldfld System.UInt16 PulseUnit::m_group
IL_057C: ldloca.s 18 (ElectricityManager+PulseUnit)
IL_057E: ldfld System.Byte PulseUnit::m_x
IL_0583: ldloca.s 18 (ElectricityManager+PulseUnit)
IL_0585: ldfld System.Byte PulseUnit::m_z
IL_058A: ldc.i4.1
IL_058B: add
IL_058C: ldloc.s 23 (System.Int32)
IL_058E: call System.Void ElectricityManager::ConductToCell(Cell& cell,
System.UInt16 group, System.Int32 x, System.Int32 z, System.Int32 limit)
IL_0593: Label37
IL_0593: ldloca.s 18 (ElectricityManager+PulseUnit)
IL_0595: ldfld System.Byte PulseUnit::m_x
IL_059A: ldc.i4 255
IL_059F: bge => Label38
IL_05A4: ldarg.0
IL_05A5: ldarg.0
IL_05A6: ldfld Cell[] ElectricityManager::m_electricityGrid
IL_05AB: ldloc.s 20 (System.Int32)
IL_05AD: ldc.i4.1
IL_05AE: add
IL_05AF: ldelema ElectricityManager+Cell
IL_05B4: ldloca.s 18 (ElectricityManager+PulseUnit)
IL_05B6: ldfld System.UInt16 PulseUnit::m_group
IL_05BB: ldloca.s 18 (ElectricityManager+PulseUnit)
IL_05BD: ldfld System.Byte PulseUnit::m_x
IL_05C2: ldc.i4.1
IL_05C3: add
IL_05C4: ldloca.s 18 (ElectricityManager+PulseUnit)
IL_05C6: ldfld System.Byte PulseUnit::m_z
IL_05CB: ldloc.s 23 (System.Int32)
IL_05CD: call System.Void ElectricityManager::ConductToCell(Cell& cell,
System.UInt16 group, System.Int32 x, System.Int32 z, System.Int32 limit)
IL_05D2: Label38
IL_05D2: ldarg.0
IL_05D3: ldloca.s 18 (ElectricityManager+PulseUnit)
IL_05D5: ldfld System.UInt16 PulseUnit::m_group
IL_05DA: ldloca.s 18 (ElectricityManager+PulseUnit)
IL_05DC: ldfld System.Byte PulseUnit::m_x
IL_05E1: ldloca.s 18 (ElectricityManager+PulseUnit)
IL_05E3: ldfld System.Byte PulseUnit::m_z
IL_05E8: call System.Void ElectricityManager::ConductToNodes(System.UInt16
group, System.Int32 cellX, System.Int32 cellZ)
IL_05ED: br => Label39
IL_05F2: Label32
IL_05F2: ldarg.0
IL_05F3: ldfld PulseUnit[] ElectricityManager::m_pulseUnits
IL_05F8: ldarg.0
IL_05F9: ldfld System.Int32 ElectricityManager::m_pulseUnitEnd
IL_05FE: ldelema ElectricityManager+PulseUnit
IL_0603: ldloc.s 18 (ElectricityManager+PulseUnit)
IL_0605: stobj ElectricityManager+PulseUnit
IL_060A: ldarg.0
IL_060B: dup
IL_060C: ldfld System.Int32 ElectricityManager::m_pulseUnitEnd
IL_0611: ldc.i4.1
IL_0612: add
IL_0613: dup
IL_0614: stloc.s 15 (System.Int32)
IL_0616: stfld System.Int32 ElectricityManager::m_pulseUnitEnd
IL_061B: ldloc.s 15 (System.Int32)
IL_061D: ldarg.0
IL_061E: ldfld PulseUnit[] ElectricityManager::m_pulseUnits
IL_0623: ldlen
IL_0624: conv.i4
IL_0625: bne.un => Label40
IL_062A: ldarg.0
IL_062B: ldc.i4.0
IL_062C: stfld System.Int32 ElectricityManager::m_pulseUnitEnd
IL_0631: Label39
IL_0631: Label40
IL_0631: br => Label41
IL_0636: Label27
IL_0636: ldloc.s 19 (System.UInt32)
IL_0638: brfalse => Label42
IL_063D: ldarg.0
IL_063E: dup
IL_063F: ldfld System.Int32 ElectricityManager::m_processedCells
IL_0644: ldc.i4.1
IL_0645: add
IL_0646: stfld System.Int32 ElectricityManager::m_processedCells
IL_064B: call static NetManager
ColossalFramework.Singleton`1<NetManager>::get_instance()
IL_0650: ldfld Array16`1<NetNode> NetManager::m_nodes
IL_0655: ldfld NetNode[] Array16`1<NetNode>::m_buffer
IL_065A: ldloca.s 18 (ElectricityManager+PulseUnit)
IL_065C: ldfld System.UInt16 PulseUnit::m_node
IL_0661: ldelema NetNode
IL_0666: ldobj NetNode
IL_066B: stloc.s 24 (NetNode)
IL_066D: ldloca.s 24 (NetNode)
IL_066F: ldfld Flags NetNode::m_flags
IL_0674: brfalse => Label43
IL_0679: ldloca.s 24 (NetNode)
IL_067B: ldfld System.UInt32 NetNode::m_buildIndex
IL_0680: ldloc.0
IL_0681: ldc.i4.s -128
IL_0683: and
IL_0684: bge.un => Label44
IL_0689: ldarg.0
IL_068A: ldloca.s 18 (ElectricityManager+PulseUnit)
IL_068C: ldfld System.UInt16 PulseUnit::m_group
IL_0691: ldloca.s 24 (NetNode)
IL_0693: ldflda UnityEngine.Vector3 NetNode::m_position
IL_0698: ldfld System.Single UnityEngine.Vector3::x
IL_069D: ldloca.s 24 (NetNode)
IL_069F: ldflda UnityEngine.Vector3 NetNode::m_position
IL_06A4: ldfld System.Single UnityEngine.Vector3::z
IL_06A9: call System.Void ElectricityManager::ConductToCells(System.UInt16
group, System.Single worldX, System.Single worldZ)
IL_06AE: ldc.i4.0
IL_06AF: stloc.s 25 (System.Int32)
IL_06B1: br => Label45
IL_06B6: Label49
IL_06B6: ldloca.s 24 (NetNode)
IL_06B8: ldloc.s 25 (System.Int32)
IL_06BA: call System.UInt16 NetNode::GetSegment(System.Int32 index)
IL_06BF: stloc.s 26 (System.UInt16)
IL_06C1: ldloc.s 26 (System.UInt16)
IL_06C3: brfalse => Label46
IL_06C8: call static NetManager
ColossalFramework.Singleton`1<NetManager>::get_instance()
IL_06CD: ldfld Array16`1<NetSegment> NetManager::m_segments
IL_06D2: ldfld NetSegment[] Array16`1<NetSegment>::m_buffer
IL_06D7: ldloc.s 26 (System.UInt16)
IL_06D9: ldelema NetSegment
IL_06DE: ldfld System.UInt16 NetSegment::m_startNode
IL_06E3: stloc.s 27 (System.UInt16)
IL_06E5: call static NetManager
ColossalFramework.Singleton`1<NetManager>::get_instance()
IL_06EA: ldfld Array16`1<NetSegment> NetManager::m_segments
IL_06EF: ldfld NetSegment[] Array16`1<NetSegment>::m_buffer
IL_06F4: ldloc.s 26 (System.UInt16)
IL_06F6: ldelema NetSegment
IL_06FB: ldfld System.UInt16 NetSegment::m_endNode
IL_0700: stloc.s 28 (System.UInt16)
IL_0702: ldloc.s 27 (System.UInt16)
IL_0704: ldloca.s 18 (ElectricityManager+PulseUnit)
IL_0706: ldfld System.UInt16 PulseUnit::m_node
IL_070B: bne.un => Label47
IL_0710: ldloc.s 28 (System.UInt16)
IL_0712: br => Label48
IL_0717: Label47
IL_0717: ldloc.s 27 (System.UInt16)
IL_0719: Label48
IL_0719: stloc.s 29 (System.UInt16)
IL_071B: ldarg.0
IL_071C: ldloc.s 29 (System.UInt16)
IL_071E: call static NetManager
ColossalFramework.Singleton`1<NetManager>::get_instance()
IL_0723: ldfld Array16`1<NetNode> NetManager::m_nodes
IL_0728: ldfld NetNode[] Array16`1<NetNode>::m_buffer
IL_072D: ldloc.s 29 (System.UInt16)
IL_072F: ldelema NetNode
IL_0734: ldloca.s 18 (ElectricityManager+PulseUnit)
IL_0736: ldfld System.UInt16 PulseUnit::m_group
IL_073B: ldc.r4 -100000
IL_0740: ldc.r4 -100000
IL_0745: ldc.r4 100000
IL_074A: ldc.r4 100000
IL_074F: call System.Void ElectricityManager::ConductToNode(System.UInt16
nodeIndex, NetNode& node, System.UInt16 group, System.Single minX, System.Single
minZ, System.Single maxX, System.Single maxZ)
IL_0754: Label46
IL_0754: ldloc.s 25 (System.Int32)
IL_0756: ldc.i4.1
IL_0757: add
IL_0758: stloc.s 25 (System.Int32)
IL_075A: Label45
IL_075A: ldloc.s 25 (System.Int32)
IL_075C: ldc.i4.8
IL_075D: blt => Label49
IL_0762: Label43
IL_0762: Label44
IL_0762: br => Label50
IL_0767: Label42
IL_0767: ldarg.0
IL_0768: ldfld PulseUnit[] ElectricityManager::m_pulseUnits
IL_076D: ldarg.0
IL_076E: ldfld System.Int32 ElectricityManager::m_pulseUnitEnd
IL_0773: ldelema ElectricityManager+PulseUnit
IL_0778: ldloc.s 18 (ElectricityManager+PulseUnit)
IL_077A: stobj ElectricityManager+PulseUnit
IL_077F: ldarg.0
IL_0780: dup
IL_0781: ldfld System.Int32 ElectricityManager::m_pulseUnitEnd
IL_0786: ldc.i4.1
IL_0787: add
IL_0788: dup
IL_0789: stloc.s 15 (System.Int32)
IL_078B: stfld System.Int32 ElectricityManager::m_pulseUnitEnd
IL_0790: ldloc.s 15 (System.Int32)
IL_0792: ldarg.0
IL_0793: ldfld PulseUnit[] ElectricityManager::m_pulseUnits
IL_0798: ldlen
IL_0799: conv.i4
IL_079A: bne.un => Label51
IL_079F: ldarg.0
IL_07A0: ldc.i4.0
IL_07A1: stfld System.Int32 ElectricityManager::m_pulseUnitEnd
IL_07A6: Label25
IL_07A6: Label41
IL_07A6: Label50
IL_07A6: Label51
IL_07A6: ldarg.0
IL_07A7: ldfld System.Int32 ElectricityManager::m_pulseUnitStart
IL_07AC: ldloc.s 17 (System.Int32)
IL_07AE: bne.un => Label52
IL_07B3: Label24
IL_07B3: ldarg.0
IL_07B4: ldfld System.Boolean ElectricityManager::m_canContinue
IL_07B9: brfalse => Label53
IL_07BE: ldarg.0
IL_07BF: ldfld System.Int32 ElectricityManager::m_processedCells
IL_07C4: ldloc.s 16 (System.Int32)
IL_07C6: blt => Label54
IL_07CB: Label53
IL_07CB: ldloc.1
IL_07CC: ldc.i4 255
IL_07D1: bne.un => Label55
IL_07D6: ldc.i4.0
IL_07D7: stloc.s 30 (System.Int32)
IL_07D9: br => Label56
IL_07DE: Label58
IL_07DE: ldarg.0
IL_07DF: ldfld PulseGroup[] ElectricityManager::m_pulseGroups
IL_07E4: ldloc.s 30 (System.Int32)
IL_07E6: ldelema ElectricityManager+PulseGroup
IL_07EB: ldobj ElectricityManager+PulseGroup
IL_07F0: stloc.s 31 (ElectricityManager+PulseGroup)
IL_07F2: ldloca.s 31 (ElectricityManager+PulseGroup)
IL_07F4: ldfld System.UInt16 PulseGroup::m_mergeIndex
IL_07F9: ldc.i4 65535
IL_07FE: beq => Label57
IL_0803: ldarg.0
IL_0804: ldfld PulseGroup[] ElectricityManager::m_pulseGroups
IL_0809: ldloca.s 31 (ElectricityManager+PulseGroup)
IL_080B: ldfld System.UInt16 PulseGroup::m_mergeIndex
IL_0810: ldelema ElectricityManager+PulseGroup
IL_0815: ldobj ElectricityManager+PulseGroup
IL_081A: stloc.s 32 (ElectricityManager+PulseGroup)
IL_081C: ldloca.s 31 (ElectricityManager+PulseGroup)
IL_081E: ldloca.s 32 (ElectricityManager+PulseGroup)
IL_0820: ldfld System.UInt32 PulseGroup::m_curCharge
IL_0825: conv.u8
IL_0826: ldloca.s 31 (ElectricityManager+PulseGroup)
IL_0828: ldfld System.UInt32 PulseGroup::m_origCharge
IL_082D: conv.u8
IL_082E: mul
IL_082F: ldloca.s 32 (ElectricityManager+PulseGroup)
IL_0831: ldfld System.UInt32 PulseGroup::m_origCharge
IL_0836: conv.u8
IL_0837: div.un
IL_0838: conv.u4
IL_0839: stfld System.UInt32 PulseGroup::m_curCharge
IL_083E: ldloca.s 32 (ElectricityManager+PulseGroup)
IL_0840: dup
IL_0841: ldfld System.UInt32 PulseGroup::m_curCharge
IL_0846: ldloca.s 31 (ElectricityManager+PulseGroup)
IL_0848: ldfld System.UInt32 PulseGroup::m_curCharge
IL_084D: sub
IL_084E: stfld System.UInt32 PulseGroup::m_curCharge
IL_0853: ldloca.s 32 (ElectricityManager+PulseGroup)
IL_0855: dup
IL_0856: ldfld System.UInt32 PulseGroup::m_origCharge
IL_085B: ldloca.s 31 (ElectricityManager+PulseGroup)
IL_085D: ldfld System.UInt32 PulseGroup::m_origCharge
IL_0862: sub
IL_0863: stfld System.UInt32 PulseGroup::m_origCharge
IL_0868: ldarg.0
IL_0869: ldfld PulseGroup[] ElectricityManager::m_pulseGroups
IL_086E: ldloca.s 31 (ElectricityManager+PulseGroup)
IL_0870: ldfld System.UInt16 PulseGroup::m_mergeIndex
IL_0875: ldelema ElectricityManager+PulseGroup
IL_087A: ldloc.s 32 (ElectricityManager+PulseGroup)
IL_087C: stobj ElectricityManager+PulseGroup
IL_0881: ldarg.0
IL_0882: ldfld PulseGroup[] ElectricityManager::m_pulseGroups
IL_0887: ldloc.s 30 (System.Int32)
IL_0889: ldelema ElectricityManager+PulseGroup
IL_088E: ldloc.s 31 (ElectricityManager+PulseGroup)
IL_0890: stobj ElectricityManager+PulseGroup
IL_0895: Label57
IL_0895: ldloc.s 30 (System.Int32)
IL_0897: ldc.i4.1
IL_0898: add
IL_0899: stloc.s 30 (System.Int32)
IL_089B: Label56
IL_089B: ldloc.s 30 (System.Int32)
IL_089D: ldarg.0
IL_089E: ldfld System.Int32 ElectricityManager::m_pulseGroupCount
IL_08A3: blt => Label58
IL_08A8: ldc.i4.0
IL_08A9: stloc.s 33 (System.Int32)
IL_08AB: br => Label59
IL_08B0: Label62
IL_08B0: ldarg.0
IL_08B1: ldfld PulseGroup[] ElectricityManager::m_pulseGroups
IL_08B6: ldloc.s 33 (System.Int32)
IL_08B8: ldelema ElectricityManager+PulseGroup
IL_08BD: ldobj ElectricityManager+PulseGroup
IL_08C2: stloc.s 34 (ElectricityManager+PulseGroup)
IL_08C4: ldloca.s 34 (ElectricityManager+PulseGroup)
IL_08C6: ldfld System.UInt32 PulseGroup::m_curCharge
IL_08CB: brfalse => Label60
IL_08D0: ldloca.s 34 (ElectricityManager+PulseGroup)
IL_08D2: ldfld System.Byte PulseGroup::m_z
IL_08D7: ldc.i4 256
IL_08DC: mul
IL_08DD: ldloca.s 34 (ElectricityManager+PulseGroup)
IL_08DF: ldfld System.Byte PulseGroup::m_x
IL_08E4: add
IL_08E5: stloc.s 35 (System.Int32)
IL_08E7: ldarg.0
IL_08E8: ldfld Cell[] ElectricityManager::m_electricityGrid
IL_08ED: ldloc.s 35 (System.Int32)
IL_08EF: ldelema ElectricityManager+Cell
IL_08F4: ldobj ElectricityManager+Cell
IL_08F9: stloc.s 36 (ElectricityManager+Cell)
IL_08FB: ldloca.s 36 (ElectricityManager+Cell)
IL_08FD: ldfld System.Byte Cell::m_conductivity
IL_0902: brfalse => Label61
IL_0907: ldloca.s 36 (ElectricityManager+Cell)
IL_0909: dup
IL_090A: ldfld System.UInt16 Cell::m_extraCharge
IL_090F: ldloca.s 34 (ElectricityManager+PulseGroup)
IL_0911: ldfld System.UInt32 PulseGroup::m_curCharge
IL_0916: ldc.i4 32767
IL_091B: ldloca.s 36 (ElectricityManager+Cell)
IL_091D: ldfld System.UInt16 Cell::m_extraCharge
IL_0922: sub
IL_0923: call static System.Int32 UnityEngine.Mathf::Min(System.Int32 a,
System.Int32 b)
IL_0928: conv.u2
IL_0929: add
IL_092A: conv.u2
IL_092B: stfld System.UInt16 Cell::m_extraCharge
IL_0930: Label61
IL_0930: ldarg.0
IL_0931: ldfld Cell[] ElectricityManager::m_electricityGrid
IL_0936: ldloc.s 35 (System.Int32)
IL_0938: ldelema ElectricityManager+Cell
IL_093D: ldloc.s 36 (ElectricityManager+Cell)
IL_093F: stobj ElectricityManager+Cell
IL_0944: Label60
IL_0944: ldloc.s 33 (System.Int32)
IL_0946: ldc.i4.1
IL_0947: add
IL_0948: stloc.s 33 (System.Int32)
IL_094A: Label59
IL_094A: ldloc.s 33 (System.Int32)
IL_094C: ldarg.0
IL_094D: ldfld System.Int32 ElectricityManager::m_pulseGroupCount
IL_0952: blt => Label62
IL_0957: // end original
IL_0957: Label0
IL_0957: Label1
IL_0957: Label22
IL_0957: Label55
IL_0957: ret
DONE

### Patch: System.Void ElectricityManager::ConductToNode(System.UInt16 nodeIndex,


NetNode& node, System.UInt16 group, System.Single minX, System.Single minZ,
System.Single maxX, System.Single maxZ)
### Replacement: static System.Void
ElectricityManager::ElectricityManager.ConductToNode_Patch0(ElectricityManager
this, System.UInt16 nodeIndex, NetNode& node, System.UInt16 group, System.Single
minX, System.Single minZ, System.Single maxX, System.Single maxZ)
IL_0000: Local var 0: NetInfo
IL_0000: Local var 1: ElectricityManager/PulseUnit
IL_0000: Local var 2: System.Int32
IL_0000: Local var 3: System.UInt16
IL_0000: // start original
IL_0000: ldarg.2
IL_0001: ldflda UnityEngine.Vector3 NetNode::m_position
IL_0006: ldfld System.Single UnityEngine.Vector3::x
IL_000B: ldarg.s 4
IL_000D: blt.un => Label0
IL_0012: ldarg.2
IL_0013: ldflda UnityEngine.Vector3 NetNode::m_position
IL_0018: ldfld System.Single UnityEngine.Vector3::z
IL_001D: ldarg.s 5
IL_001F: blt.un => Label1
IL_0024: ldarg.2
IL_0025: ldflda UnityEngine.Vector3 NetNode::m_position
IL_002A: ldfld System.Single UnityEngine.Vector3::x
IL_002F: ldarg.s 6
IL_0031: bgt.un => Label2
IL_0036: ldarg.2
IL_0037: ldflda UnityEngine.Vector3 NetNode::m_position
IL_003C: ldfld System.Single UnityEngine.Vector3::z
IL_0041: ldarg.s 7
IL_0043: bgt.un => Label3
IL_0048: ldarg.2
IL_0049: call NetInfo NetNode::get_Info()
IL_004E: stloc.0
IL_004F: ldloc.0
IL_0050: ldfld ItemClass NetInfo::m_class
IL_0055: ldfld Service ItemClass::m_service
IL_005A: ldc.i4.s 10
IL_005C: beq => Label4
IL_0061: ldarg.2
IL_0062: call NetInfo NetNode::get_Info()
IL_0067: ldfld NetAI NetInfo::m_netAI
IL_006C: isinst ConcourseAI
IL_0071: brfalse => Label5
IL_0076: Label4
IL_0076: ldarg.0
IL_0077: ldfld System.UInt16[] ElectricityManager::m_nodeGroups
IL_007C: ldarg.1
IL_007D: ldelem.u2
IL_007E: ldc.i4 65535
IL_0083: bne.un => Label6
IL_0088: ldloca.s 1 (ElectricityManager+PulseUnit)
IL_008A: ldarg.3
IL_008B: stfld System.UInt16 PulseUnit::m_group
IL_0090: ldloca.s 1 (ElectricityManager+PulseUnit)
IL_0092: ldarg.1
IL_0093: stfld System.UInt16 PulseUnit::m_node
IL_0098: ldloca.s 1 (ElectricityManager+PulseUnit)
IL_009A: ldc.i4.0
IL_009B: stfld System.Byte PulseUnit::m_x
IL_00A0: ldloca.s 1 (ElectricityManager+PulseUnit)
IL_00A2: ldc.i4.0
IL_00A3: stfld System.Byte PulseUnit::m_z
IL_00A8: ldarg.0
IL_00A9: ldfld PulseUnit[] ElectricityManager::m_pulseUnits
IL_00AE: ldarg.0
IL_00AF: ldfld System.Int32 ElectricityManager::m_pulseUnitEnd
IL_00B4: ldelema ElectricityManager+PulseUnit
IL_00B9: ldloc.1
IL_00BA: stobj ElectricityManager+PulseUnit
IL_00BF: ldarg.0
IL_00C0: dup
IL_00C1: ldfld System.Int32 ElectricityManager::m_pulseUnitEnd
IL_00C6: ldc.i4.1
IL_00C7: add
IL_00C8: dup
IL_00C9: stloc.2
IL_00CA: stfld System.Int32 ElectricityManager::m_pulseUnitEnd
IL_00CF: ldloc.2
IL_00D0: ldarg.0
IL_00D1: ldfld PulseUnit[] ElectricityManager::m_pulseUnits
IL_00D6: ldlen
IL_00D7: conv.i4
IL_00D8: bne.un => Label7
IL_00DD: ldarg.0
IL_00DE: ldc.i4.0
IL_00DF: stfld System.Int32 ElectricityManager::m_pulseUnitEnd
IL_00E4: Label7
IL_00E4: ldarg.0
IL_00E5: ldfld System.UInt16[] ElectricityManager::m_nodeGroups
IL_00EA: ldarg.1
IL_00EB: ldarg.3
IL_00EC: stelem.i2
IL_00ED: ldarg.0
IL_00EE: ldc.i4.1
IL_00EF: stfld System.Boolean ElectricityManager::m_canContinue
IL_00F4: br => Label8
IL_00F9: Label6
IL_00F9: ldarg.0
IL_00FA: ldarg.0
IL_00FB: ldfld System.UInt16[] ElectricityManager::m_nodeGroups
IL_0100: ldarg.1
IL_0101: ldelem.u2
IL_0102: call System.UInt16 ElectricityManager::GetRootGroup(System.UInt16
group)
IL_0107: stloc.3
IL_0108: ldloc.3
IL_0109: ldarg.3
IL_010A: beq => Label9
IL_010F: ldarg.0
IL_0110: ldarg.3
IL_0111: ldloc.3
IL_0112: call System.Void ElectricityManager::MergeGroups(System.UInt16 root,
System.UInt16 merged)
IL_0117: ldarg.0
IL_0118: ldfld System.UInt16[] ElectricityManager::m_nodeGroups
IL_011D: ldarg.1
IL_011E: ldarg.3
IL_011F: stelem.i2
IL_0120: ldarg.0
IL_0121: ldc.i4.1
IL_0122: stfld System.Boolean ElectricityManager::m_canContinue
IL_0127: // end original
IL_0127: Label0
IL_0127: Label1
IL_0127: Label2
IL_0127: Label3
IL_0127: Label5
IL_0127: Label8
IL_0127: Label9
IL_0127: ret
DONE

### Patch: System.Void ElectricityManager::UpdateNodeElectricity(System.Int32


nodeID, System.Int32 value)
### Replacement: static System.Void
ElectricityManager::ElectricityManager.UpdateNodeElectricity_Patch0(ElectricityMana
ger this, System.Int32 nodeID, System.Int32 value)
IL_0000: Local var 0: InfoManager/InfoMode
IL_0000: Local var 1: NetManager
IL_0000: Local var 2: System.Boolean
IL_0000: Local var 3: NetNode/Flags
IL_0000: Local var 4: System.UInt16
IL_0000: Local var 5: BuildingManager
IL_0000: Local var 6: NetNode/Flags
IL_0000: Local var 7: System.Int32
IL_0000: Local var 8: System.UInt16
IL_0000: // start original
IL_0000: call static InfoManager
ColossalFramework.Singleton`1<InfoManager>::get_instance()
IL_0005: callvirt InfoMode InfoManager::get_CurrentMode()
IL_000A: stloc.0
IL_000B: call static NetManager
ColossalFramework.Singleton`1<NetManager>::get_instance()
IL_0010: stloc.1
IL_0011: ldc.i4.0
IL_0012: stloc.2
IL_0013: ldloc.1
IL_0014: ldfld Array16`1<NetNode> NetManager::m_nodes
IL_0019: ldfld NetNode[] Array16`1<NetNode>::m_buffer
IL_001E: ldarg.1
IL_001F: ldelema NetNode
IL_0024: ldfld Flags NetNode::m_flags
IL_0029: stloc.3
IL_002A: ldloc.3
IL_002B: ldc.i4 1048576
IL_0030: and
IL_0031: brfalse => Label0
IL_0036: ldloc.1
IL_0037: ldfld Array16`1<NetNode> NetManager::m_nodes
IL_003C: ldfld NetNode[] Array16`1<NetNode>::m_buffer
IL_0041: ldarg.1
IL_0042: ldelema NetNode
IL_0047: dup
IL_0048: ldfld Flags NetNode::m_flags
IL_004D: ldc.i4 -1048577
IL_0052: and
IL_0053: stfld Flags NetNode::m_flags
IL_0058: br => Label10
IL_005D: Label0
IL_005D: ldloc.1
IL_005E: ldfld Array16`1<NetNode> NetManager::m_nodes
IL_0063: ldfld NetNode[] Array16`1<NetNode>::m_buffer
IL_0068: ldarg.1
IL_0069: ldelema NetNode
IL_006E: ldfld System.UInt16 NetNode::m_building
IL_0073: stloc.s 4 (System.UInt16)
IL_0075: ldloc.s 4 (System.UInt16)
IL_0077: brfalse => Label1
IL_007C: call static BuildingManager
ColossalFramework.Singleton`1<BuildingManager>::get_instance()
IL_0081: stloc.s 5 (BuildingManager)
IL_0083: ldloc.s 5 (BuildingManager)
IL_0085: ldfld Array16`1<Building> BuildingManager::m_buildings
IL_008A: ldfld Building[] Array16`1<Building>::m_buffer
IL_008F: ldloc.s 4 (System.UInt16)
IL_0091: ldelema Building
IL_0096: ldfld System.UInt16 Building::m_electricityBuffer
IL_009B: ldarg.2
IL_009C: beq => Label2
IL_00A1: ldloc.s 5 (BuildingManager)
IL_00A3: ldfld Array16`1<Building> BuildingManager::m_buildings
IL_00A8: ldfld Building[] Array16`1<Building>::m_buffer
IL_00AD: ldloc.s 4 (System.UInt16)
IL_00AF: ldelema Building
IL_00B4: ldarg.2
IL_00B5: conv.u2
IL_00B6: stfld System.UInt16 Building::m_electricityBuffer
IL_00BB: ldloc.0
IL_00BC: ldc.i4.1
IL_00BD: ceq
IL_00BF: stloc.2
IL_00C0: Label2
IL_00C0: ldloc.2
IL_00C1: brfalse => Label3
IL_00C6: ldloc.s 5 (BuildingManager)
IL_00C8: ldloc.s 4 (System.UInt16)
IL_00CA: callvirt System.Void BuildingManager::UpdateBuildingColors(System.UInt16
building)
IL_00CF: Label1
IL_00CF: Label3
IL_00CF: ldloc.3
IL_00D0: ldc.i4 -67108865
IL_00D5: and
IL_00D6: stloc.s 6 (NetNode+Flags)
IL_00D8: ldarg.2
IL_00D9: brfalse => Label4
IL_00DE: ldloc.s 6 (NetNode+Flags)
IL_00E0: ldc.i4 67108864
IL_00E5: or
IL_00E6: stloc.s 6 (NetNode+Flags)
IL_00E8: Label4
IL_00E8: ldloc.s 6 (NetNode+Flags)
IL_00EA: ldloc.3
IL_00EB: beq => Label5
IL_00F0: ldloc.1
IL_00F1: ldfld Array16`1<NetNode> NetManager::m_nodes
IL_00F6: ldfld NetNode[] Array16`1<NetNode>::m_buffer
IL_00FB: ldarg.1
IL_00FC: ldelema NetNode
IL_0101: ldloc.s 6 (NetNode+Flags)
IL_0103: stfld Flags NetNode::m_flags
IL_0108: ldloc.0
IL_0109: ldc.i4.1
IL_010A: ceq
IL_010C: stloc.2
IL_010D: Label5
IL_010D: ldloc.2
IL_010E: brfalse => Label6
IL_0113: ldloc.1
IL_0114: ldarg.1
IL_0115: conv.u2
IL_0116: callvirt System.Void NetManager::UpdateNodeColors(System.UInt16 node)
IL_011B: ldc.i4.0
IL_011C: stloc.s 7 (System.Int32)
IL_011E: br => Label7
IL_0123: Label9
IL_0123: ldloc.1
IL_0124: ldfld Array16`1<NetNode> NetManager::m_nodes
IL_0129: ldfld NetNode[] Array16`1<NetNode>::m_buffer
IL_012E: ldarg.1
IL_012F: ldelema NetNode
IL_0134: ldloc.s 7 (System.Int32)
IL_0136: call System.UInt16 NetNode::GetSegment(System.Int32 index)
IL_013B: stloc.s 8 (System.UInt16)
IL_013D: ldloc.s 8 (System.UInt16)
IL_013F: brfalse => Label8
IL_0144: ldloc.1
IL_0145: ldloc.s 8 (System.UInt16)
IL_0147: callvirt System.Void NetManager::UpdateSegmentColors(System.UInt16
segment)
IL_014C: Label8
IL_014C: ldloc.s 7 (System.Int32)
IL_014E: ldc.i4.1
IL_014F: add
IL_0150: stloc.s 7 (System.Int32)
IL_0152: Label7
IL_0152: ldloc.s 7 (System.Int32)
IL_0154: ldc.i4.8
IL_0155: blt => Label9
IL_015A: // end original
IL_015A: Label6
IL_015A: Label10
IL_015A: ret
DONE

### Patch: virtual System.Void ColossalFramework.UI.UIView::Start()


### Replacement: static System.Void
ColossalFramework.UI.UIView::ColossalFramework.UI.UIView.Start_Patch1(ColossalFrame
work.UI.UIView this)
IL_0000: Local var 0:
ColossalFramework.PoolList`1<ColossalFramework.UI.UIComponent>
IL_0000: Local var 1: ColossalFramework.UI.UIComponent
IL_0000: Local var 2:
System.Collections.Generic.IEnumerator`1<ColossalFramework.UI.UIComponent>
IL_0000: // start original
IL_0000: ldarg.0
IL_0001: ldc.i4.0
IL_0002: stfld System.Int32 ColossalFramework.UI.UIView::m_FramesRendered
IL_0007: ldarg.0
IL_0008: call System.Void
ColossalFramework.UI.UIView::InvalidateAllComponents()
IL_000D: ldarg.0
IL_000E: ldfld UnityEngine.MeshRenderer
ColossalFramework.UI.UIView::m_MeshRenderer
IL_0013: ldnull
IL_0014: call static System.Boolean
UnityEngine.Object::op_Inequality(UnityEngine.Object x, UnityEngine.Object y)
IL_0019: brfalse => Label0
IL_001E: ldarg.0
IL_001F: ldfld UnityEngine.MeshRenderer
ColossalFramework.UI.UIView::m_MeshRenderer
IL_0024: ldc.i4.1
IL_0025: callvirt System.Void UnityEngine.Renderer::set_enabled(System.Boolean
value)
IL_002A: Label0
IL_002A: ldarg.0
IL_002B: call ColossalFramework.PoolList`1<ColossalFramework.UI.UIComponent>
ColossalFramework.UI.UIView::GetTopLevelComponents()
IL_0030: stloc.0
.try
{
IL_0031: ldloc.0
IL_0032: callvirt virtual
System.Collections.Generic.IEnumerator`1<ColossalFramework.UI.UIComponent>
ColossalFramework.PoolList`1<ColossalFramework.UI.UIComponent>::GetEnumerator()
IL_0037: stloc.2
.try
{
IL_0038: br => Label1
IL_003D: Label2
IL_003D: ldloc.2
IL_003E: callvirt abstract virtual ColossalFramework.UI.UIComponent
System.Collections.Generic.IEnumerator`1<ColossalFramework.UI.UIComponent>::get_Cur
rent()
IL_0043: stloc.1
IL_0044: ldloc.1
IL_0045: ldc.i4.1
IL_0046: callvirt System.Void
ColossalFramework.UI.UIComponent::InitializeParentVisibilityCache(System.Boolean
parentVisible)
IL_004B: Label1
IL_004B: ldloc.2
IL_004C: callvirt abstract virtual System.Boolean
System.Collections.IEnumerator::MoveNext()
IL_0051: brtrue => Label2
IL_0056: leave => Label3
IL_005B: leave => (autogenerated)
} // end try
.finally
{
IL_0060: ldloc.2
IL_0061: brfalse => Label4
IL_0066: ldloc.2
IL_0067: callvirt abstract virtual System.Void
System.IDisposable::Dispose()
IL_006C: Label4
IL_006C: endfinally
IL_006D: leave => (autogenerated)
} // end handler
IL_006E: Label3
IL_006E: leave => Label5
IL_0073: leave => (autogenerated)
} // end try
.finally
{
IL_0078: ldloc.0
IL_0079: brfalse => Label6
IL_007E: ldloc.0
IL_007F: callvirt abstract virtual System.Void
System.IDisposable::Dispose()
IL_0084: Label6
IL_0084: endfinally
IL_0085: leave => (autogenerated)
} // end handler
IL_0086: Label5
IL_0086: ldarg.0
IL_0087: ldc.i4.1
IL_0088: stfld System.Boolean
ColossalFramework.UI.UIView::m_VisibilityCacheInitialized
IL_008D: // end original
IL_008D: call static System.Void
Kwytto.Redirectors.UIViewRedirector::AfterStart()
IL_0092: ret
DONE

### Patch: virtual UnityEngine.Color NetAI::GetColor(System.UInt16 nodeID, NetNode&


data, InfoMode infoMode, SubInfoMode subInfoMode)
### Replacement: static UnityEngine.Color NetAI::NetAI.GetColor_Patch1(NetAI this,
System.UInt16 nodeID, NetNode& data, InfoMode infoMode, SubInfoMode subInfoMode)
IL_0000: Local var 0: UnityEngine.Color
IL_0000: ldloca 0 (UnityEngine.Color)
IL_0004: initobj UnityEngine.Color
IL_000A: // start original
IL_000A: ldarg.3
IL_000B: brfalse => Label0
IL_0010: call static InfoManager
ColossalFramework.Singleton`1<InfoManager>::get_instance()
IL_0015: ldfld InfoProperties SimulationManagerBase`2<InfoManager,
InfoProperties>::m_properties
IL_001A: ldfld UnityEngine.Color InfoProperties::m_neutralColor
IL_001F: br => Label1
IL_0024: Label0
IL_0024: ldarg.0
IL_0025: ldfld NetInfo NetAI::m_info
IL_002A: ldfld UnityEngine.Color NetInfo::m_color
IL_002F: // end original
IL_002F: Label1
IL_002F: stloc 0 (UnityEngine.Color)
IL_0033: ldloca 0 (UnityEngine.Color)
IL_0037: ldarg 1
IL_003B: ldarg 2
IL_003F: ldarg 3
IL_0043: ldarg 4
IL_0047: call static System.Void
ElectricRoads.Overrides.ElectricRoadsOverrides::AfterGetColorNode(UnityEngine.Color
& __result, System.UInt16 nodeID, NetNode& data, InfoMode infoMode, SubInfoMode
subInfoMode)
IL_004C: ldloc 0 (UnityEngine.Color)
IL_0050: ret
DONE

### Patch: virtual UnityEngine.Color NetAI::GetColor(System.UInt16 segmentID,


NetSegment& data, InfoMode infoMode, SubInfoMode subInfoMode)
### Replacement: static UnityEngine.Color NetAI::NetAI.GetColor_Patch1(NetAI this,
System.UInt16 segmentID, NetSegment& data, InfoMode infoMode, SubInfoMode
subInfoMode)
IL_0000: Local var 0: UnityEngine.Color
IL_0000: ldloca 0 (UnityEngine.Color)
IL_0004: initobj UnityEngine.Color
IL_000A: // start original
IL_000A: ldarg.3
IL_000B: brfalse => Label0
IL_0010: call static InfoManager
ColossalFramework.Singleton`1<InfoManager>::get_instance()
IL_0015: ldfld InfoProperties SimulationManagerBase`2<InfoManager,
InfoProperties>::m_properties
IL_001A: ldfld UnityEngine.Color InfoProperties::m_neutralColor
IL_001F: br => Label1
IL_0024: Label0
IL_0024: ldarg.0
IL_0025: ldfld NetInfo NetAI::m_info
IL_002A: ldfld UnityEngine.Color NetInfo::m_color
IL_002F: // end original
IL_002F: Label1
IL_002F: stloc 0 (UnityEngine.Color)
IL_0033: ldloca 0 (UnityEngine.Color)
IL_0037: ldarg 1
IL_003B: ldarg 2
IL_003F: ldarg 3
IL_0043: ldarg 4
IL_0047: call static System.Void
ElectricRoads.Overrides.ElectricRoadsOverrides::AfterGetColorSegment(UnityEngine.Co
lor& __result, System.UInt16 segmentID, NetSegment& data, InfoMode infoMode,
SubInfoMode subInfoMode)
IL_004C: ldloc 0 (UnityEngine.Color)
IL_0050: ret
DONE

### Patch: System.Void ElectricityManager::UpdateNodeElectricity(System.Int32


nodeID, System.Int32 value)
### Replacement: static System.Void
ElectricityManager::ElectricityManager.UpdateNodeElectricity_Patch0(ElectricityMana
ger this, System.Int32 nodeID, System.Int32 value)
IL_0000: Local var 0: InfoManager/InfoMode
IL_0000: Local var 1: NetManager
IL_0000: Local var 2: System.Boolean
IL_0000: Local var 3: NetNode/Flags
IL_0000: Local var 4: System.UInt16
IL_0000: Local var 5: BuildingManager
IL_0000: Local var 6: NetNode/Flags
IL_0000: Local var 7: System.Int32
IL_0000: Local var 8: System.UInt16
IL_0000: // start original
IL_0000: call static InfoManager
ColossalFramework.Singleton`1<InfoManager>::get_instance()
IL_0005: callvirt InfoMode InfoManager::get_CurrentMode()
IL_000A: stloc.0
IL_000B: call static NetManager
ColossalFramework.Singleton`1<NetManager>::get_instance()
IL_0010: stloc.1
IL_0011: ldc.i4.0
IL_0012: stloc.2
IL_0013: ldloc.1
IL_0014: ldfld Array16`1<NetNode> NetManager::m_nodes
IL_0019: ldfld NetNode[] Array16`1<NetNode>::m_buffer
IL_001E: ldarg.1
IL_001F: ldelema NetNode
IL_0024: ldfld Flags NetNode::m_flags
IL_0029: stloc.3
IL_002A: ldarg.1
IL_002B: call static System.Boolean
ElectricRoads.Overrides.ElectricRoadsOverrides::CheckNodeTransition(System.Int32
nodeID)
IL_0030: brfalse => Label0
IL_0035: ldloc.1
IL_0036: ldfld Array16`1<NetNode> NetManager::m_nodes
IL_003B: ldfld NetNode[] Array16`1<NetNode>::m_buffer
IL_0040: ldarg.1
IL_0041: ldelema NetNode
IL_0046: dup
IL_0047: ldfld Flags NetNode::m_flags
IL_004C: ldc.i4 -1048577
IL_0051: and
IL_0052: stfld Flags NetNode::m_flags
IL_0057: br => Label10
IL_005C: Label0
IL_005C: ldloc.1
IL_005D: ldfld Array16`1<NetNode> NetManager::m_nodes
IL_0062: ldfld NetNode[] Array16`1<NetNode>::m_buffer
IL_0067: ldarg.1
IL_0068: ldelema NetNode
IL_006D: ldfld System.UInt16 NetNode::m_building
IL_0072: stloc.s 4 (System.UInt16)
IL_0074: ldloc.s 4 (System.UInt16)
IL_0076: brfalse => Label1
IL_007B: call static BuildingManager
ColossalFramework.Singleton`1<BuildingManager>::get_instance()
IL_0080: stloc.s 5 (BuildingManager)
IL_0082: ldloc.s 5 (BuildingManager)
IL_0084: ldfld Array16`1<Building> BuildingManager::m_buildings
IL_0089: ldfld Building[] Array16`1<Building>::m_buffer
IL_008E: ldloc.s 4 (System.UInt16)
IL_0090: ldelema Building
IL_0095: ldfld System.UInt16 Building::m_electricityBuffer
IL_009A: ldarg.2
IL_009B: beq => Label2
IL_00A0: ldloc.s 5 (BuildingManager)
IL_00A2: ldfld Array16`1<Building> BuildingManager::m_buildings
IL_00A7: ldfld Building[] Array16`1<Building>::m_buffer
IL_00AC: ldloc.s 4 (System.UInt16)
IL_00AE: ldelema Building
IL_00B3: ldarg.2
IL_00B4: conv.u2
IL_00B5: stfld System.UInt16 Building::m_electricityBuffer
IL_00BA: ldloc.0
IL_00BB: ldc.i4.1
IL_00BC: ceq
IL_00BE: stloc.2
IL_00BF: Label2
IL_00BF: ldloc.2
IL_00C0: brfalse => Label3
IL_00C5: ldloc.s 5 (BuildingManager)
IL_00C7: ldloc.s 4 (System.UInt16)
IL_00C9: callvirt System.Void BuildingManager::UpdateBuildingColors(System.UInt16
building)
IL_00CE: Label1
IL_00CE: Label3
IL_00CE: ldloc.3
IL_00CF: ldc.i4 -67108865
IL_00D4: and
IL_00D5: stloc.s 6 (NetNode+Flags)
IL_00D7: ldarg.2
IL_00D8: brfalse => Label4
IL_00DD: ldloc.s 6 (NetNode+Flags)
IL_00DF: ldc.i4 67108864
IL_00E4: or
IL_00E5: stloc.s 6 (NetNode+Flags)
IL_00E7: Label4
IL_00E7: ldloc.s 6 (NetNode+Flags)
IL_00E9: ldloc.3
IL_00EA: beq => Label5
IL_00EF: ldloc.1
IL_00F0: ldfld Array16`1<NetNode> NetManager::m_nodes
IL_00F5: ldfld NetNode[] Array16`1<NetNode>::m_buffer
IL_00FA: ldarg.1
IL_00FB: ldelema NetNode
IL_0100: ldloc.s 6 (NetNode+Flags)
IL_0102: stfld Flags NetNode::m_flags
IL_0107: ldloc.0
IL_0108: ldc.i4.1
IL_0109: ceq
IL_010B: stloc.2
IL_010C: Label5
IL_010C: ldloc.2
IL_010D: brfalse => Label6
IL_0112: ldloc.1
IL_0113: ldarg.1
IL_0114: conv.u2
IL_0115: callvirt System.Void NetManager::UpdateNodeColors(System.UInt16 node)
IL_011A: ldc.i4.0
IL_011B: stloc.s 7 (System.Int32)
IL_011D: br => Label7
IL_0122: Label9
IL_0122: ldloc.1
IL_0123: ldfld Array16`1<NetNode> NetManager::m_nodes
IL_0128: ldfld NetNode[] Array16`1<NetNode>::m_buffer
IL_012D: ldarg.1
IL_012E: ldelema NetNode
IL_0133: ldloc.s 7 (System.Int32)
IL_0135: call System.UInt16 NetNode::GetSegment(System.Int32 index)
IL_013A: stloc.s 8 (System.UInt16)
IL_013C: ldloc.s 8 (System.UInt16)
IL_013E: brfalse => Label8
IL_0143: ldloc.1
IL_0144: ldloc.s 8 (System.UInt16)
IL_0146: callvirt System.Void NetManager::UpdateSegmentColors(System.UInt16
segment)
IL_014B: Label8
IL_014B: ldloc.s 7 (System.Int32)
IL_014D: ldc.i4.1
IL_014E: add
IL_014F: stloc.s 7 (System.Int32)
IL_0151: Label7
IL_0151: ldloc.s 7 (System.Int32)
IL_0153: ldc.i4.8
IL_0154: blt => Label9
IL_0159: // end original
IL_0159: Label6
IL_0159: Label10
IL_0159: ret
DONE

### Patch: static System.Void PropInstance::RenderInstance(CameraInfo cameraInfo,


PropInfo info, InstanceID id, UnityEngine.Vector3 position, System.Single scale,
System.Single angle, UnityEngine.Color color, UnityEngine.Vector4 objectIndex,
System.Boolean active, UnityEngine.Texture heightMap, UnityEngine.Vector4
heightMapping, UnityEngine.Vector4 surfaceMapping, UnityEngine.Texture
waterHeightMap, UnityEngine.Vector4 waterHeightMapping, UnityEngine.Vector4
waterSurfaceMapping)
### Replacement: static System.Void
PropInstance::PropInstance.RenderInstance_Patch0(CameraInfo cameraInfo, PropInfo
info, InstanceID id, UnityEngine.Vector3 position, System.Single scale,
System.Single angle, UnityEngine.Color color, UnityEngine.Vector4 objectIndex,
System.Boolean active, UnityEngine.Texture heightMap, UnityEngine.Vector4
heightMapping, UnityEngine.Vector4 surfaceMapping, UnityEngine.Texture
waterHeightMap, UnityEngine.Vector4 waterHeightMapping, UnityEngine.Vector4
waterSurfaceMapping)
IL_0000: Local var 0: UnityEngine.Matrix4x4
IL_0000: Local var 1: System.Single
IL_0000: Local var 2: System.Int32
IL_0000: Local var 3: UnityEngine.Vector3
IL_0000: Local var 4: UnityEngine.Vector3
IL_0000: Local var 5: EffectInfo/SpawnArea
IL_0000: Local var 6: System.Single
IL_0000: Local var 7: LightSystem
IL_0000: Local var 8: ColossalFramework.Math.Randomizer
IL_0000: Local var 9: UnityEngine.Vector4
IL_0000: Local var 10: System.Single
IL_0000: Local var 11: System.Single
IL_0000: Local var 12: System.Single
IL_0000: Local var 13: UnityEngine.Matrix4x4
IL_0000: Local var 14: PropManager
IL_0000: Local var 15: UnityEngine.MaterialPropertyBlock
IL_0000: Local var 16: System.Int32
IL_0000: // start original
IL_0000: ldarg.1
IL_0001: ldfld System.Boolean PrefabInfo::m_prefabInitialized
IL_0006: brfalse => Label0
IL_000B: ldarg.1
IL_000C: ldfld System.Boolean PropInfo::m_hasEffects
IL_0011: brfalse => Label1
IL_0016: ldarg.s 8
IL_0018: brtrue => Label2
IL_001D: ldarg.1
IL_001E: ldfld System.Boolean PropInfo::m_alwaysActive
IL_0023: brfalse => Label3
IL_0028: Label2
IL_0028: ldloca.s 0 (UnityEngine.Matrix4x4)
IL_002A: initobj UnityEngine.Matrix4x4
IL_0030: ldloca.s 0 (UnityEngine.Matrix4x4)
IL_0032: ldarg.3
IL_0033: ldarg.s 5
IL_0035: ldc.r4 57.29578
IL_003A: mul
IL_003B: call static UnityEngine.Vector3 UnityEngine.Vector3::get_down()
IL_0040: call static UnityEngine.Quaternion
UnityEngine.Quaternion::AngleAxis(System.Single angle, UnityEngine.Vector3 axis)
IL_0045: ldarg.s 4
IL_0047: ldarg.s 4
IL_0049: ldarg.s 4
IL_004B: newobj System.Void UnityEngine.Vector3::.ctor(System.Single x,
System.Single y, System.Single z)
IL_0050: call System.Void UnityEngine.Matrix4x4::SetTRS(UnityEngine.Vector3
pos, UnityEngine.Quaternion q, UnityEngine.Vector3 s)
IL_0055: call static SimulationManager
ColossalFramework.Singleton`1<SimulationManager>::get_instance()
IL_005A: ldfld System.Single SimulationManager::m_simulationTimeDelta
IL_005F: stloc.1
IL_0060: ldc.i4.0
IL_0061: stloc.2
IL_0062: br => Label4
IL_0067: Label5
IL_0067: ldloca.s 0 (UnityEngine.Matrix4x4)
IL_0069: ldarg.1
IL_006A: ldfld Effect[] PropInfo::m_effects
IL_006F: ldloc.2
IL_0070: ldelema PropInfo+Effect
IL_0075: ldfld UnityEngine.Vector3 Effect::m_position
IL_007A: call UnityEngine.Vector3
UnityEngine.Matrix4x4::MultiplyPoint(UnityEngine.Vector3 v)
IL_007F: stloc.3
IL_0080: ldloca.s 0 (UnityEngine.Matrix4x4)
IL_0082: ldarg.1
IL_0083: ldfld Effect[] PropInfo::m_effects
IL_0088: ldloc.2
IL_0089: ldelema PropInfo+Effect
IL_008E: ldfld UnityEngine.Vector3 Effect::m_direction
IL_0093: call UnityEngine.Vector3
UnityEngine.Matrix4x4::MultiplyVector(UnityEngine.Vector3 v)
IL_0098: stloc.s 4 (UnityEngine.Vector3)
IL_009A: ldloca.s 5 (EffectInfo+SpawnArea)
IL_009C: ldloc.3
IL_009D: ldloc.s 4 (UnityEngine.Vector3)
IL_009F: ldc.r4 0
IL_00A4: call System.Void SpawnArea::.ctor(UnityEngine.Vector3 position,
UnityEngine.Vector3 direction, System.Single radius)
IL_00A9: ldarg.1
IL_00AA: ldfld Effect[] PropInfo::m_effects
IL_00AF: ldloc.2
IL_00B0: ldelema PropInfo+Effect
IL_00B5: ldfld EffectInfo Effect::m_effect
IL_00BA: ldarg.2
IL_00BB: ldloc.s 5 (EffectInfo+SpawnArea)
IL_00BD: call static UnityEngine.Vector3 UnityEngine.Vector3::get_zero()
IL_00C2: ldc.r4 0
IL_00C7: ldc.r4 1
IL_00CC: ldc.r4 -1
IL_00D1: ldloc.1
IL_00D2: ldarg.0
IL_00D3: callvirt virtual System.Void EffectInfo::RenderEffect(InstanceID id,
SpawnArea area, UnityEngine.Vector3 velocity, System.Single acceleration,
System.Single magnitude, System.Single timeOffset, System.Single timeDelta,
CameraInfo cameraInfo)
IL_00D8: ldloc.2
IL_00D9: ldc.i4.1
IL_00DA: add
IL_00DB: stloc.2
IL_00DC: Label4
IL_00DC: ldloc.2
IL_00DD: ldarg.1
IL_00DE: ldfld Effect[] PropInfo::m_effects
IL_00E3: ldlen
IL_00E4: conv.i4
IL_00E5: blt => Label5
IL_00EA: Label1
IL_00EA: Label3
IL_00EA: ldarg.1
IL_00EB: ldfld System.Boolean PropInfo::m_hasRenderer
IL_00F0: brfalse => Label6
IL_00F5: ldarg.0
IL_00F6: ldfld System.Int32 CameraInfo::m_layerMask
IL_00FB: ldc.i4.1
IL_00FC: ldarg.1
IL_00FD: ldfld System.Int32 PrefabInfo::m_prefabDataLayer
IL_0102: ldc.i4.s 31
IL_0104: and
IL_0105: shl
IL_0106: and
IL_0107: brfalse => Label7
IL_010C: call static InfoManager
ColossalFramework.Singleton`1<InfoManager>::get_instance()
IL_0111: callvirt InfoMode InfoManager::get_CurrentMode()
IL_0116: brtrue => Label8
IL_011B: ldarg 2
IL_011F: call static System.Boolean
ElectricRoads.Overrides.ElectricRoadsOverrides::CheckElectrityNetForLight(InstanceI
D id)
IL_0124: brfalse => Label24
IL_0129: ldc.r4 0
IL_012E: stloc.s 6 (System.Single)
IL_0130: ldarg.s 8
IL_0132: brtrue => Label9
IL_0137: ldarg.1
IL_0138: ldfld System.Boolean PropInfo::m_alwaysActive
IL_013D: brtrue => Label10
IL_0142: Label24
IL_0142: ldarga.s 7
IL_0144: ldc.r4 0
IL_0149: stfld System.Single UnityEngine.Vector4::z
IL_014E: br => Label11
IL_0153: Label9
IL_0153: Label10
IL_0153: ldarg.1
IL_0154: ldflda UnityEngine.Vector2 PropInfo::m_illuminationOffRange
IL_0159: ldfld System.Single UnityEngine.Vector2::x
IL_015E: ldc.r4 1000
IL_0163: blt => Label12
IL_0168: ldarg.1
IL_0169: ldfld BlinkType PropInfo::m_illuminationBlinkType
IL_016E: brfalse => Label13
IL_0173: Label12
IL_0173: call static RenderManager
ColossalFramework.Singleton`1<RenderManager>::get_instance()
IL_0178: callvirt LightSystem RenderManager::get_lightSystem()
IL_017D: stloc.s 7 (LightSystem)
IL_017F: ldloca.s 8 (ColossalFramework.Math.Randomizer)
IL_0181: ldarga.s 2
IL_0183: call System.UInt32 InstanceID::get_Index()
IL_0188: call System.Void
ColossalFramework.Math.Randomizer::.ctor(System.UInt32 _seed)
IL_018D: ldarg.1
IL_018E: ldflda UnityEngine.Vector2 PropInfo::m_illuminationOffRange
IL_0193: ldfld System.Single UnityEngine.Vector2::x
IL_0198: ldloca.s 8 (ColossalFramework.Math.Randomizer)
IL_019A: ldc.i4 100000
IL_019F: call System.Int32
ColossalFramework.Math.Randomizer::Int32(System.UInt32 range)
IL_01A4: conv.r4
IL_01A5: ldc.r4 1E-05
IL_01AA: mul
IL_01AB: ldarg.1
IL_01AC: ldflda UnityEngine.Vector2 PropInfo::m_illuminationOffRange
IL_01B1: ldfld System.Single UnityEngine.Vector2::y
IL_01B6: ldarg.1
IL_01B7: ldflda UnityEngine.Vector2 PropInfo::m_illuminationOffRange
IL_01BC: ldfld System.Single UnityEngine.Vector2::x
IL_01C1: sub
IL_01C2: mul
IL_01C3: add
IL_01C4: stloc.s 6 (System.Single)
IL_01C6: ldarga.s 7
IL_01C8: ldloc.s 6 (System.Single)
IL_01CA: ldc.r4 0.01
IL_01CF: add
IL_01D0: ldloc.s 6 (System.Single)
IL_01D2: ldc.r4 0.01
IL_01D7: sub
IL_01D8: ldloc.s 7 (LightSystem)
IL_01DA: callvirt System.Single LightSystem::get_DayLightIntensity()
IL_01DF: call static System.Single MathUtils::SmoothStep(System.Single edge0,
System.Single edge1, System.Single x)
IL_01E4: stfld System.Single UnityEngine.Vector4::z
IL_01E9: ldarg.1
IL_01EA: ldfld BlinkType PropInfo::m_illuminationBlinkType
IL_01EF: brfalse => Label14
IL_01F4: ldarg.1
IL_01F5: ldfld BlinkType PropInfo::m_illuminationBlinkType
IL_01FA: call static UnityEngine.Vector4
LightEffect::GetBlinkVector(BlinkType type)
IL_01FF: stloc.s 9 (UnityEngine.Vector4)
IL_0201: ldloc.s 6 (System.Single)
IL_0203: ldc.r4 3.71
IL_0208: mul
IL_0209: call static SimulationManager
ColossalFramework.Singleton`1<SimulationManager>::get_instance()
IL_020E: ldfld System.Single SimulationManager::m_simulationTimer
IL_0213: ldloca.s 9 (UnityEngine.Vector4)
IL_0215: ldfld System.Single UnityEngine.Vector4::w
IL_021A: div
IL_021B: add
IL_021C: stloc.s 10 (System.Single)
IL_021E: ldloc.s 10 (System.Single)
IL_0220: ldloc.s 10 (System.Single)
IL_0222: call static System.Single UnityEngine.Mathf::Floor(System.Single f)
IL_0227: sub
IL_0228: ldloca.s 9 (UnityEngine.Vector4)
IL_022A: ldfld System.Single UnityEngine.Vector4::w
IL_022F: mul
IL_0230: stloc.s 10 (System.Single)
IL_0232: ldloca.s 9 (UnityEngine.Vector4)
IL_0234: ldfld System.Single UnityEngine.Vector4::x
IL_0239: ldloca.s 9 (UnityEngine.Vector4)
IL_023B: ldfld System.Single UnityEngine.Vector4::y
IL_0240: ldloc.s 10 (System.Single)
IL_0242: call static System.Single MathUtils::SmoothStep(System.Single edge0,
System.Single edge1, System.Single x)
IL_0247: stloc.s 11 (System.Single)
IL_0249: ldloca.s 9 (UnityEngine.Vector4)
IL_024B: ldfld System.Single UnityEngine.Vector4::w
IL_0250: ldloca.s 9 (UnityEngine.Vector4)
IL_0252: ldfld System.Single UnityEngine.Vector4::z
IL_0257: ldloc.s 10 (System.Single)
IL_0259: call static System.Single MathUtils::SmoothStep(System.Single edge0,
System.Single edge1, System.Single x)
IL_025E: stloc.s 12 (System.Single)
IL_0260: ldarga.s 7
IL_0262: dup
IL_0263: ldfld System.Single UnityEngine.Vector4::z
IL_0268: ldc.r4 1
IL_026D: ldloc.s 11 (System.Single)
IL_026F: ldloc.s 12 (System.Single)
IL_0271: mul
IL_0272: sub
IL_0273: mul
IL_0274: stfld System.Single UnityEngine.Vector4::z
IL_0279: Label14
IL_0279: br => Label15
IL_027E: Label13
IL_027E: ldarga.s 7
IL_0280: ldc.r4 1
IL_0285: stfld System.Single UnityEngine.Vector4::z
IL_028A: Label8
IL_028A: Label11
IL_028A: Label15
IL_028A: ldarg.0
IL_028B: brfalse => Label16
IL_0290: ldarg.0
IL_0291: ldarg.3
IL_0292: ldarg.1
IL_0293: ldfld System.Single PropInfo::m_lodRenderDistance
IL_0298: callvirt System.Boolean
CameraInfo::CheckRenderDistance(UnityEngine.Vector3 point, System.Single
maxDistance)
IL_029D: brfalse => Label17
IL_02A2: Label16
IL_02A2: ldloca.s 13 (UnityEngine.Matrix4x4)
IL_02A4: initobj UnityEngine.Matrix4x4
IL_02AA: ldloca.s 13 (UnityEngine.Matrix4x4)
IL_02AC: ldarg.3
IL_02AD: ldarg.s 5
IL_02AF: ldc.r4 57.29578
IL_02B4: mul
IL_02B5: call static UnityEngine.Vector3 UnityEngine.Vector3::get_down()
IL_02BA: call static UnityEngine.Quaternion
UnityEngine.Quaternion::AngleAxis(System.Single angle, UnityEngine.Vector3 axis)
IL_02BF: ldarg.s 4
IL_02C1: ldarg.s 4
IL_02C3: ldarg.s 4
IL_02C5: newobj System.Void UnityEngine.Vector3::.ctor(System.Single x,
System.Single y, System.Single z)
IL_02CA: call System.Void UnityEngine.Matrix4x4::SetTRS(UnityEngine.Vector3
pos, UnityEngine.Quaternion q, UnityEngine.Vector3 s)
IL_02CF: call static PropManager
ColossalFramework.Singleton`1<PropManager>::get_instance()
IL_02D4: stloc.s 14 (PropManager)
IL_02D6: ldloc.s 14 (PropManager)
IL_02D8: ldfld UnityEngine.MaterialPropertyBlock PropManager::m_materialBlock
IL_02DD: stloc.s 15 (UnityEngine.MaterialPropertyBlock)
IL_02DF: ldloc.s 15 (UnityEngine.MaterialPropertyBlock)
IL_02E1: callvirt System.Void UnityEngine.MaterialPropertyBlock::Clear()
IL_02E6: ldloc.s 15 (UnityEngine.MaterialPropertyBlock)
IL_02E8: ldloc.s 14 (PropManager)
IL_02EA: ldfld System.Int32 PropManager::ID_Color
IL_02EF: ldarg.s 6
IL_02F1: callvirt System.Void
UnityEngine.MaterialPropertyBlock::SetColor(System.Int32 nameID, UnityEngine.Color
value)
IL_02F6: ldloc.s 15 (UnityEngine.MaterialPropertyBlock)
IL_02F8: ldloc.s 14 (PropManager)
IL_02FA: ldfld System.Int32 PropManager::ID_HeightMap
IL_02FF: ldarg.s 9
IL_0301: callvirt System.Void
UnityEngine.MaterialPropertyBlock::SetTexture(System.Int32 nameID,
UnityEngine.Texture value)
IL_0306: ldloc.s 15 (UnityEngine.MaterialPropertyBlock)
IL_0308: ldloc.s 14 (PropManager)
IL_030A: ldfld System.Int32 PropManager::ID_HeightMapping
IL_030F: ldarg.s 10
IL_0311: callvirt System.Void
UnityEngine.MaterialPropertyBlock::SetVector(System.Int32 nameID,
UnityEngine.Vector4 value)
IL_0316: ldloc.s 15 (UnityEngine.MaterialPropertyBlock)
IL_0318: ldloc.s 14 (PropManager)
IL_031A: ldfld System.Int32 PropManager::ID_SurfaceMapping
IL_031F: ldarg.s 11
IL_0321: callvirt System.Void
UnityEngine.MaterialPropertyBlock::SetVector(System.Int32 nameID,
UnityEngine.Vector4 value)
IL_0326: ldloc.s 15 (UnityEngine.MaterialPropertyBlock)
IL_0328: ldloc.s 14 (PropManager)
IL_032A: ldfld System.Int32 PropManager::ID_ObjectIndex
IL_032F: ldarg.s 7
IL_0331: callvirt System.Void
UnityEngine.MaterialPropertyBlock::SetVector(System.Int32 nameID,
UnityEngine.Vector4 value)
IL_0336: ldloc.s 15 (UnityEngine.MaterialPropertyBlock)
IL_0338: ldloc.s 14 (PropManager)
IL_033A: ldfld System.Int32 PropManager::ID_WaterHeightMap
IL_033F: ldarg.s 12
IL_0341: callvirt System.Void
UnityEngine.MaterialPropertyBlock::SetTexture(System.Int32 nameID,
UnityEngine.Texture value)
IL_0346: ldloc.s 15 (UnityEngine.MaterialPropertyBlock)
IL_0348: ldloc.s 14 (PropManager)
IL_034A: ldfld System.Int32 PropManager::ID_WaterHeightMapping
IL_034F: ldarg.s 13
IL_0351: callvirt System.Void
UnityEngine.MaterialPropertyBlock::SetVector(System.Int32 nameID,
UnityEngine.Vector4 value)
IL_0356: ldloc.s 15 (UnityEngine.MaterialPropertyBlock)
IL_0358: ldloc.s 14 (PropManager)
IL_035A: ldfld System.Int32 PropManager::ID_WaterSurfaceMapping
IL_035F: ldarg.s 14
IL_0361: callvirt System.Void
UnityEngine.MaterialPropertyBlock::SetVector(System.Int32 nameID,
UnityEngine.Vector4 value)
IL_0366: ldarg.1
IL_0367: ldfld UnityEngine.Vector4[] PropInfo::m_rollLocation
IL_036C: brfalse => Label18
IL_0371: ldarg.1
IL_0372: ldfld UnityEngine.Material PropInfo::m_material
IL_0377: ldloc.s 14 (PropManager)
IL_0379: ldfld System.Int32 PropManager::ID_RollLocation
IL_037E: ldarg.1
IL_037F: ldfld UnityEngine.Vector4[] PropInfo::m_rollLocation
IL_0384: callvirt System.Void UnityEngine.Material::SetVectorArray(System.Int32
nameID, UnityEngine.Vector4[] values)
IL_0389: ldarg.1
IL_038A: ldfld UnityEngine.Material PropInfo::m_material
IL_038F: ldloc.s 14 (PropManager)
IL_0391: ldfld System.Int32 PropManager::ID_RollParams
IL_0396: ldarg.1
IL_0397: ldfld UnityEngine.Vector4[] PropInfo::m_rollParams
IL_039C: callvirt System.Void UnityEngine.Material::SetVectorArray(System.Int32
nameID, UnityEngine.Vector4[] values)
IL_03A1: Label18
IL_03A1: ldloc.s 14 (PropManager)
IL_03A3: ldflda DrawCallData SimulationManagerBase`2<PropManager,
PropProperties>::m_drawCallData
IL_03A8: dup
IL_03A9: ldfld System.Int32 DrawCallData::m_defaultCalls
IL_03AE: ldc.i4.1
IL_03AF: add
IL_03B0: stfld System.Int32 DrawCallData::m_defaultCalls
IL_03B5: ldarg.1
IL_03B6: ldfld UnityEngine.Mesh PropInfo::m_mesh
IL_03BB: ldloc.s 13 (UnityEngine.Matrix4x4)
IL_03BD: ldarg.1
IL_03BE: ldfld UnityEngine.Material PropInfo::m_material
IL_03C3: ldarg.1
IL_03C4: ldfld System.Int32 PrefabInfo::m_prefabDataLayer
IL_03C9: ldnull
IL_03CA: ldc.i4.0
IL_03CB: ldloc.s 15 (UnityEngine.MaterialPropertyBlock)
IL_03CD: call static System.Void
UnityEngine.Graphics::DrawMesh(UnityEngine.Mesh mesh, UnityEngine.Matrix4x4 matrix,
UnityEngine.Material material, System.Int32 layer, UnityEngine.Camera camera,
System.Int32 submeshIndex, UnityEngine.MaterialPropertyBlock properties)
IL_03D2: br => Label19
IL_03D7: Label17
IL_03D7: ldarg.s 9
IL_03D9: ldarg.1
IL_03DA: ldfld UnityEngine.Texture PropInfo::m_lodHeightMap
IL_03DF: call static System.Boolean
UnityEngine.Object::op_Inequality(UnityEngine.Object x, UnityEngine.Object y)
IL_03E4: brtrue => Label20
IL_03E9: ldarg.s 12
IL_03EB: ldarg.1
IL_03EC: ldfld UnityEngine.Texture PropInfo::m_lodWaterHeightMap
IL_03F1: call static System.Boolean
UnityEngine.Object::op_Inequality(UnityEngine.Object x, UnityEngine.Object y)
IL_03F6: brfalse => Label21
IL_03FB: Label20
IL_03FB: ldarg.1
IL_03FC: ldfld System.Int32 PropInfo::m_lodCount
IL_0401: brfalse => Label22
IL_0406: ldarg.0
IL_0407: ldarg.1
IL_0408: call static System.Void PropInstance::RenderLod(CameraInfo
cameraInfo, PropInfo info)
IL_040D: Label22
IL_040D: ldarg.1
IL_040E: ldarg.s 9
IL_0410: stfld UnityEngine.Texture PropInfo::m_lodHeightMap
IL_0415: ldarg.1
IL_0416: ldarg.s 10
IL_0418: stfld UnityEngine.Vector4 PropInfo::m_lodHeightMapping
IL_041D: ldarg.1
IL_041E: ldarg.s 11
IL_0420: stfld UnityEngine.Vector4 PropInfo::m_lodSurfaceMapping
IL_0425: ldarg.1
IL_0426: ldarg.s 12
IL_0428: stfld UnityEngine.Texture PropInfo::m_lodWaterHeightMap
IL_042D: ldarg.1
IL_042E: ldarg.s 13
IL_0430: stfld UnityEngine.Vector4 PropInfo::m_lodWaterHeightMapping
IL_0435: ldarg.1
IL_0436: ldarg.s 14
IL_0438: stfld UnityEngine.Vector4 PropInfo::m_lodWaterSurfaceMapping
IL_043D: Label21
IL_043D: ldarga.s 7
IL_043F: ldarg.s 4
IL_0441: stfld System.Single UnityEngine.Vector4::w
IL_0446: ldarg.1
IL_0447: ldfld UnityEngine.Vector4[] PropInfo::m_lodLocations
IL_044C: ldarg.1
IL_044D: ldfld System.Int32 PropInfo::m_lodCount
IL_0452: ldelema UnityEngine.Vector4
IL_0457: ldarga.s 3
IL_0459: ldfld System.Single UnityEngine.Vector3::x
IL_045E: ldarga.s 3
IL_0460: ldfld System.Single UnityEngine.Vector3::y
IL_0465: ldarga.s 3
IL_0467: ldfld System.Single UnityEngine.Vector3::z
IL_046C: ldarg.s 5
IL_046E: newobj System.Void UnityEngine.Vector4::.ctor(System.Single x,
System.Single y, System.Single z, System.Single w)
IL_0473: stobj UnityEngine.Vector4
IL_0478: ldarg.1
IL_0479: ldfld UnityEngine.Vector4[] PropInfo::m_lodObjectIndices
IL_047E: ldarg.1
IL_047F: ldfld System.Int32 PropInfo::m_lodCount
IL_0484: ldelema UnityEngine.Vector4
IL_0489: ldarg.s 7
IL_048B: stobj UnityEngine.Vector4
IL_0490: ldarg.1
IL_0491: ldfld UnityEngine.Vector4[] PropInfo::m_lodColors
IL_0496: ldarg.1
IL_0497: ldfld System.Int32 PropInfo::m_lodCount
IL_049C: ldelema UnityEngine.Vector4
IL_04A1: ldarga.s 6
IL_04A3: call UnityEngine.Color UnityEngine.Color::get_linear()
IL_04A8: call static UnityEngine.Vector4
UnityEngine.Color::op_Implicit(UnityEngine.Color c)
IL_04AD: stobj UnityEngine.Vector4
IL_04B2: ldarg.1
IL_04B3: ldarg.1
IL_04B4: ldfld UnityEngine.Vector3 PropInfo::m_lodMin
IL_04B9: ldarg.3
IL_04BA: call static UnityEngine.Vector3
UnityEngine.Vector3::Min(UnityEngine.Vector3 lhs, UnityEngine.Vector3 rhs)
IL_04BF: stfld UnityEngine.Vector3 PropInfo::m_lodMin
IL_04C4: ldarg.1
IL_04C5: ldarg.1
IL_04C6: ldfld UnityEngine.Vector3 PropInfo::m_lodMax
IL_04CB: ldarg.3
IL_04CC: call static UnityEngine.Vector3
UnityEngine.Vector3::Max(UnityEngine.Vector3 lhs, UnityEngine.Vector3 rhs)
IL_04D1: stfld UnityEngine.Vector3 PropInfo::m_lodMax
IL_04D6: ldarg.1
IL_04D7: dup
IL_04D8: ldfld System.Int32 PropInfo::m_lodCount
IL_04DD: ldc.i4.1
IL_04DE: add
IL_04DF: dup
IL_04E0: stloc.s 16 (System.Int32)
IL_04E2: stfld System.Int32 PropInfo::m_lodCount
IL_04E7: ldloc.s 16 (System.Int32)
IL_04E9: ldarg.1
IL_04EA: ldfld UnityEngine.Vector4[] PropInfo::m_lodLocations
IL_04EF: ldlen
IL_04F0: conv.i4
IL_04F1: bne.un => Label23
IL_04F6: ldarg.0
IL_04F7: ldarg.1
IL_04F8: call static System.Void PropInstance::RenderLod(CameraInfo
cameraInfo, PropInfo info)
IL_04FD: // end original
IL_04FD: Label0
IL_04FD: Label6
IL_04FD: Label7
IL_04FD: Label19
IL_04FD: Label23
IL_04FD: ret
DONE
### Patch: static System.Void PropInstance::RenderInstance(CameraInfo cameraInfo,
PropInfo info, InstanceID id, UnityEngine.Vector3 position, System.Single scale,
System.Single angle, UnityEngine.Color color, UnityEngine.Vector4 objectIndex,
System.Boolean active)
### Replacement: static System.Void
PropInstance::PropInstance.RenderInstance_Patch0(CameraInfo cameraInfo, PropInfo
info, InstanceID id, UnityEngine.Vector3 position, System.Single scale,
System.Single angle, UnityEngine.Color color, UnityEngine.Vector4 objectIndex,
System.Boolean active)
IL_0000: Local var 0: UnityEngine.Matrix4x4
IL_0000: Local var 1: System.Single
IL_0000: Local var 2: System.Int32
IL_0000: Local var 3: UnityEngine.Vector3
IL_0000: Local var 4: UnityEngine.Vector3
IL_0000: Local var 5: EffectInfo/SpawnArea
IL_0000: Local var 6: System.Single
IL_0000: Local var 7: LightSystem
IL_0000: Local var 8: ColossalFramework.Math.Randomizer
IL_0000: Local var 9: UnityEngine.Vector4
IL_0000: Local var 10: System.Single
IL_0000: Local var 11: System.Single
IL_0000: Local var 12: System.Single
IL_0000: Local var 13: UnityEngine.Matrix4x4
IL_0000: Local var 14: PropManager
IL_0000: Local var 15: UnityEngine.MaterialPropertyBlock
IL_0000: Local var 16: UnityEngine.Matrix4x4
IL_0000: Local var 17: PropManager
IL_0000: Local var 18: UnityEngine.MaterialPropertyBlock
IL_0000: Local var 19: System.Int32
IL_0000: // start original
IL_0000: ldarg.1
IL_0001: ldfld System.Boolean PrefabInfo::m_prefabInitialized
IL_0006: brfalse => Label0
IL_000B: ldarg.1
IL_000C: ldfld System.Boolean PropInfo::m_hasEffects
IL_0011: brfalse => Label1
IL_0016: ldarg.s 8
IL_0018: brtrue => Label2
IL_001D: ldarg.1
IL_001E: ldfld System.Boolean PropInfo::m_alwaysActive
IL_0023: brfalse => Label3
IL_0028: Label2
IL_0028: ldloca.s 0 (UnityEngine.Matrix4x4)
IL_002A: initobj UnityEngine.Matrix4x4
IL_0030: ldloca.s 0 (UnityEngine.Matrix4x4)
IL_0032: ldarg.3
IL_0033: ldarg.s 5
IL_0035: ldc.r4 57.29578
IL_003A: mul
IL_003B: call static UnityEngine.Vector3 UnityEngine.Vector3::get_down()
IL_0040: call static UnityEngine.Quaternion
UnityEngine.Quaternion::AngleAxis(System.Single angle, UnityEngine.Vector3 axis)
IL_0045: ldarg.s 4
IL_0047: ldarg.s 4
IL_0049: ldarg.s 4
IL_004B: newobj System.Void UnityEngine.Vector3::.ctor(System.Single x,
System.Single y, System.Single z)
IL_0050: call System.Void UnityEngine.Matrix4x4::SetTRS(UnityEngine.Vector3
pos, UnityEngine.Quaternion q, UnityEngine.Vector3 s)
IL_0055: call static SimulationManager
ColossalFramework.Singleton`1<SimulationManager>::get_instance()
IL_005A: ldfld System.Single SimulationManager::m_simulationTimeDelta
IL_005F: stloc.1
IL_0060: ldc.i4.0
IL_0061: stloc.2
IL_0062: br => Label4
IL_0067: Label5
IL_0067: ldloca.s 0 (UnityEngine.Matrix4x4)
IL_0069: ldarg.1
IL_006A: ldfld Effect[] PropInfo::m_effects
IL_006F: ldloc.2
IL_0070: ldelema PropInfo+Effect
IL_0075: ldfld UnityEngine.Vector3 Effect::m_position
IL_007A: call UnityEngine.Vector3
UnityEngine.Matrix4x4::MultiplyPoint(UnityEngine.Vector3 v)
IL_007F: stloc.3
IL_0080: ldloca.s 0 (UnityEngine.Matrix4x4)
IL_0082: ldarg.1
IL_0083: ldfld Effect[] PropInfo::m_effects
IL_0088: ldloc.2
IL_0089: ldelema PropInfo+Effect
IL_008E: ldfld UnityEngine.Vector3 Effect::m_direction
IL_0093: call UnityEngine.Vector3
UnityEngine.Matrix4x4::MultiplyVector(UnityEngine.Vector3 v)
IL_0098: stloc.s 4 (UnityEngine.Vector3)
IL_009A: ldloca.s 5 (EffectInfo+SpawnArea)
IL_009C: ldloc.3
IL_009D: ldloc.s 4 (UnityEngine.Vector3)
IL_009F: ldc.r4 0
IL_00A4: call System.Void SpawnArea::.ctor(UnityEngine.Vector3 position,
UnityEngine.Vector3 direction, System.Single radius)
IL_00A9: ldarg.1
IL_00AA: ldfld Effect[] PropInfo::m_effects
IL_00AF: ldloc.2
IL_00B0: ldelema PropInfo+Effect
IL_00B5: ldfld EffectInfo Effect::m_effect
IL_00BA: ldarg.2
IL_00BB: ldloc.s 5 (EffectInfo+SpawnArea)
IL_00BD: call static UnityEngine.Vector3 UnityEngine.Vector3::get_zero()
IL_00C2: ldc.r4 0
IL_00C7: ldc.r4 1
IL_00CC: ldc.r4 -1
IL_00D1: ldloc.1
IL_00D2: ldarg.0
IL_00D3: callvirt virtual System.Void EffectInfo::RenderEffect(InstanceID id,
SpawnArea area, UnityEngine.Vector3 velocity, System.Single acceleration,
System.Single magnitude, System.Single timeOffset, System.Single timeDelta,
CameraInfo cameraInfo)
IL_00D8: ldloc.2
IL_00D9: ldc.i4.1
IL_00DA: add
IL_00DB: stloc.2
IL_00DC: Label4
IL_00DC: ldloc.2
IL_00DD: ldarg.1
IL_00DE: ldfld Effect[] PropInfo::m_effects
IL_00E3: ldlen
IL_00E4: conv.i4
IL_00E5: blt => Label5
IL_00EA: Label1
IL_00EA: Label3
IL_00EA: ldarg.1
IL_00EB: ldfld System.Boolean PropInfo::m_hasRenderer
IL_00F0: brfalse => Label6
IL_00F5: ldarg.0
IL_00F6: ldfld System.Int32 CameraInfo::m_layerMask
IL_00FB: ldc.i4.1
IL_00FC: ldarg.1
IL_00FD: ldfld System.Int32 PrefabInfo::m_prefabDataLayer
IL_0102: ldc.i4.s 31
IL_0104: and
IL_0105: shl
IL_0106: and
IL_0107: brfalse => Label7
IL_010C: call static InfoManager
ColossalFramework.Singleton`1<InfoManager>::get_instance()
IL_0111: callvirt InfoMode InfoManager::get_CurrentMode()
IL_0116: brtrue => Label8
IL_011B: ldarg 2
IL_011F: call static System.Boolean
ElectricRoads.Overrides.ElectricRoadsOverrides::CheckElectrityNetForLight(InstanceI
D id)
IL_0124: brfalse => Label24
IL_0129: ldc.r4 0
IL_012E: stloc.s 6 (System.Single)
IL_0130: ldarg.s 8
IL_0132: brtrue => Label9
IL_0137: ldarg.1
IL_0138: ldfld System.Boolean PropInfo::m_alwaysActive
IL_013D: brtrue => Label10
IL_0142: Label24
IL_0142: ldarga.s 7
IL_0144: ldc.r4 0
IL_0149: stfld System.Single UnityEngine.Vector4::z
IL_014E: br => Label11
IL_0153: Label9
IL_0153: Label10
IL_0153: ldarg.1
IL_0154: ldflda UnityEngine.Vector2 PropInfo::m_illuminationOffRange
IL_0159: ldfld System.Single UnityEngine.Vector2::x
IL_015E: ldc.r4 1000
IL_0163: blt => Label12
IL_0168: ldarg.1
IL_0169: ldfld BlinkType PropInfo::m_illuminationBlinkType
IL_016E: brfalse => Label13
IL_0173: Label12
IL_0173: call static RenderManager
ColossalFramework.Singleton`1<RenderManager>::get_instance()
IL_0178: callvirt LightSystem RenderManager::get_lightSystem()
IL_017D: stloc.s 7 (LightSystem)
IL_017F: ldloca.s 8 (ColossalFramework.Math.Randomizer)
IL_0181: ldarga.s 2
IL_0183: call System.UInt32 InstanceID::get_Index()
IL_0188: call System.Void
ColossalFramework.Math.Randomizer::.ctor(System.UInt32 _seed)
IL_018D: ldarg.1
IL_018E: ldflda UnityEngine.Vector2 PropInfo::m_illuminationOffRange
IL_0193: ldfld System.Single UnityEngine.Vector2::x
IL_0198: ldloca.s 8 (ColossalFramework.Math.Randomizer)
IL_019A: ldc.i4 100000
IL_019F: call System.Int32
ColossalFramework.Math.Randomizer::Int32(System.UInt32 range)
IL_01A4: conv.r4
IL_01A5: ldc.r4 1E-05
IL_01AA: mul
IL_01AB: ldarg.1
IL_01AC: ldflda UnityEngine.Vector2 PropInfo::m_illuminationOffRange
IL_01B1: ldfld System.Single UnityEngine.Vector2::y
IL_01B6: ldarg.1
IL_01B7: ldflda UnityEngine.Vector2 PropInfo::m_illuminationOffRange
IL_01BC: ldfld System.Single UnityEngine.Vector2::x
IL_01C1: sub
IL_01C2: mul
IL_01C3: add
IL_01C4: stloc.s 6 (System.Single)
IL_01C6: ldarga.s 7
IL_01C8: ldloc.s 6 (System.Single)
IL_01CA: ldc.r4 0.01
IL_01CF: add
IL_01D0: ldloc.s 6 (System.Single)
IL_01D2: ldc.r4 0.01
IL_01D7: sub
IL_01D8: ldloc.s 7 (LightSystem)
IL_01DA: callvirt System.Single LightSystem::get_DayLightIntensity()
IL_01DF: call static System.Single MathUtils::SmoothStep(System.Single edge0,
System.Single edge1, System.Single x)
IL_01E4: stfld System.Single UnityEngine.Vector4::z
IL_01E9: ldarg.1
IL_01EA: ldfld BlinkType PropInfo::m_illuminationBlinkType
IL_01EF: brfalse => Label14
IL_01F4: ldarg.1
IL_01F5: ldfld BlinkType PropInfo::m_illuminationBlinkType
IL_01FA: call static UnityEngine.Vector4
LightEffect::GetBlinkVector(BlinkType type)
IL_01FF: stloc.s 9 (UnityEngine.Vector4)
IL_0201: ldloc.s 6 (System.Single)
IL_0203: ldc.r4 3.71
IL_0208: mul
IL_0209: call static SimulationManager
ColossalFramework.Singleton`1<SimulationManager>::get_instance()
IL_020E: ldfld System.Single SimulationManager::m_simulationTimer
IL_0213: ldloca.s 9 (UnityEngine.Vector4)
IL_0215: ldfld System.Single UnityEngine.Vector4::w
IL_021A: div
IL_021B: add
IL_021C: stloc.s 10 (System.Single)
IL_021E: ldloc.s 10 (System.Single)
IL_0220: ldloc.s 10 (System.Single)
IL_0222: call static System.Single UnityEngine.Mathf::Floor(System.Single f)
IL_0227: sub
IL_0228: ldloca.s 9 (UnityEngine.Vector4)
IL_022A: ldfld System.Single UnityEngine.Vector4::w
IL_022F: mul
IL_0230: stloc.s 10 (System.Single)
IL_0232: ldloca.s 9 (UnityEngine.Vector4)
IL_0234: ldfld System.Single UnityEngine.Vector4::x
IL_0239: ldloca.s 9 (UnityEngine.Vector4)
IL_023B: ldfld System.Single UnityEngine.Vector4::y
IL_0240: ldloc.s 10 (System.Single)
IL_0242: call static System.Single MathUtils::SmoothStep(System.Single edge0,
System.Single edge1, System.Single x)
IL_0247: stloc.s 11 (System.Single)
IL_0249: ldloca.s 9 (UnityEngine.Vector4)
IL_024B: ldfld System.Single UnityEngine.Vector4::w
IL_0250: ldloca.s 9 (UnityEngine.Vector4)
IL_0252: ldfld System.Single UnityEngine.Vector4::z
IL_0257: ldloc.s 10 (System.Single)
IL_0259: call static System.Single MathUtils::SmoothStep(System.Single edge0,
System.Single edge1, System.Single x)
IL_025E: stloc.s 12 (System.Single)
IL_0260: ldarga.s 7
IL_0262: dup
IL_0263: ldfld System.Single UnityEngine.Vector4::z
IL_0268: ldc.r4 1
IL_026D: ldloc.s 11 (System.Single)
IL_026F: ldloc.s 12 (System.Single)
IL_0271: mul
IL_0272: sub
IL_0273: mul
IL_0274: stfld System.Single UnityEngine.Vector4::z
IL_0279: Label14
IL_0279: br => Label15
IL_027E: Label13
IL_027E: ldarga.s 7
IL_0280: ldc.r4 1
IL_0285: stfld System.Single UnityEngine.Vector4::z
IL_028A: Label8
IL_028A: Label11
IL_028A: Label15
IL_028A: ldarg.0
IL_028B: brfalse => Label16
IL_0290: ldarg.0
IL_0291: ldarg.3
IL_0292: ldarg.1
IL_0293: ldfld System.Single PropInfo::m_lodRenderDistance
IL_0298: callvirt System.Boolean
CameraInfo::CheckRenderDistance(UnityEngine.Vector3 point, System.Single
maxDistance)
IL_029D: brfalse => Label17
IL_02A2: Label16
IL_02A2: ldloca.s 13 (UnityEngine.Matrix4x4)
IL_02A4: initobj UnityEngine.Matrix4x4
IL_02AA: ldloca.s 13 (UnityEngine.Matrix4x4)
IL_02AC: ldarg.3
IL_02AD: ldarg.s 5
IL_02AF: ldc.r4 57.29578
IL_02B4: mul
IL_02B5: call static UnityEngine.Vector3 UnityEngine.Vector3::get_down()
IL_02BA: call static UnityEngine.Quaternion
UnityEngine.Quaternion::AngleAxis(System.Single angle, UnityEngine.Vector3 axis)
IL_02BF: ldarg.s 4
IL_02C1: ldarg.s 4
IL_02C3: ldarg.s 4
IL_02C5: newobj System.Void UnityEngine.Vector3::.ctor(System.Single x,
System.Single y, System.Single z)
IL_02CA: call System.Void UnityEngine.Matrix4x4::SetTRS(UnityEngine.Vector3
pos, UnityEngine.Quaternion q, UnityEngine.Vector3 s)
IL_02CF: call static PropManager
ColossalFramework.Singleton`1<PropManager>::get_instance()
IL_02D4: stloc.s 14 (PropManager)
IL_02D6: ldloc.s 14 (PropManager)
IL_02D8: ldfld UnityEngine.MaterialPropertyBlock PropManager::m_materialBlock
IL_02DD: stloc.s 15 (UnityEngine.MaterialPropertyBlock)
IL_02DF: ldloc.s 15 (UnityEngine.MaterialPropertyBlock)
IL_02E1: callvirt System.Void UnityEngine.MaterialPropertyBlock::Clear()
IL_02E6: ldloc.s 15 (UnityEngine.MaterialPropertyBlock)
IL_02E8: ldloc.s 14 (PropManager)
IL_02EA: ldfld System.Int32 PropManager::ID_Color
IL_02EF: ldarg.s 6
IL_02F1: callvirt System.Void
UnityEngine.MaterialPropertyBlock::SetColor(System.Int32 nameID, UnityEngine.Color
value)
IL_02F6: ldloc.s 15 (UnityEngine.MaterialPropertyBlock)
IL_02F8: ldloc.s 14 (PropManager)
IL_02FA: ldfld System.Int32 PropManager::ID_ObjectIndex
IL_02FF: ldarg.s 7
IL_0301: callvirt System.Void
UnityEngine.MaterialPropertyBlock::SetVector(System.Int32 nameID,
UnityEngine.Vector4 value)
IL_0306: ldarg.1
IL_0307: ldfld UnityEngine.Vector4[] PropInfo::m_rollLocation
IL_030C: brfalse => Label18
IL_0311: ldarg.1
IL_0312: ldfld UnityEngine.Material PropInfo::m_material
IL_0317: ldloc.s 14 (PropManager)
IL_0319: ldfld System.Int32 PropManager::ID_RollLocation
IL_031E: ldarg.1
IL_031F: ldfld UnityEngine.Vector4[] PropInfo::m_rollLocation
IL_0324: callvirt System.Void UnityEngine.Material::SetVectorArray(System.Int32
nameID, UnityEngine.Vector4[] values)
IL_0329: ldarg.1
IL_032A: ldfld UnityEngine.Material PropInfo::m_material
IL_032F: ldloc.s 14 (PropManager)
IL_0331: ldfld System.Int32 PropManager::ID_RollParams
IL_0336: ldarg.1
IL_0337: ldfld UnityEngine.Vector4[] PropInfo::m_rollParams
IL_033C: callvirt System.Void UnityEngine.Material::SetVectorArray(System.Int32
nameID, UnityEngine.Vector4[] values)
IL_0341: Label18
IL_0341: ldloc.s 14 (PropManager)
IL_0343: ldflda DrawCallData SimulationManagerBase`2<PropManager,
PropProperties>::m_drawCallData
IL_0348: dup
IL_0349: ldfld System.Int32 DrawCallData::m_defaultCalls
IL_034E: ldc.i4.1
IL_034F: add
IL_0350: stfld System.Int32 DrawCallData::m_defaultCalls
IL_0355: ldarg.1
IL_0356: ldfld UnityEngine.Mesh PropInfo::m_mesh
IL_035B: ldloc.s 13 (UnityEngine.Matrix4x4)
IL_035D: ldarg.1
IL_035E: ldfld UnityEngine.Material PropInfo::m_material
IL_0363: ldarg.1
IL_0364: ldfld System.Int32 PrefabInfo::m_prefabDataLayer
IL_0369: ldnull
IL_036A: ldc.i4.0
IL_036B: ldloc.s 15 (UnityEngine.MaterialPropertyBlock)
IL_036D: call static System.Void
UnityEngine.Graphics::DrawMesh(UnityEngine.Mesh mesh, UnityEngine.Matrix4x4 matrix,
UnityEngine.Material material, System.Int32 layer, UnityEngine.Camera camera,
System.Int32 submeshIndex, UnityEngine.MaterialPropertyBlock properties)
IL_0372: br => Label19
IL_0377: Label17
IL_0377: ldarg.1
IL_0378: ldfld UnityEngine.Material PropInfo::m_lodMaterialCombined
IL_037D: ldnull
IL_037E: call static System.Boolean
UnityEngine.Object::op_Equality(UnityEngine.Object x, UnityEngine.Object y)
IL_0383: brfalse => Label20
IL_0388: ldloca.s 16 (UnityEngine.Matrix4x4)
IL_038A: initobj UnityEngine.Matrix4x4
IL_0390: ldloca.s 16 (UnityEngine.Matrix4x4)
IL_0392: ldarg.3
IL_0393: ldarg.s 5
IL_0395: ldc.r4 57.29578
IL_039A: mul
IL_039B: call static UnityEngine.Vector3 UnityEngine.Vector3::get_down()
IL_03A0: call static UnityEngine.Quaternion
UnityEngine.Quaternion::AngleAxis(System.Single angle, UnityEngine.Vector3 axis)
IL_03A5: ldarg.s 4
IL_03A7: ldarg.s 4
IL_03A9: ldarg.s 4
IL_03AB: newobj System.Void UnityEngine.Vector3::.ctor(System.Single x,
System.Single y, System.Single z)
IL_03B0: call System.Void UnityEngine.Matrix4x4::SetTRS(UnityEngine.Vector3
pos, UnityEngine.Quaternion q, UnityEngine.Vector3 s)
IL_03B5: call static PropManager
ColossalFramework.Singleton`1<PropManager>::get_instance()
IL_03BA: stloc.s 17 (PropManager)
IL_03BC: ldloc.s 17 (PropManager)
IL_03BE: ldfld UnityEngine.MaterialPropertyBlock PropManager::m_materialBlock
IL_03C3: stloc.s 18 (UnityEngine.MaterialPropertyBlock)
IL_03C5: ldloc.s 18 (UnityEngine.MaterialPropertyBlock)
IL_03C7: callvirt System.Void UnityEngine.MaterialPropertyBlock::Clear()
IL_03CC: ldloc.s 18 (UnityEngine.MaterialPropertyBlock)
IL_03CE: ldloc.s 17 (PropManager)
IL_03D0: ldfld System.Int32 PropManager::ID_Color
IL_03D5: ldarg.s 6
IL_03D7: callvirt System.Void
UnityEngine.MaterialPropertyBlock::SetColor(System.Int32 nameID, UnityEngine.Color
value)
IL_03DC: ldloc.s 18 (UnityEngine.MaterialPropertyBlock)
IL_03DE: ldloc.s 17 (PropManager)
IL_03E0: ldfld System.Int32 PropManager::ID_ObjectIndex
IL_03E5: ldarg.s 7
IL_03E7: callvirt System.Void
UnityEngine.MaterialPropertyBlock::SetVector(System.Int32 nameID,
UnityEngine.Vector4 value)
IL_03EC: ldarg.1
IL_03ED: ldfld UnityEngine.Vector4[] PropInfo::m_rollLocation
IL_03F2: brfalse => Label21
IL_03F7: ldarg.1
IL_03F8: ldfld UnityEngine.Material PropInfo::m_material
IL_03FD: ldloc.s 17 (PropManager)
IL_03FF: ldfld System.Int32 PropManager::ID_RollLocation
IL_0404: ldarg.1
IL_0405: ldfld UnityEngine.Vector4[] PropInfo::m_rollLocation
IL_040A: callvirt System.Void UnityEngine.Material::SetVectorArray(System.Int32
nameID, UnityEngine.Vector4[] values)
IL_040F: ldarg.1
IL_0410: ldfld UnityEngine.Material PropInfo::m_material
IL_0415: ldloc.s 17 (PropManager)
IL_0417: ldfld System.Int32 PropManager::ID_RollParams
IL_041C: ldarg.1
IL_041D: ldfld UnityEngine.Vector4[] PropInfo::m_rollParams
IL_0422: callvirt System.Void UnityEngine.Material::SetVectorArray(System.Int32
nameID, UnityEngine.Vector4[] values)
IL_0427: Label21
IL_0427: ldloc.s 17 (PropManager)
IL_0429: ldflda DrawCallData SimulationManagerBase`2<PropManager,
PropProperties>::m_drawCallData
IL_042E: dup
IL_042F: ldfld System.Int32 DrawCallData::m_defaultCalls
IL_0434: ldc.i4.1
IL_0435: add
IL_0436: stfld System.Int32 DrawCallData::m_defaultCalls
IL_043B: ldarg.1
IL_043C: ldfld UnityEngine.Mesh PropInfo::m_lodMesh
IL_0441: ldloc.s 16 (UnityEngine.Matrix4x4)
IL_0443: ldarg.1
IL_0444: ldfld UnityEngine.Material PropInfo::m_lodMaterial
IL_0449: ldarg.1
IL_044A: ldfld System.Int32 PrefabInfo::m_prefabDataLayer
IL_044F: ldnull
IL_0450: ldc.i4.0
IL_0451: ldloc.s 18 (UnityEngine.MaterialPropertyBlock)
IL_0453: call static System.Void
UnityEngine.Graphics::DrawMesh(UnityEngine.Mesh mesh, UnityEngine.Matrix4x4 matrix,
UnityEngine.Material material, System.Int32 layer, UnityEngine.Camera camera,
System.Int32 submeshIndex, UnityEngine.MaterialPropertyBlock properties)
IL_0458: br => Label22
IL_045D: Label20
IL_045D: ldarga.s 7
IL_045F: ldarg.s 4
IL_0461: stfld System.Single UnityEngine.Vector4::w
IL_0466: ldarg.1
IL_0467: ldfld UnityEngine.Vector4[] PropInfo::m_lodLocations
IL_046C: ldarg.1
IL_046D: ldfld System.Int32 PropInfo::m_lodCount
IL_0472: ldelema UnityEngine.Vector4
IL_0477: ldarga.s 3
IL_0479: ldfld System.Single UnityEngine.Vector3::x
IL_047E: ldarga.s 3
IL_0480: ldfld System.Single UnityEngine.Vector3::y
IL_0485: ldarga.s 3
IL_0487: ldfld System.Single UnityEngine.Vector3::z
IL_048C: ldarg.s 5
IL_048E: newobj System.Void UnityEngine.Vector4::.ctor(System.Single x,
System.Single y, System.Single z, System.Single w)
IL_0493: stobj UnityEngine.Vector4
IL_0498: ldarg.1
IL_0499: ldfld UnityEngine.Vector4[] PropInfo::m_lodObjectIndices
IL_049E: ldarg.1
IL_049F: ldfld System.Int32 PropInfo::m_lodCount
IL_04A4: ldelema UnityEngine.Vector4
IL_04A9: ldarg.s 7
IL_04AB: stobj UnityEngine.Vector4
IL_04B0: ldarg.1
IL_04B1: ldfld UnityEngine.Vector4[] PropInfo::m_lodColors
IL_04B6: ldarg.1
IL_04B7: ldfld System.Int32 PropInfo::m_lodCount
IL_04BC: ldelema UnityEngine.Vector4
IL_04C1: ldarga.s 6
IL_04C3: call UnityEngine.Color UnityEngine.Color::get_linear()
IL_04C8: call static UnityEngine.Vector4
UnityEngine.Color::op_Implicit(UnityEngine.Color c)
IL_04CD: stobj UnityEngine.Vector4
IL_04D2: ldarg.1
IL_04D3: ldarg.1
IL_04D4: ldfld UnityEngine.Vector3 PropInfo::m_lodMin
IL_04D9: ldarg.3
IL_04DA: call static UnityEngine.Vector3
UnityEngine.Vector3::Min(UnityEngine.Vector3 lhs, UnityEngine.Vector3 rhs)
IL_04DF: stfld UnityEngine.Vector3 PropInfo::m_lodMin
IL_04E4: ldarg.1
IL_04E5: ldarg.1
IL_04E6: ldfld UnityEngine.Vector3 PropInfo::m_lodMax
IL_04EB: ldarg.3
IL_04EC: call static UnityEngine.Vector3
UnityEngine.Vector3::Max(UnityEngine.Vector3 lhs, UnityEngine.Vector3 rhs)
IL_04F1: stfld UnityEngine.Vector3 PropInfo::m_lodMax
IL_04F6: ldarg.1
IL_04F7: dup
IL_04F8: ldfld System.Int32 PropInfo::m_lodCount
IL_04FD: ldc.i4.1
IL_04FE: add
IL_04FF: dup
IL_0500: stloc.s 19 (System.Int32)
IL_0502: stfld System.Int32 PropInfo::m_lodCount
IL_0507: ldloc.s 19 (System.Int32)
IL_0509: ldarg.1
IL_050A: ldfld UnityEngine.Vector4[] PropInfo::m_lodLocations
IL_050F: ldlen
IL_0510: conv.i4
IL_0511: bne.un => Label23
IL_0516: ldarg.0
IL_0517: ldarg.1
IL_0518: call static System.Void PropInstance::RenderLod(CameraInfo
cameraInfo, PropInfo info)
IL_051D: // end original
IL_051D: Label0
IL_051D: Label6
IL_051D: Label7
IL_051D: Label19
IL_051D: Label22
IL_051D: Label23
IL_051D: ret
DONE

### Patch: virtual System.Void LightEffect::PopulateGroupData(System.Int32 layer,


InstanceID id, UnityEngine.Vector3 pos, UnityEngine.Vector3 dir, 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
LightEffect::LightEffect.PopulateGroupData_Patch1(LightEffect this, System.Int32
layer, InstanceID id, UnityEngine.Vector3 pos, UnityEngine.Vector3 dir,
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.Boolean
IL_0000: Local var 1: UnityEngine.Vector3
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.Quaternion
IL_0000: Local var 7: UnityEngine.Vector4
IL_0000: Local var 8: UnityEngine.Vector2
IL_0000: Local var 9: ColossalFramework.Math.Randomizer
IL_0000: Local var 10: UnityEngine.Vector2
IL_0000: Local var 11: UnityEngine.Vector2
IL_0000: Local var 12: UnityEngine.Vector2
IL_0000: Local var 13: System.UInt16
IL_0000: Local var 14: UnityEngine.Vector3
IL_0000: Local var 15: UnityEngine.Color
IL_0000: Local var 16: UnityEngine.Color
IL_0000: Local var 17: System.Single
IL_0000: Local var 18: System.Single
IL_0000: Local var 19: System.Int32
IL_0000: Local var 20: System.Boolean
IL_0000: ldc.i4 0
IL_0005: stloc 20 (System.Boolean)
IL_0009: ldc.i4.1
IL_000A: stloc 20 (System.Boolean)
IL_000E: ldloc 20 (System.Boolean)
IL_0012: brfalse => Label1
IL_0017: ldarg 2
IL_001B: call static System.Boolean
ElectricRoads.Overrides.ElectricRoadsOverrides::CheckElectrityNetForLight(InstanceI
D id)
IL_0020: stloc 20 (System.Boolean)
IL_0024: Label1
IL_0024: nop
IL_0025: ldloc 20 (System.Boolean)
IL_0029: brfalse => Label0
IL_002E: // start original
IL_002E: ldarg.1
IL_002F: ldarg.0
IL_0030: ldfld System.Int32 LightEffect::m_groupLayer
IL_0035: beq => Label2
IL_003A: ldarg.1
IL_003B: ldarg.0
IL_003C: ldfld System.Int32 LightEffect::m_groupLayerFloating
IL_0041: bne.un => Label3
IL_0046: Label2
IL_0046: ldarg.1
IL_0047: ldarg.0
IL_0048: ldfld System.Int32 LightEffect::m_groupLayerFloating
IL_004D: ceq
IL_004F: stloc.0
IL_0050: ldloca.s 1 (UnityEngine.Vector3)
IL_0052: ldarg.0
IL_0053: ldfld System.Single LightEffect::m_lightRange
IL_0058: ldarg.0
IL_0059: ldfld System.Single LightEffect::m_lightRange
IL_005E: ldarg.0
IL_005F: ldfld System.Single LightEffect::m_lightRange
IL_0064: call System.Void UnityEngine.Vector3::.ctor(System.Single x,
System.Single y, System.Single z)
IL_0069: ldarg.3
IL_006A: ldloc.1
IL_006B: call static UnityEngine.Vector3
UnityEngine.Vector3::op_Subtraction(UnityEngine.Vector3 a, UnityEngine.Vector3 b)
IL_0070: stloc.2
IL_0071: ldarg.3
IL_0072: ldloc.1
IL_0073: call static UnityEngine.Vector3
UnityEngine.Vector3::op_Addition(UnityEngine.Vector3 a, UnityEngine.Vector3 b)
IL_0078: stloc.3
IL_0079: ldarg.s 9
IL_007B: ldarg.s 9
IL_007D: ldobj UnityEngine.Vector3
IL_0082: ldloc.2
IL_0083: call static UnityEngine.Vector3
UnityEngine.Vector3::Min(UnityEngine.Vector3 lhs, UnityEngine.Vector3 rhs)
IL_0088: stobj UnityEngine.Vector3
IL_008D: ldarg.s 10
IL_008F: ldarg.s 10
IL_0091: ldobj UnityEngine.Vector3
IL_0096: ldloc.3
IL_0097: call static UnityEngine.Vector3
UnityEngine.Vector3::Max(UnityEngine.Vector3 lhs, UnityEngine.Vector3 rhs)
IL_009C: stobj UnityEngine.Vector3
IL_00A1: ldarg.3
IL_00A2: ldarg.s 7
IL_00A4: call static UnityEngine.Vector3
UnityEngine.Vector3::op_Subtraction(UnityEngine.Vector3 a, UnityEngine.Vector3 b)
IL_00A9: stloc.s 4 (UnityEngine.Vector3)
IL_00AB: ldarg.s 11
IL_00AD: ldarg.s 11
IL_00AF: ldind.r4
IL_00B0: ldc.r4 30000
IL_00B5: call static System.Single UnityEngine.Mathf::Max(System.Single a,
System.Single b)
IL_00BA: stind.r4
IL_00BB: ldarg.0
IL_00BC: ldfld UnityEngine.LightType LightEffect::m_lightType
IL_00C1: brtrue => Label4
IL_00C6: ldarg.s 4
IL_00C8: call static UnityEngine.Quaternion
UnityEngine.Quaternion::LookRotation(UnityEngine.Vector3 forward)
IL_00CD: stloc.s 6 (UnityEngine.Quaternion)
IL_00CF: ldloc.s 6 (UnityEngine.Quaternion)
IL_00D1: ldarg.0
IL_00D2: ldfld UnityEngine.Quaternion LightEffect::m_lightRotation
IL_00D7: call static UnityEngine.Vector3 UnityEngine.Vector3::get_forward()
IL_00DC: call static UnityEngine.Vector3
UnityEngine.Quaternion::op_Multiply(UnityEngine.Quaternion rotation,
UnityEngine.Vector3 point)
IL_00E1: call static UnityEngine.Vector3
UnityEngine.Quaternion::op_Multiply(UnityEngine.Quaternion rotation,
UnityEngine.Vector3 point)
IL_00E6: stloc.s 5 (UnityEngine.Vector3)
IL_00E8: br => Label5
IL_00ED: Label4
IL_00ED: call static UnityEngine.Vector3 UnityEngine.Vector3::get_forward()
IL_00F2: stloc.s 5 (UnityEngine.Vector3)
IL_00F4: Label5
IL_00F4: ldloca.s 7 (UnityEngine.Vector4)
IL_00F6: ldloca.s 5 (UnityEngine.Vector3)
IL_00F8: ldfld System.Single UnityEngine.Vector3::x
IL_00FD: ldloca.s 5 (UnityEngine.Vector3)
IL_00FF: ldfld System.Single UnityEngine.Vector3::y
IL_0104: ldloca.s 5 (UnityEngine.Vector3)
IL_0106: ldfld System.Single UnityEngine.Vector3::z
IL_010B: ldc.r4 100000
IL_0110: call System.Void UnityEngine.Vector4::.ctor(System.Single x,
System.Single y, System.Single z, System.Single w)
IL_0115: ldarg.0
IL_0116: ldfld UnityEngine.LightType LightEffect::m_lightType
IL_011B: brtrue => Label6
IL_0120: ldloca.s 7 (UnityEngine.Vector4)
IL_0122: ldc.r4 0.01745329
IL_0127: ldarg.0
IL_0128: ldfld System.Single LightEffect::m_lightSpotAngle
IL_012D: mul
IL_012E: ldc.r4 0.5
IL_0133: mul
IL_0134: call static System.Single UnityEngine.Mathf::Cos(System.Single f)
IL_0139: neg
IL_013A: stfld System.Single UnityEngine.Vector4::w
IL_013F: Label6
IL_013F: ldloca.s 8 (UnityEngine.Vector2)
IL_0141: ldc.r4 1
IL_0146: ldarg.0
IL_0147: ldfld System.Single LightEffect::m_lightRange
IL_014C: ldarg.0
IL_014D: ldfld System.Single LightEffect::m_lightRange
IL_0152: mul
IL_0153: div
IL_0154: ldarg.0
IL_0155: ldfld System.Single LightEffect::m_lightIntensity
IL_015A: call System.Void UnityEngine.Vector2::.ctor(System.Single x,
System.Single y)
IL_015F: ldloca.s 9 (ColossalFramework.Math.Randomizer)
IL_0161: ldarga.s 2
IL_0163: call System.UInt32 InstanceID::get_Index()
IL_0168: call System.Void
ColossalFramework.Math.Randomizer::.ctor(System.UInt32 _seed)
IL_016D: ldloca.s 10 (UnityEngine.Vector2)
IL_016F: ldarg.0
IL_0170: ldflda UnityEngine.Vector2 LightEffect::m_offRange
IL_0175: ldfld System.Single UnityEngine.Vector2::x
IL_017A: ldloca.s 9 (ColossalFramework.Math.Randomizer)
IL_017C: ldc.i4 100000
IL_0181: call System.Int32
ColossalFramework.Math.Randomizer::Int32(System.UInt32 range)
IL_0186: conv.r4
IL_0187: ldc.r4 1E-05
IL_018C: mul
IL_018D: ldarg.0
IL_018E: ldflda UnityEngine.Vector2 LightEffect::m_offRange
IL_0193: ldfld System.Single UnityEngine.Vector2::y
IL_0198: ldarg.0
IL_0199: ldflda UnityEngine.Vector2 LightEffect::m_offRange
IL_019E: ldfld System.Single UnityEngine.Vector2::x
IL_01A3: sub
IL_01A4: mul
IL_01A5: add
IL_01A6: stfld System.Single UnityEngine.Vector2::x
IL_01AB: ldloca.s 10 (UnityEngine.Vector2)
IL_01AD: ldarg.0
IL_01AE: ldfld BlinkType LightEffect::m_blinkType
IL_01B3: conv.r4
IL_01B4: stfld System.Single UnityEngine.Vector2::y
IL_01B9: ldarg.2
IL_01BA: call static System.UInt16 EffectInfo::GetBuilding(InstanceID id)
IL_01BF: stloc.s 13 (System.UInt16)
IL_01C1: ldloc.s 13 (System.UInt16)
IL_01C3: brfalse => Label7
IL_01C8: ldloc.s 13 (System.UInt16)
IL_01CA: call static UnityEngine.Vector4
RenderManager::GetColorLocation(System.UInt32 instanceHolder)
IL_01CF: call static UnityEngine.Vector2
UnityEngine.Vector4::op_Implicit(UnityEngine.Vector4 v)
IL_01D4: stloc.s 11 (UnityEngine.Vector2)
IL_01D6: ldloc.0
IL_01D7: brfalse => Label8
IL_01DC: call static BuildingManager
ColossalFramework.Singleton`1<BuildingManager>::get_instance()
IL_01E1: ldfld Array16`1<Building> BuildingManager::m_buildings
IL_01E6: ldfld Building[] Array16`1<Building>::m_buffer
IL_01EB: ldloc.s 13 (System.UInt16)
IL_01ED: ldelema Building
IL_01F2: call UnityEngine.Vector3 Building::CalculateMeshPosition()
IL_01F7: stloc.s 14 (UnityEngine.Vector3)
IL_01F9: ldloc.s 14 (UnityEngine.Vector3)
IL_01FB: call static UnityEngine.Vector2
ColossalFramework.Math.VectorUtils::XZ(UnityEngine.Vector3 v)
IL_0200: stloc.s 12 (UnityEngine.Vector2)
IL_0202: ldarga.s 3
IL_0204: dup
IL_0205: ldfld System.Single UnityEngine.Vector3::y
IL_020A: ldloca.s 14 (UnityEngine.Vector3)
IL_020C: ldfld System.Single UnityEngine.Vector3::y
IL_0211: sub
IL_0212: stfld System.Single UnityEngine.Vector3::y
IL_0217: ldloca.s 4 (UnityEngine.Vector3)
IL_0219: dup
IL_021A: ldfld System.Single UnityEngine.Vector3::y
IL_021F: ldloca.s 14 (UnityEngine.Vector3)
IL_0221: ldfld System.Single UnityEngine.Vector3::y
IL_0226: sub
IL_0227: stfld System.Single UnityEngine.Vector3::y
IL_022C: br => Label9
IL_0231: Label8
IL_0231: call static UnityEngine.Vector2 UnityEngine.Vector2::get_zero()
IL_0236: stloc.s 12 (UnityEngine.Vector2)
IL_0238: Label9
IL_0238: br => Label10
IL_023D: Label7
IL_023D: ldsfld UnityEngine.Vector4 RenderManager::DefaultColorLocation
IL_0242: call static UnityEngine.Vector2
UnityEngine.Vector4::op_Implicit(UnityEngine.Vector4 v)
IL_0247: stloc.s 11 (UnityEngine.Vector2)
IL_0249: call static UnityEngine.Vector2 UnityEngine.Vector2::get_zero()
IL_024E: stloc.s 12 (UnityEngine.Vector2)
IL_0250: Label10
IL_0250: ldarg.0
IL_0251: ldfld UnityEngine.Color LightEffect::m_lightColor
IL_0256: stloc.s 15 (UnityEngine.Color)
IL_0258: ldarg.0
IL_0259: ldfld UnityEngine.Color[] LightEffect::m_variationColors
IL_025E: brfalse => Label11
IL_0263: ldarg.0
IL_0264: ldfld UnityEngine.Color[] LightEffect::m_variationColors
IL_0269: ldlen
IL_026A: conv.i4
IL_026B: brfalse => Label12
IL_0270: ldarg.0
IL_0271: ldfld UnityEngine.Color[] LightEffect::m_variationColors
IL_0276: ldloca.s 9 (ColossalFramework.Math.Randomizer)
IL_0278: ldarg.0
IL_0279: ldfld UnityEngine.Color[] LightEffect::m_variationColors
IL_027E: ldlen
IL_027F: conv.i4
IL_0280: call System.Int32
ColossalFramework.Math.Randomizer::Int32(System.UInt32 range)
IL_0285: ldelema UnityEngine.Color
IL_028A: ldobj UnityEngine.Color
IL_028F: stloc.s 16 (UnityEngine.Color)
IL_0291: ldloc.s 15 (UnityEngine.Color)
IL_0293: ldloc.s 16 (UnityEngine.Color)
IL_0295: ldloca.s 9 (ColossalFramework.Math.Randomizer)
IL_0297: ldc.i4 1000
IL_029C: call System.Int32
ColossalFramework.Math.Randomizer::Int32(System.UInt32 range)
IL_02A1: conv.r4
IL_02A2: ldc.r4 0.001
IL_02A7: mul
IL_02A8: call static UnityEngine.Color
UnityEngine.Color::Lerp(UnityEngine.Color a, UnityEngine.Color b, System.Single t)
IL_02AD: stloc.s 15 (UnityEngine.Color)
IL_02AF: Label11
IL_02AF: Label12
IL_02AF: ldloca.s 15 (UnityEngine.Color)
IL_02B1: call UnityEngine.Color UnityEngine.Color::get_linear()
IL_02B6: stloc.s 15 (UnityEngine.Color)
IL_02B8: ldloca.s 15 (UnityEngine.Color)
IL_02BA: ldarg.0
IL_02BB: ldfld UnityEngine.LightType LightEffect::m_lightType
IL_02C0: brtrue => Label13
IL_02C5: ldarg.0
IL_02C6: ldfld System.Single LightEffect::m_spotLeaking
IL_02CB: br => Label14
IL_02D0: Label13
IL_02D0: ldc.r4 0
IL_02D5: Label14
IL_02D5: stfld System.Single UnityEngine.Color::a
IL_02DA: ldarg.0
IL_02DB: ldfld System.Single LightEffect::m_lightRange
IL_02E0: ldc.r4 0.5235988
IL_02E5: call static System.Single UnityEngine.Mathf::Cos(System.Single f)
IL_02EA: div
IL_02EB: stloc.s 17 (System.Single)
IL_02ED: ldloc.s 17 (System.Single)
IL_02EF: ldc.r4 0.5
IL_02F4: mul
IL_02F5: stloc.s 18 (System.Single)
IL_02F7: ldarg.s 8
IL_02F9: ldfld UnityEngine.Vector3[] MeshData::m_vertices
IL_02FE: ldarg.s 5
IL_0300: ldind.i4
IL_0301: ldelema UnityEngine.Vector3
IL_0306: ldloca.s 4 (UnityEngine.Vector3)
IL_0308: ldfld System.Single UnityEngine.Vector3::x
IL_030D: ldloc.s 18 (System.Single)
IL_030F: sub
IL_0310: ldloca.s 4 (UnityEngine.Vector3)
IL_0312: ldfld System.Single UnityEngine.Vector3::y
IL_0317: ldarg.0
IL_0318: ldfld System.Single LightEffect::m_lightRange
IL_031D: add
IL_031E: ldloca.s 4 (UnityEngine.Vector3)
IL_0320: ldfld System.Single UnityEngine.Vector3::z
IL_0325: ldarg.0
IL_0326: ldfld System.Single LightEffect::m_lightRange
IL_032B: add
IL_032C: newobj System.Void UnityEngine.Vector3::.ctor(System.Single x,
System.Single y, System.Single z)
IL_0331: stobj UnityEngine.Vector3
IL_0336: ldarg.s 8
IL_0338: ldfld UnityEngine.Vector3[] MeshData::m_normals
IL_033D: ldarg.s 5
IL_033F: ldind.i4
IL_0340: ldelema UnityEngine.Vector3
IL_0345: ldarg.3
IL_0346: stobj UnityEngine.Vector3
IL_034B: ldarg.s 8
IL_034D: ldfld UnityEngine.Vector4[] MeshData::m_tangents
IL_0352: ldarg.s 5
IL_0354: ldind.i4
IL_0355: ldelema UnityEngine.Vector4
IL_035A: ldloc.s 7 (UnityEngine.Vector4)
IL_035C: stobj UnityEngine.Vector4
IL_0361: ldarg.s 8
IL_0363: ldfld UnityEngine.Vector2[] MeshData::m_uvs
IL_0368: ldarg.s 5
IL_036A: ldind.i4
IL_036B: ldelema UnityEngine.Vector2
IL_0370: ldloc.s 8 (UnityEngine.Vector2)
IL_0372: stobj UnityEngine.Vector2
IL_0377: ldarg.s 8
IL_0379: ldfld UnityEngine.Vector2[] MeshData::m_uvs2
IL_037E: ldarg.s 5
IL_0380: ldind.i4
IL_0381: ldelema UnityEngine.Vector2
IL_0386: ldloc.s 10 (UnityEngine.Vector2)
IL_0388: stobj UnityEngine.Vector2
IL_038D: ldarg.s 8
IL_038F: ldfld UnityEngine.Vector2[] MeshData::m_uvs3
IL_0394: ldarg.s 5
IL_0396: ldind.i4
IL_0397: ldelema UnityEngine.Vector2
IL_039C: ldloc.s 11 (UnityEngine.Vector2)
IL_039E: stobj UnityEngine.Vector2
IL_03A3: ldloc.0
IL_03A4: brfalse => Label15
IL_03A9: ldarg.s 8
IL_03AB: ldfld UnityEngine.Vector2[] MeshData::m_uvs4
IL_03B0: ldarg.s 5
IL_03B2: ldind.i4
IL_03B3: ldelema UnityEngine.Vector2
IL_03B8: ldloc.s 12 (UnityEngine.Vector2)
IL_03BA: stobj UnityEngine.Vector2
IL_03BF: Label15
IL_03BF: ldarg.s 8
IL_03C1: ldfld UnityEngine.Color32[] MeshData::m_colors
IL_03C6: ldarg.s 5
IL_03C8: ldind.i4
IL_03C9: ldelema UnityEngine.Color32
IL_03CE: ldloc.s 15 (UnityEngine.Color)
IL_03D0: call static UnityEngine.Color32
UnityEngine.Color32::op_Implicit(UnityEngine.Color c)
IL_03D5: stobj UnityEngine.Color32
IL_03DA: ldarg.s 5
IL_03DC: ldarg.s 5
IL_03DE: ldind.i4
IL_03DF: ldc.i4.1
IL_03E0: add
IL_03E1: stind.i4
IL_03E2: ldarg.s 8
IL_03E4: ldfld UnityEngine.Vector3[] MeshData::m_vertices
IL_03E9: ldarg.s 5
IL_03EB: ldind.i4
IL_03EC: ldelema UnityEngine.Vector3
IL_03F1: ldloca.s 4 (UnityEngine.Vector3)
IL_03F3: ldfld System.Single UnityEngine.Vector3::x
IL_03F8: ldloc.s 18 (System.Single)
IL_03FA: add
IL_03FB: ldloca.s 4 (UnityEngine.Vector3)
IL_03FD: ldfld System.Single UnityEngine.Vector3::y
IL_0402: ldarg.0
IL_0403: ldfld System.Single LightEffect::m_lightRange
IL_0408: add
IL_0409: ldloca.s 4 (UnityEngine.Vector3)
IL_040B: ldfld System.Single UnityEngine.Vector3::z
IL_0410: ldarg.0
IL_0411: ldfld System.Single LightEffect::m_lightRange
IL_0416: add
IL_0417: newobj System.Void UnityEngine.Vector3::.ctor(System.Single x,
System.Single y, System.Single z)
IL_041C: stobj UnityEngine.Vector3
IL_0421: ldarg.s 8
IL_0423: ldfld UnityEngine.Vector3[] MeshData::m_normals
IL_0428: ldarg.s 5
IL_042A: ldind.i4
IL_042B: ldelema UnityEngine.Vector3
IL_0430: ldarg.3
IL_0431: stobj UnityEngine.Vector3
IL_0436: ldarg.s 8
IL_0438: ldfld UnityEngine.Vector4[] MeshData::m_tangents
IL_043D: ldarg.s 5
IL_043F: ldind.i4
IL_0440: ldelema UnityEngine.Vector4
IL_0445: ldloc.s 7 (UnityEngine.Vector4)
IL_0447: stobj UnityEngine.Vector4
IL_044C: ldarg.s 8
IL_044E: ldfld UnityEngine.Vector2[] MeshData::m_uvs
IL_0453: ldarg.s 5
IL_0455: ldind.i4
IL_0456: ldelema UnityEngine.Vector2
IL_045B: ldloc.s 8 (UnityEngine.Vector2)
IL_045D: stobj UnityEngine.Vector2
IL_0462: ldarg.s 8
IL_0464: ldfld UnityEngine.Vector2[] MeshData::m_uvs2
IL_0469: ldarg.s 5
IL_046B: ldind.i4
IL_046C: ldelema UnityEngine.Vector2
IL_0471: ldloc.s 10 (UnityEngine.Vector2)
IL_0473: stobj UnityEngine.Vector2
IL_0478: ldarg.s 8
IL_047A: ldfld UnityEngine.Vector2[] MeshData::m_uvs3
IL_047F: ldarg.s 5
IL_0481: ldind.i4
IL_0482: ldelema UnityEngine.Vector2
IL_0487: ldloc.s 11 (UnityEngine.Vector2)
IL_0489: stobj UnityEngine.Vector2
IL_048E: ldloc.0
IL_048F: brfalse => Label16
IL_0494: ldarg.s 8
IL_0496: ldfld UnityEngine.Vector2[] MeshData::m_uvs4
IL_049B: ldarg.s 5
IL_049D: ldind.i4
IL_049E: ldelema UnityEngine.Vector2
IL_04A3: ldloc.s 12 (UnityEngine.Vector2)
IL_04A5: stobj UnityEngine.Vector2
IL_04AA: Label16
IL_04AA: ldarg.s 8
IL_04AC: ldfld UnityEngine.Color32[] MeshData::m_colors
IL_04B1: ldarg.s 5
IL_04B3: ldind.i4
IL_04B4: ldelema UnityEngine.Color32
IL_04B9: ldloc.s 15 (UnityEngine.Color)
IL_04BB: call static UnityEngine.Color32
UnityEngine.Color32::op_Implicit(UnityEngine.Color c)
IL_04C0: stobj UnityEngine.Color32
IL_04C5: ldarg.s 5
IL_04C7: ldarg.s 5
IL_04C9: ldind.i4
IL_04CA: ldc.i4.1
IL_04CB: add
IL_04CC: stind.i4
IL_04CD: ldarg.s 8
IL_04CF: ldfld UnityEngine.Vector3[] MeshData::m_vertices
IL_04D4: ldarg.s 5
IL_04D6: ldind.i4
IL_04D7: ldelema UnityEngine.Vector3
IL_04DC: ldloca.s 4 (UnityEngine.Vector3)
IL_04DE: ldfld System.Single UnityEngine.Vector3::x
IL_04E3: ldloc.s 17 (System.Single)
IL_04E5: add
IL_04E6: ldloca.s 4 (UnityEngine.Vector3)
IL_04E8: ldfld System.Single UnityEngine.Vector3::y
IL_04ED: ldloca.s 4 (UnityEngine.Vector3)
IL_04EF: ldfld System.Single UnityEngine.Vector3::z
IL_04F4: ldarg.0
IL_04F5: ldfld System.Single LightEffect::m_lightRange
IL_04FA: add
IL_04FB: newobj System.Void UnityEngine.Vector3::.ctor(System.Single x,
System.Single y, System.Single z)
IL_0500: stobj UnityEngine.Vector3
IL_0505: ldarg.s 8
IL_0507: ldfld UnityEngine.Vector3[] MeshData::m_normals
IL_050C: ldarg.s 5
IL_050E: ldind.i4
IL_050F: ldelema UnityEngine.Vector3
IL_0514: ldarg.3
IL_0515: stobj UnityEngine.Vector3
IL_051A: ldarg.s 8
IL_051C: ldfld UnityEngine.Vector4[] MeshData::m_tangents
IL_0521: ldarg.s 5
IL_0523: ldind.i4
IL_0524: ldelema UnityEngine.Vector4
IL_0529: ldloc.s 7 (UnityEngine.Vector4)
IL_052B: stobj UnityEngine.Vector4
IL_0530: ldarg.s 8
IL_0532: ldfld UnityEngine.Vector2[] MeshData::m_uvs
IL_0537: ldarg.s 5
IL_0539: ldind.i4
IL_053A: ldelema UnityEngine.Vector2
IL_053F: ldloc.s 8 (UnityEngine.Vector2)
IL_0541: stobj UnityEngine.Vector2
IL_0546: ldarg.s 8
IL_0548: ldfld UnityEngine.Vector2[] MeshData::m_uvs2
IL_054D: ldarg.s 5
IL_054F: ldind.i4
IL_0550: ldelema UnityEngine.Vector2
IL_0555: ldloc.s 10 (UnityEngine.Vector2)
IL_0557: stobj UnityEngine.Vector2
IL_055C: ldarg.s 8
IL_055E: ldfld UnityEngine.Vector2[] MeshData::m_uvs3
IL_0563: ldarg.s 5
IL_0565: ldind.i4
IL_0566: ldelema UnityEngine.Vector2
IL_056B: ldloc.s 11 (UnityEngine.Vector2)
IL_056D: stobj UnityEngine.Vector2
IL_0572: ldloc.0
IL_0573: brfalse => Label17
IL_0578: ldarg.s 8
IL_057A: ldfld UnityEngine.Vector2[] MeshData::m_uvs4
IL_057F: ldarg.s 5
IL_0581: ldind.i4
IL_0582: ldelema UnityEngine.Vector2
IL_0587: ldloc.s 12 (UnityEngine.Vector2)
IL_0589: stobj UnityEngine.Vector2
IL_058E: Label17
IL_058E: ldarg.s 8
IL_0590: ldfld UnityEngine.Color32[] MeshData::m_colors
IL_0595: ldarg.s 5
IL_0597: ldind.i4
IL_0598: ldelema UnityEngine.Color32
IL_059D: ldloc.s 15 (UnityEngine.Color)
IL_059F: call static UnityEngine.Color32
UnityEngine.Color32::op_Implicit(UnityEngine.Color c)
IL_05A4: stobj UnityEngine.Color32
IL_05A9: ldarg.s 5
IL_05AB: ldarg.s 5
IL_05AD: ldind.i4
IL_05AE: ldc.i4.1
IL_05AF: add
IL_05B0: stind.i4
IL_05B1: ldarg.s 8
IL_05B3: ldfld UnityEngine.Vector3[] MeshData::m_vertices
IL_05B8: ldarg.s 5
IL_05BA: ldind.i4
IL_05BB: ldelema UnityEngine.Vector3
IL_05C0: ldloca.s 4 (UnityEngine.Vector3)
IL_05C2: ldfld System.Single UnityEngine.Vector3::x
IL_05C7: ldloc.s 18 (System.Single)
IL_05C9: add
IL_05CA: ldloca.s 4 (UnityEngine.Vector3)
IL_05CC: ldfld System.Single UnityEngine.Vector3::y
IL_05D1: ldarg.0
IL_05D2: ldfld System.Single LightEffect::m_lightRange
IL_05D7: sub
IL_05D8: ldloca.s 4 (UnityEngine.Vector3)
IL_05DA: ldfld System.Single UnityEngine.Vector3::z
IL_05DF: ldarg.0
IL_05E0: ldfld System.Single LightEffect::m_lightRange
IL_05E5: add
IL_05E6: newobj System.Void UnityEngine.Vector3::.ctor(System.Single x,
System.Single y, System.Single z)
IL_05EB: stobj UnityEngine.Vector3
IL_05F0: ldarg.s 8
IL_05F2: ldfld UnityEngine.Vector3[] MeshData::m_normals
IL_05F7: ldarg.s 5
IL_05F9: ldind.i4
IL_05FA: ldelema UnityEngine.Vector3
IL_05FF: ldarg.3
IL_0600: stobj UnityEngine.Vector3
IL_0605: ldarg.s 8
IL_0607: ldfld UnityEngine.Vector4[] MeshData::m_tangents
IL_060C: ldarg.s 5
IL_060E: ldind.i4
IL_060F: ldelema UnityEngine.Vector4
IL_0614: ldloc.s 7 (UnityEngine.Vector4)
IL_0616: stobj UnityEngine.Vector4
IL_061B: ldarg.s 8
IL_061D: ldfld UnityEngine.Vector2[] MeshData::m_uvs
IL_0622: ldarg.s 5
IL_0624: ldind.i4
IL_0625: ldelema UnityEngine.Vector2
IL_062A: ldloc.s 8 (UnityEngine.Vector2)
IL_062C: stobj UnityEngine.Vector2
IL_0631: ldarg.s 8
IL_0633: ldfld UnityEngine.Vector2[] MeshData::m_uvs2
IL_0638: ldarg.s 5
IL_063A: ldind.i4
IL_063B: ldelema UnityEngine.Vector2
IL_0640: ldloc.s 10 (UnityEngine.Vector2)
IL_0642: stobj UnityEngine.Vector2
IL_0647: ldarg.s 8
IL_0649: ldfld UnityEngine.Vector2[] MeshData::m_uvs3
IL_064E: ldarg.s 5
IL_0650: ldind.i4
IL_0651: ldelema UnityEngine.Vector2
IL_0656: ldloc.s 11 (UnityEngine.Vector2)
IL_0658: stobj UnityEngine.Vector2
IL_065D: ldloc.0
IL_065E: brfalse => Label18
IL_0663: ldarg.s 8
IL_0665: ldfld UnityEngine.Vector2[] MeshData::m_uvs4
IL_066A: ldarg.s 5
IL_066C: ldind.i4
IL_066D: ldelema UnityEngine.Vector2
IL_0672: ldloc.s 12 (UnityEngine.Vector2)
IL_0674: stobj UnityEngine.Vector2
IL_0679: Label18
IL_0679: ldarg.s 8
IL_067B: ldfld UnityEngine.Color32[] MeshData::m_colors
IL_0680: ldarg.s 5
IL_0682: ldind.i4
IL_0683: ldelema UnityEngine.Color32
IL_0688: ldloc.s 15 (UnityEngine.Color)
IL_068A: call static UnityEngine.Color32
UnityEngine.Color32::op_Implicit(UnityEngine.Color c)
IL_068F: stobj UnityEngine.Color32
IL_0694: ldarg.s 5
IL_0696: ldarg.s 5
IL_0698: ldind.i4
IL_0699: ldc.i4.1
IL_069A: add
IL_069B: stind.i4
IL_069C: ldarg.s 8
IL_069E: ldfld UnityEngine.Vector3[] MeshData::m_vertices
IL_06A3: ldarg.s 5
IL_06A5: ldind.i4
IL_06A6: ldelema UnityEngine.Vector3
IL_06AB: ldloca.s 4 (UnityEngine.Vector3)
IL_06AD: ldfld System.Single UnityEngine.Vector3::x
IL_06B2: ldloc.s 18 (System.Single)
IL_06B4: sub
IL_06B5: ldloca.s 4 (UnityEngine.Vector3)
IL_06B7: ldfld System.Single UnityEngine.Vector3::y
IL_06BC: ldarg.0
IL_06BD: ldfld System.Single LightEffect::m_lightRange
IL_06C2: sub
IL_06C3: ldloca.s 4 (UnityEngine.Vector3)
IL_06C5: ldfld System.Single UnityEngine.Vector3::z
IL_06CA: ldarg.0
IL_06CB: ldfld System.Single LightEffect::m_lightRange
IL_06D0: add
IL_06D1: newobj System.Void UnityEngine.Vector3::.ctor(System.Single x,
System.Single y, System.Single z)
IL_06D6: stobj UnityEngine.Vector3
IL_06DB: ldarg.s 8
IL_06DD: ldfld UnityEngine.Vector3[] MeshData::m_normals
IL_06E2: ldarg.s 5
IL_06E4: ldind.i4
IL_06E5: ldelema UnityEngine.Vector3
IL_06EA: ldarg.3
IL_06EB: stobj UnityEngine.Vector3
IL_06F0: ldarg.s 8
IL_06F2: ldfld UnityEngine.Vector4[] MeshData::m_tangents
IL_06F7: ldarg.s 5
IL_06F9: ldind.i4
IL_06FA: ldelema UnityEngine.Vector4
IL_06FF: ldloc.s 7 (UnityEngine.Vector4)
IL_0701: stobj UnityEngine.Vector4
IL_0706: ldarg.s 8
IL_0708: ldfld UnityEngine.Vector2[] MeshData::m_uvs
IL_070D: ldarg.s 5
IL_070F: ldind.i4
IL_0710: ldelema UnityEngine.Vector2
IL_0715: ldloc.s 8 (UnityEngine.Vector2)
IL_0717: stobj UnityEngine.Vector2
IL_071C: ldarg.s 8
IL_071E: ldfld UnityEngine.Vector2[] MeshData::m_uvs2
IL_0723: ldarg.s 5
IL_0725: ldind.i4
IL_0726: ldelema UnityEngine.Vector2
IL_072B: ldloc.s 10 (UnityEngine.Vector2)
IL_072D: stobj UnityEngine.Vector2
IL_0732: ldarg.s 8
IL_0734: ldfld UnityEngine.Vector2[] MeshData::m_uvs3
IL_0739: ldarg.s 5
IL_073B: ldind.i4
IL_073C: ldelema UnityEngine.Vector2
IL_0741: ldloc.s 11 (UnityEngine.Vector2)
IL_0743: stobj UnityEngine.Vector2
IL_0748: ldloc.0
IL_0749: brfalse => Label19
IL_074E: ldarg.s 8
IL_0750: ldfld UnityEngine.Vector2[] MeshData::m_uvs4
IL_0755: ldarg.s 5
IL_0757: ldind.i4
IL_0758: ldelema UnityEngine.Vector2
IL_075D: ldloc.s 12 (UnityEngine.Vector2)
IL_075F: stobj UnityEngine.Vector2
IL_0764: Label19
IL_0764: ldarg.s 8
IL_0766: ldfld UnityEngine.Color32[] MeshData::m_colors
IL_076B: ldarg.s 5
IL_076D: ldind.i4
IL_076E: ldelema UnityEngine.Color32
IL_0773: ldloc.s 15 (UnityEngine.Color)
IL_0775: call static UnityEngine.Color32
UnityEngine.Color32::op_Implicit(UnityEngine.Color c)
IL_077A: stobj UnityEngine.Color32
IL_077F: ldarg.s 5
IL_0781: ldarg.s 5
IL_0783: ldind.i4
IL_0784: ldc.i4.1
IL_0785: add
IL_0786: stind.i4
IL_0787: ldarg.s 8
IL_0789: ldfld UnityEngine.Vector3[] MeshData::m_vertices
IL_078E: ldarg.s 5
IL_0790: ldind.i4
IL_0791: ldelema UnityEngine.Vector3
IL_0796: ldloca.s 4 (UnityEngine.Vector3)
IL_0798: ldfld System.Single UnityEngine.Vector3::x
IL_079D: ldloc.s 17 (System.Single)
IL_079F: sub
IL_07A0: ldloca.s 4 (UnityEngine.Vector3)
IL_07A2: ldfld System.Single UnityEngine.Vector3::y
IL_07A7: ldloca.s 4 (UnityEngine.Vector3)
IL_07A9: ldfld System.Single UnityEngine.Vector3::z
IL_07AE: ldarg.0
IL_07AF: ldfld System.Single LightEffect::m_lightRange
IL_07B4: add
IL_07B5: newobj System.Void UnityEngine.Vector3::.ctor(System.Single x,
System.Single y, System.Single z)
IL_07BA: stobj UnityEngine.Vector3
IL_07BF: ldarg.s 8
IL_07C1: ldfld UnityEngine.Vector3[] MeshData::m_normals
IL_07C6: ldarg.s 5
IL_07C8: ldind.i4
IL_07C9: ldelema UnityEngine.Vector3
IL_07CE: ldarg.3
IL_07CF: stobj UnityEngine.Vector3
IL_07D4: ldarg.s 8
IL_07D6: ldfld UnityEngine.Vector4[] MeshData::m_tangents
IL_07DB: ldarg.s 5
IL_07DD: ldind.i4
IL_07DE: ldelema UnityEngine.Vector4
IL_07E3: ldloc.s 7 (UnityEngine.Vector4)
IL_07E5: stobj UnityEngine.Vector4
IL_07EA: ldarg.s 8
IL_07EC: ldfld UnityEngine.Vector2[] MeshData::m_uvs
IL_07F1: ldarg.s 5
IL_07F3: ldind.i4
IL_07F4: ldelema UnityEngine.Vector2
IL_07F9: ldloc.s 8 (UnityEngine.Vector2)
IL_07FB: stobj UnityEngine.Vector2
IL_0800: ldarg.s 8
IL_0802: ldfld UnityEngine.Vector2[] MeshData::m_uvs2
IL_0807: ldarg.s 5
IL_0809: ldind.i4
IL_080A: ldelema UnityEngine.Vector2
IL_080F: ldloc.s 10 (UnityEngine.Vector2)
IL_0811: stobj UnityEngine.Vector2
IL_0816: ldarg.s 8
IL_0818: ldfld UnityEngine.Vector2[] MeshData::m_uvs3
IL_081D: ldarg.s 5
IL_081F: ldind.i4
IL_0820: ldelema UnityEngine.Vector2
IL_0825: ldloc.s 11 (UnityEngine.Vector2)
IL_0827: stobj UnityEngine.Vector2
IL_082C: ldloc.0
IL_082D: brfalse => Label20
IL_0832: ldarg.s 8
IL_0834: ldfld UnityEngine.Vector2[] MeshData::m_uvs4
IL_0839: ldarg.s 5
IL_083B: ldind.i4
IL_083C: ldelema UnityEngine.Vector2
IL_0841: ldloc.s 12 (UnityEngine.Vector2)
IL_0843: stobj UnityEngine.Vector2
IL_0848: Label20
IL_0848: ldarg.s 8
IL_084A: ldfld UnityEngine.Color32[] MeshData::m_colors
IL_084F: ldarg.s 5
IL_0851: ldind.i4
IL_0852: ldelema UnityEngine.Color32
IL_0857: ldloc.s 15 (UnityEngine.Color)
IL_0859: call static UnityEngine.Color32
UnityEngine.Color32::op_Implicit(UnityEngine.Color c)
IL_085E: stobj UnityEngine.Color32
IL_0863: ldarg.s 5
IL_0865: ldarg.s 5
IL_0867: ldind.i4
IL_0868: ldc.i4.1
IL_0869: add
IL_086A: stind.i4
IL_086B: ldarg.s 8
IL_086D: ldfld System.Int32[] MeshData::m_triangles
IL_0872: ldarg.s 6
IL_0874: ldarg.s 6
IL_0876: ldind.i4
IL_0877: dup
IL_0878: stloc.s 19 (System.Int32)
IL_087A: ldc.i4.1
IL_087B: add
IL_087C: stind.i4
IL_087D: ldloc.s 19 (System.Int32)
IL_087F: ldarg.s 5
IL_0881: ldind.i4
IL_0882: ldc.i4.6
IL_0883: sub
IL_0884: stelem.i4
IL_0885: ldarg.s 8
IL_0887: ldfld System.Int32[] MeshData::m_triangles
IL_088C: ldarg.s 6
IL_088E: ldarg.s 6
IL_0890: ldind.i4
IL_0891: dup
IL_0892: stloc.s 19 (System.Int32)
IL_0894: ldc.i4.1
IL_0895: add
IL_0896: stind.i4
IL_0897: ldloc.s 19 (System.Int32)
IL_0899: ldarg.s 5
IL_089B: ldind.i4
IL_089C: ldc.i4.5
IL_089D: sub
IL_089E: stelem.i4
IL_089F: ldarg.s 8
IL_08A1: ldfld System.Int32[] MeshData::m_triangles
IL_08A6: ldarg.s 6
IL_08A8: ldarg.s 6
IL_08AA: ldind.i4
IL_08AB: dup
IL_08AC: stloc.s 19 (System.Int32)
IL_08AE: ldc.i4.1
IL_08AF: add
IL_08B0: stind.i4
IL_08B1: ldloc.s 19 (System.Int32)
IL_08B3: ldarg.s 5
IL_08B5: ldind.i4
IL_08B6: ldc.i4.1
IL_08B7: sub
IL_08B8: stelem.i4
IL_08B9: ldarg.s 8
IL_08BB: ldfld System.Int32[] MeshData::m_triangles
IL_08C0: ldarg.s 6
IL_08C2: ldarg.s 6
IL_08C4: ldind.i4
IL_08C5: dup
IL_08C6: stloc.s 19 (System.Int32)
IL_08C8: ldc.i4.1
IL_08C9: add
IL_08CA: stind.i4
IL_08CB: ldloc.s 19 (System.Int32)
IL_08CD: ldarg.s 5
IL_08CF: ldind.i4
IL_08D0: ldc.i4.1
IL_08D1: sub
IL_08D2: stelem.i4
IL_08D3: ldarg.s 8
IL_08D5: ldfld System.Int32[] MeshData::m_triangles
IL_08DA: ldarg.s 6
IL_08DC: ldarg.s 6
IL_08DE: ldind.i4
IL_08DF: dup
IL_08E0: stloc.s 19 (System.Int32)
IL_08E2: ldc.i4.1
IL_08E3: add
IL_08E4: stind.i4
IL_08E5: ldloc.s 19 (System.Int32)
IL_08E7: ldarg.s 5
IL_08E9: ldind.i4
IL_08EA: ldc.i4.5
IL_08EB: sub
IL_08EC: stelem.i4
IL_08ED: ldarg.s 8
IL_08EF: ldfld System.Int32[] MeshData::m_triangles
IL_08F4: ldarg.s 6
IL_08F6: ldarg.s 6
IL_08F8: ldind.i4
IL_08F9: dup
IL_08FA: stloc.s 19 (System.Int32)
IL_08FC: ldc.i4.1
IL_08FD: add
IL_08FE: stind.i4
IL_08FF: ldloc.s 19 (System.Int32)
IL_0901: ldarg.s 5
IL_0903: ldind.i4
IL_0904: ldc.i4.4
IL_0905: sub
IL_0906: stelem.i4
IL_0907: ldarg.s 8
IL_0909: ldfld System.Int32[] MeshData::m_triangles
IL_090E: ldarg.s 6
IL_0910: ldarg.s 6
IL_0912: ldind.i4
IL_0913: dup
IL_0914: stloc.s 19 (System.Int32)
IL_0916: ldc.i4.1
IL_0917: add
IL_0918: stind.i4
IL_0919: ldloc.s 19 (System.Int32)
IL_091B: ldarg.s 5
IL_091D: ldind.i4
IL_091E: ldc.i4.1
IL_091F: sub
IL_0920: stelem.i4
IL_0921: ldarg.s 8
IL_0923: ldfld System.Int32[] MeshData::m_triangles
IL_0928: ldarg.s 6
IL_092A: ldarg.s 6
IL_092C: ldind.i4
IL_092D: dup
IL_092E: stloc.s 19 (System.Int32)
IL_0930: ldc.i4.1
IL_0931: add
IL_0932: stind.i4
IL_0933: ldloc.s 19 (System.Int32)
IL_0935: ldarg.s 5
IL_0937: ldind.i4
IL_0938: ldc.i4.4
IL_0939: sub
IL_093A: stelem.i4
IL_093B: ldarg.s 8
IL_093D: ldfld System.Int32[] MeshData::m_triangles
IL_0942: ldarg.s 6
IL_0944: ldarg.s 6
IL_0946: ldind.i4
IL_0947: dup
IL_0948: stloc.s 19 (System.Int32)
IL_094A: ldc.i4.1
IL_094B: add
IL_094C: stind.i4
IL_094D: ldloc.s 19 (System.Int32)
IL_094F: ldarg.s 5
IL_0951: ldind.i4
IL_0952: ldc.i4.2
IL_0953: sub
IL_0954: stelem.i4
IL_0955: ldarg.s 8
IL_0957: ldfld System.Int32[] MeshData::m_triangles
IL_095C: ldarg.s 6
IL_095E: ldarg.s 6
IL_0960: ldind.i4
IL_0961: dup
IL_0962: stloc.s 19 (System.Int32)
IL_0964: ldc.i4.1
IL_0965: add
IL_0966: stind.i4
IL_0967: ldloc.s 19 (System.Int32)
IL_0969: ldarg.s 5
IL_096B: ldind.i4
IL_096C: ldc.i4.2
IL_096D: sub
IL_096E: stelem.i4
IL_096F: ldarg.s 8
IL_0971: ldfld System.Int32[] MeshData::m_triangles
IL_0976: ldarg.s 6
IL_0978: ldarg.s 6
IL_097A: ldind.i4
IL_097B: dup
IL_097C: stloc.s 19 (System.Int32)
IL_097E: ldc.i4.1
IL_097F: add
IL_0980: stind.i4
IL_0981: ldloc.s 19 (System.Int32)
IL_0983: ldarg.s 5
IL_0985: ldind.i4
IL_0986: ldc.i4.4
IL_0987: sub
IL_0988: stelem.i4
IL_0989: ldarg.s 8
IL_098B: ldfld System.Int32[] MeshData::m_triangles
IL_0990: ldarg.s 6
IL_0992: ldarg.s 6
IL_0994: ldind.i4
IL_0995: dup
IL_0996: stloc.s 19 (System.Int32)
IL_0998: ldc.i4.1
IL_0999: add
IL_099A: stind.i4
IL_099B: ldloc.s 19 (System.Int32)
IL_099D: ldarg.s 5
IL_099F: ldind.i4
IL_09A0: ldc.i4.3
IL_09A1: sub
IL_09A2: stelem.i4
IL_09A3: // end original
IL_09A3: Label3
IL_09A3: Label0
IL_09A3: ret
DONE

### Patch: virtual System.Void ElectricityManager::SimulationStepImpl(System.Int32


subStep)
### Replacement: static System.Void
ElectricityManager::ElectricityManager.SimulationStepImpl_Patch0(ElectricityManager
this, System.Int32 subStep)
IL_0000: Local var 0: System.UInt32
IL_0000: Local var 1: System.Int32
IL_0000: Local var 2: NetManager
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: NetInfo
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: ElectricityManager/Cell
IL_0000: Local var 13: ElectricityManager/PulseGroup
IL_0000: Local var 14: ElectricityManager/PulseUnit
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: ElectricityManager/PulseUnit
IL_0000: Local var 19: System.UInt32
IL_0000: Local var 20: System.Int32
IL_0000: Local var 21: ElectricityManager/Cell
IL_0000: Local var 22: System.Int32
IL_0000: Local var 23: System.Int32
IL_0000: Local var 24: NetNode
IL_0000: Local var 25: System.Int32
IL_0000: Local var 26: System.UInt16
IL_0000: Local var 27: System.UInt16
IL_0000: Local var 28: System.UInt16
IL_0000: Local var 29: System.UInt16
IL_0000: Local var 30: System.Int32
IL_0000: Local var 31: ElectricityManager/PulseGroup
IL_0000: Local var 32: ElectricityManager/PulseGroup
IL_0000: Local var 33: System.Int32
IL_0000: Local var 34: ElectricityManager/PulseGroup
IL_0000: Local var 35: System.Int32
IL_0000: Local var 36: ElectricityManager/Cell
IL_0000: // start original
IL_0000: ldarg.1
IL_0001: brfalse => Label0
IL_0006: ldarg.1
IL_0007: ldc.i4 1000
IL_000C: beq => Label1
IL_0011: call static SimulationManager
ColossalFramework.Singleton`1<SimulationManager>::get_instance()
IL_0016: ldfld System.UInt32 SimulationManager::m_currentFrameIndex
IL_001B: stloc.0
IL_001C: ldloc.0
IL_001D: ldc.i4 255
IL_0022: and
IL_0023: stloc.1
IL_0024: ldloc.1
IL_0025: ldc.i4 128
IL_002A: bge => Label2
IL_002F: ldloc.1
IL_0030: brtrue => Label3
IL_0035: ldarg.0
IL_0036: ldc.i4.0
IL_0037: stfld System.Int32 ElectricityManager::m_pulseGroupCount
IL_003C: ldarg.0
IL_003D: ldc.i4.0
IL_003E: stfld System.Int32 ElectricityManager::m_pulseUnitStart
IL_0043: ldarg.0
IL_0044: ldc.i4.0
IL_0045: stfld System.Int32 ElectricityManager::m_pulseUnitEnd
IL_004A: ldarg.0
IL_004B: ldc.i4.0
IL_004C: stfld System.Int32 ElectricityManager::m_processedCells
IL_0051: ldarg.0
IL_0052: ldc.i4.0
IL_0053: stfld System.Int32 ElectricityManager::m_conductiveCells
IL_0058: ldarg.0
IL_0059: ldc.i4.1
IL_005A: stfld System.Boolean ElectricityManager::m_canContinue
IL_005F: Label3
IL_005F: call static NetManager
ColossalFramework.Singleton`1<NetManager>::get_instance()
IL_0064: stloc.2
IL_0065: ldloc.1
IL_0066: ldc.i4 32768
IL_006B: mul
IL_006C: ldc.i4.7
IL_006D: shr
IL_006E: stloc.3
IL_006F: ldloc.1
IL_0070: ldc.i4.1
IL_0071: add
IL_0072: ldc.i4 32768
IL_0077: mul
IL_0078: ldc.i4.7
IL_0079: shr
IL_007A: ldc.i4.1
IL_007B: sub
IL_007C: stloc.s 4 (System.Int32)
IL_007E: ldloc.3
IL_007F: stloc.s 5 (System.Int32)
IL_0081: br => Label4
IL_0086: Label10
IL_0086: ldloc.2
IL_0087: ldfld Array16`1<NetNode> NetManager::m_nodes
IL_008C: ldfld NetNode[] Array16`1<NetNode>::m_buffer
IL_0091: ldloc.s 5 (System.Int32)
IL_0093: ldelema NetNode
IL_0098: ldfld Flags NetNode::m_flags
IL_009D: brfalse => Label5
IL_00A2: ldloc.2
IL_00A3: ldfld Array16`1<NetNode> NetManager::m_nodes
IL_00A8: ldfld NetNode[] Array16`1<NetNode>::m_buffer
IL_00AD: ldloc.s 5 (System.Int32)
IL_00AF: ldelema NetNode
IL_00B4: call static System.Boolean
ElectricRoads.Overrides.ElectricRoadsOverrides::CheckElectricConductibility(NetNode
& node)
IL_00B9: brfalse => Label7
IL_00BE: Label6
IL_00BE: ldarg.0
IL_00BF: ldloc.s 5 (System.Int32)
IL_00C1: ldarg.0
IL_00C2: ldfld System.UInt16[] ElectricityManager::m_nodeGroups
IL_00C7: ldloc.s 5 (System.Int32)
IL_00C9: ldelem.u2
IL_00CA: ldc.i4 65535
IL_00CF: beq => Label8
IL_00D4: ldc.i4.1
IL_00D5: br => Label9
IL_00DA: Label8
IL_00DA: ldc.i4.0
IL_00DB: Label9
IL_00DB: call System.Void
ElectricityManager::UpdateNodeElectricity(System.Int32 nodeID, System.Int32 value)
IL_00E0: ldarg.0
IL_00E1: dup
IL_00E2: ldfld System.Int32 ElectricityManager::m_conductiveCells
IL_00E7: ldc.i4.1
IL_00E8: add
IL_00E9: stfld System.Int32 ElectricityManager::m_conductiveCells
IL_00EE: Label5
IL_00EE: Label7
IL_00EE: ldarg.0
IL_00EF: ldfld System.UInt16[] ElectricityManager::m_nodeGroups
IL_00F4: ldloc.s 5 (System.Int32)
IL_00F6: ldc.i4 65535
IL_00FB: stelem.i2
IL_00FC: ldloc.s 5 (System.Int32)
IL_00FE: ldc.i4.1
IL_00FF: add
IL_0100: stloc.s 5 (System.Int32)
IL_0102: Label4
IL_0102: ldloc.s 5 (System.Int32)
IL_0104: ldloc.s 4 (System.Int32)
IL_0106: ble => Label10
IL_010B: ldloc.1
IL_010C: ldc.i4 256
IL_0111: mul
IL_0112: ldc.i4.7
IL_0113: shr
IL_0114: stloc.s 7 (System.Int32)
IL_0116: ldloc.1
IL_0117: ldc.i4.1
IL_0118: add
IL_0119: ldc.i4 256
IL_011E: mul
IL_011F: ldc.i4.7
IL_0120: shr
IL_0121: ldc.i4.1
IL_0122: sub
IL_0123: stloc.s 8 (System.Int32)
IL_0125: ldloc.s 7 (System.Int32)
IL_0127: stloc.s 9 (System.Int32)
IL_0129: br => Label11
IL_012E: Label21
IL_012E: ldloc.s 9 (System.Int32)
IL_0130: ldc.i4 256
IL_0135: mul
IL_0136: stloc.s 10 (System.Int32)
IL_0138: ldc.i4.0
IL_0139: stloc.s 11 (System.Int32)
IL_013B: br => Label12
IL_0140: Label20
IL_0140: ldarg.0
IL_0141: ldfld Cell[] ElectricityManager::m_electricityGrid
IL_0146: ldloc.s 10 (System.Int32)
IL_0148: ldelema ElectricityManager+Cell
IL_014D: ldobj ElectricityManager+Cell
IL_0152: stloc.s 12 (ElectricityManager+Cell)
IL_0154: ldloca.s 12 (ElectricityManager+Cell)
IL_0156: ldfld System.Int16 Cell::m_currentCharge
IL_015B: ldc.i4.0
IL_015C: ble => Label13
IL_0161: ldarg.0
IL_0162: ldfld System.Int32 ElectricityManager::m_pulseGroupCount
IL_0167: ldc.i4 1024
IL_016C: bge => Label14
IL_0171: ldloca.s 13 (ElectricityManager+PulseGroup)
IL_0173: ldloca.s 12 (ElectricityManager+Cell)
IL_0175: ldfld System.Int16 Cell::m_currentCharge
IL_017A: conv.u4
IL_017B: stfld System.UInt32 PulseGroup::m_origCharge
IL_0180: ldloca.s 13 (ElectricityManager+PulseGroup)
IL_0182: ldloca.s 12 (ElectricityManager+Cell)
IL_0184: ldfld System.Int16 Cell::m_currentCharge
IL_0189: conv.u4
IL_018A: stfld System.UInt32 PulseGroup::m_curCharge
IL_018F: ldloca.s 13 (ElectricityManager+PulseGroup)
IL_0191: ldc.i4.0
IL_0192: stfld System.UInt16 PulseGroup::m_mergeCount
IL_0197: ldloca.s 13 (ElectricityManager+PulseGroup)
IL_0199: ldc.i4 65535
IL_019E: stfld System.UInt16 PulseGroup::m_mergeIndex
IL_01A3: ldloca.s 13 (ElectricityManager+PulseGroup)
IL_01A5: ldloc.s 11 (System.Int32)
IL_01A7: conv.u1
IL_01A8: stfld System.Byte PulseGroup::m_x
IL_01AD: ldloca.s 13 (ElectricityManager+PulseGroup)
IL_01AF: ldloc.s 9 (System.Int32)
IL_01B1: conv.u1
IL_01B2: stfld System.Byte PulseGroup::m_z
IL_01B7: ldloca.s 14 (ElectricityManager+PulseUnit)
IL_01B9: ldarg.0
IL_01BA: ldfld System.Int32 ElectricityManager::m_pulseGroupCount
IL_01BF: conv.u2
IL_01C0: stfld System.UInt16 PulseUnit::m_group
IL_01C5: ldloca.s 14 (ElectricityManager+PulseUnit)
IL_01C7: ldc.i4.0
IL_01C8: stfld System.UInt16 PulseUnit::m_node
IL_01CD: ldloca.s 14 (ElectricityManager+PulseUnit)
IL_01CF: ldloc.s 11 (System.Int32)
IL_01D1: conv.u1
IL_01D2: stfld System.Byte PulseUnit::m_x
IL_01D7: ldloca.s 14 (ElectricityManager+PulseUnit)
IL_01D9: ldloc.s 9 (System.Int32)
IL_01DB: conv.u1
IL_01DC: stfld System.Byte PulseUnit::m_z
IL_01E1: ldloca.s 12 (ElectricityManager+Cell)
IL_01E3: ldarg.0
IL_01E4: ldfld System.Int32 ElectricityManager::m_pulseGroupCount
IL_01E9: conv.u2
IL_01EA: stfld System.UInt16 Cell::m_pulseGroup
IL_01EF: ldarg.0
IL_01F0: ldfld PulseGroup[] ElectricityManager::m_pulseGroups
IL_01F5: ldarg.0
IL_01F6: dup
IL_01F7: ldfld System.Int32 ElectricityManager::m_pulseGroupCount
IL_01FC: dup
IL_01FD: stloc.s 15 (System.Int32)
IL_01FF: ldc.i4.1
IL_0200: add
IL_0201: stfld System.Int32 ElectricityManager::m_pulseGroupCount
IL_0206: ldloc.s 15 (System.Int32)
IL_0208: ldelema ElectricityManager+PulseGroup
IL_020D: ldloc.s 13 (ElectricityManager+PulseGroup)
IL_020F: stobj ElectricityManager+PulseGroup
IL_0214: ldarg.0
IL_0215: ldfld PulseUnit[] ElectricityManager::m_pulseUnits
IL_021A: ldarg.0
IL_021B: ldfld System.Int32 ElectricityManager::m_pulseUnitEnd
IL_0220: ldelema ElectricityManager+PulseUnit
IL_0225: ldloc.s 14 (ElectricityManager+PulseUnit)
IL_0227: stobj ElectricityManager+PulseUnit
IL_022C: ldarg.0
IL_022D: dup
IL_022E: ldfld System.Int32 ElectricityManager::m_pulseUnitEnd
IL_0233: ldc.i4.1
IL_0234: add
IL_0235: dup
IL_0236: stloc.s 15 (System.Int32)
IL_0238: stfld System.Int32 ElectricityManager::m_pulseUnitEnd
IL_023D: ldloc.s 15 (System.Int32)
IL_023F: ldarg.0
IL_0240: ldfld PulseUnit[] ElectricityManager::m_pulseUnits
IL_0245: ldlen
IL_0246: conv.i4
IL_0247: bne.un => Label15
IL_024C: ldarg.0
IL_024D: ldc.i4.0
IL_024E: stfld System.Int32 ElectricityManager::m_pulseUnitEnd
IL_0253: Label15
IL_0253: br => Label16
IL_0258: Label14
IL_0258: ldloca.s 12 (ElectricityManager+Cell)
IL_025A: ldc.i4 65535
IL_025F: stfld System.UInt16 Cell::m_pulseGroup
IL_0264: Label16
IL_0264: ldloca.s 12 (ElectricityManager+Cell)
IL_0266: ldc.i4.0
IL_0267: stfld System.Int16 Cell::m_currentCharge
IL_026C: ldarg.0
IL_026D: dup
IL_026E: ldfld System.Int32 ElectricityManager::m_conductiveCells
IL_0273: ldc.i4.1
IL_0274: add
IL_0275: stfld System.Int32 ElectricityManager::m_conductiveCells
IL_027A: br => Label17
IL_027F: Label13
IL_027F: ldloca.s 12 (ElectricityManager+Cell)
IL_0281: ldc.i4 65535
IL_0286: stfld System.UInt16 Cell::m_pulseGroup
IL_028B: ldloca.s 12 (ElectricityManager+Cell)
IL_028D: ldfld System.Byte Cell::m_conductivity
IL_0292: ldc.i4.s 64
IL_0294: blt => Label18
IL_0299: ldarg.0
IL_029A: dup
IL_029B: ldfld System.Int32 ElectricityManager::m_conductiveCells
IL_02A0: ldc.i4.1
IL_02A1: add
IL_02A2: stfld System.Int32 ElectricityManager::m_conductiveCells
IL_02A7: Label17
IL_02A7: Label18
IL_02A7: ldloca.s 12 (ElectricityManager+Cell)
IL_02A9: ldfld System.Boolean Cell::m_tmpElectrified
IL_02AE: ldloca.s 12 (ElectricityManager+Cell)
IL_02B0: ldfld System.Boolean Cell::m_electrified
IL_02B5: beq => Label19
IL_02BA: ldloca.s 12 (ElectricityManager+Cell)
IL_02BC: ldloca.s 12 (ElectricityManager+Cell)
IL_02BE: ldfld System.Boolean Cell::m_tmpElectrified
IL_02C3: stfld System.Boolean Cell::m_electrified
IL_02C8: Label19
IL_02C8: ldloca.s 12 (ElectricityManager+Cell)
IL_02CA: ldloca.s 12 (ElectricityManager+Cell)
IL_02CC: ldfld System.UInt16 Cell::m_pulseGroup
IL_02D1: ldc.i4 65535
IL_02D6: ceq
IL_02D8: ldc.i4.0
IL_02D9: ceq
IL_02DB: stfld System.Boolean Cell::m_tmpElectrified
IL_02E0: ldarg.0
IL_02E1: ldfld Cell[] ElectricityManager::m_electricityGrid
IL_02E6: ldloc.s 10 (System.Int32)
IL_02E8: ldelema ElectricityManager+Cell
IL_02ED: ldloc.s 12 (ElectricityManager+Cell)
IL_02EF: stobj ElectricityManager+Cell
IL_02F4: ldloc.s 10 (System.Int32)
IL_02F6: ldc.i4.1
IL_02F7: add
IL_02F8: stloc.s 10 (System.Int32)
IL_02FA: ldloc.s 11 (System.Int32)
IL_02FC: ldc.i4.1
IL_02FD: add
IL_02FE: stloc.s 11 (System.Int32)
IL_0300: Label12
IL_0300: ldloc.s 11 (System.Int32)
IL_0302: ldc.i4 256
IL_0307: blt => Label20
IL_030C: ldloc.s 9 (System.Int32)
IL_030E: ldc.i4.1
IL_030F: add
IL_0310: stloc.s 9 (System.Int32)
IL_0312: Label11
IL_0312: ldloc.s 9 (System.Int32)
IL_0314: ldloc.s 8 (System.Int32)
IL_0316: ble => Label21
IL_031B: br => Label22
IL_0320: Label2
IL_0320: ldloc.1
IL_0321: ldc.i4.s 127
IL_0323: sub
IL_0324: ldarg.0
IL_0325: ldfld System.Int32 ElectricityManager::m_conductiveCells
IL_032A: mul
IL_032B: ldc.i4.7
IL_032C: shr
IL_032D: stloc.s 16 (System.Int32)
IL_032F: ldloc.1
IL_0330: ldc.i4 255
IL_0335: bne.un => Label23
IL_033A: ldc.i4 1000000000
IL_033F: stloc.s 16 (System.Int32)
IL_0341: Label23
IL_0341: br => Label24
IL_0346: Label54
IL_0346: ldarg.0
IL_0347: ldc.i4.0
IL_0348: stfld System.Boolean ElectricityManager::m_canContinue
IL_034D: ldarg.0
IL_034E: ldfld System.Int32 ElectricityManager::m_pulseUnitEnd
IL_0353: stloc.s 17 (System.Int32)
IL_0355: br => Label25
IL_035A: Label52
IL_035A: ldarg.0
IL_035B: ldfld PulseUnit[] ElectricityManager::m_pulseUnits
IL_0360: ldarg.0
IL_0361: ldfld System.Int32 ElectricityManager::m_pulseUnitStart
IL_0366: ldelema ElectricityManager+PulseUnit
IL_036B: ldobj ElectricityManager+PulseUnit
IL_0370: stloc.s 18 (ElectricityManager+PulseUnit)
IL_0372: ldarg.0
IL_0373: dup
IL_0374: ldfld System.Int32 ElectricityManager::m_pulseUnitStart
IL_0379: ldc.i4.1
IL_037A: add
IL_037B: dup
IL_037C: stloc.s 15 (System.Int32)
IL_037E: stfld System.Int32 ElectricityManager::m_pulseUnitStart
IL_0383: ldloc.s 15 (System.Int32)
IL_0385: ldarg.0
IL_0386: ldfld PulseUnit[] ElectricityManager::m_pulseUnits
IL_038B: ldlen
IL_038C: conv.i4
IL_038D: bne.un => Label26
IL_0392: ldarg.0
IL_0393: ldc.i4.0
IL_0394: stfld System.Int32 ElectricityManager::m_pulseUnitStart
IL_0399: Label26
IL_0399: ldloca.s 18 (ElectricityManager+PulseUnit)
IL_039B: ldarg.0
IL_039C: ldloca.s 18 (ElectricityManager+PulseUnit)
IL_039E: ldfld System.UInt16 PulseUnit::m_group
IL_03A3: call System.UInt16 ElectricityManager::GetRootGroup(System.UInt16
group)
IL_03A8: stfld System.UInt16 PulseUnit::m_group
IL_03AD: ldarg.0
IL_03AE: ldfld PulseGroup[] ElectricityManager::m_pulseGroups
IL_03B3: ldloca.s 18 (ElectricityManager+PulseUnit)
IL_03B5: ldfld System.UInt16 PulseUnit::m_group
IL_03BA: ldelema ElectricityManager+PulseGroup
IL_03BF: ldfld System.UInt32 PulseGroup::m_curCharge
IL_03C4: stloc.s 19 (System.UInt32)
IL_03C6: ldloca.s 18 (ElectricityManager+PulseUnit)
IL_03C8: ldfld System.UInt16 PulseUnit::m_node
IL_03CD: brtrue => Label27
IL_03D2: ldloca.s 18 (ElectricityManager+PulseUnit)
IL_03D4: ldfld System.Byte PulseUnit::m_z
IL_03D9: ldc.i4 256
IL_03DE: mul
IL_03DF: ldloca.s 18 (ElectricityManager+PulseUnit)
IL_03E1: ldfld System.Byte PulseUnit::m_x
IL_03E6: add
IL_03E7: stloc.s 20 (System.Int32)
IL_03E9: ldarg.0
IL_03EA: ldfld Cell[] ElectricityManager::m_electricityGrid
IL_03EF: ldloc.s 20 (System.Int32)
IL_03F1: ldelema ElectricityManager+Cell
IL_03F6: ldobj ElectricityManager+Cell
IL_03FB: stloc.s 21 (ElectricityManager+Cell)
IL_03FD: ldloca.s 21 (ElectricityManager+Cell)
IL_03FF: ldfld System.Byte Cell::m_conductivity
IL_0404: brfalse => Label28
IL_0409: ldloca.s 21 (ElectricityManager+Cell)
IL_040B: ldfld System.Boolean Cell::m_tmpElectrified
IL_0410: brtrue => Label29
IL_0415: ldloc.s 19 (System.UInt32)
IL_0417: brfalse => Label30
IL_041C: ldloca.s 21 (ElectricityManager+Cell)
IL_041E: ldfld System.Int16 Cell::m_currentCharge
IL_0423: neg
IL_0424: ldc.i4.0
IL_0425: ldloc.s 19 (System.UInt32)
IL_0427: call static System.Int32 UnityEngine.Mathf::Clamp(System.Int32
value, System.Int32 min, System.Int32 max)
IL_042C: stloc.s 22 (System.Int32)
IL_042E: ldloc.s 19 (System.UInt32)
IL_0430: ldloc.s 22 (System.Int32)
IL_0432: sub
IL_0433: stloc.s 19 (System.UInt32)
IL_0435: ldloca.s 21 (ElectricityManager+Cell)
IL_0437: dup
IL_0438: ldfld System.Int16 Cell::m_currentCharge
IL_043D: ldloc.s 22 (System.Int32)
IL_043F: conv.i2
IL_0440: add
IL_0441: conv.i2
IL_0442: stfld System.Int16 Cell::m_currentCharge
IL_0447: ldloca.s 21 (ElectricityManager+Cell)
IL_0449: ldfld System.Int16 Cell::m_currentCharge
IL_044E: brtrue => Label31
IL_0453: ldloca.s 21 (ElectricityManager+Cell)
IL_0455: ldc.i4.1
IL_0456: stfld System.Boolean Cell::m_tmpElectrified
IL_045B: Label31
IL_045B: ldarg.0
IL_045C: ldfld Cell[] ElectricityManager::m_electricityGrid
IL_0461: ldloc.s 20 (System.Int32)
IL_0463: ldelema ElectricityManager+Cell
IL_0468: ldloc.s 21 (ElectricityManager+Cell)
IL_046A: stobj ElectricityManager+Cell
IL_046F: ldarg.0
IL_0470: ldfld PulseGroup[] ElectricityManager::m_pulseGroups
IL_0475: ldloca.s 18 (ElectricityManager+PulseUnit)
IL_0477: ldfld System.UInt16 PulseUnit::m_group
IL_047C: ldelema ElectricityManager+PulseGroup
IL_0481: ldloc.s 19 (System.UInt32)
IL_0483: stfld System.UInt32 PulseGroup::m_curCharge
IL_0488: Label28
IL_0488: Label29
IL_0488: Label30
IL_0488: ldloc.s 19 (System.UInt32)
IL_048A: brfalse => Label32
IL_048F: ldloca.s 21 (ElectricityManager+Cell)
IL_0491: ldfld System.Byte Cell::m_conductivity
IL_0496: ldc.i4.s 64
IL_0498: blt => Label33
IL_049D: ldc.i4.1
IL_049E: br => Label34
IL_04A3: Label33
IL_04A3: ldc.i4.s 64
IL_04A5: Label34
IL_04A5: stloc.s 23 (System.Int32)
IL_04A7: ldarg.0
IL_04A8: dup
IL_04A9: ldfld System.Int32 ElectricityManager::m_processedCells
IL_04AE: ldc.i4.1
IL_04AF: add
IL_04B0: stfld System.Int32 ElectricityManager::m_processedCells
IL_04B5: ldloca.s 18 (ElectricityManager+PulseUnit)
IL_04B7: ldfld System.Byte PulseUnit::m_z
IL_04BC: ldc.i4.0
IL_04BD: ble => Label35
IL_04C2: ldarg.0
IL_04C3: ldarg.0
IL_04C4: ldfld Cell[] ElectricityManager::m_electricityGrid
IL_04C9: ldloc.s 20 (System.Int32)
IL_04CB: ldc.i4 256
IL_04D0: sub
IL_04D1: ldelema ElectricityManager+Cell
IL_04D6: ldloca.s 18 (ElectricityManager+PulseUnit)
IL_04D8: ldfld System.UInt16 PulseUnit::m_group
IL_04DD: ldloca.s 18 (ElectricityManager+PulseUnit)
IL_04DF: ldfld System.Byte PulseUnit::m_x
IL_04E4: ldloca.s 18 (ElectricityManager+PulseUnit)
IL_04E6: ldfld System.Byte PulseUnit::m_z
IL_04EB: ldc.i4.1
IL_04EC: sub
IL_04ED: ldloc.s 23 (System.Int32)
IL_04EF: call System.Void ElectricityManager::ConductToCell(Cell& cell,
System.UInt16 group, System.Int32 x, System.Int32 z, System.Int32 limit)
IL_04F4: Label35
IL_04F4: ldloca.s 18 (ElectricityManager+PulseUnit)
IL_04F6: ldfld System.Byte PulseUnit::m_x
IL_04FB: ldc.i4.0
IL_04FC: ble => Label36
IL_0501: ldarg.0
IL_0502: ldarg.0
IL_0503: ldfld Cell[] ElectricityManager::m_electricityGrid
IL_0508: ldloc.s 20 (System.Int32)
IL_050A: ldc.i4.1
IL_050B: sub
IL_050C: ldelema ElectricityManager+Cell
IL_0511: ldloca.s 18 (ElectricityManager+PulseUnit)
IL_0513: ldfld System.UInt16 PulseUnit::m_group
IL_0518: ldloca.s 18 (ElectricityManager+PulseUnit)
IL_051A: ldfld System.Byte PulseUnit::m_x
IL_051F: ldc.i4.1
IL_0520: sub
IL_0521: ldloca.s 18 (ElectricityManager+PulseUnit)
IL_0523: ldfld System.Byte PulseUnit::m_z
IL_0528: ldloc.s 23 (System.Int32)
IL_052A: call System.Void ElectricityManager::ConductToCell(Cell& cell,
System.UInt16 group, System.Int32 x, System.Int32 z, System.Int32 limit)
IL_052F: Label36
IL_052F: ldloca.s 18 (ElectricityManager+PulseUnit)
IL_0531: ldfld System.Byte PulseUnit::m_z
IL_0536: ldc.i4 255
IL_053B: bge => Label37
IL_0540: ldarg.0
IL_0541: ldarg.0
IL_0542: ldfld Cell[] ElectricityManager::m_electricityGrid
IL_0547: ldloc.s 20 (System.Int32)
IL_0549: ldc.i4 256
IL_054E: add
IL_054F: ldelema ElectricityManager+Cell
IL_0554: ldloca.s 18 (ElectricityManager+PulseUnit)
IL_0556: ldfld System.UInt16 PulseUnit::m_group
IL_055B: ldloca.s 18 (ElectricityManager+PulseUnit)
IL_055D: ldfld System.Byte PulseUnit::m_x
IL_0562: ldloca.s 18 (ElectricityManager+PulseUnit)
IL_0564: ldfld System.Byte PulseUnit::m_z
IL_0569: ldc.i4.1
IL_056A: add
IL_056B: ldloc.s 23 (System.Int32)
IL_056D: call System.Void ElectricityManager::ConductToCell(Cell& cell,
System.UInt16 group, System.Int32 x, System.Int32 z, System.Int32 limit)
IL_0572: Label37
IL_0572: ldloca.s 18 (ElectricityManager+PulseUnit)
IL_0574: ldfld System.Byte PulseUnit::m_x
IL_0579: ldc.i4 255
IL_057E: bge => Label38
IL_0583: ldarg.0
IL_0584: ldarg.0
IL_0585: ldfld Cell[] ElectricityManager::m_electricityGrid
IL_058A: ldloc.s 20 (System.Int32)
IL_058C: ldc.i4.1
IL_058D: add
IL_058E: ldelema ElectricityManager+Cell
IL_0593: ldloca.s 18 (ElectricityManager+PulseUnit)
IL_0595: ldfld System.UInt16 PulseUnit::m_group
IL_059A: ldloca.s 18 (ElectricityManager+PulseUnit)
IL_059C: ldfld System.Byte PulseUnit::m_x
IL_05A1: ldc.i4.1
IL_05A2: add
IL_05A3: ldloca.s 18 (ElectricityManager+PulseUnit)
IL_05A5: ldfld System.Byte PulseUnit::m_z
IL_05AA: ldloc.s 23 (System.Int32)
IL_05AC: call System.Void ElectricityManager::ConductToCell(Cell& cell,
System.UInt16 group, System.Int32 x, System.Int32 z, System.Int32 limit)
IL_05B1: Label38
IL_05B1: ldarg.0
IL_05B2: ldloca.s 18 (ElectricityManager+PulseUnit)
IL_05B4: ldfld System.UInt16 PulseUnit::m_group
IL_05B9: ldloca.s 18 (ElectricityManager+PulseUnit)
IL_05BB: ldfld System.Byte PulseUnit::m_x
IL_05C0: ldloca.s 18 (ElectricityManager+PulseUnit)
IL_05C2: ldfld System.Byte PulseUnit::m_z
IL_05C7: call System.Void ElectricityManager::ConductToNodes(System.UInt16
group, System.Int32 cellX, System.Int32 cellZ)
IL_05CC: br => Label39
IL_05D1: Label32
IL_05D1: ldarg.0
IL_05D2: ldfld PulseUnit[] ElectricityManager::m_pulseUnits
IL_05D7: ldarg.0
IL_05D8: ldfld System.Int32 ElectricityManager::m_pulseUnitEnd
IL_05DD: ldelema ElectricityManager+PulseUnit
IL_05E2: ldloc.s 18 (ElectricityManager+PulseUnit)
IL_05E4: stobj ElectricityManager+PulseUnit
IL_05E9: ldarg.0
IL_05EA: dup
IL_05EB: ldfld System.Int32 ElectricityManager::m_pulseUnitEnd
IL_05F0: ldc.i4.1
IL_05F1: add
IL_05F2: dup
IL_05F3: stloc.s 15 (System.Int32)
IL_05F5: stfld System.Int32 ElectricityManager::m_pulseUnitEnd
IL_05FA: ldloc.s 15 (System.Int32)
IL_05FC: ldarg.0
IL_05FD: ldfld PulseUnit[] ElectricityManager::m_pulseUnits
IL_0602: ldlen
IL_0603: conv.i4
IL_0604: bne.un => Label40
IL_0609: ldarg.0
IL_060A: ldc.i4.0
IL_060B: stfld System.Int32 ElectricityManager::m_pulseUnitEnd
IL_0610: Label39
IL_0610: Label40
IL_0610: br => Label41
IL_0615: Label27
IL_0615: ldloc.s 19 (System.UInt32)
IL_0617: brfalse => Label42
IL_061C: ldarg.0
IL_061D: dup
IL_061E: ldfld System.Int32 ElectricityManager::m_processedCells
IL_0623: ldc.i4.1
IL_0624: add
IL_0625: stfld System.Int32 ElectricityManager::m_processedCells
IL_062A: call static NetManager
ColossalFramework.Singleton`1<NetManager>::get_instance()
IL_062F: ldfld Array16`1<NetNode> NetManager::m_nodes
IL_0634: ldfld NetNode[] Array16`1<NetNode>::m_buffer
IL_0639: ldloca.s 18 (ElectricityManager+PulseUnit)
IL_063B: ldfld System.UInt16 PulseUnit::m_node
IL_0640: ldelema NetNode
IL_0645: ldobj NetNode
IL_064A: stloc.s 24 (NetNode)
IL_064C: ldloca.s 24 (NetNode)
IL_064E: ldfld Flags NetNode::m_flags
IL_0653: brfalse => Label43
IL_0658: ldloca.s 24 (NetNode)
IL_065A: ldfld System.UInt32 NetNode::m_buildIndex
IL_065F: ldloc.0
IL_0660: ldc.i4.s -128
IL_0662: and
IL_0663: bge.un => Label44
IL_0668: ldarg.0
IL_0669: ldloca.s 18 (ElectricityManager+PulseUnit)
IL_066B: ldfld System.UInt16 PulseUnit::m_group
IL_0670: ldloca.s 24 (NetNode)
IL_0672: ldflda UnityEngine.Vector3 NetNode::m_position
IL_0677: ldfld System.Single UnityEngine.Vector3::x
IL_067C: ldloca.s 24 (NetNode)
IL_067E: ldflda UnityEngine.Vector3 NetNode::m_position
IL_0683: ldfld System.Single UnityEngine.Vector3::z
IL_0688: call System.Void ElectricityManager::ConductToCells(System.UInt16
group, System.Single worldX, System.Single worldZ)
IL_068D: ldc.i4.0
IL_068E: stloc.s 25 (System.Int32)
IL_0690: br => Label45
IL_0695: Label49
IL_0695: ldloca.s 24 (NetNode)
IL_0697: ldloc.s 25 (System.Int32)
IL_0699: call System.UInt16 NetNode::GetSegment(System.Int32 index)
IL_069E: stloc.s 26 (System.UInt16)
IL_06A0: ldloc.s 26 (System.UInt16)
IL_06A2: brfalse => Label46
IL_06A7: call static NetManager
ColossalFramework.Singleton`1<NetManager>::get_instance()
IL_06AC: ldfld Array16`1<NetSegment> NetManager::m_segments
IL_06B1: ldfld NetSegment[] Array16`1<NetSegment>::m_buffer
IL_06B6: ldloc.s 26 (System.UInt16)
IL_06B8: ldelema NetSegment
IL_06BD: ldfld System.UInt16 NetSegment::m_startNode
IL_06C2: stloc.s 27 (System.UInt16)
IL_06C4: call static NetManager
ColossalFramework.Singleton`1<NetManager>::get_instance()
IL_06C9: ldfld Array16`1<NetSegment> NetManager::m_segments
IL_06CE: ldfld NetSegment[] Array16`1<NetSegment>::m_buffer
IL_06D3: ldloc.s 26 (System.UInt16)
IL_06D5: ldelema NetSegment
IL_06DA: ldfld System.UInt16 NetSegment::m_endNode
IL_06DF: stloc.s 28 (System.UInt16)
IL_06E1: ldloc.s 27 (System.UInt16)
IL_06E3: ldloca.s 18 (ElectricityManager+PulseUnit)
IL_06E5: ldfld System.UInt16 PulseUnit::m_node
IL_06EA: bne.un => Label47
IL_06EF: ldloc.s 28 (System.UInt16)
IL_06F1: br => Label48
IL_06F6: Label47
IL_06F6: ldloc.s 27 (System.UInt16)
IL_06F8: Label48
IL_06F8: stloc.s 29 (System.UInt16)
IL_06FA: ldarg.0
IL_06FB: ldloc.s 29 (System.UInt16)
IL_06FD: call static NetManager
ColossalFramework.Singleton`1<NetManager>::get_instance()
IL_0702: ldfld Array16`1<NetNode> NetManager::m_nodes
IL_0707: ldfld NetNode[] Array16`1<NetNode>::m_buffer
IL_070C: ldloc.s 29 (System.UInt16)
IL_070E: ldelema NetNode
IL_0713: ldloca.s 18 (ElectricityManager+PulseUnit)
IL_0715: ldfld System.UInt16 PulseUnit::m_group
IL_071A: ldc.r4 -100000
IL_071F: ldc.r4 -100000
IL_0724: ldc.r4 100000
IL_0729: ldc.r4 100000
IL_072E: call System.Void ElectricityManager::ConductToNode(System.UInt16
nodeIndex, NetNode& node, System.UInt16 group, System.Single minX, System.Single
minZ, System.Single maxX, System.Single maxZ)
IL_0733: Label46
IL_0733: ldloc.s 25 (System.Int32)
IL_0735: ldc.i4.1
IL_0736: add
IL_0737: stloc.s 25 (System.Int32)
IL_0739: Label45
IL_0739: ldloc.s 25 (System.Int32)
IL_073B: ldc.i4.8
IL_073C: blt => Label49
IL_0741: Label43
IL_0741: Label44
IL_0741: br => Label50
IL_0746: Label42
IL_0746: ldarg.0
IL_0747: ldfld PulseUnit[] ElectricityManager::m_pulseUnits
IL_074C: ldarg.0
IL_074D: ldfld System.Int32 ElectricityManager::m_pulseUnitEnd
IL_0752: ldelema ElectricityManager+PulseUnit
IL_0757: ldloc.s 18 (ElectricityManager+PulseUnit)
IL_0759: stobj ElectricityManager+PulseUnit
IL_075E: ldarg.0
IL_075F: dup
IL_0760: ldfld System.Int32 ElectricityManager::m_pulseUnitEnd
IL_0765: ldc.i4.1
IL_0766: add
IL_0767: dup
IL_0768: stloc.s 15 (System.Int32)
IL_076A: stfld System.Int32 ElectricityManager::m_pulseUnitEnd
IL_076F: ldloc.s 15 (System.Int32)
IL_0771: ldarg.0
IL_0772: ldfld PulseUnit[] ElectricityManager::m_pulseUnits
IL_0777: ldlen
IL_0778: conv.i4
IL_0779: bne.un => Label51
IL_077E: ldarg.0
IL_077F: ldc.i4.0
IL_0780: stfld System.Int32 ElectricityManager::m_pulseUnitEnd
IL_0785: Label25
IL_0785: Label41
IL_0785: Label50
IL_0785: Label51
IL_0785: ldarg.0
IL_0786: ldfld System.Int32 ElectricityManager::m_pulseUnitStart
IL_078B: ldloc.s 17 (System.Int32)
IL_078D: bne.un => Label52
IL_0792: Label24
IL_0792: ldarg.0
IL_0793: ldfld System.Boolean ElectricityManager::m_canContinue
IL_0798: brfalse => Label53
IL_079D: ldarg.0
IL_079E: ldfld System.Int32 ElectricityManager::m_processedCells
IL_07A3: ldloc.s 16 (System.Int32)
IL_07A5: blt => Label54
IL_07AA: Label53
IL_07AA: ldloc.1
IL_07AB: ldc.i4 255
IL_07B0: bne.un => Label55
IL_07B5: ldc.i4.0
IL_07B6: stloc.s 30 (System.Int32)
IL_07B8: br => Label56
IL_07BD: Label58
IL_07BD: ldarg.0
IL_07BE: ldfld PulseGroup[] ElectricityManager::m_pulseGroups
IL_07C3: ldloc.s 30 (System.Int32)
IL_07C5: ldelema ElectricityManager+PulseGroup
IL_07CA: ldobj ElectricityManager+PulseGroup
IL_07CF: stloc.s 31 (ElectricityManager+PulseGroup)
IL_07D1: ldloca.s 31 (ElectricityManager+PulseGroup)
IL_07D3: ldfld System.UInt16 PulseGroup::m_mergeIndex
IL_07D8: ldc.i4 65535
IL_07DD: beq => Label57
IL_07E2: ldarg.0
IL_07E3: ldfld PulseGroup[] ElectricityManager::m_pulseGroups
IL_07E8: ldloca.s 31 (ElectricityManager+PulseGroup)
IL_07EA: ldfld System.UInt16 PulseGroup::m_mergeIndex
IL_07EF: ldelema ElectricityManager+PulseGroup
IL_07F4: ldobj ElectricityManager+PulseGroup
IL_07F9: stloc.s 32 (ElectricityManager+PulseGroup)
IL_07FB: ldloca.s 31 (ElectricityManager+PulseGroup)
IL_07FD: ldloca.s 32 (ElectricityManager+PulseGroup)
IL_07FF: ldfld System.UInt32 PulseGroup::m_curCharge
IL_0804: conv.u8
IL_0805: ldloca.s 31 (ElectricityManager+PulseGroup)
IL_0807: ldfld System.UInt32 PulseGroup::m_origCharge
IL_080C: conv.u8
IL_080D: mul
IL_080E: ldloca.s 32 (ElectricityManager+PulseGroup)
IL_0810: ldfld System.UInt32 PulseGroup::m_origCharge
IL_0815: conv.u8
IL_0816: div.un
IL_0817: conv.u4
IL_0818: stfld System.UInt32 PulseGroup::m_curCharge
IL_081D: ldloca.s 32 (ElectricityManager+PulseGroup)
IL_081F: dup
IL_0820: ldfld System.UInt32 PulseGroup::m_curCharge
IL_0825: ldloca.s 31 (ElectricityManager+PulseGroup)
IL_0827: ldfld System.UInt32 PulseGroup::m_curCharge
IL_082C: sub
IL_082D: stfld System.UInt32 PulseGroup::m_curCharge
IL_0832: ldloca.s 32 (ElectricityManager+PulseGroup)
IL_0834: dup
IL_0835: ldfld System.UInt32 PulseGroup::m_origCharge
IL_083A: ldloca.s 31 (ElectricityManager+PulseGroup)
IL_083C: ldfld System.UInt32 PulseGroup::m_origCharge
IL_0841: sub
IL_0842: stfld System.UInt32 PulseGroup::m_origCharge
IL_0847: ldarg.0
IL_0848: ldfld PulseGroup[] ElectricityManager::m_pulseGroups
IL_084D: ldloca.s 31 (ElectricityManager+PulseGroup)
IL_084F: ldfld System.UInt16 PulseGroup::m_mergeIndex
IL_0854: ldelema ElectricityManager+PulseGroup
IL_0859: ldloc.s 32 (ElectricityManager+PulseGroup)
IL_085B: stobj ElectricityManager+PulseGroup
IL_0860: ldarg.0
IL_0861: ldfld PulseGroup[] ElectricityManager::m_pulseGroups
IL_0866: ldloc.s 30 (System.Int32)
IL_0868: ldelema ElectricityManager+PulseGroup
IL_086D: ldloc.s 31 (ElectricityManager+PulseGroup)
IL_086F: stobj ElectricityManager+PulseGroup
IL_0874: Label57
IL_0874: ldloc.s 30 (System.Int32)
IL_0876: ldc.i4.1
IL_0877: add
IL_0878: stloc.s 30 (System.Int32)
IL_087A: Label56
IL_087A: ldloc.s 30 (System.Int32)
IL_087C: ldarg.0
IL_087D: ldfld System.Int32 ElectricityManager::m_pulseGroupCount
IL_0882: blt => Label58
IL_0887: ldc.i4.0
IL_0888: stloc.s 33 (System.Int32)
IL_088A: br => Label59
IL_088F: Label62
IL_088F: ldarg.0
IL_0890: ldfld PulseGroup[] ElectricityManager::m_pulseGroups
IL_0895: ldloc.s 33 (System.Int32)
IL_0897: ldelema ElectricityManager+PulseGroup
IL_089C: ldobj ElectricityManager+PulseGroup
IL_08A1: stloc.s 34 (ElectricityManager+PulseGroup)
IL_08A3: ldloca.s 34 (ElectricityManager+PulseGroup)
IL_08A5: ldfld System.UInt32 PulseGroup::m_curCharge
IL_08AA: brfalse => Label60
IL_08AF: ldloca.s 34 (ElectricityManager+PulseGroup)
IL_08B1: ldfld System.Byte PulseGroup::m_z
IL_08B6: ldc.i4 256
IL_08BB: mul
IL_08BC: ldloca.s 34 (ElectricityManager+PulseGroup)
IL_08BE: ldfld System.Byte PulseGroup::m_x
IL_08C3: add
IL_08C4: stloc.s 35 (System.Int32)
IL_08C6: ldarg.0
IL_08C7: ldfld Cell[] ElectricityManager::m_electricityGrid
IL_08CC: ldloc.s 35 (System.Int32)
IL_08CE: ldelema ElectricityManager+Cell
IL_08D3: ldobj ElectricityManager+Cell
IL_08D8: stloc.s 36 (ElectricityManager+Cell)
IL_08DA: ldloca.s 36 (ElectricityManager+Cell)
IL_08DC: ldfld System.Byte Cell::m_conductivity
IL_08E1: brfalse => Label61
IL_08E6: ldloca.s 36 (ElectricityManager+Cell)
IL_08E8: dup
IL_08E9: ldfld System.UInt16 Cell::m_extraCharge
IL_08EE: ldloca.s 34 (ElectricityManager+PulseGroup)
IL_08F0: ldfld System.UInt32 PulseGroup::m_curCharge
IL_08F5: ldc.i4 32767
IL_08FA: ldloca.s 36 (ElectricityManager+Cell)
IL_08FC: ldfld System.UInt16 Cell::m_extraCharge
IL_0901: sub
IL_0902: call static System.Int32 UnityEngine.Mathf::Min(System.Int32 a,
System.Int32 b)
IL_0907: conv.u2
IL_0908: add
IL_0909: conv.u2
IL_090A: stfld System.UInt16 Cell::m_extraCharge
IL_090F: Label61
IL_090F: ldarg.0
IL_0910: ldfld Cell[] ElectricityManager::m_electricityGrid
IL_0915: ldloc.s 35 (System.Int32)
IL_0917: ldelema ElectricityManager+Cell
IL_091C: ldloc.s 36 (ElectricityManager+Cell)
IL_091E: stobj ElectricityManager+Cell
IL_0923: Label60
IL_0923: ldloc.s 33 (System.Int32)
IL_0925: ldc.i4.1
IL_0926: add
IL_0927: stloc.s 33 (System.Int32)
IL_0929: Label59
IL_0929: ldloc.s 33 (System.Int32)
IL_092B: ldarg.0
IL_092C: ldfld System.Int32 ElectricityManager::m_pulseGroupCount
IL_0931: blt => Label62
IL_0936: // end original
IL_0936: Label0
IL_0936: Label1
IL_0936: Label22
IL_0936: Label55
IL_0936: ret
DONE

### Patch: System.Void ElectricityManager::ConductToNode(System.UInt16 nodeIndex,


NetNode& node, System.UInt16 group, System.Single minX, System.Single minZ,
System.Single maxX, System.Single maxZ)
### Replacement: static System.Void
ElectricityManager::ElectricityManager.ConductToNode_Patch0(ElectricityManager
this, System.UInt16 nodeIndex, NetNode& node, System.UInt16 group, System.Single
minX, System.Single minZ, System.Single maxX, System.Single maxZ)
IL_0000: Local var 0: NetInfo
IL_0000: Local var 1: ElectricityManager/PulseUnit
IL_0000: Local var 2: System.Int32
IL_0000: Local var 3: System.UInt16
IL_0000: // start original
IL_0000: ldarg.2
IL_0001: ldflda UnityEngine.Vector3 NetNode::m_position
IL_0006: ldfld System.Single UnityEngine.Vector3::x
IL_000B: ldarg.s 4
IL_000D: blt.un => Label0
IL_0012: ldarg.2
IL_0013: ldflda UnityEngine.Vector3 NetNode::m_position
IL_0018: ldfld System.Single UnityEngine.Vector3::z
IL_001D: ldarg.s 5
IL_001F: blt.un => Label1
IL_0024: ldarg.2
IL_0025: ldflda UnityEngine.Vector3 NetNode::m_position
IL_002A: ldfld System.Single UnityEngine.Vector3::x
IL_002F: ldarg.s 6
IL_0031: bgt.un => Label2
IL_0036: ldarg.2
IL_0037: ldflda UnityEngine.Vector3 NetNode::m_position
IL_003C: ldfld System.Single UnityEngine.Vector3::z
IL_0041: ldarg.s 7
IL_0043: bgt.un => Label3
IL_0048: ldarg.2
IL_0049: call static System.Boolean
ElectricRoads.Overrides.ElectricRoadsOverrides::CheckElectricConductibility(NetNode
& node)
IL_004E: brfalse => Label5
IL_0053: Label4
IL_0053: ldarg.0
IL_0054: ldfld System.UInt16[] ElectricityManager::m_nodeGroups
IL_0059: ldarg.1
IL_005A: ldelem.u2
IL_005B: ldc.i4 65535
IL_0060: bne.un => Label6
IL_0065: ldloca.s 1 (ElectricityManager+PulseUnit)
IL_0067: ldarg.3
IL_0068: stfld System.UInt16 PulseUnit::m_group
IL_006D: ldloca.s 1 (ElectricityManager+PulseUnit)
IL_006F: ldarg.1
IL_0070: stfld System.UInt16 PulseUnit::m_node
IL_0075: ldloca.s 1 (ElectricityManager+PulseUnit)
IL_0077: ldc.i4.0
IL_0078: stfld System.Byte PulseUnit::m_x
IL_007D: ldloca.s 1 (ElectricityManager+PulseUnit)
IL_007F: ldc.i4.0
IL_0080: stfld System.Byte PulseUnit::m_z
IL_0085: ldarg.0
IL_0086: ldfld PulseUnit[] ElectricityManager::m_pulseUnits
IL_008B: ldarg.0
IL_008C: ldfld System.Int32 ElectricityManager::m_pulseUnitEnd
IL_0091: ldelema ElectricityManager+PulseUnit
IL_0096: ldloc.1
IL_0097: stobj ElectricityManager+PulseUnit
IL_009C: ldarg.0
IL_009D: dup
IL_009E: ldfld System.Int32 ElectricityManager::m_pulseUnitEnd
IL_00A3: ldc.i4.1
IL_00A4: add
IL_00A5: dup
IL_00A6: stloc.2
IL_00A7: stfld System.Int32 ElectricityManager::m_pulseUnitEnd
IL_00AC: ldloc.2
IL_00AD: ldarg.0
IL_00AE: ldfld PulseUnit[] ElectricityManager::m_pulseUnits
IL_00B3: ldlen
IL_00B4: conv.i4
IL_00B5: bne.un => Label7
IL_00BA: ldarg.0
IL_00BB: ldc.i4.0
IL_00BC: stfld System.Int32 ElectricityManager::m_pulseUnitEnd
IL_00C1: Label7
IL_00C1: ldarg.0
IL_00C2: ldfld System.UInt16[] ElectricityManager::m_nodeGroups
IL_00C7: ldarg.1
IL_00C8: ldarg.3
IL_00C9: stelem.i2
IL_00CA: ldarg.0
IL_00CB: ldc.i4.1
IL_00CC: stfld System.Boolean ElectricityManager::m_canContinue
IL_00D1: br => Label8
IL_00D6: Label6
IL_00D6: ldarg.0
IL_00D7: ldarg.0
IL_00D8: ldfld System.UInt16[] ElectricityManager::m_nodeGroups
IL_00DD: ldarg.1
IL_00DE: ldelem.u2
IL_00DF: call System.UInt16 ElectricityManager::GetRootGroup(System.UInt16
group)
IL_00E4: stloc.3
IL_00E5: ldloc.3
IL_00E6: ldarg.3
IL_00E7: beq => Label9
IL_00EC: ldarg.0
IL_00ED: ldarg.3
IL_00EE: ldloc.3
IL_00EF: call System.Void ElectricityManager::MergeGroups(System.UInt16 root,
System.UInt16 merged)
IL_00F4: ldarg.0
IL_00F5: ldfld System.UInt16[] ElectricityManager::m_nodeGroups
IL_00FA: ldarg.1
IL_00FB: ldarg.3
IL_00FC: stelem.i2
IL_00FD: ldarg.0
IL_00FE: ldc.i4.1
IL_00FF: stfld System.Boolean ElectricityManager::m_canContinue
IL_0104: // end original
IL_0104: Label0
IL_0104: Label1
IL_0104: Label2
IL_0104: Label3
IL_0104: Label5
IL_0104: Label8
IL_0104: Label9
IL_0104: ret
DONE

### Patch: System.Void ElectricityManager::UpdateNodeElectricity(System.Int32


nodeID, System.Int32 value)
### Replacement: static System.Void
ElectricityManager::ElectricityManager.UpdateNodeElectricity_Patch2(ElectricityMana
ger this, System.Int32 nodeID, System.Int32 value)
IL_0000: Local var 0: InfoManager/InfoMode
IL_0000: Local var 1: NetManager
IL_0000: Local var 2: System.Boolean
IL_0000: Local var 3: NetNode/Flags
IL_0000: Local var 4: System.UInt16
IL_0000: Local var 5: BuildingManager
IL_0000: Local var 6: NetNode/Flags
IL_0000: Local var 7: System.Int32
IL_0000: Local var 8: System.UInt16
IL_0000: Local var 9: System.Boolean
IL_0000: Local var 10: System.Boolean
IL_0000: ldc.i4 0
IL_0005: stloc 9 (System.Boolean)
IL_0009: ldc.i4.1
IL_000A: stloc 9 (System.Boolean)
IL_000E: ldc.i4 0
IL_0013: stloc 10 (System.Boolean)
IL_0017: ldloc 9 (System.Boolean)
IL_001B: brfalse => Label1
IL_0020: ldarga 1
IL_0024: ldloca 10 (System.Boolean)
IL_0028: call static System.Void
ElectricRoads.Overrides.ElectricRoadsOverrides::PreConduct(System.Int32& nodeID,
System.Boolean& __state)
IL_002D: Label1
IL_002D: nop
IL_002E: ldloc 9 (System.Boolean)
IL_0032: brfalse => Label0
IL_0037: // start original
IL_0037: call static InfoManager
ColossalFramework.Singleton`1<InfoManager>::get_instance()
IL_003C: callvirt InfoMode InfoManager::get_CurrentMode()
IL_0041: stloc.0
IL_0042: call static NetManager
ColossalFramework.Singleton`1<NetManager>::get_instance()
IL_0047: stloc.1
IL_0048: ldc.i4.0
IL_0049: stloc.2
IL_004A: ldloc.1
IL_004B: ldfld Array16`1<NetNode> NetManager::m_nodes
IL_0050: ldfld NetNode[] Array16`1<NetNode>::m_buffer
IL_0055: ldarg.1
IL_0056: ldelema NetNode
IL_005B: ldfld Flags NetNode::m_flags
IL_0060: stloc.3
IL_0061: ldarg.1
IL_0062: call static System.Boolean
ElectricRoads.Overrides.ElectricRoadsOverrides::CheckNodeTransition(System.Int32
nodeID)
IL_0067: brfalse => Label2
IL_006C: ldloc.1
IL_006D: ldfld Array16`1<NetNode> NetManager::m_nodes
IL_0072: ldfld NetNode[] Array16`1<NetNode>::m_buffer
IL_0077: ldarg.1
IL_0078: ldelema NetNode
IL_007D: dup
IL_007E: ldfld Flags NetNode::m_flags
IL_0083: ldc.i4 -1048577
IL_0088: and
IL_0089: stfld Flags NetNode::m_flags
IL_008E: br => Label12
IL_0093: Label2
IL_0093: ldloc.1
IL_0094: ldfld Array16`1<NetNode> NetManager::m_nodes
IL_0099: ldfld NetNode[] Array16`1<NetNode>::m_buffer
IL_009E: ldarg.1
IL_009F: ldelema NetNode
IL_00A4: ldfld System.UInt16 NetNode::m_building
IL_00A9: stloc.s 4 (System.UInt16)
IL_00AB: ldloc.s 4 (System.UInt16)
IL_00AD: brfalse => Label3
IL_00B2: call static BuildingManager
ColossalFramework.Singleton`1<BuildingManager>::get_instance()
IL_00B7: stloc.s 5 (BuildingManager)
IL_00B9: ldloc.s 5 (BuildingManager)
IL_00BB: ldfld Array16`1<Building> BuildingManager::m_buildings
IL_00C0: ldfld Building[] Array16`1<Building>::m_buffer
IL_00C5: ldloc.s 4 (System.UInt16)
IL_00C7: ldelema Building
IL_00CC: ldfld System.UInt16 Building::m_electricityBuffer
IL_00D1: ldarg.2
IL_00D2: beq => Label4
IL_00D7: ldloc.s 5 (BuildingManager)
IL_00D9: ldfld Array16`1<Building> BuildingManager::m_buildings
IL_00DE: ldfld Building[] Array16`1<Building>::m_buffer
IL_00E3: ldloc.s 4 (System.UInt16)
IL_00E5: ldelema Building
IL_00EA: ldarg.2
IL_00EB: conv.u2
IL_00EC: stfld System.UInt16 Building::m_electricityBuffer
IL_00F1: ldloc.0
IL_00F2: ldc.i4.1
IL_00F3: ceq
IL_00F5: stloc.2
IL_00F6: Label4
IL_00F6: ldloc.2
IL_00F7: brfalse => Label5
IL_00FC: ldloc.s 5 (BuildingManager)
IL_00FE: ldloc.s 4 (System.UInt16)
IL_0100: callvirt System.Void BuildingManager::UpdateBuildingColors(System.UInt16
building)
IL_0105: Label3
IL_0105: Label5
IL_0105: ldloc.3
IL_0106: ldc.i4 -67108865
IL_010B: and
IL_010C: stloc.s 6 (NetNode+Flags)
IL_010E: ldarg.2
IL_010F: brfalse => Label6
IL_0114: ldloc.s 6 (NetNode+Flags)
IL_0116: ldc.i4 67108864
IL_011B: or
IL_011C: stloc.s 6 (NetNode+Flags)
IL_011E: Label6
IL_011E: ldloc.s 6 (NetNode+Flags)
IL_0120: ldloc.3
IL_0121: beq => Label7
IL_0126: ldloc.1
IL_0127: ldfld Array16`1<NetNode> NetManager::m_nodes
IL_012C: ldfld NetNode[] Array16`1<NetNode>::m_buffer
IL_0131: ldarg.1
IL_0132: ldelema NetNode
IL_0137: ldloc.s 6 (NetNode+Flags)
IL_0139: stfld Flags NetNode::m_flags
IL_013E: ldloc.0
IL_013F: ldc.i4.1
IL_0140: ceq
IL_0142: stloc.2
IL_0143: Label7
IL_0143: ldloc.2
IL_0144: brfalse => Label8
IL_0149: ldloc.1
IL_014A: ldarg.1
IL_014B: conv.u2
IL_014C: callvirt System.Void NetManager::UpdateNodeColors(System.UInt16 node)
IL_0151: ldc.i4.0
IL_0152: stloc.s 7 (System.Int32)
IL_0154: br => Label9
IL_0159: Label11
IL_0159: ldloc.1
IL_015A: ldfld Array16`1<NetNode> NetManager::m_nodes
IL_015F: ldfld NetNode[] Array16`1<NetNode>::m_buffer
IL_0164: ldarg.1
IL_0165: ldelema NetNode
IL_016A: ldloc.s 7 (System.Int32)
IL_016C: call System.UInt16 NetNode::GetSegment(System.Int32 index)
IL_0171: stloc.s 8 (System.UInt16)
IL_0173: ldloc.s 8 (System.UInt16)
IL_0175: brfalse => Label10
IL_017A: ldloc.1
IL_017B: ldloc.s 8 (System.UInt16)
IL_017D: callvirt System.Void NetManager::UpdateSegmentColors(System.UInt16
segment)
IL_0182: Label10
IL_0182: ldloc.s 7 (System.Int32)
IL_0184: ldc.i4.1
IL_0185: add
IL_0186: stloc.s 7 (System.Int32)
IL_0188: Label9
IL_0188: ldloc.s 7 (System.Int32)
IL_018A: ldc.i4.8
IL_018B: blt => Label11
IL_0190: // end original
IL_0190: Label8
IL_0190: Label12
IL_0190: Label0
IL_0190: ldarg 1
IL_0194: ldloc 10 (System.Boolean)
IL_0198: call static System.Void
ElectricRoads.Overrides.ElectricRoadsOverrides::PostConduct(System.Int32 nodeID,
System.Boolean __state)
IL_019D: ret
DONE

### Harmony id=com.github.sway2020.CS-FindIt, version=2.0.4.0, location=E:\


SteamLibrary\steamapps\common\data-0000000022595390, env/clr=2.0.50727.1433,
platform=Win32NT, ptrsize:runtime/env=8/Bits64, Windows
### Started from static System.Void FindIt.Patcher::PatchAll(), location E:\
SteamLibrary\steamapps\common\data-000000002270A240
### At 2023-02-07 02.24.33
### Patch: ColossalFramework.UI.UIButton
GeneratedScrollPanel::CreateButton(System.String name, System.String tooltip,
System.String baseIconName, System.Int32 index, ColossalFramework.UI.UITextureAtlas
atlas, ColossalFramework.UI.UIComponent tooltipBox, System.Boolean enabled,
ColossalFramework.UI.UITextureAtlas badgeAtlas, System.String badgeSpriteName)
### Replacement: static ColossalFramework.UI.UIButton
GeneratedScrollPanel::GeneratedScrollPanel.CreateButton_Patch1(GeneratedScrollPanel
this, System.String name, System.String tooltip, System.String baseIconName,
System.Int32 index, ColossalFramework.UI.UITextureAtlas atlas,
ColossalFramework.UI.UIComponent tooltipBox, System.Boolean enabled,
ColossalFramework.UI.UITextureAtlas badgeAtlas, System.String badgeSpriteName)
IL_0000: Local var 0: ColossalFramework.UI.UIButton
IL_0000: Local var 1: UnityEngine.GameObject
IL_0000: Local var 2: ColossalFramework.UI.UIComponent
IL_0000: Local var 3: ColossalFramework.UI.UISprite
IL_0000: Local var 4: ColossalFramework.UI.UIButton
IL_0000: ldnull
IL_0001: stloc 4 (ColossalFramework.UI.UIButton)
IL_0005: // start original
IL_0005: ldarg.0
IL_0006: ldfld ColossalFramework.UI.UIScrollablePanel
GeneratedScrollPanel::m_ScrollablePanel
IL_000B: callvirt System.Int32 ColossalFramework.UI.UIComponent::get_childCount()
IL_0010: ldarg.0
IL_0011: ldfld System.Int32 GeneratedScrollPanel::m_ObjectIndex
IL_0016: ble => Label0
IL_001B: ldarg.0
IL_001C: ldfld ColossalFramework.UI.UIScrollablePanel
GeneratedScrollPanel::m_ScrollablePanel
IL_0021: callvirt
System.Collections.Generic.IList`1<ColossalFramework.UI.UIComponent>
ColossalFramework.UI.UIComponent::get_components()
IL_0026: ldarg.0
IL_0027: ldfld System.Int32 GeneratedScrollPanel::m_ObjectIndex
IL_002C: callvirt abstract virtual ColossalFramework.UI.UIComponent
System.Collections.Generic.IList`1<ColossalFramework.UI.UIComponent>::get_Item(Syst
em.Int32 index)
IL_0031: isinst ColossalFramework.UI.UIButton
IL_0036: stloc.0
IL_0037: br => Label1
IL_003C: Label0
IL_003C: ldsfld System.String GeneratedScrollPanel::kPlaceableItemTemplate
IL_0041: call static UnityEngine.GameObject
ColossalFramework.UI.UITemplateManager::GetAsGameObject(System.String name)
IL_0046: stloc.1
IL_0047: ldarg.0
IL_0048: ldfld ColossalFramework.UI.UIScrollablePanel
GeneratedScrollPanel::m_ScrollablePanel
IL_004D: ldloc.1
IL_004E: callvirt ColossalFramework.UI.UIComponent
ColossalFramework.UI.UIComponent::AttachUIComponent(UnityEngine.GameObject go)
IL_0053: isinst ColossalFramework.UI.UIButton
IL_0058: stloc.0
IL_0059: Label1
IL_0059: ldloc.0
IL_005A: callvirt UnityEngine.GameObject UnityEngine.Component::get_gameObject()
IL_005F: callvirt TutorialUITag UnityEngine.GameObject::GetComponent()
IL_0064: ldarg.1
IL_0065: callvirt System.Void MonoTutorialTag::set_tutorialTag(System.String
value)
IL_006A: ldloc.0
IL_006B: ldsfld System.String System.String::Empty
IL_0070: callvirt virtual System.Void
ColossalFramework.UI.UITextComponent::set_text(System.String value)
IL_0075: ldloc.0
IL_0076: ldarg.1
IL_0077: callvirt System.Void UnityEngine.Object::set_name(System.String value)
IL_007C: ldloc.0
IL_007D: ldc.i4.2
IL_007E: callvirt System.Void
ColossalFramework.UI.UIComponent::set_tooltipAnchor(ColossalFramework.UI.UITooltipA
nchor value)
IL_0083: ldloc.0
IL_0084: ldc.i4.1
IL_0085: callvirt System.Void
ColossalFramework.UI.UIButton::set_tabStrip(System.Boolean value)
IL_008A: ldloc.0
IL_008B: ldc.i4.1
IL_008C: callvirt virtual System.Void
ColossalFramework.UI.UIInteractiveComponent::set_horizontalAlignment(ColossalFramew
ork.UI.UIHorizontalAlignment value)
IL_0091: ldloc.0
IL_0092: ldc.i4.1
IL_0093: callvirt virtual System.Void
ColossalFramework.UI.UIInteractiveComponent::set_verticalAlignment(ColossalFramewor
k.UI.UIVerticalAlignment value)
IL_0098: ldloc.0
IL_0099: ldc.i4.1
IL_009A: callvirt System.Void
ColossalFramework.UI.UIComponent::set_pivot(ColossalFramework.UI.UIPivotPoint
value)
IL_009F: ldarg.s 5
IL_00A1: ldnull
IL_00A2: call static System.Boolean
UnityEngine.Object::op_Inequality(UnityEngine.Object x, UnityEngine.Object y)
IL_00A7: brfalse => Label2
IL_00AC: ldloc.0
IL_00AD: ldarg.s 5
IL_00AF: callvirt System.Void
ColossalFramework.UI.UIInteractiveComponent::set_atlas(ColossalFramework.UI.UITextu
reAtlas value)
IL_00B4: Label2
IL_00B4: ldarg.s 4
IL_00B6: ldc.i4.m1
IL_00B7: beq => Label3
IL_00BC: ldloc.0
IL_00BD: ldarg.s 4
IL_00BF: callvirt System.Void
ColossalFramework.UI.UIComponent::set_zOrder(System.Int32 value)
IL_00C4: Label3
IL_00C4: ldloc.0
IL_00C5: ldarg.0
IL_00C6: callvirt virtual ColossalFramework.UI.UIVerticalAlignment
GeneratedScrollPanel::get_buttonsAlignment()
IL_00CB: callvirt virtual System.Void
ColossalFramework.UI.UIInteractiveComponent::set_verticalAlignment(ColossalFramewor
k.UI.UIVerticalAlignment value)
IL_00D0: ldloc.0
IL_00D1: ldc.i4.2
IL_00D2: callvirt System.Void
ColossalFramework.UI.UIInteractiveComponent::set_foregroundSpriteMode(ColossalFrame
work.UI.UIForegroundSpriteMode value)
IL_00D7: ldloc.0
IL_00D8: ldarg.3
IL_00D9: callvirt System.Void
ColossalFramework.UI.UIInteractiveComponent::set_normalFgSprite(System.String
value)
IL_00DE: ldloc.0
IL_00DF: ldarg.3
IL_00E0: ldstr "Focused"
IL_00E5: call static System.String System.String::Concat(System.String str0,
System.String str1)
IL_00EA: callvirt System.Void
ColossalFramework.UI.UIInteractiveComponent::set_focusedFgSprite(System.String
value)
IL_00EF: ldloc.0
IL_00F0: ldarg.3
IL_00F1: ldstr "Hovered"
IL_00F6: call static System.String System.String::Concat(System.String str0,
System.String str1)
IL_00FB: callvirt System.Void
ColossalFramework.UI.UIInteractiveComponent::set_hoveredFgSprite(System.String
value)
IL_0100: ldloc.0
IL_0101: ldarg.3
IL_0102: ldstr "Pressed"
IL_0107: call static System.String System.String::Concat(System.String str0,
System.String str1)
IL_010C: callvirt System.Void
ColossalFramework.UI.UIButton::set_pressedFgSprite(System.String value)
IL_0111: ldloc.0
IL_0112: ldarg.3
IL_0113: ldstr "Disabled"
IL_0118: call static System.String System.String::Concat(System.String str0,
System.String str1)
IL_011D: callvirt System.Void
ColossalFramework.UI.UIInteractiveComponent::set_disabledFgSprite(System.String
value)
IL_0122: ldloc.0
IL_0123: callvirt System.Int32 ColossalFramework.UI.UIComponent::get_childCount()
IL_0128: ldc.i4.0
IL_0129: ble => Label4
IL_012E: ldloc.0
IL_012F: callvirt
System.Collections.Generic.IList`1<ColossalFramework.UI.UIComponent>
ColossalFramework.UI.UIComponent::get_components()
IL_0134: ldc.i4.0
IL_0135: callvirt abstract virtual ColossalFramework.UI.UIComponent
System.Collections.Generic.IList`1<ColossalFramework.UI.UIComponent>::get_Item(Syst
em.Int32 index)
IL_013A: br => Label5
IL_013F: Label4
IL_013F: ldnull
IL_0140: Label5
IL_0140: stloc.2
IL_0141: ldloc.2
IL_0142: ldnull
IL_0143: call static System.Boolean
UnityEngine.Object::op_Inequality(UnityEngine.Object x, UnityEngine.Object y)
IL_0148: brfalse => Label6
IL_014D: ldloc.2
IL_014E: ldc.i4.0
IL_014F: callvirt System.Void
ColossalFramework.UI.UIComponent::set_isVisible(System.Boolean value)
IL_0154: Label6
IL_0154: ldloc.0
IL_0155: ldarg.s 7
IL_0157: callvirt System.Void
ColossalFramework.UI.UIComponent::set_isEnabled(System.Boolean value)
IL_015C: ldloc.0
IL_015D: ldarg.2
IL_015E: callvirt System.Void
ColossalFramework.UI.UIComponent::set_tooltip(System.String value)
IL_0163: ldloc.0
IL_0164: ldarg.s 6
IL_0166: callvirt System.Void
ColossalFramework.UI.UIComponent::set_tooltipBox(ColossalFramework.UI.UIComponent
value)
IL_016B: ldloc.0
IL_016C: ldstr "BadgeSprite"
IL_0171: callvirt ColossalFramework.UI.UISprite
ColossalFramework.UI.UIComponent::Find(System.String searchName)
IL_0176: stloc.3
IL_0177: ldloc.3
IL_0178: ldnull
IL_0179: call static System.Boolean
UnityEngine.Object::op_Inequality(UnityEngine.Object x, UnityEngine.Object y)
IL_017E: brfalse => Label7
IL_0183: ldloc.0
IL_0184: ldarg.0
IL_0185: ldftn System.Void
GeneratedScrollPanel::OnPlaceableItemButtonStateChanged(ColossalFramework.UI.UIComp
onent component, ColossalFramework.UI.ButtonState value)
IL_018B: newobj System.Void
ColossalFramework.UI.PropertyChangedEventHandler`1<ColossalFramework.UI.ButtonState
>::.ctor(System.Object object, System.IntPtr method)
IL_0190: callvirt System.Void
ColossalFramework.UI.UIButton::remove_eventButtonStateChanged(ColossalFramework.UI.
PropertyChangedEventHandler`1<ColossalFramework.UI.ButtonState> value)
IL_0195: ldarg.s 8
IL_0197: ldnull
IL_0198: call static System.Boolean
UnityEngine.Object::op_Inequality(UnityEngine.Object x, UnityEngine.Object y)
IL_019D: brfalse => Label8
IL_01A2: ldarg.s 9
IL_01A4: call static System.Boolean
System.String::IsNullOrEmpty(System.String value)
IL_01A9: brtrue => Label9
IL_01AE: ldloc.3
IL_01AF: ldarg.s 8
IL_01B1: callvirt System.Void
ColossalFramework.UI.UISprite::set_atlas(ColossalFramework.UI.UITextureAtlas value)
IL_01B6: ldloc.3
IL_01B7: ldarg.s 7
IL_01B9: brfalse => Label10
IL_01BE: ldarg.s 9
IL_01C0: br => Label11
IL_01C5: Label10
IL_01C5: ldarg.s 9
IL_01C7: ldstr "Disabled"
IL_01CC: call static System.String System.String::Concat(System.String str0,
System.String str1)
IL_01D1: Label11
IL_01D1: callvirt System.Void
ColossalFramework.UI.UISprite::set_spriteName(System.String value)
IL_01D6: ldloc.0
IL_01D7: ldarg.0
IL_01D8: ldftn System.Void
GeneratedScrollPanel::OnPlaceableItemButtonStateChanged(ColossalFramework.UI.UIComp
onent component, ColossalFramework.UI.ButtonState value)
IL_01DE: newobj System.Void
ColossalFramework.UI.PropertyChangedEventHandler`1<ColossalFramework.UI.ButtonState
>::.ctor(System.Object object, System.IntPtr method)
IL_01E3: callvirt System.Void
ColossalFramework.UI.UIButton::add_eventButtonStateChanged(ColossalFramework.UI.Pro
pertyChangedEventHandler`1<ColossalFramework.UI.ButtonState> value)
IL_01E8: br => Label12
IL_01ED: Label8
IL_01ED: Label9
IL_01ED: ldloc.3
IL_01EE: ldsfld System.String System.String::Empty
IL_01F3: callvirt System.Void
ColossalFramework.UI.UISprite::set_spriteName(System.String value)
IL_01F8: Label7
IL_01F8: Label12
IL_01F8: ldloc.0
IL_01F9: ldarg.0
IL_01FA: call ColossalFramework.UI.UIComponent
ColossalFramework.UI.UICustomControl::get_component()
IL_01FF: callvirt System.Void
ColossalFramework.UI.UIButton::set_group(ColossalFramework.UI.UIComponent value)
IL_0204: ldarg.0
IL_0205: dup
IL_0206: ldfld System.Int32 GeneratedScrollPanel::m_ObjectIndex
IL_020B: ldc.i4.1
IL_020C: add
IL_020D: stfld System.Int32 GeneratedScrollPanel::m_ObjectIndex
IL_0212: ldloc.0
IL_0213: // end original
IL_0213: stloc 4 (ColossalFramework.UI.UIButton)
IL_0217: ldloc 4 (ColossalFramework.UI.UIButton)
IL_021B: ldarg.0
IL_021C: ldarg 1
IL_0220: ldarg 2
IL_0224: ldarg 3
IL_0228: ldarg 4
IL_022C: ldarg 5
IL_0230: ldarg 6
IL_0234: ldarg 7
IL_0238: ldarg 8
IL_023C: ldarg 9
IL_0240: call static System.Void
FindIt.CreateButtonPatch::Postfix(ColossalFramework.UI.UIButton __result,
GeneratedScrollPanel __instance, System.String name, System.String tooltip,
System.String baseIconName, System.Int32 index, ColossalFramework.UI.UITextureAtlas
atlas, ColossalFramework.UI.UIComponent tooltipBox, System.Boolean enabled,
ColossalFramework.UI.UITextureAtlas badgeAtlas, System.String badgeSpriteName)
IL_0245: ldloc 4 (ColossalFramework.UI.UIButton)
IL_0249: ret
DONE

### Patch: System.Void KeyShortcuts::SelectUIButton(System.String tagString)


### Replacement: static System.Void
KeyShortcuts::KeyShortcuts.SelectUIButton_Patch1(KeyShortcuts this, System.String
tagString)
IL_0000: Local var 0: TutorialUITag
IL_0000: Local var 1: System.Int32
IL_0000: Local var 2: System.Boolean
IL_0000: ldc.i4 0
IL_0005: stloc 2 (System.Boolean)
IL_0009: ldc.i4.1
IL_000A: stloc 2 (System.Boolean)
IL_000E: ldloc 2 (System.Boolean)
IL_0012: brfalse => Label1
IL_0017: ldarga 1
IL_001B: call static System.Boolean
FindIt.SelectUIButtonPatch::Prefix(System.String& tagString)
IL_0020: stloc 2 (System.Boolean)
IL_0024: Label1
IL_0024: nop
IL_0025: ldloc 2 (System.Boolean)
IL_0029: brfalse => Label0
IL_002E: // start original
IL_002E: call static System.Boolean
ColossalFramework.Singleton`1<PopsManager>::get_exists()
IL_0033: brfalse => Label2
IL_0038: call static PopsManager
ColossalFramework.Singleton`1<PopsManager>::get_instance()
IL_003D: ldarg.1
IL_003E: callvirt System.Void PopsManager::ShortcutPressed(System.String
tagString)
IL_0043: Label2
IL_0043: ldarg.1
IL_0044: call static IUITag MonoTutorialTag::Find(System.String tag)
IL_0049: isinst TutorialUITag
IL_004E: stloc.0
IL_004F: ldloc.0
IL_0050: ldnull
IL_0051: call static System.Boolean
UnityEngine.Object::op_Inequality(UnityEngine.Object x, UnityEngine.Object y)
IL_0056: brfalse => Label3
IL_005B: ldloc.0
IL_005C: callvirt ColossalFramework.UI.UIComponent
TutorialUITag::get_finalTarget()
IL_0061: ldnull
IL_0062: call static System.Boolean
UnityEngine.Object::op_Inequality(UnityEngine.Object x, UnityEngine.Object y)
IL_0067: brfalse => Label4
IL_006C: ldc.i4.s 100
IL_006E: stloc.1
IL_006F: br => Label5
IL_0074: Label8
IL_0074: ldloc.0
IL_0075: callvirt ColossalFramework.UI.UIComponent TutorialUITag::get_target()
IL_007A: ldloc.0
IL_007B: callvirt ColossalFramework.UI.UIComponent
TutorialUITag::get_finalTarget()
IL_0080: call static System.Boolean
UnityEngine.Object::op_Equality(UnityEngine.Object x, UnityEngine.Object y)
IL_0085: brfalse => Label6
IL_008A: ldloc.0
IL_008B: callvirt ColossalFramework.UI.UIComponent TutorialUITag::get_target()
IL_0090: callvirt System.Void ColossalFramework.UI.UIComponent::SimulateClick()
IL_0095: br => Label9
IL_009A: Label6
IL_009A: ldloc.0
IL_009B: callvirt ColossalFramework.UI.UIComponent TutorialUITag::get_target()
IL_00A0: callvirt System.Void ColossalFramework.UI.UIComponent::SimulateClick()
IL_00A5: ldloc.0
IL_00A6: callvirt ColossalFramework.UI.UIComponent TutorialUITag::get_target()
IL_00AB: callvirt System.Boolean
ColossalFramework.UI.UIComponent::get_isEnabled()
IL_00B0: brtrue => Label7
IL_00B5: br => Label10
IL_00BA: Label7
IL_00BA: ldloc.1
IL_00BB: ldc.i4.1
IL_00BC: sub
IL_00BD: stloc.1
IL_00BE: Label5
IL_00BE: ldloc.1
IL_00BF: ldc.i4.0
IL_00C0: bgt => Label8
IL_00C5: ldc.i4.2
IL_00C6: ldstr "SelectUIButton() was terminated to prevent an infinite loop.
This might be some kind of bug... :D"
IL_00CB: call static System.Void
ColossalFramework.CODebugBase`1<LogChannel>::Error(LogChannel ll, System.String
msg)
IL_00D0: // end original
IL_00D0: Label3
IL_00D0: Label4
IL_00D0: Label9
IL_00D0: Label10
IL_00D0: Label0
IL_00D0: ret
DONE

### Patch: virtual System.Void ColossalFramework.UI.UIView::Start()


### Replacement: static System.Void
ColossalFramework.UI.UIView::ColossalFramework.UI.UIView.Start_Patch0(ColossalFrame
work.UI.UIView this)
IL_0000: Local var 0:
ColossalFramework.PoolList`1<ColossalFramework.UI.UIComponent>
IL_0000: Local var 1: ColossalFramework.UI.UIComponent
IL_0000: Local var 2:
System.Collections.Generic.IEnumerator`1<ColossalFramework.UI.UIComponent>
IL_0000: // start original
IL_0000: ldarg.0
IL_0001: ldc.i4.0
IL_0002: stfld System.Int32 ColossalFramework.UI.UIView::m_FramesRendered
IL_0007: ldarg.0
IL_0008: call System.Void
ColossalFramework.UI.UIView::InvalidateAllComponents()
IL_000D: ldarg.0
IL_000E: ldfld UnityEngine.MeshRenderer
ColossalFramework.UI.UIView::m_MeshRenderer
IL_0013: ldnull
IL_0014: call static System.Boolean
UnityEngine.Object::op_Inequality(UnityEngine.Object x, UnityEngine.Object y)
IL_0019: brfalse => Label0
IL_001E: ldarg.0
IL_001F: ldfld UnityEngine.MeshRenderer
ColossalFramework.UI.UIView::m_MeshRenderer
IL_0024: ldc.i4.1
IL_0025: callvirt System.Void UnityEngine.Renderer::set_enabled(System.Boolean
value)
IL_002A: Label0
IL_002A: ldarg.0
IL_002B: call ColossalFramework.PoolList`1<ColossalFramework.UI.UIComponent>
ColossalFramework.UI.UIView::GetTopLevelComponents()
IL_0030: stloc.0
.try
{
IL_0031: ldloc.0
IL_0032: callvirt virtual
System.Collections.Generic.IEnumerator`1<ColossalFramework.UI.UIComponent>
ColossalFramework.PoolList`1<ColossalFramework.UI.UIComponent>::GetEnumerator()
IL_0037: stloc.2
.try
{
IL_0038: br => Label1
IL_003D: Label2
IL_003D: ldloc.2
IL_003E: callvirt abstract virtual ColossalFramework.UI.UIComponent
System.Collections.Generic.IEnumerator`1<ColossalFramework.UI.UIComponent>::get_Cur
rent()
IL_0043: stloc.1
IL_0044: ldloc.1
IL_0045: ldc.i4.1
IL_0046: callvirt System.Void
ColossalFramework.UI.UIComponent::InitializeParentVisibilityCache(System.Boolean
parentVisible)
IL_004B: Label1
IL_004B: ldloc.2
IL_004C: callvirt abstract virtual System.Boolean
System.Collections.IEnumerator::MoveNext()
IL_0051: brtrue => Label2
IL_0056: leave => Label3
IL_005B: leave => (autogenerated)
} // end try
.finally
{
IL_0060: ldloc.2
IL_0061: brfalse => Label4
IL_0066: ldloc.2
IL_0067: callvirt abstract virtual System.Void
System.IDisposable::Dispose()
IL_006C: Label4
IL_006C: endfinally
IL_006D: leave => (autogenerated)
} // end handler
IL_006E: Label3
IL_006E: leave => Label5
IL_0073: leave => (autogenerated)
} // end try
.finally
{
IL_0078: ldloc.0
IL_0079: brfalse => Label6
IL_007E: ldloc.0
IL_007F: callvirt abstract virtual System.Void
System.IDisposable::Dispose()
IL_0084: Label6
IL_0084: endfinally
IL_0085: leave => (autogenerated)
} // end handler
IL_0086: Label5
IL_0086: ldarg.0
IL_0087: ldc.i4.1
IL_0088: stfld System.Boolean
ColossalFramework.UI.UIView::m_VisibilityCacheInitialized
IL_008D: // end original
IL_008D: ret
DONE

### Patch: virtual UnityEngine.Color NetAI::GetColor(System.UInt16 nodeID, NetNode&


data, InfoMode infoMode, SubInfoMode subInfoMode)
### Replacement: static UnityEngine.Color NetAI::NetAI.GetColor_Patch0(NetAI this,
System.UInt16 nodeID, NetNode& data, InfoMode infoMode, SubInfoMode subInfoMode)
IL_0000: // start original
IL_0000: ldarg.3
IL_0001: brfalse => Label0
IL_0006: call static InfoManager
ColossalFramework.Singleton`1<InfoManager>::get_instance()
IL_000B: ldfld InfoProperties SimulationManagerBase`2<InfoManager,
InfoProperties>::m_properties
IL_0010: ldfld UnityEngine.Color InfoProperties::m_neutralColor
IL_0015: br => Label1
IL_001A: Label0
IL_001A: ldarg.0
IL_001B: ldfld NetInfo NetAI::m_info
IL_0020: ldfld UnityEngine.Color NetInfo::m_color
IL_0025: // end original
IL_0025: Label1
IL_0025: ret
DONE

### Patch: virtual UnityEngine.Color NetAI::GetColor(System.UInt16 segmentID,


NetSegment& data, InfoMode infoMode, SubInfoMode subInfoMode)
### Replacement: static UnityEngine.Color NetAI::NetAI.GetColor_Patch0(NetAI this,
System.UInt16 segmentID, NetSegment& data, InfoMode infoMode, SubInfoMode
subInfoMode)
IL_0000: // start original
IL_0000: ldarg.3
IL_0001: brfalse => Label0
IL_0006: call static InfoManager
ColossalFramework.Singleton`1<InfoManager>::get_instance()
IL_000B: ldfld InfoProperties SimulationManagerBase`2<InfoManager,
InfoProperties>::m_properties
IL_0010: ldfld UnityEngine.Color InfoProperties::m_neutralColor
IL_0015: br => Label1
IL_001A: Label0
IL_001A: ldarg.0
IL_001B: ldfld NetInfo NetAI::m_info
IL_0020: ldfld UnityEngine.Color NetInfo::m_color
IL_0025: // end original
IL_0025: Label1
IL_0025: ret
DONE

### Patch: System.Void ElectricityManager::UpdateNodeElectricity(System.Int32


nodeID, System.Int32 value)
### Replacement: static System.Void
ElectricityManager::ElectricityManager.UpdateNodeElectricity_Patch0(ElectricityMana
ger this, System.Int32 nodeID, System.Int32 value)
IL_0000: Local var 0: InfoManager/InfoMode
IL_0000: Local var 1: NetManager
IL_0000: Local var 2: System.Boolean
IL_0000: Local var 3: NetNode/Flags
IL_0000: Local var 4: System.UInt16
IL_0000: Local var 5: BuildingManager
IL_0000: Local var 6: NetNode/Flags
IL_0000: Local var 7: System.Int32
IL_0000: Local var 8: System.UInt16
IL_0000: // start original
IL_0000: call static InfoManager
ColossalFramework.Singleton`1<InfoManager>::get_instance()
IL_0005: callvirt InfoMode InfoManager::get_CurrentMode()
IL_000A: stloc.0
IL_000B: call static NetManager
ColossalFramework.Singleton`1<NetManager>::get_instance()
IL_0010: stloc.1
IL_0011: ldc.i4.0
IL_0012: stloc.2
IL_0013: ldloc.1
IL_0014: ldfld Array16`1<NetNode> NetManager::m_nodes
IL_0019: ldfld NetNode[] Array16`1<NetNode>::m_buffer
IL_001E: ldarg.1
IL_001F: ldelema NetNode
IL_0024: ldfld Flags NetNode::m_flags
IL_0029: stloc.3
IL_002A: ldloc.3
IL_002B: ldc.i4 1048576
IL_0030: and
IL_0031: brfalse => Label0
IL_0036: ldloc.1
IL_0037: ldfld Array16`1<NetNode> NetManager::m_nodes
IL_003C: ldfld NetNode[] Array16`1<NetNode>::m_buffer
IL_0041: ldarg.1
IL_0042: ldelema NetNode
IL_0047: dup
IL_0048: ldfld Flags NetNode::m_flags
IL_004D: ldc.i4 -1048577
IL_0052: and
IL_0053: stfld Flags NetNode::m_flags
IL_0058: br => Label10
IL_005D: Label0
IL_005D: ldloc.1
IL_005E: ldfld Array16`1<NetNode> NetManager::m_nodes
IL_0063: ldfld NetNode[] Array16`1<NetNode>::m_buffer
IL_0068: ldarg.1
IL_0069: ldelema NetNode
IL_006E: ldfld System.UInt16 NetNode::m_building
IL_0073: stloc.s 4 (System.UInt16)
IL_0075: ldloc.s 4 (System.UInt16)
IL_0077: brfalse => Label1
IL_007C: call static BuildingManager
ColossalFramework.Singleton`1<BuildingManager>::get_instance()
IL_0081: stloc.s 5 (BuildingManager)
IL_0083: ldloc.s 5 (BuildingManager)
IL_0085: ldfld Array16`1<Building> BuildingManager::m_buildings
IL_008A: ldfld Building[] Array16`1<Building>::m_buffer
IL_008F: ldloc.s 4 (System.UInt16)
IL_0091: ldelema Building
IL_0096: ldfld System.UInt16 Building::m_electricityBuffer
IL_009B: ldarg.2
IL_009C: beq => Label2
IL_00A1: ldloc.s 5 (BuildingManager)
IL_00A3: ldfld Array16`1<Building> BuildingManager::m_buildings
IL_00A8: ldfld Building[] Array16`1<Building>::m_buffer
IL_00AD: ldloc.s 4 (System.UInt16)
IL_00AF: ldelema Building
IL_00B4: ldarg.2
IL_00B5: conv.u2
IL_00B6: stfld System.UInt16 Building::m_electricityBuffer
IL_00BB: ldloc.0
IL_00BC: ldc.i4.1
IL_00BD: ceq
IL_00BF: stloc.2
IL_00C0: Label2
IL_00C0: ldloc.2
IL_00C1: brfalse => Label3
IL_00C6: ldloc.s 5 (BuildingManager)
IL_00C8: ldloc.s 4 (System.UInt16)
IL_00CA: callvirt System.Void BuildingManager::UpdateBuildingColors(System.UInt16
building)
IL_00CF: Label1
IL_00CF: Label3
IL_00CF: ldloc.3
IL_00D0: ldc.i4 -67108865
IL_00D5: and
IL_00D6: stloc.s 6 (NetNode+Flags)
IL_00D8: ldarg.2
IL_00D9: brfalse => Label4
IL_00DE: ldloc.s 6 (NetNode+Flags)
IL_00E0: ldc.i4 67108864
IL_00E5: or
IL_00E6: stloc.s 6 (NetNode+Flags)
IL_00E8: Label4
IL_00E8: ldloc.s 6 (NetNode+Flags)
IL_00EA: ldloc.3
IL_00EB: beq => Label5
IL_00F0: ldloc.1
IL_00F1: ldfld Array16`1<NetNode> NetManager::m_nodes
IL_00F6: ldfld NetNode[] Array16`1<NetNode>::m_buffer
IL_00FB: ldarg.1
IL_00FC: ldelema NetNode
IL_0101: ldloc.s 6 (NetNode+Flags)
IL_0103: stfld Flags NetNode::m_flags
IL_0108: ldloc.0
IL_0109: ldc.i4.1
IL_010A: ceq
IL_010C: stloc.2
IL_010D: Label5
IL_010D: ldloc.2
IL_010E: brfalse => Label6
IL_0113: ldloc.1
IL_0114: ldarg.1
IL_0115: conv.u2
IL_0116: callvirt System.Void NetManager::UpdateNodeColors(System.UInt16 node)
IL_011B: ldc.i4.0
IL_011C: stloc.s 7 (System.Int32)
IL_011E: br => Label7
IL_0123: Label9
IL_0123: ldloc.1
IL_0124: ldfld Array16`1<NetNode> NetManager::m_nodes
IL_0129: ldfld NetNode[] Array16`1<NetNode>::m_buffer
IL_012E: ldarg.1
IL_012F: ldelema NetNode
IL_0134: ldloc.s 7 (System.Int32)
IL_0136: call System.UInt16 NetNode::GetSegment(System.Int32 index)
IL_013B: stloc.s 8 (System.UInt16)
IL_013D: ldloc.s 8 (System.UInt16)
IL_013F: brfalse => Label8
IL_0144: ldloc.1
IL_0145: ldloc.s 8 (System.UInt16)
IL_0147: callvirt System.Void NetManager::UpdateSegmentColors(System.UInt16
segment)
IL_014C: Label8
IL_014C: ldloc.s 7 (System.Int32)
IL_014E: ldc.i4.1
IL_014F: add
IL_0150: stloc.s 7 (System.Int32)
IL_0152: Label7
IL_0152: ldloc.s 7 (System.Int32)
IL_0154: ldc.i4.8
IL_0155: blt => Label9
IL_015A: // end original
IL_015A: Label6
IL_015A: Label10
IL_015A: ret
DONE

### Patch: static System.Void PropInstance::RenderInstance(CameraInfo cameraInfo,


PropInfo info, InstanceID id, UnityEngine.Vector3 position, System.Single scale,
System.Single angle, UnityEngine.Color color, UnityEngine.Vector4 objectIndex,
System.Boolean active, UnityEngine.Texture heightMap, UnityEngine.Vector4
heightMapping, UnityEngine.Vector4 surfaceMapping, UnityEngine.Texture
waterHeightMap, UnityEngine.Vector4 waterHeightMapping, UnityEngine.Vector4
waterSurfaceMapping)
### Replacement: static System.Void
PropInstance::PropInstance.RenderInstance_Patch0(CameraInfo cameraInfo, PropInfo
info, InstanceID id, UnityEngine.Vector3 position, System.Single scale,
System.Single angle, UnityEngine.Color color, UnityEngine.Vector4 objectIndex,
System.Boolean active, UnityEngine.Texture heightMap, UnityEngine.Vector4
heightMapping, UnityEngine.Vector4 surfaceMapping, UnityEngine.Texture
waterHeightMap, UnityEngine.Vector4 waterHeightMapping, UnityEngine.Vector4
waterSurfaceMapping)
IL_0000: Local var 0: UnityEngine.Matrix4x4
IL_0000: Local var 1: System.Single
IL_0000: Local var 2: System.Int32
IL_0000: Local var 3: UnityEngine.Vector3
IL_0000: Local var 4: UnityEngine.Vector3
IL_0000: Local var 5: EffectInfo/SpawnArea
IL_0000: Local var 6: System.Single
IL_0000: Local var 7: LightSystem
IL_0000: Local var 8: ColossalFramework.Math.Randomizer
IL_0000: Local var 9: UnityEngine.Vector4
IL_0000: Local var 10: System.Single
IL_0000: Local var 11: System.Single
IL_0000: Local var 12: System.Single
IL_0000: Local var 13: UnityEngine.Matrix4x4
IL_0000: Local var 14: PropManager
IL_0000: Local var 15: UnityEngine.MaterialPropertyBlock
IL_0000: Local var 16: System.Int32
IL_0000: // start original
IL_0000: ldarg.1
IL_0001: ldfld System.Boolean PrefabInfo::m_prefabInitialized
IL_0006: brfalse => Label0
IL_000B: ldarg.1
IL_000C: ldfld System.Boolean PropInfo::m_hasEffects
IL_0011: brfalse => Label1
IL_0016: ldarg.s 8
IL_0018: brtrue => Label2
IL_001D: ldarg.1
IL_001E: ldfld System.Boolean PropInfo::m_alwaysActive
IL_0023: brfalse => Label3
IL_0028: Label2
IL_0028: ldloca.s 0 (UnityEngine.Matrix4x4)
IL_002A: initobj UnityEngine.Matrix4x4
IL_0030: ldloca.s 0 (UnityEngine.Matrix4x4)
IL_0032: ldarg.3
IL_0033: ldarg.s 5
IL_0035: ldc.r4 57.29578
IL_003A: mul
IL_003B: call static UnityEngine.Vector3 UnityEngine.Vector3::get_down()
IL_0040: call static UnityEngine.Quaternion
UnityEngine.Quaternion::AngleAxis(System.Single angle, UnityEngine.Vector3 axis)
IL_0045: ldarg.s 4
IL_0047: ldarg.s 4
IL_0049: ldarg.s 4
IL_004B: newobj System.Void UnityEngine.Vector3::.ctor(System.Single x,
System.Single y, System.Single z)
IL_0050: call System.Void UnityEngine.Matrix4x4::SetTRS(UnityEngine.Vector3
pos, UnityEngine.Quaternion q, UnityEngine.Vector3 s)
IL_0055: call static SimulationManager
ColossalFramework.Singleton`1<SimulationManager>::get_instance()
IL_005A: ldfld System.Single SimulationManager::m_simulationTimeDelta
IL_005F: stloc.1
IL_0060: ldc.i4.0
IL_0061: stloc.2
IL_0062: br => Label4
IL_0067: Label5
IL_0067: ldloca.s 0 (UnityEngine.Matrix4x4)
IL_0069: ldarg.1
IL_006A: ldfld Effect[] PropInfo::m_effects
IL_006F: ldloc.2
IL_0070: ldelema PropInfo+Effect
IL_0075: ldfld UnityEngine.Vector3 Effect::m_position
IL_007A: call UnityEngine.Vector3
UnityEngine.Matrix4x4::MultiplyPoint(UnityEngine.Vector3 v)
IL_007F: stloc.3
IL_0080: ldloca.s 0 (UnityEngine.Matrix4x4)
IL_0082: ldarg.1
IL_0083: ldfld Effect[] PropInfo::m_effects
IL_0088: ldloc.2
IL_0089: ldelema PropInfo+Effect
IL_008E: ldfld UnityEngine.Vector3 Effect::m_direction
IL_0093: call UnityEngine.Vector3
UnityEngine.Matrix4x4::MultiplyVector(UnityEngine.Vector3 v)
IL_0098: stloc.s 4 (UnityEngine.Vector3)
IL_009A: ldloca.s 5 (EffectInfo+SpawnArea)
IL_009C: ldloc.3
IL_009D: ldloc.s 4 (UnityEngine.Vector3)
IL_009F: ldc.r4 0
IL_00A4: call System.Void SpawnArea::.ctor(UnityEngine.Vector3 position,
UnityEngine.Vector3 direction, System.Single radius)
IL_00A9: ldarg.1
IL_00AA: ldfld Effect[] PropInfo::m_effects
IL_00AF: ldloc.2
IL_00B0: ldelema PropInfo+Effect
IL_00B5: ldfld EffectInfo Effect::m_effect
IL_00BA: ldarg.2
IL_00BB: ldloc.s 5 (EffectInfo+SpawnArea)
IL_00BD: call static UnityEngine.Vector3 UnityEngine.Vector3::get_zero()
IL_00C2: ldc.r4 0
IL_00C7: ldc.r4 1
IL_00CC: ldc.r4 -1
IL_00D1: ldloc.1
IL_00D2: ldarg.0
IL_00D3: callvirt virtual System.Void EffectInfo::RenderEffect(InstanceID id,
SpawnArea area, UnityEngine.Vector3 velocity, System.Single acceleration,
System.Single magnitude, System.Single timeOffset, System.Single timeDelta,
CameraInfo cameraInfo)
IL_00D8: ldloc.2
IL_00D9: ldc.i4.1
IL_00DA: add
IL_00DB: stloc.2
IL_00DC: Label4
IL_00DC: ldloc.2
IL_00DD: ldarg.1
IL_00DE: ldfld Effect[] PropInfo::m_effects
IL_00E3: ldlen
IL_00E4: conv.i4
IL_00E5: blt => Label5
IL_00EA: Label1
IL_00EA: Label3
IL_00EA: ldarg.1
IL_00EB: ldfld System.Boolean PropInfo::m_hasRenderer
IL_00F0: brfalse => Label6
IL_00F5: ldarg.0
IL_00F6: ldfld System.Int32 CameraInfo::m_layerMask
IL_00FB: ldc.i4.1
IL_00FC: ldarg.1
IL_00FD: ldfld System.Int32 PrefabInfo::m_prefabDataLayer
IL_0102: ldc.i4.s 31
IL_0104: and
IL_0105: shl
IL_0106: and
IL_0107: brfalse => Label7
IL_010C: call static InfoManager
ColossalFramework.Singleton`1<InfoManager>::get_instance()
IL_0111: callvirt InfoMode InfoManager::get_CurrentMode()
IL_0116: brtrue => Label8
IL_011B: ldc.r4 0
IL_0120: stloc.s 6 (System.Single)
IL_0122: ldarg.s 8
IL_0124: brtrue => Label9
IL_0129: ldarg.1
IL_012A: ldfld System.Boolean PropInfo::m_alwaysActive
IL_012F: brtrue => Label10
IL_0134: ldarga.s 7
IL_0136: ldc.r4 0
IL_013B: stfld System.Single UnityEngine.Vector4::z
IL_0140: br => Label11
IL_0145: Label9
IL_0145: Label10
IL_0145: ldarg.1
IL_0146: ldflda UnityEngine.Vector2 PropInfo::m_illuminationOffRange
IL_014B: ldfld System.Single UnityEngine.Vector2::x
IL_0150: ldc.r4 1000
IL_0155: blt => Label12
IL_015A: ldarg.1
IL_015B: ldfld BlinkType PropInfo::m_illuminationBlinkType
IL_0160: brfalse => Label13
IL_0165: Label12
IL_0165: call static RenderManager
ColossalFramework.Singleton`1<RenderManager>::get_instance()
IL_016A: callvirt LightSystem RenderManager::get_lightSystem()
IL_016F: stloc.s 7 (LightSystem)
IL_0171: ldloca.s 8 (ColossalFramework.Math.Randomizer)
IL_0173: ldarga.s 2
IL_0175: call System.UInt32 InstanceID::get_Index()
IL_017A: call System.Void
ColossalFramework.Math.Randomizer::.ctor(System.UInt32 _seed)
IL_017F: ldarg.1
IL_0180: ldflda UnityEngine.Vector2 PropInfo::m_illuminationOffRange
IL_0185: ldfld System.Single UnityEngine.Vector2::x
IL_018A: ldloca.s 8 (ColossalFramework.Math.Randomizer)
IL_018C: ldc.i4 100000
IL_0191: call System.Int32
ColossalFramework.Math.Randomizer::Int32(System.UInt32 range)
IL_0196: conv.r4
IL_0197: ldc.r4 1E-05
IL_019C: mul
IL_019D: ldarg.1
IL_019E: ldflda UnityEngine.Vector2 PropInfo::m_illuminationOffRange
IL_01A3: ldfld System.Single UnityEngine.Vector2::y
IL_01A8: ldarg.1
IL_01A9: ldflda UnityEngine.Vector2 PropInfo::m_illuminationOffRange
IL_01AE: ldfld System.Single UnityEngine.Vector2::x
IL_01B3: sub
IL_01B4: mul
IL_01B5: add
IL_01B6: stloc.s 6 (System.Single)
IL_01B8: ldarga.s 7
IL_01BA: ldloc.s 6 (System.Single)
IL_01BC: ldc.r4 0.01
IL_01C1: add
IL_01C2: ldloc.s 6 (System.Single)
IL_01C4: ldc.r4 0.01
IL_01C9: sub
IL_01CA: ldloc.s 7 (LightSystem)
IL_01CC: callvirt System.Single LightSystem::get_DayLightIntensity()
IL_01D1: call static System.Single MathUtils::SmoothStep(System.Single edge0,
System.Single edge1, System.Single x)
IL_01D6: stfld System.Single UnityEngine.Vector4::z
IL_01DB: ldarg.1
IL_01DC: ldfld BlinkType PropInfo::m_illuminationBlinkType
IL_01E1: brfalse => Label14
IL_01E6: ldarg.1
IL_01E7: ldfld BlinkType PropInfo::m_illuminationBlinkType
IL_01EC: call static UnityEngine.Vector4
LightEffect::GetBlinkVector(BlinkType type)
IL_01F1: stloc.s 9 (UnityEngine.Vector4)
IL_01F3: ldloc.s 6 (System.Single)
IL_01F5: ldc.r4 3.71
IL_01FA: mul
IL_01FB: call static SimulationManager
ColossalFramework.Singleton`1<SimulationManager>::get_instance()
IL_0200: ldfld System.Single SimulationManager::m_simulationTimer
IL_0205: ldloca.s 9 (UnityEngine.Vector4)
IL_0207: ldfld System.Single UnityEngine.Vector4::w
IL_020C: div
IL_020D: add
IL_020E: stloc.s 10 (System.Single)
IL_0210: ldloc.s 10 (System.Single)
IL_0212: ldloc.s 10 (System.Single)
IL_0214: call static System.Single UnityEngine.Mathf::Floor(System.Single f)
IL_0219: sub
IL_021A: ldloca.s 9 (UnityEngine.Vector4)
IL_021C: ldfld System.Single UnityEngine.Vector4::w
IL_0221: mul
IL_0222: stloc.s 10 (System.Single)
IL_0224: ldloca.s 9 (UnityEngine.Vector4)
IL_0226: ldfld System.Single UnityEngine.Vector4::x
IL_022B: ldloca.s 9 (UnityEngine.Vector4)
IL_022D: ldfld System.Single UnityEngine.Vector4::y
IL_0232: ldloc.s 10 (System.Single)
IL_0234: call static System.Single MathUtils::SmoothStep(System.Single edge0,
System.Single edge1, System.Single x)
IL_0239: stloc.s 11 (System.Single)
IL_023B: ldloca.s 9 (UnityEngine.Vector4)
IL_023D: ldfld System.Single UnityEngine.Vector4::w
IL_0242: ldloca.s 9 (UnityEngine.Vector4)
IL_0244: ldfld System.Single UnityEngine.Vector4::z
IL_0249: ldloc.s 10 (System.Single)
IL_024B: call static System.Single MathUtils::SmoothStep(System.Single edge0,
System.Single edge1, System.Single x)
IL_0250: stloc.s 12 (System.Single)
IL_0252: ldarga.s 7
IL_0254: dup
IL_0255: ldfld System.Single UnityEngine.Vector4::z
IL_025A: ldc.r4 1
IL_025F: ldloc.s 11 (System.Single)
IL_0261: ldloc.s 12 (System.Single)
IL_0263: mul
IL_0264: sub
IL_0265: mul
IL_0266: stfld System.Single UnityEngine.Vector4::z
IL_026B: Label14
IL_026B: br => Label15
IL_0270: Label13
IL_0270: ldarga.s 7
IL_0272: ldc.r4 1
IL_0277: stfld System.Single UnityEngine.Vector4::z
IL_027C: Label8
IL_027C: Label11
IL_027C: Label15
IL_027C: ldarg.0
IL_027D: brfalse => Label16
IL_0282: ldarg.0
IL_0283: ldarg.3
IL_0284: ldarg.1
IL_0285: ldfld System.Single PropInfo::m_lodRenderDistance
IL_028A: callvirt System.Boolean
CameraInfo::CheckRenderDistance(UnityEngine.Vector3 point, System.Single
maxDistance)
IL_028F: brfalse => Label17
IL_0294: Label16
IL_0294: ldloca.s 13 (UnityEngine.Matrix4x4)
IL_0296: initobj UnityEngine.Matrix4x4
IL_029C: ldloca.s 13 (UnityEngine.Matrix4x4)
IL_029E: ldarg.3
IL_029F: ldarg.s 5
IL_02A1: ldc.r4 57.29578
IL_02A6: mul
IL_02A7: call static UnityEngine.Vector3 UnityEngine.Vector3::get_down()
IL_02AC: call static UnityEngine.Quaternion
UnityEngine.Quaternion::AngleAxis(System.Single angle, UnityEngine.Vector3 axis)
IL_02B1: ldarg.s 4
IL_02B3: ldarg.s 4
IL_02B5: ldarg.s 4
IL_02B7: newobj System.Void UnityEngine.Vector3::.ctor(System.Single x,
System.Single y, System.Single z)
IL_02BC: call System.Void UnityEngine.Matrix4x4::SetTRS(UnityEngine.Vector3
pos, UnityEngine.Quaternion q, UnityEngine.Vector3 s)
IL_02C1: call static PropManager
ColossalFramework.Singleton`1<PropManager>::get_instance()
IL_02C6: stloc.s 14 (PropManager)
IL_02C8: ldloc.s 14 (PropManager)
IL_02CA: ldfld UnityEngine.MaterialPropertyBlock PropManager::m_materialBlock
IL_02CF: stloc.s 15 (UnityEngine.MaterialPropertyBlock)
IL_02D1: ldloc.s 15 (UnityEngine.MaterialPropertyBlock)
IL_02D3: callvirt System.Void UnityEngine.MaterialPropertyBlock::Clear()
IL_02D8: ldloc.s 15 (UnityEngine.MaterialPropertyBlock)
IL_02DA: ldloc.s 14 (PropManager)
IL_02DC: ldfld System.Int32 PropManager::ID_Color
IL_02E1: ldarg.s 6
IL_02E3: callvirt System.Void
UnityEngine.MaterialPropertyBlock::SetColor(System.Int32 nameID, UnityEngine.Color
value)
IL_02E8: ldloc.s 15 (UnityEngine.MaterialPropertyBlock)
IL_02EA: ldloc.s 14 (PropManager)
IL_02EC: ldfld System.Int32 PropManager::ID_HeightMap
IL_02F1: ldarg.s 9
IL_02F3: callvirt System.Void
UnityEngine.MaterialPropertyBlock::SetTexture(System.Int32 nameID,
UnityEngine.Texture value)
IL_02F8: ldloc.s 15 (UnityEngine.MaterialPropertyBlock)
IL_02FA: ldloc.s 14 (PropManager)
IL_02FC: ldfld System.Int32 PropManager::ID_HeightMapping
IL_0301: ldarg.s 10
IL_0303: callvirt System.Void
UnityEngine.MaterialPropertyBlock::SetVector(System.Int32 nameID,
UnityEngine.Vector4 value)
IL_0308: ldloc.s 15 (UnityEngine.MaterialPropertyBlock)
IL_030A: ldloc.s 14 (PropManager)
IL_030C: ldfld System.Int32 PropManager::ID_SurfaceMapping
IL_0311: ldarg.s 11
IL_0313: callvirt System.Void
UnityEngine.MaterialPropertyBlock::SetVector(System.Int32 nameID,
UnityEngine.Vector4 value)
IL_0318: ldloc.s 15 (UnityEngine.MaterialPropertyBlock)
IL_031A: ldloc.s 14 (PropManager)
IL_031C: ldfld System.Int32 PropManager::ID_ObjectIndex
IL_0321: ldarg.s 7
IL_0323: callvirt System.Void
UnityEngine.MaterialPropertyBlock::SetVector(System.Int32 nameID,
UnityEngine.Vector4 value)
IL_0328: ldloc.s 15 (UnityEngine.MaterialPropertyBlock)
IL_032A: ldloc.s 14 (PropManager)
IL_032C: ldfld System.Int32 PropManager::ID_WaterHeightMap
IL_0331: ldarg.s 12
IL_0333: callvirt System.Void
UnityEngine.MaterialPropertyBlock::SetTexture(System.Int32 nameID,
UnityEngine.Texture value)
IL_0338: ldloc.s 15 (UnityEngine.MaterialPropertyBlock)
IL_033A: ldloc.s 14 (PropManager)
IL_033C: ldfld System.Int32 PropManager::ID_WaterHeightMapping
IL_0341: ldarg.s 13
IL_0343: callvirt System.Void
UnityEngine.MaterialPropertyBlock::SetVector(System.Int32 nameID,
UnityEngine.Vector4 value)
IL_0348: ldloc.s 15 (UnityEngine.MaterialPropertyBlock)
IL_034A: ldloc.s 14 (PropManager)
IL_034C: ldfld System.Int32 PropManager::ID_WaterSurfaceMapping
IL_0351: ldarg.s 14
IL_0353: callvirt System.Void
UnityEngine.MaterialPropertyBlock::SetVector(System.Int32 nameID,
UnityEngine.Vector4 value)
IL_0358: ldarg.1
IL_0359: ldfld UnityEngine.Vector4[] PropInfo::m_rollLocation
IL_035E: brfalse => Label18
IL_0363: ldarg.1
IL_0364: ldfld UnityEngine.Material PropInfo::m_material
IL_0369: ldloc.s 14 (PropManager)
IL_036B: ldfld System.Int32 PropManager::ID_RollLocation
IL_0370: ldarg.1
IL_0371: ldfld UnityEngine.Vector4[] PropInfo::m_rollLocation
IL_0376: callvirt System.Void UnityEngine.Material::SetVectorArray(System.Int32
nameID, UnityEngine.Vector4[] values)
IL_037B: ldarg.1
IL_037C: ldfld UnityEngine.Material PropInfo::m_material
IL_0381: ldloc.s 14 (PropManager)
IL_0383: ldfld System.Int32 PropManager::ID_RollParams
IL_0388: ldarg.1
IL_0389: ldfld UnityEngine.Vector4[] PropInfo::m_rollParams
IL_038E: callvirt System.Void UnityEngine.Material::SetVectorArray(System.Int32
nameID, UnityEngine.Vector4[] values)
IL_0393: Label18
IL_0393: ldloc.s 14 (PropManager)
IL_0395: ldflda DrawCallData SimulationManagerBase`2<PropManager,
PropProperties>::m_drawCallData
IL_039A: dup
IL_039B: ldfld System.Int32 DrawCallData::m_defaultCalls
IL_03A0: ldc.i4.1
IL_03A1: add
IL_03A2: stfld System.Int32 DrawCallData::m_defaultCalls
IL_03A7: ldarg.1
IL_03A8: ldfld UnityEngine.Mesh PropInfo::m_mesh
IL_03AD: ldloc.s 13 (UnityEngine.Matrix4x4)
IL_03AF: ldarg.1
IL_03B0: ldfld UnityEngine.Material PropInfo::m_material
IL_03B5: ldarg.1
IL_03B6: ldfld System.Int32 PrefabInfo::m_prefabDataLayer
IL_03BB: ldnull
IL_03BC: ldc.i4.0
IL_03BD: ldloc.s 15 (UnityEngine.MaterialPropertyBlock)
IL_03BF: call static System.Void
UnityEngine.Graphics::DrawMesh(UnityEngine.Mesh mesh, UnityEngine.Matrix4x4 matrix,
UnityEngine.Material material, System.Int32 layer, UnityEngine.Camera camera,
System.Int32 submeshIndex, UnityEngine.MaterialPropertyBlock properties)
IL_03C4: br => Label19
IL_03C9: Label17
IL_03C9: ldarg.s 9
IL_03CB: ldarg.1
IL_03CC: ldfld UnityEngine.Texture PropInfo::m_lodHeightMap
IL_03D1: call static System.Boolean
UnityEngine.Object::op_Inequality(UnityEngine.Object x, UnityEngine.Object y)
IL_03D6: brtrue => Label20
IL_03DB: ldarg.s 12
IL_03DD: ldarg.1
IL_03DE: ldfld UnityEngine.Texture PropInfo::m_lodWaterHeightMap
IL_03E3: call static System.Boolean
UnityEngine.Object::op_Inequality(UnityEngine.Object x, UnityEngine.Object y)
IL_03E8: brfalse => Label21
IL_03ED: Label20
IL_03ED: ldarg.1
IL_03EE: ldfld System.Int32 PropInfo::m_lodCount
IL_03F3: brfalse => Label22
IL_03F8: ldarg.0
IL_03F9: ldarg.1
IL_03FA: call static System.Void PropInstance::RenderLod(CameraInfo
cameraInfo, PropInfo info)
IL_03FF: Label22
IL_03FF: ldarg.1
IL_0400: ldarg.s 9
IL_0402: stfld UnityEngine.Texture PropInfo::m_lodHeightMap
IL_0407: ldarg.1
IL_0408: ldarg.s 10
IL_040A: stfld UnityEngine.Vector4 PropInfo::m_lodHeightMapping
IL_040F: ldarg.1
IL_0410: ldarg.s 11
IL_0412: stfld UnityEngine.Vector4 PropInfo::m_lodSurfaceMapping
IL_0417: ldarg.1
IL_0418: ldarg.s 12
IL_041A: stfld UnityEngine.Texture PropInfo::m_lodWaterHeightMap
IL_041F: ldarg.1
IL_0420: ldarg.s 13
IL_0422: stfld UnityEngine.Vector4 PropInfo::m_lodWaterHeightMapping
IL_0427: ldarg.1
IL_0428: ldarg.s 14
IL_042A: stfld UnityEngine.Vector4 PropInfo::m_lodWaterSurfaceMapping
IL_042F: Label21
IL_042F: ldarga.s 7
IL_0431: ldarg.s 4
IL_0433: stfld System.Single UnityEngine.Vector4::w
IL_0438: ldarg.1
IL_0439: ldfld UnityEngine.Vector4[] PropInfo::m_lodLocations
IL_043E: ldarg.1
IL_043F: ldfld System.Int32 PropInfo::m_lodCount
IL_0444: ldelema UnityEngine.Vector4
IL_0449: ldarga.s 3
IL_044B: ldfld System.Single UnityEngine.Vector3::x
IL_0450: ldarga.s 3
IL_0452: ldfld System.Single UnityEngine.Vector3::y
IL_0457: ldarga.s 3
IL_0459: ldfld System.Single UnityEngine.Vector3::z
IL_045E: ldarg.s 5
IL_0460: newobj System.Void UnityEngine.Vector4::.ctor(System.Single x,
System.Single y, System.Single z, System.Single w)
IL_0465: stobj UnityEngine.Vector4
IL_046A: ldarg.1
IL_046B: ldfld UnityEngine.Vector4[] PropInfo::m_lodObjectIndices
IL_0470: ldarg.1
IL_0471: ldfld System.Int32 PropInfo::m_lodCount
IL_0476: ldelema UnityEngine.Vector4
IL_047B: ldarg.s 7
IL_047D: stobj UnityEngine.Vector4
IL_0482: ldarg.1
IL_0483: ldfld UnityEngine.Vector4[] PropInfo::m_lodColors
IL_0488: ldarg.1
IL_0489: ldfld System.Int32 PropInfo::m_lodCount
IL_048E: ldelema UnityEngine.Vector4
IL_0493: ldarga.s 6
IL_0495: call UnityEngine.Color UnityEngine.Color::get_linear()
IL_049A: call static UnityEngine.Vector4
UnityEngine.Color::op_Implicit(UnityEngine.Color c)
IL_049F: stobj UnityEngine.Vector4
IL_04A4: ldarg.1
IL_04A5: ldarg.1
IL_04A6: ldfld UnityEngine.Vector3 PropInfo::m_lodMin
IL_04AB: ldarg.3
IL_04AC: call static UnityEngine.Vector3
UnityEngine.Vector3::Min(UnityEngine.Vector3 lhs, UnityEngine.Vector3 rhs)
IL_04B1: stfld UnityEngine.Vector3 PropInfo::m_lodMin
IL_04B6: ldarg.1
IL_04B7: ldarg.1
IL_04B8: ldfld UnityEngine.Vector3 PropInfo::m_lodMax
IL_04BD: ldarg.3
IL_04BE: call static UnityEngine.Vector3
UnityEngine.Vector3::Max(UnityEngine.Vector3 lhs, UnityEngine.Vector3 rhs)
IL_04C3: stfld UnityEngine.Vector3 PropInfo::m_lodMax
IL_04C8: ldarg.1
IL_04C9: dup
IL_04CA: ldfld System.Int32 PropInfo::m_lodCount
IL_04CF: ldc.i4.1
IL_04D0: add
IL_04D1: dup
IL_04D2: stloc.s 16 (System.Int32)
IL_04D4: stfld System.Int32 PropInfo::m_lodCount
IL_04D9: ldloc.s 16 (System.Int32)
IL_04DB: ldarg.1
IL_04DC: ldfld UnityEngine.Vector4[] PropInfo::m_lodLocations
IL_04E1: ldlen
IL_04E2: conv.i4
IL_04E3: bne.un => Label23
IL_04E8: ldarg.0
IL_04E9: ldarg.1
IL_04EA: call static System.Void PropInstance::RenderLod(CameraInfo
cameraInfo, PropInfo info)
IL_04EF: // end original
IL_04EF: Label0
IL_04EF: Label6
IL_04EF: Label7
IL_04EF: Label19
IL_04EF: Label23
IL_04EF: ret
DONE

### Patch: static System.Void PropInstance::RenderInstance(CameraInfo cameraInfo,


PropInfo info, InstanceID id, UnityEngine.Vector3 position, System.Single scale,
System.Single angle, UnityEngine.Color color, UnityEngine.Vector4 objectIndex,
System.Boolean active)
### Replacement: static System.Void
PropInstance::PropInstance.RenderInstance_Patch0(CameraInfo cameraInfo, PropInfo
info, InstanceID id, UnityEngine.Vector3 position, System.Single scale,
System.Single angle, UnityEngine.Color color, UnityEngine.Vector4 objectIndex,
System.Boolean active)
IL_0000: Local var 0: UnityEngine.Matrix4x4
IL_0000: Local var 1: System.Single
IL_0000: Local var 2: System.Int32
IL_0000: Local var 3: UnityEngine.Vector3
IL_0000: Local var 4: UnityEngine.Vector3
IL_0000: Local var 5: EffectInfo/SpawnArea
IL_0000: Local var 6: System.Single
IL_0000: Local var 7: LightSystem
IL_0000: Local var 8: ColossalFramework.Math.Randomizer
IL_0000: Local var 9: UnityEngine.Vector4
IL_0000: Local var 10: System.Single
IL_0000: Local var 11: System.Single
IL_0000: Local var 12: System.Single
IL_0000: Local var 13: UnityEngine.Matrix4x4
IL_0000: Local var 14: PropManager
IL_0000: Local var 15: UnityEngine.MaterialPropertyBlock
IL_0000: Local var 16: UnityEngine.Matrix4x4
IL_0000: Local var 17: PropManager
IL_0000: Local var 18: UnityEngine.MaterialPropertyBlock
IL_0000: Local var 19: System.Int32
IL_0000: // start original
IL_0000: ldarg.1
IL_0001: ldfld System.Boolean PrefabInfo::m_prefabInitialized
IL_0006: brfalse => Label0
IL_000B: ldarg.1
IL_000C: ldfld System.Boolean PropInfo::m_hasEffects
IL_0011: brfalse => Label1
IL_0016: ldarg.s 8
IL_0018: brtrue => Label2
IL_001D: ldarg.1
IL_001E: ldfld System.Boolean PropInfo::m_alwaysActive
IL_0023: brfalse => Label3
IL_0028: Label2
IL_0028: ldloca.s 0 (UnityEngine.Matrix4x4)
IL_002A: initobj UnityEngine.Matrix4x4
IL_0030: ldloca.s 0 (UnityEngine.Matrix4x4)
IL_0032: ldarg.3
IL_0033: ldarg.s 5
IL_0035: ldc.r4 57.29578
IL_003A: mul
IL_003B: call static UnityEngine.Vector3 UnityEngine.Vector3::get_down()
IL_0040: call static UnityEngine.Quaternion
UnityEngine.Quaternion::AngleAxis(System.Single angle, UnityEngine.Vector3 axis)
IL_0045: ldarg.s 4
IL_0047: ldarg.s 4
IL_0049: ldarg.s 4
IL_004B: newobj System.Void UnityEngine.Vector3::.ctor(System.Single x,
System.Single y, System.Single z)
IL_0050: call System.Void UnityEngine.Matrix4x4::SetTRS(UnityEngine.Vector3
pos, UnityEngine.Quaternion q, UnityEngine.Vector3 s)
IL_0055: call static SimulationManager
ColossalFramework.Singleton`1<SimulationManager>::get_instance()
IL_005A: ldfld System.Single SimulationManager::m_simulationTimeDelta
IL_005F: stloc.1
IL_0060: ldc.i4.0
IL_0061: stloc.2
IL_0062: br => Label4
IL_0067: Label5
IL_0067: ldloca.s 0 (UnityEngine.Matrix4x4)
IL_0069: ldarg.1
IL_006A: ldfld Effect[] PropInfo::m_effects
IL_006F: ldloc.2
IL_0070: ldelema PropInfo+Effect
IL_0075: ldfld UnityEngine.Vector3 Effect::m_position
IL_007A: call UnityEngine.Vector3
UnityEngine.Matrix4x4::MultiplyPoint(UnityEngine.Vector3 v)
IL_007F: stloc.3
IL_0080: ldloca.s 0 (UnityEngine.Matrix4x4)
IL_0082: ldarg.1
IL_0083: ldfld Effect[] PropInfo::m_effects
IL_0088: ldloc.2
IL_0089: ldelema PropInfo+Effect
IL_008E: ldfld UnityEngine.Vector3 Effect::m_direction
IL_0093: call UnityEngine.Vector3
UnityEngine.Matrix4x4::MultiplyVector(UnityEngine.Vector3 v)
IL_0098: stloc.s 4 (UnityEngine.Vector3)
IL_009A: ldloca.s 5 (EffectInfo+SpawnArea)
IL_009C: ldloc.3
IL_009D: ldloc.s 4 (UnityEngine.Vector3)
IL_009F: ldc.r4 0
IL_00A4: call System.Void SpawnArea::.ctor(UnityEngine.Vector3 position,
UnityEngine.Vector3 direction, System.Single radius)
IL_00A9: ldarg.1
IL_00AA: ldfld Effect[] PropInfo::m_effects
IL_00AF: ldloc.2
IL_00B0: ldelema PropInfo+Effect
IL_00B5: ldfld EffectInfo Effect::m_effect
IL_00BA: ldarg.2
IL_00BB: ldloc.s 5 (EffectInfo+SpawnArea)
IL_00BD: call static UnityEngine.Vector3 UnityEngine.Vector3::get_zero()
IL_00C2: ldc.r4 0
IL_00C7: ldc.r4 1
IL_00CC: ldc.r4 -1
IL_00D1: ldloc.1
IL_00D2: ldarg.0
IL_00D3: callvirt virtual System.Void EffectInfo::RenderEffect(InstanceID id,
SpawnArea area, UnityEngine.Vector3 velocity, System.Single acceleration,
System.Single magnitude, System.Single timeOffset, System.Single timeDelta,
CameraInfo cameraInfo)
IL_00D8: ldloc.2
IL_00D9: ldc.i4.1
IL_00DA: add
IL_00DB: stloc.2
IL_00DC: Label4
IL_00DC: ldloc.2
IL_00DD: ldarg.1
IL_00DE: ldfld Effect[] PropInfo::m_effects
IL_00E3: ldlen
IL_00E4: conv.i4
IL_00E5: blt => Label5
IL_00EA: Label1
IL_00EA: Label3
IL_00EA: ldarg.1
IL_00EB: ldfld System.Boolean PropInfo::m_hasRenderer
IL_00F0: brfalse => Label6
IL_00F5: ldarg.0
IL_00F6: ldfld System.Int32 CameraInfo::m_layerMask
IL_00FB: ldc.i4.1
IL_00FC: ldarg.1
IL_00FD: ldfld System.Int32 PrefabInfo::m_prefabDataLayer
IL_0102: ldc.i4.s 31
IL_0104: and
IL_0105: shl
IL_0106: and
IL_0107: brfalse => Label7
IL_010C: call static InfoManager
ColossalFramework.Singleton`1<InfoManager>::get_instance()
IL_0111: callvirt InfoMode InfoManager::get_CurrentMode()
IL_0116: brtrue => Label8
IL_011B: ldc.r4 0
IL_0120: stloc.s 6 (System.Single)
IL_0122: ldarg.s 8
IL_0124: brtrue => Label9
IL_0129: ldarg.1
IL_012A: ldfld System.Boolean PropInfo::m_alwaysActive
IL_012F: brtrue => Label10
IL_0134: ldarga.s 7
IL_0136: ldc.r4 0
IL_013B: stfld System.Single UnityEngine.Vector4::z
IL_0140: br => Label11
IL_0145: Label9
IL_0145: Label10
IL_0145: ldarg.1
IL_0146: ldflda UnityEngine.Vector2 PropInfo::m_illuminationOffRange
IL_014B: ldfld System.Single UnityEngine.Vector2::x
IL_0150: ldc.r4 1000
IL_0155: blt => Label12
IL_015A: ldarg.1
IL_015B: ldfld BlinkType PropInfo::m_illuminationBlinkType
IL_0160: brfalse => Label13
IL_0165: Label12
IL_0165: call static RenderManager
ColossalFramework.Singleton`1<RenderManager>::get_instance()
IL_016A: callvirt LightSystem RenderManager::get_lightSystem()
IL_016F: stloc.s 7 (LightSystem)
IL_0171: ldloca.s 8 (ColossalFramework.Math.Randomizer)
IL_0173: ldarga.s 2
IL_0175: call System.UInt32 InstanceID::get_Index()
IL_017A: call System.Void
ColossalFramework.Math.Randomizer::.ctor(System.UInt32 _seed)
IL_017F: ldarg.1
IL_0180: ldflda UnityEngine.Vector2 PropInfo::m_illuminationOffRange
IL_0185: ldfld System.Single UnityEngine.Vector2::x
IL_018A: ldloca.s 8 (ColossalFramework.Math.Randomizer)
IL_018C: ldc.i4 100000
IL_0191: call System.Int32
ColossalFramework.Math.Randomizer::Int32(System.UInt32 range)
IL_0196: conv.r4
IL_0197: ldc.r4 1E-05
IL_019C: mul
IL_019D: ldarg.1
IL_019E: ldflda UnityEngine.Vector2 PropInfo::m_illuminationOffRange
IL_01A3: ldfld System.Single UnityEngine.Vector2::y
IL_01A8: ldarg.1
IL_01A9: ldflda UnityEngine.Vector2 PropInfo::m_illuminationOffRange
IL_01AE: ldfld System.Single UnityEngine.Vector2::x
IL_01B3: sub
IL_01B4: mul
IL_01B5: add
IL_01B6: stloc.s 6 (System.Single)
IL_01B8: ldarga.s 7
IL_01BA: ldloc.s 6 (System.Single)
IL_01BC: ldc.r4 0.01
IL_01C1: add
IL_01C2: ldloc.s 6 (System.Single)
IL_01C4: ldc.r4 0.01
IL_01C9: sub
IL_01CA: ldloc.s 7 (LightSystem)
IL_01CC: callvirt System.Single LightSystem::get_DayLightIntensity()
IL_01D1: call static System.Single MathUtils::SmoothStep(System.Single edge0,
System.Single edge1, System.Single x)
IL_01D6: stfld System.Single UnityEngine.Vector4::z
IL_01DB: ldarg.1
IL_01DC: ldfld BlinkType PropInfo::m_illuminationBlinkType
IL_01E1: brfalse => Label14
IL_01E6: ldarg.1
IL_01E7: ldfld BlinkType PropInfo::m_illuminationBlinkType
IL_01EC: call static UnityEngine.Vector4
LightEffect::GetBlinkVector(BlinkType type)
IL_01F1: stloc.s 9 (UnityEngine.Vector4)
IL_01F3: ldloc.s 6 (System.Single)
IL_01F5: ldc.r4 3.71
IL_01FA: mul
IL_01FB: call static SimulationManager
ColossalFramework.Singleton`1<SimulationManager>::get_instance()
IL_0200: ldfld System.Single SimulationManager::m_simulationTimer
IL_0205: ldloca.s 9 (UnityEngine.Vector4)
IL_0207: ldfld System.Single UnityEngine.Vector4::w
IL_020C: div
IL_020D: add
IL_020E: stloc.s 10 (System.Single)
IL_0210: ldloc.s 10 (System.Single)
IL_0212: ldloc.s 10 (System.Single)
IL_0214: call static System.Single UnityEngine.Mathf::Floor(System.Single f)
IL_0219: sub
IL_021A: ldloca.s 9 (UnityEngine.Vector4)
IL_021C: ldfld System.Single UnityEngine.Vector4::w
IL_0221: mul
IL_0222: stloc.s 10 (System.Single)
IL_0224: ldloca.s 9 (UnityEngine.Vector4)
IL_0226: ldfld System.Single UnityEngine.Vector4::x
IL_022B: ldloca.s 9 (UnityEngine.Vector4)
IL_022D: ldfld System.Single UnityEngine.Vector4::y
IL_0232: ldloc.s 10 (System.Single)
IL_0234: call static System.Single MathUtils::SmoothStep(System.Single edge0,
System.Single edge1, System.Single x)
IL_0239: stloc.s 11 (System.Single)
IL_023B: ldloca.s 9 (UnityEngine.Vector4)
IL_023D: ldfld System.Single UnityEngine.Vector4::w
IL_0242: ldloca.s 9 (UnityEngine.Vector4)
IL_0244: ldfld System.Single UnityEngine.Vector4::z
IL_0249: ldloc.s 10 (System.Single)
IL_024B: call static System.Single MathUtils::SmoothStep(System.Single edge0,
System.Single edge1, System.Single x)
IL_0250: stloc.s 12 (System.Single)
IL_0252: ldarga.s 7
IL_0254: dup
IL_0255: ldfld System.Single UnityEngine.Vector4::z
IL_025A: ldc.r4 1
IL_025F: ldloc.s 11 (System.Single)
IL_0261: ldloc.s 12 (System.Single)
IL_0263: mul
IL_0264: sub
IL_0265: mul
IL_0266: stfld System.Single UnityEngine.Vector4::z
IL_026B: Label14
IL_026B: br => Label15
IL_0270: Label13
IL_0270: ldarga.s 7
IL_0272: ldc.r4 1
IL_0277: stfld System.Single UnityEngine.Vector4::z
IL_027C: Label8
IL_027C: Label11
IL_027C: Label15
IL_027C: ldarg.0
IL_027D: brfalse => Label16
IL_0282: ldarg.0
IL_0283: ldarg.3
IL_0284: ldarg.1
IL_0285: ldfld System.Single PropInfo::m_lodRenderDistance
IL_028A: callvirt System.Boolean
CameraInfo::CheckRenderDistance(UnityEngine.Vector3 point, System.Single
maxDistance)
IL_028F: brfalse => Label17
IL_0294: Label16
IL_0294: ldloca.s 13 (UnityEngine.Matrix4x4)
IL_0296: initobj UnityEngine.Matrix4x4
IL_029C: ldloca.s 13 (UnityEngine.Matrix4x4)
IL_029E: ldarg.3
IL_029F: ldarg.s 5
IL_02A1: ldc.r4 57.29578
IL_02A6: mul
IL_02A7: call static UnityEngine.Vector3 UnityEngine.Vector3::get_down()
IL_02AC: call static UnityEngine.Quaternion
UnityEngine.Quaternion::AngleAxis(System.Single angle, UnityEngine.Vector3 axis)
IL_02B1: ldarg.s 4
IL_02B3: ldarg.s 4
IL_02B5: ldarg.s 4
IL_02B7: newobj System.Void UnityEngine.Vector3::.ctor(System.Single x,
System.Single y, System.Single z)
IL_02BC: call System.Void UnityEngine.Matrix4x4::SetTRS(UnityEngine.Vector3
pos, UnityEngine.Quaternion q, UnityEngine.Vector3 s)
IL_02C1: call static PropManager
ColossalFramework.Singleton`1<PropManager>::get_instance()
IL_02C6: stloc.s 14 (PropManager)
IL_02C8: ldloc.s 14 (PropManager)
IL_02CA: ldfld UnityEngine.MaterialPropertyBlock PropManager::m_materialBlock
IL_02CF: stloc.s 15 (UnityEngine.MaterialPropertyBlock)
IL_02D1: ldloc.s 15 (UnityEngine.MaterialPropertyBlock)
IL_02D3: callvirt System.Void UnityEngine.MaterialPropertyBlock::Clear()
IL_02D8: ldloc.s 15 (UnityEngine.MaterialPropertyBlock)
IL_02DA: ldloc.s 14 (PropManager)
IL_02DC: ldfld System.Int32 PropManager::ID_Color
IL_02E1: ldarg.s 6
IL_02E3: callvirt System.Void
UnityEngine.MaterialPropertyBlock::SetColor(System.Int32 nameID, UnityEngine.Color
value)
IL_02E8: ldloc.s 15 (UnityEngine.MaterialPropertyBlock)
IL_02EA: ldloc.s 14 (PropManager)
IL_02EC: ldfld System.Int32 PropManager::ID_ObjectIndex
IL_02F1: ldarg.s 7
IL_02F3: callvirt System.Void
UnityEngine.MaterialPropertyBlock::SetVector(System.Int32 nameID,
UnityEngine.Vector4 value)
IL_02F8: ldarg.1
IL_02F9: ldfld UnityEngine.Vector4[] PropInfo::m_rollLocation
IL_02FE: brfalse => Label18
IL_0303: ldarg.1
IL_0304: ldfld UnityEngine.Material PropInfo::m_material
IL_0309: ldloc.s 14 (PropManager)
IL_030B: ldfld System.Int32 PropManager::ID_RollLocation
IL_0310: ldarg.1
IL_0311: ldfld UnityEngine.Vector4[] PropInfo::m_rollLocation
IL_0316: callvirt System.Void UnityEngine.Material::SetVectorArray(System.Int32
nameID, UnityEngine.Vector4[] values)
IL_031B: ldarg.1
IL_031C: ldfld UnityEngine.Material PropInfo::m_material
IL_0321: ldloc.s 14 (PropManager)
IL_0323: ldfld System.Int32 PropManager::ID_RollParams
IL_0328: ldarg.1
IL_0329: ldfld UnityEngine.Vector4[] PropInfo::m_rollParams
IL_032E: callvirt System.Void UnityEngine.Material::SetVectorArray(System.Int32
nameID, UnityEngine.Vector4[] values)
IL_0333: Label18
IL_0333: ldloc.s 14 (PropManager)
IL_0335: ldflda DrawCallData SimulationManagerBase`2<PropManager,
PropProperties>::m_drawCallData
IL_033A: dup
IL_033B: ldfld System.Int32 DrawCallData::m_defaultCalls
IL_0340: ldc.i4.1
IL_0341: add
IL_0342: stfld System.Int32 DrawCallData::m_defaultCalls
IL_0347: ldarg.1
IL_0348: ldfld UnityEngine.Mesh PropInfo::m_mesh
IL_034D: ldloc.s 13 (UnityEngine.Matrix4x4)
IL_034F: ldarg.1
IL_0350: ldfld UnityEngine.Material PropInfo::m_material
IL_0355: ldarg.1
IL_0356: ldfld System.Int32 PrefabInfo::m_prefabDataLayer
IL_035B: ldnull
IL_035C: ldc.i4.0
IL_035D: ldloc.s 15 (UnityEngine.MaterialPropertyBlock)
IL_035F: call static System.Void
UnityEngine.Graphics::DrawMesh(UnityEngine.Mesh mesh, UnityEngine.Matrix4x4 matrix,
UnityEngine.Material material, System.Int32 layer, UnityEngine.Camera camera,
System.Int32 submeshIndex, UnityEngine.MaterialPropertyBlock properties)
IL_0364: br => Label19
IL_0369: Label17
IL_0369: ldarg.1
IL_036A: ldfld UnityEngine.Material PropInfo::m_lodMaterialCombined
IL_036F: ldnull
IL_0370: call static System.Boolean
UnityEngine.Object::op_Equality(UnityEngine.Object x, UnityEngine.Object y)
IL_0375: brfalse => Label20
IL_037A: ldloca.s 16 (UnityEngine.Matrix4x4)
IL_037C: initobj UnityEngine.Matrix4x4
IL_0382: ldloca.s 16 (UnityEngine.Matrix4x4)
IL_0384: ldarg.3
IL_0385: ldarg.s 5
IL_0387: ldc.r4 57.29578
IL_038C: mul
IL_038D: call static UnityEngine.Vector3 UnityEngine.Vector3::get_down()
IL_0392: call static UnityEngine.Quaternion
UnityEngine.Quaternion::AngleAxis(System.Single angle, UnityEngine.Vector3 axis)
IL_0397: ldarg.s 4
IL_0399: ldarg.s 4
IL_039B: ldarg.s 4
IL_039D: newobj System.Void UnityEngine.Vector3::.ctor(System.Single x,
System.Single y, System.Single z)
IL_03A2: call System.Void UnityEngine.Matrix4x4::SetTRS(UnityEngine.Vector3
pos, UnityEngine.Quaternion q, UnityEngine.Vector3 s)
IL_03A7: call static PropManager
ColossalFramework.Singleton`1<PropManager>::get_instance()
IL_03AC: stloc.s 17 (PropManager)
IL_03AE: ldloc.s 17 (PropManager)
IL_03B0: ldfld UnityEngine.MaterialPropertyBlock PropManager::m_materialBlock
IL_03B5: stloc.s 18 (UnityEngine.MaterialPropertyBlock)
IL_03B7: ldloc.s 18 (UnityEngine.MaterialPropertyBlock)
IL_03B9: callvirt System.Void UnityEngine.MaterialPropertyBlock::Clear()
IL_03BE: ldloc.s 18 (UnityEngine.MaterialPropertyBlock)
IL_03C0: ldloc.s 17 (PropManager)
IL_03C2: ldfld System.Int32 PropManager::ID_Color
IL_03C7: ldarg.s 6
IL_03C9: callvirt System.Void
UnityEngine.MaterialPropertyBlock::SetColor(System.Int32 nameID, UnityEngine.Color
value)
IL_03CE: ldloc.s 18 (UnityEngine.MaterialPropertyBlock)
IL_03D0: ldloc.s 17 (PropManager)
IL_03D2: ldfld System.Int32 PropManager::ID_ObjectIndex
IL_03D7: ldarg.s 7
IL_03D9: callvirt System.Void
UnityEngine.MaterialPropertyBlock::SetVector(System.Int32 nameID,
UnityEngine.Vector4 value)
IL_03DE: ldarg.1
IL_03DF: ldfld UnityEngine.Vector4[] PropInfo::m_rollLocation
IL_03E4: brfalse => Label21
IL_03E9: ldarg.1
IL_03EA: ldfld UnityEngine.Material PropInfo::m_material
IL_03EF: ldloc.s 17 (PropManager)
IL_03F1: ldfld System.Int32 PropManager::ID_RollLocation
IL_03F6: ldarg.1
IL_03F7: ldfld UnityEngine.Vector4[] PropInfo::m_rollLocation
IL_03FC: callvirt System.Void UnityEngine.Material::SetVectorArray(System.Int32
nameID, UnityEngine.Vector4[] values)
IL_0401: ldarg.1
IL_0402: ldfld UnityEngine.Material PropInfo::m_material
IL_0407: ldloc.s 17 (PropManager)
IL_0409: ldfld System.Int32 PropManager::ID_RollParams
IL_040E: ldarg.1
IL_040F: ldfld UnityEngine.Vector4[] PropInfo::m_rollParams
IL_0414: callvirt System.Void UnityEngine.Material::SetVectorArray(System.Int32
nameID, UnityEngine.Vector4[] values)
IL_0419: Label21
IL_0419: ldloc.s 17 (PropManager)
IL_041B: ldflda DrawCallData SimulationManagerBase`2<PropManager,
PropProperties>::m_drawCallData
IL_0420: dup
IL_0421: ldfld System.Int32 DrawCallData::m_defaultCalls
IL_0426: ldc.i4.1
IL_0427: add
IL_0428: stfld System.Int32 DrawCallData::m_defaultCalls
IL_042D: ldarg.1
IL_042E: ldfld UnityEngine.Mesh PropInfo::m_lodMesh
IL_0433: ldloc.s 16 (UnityEngine.Matrix4x4)
IL_0435: ldarg.1
IL_0436: ldfld UnityEngine.Material PropInfo::m_lodMaterial
IL_043B: ldarg.1
IL_043C: ldfld System.Int32 PrefabInfo::m_prefabDataLayer
IL_0441: ldnull
IL_0442: ldc.i4.0
IL_0443: ldloc.s 18 (UnityEngine.MaterialPropertyBlock)
IL_0445: call static System.Void
UnityEngine.Graphics::DrawMesh(UnityEngine.Mesh mesh, UnityEngine.Matrix4x4 matrix,
UnityEngine.Material material, System.Int32 layer, UnityEngine.Camera camera,
System.Int32 submeshIndex, UnityEngine.MaterialPropertyBlock properties)
IL_044A: br => Label22
IL_044F: Label20
IL_044F: ldarga.s 7
IL_0451: ldarg.s 4
IL_0453: stfld System.Single UnityEngine.Vector4::w
IL_0458: ldarg.1
IL_0459: ldfld UnityEngine.Vector4[] PropInfo::m_lodLocations
IL_045E: ldarg.1
IL_045F: ldfld System.Int32 PropInfo::m_lodCount
IL_0464: ldelema UnityEngine.Vector4
IL_0469: ldarga.s 3
IL_046B: ldfld System.Single UnityEngine.Vector3::x
IL_0470: ldarga.s 3
IL_0472: ldfld System.Single UnityEngine.Vector3::y
IL_0477: ldarga.s 3
IL_0479: ldfld System.Single UnityEngine.Vector3::z
IL_047E: ldarg.s 5
IL_0480: newobj System.Void UnityEngine.Vector4::.ctor(System.Single x,
System.Single y, System.Single z, System.Single w)
IL_0485: stobj UnityEngine.Vector4
IL_048A: ldarg.1
IL_048B: ldfld UnityEngine.Vector4[] PropInfo::m_lodObjectIndices
IL_0490: ldarg.1
IL_0491: ldfld System.Int32 PropInfo::m_lodCount
IL_0496: ldelema UnityEngine.Vector4
IL_049B: ldarg.s 7
IL_049D: stobj UnityEngine.Vector4
IL_04A2: ldarg.1
IL_04A3: ldfld UnityEngine.Vector4[] PropInfo::m_lodColors
IL_04A8: ldarg.1
IL_04A9: ldfld System.Int32 PropInfo::m_lodCount
IL_04AE: ldelema UnityEngine.Vector4
IL_04B3: ldarga.s 6
IL_04B5: call UnityEngine.Color UnityEngine.Color::get_linear()
IL_04BA: call static UnityEngine.Vector4
UnityEngine.Color::op_Implicit(UnityEngine.Color c)
IL_04BF: stobj UnityEngine.Vector4
IL_04C4: ldarg.1
IL_04C5: ldarg.1
IL_04C6: ldfld UnityEngine.Vector3 PropInfo::m_lodMin
IL_04CB: ldarg.3
IL_04CC: call static UnityEngine.Vector3
UnityEngine.Vector3::Min(UnityEngine.Vector3 lhs, UnityEngine.Vector3 rhs)
IL_04D1: stfld UnityEngine.Vector3 PropInfo::m_lodMin
IL_04D6: ldarg.1
IL_04D7: ldarg.1
IL_04D8: ldfld UnityEngine.Vector3 PropInfo::m_lodMax
IL_04DD: ldarg.3
IL_04DE: call static UnityEngine.Vector3
UnityEngine.Vector3::Max(UnityEngine.Vector3 lhs, UnityEngine.Vector3 rhs)
IL_04E3: stfld UnityEngine.Vector3 PropInfo::m_lodMax
IL_04E8: ldarg.1
IL_04E9: dup
IL_04EA: ldfld System.Int32 PropInfo::m_lodCount
IL_04EF: ldc.i4.1
IL_04F0: add
IL_04F1: dup
IL_04F2: stloc.s 19 (System.Int32)
IL_04F4: stfld System.Int32 PropInfo::m_lodCount
IL_04F9: ldloc.s 19 (System.Int32)
IL_04FB: ldarg.1
IL_04FC: ldfld UnityEngine.Vector4[] PropInfo::m_lodLocations
IL_0501: ldlen
IL_0502: conv.i4
IL_0503: bne.un => Label23
IL_0508: ldarg.0
IL_0509: ldarg.1
IL_050A: call static System.Void PropInstance::RenderLod(CameraInfo
cameraInfo, PropInfo info)
IL_050F: // end original
IL_050F: Label0
IL_050F: Label6
IL_050F: Label7
IL_050F: Label19
IL_050F: Label22
IL_050F: Label23
IL_050F: ret
DONE

### Patch: virtual System.Void LightEffect::PopulateGroupData(System.Int32 layer,


InstanceID id, UnityEngine.Vector3 pos, UnityEngine.Vector3 dir, 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
LightEffect::LightEffect.PopulateGroupData_Patch0(LightEffect this, System.Int32
layer, InstanceID id, UnityEngine.Vector3 pos, UnityEngine.Vector3 dir,
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.Boolean
IL_0000: Local var 1: UnityEngine.Vector3
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.Quaternion
IL_0000: Local var 7: UnityEngine.Vector4
IL_0000: Local var 8: UnityEngine.Vector2
IL_0000: Local var 9: ColossalFramework.Math.Randomizer
IL_0000: Local var 10: UnityEngine.Vector2
IL_0000: Local var 11: UnityEngine.Vector2
IL_0000: Local var 12: UnityEngine.Vector2
IL_0000: Local var 13: System.UInt16
IL_0000: Local var 14: UnityEngine.Vector3
IL_0000: Local var 15: UnityEngine.Color
IL_0000: Local var 16: UnityEngine.Color
IL_0000: Local var 17: System.Single
IL_0000: Local var 18: System.Single
IL_0000: Local var 19: System.Int32
IL_0000: // start original
IL_0000: ldarg.1
IL_0001: ldarg.0
IL_0002: ldfld System.Int32 LightEffect::m_groupLayer
IL_0007: beq => Label0
IL_000C: ldarg.1
IL_000D: ldarg.0
IL_000E: ldfld System.Int32 LightEffect::m_groupLayerFloating
IL_0013: bne.un => Label1
IL_0018: Label0
IL_0018: ldarg.1
IL_0019: ldarg.0
IL_001A: ldfld System.Int32 LightEffect::m_groupLayerFloating
IL_001F: ceq
IL_0021: stloc.0
IL_0022: ldloca.s 1 (UnityEngine.Vector3)
IL_0024: ldarg.0
IL_0025: ldfld System.Single LightEffect::m_lightRange
IL_002A: ldarg.0
IL_002B: ldfld System.Single LightEffect::m_lightRange
IL_0030: ldarg.0
IL_0031: ldfld System.Single LightEffect::m_lightRange
IL_0036: call System.Void UnityEngine.Vector3::.ctor(System.Single x,
System.Single y, System.Single z)
IL_003B: ldarg.3
IL_003C: ldloc.1
IL_003D: call static UnityEngine.Vector3
UnityEngine.Vector3::op_Subtraction(UnityEngine.Vector3 a, UnityEngine.Vector3 b)
IL_0042: stloc.2
IL_0043: ldarg.3
IL_0044: ldloc.1
IL_0045: call static UnityEngine.Vector3
UnityEngine.Vector3::op_Addition(UnityEngine.Vector3 a, UnityEngine.Vector3 b)
IL_004A: stloc.3
IL_004B: ldarg.s 9
IL_004D: ldarg.s 9
IL_004F: ldobj UnityEngine.Vector3
IL_0054: ldloc.2
IL_0055: call static UnityEngine.Vector3
UnityEngine.Vector3::Min(UnityEngine.Vector3 lhs, UnityEngine.Vector3 rhs)
IL_005A: stobj UnityEngine.Vector3
IL_005F: ldarg.s 10
IL_0061: ldarg.s 10
IL_0063: ldobj UnityEngine.Vector3
IL_0068: ldloc.3
IL_0069: call static UnityEngine.Vector3
UnityEngine.Vector3::Max(UnityEngine.Vector3 lhs, UnityEngine.Vector3 rhs)
IL_006E: stobj UnityEngine.Vector3
IL_0073: ldarg.3
IL_0074: ldarg.s 7
IL_0076: call static UnityEngine.Vector3
UnityEngine.Vector3::op_Subtraction(UnityEngine.Vector3 a, UnityEngine.Vector3 b)
IL_007B: stloc.s 4 (UnityEngine.Vector3)
IL_007D: ldarg.s 11
IL_007F: ldarg.s 11
IL_0081: ldind.r4
IL_0082: ldc.r4 30000
IL_0087: call static System.Single UnityEngine.Mathf::Max(System.Single a,
System.Single b)
IL_008C: stind.r4
IL_008D: ldarg.0
IL_008E: ldfld UnityEngine.LightType LightEffect::m_lightType
IL_0093: brtrue => Label2
IL_0098: ldarg.s 4
IL_009A: call static UnityEngine.Quaternion
UnityEngine.Quaternion::LookRotation(UnityEngine.Vector3 forward)
IL_009F: stloc.s 6 (UnityEngine.Quaternion)
IL_00A1: ldloc.s 6 (UnityEngine.Quaternion)
IL_00A3: ldarg.0
IL_00A4: ldfld UnityEngine.Quaternion LightEffect::m_lightRotation
IL_00A9: call static UnityEngine.Vector3 UnityEngine.Vector3::get_forward()
IL_00AE: call static UnityEngine.Vector3
UnityEngine.Quaternion::op_Multiply(UnityEngine.Quaternion rotation,
UnityEngine.Vector3 point)
IL_00B3: call static UnityEngine.Vector3
UnityEngine.Quaternion::op_Multiply(UnityEngine.Quaternion rotation,
UnityEngine.Vector3 point)
IL_00B8: stloc.s 5 (UnityEngine.Vector3)
IL_00BA: br => Label3
IL_00BF: Label2
IL_00BF: call static UnityEngine.Vector3 UnityEngine.Vector3::get_forward()
IL_00C4: stloc.s 5 (UnityEngine.Vector3)
IL_00C6: Label3
IL_00C6: ldloca.s 7 (UnityEngine.Vector4)
IL_00C8: ldloca.s 5 (UnityEngine.Vector3)
IL_00CA: ldfld System.Single UnityEngine.Vector3::x
IL_00CF: ldloca.s 5 (UnityEngine.Vector3)
IL_00D1: ldfld System.Single UnityEngine.Vector3::y
IL_00D6: ldloca.s 5 (UnityEngine.Vector3)
IL_00D8: ldfld System.Single UnityEngine.Vector3::z
IL_00DD: ldc.r4 100000
IL_00E2: call System.Void UnityEngine.Vector4::.ctor(System.Single x,
System.Single y, System.Single z, System.Single w)
IL_00E7: ldarg.0
IL_00E8: ldfld UnityEngine.LightType LightEffect::m_lightType
IL_00ED: brtrue => Label4
IL_00F2: ldloca.s 7 (UnityEngine.Vector4)
IL_00F4: ldc.r4 0.01745329
IL_00F9: ldarg.0
IL_00FA: ldfld System.Single LightEffect::m_lightSpotAngle
IL_00FF: mul
IL_0100: ldc.r4 0.5
IL_0105: mul
IL_0106: call static System.Single UnityEngine.Mathf::Cos(System.Single f)
IL_010B: neg
IL_010C: stfld System.Single UnityEngine.Vector4::w
IL_0111: Label4
IL_0111: ldloca.s 8 (UnityEngine.Vector2)
IL_0113: ldc.r4 1
IL_0118: ldarg.0
IL_0119: ldfld System.Single LightEffect::m_lightRange
IL_011E: ldarg.0
IL_011F: ldfld System.Single LightEffect::m_lightRange
IL_0124: mul
IL_0125: div
IL_0126: ldarg.0
IL_0127: ldfld System.Single LightEffect::m_lightIntensity
IL_012C: call System.Void UnityEngine.Vector2::.ctor(System.Single x,
System.Single y)
IL_0131: ldloca.s 9 (ColossalFramework.Math.Randomizer)
IL_0133: ldarga.s 2
IL_0135: call System.UInt32 InstanceID::get_Index()
IL_013A: call System.Void
ColossalFramework.Math.Randomizer::.ctor(System.UInt32 _seed)
IL_013F: ldloca.s 10 (UnityEngine.Vector2)
IL_0141: ldarg.0
IL_0142: ldflda UnityEngine.Vector2 LightEffect::m_offRange
IL_0147: ldfld System.Single UnityEngine.Vector2::x
IL_014C: ldloca.s 9 (ColossalFramework.Math.Randomizer)
IL_014E: ldc.i4 100000
IL_0153: call System.Int32
ColossalFramework.Math.Randomizer::Int32(System.UInt32 range)
IL_0158: conv.r4
IL_0159: ldc.r4 1E-05
IL_015E: mul
IL_015F: ldarg.0
IL_0160: ldflda UnityEngine.Vector2 LightEffect::m_offRange
IL_0165: ldfld System.Single UnityEngine.Vector2::y
IL_016A: ldarg.0
IL_016B: ldflda UnityEngine.Vector2 LightEffect::m_offRange
IL_0170: ldfld System.Single UnityEngine.Vector2::x
IL_0175: sub
IL_0176: mul
IL_0177: add
IL_0178: stfld System.Single UnityEngine.Vector2::x
IL_017D: ldloca.s 10 (UnityEngine.Vector2)
IL_017F: ldarg.0
IL_0180: ldfld BlinkType LightEffect::m_blinkType
IL_0185: conv.r4
IL_0186: stfld System.Single UnityEngine.Vector2::y
IL_018B: ldarg.2
IL_018C: call static System.UInt16 EffectInfo::GetBuilding(InstanceID id)
IL_0191: stloc.s 13 (System.UInt16)
IL_0193: ldloc.s 13 (System.UInt16)
IL_0195: brfalse => Label5
IL_019A: ldloc.s 13 (System.UInt16)
IL_019C: call static UnityEngine.Vector4
RenderManager::GetColorLocation(System.UInt32 instanceHolder)
IL_01A1: call static UnityEngine.Vector2
UnityEngine.Vector4::op_Implicit(UnityEngine.Vector4 v)
IL_01A6: stloc.s 11 (UnityEngine.Vector2)
IL_01A8: ldloc.0
IL_01A9: brfalse => Label6
IL_01AE: call static BuildingManager
ColossalFramework.Singleton`1<BuildingManager>::get_instance()
IL_01B3: ldfld Array16`1<Building> BuildingManager::m_buildings
IL_01B8: ldfld Building[] Array16`1<Building>::m_buffer
IL_01BD: ldloc.s 13 (System.UInt16)
IL_01BF: ldelema Building
IL_01C4: call UnityEngine.Vector3 Building::CalculateMeshPosition()
IL_01C9: stloc.s 14 (UnityEngine.Vector3)
IL_01CB: ldloc.s 14 (UnityEngine.Vector3)
IL_01CD: call static UnityEngine.Vector2
ColossalFramework.Math.VectorUtils::XZ(UnityEngine.Vector3 v)
IL_01D2: stloc.s 12 (UnityEngine.Vector2)
IL_01D4: ldarga.s 3
IL_01D6: dup
IL_01D7: ldfld System.Single UnityEngine.Vector3::y
IL_01DC: ldloca.s 14 (UnityEngine.Vector3)
IL_01DE: ldfld System.Single UnityEngine.Vector3::y
IL_01E3: sub
IL_01E4: stfld System.Single UnityEngine.Vector3::y
IL_01E9: ldloca.s 4 (UnityEngine.Vector3)
IL_01EB: dup
IL_01EC: ldfld System.Single UnityEngine.Vector3::y
IL_01F1: ldloca.s 14 (UnityEngine.Vector3)
IL_01F3: ldfld System.Single UnityEngine.Vector3::y
IL_01F8: sub
IL_01F9: stfld System.Single UnityEngine.Vector3::y
IL_01FE: br => Label7
IL_0203: Label6
IL_0203: call static UnityEngine.Vector2 UnityEngine.Vector2::get_zero()
IL_0208: stloc.s 12 (UnityEngine.Vector2)
IL_020A: Label7
IL_020A: br => Label8
IL_020F: Label5
IL_020F: ldsfld UnityEngine.Vector4 RenderManager::DefaultColorLocation
IL_0214: call static UnityEngine.Vector2
UnityEngine.Vector4::op_Implicit(UnityEngine.Vector4 v)
IL_0219: stloc.s 11 (UnityEngine.Vector2)
IL_021B: call static UnityEngine.Vector2 UnityEngine.Vector2::get_zero()
IL_0220: stloc.s 12 (UnityEngine.Vector2)
IL_0222: Label8
IL_0222: ldarg.0
IL_0223: ldfld UnityEngine.Color LightEffect::m_lightColor
IL_0228: stloc.s 15 (UnityEngine.Color)
IL_022A: ldarg.0
IL_022B: ldfld UnityEngine.Color[] LightEffect::m_variationColors
IL_0230: brfalse => Label9
IL_0235: ldarg.0
IL_0236: ldfld UnityEngine.Color[] LightEffect::m_variationColors
IL_023B: ldlen
IL_023C: conv.i4
IL_023D: brfalse => Label10
IL_0242: ldarg.0
IL_0243: ldfld UnityEngine.Color[] LightEffect::m_variationColors
IL_0248: ldloca.s 9 (ColossalFramework.Math.Randomizer)
IL_024A: ldarg.0
IL_024B: ldfld UnityEngine.Color[] LightEffect::m_variationColors
IL_0250: ldlen
IL_0251: conv.i4
IL_0252: call System.Int32
ColossalFramework.Math.Randomizer::Int32(System.UInt32 range)
IL_0257: ldelema UnityEngine.Color
IL_025C: ldobj UnityEngine.Color
IL_0261: stloc.s 16 (UnityEngine.Color)
IL_0263: ldloc.s 15 (UnityEngine.Color)
IL_0265: ldloc.s 16 (UnityEngine.Color)
IL_0267: ldloca.s 9 (ColossalFramework.Math.Randomizer)
IL_0269: ldc.i4 1000
IL_026E: call System.Int32
ColossalFramework.Math.Randomizer::Int32(System.UInt32 range)
IL_0273: conv.r4
IL_0274: ldc.r4 0.001
IL_0279: mul
IL_027A: call static UnityEngine.Color
UnityEngine.Color::Lerp(UnityEngine.Color a, UnityEngine.Color b, System.Single t)
IL_027F: stloc.s 15 (UnityEngine.Color)
IL_0281: Label9
IL_0281: Label10
IL_0281: ldloca.s 15 (UnityEngine.Color)
IL_0283: call UnityEngine.Color UnityEngine.Color::get_linear()
IL_0288: stloc.s 15 (UnityEngine.Color)
IL_028A: ldloca.s 15 (UnityEngine.Color)
IL_028C: ldarg.0
IL_028D: ldfld UnityEngine.LightType LightEffect::m_lightType
IL_0292: brtrue => Label11
IL_0297: ldarg.0
IL_0298: ldfld System.Single LightEffect::m_spotLeaking
IL_029D: br => Label12
IL_02A2: Label11
IL_02A2: ldc.r4 0
IL_02A7: Label12
IL_02A7: stfld System.Single UnityEngine.Color::a
IL_02AC: ldarg.0
IL_02AD: ldfld System.Single LightEffect::m_lightRange
IL_02B2: ldc.r4 0.5235988
IL_02B7: call static System.Single UnityEngine.Mathf::Cos(System.Single f)
IL_02BC: div
IL_02BD: stloc.s 17 (System.Single)
IL_02BF: ldloc.s 17 (System.Single)
IL_02C1: ldc.r4 0.5
IL_02C6: mul
IL_02C7: stloc.s 18 (System.Single)
IL_02C9: ldarg.s 8
IL_02CB: ldfld UnityEngine.Vector3[] MeshData::m_vertices
IL_02D0: ldarg.s 5
IL_02D2: ldind.i4
IL_02D3: ldelema UnityEngine.Vector3
IL_02D8: ldloca.s 4 (UnityEngine.Vector3)
IL_02DA: ldfld System.Single UnityEngine.Vector3::x
IL_02DF: ldloc.s 18 (System.Single)
IL_02E1: sub
IL_02E2: ldloca.s 4 (UnityEngine.Vector3)
IL_02E4: ldfld System.Single UnityEngine.Vector3::y
IL_02E9: ldarg.0
IL_02EA: ldfld System.Single LightEffect::m_lightRange
IL_02EF: add
IL_02F0: ldloca.s 4 (UnityEngine.Vector3)
IL_02F2: ldfld System.Single UnityEngine.Vector3::z
IL_02F7: ldarg.0
IL_02F8: ldfld System.Single LightEffect::m_lightRange
IL_02FD: add
IL_02FE: newobj System.Void UnityEngine.Vector3::.ctor(System.Single x,
System.Single y, System.Single z)
IL_0303: stobj UnityEngine.Vector3
IL_0308: ldarg.s 8
IL_030A: ldfld UnityEngine.Vector3[] MeshData::m_normals
IL_030F: ldarg.s 5
IL_0311: ldind.i4
IL_0312: ldelema UnityEngine.Vector3
IL_0317: ldarg.3
IL_0318: stobj UnityEngine.Vector3
IL_031D: ldarg.s 8
IL_031F: ldfld UnityEngine.Vector4[] MeshData::m_tangents
IL_0324: ldarg.s 5
IL_0326: ldind.i4
IL_0327: ldelema UnityEngine.Vector4
IL_032C: ldloc.s 7 (UnityEngine.Vector4)
IL_032E: stobj UnityEngine.Vector4
IL_0333: ldarg.s 8
IL_0335: ldfld UnityEngine.Vector2[] MeshData::m_uvs
IL_033A: ldarg.s 5
IL_033C: ldind.i4
IL_033D: ldelema UnityEngine.Vector2
IL_0342: ldloc.s 8 (UnityEngine.Vector2)
IL_0344: stobj UnityEngine.Vector2
IL_0349: ldarg.s 8
IL_034B: ldfld UnityEngine.Vector2[] MeshData::m_uvs2
IL_0350: ldarg.s 5
IL_0352: ldind.i4
IL_0353: ldelema UnityEngine.Vector2
IL_0358: ldloc.s 10 (UnityEngine.Vector2)
IL_035A: stobj UnityEngine.Vector2
IL_035F: ldarg.s 8
IL_0361: ldfld UnityEngine.Vector2[] MeshData::m_uvs3
IL_0366: ldarg.s 5
IL_0368: ldind.i4
IL_0369: ldelema UnityEngine.Vector2
IL_036E: ldloc.s 11 (UnityEngine.Vector2)
IL_0370: stobj UnityEngine.Vector2
IL_0375: ldloc.0
IL_0376: brfalse => Label13
IL_037B: ldarg.s 8
IL_037D: ldfld UnityEngine.Vector2[] MeshData::m_uvs4
IL_0382: ldarg.s 5
IL_0384: ldind.i4
IL_0385: ldelema UnityEngine.Vector2
IL_038A: ldloc.s 12 (UnityEngine.Vector2)
IL_038C: stobj UnityEngine.Vector2
IL_0391: Label13
IL_0391: ldarg.s 8
IL_0393: ldfld UnityEngine.Color32[] MeshData::m_colors
IL_0398: ldarg.s 5
IL_039A: ldind.i4
IL_039B: ldelema UnityEngine.Color32
IL_03A0: ldloc.s 15 (UnityEngine.Color)
IL_03A2: call static UnityEngine.Color32
UnityEngine.Color32::op_Implicit(UnityEngine.Color c)
IL_03A7: stobj UnityEngine.Color32
IL_03AC: ldarg.s 5
IL_03AE: ldarg.s 5
IL_03B0: ldind.i4
IL_03B1: ldc.i4.1
IL_03B2: add
IL_03B3: stind.i4
IL_03B4: ldarg.s 8
IL_03B6: ldfld UnityEngine.Vector3[] MeshData::m_vertices
IL_03BB: ldarg.s 5
IL_03BD: ldind.i4
IL_03BE: ldelema UnityEngine.Vector3
IL_03C3: ldloca.s 4 (UnityEngine.Vector3)
IL_03C5: ldfld System.Single UnityEngine.Vector3::x
IL_03CA: ldloc.s 18 (System.Single)
IL_03CC: add
IL_03CD: ldloca.s 4 (UnityEngine.Vector3)
IL_03CF: ldfld System.Single UnityEngine.Vector3::y
IL_03D4: ldarg.0
IL_03D5: ldfld System.Single LightEffect::m_lightRange
IL_03DA: add
IL_03DB: ldloca.s 4 (UnityEngine.Vector3)
IL_03DD: ldfld System.Single UnityEngine.Vector3::z
IL_03E2: ldarg.0
IL_03E3: ldfld System.Single LightEffect::m_lightRange
IL_03E8: add
IL_03E9: newobj System.Void UnityEngine.Vector3::.ctor(System.Single x,
System.Single y, System.Single z)
IL_03EE: stobj UnityEngine.Vector3
IL_03F3: ldarg.s 8
IL_03F5: ldfld UnityEngine.Vector3[] MeshData::m_normals
IL_03FA: ldarg.s 5
IL_03FC: ldind.i4
IL_03FD: ldelema UnityEngine.Vector3
IL_0402: ldarg.3
IL_0403: stobj UnityEngine.Vector3
IL_0408: ldarg.s 8
IL_040A: ldfld UnityEngine.Vector4[] MeshData::m_tangents
IL_040F: ldarg.s 5
IL_0411: ldind.i4
IL_0412: ldelema UnityEngine.Vector4
IL_0417: ldloc.s 7 (UnityEngine.Vector4)
IL_0419: stobj UnityEngine.Vector4
IL_041E: ldarg.s 8
IL_0420: ldfld UnityEngine.Vector2[] MeshData::m_uvs
IL_0425: ldarg.s 5
IL_0427: ldind.i4
IL_0428: ldelema UnityEngine.Vector2
IL_042D: ldloc.s 8 (UnityEngine.Vector2)
IL_042F: stobj UnityEngine.Vector2
IL_0434: ldarg.s 8
IL_0436: ldfld UnityEngine.Vector2[] MeshData::m_uvs2
IL_043B: ldarg.s 5
IL_043D: ldind.i4
IL_043E: ldelema UnityEngine.Vector2
IL_0443: ldloc.s 10 (UnityEngine.Vector2)
IL_0445: stobj UnityEngine.Vector2
IL_044A: ldarg.s 8
IL_044C: ldfld UnityEngine.Vector2[] MeshData::m_uvs3
IL_0451: ldarg.s 5
IL_0453: ldind.i4
IL_0454: ldelema UnityEngine.Vector2
IL_0459: ldloc.s 11 (UnityEngine.Vector2)
IL_045B: stobj UnityEngine.Vector2
IL_0460: ldloc.0
IL_0461: brfalse => Label14
IL_0466: ldarg.s 8
IL_0468: ldfld UnityEngine.Vector2[] MeshData::m_uvs4
IL_046D: ldarg.s 5
IL_046F: ldind.i4
IL_0470: ldelema UnityEngine.Vector2
IL_0475: ldloc.s 12 (UnityEngine.Vector2)
IL_0477: stobj UnityEngine.Vector2
IL_047C: Label14
IL_047C: ldarg.s 8
IL_047E: ldfld UnityEngine.Color32[] MeshData::m_colors
IL_0483: ldarg.s 5
IL_0485: ldind.i4
IL_0486: ldelema UnityEngine.Color32
IL_048B: ldloc.s 15 (UnityEngine.Color)
IL_048D: call static UnityEngine.Color32
UnityEngine.Color32::op_Implicit(UnityEngine.Color c)
IL_0492: stobj UnityEngine.Color32
IL_0497: ldarg.s 5
IL_0499: ldarg.s 5
IL_049B: ldind.i4
IL_049C: ldc.i4.1
IL_049D: add
IL_049E: stind.i4
IL_049F: ldarg.s 8
IL_04A1: ldfld UnityEngine.Vector3[] MeshData::m_vertices
IL_04A6: ldarg.s 5
IL_04A8: ldind.i4
IL_04A9: ldelema UnityEngine.Vector3
IL_04AE: ldloca.s 4 (UnityEngine.Vector3)
IL_04B0: ldfld System.Single UnityEngine.Vector3::x
IL_04B5: ldloc.s 17 (System.Single)
IL_04B7: add
IL_04B8: ldloca.s 4 (UnityEngine.Vector3)
IL_04BA: ldfld System.Single UnityEngine.Vector3::y
IL_04BF: ldloca.s 4 (UnityEngine.Vector3)
IL_04C1: ldfld System.Single UnityEngine.Vector3::z
IL_04C6: ldarg.0
IL_04C7: ldfld System.Single LightEffect::m_lightRange
IL_04CC: add
IL_04CD: newobj System.Void UnityEngine.Vector3::.ctor(System.Single x,
System.Single y, System.Single z)
IL_04D2: stobj UnityEngine.Vector3
IL_04D7: ldarg.s 8
IL_04D9: ldfld UnityEngine.Vector3[] MeshData::m_normals
IL_04DE: ldarg.s 5
IL_04E0: ldind.i4
IL_04E1: ldelema UnityEngine.Vector3
IL_04E6: ldarg.3
IL_04E7: stobj UnityEngine.Vector3
IL_04EC: ldarg.s 8
IL_04EE: ldfld UnityEngine.Vector4[] MeshData::m_tangents
IL_04F3: ldarg.s 5
IL_04F5: ldind.i4
IL_04F6: ldelema UnityEngine.Vector4
IL_04FB: ldloc.s 7 (UnityEngine.Vector4)
IL_04FD: stobj UnityEngine.Vector4
IL_0502: ldarg.s 8
IL_0504: ldfld UnityEngine.Vector2[] MeshData::m_uvs
IL_0509: ldarg.s 5
IL_050B: ldind.i4
IL_050C: ldelema UnityEngine.Vector2
IL_0511: ldloc.s 8 (UnityEngine.Vector2)
IL_0513: stobj UnityEngine.Vector2
IL_0518: ldarg.s 8
IL_051A: ldfld UnityEngine.Vector2[] MeshData::m_uvs2
IL_051F: ldarg.s 5
IL_0521: ldind.i4
IL_0522: ldelema UnityEngine.Vector2
IL_0527: ldloc.s 10 (UnityEngine.Vector2)
IL_0529: stobj UnityEngine.Vector2
IL_052E: ldarg.s 8
IL_0530: ldfld UnityEngine.Vector2[] MeshData::m_uvs3
IL_0535: ldarg.s 5
IL_0537: ldind.i4
IL_0538: ldelema UnityEngine.Vector2
IL_053D: ldloc.s 11 (UnityEngine.Vector2)
IL_053F: stobj UnityEngine.Vector2
IL_0544: ldloc.0
IL_0545: brfalse => Label15
IL_054A: ldarg.s 8
IL_054C: ldfld UnityEngine.Vector2[] MeshData::m_uvs4
IL_0551: ldarg.s 5
IL_0553: ldind.i4
IL_0554: ldelema UnityEngine.Vector2
IL_0559: ldloc.s 12 (UnityEngine.Vector2)
IL_055B: stobj UnityEngine.Vector2
IL_0560: Label15
IL_0560: ldarg.s 8
IL_0562: ldfld UnityEngine.Color32[] MeshData::m_colors
IL_0567: ldarg.s 5
IL_0569: ldind.i4
IL_056A: ldelema UnityEngine.Color32
IL_056F: ldloc.s 15 (UnityEngine.Color)
IL_0571: call static UnityEngine.Color32
UnityEngine.Color32::op_Implicit(UnityEngine.Color c)
IL_0576: stobj UnityEngine.Color32
IL_057B: ldarg.s 5
IL_057D: ldarg.s 5
IL_057F: ldind.i4
IL_0580: ldc.i4.1
IL_0581: add
IL_0582: stind.i4
IL_0583: ldarg.s 8
IL_0585: ldfld UnityEngine.Vector3[] MeshData::m_vertices
IL_058A: ldarg.s 5
IL_058C: ldind.i4
IL_058D: ldelema UnityEngine.Vector3
IL_0592: ldloca.s 4 (UnityEngine.Vector3)
IL_0594: ldfld System.Single UnityEngine.Vector3::x
IL_0599: ldloc.s 18 (System.Single)
IL_059B: add
IL_059C: ldloca.s 4 (UnityEngine.Vector3)
IL_059E: ldfld System.Single UnityEngine.Vector3::y
IL_05A3: ldarg.0
IL_05A4: ldfld System.Single LightEffect::m_lightRange
IL_05A9: sub
IL_05AA: ldloca.s 4 (UnityEngine.Vector3)
IL_05AC: ldfld System.Single UnityEngine.Vector3::z
IL_05B1: ldarg.0
IL_05B2: ldfld System.Single LightEffect::m_lightRange
IL_05B7: add
IL_05B8: newobj System.Void UnityEngine.Vector3::.ctor(System.Single x,
System.Single y, System.Single z)
IL_05BD: stobj UnityEngine.Vector3
IL_05C2: ldarg.s 8
IL_05C4: ldfld UnityEngine.Vector3[] MeshData::m_normals
IL_05C9: ldarg.s 5
IL_05CB: ldind.i4
IL_05CC: ldelema UnityEngine.Vector3
IL_05D1: ldarg.3
IL_05D2: stobj UnityEngine.Vector3
IL_05D7: ldarg.s 8
IL_05D9: ldfld UnityEngine.Vector4[] MeshData::m_tangents
IL_05DE: ldarg.s 5
IL_05E0: ldind.i4
IL_05E1: ldelema UnityEngine.Vector4
IL_05E6: ldloc.s 7 (UnityEngine.Vector4)
IL_05E8: stobj UnityEngine.Vector4
IL_05ED: ldarg.s 8
IL_05EF: ldfld UnityEngine.Vector2[] MeshData::m_uvs
IL_05F4: ldarg.s 5
IL_05F6: ldind.i4
IL_05F7: ldelema UnityEngine.Vector2
IL_05FC: ldloc.s 8 (UnityEngine.Vector2)
IL_05FE: stobj UnityEngine.Vector2
IL_0603: ldarg.s 8
IL_0605: ldfld UnityEngine.Vector2[] MeshData::m_uvs2
IL_060A: ldarg.s 5
IL_060C: ldind.i4
IL_060D: ldelema UnityEngine.Vector2
IL_0612: ldloc.s 10 (UnityEngine.Vector2)
IL_0614: stobj UnityEngine.Vector2
IL_0619: ldarg.s 8
IL_061B: ldfld UnityEngine.Vector2[] MeshData::m_uvs3
IL_0620: ldarg.s 5
IL_0622: ldind.i4
IL_0623: ldelema UnityEngine.Vector2
IL_0628: ldloc.s 11 (UnityEngine.Vector2)
IL_062A: stobj UnityEngine.Vector2
IL_062F: ldloc.0
IL_0630: brfalse => Label16
IL_0635: ldarg.s 8
IL_0637: ldfld UnityEngine.Vector2[] MeshData::m_uvs4
IL_063C: ldarg.s 5
IL_063E: ldind.i4
IL_063F: ldelema UnityEngine.Vector2
IL_0644: ldloc.s 12 (UnityEngine.Vector2)
IL_0646: stobj UnityEngine.Vector2
IL_064B: Label16
IL_064B: ldarg.s 8
IL_064D: ldfld UnityEngine.Color32[] MeshData::m_colors
IL_0652: ldarg.s 5
IL_0654: ldind.i4
IL_0655: ldelema UnityEngine.Color32
IL_065A: ldloc.s 15 (UnityEngine.Color)
IL_065C: call static UnityEngine.Color32
UnityEngine.Color32::op_Implicit(UnityEngine.Color c)
IL_0661: stobj UnityEngine.Color32
IL_0666: ldarg.s 5
IL_0668: ldarg.s 5
IL_066A: ldind.i4
IL_066B: ldc.i4.1
IL_066C: add
IL_066D: stind.i4
IL_066E: ldarg.s 8
IL_0670: ldfld UnityEngine.Vector3[] MeshData::m_vertices
IL_0675: ldarg.s 5
IL_0677: ldind.i4
IL_0678: ldelema UnityEngine.Vector3
IL_067D: ldloca.s 4 (UnityEngine.Vector3)
IL_067F: ldfld System.Single UnityEngine.Vector3::x
IL_0684: ldloc.s 18 (System.Single)
IL_0686: sub
IL_0687: ldloca.s 4 (UnityEngine.Vector3)
IL_0689: ldfld System.Single UnityEngine.Vector3::y
IL_068E: ldarg.0
IL_068F: ldfld System.Single LightEffect::m_lightRange
IL_0694: sub
IL_0695: ldloca.s 4 (UnityEngine.Vector3)
IL_0697: ldfld System.Single UnityEngine.Vector3::z
IL_069C: ldarg.0
IL_069D: ldfld System.Single LightEffect::m_lightRange
IL_06A2: add
IL_06A3: newobj System.Void UnityEngine.Vector3::.ctor(System.Single x,
System.Single y, System.Single z)
IL_06A8: stobj UnityEngine.Vector3
IL_06AD: ldarg.s 8
IL_06AF: ldfld UnityEngine.Vector3[] MeshData::m_normals
IL_06B4: ldarg.s 5
IL_06B6: ldind.i4
IL_06B7: ldelema UnityEngine.Vector3
IL_06BC: ldarg.3
IL_06BD: stobj UnityEngine.Vector3
IL_06C2: ldarg.s 8
IL_06C4: ldfld UnityEngine.Vector4[] MeshData::m_tangents
IL_06C9: ldarg.s 5
IL_06CB: ldind.i4
IL_06CC: ldelema UnityEngine.Vector4
IL_06D1: ldloc.s 7 (UnityEngine.Vector4)
IL_06D3: stobj UnityEngine.Vector4
IL_06D8: ldarg.s 8
IL_06DA: ldfld UnityEngine.Vector2[] MeshData::m_uvs
IL_06DF: ldarg.s 5
IL_06E1: ldind.i4
IL_06E2: ldelema UnityEngine.Vector2
IL_06E7: ldloc.s 8 (UnityEngine.Vector2)
IL_06E9: stobj UnityEngine.Vector2
IL_06EE: ldarg.s 8
IL_06F0: ldfld UnityEngine.Vector2[] MeshData::m_uvs2
IL_06F5: ldarg.s 5
IL_06F7: ldind.i4
IL_06F8: ldelema UnityEngine.Vector2
IL_06FD: ldloc.s 10 (UnityEngine.Vector2)
IL_06FF: stobj UnityEngine.Vector2
IL_0704: ldarg.s 8
IL_0706: ldfld UnityEngine.Vector2[] MeshData::m_uvs3
IL_070B: ldarg.s 5
IL_070D: ldind.i4
IL_070E: ldelema UnityEngine.Vector2
IL_0713: ldloc.s 11 (UnityEngine.Vector2)
IL_0715: stobj UnityEngine.Vector2
IL_071A: ldloc.0
IL_071B: brfalse => Label17
IL_0720: ldarg.s 8
IL_0722: ldfld UnityEngine.Vector2[] MeshData::m_uvs4
IL_0727: ldarg.s 5
IL_0729: ldind.i4
IL_072A: ldelema UnityEngine.Vector2
IL_072F: ldloc.s 12 (UnityEngine.Vector2)
IL_0731: stobj UnityEngine.Vector2
IL_0736: Label17
IL_0736: ldarg.s 8
IL_0738: ldfld UnityEngine.Color32[] MeshData::m_colors
IL_073D: ldarg.s 5
IL_073F: ldind.i4
IL_0740: ldelema UnityEngine.Color32
IL_0745: ldloc.s 15 (UnityEngine.Color)
IL_0747: call static UnityEngine.Color32
UnityEngine.Color32::op_Implicit(UnityEngine.Color c)
IL_074C: stobj UnityEngine.Color32
IL_0751: ldarg.s 5
IL_0753: ldarg.s 5
IL_0755: ldind.i4
IL_0756: ldc.i4.1
IL_0757: add
IL_0758: stind.i4
IL_0759: ldarg.s 8
IL_075B: ldfld UnityEngine.Vector3[] MeshData::m_vertices
IL_0760: ldarg.s 5
IL_0762: ldind.i4
IL_0763: ldelema UnityEngine.Vector3
IL_0768: ldloca.s 4 (UnityEngine.Vector3)
IL_076A: ldfld System.Single UnityEngine.Vector3::x
IL_076F: ldloc.s 17 (System.Single)
IL_0771: sub
IL_0772: ldloca.s 4 (UnityEngine.Vector3)
IL_0774: ldfld System.Single UnityEngine.Vector3::y
IL_0779: ldloca.s 4 (UnityEngine.Vector3)
IL_077B: ldfld System.Single UnityEngine.Vector3::z
IL_0780: ldarg.0
IL_0781: ldfld System.Single LightEffect::m_lightRange
IL_0786: add
IL_0787: newobj System.Void UnityEngine.Vector3::.ctor(System.Single x,
System.Single y, System.Single z)
IL_078C: stobj UnityEngine.Vector3
IL_0791: ldarg.s 8
IL_0793: ldfld UnityEngine.Vector3[] MeshData::m_normals
IL_0798: ldarg.s 5
IL_079A: ldind.i4
IL_079B: ldelema UnityEngine.Vector3
IL_07A0: ldarg.3
IL_07A1: stobj UnityEngine.Vector3
IL_07A6: ldarg.s 8
IL_07A8: ldfld UnityEngine.Vector4[] MeshData::m_tangents
IL_07AD: ldarg.s 5
IL_07AF: ldind.i4
IL_07B0: ldelema UnityEngine.Vector4
IL_07B5: ldloc.s 7 (UnityEngine.Vector4)
IL_07B7: stobj UnityEngine.Vector4
IL_07BC: ldarg.s 8
IL_07BE: ldfld UnityEngine.Vector2[] MeshData::m_uvs
IL_07C3: ldarg.s 5
IL_07C5: ldind.i4
IL_07C6: ldelema UnityEngine.Vector2
IL_07CB: ldloc.s 8 (UnityEngine.Vector2)
IL_07CD: stobj UnityEngine.Vector2
IL_07D2: ldarg.s 8
IL_07D4: ldfld UnityEngine.Vector2[] MeshData::m_uvs2
IL_07D9: ldarg.s 5
IL_07DB: ldind.i4
IL_07DC: ldelema UnityEngine.Vector2
IL_07E1: ldloc.s 10 (UnityEngine.Vector2)
IL_07E3: stobj UnityEngine.Vector2
IL_07E8: ldarg.s 8
IL_07EA: ldfld UnityEngine.Vector2[] MeshData::m_uvs3
IL_07EF: ldarg.s 5
IL_07F1: ldind.i4
IL_07F2: ldelema UnityEngine.Vector2
IL_07F7: ldloc.s 11 (UnityEngine.Vector2)
IL_07F9: stobj UnityEngine.Vector2
IL_07FE: ldloc.0
IL_07FF: brfalse => Label18
IL_0804: ldarg.s 8
IL_0806: ldfld UnityEngine.Vector2[] MeshData::m_uvs4
IL_080B: ldarg.s 5
IL_080D: ldind.i4
IL_080E: ldelema UnityEngine.Vector2
IL_0813: ldloc.s 12 (UnityEngine.Vector2)
IL_0815: stobj UnityEngine.Vector2
IL_081A: Label18
IL_081A: ldarg.s 8
IL_081C: ldfld UnityEngine.Color32[] MeshData::m_colors
IL_0821: ldarg.s 5
IL_0823: ldind.i4
IL_0824: ldelema UnityEngine.Color32
IL_0829: ldloc.s 15 (UnityEngine.Color)
IL_082B: call static UnityEngine.Color32
UnityEngine.Color32::op_Implicit(UnityEngine.Color c)
IL_0830: stobj UnityEngine.Color32
IL_0835: ldarg.s 5
IL_0837: ldarg.s 5
IL_0839: ldind.i4
IL_083A: ldc.i4.1
IL_083B: add
IL_083C: stind.i4
IL_083D: ldarg.s 8
IL_083F: ldfld System.Int32[] MeshData::m_triangles
IL_0844: ldarg.s 6
IL_0846: ldarg.s 6
IL_0848: ldind.i4
IL_0849: dup
IL_084A: stloc.s 19 (System.Int32)
IL_084C: ldc.i4.1
IL_084D: add
IL_084E: stind.i4
IL_084F: ldloc.s 19 (System.Int32)
IL_0851: ldarg.s 5
IL_0853: ldind.i4
IL_0854: ldc.i4.6
IL_0855: sub
IL_0856: stelem.i4
IL_0857: ldarg.s 8
IL_0859: ldfld System.Int32[] MeshData::m_triangles
IL_085E: ldarg.s 6
IL_0860: ldarg.s 6
IL_0862: ldind.i4
IL_0863: dup
IL_0864: stloc.s 19 (System.Int32)
IL_0866: ldc.i4.1
IL_0867: add
IL_0868: stind.i4
IL_0869: ldloc.s 19 (System.Int32)
IL_086B: ldarg.s 5
IL_086D: ldind.i4
IL_086E: ldc.i4.5
IL_086F: sub
IL_0870: stelem.i4
IL_0871: ldarg.s 8
IL_0873: ldfld System.Int32[] MeshData::m_triangles
IL_0878: ldarg.s 6
IL_087A: ldarg.s 6
IL_087C: ldind.i4
IL_087D: dup
IL_087E: stloc.s 19 (System.Int32)
IL_0880: ldc.i4.1
IL_0881: add
IL_0882: stind.i4
IL_0883: ldloc.s 19 (System.Int32)
IL_0885: ldarg.s 5
IL_0887: ldind.i4
IL_0888: ldc.i4.1
IL_0889: sub
IL_088A: stelem.i4
IL_088B: ldarg.s 8
IL_088D: ldfld System.Int32[] MeshData::m_triangles
IL_0892: ldarg.s 6
IL_0894: ldarg.s 6
IL_0896: ldind.i4
IL_0897: dup
IL_0898: stloc.s 19 (System.Int32)
IL_089A: ldc.i4.1
IL_089B: add
IL_089C: stind.i4
IL_089D: ldloc.s 19 (System.Int32)
IL_089F: ldarg.s 5
IL_08A1: ldind.i4
IL_08A2: ldc.i4.1
IL_08A3: sub
IL_08A4: stelem.i4
IL_08A5: ldarg.s 8
IL_08A7: ldfld System.Int32[] MeshData::m_triangles
IL_08AC: ldarg.s 6
IL_08AE: ldarg.s 6
IL_08B0: ldind.i4
IL_08B1: dup
IL_08B2: stloc.s 19 (System.Int32)
IL_08B4: ldc.i4.1
IL_08B5: add
IL_08B6: stind.i4
IL_08B7: ldloc.s 19 (System.Int32)
IL_08B9: ldarg.s 5
IL_08BB: ldind.i4
IL_08BC: ldc.i4.5
IL_08BD: sub
IL_08BE: stelem.i4
IL_08BF: ldarg.s 8
IL_08C1: ldfld System.Int32[] MeshData::m_triangles
IL_08C6: ldarg.s 6
IL_08C8: ldarg.s 6
IL_08CA: ldind.i4
IL_08CB: dup
IL_08CC: stloc.s 19 (System.Int32)
IL_08CE: ldc.i4.1
IL_08CF: add
IL_08D0: stind.i4
IL_08D1: ldloc.s 19 (System.Int32)
IL_08D3: ldarg.s 5
IL_08D5: ldind.i4
IL_08D6: ldc.i4.4
IL_08D7: sub
IL_08D8: stelem.i4
IL_08D9: ldarg.s 8
IL_08DB: ldfld System.Int32[] MeshData::m_triangles
IL_08E0: ldarg.s 6
IL_08E2: ldarg.s 6
IL_08E4: ldind.i4
IL_08E5: dup
IL_08E6: stloc.s 19 (System.Int32)
IL_08E8: ldc.i4.1
IL_08E9: add
IL_08EA: stind.i4
IL_08EB: ldloc.s 19 (System.Int32)
IL_08ED: ldarg.s 5
IL_08EF: ldind.i4
IL_08F0: ldc.i4.1
IL_08F1: sub
IL_08F2: stelem.i4
IL_08F3: ldarg.s 8
IL_08F5: ldfld System.Int32[] MeshData::m_triangles
IL_08FA: ldarg.s 6
IL_08FC: ldarg.s 6
IL_08FE: ldind.i4
IL_08FF: dup
IL_0900: stloc.s 19 (System.Int32)
IL_0902: ldc.i4.1
IL_0903: add
IL_0904: stind.i4
IL_0905: ldloc.s 19 (System.Int32)
IL_0907: ldarg.s 5
IL_0909: ldind.i4
IL_090A: ldc.i4.4
IL_090B: sub
IL_090C: stelem.i4
IL_090D: ldarg.s 8
IL_090F: ldfld System.Int32[] MeshData::m_triangles
IL_0914: ldarg.s 6
IL_0916: ldarg.s 6
IL_0918: ldind.i4
IL_0919: dup
IL_091A: stloc.s 19 (System.Int32)
IL_091C: ldc.i4.1
IL_091D: add
IL_091E: stind.i4
IL_091F: ldloc.s 19 (System.Int32)
IL_0921: ldarg.s 5
IL_0923: ldind.i4
IL_0924: ldc.i4.2
IL_0925: sub
IL_0926: stelem.i4
IL_0927: ldarg.s 8
IL_0929: ldfld System.Int32[] MeshData::m_triangles
IL_092E: ldarg.s 6
IL_0930: ldarg.s 6
IL_0932: ldind.i4
IL_0933: dup
IL_0934: stloc.s 19 (System.Int32)
IL_0936: ldc.i4.1
IL_0937: add
IL_0938: stind.i4
IL_0939: ldloc.s 19 (System.Int32)
IL_093B: ldarg.s 5
IL_093D: ldind.i4
IL_093E: ldc.i4.2
IL_093F: sub
IL_0940: stelem.i4
IL_0941: ldarg.s 8
IL_0943: ldfld System.Int32[] MeshData::m_triangles
IL_0948: ldarg.s 6
IL_094A: ldarg.s 6
IL_094C: ldind.i4
IL_094D: dup
IL_094E: stloc.s 19 (System.Int32)
IL_0950: ldc.i4.1
IL_0951: add
IL_0952: stind.i4
IL_0953: ldloc.s 19 (System.Int32)
IL_0955: ldarg.s 5
IL_0957: ldind.i4
IL_0958: ldc.i4.4
IL_0959: sub
IL_095A: stelem.i4
IL_095B: ldarg.s 8
IL_095D: ldfld System.Int32[] MeshData::m_triangles
IL_0962: ldarg.s 6
IL_0964: ldarg.s 6
IL_0966: ldind.i4
IL_0967: dup
IL_0968: stloc.s 19 (System.Int32)
IL_096A: ldc.i4.1
IL_096B: add
IL_096C: stind.i4
IL_096D: ldloc.s 19 (System.Int32)
IL_096F: ldarg.s 5
IL_0971: ldind.i4
IL_0972: ldc.i4.3
IL_0973: sub
IL_0974: stelem.i4
IL_0975: // end original
IL_0975: Label1
IL_0975: ret
DONE

### Patch: virtual System.Void ElectricityManager::SimulationStepImpl(System.Int32


subStep)
### Replacement: static System.Void
ElectricityManager::ElectricityManager.SimulationStepImpl_Patch0(ElectricityManager
this, System.Int32 subStep)
IL_0000: Local var 0: System.UInt32
IL_0000: Local var 1: System.Int32
IL_0000: Local var 2: NetManager
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: NetInfo
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: ElectricityManager/Cell
IL_0000: Local var 13: ElectricityManager/PulseGroup
IL_0000: Local var 14: ElectricityManager/PulseUnit
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: ElectricityManager/PulseUnit
IL_0000: Local var 19: System.UInt32
IL_0000: Local var 20: System.Int32
IL_0000: Local var 21: ElectricityManager/Cell
IL_0000: Local var 22: System.Int32
IL_0000: Local var 23: System.Int32
IL_0000: Local var 24: NetNode
IL_0000: Local var 25: System.Int32
IL_0000: Local var 26: System.UInt16
IL_0000: Local var 27: System.UInt16
IL_0000: Local var 28: System.UInt16
IL_0000: Local var 29: System.UInt16
IL_0000: Local var 30: System.Int32
IL_0000: Local var 31: ElectricityManager/PulseGroup
IL_0000: Local var 32: ElectricityManager/PulseGroup
IL_0000: Local var 33: System.Int32
IL_0000: Local var 34: ElectricityManager/PulseGroup
IL_0000: Local var 35: System.Int32
IL_0000: Local var 36: ElectricityManager/Cell
IL_0000: // start original
IL_0000: ldarg.1
IL_0001: brfalse => Label0
IL_0006: ldarg.1
IL_0007: ldc.i4 1000
IL_000C: beq => Label1
IL_0011: call static SimulationManager
ColossalFramework.Singleton`1<SimulationManager>::get_instance()
IL_0016: ldfld System.UInt32 SimulationManager::m_currentFrameIndex
IL_001B: stloc.0
IL_001C: ldloc.0
IL_001D: ldc.i4 255
IL_0022: and
IL_0023: stloc.1
IL_0024: ldloc.1
IL_0025: ldc.i4 128
IL_002A: bge => Label2
IL_002F: ldloc.1
IL_0030: brtrue => Label3
IL_0035: ldarg.0
IL_0036: ldc.i4.0
IL_0037: stfld System.Int32 ElectricityManager::m_pulseGroupCount
IL_003C: ldarg.0
IL_003D: ldc.i4.0
IL_003E: stfld System.Int32 ElectricityManager::m_pulseUnitStart
IL_0043: ldarg.0
IL_0044: ldc.i4.0
IL_0045: stfld System.Int32 ElectricityManager::m_pulseUnitEnd
IL_004A: ldarg.0
IL_004B: ldc.i4.0
IL_004C: stfld System.Int32 ElectricityManager::m_processedCells
IL_0051: ldarg.0
IL_0052: ldc.i4.0
IL_0053: stfld System.Int32 ElectricityManager::m_conductiveCells
IL_0058: ldarg.0
IL_0059: ldc.i4.1
IL_005A: stfld System.Boolean ElectricityManager::m_canContinue
IL_005F: Label3
IL_005F: call static NetManager
ColossalFramework.Singleton`1<NetManager>::get_instance()
IL_0064: stloc.2
IL_0065: ldloc.1
IL_0066: ldc.i4 32768
IL_006B: mul
IL_006C: ldc.i4.7
IL_006D: shr
IL_006E: stloc.3
IL_006F: ldloc.1
IL_0070: ldc.i4.1
IL_0071: add
IL_0072: ldc.i4 32768
IL_0077: mul
IL_0078: ldc.i4.7
IL_0079: shr
IL_007A: ldc.i4.1
IL_007B: sub
IL_007C: stloc.s 4 (System.Int32)
IL_007E: ldloc.3
IL_007F: stloc.s 5 (System.Int32)
IL_0081: br => Label4
IL_0086: Label10
IL_0086: ldloc.2
IL_0087: ldfld Array16`1<NetNode> NetManager::m_nodes
IL_008C: ldfld NetNode[] Array16`1<NetNode>::m_buffer
IL_0091: ldloc.s 5 (System.Int32)
IL_0093: ldelema NetNode
IL_0098: ldfld Flags NetNode::m_flags
IL_009D: brfalse => Label5
IL_00A2: ldloc.2
IL_00A3: ldfld Array16`1<NetNode> NetManager::m_nodes
IL_00A8: ldfld NetNode[] Array16`1<NetNode>::m_buffer
IL_00AD: ldloc.s 5 (System.Int32)
IL_00AF: ldelema NetNode
IL_00B4: call NetInfo NetNode::get_Info()
IL_00B9: stloc.s 6 (NetInfo)
IL_00BB: ldloc.s 6 (NetInfo)
IL_00BD: ldfld ItemClass NetInfo::m_class
IL_00C2: ldfld Service ItemClass::m_service
IL_00C7: ldc.i4.s 10
IL_00C9: beq => Label6
IL_00CE: ldloc.s 6 (NetInfo)
IL_00D0: ldfld NetAI NetInfo::m_netAI
IL_00D5: isinst ConcourseAI
IL_00DA: brfalse => Label7
IL_00DF: Label6
IL_00DF: ldarg.0
IL_00E0: ldloc.s 5 (System.Int32)
IL_00E2: ldarg.0
IL_00E3: ldfld System.UInt16[] ElectricityManager::m_nodeGroups
IL_00E8: ldloc.s 5 (System.Int32)
IL_00EA: ldelem.u2
IL_00EB: ldc.i4 65535
IL_00F0: beq => Label8
IL_00F5: ldc.i4.1
IL_00F6: br => Label9
IL_00FB: Label8
IL_00FB: ldc.i4.0
IL_00FC: Label9
IL_00FC: call System.Void
ElectricityManager::UpdateNodeElectricity(System.Int32 nodeID, System.Int32 value)
IL_0101: ldarg.0
IL_0102: dup
IL_0103: ldfld System.Int32 ElectricityManager::m_conductiveCells
IL_0108: ldc.i4.1
IL_0109: add
IL_010A: stfld System.Int32 ElectricityManager::m_conductiveCells
IL_010F: Label5
IL_010F: Label7
IL_010F: ldarg.0
IL_0110: ldfld System.UInt16[] ElectricityManager::m_nodeGroups
IL_0115: ldloc.s 5 (System.Int32)
IL_0117: ldc.i4 65535
IL_011C: stelem.i2
IL_011D: ldloc.s 5 (System.Int32)
IL_011F: ldc.i4.1
IL_0120: add
IL_0121: stloc.s 5 (System.Int32)
IL_0123: Label4
IL_0123: ldloc.s 5 (System.Int32)
IL_0125: ldloc.s 4 (System.Int32)
IL_0127: ble => Label10
IL_012C: ldloc.1
IL_012D: ldc.i4 256
IL_0132: mul
IL_0133: ldc.i4.7
IL_0134: shr
IL_0135: stloc.s 7 (System.Int32)
IL_0137: ldloc.1
IL_0138: ldc.i4.1
IL_0139: add
IL_013A: ldc.i4 256
IL_013F: mul
IL_0140: ldc.i4.7
IL_0141: shr
IL_0142: ldc.i4.1
IL_0143: sub
IL_0144: stloc.s 8 (System.Int32)
IL_0146: ldloc.s 7 (System.Int32)
IL_0148: stloc.s 9 (System.Int32)
IL_014A: br => Label11
IL_014F: Label21
IL_014F: ldloc.s 9 (System.Int32)
IL_0151: ldc.i4 256
IL_0156: mul
IL_0157: stloc.s 10 (System.Int32)
IL_0159: ldc.i4.0
IL_015A: stloc.s 11 (System.Int32)
IL_015C: br => Label12
IL_0161: Label20
IL_0161: ldarg.0
IL_0162: ldfld Cell[] ElectricityManager::m_electricityGrid
IL_0167: ldloc.s 10 (System.Int32)
IL_0169: ldelema ElectricityManager+Cell
IL_016E: ldobj ElectricityManager+Cell
IL_0173: stloc.s 12 (ElectricityManager+Cell)
IL_0175: ldloca.s 12 (ElectricityManager+Cell)
IL_0177: ldfld System.Int16 Cell::m_currentCharge
IL_017C: ldc.i4.0
IL_017D: ble => Label13
IL_0182: ldarg.0
IL_0183: ldfld System.Int32 ElectricityManager::m_pulseGroupCount
IL_0188: ldc.i4 1024
IL_018D: bge => Label14
IL_0192: ldloca.s 13 (ElectricityManager+PulseGroup)
IL_0194: ldloca.s 12 (ElectricityManager+Cell)
IL_0196: ldfld System.Int16 Cell::m_currentCharge
IL_019B: conv.u4
IL_019C: stfld System.UInt32 PulseGroup::m_origCharge
IL_01A1: ldloca.s 13 (ElectricityManager+PulseGroup)
IL_01A3: ldloca.s 12 (ElectricityManager+Cell)
IL_01A5: ldfld System.Int16 Cell::m_currentCharge
IL_01AA: conv.u4
IL_01AB: stfld System.UInt32 PulseGroup::m_curCharge
IL_01B0: ldloca.s 13 (ElectricityManager+PulseGroup)
IL_01B2: ldc.i4.0
IL_01B3: stfld System.UInt16 PulseGroup::m_mergeCount
IL_01B8: ldloca.s 13 (ElectricityManager+PulseGroup)
IL_01BA: ldc.i4 65535
IL_01BF: stfld System.UInt16 PulseGroup::m_mergeIndex
IL_01C4: ldloca.s 13 (ElectricityManager+PulseGroup)
IL_01C6: ldloc.s 11 (System.Int32)
IL_01C8: conv.u1
IL_01C9: stfld System.Byte PulseGroup::m_x
IL_01CE: ldloca.s 13 (ElectricityManager+PulseGroup)
IL_01D0: ldloc.s 9 (System.Int32)
IL_01D2: conv.u1
IL_01D3: stfld System.Byte PulseGroup::m_z
IL_01D8: ldloca.s 14 (ElectricityManager+PulseUnit)
IL_01DA: ldarg.0
IL_01DB: ldfld System.Int32 ElectricityManager::m_pulseGroupCount
IL_01E0: conv.u2
IL_01E1: stfld System.UInt16 PulseUnit::m_group
IL_01E6: ldloca.s 14 (ElectricityManager+PulseUnit)
IL_01E8: ldc.i4.0
IL_01E9: stfld System.UInt16 PulseUnit::m_node
IL_01EE: ldloca.s 14 (ElectricityManager+PulseUnit)
IL_01F0: ldloc.s 11 (System.Int32)
IL_01F2: conv.u1
IL_01F3: stfld System.Byte PulseUnit::m_x
IL_01F8: ldloca.s 14 (ElectricityManager+PulseUnit)
IL_01FA: ldloc.s 9 (System.Int32)
IL_01FC: conv.u1
IL_01FD: stfld System.Byte PulseUnit::m_z
IL_0202: ldloca.s 12 (ElectricityManager+Cell)
IL_0204: ldarg.0
IL_0205: ldfld System.Int32 ElectricityManager::m_pulseGroupCount
IL_020A: conv.u2
IL_020B: stfld System.UInt16 Cell::m_pulseGroup
IL_0210: ldarg.0
IL_0211: ldfld PulseGroup[] ElectricityManager::m_pulseGroups
IL_0216: ldarg.0
IL_0217: dup
IL_0218: ldfld System.Int32 ElectricityManager::m_pulseGroupCount
IL_021D: dup
IL_021E: stloc.s 15 (System.Int32)
IL_0220: ldc.i4.1
IL_0221: add
IL_0222: stfld System.Int32 ElectricityManager::m_pulseGroupCount
IL_0227: ldloc.s 15 (System.Int32)
IL_0229: ldelema ElectricityManager+PulseGroup
IL_022E: ldloc.s 13 (ElectricityManager+PulseGroup)
IL_0230: stobj ElectricityManager+PulseGroup
IL_0235: ldarg.0
IL_0236: ldfld PulseUnit[] ElectricityManager::m_pulseUnits
IL_023B: ldarg.0
IL_023C: ldfld System.Int32 ElectricityManager::m_pulseUnitEnd
IL_0241: ldelema ElectricityManager+PulseUnit
IL_0246: ldloc.s 14 (ElectricityManager+PulseUnit)
IL_0248: stobj ElectricityManager+PulseUnit
IL_024D: ldarg.0
IL_024E: dup
IL_024F: ldfld System.Int32 ElectricityManager::m_pulseUnitEnd
IL_0254: ldc.i4.1
IL_0255: add
IL_0256: dup
IL_0257: stloc.s 15 (System.Int32)
IL_0259: stfld System.Int32 ElectricityManager::m_pulseUnitEnd
IL_025E: ldloc.s 15 (System.Int32)
IL_0260: ldarg.0
IL_0261: ldfld PulseUnit[] ElectricityManager::m_pulseUnits
IL_0266: ldlen
IL_0267: conv.i4
IL_0268: bne.un => Label15
IL_026D: ldarg.0
IL_026E: ldc.i4.0
IL_026F: stfld System.Int32 ElectricityManager::m_pulseUnitEnd
IL_0274: Label15
IL_0274: br => Label16
IL_0279: Label14
IL_0279: ldloca.s 12 (ElectricityManager+Cell)
IL_027B: ldc.i4 65535
IL_0280: stfld System.UInt16 Cell::m_pulseGroup
IL_0285: Label16
IL_0285: ldloca.s 12 (ElectricityManager+Cell)
IL_0287: ldc.i4.0
IL_0288: stfld System.Int16 Cell::m_currentCharge
IL_028D: ldarg.0
IL_028E: dup
IL_028F: ldfld System.Int32 ElectricityManager::m_conductiveCells
IL_0294: ldc.i4.1
IL_0295: add
IL_0296: stfld System.Int32 ElectricityManager::m_conductiveCells
IL_029B: br => Label17
IL_02A0: Label13
IL_02A0: ldloca.s 12 (ElectricityManager+Cell)
IL_02A2: ldc.i4 65535
IL_02A7: stfld System.UInt16 Cell::m_pulseGroup
IL_02AC: ldloca.s 12 (ElectricityManager+Cell)
IL_02AE: ldfld System.Byte Cell::m_conductivity
IL_02B3: ldc.i4.s 64
IL_02B5: blt => Label18
IL_02BA: ldarg.0
IL_02BB: dup
IL_02BC: ldfld System.Int32 ElectricityManager::m_conductiveCells
IL_02C1: ldc.i4.1
IL_02C2: add
IL_02C3: stfld System.Int32 ElectricityManager::m_conductiveCells
IL_02C8: Label17
IL_02C8: Label18
IL_02C8: ldloca.s 12 (ElectricityManager+Cell)
IL_02CA: ldfld System.Boolean Cell::m_tmpElectrified
IL_02CF: ldloca.s 12 (ElectricityManager+Cell)
IL_02D1: ldfld System.Boolean Cell::m_electrified
IL_02D6: beq => Label19
IL_02DB: ldloca.s 12 (ElectricityManager+Cell)
IL_02DD: ldloca.s 12 (ElectricityManager+Cell)
IL_02DF: ldfld System.Boolean Cell::m_tmpElectrified
IL_02E4: stfld System.Boolean Cell::m_electrified
IL_02E9: Label19
IL_02E9: ldloca.s 12 (ElectricityManager+Cell)
IL_02EB: ldloca.s 12 (ElectricityManager+Cell)
IL_02ED: ldfld System.UInt16 Cell::m_pulseGroup
IL_02F2: ldc.i4 65535
IL_02F7: ceq
IL_02F9: ldc.i4.0
IL_02FA: ceq
IL_02FC: stfld System.Boolean Cell::m_tmpElectrified
IL_0301: ldarg.0
IL_0302: ldfld Cell[] ElectricityManager::m_electricityGrid
IL_0307: ldloc.s 10 (System.Int32)
IL_0309: ldelema ElectricityManager+Cell
IL_030E: ldloc.s 12 (ElectricityManager+Cell)
IL_0310: stobj ElectricityManager+Cell
IL_0315: ldloc.s 10 (System.Int32)
IL_0317: ldc.i4.1
IL_0318: add
IL_0319: stloc.s 10 (System.Int32)
IL_031B: ldloc.s 11 (System.Int32)
IL_031D: ldc.i4.1
IL_031E: add
IL_031F: stloc.s 11 (System.Int32)
IL_0321: Label12
IL_0321: ldloc.s 11 (System.Int32)
IL_0323: ldc.i4 256
IL_0328: blt => Label20
IL_032D: ldloc.s 9 (System.Int32)
IL_032F: ldc.i4.1
IL_0330: add
IL_0331: stloc.s 9 (System.Int32)
IL_0333: Label11
IL_0333: ldloc.s 9 (System.Int32)
IL_0335: ldloc.s 8 (System.Int32)
IL_0337: ble => Label21
IL_033C: br => Label22
IL_0341: Label2
IL_0341: ldloc.1
IL_0342: ldc.i4.s 127
IL_0344: sub
IL_0345: ldarg.0
IL_0346: ldfld System.Int32 ElectricityManager::m_conductiveCells
IL_034B: mul
IL_034C: ldc.i4.7
IL_034D: shr
IL_034E: stloc.s 16 (System.Int32)
IL_0350: ldloc.1
IL_0351: ldc.i4 255
IL_0356: bne.un => Label23
IL_035B: ldc.i4 1000000000
IL_0360: stloc.s 16 (System.Int32)
IL_0362: Label23
IL_0362: br => Label24
IL_0367: Label54
IL_0367: ldarg.0
IL_0368: ldc.i4.0
IL_0369: stfld System.Boolean ElectricityManager::m_canContinue
IL_036E: ldarg.0
IL_036F: ldfld System.Int32 ElectricityManager::m_pulseUnitEnd
IL_0374: stloc.s 17 (System.Int32)
IL_0376: br => Label25
IL_037B: Label52
IL_037B: ldarg.0
IL_037C: ldfld PulseUnit[] ElectricityManager::m_pulseUnits
IL_0381: ldarg.0
IL_0382: ldfld System.Int32 ElectricityManager::m_pulseUnitStart
IL_0387: ldelema ElectricityManager+PulseUnit
IL_038C: ldobj ElectricityManager+PulseUnit
IL_0391: stloc.s 18 (ElectricityManager+PulseUnit)
IL_0393: ldarg.0
IL_0394: dup
IL_0395: ldfld System.Int32 ElectricityManager::m_pulseUnitStart
IL_039A: ldc.i4.1
IL_039B: add
IL_039C: dup
IL_039D: stloc.s 15 (System.Int32)
IL_039F: stfld System.Int32 ElectricityManager::m_pulseUnitStart
IL_03A4: ldloc.s 15 (System.Int32)
IL_03A6: ldarg.0
IL_03A7: ldfld PulseUnit[] ElectricityManager::m_pulseUnits
IL_03AC: ldlen
IL_03AD: conv.i4
IL_03AE: bne.un => Label26
IL_03B3: ldarg.0
IL_03B4: ldc.i4.0
IL_03B5: stfld System.Int32 ElectricityManager::m_pulseUnitStart
IL_03BA: Label26
IL_03BA: ldloca.s 18 (ElectricityManager+PulseUnit)
IL_03BC: ldarg.0
IL_03BD: ldloca.s 18 (ElectricityManager+PulseUnit)
IL_03BF: ldfld System.UInt16 PulseUnit::m_group
IL_03C4: call System.UInt16 ElectricityManager::GetRootGroup(System.UInt16
group)
IL_03C9: stfld System.UInt16 PulseUnit::m_group
IL_03CE: ldarg.0
IL_03CF: ldfld PulseGroup[] ElectricityManager::m_pulseGroups
IL_03D4: ldloca.s 18 (ElectricityManager+PulseUnit)
IL_03D6: ldfld System.UInt16 PulseUnit::m_group
IL_03DB: ldelema ElectricityManager+PulseGroup
IL_03E0: ldfld System.UInt32 PulseGroup::m_curCharge
IL_03E5: stloc.s 19 (System.UInt32)
IL_03E7: ldloca.s 18 (ElectricityManager+PulseUnit)
IL_03E9: ldfld System.UInt16 PulseUnit::m_node
IL_03EE: brtrue => Label27
IL_03F3: ldloca.s 18 (ElectricityManager+PulseUnit)
IL_03F5: ldfld System.Byte PulseUnit::m_z
IL_03FA: ldc.i4 256
IL_03FF: mul
IL_0400: ldloca.s 18 (ElectricityManager+PulseUnit)
IL_0402: ldfld System.Byte PulseUnit::m_x
IL_0407: add
IL_0408: stloc.s 20 (System.Int32)
IL_040A: ldarg.0
IL_040B: ldfld Cell[] ElectricityManager::m_electricityGrid
IL_0410: ldloc.s 20 (System.Int32)
IL_0412: ldelema ElectricityManager+Cell
IL_0417: ldobj ElectricityManager+Cell
IL_041C: stloc.s 21 (ElectricityManager+Cell)
IL_041E: ldloca.s 21 (ElectricityManager+Cell)
IL_0420: ldfld System.Byte Cell::m_conductivity
IL_0425: brfalse => Label28
IL_042A: ldloca.s 21 (ElectricityManager+Cell)
IL_042C: ldfld System.Boolean Cell::m_tmpElectrified
IL_0431: brtrue => Label29
IL_0436: ldloc.s 19 (System.UInt32)
IL_0438: brfalse => Label30
IL_043D: ldloca.s 21 (ElectricityManager+Cell)
IL_043F: ldfld System.Int16 Cell::m_currentCharge
IL_0444: neg
IL_0445: ldc.i4.0
IL_0446: ldloc.s 19 (System.UInt32)
IL_0448: call static System.Int32 UnityEngine.Mathf::Clamp(System.Int32
value, System.Int32 min, System.Int32 max)
IL_044D: stloc.s 22 (System.Int32)
IL_044F: ldloc.s 19 (System.UInt32)
IL_0451: ldloc.s 22 (System.Int32)
IL_0453: sub
IL_0454: stloc.s 19 (System.UInt32)
IL_0456: ldloca.s 21 (ElectricityManager+Cell)
IL_0458: dup
IL_0459: ldfld System.Int16 Cell::m_currentCharge
IL_045E: ldloc.s 22 (System.Int32)
IL_0460: conv.i2
IL_0461: add
IL_0462: conv.i2
IL_0463: stfld System.Int16 Cell::m_currentCharge
IL_0468: ldloca.s 21 (ElectricityManager+Cell)
IL_046A: ldfld System.Int16 Cell::m_currentCharge
IL_046F: brtrue => Label31
IL_0474: ldloca.s 21 (ElectricityManager+Cell)
IL_0476: ldc.i4.1
IL_0477: stfld System.Boolean Cell::m_tmpElectrified
IL_047C: Label31
IL_047C: ldarg.0
IL_047D: ldfld Cell[] ElectricityManager::m_electricityGrid
IL_0482: ldloc.s 20 (System.Int32)
IL_0484: ldelema ElectricityManager+Cell
IL_0489: ldloc.s 21 (ElectricityManager+Cell)
IL_048B: stobj ElectricityManager+Cell
IL_0490: ldarg.0
IL_0491: ldfld PulseGroup[] ElectricityManager::m_pulseGroups
IL_0496: ldloca.s 18 (ElectricityManager+PulseUnit)
IL_0498: ldfld System.UInt16 PulseUnit::m_group
IL_049D: ldelema ElectricityManager+PulseGroup
IL_04A2: ldloc.s 19 (System.UInt32)
IL_04A4: stfld System.UInt32 PulseGroup::m_curCharge
IL_04A9: Label28
IL_04A9: Label29
IL_04A9: Label30
IL_04A9: ldloc.s 19 (System.UInt32)
IL_04AB: brfalse => Label32
IL_04B0: ldloca.s 21 (ElectricityManager+Cell)
IL_04B2: ldfld System.Byte Cell::m_conductivity
IL_04B7: ldc.i4.s 64
IL_04B9: blt => Label33
IL_04BE: ldc.i4.1
IL_04BF: br => Label34
IL_04C4: Label33
IL_04C4: ldc.i4.s 64
IL_04C6: Label34
IL_04C6: stloc.s 23 (System.Int32)
IL_04C8: ldarg.0
IL_04C9: dup
IL_04CA: ldfld System.Int32 ElectricityManager::m_processedCells
IL_04CF: ldc.i4.1
IL_04D0: add
IL_04D1: stfld System.Int32 ElectricityManager::m_processedCells
IL_04D6: ldloca.s 18 (ElectricityManager+PulseUnit)
IL_04D8: ldfld System.Byte PulseUnit::m_z
IL_04DD: ldc.i4.0
IL_04DE: ble => Label35
IL_04E3: ldarg.0
IL_04E4: ldarg.0
IL_04E5: ldfld Cell[] ElectricityManager::m_electricityGrid
IL_04EA: ldloc.s 20 (System.Int32)
IL_04EC: ldc.i4 256
IL_04F1: sub
IL_04F2: ldelema ElectricityManager+Cell
IL_04F7: ldloca.s 18 (ElectricityManager+PulseUnit)
IL_04F9: ldfld System.UInt16 PulseUnit::m_group
IL_04FE: ldloca.s 18 (ElectricityManager+PulseUnit)
IL_0500: ldfld System.Byte PulseUnit::m_x
IL_0505: ldloca.s 18 (ElectricityManager+PulseUnit)
IL_0507: ldfld System.Byte PulseUnit::m_z
IL_050C: ldc.i4.1
IL_050D: sub
IL_050E: ldloc.s 23 (System.Int32)
IL_0510: call System.Void ElectricityManager::ConductToCell(Cell& cell,
System.UInt16 group, System.Int32 x, System.Int32 z, System.Int32 limit)
IL_0515: Label35
IL_0515: ldloca.s 18 (ElectricityManager+PulseUnit)
IL_0517: ldfld System.Byte PulseUnit::m_x
IL_051C: ldc.i4.0
IL_051D: ble => Label36
IL_0522: ldarg.0
IL_0523: ldarg.0
IL_0524: ldfld Cell[] ElectricityManager::m_electricityGrid
IL_0529: ldloc.s 20 (System.Int32)
IL_052B: ldc.i4.1
IL_052C: sub
IL_052D: ldelema ElectricityManager+Cell
IL_0532: ldloca.s 18 (ElectricityManager+PulseUnit)
IL_0534: ldfld System.UInt16 PulseUnit::m_group
IL_0539: ldloca.s 18 (ElectricityManager+PulseUnit)
IL_053B: ldfld System.Byte PulseUnit::m_x
IL_0540: ldc.i4.1
IL_0541: sub
IL_0542: ldloca.s 18 (ElectricityManager+PulseUnit)
IL_0544: ldfld System.Byte PulseUnit::m_z
IL_0549: ldloc.s 23 (System.Int32)
IL_054B: call System.Void ElectricityManager::ConductToCell(Cell& cell,
System.UInt16 group, System.Int32 x, System.Int32 z, System.Int32 limit)
IL_0550: Label36
IL_0550: ldloca.s 18 (ElectricityManager+PulseUnit)
IL_0552: ldfld System.Byte PulseUnit::m_z
IL_0557: ldc.i4 255
IL_055C: bge => Label37
IL_0561: ldarg.0
IL_0562: ldarg.0
IL_0563: ldfld Cell[] ElectricityManager::m_electricityGrid
IL_0568: ldloc.s 20 (System.Int32)
IL_056A: ldc.i4 256
IL_056F: add
IL_0570: ldelema ElectricityManager+Cell
IL_0575: ldloca.s 18 (ElectricityManager+PulseUnit)
IL_0577: ldfld System.UInt16 PulseUnit::m_group
IL_057C: ldloca.s 18 (ElectricityManager+PulseUnit)
IL_057E: ldfld System.Byte PulseUnit::m_x
IL_0583: ldloca.s 18 (ElectricityManager+PulseUnit)
IL_0585: ldfld System.Byte PulseUnit::m_z
IL_058A: ldc.i4.1
IL_058B: add
IL_058C: ldloc.s 23 (System.Int32)
IL_058E: call System.Void ElectricityManager::ConductToCell(Cell& cell,
System.UInt16 group, System.Int32 x, System.Int32 z, System.Int32 limit)
IL_0593: Label37
IL_0593: ldloca.s 18 (ElectricityManager+PulseUnit)
IL_0595: ldfld System.Byte PulseUnit::m_x
IL_059A: ldc.i4 255
IL_059F: bge => Label38
IL_05A4: ldarg.0
IL_05A5: ldarg.0
IL_05A6: ldfld Cell[] ElectricityManager::m_electricityGrid
IL_05AB: ldloc.s 20 (System.Int32)
IL_05AD: ldc.i4.1
IL_05AE: add
IL_05AF: ldelema ElectricityManager+Cell
IL_05B4: ldloca.s 18 (ElectricityManager+PulseUnit)
IL_05B6: ldfld System.UInt16 PulseUnit::m_group
IL_05BB: ldloca.s 18 (ElectricityManager+PulseUnit)
IL_05BD: ldfld System.Byte PulseUnit::m_x
IL_05C2: ldc.i4.1
IL_05C3: add
IL_05C4: ldloca.s 18 (ElectricityManager+PulseUnit)
IL_05C6: ldfld System.Byte PulseUnit::m_z
IL_05CB: ldloc.s 23 (System.Int32)
IL_05CD: call System.Void ElectricityManager::ConductToCell(Cell& cell,
System.UInt16 group, System.Int32 x, System.Int32 z, System.Int32 limit)
IL_05D2: Label38
IL_05D2: ldarg.0
IL_05D3: ldloca.s 18 (ElectricityManager+PulseUnit)
IL_05D5: ldfld System.UInt16 PulseUnit::m_group
IL_05DA: ldloca.s 18 (ElectricityManager+PulseUnit)
IL_05DC: ldfld System.Byte PulseUnit::m_x
IL_05E1: ldloca.s 18 (ElectricityManager+PulseUnit)
IL_05E3: ldfld System.Byte PulseUnit::m_z
IL_05E8: call System.Void ElectricityManager::ConductToNodes(System.UInt16
group, System.Int32 cellX, System.Int32 cellZ)
IL_05ED: br => Label39
IL_05F2: Label32
IL_05F2: ldarg.0
IL_05F3: ldfld PulseUnit[] ElectricityManager::m_pulseUnits
IL_05F8: ldarg.0
IL_05F9: ldfld System.Int32 ElectricityManager::m_pulseUnitEnd
IL_05FE: ldelema ElectricityManager+PulseUnit
IL_0603: ldloc.s 18 (ElectricityManager+PulseUnit)
IL_0605: stobj ElectricityManager+PulseUnit
IL_060A: ldarg.0
IL_060B: dup
IL_060C: ldfld System.Int32 ElectricityManager::m_pulseUnitEnd
IL_0611: ldc.i4.1
IL_0612: add
IL_0613: dup
IL_0614: stloc.s 15 (System.Int32)
IL_0616: stfld System.Int32 ElectricityManager::m_pulseUnitEnd
IL_061B: ldloc.s 15 (System.Int32)
IL_061D: ldarg.0
IL_061E: ldfld PulseUnit[] ElectricityManager::m_pulseUnits
IL_0623: ldlen
IL_0624: conv.i4
IL_0625: bne.un => Label40
IL_062A: ldarg.0
IL_062B: ldc.i4.0
IL_062C: stfld System.Int32 ElectricityManager::m_pulseUnitEnd
IL_0631: Label39
IL_0631: Label40
IL_0631: br => Label41
IL_0636: Label27
IL_0636: ldloc.s 19 (System.UInt32)
IL_0638: brfalse => Label42
IL_063D: ldarg.0
IL_063E: dup
IL_063F: ldfld System.Int32 ElectricityManager::m_processedCells
IL_0644: ldc.i4.1
IL_0645: add
IL_0646: stfld System.Int32 ElectricityManager::m_processedCells
IL_064B: call static NetManager
ColossalFramework.Singleton`1<NetManager>::get_instance()
IL_0650: ldfld Array16`1<NetNode> NetManager::m_nodes
IL_0655: ldfld NetNode[] Array16`1<NetNode>::m_buffer
IL_065A: ldloca.s 18 (ElectricityManager+PulseUnit)
IL_065C: ldfld System.UInt16 PulseUnit::m_node
IL_0661: ldelema NetNode
IL_0666: ldobj NetNode
IL_066B: stloc.s 24 (NetNode)
IL_066D: ldloca.s 24 (NetNode)
IL_066F: ldfld Flags NetNode::m_flags
IL_0674: brfalse => Label43
IL_0679: ldloca.s 24 (NetNode)
IL_067B: ldfld System.UInt32 NetNode::m_buildIndex
IL_0680: ldloc.0
IL_0681: ldc.i4.s -128
IL_0683: and
IL_0684: bge.un => Label44
IL_0689: ldarg.0
IL_068A: ldloca.s 18 (ElectricityManager+PulseUnit)
IL_068C: ldfld System.UInt16 PulseUnit::m_group
IL_0691: ldloca.s 24 (NetNode)
IL_0693: ldflda UnityEngine.Vector3 NetNode::m_position
IL_0698: ldfld System.Single UnityEngine.Vector3::x
IL_069D: ldloca.s 24 (NetNode)
IL_069F: ldflda UnityEngine.Vector3 NetNode::m_position
IL_06A4: ldfld System.Single UnityEngine.Vector3::z
IL_06A9: call System.Void ElectricityManager::ConductToCells(System.UInt16
group, System.Single worldX, System.Single worldZ)
IL_06AE: ldc.i4.0
IL_06AF: stloc.s 25 (System.Int32)
IL_06B1: br => Label45
IL_06B6: Label49
IL_06B6: ldloca.s 24 (NetNode)
IL_06B8: ldloc.s 25 (System.Int32)
IL_06BA: call System.UInt16 NetNode::GetSegment(System.Int32 index)
IL_06BF: stloc.s 26 (System.UInt16)
IL_06C1: ldloc.s 26 (System.UInt16)
IL_06C3: brfalse => Label46
IL_06C8: call static NetManager
ColossalFramework.Singleton`1<NetManager>::get_instance()
IL_06CD: ldfld Array16`1<NetSegment> NetManager::m_segments
IL_06D2: ldfld NetSegment[] Array16`1<NetSegment>::m_buffer
IL_06D7: ldloc.s 26 (System.UInt16)
IL_06D9: ldelema NetSegment
IL_06DE: ldfld System.UInt16 NetSegment::m_startNode
IL_06E3: stloc.s 27 (System.UInt16)
IL_06E5: call static NetManager
ColossalFramework.Singleton`1<NetManager>::get_instance()
IL_06EA: ldfld Array16`1<NetSegment> NetManager::m_segments
IL_06EF: ldfld NetSegment[] Array16`1<NetSegment>::m_buffer
IL_06F4: ldloc.s 26 (System.UInt16)
IL_06F6: ldelema NetSegment
IL_06FB: ldfld System.UInt16 NetSegment::m_endNode
IL_0700: stloc.s 28 (System.UInt16)
IL_0702: ldloc.s 27 (System.UInt16)
IL_0704: ldloca.s 18 (ElectricityManager+PulseUnit)
IL_0706: ldfld System.UInt16 PulseUnit::m_node
IL_070B: bne.un => Label47
IL_0710: ldloc.s 28 (System.UInt16)
IL_0712: br => Label48
IL_0717: Label47
IL_0717: ldloc.s 27 (System.UInt16)
IL_0719: Label48
IL_0719: stloc.s 29 (System.UInt16)
IL_071B: ldarg.0
IL_071C: ldloc.s 29 (System.UInt16)
IL_071E: call static NetManager
ColossalFramework.Singleton`1<NetManager>::get_instance()
IL_0723: ldfld Array16`1<NetNode> NetManager::m_nodes
IL_0728: ldfld NetNode[] Array16`1<NetNode>::m_buffer
IL_072D: ldloc.s 29 (System.UInt16)
IL_072F: ldelema NetNode
IL_0734: ldloca.s 18 (ElectricityManager+PulseUnit)
IL_0736: ldfld System.UInt16 PulseUnit::m_group
IL_073B: ldc.r4 -100000
IL_0740: ldc.r4 -100000
IL_0745: ldc.r4 100000
IL_074A: ldc.r4 100000
IL_074F: call System.Void ElectricityManager::ConductToNode(System.UInt16
nodeIndex, NetNode& node, System.UInt16 group, System.Single minX, System.Single
minZ, System.Single maxX, System.Single maxZ)
IL_0754: Label46
IL_0754: ldloc.s 25 (System.Int32)
IL_0756: ldc.i4.1
IL_0757: add
IL_0758: stloc.s 25 (System.Int32)
IL_075A: Label45
IL_075A: ldloc.s 25 (System.Int32)
IL_075C: ldc.i4.8
IL_075D: blt => Label49
IL_0762: Label43
IL_0762: Label44
IL_0762: br => Label50
IL_0767: Label42
IL_0767: ldarg.0
IL_0768: ldfld PulseUnit[] ElectricityManager::m_pulseUnits
IL_076D: ldarg.0
IL_076E: ldfld System.Int32 ElectricityManager::m_pulseUnitEnd
IL_0773: ldelema ElectricityManager+PulseUnit
IL_0778: ldloc.s 18 (ElectricityManager+PulseUnit)
IL_077A: stobj ElectricityManager+PulseUnit
IL_077F: ldarg.0
IL_0780: dup
IL_0781: ldfld System.Int32 ElectricityManager::m_pulseUnitEnd
IL_0786: ldc.i4.1
IL_0787: add
IL_0788: dup
IL_0789: stloc.s 15 (System.Int32)
IL_078B: stfld System.Int32 ElectricityManager::m_pulseUnitEnd
IL_0790: ldloc.s 15 (System.Int32)
IL_0792: ldarg.0
IL_0793: ldfld PulseUnit[] ElectricityManager::m_pulseUnits
IL_0798: ldlen
IL_0799: conv.i4
IL_079A: bne.un => Label51
IL_079F: ldarg.0
IL_07A0: ldc.i4.0
IL_07A1: stfld System.Int32 ElectricityManager::m_pulseUnitEnd
IL_07A6: Label25
IL_07A6: Label41
IL_07A6: Label50
IL_07A6: Label51
IL_07A6: ldarg.0
IL_07A7: ldfld System.Int32 ElectricityManager::m_pulseUnitStart
IL_07AC: ldloc.s 17 (System.Int32)
IL_07AE: bne.un => Label52
IL_07B3: Label24
IL_07B3: ldarg.0
IL_07B4: ldfld System.Boolean ElectricityManager::m_canContinue
IL_07B9: brfalse => Label53
IL_07BE: ldarg.0
IL_07BF: ldfld System.Int32 ElectricityManager::m_processedCells
IL_07C4: ldloc.s 16 (System.Int32)
IL_07C6: blt => Label54
IL_07CB: Label53
IL_07CB: ldloc.1
IL_07CC: ldc.i4 255
IL_07D1: bne.un => Label55
IL_07D6: ldc.i4.0
IL_07D7: stloc.s 30 (System.Int32)
IL_07D9: br => Label56
IL_07DE: Label58
IL_07DE: ldarg.0
IL_07DF: ldfld PulseGroup[] ElectricityManager::m_pulseGroups
IL_07E4: ldloc.s 30 (System.Int32)
IL_07E6: ldelema ElectricityManager+PulseGroup
IL_07EB: ldobj ElectricityManager+PulseGroup
IL_07F0: stloc.s 31 (ElectricityManager+PulseGroup)
IL_07F2: ldloca.s 31 (ElectricityManager+PulseGroup)
IL_07F4: ldfld System.UInt16 PulseGroup::m_mergeIndex
IL_07F9: ldc.i4 65535
IL_07FE: beq => Label57
IL_0803: ldarg.0
IL_0804: ldfld PulseGroup[] ElectricityManager::m_pulseGroups
IL_0809: ldloca.s 31 (ElectricityManager+PulseGroup)
IL_080B: ldfld System.UInt16 PulseGroup::m_mergeIndex
IL_0810: ldelema ElectricityManager+PulseGroup
IL_0815: ldobj ElectricityManager+PulseGroup
IL_081A: stloc.s 32 (ElectricityManager+PulseGroup)
IL_081C: ldloca.s 31 (ElectricityManager+PulseGroup)
IL_081E: ldloca.s 32 (ElectricityManager+PulseGroup)
IL_0820: ldfld System.UInt32 PulseGroup::m_curCharge
IL_0825: conv.u8
IL_0826: ldloca.s 31 (ElectricityManager+PulseGroup)
IL_0828: ldfld System.UInt32 PulseGroup::m_origCharge
IL_082D: conv.u8
IL_082E: mul
IL_082F: ldloca.s 32 (ElectricityManager+PulseGroup)
IL_0831: ldfld System.UInt32 PulseGroup::m_origCharge
IL_0836: conv.u8
IL_0837: div.un
IL_0838: conv.u4
IL_0839: stfld System.UInt32 PulseGroup::m_curCharge
IL_083E: ldloca.s 32 (ElectricityManager+PulseGroup)
IL_0840: dup
IL_0841: ldfld System.UInt32 PulseGroup::m_curCharge
IL_0846: ldloca.s 31 (ElectricityManager+PulseGroup)
IL_0848: ldfld System.UInt32 PulseGroup::m_curCharge
IL_084D: sub
IL_084E: stfld System.UInt32 PulseGroup::m_curCharge
IL_0853: ldloca.s 32 (ElectricityManager+PulseGroup)
IL_0855: dup
IL_0856: ldfld System.UInt32 PulseGroup::m_origCharge
IL_085B: ldloca.s 31 (ElectricityManager+PulseGroup)
IL_085D: ldfld System.UInt32 PulseGroup::m_origCharge
IL_0862: sub
IL_0863: stfld System.UInt32 PulseGroup::m_origCharge
IL_0868: ldarg.0
IL_0869: ldfld PulseGroup[] ElectricityManager::m_pulseGroups
IL_086E: ldloca.s 31 (ElectricityManager+PulseGroup)
IL_0870: ldfld System.UInt16 PulseGroup::m_mergeIndex
IL_0875: ldelema ElectricityManager+PulseGroup
IL_087A: ldloc.s 32 (ElectricityManager+PulseGroup)
IL_087C: stobj ElectricityManager+PulseGroup
IL_0881: ldarg.0
IL_0882: ldfld PulseGroup[] ElectricityManager::m_pulseGroups
IL_0887: ldloc.s 30 (System.Int32)
IL_0889: ldelema ElectricityManager+PulseGroup
IL_088E: ldloc.s 31 (ElectricityManager+PulseGroup)
IL_0890: stobj ElectricityManager+PulseGroup
IL_0895: Label57
IL_0895: ldloc.s 30 (System.Int32)
IL_0897: ldc.i4.1
IL_0898: add
IL_0899: stloc.s 30 (System.Int32)
IL_089B: Label56
IL_089B: ldloc.s 30 (System.Int32)
IL_089D: ldarg.0
IL_089E: ldfld System.Int32 ElectricityManager::m_pulseGroupCount
IL_08A3: blt => Label58
IL_08A8: ldc.i4.0
IL_08A9: stloc.s 33 (System.Int32)
IL_08AB: br => Label59
IL_08B0: Label62
IL_08B0: ldarg.0
IL_08B1: ldfld PulseGroup[] ElectricityManager::m_pulseGroups
IL_08B6: ldloc.s 33 (System.Int32)
IL_08B8: ldelema ElectricityManager+PulseGroup
IL_08BD: ldobj ElectricityManager+PulseGroup
IL_08C2: stloc.s 34 (ElectricityManager+PulseGroup)
IL_08C4: ldloca.s 34 (ElectricityManager+PulseGroup)
IL_08C6: ldfld System.UInt32 PulseGroup::m_curCharge
IL_08CB: brfalse => Label60
IL_08D0: ldloca.s 34 (ElectricityManager+PulseGroup)
IL_08D2: ldfld System.Byte PulseGroup::m_z
IL_08D7: ldc.i4 256
IL_08DC: mul
IL_08DD: ldloca.s 34 (ElectricityManager+PulseGroup)
IL_08DF: ldfld System.Byte PulseGroup::m_x
IL_08E4: add
IL_08E5: stloc.s 35 (System.Int32)
IL_08E7: ldarg.0
IL_08E8: ldfld Cell[] ElectricityManager::m_electricityGrid
IL_08ED: ldloc.s 35 (System.Int32)
IL_08EF: ldelema ElectricityManager+Cell
IL_08F4: ldobj ElectricityManager+Cell
IL_08F9: stloc.s 36 (ElectricityManager+Cell)
IL_08FB: ldloca.s 36 (ElectricityManager+Cell)
IL_08FD: ldfld System.Byte Cell::m_conductivity
IL_0902: brfalse => Label61
IL_0907: ldloca.s 36 (ElectricityManager+Cell)
IL_0909: dup
IL_090A: ldfld System.UInt16 Cell::m_extraCharge
IL_090F: ldloca.s 34 (ElectricityManager+PulseGroup)
IL_0911: ldfld System.UInt32 PulseGroup::m_curCharge
IL_0916: ldc.i4 32767
IL_091B: ldloca.s 36 (ElectricityManager+Cell)
IL_091D: ldfld System.UInt16 Cell::m_extraCharge
IL_0922: sub
IL_0923: call static System.Int32 UnityEngine.Mathf::Min(System.Int32 a,
System.Int32 b)
IL_0928: conv.u2
IL_0929: add
IL_092A: conv.u2
IL_092B: stfld System.UInt16 Cell::m_extraCharge
IL_0930: Label61
IL_0930: ldarg.0
IL_0931: ldfld Cell[] ElectricityManager::m_electricityGrid
IL_0936: ldloc.s 35 (System.Int32)
IL_0938: ldelema ElectricityManager+Cell
IL_093D: ldloc.s 36 (ElectricityManager+Cell)
IL_093F: stobj ElectricityManager+Cell
IL_0944: Label60
IL_0944: ldloc.s 33 (System.Int32)
IL_0946: ldc.i4.1
IL_0947: add
IL_0948: stloc.s 33 (System.Int32)
IL_094A: Label59
IL_094A: ldloc.s 33 (System.Int32)
IL_094C: ldarg.0
IL_094D: ldfld System.Int32 ElectricityManager::m_pulseGroupCount
IL_0952: blt => Label62
IL_0957: // end original
IL_0957: Label0
IL_0957: Label1
IL_0957: Label22
IL_0957: Label55
IL_0957: ret
DONE

### Patch: System.Void ElectricityManager::ConductToNode(System.UInt16 nodeIndex,


NetNode& node, System.UInt16 group, System.Single minX, System.Single minZ,
System.Single maxX, System.Single maxZ)
### Replacement: static System.Void
ElectricityManager::ElectricityManager.ConductToNode_Patch0(ElectricityManager
this, System.UInt16 nodeIndex, NetNode& node, System.UInt16 group, System.Single
minX, System.Single minZ, System.Single maxX, System.Single maxZ)
IL_0000: Local var 0: NetInfo
IL_0000: Local var 1: ElectricityManager/PulseUnit
IL_0000: Local var 2: System.Int32
IL_0000: Local var 3: System.UInt16
IL_0000: // start original
IL_0000: ldarg.2
IL_0001: ldflda UnityEngine.Vector3 NetNode::m_position
IL_0006: ldfld System.Single UnityEngine.Vector3::x
IL_000B: ldarg.s 4
IL_000D: blt.un => Label0
IL_0012: ldarg.2
IL_0013: ldflda UnityEngine.Vector3 NetNode::m_position
IL_0018: ldfld System.Single UnityEngine.Vector3::z
IL_001D: ldarg.s 5
IL_001F: blt.un => Label1
IL_0024: ldarg.2
IL_0025: ldflda UnityEngine.Vector3 NetNode::m_position
IL_002A: ldfld System.Single UnityEngine.Vector3::x
IL_002F: ldarg.s 6
IL_0031: bgt.un => Label2
IL_0036: ldarg.2
IL_0037: ldflda UnityEngine.Vector3 NetNode::m_position
IL_003C: ldfld System.Single UnityEngine.Vector3::z
IL_0041: ldarg.s 7
IL_0043: bgt.un => Label3
IL_0048: ldarg.2
IL_0049: call NetInfo NetNode::get_Info()
IL_004E: stloc.0
IL_004F: ldloc.0
IL_0050: ldfld ItemClass NetInfo::m_class
IL_0055: ldfld Service ItemClass::m_service
IL_005A: ldc.i4.s 10
IL_005C: beq => Label4
IL_0061: ldarg.2
IL_0062: call NetInfo NetNode::get_Info()
IL_0067: ldfld NetAI NetInfo::m_netAI
IL_006C: isinst ConcourseAI
IL_0071: brfalse => Label5
IL_0076: Label4
IL_0076: ldarg.0
IL_0077: ldfld System.UInt16[] ElectricityManager::m_nodeGroups
IL_007C: ldarg.1
IL_007D: ldelem.u2
IL_007E: ldc.i4 65535
IL_0083: bne.un => Label6
IL_0088: ldloca.s 1 (ElectricityManager+PulseUnit)
IL_008A: ldarg.3
IL_008B: stfld System.UInt16 PulseUnit::m_group
IL_0090: ldloca.s 1 (ElectricityManager+PulseUnit)
IL_0092: ldarg.1
IL_0093: stfld System.UInt16 PulseUnit::m_node
IL_0098: ldloca.s 1 (ElectricityManager+PulseUnit)
IL_009A: ldc.i4.0
IL_009B: stfld System.Byte PulseUnit::m_x
IL_00A0: ldloca.s 1 (ElectricityManager+PulseUnit)
IL_00A2: ldc.i4.0
IL_00A3: stfld System.Byte PulseUnit::m_z
IL_00A8: ldarg.0
IL_00A9: ldfld PulseUnit[] ElectricityManager::m_pulseUnits
IL_00AE: ldarg.0
IL_00AF: ldfld System.Int32 ElectricityManager::m_pulseUnitEnd
IL_00B4: ldelema ElectricityManager+PulseUnit
IL_00B9: ldloc.1
IL_00BA: stobj ElectricityManager+PulseUnit
IL_00BF: ldarg.0
IL_00C0: dup
IL_00C1: ldfld System.Int32 ElectricityManager::m_pulseUnitEnd
IL_00C6: ldc.i4.1
IL_00C7: add
IL_00C8: dup
IL_00C9: stloc.2
IL_00CA: stfld System.Int32 ElectricityManager::m_pulseUnitEnd
IL_00CF: ldloc.2
IL_00D0: ldarg.0
IL_00D1: ldfld PulseUnit[] ElectricityManager::m_pulseUnits
IL_00D6: ldlen
IL_00D7: conv.i4
IL_00D8: bne.un => Label7
IL_00DD: ldarg.0
IL_00DE: ldc.i4.0
IL_00DF: stfld System.Int32 ElectricityManager::m_pulseUnitEnd
IL_00E4: Label7
IL_00E4: ldarg.0
IL_00E5: ldfld System.UInt16[] ElectricityManager::m_nodeGroups
IL_00EA: ldarg.1
IL_00EB: ldarg.3
IL_00EC: stelem.i2
IL_00ED: ldarg.0
IL_00EE: ldc.i4.1
IL_00EF: stfld System.Boolean ElectricityManager::m_canContinue
IL_00F4: br => Label8
IL_00F9: Label6
IL_00F9: ldarg.0
IL_00FA: ldarg.0
IL_00FB: ldfld System.UInt16[] ElectricityManager::m_nodeGroups
IL_0100: ldarg.1
IL_0101: ldelem.u2
IL_0102: call System.UInt16 ElectricityManager::GetRootGroup(System.UInt16
group)
IL_0107: stloc.3
IL_0108: ldloc.3
IL_0109: ldarg.3
IL_010A: beq => Label9
IL_010F: ldarg.0
IL_0110: ldarg.3
IL_0111: ldloc.3
IL_0112: call System.Void ElectricityManager::MergeGroups(System.UInt16 root,
System.UInt16 merged)
IL_0117: ldarg.0
IL_0118: ldfld System.UInt16[] ElectricityManager::m_nodeGroups
IL_011D: ldarg.1
IL_011E: ldarg.3
IL_011F: stelem.i2
IL_0120: ldarg.0
IL_0121: ldc.i4.1
IL_0122: stfld System.Boolean ElectricityManager::m_canContinue
IL_0127: // end original
IL_0127: Label0
IL_0127: Label1
IL_0127: Label2
IL_0127: Label3
IL_0127: Label5
IL_0127: Label8
IL_0127: Label9
IL_0127: ret
DONE
### Patch: System.Void ElectricityManager::UpdateNodeElectricity(System.Int32
nodeID, System.Int32 value)
### Replacement: static System.Void
ElectricityManager::ElectricityManager.UpdateNodeElectricity_Patch0(ElectricityMana
ger this, System.Int32 nodeID, System.Int32 value)
IL_0000: Local var 0: InfoManager/InfoMode
IL_0000: Local var 1: NetManager
IL_0000: Local var 2: System.Boolean
IL_0000: Local var 3: NetNode/Flags
IL_0000: Local var 4: System.UInt16
IL_0000: Local var 5: BuildingManager
IL_0000: Local var 6: NetNode/Flags
IL_0000: Local var 7: System.Int32
IL_0000: Local var 8: System.UInt16
IL_0000: // start original
IL_0000: call static InfoManager
ColossalFramework.Singleton`1<InfoManager>::get_instance()
IL_0005: callvirt InfoMode InfoManager::get_CurrentMode()
IL_000A: stloc.0
IL_000B: call static NetManager
ColossalFramework.Singleton`1<NetManager>::get_instance()
IL_0010: stloc.1
IL_0011: ldc.i4.0
IL_0012: stloc.2
IL_0013: ldloc.1
IL_0014: ldfld Array16`1<NetNode> NetManager::m_nodes
IL_0019: ldfld NetNode[] Array16`1<NetNode>::m_buffer
IL_001E: ldarg.1
IL_001F: ldelema NetNode
IL_0024: ldfld Flags NetNode::m_flags
IL_0029: stloc.3
IL_002A: ldloc.3
IL_002B: ldc.i4 1048576
IL_0030: and
IL_0031: brfalse => Label0
IL_0036: ldloc.1
IL_0037: ldfld Array16`1<NetNode> NetManager::m_nodes
IL_003C: ldfld NetNode[] Array16`1<NetNode>::m_buffer
IL_0041: ldarg.1
IL_0042: ldelema NetNode
IL_0047: dup
IL_0048: ldfld Flags NetNode::m_flags
IL_004D: ldc.i4 -1048577
IL_0052: and
IL_0053: stfld Flags NetNode::m_flags
IL_0058: br => Label10
IL_005D: Label0
IL_005D: ldloc.1
IL_005E: ldfld Array16`1<NetNode> NetManager::m_nodes
IL_0063: ldfld NetNode[] Array16`1<NetNode>::m_buffer
IL_0068: ldarg.1
IL_0069: ldelema NetNode
IL_006E: ldfld System.UInt16 NetNode::m_building
IL_0073: stloc.s 4 (System.UInt16)
IL_0075: ldloc.s 4 (System.UInt16)
IL_0077: brfalse => Label1
IL_007C: call static BuildingManager
ColossalFramework.Singleton`1<BuildingManager>::get_instance()
IL_0081: stloc.s 5 (BuildingManager)
IL_0083: ldloc.s 5 (BuildingManager)
IL_0085: ldfld Array16`1<Building> BuildingManager::m_buildings
IL_008A: ldfld Building[] Array16`1<Building>::m_buffer
IL_008F: ldloc.s 4 (System.UInt16)
IL_0091: ldelema Building
IL_0096: ldfld System.UInt16 Building::m_electricityBuffer
IL_009B: ldarg.2
IL_009C: beq => Label2
IL_00A1: ldloc.s 5 (BuildingManager)
IL_00A3: ldfld Array16`1<Building> BuildingManager::m_buildings
IL_00A8: ldfld Building[] Array16`1<Building>::m_buffer
IL_00AD: ldloc.s 4 (System.UInt16)
IL_00AF: ldelema Building
IL_00B4: ldarg.2
IL_00B5: conv.u2
IL_00B6: stfld System.UInt16 Building::m_electricityBuffer
IL_00BB: ldloc.0
IL_00BC: ldc.i4.1
IL_00BD: ceq
IL_00BF: stloc.2
IL_00C0: Label2
IL_00C0: ldloc.2
IL_00C1: brfalse => Label3
IL_00C6: ldloc.s 5 (BuildingManager)
IL_00C8: ldloc.s 4 (System.UInt16)
IL_00CA: callvirt System.Void BuildingManager::UpdateBuildingColors(System.UInt16
building)
IL_00CF: Label1
IL_00CF: Label3
IL_00CF: ldloc.3
IL_00D0: ldc.i4 -67108865
IL_00D5: and
IL_00D6: stloc.s 6 (NetNode+Flags)
IL_00D8: ldarg.2
IL_00D9: brfalse => Label4
IL_00DE: ldloc.s 6 (NetNode+Flags)
IL_00E0: ldc.i4 67108864
IL_00E5: or
IL_00E6: stloc.s 6 (NetNode+Flags)
IL_00E8: Label4
IL_00E8: ldloc.s 6 (NetNode+Flags)
IL_00EA: ldloc.3
IL_00EB: beq => Label5
IL_00F0: ldloc.1
IL_00F1: ldfld Array16`1<NetNode> NetManager::m_nodes
IL_00F6: ldfld NetNode[] Array16`1<NetNode>::m_buffer
IL_00FB: ldarg.1
IL_00FC: ldelema NetNode
IL_0101: ldloc.s 6 (NetNode+Flags)
IL_0103: stfld Flags NetNode::m_flags
IL_0108: ldloc.0
IL_0109: ldc.i4.1
IL_010A: ceq
IL_010C: stloc.2
IL_010D: Label5
IL_010D: ldloc.2
IL_010E: brfalse => Label6
IL_0113: ldloc.1
IL_0114: ldarg.1
IL_0115: conv.u2
IL_0116: callvirt System.Void NetManager::UpdateNodeColors(System.UInt16 node)
IL_011B: ldc.i4.0
IL_011C: stloc.s 7 (System.Int32)
IL_011E: br => Label7
IL_0123: Label9
IL_0123: ldloc.1
IL_0124: ldfld Array16`1<NetNode> NetManager::m_nodes
IL_0129: ldfld NetNode[] Array16`1<NetNode>::m_buffer
IL_012E: ldarg.1
IL_012F: ldelema NetNode
IL_0134: ldloc.s 7 (System.Int32)
IL_0136: call System.UInt16 NetNode::GetSegment(System.Int32 index)
IL_013B: stloc.s 8 (System.UInt16)
IL_013D: ldloc.s 8 (System.UInt16)
IL_013F: brfalse => Label8
IL_0144: ldloc.1
IL_0145: ldloc.s 8 (System.UInt16)
IL_0147: callvirt System.Void NetManager::UpdateSegmentColors(System.UInt16
segment)
IL_014C: Label8
IL_014C: ldloc.s 7 (System.Int32)
IL_014E: ldc.i4.1
IL_014F: add
IL_0150: stloc.s 7 (System.Int32)
IL_0152: Label7
IL_0152: ldloc.s 7 (System.Int32)
IL_0154: ldc.i4.8
IL_0155: blt => Label9
IL_015A: // end original
IL_015A: Label6
IL_015A: Label10
IL_015A: ret
DONE

### Patch: virtual System.Void ColossalFramework.UI.UIView::Start()


### Replacement: static System.Void
ColossalFramework.UI.UIView::ColossalFramework.UI.UIView.Start_Patch1(ColossalFrame
work.UI.UIView this)
IL_0000: Local var 0:
ColossalFramework.PoolList`1<ColossalFramework.UI.UIComponent>
IL_0000: Local var 1: ColossalFramework.UI.UIComponent
IL_0000: Local var 2:
System.Collections.Generic.IEnumerator`1<ColossalFramework.UI.UIComponent>
IL_0000: // start original
IL_0000: ldarg.0
IL_0001: ldc.i4.0
IL_0002: stfld System.Int32 ColossalFramework.UI.UIView::m_FramesRendered
IL_0007: ldarg.0
IL_0008: call System.Void
ColossalFramework.UI.UIView::InvalidateAllComponents()
IL_000D: ldarg.0
IL_000E: ldfld UnityEngine.MeshRenderer
ColossalFramework.UI.UIView::m_MeshRenderer
IL_0013: ldnull
IL_0014: call static System.Boolean
UnityEngine.Object::op_Inequality(UnityEngine.Object x, UnityEngine.Object y)
IL_0019: brfalse => Label0
IL_001E: ldarg.0
IL_001F: ldfld UnityEngine.MeshRenderer
ColossalFramework.UI.UIView::m_MeshRenderer
IL_0024: ldc.i4.1
IL_0025: callvirt System.Void UnityEngine.Renderer::set_enabled(System.Boolean
value)
IL_002A: Label0
IL_002A: ldarg.0
IL_002B: call ColossalFramework.PoolList`1<ColossalFramework.UI.UIComponent>
ColossalFramework.UI.UIView::GetTopLevelComponents()
IL_0030: stloc.0
.try
{
IL_0031: ldloc.0
IL_0032: callvirt virtual
System.Collections.Generic.IEnumerator`1<ColossalFramework.UI.UIComponent>
ColossalFramework.PoolList`1<ColossalFramework.UI.UIComponent>::GetEnumerator()
IL_0037: stloc.2
.try
{
IL_0038: br => Label1
IL_003D: Label2
IL_003D: ldloc.2
IL_003E: callvirt abstract virtual ColossalFramework.UI.UIComponent
System.Collections.Generic.IEnumerator`1<ColossalFramework.UI.UIComponent>::get_Cur
rent()
IL_0043: stloc.1
IL_0044: ldloc.1
IL_0045: ldc.i4.1
IL_0046: callvirt System.Void
ColossalFramework.UI.UIComponent::InitializeParentVisibilityCache(System.Boolean
parentVisible)
IL_004B: Label1
IL_004B: ldloc.2
IL_004C: callvirt abstract virtual System.Boolean
System.Collections.IEnumerator::MoveNext()
IL_0051: brtrue => Label2
IL_0056: leave => Label3
IL_005B: leave => (autogenerated)
} // end try
.finally
{
IL_0060: ldloc.2
IL_0061: brfalse => Label4
IL_0066: ldloc.2
IL_0067: callvirt abstract virtual System.Void
System.IDisposable::Dispose()
IL_006C: Label4
IL_006C: endfinally
IL_006D: leave => (autogenerated)
} // end handler
IL_006E: Label3
IL_006E: leave => Label5
IL_0073: leave => (autogenerated)
} // end try
.finally
{
IL_0078: ldloc.0
IL_0079: brfalse => Label6
IL_007E: ldloc.0
IL_007F: callvirt abstract virtual System.Void
System.IDisposable::Dispose()
IL_0084: Label6
IL_0084: endfinally
IL_0085: leave => (autogenerated)
} // end handler
IL_0086: Label5
IL_0086: ldarg.0
IL_0087: ldc.i4.1
IL_0088: stfld System.Boolean
ColossalFramework.UI.UIView::m_VisibilityCacheInitialized
IL_008D: // end original
IL_008D: call static System.Void
Kwytto.Redirectors.UIViewRedirector::AfterStart()
IL_0092: ret
DONE

### Patch: virtual UnityEngine.Color NetAI::GetColor(System.UInt16 nodeID, NetNode&


data, InfoMode infoMode, SubInfoMode subInfoMode)
### Replacement: static UnityEngine.Color NetAI::NetAI.GetColor_Patch1(NetAI this,
System.UInt16 nodeID, NetNode& data, InfoMode infoMode, SubInfoMode subInfoMode)
IL_0000: Local var 0: UnityEngine.Color
IL_0000: ldloca 0 (UnityEngine.Color)
IL_0004: initobj UnityEngine.Color
IL_000A: // start original
IL_000A: ldarg.3
IL_000B: brfalse => Label0
IL_0010: call static InfoManager
ColossalFramework.Singleton`1<InfoManager>::get_instance()
IL_0015: ldfld InfoProperties SimulationManagerBase`2<InfoManager,
InfoProperties>::m_properties
IL_001A: ldfld UnityEngine.Color InfoProperties::m_neutralColor
IL_001F: br => Label1
IL_0024: Label0
IL_0024: ldarg.0
IL_0025: ldfld NetInfo NetAI::m_info
IL_002A: ldfld UnityEngine.Color NetInfo::m_color
IL_002F: // end original
IL_002F: Label1
IL_002F: stloc 0 (UnityEngine.Color)
IL_0033: ldloca 0 (UnityEngine.Color)
IL_0037: ldarg 1
IL_003B: ldarg 2
IL_003F: ldarg 3
IL_0043: ldarg 4
IL_0047: call static System.Void
ElectricRoads.Overrides.ElectricRoadsOverrides::AfterGetColorNode(UnityEngine.Color
& __result, System.UInt16 nodeID, NetNode& data, InfoMode infoMode, SubInfoMode
subInfoMode)
IL_004C: ldloc 0 (UnityEngine.Color)
IL_0050: ret
DONE

### Patch: virtual UnityEngine.Color NetAI::GetColor(System.UInt16 segmentID,


NetSegment& data, InfoMode infoMode, SubInfoMode subInfoMode)
### Replacement: static UnityEngine.Color NetAI::NetAI.GetColor_Patch1(NetAI this,
System.UInt16 segmentID, NetSegment& data, InfoMode infoMode, SubInfoMode
subInfoMode)
IL_0000: Local var 0: UnityEngine.Color
IL_0000: ldloca 0 (UnityEngine.Color)
IL_0004: initobj UnityEngine.Color
IL_000A: // start original
IL_000A: ldarg.3
IL_000B: brfalse => Label0
IL_0010: call static InfoManager
ColossalFramework.Singleton`1<InfoManager>::get_instance()
IL_0015: ldfld InfoProperties SimulationManagerBase`2<InfoManager,
InfoProperties>::m_properties
IL_001A: ldfld UnityEngine.Color InfoProperties::m_neutralColor
IL_001F: br => Label1
IL_0024: Label0
IL_0024: ldarg.0
IL_0025: ldfld NetInfo NetAI::m_info
IL_002A: ldfld UnityEngine.Color NetInfo::m_color
IL_002F: // end original
IL_002F: Label1
IL_002F: stloc 0 (UnityEngine.Color)
IL_0033: ldloca 0 (UnityEngine.Color)
IL_0037: ldarg 1
IL_003B: ldarg 2
IL_003F: ldarg 3
IL_0043: ldarg 4
IL_0047: call static System.Void
ElectricRoads.Overrides.ElectricRoadsOverrides::AfterGetColorSegment(UnityEngine.Co
lor& __result, System.UInt16 segmentID, NetSegment& data, InfoMode infoMode,
SubInfoMode subInfoMode)
IL_004C: ldloc 0 (UnityEngine.Color)
IL_0050: ret
DONE

### Patch: System.Void ElectricityManager::UpdateNodeElectricity(System.Int32


nodeID, System.Int32 value)
### Replacement: static System.Void
ElectricityManager::ElectricityManager.UpdateNodeElectricity_Patch0(ElectricityMana
ger this, System.Int32 nodeID, System.Int32 value)
IL_0000: Local var 0: InfoManager/InfoMode
IL_0000: Local var 1: NetManager
IL_0000: Local var 2: System.Boolean
IL_0000: Local var 3: NetNode/Flags
IL_0000: Local var 4: System.UInt16
IL_0000: Local var 5: BuildingManager
IL_0000: Local var 6: NetNode/Flags
IL_0000: Local var 7: System.Int32
IL_0000: Local var 8: System.UInt16
IL_0000: // start original
IL_0000: call static InfoManager
ColossalFramework.Singleton`1<InfoManager>::get_instance()
IL_0005: callvirt InfoMode InfoManager::get_CurrentMode()
IL_000A: stloc.0
IL_000B: call static NetManager
ColossalFramework.Singleton`1<NetManager>::get_instance()
IL_0010: stloc.1
IL_0011: ldc.i4.0
IL_0012: stloc.2
IL_0013: ldloc.1
IL_0014: ldfld Array16`1<NetNode> NetManager::m_nodes
IL_0019: ldfld NetNode[] Array16`1<NetNode>::m_buffer
IL_001E: ldarg.1
IL_001F: ldelema NetNode
IL_0024: ldfld Flags NetNode::m_flags
IL_0029: stloc.3
IL_002A: ldarg.1
IL_002B: call static System.Boolean
ElectricRoads.Overrides.ElectricRoadsOverrides::CheckNodeTransition(System.Int32
nodeID)
IL_0030: brfalse => Label0
IL_0035: ldloc.1
IL_0036: ldfld Array16`1<NetNode> NetManager::m_nodes
IL_003B: ldfld NetNode[] Array16`1<NetNode>::m_buffer
IL_0040: ldarg.1
IL_0041: ldelema NetNode
IL_0046: dup
IL_0047: ldfld Flags NetNode::m_flags
IL_004C: ldc.i4 -1048577
IL_0051: and
IL_0052: stfld Flags NetNode::m_flags
IL_0057: br => Label10
IL_005C: Label0
IL_005C: ldloc.1
IL_005D: ldfld Array16`1<NetNode> NetManager::m_nodes
IL_0062: ldfld NetNode[] Array16`1<NetNode>::m_buffer
IL_0067: ldarg.1
IL_0068: ldelema NetNode
IL_006D: ldfld System.UInt16 NetNode::m_building
IL_0072: stloc.s 4 (System.UInt16)
IL_0074: ldloc.s 4 (System.UInt16)
IL_0076: brfalse => Label1
IL_007B: call static BuildingManager
ColossalFramework.Singleton`1<BuildingManager>::get_instance()
IL_0080: stloc.s 5 (BuildingManager)
IL_0082: ldloc.s 5 (BuildingManager)
IL_0084: ldfld Array16`1<Building> BuildingManager::m_buildings
IL_0089: ldfld Building[] Array16`1<Building>::m_buffer
IL_008E: ldloc.s 4 (System.UInt16)
IL_0090: ldelema Building
IL_0095: ldfld System.UInt16 Building::m_electricityBuffer
IL_009A: ldarg.2
IL_009B: beq => Label2
IL_00A0: ldloc.s 5 (BuildingManager)
IL_00A2: ldfld Array16`1<Building> BuildingManager::m_buildings
IL_00A7: ldfld Building[] Array16`1<Building>::m_buffer
IL_00AC: ldloc.s 4 (System.UInt16)
IL_00AE: ldelema Building
IL_00B3: ldarg.2
IL_00B4: conv.u2
IL_00B5: stfld System.UInt16 Building::m_electricityBuffer
IL_00BA: ldloc.0
IL_00BB: ldc.i4.1
IL_00BC: ceq
IL_00BE: stloc.2
IL_00BF: Label2
IL_00BF: ldloc.2
IL_00C0: brfalse => Label3
IL_00C5: ldloc.s 5 (BuildingManager)
IL_00C7: ldloc.s 4 (System.UInt16)
IL_00C9: callvirt System.Void BuildingManager::UpdateBuildingColors(System.UInt16
building)
IL_00CE: Label1
IL_00CE: Label3
IL_00CE: ldloc.3
IL_00CF: ldc.i4 -67108865
IL_00D4: and
IL_00D5: stloc.s 6 (NetNode+Flags)
IL_00D7: ldarg.2
IL_00D8: brfalse => Label4
IL_00DD: ldloc.s 6 (NetNode+Flags)
IL_00DF: ldc.i4 67108864
IL_00E4: or
IL_00E5: stloc.s 6 (NetNode+Flags)
IL_00E7: Label4
IL_00E7: ldloc.s 6 (NetNode+Flags)
IL_00E9: ldloc.3
IL_00EA: beq => Label5
IL_00EF: ldloc.1
IL_00F0: ldfld Array16`1<NetNode> NetManager::m_nodes
IL_00F5: ldfld NetNode[] Array16`1<NetNode>::m_buffer
IL_00FA: ldarg.1
IL_00FB: ldelema NetNode
IL_0100: ldloc.s 6 (NetNode+Flags)
IL_0102: stfld Flags NetNode::m_flags
IL_0107: ldloc.0
IL_0108: ldc.i4.1
IL_0109: ceq
IL_010B: stloc.2
IL_010C: Label5
IL_010C: ldloc.2
IL_010D: brfalse => Label6
IL_0112: ldloc.1
IL_0113: ldarg.1
IL_0114: conv.u2
IL_0115: callvirt System.Void NetManager::UpdateNodeColors(System.UInt16 node)
IL_011A: ldc.i4.0
IL_011B: stloc.s 7 (System.Int32)
IL_011D: br => Label7
IL_0122: Label9
IL_0122: ldloc.1
IL_0123: ldfld Array16`1<NetNode> NetManager::m_nodes
IL_0128: ldfld NetNode[] Array16`1<NetNode>::m_buffer
IL_012D: ldarg.1
IL_012E: ldelema NetNode
IL_0133: ldloc.s 7 (System.Int32)
IL_0135: call System.UInt16 NetNode::GetSegment(System.Int32 index)
IL_013A: stloc.s 8 (System.UInt16)
IL_013C: ldloc.s 8 (System.UInt16)
IL_013E: brfalse => Label8
IL_0143: ldloc.1
IL_0144: ldloc.s 8 (System.UInt16)
IL_0146: callvirt System.Void NetManager::UpdateSegmentColors(System.UInt16
segment)
IL_014B: Label8
IL_014B: ldloc.s 7 (System.Int32)
IL_014D: ldc.i4.1
IL_014E: add
IL_014F: stloc.s 7 (System.Int32)
IL_0151: Label7
IL_0151: ldloc.s 7 (System.Int32)
IL_0153: ldc.i4.8
IL_0154: blt => Label9
IL_0159: // end original
IL_0159: Label6
IL_0159: Label10
IL_0159: ret
DONE

### Patch: static System.Void PropInstance::RenderInstance(CameraInfo cameraInfo,


PropInfo info, InstanceID id, UnityEngine.Vector3 position, System.Single scale,
System.Single angle, UnityEngine.Color color, UnityEngine.Vector4 objectIndex,
System.Boolean active, UnityEngine.Texture heightMap, UnityEngine.Vector4
heightMapping, UnityEngine.Vector4 surfaceMapping, UnityEngine.Texture
waterHeightMap, UnityEngine.Vector4 waterHeightMapping, UnityEngine.Vector4
waterSurfaceMapping)
### Replacement: static System.Void
PropInstance::PropInstance.RenderInstance_Patch0(CameraInfo cameraInfo, PropInfo
info, InstanceID id, UnityEngine.Vector3 position, System.Single scale,
System.Single angle, UnityEngine.Color color, UnityEngine.Vector4 objectIndex,
System.Boolean active, UnityEngine.Texture heightMap, UnityEngine.Vector4
heightMapping, UnityEngine.Vector4 surfaceMapping, UnityEngine.Texture
waterHeightMap, UnityEngine.Vector4 waterHeightMapping, UnityEngine.Vector4
waterSurfaceMapping)
IL_0000: Local var 0: UnityEngine.Matrix4x4
IL_0000: Local var 1: System.Single
IL_0000: Local var 2: System.Int32
IL_0000: Local var 3: UnityEngine.Vector3
IL_0000: Local var 4: UnityEngine.Vector3
IL_0000: Local var 5: EffectInfo/SpawnArea
IL_0000: Local var 6: System.Single
IL_0000: Local var 7: LightSystem
IL_0000: Local var 8: ColossalFramework.Math.Randomizer
IL_0000: Local var 9: UnityEngine.Vector4
IL_0000: Local var 10: System.Single
IL_0000: Local var 11: System.Single
IL_0000: Local var 12: System.Single
IL_0000: Local var 13: UnityEngine.Matrix4x4
IL_0000: Local var 14: PropManager
IL_0000: Local var 15: UnityEngine.MaterialPropertyBlock
IL_0000: Local var 16: System.Int32
IL_0000: // start original
IL_0000: ldarg.1
IL_0001: ldfld System.Boolean PrefabInfo::m_prefabInitialized
IL_0006: brfalse => Label0
IL_000B: ldarg.1
IL_000C: ldfld System.Boolean PropInfo::m_hasEffects
IL_0011: brfalse => Label1
IL_0016: ldarg.s 8
IL_0018: brtrue => Label2
IL_001D: ldarg.1
IL_001E: ldfld System.Boolean PropInfo::m_alwaysActive
IL_0023: brfalse => Label3
IL_0028: Label2
IL_0028: ldloca.s 0 (UnityEngine.Matrix4x4)
IL_002A: initobj UnityEngine.Matrix4x4
IL_0030: ldloca.s 0 (UnityEngine.Matrix4x4)
IL_0032: ldarg.3
IL_0033: ldarg.s 5
IL_0035: ldc.r4 57.29578
IL_003A: mul
IL_003B: call static UnityEngine.Vector3 UnityEngine.Vector3::get_down()
IL_0040: call static UnityEngine.Quaternion
UnityEngine.Quaternion::AngleAxis(System.Single angle, UnityEngine.Vector3 axis)
IL_0045: ldarg.s 4
IL_0047: ldarg.s 4
IL_0049: ldarg.s 4
IL_004B: newobj System.Void UnityEngine.Vector3::.ctor(System.Single x,
System.Single y, System.Single z)
IL_0050: call System.Void UnityEngine.Matrix4x4::SetTRS(UnityEngine.Vector3
pos, UnityEngine.Quaternion q, UnityEngine.Vector3 s)
IL_0055: call static SimulationManager
ColossalFramework.Singleton`1<SimulationManager>::get_instance()
IL_005A: ldfld System.Single SimulationManager::m_simulationTimeDelta
IL_005F: stloc.1
IL_0060: ldc.i4.0
IL_0061: stloc.2
IL_0062: br => Label4
IL_0067: Label5
IL_0067: ldloca.s 0 (UnityEngine.Matrix4x4)
IL_0069: ldarg.1
IL_006A: ldfld Effect[] PropInfo::m_effects
IL_006F: ldloc.2
IL_0070: ldelema PropInfo+Effect
IL_0075: ldfld UnityEngine.Vector3 Effect::m_position
IL_007A: call UnityEngine.Vector3
UnityEngine.Matrix4x4::MultiplyPoint(UnityEngine.Vector3 v)
IL_007F: stloc.3
IL_0080: ldloca.s 0 (UnityEngine.Matrix4x4)
IL_0082: ldarg.1
IL_0083: ldfld Effect[] PropInfo::m_effects
IL_0088: ldloc.2
IL_0089: ldelema PropInfo+Effect
IL_008E: ldfld UnityEngine.Vector3 Effect::m_direction
IL_0093: call UnityEngine.Vector3
UnityEngine.Matrix4x4::MultiplyVector(UnityEngine.Vector3 v)
IL_0098: stloc.s 4 (UnityEngine.Vector3)
IL_009A: ldloca.s 5 (EffectInfo+SpawnArea)
IL_009C: ldloc.3
IL_009D: ldloc.s 4 (UnityEngine.Vector3)
IL_009F: ldc.r4 0
IL_00A4: call System.Void SpawnArea::.ctor(UnityEngine.Vector3 position,
UnityEngine.Vector3 direction, System.Single radius)
IL_00A9: ldarg.1
IL_00AA: ldfld Effect[] PropInfo::m_effects
IL_00AF: ldloc.2
IL_00B0: ldelema PropInfo+Effect
IL_00B5: ldfld EffectInfo Effect::m_effect
IL_00BA: ldarg.2
IL_00BB: ldloc.s 5 (EffectInfo+SpawnArea)
IL_00BD: call static UnityEngine.Vector3 UnityEngine.Vector3::get_zero()
IL_00C2: ldc.r4 0
IL_00C7: ldc.r4 1
IL_00CC: ldc.r4 -1
IL_00D1: ldloc.1
IL_00D2: ldarg.0
IL_00D3: callvirt virtual System.Void EffectInfo::RenderEffect(InstanceID id,
SpawnArea area, UnityEngine.Vector3 velocity, System.Single acceleration,
System.Single magnitude, System.Single timeOffset, System.Single timeDelta,
CameraInfo cameraInfo)
IL_00D8: ldloc.2
IL_00D9: ldc.i4.1
IL_00DA: add
IL_00DB: stloc.2
IL_00DC: Label4
IL_00DC: ldloc.2
IL_00DD: ldarg.1
IL_00DE: ldfld Effect[] PropInfo::m_effects
IL_00E3: ldlen
IL_00E4: conv.i4
IL_00E5: blt => Label5
IL_00EA: Label1
IL_00EA: Label3
IL_00EA: ldarg.1
IL_00EB: ldfld System.Boolean PropInfo::m_hasRenderer
IL_00F0: brfalse => Label6
IL_00F5: ldarg.0
IL_00F6: ldfld System.Int32 CameraInfo::m_layerMask
IL_00FB: ldc.i4.1
IL_00FC: ldarg.1
IL_00FD: ldfld System.Int32 PrefabInfo::m_prefabDataLayer
IL_0102: ldc.i4.s 31
IL_0104: and
IL_0105: shl
IL_0106: and
IL_0107: brfalse => Label7
IL_010C: call static InfoManager
ColossalFramework.Singleton`1<InfoManager>::get_instance()
IL_0111: callvirt InfoMode InfoManager::get_CurrentMode()
IL_0116: brtrue => Label8
IL_011B: ldarg 2
IL_011F: call static System.Boolean
ElectricRoads.Overrides.ElectricRoadsOverrides::CheckElectrityNetForLight(InstanceI
D id)
IL_0124: brfalse => Label24
IL_0129: ldc.r4 0
IL_012E: stloc.s 6 (System.Single)
IL_0130: ldarg.s 8
IL_0132: brtrue => Label9
IL_0137: ldarg.1
IL_0138: ldfld System.Boolean PropInfo::m_alwaysActive
IL_013D: brtrue => Label10
IL_0142: Label24
IL_0142: ldarga.s 7
IL_0144: ldc.r4 0
IL_0149: stfld System.Single UnityEngine.Vector4::z
IL_014E: br => Label11
IL_0153: Label9
IL_0153: Label10
IL_0153: ldarg.1
IL_0154: ldflda UnityEngine.Vector2 PropInfo::m_illuminationOffRange
IL_0159: ldfld System.Single UnityEngine.Vector2::x
IL_015E: ldc.r4 1000
IL_0163: blt => Label12
IL_0168: ldarg.1
IL_0169: ldfld BlinkType PropInfo::m_illuminationBlinkType
IL_016E: brfalse => Label13
IL_0173: Label12
IL_0173: call static RenderManager
ColossalFramework.Singleton`1<RenderManager>::get_instance()
IL_0178: callvirt LightSystem RenderManager::get_lightSystem()
IL_017D: stloc.s 7 (LightSystem)
IL_017F: ldloca.s 8 (ColossalFramework.Math.Randomizer)
IL_0181: ldarga.s 2
IL_0183: call System.UInt32 InstanceID::get_Index()
IL_0188: call System.Void
ColossalFramework.Math.Randomizer::.ctor(System.UInt32 _seed)
IL_018D: ldarg.1
IL_018E: ldflda UnityEngine.Vector2 PropInfo::m_illuminationOffRange
IL_0193: ldfld System.Single UnityEngine.Vector2::x
IL_0198: ldloca.s 8 (ColossalFramework.Math.Randomizer)
IL_019A: ldc.i4 100000
IL_019F: call System.Int32
ColossalFramework.Math.Randomizer::Int32(System.UInt32 range)
IL_01A4: conv.r4
IL_01A5: ldc.r4 1E-05
IL_01AA: mul
IL_01AB: ldarg.1
IL_01AC: ldflda UnityEngine.Vector2 PropInfo::m_illuminationOffRange
IL_01B1: ldfld System.Single UnityEngine.Vector2::y
IL_01B6: ldarg.1
IL_01B7: ldflda UnityEngine.Vector2 PropInfo::m_illuminationOffRange
IL_01BC: ldfld System.Single UnityEngine.Vector2::x
IL_01C1: sub
IL_01C2: mul
IL_01C3: add
IL_01C4: stloc.s 6 (System.Single)
IL_01C6: ldarga.s 7
IL_01C8: ldloc.s 6 (System.Single)
IL_01CA: ldc.r4 0.01
IL_01CF: add
IL_01D0: ldloc.s 6 (System.Single)
IL_01D2: ldc.r4 0.01
IL_01D7: sub
IL_01D8: ldloc.s 7 (LightSystem)
IL_01DA: callvirt System.Single LightSystem::get_DayLightIntensity()
IL_01DF: call static System.Single MathUtils::SmoothStep(System.Single edge0,
System.Single edge1, System.Single x)
IL_01E4: stfld System.Single UnityEngine.Vector4::z
IL_01E9: ldarg.1
IL_01EA: ldfld BlinkType PropInfo::m_illuminationBlinkType
IL_01EF: brfalse => Label14
IL_01F4: ldarg.1
IL_01F5: ldfld BlinkType PropInfo::m_illuminationBlinkType
IL_01FA: call static UnityEngine.Vector4
LightEffect::GetBlinkVector(BlinkType type)
IL_01FF: stloc.s 9 (UnityEngine.Vector4)
IL_0201: ldloc.s 6 (System.Single)
IL_0203: ldc.r4 3.71
IL_0208: mul
IL_0209: call static SimulationManager
ColossalFramework.Singleton`1<SimulationManager>::get_instance()
IL_020E: ldfld System.Single SimulationManager::m_simulationTimer
IL_0213: ldloca.s 9 (UnityEngine.Vector4)
IL_0215: ldfld System.Single UnityEngine.Vector4::w
IL_021A: div
IL_021B: add
IL_021C: stloc.s 10 (System.Single)
IL_021E: ldloc.s 10 (System.Single)
IL_0220: ldloc.s 10 (System.Single)
IL_0222: call static System.Single UnityEngine.Mathf::Floor(System.Single f)
IL_0227: sub
IL_0228: ldloca.s 9 (UnityEngine.Vector4)
IL_022A: ldfld System.Single UnityEngine.Vector4::w
IL_022F: mul
IL_0230: stloc.s 10 (System.Single)
IL_0232: ldloca.s 9 (UnityEngine.Vector4)
IL_0234: ldfld System.Single UnityEngine.Vector4::x
IL_0239: ldloca.s 9 (UnityEngine.Vector4)
IL_023B: ldfld System.Single UnityEngine.Vector4::y
IL_0240: ldloc.s 10 (System.Single)
IL_0242: call static System.Single MathUtils::SmoothStep(System.Single edge0,
System.Single edge1, System.Single x)
IL_0247: stloc.s 11 (System.Single)
IL_0249: ldloca.s 9 (UnityEngine.Vector4)
IL_024B: ldfld System.Single UnityEngine.Vector4::w
IL_0250: ldloca.s 9 (UnityEngine.Vector4)
IL_0252: ldfld System.Single UnityEngine.Vector4::z
IL_0257: ldloc.s 10 (System.Single)
IL_0259: call static System.Single MathUtils::SmoothStep(System.Single edge0,
System.Single edge1, System.Single x)
IL_025E: stloc.s 12 (System.Single)
IL_0260: ldarga.s 7
IL_0262: dup
IL_0263: ldfld System.Single UnityEngine.Vector4::z
IL_0268: ldc.r4 1
IL_026D: ldloc.s 11 (System.Single)
IL_026F: ldloc.s 12 (System.Single)
IL_0271: mul
IL_0272: sub
IL_0273: mul
IL_0274: stfld System.Single UnityEngine.Vector4::z
IL_0279: Label14
IL_0279: br => Label15
IL_027E: Label13
IL_027E: ldarga.s 7
IL_0280: ldc.r4 1
IL_0285: stfld System.Single UnityEngine.Vector4::z
IL_028A: Label8
IL_028A: Label11
IL_028A: Label15
IL_028A: ldarg.0
IL_028B: brfalse => Label16
IL_0290: ldarg.0
IL_0291: ldarg.3
IL_0292: ldarg.1
IL_0293: ldfld System.Single PropInfo::m_lodRenderDistance
IL_0298: callvirt System.Boolean
CameraInfo::CheckRenderDistance(UnityEngine.Vector3 point, System.Single
maxDistance)
IL_029D: brfalse => Label17
IL_02A2: Label16
IL_02A2: ldloca.s 13 (UnityEngine.Matrix4x4)
IL_02A4: initobj UnityEngine.Matrix4x4
IL_02AA: ldloca.s 13 (UnityEngine.Matrix4x4)
IL_02AC: ldarg.3
IL_02AD: ldarg.s 5
IL_02AF: ldc.r4 57.29578
IL_02B4: mul
IL_02B5: call static UnityEngine.Vector3 UnityEngine.Vector3::get_down()
IL_02BA: call static UnityEngine.Quaternion
UnityEngine.Quaternion::AngleAxis(System.Single angle, UnityEngine.Vector3 axis)
IL_02BF: ldarg.s 4
IL_02C1: ldarg.s 4
IL_02C3: ldarg.s 4
IL_02C5: newobj System.Void UnityEngine.Vector3::.ctor(System.Single x,
System.Single y, System.Single z)
IL_02CA: call System.Void UnityEngine.Matrix4x4::SetTRS(UnityEngine.Vector3
pos, UnityEngine.Quaternion q, UnityEngine.Vector3 s)
IL_02CF: call static PropManager
ColossalFramework.Singleton`1<PropManager>::get_instance()
IL_02D4: stloc.s 14 (PropManager)
IL_02D6: ldloc.s 14 (PropManager)
IL_02D8: ldfld UnityEngine.MaterialPropertyBlock PropManager::m_materialBlock
IL_02DD: stloc.s 15 (UnityEngine.MaterialPropertyBlock)
IL_02DF: ldloc.s 15 (UnityEngine.MaterialPropertyBlock)
IL_02E1: callvirt System.Void UnityEngine.MaterialPropertyBlock::Clear()
IL_02E6: ldloc.s 15 (UnityEngine.MaterialPropertyBlock)
IL_02E8: ldloc.s 14 (PropManager)
IL_02EA: ldfld System.Int32 PropManager::ID_Color
IL_02EF: ldarg.s 6
IL_02F1: callvirt System.Void
UnityEngine.MaterialPropertyBlock::SetColor(System.Int32 nameID, UnityEngine.Color
value)
IL_02F6: ldloc.s 15 (UnityEngine.MaterialPropertyBlock)
IL_02F8: ldloc.s 14 (PropManager)
IL_02FA: ldfld System.Int32 PropManager::ID_HeightMap
IL_02FF: ldarg.s 9
IL_0301: callvirt System.Void
UnityEngine.MaterialPropertyBlock::SetTexture(System.Int32 nameID,
UnityEngine.Texture value)
IL_0306: ldloc.s 15 (UnityEngine.MaterialPropertyBlock)
IL_0308: ldloc.s 14 (PropManager)
IL_030A: ldfld System.Int32 PropManager::ID_HeightMapping
IL_030F: ldarg.s 10
IL_0311: callvirt System.Void
UnityEngine.MaterialPropertyBlock::SetVector(System.Int32 nameID,
UnityEngine.Vector4 value)
IL_0316: ldloc.s 15 (UnityEngine.MaterialPropertyBlock)
IL_0318: ldloc.s 14 (PropManager)
IL_031A: ldfld System.Int32 PropManager::ID_SurfaceMapping
IL_031F: ldarg.s 11
IL_0321: callvirt System.Void
UnityEngine.MaterialPropertyBlock::SetVector(System.Int32 nameID,
UnityEngine.Vector4 value)
IL_0326: ldloc.s 15 (UnityEngine.MaterialPropertyBlock)
IL_0328: ldloc.s 14 (PropManager)
IL_032A: ldfld System.Int32 PropManager::ID_ObjectIndex
IL_032F: ldarg.s 7
IL_0331: callvirt System.Void
UnityEngine.MaterialPropertyBlock::SetVector(System.Int32 nameID,
UnityEngine.Vector4 value)
IL_0336: ldloc.s 15 (UnityEngine.MaterialPropertyBlock)
IL_0338: ldloc.s 14 (PropManager)
IL_033A: ldfld System.Int32 PropManager::ID_WaterHeightMap
IL_033F: ldarg.s 12
IL_0341: callvirt System.Void
UnityEngine.MaterialPropertyBlock::SetTexture(System.Int32 nameID,
UnityEngine.Texture value)
IL_0346: ldloc.s 15 (UnityEngine.MaterialPropertyBlock)
IL_0348: ldloc.s 14 (PropManager)
IL_034A: ldfld System.Int32 PropManager::ID_WaterHeightMapping
IL_034F: ldarg.s 13
IL_0351: callvirt System.Void
UnityEngine.MaterialPropertyBlock::SetVector(System.Int32 nameID,
UnityEngine.Vector4 value)
IL_0356: ldloc.s 15 (UnityEngine.MaterialPropertyBlock)
IL_0358: ldloc.s 14 (PropManager)
IL_035A: ldfld System.Int32 PropManager::ID_WaterSurfaceMapping
IL_035F: ldarg.s 14
IL_0361: callvirt System.Void
UnityEngine.MaterialPropertyBlock::SetVector(System.Int32 nameID,
UnityEngine.Vector4 value)
IL_0366: ldarg.1
IL_0367: ldfld UnityEngine.Vector4[] PropInfo::m_rollLocation
IL_036C: brfalse => Label18
IL_0371: ldarg.1
IL_0372: ldfld UnityEngine.Material PropInfo::m_material
IL_0377: ldloc.s 14 (PropManager)
IL_0379: ldfld System.Int32 PropManager::ID_RollLocation
IL_037E: ldarg.1
IL_037F: ldfld UnityEngine.Vector4[] PropInfo::m_rollLocation
IL_0384: callvirt System.Void UnityEngine.Material::SetVectorArray(System.Int32
nameID, UnityEngine.Vector4[] values)
IL_0389: ldarg.1
IL_038A: ldfld UnityEngine.Material PropInfo::m_material
IL_038F: ldloc.s 14 (PropManager)
IL_0391: ldfld System.Int32 PropManager::ID_RollParams
IL_0396: ldarg.1
IL_0397: ldfld UnityEngine.Vector4[] PropInfo::m_rollParams
IL_039C: callvirt System.Void UnityEngine.Material::SetVectorArray(System.Int32
nameID, UnityEngine.Vector4[] values)
IL_03A1: Label18
IL_03A1: ldloc.s 14 (PropManager)
IL_03A3: ldflda DrawCallData SimulationManagerBase`2<PropManager,
PropProperties>::m_drawCallData
IL_03A8: dup
IL_03A9: ldfld System.Int32 DrawCallData::m_defaultCalls
IL_03AE: ldc.i4.1
IL_03AF: add
IL_03B0: stfld System.Int32 DrawCallData::m_defaultCalls
IL_03B5: ldarg.1
IL_03B6: ldfld UnityEngine.Mesh PropInfo::m_mesh
IL_03BB: ldloc.s 13 (UnityEngine.Matrix4x4)
IL_03BD: ldarg.1
IL_03BE: ldfld UnityEngine.Material PropInfo::m_material
IL_03C3: ldarg.1
IL_03C4: ldfld System.Int32 PrefabInfo::m_prefabDataLayer
IL_03C9: ldnull
IL_03CA: ldc.i4.0
IL_03CB: ldloc.s 15 (UnityEngine.MaterialPropertyBlock)
IL_03CD: call static System.Void
UnityEngine.Graphics::DrawMesh(UnityEngine.Mesh mesh, UnityEngine.Matrix4x4 matrix,
UnityEngine.Material material, System.Int32 layer, UnityEngine.Camera camera,
System.Int32 submeshIndex, UnityEngine.MaterialPropertyBlock properties)
IL_03D2: br => Label19
IL_03D7: Label17
IL_03D7: ldarg.s 9
IL_03D9: ldarg.1
IL_03DA: ldfld UnityEngine.Texture PropInfo::m_lodHeightMap
IL_03DF: call static System.Boolean
UnityEngine.Object::op_Inequality(UnityEngine.Object x, UnityEngine.Object y)
IL_03E4: brtrue => Label20
IL_03E9: ldarg.s 12
IL_03EB: ldarg.1
IL_03EC: ldfld UnityEngine.Texture PropInfo::m_lodWaterHeightMap
IL_03F1: call static System.Boolean
UnityEngine.Object::op_Inequality(UnityEngine.Object x, UnityEngine.Object y)
IL_03F6: brfalse => Label21
IL_03FB: Label20
IL_03FB: ldarg.1
IL_03FC: ldfld System.Int32 PropInfo::m_lodCount
IL_0401: brfalse => Label22
IL_0406: ldarg.0
IL_0407: ldarg.1
IL_0408: call static System.Void PropInstance::RenderLod(CameraInfo
cameraInfo, PropInfo info)
IL_040D: Label22
IL_040D: ldarg.1
IL_040E: ldarg.s 9
IL_0410: stfld UnityEngine.Texture PropInfo::m_lodHeightMap
IL_0415: ldarg.1
IL_0416: ldarg.s 10
IL_0418: stfld UnityEngine.Vector4 PropInfo::m_lodHeightMapping
IL_041D: ldarg.1
IL_041E: ldarg.s 11
IL_0420: stfld UnityEngine.Vector4 PropInfo::m_lodSurfaceMapping
IL_0425: ldarg.1
IL_0426: ldarg.s 12
IL_0428: stfld UnityEngine.Texture PropInfo::m_lodWaterHeightMap
IL_042D: ldarg.1
IL_042E: ldarg.s 13
IL_0430: stfld UnityEngine.Vector4 PropInfo::m_lodWaterHeightMapping
IL_0435: ldarg.1
IL_0436: ldarg.s 14
IL_0438: stfld UnityEngine.Vector4 PropInfo::m_lodWaterSurfaceMapping
IL_043D: Label21
IL_043D: ldarga.s 7
IL_043F: ldarg.s 4
IL_0441: stfld System.Single UnityEngine.Vector4::w
IL_0446: ldarg.1
IL_0447: ldfld UnityEngine.Vector4[] PropInfo::m_lodLocations
IL_044C: ldarg.1
IL_044D: ldfld System.Int32 PropInfo::m_lodCount
IL_0452: ldelema UnityEngine.Vector4
IL_0457: ldarga.s 3
IL_0459: ldfld System.Single UnityEngine.Vector3::x
IL_045E: ldarga.s 3
IL_0460: ldfld System.Single UnityEngine.Vector3::y
IL_0465: ldarga.s 3
IL_0467: ldfld System.Single UnityEngine.Vector3::z
IL_046C: ldarg.s 5
IL_046E: newobj System.Void UnityEngine.Vector4::.ctor(System.Single x,
System.Single y, System.Single z, System.Single w)
IL_0473: stobj UnityEngine.Vector4
IL_0478: ldarg.1
IL_0479: ldfld UnityEngine.Vector4[] PropInfo::m_lodObjectIndices
IL_047E: ldarg.1
IL_047F: ldfld System.Int32 PropInfo::m_lodCount
IL_0484: ldelema UnityEngine.Vector4
IL_0489: ldarg.s 7
IL_048B: stobj UnityEngine.Vector4
IL_0490: ldarg.1
IL_0491: ldfld UnityEngine.Vector4[] PropInfo::m_lodColors
IL_0496: ldarg.1
IL_0497: ldfld System.Int32 PropInfo::m_lodCount
IL_049C: ldelema UnityEngine.Vector4
IL_04A1: ldarga.s 6
IL_04A3: call UnityEngine.Color UnityEngine.Color::get_linear()
IL_04A8: call static UnityEngine.Vector4
UnityEngine.Color::op_Implicit(UnityEngine.Color c)
IL_04AD: stobj UnityEngine.Vector4
IL_04B2: ldarg.1
IL_04B3: ldarg.1
IL_04B4: ldfld UnityEngine.Vector3 PropInfo::m_lodMin
IL_04B9: ldarg.3
IL_04BA: call static UnityEngine.Vector3
UnityEngine.Vector3::Min(UnityEngine.Vector3 lhs, UnityEngine.Vector3 rhs)
IL_04BF: stfld UnityEngine.Vector3 PropInfo::m_lodMin
IL_04C4: ldarg.1
IL_04C5: ldarg.1
IL_04C6: ldfld UnityEngine.Vector3 PropInfo::m_lodMax
IL_04CB: ldarg.3
IL_04CC: call static UnityEngine.Vector3
UnityEngine.Vector3::Max(UnityEngine.Vector3 lhs, UnityEngine.Vector3 rhs)
IL_04D1: stfld UnityEngine.Vector3 PropInfo::m_lodMax
IL_04D6: ldarg.1
IL_04D7: dup
IL_04D8: ldfld System.Int32 PropInfo::m_lodCount
IL_04DD: ldc.i4.1
IL_04DE: add
IL_04DF: dup
IL_04E0: stloc.s 16 (System.Int32)
IL_04E2: stfld System.Int32 PropInfo::m_lodCount
IL_04E7: ldloc.s 16 (System.Int32)
IL_04E9: ldarg.1
IL_04EA: ldfld UnityEngine.Vector4[] PropInfo::m_lodLocations
IL_04EF: ldlen
IL_04F0: conv.i4
IL_04F1: bne.un => Label23
IL_04F6: ldarg.0
IL_04F7: ldarg.1
IL_04F8: call static System.Void PropInstance::RenderLod(CameraInfo
cameraInfo, PropInfo info)
IL_04FD: // end original
IL_04FD: Label0
IL_04FD: Label6
IL_04FD: Label7
IL_04FD: Label19
IL_04FD: Label23
IL_04FD: ret
DONE
### Patch: static System.Void PropInstance::RenderInstance(CameraInfo cameraInfo,
PropInfo info, InstanceID id, UnityEngine.Vector3 position, System.Single scale,
System.Single angle, UnityEngine.Color color, UnityEngine.Vector4 objectIndex,
System.Boolean active)
### Replacement: static System.Void
PropInstance::PropInstance.RenderInstance_Patch0(CameraInfo cameraInfo, PropInfo
info, InstanceID id, UnityEngine.Vector3 position, System.Single scale,
System.Single angle, UnityEngine.Color color, UnityEngine.Vector4 objectIndex,
System.Boolean active)
IL_0000: Local var 0: UnityEngine.Matrix4x4
IL_0000: Local var 1: System.Single
IL_0000: Local var 2: System.Int32
IL_0000: Local var 3: UnityEngine.Vector3
IL_0000: Local var 4: UnityEngine.Vector3
IL_0000: Local var 5: EffectInfo/SpawnArea
IL_0000: Local var 6: System.Single
IL_0000: Local var 7: LightSystem
IL_0000: Local var 8: ColossalFramework.Math.Randomizer
IL_0000: Local var 9: UnityEngine.Vector4
IL_0000: Local var 10: System.Single
IL_0000: Local var 11: System.Single
IL_0000: Local var 12: System.Single
IL_0000: Local var 13: UnityEngine.Matrix4x4
IL_0000: Local var 14: PropManager
IL_0000: Local var 15: UnityEngine.MaterialPropertyBlock
IL_0000: Local var 16: UnityEngine.Matrix4x4
IL_0000: Local var 17: PropManager
IL_0000: Local var 18: UnityEngine.MaterialPropertyBlock
IL_0000: Local var 19: System.Int32
IL_0000: // start original
IL_0000: ldarg.1
IL_0001: ldfld System.Boolean PrefabInfo::m_prefabInitialized
IL_0006: brfalse => Label0
IL_000B: ldarg.1
IL_000C: ldfld System.Boolean PropInfo::m_hasEffects
IL_0011: brfalse => Label1
IL_0016: ldarg.s 8
IL_0018: brtrue => Label2
IL_001D: ldarg.1
IL_001E: ldfld System.Boolean PropInfo::m_alwaysActive
IL_0023: brfalse => Label3
IL_0028: Label2
IL_0028: ldloca.s 0 (UnityEngine.Matrix4x4)
IL_002A: initobj UnityEngine.Matrix4x4
IL_0030: ldloca.s 0 (UnityEngine.Matrix4x4)
IL_0032: ldarg.3
IL_0033: ldarg.s 5
IL_0035: ldc.r4 57.29578
IL_003A: mul
IL_003B: call static UnityEngine.Vector3 UnityEngine.Vector3::get_down()
IL_0040: call static UnityEngine.Quaternion
UnityEngine.Quaternion::AngleAxis(System.Single angle, UnityEngine.Vector3 axis)
IL_0045: ldarg.s 4
IL_0047: ldarg.s 4
IL_0049: ldarg.s 4
IL_004B: newobj System.Void UnityEngine.Vector3::.ctor(System.Single x,
System.Single y, System.Single z)
IL_0050: call System.Void UnityEngine.Matrix4x4::SetTRS(UnityEngine.Vector3
pos, UnityEngine.Quaternion q, UnityEngine.Vector3 s)
IL_0055: call static SimulationManager
ColossalFramework.Singleton`1<SimulationManager>::get_instance()
IL_005A: ldfld System.Single SimulationManager::m_simulationTimeDelta
IL_005F: stloc.1
IL_0060: ldc.i4.0
IL_0061: stloc.2
IL_0062: br => Label4
IL_0067: Label5
IL_0067: ldloca.s 0 (UnityEngine.Matrix4x4)
IL_0069: ldarg.1
IL_006A: ldfld Effect[] PropInfo::m_effects
IL_006F: ldloc.2
IL_0070: ldelema PropInfo+Effect
IL_0075: ldfld UnityEngine.Vector3 Effect::m_position
IL_007A: call UnityEngine.Vector3
UnityEngine.Matrix4x4::MultiplyPoint(UnityEngine.Vector3 v)
IL_007F: stloc.3
IL_0080: ldloca.s 0 (UnityEngine.Matrix4x4)
IL_0082: ldarg.1
IL_0083: ldfld Effect[] PropInfo::m_effects
IL_0088: ldloc.2
IL_0089: ldelema PropInfo+Effect
IL_008E: ldfld UnityEngine.Vector3 Effect::m_direction
IL_0093: call UnityEngine.Vector3
UnityEngine.Matrix4x4::MultiplyVector(UnityEngine.Vector3 v)
IL_0098: stloc.s 4 (UnityEngine.Vector3)
IL_009A: ldloca.s 5 (EffectInfo+SpawnArea)
IL_009C: ldloc.3
IL_009D: ldloc.s 4 (UnityEngine.Vector3)
IL_009F: ldc.r4 0
IL_00A4: call System.Void SpawnArea::.ctor(UnityEngine.Vector3 position,
UnityEngine.Vector3 direction, System.Single radius)
IL_00A9: ldarg.1
IL_00AA: ldfld Effect[] PropInfo::m_effects
IL_00AF: ldloc.2
IL_00B0: ldelema PropInfo+Effect
IL_00B5: ldfld EffectInfo Effect::m_effect
IL_00BA: ldarg.2
IL_00BB: ldloc.s 5 (EffectInfo+SpawnArea)
IL_00BD: call static UnityEngine.Vector3 UnityEngine.Vector3::get_zero()
IL_00C2: ldc.r4 0
IL_00C7: ldc.r4 1
IL_00CC: ldc.r4 -1
IL_00D1: ldloc.1
IL_00D2: ldarg.0
IL_00D3: callvirt virtual System.Void EffectInfo::RenderEffect(InstanceID id,
SpawnArea area, UnityEngine.Vector3 velocity, System.Single acceleration,
System.Single magnitude, System.Single timeOffset, System.Single timeDelta,
CameraInfo cameraInfo)
IL_00D8: ldloc.2
IL_00D9: ldc.i4.1
IL_00DA: add
IL_00DB: stloc.2
IL_00DC: Label4
IL_00DC: ldloc.2
IL_00DD: ldarg.1
IL_00DE: ldfld Effect[] PropInfo::m_effects
IL_00E3: ldlen
IL_00E4: conv.i4
IL_00E5: blt => Label5
IL_00EA: Label1
IL_00EA: Label3
IL_00EA: ldarg.1
IL_00EB: ldfld System.Boolean PropInfo::m_hasRenderer
IL_00F0: brfalse => Label6
IL_00F5: ldarg.0
IL_00F6: ldfld System.Int32 CameraInfo::m_layerMask
IL_00FB: ldc.i4.1
IL_00FC: ldarg.1
IL_00FD: ldfld System.Int32 PrefabInfo::m_prefabDataLayer
IL_0102: ldc.i4.s 31
IL_0104: and
IL_0105: shl
IL_0106: and
IL_0107: brfalse => Label7
IL_010C: call static InfoManager
ColossalFramework.Singleton`1<InfoManager>::get_instance()
IL_0111: callvirt InfoMode InfoManager::get_CurrentMode()
IL_0116: brtrue => Label8
IL_011B: ldarg 2
IL_011F: call static System.Boolean
ElectricRoads.Overrides.ElectricRoadsOverrides::CheckElectrityNetForLight(InstanceI
D id)
IL_0124: brfalse => Label24
IL_0129: ldc.r4 0
IL_012E: stloc.s 6 (System.Single)
IL_0130: ldarg.s 8
IL_0132: brtrue => Label9
IL_0137: ldarg.1
IL_0138: ldfld System.Boolean PropInfo::m_alwaysActive
IL_013D: brtrue => Label10
IL_0142: Label24
IL_0142: ldarga.s 7
IL_0144: ldc.r4 0
IL_0149: stfld System.Single UnityEngine.Vector4::z
IL_014E: br => Label11
IL_0153: Label9
IL_0153: Label10
IL_0153: ldarg.1
IL_0154: ldflda UnityEngine.Vector2 PropInfo::m_illuminationOffRange
IL_0159: ldfld System.Single UnityEngine.Vector2::x
IL_015E: ldc.r4 1000
IL_0163: blt => Label12
IL_0168: ldarg.1
IL_0169: ldfld BlinkType PropInfo::m_illuminationBlinkType
IL_016E: brfalse => Label13
IL_0173: Label12
IL_0173: call static RenderManager
ColossalFramework.Singleton`1<RenderManager>::get_instance()
IL_0178: callvirt LightSystem RenderManager::get_lightSystem()
IL_017D: stloc.s 7 (LightSystem)
IL_017F: ldloca.s 8 (ColossalFramework.Math.Randomizer)
IL_0181: ldarga.s 2
IL_0183: call System.UInt32 InstanceID::get_Index()
IL_0188: call System.Void
ColossalFramework.Math.Randomizer::.ctor(System.UInt32 _seed)
IL_018D: ldarg.1
IL_018E: ldflda UnityEngine.Vector2 PropInfo::m_illuminationOffRange
IL_0193: ldfld System.Single UnityEngine.Vector2::x
IL_0198: ldloca.s 8 (ColossalFramework.Math.Randomizer)
IL_019A: ldc.i4 100000
IL_019F: call System.Int32
ColossalFramework.Math.Randomizer::Int32(System.UInt32 range)
IL_01A4: conv.r4
IL_01A5: ldc.r4 1E-05
IL_01AA: mul
IL_01AB: ldarg.1
IL_01AC: ldflda UnityEngine.Vector2 PropInfo::m_illuminationOffRange
IL_01B1: ldfld System.Single UnityEngine.Vector2::y
IL_01B6: ldarg.1
IL_01B7: ldflda UnityEngine.Vector2 PropInfo::m_illuminationOffRange
IL_01BC: ldfld System.Single UnityEngine.Vector2::x
IL_01C1: sub
IL_01C2: mul
IL_01C3: add
IL_01C4: stloc.s 6 (System.Single)
IL_01C6: ldarga.s 7
IL_01C8: ldloc.s 6 (System.Single)
IL_01CA: ldc.r4 0.01
IL_01CF: add
IL_01D0: ldloc.s 6 (System.Single)
IL_01D2: ldc.r4 0.01
IL_01D7: sub
IL_01D8: ldloc.s 7 (LightSystem)
IL_01DA: callvirt System.Single LightSystem::get_DayLightIntensity()
IL_01DF: call static System.Single MathUtils::SmoothStep(System.Single edge0,
System.Single edge1, System.Single x)
IL_01E4: stfld System.Single UnityEngine.Vector4::z
IL_01E9: ldarg.1
IL_01EA: ldfld BlinkType PropInfo::m_illuminationBlinkType
IL_01EF: brfalse => Label14
IL_01F4: ldarg.1
IL_01F5: ldfld BlinkType PropInfo::m_illuminationBlinkType
IL_01FA: call static UnityEngine.Vector4
LightEffect::GetBlinkVector(BlinkType type)
IL_01FF: stloc.s 9 (UnityEngine.Vector4)
IL_0201: ldloc.s 6 (System.Single)
IL_0203: ldc.r4 3.71
IL_0208: mul
IL_0209: call static SimulationManager
ColossalFramework.Singleton`1<SimulationManager>::get_instance()
IL_020E: ldfld System.Single SimulationManager::m_simulationTimer
IL_0213: ldloca.s 9 (UnityEngine.Vector4)
IL_0215: ldfld System.Single UnityEngine.Vector4::w
IL_021A: div
IL_021B: add
IL_021C: stloc.s 10 (System.Single)
IL_021E: ldloc.s 10 (System.Single)
IL_0220: ldloc.s 10 (System.Single)
IL_0222: call static System.Single UnityEngine.Mathf::Floor(System.Single f)
IL_0227: sub
IL_0228: ldloca.s 9 (UnityEngine.Vector4)
IL_022A: ldfld System.Single UnityEngine.Vector4::w
IL_022F: mul
IL_0230: stloc.s 10 (System.Single)
IL_0232: ldloca.s 9 (UnityEngine.Vector4)
IL_0234: ldfld System.Single UnityEngine.Vector4::x
IL_0239: ldloca.s 9 (UnityEngine.Vector4)
IL_023B: ldfld System.Single UnityEngine.Vector4::y
IL_0240: ldloc.s 10 (System.Single)
IL_0242: call static System.Single MathUtils::SmoothStep(System.Single edge0,
System.Single edge1, System.Single x)
IL_0247: stloc.s 11 (System.Single)
IL_0249: ldloca.s 9 (UnityEngine.Vector4)
IL_024B: ldfld System.Single UnityEngine.Vector4::w
IL_0250: ldloca.s 9 (UnityEngine.Vector4)
IL_0252: ldfld System.Single UnityEngine.Vector4::z
IL_0257: ldloc.s 10 (System.Single)
IL_0259: call static System.Single MathUtils::SmoothStep(System.Single edge0,
System.Single edge1, System.Single x)
IL_025E: stloc.s 12 (System.Single)
IL_0260: ldarga.s 7
IL_0262: dup
IL_0263: ldfld System.Single UnityEngine.Vector4::z
IL_0268: ldc.r4 1
IL_026D: ldloc.s 11 (System.Single)
IL_026F: ldloc.s 12 (System.Single)
IL_0271: mul
IL_0272: sub
IL_0273: mul
IL_0274: stfld System.Single UnityEngine.Vector4::z
IL_0279: Label14
IL_0279: br => Label15
IL_027E: Label13
IL_027E: ldarga.s 7
IL_0280: ldc.r4 1
IL_0285: stfld System.Single UnityEngine.Vector4::z
IL_028A: Label8
IL_028A: Label11
IL_028A: Label15
IL_028A: ldarg.0
IL_028B: brfalse => Label16
IL_0290: ldarg.0
IL_0291: ldarg.3
IL_0292: ldarg.1
IL_0293: ldfld System.Single PropInfo::m_lodRenderDistance
IL_0298: callvirt System.Boolean
CameraInfo::CheckRenderDistance(UnityEngine.Vector3 point, System.Single
maxDistance)
IL_029D: brfalse => Label17
IL_02A2: Label16
IL_02A2: ldloca.s 13 (UnityEngine.Matrix4x4)
IL_02A4: initobj UnityEngine.Matrix4x4
IL_02AA: ldloca.s 13 (UnityEngine.Matrix4x4)
IL_02AC: ldarg.3
IL_02AD: ldarg.s 5
IL_02AF: ldc.r4 57.29578
IL_02B4: mul
IL_02B5: call static UnityEngine.Vector3 UnityEngine.Vector3::get_down()
IL_02BA: call static UnityEngine.Quaternion
UnityEngine.Quaternion::AngleAxis(System.Single angle, UnityEngine.Vector3 axis)
IL_02BF: ldarg.s 4
IL_02C1: ldarg.s 4
IL_02C3: ldarg.s 4
IL_02C5: newobj System.Void UnityEngine.Vector3::.ctor(System.Single x,
System.Single y, System.Single z)
IL_02CA: call System.Void UnityEngine.Matrix4x4::SetTRS(UnityEngine.Vector3
pos, UnityEngine.Quaternion q, UnityEngine.Vector3 s)
IL_02CF: call static PropManager
ColossalFramework.Singleton`1<PropManager>::get_instance()
IL_02D4: stloc.s 14 (PropManager)
IL_02D6: ldloc.s 14 (PropManager)
IL_02D8: ldfld UnityEngine.MaterialPropertyBlock PropManager::m_materialBlock
IL_02DD: stloc.s 15 (UnityEngine.MaterialPropertyBlock)
IL_02DF: ldloc.s 15 (UnityEngine.MaterialPropertyBlock)
IL_02E1: callvirt System.Void UnityEngine.MaterialPropertyBlock::Clear()
IL_02E6: ldloc.s 15 (UnityEngine.MaterialPropertyBlock)
IL_02E8: ldloc.s 14 (PropManager)
IL_02EA: ldfld System.Int32 PropManager::ID_Color
IL_02EF: ldarg.s 6
IL_02F1: callvirt System.Void
UnityEngine.MaterialPropertyBlock::SetColor(System.Int32 nameID, UnityEngine.Color
value)
IL_02F6: ldloc.s 15 (UnityEngine.MaterialPropertyBlock)
IL_02F8: ldloc.s 14 (PropManager)
IL_02FA: ldfld System.Int32 PropManager::ID_ObjectIndex
IL_02FF: ldarg.s 7
IL_0301: callvirt System.Void
UnityEngine.MaterialPropertyBlock::SetVector(System.Int32 nameID,
UnityEngine.Vector4 value)
IL_0306: ldarg.1
IL_0307: ldfld UnityEngine.Vector4[] PropInfo::m_rollLocation
IL_030C: brfalse => Label18
IL_0311: ldarg.1
IL_0312: ldfld UnityEngine.Material PropInfo::m_material
IL_0317: ldloc.s 14 (PropManager)
IL_0319: ldfld System.Int32 PropManager::ID_RollLocation
IL_031E: ldarg.1
IL_031F: ldfld UnityEngine.Vector4[] PropInfo::m_rollLocation
IL_0324: callvirt System.Void UnityEngine.Material::SetVectorArray(System.Int32
nameID, UnityEngine.Vector4[] values)
IL_0329: ldarg.1
IL_032A: ldfld UnityEngine.Material PropInfo::m_material
IL_032F: ldloc.s 14 (PropManager)
IL_0331: ldfld System.Int32 PropManager::ID_RollParams
IL_0336: ldarg.1
IL_0337: ldfld UnityEngine.Vector4[] PropInfo::m_rollParams
IL_033C: callvirt System.Void UnityEngine.Material::SetVectorArray(System.Int32
nameID, UnityEngine.Vector4[] values)
IL_0341: Label18
IL_0341: ldloc.s 14 (PropManager)
IL_0343: ldflda DrawCallData SimulationManagerBase`2<PropManager,
PropProperties>::m_drawCallData
IL_0348: dup
IL_0349: ldfld System.Int32 DrawCallData::m_defaultCalls
IL_034E: ldc.i4.1
IL_034F: add
IL_0350: stfld System.Int32 DrawCallData::m_defaultCalls
IL_0355: ldarg.1
IL_0356: ldfld UnityEngine.Mesh PropInfo::m_mesh
IL_035B: ldloc.s 13 (UnityEngine.Matrix4x4)
IL_035D: ldarg.1
IL_035E: ldfld UnityEngine.Material PropInfo::m_material
IL_0363: ldarg.1
IL_0364: ldfld System.Int32 PrefabInfo::m_prefabDataLayer
IL_0369: ldnull
IL_036A: ldc.i4.0
IL_036B: ldloc.s 15 (UnityEngine.MaterialPropertyBlock)
IL_036D: call static System.Void
UnityEngine.Graphics::DrawMesh(UnityEngine.Mesh mesh, UnityEngine.Matrix4x4 matrix,
UnityEngine.Material material, System.Int32 layer, UnityEngine.Camera camera,
System.Int32 submeshIndex, UnityEngine.MaterialPropertyBlock properties)
IL_0372: br => Label19
IL_0377: Label17
IL_0377: ldarg.1
IL_0378: ldfld UnityEngine.Material PropInfo::m_lodMaterialCombined
IL_037D: ldnull
IL_037E: call static System.Boolean
UnityEngine.Object::op_Equality(UnityEngine.Object x, UnityEngine.Object y)
IL_0383: brfalse => Label20
IL_0388: ldloca.s 16 (UnityEngine.Matrix4x4)
IL_038A: initobj UnityEngine.Matrix4x4
IL_0390: ldloca.s 16 (UnityEngine.Matrix4x4)
IL_0392: ldarg.3
IL_0393: ldarg.s 5
IL_0395: ldc.r4 57.29578
IL_039A: mul
IL_039B: call static UnityEngine.Vector3 UnityEngine.Vector3::get_down()
IL_03A0: call static UnityEngine.Quaternion
UnityEngine.Quaternion::AngleAxis(System.Single angle, UnityEngine.Vector3 axis)
IL_03A5: ldarg.s 4
IL_03A7: ldarg.s 4
IL_03A9: ldarg.s 4
IL_03AB: newobj System.Void UnityEngine.Vector3::.ctor(System.Single x,
System.Single y, System.Single z)
IL_03B0: call System.Void UnityEngine.Matrix4x4::SetTRS(UnityEngine.Vector3
pos, UnityEngine.Quaternion q, UnityEngine.Vector3 s)
IL_03B5: call static PropManager
ColossalFramework.Singleton`1<PropManager>::get_instance()
IL_03BA: stloc.s 17 (PropManager)
IL_03BC: ldloc.s 17 (PropManager)
IL_03BE: ldfld UnityEngine.MaterialPropertyBlock PropManager::m_materialBlock
IL_03C3: stloc.s 18 (UnityEngine.MaterialPropertyBlock)
IL_03C5: ldloc.s 18 (UnityEngine.MaterialPropertyBlock)
IL_03C7: callvirt System.Void UnityEngine.MaterialPropertyBlock::Clear()
IL_03CC: ldloc.s 18 (UnityEngine.MaterialPropertyBlock)
IL_03CE: ldloc.s 17 (PropManager)
IL_03D0: ldfld System.Int32 PropManager::ID_Color
IL_03D5: ldarg.s 6
IL_03D7: callvirt System.Void
UnityEngine.MaterialPropertyBlock::SetColor(System.Int32 nameID, UnityEngine.Color
value)
IL_03DC: ldloc.s 18 (UnityEngine.MaterialPropertyBlock)
IL_03DE: ldloc.s 17 (PropManager)
IL_03E0: ldfld System.Int32 PropManager::ID_ObjectIndex
IL_03E5: ldarg.s 7
IL_03E7: callvirt System.Void
UnityEngine.MaterialPropertyBlock::SetVector(System.Int32 nameID,
UnityEngine.Vector4 value)
IL_03EC: ldarg.1
IL_03ED: ldfld UnityEngine.Vector4[] PropInfo::m_rollLocation
IL_03F2: brfalse => Label21
IL_03F7: ldarg.1
IL_03F8: ldfld UnityEngine.Material PropInfo::m_material
IL_03FD: ldloc.s 17 (PropManager)
IL_03FF: ldfld System.Int32 PropManager::ID_RollLocation
IL_0404: ldarg.1
IL_0405: ldfld UnityEngine.Vector4[] PropInfo::m_rollLocation
IL_040A: callvirt System.Void UnityEngine.Material::SetVectorArray(System.Int32
nameID, UnityEngine.Vector4[] values)
IL_040F: ldarg.1
IL_0410: ldfld UnityEngine.Material PropInfo::m_material
IL_0415: ldloc.s 17 (PropManager)
IL_0417: ldfld System.Int32 PropManager::ID_RollParams
IL_041C: ldarg.1
IL_041D: ldfld UnityEngine.Vector4[] PropInfo::m_rollParams
IL_0422: callvirt System.Void UnityEngine.Material::SetVectorArray(System.Int32
nameID, UnityEngine.Vector4[] values)
IL_0427: Label21
IL_0427: ldloc.s 17 (PropManager)
IL_0429: ldflda DrawCallData SimulationManagerBase`2<PropManager,
PropProperties>::m_drawCallData
IL_042E: dup
IL_042F: ldfld System.Int32 DrawCallData::m_defaultCalls
IL_0434: ldc.i4.1
IL_0435: add
IL_0436: stfld System.Int32 DrawCallData::m_defaultCalls
IL_043B: ldarg.1
IL_043C: ldfld UnityEngine.Mesh PropInfo::m_lodMesh
IL_0441: ldloc.s 16 (UnityEngine.Matrix4x4)
IL_0443: ldarg.1
IL_0444: ldfld UnityEngine.Material PropInfo::m_lodMaterial
IL_0449: ldarg.1
IL_044A: ldfld System.Int32 PrefabInfo::m_prefabDataLayer
IL_044F: ldnull
IL_0450: ldc.i4.0
IL_0451: ldloc.s 18 (UnityEngine.MaterialPropertyBlock)
IL_0453: call static System.Void
UnityEngine.Graphics::DrawMesh(UnityEngine.Mesh mesh, UnityEngine.Matrix4x4 matrix,
UnityEngine.Material material, System.Int32 layer, UnityEngine.Camera camera,
System.Int32 submeshIndex, UnityEngine.MaterialPropertyBlock properties)
IL_0458: br => Label22
IL_045D: Label20
IL_045D: ldarga.s 7
IL_045F: ldarg.s 4
IL_0461: stfld System.Single UnityEngine.Vector4::w
IL_0466: ldarg.1
IL_0467: ldfld UnityEngine.Vector4[] PropInfo::m_lodLocations
IL_046C: ldarg.1
IL_046D: ldfld System.Int32 PropInfo::m_lodCount
IL_0472: ldelema UnityEngine.Vector4
IL_0477: ldarga.s 3
IL_0479: ldfld System.Single UnityEngine.Vector3::x
IL_047E: ldarga.s 3
IL_0480: ldfld System.Single UnityEngine.Vector3::y
IL_0485: ldarga.s 3
IL_0487: ldfld System.Single UnityEngine.Vector3::z
IL_048C: ldarg.s 5
IL_048E: newobj System.Void UnityEngine.Vector4::.ctor(System.Single x,
System.Single y, System.Single z, System.Single w)
IL_0493: stobj UnityEngine.Vector4
IL_0498: ldarg.1
IL_0499: ldfld UnityEngine.Vector4[] PropInfo::m_lodObjectIndices
IL_049E: ldarg.1
IL_049F: ldfld System.Int32 PropInfo::m_lodCount
IL_04A4: ldelema UnityEngine.Vector4
IL_04A9: ldarg.s 7
IL_04AB: stobj UnityEngine.Vector4
IL_04B0: ldarg.1
IL_04B1: ldfld UnityEngine.Vector4[] PropInfo::m_lodColors
IL_04B6: ldarg.1
IL_04B7: ldfld System.Int32 PropInfo::m_lodCount
IL_04BC: ldelema UnityEngine.Vector4
IL_04C1: ldarga.s 6
IL_04C3: call UnityEngine.Color UnityEngine.Color::get_linear()
IL_04C8: call static UnityEngine.Vector4
UnityEngine.Color::op_Implicit(UnityEngine.Color c)
IL_04CD: stobj UnityEngine.Vector4
IL_04D2: ldarg.1
IL_04D3: ldarg.1
IL_04D4: ldfld UnityEngine.Vector3 PropInfo::m_lodMin
IL_04D9: ldarg.3
IL_04DA: call static UnityEngine.Vector3
UnityEngine.Vector3::Min(UnityEngine.Vector3 lhs, UnityEngine.Vector3 rhs)
IL_04DF: stfld UnityEngine.Vector3 PropInfo::m_lodMin
IL_04E4: ldarg.1
IL_04E5: ldarg.1
IL_04E6: ldfld UnityEngine.Vector3 PropInfo::m_lodMax
IL_04EB: ldarg.3
IL_04EC: call static UnityEngine.Vector3
UnityEngine.Vector3::Max(UnityEngine.Vector3 lhs, UnityEngine.Vector3 rhs)
IL_04F1: stfld UnityEngine.Vector3 PropInfo::m_lodMax
IL_04F6: ldarg.1
IL_04F7: dup
IL_04F8: ldfld System.Int32 PropInfo::m_lodCount
IL_04FD: ldc.i4.1
IL_04FE: add
IL_04FF: dup
IL_0500: stloc.s 19 (System.Int32)
IL_0502: stfld System.Int32 PropInfo::m_lodCount
IL_0507: ldloc.s 19 (System.Int32)
IL_0509: ldarg.1
IL_050A: ldfld UnityEngine.Vector4[] PropInfo::m_lodLocations
IL_050F: ldlen
IL_0510: conv.i4
IL_0511: bne.un => Label23
IL_0516: ldarg.0
IL_0517: ldarg.1
IL_0518: call static System.Void PropInstance::RenderLod(CameraInfo
cameraInfo, PropInfo info)
IL_051D: // end original
IL_051D: Label0
IL_051D: Label6
IL_051D: Label7
IL_051D: Label19
IL_051D: Label22
IL_051D: Label23
IL_051D: ret
DONE

### Patch: virtual System.Void LightEffect::PopulateGroupData(System.Int32 layer,


InstanceID id, UnityEngine.Vector3 pos, UnityEngine.Vector3 dir, 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
LightEffect::LightEffect.PopulateGroupData_Patch1(LightEffect this, System.Int32
layer, InstanceID id, UnityEngine.Vector3 pos, UnityEngine.Vector3 dir,
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.Boolean
IL_0000: Local var 1: UnityEngine.Vector3
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.Quaternion
IL_0000: Local var 7: UnityEngine.Vector4
IL_0000: Local var 8: UnityEngine.Vector2
IL_0000: Local var 9: ColossalFramework.Math.Randomizer
IL_0000: Local var 10: UnityEngine.Vector2
IL_0000: Local var 11: UnityEngine.Vector2
IL_0000: Local var 12: UnityEngine.Vector2
IL_0000: Local var 13: System.UInt16
IL_0000: Local var 14: UnityEngine.Vector3
IL_0000: Local var 15: UnityEngine.Color
IL_0000: Local var 16: UnityEngine.Color
IL_0000: Local var 17: System.Single
IL_0000: Local var 18: System.Single
IL_0000: Local var 19: System.Int32
IL_0000: Local var 20: System.Boolean
IL_0000: ldc.i4 0
IL_0005: stloc 20 (System.Boolean)
IL_0009: ldc.i4.1
IL_000A: stloc 20 (System.Boolean)
IL_000E: ldloc 20 (System.Boolean)
IL_0012: brfalse => Label1
IL_0017: ldarg 2
IL_001B: call static System.Boolean
ElectricRoads.Overrides.ElectricRoadsOverrides::CheckElectrityNetForLight(InstanceI
D id)
IL_0020: stloc 20 (System.Boolean)
IL_0024: Label1
IL_0024: nop
IL_0025: ldloc 20 (System.Boolean)
IL_0029: brfalse => Label0
IL_002E: // start original
IL_002E: ldarg.1
IL_002F: ldarg.0
IL_0030: ldfld System.Int32 LightEffect::m_groupLayer
IL_0035: beq => Label2
IL_003A: ldarg.1
IL_003B: ldarg.0
IL_003C: ldfld System.Int32 LightEffect::m_groupLayerFloating
IL_0041: bne.un => Label3
IL_0046: Label2
IL_0046: ldarg.1
IL_0047: ldarg.0
IL_0048: ldfld System.Int32 LightEffect::m_groupLayerFloating
IL_004D: ceq
IL_004F: stloc.0
IL_0050: ldloca.s 1 (UnityEngine.Vector3)
IL_0052: ldarg.0
IL_0053: ldfld System.Single LightEffect::m_lightRange
IL_0058: ldarg.0
IL_0059: ldfld System.Single LightEffect::m_lightRange
IL_005E: ldarg.0
IL_005F: ldfld System.Single LightEffect::m_lightRange
IL_0064: call System.Void UnityEngine.Vector3::.ctor(System.Single x,
System.Single y, System.Single z)
IL_0069: ldarg.3
IL_006A: ldloc.1
IL_006B: call static UnityEngine.Vector3
UnityEngine.Vector3::op_Subtraction(UnityEngine.Vector3 a, UnityEngine.Vector3 b)
IL_0070: stloc.2
IL_0071: ldarg.3
IL_0072: ldloc.1
IL_0073: call static UnityEngine.Vector3
UnityEngine.Vector3::op_Addition(UnityEngine.Vector3 a, UnityEngine.Vector3 b)
IL_0078: stloc.3
IL_0079: ldarg.s 9
IL_007B: ldarg.s 9
IL_007D: ldobj UnityEngine.Vector3
IL_0082: ldloc.2
IL_0083: call static UnityEngine.Vector3
UnityEngine.Vector3::Min(UnityEngine.Vector3 lhs, UnityEngine.Vector3 rhs)
IL_0088: stobj UnityEngine.Vector3
IL_008D: ldarg.s 10
IL_008F: ldarg.s 10
IL_0091: ldobj UnityEngine.Vector3
IL_0096: ldloc.3
IL_0097: call static UnityEngine.Vector3
UnityEngine.Vector3::Max(UnityEngine.Vector3 lhs, UnityEngine.Vector3 rhs)
IL_009C: stobj UnityEngine.Vector3
IL_00A1: ldarg.3
IL_00A2: ldarg.s 7
IL_00A4: call static UnityEngine.Vector3
UnityEngine.Vector3::op_Subtraction(UnityEngine.Vector3 a, UnityEngine.Vector3 b)
IL_00A9: stloc.s 4 (UnityEngine.Vector3)
IL_00AB: ldarg.s 11
IL_00AD: ldarg.s 11
IL_00AF: ldind.r4
IL_00B0: ldc.r4 30000
IL_00B5: call static System.Single UnityEngine.Mathf::Max(System.Single a,
System.Single b)
IL_00BA: stind.r4
IL_00BB: ldarg.0
IL_00BC: ldfld UnityEngine.LightType LightEffect::m_lightType
IL_00C1: brtrue => Label4
IL_00C6: ldarg.s 4
IL_00C8: call static UnityEngine.Quaternion
UnityEngine.Quaternion::LookRotation(UnityEngine.Vector3 forward)
IL_00CD: stloc.s 6 (UnityEngine.Quaternion)
IL_00CF: ldloc.s 6 (UnityEngine.Quaternion)
IL_00D1: ldarg.0
IL_00D2: ldfld UnityEngine.Quaternion LightEffect::m_lightRotation
IL_00D7: call static UnityEngine.Vector3 UnityEngine.Vector3::get_forward()
IL_00DC: call static UnityEngine.Vector3
UnityEngine.Quaternion::op_Multiply(UnityEngine.Quaternion rotation,
UnityEngine.Vector3 point)
IL_00E1: call static UnityEngine.Vector3
UnityEngine.Quaternion::op_Multiply(UnityEngine.Quaternion rotation,
UnityEngine.Vector3 point)
IL_00E6: stloc.s 5 (UnityEngine.Vector3)
IL_00E8: br => Label5
IL_00ED: Label4
IL_00ED: call static UnityEngine.Vector3 UnityEngine.Vector3::get_forward()
IL_00F2: stloc.s 5 (UnityEngine.Vector3)
IL_00F4: Label5
IL_00F4: ldloca.s 7 (UnityEngine.Vector4)
IL_00F6: ldloca.s 5 (UnityEngine.Vector3)
IL_00F8: ldfld System.Single UnityEngine.Vector3::x
IL_00FD: ldloca.s 5 (UnityEngine.Vector3)
IL_00FF: ldfld System.Single UnityEngine.Vector3::y
IL_0104: ldloca.s 5 (UnityEngine.Vector3)
IL_0106: ldfld System.Single UnityEngine.Vector3::z
IL_010B: ldc.r4 100000
IL_0110: call System.Void UnityEngine.Vector4::.ctor(System.Single x,
System.Single y, System.Single z, System.Single w)
IL_0115: ldarg.0
IL_0116: ldfld UnityEngine.LightType LightEffect::m_lightType
IL_011B: brtrue => Label6
IL_0120: ldloca.s 7 (UnityEngine.Vector4)
IL_0122: ldc.r4 0.01745329
IL_0127: ldarg.0
IL_0128: ldfld System.Single LightEffect::m_lightSpotAngle
IL_012D: mul
IL_012E: ldc.r4 0.5
IL_0133: mul
IL_0134: call static System.Single UnityEngine.Mathf::Cos(System.Single f)
IL_0139: neg
IL_013A: stfld System.Single UnityEngine.Vector4::w
IL_013F: Label6
IL_013F: ldloca.s 8 (UnityEngine.Vector2)
IL_0141: ldc.r4 1
IL_0146: ldarg.0
IL_0147: ldfld System.Single LightEffect::m_lightRange
IL_014C: ldarg.0
IL_014D: ldfld System.Single LightEffect::m_lightRange
IL_0152: mul
IL_0153: div
IL_0154: ldarg.0
IL_0155: ldfld System.Single LightEffect::m_lightIntensity
IL_015A: call System.Void UnityEngine.Vector2::.ctor(System.Single x,
System.Single y)
IL_015F: ldloca.s 9 (ColossalFramework.Math.Randomizer)
IL_0161: ldarga.s 2
IL_0163: call System.UInt32 InstanceID::get_Index()
IL_0168: call System.Void
ColossalFramework.Math.Randomizer::.ctor(System.UInt32 _seed)
IL_016D: ldloca.s 10 (UnityEngine.Vector2)
IL_016F: ldarg.0
IL_0170: ldflda UnityEngine.Vector2 LightEffect::m_offRange
IL_0175: ldfld System.Single UnityEngine.Vector2::x
IL_017A: ldloca.s 9 (ColossalFramework.Math.Randomizer)
IL_017C: ldc.i4 100000
IL_0181: call System.Int32
ColossalFramework.Math.Randomizer::Int32(System.UInt32 range)
IL_0186: conv.r4
IL_0187: ldc.r4 1E-05
IL_018C: mul
IL_018D: ldarg.0
IL_018E: ldflda UnityEngine.Vector2 LightEffect::m_offRange
IL_0193: ldfld System.Single UnityEngine.Vector2::y
IL_0198: ldarg.0
IL_0199: ldflda UnityEngine.Vector2 LightEffect::m_offRange
IL_019E: ldfld System.Single UnityEngine.Vector2::x
IL_01A3: sub
IL_01A4: mul
IL_01A5: add
IL_01A6: stfld System.Single UnityEngine.Vector2::x
IL_01AB: ldloca.s 10 (UnityEngine.Vector2)
IL_01AD: ldarg.0
IL_01AE: ldfld BlinkType LightEffect::m_blinkType
IL_01B3: conv.r4
IL_01B4: stfld System.Single UnityEngine.Vector2::y
IL_01B9: ldarg.2
IL_01BA: call static System.UInt16 EffectInfo::GetBuilding(InstanceID id)
IL_01BF: stloc.s 13 (System.UInt16)
IL_01C1: ldloc.s 13 (System.UInt16)
IL_01C3: brfalse => Label7
IL_01C8: ldloc.s 13 (System.UInt16)
IL_01CA: call static UnityEngine.Vector4
RenderManager::GetColorLocation(System.UInt32 instanceHolder)
IL_01CF: call static UnityEngine.Vector2
UnityEngine.Vector4::op_Implicit(UnityEngine.Vector4 v)
IL_01D4: stloc.s 11 (UnityEngine.Vector2)
IL_01D6: ldloc.0
IL_01D7: brfalse => Label8
IL_01DC: call static BuildingManager
ColossalFramework.Singleton`1<BuildingManager>::get_instance()
IL_01E1: ldfld Array16`1<Building> BuildingManager::m_buildings
IL_01E6: ldfld Building[] Array16`1<Building>::m_buffer
IL_01EB: ldloc.s 13 (System.UInt16)
IL_01ED: ldelema Building
IL_01F2: call UnityEngine.Vector3 Building::CalculateMeshPosition()
IL_01F7: stloc.s 14 (UnityEngine.Vector3)
IL_01F9: ldloc.s 14 (UnityEngine.Vector3)
IL_01FB: call static UnityEngine.Vector2
ColossalFramework.Math.VectorUtils::XZ(UnityEngine.Vector3 v)
IL_0200: stloc.s 12 (UnityEngine.Vector2)
IL_0202: ldarga.s 3
IL_0204: dup
IL_0205: ldfld System.Single UnityEngine.Vector3::y
IL_020A: ldloca.s 14 (UnityEngine.Vector3)
IL_020C: ldfld System.Single UnityEngine.Vector3::y
IL_0211: sub
IL_0212: stfld System.Single UnityEngine.Vector3::y
IL_0217: ldloca.s 4 (UnityEngine.Vector3)
IL_0219: dup
IL_021A: ldfld System.Single UnityEngine.Vector3::y
IL_021F: ldloca.s 14 (UnityEngine.Vector3)
IL_0221: ldfld System.Single UnityEngine.Vector3::y
IL_0226: sub
IL_0227: stfld System.Single UnityEngine.Vector3::y
IL_022C: br => Label9
IL_0231: Label8
IL_0231: call static UnityEngine.Vector2 UnityEngine.Vector2::get_zero()
IL_0236: stloc.s 12 (UnityEngine.Vector2)
IL_0238: Label9
IL_0238: br => Label10
IL_023D: Label7
IL_023D: ldsfld UnityEngine.Vector4 RenderManager::DefaultColorLocation
IL_0242: call static UnityEngine.Vector2
UnityEngine.Vector4::op_Implicit(UnityEngine.Vector4 v)
IL_0247: stloc.s 11 (UnityEngine.Vector2)
IL_0249: call static UnityEngine.Vector2 UnityEngine.Vector2::get_zero()
IL_024E: stloc.s 12 (UnityEngine.Vector2)
IL_0250: Label10
IL_0250: ldarg.0
IL_0251: ldfld UnityEngine.Color LightEffect::m_lightColor
IL_0256: stloc.s 15 (UnityEngine.Color)
IL_0258: ldarg.0
IL_0259: ldfld UnityEngine.Color[] LightEffect::m_variationColors
IL_025E: brfalse => Label11
IL_0263: ldarg.0
IL_0264: ldfld UnityEngine.Color[] LightEffect::m_variationColors
IL_0269: ldlen
IL_026A: conv.i4
IL_026B: brfalse => Label12
IL_0270: ldarg.0
IL_0271: ldfld UnityEngine.Color[] LightEffect::m_variationColors
IL_0276: ldloca.s 9 (ColossalFramework.Math.Randomizer)
IL_0278: ldarg.0
IL_0279: ldfld UnityEngine.Color[] LightEffect::m_variationColors
IL_027E: ldlen
IL_027F: conv.i4
IL_0280: call System.Int32
ColossalFramework.Math.Randomizer::Int32(System.UInt32 range)
IL_0285: ldelema UnityEngine.Color
IL_028A: ldobj UnityEngine.Color
IL_028F: stloc.s 16 (UnityEngine.Color)
IL_0291: ldloc.s 15 (UnityEngine.Color)
IL_0293: ldloc.s 16 (UnityEngine.Color)
IL_0295: ldloca.s 9 (ColossalFramework.Math.Randomizer)
IL_0297: ldc.i4 1000
IL_029C: call System.Int32
ColossalFramework.Math.Randomizer::Int32(System.UInt32 range)
IL_02A1: conv.r4
IL_02A2: ldc.r4 0.001
IL_02A7: mul
IL_02A8: call static UnityEngine.Color
UnityEngine.Color::Lerp(UnityEngine.Color a, UnityEngine.Color b, System.Single t)
IL_02AD: stloc.s 15 (UnityEngine.Color)
IL_02AF: Label11
IL_02AF: Label12
IL_02AF: ldloca.s 15 (UnityEngine.Color)
IL_02B1: call UnityEngine.Color UnityEngine.Color::get_linear()
IL_02B6: stloc.s 15 (UnityEngine.Color)
IL_02B8: ldloca.s 15 (UnityEngine.Color)
IL_02BA: ldarg.0
IL_02BB: ldfld UnityEngine.LightType LightEffect::m_lightType
IL_02C0: brtrue => Label13
IL_02C5: ldarg.0
IL_02C6: ldfld System.Single LightEffect::m_spotLeaking
IL_02CB: br => Label14
IL_02D0: Label13
IL_02D0: ldc.r4 0
IL_02D5: Label14
IL_02D5: stfld System.Single UnityEngine.Color::a
IL_02DA: ldarg.0
IL_02DB: ldfld System.Single LightEffect::m_lightRange
IL_02E0: ldc.r4 0.5235988
IL_02E5: call static System.Single UnityEngine.Mathf::Cos(System.Single f)
IL_02EA: div
IL_02EB: stloc.s 17 (System.Single)
IL_02ED: ldloc.s 17 (System.Single)
IL_02EF: ldc.r4 0.5
IL_02F4: mul
IL_02F5: stloc.s 18 (System.Single)
IL_02F7: ldarg.s 8
IL_02F9: ldfld UnityEngine.Vector3[] MeshData::m_vertices
IL_02FE: ldarg.s 5
IL_0300: ldind.i4
IL_0301: ldelema UnityEngine.Vector3
IL_0306: ldloca.s 4 (UnityEngine.Vector3)
IL_0308: ldfld System.Single UnityEngine.Vector3::x
IL_030D: ldloc.s 18 (System.Single)
IL_030F: sub
IL_0310: ldloca.s 4 (UnityEngine.Vector3)
IL_0312: ldfld System.Single UnityEngine.Vector3::y
IL_0317: ldarg.0
IL_0318: ldfld System.Single LightEffect::m_lightRange
IL_031D: add
IL_031E: ldloca.s 4 (UnityEngine.Vector3)
IL_0320: ldfld System.Single UnityEngine.Vector3::z
IL_0325: ldarg.0
IL_0326: ldfld System.Single LightEffect::m_lightRange
IL_032B: add
IL_032C: newobj System.Void UnityEngine.Vector3::.ctor(System.Single x,
System.Single y, System.Single z)
IL_0331: stobj UnityEngine.Vector3
IL_0336: ldarg.s 8
IL_0338: ldfld UnityEngine.Vector3[] MeshData::m_normals
IL_033D: ldarg.s 5
IL_033F: ldind.i4
IL_0340: ldelema UnityEngine.Vector3
IL_0345: ldarg.3
IL_0346: stobj UnityEngine.Vector3
IL_034B: ldarg.s 8
IL_034D: ldfld UnityEngine.Vector4[] MeshData::m_tangents
IL_0352: ldarg.s 5
IL_0354: ldind.i4
IL_0355: ldelema UnityEngine.Vector4
IL_035A: ldloc.s 7 (UnityEngine.Vector4)
IL_035C: stobj UnityEngine.Vector4
IL_0361: ldarg.s 8
IL_0363: ldfld UnityEngine.Vector2[] MeshData::m_uvs
IL_0368: ldarg.s 5
IL_036A: ldind.i4
IL_036B: ldelema UnityEngine.Vector2
IL_0370: ldloc.s 8 (UnityEngine.Vector2)
IL_0372: stobj UnityEngine.Vector2
IL_0377: ldarg.s 8
IL_0379: ldfld UnityEngine.Vector2[] MeshData::m_uvs2
IL_037E: ldarg.s 5
IL_0380: ldind.i4
IL_0381: ldelema UnityEngine.Vector2
IL_0386: ldloc.s 10 (UnityEngine.Vector2)
IL_0388: stobj UnityEngine.Vector2
IL_038D: ldarg.s 8
IL_038F: ldfld UnityEngine.Vector2[] MeshData::m_uvs3
IL_0394: ldarg.s 5
IL_0396: ldind.i4
IL_0397: ldelema UnityEngine.Vector2
IL_039C: ldloc.s 11 (UnityEngine.Vector2)
IL_039E: stobj UnityEngine.Vector2
IL_03A3: ldloc.0
IL_03A4: brfalse => Label15
IL_03A9: ldarg.s 8
IL_03AB: ldfld UnityEngine.Vector2[] MeshData::m_uvs4
IL_03B0: ldarg.s 5
IL_03B2: ldind.i4
IL_03B3: ldelema UnityEngine.Vector2
IL_03B8: ldloc.s 12 (UnityEngine.Vector2)
IL_03BA: stobj UnityEngine.Vector2
IL_03BF: Label15
IL_03BF: ldarg.s 8
IL_03C1: ldfld UnityEngine.Color32[] MeshData::m_colors
IL_03C6: ldarg.s 5
IL_03C8: ldind.i4
IL_03C9: ldelema UnityEngine.Color32
IL_03CE: ldloc.s 15 (UnityEngine.Color)
IL_03D0: call static UnityEngine.Color32
UnityEngine.Color32::op_Implicit(UnityEngine.Color c)
IL_03D5: stobj UnityEngine.Color32
IL_03DA: ldarg.s 5
IL_03DC: ldarg.s 5
IL_03DE: ldind.i4
IL_03DF: ldc.i4.1
IL_03E0: add
IL_03E1: stind.i4
IL_03E2: ldarg.s 8
IL_03E4: ldfld UnityEngine.Vector3[] MeshData::m_vertices
IL_03E9: ldarg.s 5
IL_03EB: ldind.i4
IL_03EC: ldelema UnityEngine.Vector3
IL_03F1: ldloca.s 4 (UnityEngine.Vector3)
IL_03F3: ldfld System.Single UnityEngine.Vector3::x
IL_03F8: ldloc.s 18 (System.Single)
IL_03FA: add
IL_03FB: ldloca.s 4 (UnityEngine.Vector3)
IL_03FD: ldfld System.Single UnityEngine.Vector3::y
IL_0402: ldarg.0
IL_0403: ldfld System.Single LightEffect::m_lightRange
IL_0408: add
IL_0409: ldloca.s 4 (UnityEngine.Vector3)
IL_040B: ldfld System.Single UnityEngine.Vector3::z
IL_0410: ldarg.0
IL_0411: ldfld System.Single LightEffect::m_lightRange
IL_0416: add
IL_0417: newobj System.Void UnityEngine.Vector3::.ctor(System.Single x,
System.Single y, System.Single z)
IL_041C: stobj UnityEngine.Vector3
IL_0421: ldarg.s 8
IL_0423: ldfld UnityEngine.Vector3[] MeshData::m_normals
IL_0428: ldarg.s 5
IL_042A: ldind.i4
IL_042B: ldelema UnityEngine.Vector3
IL_0430: ldarg.3
IL_0431: stobj UnityEngine.Vector3
IL_0436: ldarg.s 8
IL_0438: ldfld UnityEngine.Vector4[] MeshData::m_tangents
IL_043D: ldarg.s 5
IL_043F: ldind.i4
IL_0440: ldelema UnityEngine.Vector4
IL_0445: ldloc.s 7 (UnityEngine.Vector4)
IL_0447: stobj UnityEngine.Vector4
IL_044C: ldarg.s 8
IL_044E: ldfld UnityEngine.Vector2[] MeshData::m_uvs
IL_0453: ldarg.s 5
IL_0455: ldind.i4
IL_0456: ldelema UnityEngine.Vector2
IL_045B: ldloc.s 8 (UnityEngine.Vector2)
IL_045D: stobj UnityEngine.Vector2
IL_0462: ldarg.s 8
IL_0464: ldfld UnityEngine.Vector2[] MeshData::m_uvs2
IL_0469: ldarg.s 5
IL_046B: ldind.i4
IL_046C: ldelema UnityEngine.Vector2
IL_0471: ldloc.s 10 (UnityEngine.Vector2)
IL_0473: stobj UnityEngine.Vector2
IL_0478: ldarg.s 8
IL_047A: ldfld UnityEngine.Vector2[] MeshData::m_uvs3
IL_047F: ldarg.s 5
IL_0481: ldind.i4
IL_0482: ldelema UnityEngine.Vector2
IL_0487: ldloc.s 11 (UnityEngine.Vector2)
IL_0489: stobj UnityEngine.Vector2
IL_048E: ldloc.0
IL_048F: brfalse => Label16
IL_0494: ldarg.s 8
IL_0496: ldfld UnityEngine.Vector2[] MeshData::m_uvs4
IL_049B: ldarg.s 5
IL_049D: ldind.i4
IL_049E: ldelema UnityEngine.Vector2
IL_04A3: ldloc.s 12 (UnityEngine.Vector2)
IL_04A5: stobj UnityEngine.Vector2
IL_04AA: Label16
IL_04AA: ldarg.s 8
IL_04AC: ldfld UnityEngine.Color32[] MeshData::m_colors
IL_04B1: ldarg.s 5
IL_04B3: ldind.i4
IL_04B4: ldelema UnityEngine.Color32
IL_04B9: ldloc.s 15 (UnityEngine.Color)
IL_04BB: call static UnityEngine.Color32
UnityEngine.Color32::op_Implicit(UnityEngine.Color c)
IL_04C0: stobj UnityEngine.Color32
IL_04C5: ldarg.s 5
IL_04C7: ldarg.s 5
IL_04C9: ldind.i4
IL_04CA: ldc.i4.1
IL_04CB: add
IL_04CC: stind.i4
IL_04CD: ldarg.s 8
IL_04CF: ldfld UnityEngine.Vector3[] MeshData::m_vertices
IL_04D4: ldarg.s 5
IL_04D6: ldind.i4
IL_04D7: ldelema UnityEngine.Vector3
IL_04DC: ldloca.s 4 (UnityEngine.Vector3)
IL_04DE: ldfld System.Single UnityEngine.Vector3::x
IL_04E3: ldloc.s 17 (System.Single)
IL_04E5: add
IL_04E6: ldloca.s 4 (UnityEngine.Vector3)
IL_04E8: ldfld System.Single UnityEngine.Vector3::y
IL_04ED: ldloca.s 4 (UnityEngine.Vector3)
IL_04EF: ldfld System.Single UnityEngine.Vector3::z
IL_04F4: ldarg.0
IL_04F5: ldfld System.Single LightEffect::m_lightRange
IL_04FA: add
IL_04FB: newobj System.Void UnityEngine.Vector3::.ctor(System.Single x,
System.Single y, System.Single z)
IL_0500: stobj UnityEngine.Vector3
IL_0505: ldarg.s 8
IL_0507: ldfld UnityEngine.Vector3[] MeshData::m_normals
IL_050C: ldarg.s 5
IL_050E: ldind.i4
IL_050F: ldelema UnityEngine.Vector3
IL_0514: ldarg.3
IL_0515: stobj UnityEngine.Vector3
IL_051A: ldarg.s 8
IL_051C: ldfld UnityEngine.Vector4[] MeshData::m_tangents
IL_0521: ldarg.s 5
IL_0523: ldind.i4
IL_0524: ldelema UnityEngine.Vector4
IL_0529: ldloc.s 7 (UnityEngine.Vector4)
IL_052B: stobj UnityEngine.Vector4
IL_0530: ldarg.s 8
IL_0532: ldfld UnityEngine.Vector2[] MeshData::m_uvs
IL_0537: ldarg.s 5
IL_0539: ldind.i4
IL_053A: ldelema UnityEngine.Vector2
IL_053F: ldloc.s 8 (UnityEngine.Vector2)
IL_0541: stobj UnityEngine.Vector2
IL_0546: ldarg.s 8
IL_0548: ldfld UnityEngine.Vector2[] MeshData::m_uvs2
IL_054D: ldarg.s 5
IL_054F: ldind.i4
IL_0550: ldelema UnityEngine.Vector2
IL_0555: ldloc.s 10 (UnityEngine.Vector2)
IL_0557: stobj UnityEngine.Vector2
IL_055C: ldarg.s 8
IL_055E: ldfld UnityEngine.Vector2[] MeshData::m_uvs3
IL_0563: ldarg.s 5
IL_0565: ldind.i4
IL_0566: ldelema UnityEngine.Vector2
IL_056B: ldloc.s 11 (UnityEngine.Vector2)
IL_056D: stobj UnityEngine.Vector2
IL_0572: ldloc.0
IL_0573: brfalse => Label17
IL_0578: ldarg.s 8
IL_057A: ldfld UnityEngine.Vector2[] MeshData::m_uvs4
IL_057F: ldarg.s 5
IL_0581: ldind.i4
IL_0582: ldelema UnityEngine.Vector2
IL_0587: ldloc.s 12 (UnityEngine.Vector2)
IL_0589: stobj UnityEngine.Vector2
IL_058E: Label17
IL_058E: ldarg.s 8
IL_0590: ldfld UnityEngine.Color32[] MeshData::m_colors
IL_0595: ldarg.s 5
IL_0597: ldind.i4
IL_0598: ldelema UnityEngine.Color32
IL_059D: ldloc.s 15 (UnityEngine.Color)
IL_059F: call static UnityEngine.Color32
UnityEngine.Color32::op_Implicit(UnityEngine.Color c)
IL_05A4: stobj UnityEngine.Color32
IL_05A9: ldarg.s 5
IL_05AB: ldarg.s 5
IL_05AD: ldind.i4
IL_05AE: ldc.i4.1
IL_05AF: add
IL_05B0: stind.i4
IL_05B1: ldarg.s 8
IL_05B3: ldfld UnityEngine.Vector3[] MeshData::m_vertices
IL_05B8: ldarg.s 5
IL_05BA: ldind.i4
IL_05BB: ldelema UnityEngine.Vector3
IL_05C0: ldloca.s 4 (UnityEngine.Vector3)
IL_05C2: ldfld System.Single UnityEngine.Vector3::x
IL_05C7: ldloc.s 18 (System.Single)
IL_05C9: add
IL_05CA: ldloca.s 4 (UnityEngine.Vector3)
IL_05CC: ldfld System.Single UnityEngine.Vector3::y
IL_05D1: ldarg.0
IL_05D2: ldfld System.Single LightEffect::m_lightRange
IL_05D7: sub
IL_05D8: ldloca.s 4 (UnityEngine.Vector3)
IL_05DA: ldfld System.Single UnityEngine.Vector3::z
IL_05DF: ldarg.0
IL_05E0: ldfld System.Single LightEffect::m_lightRange
IL_05E5: add
IL_05E6: newobj System.Void UnityEngine.Vector3::.ctor(System.Single x,
System.Single y, System.Single z)
IL_05EB: stobj UnityEngine.Vector3
IL_05F0: ldarg.s 8
IL_05F2: ldfld UnityEngine.Vector3[] MeshData::m_normals
IL_05F7: ldarg.s 5
IL_05F9: ldind.i4
IL_05FA: ldelema UnityEngine.Vector3
IL_05FF: ldarg.3
IL_0600: stobj UnityEngine.Vector3
IL_0605: ldarg.s 8
IL_0607: ldfld UnityEngine.Vector4[] MeshData::m_tangents
IL_060C: ldarg.s 5
IL_060E: ldind.i4
IL_060F: ldelema UnityEngine.Vector4
IL_0614: ldloc.s 7 (UnityEngine.Vector4)
IL_0616: stobj UnityEngine.Vector4
IL_061B: ldarg.s 8
IL_061D: ldfld UnityEngine.Vector2[] MeshData::m_uvs
IL_0622: ldarg.s 5
IL_0624: ldind.i4
IL_0625: ldelema UnityEngine.Vector2
IL_062A: ldloc.s 8 (UnityEngine.Vector2)
IL_062C: stobj UnityEngine.Vector2
IL_0631: ldarg.s 8
IL_0633: ldfld UnityEngine.Vector2[] MeshData::m_uvs2
IL_0638: ldarg.s 5
IL_063A: ldind.i4
IL_063B: ldelema UnityEngine.Vector2
IL_0640: ldloc.s 10 (UnityEngine.Vector2)
IL_0642: stobj UnityEngine.Vector2
IL_0647: ldarg.s 8
IL_0649: ldfld UnityEngine.Vector2[] MeshData::m_uvs3
IL_064E: ldarg.s 5
IL_0650: ldind.i4
IL_0651: ldelema UnityEngine.Vector2
IL_0656: ldloc.s 11 (UnityEngine.Vector2)
IL_0658: stobj UnityEngine.Vector2
IL_065D: ldloc.0
IL_065E: brfalse => Label18
IL_0663: ldarg.s 8
IL_0665: ldfld UnityEngine.Vector2[] MeshData::m_uvs4
IL_066A: ldarg.s 5
IL_066C: ldind.i4
IL_066D: ldelema UnityEngine.Vector2
IL_0672: ldloc.s 12 (UnityEngine.Vector2)
IL_0674: stobj UnityEngine.Vector2
IL_0679: Label18
IL_0679: ldarg.s 8
IL_067B: ldfld UnityEngine.Color32[] MeshData::m_colors
IL_0680: ldarg.s 5
IL_0682: ldind.i4
IL_0683: ldelema UnityEngine.Color32
IL_0688: ldloc.s 15 (UnityEngine.Color)
IL_068A: call static UnityEngine.Color32
UnityEngine.Color32::op_Implicit(UnityEngine.Color c)
IL_068F: stobj UnityEngine.Color32
IL_0694: ldarg.s 5
IL_0696: ldarg.s 5
IL_0698: ldind.i4
IL_0699: ldc.i4.1
IL_069A: add
IL_069B: stind.i4
IL_069C: ldarg.s 8
IL_069E: ldfld UnityEngine.Vector3[] MeshData::m_vertices
IL_06A3: ldarg.s 5
IL_06A5: ldind.i4
IL_06A6: ldelema UnityEngine.Vector3
IL_06AB: ldloca.s 4 (UnityEngine.Vector3)
IL_06AD: ldfld System.Single UnityEngine.Vector3::x
IL_06B2: ldloc.s 18 (System.Single)
IL_06B4: sub
IL_06B5: ldloca.s 4 (UnityEngine.Vector3)
IL_06B7: ldfld System.Single UnityEngine.Vector3::y
IL_06BC: ldarg.0
IL_06BD: ldfld System.Single LightEffect::m_lightRange
IL_06C2: sub
IL_06C3: ldloca.s 4 (UnityEngine.Vector3)
IL_06C5: ldfld System.Single UnityEngine.Vector3::z
IL_06CA: ldarg.0
IL_06CB: ldfld System.Single LightEffect::m_lightRange
IL_06D0: add
IL_06D1: newobj System.Void UnityEngine.Vector3::.ctor(System.Single x,
System.Single y, System.Single z)
IL_06D6: stobj UnityEngine.Vector3
IL_06DB: ldarg.s 8
IL_06DD: ldfld UnityEngine.Vector3[] MeshData::m_normals
IL_06E2: ldarg.s 5
IL_06E4: ldind.i4
IL_06E5: ldelema UnityEngine.Vector3
IL_06EA: ldarg.3
IL_06EB: stobj UnityEngine.Vector3
IL_06F0: ldarg.s 8
IL_06F2: ldfld UnityEngine.Vector4[] MeshData::m_tangents
IL_06F7: ldarg.s 5
IL_06F9: ldind.i4
IL_06FA: ldelema UnityEngine.Vector4
IL_06FF: ldloc.s 7 (UnityEngine.Vector4)
IL_0701: stobj UnityEngine.Vector4
IL_0706: ldarg.s 8
IL_0708: ldfld UnityEngine.Vector2[] MeshData::m_uvs
IL_070D: ldarg.s 5
IL_070F: ldind.i4
IL_0710: ldelema UnityEngine.Vector2
IL_0715: ldloc.s 8 (UnityEngine.Vector2)
IL_0717: stobj UnityEngine.Vector2
IL_071C: ldarg.s 8
IL_071E: ldfld UnityEngine.Vector2[] MeshData::m_uvs2
IL_0723: ldarg.s 5
IL_0725: ldind.i4
IL_0726: ldelema UnityEngine.Vector2
IL_072B: ldloc.s 10 (UnityEngine.Vector2)
IL_072D: stobj UnityEngine.Vector2
IL_0732: ldarg.s 8
IL_0734: ldfld UnityEngine.Vector2[] MeshData::m_uvs3
IL_0739: ldarg.s 5
IL_073B: ldind.i4
IL_073C: ldelema UnityEngine.Vector2
IL_0741: ldloc.s 11 (UnityEngine.Vector2)
IL_0743: stobj UnityEngine.Vector2
IL_0748: ldloc.0
IL_0749: brfalse => Label19
IL_074E: ldarg.s 8
IL_0750: ldfld UnityEngine.Vector2[] MeshData::m_uvs4
IL_0755: ldarg.s 5
IL_0757: ldind.i4
IL_0758: ldelema UnityEngine.Vector2
IL_075D: ldloc.s 12 (UnityEngine.Vector2)
IL_075F: stobj UnityEngine.Vector2
IL_0764: Label19
IL_0764: ldarg.s 8
IL_0766: ldfld UnityEngine.Color32[] MeshData::m_colors
IL_076B: ldarg.s 5
IL_076D: ldind.i4
IL_076E: ldelema UnityEngine.Color32
IL_0773: ldloc.s 15 (UnityEngine.Color)
IL_0775: call static UnityEngine.Color32
UnityEngine.Color32::op_Implicit(UnityEngine.Color c)
IL_077A: stobj UnityEngine.Color32
IL_077F: ldarg.s 5
IL_0781: ldarg.s 5
IL_0783: ldind.i4
IL_0784: ldc.i4.1
IL_0785: add
IL_0786: stind.i4
IL_0787: ldarg.s 8
IL_0789: ldfld UnityEngine.Vector3[] MeshData::m_vertices
IL_078E: ldarg.s 5
IL_0790: ldind.i4
IL_0791: ldelema UnityEngine.Vector3
IL_0796: ldloca.s 4 (UnityEngine.Vector3)
IL_0798: ldfld System.Single UnityEngine.Vector3::x
IL_079D: ldloc.s 17 (System.Single)
IL_079F: sub
IL_07A0: ldloca.s 4 (UnityEngine.Vector3)
IL_07A2: ldfld System.Single UnityEngine.Vector3::y
IL_07A7: ldloca.s 4 (UnityEngine.Vector3)
IL_07A9: ldfld System.Single UnityEngine.Vector3::z
IL_07AE: ldarg.0
IL_07AF: ldfld System.Single LightEffect::m_lightRange
IL_07B4: add
IL_07B5: newobj System.Void UnityEngine.Vector3::.ctor(System.Single x,
System.Single y, System.Single z)
IL_07BA: stobj UnityEngine.Vector3
IL_07BF: ldarg.s 8
IL_07C1: ldfld UnityEngine.Vector3[] MeshData::m_normals
IL_07C6: ldarg.s 5
IL_07C8: ldind.i4
IL_07C9: ldelema UnityEngine.Vector3
IL_07CE: ldarg.3
IL_07CF: stobj UnityEngine.Vector3
IL_07D4: ldarg.s 8
IL_07D6: ldfld UnityEngine.Vector4[] MeshData::m_tangents
IL_07DB: ldarg.s 5
IL_07DD: ldind.i4
IL_07DE: ldelema UnityEngine.Vector4
IL_07E3: ldloc.s 7 (UnityEngine.Vector4)
IL_07E5: stobj UnityEngine.Vector4
IL_07EA: ldarg.s 8
IL_07EC: ldfld UnityEngine.Vector2[] MeshData::m_uvs
IL_07F1: ldarg.s 5
IL_07F3: ldind.i4
IL_07F4: ldelema UnityEngine.Vector2
IL_07F9: ldloc.s 8 (UnityEngine.Vector2)
IL_07FB: stobj UnityEngine.Vector2
IL_0800: ldarg.s 8
IL_0802: ldfld UnityEngine.Vector2[] MeshData::m_uvs2
IL_0807: ldarg.s 5
IL_0809: ldind.i4
IL_080A: ldelema UnityEngine.Vector2
IL_080F: ldloc.s 10 (UnityEngine.Vector2)
IL_0811: stobj UnityEngine.Vector2
IL_0816: ldarg.s 8
IL_0818: ldfld UnityEngine.Vector2[] MeshData::m_uvs3
IL_081D: ldarg.s 5
IL_081F: ldind.i4
IL_0820: ldelema UnityEngine.Vector2
IL_0825: ldloc.s 11 (UnityEngine.Vector2)
IL_0827: stobj UnityEngine.Vector2
IL_082C: ldloc.0
IL_082D: brfalse => Label20
IL_0832: ldarg.s 8
IL_0834: ldfld UnityEngine.Vector2[] MeshData::m_uvs4
IL_0839: ldarg.s 5
IL_083B: ldind.i4
IL_083C: ldelema UnityEngine.Vector2
IL_0841: ldloc.s 12 (UnityEngine.Vector2)
IL_0843: stobj UnityEngine.Vector2
IL_0848: Label20
IL_0848: ldarg.s 8
IL_084A: ldfld UnityEngine.Color32[] MeshData::m_colors
IL_084F: ldarg.s 5
IL_0851: ldind.i4
IL_0852: ldelema UnityEngine.Color32
IL_0857: ldloc.s 15 (UnityEngine.Color)
IL_0859: call static UnityEngine.Color32
UnityEngine.Color32::op_Implicit(UnityEngine.Color c)
IL_085E: stobj UnityEngine.Color32
IL_0863: ldarg.s 5
IL_0865: ldarg.s 5
IL_0867: ldind.i4
IL_0868: ldc.i4.1
IL_0869: add
IL_086A: stind.i4
IL_086B: ldarg.s 8
IL_086D: ldfld System.Int32[] MeshData::m_triangles
IL_0872: ldarg.s 6
IL_0874: ldarg.s 6
IL_0876: ldind.i4
IL_0877: dup
IL_0878: stloc.s 19 (System.Int32)
IL_087A: ldc.i4.1
IL_087B: add
IL_087C: stind.i4
IL_087D: ldloc.s 19 (System.Int32)
IL_087F: ldarg.s 5
IL_0881: ldind.i4
IL_0882: ldc.i4.6
IL_0883: sub
IL_0884: stelem.i4
IL_0885: ldarg.s 8
IL_0887: ldfld System.Int32[] MeshData::m_triangles
IL_088C: ldarg.s 6
IL_088E: ldarg.s 6
IL_0890: ldind.i4
IL_0891: dup
IL_0892: stloc.s 19 (System.Int32)
IL_0894: ldc.i4.1
IL_0895: add
IL_0896: stind.i4
IL_0897: ldloc.s 19 (System.Int32)
IL_0899: ldarg.s 5
IL_089B: ldind.i4
IL_089C: ldc.i4.5
IL_089D: sub
IL_089E: stelem.i4
IL_089F: ldarg.s 8
IL_08A1: ldfld System.Int32[] MeshData::m_triangles
IL_08A6: ldarg.s 6
IL_08A8: ldarg.s 6
IL_08AA: ldind.i4
IL_08AB: dup
IL_08AC: stloc.s 19 (System.Int32)
IL_08AE: ldc.i4.1
IL_08AF: add
IL_08B0: stind.i4
IL_08B1: ldloc.s 19 (System.Int32)
IL_08B3: ldarg.s 5
IL_08B5: ldind.i4
IL_08B6: ldc.i4.1
IL_08B7: sub
IL_08B8: stelem.i4
IL_08B9: ldarg.s 8
IL_08BB: ldfld System.Int32[] MeshData::m_triangles
IL_08C0: ldarg.s 6
IL_08C2: ldarg.s 6
IL_08C4: ldind.i4
IL_08C5: dup
IL_08C6: stloc.s 19 (System.Int32)
IL_08C8: ldc.i4.1
IL_08C9: add
IL_08CA: stind.i4
IL_08CB: ldloc.s 19 (System.Int32)
IL_08CD: ldarg.s 5
IL_08CF: ldind.i4
IL_08D0: ldc.i4.1
IL_08D1: sub
IL_08D2: stelem.i4
IL_08D3: ldarg.s 8
IL_08D5: ldfld System.Int32[] MeshData::m_triangles
IL_08DA: ldarg.s 6
IL_08DC: ldarg.s 6
IL_08DE: ldind.i4
IL_08DF: dup
IL_08E0: stloc.s 19 (System.Int32)
IL_08E2: ldc.i4.1
IL_08E3: add
IL_08E4: stind.i4
IL_08E5: ldloc.s 19 (System.Int32)
IL_08E7: ldarg.s 5
IL_08E9: ldind.i4
IL_08EA: ldc.i4.5
IL_08EB: sub
IL_08EC: stelem.i4
IL_08ED: ldarg.s 8
IL_08EF: ldfld System.Int32[] MeshData::m_triangles
IL_08F4: ldarg.s 6
IL_08F6: ldarg.s 6
IL_08F8: ldind.i4
IL_08F9: dup
IL_08FA: stloc.s 19 (System.Int32)
IL_08FC: ldc.i4.1
IL_08FD: add
IL_08FE: stind.i4
IL_08FF: ldloc.s 19 (System.Int32)
IL_0901: ldarg.s 5
IL_0903: ldind.i4
IL_0904: ldc.i4.4
IL_0905: sub
IL_0906: stelem.i4
IL_0907: ldarg.s 8
IL_0909: ldfld System.Int32[] MeshData::m_triangles
IL_090E: ldarg.s 6
IL_0910: ldarg.s 6
IL_0912: ldind.i4
IL_0913: dup
IL_0914: stloc.s 19 (System.Int32)
IL_0916: ldc.i4.1
IL_0917: add
IL_0918: stind.i4
IL_0919: ldloc.s 19 (System.Int32)
IL_091B: ldarg.s 5
IL_091D: ldind.i4
IL_091E: ldc.i4.1
IL_091F: sub
IL_0920: stelem.i4
IL_0921: ldarg.s 8
IL_0923: ldfld System.Int32[] MeshData::m_triangles
IL_0928: ldarg.s 6
IL_092A: ldarg.s 6
IL_092C: ldind.i4
IL_092D: dup
IL_092E: stloc.s 19 (System.Int32)
IL_0930: ldc.i4.1
IL_0931: add
IL_0932: stind.i4
IL_0933: ldloc.s 19 (System.Int32)
IL_0935: ldarg.s 5
IL_0937: ldind.i4
IL_0938: ldc.i4.4
IL_0939: sub
IL_093A: stelem.i4
IL_093B: ldarg.s 8
IL_093D: ldfld System.Int32[] MeshData::m_triangles
IL_0942: ldarg.s 6
IL_0944: ldarg.s 6
IL_0946: ldind.i4
IL_0947: dup
IL_0948: stloc.s 19 (System.Int32)
IL_094A: ldc.i4.1
IL_094B: add
IL_094C: stind.i4
IL_094D: ldloc.s 19 (System.Int32)
IL_094F: ldarg.s 5
IL_0951: ldind.i4
IL_0952: ldc.i4.2
IL_0953: sub
IL_0954: stelem.i4
IL_0955: ldarg.s 8
IL_0957: ldfld System.Int32[] MeshData::m_triangles
IL_095C: ldarg.s 6
IL_095E: ldarg.s 6
IL_0960: ldind.i4
IL_0961: dup
IL_0962: stloc.s 19 (System.Int32)
IL_0964: ldc.i4.1
IL_0965: add
IL_0966: stind.i4
IL_0967: ldloc.s 19 (System.Int32)
IL_0969: ldarg.s 5
IL_096B: ldind.i4
IL_096C: ldc.i4.2
IL_096D: sub
IL_096E: stelem.i4
IL_096F: ldarg.s 8
IL_0971: ldfld System.Int32[] MeshData::m_triangles
IL_0976: ldarg.s 6
IL_0978: ldarg.s 6
IL_097A: ldind.i4
IL_097B: dup
IL_097C: stloc.s 19 (System.Int32)
IL_097E: ldc.i4.1
IL_097F: add
IL_0980: stind.i4
IL_0981: ldloc.s 19 (System.Int32)
IL_0983: ldarg.s 5
IL_0985: ldind.i4
IL_0986: ldc.i4.4
IL_0987: sub
IL_0988: stelem.i4
IL_0989: ldarg.s 8
IL_098B: ldfld System.Int32[] MeshData::m_triangles
IL_0990: ldarg.s 6
IL_0992: ldarg.s 6
IL_0994: ldind.i4
IL_0995: dup
IL_0996: stloc.s 19 (System.Int32)
IL_0998: ldc.i4.1
IL_0999: add
IL_099A: stind.i4
IL_099B: ldloc.s 19 (System.Int32)
IL_099D: ldarg.s 5
IL_099F: ldind.i4
IL_09A0: ldc.i4.3
IL_09A1: sub
IL_09A2: stelem.i4
IL_09A3: // end original
IL_09A3: Label3
IL_09A3: Label0
IL_09A3: ret
DONE

### Patch: virtual System.Void ElectricityManager::SimulationStepImpl(System.Int32


subStep)
### Replacement: static System.Void
ElectricityManager::ElectricityManager.SimulationStepImpl_Patch0(ElectricityManager
this, System.Int32 subStep)
IL_0000: Local var 0: System.UInt32
IL_0000: Local var 1: System.Int32
IL_0000: Local var 2: NetManager
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: NetInfo
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: ElectricityManager/Cell
IL_0000: Local var 13: ElectricityManager/PulseGroup
IL_0000: Local var 14: ElectricityManager/PulseUnit
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: ElectricityManager/PulseUnit
IL_0000: Local var 19: System.UInt32
IL_0000: Local var 20: System.Int32
IL_0000: Local var 21: ElectricityManager/Cell
IL_0000: Local var 22: System.Int32
IL_0000: Local var 23: System.Int32
IL_0000: Local var 24: NetNode
IL_0000: Local var 25: System.Int32
IL_0000: Local var 26: System.UInt16
IL_0000: Local var 27: System.UInt16
IL_0000: Local var 28: System.UInt16
IL_0000: Local var 29: System.UInt16
IL_0000: Local var 30: System.Int32
IL_0000: Local var 31: ElectricityManager/PulseGroup
IL_0000: Local var 32: ElectricityManager/PulseGroup
IL_0000: Local var 33: System.Int32
IL_0000: Local var 34: ElectricityManager/PulseGroup
IL_0000: Local var 35: System.Int32
IL_0000: Local var 36: ElectricityManager/Cell
IL_0000: // start original
IL_0000: ldarg.1
IL_0001: brfalse => Label0
IL_0006: ldarg.1
IL_0007: ldc.i4 1000
IL_000C: beq => Label1
IL_0011: call static SimulationManager
ColossalFramework.Singleton`1<SimulationManager>::get_instance()
IL_0016: ldfld System.UInt32 SimulationManager::m_currentFrameIndex
IL_001B: stloc.0
IL_001C: ldloc.0
IL_001D: ldc.i4 255
IL_0022: and
IL_0023: stloc.1
IL_0024: ldloc.1
IL_0025: ldc.i4 128
IL_002A: bge => Label2
IL_002F: ldloc.1
IL_0030: brtrue => Label3
IL_0035: ldarg.0
IL_0036: ldc.i4.0
IL_0037: stfld System.Int32 ElectricityManager::m_pulseGroupCount
IL_003C: ldarg.0
IL_003D: ldc.i4.0
IL_003E: stfld System.Int32 ElectricityManager::m_pulseUnitStart
IL_0043: ldarg.0
IL_0044: ldc.i4.0
IL_0045: stfld System.Int32 ElectricityManager::m_pulseUnitEnd
IL_004A: ldarg.0
IL_004B: ldc.i4.0
IL_004C: stfld System.Int32 ElectricityManager::m_processedCells
IL_0051: ldarg.0
IL_0052: ldc.i4.0
IL_0053: stfld System.Int32 ElectricityManager::m_conductiveCells
IL_0058: ldarg.0
IL_0059: ldc.i4.1
IL_005A: stfld System.Boolean ElectricityManager::m_canContinue
IL_005F: Label3
IL_005F: call static NetManager
ColossalFramework.Singleton`1<NetManager>::get_instance()
IL_0064: stloc.2
IL_0065: ldloc.1
IL_0066: ldc.i4 32768
IL_006B: mul
IL_006C: ldc.i4.7
IL_006D: shr
IL_006E: stloc.3
IL_006F: ldloc.1
IL_0070: ldc.i4.1
IL_0071: add
IL_0072: ldc.i4 32768
IL_0077: mul
IL_0078: ldc.i4.7
IL_0079: shr
IL_007A: ldc.i4.1
IL_007B: sub
IL_007C: stloc.s 4 (System.Int32)
IL_007E: ldloc.3
IL_007F: stloc.s 5 (System.Int32)
IL_0081: br => Label4
IL_0086: Label10
IL_0086: ldloc.2
IL_0087: ldfld Array16`1<NetNode> NetManager::m_nodes
IL_008C: ldfld NetNode[] Array16`1<NetNode>::m_buffer
IL_0091: ldloc.s 5 (System.Int32)
IL_0093: ldelema NetNode
IL_0098: ldfld Flags NetNode::m_flags
IL_009D: brfalse => Label5
IL_00A2: ldloc.2
IL_00A3: ldfld Array16`1<NetNode> NetManager::m_nodes
IL_00A8: ldfld NetNode[] Array16`1<NetNode>::m_buffer
IL_00AD: ldloc.s 5 (System.Int32)
IL_00AF: ldelema NetNode
IL_00B4: call static System.Boolean
ElectricRoads.Overrides.ElectricRoadsOverrides::CheckElectricConductibility(NetNode
& node)
IL_00B9: brfalse => Label7
IL_00BE: Label6
IL_00BE: ldarg.0
IL_00BF: ldloc.s 5 (System.Int32)
IL_00C1: ldarg.0
IL_00C2: ldfld System.UInt16[] ElectricityManager::m_nodeGroups
IL_00C7: ldloc.s 5 (System.Int32)
IL_00C9: ldelem.u2
IL_00CA: ldc.i4 65535
IL_00CF: beq => Label8
IL_00D4: ldc.i4.1
IL_00D5: br => Label9
IL_00DA: Label8
IL_00DA: ldc.i4.0
IL_00DB: Label9
IL_00DB: call System.Void
ElectricityManager::UpdateNodeElectricity(System.Int32 nodeID, System.Int32 value)
IL_00E0: ldarg.0
IL_00E1: dup
IL_00E2: ldfld System.Int32 ElectricityManager::m_conductiveCells
IL_00E7: ldc.i4.1
IL_00E8: add
IL_00E9: stfld System.Int32 ElectricityManager::m_conductiveCells
IL_00EE: Label5
IL_00EE: Label7
IL_00EE: ldarg.0
IL_00EF: ldfld System.UInt16[] ElectricityManager::m_nodeGroups
IL_00F4: ldloc.s 5 (System.Int32)
IL_00F6: ldc.i4 65535
IL_00FB: stelem.i2
IL_00FC: ldloc.s 5 (System.Int32)
IL_00FE: ldc.i4.1
IL_00FF: add
IL_0100: stloc.s 5 (System.Int32)
IL_0102: Label4
IL_0102: ldloc.s 5 (System.Int32)
IL_0104: ldloc.s 4 (System.Int32)
IL_0106: ble => Label10
IL_010B: ldloc.1
IL_010C: ldc.i4 256
IL_0111: mul
IL_0112: ldc.i4.7
IL_0113: shr
IL_0114: stloc.s 7 (System.Int32)
IL_0116: ldloc.1
IL_0117: ldc.i4.1
IL_0118: add
IL_0119: ldc.i4 256
IL_011E: mul
IL_011F: ldc.i4.7
IL_0120: shr
IL_0121: ldc.i4.1
IL_0122: sub
IL_0123: stloc.s 8 (System.Int32)
IL_0125: ldloc.s 7 (System.Int32)
IL_0127: stloc.s 9 (System.Int32)
IL_0129: br => Label11
IL_012E: Label21
IL_012E: ldloc.s 9 (System.Int32)
IL_0130: ldc.i4 256
IL_0135: mul
IL_0136: stloc.s 10 (System.Int32)
IL_0138: ldc.i4.0
IL_0139: stloc.s 11 (System.Int32)
IL_013B: br => Label12
IL_0140: Label20
IL_0140: ldarg.0
IL_0141: ldfld Cell[] ElectricityManager::m_electricityGrid
IL_0146: ldloc.s 10 (System.Int32)
IL_0148: ldelema ElectricityManager+Cell
IL_014D: ldobj ElectricityManager+Cell
IL_0152: stloc.s 12 (ElectricityManager+Cell)
IL_0154: ldloca.s 12 (ElectricityManager+Cell)
IL_0156: ldfld System.Int16 Cell::m_currentCharge
IL_015B: ldc.i4.0
IL_015C: ble => Label13
IL_0161: ldarg.0
IL_0162: ldfld System.Int32 ElectricityManager::m_pulseGroupCount
IL_0167: ldc.i4 1024
IL_016C: bge => Label14
IL_0171: ldloca.s 13 (ElectricityManager+PulseGroup)
IL_0173: ldloca.s 12 (ElectricityManager+Cell)
IL_0175: ldfld System.Int16 Cell::m_currentCharge
IL_017A: conv.u4
IL_017B: stfld System.UInt32 PulseGroup::m_origCharge
IL_0180: ldloca.s 13 (ElectricityManager+PulseGroup)
IL_0182: ldloca.s 12 (ElectricityManager+Cell)
IL_0184: ldfld System.Int16 Cell::m_currentCharge
IL_0189: conv.u4
IL_018A: stfld System.UInt32 PulseGroup::m_curCharge
IL_018F: ldloca.s 13 (ElectricityManager+PulseGroup)
IL_0191: ldc.i4.0
IL_0192: stfld System.UInt16 PulseGroup::m_mergeCount
IL_0197: ldloca.s 13 (ElectricityManager+PulseGroup)
IL_0199: ldc.i4 65535
IL_019E: stfld System.UInt16 PulseGroup::m_mergeIndex
IL_01A3: ldloca.s 13 (ElectricityManager+PulseGroup)
IL_01A5: ldloc.s 11 (System.Int32)
IL_01A7: conv.u1
IL_01A8: stfld System.Byte PulseGroup::m_x
IL_01AD: ldloca.s 13 (ElectricityManager+PulseGroup)
IL_01AF: ldloc.s 9 (System.Int32)
IL_01B1: conv.u1
IL_01B2: stfld System.Byte PulseGroup::m_z
IL_01B7: ldloca.s 14 (ElectricityManager+PulseUnit)
IL_01B9: ldarg.0
IL_01BA: ldfld System.Int32 ElectricityManager::m_pulseGroupCount
IL_01BF: conv.u2
IL_01C0: stfld System.UInt16 PulseUnit::m_group
IL_01C5: ldloca.s 14 (ElectricityManager+PulseUnit)
IL_01C7: ldc.i4.0
IL_01C8: stfld System.UInt16 PulseUnit::m_node
IL_01CD: ldloca.s 14 (ElectricityManager+PulseUnit)
IL_01CF: ldloc.s 11 (System.Int32)
IL_01D1: conv.u1
IL_01D2: stfld System.Byte PulseUnit::m_x
IL_01D7: ldloca.s 14 (ElectricityManager+PulseUnit)
IL_01D9: ldloc.s 9 (System.Int32)
IL_01DB: conv.u1
IL_01DC: stfld System.Byte PulseUnit::m_z
IL_01E1: ldloca.s 12 (ElectricityManager+Cell)
IL_01E3: ldarg.0
IL_01E4: ldfld System.Int32 ElectricityManager::m_pulseGroupCount
IL_01E9: conv.u2
IL_01EA: stfld System.UInt16 Cell::m_pulseGroup
IL_01EF: ldarg.0
IL_01F0: ldfld PulseGroup[] ElectricityManager::m_pulseGroups
IL_01F5: ldarg.0
IL_01F6: dup
IL_01F7: ldfld System.Int32 ElectricityManager::m_pulseGroupCount
IL_01FC: dup
IL_01FD: stloc.s 15 (System.Int32)
IL_01FF: ldc.i4.1
IL_0200: add
IL_0201: stfld System.Int32 ElectricityManager::m_pulseGroupCount
IL_0206: ldloc.s 15 (System.Int32)
IL_0208: ldelema ElectricityManager+PulseGroup
IL_020D: ldloc.s 13 (ElectricityManager+PulseGroup)
IL_020F: stobj ElectricityManager+PulseGroup
IL_0214: ldarg.0
IL_0215: ldfld PulseUnit[] ElectricityManager::m_pulseUnits
IL_021A: ldarg.0
IL_021B: ldfld System.Int32 ElectricityManager::m_pulseUnitEnd
IL_0220: ldelema ElectricityManager+PulseUnit
IL_0225: ldloc.s 14 (ElectricityManager+PulseUnit)
IL_0227: stobj ElectricityManager+PulseUnit
IL_022C: ldarg.0
IL_022D: dup
IL_022E: ldfld System.Int32 ElectricityManager::m_pulseUnitEnd
IL_0233: ldc.i4.1
IL_0234: add
IL_0235: dup
IL_0236: stloc.s 15 (System.Int32)
IL_0238: stfld System.Int32 ElectricityManager::m_pulseUnitEnd
IL_023D: ldloc.s 15 (System.Int32)
IL_023F: ldarg.0
IL_0240: ldfld PulseUnit[] ElectricityManager::m_pulseUnits
IL_0245: ldlen
IL_0246: conv.i4
IL_0247: bne.un => Label15
IL_024C: ldarg.0
IL_024D: ldc.i4.0
IL_024E: stfld System.Int32 ElectricityManager::m_pulseUnitEnd
IL_0253: Label15
IL_0253: br => Label16
IL_0258: Label14
IL_0258: ldloca.s 12 (ElectricityManager+Cell)
IL_025A: ldc.i4 65535
IL_025F: stfld System.UInt16 Cell::m_pulseGroup
IL_0264: Label16
IL_0264: ldloca.s 12 (ElectricityManager+Cell)
IL_0266: ldc.i4.0
IL_0267: stfld System.Int16 Cell::m_currentCharge
IL_026C: ldarg.0
IL_026D: dup
IL_026E: ldfld System.Int32 ElectricityManager::m_conductiveCells
IL_0273: ldc.i4.1
IL_0274: add
IL_0275: stfld System.Int32 ElectricityManager::m_conductiveCells
IL_027A: br => Label17
IL_027F: Label13
IL_027F: ldloca.s 12 (ElectricityManager+Cell)
IL_0281: ldc.i4 65535
IL_0286: stfld System.UInt16 Cell::m_pulseGroup
IL_028B: ldloca.s 12 (ElectricityManager+Cell)
IL_028D: ldfld System.Byte Cell::m_conductivity
IL_0292: ldc.i4.s 64
IL_0294: blt => Label18
IL_0299: ldarg.0
IL_029A: dup
IL_029B: ldfld System.Int32 ElectricityManager::m_conductiveCells
IL_02A0: ldc.i4.1
IL_02A1: add
IL_02A2: stfld System.Int32 ElectricityManager::m_conductiveCells
IL_02A7: Label17
IL_02A7: Label18
IL_02A7: ldloca.s 12 (ElectricityManager+Cell)
IL_02A9: ldfld System.Boolean Cell::m_tmpElectrified
IL_02AE: ldloca.s 12 (ElectricityManager+Cell)
IL_02B0: ldfld System.Boolean Cell::m_electrified
IL_02B5: beq => Label19
IL_02BA: ldloca.s 12 (ElectricityManager+Cell)
IL_02BC: ldloca.s 12 (ElectricityManager+Cell)
IL_02BE: ldfld System.Boolean Cell::m_tmpElectrified
IL_02C3: stfld System.Boolean Cell::m_electrified
IL_02C8: Label19
IL_02C8: ldloca.s 12 (ElectricityManager+Cell)
IL_02CA: ldloca.s 12 (ElectricityManager+Cell)
IL_02CC: ldfld System.UInt16 Cell::m_pulseGroup
IL_02D1: ldc.i4 65535
IL_02D6: ceq
IL_02D8: ldc.i4.0
IL_02D9: ceq
IL_02DB: stfld System.Boolean Cell::m_tmpElectrified
IL_02E0: ldarg.0
IL_02E1: ldfld Cell[] ElectricityManager::m_electricityGrid
IL_02E6: ldloc.s 10 (System.Int32)
IL_02E8: ldelema ElectricityManager+Cell
IL_02ED: ldloc.s 12 (ElectricityManager+Cell)
IL_02EF: stobj ElectricityManager+Cell
IL_02F4: ldloc.s 10 (System.Int32)
IL_02F6: ldc.i4.1
IL_02F7: add
IL_02F8: stloc.s 10 (System.Int32)
IL_02FA: ldloc.s 11 (System.Int32)
IL_02FC: ldc.i4.1
IL_02FD: add
IL_02FE: stloc.s 11 (System.Int32)
IL_0300: Label12
IL_0300: ldloc.s 11 (System.Int32)
IL_0302: ldc.i4 256
IL_0307: blt => Label20
IL_030C: ldloc.s 9 (System.Int32)
IL_030E: ldc.i4.1
IL_030F: add
IL_0310: stloc.s 9 (System.Int32)
IL_0312: Label11
IL_0312: ldloc.s 9 (System.Int32)
IL_0314: ldloc.s 8 (System.Int32)
IL_0316: ble => Label21
IL_031B: br => Label22
IL_0320: Label2
IL_0320: ldloc.1
IL_0321: ldc.i4.s 127
IL_0323: sub
IL_0324: ldarg.0
IL_0325: ldfld System.Int32 ElectricityManager::m_conductiveCells
IL_032A: mul
IL_032B: ldc.i4.7
IL_032C: shr
IL_032D: stloc.s 16 (System.Int32)
IL_032F: ldloc.1
IL_0330: ldc.i4 255
IL_0335: bne.un => Label23
IL_033A: ldc.i4 1000000000
IL_033F: stloc.s 16 (System.Int32)
IL_0341: Label23
IL_0341: br => Label24
IL_0346: Label54
IL_0346: ldarg.0
IL_0347: ldc.i4.0
IL_0348: stfld System.Boolean ElectricityManager::m_canContinue
IL_034D: ldarg.0
IL_034E: ldfld System.Int32 ElectricityManager::m_pulseUnitEnd
IL_0353: stloc.s 17 (System.Int32)
IL_0355: br => Label25
IL_035A: Label52
IL_035A: ldarg.0
IL_035B: ldfld PulseUnit[] ElectricityManager::m_pulseUnits
IL_0360: ldarg.0
IL_0361: ldfld System.Int32 ElectricityManager::m_pulseUnitStart
IL_0366: ldelema ElectricityManager+PulseUnit
IL_036B: ldobj ElectricityManager+PulseUnit
IL_0370: stloc.s 18 (ElectricityManager+PulseUnit)
IL_0372: ldarg.0
IL_0373: dup
IL_0374: ldfld System.Int32 ElectricityManager::m_pulseUnitStart
IL_0379: ldc.i4.1
IL_037A: add
IL_037B: dup
IL_037C: stloc.s 15 (System.Int32)
IL_037E: stfld System.Int32 ElectricityManager::m_pulseUnitStart
IL_0383: ldloc.s 15 (System.Int32)
IL_0385: ldarg.0
IL_0386: ldfld PulseUnit[] ElectricityManager::m_pulseUnits
IL_038B: ldlen
IL_038C: conv.i4
IL_038D: bne.un => Label26
IL_0392: ldarg.0
IL_0393: ldc.i4.0
IL_0394: stfld System.Int32 ElectricityManager::m_pulseUnitStart
IL_0399: Label26
IL_0399: ldloca.s 18 (ElectricityManager+PulseUnit)
IL_039B: ldarg.0
IL_039C: ldloca.s 18 (ElectricityManager+PulseUnit)
IL_039E: ldfld System.UInt16 PulseUnit::m_group
IL_03A3: call System.UInt16 ElectricityManager::GetRootGroup(System.UInt16
group)
IL_03A8: stfld System.UInt16 PulseUnit::m_group
IL_03AD: ldarg.0
IL_03AE: ldfld PulseGroup[] ElectricityManager::m_pulseGroups
IL_03B3: ldloca.s 18 (ElectricityManager+PulseUnit)
IL_03B5: ldfld System.UInt16 PulseUnit::m_group
IL_03BA: ldelema ElectricityManager+PulseGroup
IL_03BF: ldfld System.UInt32 PulseGroup::m_curCharge
IL_03C4: stloc.s 19 (System.UInt32)
IL_03C6: ldloca.s 18 (ElectricityManager+PulseUnit)
IL_03C8: ldfld System.UInt16 PulseUnit::m_node
IL_03CD: brtrue => Label27
IL_03D2: ldloca.s 18 (ElectricityManager+PulseUnit)
IL_03D4: ldfld System.Byte PulseUnit::m_z
IL_03D9: ldc.i4 256
IL_03DE: mul
IL_03DF: ldloca.s 18 (ElectricityManager+PulseUnit)
IL_03E1: ldfld System.Byte PulseUnit::m_x
IL_03E6: add
IL_03E7: stloc.s 20 (System.Int32)
IL_03E9: ldarg.0
IL_03EA: ldfld Cell[] ElectricityManager::m_electricityGrid
IL_03EF: ldloc.s 20 (System.Int32)
IL_03F1: ldelema ElectricityManager+Cell
IL_03F6: ldobj ElectricityManager+Cell
IL_03FB: stloc.s 21 (ElectricityManager+Cell)
IL_03FD: ldloca.s 21 (ElectricityManager+Cell)
IL_03FF: ldfld System.Byte Cell::m_conductivity
IL_0404: brfalse => Label28
IL_0409: ldloca.s 21 (ElectricityManager+Cell)
IL_040B: ldfld System.Boolean Cell::m_tmpElectrified
IL_0410: brtrue => Label29
IL_0415: ldloc.s 19 (System.UInt32)
IL_0417: brfalse => Label30
IL_041C: ldloca.s 21 (ElectricityManager+Cell)
IL_041E: ldfld System.Int16 Cell::m_currentCharge
IL_0423: neg
IL_0424: ldc.i4.0
IL_0425: ldloc.s 19 (System.UInt32)
IL_0427: call static System.Int32 UnityEngine.Mathf::Clamp(System.Int32
value, System.Int32 min, System.Int32 max)
IL_042C: stloc.s 22 (System.Int32)
IL_042E: ldloc.s 19 (System.UInt32)
IL_0430: ldloc.s 22 (System.Int32)
IL_0432: sub
IL_0433: stloc.s 19 (System.UInt32)
IL_0435: ldloca.s 21 (ElectricityManager+Cell)
IL_0437: dup
IL_0438: ldfld System.Int16 Cell::m_currentCharge
IL_043D: ldloc.s 22 (System.Int32)
IL_043F: conv.i2
IL_0440: add
IL_0441: conv.i2
IL_0442: stfld System.Int16 Cell::m_currentCharge
IL_0447: ldloca.s 21 (ElectricityManager+Cell)
IL_0449: ldfld System.Int16 Cell::m_currentCharge
IL_044E: brtrue => Label31
IL_0453: ldloca.s 21 (ElectricityManager+Cell)
IL_0455: ldc.i4.1
IL_0456: stfld System.Boolean Cell::m_tmpElectrified
IL_045B: Label31
IL_045B: ldarg.0
IL_045C: ldfld Cell[] ElectricityManager::m_electricityGrid
IL_0461: ldloc.s 20 (System.Int32)
IL_0463: ldelema ElectricityManager+Cell
IL_0468: ldloc.s 21 (ElectricityManager+Cell)
IL_046A: stobj ElectricityManager+Cell
IL_046F: ldarg.0
IL_0470: ldfld PulseGroup[] ElectricityManager::m_pulseGroups
IL_0475: ldloca.s 18 (ElectricityManager+PulseUnit)
IL_0477: ldfld System.UInt16 PulseUnit::m_group
IL_047C: ldelema ElectricityManager+PulseGroup
IL_0481: ldloc.s 19 (System.UInt32)
IL_0483: stfld System.UInt32 PulseGroup::m_curCharge
IL_0488: Label28
IL_0488: Label29
IL_0488: Label30
IL_0488: ldloc.s 19 (System.UInt32)
IL_048A: brfalse => Label32
IL_048F: ldloca.s 21 (ElectricityManager+Cell)
IL_0491: ldfld System.Byte Cell::m_conductivity
IL_0496: ldc.i4.s 64
IL_0498: blt => Label33
IL_049D: ldc.i4.1
IL_049E: br => Label34
IL_04A3: Label33
IL_04A3: ldc.i4.s 64
IL_04A5: Label34
IL_04A5: stloc.s 23 (System.Int32)
IL_04A7: ldarg.0
IL_04A8: dup
IL_04A9: ldfld System.Int32 ElectricityManager::m_processedCells
IL_04AE: ldc.i4.1
IL_04AF: add
IL_04B0: stfld System.Int32 ElectricityManager::m_processedCells
IL_04B5: ldloca.s 18 (ElectricityManager+PulseUnit)
IL_04B7: ldfld System.Byte PulseUnit::m_z
IL_04BC: ldc.i4.0
IL_04BD: ble => Label35
IL_04C2: ldarg.0
IL_04C3: ldarg.0
IL_04C4: ldfld Cell[] ElectricityManager::m_electricityGrid
IL_04C9: ldloc.s 20 (System.Int32)
IL_04CB: ldc.i4 256
IL_04D0: sub
IL_04D1: ldelema ElectricityManager+Cell
IL_04D6: ldloca.s 18 (ElectricityManager+PulseUnit)
IL_04D8: ldfld System.UInt16 PulseUnit::m_group
IL_04DD: ldloca.s 18 (ElectricityManager+PulseUnit)
IL_04DF: ldfld System.Byte PulseUnit::m_x
IL_04E4: ldloca.s 18 (ElectricityManager+PulseUnit)
IL_04E6: ldfld System.Byte PulseUnit::m_z
IL_04EB: ldc.i4.1
IL_04EC: sub
IL_04ED: ldloc.s 23 (System.Int32)
IL_04EF: call System.Void ElectricityManager::ConductToCell(Cell& cell,
System.UInt16 group, System.Int32 x, System.Int32 z, System.Int32 limit)
IL_04F4: Label35
IL_04F4: ldloca.s 18 (ElectricityManager+PulseUnit)
IL_04F6: ldfld System.Byte PulseUnit::m_x
IL_04FB: ldc.i4.0
IL_04FC: ble => Label36
IL_0501: ldarg.0
IL_0502: ldarg.0
IL_0503: ldfld Cell[] ElectricityManager::m_electricityGrid
IL_0508: ldloc.s 20 (System.Int32)
IL_050A: ldc.i4.1
IL_050B: sub
IL_050C: ldelema ElectricityManager+Cell
IL_0511: ldloca.s 18 (ElectricityManager+PulseUnit)
IL_0513: ldfld System.UInt16 PulseUnit::m_group
IL_0518: ldloca.s 18 (ElectricityManager+PulseUnit)
IL_051A: ldfld System.Byte PulseUnit::m_x
IL_051F: ldc.i4.1
IL_0520: sub
IL_0521: ldloca.s 18 (ElectricityManager+PulseUnit)
IL_0523: ldfld System.Byte PulseUnit::m_z
IL_0528: ldloc.s 23 (System.Int32)
IL_052A: call System.Void ElectricityManager::ConductToCell(Cell& cell,
System.UInt16 group, System.Int32 x, System.Int32 z, System.Int32 limit)
IL_052F: Label36
IL_052F: ldloca.s 18 (ElectricityManager+PulseUnit)
IL_0531: ldfld System.Byte PulseUnit::m_z
IL_0536: ldc.i4 255
IL_053B: bge => Label37
IL_0540: ldarg.0
IL_0541: ldarg.0
IL_0542: ldfld Cell[] ElectricityManager::m_electricityGrid
IL_0547: ldloc.s 20 (System.Int32)
IL_0549: ldc.i4 256
IL_054E: add
IL_054F: ldelema ElectricityManager+Cell
IL_0554: ldloca.s 18 (ElectricityManager+PulseUnit)
IL_0556: ldfld System.UInt16 PulseUnit::m_group
IL_055B: ldloca.s 18 (ElectricityManager+PulseUnit)
IL_055D: ldfld System.Byte PulseUnit::m_x
IL_0562: ldloca.s 18 (ElectricityManager+PulseUnit)
IL_0564: ldfld System.Byte PulseUnit::m_z
IL_0569: ldc.i4.1
IL_056A: add
IL_056B: ldloc.s 23 (System.Int32)
IL_056D: call System.Void ElectricityManager::ConductToCell(Cell& cell,
System.UInt16 group, System.Int32 x, System.Int32 z, System.Int32 limit)
IL_0572: Label37
IL_0572: ldloca.s 18 (ElectricityManager+PulseUnit)
IL_0574: ldfld System.Byte PulseUnit::m_x
IL_0579: ldc.i4 255
IL_057E: bge => Label38
IL_0583: ldarg.0
IL_0584: ldarg.0
IL_0585: ldfld Cell[] ElectricityManager::m_electricityGrid
IL_058A: ldloc.s 20 (System.Int32)
IL_058C: ldc.i4.1
IL_058D: add
IL_058E: ldelema ElectricityManager+Cell
IL_0593: ldloca.s 18 (ElectricityManager+PulseUnit)
IL_0595: ldfld System.UInt16 PulseUnit::m_group
IL_059A: ldloca.s 18 (ElectricityManager+PulseUnit)
IL_059C: ldfld System.Byte PulseUnit::m_x
IL_05A1: ldc.i4.1
IL_05A2: add
IL_05A3: ldloca.s 18 (ElectricityManager+PulseUnit)
IL_05A5: ldfld System.Byte PulseUnit::m_z
IL_05AA: ldloc.s 23 (System.Int32)
IL_05AC: call System.Void ElectricityManager::ConductToCell(Cell& cell,
System.UInt16 group, System.Int32 x, System.Int32 z, System.Int32 limit)
IL_05B1: Label38
IL_05B1: ldarg.0
IL_05B2: ldloca.s 18 (ElectricityManager+PulseUnit)
IL_05B4: ldfld System.UInt16 PulseUnit::m_group
IL_05B9: ldloca.s 18 (ElectricityManager+PulseUnit)
IL_05BB: ldfld System.Byte PulseUnit::m_x
IL_05C0: ldloca.s 18 (ElectricityManager+PulseUnit)
IL_05C2: ldfld System.Byte PulseUnit::m_z
IL_05C7: call System.Void ElectricityManager::ConductToNodes(System.UInt16
group, System.Int32 cellX, System.Int32 cellZ)
IL_05CC: br => Label39
IL_05D1: Label32
IL_05D1: ldarg.0
IL_05D2: ldfld PulseUnit[] ElectricityManager::m_pulseUnits
IL_05D7: ldarg.0
IL_05D8: ldfld System.Int32 ElectricityManager::m_pulseUnitEnd
IL_05DD: ldelema ElectricityManager+PulseUnit
IL_05E2: ldloc.s 18 (ElectricityManager+PulseUnit)
IL_05E4: stobj ElectricityManager+PulseUnit
IL_05E9: ldarg.0
IL_05EA: dup
IL_05EB: ldfld System.Int32 ElectricityManager::m_pulseUnitEnd
IL_05F0: ldc.i4.1
IL_05F1: add
IL_05F2: dup
IL_05F3: stloc.s 15 (System.Int32)
IL_05F5: stfld System.Int32 ElectricityManager::m_pulseUnitEnd
IL_05FA: ldloc.s 15 (System.Int32)
IL_05FC: ldarg.0
IL_05FD: ldfld PulseUnit[] ElectricityManager::m_pulseUnits
IL_0602: ldlen
IL_0603: conv.i4
IL_0604: bne.un => Label40
IL_0609: ldarg.0
IL_060A: ldc.i4.0
IL_060B: stfld System.Int32 ElectricityManager::m_pulseUnitEnd
IL_0610: Label39
IL_0610: Label40
IL_0610: br => Label41
IL_0615: Label27
IL_0615: ldloc.s 19 (System.UInt32)
IL_0617: brfalse => Label42
IL_061C: ldarg.0
IL_061D: dup
IL_061E: ldfld System.Int32 ElectricityManager::m_processedCells
IL_0623: ldc.i4.1
IL_0624: add
IL_0625: stfld System.Int32 ElectricityManager::m_processedCells
IL_062A: call static NetManager
ColossalFramework.Singleton`1<NetManager>::get_instance()
IL_062F: ldfld Array16`1<NetNode> NetManager::m_nodes
IL_0634: ldfld NetNode[] Array16`1<NetNode>::m_buffer
IL_0639: ldloca.s 18 (ElectricityManager+PulseUnit)
IL_063B: ldfld System.UInt16 PulseUnit::m_node
IL_0640: ldelema NetNode
IL_0645: ldobj NetNode
IL_064A: stloc.s 24 (NetNode)
IL_064C: ldloca.s 24 (NetNode)
IL_064E: ldfld Flags NetNode::m_flags
IL_0653: brfalse => Label43
IL_0658: ldloca.s 24 (NetNode)
IL_065A: ldfld System.UInt32 NetNode::m_buildIndex
IL_065F: ldloc.0
IL_0660: ldc.i4.s -128
IL_0662: and
IL_0663: bge.un => Label44
IL_0668: ldarg.0
IL_0669: ldloca.s 18 (ElectricityManager+PulseUnit)
IL_066B: ldfld System.UInt16 PulseUnit::m_group
IL_0670: ldloca.s 24 (NetNode)
IL_0672: ldflda UnityEngine.Vector3 NetNode::m_position
IL_0677: ldfld System.Single UnityEngine.Vector3::x
IL_067C: ldloca.s 24 (NetNode)
IL_067E: ldflda UnityEngine.Vector3 NetNode::m_position
IL_0683: ldfld System.Single UnityEngine.Vector3::z
IL_0688: call System.Void ElectricityManager::ConductToCells(System.UInt16
group, System.Single worldX, System.Single worldZ)
IL_068D: ldc.i4.0
IL_068E: stloc.s 25 (System.Int32)
IL_0690: br => Label45
IL_0695: Label49
IL_0695: ldloca.s 24 (NetNode)
IL_0697: ldloc.s 25 (System.Int32)
IL_0699: call System.UInt16 NetNode::GetSegment(System.Int32 index)
IL_069E: stloc.s 26 (System.UInt16)
IL_06A0: ldloc.s 26 (System.UInt16)
IL_06A2: brfalse => Label46
IL_06A7: call static NetManager
ColossalFramework.Singleton`1<NetManager>::get_instance()
IL_06AC: ldfld Array16`1<NetSegment> NetManager::m_segments
IL_06B1: ldfld NetSegment[] Array16`1<NetSegment>::m_buffer
IL_06B6: ldloc.s 26 (System.UInt16)
IL_06B8: ldelema NetSegment
IL_06BD: ldfld System.UInt16 NetSegment::m_startNode
IL_06C2: stloc.s 27 (System.UInt16)
IL_06C4: call static NetManager
ColossalFramework.Singleton`1<NetManager>::get_instance()
IL_06C9: ldfld Array16`1<NetSegment> NetManager::m_segments
IL_06CE: ldfld NetSegment[] Array16`1<NetSegment>::m_buffer
IL_06D3: ldloc.s 26 (System.UInt16)
IL_06D5: ldelema NetSegment
IL_06DA: ldfld System.UInt16 NetSegment::m_endNode
IL_06DF: stloc.s 28 (System.UInt16)
IL_06E1: ldloc.s 27 (System.UInt16)
IL_06E3: ldloca.s 18 (ElectricityManager+PulseUnit)
IL_06E5: ldfld System.UInt16 PulseUnit::m_node
IL_06EA: bne.un => Label47
IL_06EF: ldloc.s 28 (System.UInt16)
IL_06F1: br => Label48
IL_06F6: Label47
IL_06F6: ldloc.s 27 (System.UInt16)
IL_06F8: Label48
IL_06F8: stloc.s 29 (System.UInt16)
IL_06FA: ldarg.0
IL_06FB: ldloc.s 29 (System.UInt16)
IL_06FD: call static NetManager
ColossalFramework.Singleton`1<NetManager>::get_instance()
IL_0702: ldfld Array16`1<NetNode> NetManager::m_nodes
IL_0707: ldfld NetNode[] Array16`1<NetNode>::m_buffer
IL_070C: ldloc.s 29 (System.UInt16)
IL_070E: ldelema NetNode
IL_0713: ldloca.s 18 (ElectricityManager+PulseUnit)
IL_0715: ldfld System.UInt16 PulseUnit::m_group
IL_071A: ldc.r4 -100000
IL_071F: ldc.r4 -100000
IL_0724: ldc.r4 100000
IL_0729: ldc.r4 100000
IL_072E: call System.Void ElectricityManager::ConductToNode(System.UInt16
nodeIndex, NetNode& node, System.UInt16 group, System.Single minX, System.Single
minZ, System.Single maxX, System.Single maxZ)
IL_0733: Label46
IL_0733: ldloc.s 25 (System.Int32)
IL_0735: ldc.i4.1
IL_0736: add
IL_0737: stloc.s 25 (System.Int32)
IL_0739: Label45
IL_0739: ldloc.s 25 (System.Int32)
IL_073B: ldc.i4.8
IL_073C: blt => Label49
IL_0741: Label43
IL_0741: Label44
IL_0741: br => Label50
IL_0746: Label42
IL_0746: ldarg.0
IL_0747: ldfld PulseUnit[] ElectricityManager::m_pulseUnits
IL_074C: ldarg.0
IL_074D: ldfld System.Int32 ElectricityManager::m_pulseUnitEnd
IL_0752: ldelema ElectricityManager+PulseUnit
IL_0757: ldloc.s 18 (ElectricityManager+PulseUnit)
IL_0759: stobj ElectricityManager+PulseUnit
IL_075E: ldarg.0
IL_075F: dup
IL_0760: ldfld System.Int32 ElectricityManager::m_pulseUnitEnd
IL_0765: ldc.i4.1
IL_0766: add
IL_0767: dup
IL_0768: stloc.s 15 (System.Int32)
IL_076A: stfld System.Int32 ElectricityManager::m_pulseUnitEnd
IL_076F: ldloc.s 15 (System.Int32)
IL_0771: ldarg.0
IL_0772: ldfld PulseUnit[] ElectricityManager::m_pulseUnits
IL_0777: ldlen
IL_0778: conv.i4
IL_0779: bne.un => Label51
IL_077E: ldarg.0
IL_077F: ldc.i4.0
IL_0780: stfld System.Int32 ElectricityManager::m_pulseUnitEnd
IL_0785: Label25
IL_0785: Label41
IL_0785: Label50
IL_0785: Label51
IL_0785: ldarg.0
IL_0786: ldfld System.Int32 ElectricityManager::m_pulseUnitStart
IL_078B: ldloc.s 17 (System.Int32)
IL_078D: bne.un => Label52
IL_0792: Label24
IL_0792: ldarg.0
IL_0793: ldfld System.Boolean ElectricityManager::m_canContinue
IL_0798: brfalse => Label53
IL_079D: ldarg.0
IL_079E: ldfld System.Int32 ElectricityManager::m_processedCells
IL_07A3: ldloc.s 16 (System.Int32)
IL_07A5: blt => Label54
IL_07AA: Label53
IL_07AA: ldloc.1
IL_07AB: ldc.i4 255
IL_07B0: bne.un => Label55
IL_07B5: ldc.i4.0
IL_07B6: stloc.s 30 (System.Int32)
IL_07B8: br => Label56
IL_07BD: Label58
IL_07BD: ldarg.0
IL_07BE: ldfld PulseGroup[] ElectricityManager::m_pulseGroups
IL_07C3: ldloc.s 30 (System.Int32)
IL_07C5: ldelema ElectricityManager+PulseGroup
IL_07CA: ldobj ElectricityManager+PulseGroup
IL_07CF: stloc.s 31 (ElectricityManager+PulseGroup)
IL_07D1: ldloca.s 31 (ElectricityManager+PulseGroup)
IL_07D3: ldfld System.UInt16 PulseGroup::m_mergeIndex
IL_07D8: ldc.i4 65535
IL_07DD: beq => Label57
IL_07E2: ldarg.0
IL_07E3: ldfld PulseGroup[] ElectricityManager::m_pulseGroups
IL_07E8: ldloca.s 31 (ElectricityManager+PulseGroup)
IL_07EA: ldfld System.UInt16 PulseGroup::m_mergeIndex
IL_07EF: ldelema ElectricityManager+PulseGroup
IL_07F4: ldobj ElectricityManager+PulseGroup
IL_07F9: stloc.s 32 (ElectricityManager+PulseGroup)
IL_07FB: ldloca.s 31 (ElectricityManager+PulseGroup)
IL_07FD: ldloca.s 32 (ElectricityManager+PulseGroup)
IL_07FF: ldfld System.UInt32 PulseGroup::m_curCharge
IL_0804: conv.u8
IL_0805: ldloca.s 31 (ElectricityManager+PulseGroup)
IL_0807: ldfld System.UInt32 PulseGroup::m_origCharge
IL_080C: conv.u8
IL_080D: mul
IL_080E: ldloca.s 32 (ElectricityManager+PulseGroup)
IL_0810: ldfld System.UInt32 PulseGroup::m_origCharge
IL_0815: conv.u8
IL_0816: div.un
IL_0817: conv.u4
IL_0818: stfld System.UInt32 PulseGroup::m_curCharge
IL_081D: ldloca.s 32 (ElectricityManager+PulseGroup)
IL_081F: dup
IL_0820: ldfld System.UInt32 PulseGroup::m_curCharge
IL_0825: ldloca.s 31 (ElectricityManager+PulseGroup)
IL_0827: ldfld System.UInt32 PulseGroup::m_curCharge
IL_082C: sub
IL_082D: stfld System.UInt32 PulseGroup::m_curCharge
IL_0832: ldloca.s 32 (ElectricityManager+PulseGroup)
IL_0834: dup
IL_0835: ldfld System.UInt32 PulseGroup::m_origCharge
IL_083A: ldloca.s 31 (ElectricityManager+PulseGroup)
IL_083C: ldfld System.UInt32 PulseGroup::m_origCharge
IL_0841: sub
IL_0842: stfld System.UInt32 PulseGroup::m_origCharge
IL_0847: ldarg.0
IL_0848: ldfld PulseGroup[] ElectricityManager::m_pulseGroups
IL_084D: ldloca.s 31 (ElectricityManager+PulseGroup)
IL_084F: ldfld System.UInt16 PulseGroup::m_mergeIndex
IL_0854: ldelema ElectricityManager+PulseGroup
IL_0859: ldloc.s 32 (ElectricityManager+PulseGroup)
IL_085B: stobj ElectricityManager+PulseGroup
IL_0860: ldarg.0
IL_0861: ldfld PulseGroup[] ElectricityManager::m_pulseGroups
IL_0866: ldloc.s 30 (System.Int32)
IL_0868: ldelema ElectricityManager+PulseGroup
IL_086D: ldloc.s 31 (ElectricityManager+PulseGroup)
IL_086F: stobj ElectricityManager+PulseGroup
IL_0874: Label57
IL_0874: ldloc.s 30 (System.Int32)
IL_0876: ldc.i4.1
IL_0877: add
IL_0878: stloc.s 30 (System.Int32)
IL_087A: Label56
IL_087A: ldloc.s 30 (System.Int32)
IL_087C: ldarg.0
IL_087D: ldfld System.Int32 ElectricityManager::m_pulseGroupCount
IL_0882: blt => Label58
IL_0887: ldc.i4.0
IL_0888: stloc.s 33 (System.Int32)
IL_088A: br => Label59
IL_088F: Label62
IL_088F: ldarg.0
IL_0890: ldfld PulseGroup[] ElectricityManager::m_pulseGroups
IL_0895: ldloc.s 33 (System.Int32)
IL_0897: ldelema ElectricityManager+PulseGroup
IL_089C: ldobj ElectricityManager+PulseGroup
IL_08A1: stloc.s 34 (ElectricityManager+PulseGroup)
IL_08A3: ldloca.s 34 (ElectricityManager+PulseGroup)
IL_08A5: ldfld System.UInt32 PulseGroup::m_curCharge
IL_08AA: brfalse => Label60
IL_08AF: ldloca.s 34 (ElectricityManager+PulseGroup)
IL_08B1: ldfld System.Byte PulseGroup::m_z
IL_08B6: ldc.i4 256
IL_08BB: mul
IL_08BC: ldloca.s 34 (ElectricityManager+PulseGroup)
IL_08BE: ldfld System.Byte PulseGroup::m_x
IL_08C3: add
IL_08C4: stloc.s 35 (System.Int32)
IL_08C6: ldarg.0
IL_08C7: ldfld Cell[] ElectricityManager::m_electricityGrid
IL_08CC: ldloc.s 35 (System.Int32)
IL_08CE: ldelema ElectricityManager+Cell
IL_08D3: ldobj ElectricityManager+Cell
IL_08D8: stloc.s 36 (ElectricityManager+Cell)
IL_08DA: ldloca.s 36 (ElectricityManager+Cell)
IL_08DC: ldfld System.Byte Cell::m_conductivity
IL_08E1: brfalse => Label61
IL_08E6: ldloca.s 36 (ElectricityManager+Cell)
IL_08E8: dup
IL_08E9: ldfld System.UInt16 Cell::m_extraCharge
IL_08EE: ldloca.s 34 (ElectricityManager+PulseGroup)
IL_08F0: ldfld System.UInt32 PulseGroup::m_curCharge
IL_08F5: ldc.i4 32767
IL_08FA: ldloca.s 36 (ElectricityManager+Cell)
IL_08FC: ldfld System.UInt16 Cell::m_extraCharge
IL_0901: sub
IL_0902: call static System.Int32 UnityEngine.Mathf::Min(System.Int32 a,
System.Int32 b)
IL_0907: conv.u2
IL_0908: add
IL_0909: conv.u2
IL_090A: stfld System.UInt16 Cell::m_extraCharge
IL_090F: Label61
IL_090F: ldarg.0
IL_0910: ldfld Cell[] ElectricityManager::m_electricityGrid
IL_0915: ldloc.s 35 (System.Int32)
IL_0917: ldelema ElectricityManager+Cell
IL_091C: ldloc.s 36 (ElectricityManager+Cell)
IL_091E: stobj ElectricityManager+Cell
IL_0923: Label60
IL_0923: ldloc.s 33 (System.Int32)
IL_0925: ldc.i4.1
IL_0926: add
IL_0927: stloc.s 33 (System.Int32)
IL_0929: Label59
IL_0929: ldloc.s 33 (System.Int32)
IL_092B: ldarg.0
IL_092C: ldfld System.Int32 ElectricityManager::m_pulseGroupCount
IL_0931: blt => Label62
IL_0936: // end original
IL_0936: Label0
IL_0936: Label1
IL_0936: Label22
IL_0936: Label55
IL_0936: ret
DONE

### Patch: System.Void ElectricityManager::ConductToNode(System.UInt16 nodeIndex,


NetNode& node, System.UInt16 group, System.Single minX, System.Single minZ,
System.Single maxX, System.Single maxZ)
### Replacement: static System.Void
ElectricityManager::ElectricityManager.ConductToNode_Patch0(ElectricityManager
this, System.UInt16 nodeIndex, NetNode& node, System.UInt16 group, System.Single
minX, System.Single minZ, System.Single maxX, System.Single maxZ)
IL_0000: Local var 0: NetInfo
IL_0000: Local var 1: ElectricityManager/PulseUnit
IL_0000: Local var 2: System.Int32
IL_0000: Local var 3: System.UInt16
IL_0000: // start original
IL_0000: ldarg.2
IL_0001: ldflda UnityEngine.Vector3 NetNode::m_position
IL_0006: ldfld System.Single UnityEngine.Vector3::x
IL_000B: ldarg.s 4
IL_000D: blt.un => Label0
IL_0012: ldarg.2
IL_0013: ldflda UnityEngine.Vector3 NetNode::m_position
IL_0018: ldfld System.Single UnityEngine.Vector3::z
IL_001D: ldarg.s 5
IL_001F: blt.un => Label1
IL_0024: ldarg.2
IL_0025: ldflda UnityEngine.Vector3 NetNode::m_position
IL_002A: ldfld System.Single UnityEngine.Vector3::x
IL_002F: ldarg.s 6
IL_0031: bgt.un => Label2
IL_0036: ldarg.2
IL_0037: ldflda UnityEngine.Vector3 NetNode::m_position
IL_003C: ldfld System.Single UnityEngine.Vector3::z
IL_0041: ldarg.s 7
IL_0043: bgt.un => Label3
IL_0048: ldarg.2
IL_0049: call static System.Boolean
ElectricRoads.Overrides.ElectricRoadsOverrides::CheckElectricConductibility(NetNode
& node)
IL_004E: brfalse => Label5
IL_0053: Label4
IL_0053: ldarg.0
IL_0054: ldfld System.UInt16[] ElectricityManager::m_nodeGroups
IL_0059: ldarg.1
IL_005A: ldelem.u2
IL_005B: ldc.i4 65535
IL_0060: bne.un => Label6
IL_0065: ldloca.s 1 (ElectricityManager+PulseUnit)
IL_0067: ldarg.3
IL_0068: stfld System.UInt16 PulseUnit::m_group
IL_006D: ldloca.s 1 (ElectricityManager+PulseUnit)
IL_006F: ldarg.1
IL_0070: stfld System.UInt16 PulseUnit::m_node
IL_0075: ldloca.s 1 (ElectricityManager+PulseUnit)
IL_0077: ldc.i4.0
IL_0078: stfld System.Byte PulseUnit::m_x
IL_007D: ldloca.s 1 (ElectricityManager+PulseUnit)
IL_007F: ldc.i4.0
IL_0080: stfld System.Byte PulseUnit::m_z
IL_0085: ldarg.0
IL_0086: ldfld PulseUnit[] ElectricityManager::m_pulseUnits
IL_008B: ldarg.0
IL_008C: ldfld System.Int32 ElectricityManager::m_pulseUnitEnd
IL_0091: ldelema ElectricityManager+PulseUnit
IL_0096: ldloc.1
IL_0097: stobj ElectricityManager+PulseUnit
IL_009C: ldarg.0
IL_009D: dup
IL_009E: ldfld System.Int32 ElectricityManager::m_pulseUnitEnd
IL_00A3: ldc.i4.1
IL_00A4: add
IL_00A5: dup
IL_00A6: stloc.2
IL_00A7: stfld System.Int32 ElectricityManager::m_pulseUnitEnd
IL_00AC: ldloc.2
IL_00AD: ldarg.0
IL_00AE: ldfld PulseUnit[] ElectricityManager::m_pulseUnits
IL_00B3: ldlen
IL_00B4: conv.i4
IL_00B5: bne.un => Label7
IL_00BA: ldarg.0
IL_00BB: ldc.i4.0
IL_00BC: stfld System.Int32 ElectricityManager::m_pulseUnitEnd
IL_00C1: Label7
IL_00C1: ldarg.0
IL_00C2: ldfld System.UInt16[] ElectricityManager::m_nodeGroups
IL_00C7: ldarg.1
IL_00C8: ldarg.3
IL_00C9: stelem.i2
IL_00CA: ldarg.0
IL_00CB: ldc.i4.1
IL_00CC: stfld System.Boolean ElectricityManager::m_canContinue
IL_00D1: br => Label8
IL_00D6: Label6
IL_00D6: ldarg.0
IL_00D7: ldarg.0
IL_00D8: ldfld System.UInt16[] ElectricityManager::m_nodeGroups
IL_00DD: ldarg.1
IL_00DE: ldelem.u2
IL_00DF: call System.UInt16 ElectricityManager::GetRootGroup(System.UInt16
group)
IL_00E4: stloc.3
IL_00E5: ldloc.3
IL_00E6: ldarg.3
IL_00E7: beq => Label9
IL_00EC: ldarg.0
IL_00ED: ldarg.3
IL_00EE: ldloc.3
IL_00EF: call System.Void ElectricityManager::MergeGroups(System.UInt16 root,
System.UInt16 merged)
IL_00F4: ldarg.0
IL_00F5: ldfld System.UInt16[] ElectricityManager::m_nodeGroups
IL_00FA: ldarg.1
IL_00FB: ldarg.3
IL_00FC: stelem.i2
IL_00FD: ldarg.0
IL_00FE: ldc.i4.1
IL_00FF: stfld System.Boolean ElectricityManager::m_canContinue
IL_0104: // end original
IL_0104: Label0
IL_0104: Label1
IL_0104: Label2
IL_0104: Label3
IL_0104: Label5
IL_0104: Label8
IL_0104: Label9
IL_0104: ret
DONE

### Patch: System.Void ElectricityManager::UpdateNodeElectricity(System.Int32


nodeID, System.Int32 value)
### Replacement: static System.Void
ElectricityManager::ElectricityManager.UpdateNodeElectricity_Patch2(ElectricityMana
ger this, System.Int32 nodeID, System.Int32 value)
IL_0000: Local var 0: InfoManager/InfoMode
IL_0000: Local var 1: NetManager
IL_0000: Local var 2: System.Boolean
IL_0000: Local var 3: NetNode/Flags
IL_0000: Local var 4: System.UInt16
IL_0000: Local var 5: BuildingManager
IL_0000: Local var 6: NetNode/Flags
IL_0000: Local var 7: System.Int32
IL_0000: Local var 8: System.UInt16
IL_0000: Local var 9: System.Boolean
IL_0000: Local var 10: System.Boolean
IL_0000: ldc.i4 0
IL_0005: stloc 9 (System.Boolean)
IL_0009: ldc.i4.1
IL_000A: stloc 9 (System.Boolean)
IL_000E: ldc.i4 0
IL_0013: stloc 10 (System.Boolean)
IL_0017: ldloc 9 (System.Boolean)
IL_001B: brfalse => Label1
IL_0020: ldarga 1
IL_0024: ldloca 10 (System.Boolean)
IL_0028: call static System.Void
ElectricRoads.Overrides.ElectricRoadsOverrides::PreConduct(System.Int32& nodeID,
System.Boolean& __state)
IL_002D: Label1
IL_002D: nop
IL_002E: ldloc 9 (System.Boolean)
IL_0032: brfalse => Label0
IL_0037: // start original
IL_0037: call static InfoManager
ColossalFramework.Singleton`1<InfoManager>::get_instance()
IL_003C: callvirt InfoMode InfoManager::get_CurrentMode()
IL_0041: stloc.0
IL_0042: call static NetManager
ColossalFramework.Singleton`1<NetManager>::get_instance()
IL_0047: stloc.1
IL_0048: ldc.i4.0
IL_0049: stloc.2
IL_004A: ldloc.1
IL_004B: ldfld Array16`1<NetNode> NetManager::m_nodes
IL_0050: ldfld NetNode[] Array16`1<NetNode>::m_buffer
IL_0055: ldarg.1
IL_0056: ldelema NetNode
IL_005B: ldfld Flags NetNode::m_flags
IL_0060: stloc.3
IL_0061: ldarg.1
IL_0062: call static System.Boolean
ElectricRoads.Overrides.ElectricRoadsOverrides::CheckNodeTransition(System.Int32
nodeID)
IL_0067: brfalse => Label2
IL_006C: ldloc.1
IL_006D: ldfld Array16`1<NetNode> NetManager::m_nodes
IL_0072: ldfld NetNode[] Array16`1<NetNode>::m_buffer
IL_0077: ldarg.1
IL_0078: ldelema NetNode
IL_007D: dup
IL_007E: ldfld Flags NetNode::m_flags
IL_0083: ldc.i4 -1048577
IL_0088: and
IL_0089: stfld Flags NetNode::m_flags
IL_008E: br => Label12
IL_0093: Label2
IL_0093: ldloc.1
IL_0094: ldfld Array16`1<NetNode> NetManager::m_nodes
IL_0099: ldfld NetNode[] Array16`1<NetNode>::m_buffer
IL_009E: ldarg.1
IL_009F: ldelema NetNode
IL_00A4: ldfld System.UInt16 NetNode::m_building
IL_00A9: stloc.s 4 (System.UInt16)
IL_00AB: ldloc.s 4 (System.UInt16)
IL_00AD: brfalse => Label3
IL_00B2: call static BuildingManager
ColossalFramework.Singleton`1<BuildingManager>::get_instance()
IL_00B7: stloc.s 5 (BuildingManager)
IL_00B9: ldloc.s 5 (BuildingManager)
IL_00BB: ldfld Array16`1<Building> BuildingManager::m_buildings
IL_00C0: ldfld Building[] Array16`1<Building>::m_buffer
IL_00C5: ldloc.s 4 (System.UInt16)
IL_00C7: ldelema Building
IL_00CC: ldfld System.UInt16 Building::m_electricityBuffer
IL_00D1: ldarg.2
IL_00D2: beq => Label4
IL_00D7: ldloc.s 5 (BuildingManager)
IL_00D9: ldfld Array16`1<Building> BuildingManager::m_buildings
IL_00DE: ldfld Building[] Array16`1<Building>::m_buffer
IL_00E3: ldloc.s 4 (System.UInt16)
IL_00E5: ldelema Building
IL_00EA: ldarg.2
IL_00EB: conv.u2
IL_00EC: stfld System.UInt16 Building::m_electricityBuffer
IL_00F1: ldloc.0
IL_00F2: ldc.i4.1
IL_00F3: ceq
IL_00F5: stloc.2
IL_00F6: Label4
IL_00F6: ldloc.2
IL_00F7: brfalse => Label5
IL_00FC: ldloc.s 5 (BuildingManager)
IL_00FE: ldloc.s 4 (System.UInt16)
IL_0100: callvirt System.Void BuildingManager::UpdateBuildingColors(System.UInt16
building)
IL_0105: Label3
IL_0105: Label5
IL_0105: ldloc.3
IL_0106: ldc.i4 -67108865
IL_010B: and
IL_010C: stloc.s 6 (NetNode+Flags)
IL_010E: ldarg.2
IL_010F: brfalse => Label6
IL_0114: ldloc.s 6 (NetNode+Flags)
IL_0116: ldc.i4 67108864
IL_011B: or
IL_011C: stloc.s 6 (NetNode+Flags)
IL_011E: Label6
IL_011E: ldloc.s 6 (NetNode+Flags)
IL_0120: ldloc.3
IL_0121: beq => Label7
IL_0126: ldloc.1
IL_0127: ldfld Array16`1<NetNode> NetManager::m_nodes
IL_012C: ldfld NetNode[] Array16`1<NetNode>::m_buffer
IL_0131: ldarg.1
IL_0132: ldelema NetNode
IL_0137: ldloc.s 6 (NetNode+Flags)
IL_0139: stfld Flags NetNode::m_flags
IL_013E: ldloc.0
IL_013F: ldc.i4.1
IL_0140: ceq
IL_0142: stloc.2
IL_0143: Label7
IL_0143: ldloc.2
IL_0144: brfalse => Label8
IL_0149: ldloc.1
IL_014A: ldarg.1
IL_014B: conv.u2
IL_014C: callvirt System.Void NetManager::UpdateNodeColors(System.UInt16 node)
IL_0151: ldc.i4.0
IL_0152: stloc.s 7 (System.Int32)
IL_0154: br => Label9
IL_0159: Label11
IL_0159: ldloc.1
IL_015A: ldfld Array16`1<NetNode> NetManager::m_nodes
IL_015F: ldfld NetNode[] Array16`1<NetNode>::m_buffer
IL_0164: ldarg.1
IL_0165: ldelema NetNode
IL_016A: ldloc.s 7 (System.Int32)
IL_016C: call System.UInt16 NetNode::GetSegment(System.Int32 index)
IL_0171: stloc.s 8 (System.UInt16)
IL_0173: ldloc.s 8 (System.UInt16)
IL_0175: brfalse => Label10
IL_017A: ldloc.1
IL_017B: ldloc.s 8 (System.UInt16)
IL_017D: callvirt System.Void NetManager::UpdateSegmentColors(System.UInt16
segment)
IL_0182: Label10
IL_0182: ldloc.s 7 (System.Int32)
IL_0184: ldc.i4.1
IL_0185: add
IL_0186: stloc.s 7 (System.Int32)
IL_0188: Label9
IL_0188: ldloc.s 7 (System.Int32)
IL_018A: ldc.i4.8
IL_018B: blt => Label11
IL_0190: // end original
IL_0190: Label8
IL_0190: Label12
IL_0190: Label0
IL_0190: ldarg 1
IL_0194: ldloc 10 (System.Boolean)
IL_0198: call static System.Void
ElectricRoads.Overrides.ElectricRoadsOverrides::PostConduct(System.Int32 nodeID,
System.Boolean __state)
IL_019D: ret
DONE

### Patch: virtual System.Void ColossalFramework.UI.UIView::Start()


### Replacement: static System.Void
ColossalFramework.UI.UIView::ColossalFramework.UI.UIView.Start_Patch0(ColossalFrame
work.UI.UIView this)
IL_0000: Local var 0:
ColossalFramework.PoolList`1<ColossalFramework.UI.UIComponent>
IL_0000: Local var 1: ColossalFramework.UI.UIComponent
IL_0000: Local var 2:
System.Collections.Generic.IEnumerator`1<ColossalFramework.UI.UIComponent>
IL_0000: // start original
IL_0000: ldarg.0
IL_0001: ldc.i4.0
IL_0002: stfld System.Int32 ColossalFramework.UI.UIView::m_FramesRendered
IL_0007: ldarg.0
IL_0008: call System.Void
ColossalFramework.UI.UIView::InvalidateAllComponents()
IL_000D: ldarg.0
IL_000E: ldfld UnityEngine.MeshRenderer
ColossalFramework.UI.UIView::m_MeshRenderer
IL_0013: ldnull
IL_0014: call static System.Boolean
UnityEngine.Object::op_Inequality(UnityEngine.Object x, UnityEngine.Object y)
IL_0019: brfalse => Label0
IL_001E: ldarg.0
IL_001F: ldfld UnityEngine.MeshRenderer
ColossalFramework.UI.UIView::m_MeshRenderer
IL_0024: ldc.i4.1
IL_0025: callvirt System.Void UnityEngine.Renderer::set_enabled(System.Boolean
value)
IL_002A: Label0
IL_002A: ldarg.0
IL_002B: call ColossalFramework.PoolList`1<ColossalFramework.UI.UIComponent>
ColossalFramework.UI.UIView::GetTopLevelComponents()
IL_0030: stloc.0
.try
{
IL_0031: ldloc.0
IL_0032: callvirt virtual
System.Collections.Generic.IEnumerator`1<ColossalFramework.UI.UIComponent>
ColossalFramework.PoolList`1<ColossalFramework.UI.UIComponent>::GetEnumerator()
IL_0037: stloc.2
.try
{
IL_0038: br => Label1
IL_003D: Label2
IL_003D: ldloc.2
IL_003E: callvirt abstract virtual ColossalFramework.UI.UIComponent
System.Collections.Generic.IEnumerator`1<ColossalFramework.UI.UIComponent>::get_Cur
rent()
IL_0043: stloc.1
IL_0044: ldloc.1
IL_0045: ldc.i4.1
IL_0046: callvirt System.Void
ColossalFramework.UI.UIComponent::InitializeParentVisibilityCache(System.Boolean
parentVisible)
IL_004B: Label1
IL_004B: ldloc.2
IL_004C: callvirt abstract virtual System.Boolean
System.Collections.IEnumerator::MoveNext()
IL_0051: brtrue => Label2
IL_0056: leave => Label3
IL_005B: leave => (autogenerated)
} // end try
.finally
{
IL_0060: ldloc.2
IL_0061: brfalse => Label4
IL_0066: ldloc.2
IL_0067: callvirt abstract virtual System.Void
System.IDisposable::Dispose()
IL_006C: Label4
IL_006C: endfinally
IL_006D: leave => (autogenerated)
} // end handler
IL_006E: Label3
IL_006E: leave => Label5
IL_0073: leave => (autogenerated)
} // end try
.finally
{
IL_0078: ldloc.0
IL_0079: brfalse => Label6
IL_007E: ldloc.0
IL_007F: callvirt abstract virtual System.Void
System.IDisposable::Dispose()
IL_0084: Label6
IL_0084: endfinally
IL_0085: leave => (autogenerated)
} // end handler
IL_0086: Label5
IL_0086: ldarg.0
IL_0087: ldc.i4.1
IL_0088: stfld System.Boolean
ColossalFramework.UI.UIView::m_VisibilityCacheInitialized
IL_008D: // end original
IL_008D: ret
DONE

### Patch: virtual UnityEngine.Color NetAI::GetColor(System.UInt16 nodeID, NetNode&


data, InfoMode infoMode, SubInfoMode subInfoMode)
### Replacement: static UnityEngine.Color NetAI::NetAI.GetColor_Patch0(NetAI this,
System.UInt16 nodeID, NetNode& data, InfoMode infoMode, SubInfoMode subInfoMode)
IL_0000: // start original
IL_0000: ldarg.3
IL_0001: brfalse => Label0
IL_0006: call static InfoManager
ColossalFramework.Singleton`1<InfoManager>::get_instance()
IL_000B: ldfld InfoProperties SimulationManagerBase`2<InfoManager,
InfoProperties>::m_properties
IL_0010: ldfld UnityEngine.Color InfoProperties::m_neutralColor
IL_0015: br => Label1
IL_001A: Label0
IL_001A: ldarg.0
IL_001B: ldfld NetInfo NetAI::m_info
IL_0020: ldfld UnityEngine.Color NetInfo::m_color
IL_0025: // end original
IL_0025: Label1
IL_0025: ret
DONE

### Patch: virtual UnityEngine.Color NetAI::GetColor(System.UInt16 segmentID,


NetSegment& data, InfoMode infoMode, SubInfoMode subInfoMode)
### Replacement: static UnityEngine.Color NetAI::NetAI.GetColor_Patch0(NetAI this,
System.UInt16 segmentID, NetSegment& data, InfoMode infoMode, SubInfoMode
subInfoMode)
IL_0000: // start original
IL_0000: ldarg.3
IL_0001: brfalse => Label0
IL_0006: call static InfoManager
ColossalFramework.Singleton`1<InfoManager>::get_instance()
IL_000B: ldfld InfoProperties SimulationManagerBase`2<InfoManager,
InfoProperties>::m_properties
IL_0010: ldfld UnityEngine.Color InfoProperties::m_neutralColor
IL_0015: br => Label1
IL_001A: Label0
IL_001A: ldarg.0
IL_001B: ldfld NetInfo NetAI::m_info
IL_0020: ldfld UnityEngine.Color NetInfo::m_color
IL_0025: // end original
IL_0025: Label1
IL_0025: ret
DONE

### Patch: System.Void ElectricityManager::UpdateNodeElectricity(System.Int32


nodeID, System.Int32 value)
### Replacement: static System.Void
ElectricityManager::ElectricityManager.UpdateNodeElectricity_Patch0(ElectricityMana
ger this, System.Int32 nodeID, System.Int32 value)
IL_0000: Local var 0: InfoManager/InfoMode
IL_0000: Local var 1: NetManager
IL_0000: Local var 2: System.Boolean
IL_0000: Local var 3: NetNode/Flags
IL_0000: Local var 4: System.UInt16
IL_0000: Local var 5: BuildingManager
IL_0000: Local var 6: NetNode/Flags
IL_0000: Local var 7: System.Int32
IL_0000: Local var 8: System.UInt16
IL_0000: // start original
IL_0000: call static InfoManager
ColossalFramework.Singleton`1<InfoManager>::get_instance()
IL_0005: callvirt InfoMode InfoManager::get_CurrentMode()
IL_000A: stloc.0
IL_000B: call static NetManager
ColossalFramework.Singleton`1<NetManager>::get_instance()
IL_0010: stloc.1
IL_0011: ldc.i4.0
IL_0012: stloc.2
IL_0013: ldloc.1
IL_0014: ldfld Array16`1<NetNode> NetManager::m_nodes
IL_0019: ldfld NetNode[] Array16`1<NetNode>::m_buffer
IL_001E: ldarg.1
IL_001F: ldelema NetNode
IL_0024: ldfld Flags NetNode::m_flags
IL_0029: stloc.3
IL_002A: ldloc.3
IL_002B: ldc.i4 1048576
IL_0030: and
IL_0031: brfalse => Label0
IL_0036: ldloc.1
IL_0037: ldfld Array16`1<NetNode> NetManager::m_nodes
IL_003C: ldfld NetNode[] Array16`1<NetNode>::m_buffer
IL_0041: ldarg.1
IL_0042: ldelema NetNode
IL_0047: dup
IL_0048: ldfld Flags NetNode::m_flags
IL_004D: ldc.i4 -1048577
IL_0052: and
IL_0053: stfld Flags NetNode::m_flags
IL_0058: br => Label10
IL_005D: Label0
IL_005D: ldloc.1
IL_005E: ldfld Array16`1<NetNode> NetManager::m_nodes
IL_0063: ldfld NetNode[] Array16`1<NetNode>::m_buffer
IL_0068: ldarg.1
IL_0069: ldelema NetNode
IL_006E: ldfld System.UInt16 NetNode::m_building
IL_0073: stloc.s 4 (System.UInt16)
IL_0075: ldloc.s 4 (System.UInt16)
IL_0077: brfalse => Label1
IL_007C: call static BuildingManager
ColossalFramework.Singleton`1<BuildingManager>::get_instance()
IL_0081: stloc.s 5 (BuildingManager)
IL_0083: ldloc.s 5 (BuildingManager)
IL_0085: ldfld Array16`1<Building> BuildingManager::m_buildings
IL_008A: ldfld Building[] Array16`1<Building>::m_buffer
IL_008F: ldloc.s 4 (System.UInt16)
IL_0091: ldelema Building
IL_0096: ldfld System.UInt16 Building::m_electricityBuffer
IL_009B: ldarg.2
IL_009C: beq => Label2
IL_00A1: ldloc.s 5 (BuildingManager)
IL_00A3: ldfld Array16`1<Building> BuildingManager::m_buildings
IL_00A8: ldfld Building[] Array16`1<Building>::m_buffer
IL_00AD: ldloc.s 4 (System.UInt16)
IL_00AF: ldelema Building
IL_00B4: ldarg.2
IL_00B5: conv.u2
IL_00B6: stfld System.UInt16 Building::m_electricityBuffer
IL_00BB: ldloc.0
IL_00BC: ldc.i4.1
IL_00BD: ceq
IL_00BF: stloc.2
IL_00C0: Label2
IL_00C0: ldloc.2
IL_00C1: brfalse => Label3
IL_00C6: ldloc.s 5 (BuildingManager)
IL_00C8: ldloc.s 4 (System.UInt16)
IL_00CA: callvirt System.Void BuildingManager::UpdateBuildingColors(System.UInt16
building)
IL_00CF: Label1
IL_00CF: Label3
IL_00CF: ldloc.3
IL_00D0: ldc.i4 -67108865
IL_00D5: and
IL_00D6: stloc.s 6 (NetNode+Flags)
IL_00D8: ldarg.2
IL_00D9: brfalse => Label4
IL_00DE: ldloc.s 6 (NetNode+Flags)
IL_00E0: ldc.i4 67108864
IL_00E5: or
IL_00E6: stloc.s 6 (NetNode+Flags)
IL_00E8: Label4
IL_00E8: ldloc.s 6 (NetNode+Flags)
IL_00EA: ldloc.3
IL_00EB: beq => Label5
IL_00F0: ldloc.1
IL_00F1: ldfld Array16`1<NetNode> NetManager::m_nodes
IL_00F6: ldfld NetNode[] Array16`1<NetNode>::m_buffer
IL_00FB: ldarg.1
IL_00FC: ldelema NetNode
IL_0101: ldloc.s 6 (NetNode+Flags)
IL_0103: stfld Flags NetNode::m_flags
IL_0108: ldloc.0
IL_0109: ldc.i4.1
IL_010A: ceq
IL_010C: stloc.2
IL_010D: Label5
IL_010D: ldloc.2
IL_010E: brfalse => Label6
IL_0113: ldloc.1
IL_0114: ldarg.1
IL_0115: conv.u2
IL_0116: callvirt System.Void NetManager::UpdateNodeColors(System.UInt16 node)
IL_011B: ldc.i4.0
IL_011C: stloc.s 7 (System.Int32)
IL_011E: br => Label7
IL_0123: Label9
IL_0123: ldloc.1
IL_0124: ldfld Array16`1<NetNode> NetManager::m_nodes
IL_0129: ldfld NetNode[] Array16`1<NetNode>::m_buffer
IL_012E: ldarg.1
IL_012F: ldelema NetNode
IL_0134: ldloc.s 7 (System.Int32)
IL_0136: call System.UInt16 NetNode::GetSegment(System.Int32 index)
IL_013B: stloc.s 8 (System.UInt16)
IL_013D: ldloc.s 8 (System.UInt16)
IL_013F: brfalse => Label8
IL_0144: ldloc.1
IL_0145: ldloc.s 8 (System.UInt16)
IL_0147: callvirt System.Void NetManager::UpdateSegmentColors(System.UInt16
segment)
IL_014C: Label8
IL_014C: ldloc.s 7 (System.Int32)
IL_014E: ldc.i4.1
IL_014F: add
IL_0150: stloc.s 7 (System.Int32)
IL_0152: Label7
IL_0152: ldloc.s 7 (System.Int32)
IL_0154: ldc.i4.8
IL_0155: blt => Label9
IL_015A: // end original
IL_015A: Label6
IL_015A: Label10
IL_015A: ret
DONE

### Patch: static System.Void PropInstance::RenderInstance(CameraInfo cameraInfo,


PropInfo info, InstanceID id, UnityEngine.Vector3 position, System.Single scale,
System.Single angle, UnityEngine.Color color, UnityEngine.Vector4 objectIndex,
System.Boolean active, UnityEngine.Texture heightMap, UnityEngine.Vector4
heightMapping, UnityEngine.Vector4 surfaceMapping, UnityEngine.Texture
waterHeightMap, UnityEngine.Vector4 waterHeightMapping, UnityEngine.Vector4
waterSurfaceMapping)
### Replacement: static System.Void
PropInstance::PropInstance.RenderInstance_Patch0(CameraInfo cameraInfo, PropInfo
info, InstanceID id, UnityEngine.Vector3 position, System.Single scale,
System.Single angle, UnityEngine.Color color, UnityEngine.Vector4 objectIndex,
System.Boolean active, UnityEngine.Texture heightMap, UnityEngine.Vector4
heightMapping, UnityEngine.Vector4 surfaceMapping, UnityEngine.Texture
waterHeightMap, UnityEngine.Vector4 waterHeightMapping, UnityEngine.Vector4
waterSurfaceMapping)
IL_0000: Local var 0: UnityEngine.Matrix4x4
IL_0000: Local var 1: System.Single
IL_0000: Local var 2: System.Int32
IL_0000: Local var 3: UnityEngine.Vector3
IL_0000: Local var 4: UnityEngine.Vector3
IL_0000: Local var 5: EffectInfo/SpawnArea
IL_0000: Local var 6: System.Single
IL_0000: Local var 7: LightSystem
IL_0000: Local var 8: ColossalFramework.Math.Randomizer
IL_0000: Local var 9: UnityEngine.Vector4
IL_0000: Local var 10: System.Single
IL_0000: Local var 11: System.Single
IL_0000: Local var 12: System.Single
IL_0000: Local var 13: UnityEngine.Matrix4x4
IL_0000: Local var 14: PropManager
IL_0000: Local var 15: UnityEngine.MaterialPropertyBlock
IL_0000: Local var 16: System.Int32
IL_0000: // start original
IL_0000: ldarg.1
IL_0001: ldfld System.Boolean PrefabInfo::m_prefabInitialized
IL_0006: brfalse => Label0
IL_000B: ldarg.1
IL_000C: ldfld System.Boolean PropInfo::m_hasEffects
IL_0011: brfalse => Label1
IL_0016: ldarg.s 8
IL_0018: brtrue => Label2
IL_001D: ldarg.1
IL_001E: ldfld System.Boolean PropInfo::m_alwaysActive
IL_0023: brfalse => Label3
IL_0028: Label2
IL_0028: ldloca.s 0 (UnityEngine.Matrix4x4)
IL_002A: initobj UnityEngine.Matrix4x4
IL_0030: ldloca.s 0 (UnityEngine.Matrix4x4)
IL_0032: ldarg.3
IL_0033: ldarg.s 5
IL_0035: ldc.r4 57.29578
IL_003A: mul
IL_003B: call static UnityEngine.Vector3 UnityEngine.Vector3::get_down()
IL_0040: call static UnityEngine.Quaternion
UnityEngine.Quaternion::AngleAxis(System.Single angle, UnityEngine.Vector3 axis)
IL_0045: ldarg.s 4
IL_0047: ldarg.s 4
IL_0049: ldarg.s 4
IL_004B: newobj System.Void UnityEngine.Vector3::.ctor(System.Single x,
System.Single y, System.Single z)
IL_0050: call System.Void UnityEngine.Matrix4x4::SetTRS(UnityEngine.Vector3
pos, UnityEngine.Quaternion q, UnityEngine.Vector3 s)
IL_0055: call static SimulationManager
ColossalFramework.Singleton`1<SimulationManager>::get_instance()
IL_005A: ldfld System.Single SimulationManager::m_simulationTimeDelta
IL_005F: stloc.1
IL_0060: ldc.i4.0
IL_0061: stloc.2
IL_0062: br => Label4
IL_0067: Label5
IL_0067: ldloca.s 0 (UnityEngine.Matrix4x4)
IL_0069: ldarg.1
IL_006A: ldfld Effect[] PropInfo::m_effects
IL_006F: ldloc.2
IL_0070: ldelema PropInfo+Effect
IL_0075: ldfld UnityEngine.Vector3 Effect::m_position
IL_007A: call UnityEngine.Vector3
UnityEngine.Matrix4x4::MultiplyPoint(UnityEngine.Vector3 v)
IL_007F: stloc.3
IL_0080: ldloca.s 0 (UnityEngine.Matrix4x4)
IL_0082: ldarg.1
IL_0083: ldfld Effect[] PropInfo::m_effects
IL_0088: ldloc.2
IL_0089: ldelema PropInfo+Effect
IL_008E: ldfld UnityEngine.Vector3 Effect::m_direction
IL_0093: call UnityEngine.Vector3
UnityEngine.Matrix4x4::MultiplyVector(UnityEngine.Vector3 v)
IL_0098: stloc.s 4 (UnityEngine.Vector3)
IL_009A: ldloca.s 5 (EffectInfo+SpawnArea)
IL_009C: ldloc.3
IL_009D: ldloc.s 4 (UnityEngine.Vector3)
IL_009F: ldc.r4 0
IL_00A4: call System.Void SpawnArea::.ctor(UnityEngine.Vector3 position,
UnityEngine.Vector3 direction, System.Single radius)
IL_00A9: ldarg.1
IL_00AA: ldfld Effect[] PropInfo::m_effects
IL_00AF: ldloc.2
IL_00B0: ldelema PropInfo+Effect
IL_00B5: ldfld EffectInfo Effect::m_effect
IL_00BA: ldarg.2
IL_00BB: ldloc.s 5 (EffectInfo+SpawnArea)
IL_00BD: call static UnityEngine.Vector3 UnityEngine.Vector3::get_zero()
IL_00C2: ldc.r4 0
IL_00C7: ldc.r4 1
IL_00CC: ldc.r4 -1
IL_00D1: ldloc.1
IL_00D2: ldarg.0
IL_00D3: callvirt virtual System.Void EffectInfo::RenderEffect(InstanceID id,
SpawnArea area, UnityEngine.Vector3 velocity, System.Single acceleration,
System.Single magnitude, System.Single timeOffset, System.Single timeDelta,
CameraInfo cameraInfo)
IL_00D8: ldloc.2
IL_00D9: ldc.i4.1
IL_00DA: add
IL_00DB: stloc.2
IL_00DC: Label4
IL_00DC: ldloc.2
IL_00DD: ldarg.1
IL_00DE: ldfld Effect[] PropInfo::m_effects
IL_00E3: ldlen
IL_00E4: conv.i4
IL_00E5: blt => Label5
IL_00EA: Label1
IL_00EA: Label3
IL_00EA: ldarg.1
IL_00EB: ldfld System.Boolean PropInfo::m_hasRenderer
IL_00F0: brfalse => Label6
IL_00F5: ldarg.0
IL_00F6: ldfld System.Int32 CameraInfo::m_layerMask
IL_00FB: ldc.i4.1
IL_00FC: ldarg.1
IL_00FD: ldfld System.Int32 PrefabInfo::m_prefabDataLayer
IL_0102: ldc.i4.s 31
IL_0104: and
IL_0105: shl
IL_0106: and
IL_0107: brfalse => Label7
IL_010C: call static InfoManager
ColossalFramework.Singleton`1<InfoManager>::get_instance()
IL_0111: callvirt InfoMode InfoManager::get_CurrentMode()
IL_0116: brtrue => Label8
IL_011B: ldc.r4 0
IL_0120: stloc.s 6 (System.Single)
IL_0122: ldarg.s 8
IL_0124: brtrue => Label9
IL_0129: ldarg.1
IL_012A: ldfld System.Boolean PropInfo::m_alwaysActive
IL_012F: brtrue => Label10
IL_0134: ldarga.s 7
IL_0136: ldc.r4 0
IL_013B: stfld System.Single UnityEngine.Vector4::z
IL_0140: br => Label11
IL_0145: Label9
IL_0145: Label10
IL_0145: ldarg.1
IL_0146: ldflda UnityEngine.Vector2 PropInfo::m_illuminationOffRange
IL_014B: ldfld System.Single UnityEngine.Vector2::x
IL_0150: ldc.r4 1000
IL_0155: blt => Label12
IL_015A: ldarg.1
IL_015B: ldfld BlinkType PropInfo::m_illuminationBlinkType
IL_0160: brfalse => Label13
IL_0165: Label12
IL_0165: call static RenderManager
ColossalFramework.Singleton`1<RenderManager>::get_instance()
IL_016A: callvirt LightSystem RenderManager::get_lightSystem()
IL_016F: stloc.s 7 (LightSystem)
IL_0171: ldloca.s 8 (ColossalFramework.Math.Randomizer)
IL_0173: ldarga.s 2
IL_0175: call System.UInt32 InstanceID::get_Index()
IL_017A: call System.Void
ColossalFramework.Math.Randomizer::.ctor(System.UInt32 _seed)
IL_017F: ldarg.1
IL_0180: ldflda UnityEngine.Vector2 PropInfo::m_illuminationOffRange
IL_0185: ldfld System.Single UnityEngine.Vector2::x
IL_018A: ldloca.s 8 (ColossalFramework.Math.Randomizer)
IL_018C: ldc.i4 100000
IL_0191: call System.Int32
ColossalFramework.Math.Randomizer::Int32(System.UInt32 range)
IL_0196: conv.r4
IL_0197: ldc.r4 1E-05
IL_019C: mul
IL_019D: ldarg.1
IL_019E: ldflda UnityEngine.Vector2 PropInfo::m_illuminationOffRange
IL_01A3: ldfld System.Single UnityEngine.Vector2::y
IL_01A8: ldarg.1
IL_01A9: ldflda UnityEngine.Vector2 PropInfo::m_illuminationOffRange
IL_01AE: ldfld System.Single UnityEngine.Vector2::x
IL_01B3: sub
IL_01B4: mul
IL_01B5: add
IL_01B6: stloc.s 6 (System.Single)
IL_01B8: ldarga.s 7
IL_01BA: ldloc.s 6 (System.Single)
IL_01BC: ldc.r4 0.01
IL_01C1: add
IL_01C2: ldloc.s 6 (System.Single)
IL_01C4: ldc.r4 0.01
IL_01C9: sub
IL_01CA: ldloc.s 7 (LightSystem)
IL_01CC: callvirt System.Single LightSystem::get_DayLightIntensity()
IL_01D1: call static System.Single MathUtils::SmoothStep(System.Single edge0,
System.Single edge1, System.Single x)
IL_01D6: stfld System.Single UnityEngine.Vector4::z
IL_01DB: ldarg.1
IL_01DC: ldfld BlinkType PropInfo::m_illuminationBlinkType
IL_01E1: brfalse => Label14
IL_01E6: ldarg.1
IL_01E7: ldfld BlinkType PropInfo::m_illuminationBlinkType
IL_01EC: call static UnityEngine.Vector4
LightEffect::GetBlinkVector(BlinkType type)
IL_01F1: stloc.s 9 (UnityEngine.Vector4)
IL_01F3: ldloc.s 6 (System.Single)
IL_01F5: ldc.r4 3.71
IL_01FA: mul
IL_01FB: call static SimulationManager
ColossalFramework.Singleton`1<SimulationManager>::get_instance()
IL_0200: ldfld System.Single SimulationManager::m_simulationTimer
IL_0205: ldloca.s 9 (UnityEngine.Vector4)
IL_0207: ldfld System.Single UnityEngine.Vector4::w
IL_020C: div
IL_020D: add
IL_020E: stloc.s 10 (System.Single)
IL_0210: ldloc.s 10 (System.Single)
IL_0212: ldloc.s 10 (System.Single)
IL_0214: call static System.Single UnityEngine.Mathf::Floor(System.Single f)
IL_0219: sub
IL_021A: ldloca.s 9 (UnityEngine.Vector4)
IL_021C: ldfld System.Single UnityEngine.Vector4::w
IL_0221: mul
IL_0222: stloc.s 10 (System.Single)
IL_0224: ldloca.s 9 (UnityEngine.Vector4)
IL_0226: ldfld System.Single UnityEngine.Vector4::x
IL_022B: ldloca.s 9 (UnityEngine.Vector4)
IL_022D: ldfld System.Single UnityEngine.Vector4::y
IL_0232: ldloc.s 10 (System.Single)
IL_0234: call static System.Single MathUtils::SmoothStep(System.Single edge0,
System.Single edge1, System.Single x)
IL_0239: stloc.s 11 (System.Single)
IL_023B: ldloca.s 9 (UnityEngine.Vector4)
IL_023D: ldfld System.Single UnityEngine.Vector4::w
IL_0242: ldloca.s 9 (UnityEngine.Vector4)
IL_0244: ldfld System.Single UnityEngine.Vector4::z
IL_0249: ldloc.s 10 (System.Single)
IL_024B: call static System.Single MathUtils::SmoothStep(System.Single edge0,
System.Single edge1, System.Single x)
IL_0250: stloc.s 12 (System.Single)
IL_0252: ldarga.s 7
IL_0254: dup
IL_0255: ldfld System.Single UnityEngine.Vector4::z
IL_025A: ldc.r4 1
IL_025F: ldloc.s 11 (System.Single)
IL_0261: ldloc.s 12 (System.Single)
IL_0263: mul
IL_0264: sub
IL_0265: mul
IL_0266: stfld System.Single UnityEngine.Vector4::z
IL_026B: Label14
IL_026B: br => Label15
IL_0270: Label13
IL_0270: ldarga.s 7
IL_0272: ldc.r4 1
IL_0277: stfld System.Single UnityEngine.Vector4::z
IL_027C: Label8
IL_027C: Label11
IL_027C: Label15
IL_027C: ldarg.0
IL_027D: brfalse => Label16
IL_0282: ldarg.0
IL_0283: ldarg.3
IL_0284: ldarg.1
IL_0285: ldfld System.Single PropInfo::m_lodRenderDistance
IL_028A: callvirt System.Boolean
CameraInfo::CheckRenderDistance(UnityEngine.Vector3 point, System.Single
maxDistance)
IL_028F: brfalse => Label17
IL_0294: Label16
IL_0294: ldloca.s 13 (UnityEngine.Matrix4x4)
IL_0296: initobj UnityEngine.Matrix4x4
IL_029C: ldloca.s 13 (UnityEngine.Matrix4x4)
IL_029E: ldarg.3
IL_029F: ldarg.s 5
IL_02A1: ldc.r4 57.29578
IL_02A6: mul
IL_02A7: call static UnityEngine.Vector3 UnityEngine.Vector3::get_down()
IL_02AC: call static UnityEngine.Quaternion
UnityEngine.Quaternion::AngleAxis(System.Single angle, UnityEngine.Vector3 axis)
IL_02B1: ldarg.s 4
IL_02B3: ldarg.s 4
IL_02B5: ldarg.s 4
IL_02B7: newobj System.Void UnityEngine.Vector3::.ctor(System.Single x,
System.Single y, System.Single z)
IL_02BC: call System.Void UnityEngine.Matrix4x4::SetTRS(UnityEngine.Vector3
pos, UnityEngine.Quaternion q, UnityEngine.Vector3 s)
IL_02C1: call static PropManager
ColossalFramework.Singleton`1<PropManager>::get_instance()
IL_02C6: stloc.s 14 (PropManager)
IL_02C8: ldloc.s 14 (PropManager)
IL_02CA: ldfld UnityEngine.MaterialPropertyBlock PropManager::m_materialBlock
IL_02CF: stloc.s 15 (UnityEngine.MaterialPropertyBlock)
IL_02D1: ldloc.s 15 (UnityEngine.MaterialPropertyBlock)
IL_02D3: callvirt System.Void UnityEngine.MaterialPropertyBlock::Clear()
IL_02D8: ldloc.s 15 (UnityEngine.MaterialPropertyBlock)
IL_02DA: ldloc.s 14 (PropManager)
IL_02DC: ldfld System.Int32 PropManager::ID_Color
IL_02E1: ldarg.s 6
IL_02E3: callvirt System.Void
UnityEngine.MaterialPropertyBlock::SetColor(System.Int32 nameID, UnityEngine.Color
value)
IL_02E8: ldloc.s 15 (UnityEngine.MaterialPropertyBlock)
IL_02EA: ldloc.s 14 (PropManager)
IL_02EC: ldfld System.Int32 PropManager::ID_HeightMap
IL_02F1: ldarg.s 9
IL_02F3: callvirt System.Void
UnityEngine.MaterialPropertyBlock::SetTexture(System.Int32 nameID,
UnityEngine.Texture value)
IL_02F8: ldloc.s 15 (UnityEngine.MaterialPropertyBlock)
IL_02FA: ldloc.s 14 (PropManager)
IL_02FC: ldfld System.Int32 PropManager::ID_HeightMapping
IL_0301: ldarg.s 10
IL_0303: callvirt System.Void
UnityEngine.MaterialPropertyBlock::SetVector(System.Int32 nameID,
UnityEngine.Vector4 value)
IL_0308: ldloc.s 15 (UnityEngine.MaterialPropertyBlock)
IL_030A: ldloc.s 14 (PropManager)
IL_030C: ldfld System.Int32 PropManager::ID_SurfaceMapping
IL_0311: ldarg.s 11
IL_0313: callvirt System.Void
UnityEngine.MaterialPropertyBlock::SetVector(System.Int32 nameID,
UnityEngine.Vector4 value)
IL_0318: ldloc.s 15 (UnityEngine.MaterialPropertyBlock)
IL_031A: ldloc.s 14 (PropManager)
IL_031C: ldfld System.Int32 PropManager::ID_ObjectIndex
IL_0321: ldarg.s 7
IL_0323: callvirt System.Void
UnityEngine.MaterialPropertyBlock::SetVector(System.Int32 nameID,
UnityEngine.Vector4 value)
IL_0328: ldloc.s 15 (UnityEngine.MaterialPropertyBlock)
IL_032A: ldloc.s 14 (PropManager)
IL_032C: ldfld System.Int32 PropManager::ID_WaterHeightMap
IL_0331: ldarg.s 12
IL_0333: callvirt System.Void
UnityEngine.MaterialPropertyBlock::SetTexture(System.Int32 nameID,
UnityEngine.Texture value)
IL_0338: ldloc.s 15 (UnityEngine.MaterialPropertyBlock)
IL_033A: ldloc.s 14 (PropManager)
IL_033C: ldfld System.Int32 PropManager::ID_WaterHeightMapping
IL_0341: ldarg.s 13
IL_0343: callvirt System.Void
UnityEngine.MaterialPropertyBlock::SetVector(System.Int32 nameID,
UnityEngine.Vector4 value)
IL_0348: ldloc.s 15 (UnityEngine.MaterialPropertyBlock)
IL_034A: ldloc.s 14 (PropManager)
IL_034C: ldfld System.Int32 PropManager::ID_WaterSurfaceMapping
IL_0351: ldarg.s 14
IL_0353: callvirt System.Void
UnityEngine.MaterialPropertyBlock::SetVector(System.Int32 nameID,
UnityEngine.Vector4 value)
IL_0358: ldarg.1
IL_0359: ldfld UnityEngine.Vector4[] PropInfo::m_rollLocation
IL_035E: brfalse => Label18
IL_0363: ldarg.1
IL_0364: ldfld UnityEngine.Material PropInfo::m_material
IL_0369: ldloc.s 14 (PropManager)
IL_036B: ldfld System.Int32 PropManager::ID_RollLocation
IL_0370: ldarg.1
IL_0371: ldfld UnityEngine.Vector4[] PropInfo::m_rollLocation
IL_0376: callvirt System.Void UnityEngine.Material::SetVectorArray(System.Int32
nameID, UnityEngine.Vector4[] values)
IL_037B: ldarg.1
IL_037C: ldfld UnityEngine.Material PropInfo::m_material
IL_0381: ldloc.s 14 (PropManager)
IL_0383: ldfld System.Int32 PropManager::ID_RollParams
IL_0388: ldarg.1
IL_0389: ldfld UnityEngine.Vector4[] PropInfo::m_rollParams
IL_038E: callvirt System.Void UnityEngine.Material::SetVectorArray(System.Int32
nameID, UnityEngine.Vector4[] values)
IL_0393: Label18
IL_0393: ldloc.s 14 (PropManager)
IL_0395: ldflda DrawCallData SimulationManagerBase`2<PropManager,
PropProperties>::m_drawCallData
IL_039A: dup
IL_039B: ldfld System.Int32 DrawCallData::m_defaultCalls
IL_03A0: ldc.i4.1
IL_03A1: add
IL_03A2: stfld System.Int32 DrawCallData::m_defaultCalls
IL_03A7: ldarg.1
IL_03A8: ldfld UnityEngine.Mesh PropInfo::m_mesh
IL_03AD: ldloc.s 13 (UnityEngine.Matrix4x4)
IL_03AF: ldarg.1
IL_03B0: ldfld UnityEngine.Material PropInfo::m_material
IL_03B5: ldarg.1
IL_03B6: ldfld System.Int32 PrefabInfo::m_prefabDataLayer
IL_03BB: ldnull
IL_03BC: ldc.i4.0
IL_03BD: ldloc.s 15 (UnityEngine.MaterialPropertyBlock)
IL_03BF: call static System.Void
UnityEngine.Graphics::DrawMesh(UnityEngine.Mesh mesh, UnityEngine.Matrix4x4 matrix,
UnityEngine.Material material, System.Int32 layer, UnityEngine.Camera camera,
System.Int32 submeshIndex, UnityEngine.MaterialPropertyBlock properties)
IL_03C4: br => Label19
IL_03C9: Label17
IL_03C9: ldarg.s 9
IL_03CB: ldarg.1
IL_03CC: ldfld UnityEngine.Texture PropInfo::m_lodHeightMap
IL_03D1: call static System.Boolean
UnityEngine.Object::op_Inequality(UnityEngine.Object x, UnityEngine.Object y)
IL_03D6: brtrue => Label20
IL_03DB: ldarg.s 12
IL_03DD: ldarg.1
IL_03DE: ldfld UnityEngine.Texture PropInfo::m_lodWaterHeightMap
IL_03E3: call static System.Boolean
UnityEngine.Object::op_Inequality(UnityEngine.Object x, UnityEngine.Object y)
IL_03E8: brfalse => Label21
IL_03ED: Label20
IL_03ED: ldarg.1
IL_03EE: ldfld System.Int32 PropInfo::m_lodCount
IL_03F3: brfalse => Label22
IL_03F8: ldarg.0
IL_03F9: ldarg.1
IL_03FA: call static System.Void PropInstance::RenderLod(CameraInfo
cameraInfo, PropInfo info)
IL_03FF: Label22
IL_03FF: ldarg.1
IL_0400: ldarg.s 9
IL_0402: stfld UnityEngine.Texture PropInfo::m_lodHeightMap
IL_0407: ldarg.1
IL_0408: ldarg.s 10
IL_040A: stfld UnityEngine.Vector4 PropInfo::m_lodHeightMapping
IL_040F: ldarg.1
IL_0410: ldarg.s 11
IL_0412: stfld UnityEngine.Vector4 PropInfo::m_lodSurfaceMapping
IL_0417: ldarg.1
IL_0418: ldarg.s 12
IL_041A: stfld UnityEngine.Texture PropInfo::m_lodWaterHeightMap
IL_041F: ldarg.1
IL_0420: ldarg.s 13
IL_0422: stfld UnityEngine.Vector4 PropInfo::m_lodWaterHeightMapping
IL_0427: ldarg.1
IL_0428: ldarg.s 14
IL_042A: stfld UnityEngine.Vector4 PropInfo::m_lodWaterSurfaceMapping
IL_042F: Label21
IL_042F: ldarga.s 7
IL_0431: ldarg.s 4
IL_0433: stfld System.Single UnityEngine.Vector4::w
IL_0438: ldarg.1
IL_0439: ldfld UnityEngine.Vector4[] PropInfo::m_lodLocations
IL_043E: ldarg.1
IL_043F: ldfld System.Int32 PropInfo::m_lodCount
IL_0444: ldelema UnityEngine.Vector4
IL_0449: ldarga.s 3
IL_044B: ldfld System.Single UnityEngine.Vector3::x
IL_0450: ldarga.s 3
IL_0452: ldfld System.Single UnityEngine.Vector3::y
IL_0457: ldarga.s 3
IL_0459: ldfld System.Single UnityEngine.Vector3::z
IL_045E: ldarg.s 5
IL_0460: newobj System.Void UnityEngine.Vector4::.ctor(System.Single x,
System.Single y, System.Single z, System.Single w)
IL_0465: stobj UnityEngine.Vector4
IL_046A: ldarg.1
IL_046B: ldfld UnityEngine.Vector4[] PropInfo::m_lodObjectIndices
IL_0470: ldarg.1
IL_0471: ldfld System.Int32 PropInfo::m_lodCount
IL_0476: ldelema UnityEngine.Vector4
IL_047B: ldarg.s 7
IL_047D: stobj UnityEngine.Vector4
IL_0482: ldarg.1
IL_0483: ldfld UnityEngine.Vector4[] PropInfo::m_lodColors
IL_0488: ldarg.1
IL_0489: ldfld System.Int32 PropInfo::m_lodCount
IL_048E: ldelema UnityEngine.Vector4
IL_0493: ldarga.s 6
IL_0495: call UnityEngine.Color UnityEngine.Color::get_linear()
IL_049A: call static UnityEngine.Vector4
UnityEngine.Color::op_Implicit(UnityEngine.Color c)
IL_049F: stobj UnityEngine.Vector4
IL_04A4: ldarg.1
IL_04A5: ldarg.1
IL_04A6: ldfld UnityEngine.Vector3 PropInfo::m_lodMin
IL_04AB: ldarg.3
IL_04AC: call static UnityEngine.Vector3
UnityEngine.Vector3::Min(UnityEngine.Vector3 lhs, UnityEngine.Vector3 rhs)
IL_04B1: stfld UnityEngine.Vector3 PropInfo::m_lodMin
IL_04B6: ldarg.1
IL_04B7: ldarg.1
IL_04B8: ldfld UnityEngine.Vector3 PropInfo::m_lodMax
IL_04BD: ldarg.3
IL_04BE: call static UnityEngine.Vector3
UnityEngine.Vector3::Max(UnityEngine.Vector3 lhs, UnityEngine.Vector3 rhs)
IL_04C3: stfld UnityEngine.Vector3 PropInfo::m_lodMax
IL_04C8: ldarg.1
IL_04C9: dup
IL_04CA: ldfld System.Int32 PropInfo::m_lodCount
IL_04CF: ldc.i4.1
IL_04D0: add
IL_04D1: dup
IL_04D2: stloc.s 16 (System.Int32)
IL_04D4: stfld System.Int32 PropInfo::m_lodCount
IL_04D9: ldloc.s 16 (System.Int32)
IL_04DB: ldarg.1
IL_04DC: ldfld UnityEngine.Vector4[] PropInfo::m_lodLocations
IL_04E1: ldlen
IL_04E2: conv.i4
IL_04E3: bne.un => Label23
IL_04E8: ldarg.0
IL_04E9: ldarg.1
IL_04EA: call static System.Void PropInstance::RenderLod(CameraInfo
cameraInfo, PropInfo info)
IL_04EF: // end original
IL_04EF: Label0
IL_04EF: Label6
IL_04EF: Label7
IL_04EF: Label19
IL_04EF: Label23
IL_04EF: ret
DONE

### Patch: static System.Void PropInstance::RenderInstance(CameraInfo cameraInfo,


PropInfo info, InstanceID id, UnityEngine.Vector3 position, System.Single scale,
System.Single angle, UnityEngine.Color color, UnityEngine.Vector4 objectIndex,
System.Boolean active)
### Replacement: static System.Void
PropInstance::PropInstance.RenderInstance_Patch0(CameraInfo cameraInfo, PropInfo
info, InstanceID id, UnityEngine.Vector3 position, System.Single scale,
System.Single angle, UnityEngine.Color color, UnityEngine.Vector4 objectIndex,
System.Boolean active)
IL_0000: Local var 0: UnityEngine.Matrix4x4
IL_0000: Local var 1: System.Single
IL_0000: Local var 2: System.Int32
IL_0000: Local var 3: UnityEngine.Vector3
IL_0000: Local var 4: UnityEngine.Vector3
IL_0000: Local var 5: EffectInfo/SpawnArea
IL_0000: Local var 6: System.Single
IL_0000: Local var 7: LightSystem
IL_0000: Local var 8: ColossalFramework.Math.Randomizer
IL_0000: Local var 9: UnityEngine.Vector4
IL_0000: Local var 10: System.Single
IL_0000: Local var 11: System.Single
IL_0000: Local var 12: System.Single
IL_0000: Local var 13: UnityEngine.Matrix4x4
IL_0000: Local var 14: PropManager
IL_0000: Local var 15: UnityEngine.MaterialPropertyBlock
IL_0000: Local var 16: UnityEngine.Matrix4x4
IL_0000: Local var 17: PropManager
IL_0000: Local var 18: UnityEngine.MaterialPropertyBlock
IL_0000: Local var 19: System.Int32
IL_0000: // start original
IL_0000: ldarg.1
IL_0001: ldfld System.Boolean PrefabInfo::m_prefabInitialized
IL_0006: brfalse => Label0
IL_000B: ldarg.1
IL_000C: ldfld System.Boolean PropInfo::m_hasEffects
IL_0011: brfalse => Label1
IL_0016: ldarg.s 8
IL_0018: brtrue => Label2
IL_001D: ldarg.1
IL_001E: ldfld System.Boolean PropInfo::m_alwaysActive
IL_0023: brfalse => Label3
IL_0028: Label2
IL_0028: ldloca.s 0 (UnityEngine.Matrix4x4)
IL_002A: initobj UnityEngine.Matrix4x4
IL_0030: ldloca.s 0 (UnityEngine.Matrix4x4)
IL_0032: ldarg.3
IL_0033: ldarg.s 5
IL_0035: ldc.r4 57.29578
IL_003A: mul
IL_003B: call static UnityEngine.Vector3 UnityEngine.Vector3::get_down()
IL_0040: call static UnityEngine.Quaternion
UnityEngine.Quaternion::AngleAxis(System.Single angle, UnityEngine.Vector3 axis)
IL_0045: ldarg.s 4
IL_0047: ldarg.s 4
IL_0049: ldarg.s 4
IL_004B: newobj System.Void UnityEngine.Vector3::.ctor(System.Single x,
System.Single y, System.Single z)
IL_0050: call System.Void UnityEngine.Matrix4x4::SetTRS(UnityEngine.Vector3
pos, UnityEngine.Quaternion q, UnityEngine.Vector3 s)
IL_0055: call static SimulationManager
ColossalFramework.Singleton`1<SimulationManager>::get_instance()
IL_005A: ldfld System.Single SimulationManager::m_simulationTimeDelta
IL_005F: stloc.1
IL_0060: ldc.i4.0
IL_0061: stloc.2
IL_0062: br => Label4
IL_0067: Label5
IL_0067: ldloca.s 0 (UnityEngine.Matrix4x4)
IL_0069: ldarg.1
IL_006A: ldfld Effect[] PropInfo::m_effects
IL_006F: ldloc.2
IL_0070: ldelema PropInfo+Effect
IL_0075: ldfld UnityEngine.Vector3 Effect::m_position
IL_007A: call UnityEngine.Vector3
UnityEngine.Matrix4x4::MultiplyPoint(UnityEngine.Vector3 v)
IL_007F: stloc.3
IL_0080: ldloca.s 0 (UnityEngine.Matrix4x4)
IL_0082: ldarg.1
IL_0083: ldfld Effect[] PropInfo::m_effects
IL_0088: ldloc.2
IL_0089: ldelema PropInfo+Effect
IL_008E: ldfld UnityEngine.Vector3 Effect::m_direction
IL_0093: call UnityEngine.Vector3
UnityEngine.Matrix4x4::MultiplyVector(UnityEngine.Vector3 v)
IL_0098: stloc.s 4 (UnityEngine.Vector3)
IL_009A: ldloca.s 5 (EffectInfo+SpawnArea)
IL_009C: ldloc.3
IL_009D: ldloc.s 4 (UnityEngine.Vector3)
IL_009F: ldc.r4 0
IL_00A4: call System.Void SpawnArea::.ctor(UnityEngine.Vector3 position,
UnityEngine.Vector3 direction, System.Single radius)
IL_00A9: ldarg.1
IL_00AA: ldfld Effect[] PropInfo::m_effects
IL_00AF: ldloc.2
IL_00B0: ldelema PropInfo+Effect
IL_00B5: ldfld EffectInfo Effect::m_effect
IL_00BA: ldarg.2
IL_00BB: ldloc.s 5 (EffectInfo+SpawnArea)
IL_00BD: call static UnityEngine.Vector3 UnityEngine.Vector3::get_zero()
IL_00C2: ldc.r4 0
IL_00C7: ldc.r4 1
IL_00CC: ldc.r4 -1
IL_00D1: ldloc.1
IL_00D2: ldarg.0
IL_00D3: callvirt virtual System.Void EffectInfo::RenderEffect(InstanceID id,
SpawnArea area, UnityEngine.Vector3 velocity, System.Single acceleration,
System.Single magnitude, System.Single timeOffset, System.Single timeDelta,
CameraInfo cameraInfo)
IL_00D8: ldloc.2
IL_00D9: ldc.i4.1
IL_00DA: add
IL_00DB: stloc.2
IL_00DC: Label4
IL_00DC: ldloc.2
IL_00DD: ldarg.1
IL_00DE: ldfld Effect[] PropInfo::m_effects
IL_00E3: ldlen
IL_00E4: conv.i4
IL_00E5: blt => Label5
IL_00EA: Label1
IL_00EA: Label3
IL_00EA: ldarg.1
IL_00EB: ldfld System.Boolean PropInfo::m_hasRenderer
IL_00F0: brfalse => Label6
IL_00F5: ldarg.0
IL_00F6: ldfld System.Int32 CameraInfo::m_layerMask
IL_00FB: ldc.i4.1
IL_00FC: ldarg.1
IL_00FD: ldfld System.Int32 PrefabInfo::m_prefabDataLayer
IL_0102: ldc.i4.s 31
IL_0104: and
IL_0105: shl
IL_0106: and
IL_0107: brfalse => Label7
IL_010C: call static InfoManager
ColossalFramework.Singleton`1<InfoManager>::get_instance()
IL_0111: callvirt InfoMode InfoManager::get_CurrentMode()
IL_0116: brtrue => Label8
IL_011B: ldc.r4 0
IL_0120: stloc.s 6 (System.Single)
IL_0122: ldarg.s 8
IL_0124: brtrue => Label9
IL_0129: ldarg.1
IL_012A: ldfld System.Boolean PropInfo::m_alwaysActive
IL_012F: brtrue => Label10
IL_0134: ldarga.s 7
IL_0136: ldc.r4 0
IL_013B: stfld System.Single UnityEngine.Vector4::z
IL_0140: br => Label11
IL_0145: Label9
IL_0145: Label10
IL_0145: ldarg.1
IL_0146: ldflda UnityEngine.Vector2 PropInfo::m_illuminationOffRange
IL_014B: ldfld System.Single UnityEngine.Vector2::x
IL_0150: ldc.r4 1000
IL_0155: blt => Label12
IL_015A: ldarg.1
IL_015B: ldfld BlinkType PropInfo::m_illuminationBlinkType
IL_0160: brfalse => Label13
IL_0165: Label12
IL_0165: call static RenderManager
ColossalFramework.Singleton`1<RenderManager>::get_instance()
IL_016A: callvirt LightSystem RenderManager::get_lightSystem()
IL_016F: stloc.s 7 (LightSystem)
IL_0171: ldloca.s 8 (ColossalFramework.Math.Randomizer)
IL_0173: ldarga.s 2
IL_0175: call System.UInt32 InstanceID::get_Index()
IL_017A: call System.Void
ColossalFramework.Math.Randomizer::.ctor(System.UInt32 _seed)
IL_017F: ldarg.1
IL_0180: ldflda UnityEngine.Vector2 PropInfo::m_illuminationOffRange
IL_0185: ldfld System.Single UnityEngine.Vector2::x
IL_018A: ldloca.s 8 (ColossalFramework.Math.Randomizer)
IL_018C: ldc.i4 100000
IL_0191: call System.Int32
ColossalFramework.Math.Randomizer::Int32(System.UInt32 range)
IL_0196: conv.r4
IL_0197: ldc.r4 1E-05
IL_019C: mul
IL_019D: ldarg.1
IL_019E: ldflda UnityEngine.Vector2 PropInfo::m_illuminationOffRange
IL_01A3: ldfld System.Single UnityEngine.Vector2::y
IL_01A8: ldarg.1
IL_01A9: ldflda UnityEngine.Vector2 PropInfo::m_illuminationOffRange
IL_01AE: ldfld System.Single UnityEngine.Vector2::x
IL_01B3: sub
IL_01B4: mul
IL_01B5: add
IL_01B6: stloc.s 6 (System.Single)
IL_01B8: ldarga.s 7
IL_01BA: ldloc.s 6 (System.Single)
IL_01BC: ldc.r4 0.01
IL_01C1: add
IL_01C2: ldloc.s 6 (System.Single)
IL_01C4: ldc.r4 0.01
IL_01C9: sub
IL_01CA: ldloc.s 7 (LightSystem)
IL_01CC: callvirt System.Single LightSystem::get_DayLightIntensity()
IL_01D1: call static System.Single MathUtils::SmoothStep(System.Single edge0,
System.Single edge1, System.Single x)
IL_01D6: stfld System.Single UnityEngine.Vector4::z
IL_01DB: ldarg.1
IL_01DC: ldfld BlinkType PropInfo::m_illuminationBlinkType
IL_01E1: brfalse => Label14
IL_01E6: ldarg.1
IL_01E7: ldfld BlinkType PropInfo::m_illuminationBlinkType
IL_01EC: call static UnityEngine.Vector4
LightEffect::GetBlinkVector(BlinkType type)
IL_01F1: stloc.s 9 (UnityEngine.Vector4)
IL_01F3: ldloc.s 6 (System.Single)
IL_01F5: ldc.r4 3.71
IL_01FA: mul
IL_01FB: call static SimulationManager
ColossalFramework.Singleton`1<SimulationManager>::get_instance()
IL_0200: ldfld System.Single SimulationManager::m_simulationTimer
IL_0205: ldloca.s 9 (UnityEngine.Vector4)
IL_0207: ldfld System.Single UnityEngine.Vector4::w
IL_020C: div
IL_020D: add
IL_020E: stloc.s 10 (System.Single)
IL_0210: ldloc.s 10 (System.Single)
IL_0212: ldloc.s 10 (System.Single)
IL_0214: call static System.Single UnityEngine.Mathf::Floor(System.Single f)
IL_0219: sub
IL_021A: ldloca.s 9 (UnityEngine.Vector4)
IL_021C: ldfld System.Single UnityEngine.Vector4::w
IL_0221: mul
IL_0222: stloc.s 10 (System.Single)
IL_0224: ldloca.s 9 (UnityEngine.Vector4)
IL_0226: ldfld System.Single UnityEngine.Vector4::x
IL_022B: ldloca.s 9 (UnityEngine.Vector4)
IL_022D: ldfld System.Single UnityEngine.Vector4::y
IL_0232: ldloc.s 10 (System.Single)
IL_0234: call static System.Single MathUtils::SmoothStep(System.Single edge0,
System.Single edge1, System.Single x)
IL_0239: stloc.s 11 (System.Single)
IL_023B: ldloca.s 9 (UnityEngine.Vector4)
IL_023D: ldfld System.Single UnityEngine.Vector4::w
IL_0242: ldloca.s 9 (UnityEngine.Vector4)
IL_0244: ldfld System.Single UnityEngine.Vector4::z
IL_0249: ldloc.s 10 (System.Single)
IL_024B: call static System.Single MathUtils::SmoothStep(System.Single edge0,
System.Single edge1, System.Single x)
IL_0250: stloc.s 12 (System.Single)
IL_0252: ldarga.s 7
IL_0254: dup
IL_0255: ldfld System.Single UnityEngine.Vector4::z
IL_025A: ldc.r4 1
IL_025F: ldloc.s 11 (System.Single)
IL_0261: ldloc.s 12 (System.Single)
IL_0263: mul
IL_0264: sub
IL_0265: mul
IL_0266: stfld System.Single UnityEngine.Vector4::z
IL_026B: Label14
IL_026B: br => Label15
IL_0270: Label13
IL_0270: ldarga.s 7
IL_0272: ldc.r4 1
IL_0277: stfld System.Single UnityEngine.Vector4::z
IL_027C: Label8
IL_027C: Label11
IL_027C: Label15
IL_027C: ldarg.0
IL_027D: brfalse => Label16
IL_0282: ldarg.0
IL_0283: ldarg.3
IL_0284: ldarg.1
IL_0285: ldfld System.Single PropInfo::m_lodRenderDistance
IL_028A: callvirt System.Boolean
CameraInfo::CheckRenderDistance(UnityEngine.Vector3 point, System.Single
maxDistance)
IL_028F: brfalse => Label17
IL_0294: Label16
IL_0294: ldloca.s 13 (UnityEngine.Matrix4x4)
IL_0296: initobj UnityEngine.Matrix4x4
IL_029C: ldloca.s 13 (UnityEngine.Matrix4x4)
IL_029E: ldarg.3
IL_029F: ldarg.s 5
IL_02A1: ldc.r4 57.29578
IL_02A6: mul
IL_02A7: call static UnityEngine.Vector3 UnityEngine.Vector3::get_down()
IL_02AC: call static UnityEngine.Quaternion
UnityEngine.Quaternion::AngleAxis(System.Single angle, UnityEngine.Vector3 axis)
IL_02B1: ldarg.s 4
IL_02B3: ldarg.s 4
IL_02B5: ldarg.s 4
IL_02B7: newobj System.Void UnityEngine.Vector3::.ctor(System.Single x,
System.Single y, System.Single z)
IL_02BC: call System.Void UnityEngine.Matrix4x4::SetTRS(UnityEngine.Vector3
pos, UnityEngine.Quaternion q, UnityEngine.Vector3 s)
IL_02C1: call static PropManager
ColossalFramework.Singleton`1<PropManager>::get_instance()
IL_02C6: stloc.s 14 (PropManager)
IL_02C8: ldloc.s 14 (PropManager)
IL_02CA: ldfld UnityEngine.MaterialPropertyBlock PropManager::m_materialBlock
IL_02CF: stloc.s 15 (UnityEngine.MaterialPropertyBlock)
IL_02D1: ldloc.s 15 (UnityEngine.MaterialPropertyBlock)
IL_02D3: callvirt System.Void UnityEngine.MaterialPropertyBlock::Clear()
IL_02D8: ldloc.s 15 (UnityEngine.MaterialPropertyBlock)
IL_02DA: ldloc.s 14 (PropManager)
IL_02DC: ldfld System.Int32 PropManager::ID_Color
IL_02E1: ldarg.s 6
IL_02E3: callvirt System.Void
UnityEngine.MaterialPropertyBlock::SetColor(System.Int32 nameID, UnityEngine.Color
value)
IL_02E8: ldloc.s 15 (UnityEngine.MaterialPropertyBlock)
IL_02EA: ldloc.s 14 (PropManager)
IL_02EC: ldfld System.Int32 PropManager::ID_ObjectIndex
IL_02F1: ldarg.s 7
IL_02F3: callvirt System.Void
UnityEngine.MaterialPropertyBlock::SetVector(System.Int32 nameID,
UnityEngine.Vector4 value)
IL_02F8: ldarg.1
IL_02F9: ldfld UnityEngine.Vector4[] PropInfo::m_rollLocation
IL_02FE: brfalse => Label18
IL_0303: ldarg.1
IL_0304: ldfld UnityEngine.Material PropInfo::m_material
IL_0309: ldloc.s 14 (PropManager)
IL_030B: ldfld System.Int32 PropManager::ID_RollLocation
IL_0310: ldarg.1
IL_0311: ldfld UnityEngine.Vector4[] PropInfo::m_rollLocation
IL_0316: callvirt System.Void UnityEngine.Material::SetVectorArray(System.Int32
nameID, UnityEngine.Vector4[] values)
IL_031B: ldarg.1
IL_031C: ldfld UnityEngine.Material PropInfo::m_material
IL_0321: ldloc.s 14 (PropManager)
IL_0323: ldfld System.Int32 PropManager::ID_RollParams
IL_0328: ldarg.1
IL_0329: ldfld UnityEngine.Vector4[] PropInfo::m_rollParams
IL_032E: callvirt System.Void UnityEngine.Material::SetVectorArray(System.Int32
nameID, UnityEngine.Vector4[] values)
IL_0333: Label18
IL_0333: ldloc.s 14 (PropManager)
IL_0335: ldflda DrawCallData SimulationManagerBase`2<PropManager,
PropProperties>::m_drawCallData
IL_033A: dup
IL_033B: ldfld System.Int32 DrawCallData::m_defaultCalls
IL_0340: ldc.i4.1
IL_0341: add
IL_0342: stfld System.Int32 DrawCallData::m_defaultCalls
IL_0347: ldarg.1
IL_0348: ldfld UnityEngine.Mesh PropInfo::m_mesh
IL_034D: ldloc.s 13 (UnityEngine.Matrix4x4)
IL_034F: ldarg.1
IL_0350: ldfld UnityEngine.Material PropInfo::m_material
IL_0355: ldarg.1
IL_0356: ldfld System.Int32 PrefabInfo::m_prefabDataLayer
IL_035B: ldnull
IL_035C: ldc.i4.0
IL_035D: ldloc.s 15 (UnityEngine.MaterialPropertyBlock)
IL_035F: call static System.Void
UnityEngine.Graphics::DrawMesh(UnityEngine.Mesh mesh, UnityEngine.Matrix4x4 matrix,
UnityEngine.Material material, System.Int32 layer, UnityEngine.Camera camera,
System.Int32 submeshIndex, UnityEngine.MaterialPropertyBlock properties)
IL_0364: br => Label19
IL_0369: Label17
IL_0369: ldarg.1
IL_036A: ldfld UnityEngine.Material PropInfo::m_lodMaterialCombined
IL_036F: ldnull
IL_0370: call static System.Boolean
UnityEngine.Object::op_Equality(UnityEngine.Object x, UnityEngine.Object y)
IL_0375: brfalse => Label20
IL_037A: ldloca.s 16 (UnityEngine.Matrix4x4)
IL_037C: initobj UnityEngine.Matrix4x4
IL_0382: ldloca.s 16 (UnityEngine.Matrix4x4)
IL_0384: ldarg.3
IL_0385: ldarg.s 5
IL_0387: ldc.r4 57.29578
IL_038C: mul
IL_038D: call static UnityEngine.Vector3 UnityEngine.Vector3::get_down()
IL_0392: call static UnityEngine.Quaternion
UnityEngine.Quaternion::AngleAxis(System.Single angle, UnityEngine.Vector3 axis)
IL_0397: ldarg.s 4
IL_0399: ldarg.s 4
IL_039B: ldarg.s 4
IL_039D: newobj System.Void UnityEngine.Vector3::.ctor(System.Single x,
System.Single y, System.Single z)
IL_03A2: call System.Void UnityEngine.Matrix4x4::SetTRS(UnityEngine.Vector3
pos, UnityEngine.Quaternion q, UnityEngine.Vector3 s)
IL_03A7: call static PropManager
ColossalFramework.Singleton`1<PropManager>::get_instance()
IL_03AC: stloc.s 17 (PropManager)
IL_03AE: ldloc.s 17 (PropManager)
IL_03B0: ldfld UnityEngine.MaterialPropertyBlock PropManager::m_materialBlock
IL_03B5: stloc.s 18 (UnityEngine.MaterialPropertyBlock)
IL_03B7: ldloc.s 18 (UnityEngine.MaterialPropertyBlock)
IL_03B9: callvirt System.Void UnityEngine.MaterialPropertyBlock::Clear()
IL_03BE: ldloc.s 18 (UnityEngine.MaterialPropertyBlock)
IL_03C0: ldloc.s 17 (PropManager)
IL_03C2: ldfld System.Int32 PropManager::ID_Color
IL_03C7: ldarg.s 6
IL_03C9: callvirt System.Void
UnityEngine.MaterialPropertyBlock::SetColor(System.Int32 nameID, UnityEngine.Color
value)
IL_03CE: ldloc.s 18 (UnityEngine.MaterialPropertyBlock)
IL_03D0: ldloc.s 17 (PropManager)
IL_03D2: ldfld System.Int32 PropManager::ID_ObjectIndex
IL_03D7: ldarg.s 7
IL_03D9: callvirt System.Void
UnityEngine.MaterialPropertyBlock::SetVector(System.Int32 nameID,
UnityEngine.Vector4 value)
IL_03DE: ldarg.1
IL_03DF: ldfld UnityEngine.Vector4[] PropInfo::m_rollLocation
IL_03E4: brfalse => Label21
IL_03E9: ldarg.1
IL_03EA: ldfld UnityEngine.Material PropInfo::m_material
IL_03EF: ldloc.s 17 (PropManager)
IL_03F1: ldfld System.Int32 PropManager::ID_RollLocation
IL_03F6: ldarg.1
IL_03F7: ldfld UnityEngine.Vector4[] PropInfo::m_rollLocation
IL_03FC: callvirt System.Void UnityEngine.Material::SetVectorArray(System.Int32
nameID, UnityEngine.Vector4[] values)
IL_0401: ldarg.1
IL_0402: ldfld UnityEngine.Material PropInfo::m_material
IL_0407: ldloc.s 17 (PropManager)
IL_0409: ldfld System.Int32 PropManager::ID_RollParams
IL_040E: ldarg.1
IL_040F: ldfld UnityEngine.Vector4[] PropInfo::m_rollParams
IL_0414: callvirt System.Void UnityEngine.Material::SetVectorArray(System.Int32
nameID, UnityEngine.Vector4[] values)
IL_0419: Label21
IL_0419: ldloc.s 17 (PropManager)
IL_041B: ldflda DrawCallData SimulationManagerBase`2<PropManager,
PropProperties>::m_drawCallData
IL_0420: dup
IL_0421: ldfld System.Int32 DrawCallData::m_defaultCalls
IL_0426: ldc.i4.1
IL_0427: add
IL_0428: stfld System.Int32 DrawCallData::m_defaultCalls
IL_042D: ldarg.1
IL_042E: ldfld UnityEngine.Mesh PropInfo::m_lodMesh
IL_0433: ldloc.s 16 (UnityEngine.Matrix4x4)
IL_0435: ldarg.1
IL_0436: ldfld UnityEngine.Material PropInfo::m_lodMaterial
IL_043B: ldarg.1
IL_043C: ldfld System.Int32 PrefabInfo::m_prefabDataLayer
IL_0441: ldnull
IL_0442: ldc.i4.0
IL_0443: ldloc.s 18 (UnityEngine.MaterialPropertyBlock)
IL_0445: call static System.Void
UnityEngine.Graphics::DrawMesh(UnityEngine.Mesh mesh, UnityEngine.Matrix4x4 matrix,
UnityEngine.Material material, System.Int32 layer, UnityEngine.Camera camera,
System.Int32 submeshIndex, UnityEngine.MaterialPropertyBlock properties)
IL_044A: br => Label22
IL_044F: Label20
IL_044F: ldarga.s 7
IL_0451: ldarg.s 4
IL_0453: stfld System.Single UnityEngine.Vector4::w
IL_0458: ldarg.1
IL_0459: ldfld UnityEngine.Vector4[] PropInfo::m_lodLocations
IL_045E: ldarg.1
IL_045F: ldfld System.Int32 PropInfo::m_lodCount
IL_0464: ldelema UnityEngine.Vector4
IL_0469: ldarga.s 3
IL_046B: ldfld System.Single UnityEngine.Vector3::x
IL_0470: ldarga.s 3
IL_0472: ldfld System.Single UnityEngine.Vector3::y
IL_0477: ldarga.s 3
IL_0479: ldfld System.Single UnityEngine.Vector3::z
IL_047E: ldarg.s 5
IL_0480: newobj System.Void UnityEngine.Vector4::.ctor(System.Single x,
System.Single y, System.Single z, System.Single w)
IL_0485: stobj UnityEngine.Vector4
IL_048A: ldarg.1
IL_048B: ldfld UnityEngine.Vector4[] PropInfo::m_lodObjectIndices
IL_0490: ldarg.1
IL_0491: ldfld System.Int32 PropInfo::m_lodCount
IL_0496: ldelema UnityEngine.Vector4
IL_049B: ldarg.s 7
IL_049D: stobj UnityEngine.Vector4
IL_04A2: ldarg.1
IL_04A3: ldfld UnityEngine.Vector4[] PropInfo::m_lodColors
IL_04A8: ldarg.1
IL_04A9: ldfld System.Int32 PropInfo::m_lodCount
IL_04AE: ldelema UnityEngine.Vector4
IL_04B3: ldarga.s 6
IL_04B5: call UnityEngine.Color UnityEngine.Color::get_linear()
IL_04BA: call static UnityEngine.Vector4
UnityEngine.Color::op_Implicit(UnityEngine.Color c)
IL_04BF: stobj UnityEngine.Vector4
IL_04C4: ldarg.1
IL_04C5: ldarg.1
IL_04C6: ldfld UnityEngine.Vector3 PropInfo::m_lodMin
IL_04CB: ldarg.3
IL_04CC: call static UnityEngine.Vector3
UnityEngine.Vector3::Min(UnityEngine.Vector3 lhs, UnityEngine.Vector3 rhs)
IL_04D1: stfld UnityEngine.Vector3 PropInfo::m_lodMin
IL_04D6: ldarg.1
IL_04D7: ldarg.1
IL_04D8: ldfld UnityEngine.Vector3 PropInfo::m_lodMax
IL_04DD: ldarg.3
IL_04DE: call static UnityEngine.Vector3
UnityEngine.Vector3::Max(UnityEngine.Vector3 lhs, UnityEngine.Vector3 rhs)
IL_04E3: stfld UnityEngine.Vector3 PropInfo::m_lodMax
IL_04E8: ldarg.1
IL_04E9: dup
IL_04EA: ldfld System.Int32 PropInfo::m_lodCount
IL_04EF: ldc.i4.1
IL_04F0: add
IL_04F1: dup
IL_04F2: stloc.s 19 (System.Int32)
IL_04F4: stfld System.Int32 PropInfo::m_lodCount
IL_04F9: ldloc.s 19 (System.Int32)
IL_04FB: ldarg.1
IL_04FC: ldfld UnityEngine.Vector4[] PropInfo::m_lodLocations
IL_0501: ldlen
IL_0502: conv.i4
IL_0503: bne.un => Label23
IL_0508: ldarg.0
IL_0509: ldarg.1
IL_050A: call static System.Void PropInstance::RenderLod(CameraInfo
cameraInfo, PropInfo info)
IL_050F: // end original
IL_050F: Label0
IL_050F: Label6
IL_050F: Label7
IL_050F: Label19
IL_050F: Label22
IL_050F: Label23
IL_050F: ret
DONE

### Patch: virtual System.Void LightEffect::PopulateGroupData(System.Int32 layer,


InstanceID id, UnityEngine.Vector3 pos, UnityEngine.Vector3 dir, 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
LightEffect::LightEffect.PopulateGroupData_Patch0(LightEffect this, System.Int32
layer, InstanceID id, UnityEngine.Vector3 pos, UnityEngine.Vector3 dir,
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.Boolean
IL_0000: Local var 1: UnityEngine.Vector3
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.Quaternion
IL_0000: Local var 7: UnityEngine.Vector4
IL_0000: Local var 8: UnityEngine.Vector2
IL_0000: Local var 9: ColossalFramework.Math.Randomizer
IL_0000: Local var 10: UnityEngine.Vector2
IL_0000: Local var 11: UnityEngine.Vector2
IL_0000: Local var 12: UnityEngine.Vector2
IL_0000: Local var 13: System.UInt16
IL_0000: Local var 14: UnityEngine.Vector3
IL_0000: Local var 15: UnityEngine.Color
IL_0000: Local var 16: UnityEngine.Color
IL_0000: Local var 17: System.Single
IL_0000: Local var 18: System.Single
IL_0000: Local var 19: System.Int32
IL_0000: // start original
IL_0000: ldarg.1
IL_0001: ldarg.0
IL_0002: ldfld System.Int32 LightEffect::m_groupLayer
IL_0007: beq => Label0
IL_000C: ldarg.1
IL_000D: ldarg.0
IL_000E: ldfld System.Int32 LightEffect::m_groupLayerFloating
IL_0013: bne.un => Label1
IL_0018: Label0
IL_0018: ldarg.1
IL_0019: ldarg.0
IL_001A: ldfld System.Int32 LightEffect::m_groupLayerFloating
IL_001F: ceq
IL_0021: stloc.0
IL_0022: ldloca.s 1 (UnityEngine.Vector3)
IL_0024: ldarg.0
IL_0025: ldfld System.Single LightEffect::m_lightRange
IL_002A: ldarg.0
IL_002B: ldfld System.Single LightEffect::m_lightRange
IL_0030: ldarg.0
IL_0031: ldfld System.Single LightEffect::m_lightRange
IL_0036: call System.Void UnityEngine.Vector3::.ctor(System.Single x,
System.Single y, System.Single z)
IL_003B: ldarg.3
IL_003C: ldloc.1
IL_003D: call static UnityEngine.Vector3
UnityEngine.Vector3::op_Subtraction(UnityEngine.Vector3 a, UnityEngine.Vector3 b)
IL_0042: stloc.2
IL_0043: ldarg.3
IL_0044: ldloc.1
IL_0045: call static UnityEngine.Vector3
UnityEngine.Vector3::op_Addition(UnityEngine.Vector3 a, UnityEngine.Vector3 b)
IL_004A: stloc.3
IL_004B: ldarg.s 9
IL_004D: ldarg.s 9
IL_004F: ldobj UnityEngine.Vector3
IL_0054: ldloc.2
IL_0055: call static UnityEngine.Vector3
UnityEngine.Vector3::Min(UnityEngine.Vector3 lhs, UnityEngine.Vector3 rhs)
IL_005A: stobj UnityEngine.Vector3
IL_005F: ldarg.s 10
IL_0061: ldarg.s 10
IL_0063: ldobj UnityEngine.Vector3
IL_0068: ldloc.3
IL_0069: call static UnityEngine.Vector3
UnityEngine.Vector3::Max(UnityEngine.Vector3 lhs, UnityEngine.Vector3 rhs)
IL_006E: stobj UnityEngine.Vector3
IL_0073: ldarg.3
IL_0074: ldarg.s 7
IL_0076: call static UnityEngine.Vector3
UnityEngine.Vector3::op_Subtraction(UnityEngine.Vector3 a, UnityEngine.Vector3 b)
IL_007B: stloc.s 4 (UnityEngine.Vector3)
IL_007D: ldarg.s 11
IL_007F: ldarg.s 11
IL_0081: ldind.r4
IL_0082: ldc.r4 30000
IL_0087: call static System.Single UnityEngine.Mathf::Max(System.Single a,
System.Single b)
IL_008C: stind.r4
IL_008D: ldarg.0
IL_008E: ldfld UnityEngine.LightType LightEffect::m_lightType
IL_0093: brtrue => Label2
IL_0098: ldarg.s 4
IL_009A: call static UnityEngine.Quaternion
UnityEngine.Quaternion::LookRotation(UnityEngine.Vector3 forward)
IL_009F: stloc.s 6 (UnityEngine.Quaternion)
IL_00A1: ldloc.s 6 (UnityEngine.Quaternion)
IL_00A3: ldarg.0
IL_00A4: ldfld UnityEngine.Quaternion LightEffect::m_lightRotation
IL_00A9: call static UnityEngine.Vector3 UnityEngine.Vector3::get_forward()
IL_00AE: call static UnityEngine.Vector3
UnityEngine.Quaternion::op_Multiply(UnityEngine.Quaternion rotation,
UnityEngine.Vector3 point)
IL_00B3: call static UnityEngine.Vector3
UnityEngine.Quaternion::op_Multiply(UnityEngine.Quaternion rotation,
UnityEngine.Vector3 point)
IL_00B8: stloc.s 5 (UnityEngine.Vector3)
IL_00BA: br => Label3
IL_00BF: Label2
IL_00BF: call static UnityEngine.Vector3 UnityEngine.Vector3::get_forward()
IL_00C4: stloc.s 5 (UnityEngine.Vector3)
IL_00C6: Label3
IL_00C6: ldloca.s 7 (UnityEngine.Vector4)
IL_00C8: ldloca.s 5 (UnityEngine.Vector3)
IL_00CA: ldfld System.Single UnityEngine.Vector3::x
IL_00CF: ldloca.s 5 (UnityEngine.Vector3)
IL_00D1: ldfld System.Single UnityEngine.Vector3::y
IL_00D6: ldloca.s 5 (UnityEngine.Vector3)
IL_00D8: ldfld System.Single UnityEngine.Vector3::z
IL_00DD: ldc.r4 100000
IL_00E2: call System.Void UnityEngine.Vector4::.ctor(System.Single x,
System.Single y, System.Single z, System.Single w)
IL_00E7: ldarg.0
IL_00E8: ldfld UnityEngine.LightType LightEffect::m_lightType
IL_00ED: brtrue => Label4
IL_00F2: ldloca.s 7 (UnityEngine.Vector4)
IL_00F4: ldc.r4 0.01745329
IL_00F9: ldarg.0
IL_00FA: ldfld System.Single LightEffect::m_lightSpotAngle
IL_00FF: mul
IL_0100: ldc.r4 0.5
IL_0105: mul
IL_0106: call static System.Single UnityEngine.Mathf::Cos(System.Single f)
IL_010B: neg
IL_010C: stfld System.Single UnityEngine.Vector4::w
IL_0111: Label4
IL_0111: ldloca.s 8 (UnityEngine.Vector2)
IL_0113: ldc.r4 1
IL_0118: ldarg.0
IL_0119: ldfld System.Single LightEffect::m_lightRange
IL_011E: ldarg.0
IL_011F: ldfld System.Single LightEffect::m_lightRange
IL_0124: mul
IL_0125: div
IL_0126: ldarg.0
IL_0127: ldfld System.Single LightEffect::m_lightIntensity
IL_012C: call System.Void UnityEngine.Vector2::.ctor(System.Single x,
System.Single y)
IL_0131: ldloca.s 9 (ColossalFramework.Math.Randomizer)
IL_0133: ldarga.s 2
IL_0135: call System.UInt32 InstanceID::get_Index()
IL_013A: call System.Void
ColossalFramework.Math.Randomizer::.ctor(System.UInt32 _seed)
IL_013F: ldloca.s 10 (UnityEngine.Vector2)
IL_0141: ldarg.0
IL_0142: ldflda UnityEngine.Vector2 LightEffect::m_offRange
IL_0147: ldfld System.Single UnityEngine.Vector2::x
IL_014C: ldloca.s 9 (ColossalFramework.Math.Randomizer)
IL_014E: ldc.i4 100000
IL_0153: call System.Int32
ColossalFramework.Math.Randomizer::Int32(System.UInt32 range)
IL_0158: conv.r4
IL_0159: ldc.r4 1E-05
IL_015E: mul
IL_015F: ldarg.0
IL_0160: ldflda UnityEngine.Vector2 LightEffect::m_offRange
IL_0165: ldfld System.Single UnityEngine.Vector2::y
IL_016A: ldarg.0
IL_016B: ldflda UnityEngine.Vector2 LightEffect::m_offRange
IL_0170: ldfld System.Single UnityEngine.Vector2::x
IL_0175: sub
IL_0176: mul
IL_0177: add
IL_0178: stfld System.Single UnityEngine.Vector2::x
IL_017D: ldloca.s 10 (UnityEngine.Vector2)
IL_017F: ldarg.0
IL_0180: ldfld BlinkType LightEffect::m_blinkType
IL_0185: conv.r4
IL_0186: stfld System.Single UnityEngine.Vector2::y
IL_018B: ldarg.2
IL_018C: call static System.UInt16 EffectInfo::GetBuilding(InstanceID id)
IL_0191: stloc.s 13 (System.UInt16)
IL_0193: ldloc.s 13 (System.UInt16)
IL_0195: brfalse => Label5
IL_019A: ldloc.s 13 (System.UInt16)
IL_019C: call static UnityEngine.Vector4
RenderManager::GetColorLocation(System.UInt32 instanceHolder)
IL_01A1: call static UnityEngine.Vector2
UnityEngine.Vector4::op_Implicit(UnityEngine.Vector4 v)
IL_01A6: stloc.s 11 (UnityEngine.Vector2)
IL_01A8: ldloc.0
IL_01A9: brfalse => Label6
IL_01AE: call static BuildingManager
ColossalFramework.Singleton`1<BuildingManager>::get_instance()
IL_01B3: ldfld Array16`1<Building> BuildingManager::m_buildings
IL_01B8: ldfld Building[] Array16`1<Building>::m_buffer
IL_01BD: ldloc.s 13 (System.UInt16)
IL_01BF: ldelema Building
IL_01C4: call UnityEngine.Vector3 Building::CalculateMeshPosition()
IL_01C9: stloc.s 14 (UnityEngine.Vector3)
IL_01CB: ldloc.s 14 (UnityEngine.Vector3)
IL_01CD: call static UnityEngine.Vector2
ColossalFramework.Math.VectorUtils::XZ(UnityEngine.Vector3 v)
IL_01D2: stloc.s 12 (UnityEngine.Vector2)
IL_01D4: ldarga.s 3
IL_01D6: dup
IL_01D7: ldfld System.Single UnityEngine.Vector3::y
IL_01DC: ldloca.s 14 (UnityEngine.Vector3)
IL_01DE: ldfld System.Single UnityEngine.Vector3::y
IL_01E3: sub
IL_01E4: stfld System.Single UnityEngine.Vector3::y
IL_01E9: ldloca.s 4 (UnityEngine.Vector3)
IL_01EB: dup
IL_01EC: ldfld System.Single UnityEngine.Vector3::y
IL_01F1: ldloca.s 14 (UnityEngine.Vector3)
IL_01F3: ldfld System.Single UnityEngine.Vector3::y
IL_01F8: sub
IL_01F9: stfld System.Single UnityEngine.Vector3::y
IL_01FE: br => Label7
IL_0203: Label6
IL_0203: call static UnityEngine.Vector2 UnityEngine.Vector2::get_zero()
IL_0208: stloc.s 12 (UnityEngine.Vector2)
IL_020A: Label7
IL_020A: br => Label8
IL_020F: Label5
IL_020F: ldsfld UnityEngine.Vector4 RenderManager::DefaultColorLocation
IL_0214: call static UnityEngine.Vector2
UnityEngine.Vector4::op_Implicit(UnityEngine.Vector4 v)
IL_0219: stloc.s 11 (UnityEngine.Vector2)
IL_021B: call static UnityEngine.Vector2 UnityEngine.Vector2::get_zero()
IL_0220: stloc.s 12 (UnityEngine.Vector2)
IL_0222: Label8
IL_0222: ldarg.0
IL_0223: ldfld UnityEngine.Color LightEffect::m_lightColor
IL_0228: stloc.s 15 (UnityEngine.Color)
IL_022A: ldarg.0
IL_022B: ldfld UnityEngine.Color[] LightEffect::m_variationColors
IL_0230: brfalse => Label9
IL_0235: ldarg.0
IL_0236: ldfld UnityEngine.Color[] LightEffect::m_variationColors
IL_023B: ldlen
IL_023C: conv.i4
IL_023D: brfalse => Label10
IL_0242: ldarg.0
IL_0243: ldfld UnityEngine.Color[] LightEffect::m_variationColors
IL_0248: ldloca.s 9 (ColossalFramework.Math.Randomizer)
IL_024A: ldarg.0
IL_024B: ldfld UnityEngine.Color[] LightEffect::m_variationColors
IL_0250: ldlen
IL_0251: conv.i4
IL_0252: call System.Int32
ColossalFramework.Math.Randomizer::Int32(System.UInt32 range)
IL_0257: ldelema UnityEngine.Color
IL_025C: ldobj UnityEngine.Color
IL_0261: stloc.s 16 (UnityEngine.Color)
IL_0263: ldloc.s 15 (UnityEngine.Color)
IL_0265: ldloc.s 16 (UnityEngine.Color)
IL_0267: ldloca.s 9 (ColossalFramework.Math.Randomizer)
IL_0269: ldc.i4 1000
IL_026E: call System.Int32
ColossalFramework.Math.Randomizer::Int32(System.UInt32 range)
IL_0273: conv.r4
IL_0274: ldc.r4 0.001
IL_0279: mul
IL_027A: call static UnityEngine.Color
UnityEngine.Color::Lerp(UnityEngine.Color a, UnityEngine.Color b, System.Single t)
IL_027F: stloc.s 15 (UnityEngine.Color)
IL_0281: Label9
IL_0281: Label10
IL_0281: ldloca.s 15 (UnityEngine.Color)
IL_0283: call UnityEngine.Color UnityEngine.Color::get_linear()
IL_0288: stloc.s 15 (UnityEngine.Color)
IL_028A: ldloca.s 15 (UnityEngine.Color)
IL_028C: ldarg.0
IL_028D: ldfld UnityEngine.LightType LightEffect::m_lightType
IL_0292: brtrue => Label11
IL_0297: ldarg.0
IL_0298: ldfld System.Single LightEffect::m_spotLeaking
IL_029D: br => Label12
IL_02A2: Label11
IL_02A2: ldc.r4 0
IL_02A7: Label12
IL_02A7: stfld System.Single UnityEngine.Color::a
IL_02AC: ldarg.0
IL_02AD: ldfld System.Single LightEffect::m_lightRange
IL_02B2: ldc.r4 0.5235988
IL_02B7: call static System.Single UnityEngine.Mathf::Cos(System.Single f)
IL_02BC: div
IL_02BD: stloc.s 17 (System.Single)
IL_02BF: ldloc.s 17 (System.Single)
IL_02C1: ldc.r4 0.5
IL_02C6: mul
IL_02C7: stloc.s 18 (System.Single)
IL_02C9: ldarg.s 8
IL_02CB: ldfld UnityEngine.Vector3[] MeshData::m_vertices
IL_02D0: ldarg.s 5
IL_02D2: ldind.i4
IL_02D3: ldelema UnityEngine.Vector3
IL_02D8: ldloca.s 4 (UnityEngine.Vector3)
IL_02DA: ldfld System.Single UnityEngine.Vector3::x
IL_02DF: ldloc.s 18 (System.Single)
IL_02E1: sub
IL_02E2: ldloca.s 4 (UnityEngine.Vector3)
IL_02E4: ldfld System.Single UnityEngine.Vector3::y
IL_02E9: ldarg.0
IL_02EA: ldfld System.Single LightEffect::m_lightRange
IL_02EF: add
IL_02F0: ldloca.s 4 (UnityEngine.Vector3)
IL_02F2: ldfld System.Single UnityEngine.Vector3::z
IL_02F7: ldarg.0
IL_02F8: ldfld System.Single LightEffect::m_lightRange
IL_02FD: add
IL_02FE: newobj System.Void UnityEngine.Vector3::.ctor(System.Single x,
System.Single y, System.Single z)
IL_0303: stobj UnityEngine.Vector3
IL_0308: ldarg.s 8
IL_030A: ldfld UnityEngine.Vector3[] MeshData::m_normals
IL_030F: ldarg.s 5
IL_0311: ldind.i4
IL_0312: ldelema UnityEngine.Vector3
IL_0317: ldarg.3
IL_0318: stobj UnityEngine.Vector3
IL_031D: ldarg.s 8
IL_031F: ldfld UnityEngine.Vector4[] MeshData::m_tangents
IL_0324: ldarg.s 5
IL_0326: ldind.i4
IL_0327: ldelema UnityEngine.Vector4
IL_032C: ldloc.s 7 (UnityEngine.Vector4)
IL_032E: stobj UnityEngine.Vector4
IL_0333: ldarg.s 8
IL_0335: ldfld UnityEngine.Vector2[] MeshData::m_uvs
IL_033A: ldarg.s 5
IL_033C: ldind.i4
IL_033D: ldelema UnityEngine.Vector2
IL_0342: ldloc.s 8 (UnityEngine.Vector2)
IL_0344: stobj UnityEngine.Vector2
IL_0349: ldarg.s 8
IL_034B: ldfld UnityEngine.Vector2[] MeshData::m_uvs2
IL_0350: ldarg.s 5
IL_0352: ldind.i4
IL_0353: ldelema UnityEngine.Vector2
IL_0358: ldloc.s 10 (UnityEngine.Vector2)
IL_035A: stobj UnityEngine.Vector2
IL_035F: ldarg.s 8
IL_0361: ldfld UnityEngine.Vector2[] MeshData::m_uvs3
IL_0366: ldarg.s 5
IL_0368: ldind.i4
IL_0369: ldelema UnityEngine.Vector2
IL_036E: ldloc.s 11 (UnityEngine.Vector2)
IL_0370: stobj UnityEngine.Vector2
IL_0375: ldloc.0
IL_0376: brfalse => Label13
IL_037B: ldarg.s 8
IL_037D: ldfld UnityEngine.Vector2[] MeshData::m_uvs4
IL_0382: ldarg.s 5
IL_0384: ldind.i4
IL_0385: ldelema UnityEngine.Vector2
IL_038A: ldloc.s 12 (UnityEngine.Vector2)
IL_038C: stobj UnityEngine.Vector2
IL_0391: Label13
IL_0391: ldarg.s 8
IL_0393: ldfld UnityEngine.Color32[] MeshData::m_colors
IL_0398: ldarg.s 5
IL_039A: ldind.i4
IL_039B: ldelema UnityEngine.Color32
IL_03A0: ldloc.s 15 (UnityEngine.Color)
IL_03A2: call static UnityEngine.Color32
UnityEngine.Color32::op_Implicit(UnityEngine.Color c)
IL_03A7: stobj UnityEngine.Color32
IL_03AC: ldarg.s 5
IL_03AE: ldarg.s 5
IL_03B0: ldind.i4
IL_03B1: ldc.i4.1
IL_03B2: add
IL_03B3: stind.i4
IL_03B4: ldarg.s 8
IL_03B6: ldfld UnityEngine.Vector3[] MeshData::m_vertices
IL_03BB: ldarg.s 5
IL_03BD: ldind.i4
IL_03BE: ldelema UnityEngine.Vector3
IL_03C3: ldloca.s 4 (UnityEngine.Vector3)
IL_03C5: ldfld System.Single UnityEngine.Vector3::x
IL_03CA: ldloc.s 18 (System.Single)
IL_03CC: add
IL_03CD: ldloca.s 4 (UnityEngine.Vector3)
IL_03CF: ldfld System.Single UnityEngine.Vector3::y
IL_03D4: ldarg.0
IL_03D5: ldfld System.Single LightEffect::m_lightRange
IL_03DA: add
IL_03DB: ldloca.s 4 (UnityEngine.Vector3)
IL_03DD: ldfld System.Single UnityEngine.Vector3::z
IL_03E2: ldarg.0
IL_03E3: ldfld System.Single LightEffect::m_lightRange
IL_03E8: add
IL_03E9: newobj System.Void UnityEngine.Vector3::.ctor(System.Single x,
System.Single y, System.Single z)
IL_03EE: stobj UnityEngine.Vector3
IL_03F3: ldarg.s 8
IL_03F5: ldfld UnityEngine.Vector3[] MeshData::m_normals
IL_03FA: ldarg.s 5
IL_03FC: ldind.i4
IL_03FD: ldelema UnityEngine.Vector3
IL_0402: ldarg.3
IL_0403: stobj UnityEngine.Vector3
IL_0408: ldarg.s 8
IL_040A: ldfld UnityEngine.Vector4[] MeshData::m_tangents
IL_040F: ldarg.s 5
IL_0411: ldind.i4
IL_0412: ldelema UnityEngine.Vector4
IL_0417: ldloc.s 7 (UnityEngine.Vector4)
IL_0419: stobj UnityEngine.Vector4
IL_041E: ldarg.s 8
IL_0420: ldfld UnityEngine.Vector2[] MeshData::m_uvs
IL_0425: ldarg.s 5
IL_0427: ldind.i4
IL_0428: ldelema UnityEngine.Vector2
IL_042D: ldloc.s 8 (UnityEngine.Vector2)
IL_042F: stobj UnityEngine.Vector2
IL_0434: ldarg.s 8
IL_0436: ldfld UnityEngine.Vector2[] MeshData::m_uvs2
IL_043B: ldarg.s 5
IL_043D: ldind.i4
IL_043E: ldelema UnityEngine.Vector2
IL_0443: ldloc.s 10 (UnityEngine.Vector2)
IL_0445: stobj UnityEngine.Vector2
IL_044A: ldarg.s 8
IL_044C: ldfld UnityEngine.Vector2[] MeshData::m_uvs3
IL_0451: ldarg.s 5
IL_0453: ldind.i4
IL_0454: ldelema UnityEngine.Vector2
IL_0459: ldloc.s 11 (UnityEngine.Vector2)
IL_045B: stobj UnityEngine.Vector2
IL_0460: ldloc.0
IL_0461: brfalse => Label14
IL_0466: ldarg.s 8
IL_0468: ldfld UnityEngine.Vector2[] MeshData::m_uvs4
IL_046D: ldarg.s 5
IL_046F: ldind.i4
IL_0470: ldelema UnityEngine.Vector2
IL_0475: ldloc.s 12 (UnityEngine.Vector2)
IL_0477: stobj UnityEngine.Vector2
IL_047C: Label14
IL_047C: ldarg.s 8
IL_047E: ldfld UnityEngine.Color32[] MeshData::m_colors
IL_0483: ldarg.s 5
IL_0485: ldind.i4
IL_0486: ldelema UnityEngine.Color32
IL_048B: ldloc.s 15 (UnityEngine.Color)
IL_048D: call static UnityEngine.Color32
UnityEngine.Color32::op_Implicit(UnityEngine.Color c)
IL_0492: stobj UnityEngine.Color32
IL_0497: ldarg.s 5
IL_0499: ldarg.s 5
IL_049B: ldind.i4
IL_049C: ldc.i4.1
IL_049D: add
IL_049E: stind.i4
IL_049F: ldarg.s 8
IL_04A1: ldfld UnityEngine.Vector3[] MeshData::m_vertices
IL_04A6: ldarg.s 5
IL_04A8: ldind.i4
IL_04A9: ldelema UnityEngine.Vector3
IL_04AE: ldloca.s 4 (UnityEngine.Vector3)
IL_04B0: ldfld System.Single UnityEngine.Vector3::x
IL_04B5: ldloc.s 17 (System.Single)
IL_04B7: add
IL_04B8: ldloca.s 4 (UnityEngine.Vector3)
IL_04BA: ldfld System.Single UnityEngine.Vector3::y
IL_04BF: ldloca.s 4 (UnityEngine.Vector3)
IL_04C1: ldfld System.Single UnityEngine.Vector3::z
IL_04C6: ldarg.0
IL_04C7: ldfld System.Single LightEffect::m_lightRange
IL_04CC: add
IL_04CD: newobj System.Void UnityEngine.Vector3::.ctor(System.Single x,
System.Single y, System.Single z)
IL_04D2: stobj UnityEngine.Vector3
IL_04D7: ldarg.s 8
IL_04D9: ldfld UnityEngine.Vector3[] MeshData::m_normals
IL_04DE: ldarg.s 5
IL_04E0: ldind.i4
IL_04E1: ldelema UnityEngine.Vector3
IL_04E6: ldarg.3
IL_04E7: stobj UnityEngine.Vector3
IL_04EC: ldarg.s 8
IL_04EE: ldfld UnityEngine.Vector4[] MeshData::m_tangents
IL_04F3: ldarg.s 5
IL_04F5: ldind.i4
IL_04F6: ldelema UnityEngine.Vector4
IL_04FB: ldloc.s 7 (UnityEngine.Vector4)
IL_04FD: stobj UnityEngine.Vector4
IL_0502: ldarg.s 8
IL_0504: ldfld UnityEngine.Vector2[] MeshData::m_uvs
IL_0509: ldarg.s 5
IL_050B: ldind.i4
IL_050C: ldelema UnityEngine.Vector2
IL_0511: ldloc.s 8 (UnityEngine.Vector2)
IL_0513: stobj UnityEngine.Vector2
IL_0518: ldarg.s 8
IL_051A: ldfld UnityEngine.Vector2[] MeshData::m_uvs2
IL_051F: ldarg.s 5
IL_0521: ldind.i4
IL_0522: ldelema UnityEngine.Vector2
IL_0527: ldloc.s 10 (UnityEngine.Vector2)
IL_0529: stobj UnityEngine.Vector2
IL_052E: ldarg.s 8
IL_0530: ldfld UnityEngine.Vector2[] MeshData::m_uvs3
IL_0535: ldarg.s 5
IL_0537: ldind.i4
IL_0538: ldelema UnityEngine.Vector2
IL_053D: ldloc.s 11 (UnityEngine.Vector2)
IL_053F: stobj UnityEngine.Vector2
IL_0544: ldloc.0
IL_0545: brfalse => Label15
IL_054A: ldarg.s 8
IL_054C: ldfld UnityEngine.Vector2[] MeshData::m_uvs4
IL_0551: ldarg.s 5
IL_0553: ldind.i4
IL_0554: ldelema UnityEngine.Vector2
IL_0559: ldloc.s 12 (UnityEngine.Vector2)
IL_055B: stobj UnityEngine.Vector2
IL_0560: Label15
IL_0560: ldarg.s 8
IL_0562: ldfld UnityEngine.Color32[] MeshData::m_colors
IL_0567: ldarg.s 5
IL_0569: ldind.i4
IL_056A: ldelema UnityEngine.Color32
IL_056F: ldloc.s 15 (UnityEngine.Color)
IL_0571: call static UnityEngine.Color32
UnityEngine.Color32::op_Implicit(UnityEngine.Color c)
IL_0576: stobj UnityEngine.Color32
IL_057B: ldarg.s 5
IL_057D: ldarg.s 5
IL_057F: ldind.i4
IL_0580: ldc.i4.1
IL_0581: add
IL_0582: stind.i4
IL_0583: ldarg.s 8
IL_0585: ldfld UnityEngine.Vector3[] MeshData::m_vertices
IL_058A: ldarg.s 5
IL_058C: ldind.i4
IL_058D: ldelema UnityEngine.Vector3
IL_0592: ldloca.s 4 (UnityEngine.Vector3)
IL_0594: ldfld System.Single UnityEngine.Vector3::x
IL_0599: ldloc.s 18 (System.Single)
IL_059B: add
IL_059C: ldloca.s 4 (UnityEngine.Vector3)
IL_059E: ldfld System.Single UnityEngine.Vector3::y
IL_05A3: ldarg.0
IL_05A4: ldfld System.Single LightEffect::m_lightRange
IL_05A9: sub
IL_05AA: ldloca.s 4 (UnityEngine.Vector3)
IL_05AC: ldfld System.Single UnityEngine.Vector3::z
IL_05B1: ldarg.0
IL_05B2: ldfld System.Single LightEffect::m_lightRange
IL_05B7: add
IL_05B8: newobj System.Void UnityEngine.Vector3::.ctor(System.Single x,
System.Single y, System.Single z)
IL_05BD: stobj UnityEngine.Vector3
IL_05C2: ldarg.s 8
IL_05C4: ldfld UnityEngine.Vector3[] MeshData::m_normals
IL_05C9: ldarg.s 5
IL_05CB: ldind.i4
IL_05CC: ldelema UnityEngine.Vector3
IL_05D1: ldarg.3
IL_05D2: stobj UnityEngine.Vector3
IL_05D7: ldarg.s 8
IL_05D9: ldfld UnityEngine.Vector4[] MeshData::m_tangents
IL_05DE: ldarg.s 5
IL_05E0: ldind.i4
IL_05E1: ldelema UnityEngine.Vector4
IL_05E6: ldloc.s 7 (UnityEngine.Vector4)
IL_05E8: stobj UnityEngine.Vector4
IL_05ED: ldarg.s 8
IL_05EF: ldfld UnityEngine.Vector2[] MeshData::m_uvs
IL_05F4: ldarg.s 5
IL_05F6: ldind.i4
IL_05F7: ldelema UnityEngine.Vector2
IL_05FC: ldloc.s 8 (UnityEngine.Vector2)
IL_05FE: stobj UnityEngine.Vector2
IL_0603: ldarg.s 8
IL_0605: ldfld UnityEngine.Vector2[] MeshData::m_uvs2
IL_060A: ldarg.s 5
IL_060C: ldind.i4
IL_060D: ldelema UnityEngine.Vector2
IL_0612: ldloc.s 10 (UnityEngine.Vector2)
IL_0614: stobj UnityEngine.Vector2
IL_0619: ldarg.s 8
IL_061B: ldfld UnityEngine.Vector2[] MeshData::m_uvs3
IL_0620: ldarg.s 5
IL_0622: ldind.i4
IL_0623: ldelema UnityEngine.Vector2
IL_0628: ldloc.s 11 (UnityEngine.Vector2)
IL_062A: stobj UnityEngine.Vector2
IL_062F: ldloc.0
IL_0630: brfalse => Label16
IL_0635: ldarg.s 8
IL_0637: ldfld UnityEngine.Vector2[] MeshData::m_uvs4
IL_063C: ldarg.s 5
IL_063E: ldind.i4
IL_063F: ldelema UnityEngine.Vector2
IL_0644: ldloc.s 12 (UnityEngine.Vector2)
IL_0646: stobj UnityEngine.Vector2
IL_064B: Label16
IL_064B: ldarg.s 8
IL_064D: ldfld UnityEngine.Color32[] MeshData::m_colors
IL_0652: ldarg.s 5
IL_0654: ldind.i4
IL_0655: ldelema UnityEngine.Color32
IL_065A: ldloc.s 15 (UnityEngine.Color)
IL_065C: call static UnityEngine.Color32
UnityEngine.Color32::op_Implicit(UnityEngine.Color c)
IL_0661: stobj UnityEngine.Color32
IL_0666: ldarg.s 5
IL_0668: ldarg.s 5
IL_066A: ldind.i4
IL_066B: ldc.i4.1
IL_066C: add
IL_066D: stind.i4
IL_066E: ldarg.s 8
IL_0670: ldfld UnityEngine.Vector3[] MeshData::m_vertices
IL_0675: ldarg.s 5
IL_0677: ldind.i4
IL_0678: ldelema UnityEngine.Vector3
IL_067D: ldloca.s 4 (UnityEngine.Vector3)
IL_067F: ldfld System.Single UnityEngine.Vector3::x
IL_0684: ldloc.s 18 (System.Single)
IL_0686: sub
IL_0687: ldloca.s 4 (UnityEngine.Vector3)
IL_0689: ldfld System.Single UnityEngine.Vector3::y
IL_068E: ldarg.0
IL_068F: ldfld System.Single LightEffect::m_lightRange
IL_0694: sub
IL_0695: ldloca.s 4 (UnityEngine.Vector3)
IL_0697: ldfld System.Single UnityEngine.Vector3::z
IL_069C: ldarg.0
IL_069D: ldfld System.Single LightEffect::m_lightRange
IL_06A2: add
IL_06A3: newobj System.Void UnityEngine.Vector3::.ctor(System.Single x,
System.Single y, System.Single z)
IL_06A8: stobj UnityEngine.Vector3
IL_06AD: ldarg.s 8
IL_06AF: ldfld UnityEngine.Vector3[] MeshData::m_normals
IL_06B4: ldarg.s 5
IL_06B6: ldind.i4
IL_06B7: ldelema UnityEngine.Vector3
IL_06BC: ldarg.3
IL_06BD: stobj UnityEngine.Vector3
IL_06C2: ldarg.s 8
IL_06C4: ldfld UnityEngine.Vector4[] MeshData::m_tangents
IL_06C9: ldarg.s 5
IL_06CB: ldind.i4
IL_06CC: ldelema UnityEngine.Vector4
IL_06D1: ldloc.s 7 (UnityEngine.Vector4)
IL_06D3: stobj UnityEngine.Vector4
IL_06D8: ldarg.s 8
IL_06DA: ldfld UnityEngine.Vector2[] MeshData::m_uvs
IL_06DF: ldarg.s 5
IL_06E1: ldind.i4
IL_06E2: ldelema UnityEngine.Vector2
IL_06E7: ldloc.s 8 (UnityEngine.Vector2)
IL_06E9: stobj UnityEngine.Vector2
IL_06EE: ldarg.s 8
IL_06F0: ldfld UnityEngine.Vector2[] MeshData::m_uvs2
IL_06F5: ldarg.s 5
IL_06F7: ldind.i4
IL_06F8: ldelema UnityEngine.Vector2
IL_06FD: ldloc.s 10 (UnityEngine.Vector2)
IL_06FF: stobj UnityEngine.Vector2
IL_0704: ldarg.s 8
IL_0706: ldfld UnityEngine.Vector2[] MeshData::m_uvs3
IL_070B: ldarg.s 5
IL_070D: ldind.i4
IL_070E: ldelema UnityEngine.Vector2
IL_0713: ldloc.s 11 (UnityEngine.Vector2)
IL_0715: stobj UnityEngine.Vector2
IL_071A: ldloc.0
IL_071B: brfalse => Label17
IL_0720: ldarg.s 8
IL_0722: ldfld UnityEngine.Vector2[] MeshData::m_uvs4
IL_0727: ldarg.s 5
IL_0729: ldind.i4
IL_072A: ldelema UnityEngine.Vector2
IL_072F: ldloc.s 12 (UnityEngine.Vector2)
IL_0731: stobj UnityEngine.Vector2
IL_0736: Label17
IL_0736: ldarg.s 8
IL_0738: ldfld UnityEngine.Color32[] MeshData::m_colors
IL_073D: ldarg.s 5
IL_073F: ldind.i4
IL_0740: ldelema UnityEngine.Color32
IL_0745: ldloc.s 15 (UnityEngine.Color)
IL_0747: call static UnityEngine.Color32
UnityEngine.Color32::op_Implicit(UnityEngine.Color c)
IL_074C: stobj UnityEngine.Color32
IL_0751: ldarg.s 5
IL_0753: ldarg.s 5
IL_0755: ldind.i4
IL_0756: ldc.i4.1
IL_0757: add
IL_0758: stind.i4
IL_0759: ldarg.s 8
IL_075B: ldfld UnityEngine.Vector3[] MeshData::m_vertices
IL_0760: ldarg.s 5
IL_0762: ldind.i4
IL_0763: ldelema UnityEngine.Vector3
IL_0768: ldloca.s 4 (UnityEngine.Vector3)
IL_076A: ldfld System.Single UnityEngine.Vector3::x
IL_076F: ldloc.s 17 (System.Single)
IL_0771: sub
IL_0772: ldloca.s 4 (UnityEngine.Vector3)
IL_0774: ldfld System.Single UnityEngine.Vector3::y
IL_0779: ldloca.s 4 (UnityEngine.Vector3)
IL_077B: ldfld System.Single UnityEngine.Vector3::z
IL_0780: ldarg.0
IL_0781: ldfld System.Single LightEffect::m_lightRange
IL_0786: add
IL_0787: newobj System.Void UnityEngine.Vector3::.ctor(System.Single x,
System.Single y, System.Single z)
IL_078C: stobj UnityEngine.Vector3
IL_0791: ldarg.s 8
IL_0793: ldfld UnityEngine.Vector3[] MeshData::m_normals
IL_0798: ldarg.s 5
IL_079A: ldind.i4
IL_079B: ldelema UnityEngine.Vector3
IL_07A0: ldarg.3
IL_07A1: stobj UnityEngine.Vector3
IL_07A6: ldarg.s 8
IL_07A8: ldfld UnityEngine.Vector4[] MeshData::m_tangents
IL_07AD: ldarg.s 5
IL_07AF: ldind.i4
IL_07B0: ldelema UnityEngine.Vector4
IL_07B5: ldloc.s 7 (UnityEngine.Vector4)
IL_07B7: stobj UnityEngine.Vector4
IL_07BC: ldarg.s 8
IL_07BE: ldfld UnityEngine.Vector2[] MeshData::m_uvs
IL_07C3: ldarg.s 5
IL_07C5: ldind.i4
IL_07C6: ldelema UnityEngine.Vector2
IL_07CB: ldloc.s 8 (UnityEngine.Vector2)
IL_07CD: stobj UnityEngine.Vector2
IL_07D2: ldarg.s 8
IL_07D4: ldfld UnityEngine.Vector2[] MeshData::m_uvs2
IL_07D9: ldarg.s 5
IL_07DB: ldind.i4
IL_07DC: ldelema UnityEngine.Vector2
IL_07E1: ldloc.s 10 (UnityEngine.Vector2)
IL_07E3: stobj UnityEngine.Vector2
IL_07E8: ldarg.s 8
IL_07EA: ldfld UnityEngine.Vector2[] MeshData::m_uvs3
IL_07EF: ldarg.s 5
IL_07F1: ldind.i4
IL_07F2: ldelema UnityEngine.Vector2
IL_07F7: ldloc.s 11 (UnityEngine.Vector2)
IL_07F9: stobj UnityEngine.Vector2
IL_07FE: ldloc.0
IL_07FF: brfalse => Label18
IL_0804: ldarg.s 8
IL_0806: ldfld UnityEngine.Vector2[] MeshData::m_uvs4
IL_080B: ldarg.s 5
IL_080D: ldind.i4
IL_080E: ldelema UnityEngine.Vector2
IL_0813: ldloc.s 12 (UnityEngine.Vector2)
IL_0815: stobj UnityEngine.Vector2
IL_081A: Label18
IL_081A: ldarg.s 8
IL_081C: ldfld UnityEngine.Color32[] MeshData::m_colors
IL_0821: ldarg.s 5
IL_0823: ldind.i4
IL_0824: ldelema UnityEngine.Color32
IL_0829: ldloc.s 15 (UnityEngine.Color)
IL_082B: call static UnityEngine.Color32
UnityEngine.Color32::op_Implicit(UnityEngine.Color c)
IL_0830: stobj UnityEngine.Color32
IL_0835: ldarg.s 5
IL_0837: ldarg.s 5
IL_0839: ldind.i4
IL_083A: ldc.i4.1
IL_083B: add
IL_083C: stind.i4
IL_083D: ldarg.s 8
IL_083F: ldfld System.Int32[] MeshData::m_triangles
IL_0844: ldarg.s 6
IL_0846: ldarg.s 6
IL_0848: ldind.i4
IL_0849: dup
IL_084A: stloc.s 19 (System.Int32)
IL_084C: ldc.i4.1
IL_084D: add
IL_084E: stind.i4
IL_084F: ldloc.s 19 (System.Int32)
IL_0851: ldarg.s 5
IL_0853: ldind.i4
IL_0854: ldc.i4.6
IL_0855: sub
IL_0856: stelem.i4
IL_0857: ldarg.s 8
IL_0859: ldfld System.Int32[] MeshData::m_triangles
IL_085E: ldarg.s 6
IL_0860: ldarg.s 6
IL_0862: ldind.i4
IL_0863: dup
IL_0864: stloc.s 19 (System.Int32)
IL_0866: ldc.i4.1
IL_0867: add
IL_0868: stind.i4
IL_0869: ldloc.s 19 (System.Int32)
IL_086B: ldarg.s 5
IL_086D: ldind.i4
IL_086E: ldc.i4.5
IL_086F: sub
IL_0870: stelem.i4
IL_0871: ldarg.s 8
IL_0873: ldfld System.Int32[] MeshData::m_triangles
IL_0878: ldarg.s 6
IL_087A: ldarg.s 6
IL_087C: ldind.i4
IL_087D: dup
IL_087E: stloc.s 19 (System.Int32)
IL_0880: ldc.i4.1
IL_0881: add
IL_0882: stind.i4
IL_0883: ldloc.s 19 (System.Int32)
IL_0885: ldarg.s 5
IL_0887: ldind.i4
IL_0888: ldc.i4.1
IL_0889: sub
IL_088A: stelem.i4
IL_088B: ldarg.s 8
IL_088D: ldfld System.Int32[] MeshData::m_triangles
IL_0892: ldarg.s 6
IL_0894: ldarg.s 6
IL_0896: ldind.i4
IL_0897: dup
IL_0898: stloc.s 19 (System.Int32)
IL_089A: ldc.i4.1
IL_089B: add
IL_089C: stind.i4
IL_089D: ldloc.s 19 (System.Int32)
IL_089F: ldarg.s 5
IL_08A1: ldind.i4
IL_08A2: ldc.i4.1
IL_08A3: sub
IL_08A4: stelem.i4
IL_08A5: ldarg.s 8
IL_08A7: ldfld System.Int32[] MeshData::m_triangles
IL_08AC: ldarg.s 6
IL_08AE: ldarg.s 6
IL_08B0: ldind.i4
IL_08B1: dup
IL_08B2: stloc.s 19 (System.Int32)
IL_08B4: ldc.i4.1
IL_08B5: add
IL_08B6: stind.i4
IL_08B7: ldloc.s 19 (System.Int32)
IL_08B9: ldarg.s 5
IL_08BB: ldind.i4
IL_08BC: ldc.i4.5
IL_08BD: sub
IL_08BE: stelem.i4
IL_08BF: ldarg.s 8
IL_08C1: ldfld System.Int32[] MeshData::m_triangles
IL_08C6: ldarg.s 6
IL_08C8: ldarg.s 6
IL_08CA: ldind.i4
IL_08CB: dup
IL_08CC: stloc.s 19 (System.Int32)
IL_08CE: ldc.i4.1
IL_08CF: add
IL_08D0: stind.i4
IL_08D1: ldloc.s 19 (System.Int32)
IL_08D3: ldarg.s 5
IL_08D5: ldind.i4
IL_08D6: ldc.i4.4
IL_08D7: sub
IL_08D8: stelem.i4
IL_08D9: ldarg.s 8
IL_08DB: ldfld System.Int32[] MeshData::m_triangles
IL_08E0: ldarg.s 6
IL_08E2: ldarg.s 6
IL_08E4: ldind.i4
IL_08E5: dup
IL_08E6: stloc.s 19 (System.Int32)
IL_08E8: ldc.i4.1
IL_08E9: add
IL_08EA: stind.i4
IL_08EB: ldloc.s 19 (System.Int32)
IL_08ED: ldarg.s 5
IL_08EF: ldind.i4
IL_08F0: ldc.i4.1
IL_08F1: sub
IL_08F2: stelem.i4
IL_08F3: ldarg.s 8
IL_08F5: ldfld System.Int32[] MeshData::m_triangles
IL_08FA: ldarg.s 6
IL_08FC: ldarg.s 6
IL_08FE: ldind.i4
IL_08FF: dup
IL_0900: stloc.s 19 (System.Int32)
IL_0902: ldc.i4.1
IL_0903: add
IL_0904: stind.i4
IL_0905: ldloc.s 19 (System.Int32)
IL_0907: ldarg.s 5
IL_0909: ldind.i4
IL_090A: ldc.i4.4
IL_090B: sub
IL_090C: stelem.i4
IL_090D: ldarg.s 8
IL_090F: ldfld System.Int32[] MeshData::m_triangles
IL_0914: ldarg.s 6
IL_0916: ldarg.s 6
IL_0918: ldind.i4
IL_0919: dup
IL_091A: stloc.s 19 (System.Int32)
IL_091C: ldc.i4.1
IL_091D: add
IL_091E: stind.i4
IL_091F: ldloc.s 19 (System.Int32)
IL_0921: ldarg.s 5
IL_0923: ldind.i4
IL_0924: ldc.i4.2
IL_0925: sub
IL_0926: stelem.i4
IL_0927: ldarg.s 8
IL_0929: ldfld System.Int32[] MeshData::m_triangles
IL_092E: ldarg.s 6
IL_0930: ldarg.s 6
IL_0932: ldind.i4
IL_0933: dup
IL_0934: stloc.s 19 (System.Int32)
IL_0936: ldc.i4.1
IL_0937: add
IL_0938: stind.i4
IL_0939: ldloc.s 19 (System.Int32)
IL_093B: ldarg.s 5
IL_093D: ldind.i4
IL_093E: ldc.i4.2
IL_093F: sub
IL_0940: stelem.i4
IL_0941: ldarg.s 8
IL_0943: ldfld System.Int32[] MeshData::m_triangles
IL_0948: ldarg.s 6
IL_094A: ldarg.s 6
IL_094C: ldind.i4
IL_094D: dup
IL_094E: stloc.s 19 (System.Int32)
IL_0950: ldc.i4.1
IL_0951: add
IL_0952: stind.i4
IL_0953: ldloc.s 19 (System.Int32)
IL_0955: ldarg.s 5
IL_0957: ldind.i4
IL_0958: ldc.i4.4
IL_0959: sub
IL_095A: stelem.i4
IL_095B: ldarg.s 8
IL_095D: ldfld System.Int32[] MeshData::m_triangles
IL_0962: ldarg.s 6
IL_0964: ldarg.s 6
IL_0966: ldind.i4
IL_0967: dup
IL_0968: stloc.s 19 (System.Int32)
IL_096A: ldc.i4.1
IL_096B: add
IL_096C: stind.i4
IL_096D: ldloc.s 19 (System.Int32)
IL_096F: ldarg.s 5
IL_0971: ldind.i4
IL_0972: ldc.i4.3
IL_0973: sub
IL_0974: stelem.i4
IL_0975: // end original
IL_0975: Label1
IL_0975: ret
DONE
### Patch: virtual System.Void ElectricityManager::SimulationStepImpl(System.Int32
subStep)
### Replacement: static System.Void
ElectricityManager::ElectricityManager.SimulationStepImpl_Patch0(ElectricityManager
this, System.Int32 subStep)
IL_0000: Local var 0: System.UInt32
IL_0000: Local var 1: System.Int32
IL_0000: Local var 2: NetManager
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: NetInfo
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: ElectricityManager/Cell
IL_0000: Local var 13: ElectricityManager/PulseGroup
IL_0000: Local var 14: ElectricityManager/PulseUnit
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: ElectricityManager/PulseUnit
IL_0000: Local var 19: System.UInt32
IL_0000: Local var 20: System.Int32
IL_0000: Local var 21: ElectricityManager/Cell
IL_0000: Local var 22: System.Int32
IL_0000: Local var 23: System.Int32
IL_0000: Local var 24: NetNode
IL_0000: Local var 25: System.Int32
IL_0000: Local var 26: System.UInt16
IL_0000: Local var 27: System.UInt16
IL_0000: Local var 28: System.UInt16
IL_0000: Local var 29: System.UInt16
IL_0000: Local var 30: System.Int32
IL_0000: Local var 31: ElectricityManager/PulseGroup
IL_0000: Local var 32: ElectricityManager/PulseGroup
IL_0000: Local var 33: System.Int32
IL_0000: Local var 34: ElectricityManager/PulseGroup
IL_0000: Local var 35: System.Int32
IL_0000: Local var 36: ElectricityManager/Cell
IL_0000: // start original
IL_0000: ldarg.1
IL_0001: brfalse => Label0
IL_0006: ldarg.1
IL_0007: ldc.i4 1000
IL_000C: beq => Label1
IL_0011: call static SimulationManager
ColossalFramework.Singleton`1<SimulationManager>::get_instance()
IL_0016: ldfld System.UInt32 SimulationManager::m_currentFrameIndex
IL_001B: stloc.0
IL_001C: ldloc.0
IL_001D: ldc.i4 255
IL_0022: and
IL_0023: stloc.1
IL_0024: ldloc.1
IL_0025: ldc.i4 128
IL_002A: bge => Label2
IL_002F: ldloc.1
IL_0030: brtrue => Label3
IL_0035: ldarg.0
IL_0036: ldc.i4.0
IL_0037: stfld System.Int32 ElectricityManager::m_pulseGroupCount
IL_003C: ldarg.0
IL_003D: ldc.i4.0
IL_003E: stfld System.Int32 ElectricityManager::m_pulseUnitStart
IL_0043: ldarg.0
IL_0044: ldc.i4.0
IL_0045: stfld System.Int32 ElectricityManager::m_pulseUnitEnd
IL_004A: ldarg.0
IL_004B: ldc.i4.0
IL_004C: stfld System.Int32 ElectricityManager::m_processedCells
IL_0051: ldarg.0
IL_0052: ldc.i4.0
IL_0053: stfld System.Int32 ElectricityManager::m_conductiveCells
IL_0058: ldarg.0
IL_0059: ldc.i4.1
IL_005A: stfld System.Boolean ElectricityManager::m_canContinue
IL_005F: Label3
IL_005F: call static NetManager
ColossalFramework.Singleton`1<NetManager>::get_instance()
IL_0064: stloc.2
IL_0065: ldloc.1
IL_0066: ldc.i4 32768
IL_006B: mul
IL_006C: ldc.i4.7
IL_006D: shr
IL_006E: stloc.3
IL_006F: ldloc.1
IL_0070: ldc.i4.1
IL_0071: add
IL_0072: ldc.i4 32768
IL_0077: mul
IL_0078: ldc.i4.7
IL_0079: shr
IL_007A: ldc.i4.1
IL_007B: sub
IL_007C: stloc.s 4 (System.Int32)
IL_007E: ldloc.3
IL_007F: stloc.s 5 (System.Int32)
IL_0081: br => Label4
IL_0086: Label10
IL_0086: ldloc.2
IL_0087: ldfld Array16`1<NetNode> NetManager::m_nodes
IL_008C: ldfld NetNode[] Array16`1<NetNode>::m_buffer
IL_0091: ldloc.s 5 (System.Int32)
IL_0093: ldelema NetNode
IL_0098: ldfld Flags NetNode::m_flags
IL_009D: brfalse => Label5
IL_00A2: ldloc.2
IL_00A3: ldfld Array16`1<NetNode> NetManager::m_nodes
IL_00A8: ldfld NetNode[] Array16`1<NetNode>::m_buffer
IL_00AD: ldloc.s 5 (System.Int32)
IL_00AF: ldelema NetNode
IL_00B4: call NetInfo NetNode::get_Info()
IL_00B9: stloc.s 6 (NetInfo)
IL_00BB: ldloc.s 6 (NetInfo)
IL_00BD: ldfld ItemClass NetInfo::m_class
IL_00C2: ldfld Service ItemClass::m_service
IL_00C7: ldc.i4.s 10
IL_00C9: beq => Label6
IL_00CE: ldloc.s 6 (NetInfo)
IL_00D0: ldfld NetAI NetInfo::m_netAI
IL_00D5: isinst ConcourseAI
IL_00DA: brfalse => Label7
IL_00DF: Label6
IL_00DF: ldarg.0
IL_00E0: ldloc.s 5 (System.Int32)
IL_00E2: ldarg.0
IL_00E3: ldfld System.UInt16[] ElectricityManager::m_nodeGroups
IL_00E8: ldloc.s 5 (System.Int32)
IL_00EA: ldelem.u2
IL_00EB: ldc.i4 65535
IL_00F0: beq => Label8
IL_00F5: ldc.i4.1
IL_00F6: br => Label9
IL_00FB: Label8
IL_00FB: ldc.i4.0
IL_00FC: Label9
IL_00FC: call System.Void
ElectricityManager::UpdateNodeElectricity(System.Int32 nodeID, System.Int32 value)
IL_0101: ldarg.0
IL_0102: dup
IL_0103: ldfld System.Int32 ElectricityManager::m_conductiveCells
IL_0108: ldc.i4.1
IL_0109: add
IL_010A: stfld System.Int32 ElectricityManager::m_conductiveCells
IL_010F: Label5
IL_010F: Label7
IL_010F: ldarg.0
IL_0110: ldfld System.UInt16[] ElectricityManager::m_nodeGroups
IL_0115: ldloc.s 5 (System.Int32)
IL_0117: ldc.i4 65535
IL_011C: stelem.i2
IL_011D: ldloc.s 5 (System.Int32)
IL_011F: ldc.i4.1
IL_0120: add
IL_0121: stloc.s 5 (System.Int32)
IL_0123: Label4
IL_0123: ldloc.s 5 (System.Int32)
IL_0125: ldloc.s 4 (System.Int32)
IL_0127: ble => Label10
IL_012C: ldloc.1
IL_012D: ldc.i4 256
IL_0132: mul
IL_0133: ldc.i4.7
IL_0134: shr
IL_0135: stloc.s 7 (System.Int32)
IL_0137: ldloc.1
IL_0138: ldc.i4.1
IL_0139: add
IL_013A: ldc.i4 256
IL_013F: mul
IL_0140: ldc.i4.7
IL_0141: shr
IL_0142: ldc.i4.1
IL_0143: sub
IL_0144: stloc.s 8 (System.Int32)
IL_0146: ldloc.s 7 (System.Int32)
IL_0148: stloc.s 9 (System.Int32)
IL_014A: br => Label11
IL_014F: Label21
IL_014F: ldloc.s 9 (System.Int32)
IL_0151: ldc.i4 256
IL_0156: mul
IL_0157: stloc.s 10 (System.Int32)
IL_0159: ldc.i4.0
IL_015A: stloc.s 11 (System.Int32)
IL_015C: br => Label12
IL_0161: Label20
IL_0161: ldarg.0
IL_0162: ldfld Cell[] ElectricityManager::m_electricityGrid
IL_0167: ldloc.s 10 (System.Int32)
IL_0169: ldelema ElectricityManager+Cell
IL_016E: ldobj ElectricityManager+Cell
IL_0173: stloc.s 12 (ElectricityManager+Cell)
IL_0175: ldloca.s 12 (ElectricityManager+Cell)
IL_0177: ldfld System.Int16 Cell::m_currentCharge
IL_017C: ldc.i4.0
IL_017D: ble => Label13
IL_0182: ldarg.0
IL_0183: ldfld System.Int32 ElectricityManager::m_pulseGroupCount
IL_0188: ldc.i4 1024
IL_018D: bge => Label14
IL_0192: ldloca.s 13 (ElectricityManager+PulseGroup)
IL_0194: ldloca.s 12 (ElectricityManager+Cell)
IL_0196: ldfld System.Int16 Cell::m_currentCharge
IL_019B: conv.u4
IL_019C: stfld System.UInt32 PulseGroup::m_origCharge
IL_01A1: ldloca.s 13 (ElectricityManager+PulseGroup)
IL_01A3: ldloca.s 12 (ElectricityManager+Cell)
IL_01A5: ldfld System.Int16 Cell::m_currentCharge
IL_01AA: conv.u4
IL_01AB: stfld System.UInt32 PulseGroup::m_curCharge
IL_01B0: ldloca.s 13 (ElectricityManager+PulseGroup)
IL_01B2: ldc.i4.0
IL_01B3: stfld System.UInt16 PulseGroup::m_mergeCount
IL_01B8: ldloca.s 13 (ElectricityManager+PulseGroup)
IL_01BA: ldc.i4 65535
IL_01BF: stfld System.UInt16 PulseGroup::m_mergeIndex
IL_01C4: ldloca.s 13 (ElectricityManager+PulseGroup)
IL_01C6: ldloc.s 11 (System.Int32)
IL_01C8: conv.u1
IL_01C9: stfld System.Byte PulseGroup::m_x
IL_01CE: ldloca.s 13 (ElectricityManager+PulseGroup)
IL_01D0: ldloc.s 9 (System.Int32)
IL_01D2: conv.u1
IL_01D3: stfld System.Byte PulseGroup::m_z
IL_01D8: ldloca.s 14 (ElectricityManager+PulseUnit)
IL_01DA: ldarg.0
IL_01DB: ldfld System.Int32 ElectricityManager::m_pulseGroupCount
IL_01E0: conv.u2
IL_01E1: stfld System.UInt16 PulseUnit::m_group
IL_01E6: ldloca.s 14 (ElectricityManager+PulseUnit)
IL_01E8: ldc.i4.0
IL_01E9: stfld System.UInt16 PulseUnit::m_node
IL_01EE: ldloca.s 14 (ElectricityManager+PulseUnit)
IL_01F0: ldloc.s 11 (System.Int32)
IL_01F2: conv.u1
IL_01F3: stfld System.Byte PulseUnit::m_x
IL_01F8: ldloca.s 14 (ElectricityManager+PulseUnit)
IL_01FA: ldloc.s 9 (System.Int32)
IL_01FC: conv.u1
IL_01FD: stfld System.Byte PulseUnit::m_z
IL_0202: ldloca.s 12 (ElectricityManager+Cell)
IL_0204: ldarg.0
IL_0205: ldfld System.Int32 ElectricityManager::m_pulseGroupCount
IL_020A: conv.u2
IL_020B: stfld System.UInt16 Cell::m_pulseGroup
IL_0210: ldarg.0
IL_0211: ldfld PulseGroup[] ElectricityManager::m_pulseGroups
IL_0216: ldarg.0
IL_0217: dup
IL_0218: ldfld System.Int32 ElectricityManager::m_pulseGroupCount
IL_021D: dup
IL_021E: stloc.s 15 (System.Int32)
IL_0220: ldc.i4.1
IL_0221: add
IL_0222: stfld System.Int32 ElectricityManager::m_pulseGroupCount
IL_0227: ldloc.s 15 (System.Int32)
IL_0229: ldelema ElectricityManager+PulseGroup
IL_022E: ldloc.s 13 (ElectricityManager+PulseGroup)
IL_0230: stobj ElectricityManager+PulseGroup
IL_0235: ldarg.0
IL_0236: ldfld PulseUnit[] ElectricityManager::m_pulseUnits
IL_023B: ldarg.0
IL_023C: ldfld System.Int32 ElectricityManager::m_pulseUnitEnd
IL_0241: ldelema ElectricityManager+PulseUnit
IL_0246: ldloc.s 14 (ElectricityManager+PulseUnit)
IL_0248: stobj ElectricityManager+PulseUnit
IL_024D: ldarg.0
IL_024E: dup
IL_024F: ldfld System.Int32 ElectricityManager::m_pulseUnitEnd
IL_0254: ldc.i4.1
IL_0255: add
IL_0256: dup
IL_0257: stloc.s 15 (System.Int32)
IL_0259: stfld System.Int32 ElectricityManager::m_pulseUnitEnd
IL_025E: ldloc.s 15 (System.Int32)
IL_0260: ldarg.0
IL_0261: ldfld PulseUnit[] ElectricityManager::m_pulseUnits
IL_0266: ldlen
IL_0267: conv.i4
IL_0268: bne.un => Label15
IL_026D: ldarg.0
IL_026E: ldc.i4.0
IL_026F: stfld System.Int32 ElectricityManager::m_pulseUnitEnd
IL_0274: Label15
IL_0274: br => Label16
IL_0279: Label14
IL_0279: ldloca.s 12 (ElectricityManager+Cell)
IL_027B: ldc.i4 65535
IL_0280: stfld System.UInt16 Cell::m_pulseGroup
IL_0285: Label16
IL_0285: ldloca.s 12 (ElectricityManager+Cell)
IL_0287: ldc.i4.0
IL_0288: stfld System.Int16 Cell::m_currentCharge
IL_028D: ldarg.0
IL_028E: dup
IL_028F: ldfld System.Int32 ElectricityManager::m_conductiveCells
IL_0294: ldc.i4.1
IL_0295: add
IL_0296: stfld System.Int32 ElectricityManager::m_conductiveCells
IL_029B: br => Label17
IL_02A0: Label13
IL_02A0: ldloca.s 12 (ElectricityManager+Cell)
IL_02A2: ldc.i4 65535
IL_02A7: stfld System.UInt16 Cell::m_pulseGroup
IL_02AC: ldloca.s 12 (ElectricityManager+Cell)
IL_02AE: ldfld System.Byte Cell::m_conductivity
IL_02B3: ldc.i4.s 64
IL_02B5: blt => Label18
IL_02BA: ldarg.0
IL_02BB: dup
IL_02BC: ldfld System.Int32 ElectricityManager::m_conductiveCells
IL_02C1: ldc.i4.1
IL_02C2: add
IL_02C3: stfld System.Int32 ElectricityManager::m_conductiveCells
IL_02C8: Label17
IL_02C8: Label18
IL_02C8: ldloca.s 12 (ElectricityManager+Cell)
IL_02CA: ldfld System.Boolean Cell::m_tmpElectrified
IL_02CF: ldloca.s 12 (ElectricityManager+Cell)
IL_02D1: ldfld System.Boolean Cell::m_electrified
IL_02D6: beq => Label19
IL_02DB: ldloca.s 12 (ElectricityManager+Cell)
IL_02DD: ldloca.s 12 (ElectricityManager+Cell)
IL_02DF: ldfld System.Boolean Cell::m_tmpElectrified
IL_02E4: stfld System.Boolean Cell::m_electrified
IL_02E9: Label19
IL_02E9: ldloca.s 12 (ElectricityManager+Cell)
IL_02EB: ldloca.s 12 (ElectricityManager+Cell)
IL_02ED: ldfld System.UInt16 Cell::m_pulseGroup
IL_02F2: ldc.i4 65535
IL_02F7: ceq
IL_02F9: ldc.i4.0
IL_02FA: ceq
IL_02FC: stfld System.Boolean Cell::m_tmpElectrified
IL_0301: ldarg.0
IL_0302: ldfld Cell[] ElectricityManager::m_electricityGrid
IL_0307: ldloc.s 10 (System.Int32)
IL_0309: ldelema ElectricityManager+Cell
IL_030E: ldloc.s 12 (ElectricityManager+Cell)
IL_0310: stobj ElectricityManager+Cell
IL_0315: ldloc.s 10 (System.Int32)
IL_0317: ldc.i4.1
IL_0318: add
IL_0319: stloc.s 10 (System.Int32)
IL_031B: ldloc.s 11 (System.Int32)
IL_031D: ldc.i4.1
IL_031E: add
IL_031F: stloc.s 11 (System.Int32)
IL_0321: Label12
IL_0321: ldloc.s 11 (System.Int32)
IL_0323: ldc.i4 256
IL_0328: blt => Label20
IL_032D: ldloc.s 9 (System.Int32)
IL_032F: ldc.i4.1
IL_0330: add
IL_0331: stloc.s 9 (System.Int32)
IL_0333: Label11
IL_0333: ldloc.s 9 (System.Int32)
IL_0335: ldloc.s 8 (System.Int32)
IL_0337: ble => Label21
IL_033C: br => Label22
IL_0341: Label2
IL_0341: ldloc.1
IL_0342: ldc.i4.s 127
IL_0344: sub
IL_0345: ldarg.0
IL_0346: ldfld System.Int32 ElectricityManager::m_conductiveCells
IL_034B: mul
IL_034C: ldc.i4.7
IL_034D: shr
IL_034E: stloc.s 16 (System.Int32)
IL_0350: ldloc.1
IL_0351: ldc.i4 255
IL_0356: bne.un => Label23
IL_035B: ldc.i4 1000000000
IL_0360: stloc.s 16 (System.Int32)
IL_0362: Label23
IL_0362: br => Label24
IL_0367: Label54
IL_0367: ldarg.0
IL_0368: ldc.i4.0
IL_0369: stfld System.Boolean ElectricityManager::m_canContinue
IL_036E: ldarg.0
IL_036F: ldfld System.Int32 ElectricityManager::m_pulseUnitEnd
IL_0374: stloc.s 17 (System.Int32)
IL_0376: br => Label25
IL_037B: Label52
IL_037B: ldarg.0
IL_037C: ldfld PulseUnit[] ElectricityManager::m_pulseUnits
IL_0381: ldarg.0
IL_0382: ldfld System.Int32 ElectricityManager::m_pulseUnitStart
IL_0387: ldelema ElectricityManager+PulseUnit
IL_038C: ldobj ElectricityManager+PulseUnit
IL_0391: stloc.s 18 (ElectricityManager+PulseUnit)
IL_0393: ldarg.0
IL_0394: dup
IL_0395: ldfld System.Int32 ElectricityManager::m_pulseUnitStart
IL_039A: ldc.i4.1
IL_039B: add
IL_039C: dup
IL_039D: stloc.s 15 (System.Int32)
IL_039F: stfld System.Int32 ElectricityManager::m_pulseUnitStart
IL_03A4: ldloc.s 15 (System.Int32)
IL_03A6: ldarg.0
IL_03A7: ldfld PulseUnit[] ElectricityManager::m_pulseUnits
IL_03AC: ldlen
IL_03AD: conv.i4
IL_03AE: bne.un => Label26
IL_03B3: ldarg.0
IL_03B4: ldc.i4.0
IL_03B5: stfld System.Int32 ElectricityManager::m_pulseUnitStart
IL_03BA: Label26
IL_03BA: ldloca.s 18 (ElectricityManager+PulseUnit)
IL_03BC: ldarg.0
IL_03BD: ldloca.s 18 (ElectricityManager+PulseUnit)
IL_03BF: ldfld System.UInt16 PulseUnit::m_group
IL_03C4: call System.UInt16 ElectricityManager::GetRootGroup(System.UInt16
group)
IL_03C9: stfld System.UInt16 PulseUnit::m_group
IL_03CE: ldarg.0
IL_03CF: ldfld PulseGroup[] ElectricityManager::m_pulseGroups
IL_03D4: ldloca.s 18 (ElectricityManager+PulseUnit)
IL_03D6: ldfld System.UInt16 PulseUnit::m_group
IL_03DB: ldelema ElectricityManager+PulseGroup
IL_03E0: ldfld System.UInt32 PulseGroup::m_curCharge
IL_03E5: stloc.s 19 (System.UInt32)
IL_03E7: ldloca.s 18 (ElectricityManager+PulseUnit)
IL_03E9: ldfld System.UInt16 PulseUnit::m_node
IL_03EE: brtrue => Label27
IL_03F3: ldloca.s 18 (ElectricityManager+PulseUnit)
IL_03F5: ldfld System.Byte PulseUnit::m_z
IL_03FA: ldc.i4 256
IL_03FF: mul
IL_0400: ldloca.s 18 (ElectricityManager+PulseUnit)
IL_0402: ldfld System.Byte PulseUnit::m_x
IL_0407: add
IL_0408: stloc.s 20 (System.Int32)
IL_040A: ldarg.0
IL_040B: ldfld Cell[] ElectricityManager::m_electricityGrid
IL_0410: ldloc.s 20 (System.Int32)
IL_0412: ldelema ElectricityManager+Cell
IL_0417: ldobj ElectricityManager+Cell
IL_041C: stloc.s 21 (ElectricityManager+Cell)
IL_041E: ldloca.s 21 (ElectricityManager+Cell)
IL_0420: ldfld System.Byte Cell::m_conductivity
IL_0425: brfalse => Label28
IL_042A: ldloca.s 21 (ElectricityManager+Cell)
IL_042C: ldfld System.Boolean Cell::m_tmpElectrified
IL_0431: brtrue => Label29
IL_0436: ldloc.s 19 (System.UInt32)
IL_0438: brfalse => Label30
IL_043D: ldloca.s 21 (ElectricityManager+Cell)
IL_043F: ldfld System.Int16 Cell::m_currentCharge
IL_0444: neg
IL_0445: ldc.i4.0
IL_0446: ldloc.s 19 (System.UInt32)
IL_0448: call static System.Int32 UnityEngine.Mathf::Clamp(System.Int32
value, System.Int32 min, System.Int32 max)
IL_044D: stloc.s 22 (System.Int32)
IL_044F: ldloc.s 19 (System.UInt32)
IL_0451: ldloc.s 22 (System.Int32)
IL_0453: sub
IL_0454: stloc.s 19 (System.UInt32)
IL_0456: ldloca.s 21 (ElectricityManager+Cell)
IL_0458: dup
IL_0459: ldfld System.Int16 Cell::m_currentCharge
IL_045E: ldloc.s 22 (System.Int32)
IL_0460: conv.i2
IL_0461: add
IL_0462: conv.i2
IL_0463: stfld System.Int16 Cell::m_currentCharge
IL_0468: ldloca.s 21 (ElectricityManager+Cell)
IL_046A: ldfld System.Int16 Cell::m_currentCharge
IL_046F: brtrue => Label31
IL_0474: ldloca.s 21 (ElectricityManager+Cell)
IL_0476: ldc.i4.1
IL_0477: stfld System.Boolean Cell::m_tmpElectrified
IL_047C: Label31
IL_047C: ldarg.0
IL_047D: ldfld Cell[] ElectricityManager::m_electricityGrid
IL_0482: ldloc.s 20 (System.Int32)
IL_0484: ldelema ElectricityManager+Cell
IL_0489: ldloc.s 21 (ElectricityManager+Cell)
IL_048B: stobj ElectricityManager+Cell
IL_0490: ldarg.0
IL_0491: ldfld PulseGroup[] ElectricityManager::m_pulseGroups
IL_0496: ldloca.s 18 (ElectricityManager+PulseUnit)
IL_0498: ldfld System.UInt16 PulseUnit::m_group
IL_049D: ldelema ElectricityManager+PulseGroup
IL_04A2: ldloc.s 19 (System.UInt32)
IL_04A4: stfld System.UInt32 PulseGroup::m_curCharge
IL_04A9: Label28
IL_04A9: Label29
IL_04A9: Label30
IL_04A9: ldloc.s 19 (System.UInt32)
IL_04AB: brfalse => Label32
IL_04B0: ldloca.s 21 (ElectricityManager+Cell)
IL_04B2: ldfld System.Byte Cell::m_conductivity
IL_04B7: ldc.i4.s 64
IL_04B9: blt => Label33
IL_04BE: ldc.i4.1
IL_04BF: br => Label34
IL_04C4: Label33
IL_04C4: ldc.i4.s 64
IL_04C6: Label34
IL_04C6: stloc.s 23 (System.Int32)
IL_04C8: ldarg.0
IL_04C9: dup
IL_04CA: ldfld System.Int32 ElectricityManager::m_processedCells
IL_04CF: ldc.i4.1
IL_04D0: add
IL_04D1: stfld System.Int32 ElectricityManager::m_processedCells
IL_04D6: ldloca.s 18 (ElectricityManager+PulseUnit)
IL_04D8: ldfld System.Byte PulseUnit::m_z
IL_04DD: ldc.i4.0
IL_04DE: ble => Label35
IL_04E3: ldarg.0
IL_04E4: ldarg.0
IL_04E5: ldfld Cell[] ElectricityManager::m_electricityGrid
IL_04EA: ldloc.s 20 (System.Int32)
IL_04EC: ldc.i4 256
IL_04F1: sub
IL_04F2: ldelema ElectricityManager+Cell
IL_04F7: ldloca.s 18 (ElectricityManager+PulseUnit)
IL_04F9: ldfld System.UInt16 PulseUnit::m_group
IL_04FE: ldloca.s 18 (ElectricityManager+PulseUnit)
IL_0500: ldfld System.Byte PulseUnit::m_x
IL_0505: ldloca.s 18 (ElectricityManager+PulseUnit)
IL_0507: ldfld System.Byte PulseUnit::m_z
IL_050C: ldc.i4.1
IL_050D: sub
IL_050E: ldloc.s 23 (System.Int32)
IL_0510: call System.Void ElectricityManager::ConductToCell(Cell& cell,
System.UInt16 group, System.Int32 x, System.Int32 z, System.Int32 limit)
IL_0515: Label35
IL_0515: ldloca.s 18 (ElectricityManager+PulseUnit)
IL_0517: ldfld System.Byte PulseUnit::m_x
IL_051C: ldc.i4.0
IL_051D: ble => Label36
IL_0522: ldarg.0
IL_0523: ldarg.0
IL_0524: ldfld Cell[] ElectricityManager::m_electricityGrid
IL_0529: ldloc.s 20 (System.Int32)
IL_052B: ldc.i4.1
IL_052C: sub
IL_052D: ldelema ElectricityManager+Cell
IL_0532: ldloca.s 18 (ElectricityManager+PulseUnit)
IL_0534: ldfld System.UInt16 PulseUnit::m_group
IL_0539: ldloca.s 18 (ElectricityManager+PulseUnit)
IL_053B: ldfld System.Byte PulseUnit::m_x
IL_0540: ldc.i4.1
IL_0541: sub
IL_0542: ldloca.s 18 (ElectricityManager+PulseUnit)
IL_0544: ldfld System.Byte PulseUnit::m_z
IL_0549: ldloc.s 23 (System.Int32)
IL_054B: call System.Void ElectricityManager::ConductToCell(Cell& cell,
System.UInt16 group, System.Int32 x, System.Int32 z, System.Int32 limit)
IL_0550: Label36
IL_0550: ldloca.s 18 (ElectricityManager+PulseUnit)
IL_0552: ldfld System.Byte PulseUnit::m_z
IL_0557: ldc.i4 255
IL_055C: bge => Label37
IL_0561: ldarg.0
IL_0562: ldarg.0
IL_0563: ldfld Cell[] ElectricityManager::m_electricityGrid
IL_0568: ldloc.s 20 (System.Int32)
IL_056A: ldc.i4 256
IL_056F: add
IL_0570: ldelema ElectricityManager+Cell
IL_0575: ldloca.s 18 (ElectricityManager+PulseUnit)
IL_0577: ldfld System.UInt16 PulseUnit::m_group
IL_057C: ldloca.s 18 (ElectricityManager+PulseUnit)
IL_057E: ldfld System.Byte PulseUnit::m_x
IL_0583: ldloca.s 18 (ElectricityManager+PulseUnit)
IL_0585: ldfld System.Byte PulseUnit::m_z
IL_058A: ldc.i4.1
IL_058B: add
IL_058C: ldloc.s 23 (System.Int32)
IL_058E: call System.Void ElectricityManager::ConductToCell(Cell& cell,
System.UInt16 group, System.Int32 x, System.Int32 z, System.Int32 limit)
IL_0593: Label37
IL_0593: ldloca.s 18 (ElectricityManager+PulseUnit)
IL_0595: ldfld System.Byte PulseUnit::m_x
IL_059A: ldc.i4 255
IL_059F: bge => Label38
IL_05A4: ldarg.0
IL_05A5: ldarg.0
IL_05A6: ldfld Cell[] ElectricityManager::m_electricityGrid
IL_05AB: ldloc.s 20 (System.Int32)
IL_05AD: ldc.i4.1
IL_05AE: add
IL_05AF: ldelema ElectricityManager+Cell
IL_05B4: ldloca.s 18 (ElectricityManager+PulseUnit)
IL_05B6: ldfld System.UInt16 PulseUnit::m_group
IL_05BB: ldloca.s 18 (ElectricityManager+PulseUnit)
IL_05BD: ldfld System.Byte PulseUnit::m_x
IL_05C2: ldc.i4.1
IL_05C3: add
IL_05C4: ldloca.s 18 (ElectricityManager+PulseUnit)
IL_05C6: ldfld System.Byte PulseUnit::m_z
IL_05CB: ldloc.s 23 (System.Int32)
IL_05CD: call System.Void ElectricityManager::ConductToCell(Cell& cell,
System.UInt16 group, System.Int32 x, System.Int32 z, System.Int32 limit)
IL_05D2: Label38
IL_05D2: ldarg.0
IL_05D3: ldloca.s 18 (ElectricityManager+PulseUnit)
IL_05D5: ldfld System.UInt16 PulseUnit::m_group
IL_05DA: ldloca.s 18 (ElectricityManager+PulseUnit)
IL_05DC: ldfld System.Byte PulseUnit::m_x
IL_05E1: ldloca.s 18 (ElectricityManager+PulseUnit)
IL_05E3: ldfld System.Byte PulseUnit::m_z
IL_05E8: call System.Void ElectricityManager::ConductToNodes(System.UInt16
group, System.Int32 cellX, System.Int32 cellZ)
IL_05ED: br => Label39
IL_05F2: Label32
IL_05F2: ldarg.0
IL_05F3: ldfld PulseUnit[] ElectricityManager::m_pulseUnits
IL_05F8: ldarg.0
IL_05F9: ldfld System.Int32 ElectricityManager::m_pulseUnitEnd
IL_05FE: ldelema ElectricityManager+PulseUnit
IL_0603: ldloc.s 18 (ElectricityManager+PulseUnit)
IL_0605: stobj ElectricityManager+PulseUnit
IL_060A: ldarg.0
IL_060B: dup
IL_060C: ldfld System.Int32 ElectricityManager::m_pulseUnitEnd
IL_0611: ldc.i4.1
IL_0612: add
IL_0613: dup
IL_0614: stloc.s 15 (System.Int32)
IL_0616: stfld System.Int32 ElectricityManager::m_pulseUnitEnd
IL_061B: ldloc.s 15 (System.Int32)
IL_061D: ldarg.0
IL_061E: ldfld PulseUnit[] ElectricityManager::m_pulseUnits
IL_0623: ldlen
IL_0624: conv.i4
IL_0625: bne.un => Label40
IL_062A: ldarg.0
IL_062B: ldc.i4.0
IL_062C: stfld System.Int32 ElectricityManager::m_pulseUnitEnd
IL_0631: Label39
IL_0631: Label40
IL_0631: br => Label41
IL_0636: Label27
IL_0636: ldloc.s 19 (System.UInt32)
IL_0638: brfalse => Label42
IL_063D: ldarg.0
IL_063E: dup
IL_063F: ldfld System.Int32 ElectricityManager::m_processedCells
IL_0644: ldc.i4.1
IL_0645: add
IL_0646: stfld System.Int32 ElectricityManager::m_processedCells
IL_064B: call static NetManager
ColossalFramework.Singleton`1<NetManager>::get_instance()
IL_0650: ldfld Array16`1<NetNode> NetManager::m_nodes
IL_0655: ldfld NetNode[] Array16`1<NetNode>::m_buffer
IL_065A: ldloca.s 18 (ElectricityManager+PulseUnit)
IL_065C: ldfld System.UInt16 PulseUnit::m_node
IL_0661: ldelema NetNode
IL_0666: ldobj NetNode
IL_066B: stloc.s 24 (NetNode)
IL_066D: ldloca.s 24 (NetNode)
IL_066F: ldfld Flags NetNode::m_flags
IL_0674: brfalse => Label43
IL_0679: ldloca.s 24 (NetNode)
IL_067B: ldfld System.UInt32 NetNode::m_buildIndex
IL_0680: ldloc.0
IL_0681: ldc.i4.s -128
IL_0683: and
IL_0684: bge.un => Label44
IL_0689: ldarg.0
IL_068A: ldloca.s 18 (ElectricityManager+PulseUnit)
IL_068C: ldfld System.UInt16 PulseUnit::m_group
IL_0691: ldloca.s 24 (NetNode)
IL_0693: ldflda UnityEngine.Vector3 NetNode::m_position
IL_0698: ldfld System.Single UnityEngine.Vector3::x
IL_069D: ldloca.s 24 (NetNode)
IL_069F: ldflda UnityEngine.Vector3 NetNode::m_position
IL_06A4: ldfld System.Single UnityEngine.Vector3::z
IL_06A9: call System.Void ElectricityManager::ConductToCells(System.UInt16
group, System.Single worldX, System.Single worldZ)
IL_06AE: ldc.i4.0
IL_06AF: stloc.s 25 (System.Int32)
IL_06B1: br => Label45
IL_06B6: Label49
IL_06B6: ldloca.s 24 (NetNode)
IL_06B8: ldloc.s 25 (System.Int32)
IL_06BA: call System.UInt16 NetNode::GetSegment(System.Int32 index)
IL_06BF: stloc.s 26 (System.UInt16)
IL_06C1: ldloc.s 26 (System.UInt16)
IL_06C3: brfalse => Label46
IL_06C8: call static NetManager
ColossalFramework.Singleton`1<NetManager>::get_instance()
IL_06CD: ldfld Array16`1<NetSegment> NetManager::m_segments
IL_06D2: ldfld NetSegment[] Array16`1<NetSegment>::m_buffer
IL_06D7: ldloc.s 26 (System.UInt16)
IL_06D9: ldelema NetSegment
IL_06DE: ldfld System.UInt16 NetSegment::m_startNode
IL_06E3: stloc.s 27 (System.UInt16)
IL_06E5: call static NetManager
ColossalFramework.Singleton`1<NetManager>::get_instance()
IL_06EA: ldfld Array16`1<NetSegment> NetManager::m_segments
IL_06EF: ldfld NetSegment[] Array16`1<NetSegment>::m_buffer
IL_06F4: ldloc.s 26 (System.UInt16)
IL_06F6: ldelema NetSegment
IL_06FB: ldfld System.UInt16 NetSegment::m_endNode
IL_0700: stloc.s 28 (System.UInt16)
IL_0702: ldloc.s 27 (System.UInt16)
IL_0704: ldloca.s 18 (ElectricityManager+PulseUnit)
IL_0706: ldfld System.UInt16 PulseUnit::m_node
IL_070B: bne.un => Label47
IL_0710: ldloc.s 28 (System.UInt16)
IL_0712: br => Label48
IL_0717: Label47
IL_0717: ldloc.s 27 (System.UInt16)
IL_0719: Label48
IL_0719: stloc.s 29 (System.UInt16)
IL_071B: ldarg.0
IL_071C: ldloc.s 29 (System.UInt16)
IL_071E: call static NetManager
ColossalFramework.Singleton`1<NetManager>::get_instance()
IL_0723: ldfld Array16`1<NetNode> NetManager::m_nodes
IL_0728: ldfld NetNode[] Array16`1<NetNode>::m_buffer
IL_072D: ldloc.s 29 (System.UInt16)
IL_072F: ldelema NetNode
IL_0734: ldloca.s 18 (ElectricityManager+PulseUnit)
IL_0736: ldfld System.UInt16 PulseUnit::m_group
IL_073B: ldc.r4 -100000
IL_0740: ldc.r4 -100000
IL_0745: ldc.r4 100000
IL_074A: ldc.r4 100000
IL_074F: call System.Void ElectricityManager::ConductToNode(System.UInt16
nodeIndex, NetNode& node, System.UInt16 group, System.Single minX, System.Single
minZ, System.Single maxX, System.Single maxZ)
IL_0754: Label46
IL_0754: ldloc.s 25 (System.Int32)
IL_0756: ldc.i4.1
IL_0757: add
IL_0758: stloc.s 25 (System.Int32)
IL_075A: Label45
IL_075A: ldloc.s 25 (System.Int32)
IL_075C: ldc.i4.8
IL_075D: blt => Label49
IL_0762: Label43
IL_0762: Label44
IL_0762: br => Label50
IL_0767: Label42
IL_0767: ldarg.0
IL_0768: ldfld PulseUnit[] ElectricityManager::m_pulseUnits
IL_076D: ldarg.0
IL_076E: ldfld System.Int32 ElectricityManager::m_pulseUnitEnd
IL_0773: ldelema ElectricityManager+PulseUnit
IL_0778: ldloc.s 18 (ElectricityManager+PulseUnit)
IL_077A: stobj ElectricityManager+PulseUnit
IL_077F: ldarg.0
IL_0780: dup
IL_0781: ldfld System.Int32 ElectricityManager::m_pulseUnitEnd
IL_0786: ldc.i4.1
IL_0787: add
IL_0788: dup
IL_0789: stloc.s 15 (System.Int32)
IL_078B: stfld System.Int32 ElectricityManager::m_pulseUnitEnd
IL_0790: ldloc.s 15 (System.Int32)
IL_0792: ldarg.0
IL_0793: ldfld PulseUnit[] ElectricityManager::m_pulseUnits
IL_0798: ldlen
IL_0799: conv.i4
IL_079A: bne.un => Label51
IL_079F: ldarg.0
IL_07A0: ldc.i4.0
IL_07A1: stfld System.Int32 ElectricityManager::m_pulseUnitEnd
IL_07A6: Label25
IL_07A6: Label41
IL_07A6: Label50
IL_07A6: Label51
IL_07A6: ldarg.0
IL_07A7: ldfld System.Int32 ElectricityManager::m_pulseUnitStart
IL_07AC: ldloc.s 17 (System.Int32)
IL_07AE: bne.un => Label52
IL_07B3: Label24
IL_07B3: ldarg.0
IL_07B4: ldfld System.Boolean ElectricityManager::m_canContinue
IL_07B9: brfalse => Label53
IL_07BE: ldarg.0
IL_07BF: ldfld System.Int32 ElectricityManager::m_processedCells
IL_07C4: ldloc.s 16 (System.Int32)
IL_07C6: blt => Label54
IL_07CB: Label53
IL_07CB: ldloc.1
IL_07CC: ldc.i4 255
IL_07D1: bne.un => Label55
IL_07D6: ldc.i4.0
IL_07D7: stloc.s 30 (System.Int32)
IL_07D9: br => Label56
IL_07DE: Label58
IL_07DE: ldarg.0
IL_07DF: ldfld PulseGroup[] ElectricityManager::m_pulseGroups
IL_07E4: ldloc.s 30 (System.Int32)
IL_07E6: ldelema ElectricityManager+PulseGroup
IL_07EB: ldobj ElectricityManager+PulseGroup
IL_07F0: stloc.s 31 (ElectricityManager+PulseGroup)
IL_07F2: ldloca.s 31 (ElectricityManager+PulseGroup)
IL_07F4: ldfld System.UInt16 PulseGroup::m_mergeIndex
IL_07F9: ldc.i4 65535
IL_07FE: beq => Label57
IL_0803: ldarg.0
IL_0804: ldfld PulseGroup[] ElectricityManager::m_pulseGroups
IL_0809: ldloca.s 31 (ElectricityManager+PulseGroup)
IL_080B: ldfld System.UInt16 PulseGroup::m_mergeIndex
IL_0810: ldelema ElectricityManager+PulseGroup
IL_0815: ldobj ElectricityManager+PulseGroup
IL_081A: stloc.s 32 (ElectricityManager+PulseGroup)
IL_081C: ldloca.s 31 (ElectricityManager+PulseGroup)
IL_081E: ldloca.s 32 (ElectricityManager+PulseGroup)
IL_0820: ldfld System.UInt32 PulseGroup::m_curCharge
IL_0825: conv.u8
IL_0826: ldloca.s 31 (ElectricityManager+PulseGroup)
IL_0828: ldfld System.UInt32 PulseGroup::m_origCharge
IL_082D: conv.u8
IL_082E: mul
IL_082F: ldloca.s 32 (ElectricityManager+PulseGroup)
IL_0831: ldfld System.UInt32 PulseGroup::m_origCharge
IL_0836: conv.u8
IL_0837: div.un
IL_0838: conv.u4
IL_0839: stfld System.UInt32 PulseGroup::m_curCharge
IL_083E: ldloca.s 32 (ElectricityManager+PulseGroup)
IL_0840: dup
IL_0841: ldfld System.UInt32 PulseGroup::m_curCharge
IL_0846: ldloca.s 31 (ElectricityManager+PulseGroup)
IL_0848: ldfld System.UInt32 PulseGroup::m_curCharge
IL_084D: sub
IL_084E: stfld System.UInt32 PulseGroup::m_curCharge
IL_0853: ldloca.s 32 (ElectricityManager+PulseGroup)
IL_0855: dup
IL_0856: ldfld System.UInt32 PulseGroup::m_origCharge
IL_085B: ldloca.s 31 (ElectricityManager+PulseGroup)
IL_085D: ldfld System.UInt32 PulseGroup::m_origCharge
IL_0862: sub
IL_0863: stfld System.UInt32 PulseGroup::m_origCharge
IL_0868: ldarg.0
IL_0869: ldfld PulseGroup[] ElectricityManager::m_pulseGroups
IL_086E: ldloca.s 31 (ElectricityManager+PulseGroup)
IL_0870: ldfld System.UInt16 PulseGroup::m_mergeIndex
IL_0875: ldelema ElectricityManager+PulseGroup
IL_087A: ldloc.s 32 (ElectricityManager+PulseGroup)
IL_087C: stobj ElectricityManager+PulseGroup
IL_0881: ldarg.0
IL_0882: ldfld PulseGroup[] ElectricityManager::m_pulseGroups
IL_0887: ldloc.s 30 (System.Int32)
IL_0889: ldelema ElectricityManager+PulseGroup
IL_088E: ldloc.s 31 (ElectricityManager+PulseGroup)
IL_0890: stobj ElectricityManager+PulseGroup
IL_0895: Label57
IL_0895: ldloc.s 30 (System.Int32)
IL_0897: ldc.i4.1
IL_0898: add
IL_0899: stloc.s 30 (System.Int32)
IL_089B: Label56
IL_089B: ldloc.s 30 (System.Int32)
IL_089D: ldarg.0
IL_089E: ldfld System.Int32 ElectricityManager::m_pulseGroupCount
IL_08A3: blt => Label58
IL_08A8: ldc.i4.0
IL_08A9: stloc.s 33 (System.Int32)
IL_08AB: br => Label59
IL_08B0: Label62
IL_08B0: ldarg.0
IL_08B1: ldfld PulseGroup[] ElectricityManager::m_pulseGroups
IL_08B6: ldloc.s 33 (System.Int32)
IL_08B8: ldelema ElectricityManager+PulseGroup
IL_08BD: ldobj ElectricityManager+PulseGroup
IL_08C2: stloc.s 34 (ElectricityManager+PulseGroup)
IL_08C4: ldloca.s 34 (ElectricityManager+PulseGroup)
IL_08C6: ldfld System.UInt32 PulseGroup::m_curCharge
IL_08CB: brfalse => Label60
IL_08D0: ldloca.s 34 (ElectricityManager+PulseGroup)
IL_08D2: ldfld System.Byte PulseGroup::m_z
IL_08D7: ldc.i4 256
IL_08DC: mul
IL_08DD: ldloca.s 34 (ElectricityManager+PulseGroup)
IL_08DF: ldfld System.Byte PulseGroup::m_x
IL_08E4: add
IL_08E5: stloc.s 35 (System.Int32)
IL_08E7: ldarg.0
IL_08E8: ldfld Cell[] ElectricityManager::m_electricityGrid
IL_08ED: ldloc.s 35 (System.Int32)
IL_08EF: ldelema ElectricityManager+Cell
IL_08F4: ldobj ElectricityManager+Cell
IL_08F9: stloc.s 36 (ElectricityManager+Cell)
IL_08FB: ldloca.s 36 (ElectricityManager+Cell)
IL_08FD: ldfld System.Byte Cell::m_conductivity
IL_0902: brfalse => Label61
IL_0907: ldloca.s 36 (ElectricityManager+Cell)
IL_0909: dup
IL_090A: ldfld System.UInt16 Cell::m_extraCharge
IL_090F: ldloca.s 34 (ElectricityManager+PulseGroup)
IL_0911: ldfld System.UInt32 PulseGroup::m_curCharge
IL_0916: ldc.i4 32767
IL_091B: ldloca.s 36 (ElectricityManager+Cell)
IL_091D: ldfld System.UInt16 Cell::m_extraCharge
IL_0922: sub
IL_0923: call static System.Int32 UnityEngine.Mathf::Min(System.Int32 a,
System.Int32 b)
IL_0928: conv.u2
IL_0929: add
IL_092A: conv.u2
IL_092B: stfld System.UInt16 Cell::m_extraCharge
IL_0930: Label61
IL_0930: ldarg.0
IL_0931: ldfld Cell[] ElectricityManager::m_electricityGrid
IL_0936: ldloc.s 35 (System.Int32)
IL_0938: ldelema ElectricityManager+Cell
IL_093D: ldloc.s 36 (ElectricityManager+Cell)
IL_093F: stobj ElectricityManager+Cell
IL_0944: Label60
IL_0944: ldloc.s 33 (System.Int32)
IL_0946: ldc.i4.1
IL_0947: add
IL_0948: stloc.s 33 (System.Int32)
IL_094A: Label59
IL_094A: ldloc.s 33 (System.Int32)
IL_094C: ldarg.0
IL_094D: ldfld System.Int32 ElectricityManager::m_pulseGroupCount
IL_0952: blt => Label62
IL_0957: // end original
IL_0957: Label0
IL_0957: Label1
IL_0957: Label22
IL_0957: Label55
IL_0957: ret
DONE

### Patch: System.Void ElectricityManager::ConductToNode(System.UInt16 nodeIndex,


NetNode& node, System.UInt16 group, System.Single minX, System.Single minZ,
System.Single maxX, System.Single maxZ)
### Replacement: static System.Void
ElectricityManager::ElectricityManager.ConductToNode_Patch0(ElectricityManager
this, System.UInt16 nodeIndex, NetNode& node, System.UInt16 group, System.Single
minX, System.Single minZ, System.Single maxX, System.Single maxZ)
IL_0000: Local var 0: NetInfo
IL_0000: Local var 1: ElectricityManager/PulseUnit
IL_0000: Local var 2: System.Int32
IL_0000: Local var 3: System.UInt16
IL_0000: // start original
IL_0000: ldarg.2
IL_0001: ldflda UnityEngine.Vector3 NetNode::m_position
IL_0006: ldfld System.Single UnityEngine.Vector3::x
IL_000B: ldarg.s 4
IL_000D: blt.un => Label0
IL_0012: ldarg.2
IL_0013: ldflda UnityEngine.Vector3 NetNode::m_position
IL_0018: ldfld System.Single UnityEngine.Vector3::z
IL_001D: ldarg.s 5
IL_001F: blt.un => Label1
IL_0024: ldarg.2
IL_0025: ldflda UnityEngine.Vector3 NetNode::m_position
IL_002A: ldfld System.Single UnityEngine.Vector3::x
IL_002F: ldarg.s 6
IL_0031: bgt.un => Label2
IL_0036: ldarg.2
IL_0037: ldflda UnityEngine.Vector3 NetNode::m_position
IL_003C: ldfld System.Single UnityEngine.Vector3::z
IL_0041: ldarg.s 7
IL_0043: bgt.un => Label3
IL_0048: ldarg.2
IL_0049: call NetInfo NetNode::get_Info()
IL_004E: stloc.0
IL_004F: ldloc.0
IL_0050: ldfld ItemClass NetInfo::m_class
IL_0055: ldfld Service ItemClass::m_service
IL_005A: ldc.i4.s 10
IL_005C: beq => Label4
IL_0061: ldarg.2
IL_0062: call NetInfo NetNode::get_Info()
IL_0067: ldfld NetAI NetInfo::m_netAI
IL_006C: isinst ConcourseAI
IL_0071: brfalse => Label5
IL_0076: Label4
IL_0076: ldarg.0
IL_0077: ldfld System.UInt16[] ElectricityManager::m_nodeGroups
IL_007C: ldarg.1
IL_007D: ldelem.u2
IL_007E: ldc.i4 65535
IL_0083: bne.un => Label6
IL_0088: ldloca.s 1 (ElectricityManager+PulseUnit)
IL_008A: ldarg.3
IL_008B: stfld System.UInt16 PulseUnit::m_group
IL_0090: ldloca.s 1 (ElectricityManager+PulseUnit)
IL_0092: ldarg.1
IL_0093: stfld System.UInt16 PulseUnit::m_node
IL_0098: ldloca.s 1 (ElectricityManager+PulseUnit)
IL_009A: ldc.i4.0
IL_009B: stfld System.Byte PulseUnit::m_x
IL_00A0: ldloca.s 1 (ElectricityManager+PulseUnit)
IL_00A2: ldc.i4.0
IL_00A3: stfld System.Byte PulseUnit::m_z
IL_00A8: ldarg.0
IL_00A9: ldfld PulseUnit[] ElectricityManager::m_pulseUnits
IL_00AE: ldarg.0
IL_00AF: ldfld System.Int32 ElectricityManager::m_pulseUnitEnd
IL_00B4: ldelema ElectricityManager+PulseUnit
IL_00B9: ldloc.1
IL_00BA: stobj ElectricityManager+PulseUnit
IL_00BF: ldarg.0
IL_00C0: dup
IL_00C1: ldfld System.Int32 ElectricityManager::m_pulseUnitEnd
IL_00C6: ldc.i4.1
IL_00C7: add
IL_00C8: dup
IL_00C9: stloc.2
IL_00CA: stfld System.Int32 ElectricityManager::m_pulseUnitEnd
IL_00CF: ldloc.2
IL_00D0: ldarg.0
IL_00D1: ldfld PulseUnit[] ElectricityManager::m_pulseUnits
IL_00D6: ldlen
IL_00D7: conv.i4
IL_00D8: bne.un => Label7
IL_00DD: ldarg.0
IL_00DE: ldc.i4.0
IL_00DF: stfld System.Int32 ElectricityManager::m_pulseUnitEnd
IL_00E4: Label7
IL_00E4: ldarg.0
IL_00E5: ldfld System.UInt16[] ElectricityManager::m_nodeGroups
IL_00EA: ldarg.1
IL_00EB: ldarg.3
IL_00EC: stelem.i2
IL_00ED: ldarg.0
IL_00EE: ldc.i4.1
IL_00EF: stfld System.Boolean ElectricityManager::m_canContinue
IL_00F4: br => Label8
IL_00F9: Label6
IL_00F9: ldarg.0
IL_00FA: ldarg.0
IL_00FB: ldfld System.UInt16[] ElectricityManager::m_nodeGroups
IL_0100: ldarg.1
IL_0101: ldelem.u2
IL_0102: call System.UInt16 ElectricityManager::GetRootGroup(System.UInt16
group)
IL_0107: stloc.3
IL_0108: ldloc.3
IL_0109: ldarg.3
IL_010A: beq => Label9
IL_010F: ldarg.0
IL_0110: ldarg.3
IL_0111: ldloc.3
IL_0112: call System.Void ElectricityManager::MergeGroups(System.UInt16 root,
System.UInt16 merged)
IL_0117: ldarg.0
IL_0118: ldfld System.UInt16[] ElectricityManager::m_nodeGroups
IL_011D: ldarg.1
IL_011E: ldarg.3
IL_011F: stelem.i2
IL_0120: ldarg.0
IL_0121: ldc.i4.1
IL_0122: stfld System.Boolean ElectricityManager::m_canContinue
IL_0127: // end original
IL_0127: Label0
IL_0127: Label1
IL_0127: Label2
IL_0127: Label3
IL_0127: Label5
IL_0127: Label8
IL_0127: Label9
IL_0127: ret
DONE

### Patch: System.Void ElectricityManager::UpdateNodeElectricity(System.Int32


nodeID, System.Int32 value)
### Replacement: static System.Void
ElectricityManager::ElectricityManager.UpdateNodeElectricity_Patch0(ElectricityMana
ger this, System.Int32 nodeID, System.Int32 value)
IL_0000: Local var 0: InfoManager/InfoMode
IL_0000: Local var 1: NetManager
IL_0000: Local var 2: System.Boolean
IL_0000: Local var 3: NetNode/Flags
IL_0000: Local var 4: System.UInt16
IL_0000: Local var 5: BuildingManager
IL_0000: Local var 6: NetNode/Flags
IL_0000: Local var 7: System.Int32
IL_0000: Local var 8: System.UInt16
IL_0000: // start original
IL_0000: call static InfoManager
ColossalFramework.Singleton`1<InfoManager>::get_instance()
IL_0005: callvirt InfoMode InfoManager::get_CurrentMode()
IL_000A: stloc.0
IL_000B: call static NetManager
ColossalFramework.Singleton`1<NetManager>::get_instance()
IL_0010: stloc.1
IL_0011: ldc.i4.0
IL_0012: stloc.2
IL_0013: ldloc.1
IL_0014: ldfld Array16`1<NetNode> NetManager::m_nodes
IL_0019: ldfld NetNode[] Array16`1<NetNode>::m_buffer
IL_001E: ldarg.1
IL_001F: ldelema NetNode
IL_0024: ldfld Flags NetNode::m_flags
IL_0029: stloc.3
IL_002A: ldloc.3
IL_002B: ldc.i4 1048576
IL_0030: and
IL_0031: brfalse => Label0
IL_0036: ldloc.1
IL_0037: ldfld Array16`1<NetNode> NetManager::m_nodes
IL_003C: ldfld NetNode[] Array16`1<NetNode>::m_buffer
IL_0041: ldarg.1
IL_0042: ldelema NetNode
IL_0047: dup
IL_0048: ldfld Flags NetNode::m_flags
IL_004D: ldc.i4 -1048577
IL_0052: and
IL_0053: stfld Flags NetNode::m_flags
IL_0058: br => Label10
IL_005D: Label0
IL_005D: ldloc.1
IL_005E: ldfld Array16`1<NetNode> NetManager::m_nodes
IL_0063: ldfld NetNode[] Array16`1<NetNode>::m_buffer
IL_0068: ldarg.1
IL_0069: ldelema NetNode
IL_006E: ldfld System.UInt16 NetNode::m_building
IL_0073: stloc.s 4 (System.UInt16)
IL_0075: ldloc.s 4 (System.UInt16)
IL_0077: brfalse => Label1
IL_007C: call static BuildingManager
ColossalFramework.Singleton`1<BuildingManager>::get_instance()
IL_0081: stloc.s 5 (BuildingManager)
IL_0083: ldloc.s 5 (BuildingManager)
IL_0085: ldfld Array16`1<Building> BuildingManager::m_buildings
IL_008A: ldfld Building[] Array16`1<Building>::m_buffer
IL_008F: ldloc.s 4 (System.UInt16)
IL_0091: ldelema Building
IL_0096: ldfld System.UInt16 Building::m_electricityBuffer
IL_009B: ldarg.2
IL_009C: beq => Label2
IL_00A1: ldloc.s 5 (BuildingManager)
IL_00A3: ldfld Array16`1<Building> BuildingManager::m_buildings
IL_00A8: ldfld Building[] Array16`1<Building>::m_buffer
IL_00AD: ldloc.s 4 (System.UInt16)
IL_00AF: ldelema Building
IL_00B4: ldarg.2
IL_00B5: conv.u2
IL_00B6: stfld System.UInt16 Building::m_electricityBuffer
IL_00BB: ldloc.0
IL_00BC: ldc.i4.1
IL_00BD: ceq
IL_00BF: stloc.2
IL_00C0: Label2
IL_00C0: ldloc.2
IL_00C1: brfalse => Label3
IL_00C6: ldloc.s 5 (BuildingManager)
IL_00C8: ldloc.s 4 (System.UInt16)
IL_00CA: callvirt System.Void BuildingManager::UpdateBuildingColors(System.UInt16
building)
IL_00CF: Label1
IL_00CF: Label3
IL_00CF: ldloc.3
IL_00D0: ldc.i4 -67108865
IL_00D5: and
IL_00D6: stloc.s 6 (NetNode+Flags)
IL_00D8: ldarg.2
IL_00D9: brfalse => Label4
IL_00DE: ldloc.s 6 (NetNode+Flags)
IL_00E0: ldc.i4 67108864
IL_00E5: or
IL_00E6: stloc.s 6 (NetNode+Flags)
IL_00E8: Label4
IL_00E8: ldloc.s 6 (NetNode+Flags)
IL_00EA: ldloc.3
IL_00EB: beq => Label5
IL_00F0: ldloc.1
IL_00F1: ldfld Array16`1<NetNode> NetManager::m_nodes
IL_00F6: ldfld NetNode[] Array16`1<NetNode>::m_buffer
IL_00FB: ldarg.1
IL_00FC: ldelema NetNode
IL_0101: ldloc.s 6 (NetNode+Flags)
IL_0103: stfld Flags NetNode::m_flags
IL_0108: ldloc.0
IL_0109: ldc.i4.1
IL_010A: ceq
IL_010C: stloc.2
IL_010D: Label5
IL_010D: ldloc.2
IL_010E: brfalse => Label6
IL_0113: ldloc.1
IL_0114: ldarg.1
IL_0115: conv.u2
IL_0116: callvirt System.Void NetManager::UpdateNodeColors(System.UInt16 node)
IL_011B: ldc.i4.0
IL_011C: stloc.s 7 (System.Int32)
IL_011E: br => Label7
IL_0123: Label9
IL_0123: ldloc.1
IL_0124: ldfld Array16`1<NetNode> NetManager::m_nodes
IL_0129: ldfld NetNode[] Array16`1<NetNode>::m_buffer
IL_012E: ldarg.1
IL_012F: ldelema NetNode
IL_0134: ldloc.s 7 (System.Int32)
IL_0136: call System.UInt16 NetNode::GetSegment(System.Int32 index)
IL_013B: stloc.s 8 (System.UInt16)
IL_013D: ldloc.s 8 (System.UInt16)
IL_013F: brfalse => Label8
IL_0144: ldloc.1
IL_0145: ldloc.s 8 (System.UInt16)
IL_0147: callvirt System.Void NetManager::UpdateSegmentColors(System.UInt16
segment)
IL_014C: Label8
IL_014C: ldloc.s 7 (System.Int32)
IL_014E: ldc.i4.1
IL_014F: add
IL_0150: stloc.s 7 (System.Int32)
IL_0152: Label7
IL_0152: ldloc.s 7 (System.Int32)
IL_0154: ldc.i4.8
IL_0155: blt => Label9
IL_015A: // end original
IL_015A: Label6
IL_015A: Label10
IL_015A: ret
DONE

### Patch: virtual System.Void ColossalFramework.UI.UIView::Start()


### Replacement: static System.Void
ColossalFramework.UI.UIView::ColossalFramework.UI.UIView.Start_Patch1(ColossalFrame
work.UI.UIView this)
IL_0000: Local var 0:
ColossalFramework.PoolList`1<ColossalFramework.UI.UIComponent>
IL_0000: Local var 1: ColossalFramework.UI.UIComponent
IL_0000: Local var 2:
System.Collections.Generic.IEnumerator`1<ColossalFramework.UI.UIComponent>
IL_0000: // start original
IL_0000: ldarg.0
IL_0001: ldc.i4.0
IL_0002: stfld System.Int32 ColossalFramework.UI.UIView::m_FramesRendered
IL_0007: ldarg.0
IL_0008: call System.Void
ColossalFramework.UI.UIView::InvalidateAllComponents()
IL_000D: ldarg.0
IL_000E: ldfld UnityEngine.MeshRenderer
ColossalFramework.UI.UIView::m_MeshRenderer
IL_0013: ldnull
IL_0014: call static System.Boolean
UnityEngine.Object::op_Inequality(UnityEngine.Object x, UnityEngine.Object y)
IL_0019: brfalse => Label0
IL_001E: ldarg.0
IL_001F: ldfld UnityEngine.MeshRenderer
ColossalFramework.UI.UIView::m_MeshRenderer
IL_0024: ldc.i4.1
IL_0025: callvirt System.Void UnityEngine.Renderer::set_enabled(System.Boolean
value)
IL_002A: Label0
IL_002A: ldarg.0
IL_002B: call ColossalFramework.PoolList`1<ColossalFramework.UI.UIComponent>
ColossalFramework.UI.UIView::GetTopLevelComponents()
IL_0030: stloc.0
.try
{
IL_0031: ldloc.0
IL_0032: callvirt virtual
System.Collections.Generic.IEnumerator`1<ColossalFramework.UI.UIComponent>
ColossalFramework.PoolList`1<ColossalFramework.UI.UIComponent>::GetEnumerator()
IL_0037: stloc.2
.try
{
IL_0038: br => Label1
IL_003D: Label2
IL_003D: ldloc.2
IL_003E: callvirt abstract virtual ColossalFramework.UI.UIComponent
System.Collections.Generic.IEnumerator`1<ColossalFramework.UI.UIComponent>::get_Cur
rent()
IL_0043: stloc.1
IL_0044: ldloc.1
IL_0045: ldc.i4.1
IL_0046: callvirt System.Void
ColossalFramework.UI.UIComponent::InitializeParentVisibilityCache(System.Boolean
parentVisible)
IL_004B: Label1
IL_004B: ldloc.2
IL_004C: callvirt abstract virtual System.Boolean
System.Collections.IEnumerator::MoveNext()
IL_0051: brtrue => Label2
IL_0056: leave => Label3
IL_005B: leave => (autogenerated)
} // end try
.finally
{
IL_0060: ldloc.2
IL_0061: brfalse => Label4
IL_0066: ldloc.2
IL_0067: callvirt abstract virtual System.Void
System.IDisposable::Dispose()
IL_006C: Label4
IL_006C: endfinally
IL_006D: leave => (autogenerated)
} // end handler
IL_006E: Label3
IL_006E: leave => Label5
IL_0073: leave => (autogenerated)
} // end try
.finally
{
IL_0078: ldloc.0
IL_0079: brfalse => Label6
IL_007E: ldloc.0
IL_007F: callvirt abstract virtual System.Void
System.IDisposable::Dispose()
IL_0084: Label6
IL_0084: endfinally
IL_0085: leave => (autogenerated)
} // end handler
IL_0086: Label5
IL_0086: ldarg.0
IL_0087: ldc.i4.1
IL_0088: stfld System.Boolean
ColossalFramework.UI.UIView::m_VisibilityCacheInitialized
IL_008D: // end original
IL_008D: call static System.Void
Kwytto.Redirectors.UIViewRedirector::AfterStart()
IL_0092: ret
DONE

### Patch: virtual UnityEngine.Color NetAI::GetColor(System.UInt16 nodeID, NetNode&


data, InfoMode infoMode, SubInfoMode subInfoMode)
### Replacement: static UnityEngine.Color NetAI::NetAI.GetColor_Patch1(NetAI this,
System.UInt16 nodeID, NetNode& data, InfoMode infoMode, SubInfoMode subInfoMode)
IL_0000: Local var 0: UnityEngine.Color
IL_0000: ldloca 0 (UnityEngine.Color)
IL_0004: initobj UnityEngine.Color
IL_000A: // start original
IL_000A: ldarg.3
IL_000B: brfalse => Label0
IL_0010: call static InfoManager
ColossalFramework.Singleton`1<InfoManager>::get_instance()
IL_0015: ldfld InfoProperties SimulationManagerBase`2<InfoManager,
InfoProperties>::m_properties
IL_001A: ldfld UnityEngine.Color InfoProperties::m_neutralColor
IL_001F: br => Label1
IL_0024: Label0
IL_0024: ldarg.0
IL_0025: ldfld NetInfo NetAI::m_info
IL_002A: ldfld UnityEngine.Color NetInfo::m_color
IL_002F: // end original
IL_002F: Label1
IL_002F: stloc 0 (UnityEngine.Color)
IL_0033: ldloca 0 (UnityEngine.Color)
IL_0037: ldarg 1
IL_003B: ldarg 2
IL_003F: ldarg 3
IL_0043: ldarg 4
IL_0047: call static System.Void
ElectricRoads.Overrides.ElectricRoadsOverrides::AfterGetColorNode(UnityEngine.Color
& __result, System.UInt16 nodeID, NetNode& data, InfoMode infoMode, SubInfoMode
subInfoMode)
IL_004C: ldloc 0 (UnityEngine.Color)
IL_0050: ret
DONE

### Patch: virtual UnityEngine.Color NetAI::GetColor(System.UInt16 segmentID,


NetSegment& data, InfoMode infoMode, SubInfoMode subInfoMode)
### Replacement: static UnityEngine.Color NetAI::NetAI.GetColor_Patch1(NetAI this,
System.UInt16 segmentID, NetSegment& data, InfoMode infoMode, SubInfoMode
subInfoMode)
IL_0000: Local var 0: UnityEngine.Color
IL_0000: ldloca 0 (UnityEngine.Color)
IL_0004: initobj UnityEngine.Color
IL_000A: // start original
IL_000A: ldarg.3
IL_000B: brfalse => Label0
IL_0010: call static InfoManager
ColossalFramework.Singleton`1<InfoManager>::get_instance()
IL_0015: ldfld InfoProperties SimulationManagerBase`2<InfoManager,
InfoProperties>::m_properties
IL_001A: ldfld UnityEngine.Color InfoProperties::m_neutralColor
IL_001F: br => Label1
IL_0024: Label0
IL_0024: ldarg.0
IL_0025: ldfld NetInfo NetAI::m_info
IL_002A: ldfld UnityEngine.Color NetInfo::m_color
IL_002F: // end original
IL_002F: Label1
IL_002F: stloc 0 (UnityEngine.Color)
IL_0033: ldloca 0 (UnityEngine.Color)
IL_0037: ldarg 1
IL_003B: ldarg 2
IL_003F: ldarg 3
IL_0043: ldarg 4
IL_0047: call static System.Void
ElectricRoads.Overrides.ElectricRoadsOverrides::AfterGetColorSegment(UnityEngine.Co
lor& __result, System.UInt16 segmentID, NetSegment& data, InfoMode infoMode,
SubInfoMode subInfoMode)
IL_004C: ldloc 0 (UnityEngine.Color)
IL_0050: ret
DONE

### Patch: System.Void ElectricityManager::UpdateNodeElectricity(System.Int32


nodeID, System.Int32 value)
### Replacement: static System.Void
ElectricityManager::ElectricityManager.UpdateNodeElectricity_Patch0(ElectricityMana
ger this, System.Int32 nodeID, System.Int32 value)
IL_0000: Local var 0: InfoManager/InfoMode
IL_0000: Local var 1: NetManager
IL_0000: Local var 2: System.Boolean
IL_0000: Local var 3: NetNode/Flags
IL_0000: Local var 4: System.UInt16
IL_0000: Local var 5: BuildingManager
IL_0000: Local var 6: NetNode/Flags
IL_0000: Local var 7: System.Int32
IL_0000: Local var 8: System.UInt16
IL_0000: // start original
IL_0000: call static InfoManager
ColossalFramework.Singleton`1<InfoManager>::get_instance()
IL_0005: callvirt InfoMode InfoManager::get_CurrentMode()
IL_000A: stloc.0
IL_000B: call static NetManager
ColossalFramework.Singleton`1<NetManager>::get_instance()
IL_0010: stloc.1
IL_0011: ldc.i4.0
IL_0012: stloc.2
IL_0013: ldloc.1
IL_0014: ldfld Array16`1<NetNode> NetManager::m_nodes
IL_0019: ldfld NetNode[] Array16`1<NetNode>::m_buffer
IL_001E: ldarg.1
IL_001F: ldelema NetNode
IL_0024: ldfld Flags NetNode::m_flags
IL_0029: stloc.3
IL_002A: ldarg.1
IL_002B: call static System.Boolean
ElectricRoads.Overrides.ElectricRoadsOverrides::CheckNodeTransition(System.Int32
nodeID)
IL_0030: brfalse => Label0
IL_0035: ldloc.1
IL_0036: ldfld Array16`1<NetNode> NetManager::m_nodes
IL_003B: ldfld NetNode[] Array16`1<NetNode>::m_buffer
IL_0040: ldarg.1
IL_0041: ldelema NetNode
IL_0046: dup
IL_0047: ldfld Flags NetNode::m_flags
IL_004C: ldc.i4 -1048577
IL_0051: and
IL_0052: stfld Flags NetNode::m_flags
IL_0057: br => Label10
IL_005C: Label0
IL_005C: ldloc.1
IL_005D: ldfld Array16`1<NetNode> NetManager::m_nodes
IL_0062: ldfld NetNode[] Array16`1<NetNode>::m_buffer
IL_0067: ldarg.1
IL_0068: ldelema NetNode
IL_006D: ldfld System.UInt16 NetNode::m_building
IL_0072: stloc.s 4 (System.UInt16)
IL_0074: ldloc.s 4 (System.UInt16)
IL_0076: brfalse => Label1
IL_007B: call static BuildingManager
ColossalFramework.Singleton`1<BuildingManager>::get_instance()
IL_0080: stloc.s 5 (BuildingManager)
IL_0082: ldloc.s 5 (BuildingManager)
IL_0084: ldfld Array16`1<Building> BuildingManager::m_buildings
IL_0089: ldfld Building[] Array16`1<Building>::m_buffer
IL_008E: ldloc.s 4 (System.UInt16)
IL_0090: ldelema Building
IL_0095: ldfld System.UInt16 Building::m_electricityBuffer
IL_009A: ldarg.2
IL_009B: beq => Label2
IL_00A0: ldloc.s 5 (BuildingManager)
IL_00A2: ldfld Array16`1<Building> BuildingManager::m_buildings
IL_00A7: ldfld Building[] Array16`1<Building>::m_buffer
IL_00AC: ldloc.s 4 (System.UInt16)
IL_00AE: ldelema Building
IL_00B3: ldarg.2
IL_00B4: conv.u2
IL_00B5: stfld System.UInt16 Building::m_electricityBuffer
IL_00BA: ldloc.0
IL_00BB: ldc.i4.1
IL_00BC: ceq
IL_00BE: stloc.2
IL_00BF: Label2
IL_00BF: ldloc.2
IL_00C0: brfalse => Label3
IL_00C5: ldloc.s 5 (BuildingManager)
IL_00C7: ldloc.s 4 (System.UInt16)
IL_00C9: callvirt System.Void BuildingManager::UpdateBuildingColors(System.UInt16
building)
IL_00CE: Label1
IL_00CE: Label3
IL_00CE: ldloc.3
IL_00CF: ldc.i4 -67108865
IL_00D4: and
IL_00D5: stloc.s 6 (NetNode+Flags)
IL_00D7: ldarg.2
IL_00D8: brfalse => Label4
IL_00DD: ldloc.s 6 (NetNode+Flags)
IL_00DF: ldc.i4 67108864
IL_00E4: or
IL_00E5: stloc.s 6 (NetNode+Flags)
IL_00E7: Label4
IL_00E7: ldloc.s 6 (NetNode+Flags)
IL_00E9: ldloc.3
IL_00EA: beq => Label5
IL_00EF: ldloc.1
IL_00F0: ldfld Array16`1<NetNode> NetManager::m_nodes
IL_00F5: ldfld NetNode[] Array16`1<NetNode>::m_buffer
IL_00FA: ldarg.1
IL_00FB: ldelema NetNode
IL_0100: ldloc.s 6 (NetNode+Flags)
IL_0102: stfld Flags NetNode::m_flags
IL_0107: ldloc.0
IL_0108: ldc.i4.1
IL_0109: ceq
IL_010B: stloc.2
IL_010C: Label5
IL_010C: ldloc.2
IL_010D: brfalse => Label6
IL_0112: ldloc.1
IL_0113: ldarg.1
IL_0114: conv.u2
IL_0115: callvirt System.Void NetManager::UpdateNodeColors(System.UInt16 node)
IL_011A: ldc.i4.0
IL_011B: stloc.s 7 (System.Int32)
IL_011D: br => Label7
IL_0122: Label9
IL_0122: ldloc.1
IL_0123: ldfld Array16`1<NetNode> NetManager::m_nodes
IL_0128: ldfld NetNode[] Array16`1<NetNode>::m_buffer
IL_012D: ldarg.1
IL_012E: ldelema NetNode
IL_0133: ldloc.s 7 (System.Int32)
IL_0135: call System.UInt16 NetNode::GetSegment(System.Int32 index)
IL_013A: stloc.s 8 (System.UInt16)
IL_013C: ldloc.s 8 (System.UInt16)
IL_013E: brfalse => Label8
IL_0143: ldloc.1
IL_0144: ldloc.s 8 (System.UInt16)
IL_0146: callvirt System.Void NetManager::UpdateSegmentColors(System.UInt16
segment)
IL_014B: Label8
IL_014B: ldloc.s 7 (System.Int32)
IL_014D: ldc.i4.1
IL_014E: add
IL_014F: stloc.s 7 (System.Int32)
IL_0151: Label7
IL_0151: ldloc.s 7 (System.Int32)
IL_0153: ldc.i4.8
IL_0154: blt => Label9
IL_0159: // end original
IL_0159: Label6
IL_0159: Label10
IL_0159: ret
DONE

### Patch: static System.Void PropInstance::RenderInstance(CameraInfo cameraInfo,


PropInfo info, InstanceID id, UnityEngine.Vector3 position, System.Single scale,
System.Single angle, UnityEngine.Color color, UnityEngine.Vector4 objectIndex,
System.Boolean active, UnityEngine.Texture heightMap, UnityEngine.Vector4
heightMapping, UnityEngine.Vector4 surfaceMapping, UnityEngine.Texture
waterHeightMap, UnityEngine.Vector4 waterHeightMapping, UnityEngine.Vector4
waterSurfaceMapping)
### Replacement: static System.Void
PropInstance::PropInstance.RenderInstance_Patch0(CameraInfo cameraInfo, PropInfo
info, InstanceID id, UnityEngine.Vector3 position, System.Single scale,
System.Single angle, UnityEngine.Color color, UnityEngine.Vector4 objectIndex,
System.Boolean active, UnityEngine.Texture heightMap, UnityEngine.Vector4
heightMapping, UnityEngine.Vector4 surfaceMapping, UnityEngine.Texture
waterHeightMap, UnityEngine.Vector4 waterHeightMapping, UnityEngine.Vector4
waterSurfaceMapping)
IL_0000: Local var 0: UnityEngine.Matrix4x4
IL_0000: Local var 1: System.Single
IL_0000: Local var 2: System.Int32
IL_0000: Local var 3: UnityEngine.Vector3
IL_0000: Local var 4: UnityEngine.Vector3
IL_0000: Local var 5: EffectInfo/SpawnArea
IL_0000: Local var 6: System.Single
IL_0000: Local var 7: LightSystem
IL_0000: Local var 8: ColossalFramework.Math.Randomizer
IL_0000: Local var 9: UnityEngine.Vector4
IL_0000: Local var 10: System.Single
IL_0000: Local var 11: System.Single
IL_0000: Local var 12: System.Single
IL_0000: Local var 13: UnityEngine.Matrix4x4
IL_0000: Local var 14: PropManager
IL_0000: Local var 15: UnityEngine.MaterialPropertyBlock
IL_0000: Local var 16: System.Int32
IL_0000: // start original
IL_0000: ldarg.1
IL_0001: ldfld System.Boolean PrefabInfo::m_prefabInitialized
IL_0006: brfalse => Label0
IL_000B: ldarg.1
IL_000C: ldfld System.Boolean PropInfo::m_hasEffects
IL_0011: brfalse => Label1
IL_0016: ldarg.s 8
IL_0018: brtrue => Label2
IL_001D: ldarg.1
IL_001E: ldfld System.Boolean PropInfo::m_alwaysActive
IL_0023: brfalse => Label3
IL_0028: Label2
IL_0028: ldloca.s 0 (UnityEngine.Matrix4x4)
IL_002A: initobj UnityEngine.Matrix4x4
IL_0030: ldloca.s 0 (UnityEngine.Matrix4x4)
IL_0032: ldarg.3
IL_0033: ldarg.s 5
IL_0035: ldc.r4 57.29578
IL_003A: mul
IL_003B: call static UnityEngine.Vector3 UnityEngine.Vector3::get_down()
IL_0040: call static UnityEngine.Quaternion
UnityEngine.Quaternion::AngleAxis(System.Single angle, UnityEngine.Vector3 axis)
IL_0045: ldarg.s 4
IL_0047: ldarg.s 4
IL_0049: ldarg.s 4
IL_004B: newobj System.Void UnityEngine.Vector3::.ctor(System.Single x,
System.Single y, System.Single z)
IL_0050: call System.Void UnityEngine.Matrix4x4::SetTRS(UnityEngine.Vector3
pos, UnityEngine.Quaternion q, UnityEngine.Vector3 s)
IL_0055: call static SimulationManager
ColossalFramework.Singleton`1<SimulationManager>::get_instance()
IL_005A: ldfld System.Single SimulationManager::m_simulationTimeDelta
IL_005F: stloc.1
IL_0060: ldc.i4.0
IL_0061: stloc.2
IL_0062: br => Label4
IL_0067: Label5
IL_0067: ldloca.s 0 (UnityEngine.Matrix4x4)
IL_0069: ldarg.1
IL_006A: ldfld Effect[] PropInfo::m_effects
IL_006F: ldloc.2
IL_0070: ldelema PropInfo+Effect
IL_0075: ldfld UnityEngine.Vector3 Effect::m_position
IL_007A: call UnityEngine.Vector3
UnityEngine.Matrix4x4::MultiplyPoint(UnityEngine.Vector3 v)
IL_007F: stloc.3
IL_0080: ldloca.s 0 (UnityEngine.Matrix4x4)
IL_0082: ldarg.1
IL_0083: ldfld Effect[] PropInfo::m_effects
IL_0088: ldloc.2
IL_0089: ldelema PropInfo+Effect
IL_008E: ldfld UnityEngine.Vector3 Effect::m_direction
IL_0093: call UnityEngine.Vector3
UnityEngine.Matrix4x4::MultiplyVector(UnityEngine.Vector3 v)
IL_0098: stloc.s 4 (UnityEngine.Vector3)
IL_009A: ldloca.s 5 (EffectInfo+SpawnArea)
IL_009C: ldloc.3
IL_009D: ldloc.s 4 (UnityEngine.Vector3)
IL_009F: ldc.r4 0
IL_00A4: call System.Void SpawnArea::.ctor(UnityEngine.Vector3 position,
UnityEngine.Vector3 direction, System.Single radius)
IL_00A9: ldarg.1
IL_00AA: ldfld Effect[] PropInfo::m_effects
IL_00AF: ldloc.2
IL_00B0: ldelema PropInfo+Effect
IL_00B5: ldfld EffectInfo Effect::m_effect
IL_00BA: ldarg.2
IL_00BB: ldloc.s 5 (EffectInfo+SpawnArea)
IL_00BD: call static UnityEngine.Vector3 UnityEngine.Vector3::get_zero()
IL_00C2: ldc.r4 0
IL_00C7: ldc.r4 1
IL_00CC: ldc.r4 -1
IL_00D1: ldloc.1
IL_00D2: ldarg.0
IL_00D3: callvirt virtual System.Void EffectInfo::RenderEffect(InstanceID id,
SpawnArea area, UnityEngine.Vector3 velocity, System.Single acceleration,
System.Single magnitude, System.Single timeOffset, System.Single timeDelta,
CameraInfo cameraInfo)
IL_00D8: ldloc.2
IL_00D9: ldc.i4.1
IL_00DA: add
IL_00DB: stloc.2
IL_00DC: Label4
IL_00DC: ldloc.2
IL_00DD: ldarg.1
IL_00DE: ldfld Effect[] PropInfo::m_effects
IL_00E3: ldlen
IL_00E4: conv.i4
IL_00E5: blt => Label5
IL_00EA: Label1
IL_00EA: Label3
IL_00EA: ldarg.1
IL_00EB: ldfld System.Boolean PropInfo::m_hasRenderer
IL_00F0: brfalse => Label6
IL_00F5: ldarg.0
IL_00F6: ldfld System.Int32 CameraInfo::m_layerMask
IL_00FB: ldc.i4.1
IL_00FC: ldarg.1
IL_00FD: ldfld System.Int32 PrefabInfo::m_prefabDataLayer
IL_0102: ldc.i4.s 31
IL_0104: and
IL_0105: shl
IL_0106: and
IL_0107: brfalse => Label7
IL_010C: call static InfoManager
ColossalFramework.Singleton`1<InfoManager>::get_instance()
IL_0111: callvirt InfoMode InfoManager::get_CurrentMode()
IL_0116: brtrue => Label8
IL_011B: ldarg 2
IL_011F: call static System.Boolean
ElectricRoads.Overrides.ElectricRoadsOverrides::CheckElectrityNetForLight(InstanceI
D id)
IL_0124: brfalse => Label24
IL_0129: ldc.r4 0
IL_012E: stloc.s 6 (System.Single)
IL_0130: ldarg.s 8
IL_0132: brtrue => Label9
IL_0137: ldarg.1
IL_0138: ldfld System.Boolean PropInfo::m_alwaysActive
IL_013D: brtrue => Label10
IL_0142: Label24
IL_0142: ldarga.s 7
IL_0144: ldc.r4 0
IL_0149: stfld System.Single UnityEngine.Vector4::z
IL_014E: br => Label11
IL_0153: Label9
IL_0153: Label10
IL_0153: ldarg.1
IL_0154: ldflda UnityEngine.Vector2 PropInfo::m_illuminationOffRange
IL_0159: ldfld System.Single UnityEngine.Vector2::x
IL_015E: ldc.r4 1000
IL_0163: blt => Label12
IL_0168: ldarg.1
IL_0169: ldfld BlinkType PropInfo::m_illuminationBlinkType
IL_016E: brfalse => Label13
IL_0173: Label12
IL_0173: call static RenderManager
ColossalFramework.Singleton`1<RenderManager>::get_instance()
IL_0178: callvirt LightSystem RenderManager::get_lightSystem()
IL_017D: stloc.s 7 (LightSystem)
IL_017F: ldloca.s 8 (ColossalFramework.Math.Randomizer)
IL_0181: ldarga.s 2
IL_0183: call System.UInt32 InstanceID::get_Index()
IL_0188: call System.Void
ColossalFramework.Math.Randomizer::.ctor(System.UInt32 _seed)
IL_018D: ldarg.1
IL_018E: ldflda UnityEngine.Vector2 PropInfo::m_illuminationOffRange
IL_0193: ldfld System.Single UnityEngine.Vector2::x
IL_0198: ldloca.s 8 (ColossalFramework.Math.Randomizer)
IL_019A: ldc.i4 100000
IL_019F: call System.Int32
ColossalFramework.Math.Randomizer::Int32(System.UInt32 range)
IL_01A4: conv.r4
IL_01A5: ldc.r4 1E-05
IL_01AA: mul
IL_01AB: ldarg.1
IL_01AC: ldflda UnityEngine.Vector2 PropInfo::m_illuminationOffRange
IL_01B1: ldfld System.Single UnityEngine.Vector2::y
IL_01B6: ldarg.1
IL_01B7: ldflda UnityEngine.Vector2 PropInfo::m_illuminationOffRange
IL_01BC: ldfld System.Single UnityEngine.Vector2::x
IL_01C1: sub
IL_01C2: mul
IL_01C3: add
IL_01C4: stloc.s 6 (System.Single)
IL_01C6: ldarga.s 7
IL_01C8: ldloc.s 6 (System.Single)
IL_01CA: ldc.r4 0.01
IL_01CF: add
IL_01D0: ldloc.s 6 (System.Single)
IL_01D2: ldc.r4 0.01
IL_01D7: sub
IL_01D8: ldloc.s 7 (LightSystem)
IL_01DA: callvirt System.Single LightSystem::get_DayLightIntensity()
IL_01DF: call static System.Single MathUtils::SmoothStep(System.Single edge0,
System.Single edge1, System.Single x)
IL_01E4: stfld System.Single UnityEngine.Vector4::z
IL_01E9: ldarg.1
IL_01EA: ldfld BlinkType PropInfo::m_illuminationBlinkType
IL_01EF: brfalse => Label14
IL_01F4: ldarg.1
IL_01F5: ldfld BlinkType PropInfo::m_illuminationBlinkType
IL_01FA: call static UnityEngine.Vector4
LightEffect::GetBlinkVector(BlinkType type)
IL_01FF: stloc.s 9 (UnityEngine.Vector4)
IL_0201: ldloc.s 6 (System.Single)
IL_0203: ldc.r4 3.71
IL_0208: mul
IL_0209: call static SimulationManager
ColossalFramework.Singleton`1<SimulationManager>::get_instance()
IL_020E: ldfld System.Single SimulationManager::m_simulationTimer
IL_0213: ldloca.s 9 (UnityEngine.Vector4)
IL_0215: ldfld System.Single UnityEngine.Vector4::w
IL_021A: div
IL_021B: add
IL_021C: stloc.s 10 (System.Single)
IL_021E: ldloc.s 10 (System.Single)
IL_0220: ldloc.s 10 (System.Single)
IL_0222: call static System.Single UnityEngine.Mathf::Floor(System.Single f)
IL_0227: sub
IL_0228: ldloca.s 9 (UnityEngine.Vector4)
IL_022A: ldfld System.Single UnityEngine.Vector4::w
IL_022F: mul
IL_0230: stloc.s 10 (System.Single)
IL_0232: ldloca.s 9 (UnityEngine.Vector4)
IL_0234: ldfld System.Single UnityEngine.Vector4::x
IL_0239: ldloca.s 9 (UnityEngine.Vector4)
IL_023B: ldfld System.Single UnityEngine.Vector4::y
IL_0240: ldloc.s 10 (System.Single)
IL_0242: call static System.Single MathUtils::SmoothStep(System.Single edge0,
System.Single edge1, System.Single x)
IL_0247: stloc.s 11 (System.Single)
IL_0249: ldloca.s 9 (UnityEngine.Vector4)
IL_024B: ldfld System.Single UnityEngine.Vector4::w
IL_0250: ldloca.s 9 (UnityEngine.Vector4)
IL_0252: ldfld System.Single UnityEngine.Vector4::z
IL_0257: ldloc.s 10 (System.Single)
IL_0259: call static System.Single MathUtils::SmoothStep(System.Single edge0,
System.Single edge1, System.Single x)
IL_025E: stloc.s 12 (System.Single)
IL_0260: ldarga.s 7
IL_0262: dup
IL_0263: ldfld System.Single UnityEngine.Vector4::z
IL_0268: ldc.r4 1
IL_026D: ldloc.s 11 (System.Single)
IL_026F: ldloc.s 12 (System.Single)
IL_0271: mul
IL_0272: sub
IL_0273: mul
IL_0274: stfld System.Single UnityEngine.Vector4::z
IL_0279: Label14
IL_0279: br => Label15
IL_027E: Label13
IL_027E: ldarga.s 7
IL_0280: ldc.r4 1
IL_0285: stfld System.Single UnityEngine.Vector4::z
IL_028A: Label8
IL_028A: Label11
IL_028A: Label15
IL_028A: ldarg.0
IL_028B: brfalse => Label16
IL_0290: ldarg.0
IL_0291: ldarg.3
IL_0292: ldarg.1
IL_0293: ldfld System.Single PropInfo::m_lodRenderDistance
IL_0298: callvirt System.Boolean
CameraInfo::CheckRenderDistance(UnityEngine.Vector3 point, System.Single
maxDistance)
IL_029D: brfalse => Label17
IL_02A2: Label16
IL_02A2: ldloca.s 13 (UnityEngine.Matrix4x4)
IL_02A4: initobj UnityEngine.Matrix4x4
IL_02AA: ldloca.s 13 (UnityEngine.Matrix4x4)
IL_02AC: ldarg.3
IL_02AD: ldarg.s 5
IL_02AF: ldc.r4 57.29578
IL_02B4: mul
IL_02B5: call static UnityEngine.Vector3 UnityEngine.Vector3::get_down()
IL_02BA: call static UnityEngine.Quaternion
UnityEngine.Quaternion::AngleAxis(System.Single angle, UnityEngine.Vector3 axis)
IL_02BF: ldarg.s 4
IL_02C1: ldarg.s 4
IL_02C3: ldarg.s 4
IL_02C5: newobj System.Void UnityEngine.Vector3::.ctor(System.Single x,
System.Single y, System.Single z)
IL_02CA: call System.Void UnityEngine.Matrix4x4::SetTRS(UnityEngine.Vector3
pos, UnityEngine.Quaternion q, UnityEngine.Vector3 s)
IL_02CF: call static PropManager
ColossalFramework.Singleton`1<PropManager>::get_instance()
IL_02D4: stloc.s 14 (PropManager)
IL_02D6: ldloc.s 14 (PropManager)
IL_02D8: ldfld UnityEngine.MaterialPropertyBlock PropManager::m_materialBlock
IL_02DD: stloc.s 15 (UnityEngine.MaterialPropertyBlock)
IL_02DF: ldloc.s 15 (UnityEngine.MaterialPropertyBlock)
IL_02E1: callvirt System.Void UnityEngine.MaterialPropertyBlock::Clear()
IL_02E6: ldloc.s 15 (UnityEngine.MaterialPropertyBlock)
IL_02E8: ldloc.s 14 (PropManager)
IL_02EA: ldfld System.Int32 PropManager::ID_Color
IL_02EF: ldarg.s 6
IL_02F1: callvirt System.Void
UnityEngine.MaterialPropertyBlock::SetColor(System.Int32 nameID, UnityEngine.Color
value)
IL_02F6: ldloc.s 15 (UnityEngine.MaterialPropertyBlock)
IL_02F8: ldloc.s 14 (PropManager)
IL_02FA: ldfld System.Int32 PropManager::ID_HeightMap
IL_02FF: ldarg.s 9
IL_0301: callvirt System.Void
UnityEngine.MaterialPropertyBlock::SetTexture(System.Int32 nameID,
UnityEngine.Texture value)
IL_0306: ldloc.s 15 (UnityEngine.MaterialPropertyBlock)
IL_0308: ldloc.s 14 (PropManager)
IL_030A: ldfld System.Int32 PropManager::ID_HeightMapping
IL_030F: ldarg.s 10
IL_0311: callvirt System.Void
UnityEngine.MaterialPropertyBlock::SetVector(System.Int32 nameID,
UnityEngine.Vector4 value)
IL_0316: ldloc.s 15 (UnityEngine.MaterialPropertyBlock)
IL_0318: ldloc.s 14 (PropManager)
IL_031A: ldfld System.Int32 PropManager::ID_SurfaceMapping
IL_031F: ldarg.s 11
IL_0321: callvirt System.Void
UnityEngine.MaterialPropertyBlock::SetVector(System.Int32 nameID,
UnityEngine.Vector4 value)
IL_0326: ldloc.s 15 (UnityEngine.MaterialPropertyBlock)
IL_0328: ldloc.s 14 (PropManager)
IL_032A: ldfld System.Int32 PropManager::ID_ObjectIndex
IL_032F: ldarg.s 7
IL_0331: callvirt System.Void
UnityEngine.MaterialPropertyBlock::SetVector(System.Int32 nameID,
UnityEngine.Vector4 value)
IL_0336: ldloc.s 15 (UnityEngine.MaterialPropertyBlock)
IL_0338: ldloc.s 14 (PropManager)
IL_033A: ldfld System.Int32 PropManager::ID_WaterHeightMap
IL_033F: ldarg.s 12
IL_0341: callvirt System.Void
UnityEngine.MaterialPropertyBlock::SetTexture(System.Int32 nameID,
UnityEngine.Texture value)
IL_0346: ldloc.s 15 (UnityEngine.MaterialPropertyBlock)
IL_0348: ldloc.s 14 (PropManager)
IL_034A: ldfld System.Int32 PropManager::ID_WaterHeightMapping
IL_034F: ldarg.s 13
IL_0351: callvirt System.Void
UnityEngine.MaterialPropertyBlock::SetVector(System.Int32 nameID,
UnityEngine.Vector4 value)
IL_0356: ldloc.s 15 (UnityEngine.MaterialPropertyBlock)
IL_0358: ldloc.s 14 (PropManager)
IL_035A: ldfld System.Int32 PropManager::ID_WaterSurfaceMapping
IL_035F: ldarg.s 14
IL_0361: callvirt System.Void
UnityEngine.MaterialPropertyBlock::SetVector(System.Int32 nameID,
UnityEngine.Vector4 value)
IL_0366: ldarg.1
IL_0367: ldfld UnityEngine.Vector4[] PropInfo::m_rollLocation
IL_036C: brfalse => Label18
IL_0371: ldarg.1
IL_0372: ldfld UnityEngine.Material PropInfo::m_material
IL_0377: ldloc.s 14 (PropManager)
IL_0379: ldfld System.Int32 PropManager::ID_RollLocation
IL_037E: ldarg.1
IL_037F: ldfld UnityEngine.Vector4[] PropInfo::m_rollLocation
IL_0384: callvirt System.Void UnityEngine.Material::SetVectorArray(System.Int32
nameID, UnityEngine.Vector4[] values)
IL_0389: ldarg.1
IL_038A: ldfld UnityEngine.Material PropInfo::m_material
IL_038F: ldloc.s 14 (PropManager)
IL_0391: ldfld System.Int32 PropManager::ID_RollParams
IL_0396: ldarg.1
IL_0397: ldfld UnityEngine.Vector4[] PropInfo::m_rollParams
IL_039C: callvirt System.Void UnityEngine.Material::SetVectorArray(System.Int32
nameID, UnityEngine.Vector4[] values)
IL_03A1: Label18
IL_03A1: ldloc.s 14 (PropManager)
IL_03A3: ldflda DrawCallData SimulationManagerBase`2<PropManager,
PropProperties>::m_drawCallData
IL_03A8: dup
IL_03A9: ldfld System.Int32 DrawCallData::m_defaultCalls
IL_03AE: ldc.i4.1
IL_03AF: add
IL_03B0: stfld System.Int32 DrawCallData::m_defaultCalls
IL_03B5: ldarg.1
IL_03B6: ldfld UnityEngine.Mesh PropInfo::m_mesh
IL_03BB: ldloc.s 13 (UnityEngine.Matrix4x4)
IL_03BD: ldarg.1
IL_03BE: ldfld UnityEngine.Material PropInfo::m_material
IL_03C3: ldarg.1
IL_03C4: ldfld System.Int32 PrefabInfo::m_prefabDataLayer
IL_03C9: ldnull
IL_03CA: ldc.i4.0
IL_03CB: ldloc.s 15 (UnityEngine.MaterialPropertyBlock)
IL_03CD: call static System.Void
UnityEngine.Graphics::DrawMesh(UnityEngine.Mesh mesh, UnityEngine.Matrix4x4 matrix,
UnityEngine.Material material, System.Int32 layer, UnityEngine.Camera camera,
System.Int32 submeshIndex, UnityEngine.MaterialPropertyBlock properties)
IL_03D2: br => Label19
IL_03D7: Label17
IL_03D7: ldarg.s 9
IL_03D9: ldarg.1
IL_03DA: ldfld UnityEngine.Texture PropInfo::m_lodHeightMap
IL_03DF: call static System.Boolean
UnityEngine.Object::op_Inequality(UnityEngine.Object x, UnityEngine.Object y)
IL_03E4: brtrue => Label20
IL_03E9: ldarg.s 12
IL_03EB: ldarg.1
IL_03EC: ldfld UnityEngine.Texture PropInfo::m_lodWaterHeightMap
IL_03F1: call static System.Boolean
UnityEngine.Object::op_Inequality(UnityEngine.Object x, UnityEngine.Object y)
IL_03F6: brfalse => Label21
IL_03FB: Label20
IL_03FB: ldarg.1
IL_03FC: ldfld System.Int32 PropInfo::m_lodCount
IL_0401: brfalse => Label22
IL_0406: ldarg.0
IL_0407: ldarg.1
IL_0408: call static System.Void PropInstance::RenderLod(CameraInfo
cameraInfo, PropInfo info)
IL_040D: Label22
IL_040D: ldarg.1
IL_040E: ldarg.s 9
IL_0410: stfld UnityEngine.Texture PropInfo::m_lodHeightMap
IL_0415: ldarg.1
IL_0416: ldarg.s 10
IL_0418: stfld UnityEngine.Vector4 PropInfo::m_lodHeightMapping
IL_041D: ldarg.1
IL_041E: ldarg.s 11
IL_0420: stfld UnityEngine.Vector4 PropInfo::m_lodSurfaceMapping
IL_0425: ldarg.1
IL_0426: ldarg.s 12
IL_0428: stfld UnityEngine.Texture PropInfo::m_lodWaterHeightMap
IL_042D: ldarg.1
IL_042E: ldarg.s 13
IL_0430: stfld UnityEngine.Vector4 PropInfo::m_lodWaterHeightMapping
IL_0435: ldarg.1
IL_0436: ldarg.s 14
IL_0438: stfld UnityEngine.Vector4 PropInfo::m_lodWaterSurfaceMapping
IL_043D: Label21
IL_043D: ldarga.s 7
IL_043F: ldarg.s 4
IL_0441: stfld System.Single UnityEngine.Vector4::w
IL_0446: ldarg.1
IL_0447: ldfld UnityEngine.Vector4[] PropInfo::m_lodLocations
IL_044C: ldarg.1
IL_044D: ldfld System.Int32 PropInfo::m_lodCount
IL_0452: ldelema UnityEngine.Vector4
IL_0457: ldarga.s 3
IL_0459: ldfld System.Single UnityEngine.Vector3::x
IL_045E: ldarga.s 3
IL_0460: ldfld System.Single UnityEngine.Vector3::y
IL_0465: ldarga.s 3
IL_0467: ldfld System.Single UnityEngine.Vector3::z
IL_046C: ldarg.s 5
IL_046E: newobj System.Void UnityEngine.Vector4::.ctor(System.Single x,
System.Single y, System.Single z, System.Single w)
IL_0473: stobj UnityEngine.Vector4
IL_0478: ldarg.1
IL_0479: ldfld UnityEngine.Vector4[] PropInfo::m_lodObjectIndices
IL_047E: ldarg.1
IL_047F: ldfld System.Int32 PropInfo::m_lodCount
IL_0484: ldelema UnityEngine.Vector4
IL_0489: ldarg.s 7
IL_048B: stobj UnityEngine.Vector4
IL_0490: ldarg.1
IL_0491: ldfld UnityEngine.Vector4[] PropInfo::m_lodColors
IL_0496: ldarg.1
IL_0497: ldfld System.Int32 PropInfo::m_lodCount
IL_049C: ldelema UnityEngine.Vector4
IL_04A1: ldarga.s 6
IL_04A3: call UnityEngine.Color UnityEngine.Color::get_linear()
IL_04A8: call static UnityEngine.Vector4
UnityEngine.Color::op_Implicit(UnityEngine.Color c)
IL_04AD: stobj UnityEngine.Vector4
IL_04B2: ldarg.1
IL_04B3: ldarg.1
IL_04B4: ldfld UnityEngine.Vector3 PropInfo::m_lodMin
IL_04B9: ldarg.3
IL_04BA: call static UnityEngine.Vector3
UnityEngine.Vector3::Min(UnityEngine.Vector3 lhs, UnityEngine.Vector3 rhs)
IL_04BF: stfld UnityEngine.Vector3 PropInfo::m_lodMin
IL_04C4: ldarg.1
IL_04C5: ldarg.1
IL_04C6: ldfld UnityEngine.Vector3 PropInfo::m_lodMax
IL_04CB: ldarg.3
IL_04CC: call static UnityEngine.Vector3
UnityEngine.Vector3::Max(UnityEngine.Vector3 lhs, UnityEngine.Vector3 rhs)
IL_04D1: stfld UnityEngine.Vector3 PropInfo::m_lodMax
IL_04D6: ldarg.1
IL_04D7: dup
IL_04D8: ldfld System.Int32 PropInfo::m_lodCount
IL_04DD: ldc.i4.1
IL_04DE: add
IL_04DF: dup
IL_04E0: stloc.s 16 (System.Int32)
IL_04E2: stfld System.Int32 PropInfo::m_lodCount
IL_04E7: ldloc.s 16 (System.Int32)
IL_04E9: ldarg.1
IL_04EA: ldfld UnityEngine.Vector4[] PropInfo::m_lodLocations
IL_04EF: ldlen
IL_04F0: conv.i4
IL_04F1: bne.un => Label23
IL_04F6: ldarg.0
IL_04F7: ldarg.1
IL_04F8: call static System.Void PropInstance::RenderLod(CameraInfo
cameraInfo, PropInfo info)
IL_04FD: // end original
IL_04FD: Label0
IL_04FD: Label6
IL_04FD: Label7
IL_04FD: Label19
IL_04FD: Label23
IL_04FD: ret
DONE

### Patch: static System.Void PropInstance::RenderInstance(CameraInfo cameraInfo,


PropInfo info, InstanceID id, UnityEngine.Vector3 position, System.Single scale,
System.Single angle, UnityEngine.Color color, UnityEngine.Vector4 objectIndex,
System.Boolean active)
### Replacement: static System.Void
PropInstance::PropInstance.RenderInstance_Patch0(CameraInfo cameraInfo, PropInfo
info, InstanceID id, UnityEngine.Vector3 position, System.Single scale,
System.Single angle, UnityEngine.Color color, UnityEngine.Vector4 objectIndex,
System.Boolean active)
IL_0000: Local var 0: UnityEngine.Matrix4x4
IL_0000: Local var 1: System.Single
IL_0000: Local var 2: System.Int32
IL_0000: Local var 3: UnityEngine.Vector3
IL_0000: Local var 4: UnityEngine.Vector3
IL_0000: Local var 5: EffectInfo/SpawnArea
IL_0000: Local var 6: System.Single
IL_0000: Local var 7: LightSystem
IL_0000: Local var 8: ColossalFramework.Math.Randomizer
IL_0000: Local var 9: UnityEngine.Vector4
IL_0000: Local var 10: System.Single
IL_0000: Local var 11: System.Single
IL_0000: Local var 12: System.Single
IL_0000: Local var 13: UnityEngine.Matrix4x4
IL_0000: Local var 14: PropManager
IL_0000: Local var 15: UnityEngine.MaterialPropertyBlock
IL_0000: Local var 16: UnityEngine.Matrix4x4
IL_0000: Local var 17: PropManager
IL_0000: Local var 18: UnityEngine.MaterialPropertyBlock
IL_0000: Local var 19: System.Int32
IL_0000: // start original
IL_0000: ldarg.1
IL_0001: ldfld System.Boolean PrefabInfo::m_prefabInitialized
IL_0006: brfalse => Label0
IL_000B: ldarg.1
IL_000C: ldfld System.Boolean PropInfo::m_hasEffects
IL_0011: brfalse => Label1
IL_0016: ldarg.s 8
IL_0018: brtrue => Label2
IL_001D: ldarg.1
IL_001E: ldfld System.Boolean PropInfo::m_alwaysActive
IL_0023: brfalse => Label3
IL_0028: Label2
IL_0028: ldloca.s 0 (UnityEngine.Matrix4x4)
IL_002A: initobj UnityEngine.Matrix4x4
IL_0030: ldloca.s 0 (UnityEngine.Matrix4x4)
IL_0032: ldarg.3
IL_0033: ldarg.s 5
IL_0035: ldc.r4 57.29578
IL_003A: mul
IL_003B: call static UnityEngine.Vector3 UnityEngine.Vector3::get_down()
IL_0040: call static UnityEngine.Quaternion
UnityEngine.Quaternion::AngleAxis(System.Single angle, UnityEngine.Vector3 axis)
IL_0045: ldarg.s 4
IL_0047: ldarg.s 4
IL_0049: ldarg.s 4
IL_004B: newobj System.Void UnityEngine.Vector3::.ctor(System.Single x,
System.Single y, System.Single z)
IL_0050: call System.Void UnityEngine.Matrix4x4::SetTRS(UnityEngine.Vector3
pos, UnityEngine.Quaternion q, UnityEngine.Vector3 s)
IL_0055: call static SimulationManager
ColossalFramework.Singleton`1<SimulationManager>::get_instance()
IL_005A: ldfld System.Single SimulationManager::m_simulationTimeDelta
IL_005F: stloc.1
IL_0060: ldc.i4.0
IL_0061: stloc.2
IL_0062: br => Label4
IL_0067: Label5
IL_0067: ldloca.s 0 (UnityEngine.Matrix4x4)
IL_0069: ldarg.1
IL_006A: ldfld Effect[] PropInfo::m_effects
IL_006F: ldloc.2
IL_0070: ldelema PropInfo+Effect
IL_0075: ldfld UnityEngine.Vector3 Effect::m_position
IL_007A: call UnityEngine.Vector3
UnityEngine.Matrix4x4::MultiplyPoint(UnityEngine.Vector3 v)
IL_007F: stloc.3
IL_0080: ldloca.s 0 (UnityEngine.Matrix4x4)
IL_0082: ldarg.1
IL_0083: ldfld Effect[] PropInfo::m_effects
IL_0088: ldloc.2
IL_0089: ldelema PropInfo+Effect
IL_008E: ldfld UnityEngine.Vector3 Effect::m_direction
IL_0093: call UnityEngine.Vector3
UnityEngine.Matrix4x4::MultiplyVector(UnityEngine.Vector3 v)
IL_0098: stloc.s 4 (UnityEngine.Vector3)
IL_009A: ldloca.s 5 (EffectInfo+SpawnArea)
IL_009C: ldloc.3
IL_009D: ldloc.s 4 (UnityEngine.Vector3)
IL_009F: ldc.r4 0
IL_00A4: call System.Void SpawnArea::.ctor(UnityEngine.Vector3 position,
UnityEngine.Vector3 direction, System.Single radius)
IL_00A9: ldarg.1
IL_00AA: ldfld Effect[] PropInfo::m_effects
IL_00AF: ldloc.2
IL_00B0: ldelema PropInfo+Effect
IL_00B5: ldfld EffectInfo Effect::m_effect
IL_00BA: ldarg.2
IL_00BB: ldloc.s 5 (EffectInfo+SpawnArea)
IL_00BD: call static UnityEngine.Vector3 UnityEngine.Vector3::get_zero()
IL_00C2: ldc.r4 0
IL_00C7: ldc.r4 1
IL_00CC: ldc.r4 -1
IL_00D1: ldloc.1
IL_00D2: ldarg.0
IL_00D3: callvirt virtual System.Void EffectInfo::RenderEffect(InstanceID id,
SpawnArea area, UnityEngine.Vector3 velocity, System.Single acceleration,
System.Single magnitude, System.Single timeOffset, System.Single timeDelta,
CameraInfo cameraInfo)
IL_00D8: ldloc.2
IL_00D9: ldc.i4.1
IL_00DA: add
IL_00DB: stloc.2
IL_00DC: Label4
IL_00DC: ldloc.2
IL_00DD: ldarg.1
IL_00DE: ldfld Effect[] PropInfo::m_effects
IL_00E3: ldlen
IL_00E4: conv.i4
IL_00E5: blt => Label5
IL_00EA: Label1
IL_00EA: Label3
IL_00EA: ldarg.1
IL_00EB: ldfld System.Boolean PropInfo::m_hasRenderer
IL_00F0: brfalse => Label6
IL_00F5: ldarg.0
IL_00F6: ldfld System.Int32 CameraInfo::m_layerMask
IL_00FB: ldc.i4.1
IL_00FC: ldarg.1
IL_00FD: ldfld System.Int32 PrefabInfo::m_prefabDataLayer
IL_0102: ldc.i4.s 31
IL_0104: and
IL_0105: shl
IL_0106: and
IL_0107: brfalse => Label7
IL_010C: call static InfoManager
ColossalFramework.Singleton`1<InfoManager>::get_instance()
IL_0111: callvirt InfoMode InfoManager::get_CurrentMode()
IL_0116: brtrue => Label8
IL_011B: ldarg 2
IL_011F: call static System.Boolean
ElectricRoads.Overrides.ElectricRoadsOverrides::CheckElectrityNetForLight(InstanceI
D id)
IL_0124: brfalse => Label24
IL_0129: ldc.r4 0
IL_012E: stloc.s 6 (System.Single)
IL_0130: ldarg.s 8
IL_0132: brtrue => Label9
IL_0137: ldarg.1
IL_0138: ldfld System.Boolean PropInfo::m_alwaysActive
IL_013D: brtrue => Label10
IL_0142: Label24
IL_0142: ldarga.s 7
IL_0144: ldc.r4 0
IL_0149: stfld System.Single UnityEngine.Vector4::z
IL_014E: br => Label11
IL_0153: Label9
IL_0153: Label10
IL_0153: ldarg.1
IL_0154: ldflda UnityEngine.Vector2 PropInfo::m_illuminationOffRange
IL_0159: ldfld System.Single UnityEngine.Vector2::x
IL_015E: ldc.r4 1000
IL_0163: blt => Label12
IL_0168: ldarg.1
IL_0169: ldfld BlinkType PropInfo::m_illuminationBlinkType
IL_016E: brfalse => Label13
IL_0173: Label12
IL_0173: call static RenderManager
ColossalFramework.Singleton`1<RenderManager>::get_instance()
IL_0178: callvirt LightSystem RenderManager::get_lightSystem()
IL_017D: stloc.s 7 (LightSystem)
IL_017F: ldloca.s 8 (ColossalFramework.Math.Randomizer)
IL_0181: ldarga.s 2
IL_0183: call System.UInt32 InstanceID::get_Index()
IL_0188: call System.Void
ColossalFramework.Math.Randomizer::.ctor(System.UInt32 _seed)
IL_018D: ldarg.1
IL_018E: ldflda UnityEngine.Vector2 PropInfo::m_illuminationOffRange
IL_0193: ldfld System.Single UnityEngine.Vector2::x
IL_0198: ldloca.s 8 (ColossalFramework.Math.Randomizer)
IL_019A: ldc.i4 100000
IL_019F: call System.Int32
ColossalFramework.Math.Randomizer::Int32(System.UInt32 range)
IL_01A4: conv.r4
IL_01A5: ldc.r4 1E-05
IL_01AA: mul
IL_01AB: ldarg.1
IL_01AC: ldflda UnityEngine.Vector2 PropInfo::m_illuminationOffRange
IL_01B1: ldfld System.Single UnityEngine.Vector2::y
IL_01B6: ldarg.1
IL_01B7: ldflda UnityEngine.Vector2 PropInfo::m_illuminationOffRange
IL_01BC: ldfld System.Single UnityEngine.Vector2::x
IL_01C1: sub
IL_01C2: mul
IL_01C3: add
IL_01C4: stloc.s 6 (System.Single)
IL_01C6: ldarga.s 7
IL_01C8: ldloc.s 6 (System.Single)
IL_01CA: ldc.r4 0.01
IL_01CF: add
IL_01D0: ldloc.s 6 (System.Single)
IL_01D2: ldc.r4 0.01
IL_01D7: sub
IL_01D8: ldloc.s 7 (LightSystem)
IL_01DA: callvirt System.Single LightSystem::get_DayLightIntensity()
IL_01DF: call static System.Single MathUtils::SmoothStep(System.Single edge0,
System.Single edge1, System.Single x)
IL_01E4: stfld System.Single UnityEngine.Vector4::z
IL_01E9: ldarg.1
IL_01EA: ldfld BlinkType PropInfo::m_illuminationBlinkType
IL_01EF: brfalse => Label14
IL_01F4: ldarg.1
IL_01F5: ldfld BlinkType PropInfo::m_illuminationBlinkType
IL_01FA: call static UnityEngine.Vector4
LightEffect::GetBlinkVector(BlinkType type)
IL_01FF: stloc.s 9 (UnityEngine.Vector4)
IL_0201: ldloc.s 6 (System.Single)
IL_0203: ldc.r4 3.71
IL_0208: mul
IL_0209: call static SimulationManager
ColossalFramework.Singleton`1<SimulationManager>::get_instance()
IL_020E: ldfld System.Single SimulationManager::m_simulationTimer
IL_0213: ldloca.s 9 (UnityEngine.Vector4)
IL_0215: ldfld System.Single UnityEngine.Vector4::w
IL_021A: div
IL_021B: add
IL_021C: stloc.s 10 (System.Single)
IL_021E: ldloc.s 10 (System.Single)
IL_0220: ldloc.s 10 (System.Single)
IL_0222: call static System.Single UnityEngine.Mathf::Floor(System.Single f)
IL_0227: sub
IL_0228: ldloca.s 9 (UnityEngine.Vector4)
IL_022A: ldfld System.Single UnityEngine.Vector4::w
IL_022F: mul
IL_0230: stloc.s 10 (System.Single)
IL_0232: ldloca.s 9 (UnityEngine.Vector4)
IL_0234: ldfld System.Single UnityEngine.Vector4::x
IL_0239: ldloca.s 9 (UnityEngine.Vector4)
IL_023B: ldfld System.Single UnityEngine.Vector4::y
IL_0240: ldloc.s 10 (System.Single)
IL_0242: call static System.Single MathUtils::SmoothStep(System.Single edge0,
System.Single edge1, System.Single x)
IL_0247: stloc.s 11 (System.Single)
IL_0249: ldloca.s 9 (UnityEngine.Vector4)
IL_024B: ldfld System.Single UnityEngine.Vector4::w
IL_0250: ldloca.s 9 (UnityEngine.Vector4)
IL_0252: ldfld System.Single UnityEngine.Vector4::z
IL_0257: ldloc.s 10 (System.Single)
IL_0259: call static System.Single MathUtils::SmoothStep(System.Single edge0,
System.Single edge1, System.Single x)
IL_025E: stloc.s 12 (System.Single)
IL_0260: ldarga.s 7
IL_0262: dup
IL_0263: ldfld System.Single UnityEngine.Vector4::z
IL_0268: ldc.r4 1
IL_026D: ldloc.s 11 (System.Single)
IL_026F: ldloc.s 12 (System.Single)
IL_0271: mul
IL_0272: sub
IL_0273: mul
IL_0274: stfld System.Single UnityEngine.Vector4::z
IL_0279: Label14
IL_0279: br => Label15
IL_027E: Label13
IL_027E: ldarga.s 7
IL_0280: ldc.r4 1
IL_0285: stfld System.Single UnityEngine.Vector4::z
IL_028A: Label8
IL_028A: Label11
IL_028A: Label15
IL_028A: ldarg.0
IL_028B: brfalse => Label16
IL_0290: ldarg.0
IL_0291: ldarg.3
IL_0292: ldarg.1
IL_0293: ldfld System.Single PropInfo::m_lodRenderDistance
IL_0298: callvirt System.Boolean
CameraInfo::CheckRenderDistance(UnityEngine.Vector3 point, System.Single
maxDistance)
IL_029D: brfalse => Label17
IL_02A2: Label16
IL_02A2: ldloca.s 13 (UnityEngine.Matrix4x4)
IL_02A4: initobj UnityEngine.Matrix4x4
IL_02AA: ldloca.s 13 (UnityEngine.Matrix4x4)
IL_02AC: ldarg.3
IL_02AD: ldarg.s 5
IL_02AF: ldc.r4 57.29578
IL_02B4: mul
IL_02B5: call static UnityEngine.Vector3 UnityEngine.Vector3::get_down()
IL_02BA: call static UnityEngine.Quaternion
UnityEngine.Quaternion::AngleAxis(System.Single angle, UnityEngine.Vector3 axis)
IL_02BF: ldarg.s 4
IL_02C1: ldarg.s 4
IL_02C3: ldarg.s 4
IL_02C5: newobj System.Void UnityEngine.Vector3::.ctor(System.Single x,
System.Single y, System.Single z)
IL_02CA: call System.Void UnityEngine.Matrix4x4::SetTRS(UnityEngine.Vector3
pos, UnityEngine.Quaternion q, UnityEngine.Vector3 s)
IL_02CF: call static PropManager
ColossalFramework.Singleton`1<PropManager>::get_instance()
IL_02D4: stloc.s 14 (PropManager)
IL_02D6: ldloc.s 14 (PropManager)
IL_02D8: ldfld UnityEngine.MaterialPropertyBlock PropManager::m_materialBlock
IL_02DD: stloc.s 15 (UnityEngine.MaterialPropertyBlock)
IL_02DF: ldloc.s 15 (UnityEngine.MaterialPropertyBlock)
IL_02E1: callvirt System.Void UnityEngine.MaterialPropertyBlock::Clear()
IL_02E6: ldloc.s 15 (UnityEngine.MaterialPropertyBlock)
IL_02E8: ldloc.s 14 (PropManager)
IL_02EA: ldfld System.Int32 PropManager::ID_Color
IL_02EF: ldarg.s 6
IL_02F1: callvirt System.Void
UnityEngine.MaterialPropertyBlock::SetColor(System.Int32 nameID, UnityEngine.Color
value)
IL_02F6: ldloc.s 15 (UnityEngine.MaterialPropertyBlock)
IL_02F8: ldloc.s 14 (PropManager)
IL_02FA: ldfld System.Int32 PropManager::ID_ObjectIndex
IL_02FF: ldarg.s 7
IL_0301: callvirt System.Void
UnityEngine.MaterialPropertyBlock::SetVector(System.Int32 nameID,
UnityEngine.Vector4 value)
IL_0306: ldarg.1
IL_0307: ldfld UnityEngine.Vector4[] PropInfo::m_rollLocation
IL_030C: brfalse => Label18
IL_0311: ldarg.1
IL_0312: ldfld UnityEngine.Material PropInfo::m_material
IL_0317: ldloc.s 14 (PropManager)
IL_0319: ldfld System.Int32 PropManager::ID_RollLocation
IL_031E: ldarg.1
IL_031F: ldfld UnityEngine.Vector4[] PropInfo::m_rollLocation
IL_0324: callvirt System.Void UnityEngine.Material::SetVectorArray(System.Int32
nameID, UnityEngine.Vector4[] values)
IL_0329: ldarg.1
IL_032A: ldfld UnityEngine.Material PropInfo::m_material
IL_032F: ldloc.s 14 (PropManager)
IL_0331: ldfld System.Int32 PropManager::ID_RollParams
IL_0336: ldarg.1
IL_0337: ldfld UnityEngine.Vector4[] PropInfo::m_rollParams
IL_033C: callvirt System.Void UnityEngine.Material::SetVectorArray(System.Int32
nameID, UnityEngine.Vector4[] values)
IL_0341: Label18
IL_0341: ldloc.s 14 (PropManager)
IL_0343: ldflda DrawCallData SimulationManagerBase`2<PropManager,
PropProperties>::m_drawCallData
IL_0348: dup
IL_0349: ldfld System.Int32 DrawCallData::m_defaultCalls
IL_034E: ldc.i4.1
IL_034F: add
IL_0350: stfld System.Int32 DrawCallData::m_defaultCalls
IL_0355: ldarg.1
IL_0356: ldfld UnityEngine.Mesh PropInfo::m_mesh
IL_035B: ldloc.s 13 (UnityEngine.Matrix4x4)
IL_035D: ldarg.1
IL_035E: ldfld UnityEngine.Material PropInfo::m_material
IL_0363: ldarg.1
IL_0364: ldfld System.Int32 PrefabInfo::m_prefabDataLayer
IL_0369: ldnull
IL_036A: ldc.i4.0
IL_036B: ldloc.s 15 (UnityEngine.MaterialPropertyBlock)
IL_036D: call static System.Void
UnityEngine.Graphics::DrawMesh(UnityEngine.Mesh mesh, UnityEngine.Matrix4x4 matrix,
UnityEngine.Material material, System.Int32 layer, UnityEngine.Camera camera,
System.Int32 submeshIndex, UnityEngine.MaterialPropertyBlock properties)
IL_0372: br => Label19
IL_0377: Label17
IL_0377: ldarg.1
IL_0378: ldfld UnityEngine.Material PropInfo::m_lodMaterialCombined
IL_037D: ldnull
IL_037E: call static System.Boolean
UnityEngine.Object::op_Equality(UnityEngine.Object x, UnityEngine.Object y)
IL_0383: brfalse => Label20
IL_0388: ldloca.s 16 (UnityEngine.Matrix4x4)
IL_038A: initobj UnityEngine.Matrix4x4
IL_0390: ldloca.s 16 (UnityEngine.Matrix4x4)
IL_0392: ldarg.3
IL_0393: ldarg.s 5
IL_0395: ldc.r4 57.29578
IL_039A: mul
IL_039B: call static UnityEngine.Vector3 UnityEngine.Vector3::get_down()
IL_03A0: call static UnityEngine.Quaternion
UnityEngine.Quaternion::AngleAxis(System.Single angle, UnityEngine.Vector3 axis)
IL_03A5: ldarg.s 4
IL_03A7: ldarg.s 4
IL_03A9: ldarg.s 4
IL_03AB: newobj System.Void UnityEngine.Vector3::.ctor(System.Single x,
System.Single y, System.Single z)
IL_03B0: call System.Void UnityEngine.Matrix4x4::SetTRS(UnityEngine.Vector3
pos, UnityEngine.Quaternion q, UnityEngine.Vector3 s)
IL_03B5: call static PropManager
ColossalFramework.Singleton`1<PropManager>::get_instance()
IL_03BA: stloc.s 17 (PropManager)
IL_03BC: ldloc.s 17 (PropManager)
IL_03BE: ldfld UnityEngine.MaterialPropertyBlock PropManager::m_materialBlock
IL_03C3: stloc.s 18 (UnityEngine.MaterialPropertyBlock)
IL_03C5: ldloc.s 18 (UnityEngine.MaterialPropertyBlock)
IL_03C7: callvirt System.Void UnityEngine.MaterialPropertyBlock::Clear()
IL_03CC: ldloc.s 18 (UnityEngine.MaterialPropertyBlock)
IL_03CE: ldloc.s 17 (PropManager)
IL_03D0: ldfld System.Int32 PropManager::ID_Color
IL_03D5: ldarg.s 6
IL_03D7: callvirt System.Void
UnityEngine.MaterialPropertyBlock::SetColor(System.Int32 nameID, UnityEngine.Color
value)
IL_03DC: ldloc.s 18 (UnityEngine.MaterialPropertyBlock)
IL_03DE: ldloc.s 17 (PropManager)
IL_03E0: ldfld System.Int32 PropManager::ID_ObjectIndex
IL_03E5: ldarg.s 7
IL_03E7: callvirt System.Void
UnityEngine.MaterialPropertyBlock::SetVector(System.Int32 nameID,
UnityEngine.Vector4 value)
IL_03EC: ldarg.1
IL_03ED: ldfld UnityEngine.Vector4[] PropInfo::m_rollLocation
IL_03F2: brfalse => Label21
IL_03F7: ldarg.1
IL_03F8: ldfld UnityEngine.Material PropInfo::m_material
IL_03FD: ldloc.s 17 (PropManager)
IL_03FF: ldfld System.Int32 PropManager::ID_RollLocation
IL_0404: ldarg.1
IL_0405: ldfld UnityEngine.Vector4[] PropInfo::m_rollLocation
IL_040A: callvirt System.Void UnityEngine.Material::SetVectorArray(System.Int32
nameID, UnityEngine.Vector4[] values)
IL_040F: ldarg.1
IL_0410: ldfld UnityEngine.Material PropInfo::m_material
IL_0415: ldloc.s 17 (PropManager)
IL_0417: ldfld System.Int32 PropManager::ID_RollParams
IL_041C: ldarg.1
IL_041D: ldfld UnityEngine.Vector4[] PropInfo::m_rollParams
IL_0422: callvirt System.Void UnityEngine.Material::SetVectorArray(System.Int32
nameID, UnityEngine.Vector4[] values)
IL_0427: Label21
IL_0427: ldloc.s 17 (PropManager)
IL_0429: ldflda DrawCallData SimulationManagerBase`2<PropManager,
PropProperties>::m_drawCallData
IL_042E: dup
IL_042F: ldfld System.Int32 DrawCallData::m_defaultCalls
IL_0434: ldc.i4.1
IL_0435: add
IL_0436: stfld System.Int32 DrawCallData::m_defaultCalls
IL_043B: ldarg.1
IL_043C: ldfld UnityEngine.Mesh PropInfo::m_lodMesh
IL_0441: ldloc.s 16 (UnityEngine.Matrix4x4)
IL_0443: ldarg.1
IL_0444: ldfld UnityEngine.Material PropInfo::m_lodMaterial
IL_0449: ldarg.1
IL_044A: ldfld System.Int32 PrefabInfo::m_prefabDataLayer
IL_044F: ldnull
IL_0450: ldc.i4.0
IL_0451: ldloc.s 18 (UnityEngine.MaterialPropertyBlock)
IL_0453: call static System.Void
UnityEngine.Graphics::DrawMesh(UnityEngine.Mesh mesh, UnityEngine.Matrix4x4 matrix,
UnityEngine.Material material, System.Int32 layer, UnityEngine.Camera camera,
System.Int32 submeshIndex, UnityEngine.MaterialPropertyBlock properties)
IL_0458: br => Label22
IL_045D: Label20
IL_045D: ldarga.s 7
IL_045F: ldarg.s 4
IL_0461: stfld System.Single UnityEngine.Vector4::w
IL_0466: ldarg.1
IL_0467: ldfld UnityEngine.Vector4[] PropInfo::m_lodLocations
IL_046C: ldarg.1
IL_046D: ldfld System.Int32 PropInfo::m_lodCount
IL_0472: ldelema UnityEngine.Vector4
IL_0477: ldarga.s 3
IL_0479: ldfld System.Single UnityEngine.Vector3::x
IL_047E: ldarga.s 3
IL_0480: ldfld System.Single UnityEngine.Vector3::y
IL_0485: ldarga.s 3
IL_0487: ldfld System.Single UnityEngine.Vector3::z
IL_048C: ldarg.s 5
IL_048E: newobj System.Void UnityEngine.Vector4::.ctor(System.Single x,
System.Single y, System.Single z, System.Single w)
IL_0493: stobj UnityEngine.Vector4
IL_0498: ldarg.1
IL_0499: ldfld UnityEngine.Vector4[] PropInfo::m_lodObjectIndices
IL_049E: ldarg.1
IL_049F: ldfld System.Int32 PropInfo::m_lodCount
IL_04A4: ldelema UnityEngine.Vector4
IL_04A9: ldarg.s 7
IL_04AB: stobj UnityEngine.Vector4
IL_04B0: ldarg.1
IL_04B1: ldfld UnityEngine.Vector4[] PropInfo::m_lodColors
IL_04B6: ldarg.1
IL_04B7: ldfld System.Int32 PropInfo::m_lodCount
IL_04BC: ldelema UnityEngine.Vector4
IL_04C1: ldarga.s 6
IL_04C3: call UnityEngine.Color UnityEngine.Color::get_linear()
IL_04C8: call static UnityEngine.Vector4
UnityEngine.Color::op_Implicit(UnityEngine.Color c)
IL_04CD: stobj UnityEngine.Vector4
IL_04D2: ldarg.1
IL_04D3: ldarg.1
IL_04D4: ldfld UnityEngine.Vector3 PropInfo::m_lodMin
IL_04D9: ldarg.3
IL_04DA: call static UnityEngine.Vector3
UnityEngine.Vector3::Min(UnityEngine.Vector3 lhs, UnityEngine.Vector3 rhs)
IL_04DF: stfld UnityEngine.Vector3 PropInfo::m_lodMin
IL_04E4: ldarg.1
IL_04E5: ldarg.1
IL_04E6: ldfld UnityEngine.Vector3 PropInfo::m_lodMax
IL_04EB: ldarg.3
IL_04EC: call static UnityEngine.Vector3
UnityEngine.Vector3::Max(UnityEngine.Vector3 lhs, UnityEngine.Vector3 rhs)
IL_04F1: stfld UnityEngine.Vector3 PropInfo::m_lodMax
IL_04F6: ldarg.1
IL_04F7: dup
IL_04F8: ldfld System.Int32 PropInfo::m_lodCount
IL_04FD: ldc.i4.1
IL_04FE: add
IL_04FF: dup
IL_0500: stloc.s 19 (System.Int32)
IL_0502: stfld System.Int32 PropInfo::m_lodCount
IL_0507: ldloc.s 19 (System.Int32)
IL_0509: ldarg.1
IL_050A: ldfld UnityEngine.Vector4[] PropInfo::m_lodLocations
IL_050F: ldlen
IL_0510: conv.i4
IL_0511: bne.un => Label23
IL_0516: ldarg.0
IL_0517: ldarg.1
IL_0518: call static System.Void PropInstance::RenderLod(CameraInfo
cameraInfo, PropInfo info)
IL_051D: // end original
IL_051D: Label0
IL_051D: Label6
IL_051D: Label7
IL_051D: Label19
IL_051D: Label22
IL_051D: Label23
IL_051D: ret
DONE

### Patch: virtual System.Void LightEffect::PopulateGroupData(System.Int32 layer,


InstanceID id, UnityEngine.Vector3 pos, UnityEngine.Vector3 dir, 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
LightEffect::LightEffect.PopulateGroupData_Patch1(LightEffect this, System.Int32
layer, InstanceID id, UnityEngine.Vector3 pos, UnityEngine.Vector3 dir,
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.Boolean
IL_0000: Local var 1: UnityEngine.Vector3
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.Quaternion
IL_0000: Local var 7: UnityEngine.Vector4
IL_0000: Local var 8: UnityEngine.Vector2
IL_0000: Local var 9: ColossalFramework.Math.Randomizer
IL_0000: Local var 10: UnityEngine.Vector2
IL_0000: Local var 11: UnityEngine.Vector2
IL_0000: Local var 12: UnityEngine.Vector2
IL_0000: Local var 13: System.UInt16
IL_0000: Local var 14: UnityEngine.Vector3
IL_0000: Local var 15: UnityEngine.Color
IL_0000: Local var 16: UnityEngine.Color
IL_0000: Local var 17: System.Single
IL_0000: Local var 18: System.Single
IL_0000: Local var 19: System.Int32
IL_0000: Local var 20: System.Boolean
IL_0000: ldc.i4 0
IL_0005: stloc 20 (System.Boolean)
IL_0009: ldc.i4.1
IL_000A: stloc 20 (System.Boolean)
IL_000E: ldloc 20 (System.Boolean)
IL_0012: brfalse => Label1
IL_0017: ldarg 2
IL_001B: call static System.Boolean
ElectricRoads.Overrides.ElectricRoadsOverrides::CheckElectrityNetForLight(InstanceI
D id)
IL_0020: stloc 20 (System.Boolean)
IL_0024: Label1
IL_0024: nop
IL_0025: ldloc 20 (System.Boolean)
IL_0029: brfalse => Label0
IL_002E: // start original
IL_002E: ldarg.1
IL_002F: ldarg.0
IL_0030: ldfld System.Int32 LightEffect::m_groupLayer
IL_0035: beq => Label2
IL_003A: ldarg.1
IL_003B: ldarg.0
IL_003C: ldfld System.Int32 LightEffect::m_groupLayerFloating
IL_0041: bne.un => Label3
IL_0046: Label2
IL_0046: ldarg.1
IL_0047: ldarg.0
IL_0048: ldfld System.Int32 LightEffect::m_groupLayerFloating
IL_004D: ceq
IL_004F: stloc.0
IL_0050: ldloca.s 1 (UnityEngine.Vector3)
IL_0052: ldarg.0
IL_0053: ldfld System.Single LightEffect::m_lightRange
IL_0058: ldarg.0
IL_0059: ldfld System.Single LightEffect::m_lightRange
IL_005E: ldarg.0
IL_005F: ldfld System.Single LightEffect::m_lightRange
IL_0064: call System.Void UnityEngine.Vector3::.ctor(System.Single x,
System.Single y, System.Single z)
IL_0069: ldarg.3
IL_006A: ldloc.1
IL_006B: call static UnityEngine.Vector3
UnityEngine.Vector3::op_Subtraction(UnityEngine.Vector3 a, UnityEngine.Vector3 b)
IL_0070: stloc.2
IL_0071: ldarg.3
IL_0072: ldloc.1
IL_0073: call static UnityEngine.Vector3
UnityEngine.Vector3::op_Addition(UnityEngine.Vector3 a, UnityEngine.Vector3 b)
IL_0078: stloc.3
IL_0079: ldarg.s 9
IL_007B: ldarg.s 9
IL_007D: ldobj UnityEngine.Vector3
IL_0082: ldloc.2
IL_0083: call static UnityEngine.Vector3
UnityEngine.Vector3::Min(UnityEngine.Vector3 lhs, UnityEngine.Vector3 rhs)
IL_0088: stobj UnityEngine.Vector3
IL_008D: ldarg.s 10
IL_008F: ldarg.s 10
IL_0091: ldobj UnityEngine.Vector3
IL_0096: ldloc.3
IL_0097: call static UnityEngine.Vector3
UnityEngine.Vector3::Max(UnityEngine.Vector3 lhs, UnityEngine.Vector3 rhs)
IL_009C: stobj UnityEngine.Vector3
IL_00A1: ldarg.3
IL_00A2: ldarg.s 7
IL_00A4: call static UnityEngine.Vector3
UnityEngine.Vector3::op_Subtraction(UnityEngine.Vector3 a, UnityEngine.Vector3 b)
IL_00A9: stloc.s 4 (UnityEngine.Vector3)
IL_00AB: ldarg.s 11
IL_00AD: ldarg.s 11
IL_00AF: ldind.r4
IL_00B0: ldc.r4 30000
IL_00B5: call static System.Single UnityEngine.Mathf::Max(System.Single a,
System.Single b)
IL_00BA: stind.r4
IL_00BB: ldarg.0
IL_00BC: ldfld UnityEngine.LightType LightEffect::m_lightType
IL_00C1: brtrue => Label4
IL_00C6: ldarg.s 4
IL_00C8: call static UnityEngine.Quaternion
UnityEngine.Quaternion::LookRotation(UnityEngine.Vector3 forward)
IL_00CD: stloc.s 6 (UnityEngine.Quaternion)
IL_00CF: ldloc.s 6 (UnityEngine.Quaternion)
IL_00D1: ldarg.0
IL_00D2: ldfld UnityEngine.Quaternion LightEffect::m_lightRotation
IL_00D7: call static UnityEngine.Vector3 UnityEngine.Vector3::get_forward()
IL_00DC: call static UnityEngine.Vector3
UnityEngine.Quaternion::op_Multiply(UnityEngine.Quaternion rotation,
UnityEngine.Vector3 point)
IL_00E1: call static UnityEngine.Vector3
UnityEngine.Quaternion::op_Multiply(UnityEngine.Quaternion rotation,
UnityEngine.Vector3 point)
IL_00E6: stloc.s 5 (UnityEngine.Vector3)
IL_00E8: br => Label5
IL_00ED: Label4
IL_00ED: call static UnityEngine.Vector3 UnityEngine.Vector3::get_forward()
IL_00F2: stloc.s 5 (UnityEngine.Vector3)
IL_00F4: Label5
IL_00F4: ldloca.s 7 (UnityEngine.Vector4)
IL_00F6: ldloca.s 5 (UnityEngine.Vector3)
IL_00F8: ldfld System.Single UnityEngine.Vector3::x
IL_00FD: ldloca.s 5 (UnityEngine.Vector3)
IL_00FF: ldfld System.Single UnityEngine.Vector3::y
IL_0104: ldloca.s 5 (UnityEngine.Vector3)
IL_0106: ldfld System.Single UnityEngine.Vector3::z
IL_010B: ldc.r4 100000
IL_0110: call System.Void UnityEngine.Vector4::.ctor(System.Single x,
System.Single y, System.Single z, System.Single w)
IL_0115: ldarg.0
IL_0116: ldfld UnityEngine.LightType LightEffect::m_lightType
IL_011B: brtrue => Label6
IL_0120: ldloca.s 7 (UnityEngine.Vector4)
IL_0122: ldc.r4 0.01745329
IL_0127: ldarg.0
IL_0128: ldfld System.Single LightEffect::m_lightSpotAngle
IL_012D: mul
IL_012E: ldc.r4 0.5
IL_0133: mul
IL_0134: call static System.Single UnityEngine.Mathf::Cos(System.Single f)
IL_0139: neg
IL_013A: stfld System.Single UnityEngine.Vector4::w
IL_013F: Label6
IL_013F: ldloca.s 8 (UnityEngine.Vector2)
IL_0141: ldc.r4 1
IL_0146: ldarg.0
IL_0147: ldfld System.Single LightEffect::m_lightRange
IL_014C: ldarg.0
IL_014D: ldfld System.Single LightEffect::m_lightRange
IL_0152: mul
IL_0153: div
IL_0154: ldarg.0
IL_0155: ldfld System.Single LightEffect::m_lightIntensity
IL_015A: call System.Void UnityEngine.Vector2::.ctor(System.Single x,
System.Single y)
IL_015F: ldloca.s 9 (ColossalFramework.Math.Randomizer)
IL_0161: ldarga.s 2
IL_0163: call System.UInt32 InstanceID::get_Index()
IL_0168: call System.Void
ColossalFramework.Math.Randomizer::.ctor(System.UInt32 _seed)
IL_016D: ldloca.s 10 (UnityEngine.Vector2)
IL_016F: ldarg.0
IL_0170: ldflda UnityEngine.Vector2 LightEffect::m_offRange
IL_0175: ldfld System.Single UnityEngine.Vector2::x
IL_017A: ldloca.s 9 (ColossalFramework.Math.Randomizer)
IL_017C: ldc.i4 100000
IL_0181: call System.Int32
ColossalFramework.Math.Randomizer::Int32(System.UInt32 range)
IL_0186: conv.r4
IL_0187: ldc.r4 1E-05
IL_018C: mul
IL_018D: ldarg.0
IL_018E: ldflda UnityEngine.Vector2 LightEffect::m_offRange
IL_0193: ldfld System.Single UnityEngine.Vector2::y
IL_0198: ldarg.0
IL_0199: ldflda UnityEngine.Vector2 LightEffect::m_offRange
IL_019E: ldfld System.Single UnityEngine.Vector2::x
IL_01A3: sub
IL_01A4: mul
IL_01A5: add
IL_01A6: stfld System.Single UnityEngine.Vector2::x
IL_01AB: ldloca.s 10 (UnityEngine.Vector2)
IL_01AD: ldarg.0
IL_01AE: ldfld BlinkType LightEffect::m_blinkType
IL_01B3: conv.r4
IL_01B4: stfld System.Single UnityEngine.Vector2::y
IL_01B9: ldarg.2
IL_01BA: call static System.UInt16 EffectInfo::GetBuilding(InstanceID id)
IL_01BF: stloc.s 13 (System.UInt16)
IL_01C1: ldloc.s 13 (System.UInt16)
IL_01C3: brfalse => Label7
IL_01C8: ldloc.s 13 (System.UInt16)
IL_01CA: call static UnityEngine.Vector4
RenderManager::GetColorLocation(System.UInt32 instanceHolder)
IL_01CF: call static UnityEngine.Vector2
UnityEngine.Vector4::op_Implicit(UnityEngine.Vector4 v)
IL_01D4: stloc.s 11 (UnityEngine.Vector2)
IL_01D6: ldloc.0
IL_01D7: brfalse => Label8
IL_01DC: call static BuildingManager
ColossalFramework.Singleton`1<BuildingManager>::get_instance()
IL_01E1: ldfld Array16`1<Building> BuildingManager::m_buildings
IL_01E6: ldfld Building[] Array16`1<Building>::m_buffer
IL_01EB: ldloc.s 13 (System.UInt16)
IL_01ED: ldelema Building
IL_01F2: call UnityEngine.Vector3 Building::CalculateMeshPosition()
IL_01F7: stloc.s 14 (UnityEngine.Vector3)
IL_01F9: ldloc.s 14 (UnityEngine.Vector3)
IL_01FB: call static UnityEngine.Vector2
ColossalFramework.Math.VectorUtils::XZ(UnityEngine.Vector3 v)
IL_0200: stloc.s 12 (UnityEngine.Vector2)
IL_0202: ldarga.s 3
IL_0204: dup
IL_0205: ldfld System.Single UnityEngine.Vector3::y
IL_020A: ldloca.s 14 (UnityEngine.Vector3)
IL_020C: ldfld System.Single UnityEngine.Vector3::y
IL_0211: sub
IL_0212: stfld System.Single UnityEngine.Vector3::y
IL_0217: ldloca.s 4 (UnityEngine.Vector3)
IL_0219: dup
IL_021A: ldfld System.Single UnityEngine.Vector3::y
IL_021F: ldloca.s 14 (UnityEngine.Vector3)
IL_0221: ldfld System.Single UnityEngine.Vector3::y
IL_0226: sub
IL_0227: stfld System.Single UnityEngine.Vector3::y
IL_022C: br => Label9
IL_0231: Label8
IL_0231: call static UnityEngine.Vector2 UnityEngine.Vector2::get_zero()
IL_0236: stloc.s 12 (UnityEngine.Vector2)
IL_0238: Label9
IL_0238: br => Label10
IL_023D: Label7
IL_023D: ldsfld UnityEngine.Vector4 RenderManager::DefaultColorLocation
IL_0242: call static UnityEngine.Vector2
UnityEngine.Vector4::op_Implicit(UnityEngine.Vector4 v)
IL_0247: stloc.s 11 (UnityEngine.Vector2)
IL_0249: call static UnityEngine.Vector2 UnityEngine.Vector2::get_zero()
IL_024E: stloc.s 12 (UnityEngine.Vector2)
IL_0250: Label10
IL_0250: ldarg.0
IL_0251: ldfld UnityEngine.Color LightEffect::m_lightColor
IL_0256: stloc.s 15 (UnityEngine.Color)
IL_0258: ldarg.0
IL_0259: ldfld UnityEngine.Color[] LightEffect::m_variationColors
IL_025E: brfalse => Label11
IL_0263: ldarg.0
IL_0264: ldfld UnityEngine.Color[] LightEffect::m_variationColors
IL_0269: ldlen
IL_026A: conv.i4
IL_026B: brfalse => Label12
IL_0270: ldarg.0
IL_0271: ldfld UnityEngine.Color[] LightEffect::m_variationColors
IL_0276: ldloca.s 9 (ColossalFramework.Math.Randomizer)
IL_0278: ldarg.0
IL_0279: ldfld UnityEngine.Color[] LightEffect::m_variationColors
IL_027E: ldlen
IL_027F: conv.i4
IL_0280: call System.Int32
ColossalFramework.Math.Randomizer::Int32(System.UInt32 range)
IL_0285: ldelema UnityEngine.Color
IL_028A: ldobj UnityEngine.Color
IL_028F: stloc.s 16 (UnityEngine.Color)
IL_0291: ldloc.s 15 (UnityEngine.Color)
IL_0293: ldloc.s 16 (UnityEngine.Color)
IL_0295: ldloca.s 9 (ColossalFramework.Math.Randomizer)
IL_0297: ldc.i4 1000
IL_029C: call System.Int32
ColossalFramework.Math.Randomizer::Int32(System.UInt32 range)
IL_02A1: conv.r4
IL_02A2: ldc.r4 0.001
IL_02A7: mul
IL_02A8: call static UnityEngine.Color
UnityEngine.Color::Lerp(UnityEngine.Color a, UnityEngine.Color b, System.Single t)
IL_02AD: stloc.s 15 (UnityEngine.Color)
IL_02AF: Label11
IL_02AF: Label12
IL_02AF: ldloca.s 15 (UnityEngine.Color)
IL_02B1: call UnityEngine.Color UnityEngine.Color::get_linear()
IL_02B6: stloc.s 15 (UnityEngine.Color)
IL_02B8: ldloca.s 15 (UnityEngine.Color)
IL_02BA: ldarg.0
IL_02BB: ldfld UnityEngine.LightType LightEffect::m_lightType
IL_02C0: brtrue => Label13
IL_02C5: ldarg.0
IL_02C6: ldfld System.Single LightEffect::m_spotLeaking
IL_02CB: br => Label14
IL_02D0: Label13
IL_02D0: ldc.r4 0
IL_02D5: Label14
IL_02D5: stfld System.Single UnityEngine.Color::a
IL_02DA: ldarg.0
IL_02DB: ldfld System.Single LightEffect::m_lightRange
IL_02E0: ldc.r4 0.5235988
IL_02E5: call static System.Single UnityEngine.Mathf::Cos(System.Single f)
IL_02EA: div
IL_02EB: stloc.s 17 (System.Single)
IL_02ED: ldloc.s 17 (System.Single)
IL_02EF: ldc.r4 0.5
IL_02F4: mul
IL_02F5: stloc.s 18 (System.Single)
IL_02F7: ldarg.s 8
IL_02F9: ldfld UnityEngine.Vector3[] MeshData::m_vertices
IL_02FE: ldarg.s 5
IL_0300: ldind.i4
IL_0301: ldelema UnityEngine.Vector3
IL_0306: ldloca.s 4 (UnityEngine.Vector3)
IL_0308: ldfld System.Single UnityEngine.Vector3::x
IL_030D: ldloc.s 18 (System.Single)
IL_030F: sub
IL_0310: ldloca.s 4 (UnityEngine.Vector3)
IL_0312: ldfld System.Single UnityEngine.Vector3::y
IL_0317: ldarg.0
IL_0318: ldfld System.Single LightEffect::m_lightRange
IL_031D: add
IL_031E: ldloca.s 4 (UnityEngine.Vector3)
IL_0320: ldfld System.Single UnityEngine.Vector3::z
IL_0325: ldarg.0
IL_0326: ldfld System.Single LightEffect::m_lightRange
IL_032B: add
IL_032C: newobj System.Void UnityEngine.Vector3::.ctor(System.Single x,
System.Single y, System.Single z)
IL_0331: stobj UnityEngine.Vector3
IL_0336: ldarg.s 8
IL_0338: ldfld UnityEngine.Vector3[] MeshData::m_normals
IL_033D: ldarg.s 5
IL_033F: ldind.i4
IL_0340: ldelema UnityEngine.Vector3
IL_0345: ldarg.3
IL_0346: stobj UnityEngine.Vector3
IL_034B: ldarg.s 8
IL_034D: ldfld UnityEngine.Vector4[] MeshData::m_tangents
IL_0352: ldarg.s 5
IL_0354: ldind.i4
IL_0355: ldelema UnityEngine.Vector4
IL_035A: ldloc.s 7 (UnityEngine.Vector4)
IL_035C: stobj UnityEngine.Vector4
IL_0361: ldarg.s 8
IL_0363: ldfld UnityEngine.Vector2[] MeshData::m_uvs
IL_0368: ldarg.s 5
IL_036A: ldind.i4
IL_036B: ldelema UnityEngine.Vector2
IL_0370: ldloc.s 8 (UnityEngine.Vector2)
IL_0372: stobj UnityEngine.Vector2
IL_0377: ldarg.s 8
IL_0379: ldfld UnityEngine.Vector2[] MeshData::m_uvs2
IL_037E: ldarg.s 5
IL_0380: ldind.i4
IL_0381: ldelema UnityEngine.Vector2
IL_0386: ldloc.s 10 (UnityEngine.Vector2)
IL_0388: stobj UnityEngine.Vector2
IL_038D: ldarg.s 8
IL_038F: ldfld UnityEngine.Vector2[] MeshData::m_uvs3
IL_0394: ldarg.s 5
IL_0396: ldind.i4
IL_0397: ldelema UnityEngine.Vector2
IL_039C: ldloc.s 11 (UnityEngine.Vector2)
IL_039E: stobj UnityEngine.Vector2
IL_03A3: ldloc.0
IL_03A4: brfalse => Label15
IL_03A9: ldarg.s 8
IL_03AB: ldfld UnityEngine.Vector2[] MeshData::m_uvs4
IL_03B0: ldarg.s 5
IL_03B2: ldind.i4
IL_03B3: ldelema UnityEngine.Vector2
IL_03B8: ldloc.s 12 (UnityEngine.Vector2)
IL_03BA: stobj UnityEngine.Vector2
IL_03BF: Label15
IL_03BF: ldarg.s 8
IL_03C1: ldfld UnityEngine.Color32[] MeshData::m_colors
IL_03C6: ldarg.s 5
IL_03C8: ldind.i4
IL_03C9: ldelema UnityEngine.Color32
IL_03CE: ldloc.s 15 (UnityEngine.Color)
IL_03D0: call static UnityEngine.Color32
UnityEngine.Color32::op_Implicit(UnityEngine.Color c)
IL_03D5: stobj UnityEngine.Color32
IL_03DA: ldarg.s 5
IL_03DC: ldarg.s 5
IL_03DE: ldind.i4
IL_03DF: ldc.i4.1
IL_03E0: add
IL_03E1: stind.i4
IL_03E2: ldarg.s 8
IL_03E4: ldfld UnityEngine.Vector3[] MeshData::m_vertices
IL_03E9: ldarg.s 5
IL_03EB: ldind.i4
IL_03EC: ldelema UnityEngine.Vector3
IL_03F1: ldloca.s 4 (UnityEngine.Vector3)
IL_03F3: ldfld System.Single UnityEngine.Vector3::x
IL_03F8: ldloc.s 18 (System.Single)
IL_03FA: add
IL_03FB: ldloca.s 4 (UnityEngine.Vector3)
IL_03FD: ldfld System.Single UnityEngine.Vector3::y
IL_0402: ldarg.0
IL_0403: ldfld System.Single LightEffect::m_lightRange
IL_0408: add
IL_0409: ldloca.s 4 (UnityEngine.Vector3)
IL_040B: ldfld System.Single UnityEngine.Vector3::z
IL_0410: ldarg.0
IL_0411: ldfld System.Single LightEffect::m_lightRange
IL_0416: add
IL_0417: newobj System.Void UnityEngine.Vector3::.ctor(System.Single x,
System.Single y, System.Single z)
IL_041C: stobj UnityEngine.Vector3
IL_0421: ldarg.s 8
IL_0423: ldfld UnityEngine.Vector3[] MeshData::m_normals
IL_0428: ldarg.s 5
IL_042A: ldind.i4
IL_042B: ldelema UnityEngine.Vector3
IL_0430: ldarg.3
IL_0431: stobj UnityEngine.Vector3
IL_0436: ldarg.s 8
IL_0438: ldfld UnityEngine.Vector4[] MeshData::m_tangents
IL_043D: ldarg.s 5
IL_043F: ldind.i4
IL_0440: ldelema UnityEngine.Vector4
IL_0445: ldloc.s 7 (UnityEngine.Vector4)
IL_0447: stobj UnityEngine.Vector4
IL_044C: ldarg.s 8
IL_044E: ldfld UnityEngine.Vector2[] MeshData::m_uvs
IL_0453: ldarg.s 5
IL_0455: ldind.i4
IL_0456: ldelema UnityEngine.Vector2
IL_045B: ldloc.s 8 (UnityEngine.Vector2)
IL_045D: stobj UnityEngine.Vector2
IL_0462: ldarg.s 8
IL_0464: ldfld UnityEngine.Vector2[] MeshData::m_uvs2
IL_0469: ldarg.s 5
IL_046B: ldind.i4
IL_046C: ldelema UnityEngine.Vector2
IL_0471: ldloc.s 10 (UnityEngine.Vector2)
IL_0473: stobj UnityEngine.Vector2
IL_0478: ldarg.s 8
IL_047A: ldfld UnityEngine.Vector2[] MeshData::m_uvs3
IL_047F: ldarg.s 5
IL_0481: ldind.i4
IL_0482: ldelema UnityEngine.Vector2
IL_0487: ldloc.s 11 (UnityEngine.Vector2)
IL_0489: stobj UnityEngine.Vector2
IL_048E: ldloc.0
IL_048F: brfalse => Label16
IL_0494: ldarg.s 8
IL_0496: ldfld UnityEngine.Vector2[] MeshData::m_uvs4
IL_049B: ldarg.s 5
IL_049D: ldind.i4
IL_049E: ldelema UnityEngine.Vector2
IL_04A3: ldloc.s 12 (UnityEngine.Vector2)
IL_04A5: stobj UnityEngine.Vector2
IL_04AA: Label16
IL_04AA: ldarg.s 8
IL_04AC: ldfld UnityEngine.Color32[] MeshData::m_colors
IL_04B1: ldarg.s 5
IL_04B3: ldind.i4
IL_04B4: ldelema UnityEngine.Color32
IL_04B9: ldloc.s 15 (UnityEngine.Color)
IL_04BB: call static UnityEngine.Color32
UnityEngine.Color32::op_Implicit(UnityEngine.Color c)
IL_04C0: stobj UnityEngine.Color32
IL_04C5: ldarg.s 5
IL_04C7: ldarg.s 5
IL_04C9: ldind.i4
IL_04CA: ldc.i4.1
IL_04CB: add
IL_04CC: stind.i4
IL_04CD: ldarg.s 8
IL_04CF: ldfld UnityEngine.Vector3[] MeshData::m_vertices
IL_04D4: ldarg.s 5
IL_04D6: ldind.i4
IL_04D7: ldelema UnityEngine.Vector3
IL_04DC: ldloca.s 4 (UnityEngine.Vector3)
IL_04DE: ldfld System.Single UnityEngine.Vector3::x
IL_04E3: ldloc.s 17 (System.Single)
IL_04E5: add
IL_04E6: ldloca.s 4 (UnityEngine.Vector3)
IL_04E8: ldfld System.Single UnityEngine.Vector3::y
IL_04ED: ldloca.s 4 (UnityEngine.Vector3)
IL_04EF: ldfld System.Single UnityEngine.Vector3::z
IL_04F4: ldarg.0
IL_04F5: ldfld System.Single LightEffect::m_lightRange
IL_04FA: add
IL_04FB: newobj System.Void UnityEngine.Vector3::.ctor(System.Single x,
System.Single y, System.Single z)
IL_0500: stobj UnityEngine.Vector3
IL_0505: ldarg.s 8
IL_0507: ldfld UnityEngine.Vector3[] MeshData::m_normals
IL_050C: ldarg.s 5
IL_050E: ldind.i4
IL_050F: ldelema UnityEngine.Vector3
IL_0514: ldarg.3
IL_0515: stobj UnityEngine.Vector3
IL_051A: ldarg.s 8
IL_051C: ldfld UnityEngine.Vector4[] MeshData::m_tangents
IL_0521: ldarg.s 5
IL_0523: ldind.i4
IL_0524: ldelema UnityEngine.Vector4
IL_0529: ldloc.s 7 (UnityEngine.Vector4)
IL_052B: stobj UnityEngine.Vector4
IL_0530: ldarg.s 8
IL_0532: ldfld UnityEngine.Vector2[] MeshData::m_uvs
IL_0537: ldarg.s 5
IL_0539: ldind.i4
IL_053A: ldelema UnityEngine.Vector2
IL_053F: ldloc.s 8 (UnityEngine.Vector2)
IL_0541: stobj UnityEngine.Vector2
IL_0546: ldarg.s 8
IL_0548: ldfld UnityEngine.Vector2[] MeshData::m_uvs2
IL_054D: ldarg.s 5
IL_054F: ldind.i4
IL_0550: ldelema UnityEngine.Vector2
IL_0555: ldloc.s 10 (UnityEngine.Vector2)
IL_0557: stobj UnityEngine.Vector2
IL_055C: ldarg.s 8
IL_055E: ldfld UnityEngine.Vector2[] MeshData::m_uvs3
IL_0563: ldarg.s 5
IL_0565: ldind.i4
IL_0566: ldelema UnityEngine.Vector2
IL_056B: ldloc.s 11 (UnityEngine.Vector2)
IL_056D: stobj UnityEngine.Vector2
IL_0572: ldloc.0
IL_0573: brfalse => Label17
IL_0578: ldarg.s 8
IL_057A: ldfld UnityEngine.Vector2[] MeshData::m_uvs4
IL_057F: ldarg.s 5
IL_0581: ldind.i4
IL_0582: ldelema UnityEngine.Vector2
IL_0587: ldloc.s 12 (UnityEngine.Vector2)
IL_0589: stobj UnityEngine.Vector2
IL_058E: Label17
IL_058E: ldarg.s 8
IL_0590: ldfld UnityEngine.Color32[] MeshData::m_colors
IL_0595: ldarg.s 5
IL_0597: ldind.i4
IL_0598: ldelema UnityEngine.Color32
IL_059D: ldloc.s 15 (UnityEngine.Color)
IL_059F: call static UnityEngine.Color32
UnityEngine.Color32::op_Implicit(UnityEngine.Color c)
IL_05A4: stobj UnityEngine.Color32
IL_05A9: ldarg.s 5
IL_05AB: ldarg.s 5
IL_05AD: ldind.i4
IL_05AE: ldc.i4.1
IL_05AF: add
IL_05B0: stind.i4
IL_05B1: ldarg.s 8
IL_05B3: ldfld UnityEngine.Vector3[] MeshData::m_vertices
IL_05B8: ldarg.s 5
IL_05BA: ldind.i4
IL_05BB: ldelema UnityEngine.Vector3
IL_05C0: ldloca.s 4 (UnityEngine.Vector3)
IL_05C2: ldfld System.Single UnityEngine.Vector3::x
IL_05C7: ldloc.s 18 (System.Single)
IL_05C9: add
IL_05CA: ldloca.s 4 (UnityEngine.Vector3)
IL_05CC: ldfld System.Single UnityEngine.Vector3::y
IL_05D1: ldarg.0
IL_05D2: ldfld System.Single LightEffect::m_lightRange
IL_05D7: sub
IL_05D8: ldloca.s 4 (UnityEngine.Vector3)
IL_05DA: ldfld System.Single UnityEngine.Vector3::z
IL_05DF: ldarg.0
IL_05E0: ldfld System.Single LightEffect::m_lightRange
IL_05E5: add
IL_05E6: newobj System.Void UnityEngine.Vector3::.ctor(System.Single x,
System.Single y, System.Single z)
IL_05EB: stobj UnityEngine.Vector3
IL_05F0: ldarg.s 8
IL_05F2: ldfld UnityEngine.Vector3[] MeshData::m_normals
IL_05F7: ldarg.s 5
IL_05F9: ldind.i4
IL_05FA: ldelema UnityEngine.Vector3
IL_05FF: ldarg.3
IL_0600: stobj UnityEngine.Vector3
IL_0605: ldarg.s 8
IL_0607: ldfld UnityEngine.Vector4[] MeshData::m_tangents
IL_060C: ldarg.s 5
IL_060E: ldind.i4
IL_060F: ldelema UnityEngine.Vector4
IL_0614: ldloc.s 7 (UnityEngine.Vector4)
IL_0616: stobj UnityEngine.Vector4
IL_061B: ldarg.s 8
IL_061D: ldfld UnityEngine.Vector2[] MeshData::m_uvs
IL_0622: ldarg.s 5
IL_0624: ldind.i4
IL_0625: ldelema UnityEngine.Vector2
IL_062A: ldloc.s 8 (UnityEngine.Vector2)
IL_062C: stobj UnityEngine.Vector2
IL_0631: ldarg.s 8
IL_0633: ldfld UnityEngine.Vector2[] MeshData::m_uvs2
IL_0638: ldarg.s 5
IL_063A: ldind.i4
IL_063B: ldelema UnityEngine.Vector2
IL_0640: ldloc.s 10 (UnityEngine.Vector2)
IL_0642: stobj UnityEngine.Vector2
IL_0647: ldarg.s 8
IL_0649: ldfld UnityEngine.Vector2[] MeshData::m_uvs3
IL_064E: ldarg.s 5
IL_0650: ldind.i4
IL_0651: ldelema UnityEngine.Vector2
IL_0656: ldloc.s 11 (UnityEngine.Vector2)
IL_0658: stobj UnityEngine.Vector2
IL_065D: ldloc.0
IL_065E: brfalse => Label18
IL_0663: ldarg.s 8
IL_0665: ldfld UnityEngine.Vector2[] MeshData::m_uvs4
IL_066A: ldarg.s 5
IL_066C: ldind.i4
IL_066D: ldelema UnityEngine.Vector2
IL_0672: ldloc.s 12 (UnityEngine.Vector2)
IL_0674: stobj UnityEngine.Vector2
IL_0679: Label18
IL_0679: ldarg.s 8
IL_067B: ldfld UnityEngine.Color32[] MeshData::m_colors
IL_0680: ldarg.s 5
IL_0682: ldind.i4
IL_0683: ldelema UnityEngine.Color32
IL_0688: ldloc.s 15 (UnityEngine.Color)
IL_068A: call static UnityEngine.Color32
UnityEngine.Color32::op_Implicit(UnityEngine.Color c)
IL_068F: stobj UnityEngine.Color32
IL_0694: ldarg.s 5
IL_0696: ldarg.s 5
IL_0698: ldind.i4
IL_0699: ldc.i4.1
IL_069A: add
IL_069B: stind.i4
IL_069C: ldarg.s 8
IL_069E: ldfld UnityEngine.Vector3[] MeshData::m_vertices
IL_06A3: ldarg.s 5
IL_06A5: ldind.i4
IL_06A6: ldelema UnityEngine.Vector3
IL_06AB: ldloca.s 4 (UnityEngine.Vector3)
IL_06AD: ldfld System.Single UnityEngine.Vector3::x
IL_06B2: ldloc.s 18 (System.Single)
IL_06B4: sub
IL_06B5: ldloca.s 4 (UnityEngine.Vector3)
IL_06B7: ldfld System.Single UnityEngine.Vector3::y
IL_06BC: ldarg.0
IL_06BD: ldfld System.Single LightEffect::m_lightRange
IL_06C2: sub
IL_06C3: ldloca.s 4 (UnityEngine.Vector3)
IL_06C5: ldfld System.Single UnityEngine.Vector3::z
IL_06CA: ldarg.0
IL_06CB: ldfld System.Single LightEffect::m_lightRange
IL_06D0: add
IL_06D1: newobj System.Void UnityEngine.Vector3::.ctor(System.Single x,
System.Single y, System.Single z)
IL_06D6: stobj UnityEngine.Vector3
IL_06DB: ldarg.s 8
IL_06DD: ldfld UnityEngine.Vector3[] MeshData::m_normals
IL_06E2: ldarg.s 5
IL_06E4: ldind.i4
IL_06E5: ldelema UnityEngine.Vector3
IL_06EA: ldarg.3
IL_06EB: stobj UnityEngine.Vector3
IL_06F0: ldarg.s 8
IL_06F2: ldfld UnityEngine.Vector4[] MeshData::m_tangents
IL_06F7: ldarg.s 5
IL_06F9: ldind.i4
IL_06FA: ldelema UnityEngine.Vector4
IL_06FF: ldloc.s 7 (UnityEngine.Vector4)
IL_0701: stobj UnityEngine.Vector4
IL_0706: ldarg.s 8
IL_0708: ldfld UnityEngine.Vector2[] MeshData::m_uvs
IL_070D: ldarg.s 5
IL_070F: ldind.i4
IL_0710: ldelema UnityEngine.Vector2
IL_0715: ldloc.s 8 (UnityEngine.Vector2)
IL_0717: stobj UnityEngine.Vector2
IL_071C: ldarg.s 8
IL_071E: ldfld UnityEngine.Vector2[] MeshData::m_uvs2
IL_0723: ldarg.s 5
IL_0725: ldind.i4
IL_0726: ldelema UnityEngine.Vector2
IL_072B: ldloc.s 10 (UnityEngine.Vector2)
IL_072D: stobj UnityEngine.Vector2
IL_0732: ldarg.s 8
IL_0734: ldfld UnityEngine.Vector2[] MeshData::m_uvs3
IL_0739: ldarg.s 5
IL_073B: ldind.i4
IL_073C: ldelema UnityEngine.Vector2
IL_0741: ldloc.s 11 (UnityEngine.Vector2)
IL_0743: stobj UnityEngine.Vector2
IL_0748: ldloc.0
IL_0749: brfalse => Label19
IL_074E: ldarg.s 8
IL_0750: ldfld UnityEngine.Vector2[] MeshData::m_uvs4
IL_0755: ldarg.s 5
IL_0757: ldind.i4
IL_0758: ldelema UnityEngine.Vector2
IL_075D: ldloc.s 12 (UnityEngine.Vector2)
IL_075F: stobj UnityEngine.Vector2
IL_0764: Label19
IL_0764: ldarg.s 8
IL_0766: ldfld UnityEngine.Color32[] MeshData::m_colors
IL_076B: ldarg.s 5
IL_076D: ldind.i4
IL_076E: ldelema UnityEngine.Color32
IL_0773: ldloc.s 15 (UnityEngine.Color)
IL_0775: call static UnityEngine.Color32
UnityEngine.Color32::op_Implicit(UnityEngine.Color c)
IL_077A: stobj UnityEngine.Color32
IL_077F: ldarg.s 5
IL_0781: ldarg.s 5
IL_0783: ldind.i4
IL_0784: ldc.i4.1
IL_0785: add
IL_0786: stind.i4
IL_0787: ldarg.s 8
IL_0789: ldfld UnityEngine.Vector3[] MeshData::m_vertices
IL_078E: ldarg.s 5
IL_0790: ldind.i4
IL_0791: ldelema UnityEngine.Vector3
IL_0796: ldloca.s 4 (UnityEngine.Vector3)
IL_0798: ldfld System.Single UnityEngine.Vector3::x
IL_079D: ldloc.s 17 (System.Single)
IL_079F: sub
IL_07A0: ldloca.s 4 (UnityEngine.Vector3)
IL_07A2: ldfld System.Single UnityEngine.Vector3::y
IL_07A7: ldloca.s 4 (UnityEngine.Vector3)
IL_07A9: ldfld System.Single UnityEngine.Vector3::z
IL_07AE: ldarg.0
IL_07AF: ldfld System.Single LightEffect::m_lightRange
IL_07B4: add
IL_07B5: newobj System.Void UnityEngine.Vector3::.ctor(System.Single x,
System.Single y, System.Single z)
IL_07BA: stobj UnityEngine.Vector3
IL_07BF: ldarg.s 8
IL_07C1: ldfld UnityEngine.Vector3[] MeshData::m_normals
IL_07C6: ldarg.s 5
IL_07C8: ldind.i4
IL_07C9: ldelema UnityEngine.Vector3
IL_07CE: ldarg.3
IL_07CF: stobj UnityEngine.Vector3
IL_07D4: ldarg.s 8
IL_07D6: ldfld UnityEngine.Vector4[] MeshData::m_tangents
IL_07DB: ldarg.s 5
IL_07DD: ldind.i4
IL_07DE: ldelema UnityEngine.Vector4
IL_07E3: ldloc.s 7 (UnityEngine.Vector4)
IL_07E5: stobj UnityEngine.Vector4
IL_07EA: ldarg.s 8
IL_07EC: ldfld UnityEngine.Vector2[] MeshData::m_uvs
IL_07F1: ldarg.s 5
IL_07F3: ldind.i4
IL_07F4: ldelema UnityEngine.Vector2
IL_07F9: ldloc.s 8 (UnityEngine.Vector2)
IL_07FB: stobj UnityEngine.Vector2
IL_0800: ldarg.s 8
IL_0802: ldfld UnityEngine.Vector2[] MeshData::m_uvs2
IL_0807: ldarg.s 5
IL_0809: ldind.i4
IL_080A: ldelema UnityEngine.Vector2
IL_080F: ldloc.s 10 (UnityEngine.Vector2)
IL_0811: stobj UnityEngine.Vector2
IL_0816: ldarg.s 8
IL_0818: ldfld UnityEngine.Vector2[] MeshData::m_uvs3
IL_081D: ldarg.s 5
IL_081F: ldind.i4
IL_0820: ldelema UnityEngine.Vector2
IL_0825: ldloc.s 11 (UnityEngine.Vector2)
IL_0827: stobj UnityEngine.Vector2
IL_082C: ldloc.0
IL_082D: brfalse => Label20
IL_0832: ldarg.s 8
IL_0834: ldfld UnityEngine.Vector2[] MeshData::m_uvs4
IL_0839: ldarg.s 5
IL_083B: ldind.i4
IL_083C: ldelema UnityEngine.Vector2
IL_0841: ldloc.s 12 (UnityEngine.Vector2)
IL_0843: stobj UnityEngine.Vector2
IL_0848: Label20
IL_0848: ldarg.s 8
IL_084A: ldfld UnityEngine.Color32[] MeshData::m_colors
IL_084F: ldarg.s 5
IL_0851: ldind.i4
IL_0852: ldelema UnityEngine.Color32
IL_0857: ldloc.s 15 (UnityEngine.Color)
IL_0859: call static UnityEngine.Color32
UnityEngine.Color32::op_Implicit(UnityEngine.Color c)
IL_085E: stobj UnityEngine.Color32
IL_0863: ldarg.s 5
IL_0865: ldarg.s 5
IL_0867: ldind.i4
IL_0868: ldc.i4.1
IL_0869: add
IL_086A: stind.i4
IL_086B: ldarg.s 8
IL_086D: ldfld System.Int32[] MeshData::m_triangles
IL_0872: ldarg.s 6
IL_0874: ldarg.s 6
IL_0876: ldind.i4
IL_0877: dup
IL_0878: stloc.s 19 (System.Int32)
IL_087A: ldc.i4.1
IL_087B: add
IL_087C: stind.i4
IL_087D: ldloc.s 19 (System.Int32)
IL_087F: ldarg.s 5
IL_0881: ldind.i4
IL_0882: ldc.i4.6
IL_0883: sub
IL_0884: stelem.i4
IL_0885: ldarg.s 8
IL_0887: ldfld System.Int32[] MeshData::m_triangles
IL_088C: ldarg.s 6
IL_088E: ldarg.s 6
IL_0890: ldind.i4
IL_0891: dup
IL_0892: stloc.s 19 (System.Int32)
IL_0894: ldc.i4.1
IL_0895: add
IL_0896: stind.i4
IL_0897: ldloc.s 19 (System.Int32)
IL_0899: ldarg.s 5
IL_089B: ldind.i4
IL_089C: ldc.i4.5
IL_089D: sub
IL_089E: stelem.i4
IL_089F: ldarg.s 8
IL_08A1: ldfld System.Int32[] MeshData::m_triangles
IL_08A6: ldarg.s 6
IL_08A8: ldarg.s 6
IL_08AA: ldind.i4
IL_08AB: dup
IL_08AC: stloc.s 19 (System.Int32)
IL_08AE: ldc.i4.1
IL_08AF: add
IL_08B0: stind.i4
IL_08B1: ldloc.s 19 (System.Int32)
IL_08B3: ldarg.s 5
IL_08B5: ldind.i4
IL_08B6: ldc.i4.1
IL_08B7: sub
IL_08B8: stelem.i4
IL_08B9: ldarg.s 8
IL_08BB: ldfld System.Int32[] MeshData::m_triangles
IL_08C0: ldarg.s 6
IL_08C2: ldarg.s 6
IL_08C4: ldind.i4
IL_08C5: dup
IL_08C6: stloc.s 19 (System.Int32)
IL_08C8: ldc.i4.1
IL_08C9: add
IL_08CA: stind.i4
IL_08CB: ldloc.s 19 (System.Int32)
IL_08CD: ldarg.s 5
IL_08CF: ldind.i4
IL_08D0: ldc.i4.1
IL_08D1: sub
IL_08D2: stelem.i4
IL_08D3: ldarg.s 8
IL_08D5: ldfld System.Int32[] MeshData::m_triangles
IL_08DA: ldarg.s 6
IL_08DC: ldarg.s 6
IL_08DE: ldind.i4
IL_08DF: dup
IL_08E0: stloc.s 19 (System.Int32)
IL_08E2: ldc.i4.1
IL_08E3: add
IL_08E4: stind.i4
IL_08E5: ldloc.s 19 (System.Int32)
IL_08E7: ldarg.s 5
IL_08E9: ldind.i4
IL_08EA: ldc.i4.5
IL_08EB: sub
IL_08EC: stelem.i4
IL_08ED: ldarg.s 8
IL_08EF: ldfld System.Int32[] MeshData::m_triangles
IL_08F4: ldarg.s 6
IL_08F6: ldarg.s 6
IL_08F8: ldind.i4
IL_08F9: dup
IL_08FA: stloc.s 19 (System.Int32)
IL_08FC: ldc.i4.1
IL_08FD: add
IL_08FE: stind.i4
IL_08FF: ldloc.s 19 (System.Int32)
IL_0901: ldarg.s 5
IL_0903: ldind.i4
IL_0904: ldc.i4.4
IL_0905: sub
IL_0906: stelem.i4
IL_0907: ldarg.s 8
IL_0909: ldfld System.Int32[] MeshData::m_triangles
IL_090E: ldarg.s 6
IL_0910: ldarg.s 6
IL_0912: ldind.i4
IL_0913: dup
IL_0914: stloc.s 19 (System.Int32)
IL_0916: ldc.i4.1
IL_0917: add
IL_0918: stind.i4
IL_0919: ldloc.s 19 (System.Int32)
IL_091B: ldarg.s 5
IL_091D: ldind.i4
IL_091E: ldc.i4.1
IL_091F: sub
IL_0920: stelem.i4
IL_0921: ldarg.s 8
IL_0923: ldfld System.Int32[] MeshData::m_triangles
IL_0928: ldarg.s 6
IL_092A: ldarg.s 6
IL_092C: ldind.i4
IL_092D: dup
IL_092E: stloc.s 19 (System.Int32)
IL_0930: ldc.i4.1
IL_0931: add
IL_0932: stind.i4
IL_0933: ldloc.s 19 (System.Int32)
IL_0935: ldarg.s 5
IL_0937: ldind.i4
IL_0938: ldc.i4.4
IL_0939: sub
IL_093A: stelem.i4
IL_093B: ldarg.s 8
IL_093D: ldfld System.Int32[] MeshData::m_triangles
IL_0942: ldarg.s 6
IL_0944: ldarg.s 6
IL_0946: ldind.i4
IL_0947: dup
IL_0948: stloc.s 19 (System.Int32)
IL_094A: ldc.i4.1
IL_094B: add
IL_094C: stind.i4
IL_094D: ldloc.s 19 (System.Int32)
IL_094F: ldarg.s 5
IL_0951: ldind.i4
IL_0952: ldc.i4.2
IL_0953: sub
IL_0954: stelem.i4
IL_0955: ldarg.s 8
IL_0957: ldfld System.Int32[] MeshData::m_triangles
IL_095C: ldarg.s 6
IL_095E: ldarg.s 6
IL_0960: ldind.i4
IL_0961: dup
IL_0962: stloc.s 19 (System.Int32)
IL_0964: ldc.i4.1
IL_0965: add
IL_0966: stind.i4
IL_0967: ldloc.s 19 (System.Int32)
IL_0969: ldarg.s 5
IL_096B: ldind.i4
IL_096C: ldc.i4.2
IL_096D: sub
IL_096E: stelem.i4
IL_096F: ldarg.s 8
IL_0971: ldfld System.Int32[] MeshData::m_triangles
IL_0976: ldarg.s 6
IL_0978: ldarg.s 6
IL_097A: ldind.i4
IL_097B: dup
IL_097C: stloc.s 19 (System.Int32)
IL_097E: ldc.i4.1
IL_097F: add
IL_0980: stind.i4
IL_0981: ldloc.s 19 (System.Int32)
IL_0983: ldarg.s 5
IL_0985: ldind.i4
IL_0986: ldc.i4.4
IL_0987: sub
IL_0988: stelem.i4
IL_0989: ldarg.s 8
IL_098B: ldfld System.Int32[] MeshData::m_triangles
IL_0990: ldarg.s 6
IL_0992: ldarg.s 6
IL_0994: ldind.i4
IL_0995: dup
IL_0996: stloc.s 19 (System.Int32)
IL_0998: ldc.i4.1
IL_0999: add
IL_099A: stind.i4
IL_099B: ldloc.s 19 (System.Int32)
IL_099D: ldarg.s 5
IL_099F: ldind.i4
IL_09A0: ldc.i4.3
IL_09A1: sub
IL_09A2: stelem.i4
IL_09A3: // end original
IL_09A3: Label3
IL_09A3: Label0
IL_09A3: ret
DONE
### Patch: virtual System.Void ElectricityManager::SimulationStepImpl(System.Int32
subStep)
### Replacement: static System.Void
ElectricityManager::ElectricityManager.SimulationStepImpl_Patch0(ElectricityManager
this, System.Int32 subStep)
IL_0000: Local var 0: System.UInt32
IL_0000: Local var 1: System.Int32
IL_0000: Local var 2: NetManager
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: NetInfo
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: ElectricityManager/Cell
IL_0000: Local var 13: ElectricityManager/PulseGroup
IL_0000: Local var 14: ElectricityManager/PulseUnit
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: ElectricityManager/PulseUnit
IL_0000: Local var 19: System.UInt32
IL_0000: Local var 20: System.Int32
IL_0000: Local var 21: ElectricityManager/Cell
IL_0000: Local var 22: System.Int32
IL_0000: Local var 23: System.Int32
IL_0000: Local var 24: NetNode
IL_0000: Local var 25: System.Int32
IL_0000: Local var 26: System.UInt16
IL_0000: Local var 27: System.UInt16
IL_0000: Local var 28: System.UInt16
IL_0000: Local var 29: System.UInt16
IL_0000: Local var 30: System.Int32
IL_0000: Local var 31: ElectricityManager/PulseGroup
IL_0000: Local var 32: ElectricityManager/PulseGroup
IL_0000: Local var 33: System.Int32
IL_0000: Local var 34: ElectricityManager/PulseGroup
IL_0000: Local var 35: System.Int32
IL_0000: Local var 36: ElectricityManager/Cell
IL_0000: // start original
IL_0000: ldarg.1
IL_0001: brfalse => Label0
IL_0006: ldarg.1
IL_0007: ldc.i4 1000
IL_000C: beq => Label1
IL_0011: call static SimulationManager
ColossalFramework.Singleton`1<SimulationManager>::get_instance()
IL_0016: ldfld System.UInt32 SimulationManager::m_currentFrameIndex
IL_001B: stloc.0
IL_001C: ldloc.0
IL_001D: ldc.i4 255
IL_0022: and
IL_0023: stloc.1
IL_0024: ldloc.1
IL_0025: ldc.i4 128
IL_002A: bge => Label2
IL_002F: ldloc.1
IL_0030: brtrue => Label3
IL_0035: ldarg.0
IL_0036: ldc.i4.0
IL_0037: stfld System.Int32 ElectricityManager::m_pulseGroupCount
IL_003C: ldarg.0
IL_003D: ldc.i4.0
IL_003E: stfld System.Int32 ElectricityManager::m_pulseUnitStart
IL_0043: ldarg.0
IL_0044: ldc.i4.0
IL_0045: stfld System.Int32 ElectricityManager::m_pulseUnitEnd
IL_004A: ldarg.0
IL_004B: ldc.i4.0
IL_004C: stfld System.Int32 ElectricityManager::m_processedCells
IL_0051: ldarg.0
IL_0052: ldc.i4.0
IL_0053: stfld System.Int32 ElectricityManager::m_conductiveCells
IL_0058: ldarg.0
IL_0059: ldc.i4.1
IL_005A: stfld System.Boolean ElectricityManager::m_canContinue
IL_005F: Label3
IL_005F: call static NetManager
ColossalFramework.Singleton`1<NetManager>::get_instance()
IL_0064: stloc.2
IL_0065: ldloc.1
IL_0066: ldc.i4 32768
IL_006B: mul
IL_006C: ldc.i4.7
IL_006D: shr
IL_006E: stloc.3
IL_006F: ldloc.1
IL_0070: ldc.i4.1
IL_0071: add
IL_0072: ldc.i4 32768
IL_0077: mul
IL_0078: ldc.i4.7
IL_0079: shr
IL_007A: ldc.i4.1
IL_007B: sub
IL_007C: stloc.s 4 (System.Int32)
IL_007E: ldloc.3
IL_007F: stloc.s 5 (System.Int32)
IL_0081: br => Label4
IL_0086: Label10
IL_0086: ldloc.2
IL_0087: ldfld Array16`1<NetNode> NetManager::m_nodes
IL_008C: ldfld NetNode[] Array16`1<NetNode>::m_buffer
IL_0091: ldloc.s 5 (System.Int32)
IL_0093: ldelema NetNode
IL_0098: ldfld Flags NetNode::m_flags
IL_009D: brfalse => Label5
IL_00A2: ldloc.2
IL_00A3: ldfld Array16`1<NetNode> NetManager::m_nodes
IL_00A8: ldfld NetNode[] Array16`1<NetNode>::m_buffer
IL_00AD: ldloc.s 5 (System.Int32)
IL_00AF: ldelema NetNode
IL_00B4: call static System.Boolean
ElectricRoads.Overrides.ElectricRoadsOverrides::CheckElectricConductibility(NetNode
& node)
IL_00B9: brfalse => Label7
IL_00BE: Label6
IL_00BE: ldarg.0
IL_00BF: ldloc.s 5 (System.Int32)
IL_00C1: ldarg.0
IL_00C2: ldfld System.UInt16[] ElectricityManager::m_nodeGroups
IL_00C7: ldloc.s 5 (System.Int32)
IL_00C9: ldelem.u2
IL_00CA: ldc.i4 65535
IL_00CF: beq => Label8
IL_00D4: ldc.i4.1
IL_00D5: br => Label9
IL_00DA: Label8
IL_00DA: ldc.i4.0
IL_00DB: Label9
IL_00DB: call System.Void
ElectricityManager::UpdateNodeElectricity(System.Int32 nodeID, System.Int32 value)
IL_00E0: ldarg.0
IL_00E1: dup
IL_00E2: ldfld System.Int32 ElectricityManager::m_conductiveCells
IL_00E7: ldc.i4.1
IL_00E8: add
IL_00E9: stfld System.Int32 ElectricityManager::m_conductiveCells
IL_00EE: Label5
IL_00EE: Label7
IL_00EE: ldarg.0
IL_00EF: ldfld System.UInt16[] ElectricityManager::m_nodeGroups
IL_00F4: ldloc.s 5 (System.Int32)
IL_00F6: ldc.i4 65535
IL_00FB: stelem.i2
IL_00FC: ldloc.s 5 (System.Int32)
IL_00FE: ldc.i4.1
IL_00FF: add
IL_0100: stloc.s 5 (System.Int32)
IL_0102: Label4
IL_0102: ldloc.s 5 (System.Int32)
IL_0104: ldloc.s 4 (System.Int32)
IL_0106: ble => Label10
IL_010B: ldloc.1
IL_010C: ldc.i4 256
IL_0111: mul
IL_0112: ldc.i4.7
IL_0113: shr
IL_0114: stloc.s 7 (System.Int32)
IL_0116: ldloc.1
IL_0117: ldc.i4.1
IL_0118: add
IL_0119: ldc.i4 256
IL_011E: mul
IL_011F: ldc.i4.7
IL_0120: shr
IL_0121: ldc.i4.1
IL_0122: sub
IL_0123: stloc.s 8 (System.Int32)
IL_0125: ldloc.s 7 (System.Int32)
IL_0127: stloc.s 9 (System.Int32)
IL_0129: br => Label11
IL_012E: Label21
IL_012E: ldloc.s 9 (System.Int32)
IL_0130: ldc.i4 256
IL_0135: mul
IL_0136: stloc.s 10 (System.Int32)
IL_0138: ldc.i4.0
IL_0139: stloc.s 11 (System.Int32)
IL_013B: br => Label12
IL_0140: Label20
IL_0140: ldarg.0
IL_0141: ldfld Cell[] ElectricityManager::m_electricityGrid
IL_0146: ldloc.s 10 (System.Int32)
IL_0148: ldelema ElectricityManager+Cell
IL_014D: ldobj ElectricityManager+Cell
IL_0152: stloc.s 12 (ElectricityManager+Cell)
IL_0154: ldloca.s 12 (ElectricityManager+Cell)
IL_0156: ldfld System.Int16 Cell::m_currentCharge
IL_015B: ldc.i4.0
IL_015C: ble => Label13
IL_0161: ldarg.0
IL_0162: ldfld System.Int32 ElectricityManager::m_pulseGroupCount
IL_0167: ldc.i4 1024
IL_016C: bge => Label14
IL_0171: ldloca.s 13 (ElectricityManager+PulseGroup)
IL_0173: ldloca.s 12 (ElectricityManager+Cell)
IL_0175: ldfld System.Int16 Cell::m_currentCharge
IL_017A: conv.u4
IL_017B: stfld System.UInt32 PulseGroup::m_origCharge
IL_0180: ldloca.s 13 (ElectricityManager+PulseGroup)
IL_0182: ldloca.s 12 (ElectricityManager+Cell)
IL_0184: ldfld System.Int16 Cell::m_currentCharge
IL_0189: conv.u4
IL_018A: stfld System.UInt32 PulseGroup::m_curCharge
IL_018F: ldloca.s 13 (ElectricityManager+PulseGroup)
IL_0191: ldc.i4.0
IL_0192: stfld System.UInt16 PulseGroup::m_mergeCount
IL_0197: ldloca.s 13 (ElectricityManager+PulseGroup)
IL_0199: ldc.i4 65535
IL_019E: stfld System.UInt16 PulseGroup::m_mergeIndex
IL_01A3: ldloca.s 13 (ElectricityManager+PulseGroup)
IL_01A5: ldloc.s 11 (System.Int32)
IL_01A7: conv.u1
IL_01A8: stfld System.Byte PulseGroup::m_x
IL_01AD: ldloca.s 13 (ElectricityManager+PulseGroup)
IL_01AF: ldloc.s 9 (System.Int32)
IL_01B1: conv.u1
IL_01B2: stfld System.Byte PulseGroup::m_z
IL_01B7: ldloca.s 14 (ElectricityManager+PulseUnit)
IL_01B9: ldarg.0
IL_01BA: ldfld System.Int32 ElectricityManager::m_pulseGroupCount
IL_01BF: conv.u2
IL_01C0: stfld System.UInt16 PulseUnit::m_group
IL_01C5: ldloca.s 14 (ElectricityManager+PulseUnit)
IL_01C7: ldc.i4.0
IL_01C8: stfld System.UInt16 PulseUnit::m_node
IL_01CD: ldloca.s 14 (ElectricityManager+PulseUnit)
IL_01CF: ldloc.s 11 (System.Int32)
IL_01D1: conv.u1
IL_01D2: stfld System.Byte PulseUnit::m_x
IL_01D7: ldloca.s 14 (ElectricityManager+PulseUnit)
IL_01D9: ldloc.s 9 (System.Int32)
IL_01DB: conv.u1
IL_01DC: stfld System.Byte PulseUnit::m_z
IL_01E1: ldloca.s 12 (ElectricityManager+Cell)
IL_01E3: ldarg.0
IL_01E4: ldfld System.Int32 ElectricityManager::m_pulseGroupCount
IL_01E9: conv.u2
IL_01EA: stfld System.UInt16 Cell::m_pulseGroup
IL_01EF: ldarg.0
IL_01F0: ldfld PulseGroup[] ElectricityManager::m_pulseGroups
IL_01F5: ldarg.0
IL_01F6: dup
IL_01F7: ldfld System.Int32 ElectricityManager::m_pulseGroupCount
IL_01FC: dup
IL_01FD: stloc.s 15 (System.Int32)
IL_01FF: ldc.i4.1
IL_0200: add
IL_0201: stfld System.Int32 ElectricityManager::m_pulseGroupCount
IL_0206: ldloc.s 15 (System.Int32)
IL_0208: ldelema ElectricityManager+PulseGroup
IL_020D: ldloc.s 13 (ElectricityManager+PulseGroup)
IL_020F: stobj ElectricityManager+PulseGroup
IL_0214: ldarg.0
IL_0215: ldfld PulseUnit[] ElectricityManager::m_pulseUnits
IL_021A: ldarg.0
IL_021B: ldfld System.Int32 ElectricityManager::m_pulseUnitEnd
IL_0220: ldelema ElectricityManager+PulseUnit
IL_0225: ldloc.s 14 (ElectricityManager+PulseUnit)
IL_0227: stobj ElectricityManager+PulseUnit
IL_022C: ldarg.0
IL_022D: dup
IL_022E: ldfld System.Int32 ElectricityManager::m_pulseUnitEnd
IL_0233: ldc.i4.1
IL_0234: add
IL_0235: dup
IL_0236: stloc.s 15 (System.Int32)
IL_0238: stfld System.Int32 ElectricityManager::m_pulseUnitEnd
IL_023D: ldloc.s 15 (System.Int32)
IL_023F: ldarg.0
IL_0240: ldfld PulseUnit[] ElectricityManager::m_pulseUnits
IL_0245: ldlen
IL_0246: conv.i4
IL_0247: bne.un => Label15
IL_024C: ldarg.0
IL_024D: ldc.i4.0
IL_024E: stfld System.Int32 ElectricityManager::m_pulseUnitEnd
IL_0253: Label15
IL_0253: br => Label16
IL_0258: Label14
IL_0258: ldloca.s 12 (ElectricityManager+Cell)
IL_025A: ldc.i4 65535
IL_025F: stfld System.UInt16 Cell::m_pulseGroup
IL_0264: Label16
IL_0264: ldloca.s 12 (ElectricityManager+Cell)
IL_0266: ldc.i4.0
IL_0267: stfld System.Int16 Cell::m_currentCharge
IL_026C: ldarg.0
IL_026D: dup
IL_026E: ldfld System.Int32 ElectricityManager::m_conductiveCells
IL_0273: ldc.i4.1
IL_0274: add
IL_0275: stfld System.Int32 ElectricityManager::m_conductiveCells
IL_027A: br => Label17
IL_027F: Label13
IL_027F: ldloca.s 12 (ElectricityManager+Cell)
IL_0281: ldc.i4 65535
IL_0286: stfld System.UInt16 Cell::m_pulseGroup
IL_028B: ldloca.s 12 (ElectricityManager+Cell)
IL_028D: ldfld System.Byte Cell::m_conductivity
IL_0292: ldc.i4.s 64
IL_0294: blt => Label18
IL_0299: ldarg.0
IL_029A: dup
IL_029B: ldfld System.Int32 ElectricityManager::m_conductiveCells
IL_02A0: ldc.i4.1
IL_02A1: add
IL_02A2: stfld System.Int32 ElectricityManager::m_conductiveCells
IL_02A7: Label17
IL_02A7: Label18
IL_02A7: ldloca.s 12 (ElectricityManager+Cell)
IL_02A9: ldfld System.Boolean Cell::m_tmpElectrified
IL_02AE: ldloca.s 12 (ElectricityManager+Cell)
IL_02B0: ldfld System.Boolean Cell::m_electrified
IL_02B5: beq => Label19
IL_02BA: ldloca.s 12 (ElectricityManager+Cell)
IL_02BC: ldloca.s 12 (ElectricityManager+Cell)
IL_02BE: ldfld System.Boolean Cell::m_tmpElectrified
IL_02C3: stfld System.Boolean Cell::m_electrified
IL_02C8: Label19
IL_02C8: ldloca.s 12 (ElectricityManager+Cell)
IL_02CA: ldloca.s 12 (ElectricityManager+Cell)
IL_02CC: ldfld System.UInt16 Cell::m_pulseGroup
IL_02D1: ldc.i4 65535
IL_02D6: ceq
IL_02D8: ldc.i4.0
IL_02D9: ceq
IL_02DB: stfld System.Boolean Cell::m_tmpElectrified
IL_02E0: ldarg.0
IL_02E1: ldfld Cell[] ElectricityManager::m_electricityGrid
IL_02E6: ldloc.s 10 (System.Int32)
IL_02E8: ldelema ElectricityManager+Cell
IL_02ED: ldloc.s 12 (ElectricityManager+Cell)
IL_02EF: stobj ElectricityManager+Cell
IL_02F4: ldloc.s 10 (System.Int32)
IL_02F6: ldc.i4.1
IL_02F7: add
IL_02F8: stloc.s 10 (System.Int32)
IL_02FA: ldloc.s 11 (System.Int32)
IL_02FC: ldc.i4.1
IL_02FD: add
IL_02FE: stloc.s 11 (System.Int32)
IL_0300: Label12
IL_0300: ldloc.s 11 (System.Int32)
IL_0302: ldc.i4 256
IL_0307: blt => Label20
IL_030C: ldloc.s 9 (System.Int32)
IL_030E: ldc.i4.1
IL_030F: add
IL_0310: stloc.s 9 (System.Int32)
IL_0312: Label11
IL_0312: ldloc.s 9 (System.Int32)
IL_0314: ldloc.s 8 (System.Int32)
IL_0316: ble => Label21
IL_031B: br => Label22
IL_0320: Label2
IL_0320: ldloc.1
IL_0321: ldc.i4.s 127
IL_0323: sub
IL_0324: ldarg.0
IL_0325: ldfld System.Int32 ElectricityManager::m_conductiveCells
IL_032A: mul
IL_032B: ldc.i4.7
IL_032C: shr
IL_032D: stloc.s 16 (System.Int32)
IL_032F: ldloc.1
IL_0330: ldc.i4 255
IL_0335: bne.un => Label23
IL_033A: ldc.i4 1000000000
IL_033F: stloc.s 16 (System.Int32)
IL_0341: Label23
IL_0341: br => Label24
IL_0346: Label54
IL_0346: ldarg.0
IL_0347: ldc.i4.0
IL_0348: stfld System.Boolean ElectricityManager::m_canContinue
IL_034D: ldarg.0
IL_034E: ldfld System.Int32 ElectricityManager::m_pulseUnitEnd
IL_0353: stloc.s 17 (System.Int32)
IL_0355: br => Label25
IL_035A: Label52
IL_035A: ldarg.0
IL_035B: ldfld PulseUnit[] ElectricityManager::m_pulseUnits
IL_0360: ldarg.0
IL_0361: ldfld System.Int32 ElectricityManager::m_pulseUnitStart
IL_0366: ldelema ElectricityManager+PulseUnit
IL_036B: ldobj ElectricityManager+PulseUnit
IL_0370: stloc.s 18 (ElectricityManager+PulseUnit)
IL_0372: ldarg.0
IL_0373: dup
IL_0374: ldfld System.Int32 ElectricityManager::m_pulseUnitStart
IL_0379: ldc.i4.1
IL_037A: add
IL_037B: dup
IL_037C: stloc.s 15 (System.Int32)
IL_037E: stfld System.Int32 ElectricityManager::m_pulseUnitStart
IL_0383: ldloc.s 15 (System.Int32)
IL_0385: ldarg.0
IL_0386: ldfld PulseUnit[] ElectricityManager::m_pulseUnits
IL_038B: ldlen
IL_038C: conv.i4
IL_038D: bne.un => Label26
IL_0392: ldarg.0
IL_0393: ldc.i4.0
IL_0394: stfld System.Int32 ElectricityManager::m_pulseUnitStart
IL_0399: Label26
IL_0399: ldloca.s 18 (ElectricityManager+PulseUnit)
IL_039B: ldarg.0
IL_039C: ldloca.s 18 (ElectricityManager+PulseUnit)
IL_039E: ldfld System.UInt16 PulseUnit::m_group
IL_03A3: call System.UInt16 ElectricityManager::GetRootGroup(System.UInt16
group)
IL_03A8: stfld System.UInt16 PulseUnit::m_group
IL_03AD: ldarg.0
IL_03AE: ldfld PulseGroup[] ElectricityManager::m_pulseGroups
IL_03B3: ldloca.s 18 (ElectricityManager+PulseUnit)
IL_03B5: ldfld System.UInt16 PulseUnit::m_group
IL_03BA: ldelema ElectricityManager+PulseGroup
IL_03BF: ldfld System.UInt32 PulseGroup::m_curCharge
IL_03C4: stloc.s 19 (System.UInt32)
IL_03C6: ldloca.s 18 (ElectricityManager+PulseUnit)
IL_03C8: ldfld System.UInt16 PulseUnit::m_node
IL_03CD: brtrue => Label27
IL_03D2: ldloca.s 18 (ElectricityManager+PulseUnit)
IL_03D4: ldfld System.Byte PulseUnit::m_z
IL_03D9: ldc.i4 256
IL_03DE: mul
IL_03DF: ldloca.s 18 (ElectricityManager+PulseUnit)
IL_03E1: ldfld System.Byte PulseUnit::m_x
IL_03E6: add
IL_03E7: stloc.s 20 (System.Int32)
IL_03E9: ldarg.0
IL_03EA: ldfld Cell[] ElectricityManager::m_electricityGrid
IL_03EF: ldloc.s 20 (System.Int32)
IL_03F1: ldelema ElectricityManager+Cell
IL_03F6: ldobj ElectricityManager+Cell
IL_03FB: stloc.s 21 (ElectricityManager+Cell)
IL_03FD: ldloca.s 21 (ElectricityManager+Cell)
IL_03FF: ldfld System.Byte Cell::m_conductivity
IL_0404: brfalse => Label28
IL_0409: ldloca.s 21 (ElectricityManager+Cell)
IL_040B: ldfld System.Boolean Cell::m_tmpElectrified
IL_0410: brtrue => Label29
IL_0415: ldloc.s 19 (System.UInt32)
IL_0417: brfalse => Label30
IL_041C: ldloca.s 21 (ElectricityManager+Cell)
IL_041E: ldfld System.Int16 Cell::m_currentCharge
IL_0423: neg
IL_0424: ldc.i4.0
IL_0425: ldloc.s 19 (System.UInt32)
IL_0427: call static System.Int32 UnityEngine.Mathf::Clamp(System.Int32
value, System.Int32 min, System.Int32 max)
IL_042C: stloc.s 22 (System.Int32)
IL_042E: ldloc.s 19 (System.UInt32)
IL_0430: ldloc.s 22 (System.Int32)
IL_0432: sub
IL_0433: stloc.s 19 (System.UInt32)
IL_0435: ldloca.s 21 (ElectricityManager+Cell)
IL_0437: dup
IL_0438: ldfld System.Int16 Cell::m_currentCharge
IL_043D: ldloc.s 22 (System.Int32)
IL_043F: conv.i2
IL_0440: add
IL_0441: conv.i2
IL_0442: stfld System.Int16 Cell::m_currentCharge
IL_0447: ldloca.s 21 (ElectricityManager+Cell)
IL_0449: ldfld System.Int16 Cell::m_currentCharge
IL_044E: brtrue => Label31
IL_0453: ldloca.s 21 (ElectricityManager+Cell)
IL_0455: ldc.i4.1
IL_0456: stfld System.Boolean Cell::m_tmpElectrified
IL_045B: Label31
IL_045B: ldarg.0
IL_045C: ldfld Cell[] ElectricityManager::m_electricityGrid
IL_0461: ldloc.s 20 (System.Int32)
IL_0463: ldelema ElectricityManager+Cell
IL_0468: ldloc.s 21 (ElectricityManager+Cell)
IL_046A: stobj ElectricityManager+Cell
IL_046F: ldarg.0
IL_0470: ldfld PulseGroup[] ElectricityManager::m_pulseGroups
IL_0475: ldloca.s 18 (ElectricityManager+PulseUnit)
IL_0477: ldfld System.UInt16 PulseUnit::m_group
IL_047C: ldelema ElectricityManager+PulseGroup
IL_0481: ldloc.s 19 (System.UInt32)
IL_0483: stfld System.UInt32 PulseGroup::m_curCharge
IL_0488: Label28
IL_0488: Label29
IL_0488: Label30
IL_0488: ldloc.s 19 (System.UInt32)
IL_048A: brfalse => Label32
IL_048F: ldloca.s 21 (ElectricityManager+Cell)
IL_0491: ldfld System.Byte Cell::m_conductivity
IL_0496: ldc.i4.s 64
IL_0498: blt => Label33
IL_049D: ldc.i4.1
IL_049E: br => Label34
IL_04A3: Label33
IL_04A3: ldc.i4.s 64
IL_04A5: Label34
IL_04A5: stloc.s 23 (System.Int32)
IL_04A7: ldarg.0
IL_04A8: dup
IL_04A9: ldfld System.Int32 ElectricityManager::m_processedCells
IL_04AE: ldc.i4.1
IL_04AF: add
IL_04B0: stfld System.Int32 ElectricityManager::m_processedCells
IL_04B5: ldloca.s 18 (ElectricityManager+PulseUnit)
IL_04B7: ldfld System.Byte PulseUnit::m_z
IL_04BC: ldc.i4.0
IL_04BD: ble => Label35
IL_04C2: ldarg.0
IL_04C3: ldarg.0
IL_04C4: ldfld Cell[] ElectricityManager::m_electricityGrid
IL_04C9: ldloc.s 20 (System.Int32)
IL_04CB: ldc.i4 256
IL_04D0: sub
IL_04D1: ldelema ElectricityManager+Cell
IL_04D6: ldloca.s 18 (ElectricityManager+PulseUnit)
IL_04D8: ldfld System.UInt16 PulseUnit::m_group
IL_04DD: ldloca.s 18 (ElectricityManager+PulseUnit)
IL_04DF: ldfld System.Byte PulseUnit::m_x
IL_04E4: ldloca.s 18 (ElectricityManager+PulseUnit)
IL_04E6: ldfld System.Byte PulseUnit::m_z
IL_04EB: ldc.i4.1
IL_04EC: sub
IL_04ED: ldloc.s 23 (System.Int32)
IL_04EF: call System.Void ElectricityManager::ConductToCell(Cell& cell,
System.UInt16 group, System.Int32 x, System.Int32 z, System.Int32 limit)
IL_04F4: Label35
IL_04F4: ldloca.s 18 (ElectricityManager+PulseUnit)
IL_04F6: ldfld System.Byte PulseUnit::m_x
IL_04FB: ldc.i4.0
IL_04FC: ble => Label36
IL_0501: ldarg.0
IL_0502: ldarg.0
IL_0503: ldfld Cell[] ElectricityManager::m_electricityGrid
IL_0508: ldloc.s 20 (System.Int32)
IL_050A: ldc.i4.1
IL_050B: sub
IL_050C: ldelema ElectricityManager+Cell
IL_0511: ldloca.s 18 (ElectricityManager+PulseUnit)
IL_0513: ldfld System.UInt16 PulseUnit::m_group
IL_0518: ldloca.s 18 (ElectricityManager+PulseUnit)
IL_051A: ldfld System.Byte PulseUnit::m_x
IL_051F: ldc.i4.1
IL_0520: sub
IL_0521: ldloca.s 18 (ElectricityManager+PulseUnit)
IL_0523: ldfld System.Byte PulseUnit::m_z
IL_0528: ldloc.s 23 (System.Int32)
IL_052A: call System.Void ElectricityManager::ConductToCell(Cell& cell,
System.UInt16 group, System.Int32 x, System.Int32 z, System.Int32 limit)
IL_052F: Label36
IL_052F: ldloca.s 18 (ElectricityManager+PulseUnit)
IL_0531: ldfld System.Byte PulseUnit::m_z
IL_0536: ldc.i4 255
IL_053B: bge => Label37
IL_0540: ldarg.0
IL_0541: ldarg.0
IL_0542: ldfld Cell[] ElectricityManager::m_electricityGrid
IL_0547: ldloc.s 20 (System.Int32)
IL_0549: ldc.i4 256
IL_054E: add
IL_054F: ldelema ElectricityManager+Cell
IL_0554: ldloca.s 18 (ElectricityManager+PulseUnit)
IL_0556: ldfld System.UInt16 PulseUnit::m_group
IL_055B: ldloca.s 18 (ElectricityManager+PulseUnit)
IL_055D: ldfld System.Byte PulseUnit::m_x
IL_0562: ldloca.s 18 (ElectricityManager+PulseUnit)
IL_0564: ldfld System.Byte PulseUnit::m_z
IL_0569: ldc.i4.1
IL_056A: add
IL_056B: ldloc.s 23 (System.Int32)
IL_056D: call System.Void ElectricityManager::ConductToCell(Cell& cell,
System.UInt16 group, System.Int32 x, System.Int32 z, System.Int32 limit)
IL_0572: Label37
IL_0572: ldloca.s 18 (ElectricityManager+PulseUnit)
IL_0574: ldfld System.Byte PulseUnit::m_x
IL_0579: ldc.i4 255
IL_057E: bge => Label38
IL_0583: ldarg.0
IL_0584: ldarg.0
IL_0585: ldfld Cell[] ElectricityManager::m_electricityGrid
IL_058A: ldloc.s 20 (System.Int32)
IL_058C: ldc.i4.1
IL_058D: add
IL_058E: ldelema ElectricityManager+Cell
IL_0593: ldloca.s 18 (ElectricityManager+PulseUnit)
IL_0595: ldfld System.UInt16 PulseUnit::m_group
IL_059A: ldloca.s 18 (ElectricityManager+PulseUnit)
IL_059C: ldfld System.Byte PulseUnit::m_x
IL_05A1: ldc.i4.1
IL_05A2: add
IL_05A3: ldloca.s 18 (ElectricityManager+PulseUnit)
IL_05A5: ldfld System.Byte PulseUnit::m_z
IL_05AA: ldloc.s 23 (System.Int32)
IL_05AC: call System.Void ElectricityManager::ConductToCell(Cell& cell,
System.UInt16 group, System.Int32 x, System.Int32 z, System.Int32 limit)
IL_05B1: Label38
IL_05B1: ldarg.0
IL_05B2: ldloca.s 18 (ElectricityManager+PulseUnit)
IL_05B4: ldfld System.UInt16 PulseUnit::m_group
IL_05B9: ldloca.s 18 (ElectricityManager+PulseUnit)
IL_05BB: ldfld System.Byte PulseUnit::m_x
IL_05C0: ldloca.s 18 (ElectricityManager+PulseUnit)
IL_05C2: ldfld System.Byte PulseUnit::m_z
IL_05C7: call System.Void ElectricityManager::ConductToNodes(System.UInt16
group, System.Int32 cellX, System.Int32 cellZ)
IL_05CC: br => Label39
IL_05D1: Label32
IL_05D1: ldarg.0
IL_05D2: ldfld PulseUnit[] ElectricityManager::m_pulseUnits
IL_05D7: ldarg.0
IL_05D8: ldfld System.Int32 ElectricityManager::m_pulseUnitEnd
IL_05DD: ldelema ElectricityManager+PulseUnit
IL_05E2: ldloc.s 18 (ElectricityManager+PulseUnit)
IL_05E4: stobj ElectricityManager+PulseUnit
IL_05E9: ldarg.0
IL_05EA: dup
IL_05EB: ldfld System.Int32 ElectricityManager::m_pulseUnitEnd
IL_05F0: ldc.i4.1
IL_05F1: add
IL_05F2: dup
IL_05F3: stloc.s 15 (System.Int32)
IL_05F5: stfld System.Int32 ElectricityManager::m_pulseUnitEnd
IL_05FA: ldloc.s 15 (System.Int32)
IL_05FC: ldarg.0
IL_05FD: ldfld PulseUnit[] ElectricityManager::m_pulseUnits
IL_0602: ldlen
IL_0603: conv.i4
IL_0604: bne.un => Label40
IL_0609: ldarg.0
IL_060A: ldc.i4.0
IL_060B: stfld System.Int32 ElectricityManager::m_pulseUnitEnd
IL_0610: Label39
IL_0610: Label40
IL_0610: br => Label41
IL_0615: Label27
IL_0615: ldloc.s 19 (System.UInt32)
IL_0617: brfalse => Label42
IL_061C: ldarg.0
IL_061D: dup
IL_061E: ldfld System.Int32 ElectricityManager::m_processedCells
IL_0623: ldc.i4.1
IL_0624: add
IL_0625: stfld System.Int32 ElectricityManager::m_processedCells
IL_062A: call static NetManager
ColossalFramework.Singleton`1<NetManager>::get_instance()
IL_062F: ldfld Array16`1<NetNode> NetManager::m_nodes
IL_0634: ldfld NetNode[] Array16`1<NetNode>::m_buffer
IL_0639: ldloca.s 18 (ElectricityManager+PulseUnit)
IL_063B: ldfld System.UInt16 PulseUnit::m_node
IL_0640: ldelema NetNode
IL_0645: ldobj NetNode
IL_064A: stloc.s 24 (NetNode)
IL_064C: ldloca.s 24 (NetNode)
IL_064E: ldfld Flags NetNode::m_flags
IL_0653: brfalse => Label43
IL_0658: ldloca.s 24 (NetNode)
IL_065A: ldfld System.UInt32 NetNode::m_buildIndex
IL_065F: ldloc.0
IL_0660: ldc.i4.s -128
IL_0662: and
IL_0663: bge.un => Label44
IL_0668: ldarg.0
IL_0669: ldloca.s 18 (ElectricityManager+PulseUnit)
IL_066B: ldfld System.UInt16 PulseUnit::m_group
IL_0670: ldloca.s 24 (NetNode)
IL_0672: ldflda UnityEngine.Vector3 NetNode::m_position
IL_0677: ldfld System.Single UnityEngine.Vector3::x
IL_067C: ldloca.s 24 (NetNode)
IL_067E: ldflda UnityEngine.Vector3 NetNode::m_position
IL_0683: ldfld System.Single UnityEngine.Vector3::z
IL_0688: call System.Void ElectricityManager::ConductToCells(System.UInt16
group, System.Single worldX, System.Single worldZ)
IL_068D: ldc.i4.0
IL_068E: stloc.s 25 (System.Int32)
IL_0690: br => Label45
IL_0695: Label49
IL_0695: ldloca.s 24 (NetNode)
IL_0697: ldloc.s 25 (System.Int32)
IL_0699: call System.UInt16 NetNode::GetSegment(System.Int32 index)
IL_069E: stloc.s 26 (System.UInt16)
IL_06A0: ldloc.s 26 (System.UInt16)
IL_06A2: brfalse => Label46
IL_06A7: call static NetManager
ColossalFramework.Singleton`1<NetManager>::get_instance()
IL_06AC: ldfld Array16`1<NetSegment> NetManager::m_segments
IL_06B1: ldfld NetSegment[] Array16`1<NetSegment>::m_buffer
IL_06B6: ldloc.s 26 (System.UInt16)
IL_06B8: ldelema NetSegment
IL_06BD: ldfld System.UInt16 NetSegment::m_startNode
IL_06C2: stloc.s 27 (System.UInt16)
IL_06C4: call static NetManager
ColossalFramework.Singleton`1<NetManager>::get_instance()
IL_06C9: ldfld Array16`1<NetSegment> NetManager::m_segments
IL_06CE: ldfld NetSegment[] Array16`1<NetSegment>::m_buffer
IL_06D3: ldloc.s 26 (System.UInt16)
IL_06D5: ldelema NetSegment
IL_06DA: ldfld System.UInt16 NetSegment::m_endNode
IL_06DF: stloc.s 28 (System.UInt16)
IL_06E1: ldloc.s 27 (System.UInt16)
IL_06E3: ldloca.s 18 (ElectricityManager+PulseUnit)
IL_06E5: ldfld System.UInt16 PulseUnit::m_node
IL_06EA: bne.un => Label47
IL_06EF: ldloc.s 28 (System.UInt16)
IL_06F1: br => Label48
IL_06F6: Label47
IL_06F6: ldloc.s 27 (System.UInt16)
IL_06F8: Label48
IL_06F8: stloc.s 29 (System.UInt16)
IL_06FA: ldarg.0
IL_06FB: ldloc.s 29 (System.UInt16)
IL_06FD: call static NetManager
ColossalFramework.Singleton`1<NetManager>::get_instance()
IL_0702: ldfld Array16`1<NetNode> NetManager::m_nodes
IL_0707: ldfld NetNode[] Array16`1<NetNode>::m_buffer
IL_070C: ldloc.s 29 (System.UInt16)
IL_070E: ldelema NetNode
IL_0713: ldloca.s 18 (ElectricityManager+PulseUnit)
IL_0715: ldfld System.UInt16 PulseUnit::m_group
IL_071A: ldc.r4 -100000
IL_071F: ldc.r4 -100000
IL_0724: ldc.r4 100000
IL_0729: ldc.r4 100000
IL_072E: call System.Void ElectricityManager::ConductToNode(System.UInt16
nodeIndex, NetNode& node, System.UInt16 group, System.Single minX, System.Single
minZ, System.Single maxX, System.Single maxZ)
IL_0733: Label46
IL_0733: ldloc.s 25 (System.Int32)
IL_0735: ldc.i4.1
IL_0736: add
IL_0737: stloc.s 25 (System.Int32)
IL_0739: Label45
IL_0739: ldloc.s 25 (System.Int32)
IL_073B: ldc.i4.8
IL_073C: blt => Label49
IL_0741: Label43
IL_0741: Label44
IL_0741: br => Label50
IL_0746: Label42
IL_0746: ldarg.0
IL_0747: ldfld PulseUnit[] ElectricityManager::m_pulseUnits
IL_074C: ldarg.0
IL_074D: ldfld System.Int32 ElectricityManager::m_pulseUnitEnd
IL_0752: ldelema ElectricityManager+PulseUnit
IL_0757: ldloc.s 18 (ElectricityManager+PulseUnit)
IL_0759: stobj ElectricityManager+PulseUnit
IL_075E: ldarg.0
IL_075F: dup
IL_0760: ldfld System.Int32 ElectricityManager::m_pulseUnitEnd
IL_0765: ldc.i4.1
IL_0766: add
IL_0767: dup
IL_0768: stloc.s 15 (System.Int32)
IL_076A: stfld System.Int32 ElectricityManager::m_pulseUnitEnd
IL_076F: ldloc.s 15 (System.Int32)
IL_0771: ldarg.0
IL_0772: ldfld PulseUnit[] ElectricityManager::m_pulseUnits
IL_0777: ldlen
IL_0778: conv.i4
IL_0779: bne.un => Label51
IL_077E: ldarg.0
IL_077F: ldc.i4.0
IL_0780: stfld System.Int32 ElectricityManager::m_pulseUnitEnd
IL_0785: Label25
IL_0785: Label41
IL_0785: Label50
IL_0785: Label51
IL_0785: ldarg.0
IL_0786: ldfld System.Int32 ElectricityManager::m_pulseUnitStart
IL_078B: ldloc.s 17 (System.Int32)
IL_078D: bne.un => Label52
IL_0792: Label24
IL_0792: ldarg.0
IL_0793: ldfld System.Boolean ElectricityManager::m_canContinue
IL_0798: brfalse => Label53
IL_079D: ldarg.0
IL_079E: ldfld System.Int32 ElectricityManager::m_processedCells
IL_07A3: ldloc.s 16 (System.Int32)
IL_07A5: blt => Label54
IL_07AA: Label53
IL_07AA: ldloc.1
IL_07AB: ldc.i4 255
IL_07B0: bne.un => Label55
IL_07B5: ldc.i4.0
IL_07B6: stloc.s 30 (System.Int32)
IL_07B8: br => Label56
IL_07BD: Label58
IL_07BD: ldarg.0
IL_07BE: ldfld PulseGroup[] ElectricityManager::m_pulseGroups
IL_07C3: ldloc.s 30 (System.Int32)
IL_07C5: ldelema ElectricityManager+PulseGroup
IL_07CA: ldobj ElectricityManager+PulseGroup
IL_07CF: stloc.s 31 (ElectricityManager+PulseGroup)
IL_07D1: ldloca.s 31 (ElectricityManager+PulseGroup)
IL_07D3: ldfld System.UInt16 PulseGroup::m_mergeIndex
IL_07D8: ldc.i4 65535
IL_07DD: beq => Label57
IL_07E2: ldarg.0
IL_07E3: ldfld PulseGroup[] ElectricityManager::m_pulseGroups
IL_07E8: ldloca.s 31 (ElectricityManager+PulseGroup)
IL_07EA: ldfld System.UInt16 PulseGroup::m_mergeIndex
IL_07EF: ldelema ElectricityManager+PulseGroup
IL_07F4: ldobj ElectricityManager+PulseGroup
IL_07F9: stloc.s 32 (ElectricityManager+PulseGroup)
IL_07FB: ldloca.s 31 (ElectricityManager+PulseGroup)
IL_07FD: ldloca.s 32 (ElectricityManager+PulseGroup)
IL_07FF: ldfld System.UInt32 PulseGroup::m_curCharge
IL_0804: conv.u8
IL_0805: ldloca.s 31 (ElectricityManager+PulseGroup)
IL_0807: ldfld System.UInt32 PulseGroup::m_origCharge
IL_080C: conv.u8
IL_080D: mul
IL_080E: ldloca.s 32 (ElectricityManager+PulseGroup)
IL_0810: ldfld System.UInt32 PulseGroup::m_origCharge
IL_0815: conv.u8
IL_0816: div.un
IL_0817: conv.u4
IL_0818: stfld System.UInt32 PulseGroup::m_curCharge
IL_081D: ldloca.s 32 (ElectricityManager+PulseGroup)
IL_081F: dup
IL_0820: ldfld System.UInt32 PulseGroup::m_curCharge
IL_0825: ldloca.s 31 (ElectricityManager+PulseGroup)
IL_0827: ldfld System.UInt32 PulseGroup::m_curCharge
IL_082C: sub
IL_082D: stfld System.UInt32 PulseGroup::m_curCharge
IL_0832: ldloca.s 32 (ElectricityManager+PulseGroup)
IL_0834: dup
IL_0835: ldfld System.UInt32 PulseGroup::m_origCharge
IL_083A: ldloca.s 31 (ElectricityManager+PulseGroup)
IL_083C: ldfld System.UInt32 PulseGroup::m_origCharge
IL_0841: sub
IL_0842: stfld System.UInt32 PulseGroup::m_origCharge
IL_0847: ldarg.0
IL_0848: ldfld PulseGroup[] ElectricityManager::m_pulseGroups
IL_084D: ldloca.s 31 (ElectricityManager+PulseGroup)
IL_084F: ldfld System.UInt16 PulseGroup::m_mergeIndex
IL_0854: ldelema ElectricityManager+PulseGroup
IL_0859: ldloc.s 32 (ElectricityManager+PulseGroup)
IL_085B: stobj ElectricityManager+PulseGroup
IL_0860: ldarg.0
IL_0861: ldfld PulseGroup[] ElectricityManager::m_pulseGroups
IL_0866: ldloc.s 30 (System.Int32)
IL_0868: ldelema ElectricityManager+PulseGroup
IL_086D: ldloc.s 31 (ElectricityManager+PulseGroup)
IL_086F: stobj ElectricityManager+PulseGroup
IL_0874: Label57
IL_0874: ldloc.s 30 (System.Int32)
IL_0876: ldc.i4.1
IL_0877: add
IL_0878: stloc.s 30 (System.Int32)
IL_087A: Label56
IL_087A: ldloc.s 30 (System.Int32)
IL_087C: ldarg.0
IL_087D: ldfld System.Int32 ElectricityManager::m_pulseGroupCount
IL_0882: blt => Label58
IL_0887: ldc.i4.0
IL_0888: stloc.s 33 (System.Int32)
IL_088A: br => Label59
IL_088F: Label62
IL_088F: ldarg.0
IL_0890: ldfld PulseGroup[] ElectricityManager::m_pulseGroups
IL_0895: ldloc.s 33 (System.Int32)
IL_0897: ldelema ElectricityManager+PulseGroup
IL_089C: ldobj ElectricityManager+PulseGroup
IL_08A1: stloc.s 34 (ElectricityManager+PulseGroup)
IL_08A3: ldloca.s 34 (ElectricityManager+PulseGroup)
IL_08A5: ldfld System.UInt32 PulseGroup::m_curCharge
IL_08AA: brfalse => Label60
IL_08AF: ldloca.s 34 (ElectricityManager+PulseGroup)
IL_08B1: ldfld System.Byte PulseGroup::m_z
IL_08B6: ldc.i4 256
IL_08BB: mul
IL_08BC: ldloca.s 34 (ElectricityManager+PulseGroup)
IL_08BE: ldfld System.Byte PulseGroup::m_x
IL_08C3: add
IL_08C4: stloc.s 35 (System.Int32)
IL_08C6: ldarg.0
IL_08C7: ldfld Cell[] ElectricityManager::m_electricityGrid
IL_08CC: ldloc.s 35 (System.Int32)
IL_08CE: ldelema ElectricityManager+Cell
IL_08D3: ldobj ElectricityManager+Cell
IL_08D8: stloc.s 36 (ElectricityManager+Cell)
IL_08DA: ldloca.s 36 (ElectricityManager+Cell)
IL_08DC: ldfld System.Byte Cell::m_conductivity
IL_08E1: brfalse => Label61
IL_08E6: ldloca.s 36 (ElectricityManager+Cell)
IL_08E8: dup
IL_08E9: ldfld System.UInt16 Cell::m_extraCharge
IL_08EE: ldloca.s 34 (ElectricityManager+PulseGroup)
IL_08F0: ldfld System.UInt32 PulseGroup::m_curCharge
IL_08F5: ldc.i4 32767
IL_08FA: ldloca.s 36 (ElectricityManager+Cell)
IL_08FC: ldfld System.UInt16 Cell::m_extraCharge
IL_0901: sub
IL_0902: call static System.Int32 UnityEngine.Mathf::Min(System.Int32 a,
System.Int32 b)
IL_0907: conv.u2
IL_0908: add
IL_0909: conv.u2
IL_090A: stfld System.UInt16 Cell::m_extraCharge
IL_090F: Label61
IL_090F: ldarg.0
IL_0910: ldfld Cell[] ElectricityManager::m_electricityGrid
IL_0915: ldloc.s 35 (System.Int32)
IL_0917: ldelema ElectricityManager+Cell
IL_091C: ldloc.s 36 (ElectricityManager+Cell)
IL_091E: stobj ElectricityManager+Cell
IL_0923: Label60
IL_0923: ldloc.s 33 (System.Int32)
IL_0925: ldc.i4.1
IL_0926: add
IL_0927: stloc.s 33 (System.Int32)
IL_0929: Label59
IL_0929: ldloc.s 33 (System.Int32)
IL_092B: ldarg.0
IL_092C: ldfld System.Int32 ElectricityManager::m_pulseGroupCount
IL_0931: blt => Label62
IL_0936: // end original
IL_0936: Label0
IL_0936: Label1
IL_0936: Label22
IL_0936: Label55
IL_0936: ret
DONE

### Patch: System.Void ElectricityManager::ConductToNode(System.UInt16 nodeIndex,


NetNode& node, System.UInt16 group, System.Single minX, System.Single minZ,
System.Single maxX, System.Single maxZ)
### Replacement: static System.Void
ElectricityManager::ElectricityManager.ConductToNode_Patch0(ElectricityManager
this, System.UInt16 nodeIndex, NetNode& node, System.UInt16 group, System.Single
minX, System.Single minZ, System.Single maxX, System.Single maxZ)
IL_0000: Local var 0: NetInfo
IL_0000: Local var 1: ElectricityManager/PulseUnit
IL_0000: Local var 2: System.Int32
IL_0000: Local var 3: System.UInt16
IL_0000: // start original
IL_0000: ldarg.2
IL_0001: ldflda UnityEngine.Vector3 NetNode::m_position
IL_0006: ldfld System.Single UnityEngine.Vector3::x
IL_000B: ldarg.s 4
IL_000D: blt.un => Label0
IL_0012: ldarg.2
IL_0013: ldflda UnityEngine.Vector3 NetNode::m_position
IL_0018: ldfld System.Single UnityEngine.Vector3::z
IL_001D: ldarg.s 5
IL_001F: blt.un => Label1
IL_0024: ldarg.2
IL_0025: ldflda UnityEngine.Vector3 NetNode::m_position
IL_002A: ldfld System.Single UnityEngine.Vector3::x
IL_002F: ldarg.s 6
IL_0031: bgt.un => Label2
IL_0036: ldarg.2
IL_0037: ldflda UnityEngine.Vector3 NetNode::m_position
IL_003C: ldfld System.Single UnityEngine.Vector3::z
IL_0041: ldarg.s 7
IL_0043: bgt.un => Label3
IL_0048: ldarg.2
IL_0049: call static System.Boolean
ElectricRoads.Overrides.ElectricRoadsOverrides::CheckElectricConductibility(NetNode
& node)
IL_004E: brfalse => Label5
IL_0053: Label4
IL_0053: ldarg.0
IL_0054: ldfld System.UInt16[] ElectricityManager::m_nodeGroups
IL_0059: ldarg.1
IL_005A: ldelem.u2
IL_005B: ldc.i4 65535
IL_0060: bne.un => Label6
IL_0065: ldloca.s 1 (ElectricityManager+PulseUnit)
IL_0067: ldarg.3
IL_0068: stfld System.UInt16 PulseUnit::m_group
IL_006D: ldloca.s 1 (ElectricityManager+PulseUnit)
IL_006F: ldarg.1
IL_0070: stfld System.UInt16 PulseUnit::m_node
IL_0075: ldloca.s 1 (ElectricityManager+PulseUnit)
IL_0077: ldc.i4.0
IL_0078: stfld System.Byte PulseUnit::m_x
IL_007D: ldloca.s 1 (ElectricityManager+PulseUnit)
IL_007F: ldc.i4.0
IL_0080: stfld System.Byte PulseUnit::m_z
IL_0085: ldarg.0
IL_0086: ldfld PulseUnit[] ElectricityManager::m_pulseUnits
IL_008B: ldarg.0
IL_008C: ldfld System.Int32 ElectricityManager::m_pulseUnitEnd
IL_0091: ldelema ElectricityManager+PulseUnit
IL_0096: ldloc.1
IL_0097: stobj ElectricityManager+PulseUnit
IL_009C: ldarg.0
IL_009D: dup
IL_009E: ldfld System.Int32 ElectricityManager::m_pulseUnitEnd
IL_00A3: ldc.i4.1
IL_00A4: add
IL_00A5: dup
IL_00A6: stloc.2
IL_00A7: stfld System.Int32 ElectricityManager::m_pulseUnitEnd
IL_00AC: ldloc.2
IL_00AD: ldarg.0
IL_00AE: ldfld PulseUnit[] ElectricityManager::m_pulseUnits
IL_00B3: ldlen
IL_00B4: conv.i4
IL_00B5: bne.un => Label7
IL_00BA: ldarg.0
IL_00BB: ldc.i4.0
IL_00BC: stfld System.Int32 ElectricityManager::m_pulseUnitEnd
IL_00C1: Label7
IL_00C1: ldarg.0
IL_00C2: ldfld System.UInt16[] ElectricityManager::m_nodeGroups
IL_00C7: ldarg.1
IL_00C8: ldarg.3
IL_00C9: stelem.i2
IL_00CA: ldarg.0
IL_00CB: ldc.i4.1
IL_00CC: stfld System.Boolean ElectricityManager::m_canContinue
IL_00D1: br => Label8
IL_00D6: Label6
IL_00D6: ldarg.0
IL_00D7: ldarg.0
IL_00D8: ldfld System.UInt16[] ElectricityManager::m_nodeGroups
IL_00DD: ldarg.1
IL_00DE: ldelem.u2
IL_00DF: call System.UInt16 ElectricityManager::GetRootGroup(System.UInt16
group)
IL_00E4: stloc.3
IL_00E5: ldloc.3
IL_00E6: ldarg.3
IL_00E7: beq => Label9
IL_00EC: ldarg.0
IL_00ED: ldarg.3
IL_00EE: ldloc.3
IL_00EF: call System.Void ElectricityManager::MergeGroups(System.UInt16 root,
System.UInt16 merged)
IL_00F4: ldarg.0
IL_00F5: ldfld System.UInt16[] ElectricityManager::m_nodeGroups
IL_00FA: ldarg.1
IL_00FB: ldarg.3
IL_00FC: stelem.i2
IL_00FD: ldarg.0
IL_00FE: ldc.i4.1
IL_00FF: stfld System.Boolean ElectricityManager::m_canContinue
IL_0104: // end original
IL_0104: Label0
IL_0104: Label1
IL_0104: Label2
IL_0104: Label3
IL_0104: Label5
IL_0104: Label8
IL_0104: Label9
IL_0104: ret
DONE

### Patch: System.Void ElectricityManager::UpdateNodeElectricity(System.Int32


nodeID, System.Int32 value)
### Replacement: static System.Void
ElectricityManager::ElectricityManager.UpdateNodeElectricity_Patch2(ElectricityMana
ger this, System.Int32 nodeID, System.Int32 value)
IL_0000: Local var 0: InfoManager/InfoMode
IL_0000: Local var 1: NetManager
IL_0000: Local var 2: System.Boolean
IL_0000: Local var 3: NetNode/Flags
IL_0000: Local var 4: System.UInt16
IL_0000: Local var 5: BuildingManager
IL_0000: Local var 6: NetNode/Flags
IL_0000: Local var 7: System.Int32
IL_0000: Local var 8: System.UInt16
IL_0000: Local var 9: System.Boolean
IL_0000: Local var 10: System.Boolean
IL_0000: ldc.i4 0
IL_0005: stloc 9 (System.Boolean)
IL_0009: ldc.i4.1
IL_000A: stloc 9 (System.Boolean)
IL_000E: ldc.i4 0
IL_0013: stloc 10 (System.Boolean)
IL_0017: ldloc 9 (System.Boolean)
IL_001B: brfalse => Label1
IL_0020: ldarga 1
IL_0024: ldloca 10 (System.Boolean)
IL_0028: call static System.Void
ElectricRoads.Overrides.ElectricRoadsOverrides::PreConduct(System.Int32& nodeID,
System.Boolean& __state)
IL_002D: Label1
IL_002D: nop
IL_002E: ldloc 9 (System.Boolean)
IL_0032: brfalse => Label0
IL_0037: // start original
IL_0037: call static InfoManager
ColossalFramework.Singleton`1<InfoManager>::get_instance()
IL_003C: callvirt InfoMode InfoManager::get_CurrentMode()
IL_0041: stloc.0
IL_0042: call static NetManager
ColossalFramework.Singleton`1<NetManager>::get_instance()
IL_0047: stloc.1
IL_0048: ldc.i4.0
IL_0049: stloc.2
IL_004A: ldloc.1
IL_004B: ldfld Array16`1<NetNode> NetManager::m_nodes
IL_0050: ldfld NetNode[] Array16`1<NetNode>::m_buffer
IL_0055: ldarg.1
IL_0056: ldelema NetNode
IL_005B: ldfld Flags NetNode::m_flags
IL_0060: stloc.3
IL_0061: ldarg.1
IL_0062: call static System.Boolean
ElectricRoads.Overrides.ElectricRoadsOverrides::CheckNodeTransition(System.Int32
nodeID)
IL_0067: brfalse => Label2
IL_006C: ldloc.1
IL_006D: ldfld Array16`1<NetNode> NetManager::m_nodes
IL_0072: ldfld NetNode[] Array16`1<NetNode>::m_buffer
IL_0077: ldarg.1
IL_0078: ldelema NetNode
IL_007D: dup
IL_007E: ldfld Flags NetNode::m_flags
IL_0083: ldc.i4 -1048577
IL_0088: and
IL_0089: stfld Flags NetNode::m_flags
IL_008E: br => Label12
IL_0093: Label2
IL_0093: ldloc.1
IL_0094: ldfld Array16`1<NetNode> NetManager::m_nodes
IL_0099: ldfld NetNode[] Array16`1<NetNode>::m_buffer
IL_009E: ldarg.1
IL_009F: ldelema NetNode
IL_00A4: ldfld System.UInt16 NetNode::m_building
IL_00A9: stloc.s 4 (System.UInt16)
IL_00AB: ldloc.s 4 (System.UInt16)
IL_00AD: brfalse => Label3
IL_00B2: call static BuildingManager
ColossalFramework.Singleton`1<BuildingManager>::get_instance()
IL_00B7: stloc.s 5 (BuildingManager)
IL_00B9: ldloc.s 5 (BuildingManager)
IL_00BB: ldfld Array16`1<Building> BuildingManager::m_buildings
IL_00C0: ldfld Building[] Array16`1<Building>::m_buffer
IL_00C5: ldloc.s 4 (System.UInt16)
IL_00C7: ldelema Building
IL_00CC: ldfld System.UInt16 Building::m_electricityBuffer
IL_00D1: ldarg.2
IL_00D2: beq => Label4
IL_00D7: ldloc.s 5 (BuildingManager)
IL_00D9: ldfld Array16`1<Building> BuildingManager::m_buildings
IL_00DE: ldfld Building[] Array16`1<Building>::m_buffer
IL_00E3: ldloc.s 4 (System.UInt16)
IL_00E5: ldelema Building
IL_00EA: ldarg.2
IL_00EB: conv.u2
IL_00EC: stfld System.UInt16 Building::m_electricityBuffer
IL_00F1: ldloc.0
IL_00F2: ldc.i4.1
IL_00F3: ceq
IL_00F5: stloc.2
IL_00F6: Label4
IL_00F6: ldloc.2
IL_00F7: brfalse => Label5
IL_00FC: ldloc.s 5 (BuildingManager)
IL_00FE: ldloc.s 4 (System.UInt16)
IL_0100: callvirt System.Void BuildingManager::UpdateBuildingColors(System.UInt16
building)
IL_0105: Label3
IL_0105: Label5
IL_0105: ldloc.3
IL_0106: ldc.i4 -67108865
IL_010B: and
IL_010C: stloc.s 6 (NetNode+Flags)
IL_010E: ldarg.2
IL_010F: brfalse => Label6
IL_0114: ldloc.s 6 (NetNode+Flags)
IL_0116: ldc.i4 67108864
IL_011B: or
IL_011C: stloc.s 6 (NetNode+Flags)
IL_011E: Label6
IL_011E: ldloc.s 6 (NetNode+Flags)
IL_0120: ldloc.3
IL_0121: beq => Label7
IL_0126: ldloc.1
IL_0127: ldfld Array16`1<NetNode> NetManager::m_nodes
IL_012C: ldfld NetNode[] Array16`1<NetNode>::m_buffer
IL_0131: ldarg.1
IL_0132: ldelema NetNode
IL_0137: ldloc.s 6 (NetNode+Flags)
IL_0139: stfld Flags NetNode::m_flags
IL_013E: ldloc.0
IL_013F: ldc.i4.1
IL_0140: ceq
IL_0142: stloc.2
IL_0143: Label7
IL_0143: ldloc.2
IL_0144: brfalse => Label8
IL_0149: ldloc.1
IL_014A: ldarg.1
IL_014B: conv.u2
IL_014C: callvirt System.Void NetManager::UpdateNodeColors(System.UInt16 node)
IL_0151: ldc.i4.0
IL_0152: stloc.s 7 (System.Int32)
IL_0154: br => Label9
IL_0159: Label11
IL_0159: ldloc.1
IL_015A: ldfld Array16`1<NetNode> NetManager::m_nodes
IL_015F: ldfld NetNode[] Array16`1<NetNode>::m_buffer
IL_0164: ldarg.1
IL_0165: ldelema NetNode
IL_016A: ldloc.s 7 (System.Int32)
IL_016C: call System.UInt16 NetNode::GetSegment(System.Int32 index)
IL_0171: stloc.s 8 (System.UInt16)
IL_0173: ldloc.s 8 (System.UInt16)
IL_0175: brfalse => Label10
IL_017A: ldloc.1
IL_017B: ldloc.s 8 (System.UInt16)
IL_017D: callvirt System.Void NetManager::UpdateSegmentColors(System.UInt16
segment)
IL_0182: Label10
IL_0182: ldloc.s 7 (System.Int32)
IL_0184: ldc.i4.1
IL_0185: add
IL_0186: stloc.s 7 (System.Int32)
IL_0188: Label9
IL_0188: ldloc.s 7 (System.Int32)
IL_018A: ldc.i4.8
IL_018B: blt => Label11
IL_0190: // end original
IL_0190: Label8
IL_0190: Label12
IL_0190: Label0
IL_0190: ldarg 1
IL_0194: ldloc 10 (System.Boolean)
IL_0198: call static System.Void
ElectricRoads.Overrides.ElectricRoadsOverrides::PostConduct(System.Int32 nodeID,
System.Boolean __state)
IL_019D: ret
DONE

### Patch: virtual System.Void ColossalFramework.UI.UIView::Start()


### Replacement: static System.Void
ColossalFramework.UI.UIView::ColossalFramework.UI.UIView.Start_Patch0(ColossalFrame
work.UI.UIView this)
IL_0000: Local var 0:
ColossalFramework.PoolList`1<ColossalFramework.UI.UIComponent>
IL_0000: Local var 1: ColossalFramework.UI.UIComponent
IL_0000: Local var 2:
System.Collections.Generic.IEnumerator`1<ColossalFramework.UI.UIComponent>
IL_0000: // start original
IL_0000: ldarg.0
IL_0001: ldc.i4.0
IL_0002: stfld System.Int32 ColossalFramework.UI.UIView::m_FramesRendered
IL_0007: ldarg.0
IL_0008: call System.Void
ColossalFramework.UI.UIView::InvalidateAllComponents()
IL_000D: ldarg.0
IL_000E: ldfld UnityEngine.MeshRenderer
ColossalFramework.UI.UIView::m_MeshRenderer
IL_0013: ldnull
IL_0014: call static System.Boolean
UnityEngine.Object::op_Inequality(UnityEngine.Object x, UnityEngine.Object y)
IL_0019: brfalse => Label0
IL_001E: ldarg.0
IL_001F: ldfld UnityEngine.MeshRenderer
ColossalFramework.UI.UIView::m_MeshRenderer
IL_0024: ldc.i4.1
IL_0025: callvirt System.Void UnityEngine.Renderer::set_enabled(System.Boolean
value)
IL_002A: Label0
IL_002A: ldarg.0
IL_002B: call ColossalFramework.PoolList`1<ColossalFramework.UI.UIComponent>
ColossalFramework.UI.UIView::GetTopLevelComponents()
IL_0030: stloc.0
.try
{
IL_0031: ldloc.0
IL_0032: callvirt virtual
System.Collections.Generic.IEnumerator`1<ColossalFramework.UI.UIComponent>
ColossalFramework.PoolList`1<ColossalFramework.UI.UIComponent>::GetEnumerator()
IL_0037: stloc.2
.try
{
IL_0038: br => Label1
IL_003D: Label2
IL_003D: ldloc.2
IL_003E: callvirt abstract virtual ColossalFramework.UI.UIComponent
System.Collections.Generic.IEnumerator`1<ColossalFramework.UI.UIComponent>::get_Cur
rent()
IL_0043: stloc.1
IL_0044: ldloc.1
IL_0045: ldc.i4.1
IL_0046: callvirt System.Void
ColossalFramework.UI.UIComponent::InitializeParentVisibilityCache(System.Boolean
parentVisible)
IL_004B: Label1
IL_004B: ldloc.2
IL_004C: callvirt abstract virtual System.Boolean
System.Collections.IEnumerator::MoveNext()
IL_0051: brtrue => Label2
IL_0056: leave => Label3
IL_005B: leave => (autogenerated)
} // end try
.finally
{
IL_0060: ldloc.2
IL_0061: brfalse => Label4
IL_0066: ldloc.2
IL_0067: callvirt abstract virtual System.Void
System.IDisposable::Dispose()
IL_006C: Label4
IL_006C: endfinally
IL_006D: leave => (autogenerated)
} // end handler
IL_006E: Label3
IL_006E: leave => Label5
IL_0073: leave => (autogenerated)
} // end try
.finally
{
IL_0078: ldloc.0
IL_0079: brfalse => Label6
IL_007E: ldloc.0
IL_007F: callvirt abstract virtual System.Void
System.IDisposable::Dispose()
IL_0084: Label6
IL_0084: endfinally
IL_0085: leave => (autogenerated)
} // end handler
IL_0086: Label5
IL_0086: ldarg.0
IL_0087: ldc.i4.1
IL_0088: stfld System.Boolean
ColossalFramework.UI.UIView::m_VisibilityCacheInitialized
IL_008D: // end original
IL_008D: ret
DONE

### Patch: virtual UnityEngine.Color NetAI::GetColor(System.UInt16 nodeID, NetNode&


data, InfoMode infoMode, SubInfoMode subInfoMode)
### Replacement: static UnityEngine.Color NetAI::NetAI.GetColor_Patch0(NetAI this,
System.UInt16 nodeID, NetNode& data, InfoMode infoMode, SubInfoMode subInfoMode)
IL_0000: // start original
IL_0000: ldarg.3
IL_0001: brfalse => Label0
IL_0006: call static InfoManager
ColossalFramework.Singleton`1<InfoManager>::get_instance()
IL_000B: ldfld InfoProperties SimulationManagerBase`2<InfoManager,
InfoProperties>::m_properties
IL_0010: ldfld UnityEngine.Color InfoProperties::m_neutralColor
IL_0015: br => Label1
IL_001A: Label0
IL_001A: ldarg.0
IL_001B: ldfld NetInfo NetAI::m_info
IL_0020: ldfld UnityEngine.Color NetInfo::m_color
IL_0025: // end original
IL_0025: Label1
IL_0025: ret
DONE

### Patch: virtual UnityEngine.Color NetAI::GetColor(System.UInt16 segmentID,


NetSegment& data, InfoMode infoMode, SubInfoMode subInfoMode)
### Replacement: static UnityEngine.Color NetAI::NetAI.GetColor_Patch0(NetAI this,
System.UInt16 segmentID, NetSegment& data, InfoMode infoMode, SubInfoMode
subInfoMode)
IL_0000: // start original
IL_0000: ldarg.3
IL_0001: brfalse => Label0
IL_0006: call static InfoManager
ColossalFramework.Singleton`1<InfoManager>::get_instance()
IL_000B: ldfld InfoProperties SimulationManagerBase`2<InfoManager,
InfoProperties>::m_properties
IL_0010: ldfld UnityEngine.Color InfoProperties::m_neutralColor
IL_0015: br => Label1
IL_001A: Label0
IL_001A: ldarg.0
IL_001B: ldfld NetInfo NetAI::m_info
IL_0020: ldfld UnityEngine.Color NetInfo::m_color
IL_0025: // end original
IL_0025: Label1
IL_0025: ret
DONE

### Patch: System.Void ElectricityManager::UpdateNodeElectricity(System.Int32


nodeID, System.Int32 value)
### Replacement: static System.Void
ElectricityManager::ElectricityManager.UpdateNodeElectricity_Patch0(ElectricityMana
ger this, System.Int32 nodeID, System.Int32 value)
IL_0000: Local var 0: InfoManager/InfoMode
IL_0000: Local var 1: NetManager
IL_0000: Local var 2: System.Boolean
IL_0000: Local var 3: NetNode/Flags
IL_0000: Local var 4: System.UInt16
IL_0000: Local var 5: BuildingManager
IL_0000: Local var 6: NetNode/Flags
IL_0000: Local var 7: System.Int32
IL_0000: Local var 8: System.UInt16
IL_0000: // start original
IL_0000: call static InfoManager
ColossalFramework.Singleton`1<InfoManager>::get_instance()
IL_0005: callvirt InfoMode InfoManager::get_CurrentMode()
IL_000A: stloc.0
IL_000B: call static NetManager
ColossalFramework.Singleton`1<NetManager>::get_instance()
IL_0010: stloc.1
IL_0011: ldc.i4.0
IL_0012: stloc.2
IL_0013: ldloc.1
IL_0014: ldfld Array16`1<NetNode> NetManager::m_nodes
IL_0019: ldfld NetNode[] Array16`1<NetNode>::m_buffer
IL_001E: ldarg.1
IL_001F: ldelema NetNode
IL_0024: ldfld Flags NetNode::m_flags
IL_0029: stloc.3
IL_002A: ldloc.3
IL_002B: ldc.i4 1048576
IL_0030: and
IL_0031: brfalse => Label0
IL_0036: ldloc.1
IL_0037: ldfld Array16`1<NetNode> NetManager::m_nodes
IL_003C: ldfld NetNode[] Array16`1<NetNode>::m_buffer
IL_0041: ldarg.1
IL_0042: ldelema NetNode
IL_0047: dup
IL_0048: ldfld Flags NetNode::m_flags
IL_004D: ldc.i4 -1048577
IL_0052: and
IL_0053: stfld Flags NetNode::m_flags
IL_0058: br => Label10
IL_005D: Label0
IL_005D: ldloc.1
IL_005E: ldfld Array16`1<NetNode> NetManager::m_nodes
IL_0063: ldfld NetNode[] Array16`1<NetNode>::m_buffer
IL_0068: ldarg.1
IL_0069: ldelema NetNode
IL_006E: ldfld System.UInt16 NetNode::m_building
IL_0073: stloc.s 4 (System.UInt16)
IL_0075: ldloc.s 4 (System.UInt16)
IL_0077: brfalse => Label1
IL_007C: call static BuildingManager
ColossalFramework.Singleton`1<BuildingManager>::get_instance()
IL_0081: stloc.s 5 (BuildingManager)
IL_0083: ldloc.s 5 (BuildingManager)
IL_0085: ldfld Array16`1<Building> BuildingManager::m_buildings
IL_008A: ldfld Building[] Array16`1<Building>::m_buffer
IL_008F: ldloc.s 4 (System.UInt16)
IL_0091: ldelema Building
IL_0096: ldfld System.UInt16 Building::m_electricityBuffer
IL_009B: ldarg.2
IL_009C: beq => Label2
IL_00A1: ldloc.s 5 (BuildingManager)
IL_00A3: ldfld Array16`1<Building> BuildingManager::m_buildings
IL_00A8: ldfld Building[] Array16`1<Building>::m_buffer
IL_00AD: ldloc.s 4 (System.UInt16)
IL_00AF: ldelema Building
IL_00B4: ldarg.2
IL_00B5: conv.u2
IL_00B6: stfld System.UInt16 Building::m_electricityBuffer
IL_00BB: ldloc.0
IL_00BC: ldc.i4.1
IL_00BD: ceq
IL_00BF: stloc.2
IL_00C0: Label2
IL_00C0: ldloc.2
IL_00C1: brfalse => Label3
IL_00C6: ldloc.s 5 (BuildingManager)
IL_00C8: ldloc.s 4 (System.UInt16)
IL_00CA: callvirt System.Void BuildingManager::UpdateBuildingColors(System.UInt16
building)
IL_00CF: Label1
IL_00CF: Label3
IL_00CF: ldloc.3
IL_00D0: ldc.i4 -67108865
IL_00D5: and
IL_00D6: stloc.s 6 (NetNode+Flags)
IL_00D8: ldarg.2
IL_00D9: brfalse => Label4
IL_00DE: ldloc.s 6 (NetNode+Flags)
IL_00E0: ldc.i4 67108864
IL_00E5: or
IL_00E6: stloc.s 6 (NetNode+Flags)
IL_00E8: Label4
IL_00E8: ldloc.s 6 (NetNode+Flags)
IL_00EA: ldloc.3
IL_00EB: beq => Label5
IL_00F0: ldloc.1
IL_00F1: ldfld Array16`1<NetNode> NetManager::m_nodes
IL_00F6: ldfld NetNode[] Array16`1<NetNode>::m_buffer
IL_00FB: ldarg.1
IL_00FC: ldelema NetNode
IL_0101: ldloc.s 6 (NetNode+Flags)
IL_0103: stfld Flags NetNode::m_flags
IL_0108: ldloc.0
IL_0109: ldc.i4.1
IL_010A: ceq
IL_010C: stloc.2
IL_010D: Label5
IL_010D: ldloc.2
IL_010E: brfalse => Label6
IL_0113: ldloc.1
IL_0114: ldarg.1
IL_0115: conv.u2
IL_0116: callvirt System.Void NetManager::UpdateNodeColors(System.UInt16 node)
IL_011B: ldc.i4.0
IL_011C: stloc.s 7 (System.Int32)
IL_011E: br => Label7
IL_0123: Label9
IL_0123: ldloc.1
IL_0124: ldfld Array16`1<NetNode> NetManager::m_nodes
IL_0129: ldfld NetNode[] Array16`1<NetNode>::m_buffer
IL_012E: ldarg.1
IL_012F: ldelema NetNode
IL_0134: ldloc.s 7 (System.Int32)
IL_0136: call System.UInt16 NetNode::GetSegment(System.Int32 index)
IL_013B: stloc.s 8 (System.UInt16)
IL_013D: ldloc.s 8 (System.UInt16)
IL_013F: brfalse => Label8
IL_0144: ldloc.1
IL_0145: ldloc.s 8 (System.UInt16)
IL_0147: callvirt System.Void NetManager::UpdateSegmentColors(System.UInt16
segment)
IL_014C: Label8
IL_014C: ldloc.s 7 (System.Int32)
IL_014E: ldc.i4.1
IL_014F: add
IL_0150: stloc.s 7 (System.Int32)
IL_0152: Label7
IL_0152: ldloc.s 7 (System.Int32)
IL_0154: ldc.i4.8
IL_0155: blt => Label9
IL_015A: // end original
IL_015A: Label6
IL_015A: Label10
IL_015A: ret
DONE

### Patch: static System.Void PropInstance::RenderInstance(CameraInfo cameraInfo,


PropInfo info, InstanceID id, UnityEngine.Vector3 position, System.Single scale,
System.Single angle, UnityEngine.Color color, UnityEngine.Vector4 objectIndex,
System.Boolean active, UnityEngine.Texture heightMap, UnityEngine.Vector4
heightMapping, UnityEngine.Vector4 surfaceMapping, UnityEngine.Texture
waterHeightMap, UnityEngine.Vector4 waterHeightMapping, UnityEngine.Vector4
waterSurfaceMapping)
### Replacement: static System.Void
PropInstance::PropInstance.RenderInstance_Patch0(CameraInfo cameraInfo, PropInfo
info, InstanceID id, UnityEngine.Vector3 position, System.Single scale,
System.Single angle, UnityEngine.Color color, UnityEngine.Vector4 objectIndex,
System.Boolean active, UnityEngine.Texture heightMap, UnityEngine.Vector4
heightMapping, UnityEngine.Vector4 surfaceMapping, UnityEngine.Texture
waterHeightMap, UnityEngine.Vector4 waterHeightMapping, UnityEngine.Vector4
waterSurfaceMapping)
IL_0000: Local var 0: UnityEngine.Matrix4x4
IL_0000: Local var 1: System.Single
IL_0000: Local var 2: System.Int32
IL_0000: Local var 3: UnityEngine.Vector3
IL_0000: Local var 4: UnityEngine.Vector3
IL_0000: Local var 5: EffectInfo/SpawnArea
IL_0000: Local var 6: System.Single
IL_0000: Local var 7: LightSystem
IL_0000: Local var 8: ColossalFramework.Math.Randomizer
IL_0000: Local var 9: UnityEngine.Vector4
IL_0000: Local var 10: System.Single
IL_0000: Local var 11: System.Single
IL_0000: Local var 12: System.Single
IL_0000: Local var 13: UnityEngine.Matrix4x4
IL_0000: Local var 14: PropManager
IL_0000: Local var 15: UnityEngine.MaterialPropertyBlock
IL_0000: Local var 16: System.Int32
IL_0000: // start original
IL_0000: ldarg.1
IL_0001: ldfld System.Boolean PrefabInfo::m_prefabInitialized
IL_0006: brfalse => Label0
IL_000B: ldarg.1
IL_000C: ldfld System.Boolean PropInfo::m_hasEffects
IL_0011: brfalse => Label1
IL_0016: ldarg.s 8
IL_0018: brtrue => Label2
IL_001D: ldarg.1
IL_001E: ldfld System.Boolean PropInfo::m_alwaysActive
IL_0023: brfalse => Label3
IL_0028: Label2
IL_0028: ldloca.s 0 (UnityEngine.Matrix4x4)
IL_002A: initobj UnityEngine.Matrix4x4
IL_0030: ldloca.s 0 (UnityEngine.Matrix4x4)
IL_0032: ldarg.3
IL_0033: ldarg.s 5
IL_0035: ldc.r4 57.29578
IL_003A: mul
IL_003B: call static UnityEngine.Vector3 UnityEngine.Vector3::get_down()
IL_0040: call static UnityEngine.Quaternion
UnityEngine.Quaternion::AngleAxis(System.Single angle, UnityEngine.Vector3 axis)
IL_0045: ldarg.s 4
IL_0047: ldarg.s 4
IL_0049: ldarg.s 4
IL_004B: newobj System.Void UnityEngine.Vector3::.ctor(System.Single x,
System.Single y, System.Single z)
IL_0050: call System.Void UnityEngine.Matrix4x4::SetTRS(UnityEngine.Vector3
pos, UnityEngine.Quaternion q, UnityEngine.Vector3 s)
IL_0055: call static SimulationManager
ColossalFramework.Singleton`1<SimulationManager>::get_instance()
IL_005A: ldfld System.Single SimulationManager::m_simulationTimeDelta
IL_005F: stloc.1
IL_0060: ldc.i4.0
IL_0061: stloc.2
IL_0062: br => Label4
IL_0067: Label5
IL_0067: ldloca.s 0 (UnityEngine.Matrix4x4)
IL_0069: ldarg.1
IL_006A: ldfld Effect[] PropInfo::m_effects
IL_006F: ldloc.2
IL_0070: ldelema PropInfo+Effect
IL_0075: ldfld UnityEngine.Vector3 Effect::m_position
IL_007A: call UnityEngine.Vector3
UnityEngine.Matrix4x4::MultiplyPoint(UnityEngine.Vector3 v)
IL_007F: stloc.3
IL_0080: ldloca.s 0 (UnityEngine.Matrix4x4)
IL_0082: ldarg.1
IL_0083: ldfld Effect[] PropInfo::m_effects
IL_0088: ldloc.2
IL_0089: ldelema PropInfo+Effect
IL_008E: ldfld UnityEngine.Vector3 Effect::m_direction
IL_0093: call UnityEngine.Vector3
UnityEngine.Matrix4x4::MultiplyVector(UnityEngine.Vector3 v)
IL_0098: stloc.s 4 (UnityEngine.Vector3)
IL_009A: ldloca.s 5 (EffectInfo+SpawnArea)
IL_009C: ldloc.3
IL_009D: ldloc.s 4 (UnityEngine.Vector3)
IL_009F: ldc.r4 0
IL_00A4: call System.Void SpawnArea::.ctor(UnityEngine.Vector3 position,
UnityEngine.Vector3 direction, System.Single radius)
IL_00A9: ldarg.1
IL_00AA: ldfld Effect[] PropInfo::m_effects
IL_00AF: ldloc.2
IL_00B0: ldelema PropInfo+Effect
IL_00B5: ldfld EffectInfo Effect::m_effect
IL_00BA: ldarg.2
IL_00BB: ldloc.s 5 (EffectInfo+SpawnArea)
IL_00BD: call static UnityEngine.Vector3 UnityEngine.Vector3::get_zero()
IL_00C2: ldc.r4 0
IL_00C7: ldc.r4 1
IL_00CC: ldc.r4 -1
IL_00D1: ldloc.1
IL_00D2: ldarg.0
IL_00D3: callvirt virtual System.Void EffectInfo::RenderEffect(InstanceID id,
SpawnArea area, UnityEngine.Vector3 velocity, System.Single acceleration,
System.Single magnitude, System.Single timeOffset, System.Single timeDelta,
CameraInfo cameraInfo)
IL_00D8: ldloc.2
IL_00D9: ldc.i4.1
IL_00DA: add
IL_00DB: stloc.2
IL_00DC: Label4
IL_00DC: ldloc.2
IL_00DD: ldarg.1
IL_00DE: ldfld Effect[] PropInfo::m_effects
IL_00E3: ldlen
IL_00E4: conv.i4
IL_00E5: blt => Label5
IL_00EA: Label1
IL_00EA: Label3
IL_00EA: ldarg.1
IL_00EB: ldfld System.Boolean PropInfo::m_hasRenderer
IL_00F0: brfalse => Label6
IL_00F5: ldarg.0
IL_00F6: ldfld System.Int32 CameraInfo::m_layerMask
IL_00FB: ldc.i4.1
IL_00FC: ldarg.1
IL_00FD: ldfld System.Int32 PrefabInfo::m_prefabDataLayer
IL_0102: ldc.i4.s 31
IL_0104: and
IL_0105: shl
IL_0106: and
IL_0107: brfalse => Label7
IL_010C: call static InfoManager
ColossalFramework.Singleton`1<InfoManager>::get_instance()
IL_0111: callvirt InfoMode InfoManager::get_CurrentMode()
IL_0116: brtrue => Label8
IL_011B: ldc.r4 0
IL_0120: stloc.s 6 (System.Single)
IL_0122: ldarg.s 8
IL_0124: brtrue => Label9
IL_0129: ldarg.1
IL_012A: ldfld System.Boolean PropInfo::m_alwaysActive
IL_012F: brtrue => Label10
IL_0134: ldarga.s 7
IL_0136: ldc.r4 0
IL_013B: stfld System.Single UnityEngine.Vector4::z
IL_0140: br => Label11
IL_0145: Label9
IL_0145: Label10
IL_0145: ldarg.1
IL_0146: ldflda UnityEngine.Vector2 PropInfo::m_illuminationOffRange
IL_014B: ldfld System.Single UnityEngine.Vector2::x
IL_0150: ldc.r4 1000
IL_0155: blt => Label12
IL_015A: ldarg.1
IL_015B: ldfld BlinkType PropInfo::m_illuminationBlinkType
IL_0160: brfalse => Label13
IL_0165: Label12
IL_0165: call static RenderManager
ColossalFramework.Singleton`1<RenderManager>::get_instance()
IL_016A: callvirt LightSystem RenderManager::get_lightSystem()
IL_016F: stloc.s 7 (LightSystem)
IL_0171: ldloca.s 8 (ColossalFramework.Math.Randomizer)
IL_0173: ldarga.s 2
IL_0175: call System.UInt32 InstanceID::get_Index()
IL_017A: call System.Void
ColossalFramework.Math.Randomizer::.ctor(System.UInt32 _seed)
IL_017F: ldarg.1
IL_0180: ldflda UnityEngine.Vector2 PropInfo::m_illuminationOffRange
IL_0185: ldfld System.Single UnityEngine.Vector2::x
IL_018A: ldloca.s 8 (ColossalFramework.Math.Randomizer)
IL_018C: ldc.i4 100000
IL_0191: call System.Int32
ColossalFramework.Math.Randomizer::Int32(System.UInt32 range)
IL_0196: conv.r4
IL_0197: ldc.r4 1E-05
IL_019C: mul
IL_019D: ldarg.1
IL_019E: ldflda UnityEngine.Vector2 PropInfo::m_illuminationOffRange
IL_01A3: ldfld System.Single UnityEngine.Vector2::y
IL_01A8: ldarg.1
IL_01A9: ldflda UnityEngine.Vector2 PropInfo::m_illuminationOffRange
IL_01AE: ldfld System.Single UnityEngine.Vector2::x
IL_01B3: sub
IL_01B4: mul
IL_01B5: add
IL_01B6: stloc.s 6 (System.Single)
IL_01B8: ldarga.s 7
IL_01BA: ldloc.s 6 (System.Single)
IL_01BC: ldc.r4 0.01
IL_01C1: add
IL_01C2: ldloc.s 6 (System.Single)
IL_01C4: ldc.r4 0.01
IL_01C9: sub
IL_01CA: ldloc.s 7 (LightSystem)
IL_01CC: callvirt System.Single LightSystem::get_DayLightIntensity()
IL_01D1: call static System.Single MathUtils::SmoothStep(System.Single edge0,
System.Single edge1, System.Single x)
IL_01D6: stfld System.Single UnityEngine.Vector4::z
IL_01DB: ldarg.1
IL_01DC: ldfld BlinkType PropInfo::m_illuminationBlinkType
IL_01E1: brfalse => Label14
IL_01E6: ldarg.1
IL_01E7: ldfld BlinkType PropInfo::m_illuminationBlinkType
IL_01EC: call static UnityEngine.Vector4
LightEffect::GetBlinkVector(BlinkType type)
IL_01F1: stloc.s 9 (UnityEngine.Vector4)
IL_01F3: ldloc.s 6 (System.Single)
IL_01F5: ldc.r4 3.71
IL_01FA: mul
IL_01FB: call static SimulationManager
ColossalFramework.Singleton`1<SimulationManager>::get_instance()
IL_0200: ldfld System.Single SimulationManager::m_simulationTimer
IL_0205: ldloca.s 9 (UnityEngine.Vector4)
IL_0207: ldfld System.Single UnityEngine.Vector4::w
IL_020C: div
IL_020D: add
IL_020E: stloc.s 10 (System.Single)
IL_0210: ldloc.s 10 (System.Single)
IL_0212: ldloc.s 10 (System.Single)
IL_0214: call static System.Single UnityEngine.Mathf::Floor(System.Single f)
IL_0219: sub
IL_021A: ldloca.s 9 (UnityEngine.Vector4)
IL_021C: ldfld System.Single UnityEngine.Vector4::w
IL_0221: mul
IL_0222: stloc.s 10 (System.Single)
IL_0224: ldloca.s 9 (UnityEngine.Vector4)
IL_0226: ldfld System.Single UnityEngine.Vector4::x
IL_022B: ldloca.s 9 (UnityEngine.Vector4)
IL_022D: ldfld System.Single UnityEngine.Vector4::y
IL_0232: ldloc.s 10 (System.Single)
IL_0234: call static System.Single MathUtils::SmoothStep(System.Single edge0,
System.Single edge1, System.Single x)
IL_0239: stloc.s 11 (System.Single)
IL_023B: ldloca.s 9 (UnityEngine.Vector4)
IL_023D: ldfld System.Single UnityEngine.Vector4::w
IL_0242: ldloca.s 9 (UnityEngine.Vector4)
IL_0244: ldfld System.Single UnityEngine.Vector4::z
IL_0249: ldloc.s 10 (System.Single)
IL_024B: call static System.Single MathUtils::SmoothStep(System.Single edge0,
System.Single edge1, System.Single x)
IL_0250: stloc.s 12 (System.Single)
IL_0252: ldarga.s 7
IL_0254: dup
IL_0255: ldfld System.Single UnityEngine.Vector4::z
IL_025A: ldc.r4 1
IL_025F: ldloc.s 11 (System.Single)
IL_0261: ldloc.s 12 (System.Single)
IL_0263: mul
IL_0264: sub
IL_0265: mul
IL_0266: stfld System.Single UnityEngine.Vector4::z
IL_026B: Label14
IL_026B: br => Label15
IL_0270: Label13
IL_0270: ldarga.s 7
IL_0272: ldc.r4 1
IL_0277: stfld System.Single UnityEngine.Vector4::z
IL_027C: Label8
IL_027C: Label11
IL_027C: Label15
IL_027C: ldarg.0
IL_027D: brfalse => Label16
IL_0282: ldarg.0
IL_0283: ldarg.3
IL_0284: ldarg.1
IL_0285: ldfld System.Single PropInfo::m_lodRenderDistance
IL_028A: callvirt System.Boolean
CameraInfo::CheckRenderDistance(UnityEngine.Vector3 point, System.Single
maxDistance)
IL_028F: brfalse => Label17
IL_0294: Label16
IL_0294: ldloca.s 13 (UnityEngine.Matrix4x4)
IL_0296: initobj UnityEngine.Matrix4x4
IL_029C: ldloca.s 13 (UnityEngine.Matrix4x4)
IL_029E: ldarg.3
IL_029F: ldarg.s 5
IL_02A1: ldc.r4 57.29578
IL_02A6: mul
IL_02A7: call static UnityEngine.Vector3 UnityEngine.Vector3::get_down()
IL_02AC: call static UnityEngine.Quaternion
UnityEngine.Quaternion::AngleAxis(System.Single angle, UnityEngine.Vector3 axis)
IL_02B1: ldarg.s 4
IL_02B3: ldarg.s 4
IL_02B5: ldarg.s 4
IL_02B7: newobj System.Void UnityEngine.Vector3::.ctor(System.Single x,
System.Single y, System.Single z)
IL_02BC: call System.Void UnityEngine.Matrix4x4::SetTRS(UnityEngine.Vector3
pos, UnityEngine.Quaternion q, UnityEngine.Vector3 s)
IL_02C1: call static PropManager
ColossalFramework.Singleton`1<PropManager>::get_instance()
IL_02C6: stloc.s 14 (PropManager)
IL_02C8: ldloc.s 14 (PropManager)
IL_02CA: ldfld UnityEngine.MaterialPropertyBlock PropManager::m_materialBlock
IL_02CF: stloc.s 15 (UnityEngine.MaterialPropertyBlock)
IL_02D1: ldloc.s 15 (UnityEngine.MaterialPropertyBlock)
IL_02D3: callvirt System.Void UnityEngine.MaterialPropertyBlock::Clear()
IL_02D8: ldloc.s 15 (UnityEngine.MaterialPropertyBlock)
IL_02DA: ldloc.s 14 (PropManager)
IL_02DC: ldfld System.Int32 PropManager::ID_Color
IL_02E1: ldarg.s 6
IL_02E3: callvirt System.Void
UnityEngine.MaterialPropertyBlock::SetColor(System.Int32 nameID, UnityEngine.Color
value)
IL_02E8: ldloc.s 15 (UnityEngine.MaterialPropertyBlock)
IL_02EA: ldloc.s 14 (PropManager)
IL_02EC: ldfld System.Int32 PropManager::ID_HeightMap
IL_02F1: ldarg.s 9
IL_02F3: callvirt System.Void
UnityEngine.MaterialPropertyBlock::SetTexture(System.Int32 nameID,
UnityEngine.Texture value)
IL_02F8: ldloc.s 15 (UnityEngine.MaterialPropertyBlock)
IL_02FA: ldloc.s 14 (PropManager)
IL_02FC: ldfld System.Int32 PropManager::ID_HeightMapping
IL_0301: ldarg.s 10
IL_0303: callvirt System.Void
UnityEngine.MaterialPropertyBlock::SetVector(System.Int32 nameID,
UnityEngine.Vector4 value)
IL_0308: ldloc.s 15 (UnityEngine.MaterialPropertyBlock)
IL_030A: ldloc.s 14 (PropManager)
IL_030C: ldfld System.Int32 PropManager::ID_SurfaceMapping
IL_0311: ldarg.s 11
IL_0313: callvirt System.Void
UnityEngine.MaterialPropertyBlock::SetVector(System.Int32 nameID,
UnityEngine.Vector4 value)
IL_0318: ldloc.s 15 (UnityEngine.MaterialPropertyBlock)
IL_031A: ldloc.s 14 (PropManager)
IL_031C: ldfld System.Int32 PropManager::ID_ObjectIndex
IL_0321: ldarg.s 7
IL_0323: callvirt System.Void
UnityEngine.MaterialPropertyBlock::SetVector(System.Int32 nameID,
UnityEngine.Vector4 value)
IL_0328: ldloc.s 15 (UnityEngine.MaterialPropertyBlock)
IL_032A: ldloc.s 14 (PropManager)
IL_032C: ldfld System.Int32 PropManager::ID_WaterHeightMap
IL_0331: ldarg.s 12
IL_0333: callvirt System.Void
UnityEngine.MaterialPropertyBlock::SetTexture(System.Int32 nameID,
UnityEngine.Texture value)
IL_0338: ldloc.s 15 (UnityEngine.MaterialPropertyBlock)
IL_033A: ldloc.s 14 (PropManager)
IL_033C: ldfld System.Int32 PropManager::ID_WaterHeightMapping
IL_0341: ldarg.s 13
IL_0343: callvirt System.Void
UnityEngine.MaterialPropertyBlock::SetVector(System.Int32 nameID,
UnityEngine.Vector4 value)
IL_0348: ldloc.s 15 (UnityEngine.MaterialPropertyBlock)
IL_034A: ldloc.s 14 (PropManager)
IL_034C: ldfld System.Int32 PropManager::ID_WaterSurfaceMapping
IL_0351: ldarg.s 14
IL_0353: callvirt System.Void
UnityEngine.MaterialPropertyBlock::SetVector(System.Int32 nameID,
UnityEngine.Vector4 value)
IL_0358: ldarg.1
IL_0359: ldfld UnityEngine.Vector4[] PropInfo::m_rollLocation
IL_035E: brfalse => Label18
IL_0363: ldarg.1
IL_0364: ldfld UnityEngine.Material PropInfo::m_material
IL_0369: ldloc.s 14 (PropManager)
IL_036B: ldfld System.Int32 PropManager::ID_RollLocation
IL_0370: ldarg.1
IL_0371: ldfld UnityEngine.Vector4[] PropInfo::m_rollLocation
IL_0376: callvirt System.Void UnityEngine.Material::SetVectorArray(System.Int32
nameID, UnityEngine.Vector4[] values)
IL_037B: ldarg.1
IL_037C: ldfld UnityEngine.Material PropInfo::m_material
IL_0381: ldloc.s 14 (PropManager)
IL_0383: ldfld System.Int32 PropManager::ID_RollParams
IL_0388: ldarg.1
IL_0389: ldfld UnityEngine.Vector4[] PropInfo::m_rollParams
IL_038E: callvirt System.Void UnityEngine.Material::SetVectorArray(System.Int32
nameID, UnityEngine.Vector4[] values)
IL_0393: Label18
IL_0393: ldloc.s 14 (PropManager)
IL_0395: ldflda DrawCallData SimulationManagerBase`2<PropManager,
PropProperties>::m_drawCallData
IL_039A: dup
IL_039B: ldfld System.Int32 DrawCallData::m_defaultCalls
IL_03A0: ldc.i4.1
IL_03A1: add
IL_03A2: stfld System.Int32 DrawCallData::m_defaultCalls
IL_03A7: ldarg.1
IL_03A8: ldfld UnityEngine.Mesh PropInfo::m_mesh
IL_03AD: ldloc.s 13 (UnityEngine.Matrix4x4)
IL_03AF: ldarg.1
IL_03B0: ldfld UnityEngine.Material PropInfo::m_material
IL_03B5: ldarg.1
IL_03B6: ldfld System.Int32 PrefabInfo::m_prefabDataLayer
IL_03BB: ldnull
IL_03BC: ldc.i4.0
IL_03BD: ldloc.s 15 (UnityEngine.MaterialPropertyBlock)
IL_03BF: call static System.Void
UnityEngine.Graphics::DrawMesh(UnityEngine.Mesh mesh, UnityEngine.Matrix4x4 matrix,
UnityEngine.Material material, System.Int32 layer, UnityEngine.Camera camera,
System.Int32 submeshIndex, UnityEngine.MaterialPropertyBlock properties)
IL_03C4: br => Label19
IL_03C9: Label17
IL_03C9: ldarg.s 9
IL_03CB: ldarg.1
IL_03CC: ldfld UnityEngine.Texture PropInfo::m_lodHeightMap
IL_03D1: call static System.Boolean
UnityEngine.Object::op_Inequality(UnityEngine.Object x, UnityEngine.Object y)
IL_03D6: brtrue => Label20
IL_03DB: ldarg.s 12
IL_03DD: ldarg.1
IL_03DE: ldfld UnityEngine.Texture PropInfo::m_lodWaterHeightMap
IL_03E3: call static System.Boolean
UnityEngine.Object::op_Inequality(UnityEngine.Object x, UnityEngine.Object y)
IL_03E8: brfalse => Label21
IL_03ED: Label20
IL_03ED: ldarg.1
IL_03EE: ldfld System.Int32 PropInfo::m_lodCount
IL_03F3: brfalse => Label22
IL_03F8: ldarg.0
IL_03F9: ldarg.1
IL_03FA: call static System.Void PropInstance::RenderLod(CameraInfo
cameraInfo, PropInfo info)
IL_03FF: Label22
IL_03FF: ldarg.1
IL_0400: ldarg.s 9
IL_0402: stfld UnityEngine.Texture PropInfo::m_lodHeightMap
IL_0407: ldarg.1
IL_0408: ldarg.s 10
IL_040A: stfld UnityEngine.Vector4 PropInfo::m_lodHeightMapping
IL_040F: ldarg.1
IL_0410: ldarg.s 11
IL_0412: stfld UnityEngine.Vector4 PropInfo::m_lodSurfaceMapping
IL_0417: ldarg.1
IL_0418: ldarg.s 12
IL_041A: stfld UnityEngine.Texture PropInfo::m_lodWaterHeightMap
IL_041F: ldarg.1
IL_0420: ldarg.s 13
IL_0422: stfld UnityEngine.Vector4 PropInfo::m_lodWaterHeightMapping
IL_0427: ldarg.1
IL_0428: ldarg.s 14
IL_042A: stfld UnityEngine.Vector4 PropInfo::m_lodWaterSurfaceMapping
IL_042F: Label21
IL_042F: ldarga.s 7
IL_0431: ldarg.s 4
IL_0433: stfld System.Single UnityEngine.Vector4::w
IL_0438: ldarg.1
IL_0439: ldfld UnityEngine.Vector4[] PropInfo::m_lodLocations
IL_043E: ldarg.1
IL_043F: ldfld System.Int32 PropInfo::m_lodCount
IL_0444: ldelema UnityEngine.Vector4
IL_0449: ldarga.s 3
IL_044B: ldfld System.Single UnityEngine.Vector3::x
IL_0450: ldarga.s 3
IL_0452: ldfld System.Single UnityEngine.Vector3::y
IL_0457: ldarga.s 3
IL_0459: ldfld System.Single UnityEngine.Vector3::z
IL_045E: ldarg.s 5
IL_0460: newobj System.Void UnityEngine.Vector4::.ctor(System.Single x,
System.Single y, System.Single z, System.Single w)
IL_0465: stobj UnityEngine.Vector4
IL_046A: ldarg.1
IL_046B: ldfld UnityEngine.Vector4[] PropInfo::m_lodObjectIndices
IL_0470: ldarg.1
IL_0471: ldfld System.Int32 PropInfo::m_lodCount
IL_0476: ldelema UnityEngine.Vector4
IL_047B: ldarg.s 7
IL_047D: stobj UnityEngine.Vector4
IL_0482: ldarg.1
IL_0483: ldfld UnityEngine.Vector4[] PropInfo::m_lodColors
IL_0488: ldarg.1
IL_0489: ldfld System.Int32 PropInfo::m_lodCount
IL_048E: ldelema UnityEngine.Vector4
IL_0493: ldarga.s 6
IL_0495: call UnityEngine.Color UnityEngine.Color::get_linear()
IL_049A: call static UnityEngine.Vector4
UnityEngine.Color::op_Implicit(UnityEngine.Color c)
IL_049F: stobj UnityEngine.Vector4
IL_04A4: ldarg.1
IL_04A5: ldarg.1
IL_04A6: ldfld UnityEngine.Vector3 PropInfo::m_lodMin
IL_04AB: ldarg.3
IL_04AC: call static UnityEngine.Vector3
UnityEngine.Vector3::Min(UnityEngine.Vector3 lhs, UnityEngine.Vector3 rhs)
IL_04B1: stfld UnityEngine.Vector3 PropInfo::m_lodMin
IL_04B6: ldarg.1
IL_04B7: ldarg.1
IL_04B8: ldfld UnityEngine.Vector3 PropInfo::m_lodMax
IL_04BD: ldarg.3
IL_04BE: call static UnityEngine.Vector3
UnityEngine.Vector3::Max(UnityEngine.Vector3 lhs, UnityEngine.Vector3 rhs)
IL_04C3: stfld UnityEngine.Vector3 PropInfo::m_lodMax
IL_04C8: ldarg.1
IL_04C9: dup
IL_04CA: ldfld System.Int32 PropInfo::m_lodCount
IL_04CF: ldc.i4.1
IL_04D0: add
IL_04D1: dup
IL_04D2: stloc.s 16 (System.Int32)
IL_04D4: stfld System.Int32 PropInfo::m_lodCount
IL_04D9: ldloc.s 16 (System.Int32)
IL_04DB: ldarg.1
IL_04DC: ldfld UnityEngine.Vector4[] PropInfo::m_lodLocations
IL_04E1: ldlen
IL_04E2: conv.i4
IL_04E3: bne.un => Label23
IL_04E8: ldarg.0
IL_04E9: ldarg.1
IL_04EA: call static System.Void PropInstance::RenderLod(CameraInfo
cameraInfo, PropInfo info)
IL_04EF: // end original
IL_04EF: Label0
IL_04EF: Label6
IL_04EF: Label7
IL_04EF: Label19
IL_04EF: Label23
IL_04EF: ret
DONE

### Patch: static System.Void PropInstance::RenderInstance(CameraInfo cameraInfo,


PropInfo info, InstanceID id, UnityEngine.Vector3 position, System.Single scale,
System.Single angle, UnityEngine.Color color, UnityEngine.Vector4 objectIndex,
System.Boolean active)
### Replacement: static System.Void
PropInstance::PropInstance.RenderInstance_Patch0(CameraInfo cameraInfo, PropInfo
info, InstanceID id, UnityEngine.Vector3 position, System.Single scale,
System.Single angle, UnityEngine.Color color, UnityEngine.Vector4 objectIndex,
System.Boolean active)
IL_0000: Local var 0: UnityEngine.Matrix4x4
IL_0000: Local var 1: System.Single
IL_0000: Local var 2: System.Int32
IL_0000: Local var 3: UnityEngine.Vector3
IL_0000: Local var 4: UnityEngine.Vector3
IL_0000: Local var 5: EffectInfo/SpawnArea
IL_0000: Local var 6: System.Single
IL_0000: Local var 7: LightSystem
IL_0000: Local var 8: ColossalFramework.Math.Randomizer
IL_0000: Local var 9: UnityEngine.Vector4
IL_0000: Local var 10: System.Single
IL_0000: Local var 11: System.Single
IL_0000: Local var 12: System.Single
IL_0000: Local var 13: UnityEngine.Matrix4x4
IL_0000: Local var 14: PropManager
IL_0000: Local var 15: UnityEngine.MaterialPropertyBlock
IL_0000: Local var 16: UnityEngine.Matrix4x4
IL_0000: Local var 17: PropManager
IL_0000: Local var 18: UnityEngine.MaterialPropertyBlock
IL_0000: Local var 19: System.Int32
IL_0000: // start original
IL_0000: ldarg.1
IL_0001: ldfld System.Boolean PrefabInfo::m_prefabInitialized
IL_0006: brfalse => Label0
IL_000B: ldarg.1
IL_000C: ldfld System.Boolean PropInfo::m_hasEffects
IL_0011: brfalse => Label1
IL_0016: ldarg.s 8
IL_0018: brtrue => Label2
IL_001D: ldarg.1
IL_001E: ldfld System.Boolean PropInfo::m_alwaysActive
IL_0023: brfalse => Label3
IL_0028: Label2
IL_0028: ldloca.s 0 (UnityEngine.Matrix4x4)
IL_002A: initobj UnityEngine.Matrix4x4
IL_0030: ldloca.s 0 (UnityEngine.Matrix4x4)
IL_0032: ldarg.3
IL_0033: ldarg.s 5
IL_0035: ldc.r4 57.29578
IL_003A: mul
IL_003B: call static UnityEngine.Vector3 UnityEngine.Vector3::get_down()
IL_0040: call static UnityEngine.Quaternion
UnityEngine.Quaternion::AngleAxis(System.Single angle, UnityEngine.Vector3 axis)
IL_0045: ldarg.s 4
IL_0047: ldarg.s 4
IL_0049: ldarg.s 4
IL_004B: newobj System.Void UnityEngine.Vector3::.ctor(System.Single x,
System.Single y, System.Single z)
IL_0050: call System.Void UnityEngine.Matrix4x4::SetTRS(UnityEngine.Vector3
pos, UnityEngine.Quaternion q, UnityEngine.Vector3 s)
IL_0055: call static SimulationManager
ColossalFramework.Singleton`1<SimulationManager>::get_instance()
IL_005A: ldfld System.Single SimulationManager::m_simulationTimeDelta
IL_005F: stloc.1
IL_0060: ldc.i4.0
IL_0061: stloc.2
IL_0062: br => Label4
IL_0067: Label5
IL_0067: ldloca.s 0 (UnityEngine.Matrix4x4)
IL_0069: ldarg.1
IL_006A: ldfld Effect[] PropInfo::m_effects
IL_006F: ldloc.2
IL_0070: ldelema PropInfo+Effect
IL_0075: ldfld UnityEngine.Vector3 Effect::m_position
IL_007A: call UnityEngine.Vector3
UnityEngine.Matrix4x4::MultiplyPoint(UnityEngine.Vector3 v)
IL_007F: stloc.3
IL_0080: ldloca.s 0 (UnityEngine.Matrix4x4)
IL_0082: ldarg.1
IL_0083: ldfld Effect[] PropInfo::m_effects
IL_0088: ldloc.2
IL_0089: ldelema PropInfo+Effect
IL_008E: ldfld UnityEngine.Vector3 Effect::m_direction
IL_0093: call UnityEngine.Vector3
UnityEngine.Matrix4x4::MultiplyVector(UnityEngine.Vector3 v)
IL_0098: stloc.s 4 (UnityEngine.Vector3)
IL_009A: ldloca.s 5 (EffectInfo+SpawnArea)
IL_009C: ldloc.3
IL_009D: ldloc.s 4 (UnityEngine.Vector3)
IL_009F: ldc.r4 0
IL_00A4: call System.Void SpawnArea::.ctor(UnityEngine.Vector3 position,
UnityEngine.Vector3 direction, System.Single radius)
IL_00A9: ldarg.1
IL_00AA: ldfld Effect[] PropInfo::m_effects
IL_00AF: ldloc.2
IL_00B0: ldelema PropInfo+Effect
IL_00B5: ldfld EffectInfo Effect::m_effect
IL_00BA: ldarg.2
IL_00BB: ldloc.s 5 (EffectInfo+SpawnArea)
IL_00BD: call static UnityEngine.Vector3 UnityEngine.Vector3::get_zero()
IL_00C2: ldc.r4 0
IL_00C7: ldc.r4 1
IL_00CC: ldc.r4 -1
IL_00D1: ldloc.1
IL_00D2: ldarg.0
IL_00D3: callvirt virtual System.Void EffectInfo::RenderEffect(InstanceID id,
SpawnArea area, UnityEngine.Vector3 velocity, System.Single acceleration,
System.Single magnitude, System.Single timeOffset, System.Single timeDelta,
CameraInfo cameraInfo)
IL_00D8: ldloc.2
IL_00D9: ldc.i4.1
IL_00DA: add
IL_00DB: stloc.2
IL_00DC: Label4
IL_00DC: ldloc.2
IL_00DD: ldarg.1
IL_00DE: ldfld Effect[] PropInfo::m_effects
IL_00E3: ldlen
IL_00E4: conv.i4
IL_00E5: blt => Label5
IL_00EA: Label1
IL_00EA: Label3
IL_00EA: ldarg.1
IL_00EB: ldfld System.Boolean PropInfo::m_hasRenderer
IL_00F0: brfalse => Label6
IL_00F5: ldarg.0
IL_00F6: ldfld System.Int32 CameraInfo::m_layerMask
IL_00FB: ldc.i4.1
IL_00FC: ldarg.1
IL_00FD: ldfld System.Int32 PrefabInfo::m_prefabDataLayer
IL_0102: ldc.i4.s 31
IL_0104: and
IL_0105: shl
IL_0106: and
IL_0107: brfalse => Label7
IL_010C: call static InfoManager
ColossalFramework.Singleton`1<InfoManager>::get_instance()
IL_0111: callvirt InfoMode InfoManager::get_CurrentMode()
IL_0116: brtrue => Label8
IL_011B: ldc.r4 0
IL_0120: stloc.s 6 (System.Single)
IL_0122: ldarg.s 8
IL_0124: brtrue => Label9
IL_0129: ldarg.1
IL_012A: ldfld System.Boolean PropInfo::m_alwaysActive
IL_012F: brtrue => Label10
IL_0134: ldarga.s 7
IL_0136: ldc.r4 0
IL_013B: stfld System.Single UnityEngine.Vector4::z
IL_0140: br => Label11
IL_0145: Label9
IL_0145: Label10
IL_0145: ldarg.1
IL_0146: ldflda UnityEngine.Vector2 PropInfo::m_illuminationOffRange
IL_014B: ldfld System.Single UnityEngine.Vector2::x
IL_0150: ldc.r4 1000
IL_0155: blt => Label12
IL_015A: ldarg.1
IL_015B: ldfld BlinkType PropInfo::m_illuminationBlinkType
IL_0160: brfalse => Label13
IL_0165: Label12
IL_0165: call static RenderManager
ColossalFramework.Singleton`1<RenderManager>::get_instance()
IL_016A: callvirt LightSystem RenderManager::get_lightSystem()
IL_016F: stloc.s 7 (LightSystem)
IL_0171: ldloca.s 8 (ColossalFramework.Math.Randomizer)
IL_0173: ldarga.s 2
IL_0175: call System.UInt32 InstanceID::get_Index()
IL_017A: call System.Void
ColossalFramework.Math.Randomizer::.ctor(System.UInt32 _seed)
IL_017F: ldarg.1
IL_0180: ldflda UnityEngine.Vector2 PropInfo::m_illuminationOffRange
IL_0185: ldfld System.Single UnityEngine.Vector2::x
IL_018A: ldloca.s 8 (ColossalFramework.Math.Randomizer)
IL_018C: ldc.i4 100000
IL_0191: call System.Int32
ColossalFramework.Math.Randomizer::Int32(System.UInt32 range)
IL_0196: conv.r4
IL_0197: ldc.r4 1E-05
IL_019C: mul
IL_019D: ldarg.1
IL_019E: ldflda UnityEngine.Vector2 PropInfo::m_illuminationOffRange
IL_01A3: ldfld System.Single UnityEngine.Vector2::y
IL_01A8: ldarg.1
IL_01A9: ldflda UnityEngine.Vector2 PropInfo::m_illuminationOffRange
IL_01AE: ldfld System.Single UnityEngine.Vector2::x
IL_01B3: sub
IL_01B4: mul
IL_01B5: add
IL_01B6: stloc.s 6 (System.Single)
IL_01B8: ldarga.s 7
IL_01BA: ldloc.s 6 (System.Single)
IL_01BC: ldc.r4 0.01
IL_01C1: add
IL_01C2: ldloc.s 6 (System.Single)
IL_01C4: ldc.r4 0.01
IL_01C9: sub
IL_01CA: ldloc.s 7 (LightSystem)
IL_01CC: callvirt System.Single LightSystem::get_DayLightIntensity()
IL_01D1: call static System.Single MathUtils::SmoothStep(System.Single edge0,
System.Single edge1, System.Single x)
IL_01D6: stfld System.Single UnityEngine.Vector4::z
IL_01DB: ldarg.1
IL_01DC: ldfld BlinkType PropInfo::m_illuminationBlinkType
IL_01E1: brfalse => Label14
IL_01E6: ldarg.1
IL_01E7: ldfld BlinkType PropInfo::m_illuminationBlinkType
IL_01EC: call static UnityEngine.Vector4
LightEffect::GetBlinkVector(BlinkType type)
IL_01F1: stloc.s 9 (UnityEngine.Vector4)
IL_01F3: ldloc.s 6 (System.Single)
IL_01F5: ldc.r4 3.71
IL_01FA: mul
IL_01FB: call static SimulationManager
ColossalFramework.Singleton`1<SimulationManager>::get_instance()
IL_0200: ldfld System.Single SimulationManager::m_simulationTimer
IL_0205: ldloca.s 9 (UnityEngine.Vector4)
IL_0207: ldfld System.Single UnityEngine.Vector4::w
IL_020C: div
IL_020D: add
IL_020E: stloc.s 10 (System.Single)
IL_0210: ldloc.s 10 (System.Single)
IL_0212: ldloc.s 10 (System.Single)
IL_0214: call static System.Single UnityEngine.Mathf::Floor(System.Single f)
IL_0219: sub
IL_021A: ldloca.s 9 (UnityEngine.Vector4)
IL_021C: ldfld System.Single UnityEngine.Vector4::w
IL_0221: mul
IL_0222: stloc.s 10 (System.Single)
IL_0224: ldloca.s 9 (UnityEngine.Vector4)
IL_0226: ldfld System.Single UnityEngine.Vector4::x
IL_022B: ldloca.s 9 (UnityEngine.Vector4)
IL_022D: ldfld System.Single UnityEngine.Vector4::y
IL_0232: ldloc.s 10 (System.Single)
IL_0234: call static System.Single MathUtils::SmoothStep(System.Single edge0,
System.Single edge1, System.Single x)
IL_0239: stloc.s 11 (System.Single)
IL_023B: ldloca.s 9 (UnityEngine.Vector4)
IL_023D: ldfld System.Single UnityEngine.Vector4::w
IL_0242: ldloca.s 9 (UnityEngine.Vector4)
IL_0244: ldfld System.Single UnityEngine.Vector4::z
IL_0249: ldloc.s 10 (System.Single)
IL_024B: call static System.Single MathUtils::SmoothStep(System.Single edge0,
System.Single edge1, System.Single x)
IL_0250: stloc.s 12 (System.Single)
IL_0252: ldarga.s 7
IL_0254: dup
IL_0255: ldfld System.Single UnityEngine.Vector4::z
IL_025A: ldc.r4 1
IL_025F: ldloc.s 11 (System.Single)
IL_0261: ldloc.s 12 (System.Single)
IL_0263: mul
IL_0264: sub
IL_0265: mul
IL_0266: stfld System.Single UnityEngine.Vector4::z
IL_026B: Label14
IL_026B: br => Label15
IL_0270: Label13
IL_0270: ldarga.s 7
IL_0272: ldc.r4 1
IL_0277: stfld System.Single UnityEngine.Vector4::z
IL_027C: Label8
IL_027C: Label11
IL_027C: Label15
IL_027C: ldarg.0
IL_027D: brfalse => Label16
IL_0282: ldarg.0
IL_0283: ldarg.3
IL_0284: ldarg.1
IL_0285: ldfld System.Single PropInfo::m_lodRenderDistance
IL_028A: callvirt System.Boolean
CameraInfo::CheckRenderDistance(UnityEngine.Vector3 point, System.Single
maxDistance)
IL_028F: brfalse => Label17
IL_0294: Label16
IL_0294: ldloca.s 13 (UnityEngine.Matrix4x4)
IL_0296: initobj UnityEngine.Matrix4x4
IL_029C: ldloca.s 13 (UnityEngine.Matrix4x4)
IL_029E: ldarg.3
IL_029F: ldarg.s 5
IL_02A1: ldc.r4 57.29578
IL_02A6: mul
IL_02A7: call static UnityEngine.Vector3 UnityEngine.Vector3::get_down()
IL_02AC: call static UnityEngine.Quaternion
UnityEngine.Quaternion::AngleAxis(System.Single angle, UnityEngine.Vector3 axis)
IL_02B1: ldarg.s 4
IL_02B3: ldarg.s 4
IL_02B5: ldarg.s 4
IL_02B7: newobj System.Void UnityEngine.Vector3::.ctor(System.Single x,
System.Single y, System.Single z)
IL_02BC: call System.Void UnityEngine.Matrix4x4::SetTRS(UnityEngine.Vector3
pos, UnityEngine.Quaternion q, UnityEngine.Vector3 s)
IL_02C1: call static PropManager
ColossalFramework.Singleton`1<PropManager>::get_instance()
IL_02C6: stloc.s 14 (PropManager)
IL_02C8: ldloc.s 14 (PropManager)
IL_02CA: ldfld UnityEngine.MaterialPropertyBlock PropManager::m_materialBlock
IL_02CF: stloc.s 15 (UnityEngine.MaterialPropertyBlock)
IL_02D1: ldloc.s 15 (UnityEngine.MaterialPropertyBlock)
IL_02D3: callvirt System.Void UnityEngine.MaterialPropertyBlock::Clear()
IL_02D8: ldloc.s 15 (UnityEngine.MaterialPropertyBlock)
IL_02DA: ldloc.s 14 (PropManager)
IL_02DC: ldfld System.Int32 PropManager::ID_Color
IL_02E1: ldarg.s 6
IL_02E3: callvirt System.Void
UnityEngine.MaterialPropertyBlock::SetColor(System.Int32 nameID, UnityEngine.Color
value)
IL_02E8: ldloc.s 15 (UnityEngine.MaterialPropertyBlock)
IL_02EA: ldloc.s 14 (PropManager)
IL_02EC: ldfld System.Int32 PropManager::ID_ObjectIndex
IL_02F1: ldarg.s 7
IL_02F3: callvirt System.Void
UnityEngine.MaterialPropertyBlock::SetVector(System.Int32 nameID,
UnityEngine.Vector4 value)
IL_02F8: ldarg.1
IL_02F9: ldfld UnityEngine.Vector4[] PropInfo::m_rollLocation
IL_02FE: brfalse => Label18
IL_0303: ldarg.1
IL_0304: ldfld UnityEngine.Material PropInfo::m_material
IL_0309: ldloc.s 14 (PropManager)
IL_030B: ldfld System.Int32 PropManager::ID_RollLocation
IL_0310: ldarg.1
IL_0311: ldfld UnityEngine.Vector4[] PropInfo::m_rollLocation
IL_0316: callvirt System.Void UnityEngine.Material::SetVectorArray(System.Int32
nameID, UnityEngine.Vector4[] values)
IL_031B: ldarg.1
IL_031C: ldfld UnityEngine.Material PropInfo::m_material
IL_0321: ldloc.s 14 (PropManager)
IL_0323: ldfld System.Int32 PropManager::ID_RollParams
IL_0328: ldarg.1
IL_0329: ldfld UnityEngine.Vector4[] PropInfo::m_rollParams
IL_032E: callvirt System.Void UnityEngine.Material::SetVectorArray(System.Int32
nameID, UnityEngine.Vector4[] values)
IL_0333: Label18
IL_0333: ldloc.s 14 (PropManager)
IL_0335: ldflda DrawCallData SimulationManagerBase`2<PropManager,
PropProperties>::m_drawCallData
IL_033A: dup
IL_033B: ldfld System.Int32 DrawCallData::m_defaultCalls
IL_0340: ldc.i4.1
IL_0341: add
IL_0342: stfld System.Int32 DrawCallData::m_defaultCalls
IL_0347: ldarg.1
IL_0348: ldfld UnityEngine.Mesh PropInfo::m_mesh
IL_034D: ldloc.s 13 (UnityEngine.Matrix4x4)
IL_034F: ldarg.1
IL_0350: ldfld UnityEngine.Material PropInfo::m_material
IL_0355: ldarg.1
IL_0356: ldfld System.Int32 PrefabInfo::m_prefabDataLayer
IL_035B: ldnull
IL_035C: ldc.i4.0
IL_035D: ldloc.s 15 (UnityEngine.MaterialPropertyBlock)
IL_035F: call static System.Void
UnityEngine.Graphics::DrawMesh(UnityEngine.Mesh mesh, UnityEngine.Matrix4x4 matrix,
UnityEngine.Material material, System.Int32 layer, UnityEngine.Camera camera,
System.Int32 submeshIndex, UnityEngine.MaterialPropertyBlock properties)
IL_0364: br => Label19
IL_0369: Label17
IL_0369: ldarg.1
IL_036A: ldfld UnityEngine.Material PropInfo::m_lodMaterialCombined
IL_036F: ldnull
IL_0370: call static System.Boolean
UnityEngine.Object::op_Equality(UnityEngine.Object x, UnityEngine.Object y)
IL_0375: brfalse => Label20
IL_037A: ldloca.s 16 (UnityEngine.Matrix4x4)
IL_037C: initobj UnityEngine.Matrix4x4
IL_0382: ldloca.s 16 (UnityEngine.Matrix4x4)
IL_0384: ldarg.3
IL_0385: ldarg.s 5
IL_0387: ldc.r4 57.29578
IL_038C: mul
IL_038D: call static UnityEngine.Vector3 UnityEngine.Vector3::get_down()
IL_0392: call static UnityEngine.Quaternion
UnityEngine.Quaternion::AngleAxis(System.Single angle, UnityEngine.Vector3 axis)
IL_0397: ldarg.s 4
IL_0399: ldarg.s 4
IL_039B: ldarg.s 4
IL_039D: newobj System.Void UnityEngine.Vector3::.ctor(System.Single x,
System.Single y, System.Single z)
IL_03A2: call System.Void UnityEngine.Matrix4x4::SetTRS(UnityEngine.Vector3
pos, UnityEngine.Quaternion q, UnityEngine.Vector3 s)
IL_03A7: call static PropManager
ColossalFramework.Singleton`1<PropManager>::get_instance()
IL_03AC: stloc.s 17 (PropManager)
IL_03AE: ldloc.s 17 (PropManager)
IL_03B0: ldfld UnityEngine.MaterialPropertyBlock PropManager::m_materialBlock
IL_03B5: stloc.s 18 (UnityEngine.MaterialPropertyBlock)
IL_03B7: ldloc.s 18 (UnityEngine.MaterialPropertyBlock)
IL_03B9: callvirt System.Void UnityEngine.MaterialPropertyBlock::Clear()
IL_03BE: ldloc.s 18 (UnityEngine.MaterialPropertyBlock)
IL_03C0: ldloc.s 17 (PropManager)
IL_03C2: ldfld System.Int32 PropManager::ID_Color
IL_03C7: ldarg.s 6
IL_03C9: callvirt System.Void
UnityEngine.MaterialPropertyBlock::SetColor(System.Int32 nameID, UnityEngine.Color
value)
IL_03CE: ldloc.s 18 (UnityEngine.MaterialPropertyBlock)
IL_03D0: ldloc.s 17 (PropManager)
IL_03D2: ldfld System.Int32 PropManager::ID_ObjectIndex
IL_03D7: ldarg.s 7
IL_03D9: callvirt System.Void
UnityEngine.MaterialPropertyBlock::SetVector(System.Int32 nameID,
UnityEngine.Vector4 value)
IL_03DE: ldarg.1
IL_03DF: ldfld UnityEngine.Vector4[] PropInfo::m_rollLocation
IL_03E4: brfalse => Label21
IL_03E9: ldarg.1
IL_03EA: ldfld UnityEngine.Material PropInfo::m_material
IL_03EF: ldloc.s 17 (PropManager)
IL_03F1: ldfld System.Int32 PropManager::ID_RollLocation
IL_03F6: ldarg.1
IL_03F7: ldfld UnityEngine.Vector4[] PropInfo::m_rollLocation
IL_03FC: callvirt System.Void UnityEngine.Material::SetVectorArray(System.Int32
nameID, UnityEngine.Vector4[] values)
IL_0401: ldarg.1
IL_0402: ldfld UnityEngine.Material PropInfo::m_material
IL_0407: ldloc.s 17 (PropManager)
IL_0409: ldfld System.Int32 PropManager::ID_RollParams
IL_040E: ldarg.1
IL_040F: ldfld UnityEngine.Vector4[] PropInfo::m_rollParams
IL_0414: callvirt System.Void UnityEngine.Material::SetVectorArray(System.Int32
nameID, UnityEngine.Vector4[] values)
IL_0419: Label21
IL_0419: ldloc.s 17 (PropManager)
IL_041B: ldflda DrawCallData SimulationManagerBase`2<PropManager,
PropProperties>::m_drawCallData
IL_0420: dup
IL_0421: ldfld System.Int32 DrawCallData::m_defaultCalls
IL_0426: ldc.i4.1
IL_0427: add
IL_0428: stfld System.Int32 DrawCallData::m_defaultCalls
IL_042D: ldarg.1
IL_042E: ldfld UnityEngine.Mesh PropInfo::m_lodMesh
IL_0433: ldloc.s 16 (UnityEngine.Matrix4x4)
IL_0435: ldarg.1
IL_0436: ldfld UnityEngine.Material PropInfo::m_lodMaterial
IL_043B: ldarg.1
IL_043C: ldfld System.Int32 PrefabInfo::m_prefabDataLayer
IL_0441: ldnull
IL_0442: ldc.i4.0
IL_0443: ldloc.s 18 (UnityEngine.MaterialPropertyBlock)
IL_0445: call static System.Void
UnityEngine.Graphics::DrawMesh(UnityEngine.Mesh mesh, UnityEngine.Matrix4x4 matrix,
UnityEngine.Material material, System.Int32 layer, UnityEngine.Camera camera,
System.Int32 submeshIndex, UnityEngine.MaterialPropertyBlock properties)
IL_044A: br => Label22
IL_044F: Label20
IL_044F: ldarga.s 7
IL_0451: ldarg.s 4
IL_0453: stfld System.Single UnityEngine.Vector4::w
IL_0458: ldarg.1
IL_0459: ldfld UnityEngine.Vector4[] PropInfo::m_lodLocations
IL_045E: ldarg.1
IL_045F: ldfld System.Int32 PropInfo::m_lodCount
IL_0464: ldelema UnityEngine.Vector4
IL_0469: ldarga.s 3
IL_046B: ldfld System.Single UnityEngine.Vector3::x
IL_0470: ldarga.s 3
IL_0472: ldfld System.Single UnityEngine.Vector3::y
IL_0477: ldarga.s 3
IL_0479: ldfld System.Single UnityEngine.Vector3::z
IL_047E: ldarg.s 5
IL_0480: newobj System.Void UnityEngine.Vector4::.ctor(System.Single x,
System.Single y, System.Single z, System.Single w)
IL_0485: stobj UnityEngine.Vector4
IL_048A: ldarg.1
IL_048B: ldfld UnityEngine.Vector4[] PropInfo::m_lodObjectIndices
IL_0490: ldarg.1
IL_0491: ldfld System.Int32 PropInfo::m_lodCount
IL_0496: ldelema UnityEngine.Vector4
IL_049B: ldarg.s 7
IL_049D: stobj UnityEngine.Vector4
IL_04A2: ldarg.1
IL_04A3: ldfld UnityEngine.Vector4[] PropInfo::m_lodColors
IL_04A8: ldarg.1
IL_04A9: ldfld System.Int32 PropInfo::m_lodCount
IL_04AE: ldelema UnityEngine.Vector4
IL_04B3: ldarga.s 6
IL_04B5: call UnityEngine.Color UnityEngine.Color::get_linear()
IL_04BA: call static UnityEngine.Vector4
UnityEngine.Color::op_Implicit(UnityEngine.Color c)
IL_04BF: stobj UnityEngine.Vector4
IL_04C4: ldarg.1
IL_04C5: ldarg.1
IL_04C6: ldfld UnityEngine.Vector3 PropInfo::m_lodMin
IL_04CB: ldarg.3
IL_04CC: call static UnityEngine.Vector3
UnityEngine.Vector3::Min(UnityEngine.Vector3 lhs, UnityEngine.Vector3 rhs)
IL_04D1: stfld UnityEngine.Vector3 PropInfo::m_lodMin
IL_04D6: ldarg.1
IL_04D7: ldarg.1
IL_04D8: ldfld UnityEngine.Vector3 PropInfo::m_lodMax
IL_04DD: ldarg.3
IL_04DE: call static UnityEngine.Vector3
UnityEngine.Vector3::Max(UnityEngine.Vector3 lhs, UnityEngine.Vector3 rhs)
IL_04E3: stfld UnityEngine.Vector3 PropInfo::m_lodMax
IL_04E8: ldarg.1
IL_04E9: dup
IL_04EA: ldfld System.Int32 PropInfo::m_lodCount
IL_04EF: ldc.i4.1
IL_04F0: add
IL_04F1: dup
IL_04F2: stloc.s 19 (System.Int32)
IL_04F4: stfld System.Int32 PropInfo::m_lodCount
IL_04F9: ldloc.s 19 (System.Int32)
IL_04FB: ldarg.1
IL_04FC: ldfld UnityEngine.Vector4[] PropInfo::m_lodLocations
IL_0501: ldlen
IL_0502: conv.i4
IL_0503: bne.un => Label23
IL_0508: ldarg.0
IL_0509: ldarg.1
IL_050A: call static System.Void PropInstance::RenderLod(CameraInfo
cameraInfo, PropInfo info)
IL_050F: // end original
IL_050F: Label0
IL_050F: Label6
IL_050F: Label7
IL_050F: Label19
IL_050F: Label22
IL_050F: Label23
IL_050F: ret
DONE

### Patch: virtual System.Void LightEffect::PopulateGroupData(System.Int32 layer,


InstanceID id, UnityEngine.Vector3 pos, UnityEngine.Vector3 dir, 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
LightEffect::LightEffect.PopulateGroupData_Patch0(LightEffect this, System.Int32
layer, InstanceID id, UnityEngine.Vector3 pos, UnityEngine.Vector3 dir,
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.Boolean
IL_0000: Local var 1: UnityEngine.Vector3
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.Quaternion
IL_0000: Local var 7: UnityEngine.Vector4
IL_0000: Local var 8: UnityEngine.Vector2
IL_0000: Local var 9: ColossalFramework.Math.Randomizer
IL_0000: Local var 10: UnityEngine.Vector2
IL_0000: Local var 11: UnityEngine.Vector2
IL_0000: Local var 12: UnityEngine.Vector2
IL_0000: Local var 13: System.UInt16
IL_0000: Local var 14: UnityEngine.Vector3
IL_0000: Local var 15: UnityEngine.Color
IL_0000: Local var 16: UnityEngine.Color
IL_0000: Local var 17: System.Single
IL_0000: Local var 18: System.Single
IL_0000: Local var 19: System.Int32
IL_0000: // start original
IL_0000: ldarg.1
IL_0001: ldarg.0
IL_0002: ldfld System.Int32 LightEffect::m_groupLayer
IL_0007: beq => Label0
IL_000C: ldarg.1
IL_000D: ldarg.0
IL_000E: ldfld System.Int32 LightEffect::m_groupLayerFloating
IL_0013: bne.un => Label1
IL_0018: Label0
IL_0018: ldarg.1
IL_0019: ldarg.0
IL_001A: ldfld System.Int32 LightEffect::m_groupLayerFloating
IL_001F: ceq
IL_0021: stloc.0
IL_0022: ldloca.s 1 (UnityEngine.Vector3)
IL_0024: ldarg.0
IL_0025: ldfld System.Single LightEffect::m_lightRange
IL_002A: ldarg.0
IL_002B: ldfld System.Single LightEffect::m_lightRange
IL_0030: ldarg.0
IL_0031: ldfld System.Single LightEffect::m_lightRange
IL_0036: call System.Void UnityEngine.Vector3::.ctor(System.Single x,
System.Single y, System.Single z)
IL_003B: ldarg.3
IL_003C: ldloc.1
IL_003D: call static UnityEngine.Vector3
UnityEngine.Vector3::op_Subtraction(UnityEngine.Vector3 a, UnityEngine.Vector3 b)
IL_0042: stloc.2
IL_0043: ldarg.3
IL_0044: ldloc.1
IL_0045: call static UnityEngine.Vector3
UnityEngine.Vector3::op_Addition(UnityEngine.Vector3 a, UnityEngine.Vector3 b)
IL_004A: stloc.3
IL_004B: ldarg.s 9
IL_004D: ldarg.s 9
IL_004F: ldobj UnityEngine.Vector3
IL_0054: ldloc.2
IL_0055: call static UnityEngine.Vector3
UnityEngine.Vector3::Min(UnityEngine.Vector3 lhs, UnityEngine.Vector3 rhs)
IL_005A: stobj UnityEngine.Vector3
IL_005F: ldarg.s 10
IL_0061: ldarg.s 10
IL_0063: ldobj UnityEngine.Vector3
IL_0068: ldloc.3
IL_0069: call static UnityEngine.Vector3
UnityEngine.Vector3::Max(UnityEngine.Vector3 lhs, UnityEngine.Vector3 rhs)
IL_006E: stobj UnityEngine.Vector3
IL_0073: ldarg.3
IL_0074: ldarg.s 7
IL_0076: call static UnityEngine.Vector3
UnityEngine.Vector3::op_Subtraction(UnityEngine.Vector3 a, UnityEngine.Vector3 b)
IL_007B: stloc.s 4 (UnityEngine.Vector3)
IL_007D: ldarg.s 11
IL_007F: ldarg.s 11
IL_0081: ldind.r4
IL_0082: ldc.r4 30000
IL_0087: call static System.Single UnityEngine.Mathf::Max(System.Single a,
System.Single b)
IL_008C: stind.r4
IL_008D: ldarg.0
IL_008E: ldfld UnityEngine.LightType LightEffect::m_lightType
IL_0093: brtrue => Label2
IL_0098: ldarg.s 4
IL_009A: call static UnityEngine.Quaternion
UnityEngine.Quaternion::LookRotation(UnityEngine.Vector3 forward)
IL_009F: stloc.s 6 (UnityEngine.Quaternion)
IL_00A1: ldloc.s 6 (UnityEngine.Quaternion)
IL_00A3: ldarg.0
IL_00A4: ldfld UnityEngine.Quaternion LightEffect::m_lightRotation
IL_00A9: call static UnityEngine.Vector3 UnityEngine.Vector3::get_forward()
IL_00AE: call static UnityEngine.Vector3
UnityEngine.Quaternion::op_Multiply(UnityEngine.Quaternion rotation,
UnityEngine.Vector3 point)
IL_00B3: call static UnityEngine.Vector3
UnityEngine.Quaternion::op_Multiply(UnityEngine.Quaternion rotation,
UnityEngine.Vector3 point)
IL_00B8: stloc.s 5 (UnityEngine.Vector3)
IL_00BA: br => Label3
IL_00BF: Label2
IL_00BF: call static UnityEngine.Vector3 UnityEngine.Vector3::get_forward()
IL_00C4: stloc.s 5 (UnityEngine.Vector3)
IL_00C6: Label3
IL_00C6: ldloca.s 7 (UnityEngine.Vector4)
IL_00C8: ldloca.s 5 (UnityEngine.Vector3)
IL_00CA: ldfld System.Single UnityEngine.Vector3::x
IL_00CF: ldloca.s 5 (UnityEngine.Vector3)
IL_00D1: ldfld System.Single UnityEngine.Vector3::y
IL_00D6: ldloca.s 5 (UnityEngine.Vector3)
IL_00D8: ldfld System.Single UnityEngine.Vector3::z
IL_00DD: ldc.r4 100000
IL_00E2: call System.Void UnityEngine.Vector4::.ctor(System.Single x,
System.Single y, System.Single z, System.Single w)
IL_00E7: ldarg.0
IL_00E8: ldfld UnityEngine.LightType LightEffect::m_lightType
IL_00ED: brtrue => Label4
IL_00F2: ldloca.s 7 (UnityEngine.Vector4)
IL_00F4: ldc.r4 0.01745329
IL_00F9: ldarg.0
IL_00FA: ldfld System.Single LightEffect::m_lightSpotAngle
IL_00FF: mul
IL_0100: ldc.r4 0.5
IL_0105: mul
IL_0106: call static System.Single UnityEngine.Mathf::Cos(System.Single f)
IL_010B: neg
IL_010C: stfld System.Single UnityEngine.Vector4::w
IL_0111: Label4
IL_0111: ldloca.s 8 (UnityEngine.Vector2)
IL_0113: ldc.r4 1
IL_0118: ldarg.0
IL_0119: ldfld System.Single LightEffect::m_lightRange
IL_011E: ldarg.0
IL_011F: ldfld System.Single LightEffect::m_lightRange
IL_0124: mul
IL_0125: div
IL_0126: ldarg.0
IL_0127: ldfld System.Single LightEffect::m_lightIntensity
IL_012C: call System.Void UnityEngine.Vector2::.ctor(System.Single x,
System.Single y)
IL_0131: ldloca.s 9 (ColossalFramework.Math.Randomizer)
IL_0133: ldarga.s 2
IL_0135: call System.UInt32 InstanceID::get_Index()
IL_013A: call System.Void
ColossalFramework.Math.Randomizer::.ctor(System.UInt32 _seed)
IL_013F: ldloca.s 10 (UnityEngine.Vector2)
IL_0141: ldarg.0
IL_0142: ldflda UnityEngine.Vector2 LightEffect::m_offRange
IL_0147: ldfld System.Single UnityEngine.Vector2::x
IL_014C: ldloca.s 9 (ColossalFramework.Math.Randomizer)
IL_014E: ldc.i4 100000
IL_0153: call System.Int32
ColossalFramework.Math.Randomizer::Int32(System.UInt32 range)
IL_0158: conv.r4
IL_0159: ldc.r4 1E-05
IL_015E: mul
IL_015F: ldarg.0
IL_0160: ldflda UnityEngine.Vector2 LightEffect::m_offRange
IL_0165: ldfld System.Single UnityEngine.Vector2::y
IL_016A: ldarg.0
IL_016B: ldflda UnityEngine.Vector2 LightEffect::m_offRange
IL_0170: ldfld System.Single UnityEngine.Vector2::x
IL_0175: sub
IL_0176: mul
IL_0177: add
IL_0178: stfld System.Single UnityEngine.Vector2::x
IL_017D: ldloca.s 10 (UnityEngine.Vector2)
IL_017F: ldarg.0
IL_0180: ldfld BlinkType LightEffect::m_blinkType
IL_0185: conv.r4
IL_0186: stfld System.Single UnityEngine.Vector2::y
IL_018B: ldarg.2
IL_018C: call static System.UInt16 EffectInfo::GetBuilding(InstanceID id)
IL_0191: stloc.s 13 (System.UInt16)
IL_0193: ldloc.s 13 (System.UInt16)
IL_0195: brfalse => Label5
IL_019A: ldloc.s 13 (System.UInt16)
IL_019C: call static UnityEngine.Vector4
RenderManager::GetColorLocation(System.UInt32 instanceHolder)
IL_01A1: call static UnityEngine.Vector2
UnityEngine.Vector4::op_Implicit(UnityEngine.Vector4 v)
IL_01A6: stloc.s 11 (UnityEngine.Vector2)
IL_01A8: ldloc.0
IL_01A9: brfalse => Label6
IL_01AE: call static BuildingManager
ColossalFramework.Singleton`1<BuildingManager>::get_instance()
IL_01B3: ldfld Array16`1<Building> BuildingManager::m_buildings
IL_01B8: ldfld Building[] Array16`1<Building>::m_buffer
IL_01BD: ldloc.s 13 (System.UInt16)
IL_01BF: ldelema Building
IL_01C4: call UnityEngine.Vector3 Building::CalculateMeshPosition()
IL_01C9: stloc.s 14 (UnityEngine.Vector3)
IL_01CB: ldloc.s 14 (UnityEngine.Vector3)
IL_01CD: call static UnityEngine.Vector2
ColossalFramework.Math.VectorUtils::XZ(UnityEngine.Vector3 v)
IL_01D2: stloc.s 12 (UnityEngine.Vector2)
IL_01D4: ldarga.s 3
IL_01D6: dup
IL_01D7: ldfld System.Single UnityEngine.Vector3::y
IL_01DC: ldloca.s 14 (UnityEngine.Vector3)
IL_01DE: ldfld System.Single UnityEngine.Vector3::y
IL_01E3: sub
IL_01E4: stfld System.Single UnityEngine.Vector3::y
IL_01E9: ldloca.s 4 (UnityEngine.Vector3)
IL_01EB: dup
IL_01EC: ldfld System.Single UnityEngine.Vector3::y
IL_01F1: ldloca.s 14 (UnityEngine.Vector3)
IL_01F3: ldfld System.Single UnityEngine.Vector3::y
IL_01F8: sub
IL_01F9: stfld System.Single UnityEngine.Vector3::y
IL_01FE: br => Label7
IL_0203: Label6
IL_0203: call static UnityEngine.Vector2 UnityEngine.Vector2::get_zero()
IL_0208: stloc.s 12 (UnityEngine.Vector2)
IL_020A: Label7
IL_020A: br => Label8
IL_020F: Label5
IL_020F: ldsfld UnityEngine.Vector4 RenderManager::DefaultColorLocation
IL_0214: call static UnityEngine.Vector2
UnityEngine.Vector4::op_Implicit(UnityEngine.Vector4 v)
IL_0219: stloc.s 11 (UnityEngine.Vector2)
IL_021B: call static UnityEngine.Vector2 UnityEngine.Vector2::get_zero()
IL_0220: stloc.s 12 (UnityEngine.Vector2)
IL_0222: Label8
IL_0222: ldarg.0
IL_0223: ldfld UnityEngine.Color LightEffect::m_lightColor
IL_0228: stloc.s 15 (UnityEngine.Color)
IL_022A: ldarg.0
IL_022B: ldfld UnityEngine.Color[] LightEffect::m_variationColors
IL_0230: brfalse => Label9
IL_0235: ldarg.0
IL_0236: ldfld UnityEngine.Color[] LightEffect::m_variationColors
IL_023B: ldlen
IL_023C: conv.i4
IL_023D: brfalse => Label10
IL_0242: ldarg.0
IL_0243: ldfld UnityEngine.Color[] LightEffect::m_variationColors
IL_0248: ldloca.s 9 (ColossalFramework.Math.Randomizer)
IL_024A: ldarg.0
IL_024B: ldfld UnityEngine.Color[] LightEffect::m_variationColors
IL_0250: ldlen
IL_0251: conv.i4
IL_0252: call System.Int32
ColossalFramework.Math.Randomizer::Int32(System.UInt32 range)
IL_0257: ldelema UnityEngine.Color
IL_025C: ldobj UnityEngine.Color
IL_0261: stloc.s 16 (UnityEngine.Color)
IL_0263: ldloc.s 15 (UnityEngine.Color)
IL_0265: ldloc.s 16 (UnityEngine.Color)
IL_0267: ldloca.s 9 (ColossalFramework.Math.Randomizer)
IL_0269: ldc.i4 1000
IL_026E: call System.Int32
ColossalFramework.Math.Randomizer::Int32(System.UInt32 range)
IL_0273: conv.r4
IL_0274: ldc.r4 0.001
IL_0279: mul
IL_027A: call static UnityEngine.Color
UnityEngine.Color::Lerp(UnityEngine.Color a, UnityEngine.Color b, System.Single t)
IL_027F: stloc.s 15 (UnityEngine.Color)
IL_0281: Label9
IL_0281: Label10
IL_0281: ldloca.s 15 (UnityEngine.Color)
IL_0283: call UnityEngine.Color UnityEngine.Color::get_linear()
IL_0288: stloc.s 15 (UnityEngine.Color)
IL_028A: ldloca.s 15 (UnityEngine.Color)
IL_028C: ldarg.0
IL_028D: ldfld UnityEngine.LightType LightEffect::m_lightType
IL_0292: brtrue => Label11
IL_0297: ldarg.0
IL_0298: ldfld System.Single LightEffect::m_spotLeaking
IL_029D: br => Label12
IL_02A2: Label11
IL_02A2: ldc.r4 0
IL_02A7: Label12
IL_02A7: stfld System.Single UnityEngine.Color::a
IL_02AC: ldarg.0
IL_02AD: ldfld System.Single LightEffect::m_lightRange
IL_02B2: ldc.r4 0.5235988
IL_02B7: call static System.Single UnityEngine.Mathf::Cos(System.Single f)
IL_02BC: div
IL_02BD: stloc.s 17 (System.Single)
IL_02BF: ldloc.s 17 (System.Single)
IL_02C1: ldc.r4 0.5
IL_02C6: mul
IL_02C7: stloc.s 18 (System.Single)
IL_02C9: ldarg.s 8
IL_02CB: ldfld UnityEngine.Vector3[] MeshData::m_vertices
IL_02D0: ldarg.s 5
IL_02D2: ldind.i4
IL_02D3: ldelema UnityEngine.Vector3
IL_02D8: ldloca.s 4 (UnityEngine.Vector3)
IL_02DA: ldfld System.Single UnityEngine.Vector3::x
IL_02DF: ldloc.s 18 (System.Single)
IL_02E1: sub
IL_02E2: ldloca.s 4 (UnityEngine.Vector3)
IL_02E4: ldfld System.Single UnityEngine.Vector3::y
IL_02E9: ldarg.0
IL_02EA: ldfld System.Single LightEffect::m_lightRange
IL_02EF: add
IL_02F0: ldloca.s 4 (UnityEngine.Vector3)
IL_02F2: ldfld System.Single UnityEngine.Vector3::z
IL_02F7: ldarg.0
IL_02F8: ldfld System.Single LightEffect::m_lightRange
IL_02FD: add
IL_02FE: newobj System.Void UnityEngine.Vector3::.ctor(System.Single x,
System.Single y, System.Single z)
IL_0303: stobj UnityEngine.Vector3
IL_0308: ldarg.s 8
IL_030A: ldfld UnityEngine.Vector3[] MeshData::m_normals
IL_030F: ldarg.s 5
IL_0311: ldind.i4
IL_0312: ldelema UnityEngine.Vector3
IL_0317: ldarg.3
IL_0318: stobj UnityEngine.Vector3
IL_031D: ldarg.s 8
IL_031F: ldfld UnityEngine.Vector4[] MeshData::m_tangents
IL_0324: ldarg.s 5
IL_0326: ldind.i4
IL_0327: ldelema UnityEngine.Vector4
IL_032C: ldloc.s 7 (UnityEngine.Vector4)
IL_032E: stobj UnityEngine.Vector4
IL_0333: ldarg.s 8
IL_0335: ldfld UnityEngine.Vector2[] MeshData::m_uvs
IL_033A: ldarg.s 5
IL_033C: ldind.i4
IL_033D: ldelema UnityEngine.Vector2
IL_0342: ldloc.s 8 (UnityEngine.Vector2)
IL_0344: stobj UnityEngine.Vector2
IL_0349: ldarg.s 8
IL_034B: ldfld UnityEngine.Vector2[] MeshData::m_uvs2
IL_0350: ldarg.s 5
IL_0352: ldind.i4
IL_0353: ldelema UnityEngine.Vector2
IL_0358: ldloc.s 10 (UnityEngine.Vector2)
IL_035A: stobj UnityEngine.Vector2
IL_035F: ldarg.s 8
IL_0361: ldfld UnityEngine.Vector2[] MeshData::m_uvs3
IL_0366: ldarg.s 5
IL_0368: ldind.i4
IL_0369: ldelema UnityEngine.Vector2
IL_036E: ldloc.s 11 (UnityEngine.Vector2)
IL_0370: stobj UnityEngine.Vector2
IL_0375: ldloc.0
IL_0376: brfalse => Label13
IL_037B: ldarg.s 8
IL_037D: ldfld UnityEngine.Vector2[] MeshData::m_uvs4
IL_0382: ldarg.s 5
IL_0384: ldind.i4
IL_0385: ldelema UnityEngine.Vector2
IL_038A: ldloc.s 12 (UnityEngine.Vector2)
IL_038C: stobj UnityEngine.Vector2
IL_0391: Label13
IL_0391: ldarg.s 8
IL_0393: ldfld UnityEngine.Color32[] MeshData::m_colors
IL_0398: ldarg.s 5
IL_039A: ldind.i4
IL_039B: ldelema UnityEngine.Color32
IL_03A0: ldloc.s 15 (UnityEngine.Color)
IL_03A2: call static UnityEngine.Color32
UnityEngine.Color32::op_Implicit(UnityEngine.Color c)
IL_03A7: stobj UnityEngine.Color32
IL_03AC: ldarg.s 5
IL_03AE: ldarg.s 5
IL_03B0: ldind.i4
IL_03B1: ldc.i4.1
IL_03B2: add
IL_03B3: stind.i4
IL_03B4: ldarg.s 8
IL_03B6: ldfld UnityEngine.Vector3[] MeshData::m_vertices
IL_03BB: ldarg.s 5
IL_03BD: ldind.i4
IL_03BE: ldelema UnityEngine.Vector3
IL_03C3: ldloca.s 4 (UnityEngine.Vector3)
IL_03C5: ldfld System.Single UnityEngine.Vector3::x
IL_03CA: ldloc.s 18 (System.Single)
IL_03CC: add
IL_03CD: ldloca.s 4 (UnityEngine.Vector3)
IL_03CF: ldfld System.Single UnityEngine.Vector3::y
IL_03D4: ldarg.0
IL_03D5: ldfld System.Single LightEffect::m_lightRange
IL_03DA: add
IL_03DB: ldloca.s 4 (UnityEngine.Vector3)
IL_03DD: ldfld System.Single UnityEngine.Vector3::z
IL_03E2: ldarg.0
IL_03E3: ldfld System.Single LightEffect::m_lightRange
IL_03E8: add
IL_03E9: newobj System.Void UnityEngine.Vector3::.ctor(System.Single x,
System.Single y, System.Single z)
IL_03EE: stobj UnityEngine.Vector3
IL_03F3: ldarg.s 8
IL_03F5: ldfld UnityEngine.Vector3[] MeshData::m_normals
IL_03FA: ldarg.s 5
IL_03FC: ldind.i4
IL_03FD: ldelema UnityEngine.Vector3
IL_0402: ldarg.3
IL_0403: stobj UnityEngine.Vector3
IL_0408: ldarg.s 8
IL_040A: ldfld UnityEngine.Vector4[] MeshData::m_tangents
IL_040F: ldarg.s 5
IL_0411: ldind.i4
IL_0412: ldelema UnityEngine.Vector4
IL_0417: ldloc.s 7 (UnityEngine.Vector4)
IL_0419: stobj UnityEngine.Vector4
IL_041E: ldarg.s 8
IL_0420: ldfld UnityEngine.Vector2[] MeshData::m_uvs
IL_0425: ldarg.s 5
IL_0427: ldind.i4
IL_0428: ldelema UnityEngine.Vector2
IL_042D: ldloc.s 8 (UnityEngine.Vector2)
IL_042F: stobj UnityEngine.Vector2
IL_0434: ldarg.s 8
IL_0436: ldfld UnityEngine.Vector2[] MeshData::m_uvs2
IL_043B: ldarg.s 5
IL_043D: ldind.i4
IL_043E: ldelema UnityEngine.Vector2
IL_0443: ldloc.s 10 (UnityEngine.Vector2)
IL_0445: stobj UnityEngine.Vector2
IL_044A: ldarg.s 8
IL_044C: ldfld UnityEngine.Vector2[] MeshData::m_uvs3
IL_0451: ldarg.s 5
IL_0453: ldind.i4
IL_0454: ldelema UnityEngine.Vector2
IL_0459: ldloc.s 11 (UnityEngine.Vector2)
IL_045B: stobj UnityEngine.Vector2
IL_0460: ldloc.0
IL_0461: brfalse => Label14
IL_0466: ldarg.s 8
IL_0468: ldfld UnityEngine.Vector2[] MeshData::m_uvs4
IL_046D: ldarg.s 5
IL_046F: ldind.i4
IL_0470: ldelema UnityEngine.Vector2
IL_0475: ldloc.s 12 (UnityEngine.Vector2)
IL_0477: stobj UnityEngine.Vector2
IL_047C: Label14
IL_047C: ldarg.s 8
IL_047E: ldfld UnityEngine.Color32[] MeshData::m_colors
IL_0483: ldarg.s 5
IL_0485: ldind.i4
IL_0486: ldelema UnityEngine.Color32
IL_048B: ldloc.s 15 (UnityEngine.Color)
IL_048D: call static UnityEngine.Color32
UnityEngine.Color32::op_Implicit(UnityEngine.Color c)
IL_0492: stobj UnityEngine.Color32
IL_0497: ldarg.s 5
IL_0499: ldarg.s 5
IL_049B: ldind.i4
IL_049C: ldc.i4.1
IL_049D: add
IL_049E: stind.i4
IL_049F: ldarg.s 8
IL_04A1: ldfld UnityEngine.Vector3[] MeshData::m_vertices
IL_04A6: ldarg.s 5
IL_04A8: ldind.i4
IL_04A9: ldelema UnityEngine.Vector3
IL_04AE: ldloca.s 4 (UnityEngine.Vector3)
IL_04B0: ldfld System.Single UnityEngine.Vector3::x
IL_04B5: ldloc.s 17 (System.Single)
IL_04B7: add
IL_04B8: ldloca.s 4 (UnityEngine.Vector3)
IL_04BA: ldfld System.Single UnityEngine.Vector3::y
IL_04BF: ldloca.s 4 (UnityEngine.Vector3)
IL_04C1: ldfld System.Single UnityEngine.Vector3::z
IL_04C6: ldarg.0
IL_04C7: ldfld System.Single LightEffect::m_lightRange
IL_04CC: add
IL_04CD: newobj System.Void UnityEngine.Vector3::.ctor(System.Single x,
System.Single y, System.Single z)
IL_04D2: stobj UnityEngine.Vector3
IL_04D7: ldarg.s 8
IL_04D9: ldfld UnityEngine.Vector3[] MeshData::m_normals
IL_04DE: ldarg.s 5
IL_04E0: ldind.i4
IL_04E1: ldelema UnityEngine.Vector3
IL_04E6: ldarg.3
IL_04E7: stobj UnityEngine.Vector3
IL_04EC: ldarg.s 8
IL_04EE: ldfld UnityEngine.Vector4[] MeshData::m_tangents
IL_04F3: ldarg.s 5
IL_04F5: ldind.i4
IL_04F6: ldelema UnityEngine.Vector4
IL_04FB: ldloc.s 7 (UnityEngine.Vector4)
IL_04FD: stobj UnityEngine.Vector4
IL_0502: ldarg.s 8
IL_0504: ldfld UnityEngine.Vector2[] MeshData::m_uvs
IL_0509: ldarg.s 5
IL_050B: ldind.i4
IL_050C: ldelema UnityEngine.Vector2
IL_0511: ldloc.s 8 (UnityEngine.Vector2)
IL_0513: stobj UnityEngine.Vector2
IL_0518: ldarg.s 8
IL_051A: ldfld UnityEngine.Vector2[] MeshData::m_uvs2
IL_051F: ldarg.s 5
IL_0521: ldind.i4
IL_0522: ldelema UnityEngine.Vector2
IL_0527: ldloc.s 10 (UnityEngine.Vector2)
IL_0529: stobj UnityEngine.Vector2
IL_052E: ldarg.s 8
IL_0530: ldfld UnityEngine.Vector2[] MeshData::m_uvs3
IL_0535: ldarg.s 5
IL_0537: ldind.i4
IL_0538: ldelema UnityEngine.Vector2
IL_053D: ldloc.s 11 (UnityEngine.Vector2)
IL_053F: stobj UnityEngine.Vector2
IL_0544: ldloc.0
IL_0545: brfalse => Label15
IL_054A: ldarg.s 8
IL_054C: ldfld UnityEngine.Vector2[] MeshData::m_uvs4
IL_0551: ldarg.s 5
IL_0553: ldind.i4
IL_0554: ldelema UnityEngine.Vector2
IL_0559: ldloc.s 12 (UnityEngine.Vector2)
IL_055B: stobj UnityEngine.Vector2
IL_0560: Label15
IL_0560: ldarg.s 8
IL_0562: ldfld UnityEngine.Color32[] MeshData::m_colors
IL_0567: ldarg.s 5
IL_0569: ldind.i4
IL_056A: ldelema UnityEngine.Color32
IL_056F: ldloc.s 15 (UnityEngine.Color)
IL_0571: call static UnityEngine.Color32
UnityEngine.Color32::op_Implicit(UnityEngine.Color c)
IL_0576: stobj UnityEngine.Color32
IL_057B: ldarg.s 5
IL_057D: ldarg.s 5
IL_057F: ldind.i4
IL_0580: ldc.i4.1
IL_0581: add
IL_0582: stind.i4
IL_0583: ldarg.s 8
IL_0585: ldfld UnityEngine.Vector3[] MeshData::m_vertices
IL_058A: ldarg.s 5
IL_058C: ldind.i4
IL_058D: ldelema UnityEngine.Vector3
IL_0592: ldloca.s 4 (UnityEngine.Vector3)
IL_0594: ldfld System.Single UnityEngine.Vector3::x
IL_0599: ldloc.s 18 (System.Single)
IL_059B: add
IL_059C: ldloca.s 4 (UnityEngine.Vector3)
IL_059E: ldfld System.Single UnityEngine.Vector3::y
IL_05A3: ldarg.0
IL_05A4: ldfld System.Single LightEffect::m_lightRange
IL_05A9: sub
IL_05AA: ldloca.s 4 (UnityEngine.Vector3)
IL_05AC: ldfld System.Single UnityEngine.Vector3::z
IL_05B1: ldarg.0
IL_05B2: ldfld System.Single LightEffect::m_lightRange
IL_05B7: add
IL_05B8: newobj System.Void UnityEngine.Vector3::.ctor(System.Single x,
System.Single y, System.Single z)
IL_05BD: stobj UnityEngine.Vector3
IL_05C2: ldarg.s 8
IL_05C4: ldfld UnityEngine.Vector3[] MeshData::m_normals
IL_05C9: ldarg.s 5
IL_05CB: ldind.i4
IL_05CC: ldelema UnityEngine.Vector3
IL_05D1: ldarg.3
IL_05D2: stobj UnityEngine.Vector3
IL_05D7: ldarg.s 8
IL_05D9: ldfld UnityEngine.Vector4[] MeshData::m_tangents
IL_05DE: ldarg.s 5
IL_05E0: ldind.i4
IL_05E1: ldelema UnityEngine.Vector4
IL_05E6: ldloc.s 7 (UnityEngine.Vector4)
IL_05E8: stobj UnityEngine.Vector4
IL_05ED: ldarg.s 8
IL_05EF: ldfld UnityEngine.Vector2[] MeshData::m_uvs
IL_05F4: ldarg.s 5
IL_05F6: ldind.i4
IL_05F7: ldelema UnityEngine.Vector2
IL_05FC: ldloc.s 8 (UnityEngine.Vector2)
IL_05FE: stobj UnityEngine.Vector2
IL_0603: ldarg.s 8
IL_0605: ldfld UnityEngine.Vector2[] MeshData::m_uvs2
IL_060A: ldarg.s 5
IL_060C: ldind.i4
IL_060D: ldelema UnityEngine.Vector2
IL_0612: ldloc.s 10 (UnityEngine.Vector2)
IL_0614: stobj UnityEngine.Vector2
IL_0619: ldarg.s 8
IL_061B: ldfld UnityEngine.Vector2[] MeshData::m_uvs3
IL_0620: ldarg.s 5
IL_0622: ldind.i4
IL_0623: ldelema UnityEngine.Vector2
IL_0628: ldloc.s 11 (UnityEngine.Vector2)
IL_062A: stobj UnityEngine.Vector2
IL_062F: ldloc.0
IL_0630: brfalse => Label16
IL_0635: ldarg.s 8
IL_0637: ldfld UnityEngine.Vector2[] MeshData::m_uvs4
IL_063C: ldarg.s 5
IL_063E: ldind.i4
IL_063F: ldelema UnityEngine.Vector2
IL_0644: ldloc.s 12 (UnityEngine.Vector2)
IL_0646: stobj UnityEngine.Vector2
IL_064B: Label16
IL_064B: ldarg.s 8
IL_064D: ldfld UnityEngine.Color32[] MeshData::m_colors
IL_0652: ldarg.s 5
IL_0654: ldind.i4
IL_0655: ldelema UnityEngine.Color32
IL_065A: ldloc.s 15 (UnityEngine.Color)
IL_065C: call static UnityEngine.Color32
UnityEngine.Color32::op_Implicit(UnityEngine.Color c)
IL_0661: stobj UnityEngine.Color32
IL_0666: ldarg.s 5
IL_0668: ldarg.s 5
IL_066A: ldind.i4
IL_066B: ldc.i4.1
IL_066C: add
IL_066D: stind.i4
IL_066E: ldarg.s 8
IL_0670: ldfld UnityEngine.Vector3[] MeshData::m_vertices
IL_0675: ldarg.s 5
IL_0677: ldind.i4
IL_0678: ldelema UnityEngine.Vector3
IL_067D: ldloca.s 4 (UnityEngine.Vector3)
IL_067F: ldfld System.Single UnityEngine.Vector3::x
IL_0684: ldloc.s 18 (System.Single)
IL_0686: sub
IL_0687: ldloca.s 4 (UnityEngine.Vector3)
IL_0689: ldfld System.Single UnityEngine.Vector3::y
IL_068E: ldarg.0
IL_068F: ldfld System.Single LightEffect::m_lightRange
IL_0694: sub
IL_0695: ldloca.s 4 (UnityEngine.Vector3)
IL_0697: ldfld System.Single UnityEngine.Vector3::z
IL_069C: ldarg.0
IL_069D: ldfld System.Single LightEffect::m_lightRange
IL_06A2: add
IL_06A3: newobj System.Void UnityEngine.Vector3::.ctor(System.Single x,
System.Single y, System.Single z)
IL_06A8: stobj UnityEngine.Vector3
IL_06AD: ldarg.s 8
IL_06AF: ldfld UnityEngine.Vector3[] MeshData::m_normals
IL_06B4: ldarg.s 5
IL_06B6: ldind.i4
IL_06B7: ldelema UnityEngine.Vector3
IL_06BC: ldarg.3
IL_06BD: stobj UnityEngine.Vector3
IL_06C2: ldarg.s 8
IL_06C4: ldfld UnityEngine.Vector4[] MeshData::m_tangents
IL_06C9: ldarg.s 5
IL_06CB: ldind.i4
IL_06CC: ldelema UnityEngine.Vector4
IL_06D1: ldloc.s 7 (UnityEngine.Vector4)
IL_06D3: stobj UnityEngine.Vector4
IL_06D8: ldarg.s 8
IL_06DA: ldfld UnityEngine.Vector2[] MeshData::m_uvs
IL_06DF: ldarg.s 5
IL_06E1: ldind.i4
IL_06E2: ldelema UnityEngine.Vector2
IL_06E7: ldloc.s 8 (UnityEngine.Vector2)
IL_06E9: stobj UnityEngine.Vector2
IL_06EE: ldarg.s 8
IL_06F0: ldfld UnityEngine.Vector2[] MeshData::m_uvs2
IL_06F5: ldarg.s 5
IL_06F7: ldind.i4
IL_06F8: ldelema UnityEngine.Vector2
IL_06FD: ldloc.s 10 (UnityEngine.Vector2)
IL_06FF: stobj UnityEngine.Vector2
IL_0704: ldarg.s 8
IL_0706: ldfld UnityEngine.Vector2[] MeshData::m_uvs3
IL_070B: ldarg.s 5
IL_070D: ldind.i4
IL_070E: ldelema UnityEngine.Vector2
IL_0713: ldloc.s 11 (UnityEngine.Vector2)
IL_0715: stobj UnityEngine.Vector2
IL_071A: ldloc.0
IL_071B: brfalse => Label17
IL_0720: ldarg.s 8
IL_0722: ldfld UnityEngine.Vector2[] MeshData::m_uvs4
IL_0727: ldarg.s 5
IL_0729: ldind.i4
IL_072A: ldelema UnityEngine.Vector2
IL_072F: ldloc.s 12 (UnityEngine.Vector2)
IL_0731: stobj UnityEngine.Vector2
IL_0736: Label17
IL_0736: ldarg.s 8
IL_0738: ldfld UnityEngine.Color32[] MeshData::m_colors
IL_073D: ldarg.s 5
IL_073F: ldind.i4
IL_0740: ldelema UnityEngine.Color32
IL_0745: ldloc.s 15 (UnityEngine.Color)
IL_0747: call static UnityEngine.Color32
UnityEngine.Color32::op_Implicit(UnityEngine.Color c)
IL_074C: stobj UnityEngine.Color32
IL_0751: ldarg.s 5
IL_0753: ldarg.s 5
IL_0755: ldind.i4
IL_0756: ldc.i4.1
IL_0757: add
IL_0758: stind.i4
IL_0759: ldarg.s 8
IL_075B: ldfld UnityEngine.Vector3[] MeshData::m_vertices
IL_0760: ldarg.s 5
IL_0762: ldind.i4
IL_0763: ldelema UnityEngine.Vector3
IL_0768: ldloca.s 4 (UnityEngine.Vector3)
IL_076A: ldfld System.Single UnityEngine.Vector3::x
IL_076F: ldloc.s 17 (System.Single)
IL_0771: sub
IL_0772: ldloca.s 4 (UnityEngine.Vector3)
IL_0774: ldfld System.Single UnityEngine.Vector3::y
IL_0779: ldloca.s 4 (UnityEngine.Vector3)
IL_077B: ldfld System.Single UnityEngine.Vector3::z
IL_0780: ldarg.0
IL_0781: ldfld System.Single LightEffect::m_lightRange
IL_0786: add
IL_0787: newobj System.Void UnityEngine.Vector3::.ctor(System.Single x,
System.Single y, System.Single z)
IL_078C: stobj UnityEngine.Vector3
IL_0791: ldarg.s 8
IL_0793: ldfld UnityEngine.Vector3[] MeshData::m_normals
IL_0798: ldarg.s 5
IL_079A: ldind.i4
IL_079B: ldelema UnityEngine.Vector3
IL_07A0: ldarg.3
IL_07A1: stobj UnityEngine.Vector3
IL_07A6: ldarg.s 8
IL_07A8: ldfld UnityEngine.Vector4[] MeshData::m_tangents
IL_07AD: ldarg.s 5
IL_07AF: ldind.i4
IL_07B0: ldelema UnityEngine.Vector4
IL_07B5: ldloc.s 7 (UnityEngine.Vector4)
IL_07B7: stobj UnityEngine.Vector4
IL_07BC: ldarg.s 8
IL_07BE: ldfld UnityEngine.Vector2[] MeshData::m_uvs
IL_07C3: ldarg.s 5
IL_07C5: ldind.i4
IL_07C6: ldelema UnityEngine.Vector2
IL_07CB: ldloc.s 8 (UnityEngine.Vector2)
IL_07CD: stobj UnityEngine.Vector2
IL_07D2: ldarg.s 8
IL_07D4: ldfld UnityEngine.Vector2[] MeshData::m_uvs2
IL_07D9: ldarg.s 5
IL_07DB: ldind.i4
IL_07DC: ldelema UnityEngine.Vector2
IL_07E1: ldloc.s 10 (UnityEngine.Vector2)
IL_07E3: stobj UnityEngine.Vector2
IL_07E8: ldarg.s 8
IL_07EA: ldfld UnityEngine.Vector2[] MeshData::m_uvs3
IL_07EF: ldarg.s 5
IL_07F1: ldind.i4
IL_07F2: ldelema UnityEngine.Vector2
IL_07F7: ldloc.s 11 (UnityEngine.Vector2)
IL_07F9: stobj UnityEngine.Vector2
IL_07FE: ldloc.0
IL_07FF: brfalse => Label18
IL_0804: ldarg.s 8
IL_0806: ldfld UnityEngine.Vector2[] MeshData::m_uvs4
IL_080B: ldarg.s 5
IL_080D: ldind.i4
IL_080E: ldelema UnityEngine.Vector2
IL_0813: ldloc.s 12 (UnityEngine.Vector2)
IL_0815: stobj UnityEngine.Vector2
IL_081A: Label18
IL_081A: ldarg.s 8
IL_081C: ldfld UnityEngine.Color32[] MeshData::m_colors
IL_0821: ldarg.s 5
IL_0823: ldind.i4
IL_0824: ldelema UnityEngine.Color32
IL_0829: ldloc.s 15 (UnityEngine.Color)
IL_082B: call static UnityEngine.Color32
UnityEngine.Color32::op_Implicit(UnityEngine.Color c)
IL_0830: stobj UnityEngine.Color32
IL_0835: ldarg.s 5
IL_0837: ldarg.s 5
IL_0839: ldind.i4
IL_083A: ldc.i4.1
IL_083B: add
IL_083C: stind.i4
IL_083D: ldarg.s 8
IL_083F: ldfld System.Int32[] MeshData::m_triangles
IL_0844: ldarg.s 6
IL_0846: ldarg.s 6
IL_0848: ldind.i4
IL_0849: dup
IL_084A: stloc.s 19 (System.Int32)
IL_084C: ldc.i4.1
IL_084D: add
IL_084E: stind.i4
IL_084F: ldloc.s 19 (System.Int32)
IL_0851: ldarg.s 5
IL_0853: ldind.i4
IL_0854: ldc.i4.6
IL_0855: sub
IL_0856: stelem.i4
IL_0857: ldarg.s 8
IL_0859: ldfld System.Int32[] MeshData::m_triangles
IL_085E: ldarg.s 6
IL_0860: ldarg.s 6
IL_0862: ldind.i4
IL_0863: dup
IL_0864: stloc.s 19 (System.Int32)
IL_0866: ldc.i4.1
IL_0867: add
IL_0868: stind.i4
IL_0869: ldloc.s 19 (System.Int32)
IL_086B: ldarg.s 5
IL_086D: ldind.i4
IL_086E: ldc.i4.5
IL_086F: sub
IL_0870: stelem.i4
IL_0871: ldarg.s 8
IL_0873: ldfld System.Int32[] MeshData::m_triangles
IL_0878: ldarg.s 6
IL_087A: ldarg.s 6
IL_087C: ldind.i4
IL_087D: dup
IL_087E: stloc.s 19 (System.Int32)
IL_0880: ldc.i4.1
IL_0881: add
IL_0882: stind.i4
IL_0883: ldloc.s 19 (System.Int32)
IL_0885: ldarg.s 5
IL_0887: ldind.i4
IL_0888: ldc.i4.1
IL_0889: sub
IL_088A: stelem.i4
IL_088B: ldarg.s 8
IL_088D: ldfld System.Int32[] MeshData::m_triangles
IL_0892: ldarg.s 6
IL_0894: ldarg.s 6
IL_0896: ldind.i4
IL_0897: dup
IL_0898: stloc.s 19 (System.Int32)
IL_089A: ldc.i4.1
IL_089B: add
IL_089C: stind.i4
IL_089D: ldloc.s 19 (System.Int32)
IL_089F: ldarg.s 5
IL_08A1: ldind.i4
IL_08A2: ldc.i4.1
IL_08A3: sub
IL_08A4: stelem.i4
IL_08A5: ldarg.s 8
IL_08A7: ldfld System.Int32[] MeshData::m_triangles
IL_08AC: ldarg.s 6
IL_08AE: ldarg.s 6
IL_08B0: ldind.i4
IL_08B1: dup
IL_08B2: stloc.s 19 (System.Int32)
IL_08B4: ldc.i4.1
IL_08B5: add
IL_08B6: stind.i4
IL_08B7: ldloc.s 19 (System.Int32)
IL_08B9: ldarg.s 5
IL_08BB: ldind.i4
IL_08BC: ldc.i4.5
IL_08BD: sub
IL_08BE: stelem.i4
IL_08BF: ldarg.s 8
IL_08C1: ldfld System.Int32[] MeshData::m_triangles
IL_08C6: ldarg.s 6
IL_08C8: ldarg.s 6
IL_08CA: ldind.i4
IL_08CB: dup
IL_08CC: stloc.s 19 (System.Int32)
IL_08CE: ldc.i4.1
IL_08CF: add
IL_08D0: stind.i4
IL_08D1: ldloc.s 19 (System.Int32)
IL_08D3: ldarg.s 5
IL_08D5: ldind.i4
IL_08D6: ldc.i4.4
IL_08D7: sub
IL_08D8: stelem.i4
IL_08D9: ldarg.s 8
IL_08DB: ldfld System.Int32[] MeshData::m_triangles
IL_08E0: ldarg.s 6
IL_08E2: ldarg.s 6
IL_08E4: ldind.i4
IL_08E5: dup
IL_08E6: stloc.s 19 (System.Int32)
IL_08E8: ldc.i4.1
IL_08E9: add
IL_08EA: stind.i4
IL_08EB: ldloc.s 19 (System.Int32)
IL_08ED: ldarg.s 5
IL_08EF: ldind.i4
IL_08F0: ldc.i4.1
IL_08F1: sub
IL_08F2: stelem.i4
IL_08F3: ldarg.s 8
IL_08F5: ldfld System.Int32[] MeshData::m_triangles
IL_08FA: ldarg.s 6
IL_08FC: ldarg.s 6
IL_08FE: ldind.i4
IL_08FF: dup
IL_0900: stloc.s 19 (System.Int32)
IL_0902: ldc.i4.1
IL_0903: add
IL_0904: stind.i4
IL_0905: ldloc.s 19 (System.Int32)
IL_0907: ldarg.s 5
IL_0909: ldind.i4
IL_090A: ldc.i4.4
IL_090B: sub
IL_090C: stelem.i4
IL_090D: ldarg.s 8
IL_090F: ldfld System.Int32[] MeshData::m_triangles
IL_0914: ldarg.s 6
IL_0916: ldarg.s 6
IL_0918: ldind.i4
IL_0919: dup
IL_091A: stloc.s 19 (System.Int32)
IL_091C: ldc.i4.1
IL_091D: add
IL_091E: stind.i4
IL_091F: ldloc.s 19 (System.Int32)
IL_0921: ldarg.s 5
IL_0923: ldind.i4
IL_0924: ldc.i4.2
IL_0925: sub
IL_0926: stelem.i4
IL_0927: ldarg.s 8
IL_0929: ldfld System.Int32[] MeshData::m_triangles
IL_092E: ldarg.s 6
IL_0930: ldarg.s 6
IL_0932: ldind.i4
IL_0933: dup
IL_0934: stloc.s 19 (System.Int32)
IL_0936: ldc.i4.1
IL_0937: add
IL_0938: stind.i4
IL_0939: ldloc.s 19 (System.Int32)
IL_093B: ldarg.s 5
IL_093D: ldind.i4
IL_093E: ldc.i4.2
IL_093F: sub
IL_0940: stelem.i4
IL_0941: ldarg.s 8
IL_0943: ldfld System.Int32[] MeshData::m_triangles
IL_0948: ldarg.s 6
IL_094A: ldarg.s 6
IL_094C: ldind.i4
IL_094D: dup
IL_094E: stloc.s 19 (System.Int32)
IL_0950: ldc.i4.1
IL_0951: add
IL_0952: stind.i4
IL_0953: ldloc.s 19 (System.Int32)
IL_0955: ldarg.s 5
IL_0957: ldind.i4
IL_0958: ldc.i4.4
IL_0959: sub
IL_095A: stelem.i4
IL_095B: ldarg.s 8
IL_095D: ldfld System.Int32[] MeshData::m_triangles
IL_0962: ldarg.s 6
IL_0964: ldarg.s 6
IL_0966: ldind.i4
IL_0967: dup
IL_0968: stloc.s 19 (System.Int32)
IL_096A: ldc.i4.1
IL_096B: add
IL_096C: stind.i4
IL_096D: ldloc.s 19 (System.Int32)
IL_096F: ldarg.s 5
IL_0971: ldind.i4
IL_0972: ldc.i4.3
IL_0973: sub
IL_0974: stelem.i4
IL_0975: // end original
IL_0975: Label1
IL_0975: ret
DONE

### Patch: virtual System.Void ElectricityManager::SimulationStepImpl(System.Int32


subStep)
### Replacement: static System.Void
ElectricityManager::ElectricityManager.SimulationStepImpl_Patch0(ElectricityManager
this, System.Int32 subStep)
IL_0000: Local var 0: System.UInt32
IL_0000: Local var 1: System.Int32
IL_0000: Local var 2: NetManager
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: NetInfo
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: ElectricityManager/Cell
IL_0000: Local var 13: ElectricityManager/PulseGroup
IL_0000: Local var 14: ElectricityManager/PulseUnit
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: ElectricityManager/PulseUnit
IL_0000: Local var 19: System.UInt32
IL_0000: Local var 20: System.Int32
IL_0000: Local var 21: ElectricityManager/Cell
IL_0000: Local var 22: System.Int32
IL_0000: Local var 23: System.Int32
IL_0000: Local var 24: NetNode
IL_0000: Local var 25: System.Int32
IL_0000: Local var 26: System.UInt16
IL_0000: Local var 27: System.UInt16
IL_0000: Local var 28: System.UInt16
IL_0000: Local var 29: System.UInt16
IL_0000: Local var 30: System.Int32
IL_0000: Local var 31: ElectricityManager/PulseGroup
IL_0000: Local var 32: ElectricityManager/PulseGroup
IL_0000: Local var 33: System.Int32
IL_0000: Local var 34: ElectricityManager/PulseGroup
IL_0000: Local var 35: System.Int32
IL_0000: Local var 36: ElectricityManager/Cell
IL_0000: // start original
IL_0000: ldarg.1
IL_0001: brfalse => Label0
IL_0006: ldarg.1
IL_0007: ldc.i4 1000
IL_000C: beq => Label1
IL_0011: call static SimulationManager
ColossalFramework.Singleton`1<SimulationManager>::get_instance()
IL_0016: ldfld System.UInt32 SimulationManager::m_currentFrameIndex
IL_001B: stloc.0
IL_001C: ldloc.0
IL_001D: ldc.i4 255
IL_0022: and
IL_0023: stloc.1
IL_0024: ldloc.1
IL_0025: ldc.i4 128
IL_002A: bge => Label2
IL_002F: ldloc.1
IL_0030: brtrue => Label3
IL_0035: ldarg.0
IL_0036: ldc.i4.0
IL_0037: stfld System.Int32 ElectricityManager::m_pulseGroupCount
IL_003C: ldarg.0
IL_003D: ldc.i4.0
IL_003E: stfld System.Int32 ElectricityManager::m_pulseUnitStart
IL_0043: ldarg.0
IL_0044: ldc.i4.0
IL_0045: stfld System.Int32 ElectricityManager::m_pulseUnitEnd
IL_004A: ldarg.0
IL_004B: ldc.i4.0
IL_004C: stfld System.Int32 ElectricityManager::m_processedCells
IL_0051: ldarg.0
IL_0052: ldc.i4.0
IL_0053: stfld System.Int32 ElectricityManager::m_conductiveCells
IL_0058: ldarg.0
IL_0059: ldc.i4.1
IL_005A: stfld System.Boolean ElectricityManager::m_canContinue
IL_005F: Label3
IL_005F: call static NetManager
ColossalFramework.Singleton`1<NetManager>::get_instance()
IL_0064: stloc.2
IL_0065: ldloc.1
IL_0066: ldc.i4 32768
IL_006B: mul
IL_006C: ldc.i4.7
IL_006D: shr
IL_006E: stloc.3
IL_006F: ldloc.1
IL_0070: ldc.i4.1
IL_0071: add
IL_0072: ldc.i4 32768
IL_0077: mul
IL_0078: ldc.i4.7
IL_0079: shr
IL_007A: ldc.i4.1
IL_007B: sub
IL_007C: stloc.s 4 (System.Int32)
IL_007E: ldloc.3
IL_007F: stloc.s 5 (System.Int32)
IL_0081: br => Label4
IL_0086: Label10
IL_0086: ldloc.2
IL_0087: ldfld Array16`1<NetNode> NetManager::m_nodes
IL_008C: ldfld NetNode[] Array16`1<NetNode>::m_buffer
IL_0091: ldloc.s 5 (System.Int32)
IL_0093: ldelema NetNode
IL_0098: ldfld Flags NetNode::m_flags
IL_009D: brfalse => Label5
IL_00A2: ldloc.2
IL_00A3: ldfld Array16`1<NetNode> NetManager::m_nodes
IL_00A8: ldfld NetNode[] Array16`1<NetNode>::m_buffer
IL_00AD: ldloc.s 5 (System.Int32)
IL_00AF: ldelema NetNode
IL_00B4: call NetInfo NetNode::get_Info()
IL_00B9: stloc.s 6 (NetInfo)
IL_00BB: ldloc.s 6 (NetInfo)
IL_00BD: ldfld ItemClass NetInfo::m_class
IL_00C2: ldfld Service ItemClass::m_service
IL_00C7: ldc.i4.s 10
IL_00C9: beq => Label6
IL_00CE: ldloc.s 6 (NetInfo)
IL_00D0: ldfld NetAI NetInfo::m_netAI
IL_00D5: isinst ConcourseAI
IL_00DA: brfalse => Label7
IL_00DF: Label6
IL_00DF: ldarg.0
IL_00E0: ldloc.s 5 (System.Int32)
IL_00E2: ldarg.0
IL_00E3: ldfld System.UInt16[] ElectricityManager::m_nodeGroups
IL_00E8: ldloc.s 5 (System.Int32)
IL_00EA: ldelem.u2
IL_00EB: ldc.i4 65535
IL_00F0: beq => Label8
IL_00F5: ldc.i4.1
IL_00F6: br => Label9
IL_00FB: Label8
IL_00FB: ldc.i4.0
IL_00FC: Label9
IL_00FC: call System.Void
ElectricityManager::UpdateNodeElectricity(System.Int32 nodeID, System.Int32 value)
IL_0101: ldarg.0
IL_0102: dup
IL_0103: ldfld System.Int32 ElectricityManager::m_conductiveCells
IL_0108: ldc.i4.1
IL_0109: add
IL_010A: stfld System.Int32 ElectricityManager::m_conductiveCells
IL_010F: Label5
IL_010F: Label7
IL_010F: ldarg.0
IL_0110: ldfld System.UInt16[] ElectricityManager::m_nodeGroups
IL_0115: ldloc.s 5 (System.Int32)
IL_0117: ldc.i4 65535
IL_011C: stelem.i2
IL_011D: ldloc.s 5 (System.Int32)
IL_011F: ldc.i4.1
IL_0120: add
IL_0121: stloc.s 5 (System.Int32)
IL_0123: Label4
IL_0123: ldloc.s 5 (System.Int32)
IL_0125: ldloc.s 4 (System.Int32)
IL_0127: ble => Label10
IL_012C: ldloc.1
IL_012D: ldc.i4 256
IL_0132: mul
IL_0133: ldc.i4.7
IL_0134: shr
IL_0135: stloc.s 7 (System.Int32)
IL_0137: ldloc.1
IL_0138: ldc.i4.1
IL_0139: add
IL_013A: ldc.i4 256
IL_013F: mul
IL_0140: ldc.i4.7
IL_0141: shr
IL_0142: ldc.i4.1
IL_0143: sub
IL_0144: stloc.s 8 (System.Int32)
IL_0146: ldloc.s 7 (System.Int32)
IL_0148: stloc.s 9 (System.Int32)
IL_014A: br => Label11
IL_014F: Label21
IL_014F: ldloc.s 9 (System.Int32)
IL_0151: ldc.i4 256
IL_0156: mul
IL_0157: stloc.s 10 (System.Int32)
IL_0159: ldc.i4.0
IL_015A: stloc.s 11 (System.Int32)
IL_015C: br => Label12
IL_0161: Label20
IL_0161: ldarg.0
IL_0162: ldfld Cell[] ElectricityManager::m_electricityGrid
IL_0167: ldloc.s 10 (System.Int32)
IL_0169: ldelema ElectricityManager+Cell
IL_016E: ldobj ElectricityManager+Cell
IL_0173: stloc.s 12 (ElectricityManager+Cell)
IL_0175: ldloca.s 12 (ElectricityManager+Cell)
IL_0177: ldfld System.Int16 Cell::m_currentCharge
IL_017C: ldc.i4.0
IL_017D: ble => Label13
IL_0182: ldarg.0
IL_0183: ldfld System.Int32 ElectricityManager::m_pulseGroupCount
IL_0188: ldc.i4 1024
IL_018D: bge => Label14
IL_0192: ldloca.s 13 (ElectricityManager+PulseGroup)
IL_0194: ldloca.s 12 (ElectricityManager+Cell)
IL_0196: ldfld System.Int16 Cell::m_currentCharge
IL_019B: conv.u4
IL_019C: stfld System.UInt32 PulseGroup::m_origCharge
IL_01A1: ldloca.s 13 (ElectricityManager+PulseGroup)
IL_01A3: ldloca.s 12 (ElectricityManager+Cell)
IL_01A5: ldfld System.Int16 Cell::m_currentCharge
IL_01AA: conv.u4
IL_01AB: stfld System.UInt32 PulseGroup::m_curCharge
IL_01B0: ldloca.s 13 (ElectricityManager+PulseGroup)
IL_01B2: ldc.i4.0
IL_01B3: stfld System.UInt16 PulseGroup::m_mergeCount
IL_01B8: ldloca.s 13 (ElectricityManager+PulseGroup)
IL_01BA: ldc.i4 65535
IL_01BF: stfld System.UInt16 PulseGroup::m_mergeIndex
IL_01C4: ldloca.s 13 (ElectricityManager+PulseGroup)
IL_01C6: ldloc.s 11 (System.Int32)
IL_01C8: conv.u1
IL_01C9: stfld System.Byte PulseGroup::m_x
IL_01CE: ldloca.s 13 (ElectricityManager+PulseGroup)
IL_01D0: ldloc.s 9 (System.Int32)
IL_01D2: conv.u1
IL_01D3: stfld System.Byte PulseGroup::m_z
IL_01D8: ldloca.s 14 (ElectricityManager+PulseUnit)
IL_01DA: ldarg.0
IL_01DB: ldfld System.Int32 ElectricityManager::m_pulseGroupCount
IL_01E0: conv.u2
IL_01E1: stfld System.UInt16 PulseUnit::m_group
IL_01E6: ldloca.s 14 (ElectricityManager+PulseUnit)
IL_01E8: ldc.i4.0
IL_01E9: stfld System.UInt16 PulseUnit::m_node
IL_01EE: ldloca.s 14 (ElectricityManager+PulseUnit)
IL_01F0: ldloc.s 11 (System.Int32)
IL_01F2: conv.u1
IL_01F3: stfld System.Byte PulseUnit::m_x
IL_01F8: ldloca.s 14 (ElectricityManager+PulseUnit)
IL_01FA: ldloc.s 9 (System.Int32)
IL_01FC: conv.u1
IL_01FD: stfld System.Byte PulseUnit::m_z
IL_0202: ldloca.s 12 (ElectricityManager+Cell)
IL_0204: ldarg.0
IL_0205: ldfld System.Int32 ElectricityManager::m_pulseGroupCount
IL_020A: conv.u2
IL_020B: stfld System.UInt16 Cell::m_pulseGroup
IL_0210: ldarg.0
IL_0211: ldfld PulseGroup[] ElectricityManager::m_pulseGroups
IL_0216: ldarg.0
IL_0217: dup
IL_0218: ldfld System.Int32 ElectricityManager::m_pulseGroupCount
IL_021D: dup
IL_021E: stloc.s 15 (System.Int32)
IL_0220: ldc.i4.1
IL_0221: add
IL_0222: stfld System.Int32 ElectricityManager::m_pulseGroupCount
IL_0227: ldloc.s 15 (System.Int32)
IL_0229: ldelema ElectricityManager+PulseGroup
IL_022E: ldloc.s 13 (ElectricityManager+PulseGroup)
IL_0230: stobj ElectricityManager+PulseGroup
IL_0235: ldarg.0
IL_0236: ldfld PulseUnit[] ElectricityManager::m_pulseUnits
IL_023B: ldarg.0
IL_023C: ldfld System.Int32 ElectricityManager::m_pulseUnitEnd
IL_0241: ldelema ElectricityManager+PulseUnit
IL_0246: ldloc.s 14 (ElectricityManager+PulseUnit)
IL_0248: stobj ElectricityManager+PulseUnit
IL_024D: ldarg.0
IL_024E: dup
IL_024F: ldfld System.Int32 ElectricityManager::m_pulseUnitEnd
IL_0254: ldc.i4.1
IL_0255: add
IL_0256: dup
IL_0257: stloc.s 15 (System.Int32)
IL_0259: stfld System.Int32 ElectricityManager::m_pulseUnitEnd
IL_025E: ldloc.s 15 (System.Int32)
IL_0260: ldarg.0
IL_0261: ldfld PulseUnit[] ElectricityManager::m_pulseUnits
IL_0266: ldlen
IL_0267: conv.i4
IL_0268: bne.un => Label15
IL_026D: ldarg.0
IL_026E: ldc.i4.0
IL_026F: stfld System.Int32 ElectricityManager::m_pulseUnitEnd
IL_0274: Label15
IL_0274: br => Label16
IL_0279: Label14
IL_0279: ldloca.s 12 (ElectricityManager+Cell)
IL_027B: ldc.i4 65535
IL_0280: stfld System.UInt16 Cell::m_pulseGroup
IL_0285: Label16
IL_0285: ldloca.s 12 (ElectricityManager+Cell)
IL_0287: ldc.i4.0
IL_0288: stfld System.Int16 Cell::m_currentCharge
IL_028D: ldarg.0
IL_028E: dup
IL_028F: ldfld System.Int32 ElectricityManager::m_conductiveCells
IL_0294: ldc.i4.1
IL_0295: add
IL_0296: stfld System.Int32 ElectricityManager::m_conductiveCells
IL_029B: br => Label17
IL_02A0: Label13
IL_02A0: ldloca.s 12 (ElectricityManager+Cell)
IL_02A2: ldc.i4 65535
IL_02A7: stfld System.UInt16 Cell::m_pulseGroup
IL_02AC: ldloca.s 12 (ElectricityManager+Cell)
IL_02AE: ldfld System.Byte Cell::m_conductivity
IL_02B3: ldc.i4.s 64
IL_02B5: blt => Label18
IL_02BA: ldarg.0
IL_02BB: dup
IL_02BC: ldfld System.Int32 ElectricityManager::m_conductiveCells
IL_02C1: ldc.i4.1
IL_02C2: add
IL_02C3: stfld System.Int32 ElectricityManager::m_conductiveCells
IL_02C8: Label17
IL_02C8: Label18
IL_02C8: ldloca.s 12 (ElectricityManager+Cell)
IL_02CA: ldfld System.Boolean Cell::m_tmpElectrified
IL_02CF: ldloca.s 12 (ElectricityManager+Cell)
IL_02D1: ldfld System.Boolean Cell::m_electrified
IL_02D6: beq => Label19
IL_02DB: ldloca.s 12 (ElectricityManager+Cell)
IL_02DD: ldloca.s 12 (ElectricityManager+Cell)
IL_02DF: ldfld System.Boolean Cell::m_tmpElectrified
IL_02E4: stfld System.Boolean Cell::m_electrified
IL_02E9: Label19
IL_02E9: ldloca.s 12 (ElectricityManager+Cell)
IL_02EB: ldloca.s 12 (ElectricityManager+Cell)
IL_02ED: ldfld System.UInt16 Cell::m_pulseGroup
IL_02F2: ldc.i4 65535
IL_02F7: ceq
IL_02F9: ldc.i4.0
IL_02FA: ceq
IL_02FC: stfld System.Boolean Cell::m_tmpElectrified
IL_0301: ldarg.0
IL_0302: ldfld Cell[] ElectricityManager::m_electricityGrid
IL_0307: ldloc.s 10 (System.Int32)
IL_0309: ldelema ElectricityManager+Cell
IL_030E: ldloc.s 12 (ElectricityManager+Cell)
IL_0310: stobj ElectricityManager+Cell
IL_0315: ldloc.s 10 (System.Int32)
IL_0317: ldc.i4.1
IL_0318: add
IL_0319: stloc.s 10 (System.Int32)
IL_031B: ldloc.s 11 (System.Int32)
IL_031D: ldc.i4.1
IL_031E: add
IL_031F: stloc.s 11 (System.Int32)
IL_0321: Label12
IL_0321: ldloc.s 11 (System.Int32)
IL_0323: ldc.i4 256
IL_0328: blt => Label20
IL_032D: ldloc.s 9 (System.Int32)
IL_032F: ldc.i4.1
IL_0330: add
IL_0331: stloc.s 9 (System.Int32)
IL_0333: Label11
IL_0333: ldloc.s 9 (System.Int32)
IL_0335: ldloc.s 8 (System.Int32)
IL_0337: ble => Label21
IL_033C: br => Label22
IL_0341: Label2
IL_0341: ldloc.1
IL_0342: ldc.i4.s 127
IL_0344: sub
IL_0345: ldarg.0
IL_0346: ldfld System.Int32 ElectricityManager::m_conductiveCells
IL_034B: mul
IL_034C: ldc.i4.7
IL_034D: shr
IL_034E: stloc.s 16 (System.Int32)
IL_0350: ldloc.1
IL_0351: ldc.i4 255
IL_0356: bne.un => Label23
IL_035B: ldc.i4 1000000000
IL_0360: stloc.s 16 (System.Int32)
IL_0362: Label23
IL_0362: br => Label24
IL_0367: Label54
IL_0367: ldarg.0
IL_0368: ldc.i4.0
IL_0369: stfld System.Boolean ElectricityManager::m_canContinue
IL_036E: ldarg.0
IL_036F: ldfld System.Int32 ElectricityManager::m_pulseUnitEnd
IL_0374: stloc.s 17 (System.Int32)
IL_0376: br => Label25
IL_037B: Label52
IL_037B: ldarg.0
IL_037C: ldfld PulseUnit[] ElectricityManager::m_pulseUnits
IL_0381: ldarg.0
IL_0382: ldfld System.Int32 ElectricityManager::m_pulseUnitStart
IL_0387: ldelema ElectricityManager+PulseUnit
IL_038C: ldobj ElectricityManager+PulseUnit
IL_0391: stloc.s 18 (ElectricityManager+PulseUnit)
IL_0393: ldarg.0
IL_0394: dup
IL_0395: ldfld System.Int32 ElectricityManager::m_pulseUnitStart
IL_039A: ldc.i4.1
IL_039B: add
IL_039C: dup
IL_039D: stloc.s 15 (System.Int32)
IL_039F: stfld System.Int32 ElectricityManager::m_pulseUnitStart
IL_03A4: ldloc.s 15 (System.Int32)
IL_03A6: ldarg.0
IL_03A7: ldfld PulseUnit[] ElectricityManager::m_pulseUnits
IL_03AC: ldlen
IL_03AD: conv.i4
IL_03AE: bne.un => Label26
IL_03B3: ldarg.0
IL_03B4: ldc.i4.0
IL_03B5: stfld System.Int32 ElectricityManager::m_pulseUnitStart
IL_03BA: Label26
IL_03BA: ldloca.s 18 (ElectricityManager+PulseUnit)
IL_03BC: ldarg.0
IL_03BD: ldloca.s 18 (ElectricityManager+PulseUnit)
IL_03BF: ldfld System.UInt16 PulseUnit::m_group
IL_03C4: call System.UInt16 ElectricityManager::GetRootGroup(System.UInt16
group)
IL_03C9: stfld System.UInt16 PulseUnit::m_group
IL_03CE: ldarg.0
IL_03CF: ldfld PulseGroup[] ElectricityManager::m_pulseGroups
IL_03D4: ldloca.s 18 (ElectricityManager+PulseUnit)
IL_03D6: ldfld System.UInt16 PulseUnit::m_group
IL_03DB: ldelema ElectricityManager+PulseGroup
IL_03E0: ldfld System.UInt32 PulseGroup::m_curCharge
IL_03E5: stloc.s 19 (System.UInt32)
IL_03E7: ldloca.s 18 (ElectricityManager+PulseUnit)
IL_03E9: ldfld System.UInt16 PulseUnit::m_node
IL_03EE: brtrue => Label27
IL_03F3: ldloca.s 18 (ElectricityManager+PulseUnit)
IL_03F5: ldfld System.Byte PulseUnit::m_z
IL_03FA: ldc.i4 256
IL_03FF: mul
IL_0400: ldloca.s 18 (ElectricityManager+PulseUnit)
IL_0402: ldfld System.Byte PulseUnit::m_x
IL_0407: add
IL_0408: stloc.s 20 (System.Int32)
IL_040A: ldarg.0
IL_040B: ldfld Cell[] ElectricityManager::m_electricityGrid
IL_0410: ldloc.s 20 (System.Int32)
IL_0412: ldelema ElectricityManager+Cell
IL_0417: ldobj ElectricityManager+Cell
IL_041C: stloc.s 21 (ElectricityManager+Cell)
IL_041E: ldloca.s 21 (ElectricityManager+Cell)
IL_0420: ldfld System.Byte Cell::m_conductivity
IL_0425: brfalse => Label28
IL_042A: ldloca.s 21 (ElectricityManager+Cell)
IL_042C: ldfld System.Boolean Cell::m_tmpElectrified
IL_0431: brtrue => Label29
IL_0436: ldloc.s 19 (System.UInt32)
IL_0438: brfalse => Label30
IL_043D: ldloca.s 21 (ElectricityManager+Cell)
IL_043F: ldfld System.Int16 Cell::m_currentCharge
IL_0444: neg
IL_0445: ldc.i4.0
IL_0446: ldloc.s 19 (System.UInt32)
IL_0448: call static System.Int32 UnityEngine.Mathf::Clamp(System.Int32
value, System.Int32 min, System.Int32 max)
IL_044D: stloc.s 22 (System.Int32)
IL_044F: ldloc.s 19 (System.UInt32)
IL_0451: ldloc.s 22 (System.Int32)
IL_0453: sub
IL_0454: stloc.s 19 (System.UInt32)
IL_0456: ldloca.s 21 (ElectricityManager+Cell)
IL_0458: dup
IL_0459: ldfld System.Int16 Cell::m_currentCharge
IL_045E: ldloc.s 22 (System.Int32)
IL_0460: conv.i2
IL_0461: add
IL_0462: conv.i2
IL_0463: stfld System.Int16 Cell::m_currentCharge
IL_0468: ldloca.s 21 (ElectricityManager+Cell)
IL_046A: ldfld System.Int16 Cell::m_currentCharge
IL_046F: brtrue => Label31
IL_0474: ldloca.s 21 (ElectricityManager+Cell)
IL_0476: ldc.i4.1
IL_0477: stfld System.Boolean Cell::m_tmpElectrified
IL_047C: Label31
IL_047C: ldarg.0
IL_047D: ldfld Cell[] ElectricityManager::m_electricityGrid
IL_0482: ldloc.s 20 (System.Int32)
IL_0484: ldelema ElectricityManager+Cell
IL_0489: ldloc.s 21 (ElectricityManager+Cell)
IL_048B: stobj ElectricityManager+Cell
IL_0490: ldarg.0
IL_0491: ldfld PulseGroup[] ElectricityManager::m_pulseGroups
IL_0496: ldloca.s 18 (ElectricityManager+PulseUnit)
IL_0498: ldfld System.UInt16 PulseUnit::m_group
IL_049D: ldelema ElectricityManager+PulseGroup
IL_04A2: ldloc.s 19 (System.UInt32)
IL_04A4: stfld System.UInt32 PulseGroup::m_curCharge
IL_04A9: Label28
IL_04A9: Label29
IL_04A9: Label30
IL_04A9: ldloc.s 19 (System.UInt32)
IL_04AB: brfalse => Label32
IL_04B0: ldloca.s 21 (ElectricityManager+Cell)
IL_04B2: ldfld System.Byte Cell::m_conductivity
IL_04B7: ldc.i4.s 64
IL_04B9: blt => Label33
IL_04BE: ldc.i4.1
IL_04BF: br => Label34
IL_04C4: Label33
IL_04C4: ldc.i4.s 64
IL_04C6: Label34
IL_04C6: stloc.s 23 (System.Int32)
IL_04C8: ldarg.0
IL_04C9: dup
IL_04CA: ldfld System.Int32 ElectricityManager::m_processedCells
IL_04CF: ldc.i4.1
IL_04D0: add
IL_04D1: stfld System.Int32 ElectricityManager::m_processedCells
IL_04D6: ldloca.s 18 (ElectricityManager+PulseUnit)
IL_04D8: ldfld System.Byte PulseUnit::m_z
IL_04DD: ldc.i4.0
IL_04DE: ble => Label35
IL_04E3: ldarg.0
IL_04E4: ldarg.0
IL_04E5: ldfld Cell[] ElectricityManager::m_electricityGrid
IL_04EA: ldloc.s 20 (System.Int32)
IL_04EC: ldc.i4 256
IL_04F1: sub
IL_04F2: ldelema ElectricityManager+Cell
IL_04F7: ldloca.s 18 (ElectricityManager+PulseUnit)
IL_04F9: ldfld System.UInt16 PulseUnit::m_group
IL_04FE: ldloca.s 18 (ElectricityManager+PulseUnit)
IL_0500: ldfld System.Byte PulseUnit::m_x
IL_0505: ldloca.s 18 (ElectricityManager+PulseUnit)
IL_0507: ldfld System.Byte PulseUnit::m_z
IL_050C: ldc.i4.1
IL_050D: sub
IL_050E: ldloc.s 23 (System.Int32)
IL_0510: call System.Void ElectricityManager::ConductToCell(Cell& cell,
System.UInt16 group, System.Int32 x, System.Int32 z, System.Int32 limit)
IL_0515: Label35
IL_0515: ldloca.s 18 (ElectricityManager+PulseUnit)
IL_0517: ldfld System.Byte PulseUnit::m_x
IL_051C: ldc.i4.0
IL_051D: ble => Label36
IL_0522: ldarg.0
IL_0523: ldarg.0
IL_0524: ldfld Cell[] ElectricityManager::m_electricityGrid
IL_0529: ldloc.s 20 (System.Int32)
IL_052B: ldc.i4.1
IL_052C: sub
IL_052D: ldelema ElectricityManager+Cell
IL_0532: ldloca.s 18 (ElectricityManager+PulseUnit)
IL_0534: ldfld System.UInt16 PulseUnit::m_group
IL_0539: ldloca.s 18 (ElectricityManager+PulseUnit)
IL_053B: ldfld System.Byte PulseUnit::m_x
IL_0540: ldc.i4.1
IL_0541: sub
IL_0542: ldloca.s 18 (ElectricityManager+PulseUnit)
IL_0544: ldfld System.Byte PulseUnit::m_z
IL_0549: ldloc.s 23 (System.Int32)
IL_054B: call System.Void ElectricityManager::ConductToCell(Cell& cell,
System.UInt16 group, System.Int32 x, System.Int32 z, System.Int32 limit)
IL_0550: Label36
IL_0550: ldloca.s 18 (ElectricityManager+PulseUnit)
IL_0552: ldfld System.Byte PulseUnit::m_z
IL_0557: ldc.i4 255
IL_055C: bge => Label37
IL_0561: ldarg.0
IL_0562: ldarg.0
IL_0563: ldfld Cell[] ElectricityManager::m_electricityGrid
IL_0568: ldloc.s 20 (System.Int32)
IL_056A: ldc.i4 256
IL_056F: add
IL_0570: ldelema ElectricityManager+Cell
IL_0575: ldloca.s 18 (ElectricityManager+PulseUnit)
IL_0577: ldfld System.UInt16 PulseUnit::m_group
IL_057C: ldloca.s 18 (ElectricityManager+PulseUnit)
IL_057E: ldfld System.Byte PulseUnit::m_x
IL_0583: ldloca.s 18 (ElectricityManager+PulseUnit)
IL_0585: ldfld System.Byte PulseUnit::m_z
IL_058A: ldc.i4.1
IL_058B: add
IL_058C: ldloc.s 23 (System.Int32)
IL_058E: call System.Void ElectricityManager::ConductToCell(Cell& cell,
System.UInt16 group, System.Int32 x, System.Int32 z, System.Int32 limit)
IL_0593: Label37
IL_0593: ldloca.s 18 (ElectricityManager+PulseUnit)
IL_0595: ldfld System.Byte PulseUnit::m_x
IL_059A: ldc.i4 255
IL_059F: bge => Label38
IL_05A4: ldarg.0
IL_05A5: ldarg.0
IL_05A6: ldfld Cell[] ElectricityManager::m_electricityGrid
IL_05AB: ldloc.s 20 (System.Int32)
IL_05AD: ldc.i4.1
IL_05AE: add
IL_05AF: ldelema ElectricityManager+Cell
IL_05B4: ldloca.s 18 (ElectricityManager+PulseUnit)
IL_05B6: ldfld System.UInt16 PulseUnit::m_group
IL_05BB: ldloca.s 18 (ElectricityManager+PulseUnit)
IL_05BD: ldfld System.Byte PulseUnit::m_x
IL_05C2: ldc.i4.1
IL_05C3: add
IL_05C4: ldloca.s 18 (ElectricityManager+PulseUnit)
IL_05C6: ldfld System.Byte PulseUnit::m_z
IL_05CB: ldloc.s 23 (System.Int32)
IL_05CD: call System.Void ElectricityManager::ConductToCell(Cell& cell,
System.UInt16 group, System.Int32 x, System.Int32 z, System.Int32 limit)
IL_05D2: Label38
IL_05D2: ldarg.0
IL_05D3: ldloca.s 18 (ElectricityManager+PulseUnit)
IL_05D5: ldfld System.UInt16 PulseUnit::m_group
IL_05DA: ldloca.s 18 (ElectricityManager+PulseUnit)
IL_05DC: ldfld System.Byte PulseUnit::m_x
IL_05E1: ldloca.s 18 (ElectricityManager+PulseUnit)
IL_05E3: ldfld System.Byte PulseUnit::m_z
IL_05E8: call System.Void ElectricityManager::ConductToNodes(System.UInt16
group, System.Int32 cellX, System.Int32 cellZ)
IL_05ED: br => Label39
IL_05F2: Label32
IL_05F2: ldarg.0
IL_05F3: ldfld PulseUnit[] ElectricityManager::m_pulseUnits
IL_05F8: ldarg.0
IL_05F9: ldfld System.Int32 ElectricityManager::m_pulseUnitEnd
IL_05FE: ldelema ElectricityManager+PulseUnit
IL_0603: ldloc.s 18 (ElectricityManager+PulseUnit)
IL_0605: stobj ElectricityManager+PulseUnit
IL_060A: ldarg.0
IL_060B: dup
IL_060C: ldfld System.Int32 ElectricityManager::m_pulseUnitEnd
IL_0611: ldc.i4.1
IL_0612: add
IL_0613: dup
IL_0614: stloc.s 15 (System.Int32)
IL_0616: stfld System.Int32 ElectricityManager::m_pulseUnitEnd
IL_061B: ldloc.s 15 (System.Int32)
IL_061D: ldarg.0
IL_061E: ldfld PulseUnit[] ElectricityManager::m_pulseUnits
IL_0623: ldlen
IL_0624: conv.i4
IL_0625: bne.un => Label40
IL_062A: ldarg.0
IL_062B: ldc.i4.0
IL_062C: stfld System.Int32 ElectricityManager::m_pulseUnitEnd
IL_0631: Label39
IL_0631: Label40
IL_0631: br => Label41
IL_0636: Label27
IL_0636: ldloc.s 19 (System.UInt32)
IL_0638: brfalse => Label42
IL_063D: ldarg.0
IL_063E: dup
IL_063F: ldfld System.Int32 ElectricityManager::m_processedCells
IL_0644: ldc.i4.1
IL_0645: add
IL_0646: stfld System.Int32 ElectricityManager::m_processedCells
IL_064B: call static NetManager
ColossalFramework.Singleton`1<NetManager>::get_instance()
IL_0650: ldfld Array16`1<NetNode> NetManager::m_nodes
IL_0655: ldfld NetNode[] Array16`1<NetNode>::m_buffer
IL_065A: ldloca.s 18 (ElectricityManager+PulseUnit)
IL_065C: ldfld System.UInt16 PulseUnit::m_node
IL_0661: ldelema NetNode
IL_0666: ldobj NetNode
IL_066B: stloc.s 24 (NetNode)
IL_066D: ldloca.s 24 (NetNode)
IL_066F: ldfld Flags NetNode::m_flags
IL_0674: brfalse => Label43
IL_0679: ldloca.s 24 (NetNode)
IL_067B: ldfld System.UInt32 NetNode::m_buildIndex
IL_0680: ldloc.0
IL_0681: ldc.i4.s -128
IL_0683: and
IL_0684: bge.un => Label44
IL_0689: ldarg.0
IL_068A: ldloca.s 18 (ElectricityManager+PulseUnit)
IL_068C: ldfld System.UInt16 PulseUnit::m_group
IL_0691: ldloca.s 24 (NetNode)
IL_0693: ldflda UnityEngine.Vector3 NetNode::m_position
IL_0698: ldfld System.Single UnityEngine.Vector3::x
IL_069D: ldloca.s 24 (NetNode)
IL_069F: ldflda UnityEngine.Vector3 NetNode::m_position
IL_06A4: ldfld System.Single UnityEngine.Vector3::z
IL_06A9: call System.Void ElectricityManager::ConductToCells(System.UInt16
group, System.Single worldX, System.Single worldZ)
IL_06AE: ldc.i4.0
IL_06AF: stloc.s 25 (System.Int32)
IL_06B1: br => Label45
IL_06B6: Label49
IL_06B6: ldloca.s 24 (NetNode)
IL_06B8: ldloc.s 25 (System.Int32)
IL_06BA: call System.UInt16 NetNode::GetSegment(System.Int32 index)
IL_06BF: stloc.s 26 (System.UInt16)
IL_06C1: ldloc.s 26 (System.UInt16)
IL_06C3: brfalse => Label46
IL_06C8: call static NetManager
ColossalFramework.Singleton`1<NetManager>::get_instance()
IL_06CD: ldfld Array16`1<NetSegment> NetManager::m_segments
IL_06D2: ldfld NetSegment[] Array16`1<NetSegment>::m_buffer
IL_06D7: ldloc.s 26 (System.UInt16)
IL_06D9: ldelema NetSegment
IL_06DE: ldfld System.UInt16 NetSegment::m_startNode
IL_06E3: stloc.s 27 (System.UInt16)
IL_06E5: call static NetManager
ColossalFramework.Singleton`1<NetManager>::get_instance()
IL_06EA: ldfld Array16`1<NetSegment> NetManager::m_segments
IL_06EF: ldfld NetSegment[] Array16`1<NetSegment>::m_buffer
IL_06F4: ldloc.s 26 (System.UInt16)
IL_06F6: ldelema NetSegment
IL_06FB: ldfld System.UInt16 NetSegment::m_endNode
IL_0700: stloc.s 28 (System.UInt16)
IL_0702: ldloc.s 27 (System.UInt16)
IL_0704: ldloca.s 18 (ElectricityManager+PulseUnit)
IL_0706: ldfld System.UInt16 PulseUnit::m_node
IL_070B: bne.un => Label47
IL_0710: ldloc.s 28 (System.UInt16)
IL_0712: br => Label48
IL_0717: Label47
IL_0717: ldloc.s 27 (System.UInt16)
IL_0719: Label48
IL_0719: stloc.s 29 (System.UInt16)
IL_071B: ldarg.0
IL_071C: ldloc.s 29 (System.UInt16)
IL_071E: call static NetManager
ColossalFramework.Singleton`1<NetManager>::get_instance()
IL_0723: ldfld Array16`1<NetNode> NetManager::m_nodes
IL_0728: ldfld NetNode[] Array16`1<NetNode>::m_buffer
IL_072D: ldloc.s 29 (System.UInt16)
IL_072F: ldelema NetNode
IL_0734: ldloca.s 18 (ElectricityManager+PulseUnit)
IL_0736: ldfld System.UInt16 PulseUnit::m_group
IL_073B: ldc.r4 -100000
IL_0740: ldc.r4 -100000
IL_0745: ldc.r4 100000
IL_074A: ldc.r4 100000
IL_074F: call System.Void ElectricityManager::ConductToNode(System.UInt16
nodeIndex, NetNode& node, System.UInt16 group, System.Single minX, System.Single
minZ, System.Single maxX, System.Single maxZ)
IL_0754: Label46
IL_0754: ldloc.s 25 (System.Int32)
IL_0756: ldc.i4.1
IL_0757: add
IL_0758: stloc.s 25 (System.Int32)
IL_075A: Label45
IL_075A: ldloc.s 25 (System.Int32)
IL_075C: ldc.i4.8
IL_075D: blt => Label49
IL_0762: Label43
IL_0762: Label44
IL_0762: br => Label50
IL_0767: Label42
IL_0767: ldarg.0
IL_0768: ldfld PulseUnit[] ElectricityManager::m_pulseUnits
IL_076D: ldarg.0
IL_076E: ldfld System.Int32 ElectricityManager::m_pulseUnitEnd
IL_0773: ldelema ElectricityManager+PulseUnit
IL_0778: ldloc.s 18 (ElectricityManager+PulseUnit)
IL_077A: stobj ElectricityManager+PulseUnit
IL_077F: ldarg.0
IL_0780: dup
IL_0781: ldfld System.Int32 ElectricityManager::m_pulseUnitEnd
IL_0786: ldc.i4.1
IL_0787: add
IL_0788: dup
IL_0789: stloc.s 15 (System.Int32)
IL_078B: stfld System.Int32 ElectricityManager::m_pulseUnitEnd
IL_0790: ldloc.s 15 (System.Int32)
IL_0792: ldarg.0
IL_0793: ldfld PulseUnit[] ElectricityManager::m_pulseUnits
IL_0798: ldlen
IL_0799: conv.i4
IL_079A: bne.un => Label51
IL_079F: ldarg.0
IL_07A0: ldc.i4.0
IL_07A1: stfld System.Int32 ElectricityManager::m_pulseUnitEnd
IL_07A6: Label25
IL_07A6: Label41
IL_07A6: Label50
IL_07A6: Label51
IL_07A6: ldarg.0
IL_07A7: ldfld System.Int32 ElectricityManager::m_pulseUnitStart
IL_07AC: ldloc.s 17 (System.Int32)
IL_07AE: bne.un => Label52
IL_07B3: Label24
IL_07B3: ldarg.0
IL_07B4: ldfld System.Boolean ElectricityManager::m_canContinue
IL_07B9: brfalse => Label53
IL_07BE: ldarg.0
IL_07BF: ldfld System.Int32 ElectricityManager::m_processedCells
IL_07C4: ldloc.s 16 (System.Int32)
IL_07C6: blt => Label54
IL_07CB: Label53
IL_07CB: ldloc.1
IL_07CC: ldc.i4 255
IL_07D1: bne.un => Label55
IL_07D6: ldc.i4.0
IL_07D7: stloc.s 30 (System.Int32)
IL_07D9: br => Label56
IL_07DE: Label58
IL_07DE: ldarg.0
IL_07DF: ldfld PulseGroup[] ElectricityManager::m_pulseGroups
IL_07E4: ldloc.s 30 (System.Int32)
IL_07E6: ldelema ElectricityManager+PulseGroup
IL_07EB: ldobj ElectricityManager+PulseGroup
IL_07F0: stloc.s 31 (ElectricityManager+PulseGroup)
IL_07F2: ldloca.s 31 (ElectricityManager+PulseGroup)
IL_07F4: ldfld System.UInt16 PulseGroup::m_mergeIndex
IL_07F9: ldc.i4 65535
IL_07FE: beq => Label57
IL_0803: ldarg.0
IL_0804: ldfld PulseGroup[] ElectricityManager::m_pulseGroups
IL_0809: ldloca.s 31 (ElectricityManager+PulseGroup)
IL_080B: ldfld System.UInt16 PulseGroup::m_mergeIndex
IL_0810: ldelema ElectricityManager+PulseGroup
IL_0815: ldobj ElectricityManager+PulseGroup
IL_081A: stloc.s 32 (ElectricityManager+PulseGroup)
IL_081C: ldloca.s 31 (ElectricityManager+PulseGroup)
IL_081E: ldloca.s 32 (ElectricityManager+PulseGroup)
IL_0820: ldfld System.UInt32 PulseGroup::m_curCharge
IL_0825: conv.u8
IL_0826: ldloca.s 31 (ElectricityManager+PulseGroup)
IL_0828: ldfld System.UInt32 PulseGroup::m_origCharge
IL_082D: conv.u8
IL_082E: mul
IL_082F: ldloca.s 32 (ElectricityManager+PulseGroup)
IL_0831: ldfld System.UInt32 PulseGroup::m_origCharge
IL_0836: conv.u8
IL_0837: div.un
IL_0838: conv.u4
IL_0839: stfld System.UInt32 PulseGroup::m_curCharge
IL_083E: ldloca.s 32 (ElectricityManager+PulseGroup)
IL_0840: dup
IL_0841: ldfld System.UInt32 PulseGroup::m_curCharge
IL_0846: ldloca.s 31 (ElectricityManager+PulseGroup)
IL_0848: ldfld System.UInt32 PulseGroup::m_curCharge
IL_084D: sub
IL_084E: stfld System.UInt32 PulseGroup::m_curCharge
IL_0853: ldloca.s 32 (ElectricityManager+PulseGroup)
IL_0855: dup
IL_0856: ldfld System.UInt32 PulseGroup::m_origCharge
IL_085B: ldloca.s 31 (ElectricityManager+PulseGroup)
IL_085D: ldfld System.UInt32 PulseGroup::m_origCharge
IL_0862: sub
IL_0863: stfld System.UInt32 PulseGroup::m_origCharge
IL_0868: ldarg.0
IL_0869: ldfld PulseGroup[] ElectricityManager::m_pulseGroups
IL_086E: ldloca.s 31 (ElectricityManager+PulseGroup)
IL_0870: ldfld System.UInt16 PulseGroup::m_mergeIndex
IL_0875: ldelema ElectricityManager+PulseGroup
IL_087A: ldloc.s 32 (ElectricityManager+PulseGroup)
IL_087C: stobj ElectricityManager+PulseGroup
IL_0881: ldarg.0
IL_0882: ldfld PulseGroup[] ElectricityManager::m_pulseGroups
IL_0887: ldloc.s 30 (System.Int32)
IL_0889: ldelema ElectricityManager+PulseGroup
IL_088E: ldloc.s 31 (ElectricityManager+PulseGroup)
IL_0890: stobj ElectricityManager+PulseGroup
IL_0895: Label57
IL_0895: ldloc.s 30 (System.Int32)
IL_0897: ldc.i4.1
IL_0898: add
IL_0899: stloc.s 30 (System.Int32)
IL_089B: Label56
IL_089B: ldloc.s 30 (System.Int32)
IL_089D: ldarg.0
IL_089E: ldfld System.Int32 ElectricityManager::m_pulseGroupCount
IL_08A3: blt => Label58
IL_08A8: ldc.i4.0
IL_08A9: stloc.s 33 (System.Int32)
IL_08AB: br => Label59
IL_08B0: Label62
IL_08B0: ldarg.0
IL_08B1: ldfld PulseGroup[] ElectricityManager::m_pulseGroups
IL_08B6: ldloc.s 33 (System.Int32)
IL_08B8: ldelema ElectricityManager+PulseGroup
IL_08BD: ldobj ElectricityManager+PulseGroup
IL_08C2: stloc.s 34 (ElectricityManager+PulseGroup)
IL_08C4: ldloca.s 34 (ElectricityManager+PulseGroup)
IL_08C6: ldfld System.UInt32 PulseGroup::m_curCharge
IL_08CB: brfalse => Label60
IL_08D0: ldloca.s 34 (ElectricityManager+PulseGroup)
IL_08D2: ldfld System.Byte PulseGroup::m_z
IL_08D7: ldc.i4 256
IL_08DC: mul
IL_08DD: ldloca.s 34 (ElectricityManager+PulseGroup)
IL_08DF: ldfld System.Byte PulseGroup::m_x
IL_08E4: add
IL_08E5: stloc.s 35 (System.Int32)
IL_08E7: ldarg.0
IL_08E8: ldfld Cell[] ElectricityManager::m_electricityGrid
IL_08ED: ldloc.s 35 (System.Int32)
IL_08EF: ldelema ElectricityManager+Cell
IL_08F4: ldobj ElectricityManager+Cell
IL_08F9: stloc.s 36 (ElectricityManager+Cell)
IL_08FB: ldloca.s 36 (ElectricityManager+Cell)
IL_08FD: ldfld System.Byte Cell::m_conductivity
IL_0902: brfalse => Label61
IL_0907: ldloca.s 36 (ElectricityManager+Cell)
IL_0909: dup
IL_090A: ldfld System.UInt16 Cell::m_extraCharge
IL_090F: ldloca.s 34 (ElectricityManager+PulseGroup)
IL_0911: ldfld System.UInt32 PulseGroup::m_curCharge
IL_0916: ldc.i4 32767
IL_091B: ldloca.s 36 (ElectricityManager+Cell)
IL_091D: ldfld System.UInt16 Cell::m_extraCharge
IL_0922: sub
IL_0923: call static System.Int32 UnityEngine.Mathf::Min(System.Int32 a,
System.Int32 b)
IL_0928: conv.u2
IL_0929: add
IL_092A: conv.u2
IL_092B: stfld System.UInt16 Cell::m_extraCharge
IL_0930: Label61
IL_0930: ldarg.0
IL_0931: ldfld Cell[] ElectricityManager::m_electricityGrid
IL_0936: ldloc.s 35 (System.Int32)
IL_0938: ldelema ElectricityManager+Cell
IL_093D: ldloc.s 36 (ElectricityManager+Cell)
IL_093F: stobj ElectricityManager+Cell
IL_0944: Label60
IL_0944: ldloc.s 33 (System.Int32)
IL_0946: ldc.i4.1
IL_0947: add
IL_0948: stloc.s 33 (System.Int32)
IL_094A: Label59
IL_094A: ldloc.s 33 (System.Int32)
IL_094C: ldarg.0
IL_094D: ldfld System.Int32 ElectricityManager::m_pulseGroupCount
IL_0952: blt => Label62
IL_0957: // end original
IL_0957: Label0
IL_0957: Label1
IL_0957: Label22
IL_0957: Label55
IL_0957: ret
DONE

### Patch: System.Void ElectricityManager::ConductToNode(System.UInt16 nodeIndex,


NetNode& node, System.UInt16 group, System.Single minX, System.Single minZ,
System.Single maxX, System.Single maxZ)
### Replacement: static System.Void
ElectricityManager::ElectricityManager.ConductToNode_Patch0(ElectricityManager
this, System.UInt16 nodeIndex, NetNode& node, System.UInt16 group, System.Single
minX, System.Single minZ, System.Single maxX, System.Single maxZ)
IL_0000: Local var 0: NetInfo
IL_0000: Local var 1: ElectricityManager/PulseUnit
IL_0000: Local var 2: System.Int32
IL_0000: Local var 3: System.UInt16
IL_0000: // start original
IL_0000: ldarg.2
IL_0001: ldflda UnityEngine.Vector3 NetNode::m_position
IL_0006: ldfld System.Single UnityEngine.Vector3::x
IL_000B: ldarg.s 4
IL_000D: blt.un => Label0
IL_0012: ldarg.2
IL_0013: ldflda UnityEngine.Vector3 NetNode::m_position
IL_0018: ldfld System.Single UnityEngine.Vector3::z
IL_001D: ldarg.s 5
IL_001F: blt.un => Label1
IL_0024: ldarg.2
IL_0025: ldflda UnityEngine.Vector3 NetNode::m_position
IL_002A: ldfld System.Single UnityEngine.Vector3::x
IL_002F: ldarg.s 6
IL_0031: bgt.un => Label2
IL_0036: ldarg.2
IL_0037: ldflda UnityEngine.Vector3 NetNode::m_position
IL_003C: ldfld System.Single UnityEngine.Vector3::z
IL_0041: ldarg.s 7
IL_0043: bgt.un => Label3
IL_0048: ldarg.2
IL_0049: call NetInfo NetNode::get_Info()
IL_004E: stloc.0
IL_004F: ldloc.0
IL_0050: ldfld ItemClass NetInfo::m_class
IL_0055: ldfld Service ItemClass::m_service
IL_005A: ldc.i4.s 10
IL_005C: beq => Label4
IL_0061: ldarg.2
IL_0062: call NetInfo NetNode::get_Info()
IL_0067: ldfld NetAI NetInfo::m_netAI
IL_006C: isinst ConcourseAI
IL_0071: brfalse => Label5
IL_0076: Label4
IL_0076: ldarg.0
IL_0077: ldfld System.UInt16[] ElectricityManager::m_nodeGroups
IL_007C: ldarg.1
IL_007D: ldelem.u2
IL_007E: ldc.i4 65535
IL_0083: bne.un => Label6
IL_0088: ldloca.s 1 (ElectricityManager+PulseUnit)
IL_008A: ldarg.3
IL_008B: stfld System.UInt16 PulseUnit::m_group
IL_0090: ldloca.s 1 (ElectricityManager+PulseUnit)
IL_0092: ldarg.1
IL_0093: stfld System.UInt16 PulseUnit::m_node
IL_0098: ldloca.s 1 (ElectricityManager+PulseUnit)
IL_009A: ldc.i4.0
IL_009B: stfld System.Byte PulseUnit::m_x
IL_00A0: ldloca.s 1 (ElectricityManager+PulseUnit)
IL_00A2: ldc.i4.0
IL_00A3: stfld System.Byte PulseUnit::m_z
IL_00A8: ldarg.0
IL_00A9: ldfld PulseUnit[] ElectricityManager::m_pulseUnits
IL_00AE: ldarg.0
IL_00AF: ldfld System.Int32 ElectricityManager::m_pulseUnitEnd
IL_00B4: ldelema ElectricityManager+PulseUnit
IL_00B9: ldloc.1
IL_00BA: stobj ElectricityManager+PulseUnit
IL_00BF: ldarg.0
IL_00C0: dup
IL_00C1: ldfld System.Int32 ElectricityManager::m_pulseUnitEnd
IL_00C6: ldc.i4.1
IL_00C7: add
IL_00C8: dup
IL_00C9: stloc.2
IL_00CA: stfld System.Int32 ElectricityManager::m_pulseUnitEnd
IL_00CF: ldloc.2
IL_00D0: ldarg.0
IL_00D1: ldfld PulseUnit[] ElectricityManager::m_pulseUnits
IL_00D6: ldlen
IL_00D7: conv.i4
IL_00D8: bne.un => Label7
IL_00DD: ldarg.0
IL_00DE: ldc.i4.0
IL_00DF: stfld System.Int32 ElectricityManager::m_pulseUnitEnd
IL_00E4: Label7
IL_00E4: ldarg.0
IL_00E5: ldfld System.UInt16[] ElectricityManager::m_nodeGroups
IL_00EA: ldarg.1
IL_00EB: ldarg.3
IL_00EC: stelem.i2
IL_00ED: ldarg.0
IL_00EE: ldc.i4.1
IL_00EF: stfld System.Boolean ElectricityManager::m_canContinue
IL_00F4: br => Label8
IL_00F9: Label6
IL_00F9: ldarg.0
IL_00FA: ldarg.0
IL_00FB: ldfld System.UInt16[] ElectricityManager::m_nodeGroups
IL_0100: ldarg.1
IL_0101: ldelem.u2
IL_0102: call System.UInt16 ElectricityManager::GetRootGroup(System.UInt16
group)
IL_0107: stloc.3
IL_0108: ldloc.3
IL_0109: ldarg.3
IL_010A: beq => Label9
IL_010F: ldarg.0
IL_0110: ldarg.3
IL_0111: ldloc.3
IL_0112: call System.Void ElectricityManager::MergeGroups(System.UInt16 root,
System.UInt16 merged)
IL_0117: ldarg.0
IL_0118: ldfld System.UInt16[] ElectricityManager::m_nodeGroups
IL_011D: ldarg.1
IL_011E: ldarg.3
IL_011F: stelem.i2
IL_0120: ldarg.0
IL_0121: ldc.i4.1
IL_0122: stfld System.Boolean ElectricityManager::m_canContinue
IL_0127: // end original
IL_0127: Label0
IL_0127: Label1
IL_0127: Label2
IL_0127: Label3
IL_0127: Label5
IL_0127: Label8
IL_0127: Label9
IL_0127: ret
DONE

### Patch: System.Void ElectricityManager::UpdateNodeElectricity(System.Int32


nodeID, System.Int32 value)
### Replacement: static System.Void
ElectricityManager::ElectricityManager.UpdateNodeElectricity_Patch0(ElectricityMana
ger this, System.Int32 nodeID, System.Int32 value)
IL_0000: Local var 0: InfoManager/InfoMode
IL_0000: Local var 1: NetManager
IL_0000: Local var 2: System.Boolean
IL_0000: Local var 3: NetNode/Flags
IL_0000: Local var 4: System.UInt16
IL_0000: Local var 5: BuildingManager
IL_0000: Local var 6: NetNode/Flags
IL_0000: Local var 7: System.Int32
IL_0000: Local var 8: System.UInt16
IL_0000: // start original
IL_0000: call static InfoManager
ColossalFramework.Singleton`1<InfoManager>::get_instance()
IL_0005: callvirt InfoMode InfoManager::get_CurrentMode()
IL_000A: stloc.0
IL_000B: call static NetManager
ColossalFramework.Singleton`1<NetManager>::get_instance()
IL_0010: stloc.1
IL_0011: ldc.i4.0
IL_0012: stloc.2
IL_0013: ldloc.1
IL_0014: ldfld Array16`1<NetNode> NetManager::m_nodes
IL_0019: ldfld NetNode[] Array16`1<NetNode>::m_buffer
IL_001E: ldarg.1
IL_001F: ldelema NetNode
IL_0024: ldfld Flags NetNode::m_flags
IL_0029: stloc.3
IL_002A: ldloc.3
IL_002B: ldc.i4 1048576
IL_0030: and
IL_0031: brfalse => Label0
IL_0036: ldloc.1
IL_0037: ldfld Array16`1<NetNode> NetManager::m_nodes
IL_003C: ldfld NetNode[] Array16`1<NetNode>::m_buffer
IL_0041: ldarg.1
IL_0042: ldelema NetNode
IL_0047: dup
IL_0048: ldfld Flags NetNode::m_flags
IL_004D: ldc.i4 -1048577
IL_0052: and
IL_0053: stfld Flags NetNode::m_flags
IL_0058: br => Label10
IL_005D: Label0
IL_005D: ldloc.1
IL_005E: ldfld Array16`1<NetNode> NetManager::m_nodes
IL_0063: ldfld NetNode[] Array16`1<NetNode>::m_buffer
IL_0068: ldarg.1
IL_0069: ldelema NetNode
IL_006E: ldfld System.UInt16 NetNode::m_building
IL_0073: stloc.s 4 (System.UInt16)
IL_0075: ldloc.s 4 (System.UInt16)
IL_0077: brfalse => Label1
IL_007C: call static BuildingManager
ColossalFramework.Singleton`1<BuildingManager>::get_instance()
IL_0081: stloc.s 5 (BuildingManager)
IL_0083: ldloc.s 5 (BuildingManager)
IL_0085: ldfld Array16`1<Building> BuildingManager::m_buildings
IL_008A: ldfld Building[] Array16`1<Building>::m_buffer
IL_008F: ldloc.s 4 (System.UInt16)
IL_0091: ldelema Building
IL_0096: ldfld System.UInt16 Building::m_electricityBuffer
IL_009B: ldarg.2
IL_009C: beq => Label2
IL_00A1: ldloc.s 5 (BuildingManager)
IL_00A3: ldfld Array16`1<Building> BuildingManager::m_buildings
IL_00A8: ldfld Building[] Array16`1<Building>::m_buffer
IL_00AD: ldloc.s 4 (System.UInt16)
IL_00AF: ldelema Building
IL_00B4: ldarg.2
IL_00B5: conv.u2
IL_00B6: stfld System.UInt16 Building::m_electricityBuffer
IL_00BB: ldloc.0
IL_00BC: ldc.i4.1
IL_00BD: ceq
IL_00BF: stloc.2
IL_00C0: Label2
IL_00C0: ldloc.2
IL_00C1: brfalse => Label3
IL_00C6: ldloc.s 5 (BuildingManager)
IL_00C8: ldloc.s 4 (System.UInt16)
IL_00CA: callvirt System.Void BuildingManager::UpdateBuildingColors(System.UInt16
building)
IL_00CF: Label1
IL_00CF: Label3
IL_00CF: ldloc.3
IL_00D0: ldc.i4 -67108865
IL_00D5: and
IL_00D6: stloc.s 6 (NetNode+Flags)
IL_00D8: ldarg.2
IL_00D9: brfalse => Label4
IL_00DE: ldloc.s 6 (NetNode+Flags)
IL_00E0: ldc.i4 67108864
IL_00E5: or
IL_00E6: stloc.s 6 (NetNode+Flags)
IL_00E8: Label4
IL_00E8: ldloc.s 6 (NetNode+Flags)
IL_00EA: ldloc.3
IL_00EB: beq => Label5
IL_00F0: ldloc.1
IL_00F1: ldfld Array16`1<NetNode> NetManager::m_nodes
IL_00F6: ldfld NetNode[] Array16`1<NetNode>::m_buffer
IL_00FB: ldarg.1
IL_00FC: ldelema NetNode
IL_0101: ldloc.s 6 (NetNode+Flags)
IL_0103: stfld Flags NetNode::m_flags
IL_0108: ldloc.0
IL_0109: ldc.i4.1
IL_010A: ceq
IL_010C: stloc.2
IL_010D: Label5
IL_010D: ldloc.2
IL_010E: brfalse => Label6
IL_0113: ldloc.1
IL_0114: ldarg.1
IL_0115: conv.u2
IL_0116: callvirt System.Void NetManager::UpdateNodeColors(System.UInt16 node)
IL_011B: ldc.i4.0
IL_011C: stloc.s 7 (System.Int32)
IL_011E: br => Label7
IL_0123: Label9
IL_0123: ldloc.1
IL_0124: ldfld Array16`1<NetNode> NetManager::m_nodes
IL_0129: ldfld NetNode[] Array16`1<NetNode>::m_buffer
IL_012E: ldarg.1
IL_012F: ldelema NetNode
IL_0134: ldloc.s 7 (System.Int32)
IL_0136: call System.UInt16 NetNode::GetSegment(System.Int32 index)
IL_013B: stloc.s 8 (System.UInt16)
IL_013D: ldloc.s 8 (System.UInt16)
IL_013F: brfalse => Label8
IL_0144: ldloc.1
IL_0145: ldloc.s 8 (System.UInt16)
IL_0147: callvirt System.Void NetManager::UpdateSegmentColors(System.UInt16
segment)
IL_014C: Label8
IL_014C: ldloc.s 7 (System.Int32)
IL_014E: ldc.i4.1
IL_014F: add
IL_0150: stloc.s 7 (System.Int32)
IL_0152: Label7
IL_0152: ldloc.s 7 (System.Int32)
IL_0154: ldc.i4.8
IL_0155: blt => Label9
IL_015A: // end original
IL_015A: Label6
IL_015A: Label10
IL_015A: ret
DONE

### Patch: virtual System.Void ColossalFramework.UI.UIView::Start()


### Replacement: static System.Void
ColossalFramework.UI.UIView::ColossalFramework.UI.UIView.Start_Patch1(ColossalFrame
work.UI.UIView this)
IL_0000: Local var 0:
ColossalFramework.PoolList`1<ColossalFramework.UI.UIComponent>
IL_0000: Local var 1: ColossalFramework.UI.UIComponent
IL_0000: Local var 2:
System.Collections.Generic.IEnumerator`1<ColossalFramework.UI.UIComponent>
IL_0000: // start original
IL_0000: ldarg.0
IL_0001: ldc.i4.0
IL_0002: stfld System.Int32 ColossalFramework.UI.UIView::m_FramesRendered
IL_0007: ldarg.0
IL_0008: call System.Void
ColossalFramework.UI.UIView::InvalidateAllComponents()
IL_000D: ldarg.0
IL_000E: ldfld UnityEngine.MeshRenderer
ColossalFramework.UI.UIView::m_MeshRenderer
IL_0013: ldnull
IL_0014: call static System.Boolean
UnityEngine.Object::op_Inequality(UnityEngine.Object x, UnityEngine.Object y)
IL_0019: brfalse => Label0
IL_001E: ldarg.0
IL_001F: ldfld UnityEngine.MeshRenderer
ColossalFramework.UI.UIView::m_MeshRenderer
IL_0024: ldc.i4.1
IL_0025: callvirt System.Void UnityEngine.Renderer::set_enabled(System.Boolean
value)
IL_002A: Label0
IL_002A: ldarg.0
IL_002B: call ColossalFramework.PoolList`1<ColossalFramework.UI.UIComponent>
ColossalFramework.UI.UIView::GetTopLevelComponents()
IL_0030: stloc.0
.try
{
IL_0031: ldloc.0
IL_0032: callvirt virtual
System.Collections.Generic.IEnumerator`1<ColossalFramework.UI.UIComponent>
ColossalFramework.PoolList`1<ColossalFramework.UI.UIComponent>::GetEnumerator()
IL_0037: stloc.2
.try
{
IL_0038: br => Label1
IL_003D: Label2
IL_003D: ldloc.2
IL_003E: callvirt abstract virtual ColossalFramework.UI.UIComponent
System.Collections.Generic.IEnumerator`1<ColossalFramework.UI.UIComponent>::get_Cur
rent()
IL_0043: stloc.1
IL_0044: ldloc.1
IL_0045: ldc.i4.1
IL_0046: callvirt System.Void
ColossalFramework.UI.UIComponent::InitializeParentVisibilityCache(System.Boolean
parentVisible)
IL_004B: Label1
IL_004B: ldloc.2
IL_004C: callvirt abstract virtual System.Boolean
System.Collections.IEnumerator::MoveNext()
IL_0051: brtrue => Label2
IL_0056: leave => Label3
IL_005B: leave => (autogenerated)
} // end try
.finally
{
IL_0060: ldloc.2
IL_0061: brfalse => Label4
IL_0066: ldloc.2
IL_0067: callvirt abstract virtual System.Void
System.IDisposable::Dispose()
IL_006C: Label4
IL_006C: endfinally
IL_006D: leave => (autogenerated)
} // end handler
IL_006E: Label3
IL_006E: leave => Label5
IL_0073: leave => (autogenerated)
} // end try
.finally
{
IL_0078: ldloc.0
IL_0079: brfalse => Label6
IL_007E: ldloc.0
IL_007F: callvirt abstract virtual System.Void
System.IDisposable::Dispose()
IL_0084: Label6
IL_0084: endfinally
IL_0085: leave => (autogenerated)
} // end handler
IL_0086: Label5
IL_0086: ldarg.0
IL_0087: ldc.i4.1
IL_0088: stfld System.Boolean
ColossalFramework.UI.UIView::m_VisibilityCacheInitialized
IL_008D: // end original
IL_008D: call static System.Void
Kwytto.Redirectors.UIViewRedirector::AfterStart()
IL_0092: ret
DONE

### Patch: virtual UnityEngine.Color NetAI::GetColor(System.UInt16 nodeID, NetNode&


data, InfoMode infoMode, SubInfoMode subInfoMode)
### Replacement: static UnityEngine.Color NetAI::NetAI.GetColor_Patch1(NetAI this,
System.UInt16 nodeID, NetNode& data, InfoMode infoMode, SubInfoMode subInfoMode)
IL_0000: Local var 0: UnityEngine.Color
IL_0000: ldloca 0 (UnityEngine.Color)
IL_0004: initobj UnityEngine.Color
IL_000A: // start original
IL_000A: ldarg.3
IL_000B: brfalse => Label0
IL_0010: call static InfoManager
ColossalFramework.Singleton`1<InfoManager>::get_instance()
IL_0015: ldfld InfoProperties SimulationManagerBase`2<InfoManager,
InfoProperties>::m_properties
IL_001A: ldfld UnityEngine.Color InfoProperties::m_neutralColor
IL_001F: br => Label1
IL_0024: Label0
IL_0024: ldarg.0
IL_0025: ldfld NetInfo NetAI::m_info
IL_002A: ldfld UnityEngine.Color NetInfo::m_color
IL_002F: // end original
IL_002F: Label1
IL_002F: stloc 0 (UnityEngine.Color)
IL_0033: ldloca 0 (UnityEngine.Color)
IL_0037: ldarg 1
IL_003B: ldarg 2
IL_003F: ldarg 3
IL_0043: ldarg 4
IL_0047: call static System.Void
ElectricRoads.Overrides.ElectricRoadsOverrides::AfterGetColorNode(UnityEngine.Color
& __result, System.UInt16 nodeID, NetNode& data, InfoMode infoMode, SubInfoMode
subInfoMode)
IL_004C: ldloc 0 (UnityEngine.Color)
IL_0050: ret
DONE

### Patch: virtual UnityEngine.Color NetAI::GetColor(System.UInt16 segmentID,


NetSegment& data, InfoMode infoMode, SubInfoMode subInfoMode)
### Replacement: static UnityEngine.Color NetAI::NetAI.GetColor_Patch1(NetAI this,
System.UInt16 segmentID, NetSegment& data, InfoMode infoMode, SubInfoMode
subInfoMode)
IL_0000: Local var 0: UnityEngine.Color
IL_0000: ldloca 0 (UnityEngine.Color)
IL_0004: initobj UnityEngine.Color
IL_000A: // start original
IL_000A: ldarg.3
IL_000B: brfalse => Label0
IL_0010: call static InfoManager
ColossalFramework.Singleton`1<InfoManager>::get_instance()
IL_0015: ldfld InfoProperties SimulationManagerBase`2<InfoManager,
InfoProperties>::m_properties
IL_001A: ldfld UnityEngine.Color InfoProperties::m_neutralColor
IL_001F: br => Label1
IL_0024: Label0
IL_0024: ldarg.0
IL_0025: ldfld NetInfo NetAI::m_info
IL_002A: ldfld UnityEngine.Color NetInfo::m_color
IL_002F: // end original
IL_002F: Label1
IL_002F: stloc 0 (UnityEngine.Color)
IL_0033: ldloca 0 (UnityEngine.Color)
IL_0037: ldarg 1
IL_003B: ldarg 2
IL_003F: ldarg 3
IL_0043: ldarg 4
IL_0047: call static System.Void
ElectricRoads.Overrides.ElectricRoadsOverrides::AfterGetColorSegment(UnityEngine.Co
lor& __result, System.UInt16 segmentID, NetSegment& data, InfoMode infoMode,
SubInfoMode subInfoMode)
IL_004C: ldloc 0 (UnityEngine.Color)
IL_0050: ret
DONE

### Patch: System.Void ElectricityManager::UpdateNodeElectricity(System.Int32


nodeID, System.Int32 value)
### Replacement: static System.Void
ElectricityManager::ElectricityManager.UpdateNodeElectricity_Patch0(ElectricityMana
ger this, System.Int32 nodeID, System.Int32 value)
IL_0000: Local var 0: InfoManager/InfoMode
IL_0000: Local var 1: NetManager
IL_0000: Local var 2: System.Boolean
IL_0000: Local var 3: NetNode/Flags
IL_0000: Local var 4: System.UInt16
IL_0000: Local var 5: BuildingManager
IL_0000: Local var 6: NetNode/Flags
IL_0000: Local var 7: System.Int32
IL_0000: Local var 8: System.UInt16
IL_0000: // start original
IL_0000: call static InfoManager
ColossalFramework.Singleton`1<InfoManager>::get_instance()
IL_0005: callvirt InfoMode InfoManager::get_CurrentMode()
IL_000A: stloc.0
IL_000B: call static NetManager
ColossalFramework.Singleton`1<NetManager>::get_instance()
IL_0010: stloc.1
IL_0011: ldc.i4.0
IL_0012: stloc.2
IL_0013: ldloc.1
IL_0014: ldfld Array16`1<NetNode> NetManager::m_nodes
IL_0019: ldfld NetNode[] Array16`1<NetNode>::m_buffer
IL_001E: ldarg.1
IL_001F: ldelema NetNode
IL_0024: ldfld Flags NetNode::m_flags
IL_0029: stloc.3
IL_002A: ldarg.1
IL_002B: call static System.Boolean
ElectricRoads.Overrides.ElectricRoadsOverrides::CheckNodeTransition(System.Int32
nodeID)
IL_0030: brfalse => Label0
IL_0035: ldloc.1
IL_0036: ldfld Array16`1<NetNode> NetManager::m_nodes
IL_003B: ldfld NetNode[] Array16`1<NetNode>::m_buffer
IL_0040: ldarg.1
IL_0041: ldelema NetNode
IL_0046: dup
IL_0047: ldfld Flags NetNode::m_flags
IL_004C: ldc.i4 -1048577
IL_0051: and
IL_0052: stfld Flags NetNode::m_flags
IL_0057: br => Label10
IL_005C: Label0
IL_005C: ldloc.1
IL_005D: ldfld Array16`1<NetNode> NetManager::m_nodes
IL_0062: ldfld NetNode[] Array16`1<NetNode>::m_buffer
IL_0067: ldarg.1
IL_0068: ldelema NetNode
IL_006D: ldfld System.UInt16 NetNode::m_building
IL_0072: stloc.s 4 (System.UInt16)
IL_0074: ldloc.s 4 (System.UInt16)
IL_0076: brfalse => Label1
IL_007B: call static BuildingManager
ColossalFramework.Singleton`1<BuildingManager>::get_instance()
IL_0080: stloc.s 5 (BuildingManager)
IL_0082: ldloc.s 5 (BuildingManager)
IL_0084: ldfld Array16`1<Building> BuildingManager::m_buildings
IL_0089: ldfld Building[] Array16`1<Building>::m_buffer
IL_008E: ldloc.s 4 (System.UInt16)
IL_0090: ldelema Building
IL_0095: ldfld System.UInt16 Building::m_electricityBuffer
IL_009A: ldarg.2
IL_009B: beq => Label2
IL_00A0: ldloc.s 5 (BuildingManager)
IL_00A2: ldfld Array16`1<Building> BuildingManager::m_buildings
IL_00A7: ldfld Building[] Array16`1<Building>::m_buffer
IL_00AC: ldloc.s 4 (System.UInt16)
IL_00AE: ldelema Building
IL_00B3: ldarg.2
IL_00B4: conv.u2
IL_00B5: stfld System.UInt16 Building::m_electricityBuffer
IL_00BA: ldloc.0
IL_00BB: ldc.i4.1
IL_00BC: ceq
IL_00BE: stloc.2
IL_00BF: Label2
IL_00BF: ldloc.2
IL_00C0: brfalse => Label3
IL_00C5: ldloc.s 5 (BuildingManager)
IL_00C7: ldloc.s 4 (System.UInt16)
IL_00C9: callvirt System.Void BuildingManager::UpdateBuildingColors(System.UInt16
building)
IL_00CE: Label1
IL_00CE: Label3
IL_00CE: ldloc.3
IL_00CF: ldc.i4 -67108865
IL_00D4: and
IL_00D5: stloc.s 6 (NetNode+Flags)
IL_00D7: ldarg.2
IL_00D8: brfalse => Label4
IL_00DD: ldloc.s 6 (NetNode+Flags)
IL_00DF: ldc.i4 67108864
IL_00E4: or
IL_00E5: stloc.s 6 (NetNode+Flags)
IL_00E7: Label4
IL_00E7: ldloc.s 6 (NetNode+Flags)
IL_00E9: ldloc.3
IL_00EA: beq => Label5
IL_00EF: ldloc.1
IL_00F0: ldfld Array16`1<NetNode> NetManager::m_nodes
IL_00F5: ldfld NetNode[] Array16`1<NetNode>::m_buffer
IL_00FA: ldarg.1
IL_00FB: ldelema NetNode
IL_0100: ldloc.s 6 (NetNode+Flags)
IL_0102: stfld Flags NetNode::m_flags
IL_0107: ldloc.0
IL_0108: ldc.i4.1
IL_0109: ceq
IL_010B: stloc.2
IL_010C: Label5
IL_010C: ldloc.2
IL_010D: brfalse => Label6
IL_0112: ldloc.1
IL_0113: ldarg.1
IL_0114: conv.u2
IL_0115: callvirt System.Void NetManager::UpdateNodeColors(System.UInt16 node)
IL_011A: ldc.i4.0
IL_011B: stloc.s 7 (System.Int32)
IL_011D: br => Label7
IL_0122: Label9
IL_0122: ldloc.1
IL_0123: ldfld Array16`1<NetNode> NetManager::m_nodes
IL_0128: ldfld NetNode[] Array16`1<NetNode>::m_buffer
IL_012D: ldarg.1
IL_012E: ldelema NetNode
IL_0133: ldloc.s 7 (System.Int32)
IL_0135: call System.UInt16 NetNode::GetSegment(System.Int32 index)
IL_013A: stloc.s 8 (System.UInt16)
IL_013C: ldloc.s 8 (System.UInt16)
IL_013E: brfalse => Label8
IL_0143: ldloc.1
IL_0144: ldloc.s 8 (System.UInt16)
IL_0146: callvirt System.Void NetManager::UpdateSegmentColors(System.UInt16
segment)
IL_014B: Label8
IL_014B: ldloc.s 7 (System.Int32)
IL_014D: ldc.i4.1
IL_014E: add
IL_014F: stloc.s 7 (System.Int32)
IL_0151: Label7
IL_0151: ldloc.s 7 (System.Int32)
IL_0153: ldc.i4.8
IL_0154: blt => Label9
IL_0159: // end original
IL_0159: Label6
IL_0159: Label10
IL_0159: ret
DONE

### Patch: static System.Void PropInstance::RenderInstance(CameraInfo cameraInfo,


PropInfo info, InstanceID id, UnityEngine.Vector3 position, System.Single scale,
System.Single angle, UnityEngine.Color color, UnityEngine.Vector4 objectIndex,
System.Boolean active, UnityEngine.Texture heightMap, UnityEngine.Vector4
heightMapping, UnityEngine.Vector4 surfaceMapping, UnityEngine.Texture
waterHeightMap, UnityEngine.Vector4 waterHeightMapping, UnityEngine.Vector4
waterSurfaceMapping)
### Replacement: static System.Void
PropInstance::PropInstance.RenderInstance_Patch0(CameraInfo cameraInfo, PropInfo
info, InstanceID id, UnityEngine.Vector3 position, System.Single scale,
System.Single angle, UnityEngine.Color color, UnityEngine.Vector4 objectIndex,
System.Boolean active, UnityEngine.Texture heightMap, UnityEngine.Vector4
heightMapping, UnityEngine.Vector4 surfaceMapping, UnityEngine.Texture
waterHeightMap, UnityEngine.Vector4 waterHeightMapping, UnityEngine.Vector4
waterSurfaceMapping)
IL_0000: Local var 0: UnityEngine.Matrix4x4
IL_0000: Local var 1: System.Single
IL_0000: Local var 2: System.Int32
IL_0000: Local var 3: UnityEngine.Vector3
IL_0000: Local var 4: UnityEngine.Vector3
IL_0000: Local var 5: EffectInfo/SpawnArea
IL_0000: Local var 6: System.Single
IL_0000: Local var 7: LightSystem
IL_0000: Local var 8: ColossalFramework.Math.Randomizer
IL_0000: Local var 9: UnityEngine.Vector4
IL_0000: Local var 10: System.Single
IL_0000: Local var 11: System.Single
IL_0000: Local var 12: System.Single
IL_0000: Local var 13: UnityEngine.Matrix4x4
IL_0000: Local var 14: PropManager
IL_0000: Local var 15: UnityEngine.MaterialPropertyBlock
IL_0000: Local var 16: System.Int32
IL_0000: // start original
IL_0000: ldarg.1
IL_0001: ldfld System.Boolean PrefabInfo::m_prefabInitialized
IL_0006: brfalse => Label0
IL_000B: ldarg.1
IL_000C: ldfld System.Boolean PropInfo::m_hasEffects
IL_0011: brfalse => Label1
IL_0016: ldarg.s 8
IL_0018: brtrue => Label2
IL_001D: ldarg.1
IL_001E: ldfld System.Boolean PropInfo::m_alwaysActive
IL_0023: brfalse => Label3
IL_0028: Label2
IL_0028: ldloca.s 0 (UnityEngine.Matrix4x4)
IL_002A: initobj UnityEngine.Matrix4x4
IL_0030: ldloca.s 0 (UnityEngine.Matrix4x4)
IL_0032: ldarg.3
IL_0033: ldarg.s 5
IL_0035: ldc.r4 57.29578
IL_003A: mul
IL_003B: call static UnityEngine.Vector3 UnityEngine.Vector3::get_down()
IL_0040: call static UnityEngine.Quaternion
UnityEngine.Quaternion::AngleAxis(System.Single angle, UnityEngine.Vector3 axis)
IL_0045: ldarg.s 4
IL_0047: ldarg.s 4
IL_0049: ldarg.s 4
IL_004B: newobj System.Void UnityEngine.Vector3::.ctor(System.Single x,
System.Single y, System.Single z)
IL_0050: call System.Void UnityEngine.Matrix4x4::SetTRS(UnityEngine.Vector3
pos, UnityEngine.Quaternion q, UnityEngine.Vector3 s)
IL_0055: call static SimulationManager
ColossalFramework.Singleton`1<SimulationManager>::get_instance()
IL_005A: ldfld System.Single SimulationManager::m_simulationTimeDelta
IL_005F: stloc.1
IL_0060: ldc.i4.0
IL_0061: stloc.2
IL_0062: br => Label4
IL_0067: Label5
IL_0067: ldloca.s 0 (UnityEngine.Matrix4x4)
IL_0069: ldarg.1
IL_006A: ldfld Effect[] PropInfo::m_effects
IL_006F: ldloc.2
IL_0070: ldelema PropInfo+Effect
IL_0075: ldfld UnityEngine.Vector3 Effect::m_position
IL_007A: call UnityEngine.Vector3
UnityEngine.Matrix4x4::MultiplyPoint(UnityEngine.Vector3 v)
IL_007F: stloc.3
IL_0080: ldloca.s 0 (UnityEngine.Matrix4x4)
IL_0082: ldarg.1
IL_0083: ldfld Effect[] PropInfo::m_effects
IL_0088: ldloc.2
IL_0089: ldelema PropInfo+Effect
IL_008E: ldfld UnityEngine.Vector3 Effect::m_direction
IL_0093: call UnityEngine.Vector3
UnityEngine.Matrix4x4::MultiplyVector(UnityEngine.Vector3 v)
IL_0098: stloc.s 4 (UnityEngine.Vector3)
IL_009A: ldloca.s 5 (EffectInfo+SpawnArea)
IL_009C: ldloc.3
IL_009D: ldloc.s 4 (UnityEngine.Vector3)
IL_009F: ldc.r4 0
IL_00A4: call System.Void SpawnArea::.ctor(UnityEngine.Vector3 position,
UnityEngine.Vector3 direction, System.Single radius)
IL_00A9: ldarg.1
IL_00AA: ldfld Effect[] PropInfo::m_effects
IL_00AF: ldloc.2
IL_00B0: ldelema PropInfo+Effect
IL_00B5: ldfld EffectInfo Effect::m_effect
IL_00BA: ldarg.2
IL_00BB: ldloc.s 5 (EffectInfo+SpawnArea)
IL_00BD: call static UnityEngine.Vector3 UnityEngine.Vector3::get_zero()
IL_00C2: ldc.r4 0
IL_00C7: ldc.r4 1
IL_00CC: ldc.r4 -1
IL_00D1: ldloc.1
IL_00D2: ldarg.0
IL_00D3: callvirt virtual System.Void EffectInfo::RenderEffect(InstanceID id,
SpawnArea area, UnityEngine.Vector3 velocity, System.Single acceleration,
System.Single magnitude, System.Single timeOffset, System.Single timeDelta,
CameraInfo cameraInfo)
IL_00D8: ldloc.2
IL_00D9: ldc.i4.1
IL_00DA: add
IL_00DB: stloc.2
IL_00DC: Label4
IL_00DC: ldloc.2
IL_00DD: ldarg.1
IL_00DE: ldfld Effect[] PropInfo::m_effects
IL_00E3: ldlen
IL_00E4: conv.i4
IL_00E5: blt => Label5
IL_00EA: Label1
IL_00EA: Label3
IL_00EA: ldarg.1
IL_00EB: ldfld System.Boolean PropInfo::m_hasRenderer
IL_00F0: brfalse => Label6
IL_00F5: ldarg.0
IL_00F6: ldfld System.Int32 CameraInfo::m_layerMask
IL_00FB: ldc.i4.1
IL_00FC: ldarg.1
IL_00FD: ldfld System.Int32 PrefabInfo::m_prefabDataLayer
IL_0102: ldc.i4.s 31
IL_0104: and
IL_0105: shl
IL_0106: and
IL_0107: brfalse => Label7
IL_010C: call static InfoManager
ColossalFramework.Singleton`1<InfoManager>::get_instance()
IL_0111: callvirt InfoMode InfoManager::get_CurrentMode()
IL_0116: brtrue => Label8
IL_011B: ldarg 2
IL_011F: call static System.Boolean
ElectricRoads.Overrides.ElectricRoadsOverrides::CheckElectrityNetForLight(InstanceI
D id)
IL_0124: brfalse => Label24
IL_0129: ldc.r4 0
IL_012E: stloc.s 6 (System.Single)
IL_0130: ldarg.s 8
IL_0132: brtrue => Label9
IL_0137: ldarg.1
IL_0138: ldfld System.Boolean PropInfo::m_alwaysActive
IL_013D: brtrue => Label10
IL_0142: Label24
IL_0142: ldarga.s 7
IL_0144: ldc.r4 0
IL_0149: stfld System.Single UnityEngine.Vector4::z
IL_014E: br => Label11
IL_0153: Label9
IL_0153: Label10
IL_0153: ldarg.1
IL_0154: ldflda UnityEngine.Vector2 PropInfo::m_illuminationOffRange
IL_0159: ldfld System.Single UnityEngine.Vector2::x
IL_015E: ldc.r4 1000
IL_0163: blt => Label12
IL_0168: ldarg.1
IL_0169: ldfld BlinkType PropInfo::m_illuminationBlinkType
IL_016E: brfalse => Label13
IL_0173: Label12
IL_0173: call static RenderManager
ColossalFramework.Singleton`1<RenderManager>::get_instance()
IL_0178: callvirt LightSystem RenderManager::get_lightSystem()
IL_017D: stloc.s 7 (LightSystem)
IL_017F: ldloca.s 8 (ColossalFramework.Math.Randomizer)
IL_0181: ldarga.s 2
IL_0183: call System.UInt32 InstanceID::get_Index()
IL_0188: call System.Void
ColossalFramework.Math.Randomizer::.ctor(System.UInt32 _seed)
IL_018D: ldarg.1
IL_018E: ldflda UnityEngine.Vector2 PropInfo::m_illuminationOffRange
IL_0193: ldfld System.Single UnityEngine.Vector2::x
IL_0198: ldloca.s 8 (ColossalFramework.Math.Randomizer)
IL_019A: ldc.i4 100000
IL_019F: call System.Int32
ColossalFramework.Math.Randomizer::Int32(System.UInt32 range)
IL_01A4: conv.r4
IL_01A5: ldc.r4 1E-05
IL_01AA: mul
IL_01AB: ldarg.1
IL_01AC: ldflda UnityEngine.Vector2 PropInfo::m_illuminationOffRange
IL_01B1: ldfld System.Single UnityEngine.Vector2::y
IL_01B6: ldarg.1
IL_01B7: ldflda UnityEngine.Vector2 PropInfo::m_illuminationOffRange
IL_01BC: ldfld System.Single UnityEngine.Vector2::x
IL_01C1: sub
IL_01C2: mul
IL_01C3: add
IL_01C4: stloc.s 6 (System.Single)
IL_01C6: ldarga.s 7
IL_01C8: ldloc.s 6 (System.Single)
IL_01CA: ldc.r4 0.01
IL_01CF: add
IL_01D0: ldloc.s 6 (System.Single)
IL_01D2: ldc.r4 0.01
IL_01D7: sub
IL_01D8: ldloc.s 7 (LightSystem)
IL_01DA: callvirt System.Single LightSystem::get_DayLightIntensity()
IL_01DF: call static System.Single MathUtils::SmoothStep(System.Single edge0,
System.Single edge1, System.Single x)
IL_01E4: stfld System.Single UnityEngine.Vector4::z
IL_01E9: ldarg.1
IL_01EA: ldfld BlinkType PropInfo::m_illuminationBlinkType
IL_01EF: brfalse => Label14
IL_01F4: ldarg.1
IL_01F5: ldfld BlinkType PropInfo::m_illuminationBlinkType
IL_01FA: call static UnityEngine.Vector4
LightEffect::GetBlinkVector(BlinkType type)
IL_01FF: stloc.s 9 (UnityEngine.Vector4)
IL_0201: ldloc.s 6 (System.Single)
IL_0203: ldc.r4 3.71
IL_0208: mul
IL_0209: call static SimulationManager
ColossalFramework.Singleton`1<SimulationManager>::get_instance()
IL_020E: ldfld System.Single SimulationManager::m_simulationTimer
IL_0213: ldloca.s 9 (UnityEngine.Vector4)
IL_0215: ldfld System.Single UnityEngine.Vector4::w
IL_021A: div
IL_021B: add
IL_021C: stloc.s 10 (System.Single)
IL_021E: ldloc.s 10 (System.Single)
IL_0220: ldloc.s 10 (System.Single)
IL_0222: call static System.Single UnityEngine.Mathf::Floor(System.Single f)
IL_0227: sub
IL_0228: ldloca.s 9 (UnityEngine.Vector4)
IL_022A: ldfld System.Single UnityEngine.Vector4::w
IL_022F: mul
IL_0230: stloc.s 10 (System.Single)
IL_0232: ldloca.s 9 (UnityEngine.Vector4)
IL_0234: ldfld System.Single UnityEngine.Vector4::x
IL_0239: ldloca.s 9 (UnityEngine.Vector4)
IL_023B: ldfld System.Single UnityEngine.Vector4::y
IL_0240: ldloc.s 10 (System.Single)
IL_0242: call static System.Single MathUtils::SmoothStep(System.Single edge0,
System.Single edge1, System.Single x)
IL_0247: stloc.s 11 (System.Single)
IL_0249: ldloca.s 9 (UnityEngine.Vector4)
IL_024B: ldfld System.Single UnityEngine.Vector4::w
IL_0250: ldloca.s 9 (UnityEngine.Vector4)
IL_0252: ldfld System.Single UnityEngine.Vector4::z
IL_0257: ldloc.s 10 (System.Single)
IL_0259: call static System.Single MathUtils::SmoothStep(System.Single edge0,
System.Single edge1, System.Single x)
IL_025E: stloc.s 12 (System.Single)
IL_0260: ldarga.s 7
IL_0262: dup
IL_0263: ldfld System.Single UnityEngine.Vector4::z
IL_0268: ldc.r4 1
IL_026D: ldloc.s 11 (System.Single)
IL_026F: ldloc.s 12 (System.Single)
IL_0271: mul
IL_0272: sub
IL_0273: mul
IL_0274: stfld System.Single UnityEngine.Vector4::z
IL_0279: Label14
IL_0279: br => Label15
IL_027E: Label13
IL_027E: ldarga.s 7
IL_0280: ldc.r4 1
IL_0285: stfld System.Single UnityEngine.Vector4::z
IL_028A: Label8
IL_028A: Label11
IL_028A: Label15
IL_028A: ldarg.0
IL_028B: brfalse => Label16
IL_0290: ldarg.0
IL_0291: ldarg.3
IL_0292: ldarg.1
IL_0293: ldfld System.Single PropInfo::m_lodRenderDistance
IL_0298: callvirt System.Boolean
CameraInfo::CheckRenderDistance(UnityEngine.Vector3 point, System.Single
maxDistance)
IL_029D: brfalse => Label17
IL_02A2: Label16
IL_02A2: ldloca.s 13 (UnityEngine.Matrix4x4)
IL_02A4: initobj UnityEngine.Matrix4x4
IL_02AA: ldloca.s 13 (UnityEngine.Matrix4x4)
IL_02AC: ldarg.3
IL_02AD: ldarg.s 5
IL_02AF: ldc.r4 57.29578
IL_02B4: mul
IL_02B5: call static UnityEngine.Vector3 UnityEngine.Vector3::get_down()
IL_02BA: call static UnityEngine.Quaternion
UnityEngine.Quaternion::AngleAxis(System.Single angle, UnityEngine.Vector3 axis)
IL_02BF: ldarg.s 4
IL_02C1: ldarg.s 4
IL_02C3: ldarg.s 4
IL_02C5: newobj System.Void UnityEngine.Vector3::.ctor(System.Single x,
System.Single y, System.Single z)
IL_02CA: call System.Void UnityEngine.Matrix4x4::SetTRS(UnityEngine.Vector3
pos, UnityEngine.Quaternion q, UnityEngine.Vector3 s)
IL_02CF: call static PropManager
ColossalFramework.Singleton`1<PropManager>::get_instance()
IL_02D4: stloc.s 14 (PropManager)
IL_02D6: ldloc.s 14 (PropManager)
IL_02D8: ldfld UnityEngine.MaterialPropertyBlock PropManager::m_materialBlock
IL_02DD: stloc.s 15 (UnityEngine.MaterialPropertyBlock)
IL_02DF: ldloc.s 15 (UnityEngine.MaterialPropertyBlock)
IL_02E1: callvirt System.Void UnityEngine.MaterialPropertyBlock::Clear()
IL_02E6: ldloc.s 15 (UnityEngine.MaterialPropertyBlock)
IL_02E8: ldloc.s 14 (PropManager)
IL_02EA: ldfld System.Int32 PropManager::ID_Color
IL_02EF: ldarg.s 6
IL_02F1: callvirt System.Void
UnityEngine.MaterialPropertyBlock::SetColor(System.Int32 nameID, UnityEngine.Color
value)
IL_02F6: ldloc.s 15 (UnityEngine.MaterialPropertyBlock)
IL_02F8: ldloc.s 14 (PropManager)
IL_02FA: ldfld System.Int32 PropManager::ID_HeightMap
IL_02FF: ldarg.s 9
IL_0301: callvirt System.Void
UnityEngine.MaterialPropertyBlock::SetTexture(System.Int32 nameID,
UnityEngine.Texture value)
IL_0306: ldloc.s 15 (UnityEngine.MaterialPropertyBlock)
IL_0308: ldloc.s 14 (PropManager)
IL_030A: ldfld System.Int32 PropManager::ID_HeightMapping
IL_030F: ldarg.s 10
IL_0311: callvirt System.Void
UnityEngine.MaterialPropertyBlock::SetVector(System.Int32 nameID,
UnityEngine.Vector4 value)
IL_0316: ldloc.s 15 (UnityEngine.MaterialPropertyBlock)
IL_0318: ldloc.s 14 (PropManager)
IL_031A: ldfld System.Int32 PropManager::ID_SurfaceMapping
IL_031F: ldarg.s 11
IL_0321: callvirt System.Void
UnityEngine.MaterialPropertyBlock::SetVector(System.Int32 nameID,
UnityEngine.Vector4 value)
IL_0326: ldloc.s 15 (UnityEngine.MaterialPropertyBlock)
IL_0328: ldloc.s 14 (PropManager)
IL_032A: ldfld System.Int32 PropManager::ID_ObjectIndex
IL_032F: ldarg.s 7
IL_0331: callvirt System.Void
UnityEngine.MaterialPropertyBlock::SetVector(System.Int32 nameID,
UnityEngine.Vector4 value)
IL_0336: ldloc.s 15 (UnityEngine.MaterialPropertyBlock)
IL_0338: ldloc.s 14 (PropManager)
IL_033A: ldfld System.Int32 PropManager::ID_WaterHeightMap
IL_033F: ldarg.s 12
IL_0341: callvirt System.Void
UnityEngine.MaterialPropertyBlock::SetTexture(System.Int32 nameID,
UnityEngine.Texture value)
IL_0346: ldloc.s 15 (UnityEngine.MaterialPropertyBlock)
IL_0348: ldloc.s 14 (PropManager)
IL_034A: ldfld System.Int32 PropManager::ID_WaterHeightMapping
IL_034F: ldarg.s 13
IL_0351: callvirt System.Void
UnityEngine.MaterialPropertyBlock::SetVector(System.Int32 nameID,
UnityEngine.Vector4 value)
IL_0356: ldloc.s 15 (UnityEngine.MaterialPropertyBlock)
IL_0358: ldloc.s 14 (PropManager)
IL_035A: ldfld System.Int32 PropManager::ID_WaterSurfaceMapping
IL_035F: ldarg.s 14
IL_0361: callvirt System.Void
UnityEngine.MaterialPropertyBlock::SetVector(System.Int32 nameID,
UnityEngine.Vector4 value)
IL_0366: ldarg.1
IL_0367: ldfld UnityEngine.Vector4[] PropInfo::m_rollLocation
IL_036C: brfalse => Label18
IL_0371: ldarg.1
IL_0372: ldfld UnityEngine.Material PropInfo::m_material
IL_0377: ldloc.s 14 (PropManager)
IL_0379: ldfld System.Int32 PropManager::ID_RollLocation
IL_037E: ldarg.1
IL_037F: ldfld UnityEngine.Vector4[] PropInfo::m_rollLocation
IL_0384: callvirt System.Void UnityEngine.Material::SetVectorArray(System.Int32
nameID, UnityEngine.Vector4[] values)
IL_0389: ldarg.1
IL_038A: ldfld UnityEngine.Material PropInfo::m_material
IL_038F: ldloc.s 14 (PropManager)
IL_0391: ldfld System.Int32 PropManager::ID_RollParams
IL_0396: ldarg.1
IL_0397: ldfld UnityEngine.Vector4[] PropInfo::m_rollParams
IL_039C: callvirt System.Void UnityEngine.Material::SetVectorArray(System.Int32
nameID, UnityEngine.Vector4[] values)
IL_03A1: Label18
IL_03A1: ldloc.s 14 (PropManager)
IL_03A3: ldflda DrawCallData SimulationManagerBase`2<PropManager,
PropProperties>::m_drawCallData
IL_03A8: dup
IL_03A9: ldfld System.Int32 DrawCallData::m_defaultCalls
IL_03AE: ldc.i4.1
IL_03AF: add
IL_03B0: stfld System.Int32 DrawCallData::m_defaultCalls
IL_03B5: ldarg.1
IL_03B6: ldfld UnityEngine.Mesh PropInfo::m_mesh
IL_03BB: ldloc.s 13 (UnityEngine.Matrix4x4)
IL_03BD: ldarg.1
IL_03BE: ldfld UnityEngine.Material PropInfo::m_material
IL_03C3: ldarg.1
IL_03C4: ldfld System.Int32 PrefabInfo::m_prefabDataLayer
IL_03C9: ldnull
IL_03CA: ldc.i4.0
IL_03CB: ldloc.s 15 (UnityEngine.MaterialPropertyBlock)
IL_03CD: call static System.Void
UnityEngine.Graphics::DrawMesh(UnityEngine.Mesh mesh, UnityEngine.Matrix4x4 matrix,
UnityEngine.Material material, System.Int32 layer, UnityEngine.Camera camera,
System.Int32 submeshIndex, UnityEngine.MaterialPropertyBlock properties)
IL_03D2: br => Label19
IL_03D7: Label17
IL_03D7: ldarg.s 9
IL_03D9: ldarg.1
IL_03DA: ldfld UnityEngine.Texture PropInfo::m_lodHeightMap
IL_03DF: call static System.Boolean
UnityEngine.Object::op_Inequality(UnityEngine.Object x, UnityEngine.Object y)
IL_03E4: brtrue => Label20
IL_03E9: ldarg.s 12
IL_03EB: ldarg.1
IL_03EC: ldfld UnityEngine.Texture PropInfo::m_lodWaterHeightMap
IL_03F1: call static System.Boolean
UnityEngine.Object::op_Inequality(UnityEngine.Object x, UnityEngine.Object y)
IL_03F6: brfalse => Label21
IL_03FB: Label20
IL_03FB: ldarg.1
IL_03FC: ldfld System.Int32 PropInfo::m_lodCount
IL_0401: brfalse => Label22
IL_0406: ldarg.0
IL_0407: ldarg.1
IL_0408: call static System.Void PropInstance::RenderLod(CameraInfo
cameraInfo, PropInfo info)
IL_040D: Label22
IL_040D: ldarg.1
IL_040E: ldarg.s 9
IL_0410: stfld UnityEngine.Texture PropInfo::m_lodHeightMap
IL_0415: ldarg.1
IL_0416: ldarg.s 10
IL_0418: stfld UnityEngine.Vector4 PropInfo::m_lodHeightMapping
IL_041D: ldarg.1
IL_041E: ldarg.s 11
IL_0420: stfld UnityEngine.Vector4 PropInfo::m_lodSurfaceMapping
IL_0425: ldarg.1
IL_0426: ldarg.s 12
IL_0428: stfld UnityEngine.Texture PropInfo::m_lodWaterHeightMap
IL_042D: ldarg.1
IL_042E: ldarg.s 13
IL_0430: stfld UnityEngine.Vector4 PropInfo::m_lodWaterHeightMapping
IL_0435: ldarg.1
IL_0436: ldarg.s 14
IL_0438: stfld UnityEngine.Vector4 PropInfo::m_lodWaterSurfaceMapping
IL_043D: Label21
IL_043D: ldarga.s 7
IL_043F: ldarg.s 4
IL_0441: stfld System.Single UnityEngine.Vector4::w
IL_0446: ldarg.1
IL_0447: ldfld UnityEngine.Vector4[] PropInfo::m_lodLocations
IL_044C: ldarg.1
IL_044D: ldfld System.Int32 PropInfo::m_lodCount
IL_0452: ldelema UnityEngine.Vector4
IL_0457: ldarga.s 3
IL_0459: ldfld System.Single UnityEngine.Vector3::x
IL_045E: ldarga.s 3
IL_0460: ldfld System.Single UnityEngine.Vector3::y
IL_0465: ldarga.s 3
IL_0467: ldfld System.Single UnityEngine.Vector3::z
IL_046C: ldarg.s 5
IL_046E: newobj System.Void UnityEngine.Vector4::.ctor(System.Single x,
System.Single y, System.Single z, System.Single w)
IL_0473: stobj UnityEngine.Vector4
IL_0478: ldarg.1
IL_0479: ldfld UnityEngine.Vector4[] PropInfo::m_lodObjectIndices
IL_047E: ldarg.1
IL_047F: ldfld System.Int32 PropInfo::m_lodCount
IL_0484: ldelema UnityEngine.Vector4
IL_0489: ldarg.s 7
IL_048B: stobj UnityEngine.Vector4
IL_0490: ldarg.1
IL_0491: ldfld UnityEngine.Vector4[] PropInfo::m_lodColors
IL_0496: ldarg.1
IL_0497: ldfld System.Int32 PropInfo::m_lodCount
IL_049C: ldelema UnityEngine.Vector4
IL_04A1: ldarga.s 6
IL_04A3: call UnityEngine.Color UnityEngine.Color::get_linear()
IL_04A8: call static UnityEngine.Vector4
UnityEngine.Color::op_Implicit(UnityEngine.Color c)
IL_04AD: stobj UnityEngine.Vector4
IL_04B2: ldarg.1
IL_04B3: ldarg.1
IL_04B4: ldfld UnityEngine.Vector3 PropInfo::m_lodMin
IL_04B9: ldarg.3
IL_04BA: call static UnityEngine.Vector3
UnityEngine.Vector3::Min(UnityEngine.Vector3 lhs, UnityEngine.Vector3 rhs)
IL_04BF: stfld UnityEngine.Vector3 PropInfo::m_lodMin
IL_04C4: ldarg.1
IL_04C5: ldarg.1
IL_04C6: ldfld UnityEngine.Vector3 PropInfo::m_lodMax
IL_04CB: ldarg.3
IL_04CC: call static UnityEngine.Vector3
UnityEngine.Vector3::Max(UnityEngine.Vector3 lhs, UnityEngine.Vector3 rhs)
IL_04D1: stfld UnityEngine.Vector3 PropInfo::m_lodMax
IL_04D6: ldarg.1
IL_04D7: dup
IL_04D8: ldfld System.Int32 PropInfo::m_lodCount
IL_04DD: ldc.i4.1
IL_04DE: add
IL_04DF: dup
IL_04E0: stloc.s 16 (System.Int32)
IL_04E2: stfld System.Int32 PropInfo::m_lodCount
IL_04E7: ldloc.s 16 (System.Int32)
IL_04E9: ldarg.1
IL_04EA: ldfld UnityEngine.Vector4[] PropInfo::m_lodLocations
IL_04EF: ldlen
IL_04F0: conv.i4
IL_04F1: bne.un => Label23
IL_04F6: ldarg.0
IL_04F7: ldarg.1
IL_04F8: call static System.Void PropInstance::RenderLod(CameraInfo
cameraInfo, PropInfo info)
IL_04FD: // end original
IL_04FD: Label0
IL_04FD: Label6
IL_04FD: Label7
IL_04FD: Label19
IL_04FD: Label23
IL_04FD: ret
DONE

### Patch: static System.Void PropInstance::RenderInstance(CameraInfo cameraInfo,


PropInfo info, InstanceID id, UnityEngine.Vector3 position, System.Single scale,
System.Single angle, UnityEngine.Color color, UnityEngine.Vector4 objectIndex,
System.Boolean active)
### Replacement: static System.Void
PropInstance::PropInstance.RenderInstance_Patch0(CameraInfo cameraInfo, PropInfo
info, InstanceID id, UnityEngine.Vector3 position, System.Single scale,
System.Single angle, UnityEngine.Color color, UnityEngine.Vector4 objectIndex,
System.Boolean active)
IL_0000: Local var 0: UnityEngine.Matrix4x4
IL_0000: Local var 1: System.Single
IL_0000: Local var 2: System.Int32
IL_0000: Local var 3: UnityEngine.Vector3
IL_0000: Local var 4: UnityEngine.Vector3
IL_0000: Local var 5: EffectInfo/SpawnArea
IL_0000: Local var 6: System.Single
IL_0000: Local var 7: LightSystem
IL_0000: Local var 8: ColossalFramework.Math.Randomizer
IL_0000: Local var 9: UnityEngine.Vector4
IL_0000: Local var 10: System.Single
IL_0000: Local var 11: System.Single
IL_0000: Local var 12: System.Single
IL_0000: Local var 13: UnityEngine.Matrix4x4
IL_0000: Local var 14: PropManager
IL_0000: Local var 15: UnityEngine.MaterialPropertyBlock
IL_0000: Local var 16: UnityEngine.Matrix4x4
IL_0000: Local var 17: PropManager
IL_0000: Local var 18: UnityEngine.MaterialPropertyBlock
IL_0000: Local var 19: System.Int32
IL_0000: // start original
IL_0000: ldarg.1
IL_0001: ldfld System.Boolean PrefabInfo::m_prefabInitialized
IL_0006: brfalse => Label0
IL_000B: ldarg.1
IL_000C: ldfld System.Boolean PropInfo::m_hasEffects
IL_0011: brfalse => Label1
IL_0016: ldarg.s 8
IL_0018: brtrue => Label2
IL_001D: ldarg.1
IL_001E: ldfld System.Boolean PropInfo::m_alwaysActive
IL_0023: brfalse => Label3
IL_0028: Label2
IL_0028: ldloca.s 0 (UnityEngine.Matrix4x4)
IL_002A: initobj UnityEngine.Matrix4x4
IL_0030: ldloca.s 0 (UnityEngine.Matrix4x4)
IL_0032: ldarg.3
IL_0033: ldarg.s 5
IL_0035: ldc.r4 57.29578
IL_003A: mul
IL_003B: call static UnityEngine.Vector3 UnityEngine.Vector3::get_down()
IL_0040: call static UnityEngine.Quaternion
UnityEngine.Quaternion::AngleAxis(System.Single angle, UnityEngine.Vector3 axis)
IL_0045: ldarg.s 4
IL_0047: ldarg.s 4
IL_0049: ldarg.s 4
IL_004B: newobj System.Void UnityEngine.Vector3::.ctor(System.Single x,
System.Single y, System.Single z)
IL_0050: call System.Void UnityEngine.Matrix4x4::SetTRS(UnityEngine.Vector3
pos, UnityEngine.Quaternion q, UnityEngine.Vector3 s)
IL_0055: call static SimulationManager
ColossalFramework.Singleton`1<SimulationManager>::get_instance()
IL_005A: ldfld System.Single SimulationManager::m_simulationTimeDelta
IL_005F: stloc.1
IL_0060: ldc.i4.0
IL_0061: stloc.2
IL_0062: br => Label4
IL_0067: Label5
IL_0067: ldloca.s 0 (UnityEngine.Matrix4x4)
IL_0069: ldarg.1
IL_006A: ldfld Effect[] PropInfo::m_effects
IL_006F: ldloc.2
IL_0070: ldelema PropInfo+Effect
IL_0075: ldfld UnityEngine.Vector3 Effect::m_position
IL_007A: call UnityEngine.Vector3
UnityEngine.Matrix4x4::MultiplyPoint(UnityEngine.Vector3 v)
IL_007F: stloc.3
IL_0080: ldloca.s 0 (UnityEngine.Matrix4x4)
IL_0082: ldarg.1
IL_0083: ldfld Effect[] PropInfo::m_effects
IL_0088: ldloc.2
IL_0089: ldelema PropInfo+Effect
IL_008E: ldfld UnityEngine.Vector3 Effect::m_direction
IL_0093: call UnityEngine.Vector3
UnityEngine.Matrix4x4::MultiplyVector(UnityEngine.Vector3 v)
IL_0098: stloc.s 4 (UnityEngine.Vector3)
IL_009A: ldloca.s 5 (EffectInfo+SpawnArea)
IL_009C: ldloc.3
IL_009D: ldloc.s 4 (UnityEngine.Vector3)
IL_009F: ldc.r4 0
IL_00A4: call System.Void SpawnArea::.ctor(UnityEngine.Vector3 position,
UnityEngine.Vector3 direction, System.Single radius)
IL_00A9: ldarg.1
IL_00AA: ldfld Effect[] PropInfo::m_effects
IL_00AF: ldloc.2
IL_00B0: ldelema PropInfo+Effect
IL_00B5: ldfld EffectInfo Effect::m_effect
IL_00BA: ldarg.2
IL_00BB: ldloc.s 5 (EffectInfo+SpawnArea)
IL_00BD: call static UnityEngine.Vector3 UnityEngine.Vector3::get_zero()
IL_00C2: ldc.r4 0
IL_00C7: ldc.r4 1
IL_00CC: ldc.r4 -1
IL_00D1: ldloc.1
IL_00D2: ldarg.0
IL_00D3: callvirt virtual System.Void EffectInfo::RenderEffect(InstanceID id,
SpawnArea area, UnityEngine.Vector3 velocity, System.Single acceleration,
System.Single magnitude, System.Single timeOffset, System.Single timeDelta,
CameraInfo cameraInfo)
IL_00D8: ldloc.2
IL_00D9: ldc.i4.1
IL_00DA: add
IL_00DB: stloc.2
IL_00DC: Label4
IL_00DC: ldloc.2
IL_00DD: ldarg.1
IL_00DE: ldfld Effect[] PropInfo::m_effects
IL_00E3: ldlen
IL_00E4: conv.i4
IL_00E5: blt => Label5
IL_00EA: Label1
IL_00EA: Label3
IL_00EA: ldarg.1
IL_00EB: ldfld System.Boolean PropInfo::m_hasRenderer
IL_00F0: brfalse => Label6
IL_00F5: ldarg.0
IL_00F6: ldfld System.Int32 CameraInfo::m_layerMask
IL_00FB: ldc.i4.1
IL_00FC: ldarg.1
IL_00FD: ldfld System.Int32 PrefabInfo::m_prefabDataLayer
IL_0102: ldc.i4.s 31
IL_0104: and
IL_0105: shl
IL_0106: and
IL_0107: brfalse => Label7
IL_010C: call static InfoManager
ColossalFramework.Singleton`1<InfoManager>::get_instance()
IL_0111: callvirt InfoMode InfoManager::get_CurrentMode()
IL_0116: brtrue => Label8
IL_011B: ldarg 2
IL_011F: call static System.Boolean
ElectricRoads.Overrides.ElectricRoadsOverrides::CheckElectrityNetForLight(InstanceI
D id)
IL_0124: brfalse => Label24
IL_0129: ldc.r4 0
IL_012E: stloc.s 6 (System.Single)
IL_0130: ldarg.s 8
IL_0132: brtrue => Label9
IL_0137: ldarg.1
IL_0138: ldfld System.Boolean PropInfo::m_alwaysActive
IL_013D: brtrue => Label10
IL_0142: Label24
IL_0142: ldarga.s 7
IL_0144: ldc.r4 0
IL_0149: stfld System.Single UnityEngine.Vector4::z
IL_014E: br => Label11
IL_0153: Label9
IL_0153: Label10
IL_0153: ldarg.1
IL_0154: ldflda UnityEngine.Vector2 PropInfo::m_illuminationOffRange
IL_0159: ldfld System.Single UnityEngine.Vector2::x
IL_015E: ldc.r4 1000
IL_0163: blt => Label12
IL_0168: ldarg.1
IL_0169: ldfld BlinkType PropInfo::m_illuminationBlinkType
IL_016E: brfalse => Label13
IL_0173: Label12
IL_0173: call static RenderManager
ColossalFramework.Singleton`1<RenderManager>::get_instance()
IL_0178: callvirt LightSystem RenderManager::get_lightSystem()
IL_017D: stloc.s 7 (LightSystem)
IL_017F: ldloca.s 8 (ColossalFramework.Math.Randomizer)
IL_0181: ldarga.s 2
IL_0183: call System.UInt32 InstanceID::get_Index()
IL_0188: call System.Void
ColossalFramework.Math.Randomizer::.ctor(System.UInt32 _seed)
IL_018D: ldarg.1
IL_018E: ldflda UnityEngine.Vector2 PropInfo::m_illuminationOffRange
IL_0193: ldfld System.Single UnityEngine.Vector2::x
IL_0198: ldloca.s 8 (ColossalFramework.Math.Randomizer)
IL_019A: ldc.i4 100000
IL_019F: call System.Int32
ColossalFramework.Math.Randomizer::Int32(System.UInt32 range)
IL_01A4: conv.r4
IL_01A5: ldc.r4 1E-05
IL_01AA: mul
IL_01AB: ldarg.1
IL_01AC: ldflda UnityEngine.Vector2 PropInfo::m_illuminationOffRange
IL_01B1: ldfld System.Single UnityEngine.Vector2::y
IL_01B6: ldarg.1
IL_01B7: ldflda UnityEngine.Vector2 PropInfo::m_illuminationOffRange
IL_01BC: ldfld System.Single UnityEngine.Vector2::x
IL_01C1: sub
IL_01C2: mul
IL_01C3: add
IL_01C4: stloc.s 6 (System.Single)
IL_01C6: ldarga.s 7
IL_01C8: ldloc.s 6 (System.Single)
IL_01CA: ldc.r4 0.01
IL_01CF: add
IL_01D0: ldloc.s 6 (System.Single)
IL_01D2: ldc.r4 0.01
IL_01D7: sub
IL_01D8: ldloc.s 7 (LightSystem)
IL_01DA: callvirt System.Single LightSystem::get_DayLightIntensity()
IL_01DF: call static System.Single MathUtils::SmoothStep(System.Single edge0,
System.Single edge1, System.Single x)
IL_01E4: stfld System.Single UnityEngine.Vector4::z
IL_01E9: ldarg.1
IL_01EA: ldfld BlinkType PropInfo::m_illuminationBlinkType
IL_01EF: brfalse => Label14
IL_01F4: ldarg.1
IL_01F5: ldfld BlinkType PropInfo::m_illuminationBlinkType
IL_01FA: call static UnityEngine.Vector4
LightEffect::GetBlinkVector(BlinkType type)
IL_01FF: stloc.s 9 (UnityEngine.Vector4)
IL_0201: ldloc.s 6 (System.Single)
IL_0203: ldc.r4 3.71
IL_0208: mul
IL_0209: call static SimulationManager
ColossalFramework.Singleton`1<SimulationManager>::get_instance()
IL_020E: ldfld System.Single SimulationManager::m_simulationTimer
IL_0213: ldloca.s 9 (UnityEngine.Vector4)
IL_0215: ldfld System.Single UnityEngine.Vector4::w
IL_021A: div
IL_021B: add
IL_021C: stloc.s 10 (System.Single)
IL_021E: ldloc.s 10 (System.Single)
IL_0220: ldloc.s 10 (System.Single)
IL_0222: call static System.Single UnityEngine.Mathf::Floor(System.Single f)
IL_0227: sub
IL_0228: ldloca.s 9 (UnityEngine.Vector4)
IL_022A: ldfld System.Single UnityEngine.Vector4::w
IL_022F: mul
IL_0230: stloc.s 10 (System.Single)
IL_0232: ldloca.s 9 (UnityEngine.Vector4)
IL_0234: ldfld System.Single UnityEngine.Vector4::x
IL_0239: ldloca.s 9 (UnityEngine.Vector4)
IL_023B: ldfld System.Single UnityEngine.Vector4::y
IL_0240: ldloc.s 10 (System.Single)
IL_0242: call static System.Single MathUtils::SmoothStep(System.Single edge0,
System.Single edge1, System.Single x)
IL_0247: stloc.s 11 (System.Single)
IL_0249: ldloca.s 9 (UnityEngine.Vector4)
IL_024B: ldfld System.Single UnityEngine.Vector4::w
IL_0250: ldloca.s 9 (UnityEngine.Vector4)
IL_0252: ldfld System.Single UnityEngine.Vector4::z
IL_0257: ldloc.s 10 (System.Single)
IL_0259: call static System.Single MathUtils::SmoothStep(System.Single edge0,
System.Single edge1, System.Single x)
IL_025E: stloc.s 12 (System.Single)
IL_0260: ldarga.s 7
IL_0262: dup
IL_0263: ldfld System.Single UnityEngine.Vector4::z
IL_0268: ldc.r4 1
IL_026D: ldloc.s 11 (System.Single)
IL_026F: ldloc.s 12 (System.Single)
IL_0271: mul
IL_0272: sub
IL_0273: mul
IL_0274: stfld System.Single UnityEngine.Vector4::z
IL_0279: Label14
IL_0279: br => Label15
IL_027E: Label13
IL_027E: ldarga.s 7
IL_0280: ldc.r4 1
IL_0285: stfld System.Single UnityEngine.Vector4::z
IL_028A: Label8
IL_028A: Label11
IL_028A: Label15
IL_028A: ldarg.0
IL_028B: brfalse => Label16
IL_0290: ldarg.0
IL_0291: ldarg.3
IL_0292: ldarg.1
IL_0293: ldfld System.Single PropInfo::m_lodRenderDistance
IL_0298: callvirt System.Boolean
CameraInfo::CheckRenderDistance(UnityEngine.Vector3 point, System.Single
maxDistance)
IL_029D: brfalse => Label17
IL_02A2: Label16
IL_02A2: ldloca.s 13 (UnityEngine.Matrix4x4)
IL_02A4: initobj UnityEngine.Matrix4x4
IL_02AA: ldloca.s 13 (UnityEngine.Matrix4x4)
IL_02AC: ldarg.3
IL_02AD: ldarg.s 5
IL_02AF: ldc.r4 57.29578
IL_02B4: mul
IL_02B5: call static UnityEngine.Vector3 UnityEngine.Vector3::get_down()
IL_02BA: call static UnityEngine.Quaternion
UnityEngine.Quaternion::AngleAxis(System.Single angle, UnityEngine.Vector3 axis)
IL_02BF: ldarg.s 4
IL_02C1: ldarg.s 4
IL_02C3: ldarg.s 4
IL_02C5: newobj System.Void UnityEngine.Vector3::.ctor(System.Single x,
System.Single y, System.Single z)
IL_02CA: call System.Void UnityEngine.Matrix4x4::SetTRS(UnityEngine.Vector3
pos, UnityEngine.Quaternion q, UnityEngine.Vector3 s)
IL_02CF: call static PropManager
ColossalFramework.Singleton`1<PropManager>::get_instance()
IL_02D4: stloc.s 14 (PropManager)
IL_02D6: ldloc.s 14 (PropManager)
IL_02D8: ldfld UnityEngine.MaterialPropertyBlock PropManager::m_materialBlock
IL_02DD: stloc.s 15 (UnityEngine.MaterialPropertyBlock)
IL_02DF: ldloc.s 15 (UnityEngine.MaterialPropertyBlock)
IL_02E1: callvirt System.Void UnityEngine.MaterialPropertyBlock::Clear()
IL_02E6: ldloc.s 15 (UnityEngine.MaterialPropertyBlock)
IL_02E8: ldloc.s 14 (PropManager)
IL_02EA: ldfld System.Int32 PropManager::ID_Color
IL_02EF: ldarg.s 6
IL_02F1: callvirt System.Void
UnityEngine.MaterialPropertyBlock::SetColor(System.Int32 nameID, UnityEngine.Color
value)
IL_02F6: ldloc.s 15 (UnityEngine.MaterialPropertyBlock)
IL_02F8: ldloc.s 14 (PropManager)
IL_02FA: ldfld System.Int32 PropManager::ID_ObjectIndex
IL_02FF: ldarg.s 7
IL_0301: callvirt System.Void
UnityEngine.MaterialPropertyBlock::SetVector(System.Int32 nameID,
UnityEngine.Vector4 value)
IL_0306: ldarg.1
IL_0307: ldfld UnityEngine.Vector4[] PropInfo::m_rollLocation
IL_030C: brfalse => Label18
IL_0311: ldarg.1
IL_0312: ldfld UnityEngine.Material PropInfo::m_material
IL_0317: ldloc.s 14 (PropManager)
IL_0319: ldfld System.Int32 PropManager::ID_RollLocation
IL_031E: ldarg.1
IL_031F: ldfld UnityEngine.Vector4[] PropInfo::m_rollLocation
IL_0324: callvirt System.Void UnityEngine.Material::SetVectorArray(System.Int32
nameID, UnityEngine.Vector4[] values)
IL_0329: ldarg.1
IL_032A: ldfld UnityEngine.Material PropInfo::m_material
IL_032F: ldloc.s 14 (PropManager)
IL_0331: ldfld System.Int32 PropManager::ID_RollParams
IL_0336: ldarg.1
IL_0337: ldfld UnityEngine.Vector4[] PropInfo::m_rollParams
IL_033C: callvirt System.Void UnityEngine.Material::SetVectorArray(System.Int32
nameID, UnityEngine.Vector4[] values)
IL_0341: Label18
IL_0341: ldloc.s 14 (PropManager)
IL_0343: ldflda DrawCallData SimulationManagerBase`2<PropManager,
PropProperties>::m_drawCallData
IL_0348: dup
IL_0349: ldfld System.Int32 DrawCallData::m_defaultCalls
IL_034E: ldc.i4.1
IL_034F: add
IL_0350: stfld System.Int32 DrawCallData::m_defaultCalls
IL_0355: ldarg.1
IL_0356: ldfld UnityEngine.Mesh PropInfo::m_mesh
IL_035B: ldloc.s 13 (UnityEngine.Matrix4x4)
IL_035D: ldarg.1
IL_035E: ldfld UnityEngine.Material PropInfo::m_material
IL_0363: ldarg.1
IL_0364: ldfld System.Int32 PrefabInfo::m_prefabDataLayer
IL_0369: ldnull
IL_036A: ldc.i4.0
IL_036B: ldloc.s 15 (UnityEngine.MaterialPropertyBlock)
IL_036D: call static System.Void
UnityEngine.Graphics::DrawMesh(UnityEngine.Mesh mesh, UnityEngine.Matrix4x4 matrix,
UnityEngine.Material material, System.Int32 layer, UnityEngine.Camera camera,
System.Int32 submeshIndex, UnityEngine.MaterialPropertyBlock properties)
IL_0372: br => Label19
IL_0377: Label17
IL_0377: ldarg.1
IL_0378: ldfld UnityEngine.Material PropInfo::m_lodMaterialCombined
IL_037D: ldnull
IL_037E: call static System.Boolean
UnityEngine.Object::op_Equality(UnityEngine.Object x, UnityEngine.Object y)
IL_0383: brfalse => Label20
IL_0388: ldloca.s 16 (UnityEngine.Matrix4x4)
IL_038A: initobj UnityEngine.Matrix4x4
IL_0390: ldloca.s 16 (UnityEngine.Matrix4x4)
IL_0392: ldarg.3
IL_0393: ldarg.s 5
IL_0395: ldc.r4 57.29578
IL_039A: mul
IL_039B: call static UnityEngine.Vector3 UnityEngine.Vector3::get_down()
IL_03A0: call static UnityEngine.Quaternion
UnityEngine.Quaternion::AngleAxis(System.Single angle, UnityEngine.Vector3 axis)
IL_03A5: ldarg.s 4
IL_03A7: ldarg.s 4
IL_03A9: ldarg.s 4
IL_03AB: newobj System.Void UnityEngine.Vector3::.ctor(System.Single x,
System.Single y, System.Single z)
IL_03B0: call System.Void UnityEngine.Matrix4x4::SetTRS(UnityEngine.Vector3
pos, UnityEngine.Quaternion q, UnityEngine.Vector3 s)
IL_03B5: call static PropManager
ColossalFramework.Singleton`1<PropManager>::get_instance()
IL_03BA: stloc.s 17 (PropManager)
IL_03BC: ldloc.s 17 (PropManager)
IL_03BE: ldfld UnityEngine.MaterialPropertyBlock PropManager::m_materialBlock
IL_03C3: stloc.s 18 (UnityEngine.MaterialPropertyBlock)
IL_03C5: ldloc.s 18 (UnityEngine.MaterialPropertyBlock)
IL_03C7: callvirt System.Void UnityEngine.MaterialPropertyBlock::Clear()
IL_03CC: ldloc.s 18 (UnityEngine.MaterialPropertyBlock)
IL_03CE: ldloc.s 17 (PropManager)
IL_03D0: ldfld System.Int32 PropManager::ID_Color
IL_03D5: ldarg.s 6
IL_03D7: callvirt System.Void
UnityEngine.MaterialPropertyBlock::SetColor(System.Int32 nameID, UnityEngine.Color
value)
IL_03DC: ldloc.s 18 (UnityEngine.MaterialPropertyBlock)
IL_03DE: ldloc.s 17 (PropManager)
IL_03E0: ldfld System.Int32 PropManager::ID_ObjectIndex
IL_03E5: ldarg.s 7
IL_03E7: callvirt System.Void
UnityEngine.MaterialPropertyBlock::SetVector(System.Int32 nameID,
UnityEngine.Vector4 value)
IL_03EC: ldarg.1
IL_03ED: ldfld UnityEngine.Vector4[] PropInfo::m_rollLocation
IL_03F2: brfalse => Label21
IL_03F7: ldarg.1
IL_03F8: ldfld UnityEngine.Material PropInfo::m_material
IL_03FD: ldloc.s 17 (PropManager)
IL_03FF: ldfld System.Int32 PropManager::ID_RollLocation
IL_0404: ldarg.1
IL_0405: ldfld UnityEngine.Vector4[] PropInfo::m_rollLocation
IL_040A: callvirt System.Void UnityEngine.Material::SetVectorArray(System.Int32
nameID, UnityEngine.Vector4[] values)
IL_040F: ldarg.1
IL_0410: ldfld UnityEngine.Material PropInfo::m_material
IL_0415: ldloc.s 17 (PropManager)
IL_0417: ldfld System.Int32 PropManager::ID_RollParams
IL_041C: ldarg.1
IL_041D: ldfld UnityEngine.Vector4[] PropInfo::m_rollParams
IL_0422: callvirt System.Void UnityEngine.Material::SetVectorArray(System.Int32
nameID, UnityEngine.Vector4[] values)
IL_0427: Label21
IL_0427: ldloc.s 17 (PropManager)
IL_0429: ldflda DrawCallData SimulationManagerBase`2<PropManager,
PropProperties>::m_drawCallData
IL_042E: dup
IL_042F: ldfld System.Int32 DrawCallData::m_defaultCalls
IL_0434: ldc.i4.1
IL_0435: add
IL_0436: stfld System.Int32 DrawCallData::m_defaultCalls
IL_043B: ldarg.1
IL_043C: ldfld UnityEngine.Mesh PropInfo::m_lodMesh
IL_0441: ldloc.s 16 (UnityEngine.Matrix4x4)
IL_0443: ldarg.1
IL_0444: ldfld UnityEngine.Material PropInfo::m_lodMaterial
IL_0449: ldarg.1
IL_044A: ldfld System.Int32 PrefabInfo::m_prefabDataLayer
IL_044F: ldnull
IL_0450: ldc.i4.0
IL_0451: ldloc.s 18 (UnityEngine.MaterialPropertyBlock)
IL_0453: call static System.Void
UnityEngine.Graphics::DrawMesh(UnityEngine.Mesh mesh, UnityEngine.Matrix4x4 matrix,
UnityEngine.Material material, System.Int32 layer, UnityEngine.Camera camera,
System.Int32 submeshIndex, UnityEngine.MaterialPropertyBlock properties)
IL_0458: br => Label22
IL_045D: Label20
IL_045D: ldarga.s 7
IL_045F: ldarg.s 4
IL_0461: stfld System.Single UnityEngine.Vector4::w
IL_0466: ldarg.1
IL_0467: ldfld UnityEngine.Vector4[] PropInfo::m_lodLocations
IL_046C: ldarg.1
IL_046D: ldfld System.Int32 PropInfo::m_lodCount
IL_0472: ldelema UnityEngine.Vector4
IL_0477: ldarga.s 3
IL_0479: ldfld System.Single UnityEngine.Vector3::x
IL_047E: ldarga.s 3
IL_0480: ldfld System.Single UnityEngine.Vector3::y
IL_0485: ldarga.s 3
IL_0487: ldfld System.Single UnityEngine.Vector3::z
IL_048C: ldarg.s 5
IL_048E: newobj System.Void UnityEngine.Vector4::.ctor(System.Single x,
System.Single y, System.Single z, System.Single w)
IL_0493: stobj UnityEngine.Vector4
IL_0498: ldarg.1
IL_0499: ldfld UnityEngine.Vector4[] PropInfo::m_lodObjectIndices
IL_049E: ldarg.1
IL_049F: ldfld System.Int32 PropInfo::m_lodCount
IL_04A4: ldelema UnityEngine.Vector4
IL_04A9: ldarg.s 7
IL_04AB: stobj UnityEngine.Vector4
IL_04B0: ldarg.1
IL_04B1: ldfld UnityEngine.Vector4[] PropInfo::m_lodColors
IL_04B6: ldarg.1
IL_04B7: ldfld System.Int32 PropInfo::m_lodCount
IL_04BC: ldelema UnityEngine.Vector4
IL_04C1: ldarga.s 6
IL_04C3: call UnityEngine.Color UnityEngine.Color::get_linear()
IL_04C8: call static UnityEngine.Vector4
UnityEngine.Color::op_Implicit(UnityEngine.Color c)
IL_04CD: stobj UnityEngine.Vector4
IL_04D2: ldarg.1
IL_04D3: ldarg.1
IL_04D4: ldfld UnityEngine.Vector3 PropInfo::m_lodMin
IL_04D9: ldarg.3
IL_04DA: call static UnityEngine.Vector3
UnityEngine.Vector3::Min(UnityEngine.Vector3 lhs, UnityEngine.Vector3 rhs)
IL_04DF: stfld UnityEngine.Vector3 PropInfo::m_lodMin
IL_04E4: ldarg.1
IL_04E5: ldarg.1
IL_04E6: ldfld UnityEngine.Vector3 PropInfo::m_lodMax
IL_04EB: ldarg.3
IL_04EC: call static UnityEngine.Vector3
UnityEngine.Vector3::Max(UnityEngine.Vector3 lhs, UnityEngine.Vector3 rhs)
IL_04F1: stfld UnityEngine.Vector3 PropInfo::m_lodMax
IL_04F6: ldarg.1
IL_04F7: dup
IL_04F8: ldfld System.Int32 PropInfo::m_lodCount
IL_04FD: ldc.i4.1
IL_04FE: add
IL_04FF: dup
IL_0500: stloc.s 19 (System.Int32)
IL_0502: stfld System.Int32 PropInfo::m_lodCount
IL_0507: ldloc.s 19 (System.Int32)
IL_0509: ldarg.1
IL_050A: ldfld UnityEngine.Vector4[] PropInfo::m_lodLocations
IL_050F: ldlen
IL_0510: conv.i4
IL_0511: bne.un => Label23
IL_0516: ldarg.0
IL_0517: ldarg.1
IL_0518: call static System.Void PropInstance::RenderLod(CameraInfo
cameraInfo, PropInfo info)
IL_051D: // end original
IL_051D: Label0
IL_051D: Label6
IL_051D: Label7
IL_051D: Label19
IL_051D: Label22
IL_051D: Label23
IL_051D: ret
DONE

### Patch: virtual System.Void LightEffect::PopulateGroupData(System.Int32 layer,


InstanceID id, UnityEngine.Vector3 pos, UnityEngine.Vector3 dir, 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
LightEffect::LightEffect.PopulateGroupData_Patch1(LightEffect this, System.Int32
layer, InstanceID id, UnityEngine.Vector3 pos, UnityEngine.Vector3 dir,
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.Boolean
IL_0000: Local var 1: UnityEngine.Vector3
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.Quaternion
IL_0000: Local var 7: UnityEngine.Vector4
IL_0000: Local var 8: UnityEngine.Vector2
IL_0000: Local var 9: ColossalFramework.Math.Randomizer
IL_0000: Local var 10: UnityEngine.Vector2
IL_0000: Local var 11: UnityEngine.Vector2
IL_0000: Local var 12: UnityEngine.Vector2
IL_0000: Local var 13: System.UInt16
IL_0000: Local var 14: UnityEngine.Vector3
IL_0000: Local var 15: UnityEngine.Color
IL_0000: Local var 16: UnityEngine.Color
IL_0000: Local var 17: System.Single
IL_0000: Local var 18: System.Single
IL_0000: Local var 19: System.Int32
IL_0000: Local var 20: System.Boolean
IL_0000: ldc.i4 0
IL_0005: stloc 20 (System.Boolean)
IL_0009: ldc.i4.1
IL_000A: stloc 20 (System.Boolean)
IL_000E: ldloc 20 (System.Boolean)
IL_0012: brfalse => Label1
IL_0017: ldarg 2
IL_001B: call static System.Boolean
ElectricRoads.Overrides.ElectricRoadsOverrides::CheckElectrityNetForLight(InstanceI
D id)
IL_0020: stloc 20 (System.Boolean)
IL_0024: Label1
IL_0024: nop
IL_0025: ldloc 20 (System.Boolean)
IL_0029: brfalse => Label0
IL_002E: // start original
IL_002E: ldarg.1
IL_002F: ldarg.0
IL_0030: ldfld System.Int32 LightEffect::m_groupLayer
IL_0035: beq => Label2
IL_003A: ldarg.1
IL_003B: ldarg.0
IL_003C: ldfld System.Int32 LightEffect::m_groupLayerFloating
IL_0041: bne.un => Label3
IL_0046: Label2
IL_0046: ldarg.1
IL_0047: ldarg.0
IL_0048: ldfld System.Int32 LightEffect::m_groupLayerFloating
IL_004D: ceq
IL_004F: stloc.0
IL_0050: ldloca.s 1 (UnityEngine.Vector3)
IL_0052: ldarg.0
IL_0053: ldfld System.Single LightEffect::m_lightRange
IL_0058: ldarg.0
IL_0059: ldfld System.Single LightEffect::m_lightRange
IL_005E: ldarg.0
IL_005F: ldfld System.Single LightEffect::m_lightRange
IL_0064: call System.Void UnityEngine.Vector3::.ctor(System.Single x,
System.Single y, System.Single z)
IL_0069: ldarg.3
IL_006A: ldloc.1
IL_006B: call static UnityEngine.Vector3
UnityEngine.Vector3::op_Subtraction(UnityEngine.Vector3 a, UnityEngine.Vector3 b)
IL_0070: stloc.2
IL_0071: ldarg.3
IL_0072: ldloc.1
IL_0073: call static UnityEngine.Vector3
UnityEngine.Vector3::op_Addition(UnityEngine.Vector3 a, UnityEngine.Vector3 b)
IL_0078: stloc.3
IL_0079: ldarg.s 9
IL_007B: ldarg.s 9
IL_007D: ldobj UnityEngine.Vector3
IL_0082: ldloc.2
IL_0083: call static UnityEngine.Vector3
UnityEngine.Vector3::Min(UnityEngine.Vector3 lhs, UnityEngine.Vector3 rhs)
IL_0088: stobj UnityEngine.Vector3
IL_008D: ldarg.s 10
IL_008F: ldarg.s 10
IL_0091: ldobj UnityEngine.Vector3
IL_0096: ldloc.3
IL_0097: call static UnityEngine.Vector3
UnityEngine.Vector3::Max(UnityEngine.Vector3 lhs, UnityEngine.Vector3 rhs)
IL_009C: stobj UnityEngine.Vector3
IL_00A1: ldarg.3
IL_00A2: ldarg.s 7
IL_00A4: call static UnityEngine.Vector3
UnityEngine.Vector3::op_Subtraction(UnityEngine.Vector3 a, UnityEngine.Vector3 b)
IL_00A9: stloc.s 4 (UnityEngine.Vector3)
IL_00AB: ldarg.s 11
IL_00AD: ldarg.s 11
IL_00AF: ldind.r4
IL_00B0: ldc.r4 30000
IL_00B5: call static System.Single UnityEngine.Mathf::Max(System.Single a,
System.Single b)
IL_00BA: stind.r4
IL_00BB: ldarg.0
IL_00BC: ldfld UnityEngine.LightType LightEffect::m_lightType
IL_00C1: brtrue => Label4
IL_00C6: ldarg.s 4
IL_00C8: call static UnityEngine.Quaternion
UnityEngine.Quaternion::LookRotation(UnityEngine.Vector3 forward)
IL_00CD: stloc.s 6 (UnityEngine.Quaternion)
IL_00CF: ldloc.s 6 (UnityEngine.Quaternion)
IL_00D1: ldarg.0
IL_00D2: ldfld UnityEngine.Quaternion LightEffect::m_lightRotation
IL_00D7: call static UnityEngine.Vector3 UnityEngine.Vector3::get_forward()
IL_00DC: call static UnityEngine.Vector3
UnityEngine.Quaternion::op_Multiply(UnityEngine.Quaternion rotation,
UnityEngine.Vector3 point)
IL_00E1: call static UnityEngine.Vector3
UnityEngine.Quaternion::op_Multiply(UnityEngine.Quaternion rotation,
UnityEngine.Vector3 point)
IL_00E6: stloc.s 5 (UnityEngine.Vector3)
IL_00E8: br => Label5
IL_00ED: Label4
IL_00ED: call static UnityEngine.Vector3 UnityEngine.Vector3::get_forward()
IL_00F2: stloc.s 5 (UnityEngine.Vector3)
IL_00F4: Label5
IL_00F4: ldloca.s 7 (UnityEngine.Vector4)
IL_00F6: ldloca.s 5 (UnityEngine.Vector3)
IL_00F8: ldfld System.Single UnityEngine.Vector3::x
IL_00FD: ldloca.s 5 (UnityEngine.Vector3)
IL_00FF: ldfld System.Single UnityEngine.Vector3::y
IL_0104: ldloca.s 5 (UnityEngine.Vector3)
IL_0106: ldfld System.Single UnityEngine.Vector3::z
IL_010B: ldc.r4 100000
IL_0110: call System.Void UnityEngine.Vector4::.ctor(System.Single x,
System.Single y, System.Single z, System.Single w)
IL_0115: ldarg.0
IL_0116: ldfld UnityEngine.LightType LightEffect::m_lightType
IL_011B: brtrue => Label6
IL_0120: ldloca.s 7 (UnityEngine.Vector4)
IL_0122: ldc.r4 0.01745329
IL_0127: ldarg.0
IL_0128: ldfld System.Single LightEffect::m_lightSpotAngle
IL_012D: mul
IL_012E: ldc.r4 0.5
IL_0133: mul
IL_0134: call static System.Single UnityEngine.Mathf::Cos(System.Single f)
IL_0139: neg
IL_013A: stfld System.Single UnityEngine.Vector4::w
IL_013F: Label6
IL_013F: ldloca.s 8 (UnityEngine.Vector2)
IL_0141: ldc.r4 1
IL_0146: ldarg.0
IL_0147: ldfld System.Single LightEffect::m_lightRange
IL_014C: ldarg.0
IL_014D: ldfld System.Single LightEffect::m_lightRange
IL_0152: mul
IL_0153: div
IL_0154: ldarg.0
IL_0155: ldfld System.Single LightEffect::m_lightIntensity
IL_015A: call System.Void UnityEngine.Vector2::.ctor(System.Single x,
System.Single y)
IL_015F: ldloca.s 9 (ColossalFramework.Math.Randomizer)
IL_0161: ldarga.s 2
IL_0163: call System.UInt32 InstanceID::get_Index()
IL_0168: call System.Void
ColossalFramework.Math.Randomizer::.ctor(System.UInt32 _seed)
IL_016D: ldloca.s 10 (UnityEngine.Vector2)
IL_016F: ldarg.0
IL_0170: ldflda UnityEngine.Vector2 LightEffect::m_offRange
IL_0175: ldfld System.Single UnityEngine.Vector2::x
IL_017A: ldloca.s 9 (ColossalFramework.Math.Randomizer)
IL_017C: ldc.i4 100000
IL_0181: call System.Int32
ColossalFramework.Math.Randomizer::Int32(System.UInt32 range)
IL_0186: conv.r4
IL_0187: ldc.r4 1E-05
IL_018C: mul
IL_018D: ldarg.0
IL_018E: ldflda UnityEngine.Vector2 LightEffect::m_offRange
IL_0193: ldfld System.Single UnityEngine.Vector2::y
IL_0198: ldarg.0
IL_0199: ldflda UnityEngine.Vector2 LightEffect::m_offRange
IL_019E: ldfld System.Single UnityEngine.Vector2::x
IL_01A3: sub
IL_01A4: mul
IL_01A5: add
IL_01A6: stfld System.Single UnityEngine.Vector2::x
IL_01AB: ldloca.s 10 (UnityEngine.Vector2)
IL_01AD: ldarg.0
IL_01AE: ldfld BlinkType LightEffect::m_blinkType
IL_01B3: conv.r4
IL_01B4: stfld System.Single UnityEngine.Vector2::y
IL_01B9: ldarg.2
IL_01BA: call static System.UInt16 EffectInfo::GetBuilding(InstanceID id)
IL_01BF: stloc.s 13 (System.UInt16)
IL_01C1: ldloc.s 13 (System.UInt16)
IL_01C3: brfalse => Label7
IL_01C8: ldloc.s 13 (System.UInt16)
IL_01CA: call static UnityEngine.Vector4
RenderManager::GetColorLocation(System.UInt32 instanceHolder)
IL_01CF: call static UnityEngine.Vector2
UnityEngine.Vector4::op_Implicit(UnityEngine.Vector4 v)
IL_01D4: stloc.s 11 (UnityEngine.Vector2)
IL_01D6: ldloc.0
IL_01D7: brfalse => Label8
IL_01DC: call static BuildingManager
ColossalFramework.Singleton`1<BuildingManager>::get_instance()
IL_01E1: ldfld Array16`1<Building> BuildingManager::m_buildings
IL_01E6: ldfld Building[] Array16`1<Building>::m_buffer
IL_01EB: ldloc.s 13 (System.UInt16)
IL_01ED: ldelema Building
IL_01F2: call UnityEngine.Vector3 Building::CalculateMeshPosition()
IL_01F7: stloc.s 14 (UnityEngine.Vector3)
IL_01F9: ldloc.s 14 (UnityEngine.Vector3)
IL_01FB: call static UnityEngine.Vector2
ColossalFramework.Math.VectorUtils::XZ(UnityEngine.Vector3 v)
IL_0200: stloc.s 12 (UnityEngine.Vector2)
IL_0202: ldarga.s 3
IL_0204: dup
IL_0205: ldfld System.Single UnityEngine.Vector3::y
IL_020A: ldloca.s 14 (UnityEngine.Vector3)
IL_020C: ldfld System.Single UnityEngine.Vector3::y
IL_0211: sub
IL_0212: stfld System.Single UnityEngine.Vector3::y
IL_0217: ldloca.s 4 (UnityEngine.Vector3)
IL_0219: dup
IL_021A: ldfld System.Single UnityEngine.Vector3::y
IL_021F: ldloca.s 14 (UnityEngine.Vector3)
IL_0221: ldfld System.Single UnityEngine.Vector3::y
IL_0226: sub
IL_0227: stfld System.Single UnityEngine.Vector3::y
IL_022C: br => Label9
IL_0231: Label8
IL_0231: call static UnityEngine.Vector2 UnityEngine.Vector2::get_zero()
IL_0236: stloc.s 12 (UnityEngine.Vector2)
IL_0238: Label9
IL_0238: br => Label10
IL_023D: Label7
IL_023D: ldsfld UnityEngine.Vector4 RenderManager::DefaultColorLocation
IL_0242: call static UnityEngine.Vector2
UnityEngine.Vector4::op_Implicit(UnityEngine.Vector4 v)
IL_0247: stloc.s 11 (UnityEngine.Vector2)
IL_0249: call static UnityEngine.Vector2 UnityEngine.Vector2::get_zero()
IL_024E: stloc.s 12 (UnityEngine.Vector2)
IL_0250: Label10
IL_0250: ldarg.0
IL_0251: ldfld UnityEngine.Color LightEffect::m_lightColor
IL_0256: stloc.s 15 (UnityEngine.Color)
IL_0258: ldarg.0
IL_0259: ldfld UnityEngine.Color[] LightEffect::m_variationColors
IL_025E: brfalse => Label11
IL_0263: ldarg.0
IL_0264: ldfld UnityEngine.Color[] LightEffect::m_variationColors
IL_0269: ldlen
IL_026A: conv.i4
IL_026B: brfalse => Label12
IL_0270: ldarg.0
IL_0271: ldfld UnityEngine.Color[] LightEffect::m_variationColors
IL_0276: ldloca.s 9 (ColossalFramework.Math.Randomizer)
IL_0278: ldarg.0
IL_0279: ldfld UnityEngine.Color[] LightEffect::m_variationColors
IL_027E: ldlen
IL_027F: conv.i4
IL_0280: call System.Int32
ColossalFramework.Math.Randomizer::Int32(System.UInt32 range)
IL_0285: ldelema UnityEngine.Color
IL_028A: ldobj UnityEngine.Color
IL_028F: stloc.s 16 (UnityEngine.Color)
IL_0291: ldloc.s 15 (UnityEngine.Color)
IL_0293: ldloc.s 16 (UnityEngine.Color)
IL_0295: ldloca.s 9 (ColossalFramework.Math.Randomizer)
IL_0297: ldc.i4 1000
IL_029C: call System.Int32
ColossalFramework.Math.Randomizer::Int32(System.UInt32 range)
IL_02A1: conv.r4
IL_02A2: ldc.r4 0.001
IL_02A7: mul
IL_02A8: call static UnityEngine.Color
UnityEngine.Color::Lerp(UnityEngine.Color a, UnityEngine.Color b, System.Single t)
IL_02AD: stloc.s 15 (UnityEngine.Color)
IL_02AF: Label11
IL_02AF: Label12
IL_02AF: ldloca.s 15 (UnityEngine.Color)
IL_02B1: call UnityEngine.Color UnityEngine.Color::get_linear()
IL_02B6: stloc.s 15 (UnityEngine.Color)
IL_02B8: ldloca.s 15 (UnityEngine.Color)
IL_02BA: ldarg.0
IL_02BB: ldfld UnityEngine.LightType LightEffect::m_lightType
IL_02C0: brtrue => Label13
IL_02C5: ldarg.0
IL_02C6: ldfld System.Single LightEffect::m_spotLeaking
IL_02CB: br => Label14
IL_02D0: Label13
IL_02D0: ldc.r4 0
IL_02D5: Label14
IL_02D5: stfld System.Single UnityEngine.Color::a
IL_02DA: ldarg.0
IL_02DB: ldfld System.Single LightEffect::m_lightRange
IL_02E0: ldc.r4 0.5235988
IL_02E5: call static System.Single UnityEngine.Mathf::Cos(System.Single f)
IL_02EA: div
IL_02EB: stloc.s 17 (System.Single)
IL_02ED: ldloc.s 17 (System.Single)
IL_02EF: ldc.r4 0.5
IL_02F4: mul
IL_02F5: stloc.s 18 (System.Single)
IL_02F7: ldarg.s 8
IL_02F9: ldfld UnityEngine.Vector3[] MeshData::m_vertices
IL_02FE: ldarg.s 5
IL_0300: ldind.i4
IL_0301: ldelema UnityEngine.Vector3
IL_0306: ldloca.s 4 (UnityEngine.Vector3)
IL_0308: ldfld System.Single UnityEngine.Vector3::x
IL_030D: ldloc.s 18 (System.Single)
IL_030F: sub
IL_0310: ldloca.s 4 (UnityEngine.Vector3)
IL_0312: ldfld System.Single UnityEngine.Vector3::y
IL_0317: ldarg.0
IL_0318: ldfld System.Single LightEffect::m_lightRange
IL_031D: add
IL_031E: ldloca.s 4 (UnityEngine.Vector3)
IL_0320: ldfld System.Single UnityEngine.Vector3::z
IL_0325: ldarg.0
IL_0326: ldfld System.Single LightEffect::m_lightRange
IL_032B: add
IL_032C: newobj System.Void UnityEngine.Vector3::.ctor(System.Single x,
System.Single y, System.Single z)
IL_0331: stobj UnityEngine.Vector3
IL_0336: ldarg.s 8
IL_0338: ldfld UnityEngine.Vector3[] MeshData::m_normals
IL_033D: ldarg.s 5
IL_033F: ldind.i4
IL_0340: ldelema UnityEngine.Vector3
IL_0345: ldarg.3
IL_0346: stobj UnityEngine.Vector3
IL_034B: ldarg.s 8
IL_034D: ldfld UnityEngine.Vector4[] MeshData::m_tangents
IL_0352: ldarg.s 5
IL_0354: ldind.i4
IL_0355: ldelema UnityEngine.Vector4
IL_035A: ldloc.s 7 (UnityEngine.Vector4)
IL_035C: stobj UnityEngine.Vector4
IL_0361: ldarg.s 8
IL_0363: ldfld UnityEngine.Vector2[] MeshData::m_uvs
IL_0368: ldarg.s 5
IL_036A: ldind.i4
IL_036B: ldelema UnityEngine.Vector2
IL_0370: ldloc.s 8 (UnityEngine.Vector2)
IL_0372: stobj UnityEngine.Vector2
IL_0377: ldarg.s 8
IL_0379: ldfld UnityEngine.Vector2[] MeshData::m_uvs2
IL_037E: ldarg.s 5
IL_0380: ldind.i4
IL_0381: ldelema UnityEngine.Vector2
IL_0386: ldloc.s 10 (UnityEngine.Vector2)
IL_0388: stobj UnityEngine.Vector2
IL_038D: ldarg.s 8
IL_038F: ldfld UnityEngine.Vector2[] MeshData::m_uvs3
IL_0394: ldarg.s 5
IL_0396: ldind.i4
IL_0397: ldelema UnityEngine.Vector2
IL_039C: ldloc.s 11 (UnityEngine.Vector2)
IL_039E: stobj UnityEngine.Vector2
IL_03A3: ldloc.0
IL_03A4: brfalse => Label15
IL_03A9: ldarg.s 8
IL_03AB: ldfld UnityEngine.Vector2[] MeshData::m_uvs4
IL_03B0: ldarg.s 5
IL_03B2: ldind.i4
IL_03B3: ldelema UnityEngine.Vector2
IL_03B8: ldloc.s 12 (UnityEngine.Vector2)
IL_03BA: stobj UnityEngine.Vector2
IL_03BF: Label15
IL_03BF: ldarg.s 8
IL_03C1: ldfld UnityEngine.Color32[] MeshData::m_colors
IL_03C6: ldarg.s 5
IL_03C8: ldind.i4
IL_03C9: ldelema UnityEngine.Color32
IL_03CE: ldloc.s 15 (UnityEngine.Color)
IL_03D0: call static UnityEngine.Color32
UnityEngine.Color32::op_Implicit(UnityEngine.Color c)
IL_03D5: stobj UnityEngine.Color32
IL_03DA: ldarg.s 5
IL_03DC: ldarg.s 5
IL_03DE: ldind.i4
IL_03DF: ldc.i4.1
IL_03E0: add
IL_03E1: stind.i4
IL_03E2: ldarg.s 8
IL_03E4: ldfld UnityEngine.Vector3[] MeshData::m_vertices
IL_03E9: ldarg.s 5
IL_03EB: ldind.i4
IL_03EC: ldelema UnityEngine.Vector3
IL_03F1: ldloca.s 4 (UnityEngine.Vector3)
IL_03F3: ldfld System.Single UnityEngine.Vector3::x
IL_03F8: ldloc.s 18 (System.Single)
IL_03FA: add
IL_03FB: ldloca.s 4 (UnityEngine.Vector3)
IL_03FD: ldfld System.Single UnityEngine.Vector3::y
IL_0402: ldarg.0
IL_0403: ldfld System.Single LightEffect::m_lightRange
IL_0408: add
IL_0409: ldloca.s 4 (UnityEngine.Vector3)
IL_040B: ldfld System.Single UnityEngine.Vector3::z
IL_0410: ldarg.0
IL_0411: ldfld System.Single LightEffect::m_lightRange
IL_0416: add
IL_0417: newobj System.Void UnityEngine.Vector3::.ctor(System.Single x,
System.Single y, System.Single z)
IL_041C: stobj UnityEngine.Vector3
IL_0421: ldarg.s 8
IL_0423: ldfld UnityEngine.Vector3[] MeshData::m_normals
IL_0428: ldarg.s 5
IL_042A: ldind.i4
IL_042B: ldelema UnityEngine.Vector3
IL_0430: ldarg.3
IL_0431: stobj UnityEngine.Vector3
IL_0436: ldarg.s 8
IL_0438: ldfld UnityEngine.Vector4[] MeshData::m_tangents
IL_043D: ldarg.s 5
IL_043F: ldind.i4
IL_0440: ldelema UnityEngine.Vector4
IL_0445: ldloc.s 7 (UnityEngine.Vector4)
IL_0447: stobj UnityEngine.Vector4
IL_044C: ldarg.s 8
IL_044E: ldfld UnityEngine.Vector2[] MeshData::m_uvs
IL_0453: ldarg.s 5
IL_0455: ldind.i4
IL_0456: ldelema UnityEngine.Vector2
IL_045B: ldloc.s 8 (UnityEngine.Vector2)
IL_045D: stobj UnityEngine.Vector2
IL_0462: ldarg.s 8
IL_0464: ldfld UnityEngine.Vector2[] MeshData::m_uvs2
IL_0469: ldarg.s 5
IL_046B: ldind.i4
IL_046C: ldelema UnityEngine.Vector2
IL_0471: ldloc.s 10 (UnityEngine.Vector2)
IL_0473: stobj UnityEngine.Vector2
IL_0478: ldarg.s 8
IL_047A: ldfld UnityEngine.Vector2[] MeshData::m_uvs3
IL_047F: ldarg.s 5
IL_0481: ldind.i4
IL_0482: ldelema UnityEngine.Vector2
IL_0487: ldloc.s 11 (UnityEngine.Vector2)
IL_0489: stobj UnityEngine.Vector2
IL_048E: ldloc.0
IL_048F: brfalse => Label16
IL_0494: ldarg.s 8
IL_0496: ldfld UnityEngine.Vector2[] MeshData::m_uvs4
IL_049B: ldarg.s 5
IL_049D: ldind.i4
IL_049E: ldelema UnityEngine.Vector2
IL_04A3: ldloc.s 12 (UnityEngine.Vector2)
IL_04A5: stobj UnityEngine.Vector2
IL_04AA: Label16
IL_04AA: ldarg.s 8
IL_04AC: ldfld UnityEngine.Color32[] MeshData::m_colors
IL_04B1: ldarg.s 5
IL_04B3: ldind.i4
IL_04B4: ldelema UnityEngine.Color32
IL_04B9: ldloc.s 15 (UnityEngine.Color)
IL_04BB: call static UnityEngine.Color32
UnityEngine.Color32::op_Implicit(UnityEngine.Color c)
IL_04C0: stobj UnityEngine.Color32
IL_04C5: ldarg.s 5
IL_04C7: ldarg.s 5
IL_04C9: ldind.i4
IL_04CA: ldc.i4.1
IL_04CB: add
IL_04CC: stind.i4
IL_04CD: ldarg.s 8
IL_04CF: ldfld UnityEngine.Vector3[] MeshData::m_vertices
IL_04D4: ldarg.s 5
IL_04D6: ldind.i4
IL_04D7: ldelema UnityEngine.Vector3
IL_04DC: ldloca.s 4 (UnityEngine.Vector3)
IL_04DE: ldfld System.Single UnityEngine.Vector3::x
IL_04E3: ldloc.s 17 (System.Single)
IL_04E5: add
IL_04E6: ldloca.s 4 (UnityEngine.Vector3)
IL_04E8: ldfld System.Single UnityEngine.Vector3::y
IL_04ED: ldloca.s 4 (UnityEngine.Vector3)
IL_04EF: ldfld System.Single UnityEngine.Vector3::z
IL_04F4: ldarg.0
IL_04F5: ldfld System.Single LightEffect::m_lightRange
IL_04FA: add
IL_04FB: newobj System.Void UnityEngine.Vector3::.ctor(System.Single x,
System.Single y, System.Single z)
IL_0500: stobj UnityEngine.Vector3
IL_0505: ldarg.s 8
IL_0507: ldfld UnityEngine.Vector3[] MeshData::m_normals
IL_050C: ldarg.s 5
IL_050E: ldind.i4
IL_050F: ldelema UnityEngine.Vector3
IL_0514: ldarg.3
IL_0515: stobj UnityEngine.Vector3
IL_051A: ldarg.s 8
IL_051C: ldfld UnityEngine.Vector4[] MeshData::m_tangents
IL_0521: ldarg.s 5
IL_0523: ldind.i4
IL_0524: ldelema UnityEngine.Vector4
IL_0529: ldloc.s 7 (UnityEngine.Vector4)
IL_052B: stobj UnityEngine.Vector4
IL_0530: ldarg.s 8
IL_0532: ldfld UnityEngine.Vector2[] MeshData::m_uvs
IL_0537: ldarg.s 5
IL_0539: ldind.i4
IL_053A: ldelema UnityEngine.Vector2
IL_053F: ldloc.s 8 (UnityEngine.Vector2)
IL_0541: stobj UnityEngine.Vector2
IL_0546: ldarg.s 8
IL_0548: ldfld UnityEngine.Vector2[] MeshData::m_uvs2
IL_054D: ldarg.s 5
IL_054F: ldind.i4
IL_0550: ldelema UnityEngine.Vector2
IL_0555: ldloc.s 10 (UnityEngine.Vector2)
IL_0557: stobj UnityEngine.Vector2
IL_055C: ldarg.s 8
IL_055E: ldfld UnityEngine.Vector2[] MeshData::m_uvs3
IL_0563: ldarg.s 5
IL_0565: ldind.i4
IL_0566: ldelema UnityEngine.Vector2
IL_056B: ldloc.s 11 (UnityEngine.Vector2)
IL_056D: stobj UnityEngine.Vector2
IL_0572: ldloc.0
IL_0573: brfalse => Label17
IL_0578: ldarg.s 8
IL_057A: ldfld UnityEngine.Vector2[] MeshData::m_uvs4
IL_057F: ldarg.s 5
IL_0581: ldind.i4
IL_0582: ldelema UnityEngine.Vector2
IL_0587: ldloc.s 12 (UnityEngine.Vector2)
IL_0589: stobj UnityEngine.Vector2
IL_058E: Label17
IL_058E: ldarg.s 8
IL_0590: ldfld UnityEngine.Color32[] MeshData::m_colors
IL_0595: ldarg.s 5
IL_0597: ldind.i4
IL_0598: ldelema UnityEngine.Color32
IL_059D: ldloc.s 15 (UnityEngine.Color)
IL_059F: call static UnityEngine.Color32
UnityEngine.Color32::op_Implicit(UnityEngine.Color c)
IL_05A4: stobj UnityEngine.Color32
IL_05A9: ldarg.s 5
IL_05AB: ldarg.s 5
IL_05AD: ldind.i4
IL_05AE: ldc.i4.1
IL_05AF: add
IL_05B0: stind.i4
IL_05B1: ldarg.s 8
IL_05B3: ldfld UnityEngine.Vector3[] MeshData::m_vertices
IL_05B8: ldarg.s 5
IL_05BA: ldind.i4
IL_05BB: ldelema UnityEngine.Vector3
IL_05C0: ldloca.s 4 (UnityEngine.Vector3)
IL_05C2: ldfld System.Single UnityEngine.Vector3::x
IL_05C7: ldloc.s 18 (System.Single)
IL_05C9: add
IL_05CA: ldloca.s 4 (UnityEngine.Vector3)
IL_05CC: ldfld System.Single UnityEngine.Vector3::y
IL_05D1: ldarg.0
IL_05D2: ldfld System.Single LightEffect::m_lightRange
IL_05D7: sub
IL_05D8: ldloca.s 4 (UnityEngine.Vector3)
IL_05DA: ldfld System.Single UnityEngine.Vector3::z
IL_05DF: ldarg.0
IL_05E0: ldfld System.Single LightEffect::m_lightRange
IL_05E5: add
IL_05E6: newobj System.Void UnityEngine.Vector3::.ctor(System.Single x,
System.Single y, System.Single z)
IL_05EB: stobj UnityEngine.Vector3
IL_05F0: ldarg.s 8
IL_05F2: ldfld UnityEngine.Vector3[] MeshData::m_normals
IL_05F7: ldarg.s 5
IL_05F9: ldind.i4
IL_05FA: ldelema UnityEngine.Vector3
IL_05FF: ldarg.3
IL_0600: stobj UnityEngine.Vector3
IL_0605: ldarg.s 8
IL_0607: ldfld UnityEngine.Vector4[] MeshData::m_tangents
IL_060C: ldarg.s 5
IL_060E: ldind.i4
IL_060F: ldelema UnityEngine.Vector4
IL_0614: ldloc.s 7 (UnityEngine.Vector4)
IL_0616: stobj UnityEngine.Vector4
IL_061B: ldarg.s 8
IL_061D: ldfld UnityEngine.Vector2[] MeshData::m_uvs
IL_0622: ldarg.s 5
IL_0624: ldind.i4
IL_0625: ldelema UnityEngine.Vector2
IL_062A: ldloc.s 8 (UnityEngine.Vector2)
IL_062C: stobj UnityEngine.Vector2
IL_0631: ldarg.s 8
IL_0633: ldfld UnityEngine.Vector2[] MeshData::m_uvs2
IL_0638: ldarg.s 5
IL_063A: ldind.i4
IL_063B: ldelema UnityEngine.Vector2
IL_0640: ldloc.s 10 (UnityEngine.Vector2)
IL_0642: stobj UnityEngine.Vector2
IL_0647: ldarg.s 8
IL_0649: ldfld UnityEngine.Vector2[] MeshData::m_uvs3
IL_064E: ldarg.s 5
IL_0650: ldind.i4
IL_0651: ldelema UnityEngine.Vector2
IL_0656: ldloc.s 11 (UnityEngine.Vector2)
IL_0658: stobj UnityEngine.Vector2
IL_065D: ldloc.0
IL_065E: brfalse => Label18
IL_0663: ldarg.s 8
IL_0665: ldfld UnityEngine.Vector2[] MeshData::m_uvs4
IL_066A: ldarg.s 5
IL_066C: ldind.i4
IL_066D: ldelema UnityEngine.Vector2
IL_0672: ldloc.s 12 (UnityEngine.Vector2)
IL_0674: stobj UnityEngine.Vector2
IL_0679: Label18
IL_0679: ldarg.s 8
IL_067B: ldfld UnityEngine.Color32[] MeshData::m_colors
IL_0680: ldarg.s 5
IL_0682: ldind.i4
IL_0683: ldelema UnityEngine.Color32
IL_0688: ldloc.s 15 (UnityEngine.Color)
IL_068A: call static UnityEngine.Color32
UnityEngine.Color32::op_Implicit(UnityEngine.Color c)
IL_068F: stobj UnityEngine.Color32
IL_0694: ldarg.s 5
IL_0696: ldarg.s 5
IL_0698: ldind.i4
IL_0699: ldc.i4.1
IL_069A: add
IL_069B: stind.i4
IL_069C: ldarg.s 8
IL_069E: ldfld UnityEngine.Vector3[] MeshData::m_vertices
IL_06A3: ldarg.s 5
IL_06A5: ldind.i4
IL_06A6: ldelema UnityEngine.Vector3
IL_06AB: ldloca.s 4 (UnityEngine.Vector3)
IL_06AD: ldfld System.Single UnityEngine.Vector3::x
IL_06B2: ldloc.s 18 (System.Single)
IL_06B4: sub
IL_06B5: ldloca.s 4 (UnityEngine.Vector3)
IL_06B7: ldfld System.Single UnityEngine.Vector3::y
IL_06BC: ldarg.0
IL_06BD: ldfld System.Single LightEffect::m_lightRange
IL_06C2: sub
IL_06C3: ldloca.s 4 (UnityEngine.Vector3)
IL_06C5: ldfld System.Single UnityEngine.Vector3::z
IL_06CA: ldarg.0
IL_06CB: ldfld System.Single LightEffect::m_lightRange
IL_06D0: add
IL_06D1: newobj System.Void UnityEngine.Vector3::.ctor(System.Single x,
System.Single y, System.Single z)
IL_06D6: stobj UnityEngine.Vector3
IL_06DB: ldarg.s 8
IL_06DD: ldfld UnityEngine.Vector3[] MeshData::m_normals
IL_06E2: ldarg.s 5
IL_06E4: ldind.i4
IL_06E5: ldelema UnityEngine.Vector3
IL_06EA: ldarg.3
IL_06EB: stobj UnityEngine.Vector3
IL_06F0: ldarg.s 8
IL_06F2: ldfld UnityEngine.Vector4[] MeshData::m_tangents
IL_06F7: ldarg.s 5
IL_06F9: ldind.i4
IL_06FA: ldelema UnityEngine.Vector4
IL_06FF: ldloc.s 7 (UnityEngine.Vector4)
IL_0701: stobj UnityEngine.Vector4
IL_0706: ldarg.s 8
IL_0708: ldfld UnityEngine.Vector2[] MeshData::m_uvs
IL_070D: ldarg.s 5
IL_070F: ldind.i4
IL_0710: ldelema UnityEngine.Vector2
IL_0715: ldloc.s 8 (UnityEngine.Vector2)
IL_0717: stobj UnityEngine.Vector2
IL_071C: ldarg.s 8
IL_071E: ldfld UnityEngine.Vector2[] MeshData::m_uvs2
IL_0723: ldarg.s 5
IL_0725: ldind.i4
IL_0726: ldelema UnityEngine.Vector2
IL_072B: ldloc.s 10 (UnityEngine.Vector2)
IL_072D: stobj UnityEngine.Vector2
IL_0732: ldarg.s 8
IL_0734: ldfld UnityEngine.Vector2[] MeshData::m_uvs3
IL_0739: ldarg.s 5
IL_073B: ldind.i4
IL_073C: ldelema UnityEngine.Vector2
IL_0741: ldloc.s 11 (UnityEngine.Vector2)
IL_0743: stobj UnityEngine.Vector2
IL_0748: ldloc.0
IL_0749: brfalse => Label19
IL_074E: ldarg.s 8
IL_0750: ldfld UnityEngine.Vector2[] MeshData::m_uvs4
IL_0755: ldarg.s 5
IL_0757: ldind.i4
IL_0758: ldelema UnityEngine.Vector2
IL_075D: ldloc.s 12 (UnityEngine.Vector2)
IL_075F: stobj UnityEngine.Vector2
IL_0764: Label19
IL_0764: ldarg.s 8
IL_0766: ldfld UnityEngine.Color32[] MeshData::m_colors
IL_076B: ldarg.s 5
IL_076D: ldind.i4
IL_076E: ldelema UnityEngine.Color32
IL_0773: ldloc.s 15 (UnityEngine.Color)
IL_0775: call static UnityEngine.Color32
UnityEngine.Color32::op_Implicit(UnityEngine.Color c)
IL_077A: stobj UnityEngine.Color32
IL_077F: ldarg.s 5
IL_0781: ldarg.s 5
IL_0783: ldind.i4
IL_0784: ldc.i4.1
IL_0785: add
IL_0786: stind.i4
IL_0787: ldarg.s 8
IL_0789: ldfld UnityEngine.Vector3[] MeshData::m_vertices
IL_078E: ldarg.s 5
IL_0790: ldind.i4
IL_0791: ldelema UnityEngine.Vector3
IL_0796: ldloca.s 4 (UnityEngine.Vector3)
IL_0798: ldfld System.Single UnityEngine.Vector3::x
IL_079D: ldloc.s 17 (System.Single)
IL_079F: sub
IL_07A0: ldloca.s 4 (UnityEngine.Vector3)
IL_07A2: ldfld System.Single UnityEngine.Vector3::y
IL_07A7: ldloca.s 4 (UnityEngine.Vector3)
IL_07A9: ldfld System.Single UnityEngine.Vector3::z
IL_07AE: ldarg.0
IL_07AF: ldfld System.Single LightEffect::m_lightRange
IL_07B4: add
IL_07B5: newobj System.Void UnityEngine.Vector3::.ctor(System.Single x,
System.Single y, System.Single z)
IL_07BA: stobj UnityEngine.Vector3
IL_07BF: ldarg.s 8
IL_07C1: ldfld UnityEngine.Vector3[] MeshData::m_normals
IL_07C6: ldarg.s 5
IL_07C8: ldind.i4
IL_07C9: ldelema UnityEngine.Vector3
IL_07CE: ldarg.3
IL_07CF: stobj UnityEngine.Vector3
IL_07D4: ldarg.s 8
IL_07D6: ldfld UnityEngine.Vector4[] MeshData::m_tangents
IL_07DB: ldarg.s 5
IL_07DD: ldind.i4
IL_07DE: ldelema UnityEngine.Vector4
IL_07E3: ldloc.s 7 (UnityEngine.Vector4)
IL_07E5: stobj UnityEngine.Vector4
IL_07EA: ldarg.s 8
IL_07EC: ldfld UnityEngine.Vector2[] MeshData::m_uvs
IL_07F1: ldarg.s 5
IL_07F3: ldind.i4
IL_07F4: ldelema UnityEngine.Vector2
IL_07F9: ldloc.s 8 (UnityEngine.Vector2)
IL_07FB: stobj UnityEngine.Vector2
IL_0800: ldarg.s 8
IL_0802: ldfld UnityEngine.Vector2[] MeshData::m_uvs2
IL_0807: ldarg.s 5
IL_0809: ldind.i4
IL_080A: ldelema UnityEngine.Vector2
IL_080F: ldloc.s 10 (UnityEngine.Vector2)
IL_0811: stobj UnityEngine.Vector2
IL_0816: ldarg.s 8
IL_0818: ldfld UnityEngine.Vector2[] MeshData::m_uvs3
IL_081D: ldarg.s 5
IL_081F: ldind.i4
IL_0820: ldelema UnityEngine.Vector2
IL_0825: ldloc.s 11 (UnityEngine.Vector2)
IL_0827: stobj UnityEngine.Vector2
IL_082C: ldloc.0
IL_082D: brfalse => Label20
IL_0832: ldarg.s 8
IL_0834: ldfld UnityEngine.Vector2[] MeshData::m_uvs4
IL_0839: ldarg.s 5
IL_083B: ldind.i4
IL_083C: ldelema UnityEngine.Vector2
IL_0841: ldloc.s 12 (UnityEngine.Vector2)
IL_0843: stobj UnityEngine.Vector2
IL_0848: Label20
IL_0848: ldarg.s 8
IL_084A: ldfld UnityEngine.Color32[] MeshData::m_colors
IL_084F: ldarg.s 5
IL_0851: ldind.i4
IL_0852: ldelema UnityEngine.Color32
IL_0857: ldloc.s 15 (UnityEngine.Color)
IL_0859: call static UnityEngine.Color32
UnityEngine.Color32::op_Implicit(UnityEngine.Color c)
IL_085E: stobj UnityEngine.Color32
IL_0863: ldarg.s 5
IL_0865: ldarg.s 5
IL_0867: ldind.i4
IL_0868: ldc.i4.1
IL_0869: add
IL_086A: stind.i4
IL_086B: ldarg.s 8
IL_086D: ldfld System.Int32[] MeshData::m_triangles
IL_0872: ldarg.s 6
IL_0874: ldarg.s 6
IL_0876: ldind.i4
IL_0877: dup
IL_0878: stloc.s 19 (System.Int32)
IL_087A: ldc.i4.1
IL_087B: add
IL_087C: stind.i4
IL_087D: ldloc.s 19 (System.Int32)
IL_087F: ldarg.s 5
IL_0881: ldind.i4
IL_0882: ldc.i4.6
IL_0883: sub
IL_0884: stelem.i4
IL_0885: ldarg.s 8
IL_0887: ldfld System.Int32[] MeshData::m_triangles
IL_088C: ldarg.s 6
IL_088E: ldarg.s 6
IL_0890: ldind.i4
IL_0891: dup
IL_0892: stloc.s 19 (System.Int32)
IL_0894: ldc.i4.1
IL_0895: add
IL_0896: stind.i4
IL_0897: ldloc.s 19 (System.Int32)
IL_0899: ldarg.s 5
IL_089B: ldind.i4
IL_089C: ldc.i4.5
IL_089D: sub
IL_089E: stelem.i4
IL_089F: ldarg.s 8
IL_08A1: ldfld System.Int32[] MeshData::m_triangles
IL_08A6: ldarg.s 6
IL_08A8: ldarg.s 6
IL_08AA: ldind.i4
IL_08AB: dup
IL_08AC: stloc.s 19 (System.Int32)
IL_08AE: ldc.i4.1
IL_08AF: add
IL_08B0: stind.i4
IL_08B1: ldloc.s 19 (System.Int32)
IL_08B3: ldarg.s 5
IL_08B5: ldind.i4
IL_08B6: ldc.i4.1
IL_08B7: sub
IL_08B8: stelem.i4
IL_08B9: ldarg.s 8
IL_08BB: ldfld System.Int32[] MeshData::m_triangles
IL_08C0: ldarg.s 6
IL_08C2: ldarg.s 6
IL_08C4: ldind.i4
IL_08C5: dup
IL_08C6: stloc.s 19 (System.Int32)
IL_08C8: ldc.i4.1
IL_08C9: add
IL_08CA: stind.i4
IL_08CB: ldloc.s 19 (System.Int32)
IL_08CD: ldarg.s 5
IL_08CF: ldind.i4
IL_08D0: ldc.i4.1
IL_08D1: sub
IL_08D2: stelem.i4
IL_08D3: ldarg.s 8
IL_08D5: ldfld System.Int32[] MeshData::m_triangles
IL_08DA: ldarg.s 6
IL_08DC: ldarg.s 6
IL_08DE: ldind.i4
IL_08DF: dup
IL_08E0: stloc.s 19 (System.Int32)
IL_08E2: ldc.i4.1
IL_08E3: add
IL_08E4: stind.i4
IL_08E5: ldloc.s 19 (System.Int32)
IL_08E7: ldarg.s 5
IL_08E9: ldind.i4
IL_08EA: ldc.i4.5
IL_08EB: sub
IL_08EC: stelem.i4
IL_08ED: ldarg.s 8
IL_08EF: ldfld System.Int32[] MeshData::m_triangles
IL_08F4: ldarg.s 6
IL_08F6: ldarg.s 6
IL_08F8: ldind.i4
IL_08F9: dup
IL_08FA: stloc.s 19 (System.Int32)
IL_08FC: ldc.i4.1
IL_08FD: add
IL_08FE: stind.i4
IL_08FF: ldloc.s 19 (System.Int32)
IL_0901: ldarg.s 5
IL_0903: ldind.i4
IL_0904: ldc.i4.4
IL_0905: sub
IL_0906: stelem.i4
IL_0907: ldarg.s 8
IL_0909: ldfld System.Int32[] MeshData::m_triangles
IL_090E: ldarg.s 6
IL_0910: ldarg.s 6
IL_0912: ldind.i4
IL_0913: dup
IL_0914: stloc.s 19 (System.Int32)
IL_0916: ldc.i4.1
IL_0917: add
IL_0918: stind.i4
IL_0919: ldloc.s 19 (System.Int32)
IL_091B: ldarg.s 5
IL_091D: ldind.i4
IL_091E: ldc.i4.1
IL_091F: sub
IL_0920: stelem.i4
IL_0921: ldarg.s 8
IL_0923: ldfld System.Int32[] MeshData::m_triangles
IL_0928: ldarg.s 6
IL_092A: ldarg.s 6
IL_092C: ldind.i4
IL_092D: dup
IL_092E: stloc.s 19 (System.Int32)
IL_0930: ldc.i4.1
IL_0931: add
IL_0932: stind.i4
IL_0933: ldloc.s 19 (System.Int32)
IL_0935: ldarg.s 5
IL_0937: ldind.i4
IL_0938: ldc.i4.4
IL_0939: sub
IL_093A: stelem.i4
IL_093B: ldarg.s 8
IL_093D: ldfld System.Int32[] MeshData::m_triangles
IL_0942: ldarg.s 6
IL_0944: ldarg.s 6
IL_0946: ldind.i4
IL_0947: dup
IL_0948: stloc.s 19 (System.Int32)
IL_094A: ldc.i4.1
IL_094B: add
IL_094C: stind.i4
IL_094D: ldloc.s 19 (System.Int32)
IL_094F: ldarg.s 5
IL_0951: ldind.i4
IL_0952: ldc.i4.2
IL_0953: sub
IL_0954: stelem.i4
IL_0955: ldarg.s 8
IL_0957: ldfld System.Int32[] MeshData::m_triangles
IL_095C: ldarg.s 6
IL_095E: ldarg.s 6
IL_0960: ldind.i4
IL_0961: dup
IL_0962: stloc.s 19 (System.Int32)
IL_0964: ldc.i4.1
IL_0965: add
IL_0966: stind.i4
IL_0967: ldloc.s 19 (System.Int32)
IL_0969: ldarg.s 5
IL_096B: ldind.i4
IL_096C: ldc.i4.2
IL_096D: sub
IL_096E: stelem.i4
IL_096F: ldarg.s 8
IL_0971: ldfld System.Int32[] MeshData::m_triangles
IL_0976: ldarg.s 6
IL_0978: ldarg.s 6
IL_097A: ldind.i4
IL_097B: dup
IL_097C: stloc.s 19 (System.Int32)
IL_097E: ldc.i4.1
IL_097F: add
IL_0980: stind.i4
IL_0981: ldloc.s 19 (System.Int32)
IL_0983: ldarg.s 5
IL_0985: ldind.i4
IL_0986: ldc.i4.4
IL_0987: sub
IL_0988: stelem.i4
IL_0989: ldarg.s 8
IL_098B: ldfld System.Int32[] MeshData::m_triangles
IL_0990: ldarg.s 6
IL_0992: ldarg.s 6
IL_0994: ldind.i4
IL_0995: dup
IL_0996: stloc.s 19 (System.Int32)
IL_0998: ldc.i4.1
IL_0999: add
IL_099A: stind.i4
IL_099B: ldloc.s 19 (System.Int32)
IL_099D: ldarg.s 5
IL_099F: ldind.i4
IL_09A0: ldc.i4.3
IL_09A1: sub
IL_09A2: stelem.i4
IL_09A3: // end original
IL_09A3: Label3
IL_09A3: Label0
IL_09A3: ret
DONE

### Patch: virtual System.Void ElectricityManager::SimulationStepImpl(System.Int32


subStep)
### Replacement: static System.Void
ElectricityManager::ElectricityManager.SimulationStepImpl_Patch0(ElectricityManager
this, System.Int32 subStep)
IL_0000: Local var 0: System.UInt32
IL_0000: Local var 1: System.Int32
IL_0000: Local var 2: NetManager
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: NetInfo
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: ElectricityManager/Cell
IL_0000: Local var 13: ElectricityManager/PulseGroup
IL_0000: Local var 14: ElectricityManager/PulseUnit
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: ElectricityManager/PulseUnit
IL_0000: Local var 19: System.UInt32
IL_0000: Local var 20: System.Int32
IL_0000: Local var 21: ElectricityManager/Cell
IL_0000: Local var 22: System.Int32
IL_0000: Local var 23: System.Int32
IL_0000: Local var 24: NetNode
IL_0000: Local var 25: System.Int32
IL_0000: Local var 26: System.UInt16
IL_0000: Local var 27: System.UInt16
IL_0000: Local var 28: System.UInt16
IL_0000: Local var 29: System.UInt16
IL_0000: Local var 30: System.Int32
IL_0000: Local var 31: ElectricityManager/PulseGroup
IL_0000: Local var 32: ElectricityManager/PulseGroup
IL_0000: Local var 33: System.Int32
IL_0000: Local var 34: ElectricityManager/PulseGroup
IL_0000: Local var 35: System.Int32
IL_0000: Local var 36: ElectricityManager/Cell
IL_0000: // start original
IL_0000: ldarg.1
IL_0001: brfalse => Label0
IL_0006: ldarg.1
IL_0007: ldc.i4 1000
IL_000C: beq => Label1
IL_0011: call static SimulationManager
ColossalFramework.Singleton`1<SimulationManager>::get_instance()
IL_0016: ldfld System.UInt32 SimulationManager::m_currentFrameIndex
IL_001B: stloc.0
IL_001C: ldloc.0
IL_001D: ldc.i4 255
IL_0022: and
IL_0023: stloc.1
IL_0024: ldloc.1
IL_0025: ldc.i4 128
IL_002A: bge => Label2
IL_002F: ldloc.1
IL_0030: brtrue => Label3
IL_0035: ldarg.0
IL_0036: ldc.i4.0
IL_0037: stfld System.Int32 ElectricityManager::m_pulseGroupCount
IL_003C: ldarg.0
IL_003D: ldc.i4.0
IL_003E: stfld System.Int32 ElectricityManager::m_pulseUnitStart
IL_0043: ldarg.0
IL_0044: ldc.i4.0
IL_0045: stfld System.Int32 ElectricityManager::m_pulseUnitEnd
IL_004A: ldarg.0
IL_004B: ldc.i4.0
IL_004C: stfld System.Int32 ElectricityManager::m_processedCells
IL_0051: ldarg.0
IL_0052: ldc.i4.0
IL_0053: stfld System.Int32 ElectricityManager::m_conductiveCells
IL_0058: ldarg.0
IL_0059: ldc.i4.1
IL_005A: stfld System.Boolean ElectricityManager::m_canContinue
IL_005F: Label3
IL_005F: call static NetManager
ColossalFramework.Singleton`1<NetManager>::get_instance()
IL_0064: stloc.2
IL_0065: ldloc.1
IL_0066: ldc.i4 32768
IL_006B: mul
IL_006C: ldc.i4.7
IL_006D: shr
IL_006E: stloc.3
IL_006F: ldloc.1
IL_0070: ldc.i4.1
IL_0071: add
IL_0072: ldc.i4 32768
IL_0077: mul
IL_0078: ldc.i4.7
IL_0079: shr
IL_007A: ldc.i4.1
IL_007B: sub
IL_007C: stloc.s 4 (System.Int32)
IL_007E: ldloc.3
IL_007F: stloc.s 5 (System.Int32)
IL_0081: br => Label4
IL_0086: Label10
IL_0086: ldloc.2
IL_0087: ldfld Array16`1<NetNode> NetManager::m_nodes
IL_008C: ldfld NetNode[] Array16`1<NetNode>::m_buffer
IL_0091: ldloc.s 5 (System.Int32)
IL_0093: ldelema NetNode
IL_0098: ldfld Flags NetNode::m_flags
IL_009D: brfalse => Label5
IL_00A2: ldloc.2
IL_00A3: ldfld Array16`1<NetNode> NetManager::m_nodes
IL_00A8: ldfld NetNode[] Array16`1<NetNode>::m_buffer
IL_00AD: ldloc.s 5 (System.Int32)
IL_00AF: ldelema NetNode
IL_00B4: call static System.Boolean
ElectricRoads.Overrides.ElectricRoadsOverrides::CheckElectricConductibility(NetNode
& node)
IL_00B9: brfalse => Label7
IL_00BE: Label6
IL_00BE: ldarg.0
IL_00BF: ldloc.s 5 (System.Int32)
IL_00C1: ldarg.0
IL_00C2: ldfld System.UInt16[] ElectricityManager::m_nodeGroups
IL_00C7: ldloc.s 5 (System.Int32)
IL_00C9: ldelem.u2
IL_00CA: ldc.i4 65535
IL_00CF: beq => Label8
IL_00D4: ldc.i4.1
IL_00D5: br => Label9
IL_00DA: Label8
IL_00DA: ldc.i4.0
IL_00DB: Label9
IL_00DB: call System.Void
ElectricityManager::UpdateNodeElectricity(System.Int32 nodeID, System.Int32 value)
IL_00E0: ldarg.0
IL_00E1: dup
IL_00E2: ldfld System.Int32 ElectricityManager::m_conductiveCells
IL_00E7: ldc.i4.1
IL_00E8: add
IL_00E9: stfld System.Int32 ElectricityManager::m_conductiveCells
IL_00EE: Label5
IL_00EE: Label7
IL_00EE: ldarg.0
IL_00EF: ldfld System.UInt16[] ElectricityManager::m_nodeGroups
IL_00F4: ldloc.s 5 (System.Int32)
IL_00F6: ldc.i4 65535
IL_00FB: stelem.i2
IL_00FC: ldloc.s 5 (System.Int32)
IL_00FE: ldc.i4.1
IL_00FF: add
IL_0100: stloc.s 5 (System.Int32)
IL_0102: Label4
IL_0102: ldloc.s 5 (System.Int32)
IL_0104: ldloc.s 4 (System.Int32)
IL_0106: ble => Label10
IL_010B: ldloc.1
IL_010C: ldc.i4 256
IL_0111: mul
IL_0112: ldc.i4.7
IL_0113: shr
IL_0114: stloc.s 7 (System.Int32)
IL_0116: ldloc.1
IL_0117: ldc.i4.1
IL_0118: add
IL_0119: ldc.i4 256
IL_011E: mul
IL_011F: ldc.i4.7
IL_0120: shr
IL_0121: ldc.i4.1
IL_0122: sub
IL_0123: stloc.s 8 (System.Int32)
IL_0125: ldloc.s 7 (System.Int32)
IL_0127: stloc.s 9 (System.Int32)
IL_0129: br => Label11
IL_012E: Label21
IL_012E: ldloc.s 9 (System.Int32)
IL_0130: ldc.i4 256
IL_0135: mul
IL_0136: stloc.s 10 (System.Int32)
IL_0138: ldc.i4.0
IL_0139: stloc.s 11 (System.Int32)
IL_013B: br => Label12
IL_0140: Label20
IL_0140: ldarg.0
IL_0141: ldfld Cell[] ElectricityManager::m_electricityGrid
IL_0146: ldloc.s 10 (System.Int32)
IL_0148: ldelema ElectricityManager+Cell
IL_014D: ldobj ElectricityManager+Cell
IL_0152: stloc.s 12 (ElectricityManager+Cell)
IL_0154: ldloca.s 12 (ElectricityManager+Cell)
IL_0156: ldfld System.Int16 Cell::m_currentCharge
IL_015B: ldc.i4.0
IL_015C: ble => Label13
IL_0161: ldarg.0
IL_0162: ldfld System.Int32 ElectricityManager::m_pulseGroupCount
IL_0167: ldc.i4 1024
IL_016C: bge => Label14
IL_0171: ldloca.s 13 (ElectricityManager+PulseGroup)
IL_0173: ldloca.s 12 (ElectricityManager+Cell)
IL_0175: ldfld System.Int16 Cell::m_currentCharge
IL_017A: conv.u4
IL_017B: stfld System.UInt32 PulseGroup::m_origCharge
IL_0180: ldloca.s 13 (ElectricityManager+PulseGroup)
IL_0182: ldloca.s 12 (ElectricityManager+Cell)
IL_0184: ldfld System.Int16 Cell::m_currentCharge
IL_0189: conv.u4
IL_018A: stfld System.UInt32 PulseGroup::m_curCharge
IL_018F: ldloca.s 13 (ElectricityManager+PulseGroup)
IL_0191: ldc.i4.0
IL_0192: stfld System.UInt16 PulseGroup::m_mergeCount
IL_0197: ldloca.s 13 (ElectricityManager+PulseGroup)
IL_0199: ldc.i4 65535
IL_019E: stfld System.UInt16 PulseGroup::m_mergeIndex
IL_01A3: ldloca.s 13 (ElectricityManager+PulseGroup)
IL_01A5: ldloc.s 11 (System.Int32)
IL_01A7: conv.u1
IL_01A8: stfld System.Byte PulseGroup::m_x
IL_01AD: ldloca.s 13 (ElectricityManager+PulseGroup)
IL_01AF: ldloc.s 9 (System.Int32)
IL_01B1: conv.u1
IL_01B2: stfld System.Byte PulseGroup::m_z
IL_01B7: ldloca.s 14 (ElectricityManager+PulseUnit)
IL_01B9: ldarg.0
IL_01BA: ldfld System.Int32 ElectricityManager::m_pulseGroupCount
IL_01BF: conv.u2
IL_01C0: stfld System.UInt16 PulseUnit::m_group
IL_01C5: ldloca.s 14 (ElectricityManager+PulseUnit)
IL_01C7: ldc.i4.0
IL_01C8: stfld System.UInt16 PulseUnit::m_node
IL_01CD: ldloca.s 14 (ElectricityManager+PulseUnit)
IL_01CF: ldloc.s 11 (System.Int32)
IL_01D1: conv.u1
IL_01D2: stfld System.Byte PulseUnit::m_x
IL_01D7: ldloca.s 14 (ElectricityManager+PulseUnit)
IL_01D9: ldloc.s 9 (System.Int32)
IL_01DB: conv.u1
IL_01DC: stfld System.Byte PulseUnit::m_z
IL_01E1: ldloca.s 12 (ElectricityManager+Cell)
IL_01E3: ldarg.0
IL_01E4: ldfld System.Int32 ElectricityManager::m_pulseGroupCount
IL_01E9: conv.u2
IL_01EA: stfld System.UInt16 Cell::m_pulseGroup
IL_01EF: ldarg.0
IL_01F0: ldfld PulseGroup[] ElectricityManager::m_pulseGroups
IL_01F5: ldarg.0
IL_01F6: dup
IL_01F7: ldfld System.Int32 ElectricityManager::m_pulseGroupCount
IL_01FC: dup
IL_01FD: stloc.s 15 (System.Int32)
IL_01FF: ldc.i4.1
IL_0200: add
IL_0201: stfld System.Int32 ElectricityManager::m_pulseGroupCount
IL_0206: ldloc.s 15 (System.Int32)
IL_0208: ldelema ElectricityManager+PulseGroup
IL_020D: ldloc.s 13 (ElectricityManager+PulseGroup)
IL_020F: stobj ElectricityManager+PulseGroup
IL_0214: ldarg.0
IL_0215: ldfld PulseUnit[] ElectricityManager::m_pulseUnits
IL_021A: ldarg.0
IL_021B: ldfld System.Int32 ElectricityManager::m_pulseUnitEnd
IL_0220: ldelema ElectricityManager+PulseUnit
IL_0225: ldloc.s 14 (ElectricityManager+PulseUnit)
IL_0227: stobj ElectricityManager+PulseUnit
IL_022C: ldarg.0
IL_022D: dup
IL_022E: ldfld System.Int32 ElectricityManager::m_pulseUnitEnd
IL_0233: ldc.i4.1
IL_0234: add
IL_0235: dup
IL_0236: stloc.s 15 (System.Int32)
IL_0238: stfld System.Int32 ElectricityManager::m_pulseUnitEnd
IL_023D: ldloc.s 15 (System.Int32)
IL_023F: ldarg.0
IL_0240: ldfld PulseUnit[] ElectricityManager::m_pulseUnits
IL_0245: ldlen
IL_0246: conv.i4
IL_0247: bne.un => Label15
IL_024C: ldarg.0
IL_024D: ldc.i4.0
IL_024E: stfld System.Int32 ElectricityManager::m_pulseUnitEnd
IL_0253: Label15
IL_0253: br => Label16
IL_0258: Label14
IL_0258: ldloca.s 12 (ElectricityManager+Cell)
IL_025A: ldc.i4 65535
IL_025F: stfld System.UInt16 Cell::m_pulseGroup
IL_0264: Label16
IL_0264: ldloca.s 12 (ElectricityManager+Cell)
IL_0266: ldc.i4.0
IL_0267: stfld System.Int16 Cell::m_currentCharge
IL_026C: ldarg.0
IL_026D: dup
IL_026E: ldfld System.Int32 ElectricityManager::m_conductiveCells
IL_0273: ldc.i4.1
IL_0274: add
IL_0275: stfld System.Int32 ElectricityManager::m_conductiveCells
IL_027A: br => Label17
IL_027F: Label13
IL_027F: ldloca.s 12 (ElectricityManager+Cell)
IL_0281: ldc.i4 65535
IL_0286: stfld System.UInt16 Cell::m_pulseGroup
IL_028B: ldloca.s 12 (ElectricityManager+Cell)
IL_028D: ldfld System.Byte Cell::m_conductivity
IL_0292: ldc.i4.s 64
IL_0294: blt => Label18
IL_0299: ldarg.0
IL_029A: dup
IL_029B: ldfld System.Int32 ElectricityManager::m_conductiveCells
IL_02A0: ldc.i4.1
IL_02A1: add
IL_02A2: stfld System.Int32 ElectricityManager::m_conductiveCells
IL_02A7: Label17
IL_02A7: Label18
IL_02A7: ldloca.s 12 (ElectricityManager+Cell)
IL_02A9: ldfld System.Boolean Cell::m_tmpElectrified
IL_02AE: ldloca.s 12 (ElectricityManager+Cell)
IL_02B0: ldfld System.Boolean Cell::m_electrified
IL_02B5: beq => Label19
IL_02BA: ldloca.s 12 (ElectricityManager+Cell)
IL_02BC: ldloca.s 12 (ElectricityManager+Cell)
IL_02BE: ldfld System.Boolean Cell::m_tmpElectrified
IL_02C3: stfld System.Boolean Cell::m_electrified
IL_02C8: Label19
IL_02C8: ldloca.s 12 (ElectricityManager+Cell)
IL_02CA: ldloca.s 12 (ElectricityManager+Cell)
IL_02CC: ldfld System.UInt16 Cell::m_pulseGroup
IL_02D1: ldc.i4 65535
IL_02D6: ceq
IL_02D8: ldc.i4.0
IL_02D9: ceq
IL_02DB: stfld System.Boolean Cell::m_tmpElectrified
IL_02E0: ldarg.0
IL_02E1: ldfld Cell[] ElectricityManager::m_electricityGrid
IL_02E6: ldloc.s 10 (System.Int32)
IL_02E8: ldelema ElectricityManager+Cell
IL_02ED: ldloc.s 12 (ElectricityManager+Cell)
IL_02EF: stobj ElectricityManager+Cell
IL_02F4: ldloc.s 10 (System.Int32)
IL_02F6: ldc.i4.1
IL_02F7: add
IL_02F8: stloc.s 10 (System.Int32)
IL_02FA: ldloc.s 11 (System.Int32)
IL_02FC: ldc.i4.1
IL_02FD: add
IL_02FE: stloc.s 11 (System.Int32)
IL_0300: Label12
IL_0300: ldloc.s 11 (System.Int32)
IL_0302: ldc.i4 256
IL_0307: blt => Label20
IL_030C: ldloc.s 9 (System.Int32)
IL_030E: ldc.i4.1
IL_030F: add
IL_0310: stloc.s 9 (System.Int32)
IL_0312: Label11
IL_0312: ldloc.s 9 (System.Int32)
IL_0314: ldloc.s 8 (System.Int32)
IL_0316: ble => Label21
IL_031B: br => Label22
IL_0320: Label2
IL_0320: ldloc.1
IL_0321: ldc.i4.s 127
IL_0323: sub
IL_0324: ldarg.0
IL_0325: ldfld System.Int32 ElectricityManager::m_conductiveCells
IL_032A: mul
IL_032B: ldc.i4.7
IL_032C: shr
IL_032D: stloc.s 16 (System.Int32)
IL_032F: ldloc.1
IL_0330: ldc.i4 255
IL_0335: bne.un => Label23
IL_033A: ldc.i4 1000000000
IL_033F: stloc.s 16 (System.Int32)
IL_0341: Label23
IL_0341: br => Label24
IL_0346: Label54
IL_0346: ldarg.0
IL_0347: ldc.i4.0
IL_0348: stfld System.Boolean ElectricityManager::m_canContinue
IL_034D: ldarg.0
IL_034E: ldfld System.Int32 ElectricityManager::m_pulseUnitEnd
IL_0353: stloc.s 17 (System.Int32)
IL_0355: br => Label25
IL_035A: Label52
IL_035A: ldarg.0
IL_035B: ldfld PulseUnit[] ElectricityManager::m_pulseUnits
IL_0360: ldarg.0
IL_0361: ldfld System.Int32 ElectricityManager::m_pulseUnitStart
IL_0366: ldelema ElectricityManager+PulseUnit
IL_036B: ldobj ElectricityManager+PulseUnit
IL_0370: stloc.s 18 (ElectricityManager+PulseUnit)
IL_0372: ldarg.0
IL_0373: dup
IL_0374: ldfld System.Int32 ElectricityManager::m_pulseUnitStart
IL_0379: ldc.i4.1
IL_037A: add
IL_037B: dup
IL_037C: stloc.s 15 (System.Int32)
IL_037E: stfld System.Int32 ElectricityManager::m_pulseUnitStart
IL_0383: ldloc.s 15 (System.Int32)
IL_0385: ldarg.0
IL_0386: ldfld PulseUnit[] ElectricityManager::m_pulseUnits
IL_038B: ldlen
IL_038C: conv.i4
IL_038D: bne.un => Label26
IL_0392: ldarg.0
IL_0393: ldc.i4.0
IL_0394: stfld System.Int32 ElectricityManager::m_pulseUnitStart
IL_0399: Label26
IL_0399: ldloca.s 18 (ElectricityManager+PulseUnit)
IL_039B: ldarg.0
IL_039C: ldloca.s 18 (ElectricityManager+PulseUnit)
IL_039E: ldfld System.UInt16 PulseUnit::m_group
IL_03A3: call System.UInt16 ElectricityManager::GetRootGroup(System.UInt16
group)
IL_03A8: stfld System.UInt16 PulseUnit::m_group
IL_03AD: ldarg.0
IL_03AE: ldfld PulseGroup[] ElectricityManager::m_pulseGroups
IL_03B3: ldloca.s 18 (ElectricityManager+PulseUnit)
IL_03B5: ldfld System.UInt16 PulseUnit::m_group
IL_03BA: ldelema ElectricityManager+PulseGroup
IL_03BF: ldfld System.UInt32 PulseGroup::m_curCharge
IL_03C4: stloc.s 19 (System.UInt32)
IL_03C6: ldloca.s 18 (ElectricityManager+PulseUnit)
IL_03C8: ldfld System.UInt16 PulseUnit::m_node
IL_03CD: brtrue => Label27
IL_03D2: ldloca.s 18 (ElectricityManager+PulseUnit)
IL_03D4: ldfld System.Byte PulseUnit::m_z
IL_03D9: ldc.i4 256
IL_03DE: mul
IL_03DF: ldloca.s 18 (ElectricityManager+PulseUnit)
IL_03E1: ldfld System.Byte PulseUnit::m_x
IL_03E6: add
IL_03E7: stloc.s 20 (System.Int32)
IL_03E9: ldarg.0
IL_03EA: ldfld Cell[] ElectricityManager::m_electricityGrid
IL_03EF: ldloc.s 20 (System.Int32)
IL_03F1: ldelema ElectricityManager+Cell
IL_03F6: ldobj ElectricityManager+Cell
IL_03FB: stloc.s 21 (ElectricityManager+Cell)
IL_03FD: ldloca.s 21 (ElectricityManager+Cell)
IL_03FF: ldfld System.Byte Cell::m_conductivity
IL_0404: brfalse => Label28
IL_0409: ldloca.s 21 (ElectricityManager+Cell)
IL_040B: ldfld System.Boolean Cell::m_tmpElectrified
IL_0410: brtrue => Label29
IL_0415: ldloc.s 19 (System.UInt32)
IL_0417: brfalse => Label30
IL_041C: ldloca.s 21 (ElectricityManager+Cell)
IL_041E: ldfld System.Int16 Cell::m_currentCharge
IL_0423: neg
IL_0424: ldc.i4.0
IL_0425: ldloc.s 19 (System.UInt32)
IL_0427: call static System.Int32 UnityEngine.Mathf::Clamp(System.Int32
value, System.Int32 min, System.Int32 max)
IL_042C: stloc.s 22 (System.Int32)
IL_042E: ldloc.s 19 (System.UInt32)
IL_0430: ldloc.s 22 (System.Int32)
IL_0432: sub
IL_0433: stloc.s 19 (System.UInt32)
IL_0435: ldloca.s 21 (ElectricityManager+Cell)
IL_0437: dup
IL_0438: ldfld System.Int16 Cell::m_currentCharge
IL_043D: ldloc.s 22 (System.Int32)
IL_043F: conv.i2
IL_0440: add
IL_0441: conv.i2
IL_0442: stfld System.Int16 Cell::m_currentCharge
IL_0447: ldloca.s 21 (ElectricityManager+Cell)
IL_0449: ldfld System.Int16 Cell::m_currentCharge
IL_044E: brtrue => Label31
IL_0453: ldloca.s 21 (ElectricityManager+Cell)
IL_0455: ldc.i4.1
IL_0456: stfld System.Boolean Cell::m_tmpElectrified
IL_045B: Label31
IL_045B: ldarg.0
IL_045C: ldfld Cell[] ElectricityManager::m_electricityGrid
IL_0461: ldloc.s 20 (System.Int32)
IL_0463: ldelema ElectricityManager+Cell
IL_0468: ldloc.s 21 (ElectricityManager+Cell)
IL_046A: stobj ElectricityManager+Cell
IL_046F: ldarg.0
IL_0470: ldfld PulseGroup[] ElectricityManager::m_pulseGroups
IL_0475: ldloca.s 18 (ElectricityManager+PulseUnit)
IL_0477: ldfld System.UInt16 PulseUnit::m_group
IL_047C: ldelema ElectricityManager+PulseGroup
IL_0481: ldloc.s 19 (System.UInt32)
IL_0483: stfld System.UInt32 PulseGroup::m_curCharge
IL_0488: Label28
IL_0488: Label29
IL_0488: Label30
IL_0488: ldloc.s 19 (System.UInt32)
IL_048A: brfalse => Label32
IL_048F: ldloca.s 21 (ElectricityManager+Cell)
IL_0491: ldfld System.Byte Cell::m_conductivity
IL_0496: ldc.i4.s 64
IL_0498: blt => Label33
IL_049D: ldc.i4.1
IL_049E: br => Label34
IL_04A3: Label33
IL_04A3: ldc.i4.s 64
IL_04A5: Label34
IL_04A5: stloc.s 23 (System.Int32)
IL_04A7: ldarg.0
IL_04A8: dup
IL_04A9: ldfld System.Int32 ElectricityManager::m_processedCells
IL_04AE: ldc.i4.1
IL_04AF: add
IL_04B0: stfld System.Int32 ElectricityManager::m_processedCells
IL_04B5: ldloca.s 18 (ElectricityManager+PulseUnit)
IL_04B7: ldfld System.Byte PulseUnit::m_z
IL_04BC: ldc.i4.0
IL_04BD: ble => Label35
IL_04C2: ldarg.0
IL_04C3: ldarg.0
IL_04C4: ldfld Cell[] ElectricityManager::m_electricityGrid
IL_04C9: ldloc.s 20 (System.Int32)
IL_04CB: ldc.i4 256
IL_04D0: sub
IL_04D1: ldelema ElectricityManager+Cell
IL_04D6: ldloca.s 18 (ElectricityManager+PulseUnit)
IL_04D8: ldfld System.UInt16 PulseUnit::m_group
IL_04DD: ldloca.s 18 (ElectricityManager+PulseUnit)
IL_04DF: ldfld System.Byte PulseUnit::m_x
IL_04E4: ldloca.s 18 (ElectricityManager+PulseUnit)
IL_04E6: ldfld System.Byte PulseUnit::m_z
IL_04EB: ldc.i4.1
IL_04EC: sub
IL_04ED: ldloc.s 23 (System.Int32)
IL_04EF: call System.Void ElectricityManager::ConductToCell(Cell& cell,
System.UInt16 group, System.Int32 x, System.Int32 z, System.Int32 limit)
IL_04F4: Label35
IL_04F4: ldloca.s 18 (ElectricityManager+PulseUnit)
IL_04F6: ldfld System.Byte PulseUnit::m_x
IL_04FB: ldc.i4.0
IL_04FC: ble => Label36
IL_0501: ldarg.0
IL_0502: ldarg.0
IL_0503: ldfld Cell[] ElectricityManager::m_electricityGrid
IL_0508: ldloc.s 20 (System.Int32)
IL_050A: ldc.i4.1
IL_050B: sub
IL_050C: ldelema ElectricityManager+Cell
IL_0511: ldloca.s 18 (ElectricityManager+PulseUnit)
IL_0513: ldfld System.UInt16 PulseUnit::m_group
IL_0518: ldloca.s 18 (ElectricityManager+PulseUnit)
IL_051A: ldfld System.Byte PulseUnit::m_x
IL_051F: ldc.i4.1
IL_0520: sub
IL_0521: ldloca.s 18 (ElectricityManager+PulseUnit)
IL_0523: ldfld System.Byte PulseUnit::m_z
IL_0528: ldloc.s 23 (System.Int32)
IL_052A: call System.Void ElectricityManager::ConductToCell(Cell& cell,
System.UInt16 group, System.Int32 x, System.Int32 z, System.Int32 limit)
IL_052F: Label36
IL_052F: ldloca.s 18 (ElectricityManager+PulseUnit)
IL_0531: ldfld System.Byte PulseUnit::m_z
IL_0536: ldc.i4 255
IL_053B: bge => Label37
IL_0540: ldarg.0
IL_0541: ldarg.0
IL_0542: ldfld Cell[] ElectricityManager::m_electricityGrid
IL_0547: ldloc.s 20 (System.Int32)
IL_0549: ldc.i4 256
IL_054E: add
IL_054F: ldelema ElectricityManager+Cell
IL_0554: ldloca.s 18 (ElectricityManager+PulseUnit)
IL_0556: ldfld System.UInt16 PulseUnit::m_group
IL_055B: ldloca.s 18 (ElectricityManager+PulseUnit)
IL_055D: ldfld System.Byte PulseUnit::m_x
IL_0562: ldloca.s 18 (ElectricityManager+PulseUnit)
IL_0564: ldfld System.Byte PulseUnit::m_z
IL_0569: ldc.i4.1
IL_056A: add
IL_056B: ldloc.s 23 (System.Int32)
IL_056D: call System.Void ElectricityManager::ConductToCell(Cell& cell,
System.UInt16 group, System.Int32 x, System.Int32 z, System.Int32 limit)
IL_0572: Label37
IL_0572: ldloca.s 18 (ElectricityManager+PulseUnit)
IL_0574: ldfld System.Byte PulseUnit::m_x
IL_0579: ldc.i4 255
IL_057E: bge => Label38
IL_0583: ldarg.0
IL_0584: ldarg.0
IL_0585: ldfld Cell[] ElectricityManager::m_electricityGrid
IL_058A: ldloc.s 20 (System.Int32)
IL_058C: ldc.i4.1
IL_058D: add
IL_058E: ldelema ElectricityManager+Cell
IL_0593: ldloca.s 18 (ElectricityManager+PulseUnit)
IL_0595: ldfld System.UInt16 PulseUnit::m_group
IL_059A: ldloca.s 18 (ElectricityManager+PulseUnit)
IL_059C: ldfld System.Byte PulseUnit::m_x
IL_05A1: ldc.i4.1
IL_05A2: add
IL_05A3: ldloca.s 18 (ElectricityManager+PulseUnit)
IL_05A5: ldfld System.Byte PulseUnit::m_z
IL_05AA: ldloc.s 23 (System.Int32)
IL_05AC: call System.Void ElectricityManager::ConductToCell(Cell& cell,
System.UInt16 group, System.Int32 x, System.Int32 z, System.Int32 limit)
IL_05B1: Label38
IL_05B1: ldarg.0
IL_05B2: ldloca.s 18 (ElectricityManager+PulseUnit)
IL_05B4: ldfld System.UInt16 PulseUnit::m_group
IL_05B9: ldloca.s 18 (ElectricityManager+PulseUnit)
IL_05BB: ldfld System.Byte PulseUnit::m_x
IL_05C0: ldloca.s 18 (ElectricityManager+PulseUnit)
IL_05C2: ldfld System.Byte PulseUnit::m_z
IL_05C7: call System.Void ElectricityManager::ConductToNodes(System.UInt16
group, System.Int32 cellX, System.Int32 cellZ)
IL_05CC: br => Label39
IL_05D1: Label32
IL_05D1: ldarg.0
IL_05D2: ldfld PulseUnit[] ElectricityManager::m_pulseUnits
IL_05D7: ldarg.0
IL_05D8: ldfld System.Int32 ElectricityManager::m_pulseUnitEnd
IL_05DD: ldelema ElectricityManager+PulseUnit
IL_05E2: ldloc.s 18 (ElectricityManager+PulseUnit)
IL_05E4: stobj ElectricityManager+PulseUnit
IL_05E9: ldarg.0
IL_05EA: dup
IL_05EB: ldfld System.Int32 ElectricityManager::m_pulseUnitEnd
IL_05F0: ldc.i4.1
IL_05F1: add
IL_05F2: dup
IL_05F3: stloc.s 15 (System.Int32)
IL_05F5: stfld System.Int32 ElectricityManager::m_pulseUnitEnd
IL_05FA: ldloc.s 15 (System.Int32)
IL_05FC: ldarg.0
IL_05FD: ldfld PulseUnit[] ElectricityManager::m_pulseUnits
IL_0602: ldlen
IL_0603: conv.i4
IL_0604: bne.un => Label40
IL_0609: ldarg.0
IL_060A: ldc.i4.0
IL_060B: stfld System.Int32 ElectricityManager::m_pulseUnitEnd
IL_0610: Label39
IL_0610: Label40
IL_0610: br => Label41
IL_0615: Label27
IL_0615: ldloc.s 19 (System.UInt32)
IL_0617: brfalse => Label42
IL_061C: ldarg.0
IL_061D: dup
IL_061E: ldfld System.Int32 ElectricityManager::m_processedCells
IL_0623: ldc.i4.1
IL_0624: add
IL_0625: stfld System.Int32 ElectricityManager::m_processedCells
IL_062A: call static NetManager
ColossalFramework.Singleton`1<NetManager>::get_instance()
IL_062F: ldfld Array16`1<NetNode> NetManager::m_nodes
IL_0634: ldfld NetNode[] Array16`1<NetNode>::m_buffer
IL_0639: ldloca.s 18 (ElectricityManager+PulseUnit)
IL_063B: ldfld System.UInt16 PulseUnit::m_node
IL_0640: ldelema NetNode
IL_0645: ldobj NetNode
IL_064A: stloc.s 24 (NetNode)
IL_064C: ldloca.s 24 (NetNode)
IL_064E: ldfld Flags NetNode::m_flags
IL_0653: brfalse => Label43
IL_0658: ldloca.s 24 (NetNode)
IL_065A: ldfld System.UInt32 NetNode::m_buildIndex
IL_065F: ldloc.0
IL_0660: ldc.i4.s -128
IL_0662: and
IL_0663: bge.un => Label44
IL_0668: ldarg.0
IL_0669: ldloca.s 18 (ElectricityManager+PulseUnit)
IL_066B: ldfld System.UInt16 PulseUnit::m_group
IL_0670: ldloca.s 24 (NetNode)
IL_0672: ldflda UnityEngine.Vector3 NetNode::m_position
IL_0677: ldfld System.Single UnityEngine.Vector3::x
IL_067C: ldloca.s 24 (NetNode)
IL_067E: ldflda UnityEngine.Vector3 NetNode::m_position
IL_0683: ldfld System.Single UnityEngine.Vector3::z
IL_0688: call System.Void ElectricityManager::ConductToCells(System.UInt16
group, System.Single worldX, System.Single worldZ)
IL_068D: ldc.i4.0
IL_068E: stloc.s 25 (System.Int32)
IL_0690: br => Label45
IL_0695: Label49
IL_0695: ldloca.s 24 (NetNode)
IL_0697: ldloc.s 25 (System.Int32)
IL_0699: call System.UInt16 NetNode::GetSegment(System.Int32 index)
IL_069E: stloc.s 26 (System.UInt16)
IL_06A0: ldloc.s 26 (System.UInt16)
IL_06A2: brfalse => Label46
IL_06A7: call static NetManager
ColossalFramework.Singleton`1<NetManager>::get_instance()
IL_06AC: ldfld Array16`1<NetSegment> NetManager::m_segments
IL_06B1: ldfld NetSegment[] Array16`1<NetSegment>::m_buffer
IL_06B6: ldloc.s 26 (System.UInt16)
IL_06B8: ldelema NetSegment
IL_06BD: ldfld System.UInt16 NetSegment::m_startNode
IL_06C2: stloc.s 27 (System.UInt16)
IL_06C4: call static NetManager
ColossalFramework.Singleton`1<NetManager>::get_instance()
IL_06C9: ldfld Array16`1<NetSegment> NetManager::m_segments
IL_06CE: ldfld NetSegment[] Array16`1<NetSegment>::m_buffer
IL_06D3: ldloc.s 26 (System.UInt16)
IL_06D5: ldelema NetSegment
IL_06DA: ldfld System.UInt16 NetSegment::m_endNode
IL_06DF: stloc.s 28 (System.UInt16)
IL_06E1: ldloc.s 27 (System.UInt16)
IL_06E3: ldloca.s 18 (ElectricityManager+PulseUnit)
IL_06E5: ldfld System.UInt16 PulseUnit::m_node
IL_06EA: bne.un => Label47
IL_06EF: ldloc.s 28 (System.UInt16)
IL_06F1: br => Label48
IL_06F6: Label47
IL_06F6: ldloc.s 27 (System.UInt16)
IL_06F8: Label48
IL_06F8: stloc.s 29 (System.UInt16)
IL_06FA: ldarg.0
IL_06FB: ldloc.s 29 (System.UInt16)
IL_06FD: call static NetManager
ColossalFramework.Singleton`1<NetManager>::get_instance()
IL_0702: ldfld Array16`1<NetNode> NetManager::m_nodes
IL_0707: ldfld NetNode[] Array16`1<NetNode>::m_buffer
IL_070C: ldloc.s 29 (System.UInt16)
IL_070E: ldelema NetNode
IL_0713: ldloca.s 18 (ElectricityManager+PulseUnit)
IL_0715: ldfld System.UInt16 PulseUnit::m_group
IL_071A: ldc.r4 -100000
IL_071F: ldc.r4 -100000
IL_0724: ldc.r4 100000
IL_0729: ldc.r4 100000
IL_072E: call System.Void ElectricityManager::ConductToNode(System.UInt16
nodeIndex, NetNode& node, System.UInt16 group, System.Single minX, System.Single
minZ, System.Single maxX, System.Single maxZ)
IL_0733: Label46
IL_0733: ldloc.s 25 (System.Int32)
IL_0735: ldc.i4.1
IL_0736: add
IL_0737: stloc.s 25 (System.Int32)
IL_0739: Label45
IL_0739: ldloc.s 25 (System.Int32)
IL_073B: ldc.i4.8
IL_073C: blt => Label49
IL_0741: Label43
IL_0741: Label44
IL_0741: br => Label50
IL_0746: Label42
IL_0746: ldarg.0
IL_0747: ldfld PulseUnit[] ElectricityManager::m_pulseUnits
IL_074C: ldarg.0
IL_074D: ldfld System.Int32 ElectricityManager::m_pulseUnitEnd
IL_0752: ldelema ElectricityManager+PulseUnit
IL_0757: ldloc.s 18 (ElectricityManager+PulseUnit)
IL_0759: stobj ElectricityManager+PulseUnit
IL_075E: ldarg.0
IL_075F: dup
IL_0760: ldfld System.Int32 ElectricityManager::m_pulseUnitEnd
IL_0765: ldc.i4.1
IL_0766: add
IL_0767: dup
IL_0768: stloc.s 15 (System.Int32)
IL_076A: stfld System.Int32 ElectricityManager::m_pulseUnitEnd
IL_076F: ldloc.s 15 (System.Int32)
IL_0771: ldarg.0
IL_0772: ldfld PulseUnit[] ElectricityManager::m_pulseUnits
IL_0777: ldlen
IL_0778: conv.i4
IL_0779: bne.un => Label51
IL_077E: ldarg.0
IL_077F: ldc.i4.0
IL_0780: stfld System.Int32 ElectricityManager::m_pulseUnitEnd
IL_0785: Label25
IL_0785: Label41
IL_0785: Label50
IL_0785: Label51
IL_0785: ldarg.0
IL_0786: ldfld System.Int32 ElectricityManager::m_pulseUnitStart
IL_078B: ldloc.s 17 (System.Int32)
IL_078D: bne.un => Label52
IL_0792: Label24
IL_0792: ldarg.0
IL_0793: ldfld System.Boolean ElectricityManager::m_canContinue
IL_0798: brfalse => Label53
IL_079D: ldarg.0
IL_079E: ldfld System.Int32 ElectricityManager::m_processedCells
IL_07A3: ldloc.s 16 (System.Int32)
IL_07A5: blt => Label54
IL_07AA: Label53
IL_07AA: ldloc.1
IL_07AB: ldc.i4 255
IL_07B0: bne.un => Label55
IL_07B5: ldc.i4.0
IL_07B6: stloc.s 30 (System.Int32)
IL_07B8: br => Label56
IL_07BD: Label58
IL_07BD: ldarg.0
IL_07BE: ldfld PulseGroup[] ElectricityManager::m_pulseGroups
IL_07C3: ldloc.s 30 (System.Int32)
IL_07C5: ldelema ElectricityManager+PulseGroup
IL_07CA: ldobj ElectricityManager+PulseGroup
IL_07CF: stloc.s 31 (ElectricityManager+PulseGroup)
IL_07D1: ldloca.s 31 (ElectricityManager+PulseGroup)
IL_07D3: ldfld System.UInt16 PulseGroup::m_mergeIndex
IL_07D8: ldc.i4 65535
IL_07DD: beq => Label57
IL_07E2: ldarg.0
IL_07E3: ldfld PulseGroup[] ElectricityManager::m_pulseGroups
IL_07E8: ldloca.s 31 (ElectricityManager+PulseGroup)
IL_07EA: ldfld System.UInt16 PulseGroup::m_mergeIndex
IL_07EF: ldelema ElectricityManager+PulseGroup
IL_07F4: ldobj ElectricityManager+PulseGroup
IL_07F9: stloc.s 32 (ElectricityManager+PulseGroup)
IL_07FB: ldloca.s 31 (ElectricityManager+PulseGroup)
IL_07FD: ldloca.s 32 (ElectricityManager+PulseGroup)
IL_07FF: ldfld System.UInt32 PulseGroup::m_curCharge
IL_0804: conv.u8
IL_0805: ldloca.s 31 (ElectricityManager+PulseGroup)
IL_0807: ldfld System.UInt32 PulseGroup::m_origCharge
IL_080C: conv.u8
IL_080D: mul
IL_080E: ldloca.s 32 (ElectricityManager+PulseGroup)
IL_0810: ldfld System.UInt32 PulseGroup::m_origCharge
IL_0815: conv.u8
IL_0816: div.un
IL_0817: conv.u4
IL_0818: stfld System.UInt32 PulseGroup::m_curCharge
IL_081D: ldloca.s 32 (ElectricityManager+PulseGroup)
IL_081F: dup
IL_0820: ldfld System.UInt32 PulseGroup::m_curCharge
IL_0825: ldloca.s 31 (ElectricityManager+PulseGroup)
IL_0827: ldfld System.UInt32 PulseGroup::m_curCharge
IL_082C: sub
IL_082D: stfld System.UInt32 PulseGroup::m_curCharge
IL_0832: ldloca.s 32 (ElectricityManager+PulseGroup)
IL_0834: dup
IL_0835: ldfld System.UInt32 PulseGroup::m_origCharge
IL_083A: ldloca.s 31 (ElectricityManager+PulseGroup)
IL_083C: ldfld System.UInt32 PulseGroup::m_origCharge
IL_0841: sub
IL_0842: stfld System.UInt32 PulseGroup::m_origCharge
IL_0847: ldarg.0
IL_0848: ldfld PulseGroup[] ElectricityManager::m_pulseGroups
IL_084D: ldloca.s 31 (ElectricityManager+PulseGroup)
IL_084F: ldfld System.UInt16 PulseGroup::m_mergeIndex
IL_0854: ldelema ElectricityManager+PulseGroup
IL_0859: ldloc.s 32 (ElectricityManager+PulseGroup)
IL_085B: stobj ElectricityManager+PulseGroup
IL_0860: ldarg.0
IL_0861: ldfld PulseGroup[] ElectricityManager::m_pulseGroups
IL_0866: ldloc.s 30 (System.Int32)
IL_0868: ldelema ElectricityManager+PulseGroup
IL_086D: ldloc.s 31 (ElectricityManager+PulseGroup)
IL_086F: stobj ElectricityManager+PulseGroup
IL_0874: Label57
IL_0874: ldloc.s 30 (System.Int32)
IL_0876: ldc.i4.1
IL_0877: add
IL_0878: stloc.s 30 (System.Int32)
IL_087A: Label56
IL_087A: ldloc.s 30 (System.Int32)
IL_087C: ldarg.0
IL_087D: ldfld System.Int32 ElectricityManager::m_pulseGroupCount
IL_0882: blt => Label58
IL_0887: ldc.i4.0
IL_0888: stloc.s 33 (System.Int32)
IL_088A: br => Label59
IL_088F: Label62
IL_088F: ldarg.0
IL_0890: ldfld PulseGroup[] ElectricityManager::m_pulseGroups
IL_0895: ldloc.s 33 (System.Int32)
IL_0897: ldelema ElectricityManager+PulseGroup
IL_089C: ldobj ElectricityManager+PulseGroup
IL_08A1: stloc.s 34 (ElectricityManager+PulseGroup)
IL_08A3: ldloca.s 34 (ElectricityManager+PulseGroup)
IL_08A5: ldfld System.UInt32 PulseGroup::m_curCharge
IL_08AA: brfalse => Label60
IL_08AF: ldloca.s 34 (ElectricityManager+PulseGroup)
IL_08B1: ldfld System.Byte PulseGroup::m_z
IL_08B6: ldc.i4 256
IL_08BB: mul
IL_08BC: ldloca.s 34 (ElectricityManager+PulseGroup)
IL_08BE: ldfld System.Byte PulseGroup::m_x
IL_08C3: add
IL_08C4: stloc.s 35 (System.Int32)
IL_08C6: ldarg.0
IL_08C7: ldfld Cell[] ElectricityManager::m_electricityGrid
IL_08CC: ldloc.s 35 (System.Int32)
IL_08CE: ldelema ElectricityManager+Cell
IL_08D3: ldobj ElectricityManager+Cell
IL_08D8: stloc.s 36 (ElectricityManager+Cell)
IL_08DA: ldloca.s 36 (ElectricityManager+Cell)
IL_08DC: ldfld System.Byte Cell::m_conductivity
IL_08E1: brfalse => Label61
IL_08E6: ldloca.s 36 (ElectricityManager+Cell)
IL_08E8: dup
IL_08E9: ldfld System.UInt16 Cell::m_extraCharge
IL_08EE: ldloca.s 34 (ElectricityManager+PulseGroup)
IL_08F0: ldfld System.UInt32 PulseGroup::m_curCharge
IL_08F5: ldc.i4 32767
IL_08FA: ldloca.s 36 (ElectricityManager+Cell)
IL_08FC: ldfld System.UInt16 Cell::m_extraCharge
IL_0901: sub
IL_0902: call static System.Int32 UnityEngine.Mathf::Min(System.Int32 a,
System.Int32 b)
IL_0907: conv.u2
IL_0908: add
IL_0909: conv.u2
IL_090A: stfld System.UInt16 Cell::m_extraCharge
IL_090F: Label61
IL_090F: ldarg.0
IL_0910: ldfld Cell[] ElectricityManager::m_electricityGrid
IL_0915: ldloc.s 35 (System.Int32)
IL_0917: ldelema ElectricityManager+Cell
IL_091C: ldloc.s 36 (ElectricityManager+Cell)
IL_091E: stobj ElectricityManager+Cell
IL_0923: Label60
IL_0923: ldloc.s 33 (System.Int32)
IL_0925: ldc.i4.1
IL_0926: add
IL_0927: stloc.s 33 (System.Int32)
IL_0929: Label59
IL_0929: ldloc.s 33 (System.Int32)
IL_092B: ldarg.0
IL_092C: ldfld System.Int32 ElectricityManager::m_pulseGroupCount
IL_0931: blt => Label62
IL_0936: // end original
IL_0936: Label0
IL_0936: Label1
IL_0936: Label22
IL_0936: Label55
IL_0936: ret
DONE

### Patch: System.Void ElectricityManager::ConductToNode(System.UInt16 nodeIndex,


NetNode& node, System.UInt16 group, System.Single minX, System.Single minZ,
System.Single maxX, System.Single maxZ)
### Replacement: static System.Void
ElectricityManager::ElectricityManager.ConductToNode_Patch0(ElectricityManager
this, System.UInt16 nodeIndex, NetNode& node, System.UInt16 group, System.Single
minX, System.Single minZ, System.Single maxX, System.Single maxZ)
IL_0000: Local var 0: NetInfo
IL_0000: Local var 1: ElectricityManager/PulseUnit
IL_0000: Local var 2: System.Int32
IL_0000: Local var 3: System.UInt16
IL_0000: // start original
IL_0000: ldarg.2
IL_0001: ldflda UnityEngine.Vector3 NetNode::m_position
IL_0006: ldfld System.Single UnityEngine.Vector3::x
IL_000B: ldarg.s 4
IL_000D: blt.un => Label0
IL_0012: ldarg.2
IL_0013: ldflda UnityEngine.Vector3 NetNode::m_position
IL_0018: ldfld System.Single UnityEngine.Vector3::z
IL_001D: ldarg.s 5
IL_001F: blt.un => Label1
IL_0024: ldarg.2
IL_0025: ldflda UnityEngine.Vector3 NetNode::m_position
IL_002A: ldfld System.Single UnityEngine.Vector3::x
IL_002F: ldarg.s 6
IL_0031: bgt.un => Label2
IL_0036: ldarg.2
IL_0037: ldflda UnityEngine.Vector3 NetNode::m_position
IL_003C: ldfld System.Single UnityEngine.Vector3::z
IL_0041: ldarg.s 7
IL_0043: bgt.un => Label3
IL_0048: ldarg.2
IL_0049: call static System.Boolean
ElectricRoads.Overrides.ElectricRoadsOverrides::CheckElectricConductibility(NetNode
& node)
IL_004E: brfalse => Label5
IL_0053: Label4
IL_0053: ldarg.0
IL_0054: ldfld System.UInt16[] ElectricityManager::m_nodeGroups
IL_0059: ldarg.1
IL_005A: ldelem.u2
IL_005B: ldc.i4 65535
IL_0060: bne.un => Label6
IL_0065: ldloca.s 1 (ElectricityManager+PulseUnit)
IL_0067: ldarg.3
IL_0068: stfld System.UInt16 PulseUnit::m_group
IL_006D: ldloca.s 1 (ElectricityManager+PulseUnit)
IL_006F: ldarg.1
IL_0070: stfld System.UInt16 PulseUnit::m_node
IL_0075: ldloca.s 1 (ElectricityManager+PulseUnit)
IL_0077: ldc.i4.0
IL_0078: stfld System.Byte PulseUnit::m_x
IL_007D: ldloca.s 1 (ElectricityManager+PulseUnit)
IL_007F: ldc.i4.0
IL_0080: stfld System.Byte PulseUnit::m_z
IL_0085: ldarg.0
IL_0086: ldfld PulseUnit[] ElectricityManager::m_pulseUnits
IL_008B: ldarg.0
IL_008C: ldfld System.Int32 ElectricityManager::m_pulseUnitEnd
IL_0091: ldelema ElectricityManager+PulseUnit
IL_0096: ldloc.1
IL_0097: stobj ElectricityManager+PulseUnit
IL_009C: ldarg.0
IL_009D: dup
IL_009E: ldfld System.Int32 ElectricityManager::m_pulseUnitEnd
IL_00A3: ldc.i4.1
IL_00A4: add
IL_00A5: dup
IL_00A6: stloc.2
IL_00A7: stfld System.Int32 ElectricityManager::m_pulseUnitEnd
IL_00AC: ldloc.2
IL_00AD: ldarg.0
IL_00AE: ldfld PulseUnit[] ElectricityManager::m_pulseUnits
IL_00B3: ldlen
IL_00B4: conv.i4
IL_00B5: bne.un => Label7
IL_00BA: ldarg.0
IL_00BB: ldc.i4.0
IL_00BC: stfld System.Int32 ElectricityManager::m_pulseUnitEnd
IL_00C1: Label7
IL_00C1: ldarg.0
IL_00C2: ldfld System.UInt16[] ElectricityManager::m_nodeGroups
IL_00C7: ldarg.1
IL_00C8: ldarg.3
IL_00C9: stelem.i2
IL_00CA: ldarg.0
IL_00CB: ldc.i4.1
IL_00CC: stfld System.Boolean ElectricityManager::m_canContinue
IL_00D1: br => Label8
IL_00D6: Label6
IL_00D6: ldarg.0
IL_00D7: ldarg.0
IL_00D8: ldfld System.UInt16[] ElectricityManager::m_nodeGroups
IL_00DD: ldarg.1
IL_00DE: ldelem.u2
IL_00DF: call System.UInt16 ElectricityManager::GetRootGroup(System.UInt16
group)
IL_00E4: stloc.3
IL_00E5: ldloc.3
IL_00E6: ldarg.3
IL_00E7: beq => Label9
IL_00EC: ldarg.0
IL_00ED: ldarg.3
IL_00EE: ldloc.3
IL_00EF: call System.Void ElectricityManager::MergeGroups(System.UInt16 root,
System.UInt16 merged)
IL_00F4: ldarg.0
IL_00F5: ldfld System.UInt16[] ElectricityManager::m_nodeGroups
IL_00FA: ldarg.1
IL_00FB: ldarg.3
IL_00FC: stelem.i2
IL_00FD: ldarg.0
IL_00FE: ldc.i4.1
IL_00FF: stfld System.Boolean ElectricityManager::m_canContinue
IL_0104: // end original
IL_0104: Label0
IL_0104: Label1
IL_0104: Label2
IL_0104: Label3
IL_0104: Label5
IL_0104: Label8
IL_0104: Label9
IL_0104: ret
DONE

### Patch: System.Void ElectricityManager::UpdateNodeElectricity(System.Int32


nodeID, System.Int32 value)
### Replacement: static System.Void
ElectricityManager::ElectricityManager.UpdateNodeElectricity_Patch2(ElectricityMana
ger this, System.Int32 nodeID, System.Int32 value)
IL_0000: Local var 0: InfoManager/InfoMode
IL_0000: Local var 1: NetManager
IL_0000: Local var 2: System.Boolean
IL_0000: Local var 3: NetNode/Flags
IL_0000: Local var 4: System.UInt16
IL_0000: Local var 5: BuildingManager
IL_0000: Local var 6: NetNode/Flags
IL_0000: Local var 7: System.Int32
IL_0000: Local var 8: System.UInt16
IL_0000: Local var 9: System.Boolean
IL_0000: Local var 10: System.Boolean
IL_0000: ldc.i4 0
IL_0005: stloc 9 (System.Boolean)
IL_0009: ldc.i4.1
IL_000A: stloc 9 (System.Boolean)
IL_000E: ldc.i4 0
IL_0013: stloc 10 (System.Boolean)
IL_0017: ldloc 9 (System.Boolean)
IL_001B: brfalse => Label1
IL_0020: ldarga 1
IL_0024: ldloca 10 (System.Boolean)
IL_0028: call static System.Void
ElectricRoads.Overrides.ElectricRoadsOverrides::PreConduct(System.Int32& nodeID,
System.Boolean& __state)
IL_002D: Label1
IL_002D: nop
IL_002E: ldloc 9 (System.Boolean)
IL_0032: brfalse => Label0
IL_0037: // start original
IL_0037: call static InfoManager
ColossalFramework.Singleton`1<InfoManager>::get_instance()
IL_003C: callvirt InfoMode InfoManager::get_CurrentMode()
IL_0041: stloc.0
IL_0042: call static NetManager
ColossalFramework.Singleton`1<NetManager>::get_instance()
IL_0047: stloc.1
IL_0048: ldc.i4.0
IL_0049: stloc.2
IL_004A: ldloc.1
IL_004B: ldfld Array16`1<NetNode> NetManager::m_nodes
IL_0050: ldfld NetNode[] Array16`1<NetNode>::m_buffer
IL_0055: ldarg.1
IL_0056: ldelema NetNode
IL_005B: ldfld Flags NetNode::m_flags
IL_0060: stloc.3
IL_0061: ldarg.1
IL_0062: call static System.Boolean
ElectricRoads.Overrides.ElectricRoadsOverrides::CheckNodeTransition(System.Int32
nodeID)
IL_0067: brfalse => Label2
IL_006C: ldloc.1
IL_006D: ldfld Array16`1<NetNode> NetManager::m_nodes
IL_0072: ldfld NetNode[] Array16`1<NetNode>::m_buffer
IL_0077: ldarg.1
IL_0078: ldelema NetNode
IL_007D: dup
IL_007E: ldfld Flags NetNode::m_flags
IL_0083: ldc.i4 -1048577
IL_0088: and
IL_0089: stfld Flags NetNode::m_flags
IL_008E: br => Label12
IL_0093: Label2
IL_0093: ldloc.1
IL_0094: ldfld Array16`1<NetNode> NetManager::m_nodes
IL_0099: ldfld NetNode[] Array16`1<NetNode>::m_buffer
IL_009E: ldarg.1
IL_009F: ldelema NetNode
IL_00A4: ldfld System.UInt16 NetNode::m_building
IL_00A9: stloc.s 4 (System.UInt16)
IL_00AB: ldloc.s 4 (System.UInt16)
IL_00AD: brfalse => Label3
IL_00B2: call static BuildingManager
ColossalFramework.Singleton`1<BuildingManager>::get_instance()
IL_00B7: stloc.s 5 (BuildingManager)
IL_00B9: ldloc.s 5 (BuildingManager)
IL_00BB: ldfld Array16`1<Building> BuildingManager::m_buildings
IL_00C0: ldfld Building[] Array16`1<Building>::m_buffer
IL_00C5: ldloc.s 4 (System.UInt16)
IL_00C7: ldelema Building
IL_00CC: ldfld System.UInt16 Building::m_electricityBuffer
IL_00D1: ldarg.2
IL_00D2: beq => Label4
IL_00D7: ldloc.s 5 (BuildingManager)
IL_00D9: ldfld Array16`1<Building> BuildingManager::m_buildings
IL_00DE: ldfld Building[] Array16`1<Building>::m_buffer
IL_00E3: ldloc.s 4 (System.UInt16)
IL_00E5: ldelema Building
IL_00EA: ldarg.2
IL_00EB: conv.u2
IL_00EC: stfld System.UInt16 Building::m_electricityBuffer
IL_00F1: ldloc.0
IL_00F2: ldc.i4.1
IL_00F3: ceq
IL_00F5: stloc.2
IL_00F6: Label4
IL_00F6: ldloc.2
IL_00F7: brfalse => Label5
IL_00FC: ldloc.s 5 (BuildingManager)
IL_00FE: ldloc.s 4 (System.UInt16)
IL_0100: callvirt System.Void BuildingManager::UpdateBuildingColors(System.UInt16
building)
IL_0105: Label3
IL_0105: Label5
IL_0105: ldloc.3
IL_0106: ldc.i4 -67108865
IL_010B: and
IL_010C: stloc.s 6 (NetNode+Flags)
IL_010E: ldarg.2
IL_010F: brfalse => Label6
IL_0114: ldloc.s 6 (NetNode+Flags)
IL_0116: ldc.i4 67108864
IL_011B: or
IL_011C: stloc.s 6 (NetNode+Flags)
IL_011E: Label6
IL_011E: ldloc.s 6 (NetNode+Flags)
IL_0120: ldloc.3
IL_0121: beq => Label7
IL_0126: ldloc.1
IL_0127: ldfld Array16`1<NetNode> NetManager::m_nodes
IL_012C: ldfld NetNode[] Array16`1<NetNode>::m_buffer
IL_0131: ldarg.1
IL_0132: ldelema NetNode
IL_0137: ldloc.s 6 (NetNode+Flags)
IL_0139: stfld Flags NetNode::m_flags
IL_013E: ldloc.0
IL_013F: ldc.i4.1
IL_0140: ceq
IL_0142: stloc.2
IL_0143: Label7
IL_0143: ldloc.2
IL_0144: brfalse => Label8
IL_0149: ldloc.1
IL_014A: ldarg.1
IL_014B: conv.u2
IL_014C: callvirt System.Void NetManager::UpdateNodeColors(System.UInt16 node)
IL_0151: ldc.i4.0
IL_0152: stloc.s 7 (System.Int32)
IL_0154: br => Label9
IL_0159: Label11
IL_0159: ldloc.1
IL_015A: ldfld Array16`1<NetNode> NetManager::m_nodes
IL_015F: ldfld NetNode[] Array16`1<NetNode>::m_buffer
IL_0164: ldarg.1
IL_0165: ldelema NetNode
IL_016A: ldloc.s 7 (System.Int32)
IL_016C: call System.UInt16 NetNode::GetSegment(System.Int32 index)
IL_0171: stloc.s 8 (System.UInt16)
IL_0173: ldloc.s 8 (System.UInt16)
IL_0175: brfalse => Label10
IL_017A: ldloc.1
IL_017B: ldloc.s 8 (System.UInt16)
IL_017D: callvirt System.Void NetManager::UpdateSegmentColors(System.UInt16
segment)
IL_0182: Label10
IL_0182: ldloc.s 7 (System.Int32)
IL_0184: ldc.i4.1
IL_0185: add
IL_0186: stloc.s 7 (System.Int32)
IL_0188: Label9
IL_0188: ldloc.s 7 (System.Int32)
IL_018A: ldc.i4.8
IL_018B: blt => Label11
IL_0190: // end original
IL_0190: Label8
IL_0190: Label12
IL_0190: Label0
IL_0190: ldarg 1
IL_0194: ldloc 10 (System.Boolean)
IL_0198: call static System.Void
ElectricRoads.Overrides.ElectricRoadsOverrides::PostConduct(System.Int32 nodeID,
System.Boolean __state)
IL_019D: ret
DONE

### Patch: virtual System.Void ColossalFramework.UI.UIView::Start()


### Replacement: static System.Void
ColossalFramework.UI.UIView::ColossalFramework.UI.UIView.Start_Patch0(ColossalFrame
work.UI.UIView this)
IL_0000: Local var 0:
ColossalFramework.PoolList`1<ColossalFramework.UI.UIComponent>
IL_0000: Local var 1: ColossalFramework.UI.UIComponent
IL_0000: Local var 2:
System.Collections.Generic.IEnumerator`1<ColossalFramework.UI.UIComponent>
IL_0000: // start original
IL_0000: ldarg.0
IL_0001: ldc.i4.0
IL_0002: stfld System.Int32 ColossalFramework.UI.UIView::m_FramesRendered
IL_0007: ldarg.0
IL_0008: call System.Void
ColossalFramework.UI.UIView::InvalidateAllComponents()
IL_000D: ldarg.0
IL_000E: ldfld UnityEngine.MeshRenderer
ColossalFramework.UI.UIView::m_MeshRenderer
IL_0013: ldnull
IL_0014: call static System.Boolean
UnityEngine.Object::op_Inequality(UnityEngine.Object x, UnityEngine.Object y)
IL_0019: brfalse => Label0
IL_001E: ldarg.0
IL_001F: ldfld UnityEngine.MeshRenderer
ColossalFramework.UI.UIView::m_MeshRenderer
IL_0024: ldc.i4.1
IL_0025: callvirt System.Void UnityEngine.Renderer::set_enabled(System.Boolean
value)
IL_002A: Label0
IL_002A: ldarg.0
IL_002B: call ColossalFramework.PoolList`1<ColossalFramework.UI.UIComponent>
ColossalFramework.UI.UIView::GetTopLevelComponents()
IL_0030: stloc.0
.try
{
IL_0031: ldloc.0
IL_0032: callvirt virtual
System.Collections.Generic.IEnumerator`1<ColossalFramework.UI.UIComponent>
ColossalFramework.PoolList`1<ColossalFramework.UI.UIComponent>::GetEnumerator()
IL_0037: stloc.2
.try
{
IL_0038: br => Label1
IL_003D: Label2
IL_003D: ldloc.2
IL_003E: callvirt abstract virtual ColossalFramework.UI.UIComponent
System.Collections.Generic.IEnumerator`1<ColossalFramework.UI.UIComponent>::get_Cur
rent()
IL_0043: stloc.1
IL_0044: ldloc.1
IL_0045: ldc.i4.1
IL_0046: callvirt System.Void
ColossalFramework.UI.UIComponent::InitializeParentVisibilityCache(System.Boolean
parentVisible)
IL_004B: Label1
IL_004B: ldloc.2
IL_004C: callvirt abstract virtual System.Boolean
System.Collections.IEnumerator::MoveNext()
IL_0051: brtrue => Label2
IL_0056: leave => Label3
IL_005B: leave => (autogenerated)
} // end try
.finally
{
IL_0060: ldloc.2
IL_0061: brfalse => Label4
IL_0066: ldloc.2
IL_0067: callvirt abstract virtual System.Void
System.IDisposable::Dispose()
IL_006C: Label4
IL_006C: endfinally
IL_006D: leave => (autogenerated)
} // end handler
IL_006E: Label3
IL_006E: leave => Label5
IL_0073: leave => (autogenerated)
} // end try
.finally
{
IL_0078: ldloc.0
IL_0079: brfalse => Label6
IL_007E: ldloc.0
IL_007F: callvirt abstract virtual System.Void
System.IDisposable::Dispose()
IL_0084: Label6
IL_0084: endfinally
IL_0085: leave => (autogenerated)
} // end handler
IL_0086: Label5
IL_0086: ldarg.0
IL_0087: ldc.i4.1
IL_0088: stfld System.Boolean
ColossalFramework.UI.UIView::m_VisibilityCacheInitialized
IL_008D: // end original
IL_008D: ret
DONE

### Patch: virtual UnityEngine.Color NetAI::GetColor(System.UInt16 nodeID, NetNode&


data, InfoMode infoMode, SubInfoMode subInfoMode)
### Replacement: static UnityEngine.Color NetAI::NetAI.GetColor_Patch0(NetAI this,
System.UInt16 nodeID, NetNode& data, InfoMode infoMode, SubInfoMode subInfoMode)
IL_0000: // start original
IL_0000: ldarg.3
IL_0001: brfalse => Label0
IL_0006: call static InfoManager
ColossalFramework.Singleton`1<InfoManager>::get_instance()
IL_000B: ldfld InfoProperties SimulationManagerBase`2<InfoManager,
InfoProperties>::m_properties
IL_0010: ldfld UnityEngine.Color InfoProperties::m_neutralColor
IL_0015: br => Label1
IL_001A: Label0
IL_001A: ldarg.0
IL_001B: ldfld NetInfo NetAI::m_info
IL_0020: ldfld UnityEngine.Color NetInfo::m_color
IL_0025: // end original
IL_0025: Label1
IL_0025: ret
DONE

### Patch: virtual UnityEngine.Color NetAI::GetColor(System.UInt16 segmentID,


NetSegment& data, InfoMode infoMode, SubInfoMode subInfoMode)
### Replacement: static UnityEngine.Color NetAI::NetAI.GetColor_Patch0(NetAI this,
System.UInt16 segmentID, NetSegment& data, InfoMode infoMode, SubInfoMode
subInfoMode)
IL_0000: // start original
IL_0000: ldarg.3
IL_0001: brfalse => Label0
IL_0006: call static InfoManager
ColossalFramework.Singleton`1<InfoManager>::get_instance()
IL_000B: ldfld InfoProperties SimulationManagerBase`2<InfoManager,
InfoProperties>::m_properties
IL_0010: ldfld UnityEngine.Color InfoProperties::m_neutralColor
IL_0015: br => Label1
IL_001A: Label0
IL_001A: ldarg.0
IL_001B: ldfld NetInfo NetAI::m_info
IL_0020: ldfld UnityEngine.Color NetInfo::m_color
IL_0025: // end original
IL_0025: Label1
IL_0025: ret
DONE

### Patch: System.Void ElectricityManager::UpdateNodeElectricity(System.Int32


nodeID, System.Int32 value)
### Replacement: static System.Void
ElectricityManager::ElectricityManager.UpdateNodeElectricity_Patch0(ElectricityMana
ger this, System.Int32 nodeID, System.Int32 value)
IL_0000: Local var 0: InfoManager/InfoMode
IL_0000: Local var 1: NetManager
IL_0000: Local var 2: System.Boolean
IL_0000: Local var 3: NetNode/Flags
IL_0000: Local var 4: System.UInt16
IL_0000: Local var 5: BuildingManager
IL_0000: Local var 6: NetNode/Flags
IL_0000: Local var 7: System.Int32
IL_0000: Local var 8: System.UInt16
IL_0000: // start original
IL_0000: call static InfoManager
ColossalFramework.Singleton`1<InfoManager>::get_instance()
IL_0005: callvirt InfoMode InfoManager::get_CurrentMode()
IL_000A: stloc.0
IL_000B: call static NetManager
ColossalFramework.Singleton`1<NetManager>::get_instance()
IL_0010: stloc.1
IL_0011: ldc.i4.0
IL_0012: stloc.2
IL_0013: ldloc.1
IL_0014: ldfld Array16`1<NetNode> NetManager::m_nodes
IL_0019: ldfld NetNode[] Array16`1<NetNode>::m_buffer
IL_001E: ldarg.1
IL_001F: ldelema NetNode
IL_0024: ldfld Flags NetNode::m_flags
IL_0029: stloc.3
IL_002A: ldloc.3
IL_002B: ldc.i4 1048576
IL_0030: and
IL_0031: brfalse => Label0
IL_0036: ldloc.1
IL_0037: ldfld Array16`1<NetNode> NetManager::m_nodes
IL_003C: ldfld NetNode[] Array16`1<NetNode>::m_buffer
IL_0041: ldarg.1
IL_0042: ldelema NetNode
IL_0047: dup
IL_0048: ldfld Flags NetNode::m_flags
IL_004D: ldc.i4 -1048577
IL_0052: and
IL_0053: stfld Flags NetNode::m_flags
IL_0058: br => Label10
IL_005D: Label0
IL_005D: ldloc.1
IL_005E: ldfld Array16`1<NetNode> NetManager::m_nodes
IL_0063: ldfld NetNode[] Array16`1<NetNode>::m_buffer
IL_0068: ldarg.1
IL_0069: ldelema NetNode
IL_006E: ldfld System.UInt16 NetNode::m_building
IL_0073: stloc.s 4 (System.UInt16)
IL_0075: ldloc.s 4 (System.UInt16)
IL_0077: brfalse => Label1
IL_007C: call static BuildingManager
ColossalFramework.Singleton`1<BuildingManager>::get_instance()
IL_0081: stloc.s 5 (BuildingManager)
IL_0083: ldloc.s 5 (BuildingManager)
IL_0085: ldfld Array16`1<Building> BuildingManager::m_buildings
IL_008A: ldfld Building[] Array16`1<Building>::m_buffer
IL_008F: ldloc.s 4 (System.UInt16)
IL_0091: ldelema Building
IL_0096: ldfld System.UInt16 Building::m_electricityBuffer
IL_009B: ldarg.2
IL_009C: beq => Label2
IL_00A1: ldloc.s 5 (BuildingManager)
IL_00A3: ldfld Array16`1<Building> BuildingManager::m_buildings
IL_00A8: ldfld Building[] Array16`1<Building>::m_buffer
IL_00AD: ldloc.s 4 (System.UInt16)
IL_00AF: ldelema Building
IL_00B4: ldarg.2
IL_00B5: conv.u2
IL_00B6: stfld System.UInt16 Building::m_electricityBuffer
IL_00BB: ldloc.0
IL_00BC: ldc.i4.1
IL_00BD: ceq
IL_00BF: stloc.2
IL_00C0: Label2
IL_00C0: ldloc.2
IL_00C1: brfalse => Label3
IL_00C6: ldloc.s 5 (BuildingManager)
IL_00C8: ldloc.s 4 (System.UInt16)
IL_00CA: callvirt System.Void BuildingManager::UpdateBuildingColors(System.UInt16
building)
IL_00CF: Label1
IL_00CF: Label3
IL_00CF: ldloc.3
IL_00D0: ldc.i4 -67108865
IL_00D5: and
IL_00D6: stloc.s 6 (NetNode+Flags)
IL_00D8: ldarg.2
IL_00D9: brfalse => Label4
IL_00DE: ldloc.s 6 (NetNode+Flags)
IL_00E0: ldc.i4 67108864
IL_00E5: or
IL_00E6: stloc.s 6 (NetNode+Flags)
IL_00E8: Label4
IL_00E8: ldloc.s 6 (NetNode+Flags)
IL_00EA: ldloc.3
IL_00EB: beq => Label5
IL_00F0: ldloc.1
IL_00F1: ldfld Array16`1<NetNode> NetManager::m_nodes
IL_00F6: ldfld NetNode[] Array16`1<NetNode>::m_buffer
IL_00FB: ldarg.1
IL_00FC: ldelema NetNode
IL_0101: ldloc.s 6 (NetNode+Flags)
IL_0103: stfld Flags NetNode::m_flags
IL_0108: ldloc.0
IL_0109: ldc.i4.1
IL_010A: ceq
IL_010C: stloc.2
IL_010D: Label5
IL_010D: ldloc.2
IL_010E: brfalse => Label6
IL_0113: ldloc.1
IL_0114: ldarg.1
IL_0115: conv.u2
IL_0116: callvirt System.Void NetManager::UpdateNodeColors(System.UInt16 node)
IL_011B: ldc.i4.0
IL_011C: stloc.s 7 (System.Int32)
IL_011E: br => Label7
IL_0123: Label9
IL_0123: ldloc.1
IL_0124: ldfld Array16`1<NetNode> NetManager::m_nodes
IL_0129: ldfld NetNode[] Array16`1<NetNode>::m_buffer
IL_012E: ldarg.1
IL_012F: ldelema NetNode
IL_0134: ldloc.s 7 (System.Int32)
IL_0136: call System.UInt16 NetNode::GetSegment(System.Int32 index)
IL_013B: stloc.s 8 (System.UInt16)
IL_013D: ldloc.s 8 (System.UInt16)
IL_013F: brfalse => Label8
IL_0144: ldloc.1
IL_0145: ldloc.s 8 (System.UInt16)
IL_0147: callvirt System.Void NetManager::UpdateSegmentColors(System.UInt16
segment)
IL_014C: Label8
IL_014C: ldloc.s 7 (System.Int32)
IL_014E: ldc.i4.1
IL_014F: add
IL_0150: stloc.s 7 (System.Int32)
IL_0152: Label7
IL_0152: ldloc.s 7 (System.Int32)
IL_0154: ldc.i4.8
IL_0155: blt => Label9
IL_015A: // end original
IL_015A: Label6
IL_015A: Label10
IL_015A: ret
DONE

### Patch: static System.Void PropInstance::RenderInstance(CameraInfo cameraInfo,


PropInfo info, InstanceID id, UnityEngine.Vector3 position, System.Single scale,
System.Single angle, UnityEngine.Color color, UnityEngine.Vector4 objectIndex,
System.Boolean active, UnityEngine.Texture heightMap, UnityEngine.Vector4
heightMapping, UnityEngine.Vector4 surfaceMapping, UnityEngine.Texture
waterHeightMap, UnityEngine.Vector4 waterHeightMapping, UnityEngine.Vector4
waterSurfaceMapping)
### Replacement: static System.Void
PropInstance::PropInstance.RenderInstance_Patch0(CameraInfo cameraInfo, PropInfo
info, InstanceID id, UnityEngine.Vector3 position, System.Single scale,
System.Single angle, UnityEngine.Color color, UnityEngine.Vector4 objectIndex,
System.Boolean active, UnityEngine.Texture heightMap, UnityEngine.Vector4
heightMapping, UnityEngine.Vector4 surfaceMapping, UnityEngine.Texture
waterHeightMap, UnityEngine.Vector4 waterHeightMapping, UnityEngine.Vector4
waterSurfaceMapping)
IL_0000: Local var 0: UnityEngine.Matrix4x4
IL_0000: Local var 1: System.Single
IL_0000: Local var 2: System.Int32
IL_0000: Local var 3: UnityEngine.Vector3
IL_0000: Local var 4: UnityEngine.Vector3
IL_0000: Local var 5: EffectInfo/SpawnArea
IL_0000: Local var 6: System.Single
IL_0000: Local var 7: LightSystem
IL_0000: Local var 8: ColossalFramework.Math.Randomizer
IL_0000: Local var 9: UnityEngine.Vector4
IL_0000: Local var 10: System.Single
IL_0000: Local var 11: System.Single
IL_0000: Local var 12: System.Single
IL_0000: Local var 13: UnityEngine.Matrix4x4
IL_0000: Local var 14: PropManager
IL_0000: Local var 15: UnityEngine.MaterialPropertyBlock
IL_0000: Local var 16: System.Int32
IL_0000: // start original
IL_0000: ldarg.1
IL_0001: ldfld System.Boolean PrefabInfo::m_prefabInitialized
IL_0006: brfalse => Label0
IL_000B: ldarg.1
IL_000C: ldfld System.Boolean PropInfo::m_hasEffects
IL_0011: brfalse => Label1
IL_0016: ldarg.s 8
IL_0018: brtrue => Label2
IL_001D: ldarg.1
IL_001E: ldfld System.Boolean PropInfo::m_alwaysActive
IL_0023: brfalse => Label3
IL_0028: Label2
IL_0028: ldloca.s 0 (UnityEngine.Matrix4x4)
IL_002A: initobj UnityEngine.Matrix4x4
IL_0030: ldloca.s 0 (UnityEngine.Matrix4x4)
IL_0032: ldarg.3
IL_0033: ldarg.s 5
IL_0035: ldc.r4 57.29578
IL_003A: mul
IL_003B: call static UnityEngine.Vector3 UnityEngine.Vector3::get_down()
IL_0040: call static UnityEngine.Quaternion
UnityEngine.Quaternion::AngleAxis(System.Single angle, UnityEngine.Vector3 axis)
IL_0045: ldarg.s 4
IL_0047: ldarg.s 4
IL_0049: ldarg.s 4
IL_004B: newobj System.Void UnityEngine.Vector3::.ctor(System.Single x,
System.Single y, System.Single z)
IL_0050: call System.Void UnityEngine.Matrix4x4::SetTRS(UnityEngine.Vector3
pos, UnityEngine.Quaternion q, UnityEngine.Vector3 s)
IL_0055: call static SimulationManager
ColossalFramework.Singleton`1<SimulationManager>::get_instance()
IL_005A: ldfld System.Single SimulationManager::m_simulationTimeDelta
IL_005F: stloc.1
IL_0060: ldc.i4.0
IL_0061: stloc.2
IL_0062: br => Label4
IL_0067: Label5
IL_0067: ldloca.s 0 (UnityEngine.Matrix4x4)
IL_0069: ldarg.1
IL_006A: ldfld Effect[] PropInfo::m_effects
IL_006F: ldloc.2
IL_0070: ldelema PropInfo+Effect
IL_0075: ldfld UnityEngine.Vector3 Effect::m_position
IL_007A: call UnityEngine.Vector3
UnityEngine.Matrix4x4::MultiplyPoint(UnityEngine.Vector3 v)
IL_007F: stloc.3
IL_0080: ldloca.s 0 (UnityEngine.Matrix4x4)
IL_0082: ldarg.1
IL_0083: ldfld Effect[] PropInfo::m_effects
IL_0088: ldloc.2
IL_0089: ldelema PropInfo+Effect
IL_008E: ldfld UnityEngine.Vector3 Effect::m_direction
IL_0093: call UnityEngine.Vector3
UnityEngine.Matrix4x4::MultiplyVector(UnityEngine.Vector3 v)
IL_0098: stloc.s 4 (UnityEngine.Vector3)
IL_009A: ldloca.s 5 (EffectInfo+SpawnArea)
IL_009C: ldloc.3
IL_009D: ldloc.s 4 (UnityEngine.Vector3)
IL_009F: ldc.r4 0
IL_00A4: call System.Void SpawnArea::.ctor(UnityEngine.Vector3 position,
UnityEngine.Vector3 direction, System.Single radius)
IL_00A9: ldarg.1
IL_00AA: ldfld Effect[] PropInfo::m_effects
IL_00AF: ldloc.2
IL_00B0: ldelema PropInfo+Effect
IL_00B5: ldfld EffectInfo Effect::m_effect
IL_00BA: ldarg.2
IL_00BB: ldloc.s 5 (EffectInfo+SpawnArea)
IL_00BD: call static UnityEngine.Vector3 UnityEngine.Vector3::get_zero()
IL_00C2: ldc.r4 0
IL_00C7: ldc.r4 1
IL_00CC: ldc.r4 -1
IL_00D1: ldloc.1
IL_00D2: ldarg.0
IL_00D3: callvirt virtual System.Void EffectInfo::RenderEffect(InstanceID id,
SpawnArea area, UnityEngine.Vector3 velocity, System.Single acceleration,
System.Single magnitude, System.Single timeOffset, System.Single timeDelta,
CameraInfo cameraInfo)
IL_00D8: ldloc.2
IL_00D9: ldc.i4.1
IL_00DA: add
IL_00DB: stloc.2
IL_00DC: Label4
IL_00DC: ldloc.2
IL_00DD: ldarg.1
IL_00DE: ldfld Effect[] PropInfo::m_effects
IL_00E3: ldlen
IL_00E4: conv.i4
IL_00E5: blt => Label5
IL_00EA: Label1
IL_00EA: Label3
IL_00EA: ldarg.1
IL_00EB: ldfld System.Boolean PropInfo::m_hasRenderer
IL_00F0: brfalse => Label6
IL_00F5: ldarg.0
IL_00F6: ldfld System.Int32 CameraInfo::m_layerMask
IL_00FB: ldc.i4.1
IL_00FC: ldarg.1
IL_00FD: ldfld System.Int32 PrefabInfo::m_prefabDataLayer
IL_0102: ldc.i4.s 31
IL_0104: and
IL_0105: shl
IL_0106: and
IL_0107: brfalse => Label7
IL_010C: call static InfoManager
ColossalFramework.Singleton`1<InfoManager>::get_instance()
IL_0111: callvirt InfoMode InfoManager::get_CurrentMode()
IL_0116: brtrue => Label8
IL_011B: ldc.r4 0
IL_0120: stloc.s 6 (System.Single)
IL_0122: ldarg.s 8
IL_0124: brtrue => Label9
IL_0129: ldarg.1
IL_012A: ldfld System.Boolean PropInfo::m_alwaysActive
IL_012F: brtrue => Label10
IL_0134: ldarga.s 7
IL_0136: ldc.r4 0
IL_013B: stfld System.Single UnityEngine.Vector4::z
IL_0140: br => Label11
IL_0145: Label9
IL_0145: Label10
IL_0145: ldarg.1
IL_0146: ldflda UnityEngine.Vector2 PropInfo::m_illuminationOffRange
IL_014B: ldfld System.Single UnityEngine.Vector2::x
IL_0150: ldc.r4 1000
IL_0155: blt => Label12
IL_015A: ldarg.1
IL_015B: ldfld BlinkType PropInfo::m_illuminationBlinkType
IL_0160: brfalse => Label13
IL_0165: Label12
IL_0165: call static RenderManager
ColossalFramework.Singleton`1<RenderManager>::get_instance()
IL_016A: callvirt LightSystem RenderManager::get_lightSystem()
IL_016F: stloc.s 7 (LightSystem)
IL_0171: ldloca.s 8 (ColossalFramework.Math.Randomizer)
IL_0173: ldarga.s 2
IL_0175: call System.UInt32 InstanceID::get_Index()
IL_017A: call System.Void
ColossalFramework.Math.Randomizer::.ctor(System.UInt32 _seed)
IL_017F: ldarg.1
IL_0180: ldflda UnityEngine.Vector2 PropInfo::m_illuminationOffRange
IL_0185: ldfld System.Single UnityEngine.Vector2::x
IL_018A: ldloca.s 8 (ColossalFramework.Math.Randomizer)
IL_018C: ldc.i4 100000
IL_0191: call System.Int32
ColossalFramework.Math.Randomizer::Int32(System.UInt32 range)
IL_0196: conv.r4
IL_0197: ldc.r4 1E-05
IL_019C: mul
IL_019D: ldarg.1
IL_019E: ldflda UnityEngine.Vector2 PropInfo::m_illuminationOffRange
IL_01A3: ldfld System.Single UnityEngine.Vector2::y
IL_01A8: ldarg.1
IL_01A9: ldflda UnityEngine.Vector2 PropInfo::m_illuminationOffRange
IL_01AE: ldfld System.Single UnityEngine.Vector2::x
IL_01B3: sub
IL_01B4: mul
IL_01B5: add
IL_01B6: stloc.s 6 (System.Single)
IL_01B8: ldarga.s 7
IL_01BA: ldloc.s 6 (System.Single)
IL_01BC: ldc.r4 0.01
IL_01C1: add
IL_01C2: ldloc.s 6 (System.Single)
IL_01C4: ldc.r4 0.01
IL_01C9: sub
IL_01CA: ldloc.s 7 (LightSystem)
IL_01CC: callvirt System.Single LightSystem::get_DayLightIntensity()
IL_01D1: call static System.Single MathUtils::SmoothStep(System.Single edge0,
System.Single edge1, System.Single x)
IL_01D6: stfld System.Single UnityEngine.Vector4::z
IL_01DB: ldarg.1
IL_01DC: ldfld BlinkType PropInfo::m_illuminationBlinkType
IL_01E1: brfalse => Label14
IL_01E6: ldarg.1
IL_01E7: ldfld BlinkType PropInfo::m_illuminationBlinkType
IL_01EC: call static UnityEngine.Vector4
LightEffect::GetBlinkVector(BlinkType type)
IL_01F1: stloc.s 9 (UnityEngine.Vector4)
IL_01F3: ldloc.s 6 (System.Single)
IL_01F5: ldc.r4 3.71
IL_01FA: mul
IL_01FB: call static SimulationManager
ColossalFramework.Singleton`1<SimulationManager>::get_instance()
IL_0200: ldfld System.Single SimulationManager::m_simulationTimer
IL_0205: ldloca.s 9 (UnityEngine.Vector4)
IL_0207: ldfld System.Single UnityEngine.Vector4::w
IL_020C: div
IL_020D: add
IL_020E: stloc.s 10 (System.Single)
IL_0210: ldloc.s 10 (System.Single)
IL_0212: ldloc.s 10 (System.Single)
IL_0214: call static System.Single UnityEngine.Mathf::Floor(System.Single f)
IL_0219: sub
IL_021A: ldloca.s 9 (UnityEngine.Vector4)
IL_021C: ldfld System.Single UnityEngine.Vector4::w
IL_0221: mul
IL_0222: stloc.s 10 (System.Single)
IL_0224: ldloca.s 9 (UnityEngine.Vector4)
IL_0226: ldfld System.Single UnityEngine.Vector4::x
IL_022B: ldloca.s 9 (UnityEngine.Vector4)
IL_022D: ldfld System.Single UnityEngine.Vector4::y
IL_0232: ldloc.s 10 (System.Single)
IL_0234: call static System.Single MathUtils::SmoothStep(System.Single edge0,
System.Single edge1, System.Single x)
IL_0239: stloc.s 11 (System.Single)
IL_023B: ldloca.s 9 (UnityEngine.Vector4)
IL_023D: ldfld System.Single UnityEngine.Vector4::w
IL_0242: ldloca.s 9 (UnityEngine.Vector4)
IL_0244: ldfld System.Single UnityEngine.Vector4::z
IL_0249: ldloc.s 10 (System.Single)
IL_024B: call static System.Single MathUtils::SmoothStep(System.Single edge0,
System.Single edge1, System.Single x)
IL_0250: stloc.s 12 (System.Single)
IL_0252: ldarga.s 7
IL_0254: dup
IL_0255: ldfld System.Single UnityEngine.Vector4::z
IL_025A: ldc.r4 1
IL_025F: ldloc.s 11 (System.Single)
IL_0261: ldloc.s 12 (System.Single)
IL_0263: mul
IL_0264: sub
IL_0265: mul
IL_0266: stfld System.Single UnityEngine.Vector4::z
IL_026B: Label14
IL_026B: br => Label15
IL_0270: Label13
IL_0270: ldarga.s 7
IL_0272: ldc.r4 1
IL_0277: stfld System.Single UnityEngine.Vector4::z
IL_027C: Label8
IL_027C: Label11
IL_027C: Label15
IL_027C: ldarg.0
IL_027D: brfalse => Label16
IL_0282: ldarg.0
IL_0283: ldarg.3
IL_0284: ldarg.1
IL_0285: ldfld System.Single PropInfo::m_lodRenderDistance
IL_028A: callvirt System.Boolean
CameraInfo::CheckRenderDistance(UnityEngine.Vector3 point, System.Single
maxDistance)
IL_028F: brfalse => Label17
IL_0294: Label16
IL_0294: ldloca.s 13 (UnityEngine.Matrix4x4)
IL_0296: initobj UnityEngine.Matrix4x4
IL_029C: ldloca.s 13 (UnityEngine.Matrix4x4)
IL_029E: ldarg.3
IL_029F: ldarg.s 5
IL_02A1: ldc.r4 57.29578
IL_02A6: mul
IL_02A7: call static UnityEngine.Vector3 UnityEngine.Vector3::get_down()
IL_02AC: call static UnityEngine.Quaternion
UnityEngine.Quaternion::AngleAxis(System.Single angle, UnityEngine.Vector3 axis)
IL_02B1: ldarg.s 4
IL_02B3: ldarg.s 4
IL_02B5: ldarg.s 4
IL_02B7: newobj System.Void UnityEngine.Vector3::.ctor(System.Single x,
System.Single y, System.Single z)
IL_02BC: call System.Void UnityEngine.Matrix4x4::SetTRS(UnityEngine.Vector3
pos, UnityEngine.Quaternion q, UnityEngine.Vector3 s)
IL_02C1: call static PropManager
ColossalFramework.Singleton`1<PropManager>::get_instance()
IL_02C6: stloc.s 14 (PropManager)
IL_02C8: ldloc.s 14 (PropManager)
IL_02CA: ldfld UnityEngine.MaterialPropertyBlock PropManager::m_materialBlock
IL_02CF: stloc.s 15 (UnityEngine.MaterialPropertyBlock)
IL_02D1: ldloc.s 15 (UnityEngine.MaterialPropertyBlock)
IL_02D3: callvirt System.Void UnityEngine.MaterialPropertyBlock::Clear()
IL_02D8: ldloc.s 15 (UnityEngine.MaterialPropertyBlock)
IL_02DA: ldloc.s 14 (PropManager)
IL_02DC: ldfld System.Int32 PropManager::ID_Color
IL_02E1: ldarg.s 6
IL_02E3: callvirt System.Void
UnityEngine.MaterialPropertyBlock::SetColor(System.Int32 nameID, UnityEngine.Color
value)
IL_02E8: ldloc.s 15 (UnityEngine.MaterialPropertyBlock)
IL_02EA: ldloc.s 14 (PropManager)
IL_02EC: ldfld System.Int32 PropManager::ID_HeightMap
IL_02F1: ldarg.s 9
IL_02F3: callvirt System.Void
UnityEngine.MaterialPropertyBlock::SetTexture(System.Int32 nameID,
UnityEngine.Texture value)
IL_02F8: ldloc.s 15 (UnityEngine.MaterialPropertyBlock)
IL_02FA: ldloc.s 14 (PropManager)
IL_02FC: ldfld System.Int32 PropManager::ID_HeightMapping
IL_0301: ldarg.s 10
IL_0303: callvirt System.Void
UnityEngine.MaterialPropertyBlock::SetVector(System.Int32 nameID,
UnityEngine.Vector4 value)
IL_0308: ldloc.s 15 (UnityEngine.MaterialPropertyBlock)
IL_030A: ldloc.s 14 (PropManager)
IL_030C: ldfld System.Int32 PropManager::ID_SurfaceMapping
IL_0311: ldarg.s 11
IL_0313: callvirt System.Void
UnityEngine.MaterialPropertyBlock::SetVector(System.Int32 nameID,
UnityEngine.Vector4 value)
IL_0318: ldloc.s 15 (UnityEngine.MaterialPropertyBlock)
IL_031A: ldloc.s 14 (PropManager)
IL_031C: ldfld System.Int32 PropManager::ID_ObjectIndex
IL_0321: ldarg.s 7
IL_0323: callvirt System.Void
UnityEngine.MaterialPropertyBlock::SetVector(System.Int32 nameID,
UnityEngine.Vector4 value)
IL_0328: ldloc.s 15 (UnityEngine.MaterialPropertyBlock)
IL_032A: ldloc.s 14 (PropManager)
IL_032C: ldfld System.Int32 PropManager::ID_WaterHeightMap
IL_0331: ldarg.s 12
IL_0333: callvirt System.Void
UnityEngine.MaterialPropertyBlock::SetTexture(System.Int32 nameID,
UnityEngine.Texture value)
IL_0338: ldloc.s 15 (UnityEngine.MaterialPropertyBlock)
IL_033A: ldloc.s 14 (PropManager)
IL_033C: ldfld System.Int32 PropManager::ID_WaterHeightMapping
IL_0341: ldarg.s 13
IL_0343: callvirt System.Void
UnityEngine.MaterialPropertyBlock::SetVector(System.Int32 nameID,
UnityEngine.Vector4 value)
IL_0348: ldloc.s 15 (UnityEngine.MaterialPropertyBlock)
IL_034A: ldloc.s 14 (PropManager)
IL_034C: ldfld System.Int32 PropManager::ID_WaterSurfaceMapping
IL_0351: ldarg.s 14
IL_0353: callvirt System.Void
UnityEngine.MaterialPropertyBlock::SetVector(System.Int32 nameID,
UnityEngine.Vector4 value)
IL_0358: ldarg.1
IL_0359: ldfld UnityEngine.Vector4[] PropInfo::m_rollLocation
IL_035E: brfalse => Label18
IL_0363: ldarg.1
IL_0364: ldfld UnityEngine.Material PropInfo::m_material
IL_0369: ldloc.s 14 (PropManager)
IL_036B: ldfld System.Int32 PropManager::ID_RollLocation
IL_0370: ldarg.1
IL_0371: ldfld UnityEngine.Vector4[] PropInfo::m_rollLocation
IL_0376: callvirt System.Void UnityEngine.Material::SetVectorArray(System.Int32
nameID, UnityEngine.Vector4[] values)
IL_037B: ldarg.1
IL_037C: ldfld UnityEngine.Material PropInfo::m_material
IL_0381: ldloc.s 14 (PropManager)
IL_0383: ldfld System.Int32 PropManager::ID_RollParams
IL_0388: ldarg.1
IL_0389: ldfld UnityEngine.Vector4[] PropInfo::m_rollParams
IL_038E: callvirt System.Void UnityEngine.Material::SetVectorArray(System.Int32
nameID, UnityEngine.Vector4[] values)
IL_0393: Label18
IL_0393: ldloc.s 14 (PropManager)
IL_0395: ldflda DrawCallData SimulationManagerBase`2<PropManager,
PropProperties>::m_drawCallData
IL_039A: dup
IL_039B: ldfld System.Int32 DrawCallData::m_defaultCalls
IL_03A0: ldc.i4.1
IL_03A1: add
IL_03A2: stfld System.Int32 DrawCallData::m_defaultCalls
IL_03A7: ldarg.1
IL_03A8: ldfld UnityEngine.Mesh PropInfo::m_mesh
IL_03AD: ldloc.s 13 (UnityEngine.Matrix4x4)
IL_03AF: ldarg.1
IL_03B0: ldfld UnityEngine.Material PropInfo::m_material
IL_03B5: ldarg.1
IL_03B6: ldfld System.Int32 PrefabInfo::m_prefabDataLayer
IL_03BB: ldnull
IL_03BC: ldc.i4.0
IL_03BD: ldloc.s 15 (UnityEngine.MaterialPropertyBlock)
IL_03BF: call static System.Void
UnityEngine.Graphics::DrawMesh(UnityEngine.Mesh mesh, UnityEngine.Matrix4x4 matrix,
UnityEngine.Material material, System.Int32 layer, UnityEngine.Camera camera,
System.Int32 submeshIndex, UnityEngine.MaterialPropertyBlock properties)
IL_03C4: br => Label19
IL_03C9: Label17
IL_03C9: ldarg.s 9
IL_03CB: ldarg.1
IL_03CC: ldfld UnityEngine.Texture PropInfo::m_lodHeightMap
IL_03D1: call static System.Boolean
UnityEngine.Object::op_Inequality(UnityEngine.Object x, UnityEngine.Object y)
IL_03D6: brtrue => Label20
IL_03DB: ldarg.s 12
IL_03DD: ldarg.1
IL_03DE: ldfld UnityEngine.Texture PropInfo::m_lodWaterHeightMap
IL_03E3: call static System.Boolean
UnityEngine.Object::op_Inequality(UnityEngine.Object x, UnityEngine.Object y)
IL_03E8: brfalse => Label21
IL_03ED: Label20
IL_03ED: ldarg.1
IL_03EE: ldfld System.Int32 PropInfo::m_lodCount
IL_03F3: brfalse => Label22
IL_03F8: ldarg.0
IL_03F9: ldarg.1
IL_03FA: call static System.Void PropInstance::RenderLod(CameraInfo
cameraInfo, PropInfo info)
IL_03FF: Label22
IL_03FF: ldarg.1
IL_0400: ldarg.s 9
IL_0402: stfld UnityEngine.Texture PropInfo::m_lodHeightMap
IL_0407: ldarg.1
IL_0408: ldarg.s 10
IL_040A: stfld UnityEngine.Vector4 PropInfo::m_lodHeightMapping
IL_040F: ldarg.1
IL_0410: ldarg.s 11
IL_0412: stfld UnityEngine.Vector4 PropInfo::m_lodSurfaceMapping
IL_0417: ldarg.1
IL_0418: ldarg.s 12
IL_041A: stfld UnityEngine.Texture PropInfo::m_lodWaterHeightMap
IL_041F: ldarg.1
IL_0420: ldarg.s 13
IL_0422: stfld UnityEngine.Vector4 PropInfo::m_lodWaterHeightMapping
IL_0427: ldarg.1
IL_0428: ldarg.s 14
IL_042A: stfld UnityEngine.Vector4 PropInfo::m_lodWaterSurfaceMapping
IL_042F: Label21
IL_042F: ldarga.s 7
IL_0431: ldarg.s 4
IL_0433: stfld System.Single UnityEngine.Vector4::w
IL_0438: ldarg.1
IL_0439: ldfld UnityEngine.Vector4[] PropInfo::m_lodLocations
IL_043E: ldarg.1
IL_043F: ldfld System.Int32 PropInfo::m_lodCount
IL_0444: ldelema UnityEngine.Vector4
IL_0449: ldarga.s 3
IL_044B: ldfld System.Single UnityEngine.Vector3::x
IL_0450: ldarga.s 3
IL_0452: ldfld System.Single UnityEngine.Vector3::y
IL_0457: ldarga.s 3
IL_0459: ldfld System.Single UnityEngine.Vector3::z
IL_045E: ldarg.s 5
IL_0460: newobj System.Void UnityEngine.Vector4::.ctor(System.Single x,
System.Single y, System.Single z, System.Single w)
IL_0465: stobj UnityEngine.Vector4
IL_046A: ldarg.1
IL_046B: ldfld UnityEngine.Vector4[] PropInfo::m_lodObjectIndices
IL_0470: ldarg.1
IL_0471: ldfld System.Int32 PropInfo::m_lodCount
IL_0476: ldelema UnityEngine.Vector4
IL_047B: ldarg.s 7
IL_047D: stobj UnityEngine.Vector4
IL_0482: ldarg.1
IL_0483: ldfld UnityEngine.Vector4[] PropInfo::m_lodColors
IL_0488: ldarg.1
IL_0489: ldfld System.Int32 PropInfo::m_lodCount
IL_048E: ldelema UnityEngine.Vector4
IL_0493: ldarga.s 6
IL_0495: call UnityEngine.Color UnityEngine.Color::get_linear()
IL_049A: call static UnityEngine.Vector4
UnityEngine.Color::op_Implicit(UnityEngine.Color c)
IL_049F: stobj UnityEngine.Vector4
IL_04A4: ldarg.1
IL_04A5: ldarg.1
IL_04A6: ldfld UnityEngine.Vector3 PropInfo::m_lodMin
IL_04AB: ldarg.3
IL_04AC: call static UnityEngine.Vector3
UnityEngine.Vector3::Min(UnityEngine.Vector3 lhs, UnityEngine.Vector3 rhs)
IL_04B1: stfld UnityEngine.Vector3 PropInfo::m_lodMin
IL_04B6: ldarg.1
IL_04B7: ldarg.1
IL_04B8: ldfld UnityEngine.Vector3 PropInfo::m_lodMax
IL_04BD: ldarg.3
IL_04BE: call static UnityEngine.Vector3
UnityEngine.Vector3::Max(UnityEngine.Vector3 lhs, UnityEngine.Vector3 rhs)
IL_04C3: stfld UnityEngine.Vector3 PropInfo::m_lodMax
IL_04C8: ldarg.1
IL_04C9: dup
IL_04CA: ldfld System.Int32 PropInfo::m_lodCount
IL_04CF: ldc.i4.1
IL_04D0: add
IL_04D1: dup
IL_04D2: stloc.s 16 (System.Int32)
IL_04D4: stfld System.Int32 PropInfo::m_lodCount
IL_04D9: ldloc.s 16 (System.Int32)
IL_04DB: ldarg.1
IL_04DC: ldfld UnityEngine.Vector4[] PropInfo::m_lodLocations
IL_04E1: ldlen
IL_04E2: conv.i4
IL_04E3: bne.un => Label23
IL_04E8: ldarg.0
IL_04E9: ldarg.1
IL_04EA: call static System.Void PropInstance::RenderLod(CameraInfo
cameraInfo, PropInfo info)
IL_04EF: // end original
IL_04EF: Label0
IL_04EF: Label6
IL_04EF: Label7
IL_04EF: Label19
IL_04EF: Label23
IL_04EF: ret
DONE

### Patch: static System.Void PropInstance::RenderInstance(CameraInfo cameraInfo,


PropInfo info, InstanceID id, UnityEngine.Vector3 position, System.Single scale,
System.Single angle, UnityEngine.Color color, UnityEngine.Vector4 objectIndex,
System.Boolean active)
### Replacement: static System.Void
PropInstance::PropInstance.RenderInstance_Patch0(CameraInfo cameraInfo, PropInfo
info, InstanceID id, UnityEngine.Vector3 position, System.Single scale,
System.Single angle, UnityEngine.Color color, UnityEngine.Vector4 objectIndex,
System.Boolean active)
IL_0000: Local var 0: UnityEngine.Matrix4x4
IL_0000: Local var 1: System.Single
IL_0000: Local var 2: System.Int32
IL_0000: Local var 3: UnityEngine.Vector3
IL_0000: Local var 4: UnityEngine.Vector3
IL_0000: Local var 5: EffectInfo/SpawnArea
IL_0000: Local var 6: System.Single
IL_0000: Local var 7: LightSystem
IL_0000: Local var 8: ColossalFramework.Math.Randomizer
IL_0000: Local var 9: UnityEngine.Vector4
IL_0000: Local var 10: System.Single
IL_0000: Local var 11: System.Single
IL_0000: Local var 12: System.Single
IL_0000: Local var 13: UnityEngine.Matrix4x4
IL_0000: Local var 14: PropManager
IL_0000: Local var 15: UnityEngine.MaterialPropertyBlock
IL_0000: Local var 16: UnityEngine.Matrix4x4
IL_0000: Local var 17: PropManager
IL_0000: Local var 18: UnityEngine.MaterialPropertyBlock
IL_0000: Local var 19: System.Int32
IL_0000: // start original
IL_0000: ldarg.1
IL_0001: ldfld System.Boolean PrefabInfo::m_prefabInitialized
IL_0006: brfalse => Label0
IL_000B: ldarg.1
IL_000C: ldfld System.Boolean PropInfo::m_hasEffects
IL_0011: brfalse => Label1
IL_0016: ldarg.s 8
IL_0018: brtrue => Label2
IL_001D: ldarg.1
IL_001E: ldfld System.Boolean PropInfo::m_alwaysActive
IL_0023: brfalse => Label3
IL_0028: Label2
IL_0028: ldloca.s 0 (UnityEngine.Matrix4x4)
IL_002A: initobj UnityEngine.Matrix4x4
IL_0030: ldloca.s 0 (UnityEngine.Matrix4x4)
IL_0032: ldarg.3
IL_0033: ldarg.s 5
IL_0035: ldc.r4 57.29578
IL_003A: mul
IL_003B: call static UnityEngine.Vector3 UnityEngine.Vector3::get_down()
IL_0040: call static UnityEngine.Quaternion
UnityEngine.Quaternion::AngleAxis(System.Single angle, UnityEngine.Vector3 axis)
IL_0045: ldarg.s 4
IL_0047: ldarg.s 4
IL_0049: ldarg.s 4
IL_004B: newobj System.Void UnityEngine.Vector3::.ctor(System.Single x,
System.Single y, System.Single z)
IL_0050: call System.Void UnityEngine.Matrix4x4::SetTRS(UnityEngine.Vector3
pos, UnityEngine.Quaternion q, UnityEngine.Vector3 s)
IL_0055: call static SimulationManager
ColossalFramework.Singleton`1<SimulationManager>::get_instance()
IL_005A: ldfld System.Single SimulationManager::m_simulationTimeDelta
IL_005F: stloc.1
IL_0060: ldc.i4.0
IL_0061: stloc.2
IL_0062: br => Label4
IL_0067: Label5
IL_0067: ldloca.s 0 (UnityEngine.Matrix4x4)
IL_0069: ldarg.1
IL_006A: ldfld Effect[] PropInfo::m_effects
IL_006F: ldloc.2
IL_0070: ldelema PropInfo+Effect
IL_0075: ldfld UnityEngine.Vector3 Effect::m_position
IL_007A: call UnityEngine.Vector3
UnityEngine.Matrix4x4::MultiplyPoint(UnityEngine.Vector3 v)
IL_007F: stloc.3
IL_0080: ldloca.s 0 (UnityEngine.Matrix4x4)
IL_0082: ldarg.1
IL_0083: ldfld Effect[] PropInfo::m_effects
IL_0088: ldloc.2
IL_0089: ldelema PropInfo+Effect
IL_008E: ldfld UnityEngine.Vector3 Effect::m_direction
IL_0093: call UnityEngine.Vector3
UnityEngine.Matrix4x4::MultiplyVector(UnityEngine.Vector3 v)
IL_0098: stloc.s 4 (UnityEngine.Vector3)
IL_009A: ldloca.s 5 (EffectInfo+SpawnArea)
IL_009C: ldloc.3
IL_009D: ldloc.s 4 (UnityEngine.Vector3)
IL_009F: ldc.r4 0
IL_00A4: call System.Void SpawnArea::.ctor(UnityEngine.Vector3 position,
UnityEngine.Vector3 direction, System.Single radius)
IL_00A9: ldarg.1
IL_00AA: ldfld Effect[] PropInfo::m_effects
IL_00AF: ldloc.2
IL_00B0: ldelema PropInfo+Effect
IL_00B5: ldfld EffectInfo Effect::m_effect
IL_00BA: ldarg.2
IL_00BB: ldloc.s 5 (EffectInfo+SpawnArea)
IL_00BD: call static UnityEngine.Vector3 UnityEngine.Vector3::get_zero()
IL_00C2: ldc.r4 0
IL_00C7: ldc.r4 1
IL_00CC: ldc.r4 -1
IL_00D1: ldloc.1
IL_00D2: ldarg.0
IL_00D3: callvirt virtual System.Void EffectInfo::RenderEffect(InstanceID id,
SpawnArea area, UnityEngine.Vector3 velocity, System.Single acceleration,
System.Single magnitude, System.Single timeOffset, System.Single timeDelta,
CameraInfo cameraInfo)
IL_00D8: ldloc.2
IL_00D9: ldc.i4.1
IL_00DA: add
IL_00DB: stloc.2
IL_00DC: Label4
IL_00DC: ldloc.2
IL_00DD: ldarg.1
IL_00DE: ldfld Effect[] PropInfo::m_effects
IL_00E3: ldlen
IL_00E4: conv.i4
IL_00E5: blt => Label5
IL_00EA: Label1
IL_00EA: Label3
IL_00EA: ldarg.1
IL_00EB: ldfld System.Boolean PropInfo::m_hasRenderer
IL_00F0: brfalse => Label6
IL_00F5: ldarg.0
IL_00F6: ldfld System.Int32 CameraInfo::m_layerMask
IL_00FB: ldc.i4.1
IL_00FC: ldarg.1
IL_00FD: ldfld System.Int32 PrefabInfo::m_prefabDataLayer
IL_0102: ldc.i4.s 31
IL_0104: and
IL_0105: shl
IL_0106: and
IL_0107: brfalse => Label7
IL_010C: call static InfoManager
ColossalFramework.Singleton`1<InfoManager>::get_instance()
IL_0111: callvirt InfoMode InfoManager::get_CurrentMode()
IL_0116: brtrue => Label8
IL_011B: ldc.r4 0
IL_0120: stloc.s 6 (System.Single)
IL_0122: ldarg.s 8
IL_0124: brtrue => Label9
IL_0129: ldarg.1
IL_012A: ldfld System.Boolean PropInfo::m_alwaysActive
IL_012F: brtrue => Label10
IL_0134: ldarga.s 7
IL_0136: ldc.r4 0
IL_013B: stfld System.Single UnityEngine.Vector4::z
IL_0140: br => Label11
IL_0145: Label9
IL_0145: Label10
IL_0145: ldarg.1
IL_0146: ldflda UnityEngine.Vector2 PropInfo::m_illuminationOffRange
IL_014B: ldfld System.Single UnityEngine.Vector2::x
IL_0150: ldc.r4 1000
IL_0155: blt => Label12
IL_015A: ldarg.1
IL_015B: ldfld BlinkType PropInfo::m_illuminationBlinkType
IL_0160: brfalse => Label13
IL_0165: Label12
IL_0165: call static RenderManager
ColossalFramework.Singleton`1<RenderManager>::get_instance()
IL_016A: callvirt LightSystem RenderManager::get_lightSystem()
IL_016F: stloc.s 7 (LightSystem)
IL_0171: ldloca.s 8 (ColossalFramework.Math.Randomizer)
IL_0173: ldarga.s 2
IL_0175: call System.UInt32 InstanceID::get_Index()
IL_017A: call System.Void
ColossalFramework.Math.Randomizer::.ctor(System.UInt32 _seed)
IL_017F: ldarg.1
IL_0180: ldflda UnityEngine.Vector2 PropInfo::m_illuminationOffRange
IL_0185: ldfld System.Single UnityEngine.Vector2::x
IL_018A: ldloca.s 8 (ColossalFramework.Math.Randomizer)
IL_018C: ldc.i4 100000
IL_0191: call System.Int32
ColossalFramework.Math.Randomizer::Int32(System.UInt32 range)
IL_0196: conv.r4
IL_0197: ldc.r4 1E-05
IL_019C: mul
IL_019D: ldarg.1
IL_019E: ldflda UnityEngine.Vector2 PropInfo::m_illuminationOffRange
IL_01A3: ldfld System.Single UnityEngine.Vector2::y
IL_01A8: ldarg.1
IL_01A9: ldflda UnityEngine.Vector2 PropInfo::m_illuminationOffRange
IL_01AE: ldfld System.Single UnityEngine.Vector2::x
IL_01B3: sub
IL_01B4: mul
IL_01B5: add
IL_01B6: stloc.s 6 (System.Single)
IL_01B8: ldarga.s 7
IL_01BA: ldloc.s 6 (System.Single)
IL_01BC: ldc.r4 0.01
IL_01C1: add
IL_01C2: ldloc.s 6 (System.Single)
IL_01C4: ldc.r4 0.01
IL_01C9: sub
IL_01CA: ldloc.s 7 (LightSystem)
IL_01CC: callvirt System.Single LightSystem::get_DayLightIntensity()
IL_01D1: call static System.Single MathUtils::SmoothStep(System.Single edge0,
System.Single edge1, System.Single x)
IL_01D6: stfld System.Single UnityEngine.Vector4::z
IL_01DB: ldarg.1
IL_01DC: ldfld BlinkType PropInfo::m_illuminationBlinkType
IL_01E1: brfalse => Label14
IL_01E6: ldarg.1
IL_01E7: ldfld BlinkType PropInfo::m_illuminationBlinkType
IL_01EC: call static UnityEngine.Vector4
LightEffect::GetBlinkVector(BlinkType type)
IL_01F1: stloc.s 9 (UnityEngine.Vector4)
IL_01F3: ldloc.s 6 (System.Single)
IL_01F5: ldc.r4 3.71
IL_01FA: mul
IL_01FB: call static SimulationManager
ColossalFramework.Singleton`1<SimulationManager>::get_instance()
IL_0200: ldfld System.Single SimulationManager::m_simulationTimer
IL_0205: ldloca.s 9 (UnityEngine.Vector4)
IL_0207: ldfld System.Single UnityEngine.Vector4::w
IL_020C: div
IL_020D: add
IL_020E: stloc.s 10 (System.Single)
IL_0210: ldloc.s 10 (System.Single)
IL_0212: ldloc.s 10 (System.Single)
IL_0214: call static System.Single UnityEngine.Mathf::Floor(System.Single f)
IL_0219: sub
IL_021A: ldloca.s 9 (UnityEngine.Vector4)
IL_021C: ldfld System.Single UnityEngine.Vector4::w
IL_0221: mul
IL_0222: stloc.s 10 (System.Single)
IL_0224: ldloca.s 9 (UnityEngine.Vector4)
IL_0226: ldfld System.Single UnityEngine.Vector4::x
IL_022B: ldloca.s 9 (UnityEngine.Vector4)
IL_022D: ldfld System.Single UnityEngine.Vector4::y
IL_0232: ldloc.s 10 (System.Single)
IL_0234: call static System.Single MathUtils::SmoothStep(System.Single edge0,
System.Single edge1, System.Single x)
IL_0239: stloc.s 11 (System.Single)
IL_023B: ldloca.s 9 (UnityEngine.Vector4)
IL_023D: ldfld System.Single UnityEngine.Vector4::w
IL_0242: ldloca.s 9 (UnityEngine.Vector4)
IL_0244: ldfld System.Single UnityEngine.Vector4::z
IL_0249: ldloc.s 10 (System.Single)
IL_024B: call static System.Single MathUtils::SmoothStep(System.Single edge0,
System.Single edge1, System.Single x)
IL_0250: stloc.s 12 (System.Single)
IL_0252: ldarga.s 7
IL_0254: dup
IL_0255: ldfld System.Single UnityEngine.Vector4::z
IL_025A: ldc.r4 1
IL_025F: ldloc.s 11 (System.Single)
IL_0261: ldloc.s 12 (System.Single)
IL_0263: mul
IL_0264: sub
IL_0265: mul
IL_0266: stfld System.Single UnityEngine.Vector4::z
IL_026B: Label14
IL_026B: br => Label15
IL_0270: Label13
IL_0270: ldarga.s 7
IL_0272: ldc.r4 1
IL_0277: stfld System.Single UnityEngine.Vector4::z
IL_027C: Label8
IL_027C: Label11
IL_027C: Label15
IL_027C: ldarg.0
IL_027D: brfalse => Label16
IL_0282: ldarg.0
IL_0283: ldarg.3
IL_0284: ldarg.1
IL_0285: ldfld System.Single PropInfo::m_lodRenderDistance
IL_028A: callvirt System.Boolean
CameraInfo::CheckRenderDistance(UnityEngine.Vector3 point, System.Single
maxDistance)
IL_028F: brfalse => Label17
IL_0294: Label16
IL_0294: ldloca.s 13 (UnityEngine.Matrix4x4)
IL_0296: initobj UnityEngine.Matrix4x4
IL_029C: ldloca.s 13 (UnityEngine.Matrix4x4)
IL_029E: ldarg.3
IL_029F: ldarg.s 5
IL_02A1: ldc.r4 57.29578
IL_02A6: mul
IL_02A7: call static UnityEngine.Vector3 UnityEngine.Vector3::get_down()
IL_02AC: call static UnityEngine.Quaternion
UnityEngine.Quaternion::AngleAxis(System.Single angle, UnityEngine.Vector3 axis)
IL_02B1: ldarg.s 4
IL_02B3: ldarg.s 4
IL_02B5: ldarg.s 4
IL_02B7: newobj System.Void UnityEngine.Vector3::.ctor(System.Single x,
System.Single y, System.Single z)
IL_02BC: call System.Void UnityEngine.Matrix4x4::SetTRS(UnityEngine.Vector3
pos, UnityEngine.Quaternion q, UnityEngine.Vector3 s)
IL_02C1: call static PropManager
ColossalFramework.Singleton`1<PropManager>::get_instance()
IL_02C6: stloc.s 14 (PropManager)
IL_02C8: ldloc.s 14 (PropManager)
IL_02CA: ldfld UnityEngine.MaterialPropertyBlock PropManager::m_materialBlock
IL_02CF: stloc.s 15 (UnityEngine.MaterialPropertyBlock)
IL_02D1: ldloc.s 15 (UnityEngine.MaterialPropertyBlock)
IL_02D3: callvirt System.Void UnityEngine.MaterialPropertyBlock::Clear()
IL_02D8: ldloc.s 15 (UnityEngine.MaterialPropertyBlock)
IL_02DA: ldloc.s 14 (PropManager)
IL_02DC: ldfld System.Int32 PropManager::ID_Color
IL_02E1: ldarg.s 6
IL_02E3: callvirt System.Void
UnityEngine.MaterialPropertyBlock::SetColor(System.Int32 nameID, UnityEngine.Color
value)
IL_02E8: ldloc.s 15 (UnityEngine.MaterialPropertyBlock)
IL_02EA: ldloc.s 14 (PropManager)
IL_02EC: ldfld System.Int32 PropManager::ID_ObjectIndex
IL_02F1: ldarg.s 7
IL_02F3: callvirt System.Void
UnityEngine.MaterialPropertyBlock::SetVector(System.Int32 nameID,
UnityEngine.Vector4 value)
IL_02F8: ldarg.1
IL_02F9: ldfld UnityEngine.Vector4[] PropInfo::m_rollLocation
IL_02FE: brfalse => Label18
IL_0303: ldarg.1
IL_0304: ldfld UnityEngine.Material PropInfo::m_material
IL_0309: ldloc.s 14 (PropManager)
IL_030B: ldfld System.Int32 PropManager::ID_RollLocation
IL_0310: ldarg.1
IL_0311: ldfld UnityEngine.Vector4[] PropInfo::m_rollLocation
IL_0316: callvirt System.Void UnityEngine.Material::SetVectorArray(System.Int32
nameID, UnityEngine.Vector4[] values)
IL_031B: ldarg.1
IL_031C: ldfld UnityEngine.Material PropInfo::m_material
IL_0321: ldloc.s 14 (PropManager)
IL_0323: ldfld System.Int32 PropManager::ID_RollParams
IL_0328: ldarg.1
IL_0329: ldfld UnityEngine.Vector4[] PropInfo::m_rollParams
IL_032E: callvirt System.Void UnityEngine.Material::SetVectorArray(System.Int32
nameID, UnityEngine.Vector4[] values)
IL_0333: Label18
IL_0333: ldloc.s 14 (PropManager)
IL_0335: ldflda DrawCallData SimulationManagerBase`2<PropManager,
PropProperties>::m_drawCallData
IL_033A: dup
IL_033B: ldfld System.Int32 DrawCallData::m_defaultCalls
IL_0340: ldc.i4.1
IL_0341: add
IL_0342: stfld System.Int32 DrawCallData::m_defaultCalls
IL_0347: ldarg.1
IL_0348: ldfld UnityEngine.Mesh PropInfo::m_mesh
IL_034D: ldloc.s 13 (UnityEngine.Matrix4x4)
IL_034F: ldarg.1
IL_0350: ldfld UnityEngine.Material PropInfo::m_material
IL_0355: ldarg.1
IL_0356: ldfld System.Int32 PrefabInfo::m_prefabDataLayer
IL_035B: ldnull
IL_035C: ldc.i4.0
IL_035D: ldloc.s 15 (UnityEngine.MaterialPropertyBlock)
IL_035F: call static System.Void
UnityEngine.Graphics::DrawMesh(UnityEngine.Mesh mesh, UnityEngine.Matrix4x4 matrix,
UnityEngine.Material material, System.Int32 layer, UnityEngine.Camera camera,
System.Int32 submeshIndex, UnityEngine.MaterialPropertyBlock properties)
IL_0364: br => Label19
IL_0369: Label17
IL_0369: ldarg.1
IL_036A: ldfld UnityEngine.Material PropInfo::m_lodMaterialCombined
IL_036F: ldnull
IL_0370: call static System.Boolean
UnityEngine.Object::op_Equality(UnityEngine.Object x, UnityEngine.Object y)
IL_0375: brfalse => Label20
IL_037A: ldloca.s 16 (UnityEngine.Matrix4x4)
IL_037C: initobj UnityEngine.Matrix4x4
IL_0382: ldloca.s 16 (UnityEngine.Matrix4x4)
IL_0384: ldarg.3
IL_0385: ldarg.s 5
IL_0387: ldc.r4 57.29578
IL_038C: mul
IL_038D: call static UnityEngine.Vector3 UnityEngine.Vector3::get_down()
IL_0392: call static UnityEngine.Quaternion
UnityEngine.Quaternion::AngleAxis(System.Single angle, UnityEngine.Vector3 axis)
IL_0397: ldarg.s 4
IL_0399: ldarg.s 4
IL_039B: ldarg.s 4
IL_039D: newobj System.Void UnityEngine.Vector3::.ctor(System.Single x,
System.Single y, System.Single z)
IL_03A2: call System.Void UnityEngine.Matrix4x4::SetTRS(UnityEngine.Vector3
pos, UnityEngine.Quaternion q, UnityEngine.Vector3 s)
IL_03A7: call static PropManager
ColossalFramework.Singleton`1<PropManager>::get_instance()
IL_03AC: stloc.s 17 (PropManager)
IL_03AE: ldloc.s 17 (PropManager)
IL_03B0: ldfld UnityEngine.MaterialPropertyBlock PropManager::m_materialBlock
IL_03B5: stloc.s 18 (UnityEngine.MaterialPropertyBlock)
IL_03B7: ldloc.s 18 (UnityEngine.MaterialPropertyBlock)
IL_03B9: callvirt System.Void UnityEngine.MaterialPropertyBlock::Clear()
IL_03BE: ldloc.s 18 (UnityEngine.MaterialPropertyBlock)
IL_03C0: ldloc.s 17 (PropManager)
IL_03C2: ldfld System.Int32 PropManager::ID_Color
IL_03C7: ldarg.s 6
IL_03C9: callvirt System.Void
UnityEngine.MaterialPropertyBlock::SetColor(System.Int32 nameID, UnityEngine.Color
value)
IL_03CE: ldloc.s 18 (UnityEngine.MaterialPropertyBlock)
IL_03D0: ldloc.s 17 (PropManager)
IL_03D2: ldfld System.Int32 PropManager::ID_ObjectIndex
IL_03D7: ldarg.s 7
IL_03D9: callvirt System.Void
UnityEngine.MaterialPropertyBlock::SetVector(System.Int32 nameID,
UnityEngine.Vector4 value)
IL_03DE: ldarg.1
IL_03DF: ldfld UnityEngine.Vector4[] PropInfo::m_rollLocation
IL_03E4: brfalse => Label21
IL_03E9: ldarg.1
IL_03EA: ldfld UnityEngine.Material PropInfo::m_material
IL_03EF: ldloc.s 17 (PropManager)
IL_03F1: ldfld System.Int32 PropManager::ID_RollLocation
IL_03F6: ldarg.1
IL_03F7: ldfld UnityEngine.Vector4[] PropInfo::m_rollLocation
IL_03FC: callvirt System.Void UnityEngine.Material::SetVectorArray(System.Int32
nameID, UnityEngine.Vector4[] values)
IL_0401: ldarg.1
IL_0402: ldfld UnityEngine.Material PropInfo::m_material
IL_0407: ldloc.s 17 (PropManager)
IL_0409: ldfld System.Int32 PropManager::ID_RollParams
IL_040E: ldarg.1
IL_040F: ldfld UnityEngine.Vector4[] PropInfo::m_rollParams
IL_0414: callvirt System.Void UnityEngine.Material::SetVectorArray(System.Int32
nameID, UnityEngine.Vector4[] values)
IL_0419: Label21
IL_0419: ldloc.s 17 (PropManager)
IL_041B: ldflda DrawCallData SimulationManagerBase`2<PropManager,
PropProperties>::m_drawCallData
IL_0420: dup
IL_0421: ldfld System.Int32 DrawCallData::m_defaultCalls
IL_0426: ldc.i4.1
IL_0427: add
IL_0428: stfld System.Int32 DrawCallData::m_defaultCalls
IL_042D: ldarg.1
IL_042E: ldfld UnityEngine.Mesh PropInfo::m_lodMesh
IL_0433: ldloc.s 16 (UnityEngine.Matrix4x4)
IL_0435: ldarg.1
IL_0436: ldfld UnityEngine.Material PropInfo::m_lodMaterial
IL_043B: ldarg.1
IL_043C: ldfld System.Int32 PrefabInfo::m_prefabDataLayer
IL_0441: ldnull
IL_0442: ldc.i4.0
IL_0443: ldloc.s 18 (UnityEngine.MaterialPropertyBlock)
IL_0445: call static System.Void
UnityEngine.Graphics::DrawMesh(UnityEngine.Mesh mesh, UnityEngine.Matrix4x4 matrix,
UnityEngine.Material material, System.Int32 layer, UnityEngine.Camera camera,
System.Int32 submeshIndex, UnityEngine.MaterialPropertyBlock properties)
IL_044A: br => Label22
IL_044F: Label20
IL_044F: ldarga.s 7
IL_0451: ldarg.s 4
IL_0453: stfld System.Single UnityEngine.Vector4::w
IL_0458: ldarg.1
IL_0459: ldfld UnityEngine.Vector4[] PropInfo::m_lodLocations
IL_045E: ldarg.1
IL_045F: ldfld System.Int32 PropInfo::m_lodCount
IL_0464: ldelema UnityEngine.Vector4
IL_0469: ldarga.s 3
IL_046B: ldfld System.Single UnityEngine.Vector3::x
IL_0470: ldarga.s 3
IL_0472: ldfld System.Single UnityEngine.Vector3::y
IL_0477: ldarga.s 3
IL_0479: ldfld System.Single UnityEngine.Vector3::z
IL_047E: ldarg.s 5
IL_0480: newobj System.Void UnityEngine.Vector4::.ctor(System.Single x,
System.Single y, System.Single z, System.Single w)
IL_0485: stobj UnityEngine.Vector4
IL_048A: ldarg.1
IL_048B: ldfld UnityEngine.Vector4[] PropInfo::m_lodObjectIndices
IL_0490: ldarg.1
IL_0491: ldfld System.Int32 PropInfo::m_lodCount
IL_0496: ldelema UnityEngine.Vector4
IL_049B: ldarg.s 7
IL_049D: stobj UnityEngine.Vector4
IL_04A2: ldarg.1
IL_04A3: ldfld UnityEngine.Vector4[] PropInfo::m_lodColors
IL_04A8: ldarg.1
IL_04A9: ldfld System.Int32 PropInfo::m_lodCount
IL_04AE: ldelema UnityEngine.Vector4
IL_04B3: ldarga.s 6
IL_04B5: call UnityEngine.Color UnityEngine.Color::get_linear()
IL_04BA: call static UnityEngine.Vector4
UnityEngine.Color::op_Implicit(UnityEngine.Color c)
IL_04BF: stobj UnityEngine.Vector4
IL_04C4: ldarg.1
IL_04C5: ldarg.1
IL_04C6: ldfld UnityEngine.Vector3 PropInfo::m_lodMin
IL_04CB: ldarg.3
IL_04CC: call static UnityEngine.Vector3
UnityEngine.Vector3::Min(UnityEngine.Vector3 lhs, UnityEngine.Vector3 rhs)
IL_04D1: stfld UnityEngine.Vector3 PropInfo::m_lodMin
IL_04D6: ldarg.1
IL_04D7: ldarg.1
IL_04D8: ldfld UnityEngine.Vector3 PropInfo::m_lodMax
IL_04DD: ldarg.3
IL_04DE: call static UnityEngine.Vector3
UnityEngine.Vector3::Max(UnityEngine.Vector3 lhs, UnityEngine.Vector3 rhs)
IL_04E3: stfld UnityEngine.Vector3 PropInfo::m_lodMax
IL_04E8: ldarg.1
IL_04E9: dup
IL_04EA: ldfld System.Int32 PropInfo::m_lodCount
IL_04EF: ldc.i4.1
IL_04F0: add
IL_04F1: dup
IL_04F2: stloc.s 19 (System.Int32)
IL_04F4: stfld System.Int32 PropInfo::m_lodCount
IL_04F9: ldloc.s 19 (System.Int32)
IL_04FB: ldarg.1
IL_04FC: ldfld UnityEngine.Vector4[] PropInfo::m_lodLocations
IL_0501: ldlen
IL_0502: conv.i4
IL_0503: bne.un => Label23
IL_0508: ldarg.0
IL_0509: ldarg.1
IL_050A: call static System.Void PropInstance::RenderLod(CameraInfo
cameraInfo, PropInfo info)
IL_050F: // end original
IL_050F: Label0
IL_050F: Label6
IL_050F: Label7
IL_050F: Label19
IL_050F: Label22
IL_050F: Label23
IL_050F: ret
DONE

### Patch: virtual System.Void LightEffect::PopulateGroupData(System.Int32 layer,


InstanceID id, UnityEngine.Vector3 pos, UnityEngine.Vector3 dir, 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
LightEffect::LightEffect.PopulateGroupData_Patch0(LightEffect this, System.Int32
layer, InstanceID id, UnityEngine.Vector3 pos, UnityEngine.Vector3 dir,
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.Boolean
IL_0000: Local var 1: UnityEngine.Vector3
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.Quaternion
IL_0000: Local var 7: UnityEngine.Vector4
IL_0000: Local var 8: UnityEngine.Vector2
IL_0000: Local var 9: ColossalFramework.Math.Randomizer
IL_0000: Local var 10: UnityEngine.Vector2
IL_0000: Local var 11: UnityEngine.Vector2
IL_0000: Local var 12: UnityEngine.Vector2
IL_0000: Local var 13: System.UInt16
IL_0000: Local var 14: UnityEngine.Vector3
IL_0000: Local var 15: UnityEngine.Color
IL_0000: Local var 16: UnityEngine.Color
IL_0000: Local var 17: System.Single
IL_0000: Local var 18: System.Single
IL_0000: Local var 19: System.Int32
IL_0000: // start original
IL_0000: ldarg.1
IL_0001: ldarg.0
IL_0002: ldfld System.Int32 LightEffect::m_groupLayer
IL_0007: beq => Label0
IL_000C: ldarg.1
IL_000D: ldarg.0
IL_000E: ldfld System.Int32 LightEffect::m_groupLayerFloating
IL_0013: bne.un => Label1
IL_0018: Label0
IL_0018: ldarg.1
IL_0019: ldarg.0
IL_001A: ldfld System.Int32 LightEffect::m_groupLayerFloating
IL_001F: ceq
IL_0021: stloc.0
IL_0022: ldloca.s 1 (UnityEngine.Vector3)
IL_0024: ldarg.0
IL_0025: ldfld System.Single LightEffect::m_lightRange
IL_002A: ldarg.0
IL_002B: ldfld System.Single LightEffect::m_lightRange
IL_0030: ldarg.0
IL_0031: ldfld System.Single LightEffect::m_lightRange
IL_0036: call System.Void UnityEngine.Vector3::.ctor(System.Single x,
System.Single y, System.Single z)
IL_003B: ldarg.3
IL_003C: ldloc.1
IL_003D: call static UnityEngine.Vector3
UnityEngine.Vector3::op_Subtraction(UnityEngine.Vector3 a, UnityEngine.Vector3 b)
IL_0042: stloc.2
IL_0043: ldarg.3
IL_0044: ldloc.1
IL_0045: call static UnityEngine.Vector3
UnityEngine.Vector3::op_Addition(UnityEngine.Vector3 a, UnityEngine.Vector3 b)
IL_004A: stloc.3
IL_004B: ldarg.s 9
IL_004D: ldarg.s 9
IL_004F: ldobj UnityEngine.Vector3
IL_0054: ldloc.2
IL_0055: call static UnityEngine.Vector3
UnityEngine.Vector3::Min(UnityEngine.Vector3 lhs, UnityEngine.Vector3 rhs)
IL_005A: stobj UnityEngine.Vector3
IL_005F: ldarg.s 10
IL_0061: ldarg.s 10
IL_0063: ldobj UnityEngine.Vector3
IL_0068: ldloc.3
IL_0069: call static UnityEngine.Vector3
UnityEngine.Vector3::Max(UnityEngine.Vector3 lhs, UnityEngine.Vector3 rhs)
IL_006E: stobj UnityEngine.Vector3
IL_0073: ldarg.3
IL_0074: ldarg.s 7
IL_0076: call static UnityEngine.Vector3
UnityEngine.Vector3::op_Subtraction(UnityEngine.Vector3 a, UnityEngine.Vector3 b)
IL_007B: stloc.s 4 (UnityEngine.Vector3)
IL_007D: ldarg.s 11
IL_007F: ldarg.s 11
IL_0081: ldind.r4
IL_0082: ldc.r4 30000
IL_0087: call static System.Single UnityEngine.Mathf::Max(System.Single a,
System.Single b)
IL_008C: stind.r4
IL_008D: ldarg.0
IL_008E: ldfld UnityEngine.LightType LightEffect::m_lightType
IL_0093: brtrue => Label2
IL_0098: ldarg.s 4
IL_009A: call static UnityEngine.Quaternion
UnityEngine.Quaternion::LookRotation(UnityEngine.Vector3 forward)
IL_009F: stloc.s 6 (UnityEngine.Quaternion)
IL_00A1: ldloc.s 6 (UnityEngine.Quaternion)
IL_00A3: ldarg.0
IL_00A4: ldfld UnityEngine.Quaternion LightEffect::m_lightRotation
IL_00A9: call static UnityEngine.Vector3 UnityEngine.Vector3::get_forward()
IL_00AE: call static UnityEngine.Vector3
UnityEngine.Quaternion::op_Multiply(UnityEngine.Quaternion rotation,
UnityEngine.Vector3 point)
IL_00B3: call static UnityEngine.Vector3
UnityEngine.Quaternion::op_Multiply(UnityEngine.Quaternion rotation,
UnityEngine.Vector3 point)
IL_00B8: stloc.s 5 (UnityEngine.Vector3)
IL_00BA: br => Label3
IL_00BF: Label2
IL_00BF: call static UnityEngine.Vector3 UnityEngine.Vector3::get_forward()
IL_00C4: stloc.s 5 (UnityEngine.Vector3)
IL_00C6: Label3
IL_00C6: ldloca.s 7 (UnityEngine.Vector4)
IL_00C8: ldloca.s 5 (UnityEngine.Vector3)
IL_00CA: ldfld System.Single UnityEngine.Vector3::x
IL_00CF: ldloca.s 5 (UnityEngine.Vector3)
IL_00D1: ldfld System.Single UnityEngine.Vector3::y
IL_00D6: ldloca.s 5 (UnityEngine.Vector3)
IL_00D8: ldfld System.Single UnityEngine.Vector3::z
IL_00DD: ldc.r4 100000
IL_00E2: call System.Void UnityEngine.Vector4::.ctor(System.Single x,
System.Single y, System.Single z, System.Single w)
IL_00E7: ldarg.0
IL_00E8: ldfld UnityEngine.LightType LightEffect::m_lightType
IL_00ED: brtrue => Label4
IL_00F2: ldloca.s 7 (UnityEngine.Vector4)
IL_00F4: ldc.r4 0.01745329
IL_00F9: ldarg.0
IL_00FA: ldfld System.Single LightEffect::m_lightSpotAngle
IL_00FF: mul
IL_0100: ldc.r4 0.5
IL_0105: mul
IL_0106: call static System.Single UnityEngine.Mathf::Cos(System.Single f)
IL_010B: neg
IL_010C: stfld System.Single UnityEngine.Vector4::w
IL_0111: Label4
IL_0111: ldloca.s 8 (UnityEngine.Vector2)
IL_0113: ldc.r4 1
IL_0118: ldarg.0
IL_0119: ldfld System.Single LightEffect::m_lightRange
IL_011E: ldarg.0
IL_011F: ldfld System.Single LightEffect::m_lightRange
IL_0124: mul
IL_0125: div
IL_0126: ldarg.0
IL_0127: ldfld System.Single LightEffect::m_lightIntensity
IL_012C: call System.Void UnityEngine.Vector2::.ctor(System.Single x,
System.Single y)
IL_0131: ldloca.s 9 (ColossalFramework.Math.Randomizer)
IL_0133: ldarga.s 2
IL_0135: call System.UInt32 InstanceID::get_Index()
IL_013A: call System.Void
ColossalFramework.Math.Randomizer::.ctor(System.UInt32 _seed)
IL_013F: ldloca.s 10 (UnityEngine.Vector2)
IL_0141: ldarg.0
IL_0142: ldflda UnityEngine.Vector2 LightEffect::m_offRange
IL_0147: ldfld System.Single UnityEngine.Vector2::x
IL_014C: ldloca.s 9 (ColossalFramework.Math.Randomizer)
IL_014E: ldc.i4 100000
IL_0153: call System.Int32
ColossalFramework.Math.Randomizer::Int32(System.UInt32 range)
IL_0158: conv.r4
IL_0159: ldc.r4 1E-05
IL_015E: mul
IL_015F: ldarg.0
IL_0160: ldflda UnityEngine.Vector2 LightEffect::m_offRange
IL_0165: ldfld System.Single UnityEngine.Vector2::y
IL_016A: ldarg.0
IL_016B: ldflda UnityEngine.Vector2 LightEffect::m_offRange
IL_0170: ldfld System.Single UnityEngine.Vector2::x
IL_0175: sub
IL_0176: mul
IL_0177: add
IL_0178: stfld System.Single UnityEngine.Vector2::x
IL_017D: ldloca.s 10 (UnityEngine.Vector2)
IL_017F: ldarg.0
IL_0180: ldfld BlinkType LightEffect::m_blinkType
IL_0185: conv.r4
IL_0186: stfld System.Single UnityEngine.Vector2::y
IL_018B: ldarg.2
IL_018C: call static System.UInt16 EffectInfo::GetBuilding(InstanceID id)
IL_0191: stloc.s 13 (System.UInt16)
IL_0193: ldloc.s 13 (System.UInt16)
IL_0195: brfalse => Label5
IL_019A: ldloc.s 13 (System.UInt16)
IL_019C: call static UnityEngine.Vector4
RenderManager::GetColorLocation(System.UInt32 instanceHolder)
IL_01A1: call static UnityEngine.Vector2
UnityEngine.Vector4::op_Implicit(UnityEngine.Vector4 v)
IL_01A6: stloc.s 11 (UnityEngine.Vector2)
IL_01A8: ldloc.0
IL_01A9: brfalse => Label6
IL_01AE: call static BuildingManager
ColossalFramework.Singleton`1<BuildingManager>::get_instance()
IL_01B3: ldfld Array16`1<Building> BuildingManager::m_buildings
IL_01B8: ldfld Building[] Array16`1<Building>::m_buffer
IL_01BD: ldloc.s 13 (System.UInt16)
IL_01BF: ldelema Building
IL_01C4: call UnityEngine.Vector3 Building::CalculateMeshPosition()
IL_01C9: stloc.s 14 (UnityEngine.Vector3)
IL_01CB: ldloc.s 14 (UnityEngine.Vector3)
IL_01CD: call static UnityEngine.Vector2
ColossalFramework.Math.VectorUtils::XZ(UnityEngine.Vector3 v)
IL_01D2: stloc.s 12 (UnityEngine.Vector2)
IL_01D4: ldarga.s 3
IL_01D6: dup
IL_01D7: ldfld System.Single UnityEngine.Vector3::y
IL_01DC: ldloca.s 14 (UnityEngine.Vector3)
IL_01DE: ldfld System.Single UnityEngine.Vector3::y
IL_01E3: sub
IL_01E4: stfld System.Single UnityEngine.Vector3::y
IL_01E9: ldloca.s 4 (UnityEngine.Vector3)
IL_01EB: dup
IL_01EC: ldfld System.Single UnityEngine.Vector3::y
IL_01F1: ldloca.s 14 (UnityEngine.Vector3)
IL_01F3: ldfld System.Single UnityEngine.Vector3::y
IL_01F8: sub
IL_01F9: stfld System.Single UnityEngine.Vector3::y
IL_01FE: br => Label7
IL_0203: Label6
IL_0203: call static UnityEngine.Vector2 UnityEngine.Vector2::get_zero()
IL_0208: stloc.s 12 (UnityEngine.Vector2)
IL_020A: Label7
IL_020A: br => Label8
IL_020F: Label5
IL_020F: ldsfld UnityEngine.Vector4 RenderManager::DefaultColorLocation
IL_0214: call static UnityEngine.Vector2
UnityEngine.Vector4::op_Implicit(UnityEngine.Vector4 v)
IL_0219: stloc.s 11 (UnityEngine.Vector2)
IL_021B: call static UnityEngine.Vector2 UnityEngine.Vector2::get_zero()
IL_0220: stloc.s 12 (UnityEngine.Vector2)
IL_0222: Label8
IL_0222: ldarg.0
IL_0223: ldfld UnityEngine.Color LightEffect::m_lightColor
IL_0228: stloc.s 15 (UnityEngine.Color)
IL_022A: ldarg.0
IL_022B: ldfld UnityEngine.Color[] LightEffect::m_variationColors
IL_0230: brfalse => Label9
IL_0235: ldarg.0
IL_0236: ldfld UnityEngine.Color[] LightEffect::m_variationColors
IL_023B: ldlen
IL_023C: conv.i4
IL_023D: brfalse => Label10
IL_0242: ldarg.0
IL_0243: ldfld UnityEngine.Color[] LightEffect::m_variationColors
IL_0248: ldloca.s 9 (ColossalFramework.Math.Randomizer)
IL_024A: ldarg.0
IL_024B: ldfld UnityEngine.Color[] LightEffect::m_variationColors
IL_0250: ldlen
IL_0251: conv.i4
IL_0252: call System.Int32
ColossalFramework.Math.Randomizer::Int32(System.UInt32 range)
IL_0257: ldelema UnityEngine.Color
IL_025C: ldobj UnityEngine.Color
IL_0261: stloc.s 16 (UnityEngine.Color)
IL_0263: ldloc.s 15 (UnityEngine.Color)
IL_0265: ldloc.s 16 (UnityEngine.Color)
IL_0267: ldloca.s 9 (ColossalFramework.Math.Randomizer)
IL_0269: ldc.i4 1000
IL_026E: call System.Int32
ColossalFramework.Math.Randomizer::Int32(System.UInt32 range)
IL_0273: conv.r4
IL_0274: ldc.r4 0.001
IL_0279: mul
IL_027A: call static UnityEngine.Color
UnityEngine.Color::Lerp(UnityEngine.Color a, UnityEngine.Color b, System.Single t)
IL_027F: stloc.s 15 (UnityEngine.Color)
IL_0281: Label9
IL_0281: Label10
IL_0281: ldloca.s 15 (UnityEngine.Color)
IL_0283: call UnityEngine.Color UnityEngine.Color::get_linear()
IL_0288: stloc.s 15 (UnityEngine.Color)
IL_028A: ldloca.s 15 (UnityEngine.Color)
IL_028C: ldarg.0
IL_028D: ldfld UnityEngine.LightType LightEffect::m_lightType
IL_0292: brtrue => Label11
IL_0297: ldarg.0
IL_0298: ldfld System.Single LightEffect::m_spotLeaking
IL_029D: br => Label12
IL_02A2: Label11
IL_02A2: ldc.r4 0
IL_02A7: Label12
IL_02A7: stfld System.Single UnityEngine.Color::a
IL_02AC: ldarg.0
IL_02AD: ldfld System.Single LightEffect::m_lightRange
IL_02B2: ldc.r4 0.5235988
IL_02B7: call static System.Single UnityEngine.Mathf::Cos(System.Single f)
IL_02BC: div
IL_02BD: stloc.s 17 (System.Single)
IL_02BF: ldloc.s 17 (System.Single)
IL_02C1: ldc.r4 0.5
IL_02C6: mul
IL_02C7: stloc.s 18 (System.Single)
IL_02C9: ldarg.s 8
IL_02CB: ldfld UnityEngine.Vector3[] MeshData::m_vertices
IL_02D0: ldarg.s 5
IL_02D2: ldind.i4
IL_02D3: ldelema UnityEngine.Vector3
IL_02D8: ldloca.s 4 (UnityEngine.Vector3)
IL_02DA: ldfld System.Single UnityEngine.Vector3::x
IL_02DF: ldloc.s 18 (System.Single)
IL_02E1: sub
IL_02E2: ldloca.s 4 (UnityEngine.Vector3)
IL_02E4: ldfld System.Single UnityEngine.Vector3::y
IL_02E9: ldarg.0
IL_02EA: ldfld System.Single LightEffect::m_lightRange
IL_02EF: add
IL_02F0: ldloca.s 4 (UnityEngine.Vector3)
IL_02F2: ldfld System.Single UnityEngine.Vector3::z
IL_02F7: ldarg.0
IL_02F8: ldfld System.Single LightEffect::m_lightRange
IL_02FD: add
IL_02FE: newobj System.Void UnityEngine.Vector3::.ctor(System.Single x,
System.Single y, System.Single z)
IL_0303: stobj UnityEngine.Vector3
IL_0308: ldarg.s 8
IL_030A: ldfld UnityEngine.Vector3[] MeshData::m_normals
IL_030F: ldarg.s 5
IL_0311: ldind.i4
IL_0312: ldelema UnityEngine.Vector3
IL_0317: ldarg.3
IL_0318: stobj UnityEngine.Vector3
IL_031D: ldarg.s 8
IL_031F: ldfld UnityEngine.Vector4[] MeshData::m_tangents
IL_0324: ldarg.s 5
IL_0326: ldind.i4
IL_0327: ldelema UnityEngine.Vector4
IL_032C: ldloc.s 7 (UnityEngine.Vector4)
IL_032E: stobj UnityEngine.Vector4
IL_0333: ldarg.s 8
IL_0335: ldfld UnityEngine.Vector2[] MeshData::m_uvs
IL_033A: ldarg.s 5
IL_033C: ldind.i4
IL_033D: ldelema UnityEngine.Vector2
IL_0342: ldloc.s 8 (UnityEngine.Vector2)
IL_0344: stobj UnityEngine.Vector2
IL_0349: ldarg.s 8
IL_034B: ldfld UnityEngine.Vector2[] MeshData::m_uvs2
IL_0350: ldarg.s 5
IL_0352: ldind.i4
IL_0353: ldelema UnityEngine.Vector2
IL_0358: ldloc.s 10 (UnityEngine.Vector2)
IL_035A: stobj UnityEngine.Vector2
IL_035F: ldarg.s 8
IL_0361: ldfld UnityEngine.Vector2[] MeshData::m_uvs3
IL_0366: ldarg.s 5
IL_0368: ldind.i4
IL_0369: ldelema UnityEngine.Vector2
IL_036E: ldloc.s 11 (UnityEngine.Vector2)
IL_0370: stobj UnityEngine.Vector2
IL_0375: ldloc.0
IL_0376: brfalse => Label13
IL_037B: ldarg.s 8
IL_037D: ldfld UnityEngine.Vector2[] MeshData::m_uvs4
IL_0382: ldarg.s 5
IL_0384: ldind.i4
IL_0385: ldelema UnityEngine.Vector2
IL_038A: ldloc.s 12 (UnityEngine.Vector2)
IL_038C: stobj UnityEngine.Vector2
IL_0391: Label13
IL_0391: ldarg.s 8
IL_0393: ldfld UnityEngine.Color32[] MeshData::m_colors
IL_0398: ldarg.s 5
IL_039A: ldind.i4
IL_039B: ldelema UnityEngine.Color32
IL_03A0: ldloc.s 15 (UnityEngine.Color)
IL_03A2: call static UnityEngine.Color32
UnityEngine.Color32::op_Implicit(UnityEngine.Color c)
IL_03A7: stobj UnityEngine.Color32
IL_03AC: ldarg.s 5
IL_03AE: ldarg.s 5
IL_03B0: ldind.i4
IL_03B1: ldc.i4.1
IL_03B2: add
IL_03B3: stind.i4
IL_03B4: ldarg.s 8
IL_03B6: ldfld UnityEngine.Vector3[] MeshData::m_vertices
IL_03BB: ldarg.s 5
IL_03BD: ldind.i4
IL_03BE: ldelema UnityEngine.Vector3
IL_03C3: ldloca.s 4 (UnityEngine.Vector3)
IL_03C5: ldfld System.Single UnityEngine.Vector3::x
IL_03CA: ldloc.s 18 (System.Single)
IL_03CC: add
IL_03CD: ldloca.s 4 (UnityEngine.Vector3)
IL_03CF: ldfld System.Single UnityEngine.Vector3::y
IL_03D4: ldarg.0
IL_03D5: ldfld System.Single LightEffect::m_lightRange
IL_03DA: add
IL_03DB: ldloca.s 4 (UnityEngine.Vector3)
IL_03DD: ldfld System.Single UnityEngine.Vector3::z
IL_03E2: ldarg.0
IL_03E3: ldfld System.Single LightEffect::m_lightRange
IL_03E8: add
IL_03E9: newobj System.Void UnityEngine.Vector3::.ctor(System.Single x,
System.Single y, System.Single z)
IL_03EE: stobj UnityEngine.Vector3
IL_03F3: ldarg.s 8
IL_03F5: ldfld UnityEngine.Vector3[] MeshData::m_normals
IL_03FA: ldarg.s 5
IL_03FC: ldind.i4
IL_03FD: ldelema UnityEngine.Vector3
IL_0402: ldarg.3
IL_0403: stobj UnityEngine.Vector3
IL_0408: ldarg.s 8
IL_040A: ldfld UnityEngine.Vector4[] MeshData::m_tangents
IL_040F: ldarg.s 5
IL_0411: ldind.i4
IL_0412: ldelema UnityEngine.Vector4
IL_0417: ldloc.s 7 (UnityEngine.Vector4)
IL_0419: stobj UnityEngine.Vector4
IL_041E: ldarg.s 8
IL_0420: ldfld UnityEngine.Vector2[] MeshData::m_uvs
IL_0425: ldarg.s 5
IL_0427: ldind.i4
IL_0428: ldelema UnityEngine.Vector2
IL_042D: ldloc.s 8 (UnityEngine.Vector2)
IL_042F: stobj UnityEngine.Vector2
IL_0434: ldarg.s 8
IL_0436: ldfld UnityEngine.Vector2[] MeshData::m_uvs2
IL_043B: ldarg.s 5
IL_043D: ldind.i4
IL_043E: ldelema UnityEngine.Vector2
IL_0443: ldloc.s 10 (UnityEngine.Vector2)
IL_0445: stobj UnityEngine.Vector2
IL_044A: ldarg.s 8
IL_044C: ldfld UnityEngine.Vector2[] MeshData::m_uvs3
IL_0451: ldarg.s 5
IL_0453: ldind.i4
IL_0454: ldelema UnityEngine.Vector2
IL_0459: ldloc.s 11 (UnityEngine.Vector2)
IL_045B: stobj UnityEngine.Vector2
IL_0460: ldloc.0
IL_0461: brfalse => Label14
IL_0466: ldarg.s 8
IL_0468: ldfld UnityEngine.Vector2[] MeshData::m_uvs4
IL_046D: ldarg.s 5
IL_046F: ldind.i4
IL_0470: ldelema UnityEngine.Vector2
IL_0475: ldloc.s 12 (UnityEngine.Vector2)
IL_0477: stobj UnityEngine.Vector2
IL_047C: Label14
IL_047C: ldarg.s 8
IL_047E: ldfld UnityEngine.Color32[] MeshData::m_colors
IL_0483: ldarg.s 5
IL_0485: ldind.i4
IL_0486: ldelema UnityEngine.Color32
IL_048B: ldloc.s 15 (UnityEngine.Color)
IL_048D: call static UnityEngine.Color32
UnityEngine.Color32::op_Implicit(UnityEngine.Color c)
IL_0492: stobj UnityEngine.Color32
IL_0497: ldarg.s 5
IL_0499: ldarg.s 5
IL_049B: ldind.i4
IL_049C: ldc.i4.1
IL_049D: add
IL_049E: stind.i4
IL_049F: ldarg.s 8
IL_04A1: ldfld UnityEngine.Vector3[] MeshData::m_vertices
IL_04A6: ldarg.s 5
IL_04A8: ldind.i4
IL_04A9: ldelema UnityEngine.Vector3
IL_04AE: ldloca.s 4 (UnityEngine.Vector3)
IL_04B0: ldfld System.Single UnityEngine.Vector3::x
IL_04B5: ldloc.s 17 (System.Single)
IL_04B7: add
IL_04B8: ldloca.s 4 (UnityEngine.Vector3)
IL_04BA: ldfld System.Single UnityEngine.Vector3::y
IL_04BF: ldloca.s 4 (UnityEngine.Vector3)
IL_04C1: ldfld System.Single UnityEngine.Vector3::z
IL_04C6: ldarg.0
IL_04C7: ldfld System.Single LightEffect::m_lightRange
IL_04CC: add
IL_04CD: newobj System.Void UnityEngine.Vector3::.ctor(System.Single x,
System.Single y, System.Single z)
IL_04D2: stobj UnityEngine.Vector3
IL_04D7: ldarg.s 8
IL_04D9: ldfld UnityEngine.Vector3[] MeshData::m_normals
IL_04DE: ldarg.s 5
IL_04E0: ldind.i4
IL_04E1: ldelema UnityEngine.Vector3
IL_04E6: ldarg.3
IL_04E7: stobj UnityEngine.Vector3
IL_04EC: ldarg.s 8
IL_04EE: ldfld UnityEngine.Vector4[] MeshData::m_tangents
IL_04F3: ldarg.s 5
IL_04F5: ldind.i4
IL_04F6: ldelema UnityEngine.Vector4
IL_04FB: ldloc.s 7 (UnityEngine.Vector4)
IL_04FD: stobj UnityEngine.Vector4
IL_0502: ldarg.s 8
IL_0504: ldfld UnityEngine.Vector2[] MeshData::m_uvs
IL_0509: ldarg.s 5
IL_050B: ldind.i4
IL_050C: ldelema UnityEngine.Vector2
IL_0511: ldloc.s 8 (UnityEngine.Vector2)
IL_0513: stobj UnityEngine.Vector2
IL_0518: ldarg.s 8
IL_051A: ldfld UnityEngine.Vector2[] MeshData::m_uvs2
IL_051F: ldarg.s 5
IL_0521: ldind.i4
IL_0522: ldelema UnityEngine.Vector2
IL_0527: ldloc.s 10 (UnityEngine.Vector2)
IL_0529: stobj UnityEngine.Vector2
IL_052E: ldarg.s 8
IL_0530: ldfld UnityEngine.Vector2[] MeshData::m_uvs3
IL_0535: ldarg.s 5
IL_0537: ldind.i4
IL_0538: ldelema UnityEngine.Vector2
IL_053D: ldloc.s 11 (UnityEngine.Vector2)
IL_053F: stobj UnityEngine.Vector2
IL_0544: ldloc.0
IL_0545: brfalse => Label15
IL_054A: ldarg.s 8
IL_054C: ldfld UnityEngine.Vector2[] MeshData::m_uvs4
IL_0551: ldarg.s 5
IL_0553: ldind.i4
IL_0554: ldelema UnityEngine.Vector2
IL_0559: ldloc.s 12 (UnityEngine.Vector2)
IL_055B: stobj UnityEngine.Vector2
IL_0560: Label15
IL_0560: ldarg.s 8
IL_0562: ldfld UnityEngine.Color32[] MeshData::m_colors
IL_0567: ldarg.s 5
IL_0569: ldind.i4
IL_056A: ldelema UnityEngine.Color32
IL_056F: ldloc.s 15 (UnityEngine.Color)
IL_0571: call static UnityEngine.Color32
UnityEngine.Color32::op_Implicit(UnityEngine.Color c)
IL_0576: stobj UnityEngine.Color32
IL_057B: ldarg.s 5
IL_057D: ldarg.s 5
IL_057F: ldind.i4
IL_0580: ldc.i4.1
IL_0581: add
IL_0582: stind.i4
IL_0583: ldarg.s 8
IL_0585: ldfld UnityEngine.Vector3[] MeshData::m_vertices
IL_058A: ldarg.s 5
IL_058C: ldind.i4
IL_058D: ldelema UnityEngine.Vector3
IL_0592: ldloca.s 4 (UnityEngine.Vector3)
IL_0594: ldfld System.Single UnityEngine.Vector3::x
IL_0599: ldloc.s 18 (System.Single)
IL_059B: add
IL_059C: ldloca.s 4 (UnityEngine.Vector3)
IL_059E: ldfld System.Single UnityEngine.Vector3::y
IL_05A3: ldarg.0
IL_05A4: ldfld System.Single LightEffect::m_lightRange
IL_05A9: sub
IL_05AA: ldloca.s 4 (UnityEngine.Vector3)
IL_05AC: ldfld System.Single UnityEngine.Vector3::z
IL_05B1: ldarg.0
IL_05B2: ldfld System.Single LightEffect::m_lightRange
IL_05B7: add
IL_05B8: newobj System.Void UnityEngine.Vector3::.ctor(System.Single x,
System.Single y, System.Single z)
IL_05BD: stobj UnityEngine.Vector3
IL_05C2: ldarg.s 8
IL_05C4: ldfld UnityEngine.Vector3[] MeshData::m_normals
IL_05C9: ldarg.s 5
IL_05CB: ldind.i4
IL_05CC: ldelema UnityEngine.Vector3
IL_05D1: ldarg.3
IL_05D2: stobj UnityEngine.Vector3
IL_05D7: ldarg.s 8
IL_05D9: ldfld UnityEngine.Vector4[] MeshData::m_tangents
IL_05DE: ldarg.s 5
IL_05E0: ldind.i4
IL_05E1: ldelema UnityEngine.Vector4
IL_05E6: ldloc.s 7 (UnityEngine.Vector4)
IL_05E8: stobj UnityEngine.Vector4
IL_05ED: ldarg.s 8
IL_05EF: ldfld UnityEngine.Vector2[] MeshData::m_uvs
IL_05F4: ldarg.s 5
IL_05F6: ldind.i4
IL_05F7: ldelema UnityEngine.Vector2
IL_05FC: ldloc.s 8 (UnityEngine.Vector2)
IL_05FE: stobj UnityEngine.Vector2
IL_0603: ldarg.s 8
IL_0605: ldfld UnityEngine.Vector2[] MeshData::m_uvs2
IL_060A: ldarg.s 5
IL_060C: ldind.i4
IL_060D: ldelema UnityEngine.Vector2
IL_0612: ldloc.s 10 (UnityEngine.Vector2)
IL_0614: stobj UnityEngine.Vector2
IL_0619: ldarg.s 8
IL_061B: ldfld UnityEngine.Vector2[] MeshData::m_uvs3
IL_0620: ldarg.s 5
IL_0622: ldind.i4
IL_0623: ldelema UnityEngine.Vector2
IL_0628: ldloc.s 11 (UnityEngine.Vector2)
IL_062A: stobj UnityEngine.Vector2
IL_062F: ldloc.0
IL_0630: brfalse => Label16
IL_0635: ldarg.s 8
IL_0637: ldfld UnityEngine.Vector2[] MeshData::m_uvs4
IL_063C: ldarg.s 5
IL_063E: ldind.i4
IL_063F: ldelema UnityEngine.Vector2
IL_0644: ldloc.s 12 (UnityEngine.Vector2)
IL_0646: stobj UnityEngine.Vector2
IL_064B: Label16
IL_064B: ldarg.s 8
IL_064D: ldfld UnityEngine.Color32[] MeshData::m_colors
IL_0652: ldarg.s 5
IL_0654: ldind.i4
IL_0655: ldelema UnityEngine.Color32
IL_065A: ldloc.s 15 (UnityEngine.Color)
IL_065C: call static UnityEngine.Color32
UnityEngine.Color32::op_Implicit(UnityEngine.Color c)
IL_0661: stobj UnityEngine.Color32
IL_0666: ldarg.s 5
IL_0668: ldarg.s 5
IL_066A: ldind.i4
IL_066B: ldc.i4.1
IL_066C: add
IL_066D: stind.i4
IL_066E: ldarg.s 8
IL_0670: ldfld UnityEngine.Vector3[] MeshData::m_vertices
IL_0675: ldarg.s 5
IL_0677: ldind.i4
IL_0678: ldelema UnityEngine.Vector3
IL_067D: ldloca.s 4 (UnityEngine.Vector3)
IL_067F: ldfld System.Single UnityEngine.Vector3::x
IL_0684: ldloc.s 18 (System.Single)
IL_0686: sub
IL_0687: ldloca.s 4 (UnityEngine.Vector3)
IL_0689: ldfld System.Single UnityEngine.Vector3::y
IL_068E: ldarg.0
IL_068F: ldfld System.Single LightEffect::m_lightRange
IL_0694: sub
IL_0695: ldloca.s 4 (UnityEngine.Vector3)
IL_0697: ldfld System.Single UnityEngine.Vector3::z
IL_069C: ldarg.0
IL_069D: ldfld System.Single LightEffect::m_lightRange
IL_06A2: add
IL_06A3: newobj System.Void UnityEngine.Vector3::.ctor(System.Single x,
System.Single y, System.Single z)
IL_06A8: stobj UnityEngine.Vector3
IL_06AD: ldarg.s 8
IL_06AF: ldfld UnityEngine.Vector3[] MeshData::m_normals
IL_06B4: ldarg.s 5
IL_06B6: ldind.i4
IL_06B7: ldelema UnityEngine.Vector3
IL_06BC: ldarg.3
IL_06BD: stobj UnityEngine.Vector3
IL_06C2: ldarg.s 8
IL_06C4: ldfld UnityEngine.Vector4[] MeshData::m_tangents
IL_06C9: ldarg.s 5
IL_06CB: ldind.i4
IL_06CC: ldelema UnityEngine.Vector4
IL_06D1: ldloc.s 7 (UnityEngine.Vector4)
IL_06D3: stobj UnityEngine.Vector4
IL_06D8: ldarg.s 8
IL_06DA: ldfld UnityEngine.Vector2[] MeshData::m_uvs
IL_06DF: ldarg.s 5
IL_06E1: ldind.i4
IL_06E2: ldelema UnityEngine.Vector2
IL_06E7: ldloc.s 8 (UnityEngine.Vector2)
IL_06E9: stobj UnityEngine.Vector2
IL_06EE: ldarg.s 8
IL_06F0: ldfld UnityEngine.Vector2[] MeshData::m_uvs2
IL_06F5: ldarg.s 5
IL_06F7: ldind.i4
IL_06F8: ldelema UnityEngine.Vector2
IL_06FD: ldloc.s 10 (UnityEngine.Vector2)
IL_06FF: stobj UnityEngine.Vector2
IL_0704: ldarg.s 8
IL_0706: ldfld UnityEngine.Vector2[] MeshData::m_uvs3
IL_070B: ldarg.s 5
IL_070D: ldind.i4
IL_070E: ldelema UnityEngine.Vector2
IL_0713: ldloc.s 11 (UnityEngine.Vector2)
IL_0715: stobj UnityEngine.Vector2
IL_071A: ldloc.0
IL_071B: brfalse => Label17
IL_0720: ldarg.s 8
IL_0722: ldfld UnityEngine.Vector2[] MeshData::m_uvs4
IL_0727: ldarg.s 5
IL_0729: ldind.i4
IL_072A: ldelema UnityEngine.Vector2
IL_072F: ldloc.s 12 (UnityEngine.Vector2)
IL_0731: stobj UnityEngine.Vector2
IL_0736: Label17
IL_0736: ldarg.s 8
IL_0738: ldfld UnityEngine.Color32[] MeshData::m_colors
IL_073D: ldarg.s 5
IL_073F: ldind.i4
IL_0740: ldelema UnityEngine.Color32
IL_0745: ldloc.s 15 (UnityEngine.Color)
IL_0747: call static UnityEngine.Color32
UnityEngine.Color32::op_Implicit(UnityEngine.Color c)
IL_074C: stobj UnityEngine.Color32
IL_0751: ldarg.s 5
IL_0753: ldarg.s 5
IL_0755: ldind.i4
IL_0756: ldc.i4.1
IL_0757: add
IL_0758: stind.i4
IL_0759: ldarg.s 8
IL_075B: ldfld UnityEngine.Vector3[] MeshData::m_vertices
IL_0760: ldarg.s 5
IL_0762: ldind.i4
IL_0763: ldelema UnityEngine.Vector3
IL_0768: ldloca.s 4 (UnityEngine.Vector3)
IL_076A: ldfld System.Single UnityEngine.Vector3::x
IL_076F: ldloc.s 17 (System.Single)
IL_0771: sub
IL_0772: ldloca.s 4 (UnityEngine.Vector3)
IL_0774: ldfld System.Single UnityEngine.Vector3::y
IL_0779: ldloca.s 4 (UnityEngine.Vector3)
IL_077B: ldfld System.Single UnityEngine.Vector3::z
IL_0780: ldarg.0
IL_0781: ldfld System.Single LightEffect::m_lightRange
IL_0786: add
IL_0787: newobj System.Void UnityEngine.Vector3::.ctor(System.Single x,
System.Single y, System.Single z)
IL_078C: stobj UnityEngine.Vector3
IL_0791: ldarg.s 8
IL_0793: ldfld UnityEngine.Vector3[] MeshData::m_normals
IL_0798: ldarg.s 5
IL_079A: ldind.i4
IL_079B: ldelema UnityEngine.Vector3
IL_07A0: ldarg.3
IL_07A1: stobj UnityEngine.Vector3
IL_07A6: ldarg.s 8
IL_07A8: ldfld UnityEngine.Vector4[] MeshData::m_tangents
IL_07AD: ldarg.s 5
IL_07AF: ldind.i4
IL_07B0: ldelema UnityEngine.Vector4
IL_07B5: ldloc.s 7 (UnityEngine.Vector4)
IL_07B7: stobj UnityEngine.Vector4
IL_07BC: ldarg.s 8
IL_07BE: ldfld UnityEngine.Vector2[] MeshData::m_uvs
IL_07C3: ldarg.s 5
IL_07C5: ldind.i4
IL_07C6: ldelema UnityEngine.Vector2
IL_07CB: ldloc.s 8 (UnityEngine.Vector2)
IL_07CD: stobj UnityEngine.Vector2
IL_07D2: ldarg.s 8
IL_07D4: ldfld UnityEngine.Vector2[] MeshData::m_uvs2
IL_07D9: ldarg.s 5
IL_07DB: ldind.i4
IL_07DC: ldelema UnityEngine.Vector2
IL_07E1: ldloc.s 10 (UnityEngine.Vector2)
IL_07E3: stobj UnityEngine.Vector2
IL_07E8: ldarg.s 8
IL_07EA: ldfld UnityEngine.Vector2[] MeshData::m_uvs3
IL_07EF: ldarg.s 5
IL_07F1: ldind.i4
IL_07F2: ldelema UnityEngine.Vector2
IL_07F7: ldloc.s 11 (UnityEngine.Vector2)
IL_07F9: stobj UnityEngine.Vector2
IL_07FE: ldloc.0
IL_07FF: brfalse => Label18
IL_0804: ldarg.s 8
IL_0806: ldfld UnityEngine.Vector2[] MeshData::m_uvs4
IL_080B: ldarg.s 5
IL_080D: ldind.i4
IL_080E: ldelema UnityEngine.Vector2
IL_0813: ldloc.s 12 (UnityEngine.Vector2)
IL_0815: stobj UnityEngine.Vector2
IL_081A: Label18
IL_081A: ldarg.s 8
IL_081C: ldfld UnityEngine.Color32[] MeshData::m_colors
IL_0821: ldarg.s 5
IL_0823: ldind.i4
IL_0824: ldelema UnityEngine.Color32
IL_0829: ldloc.s 15 (UnityEngine.Color)
IL_082B: call static UnityEngine.Color32
UnityEngine.Color32::op_Implicit(UnityEngine.Color c)
IL_0830: stobj UnityEngine.Color32
IL_0835: ldarg.s 5
IL_0837: ldarg.s 5
IL_0839: ldind.i4
IL_083A: ldc.i4.1
IL_083B: add
IL_083C: stind.i4
IL_083D: ldarg.s 8
IL_083F: ldfld System.Int32[] MeshData::m_triangles
IL_0844: ldarg.s 6
IL_0846: ldarg.s 6
IL_0848: ldind.i4
IL_0849: dup
IL_084A: stloc.s 19 (System.Int32)
IL_084C: ldc.i4.1
IL_084D: add
IL_084E: stind.i4
IL_084F: ldloc.s 19 (System.Int32)
IL_0851: ldarg.s 5
IL_0853: ldind.i4
IL_0854: ldc.i4.6
IL_0855: sub
IL_0856: stelem.i4
IL_0857: ldarg.s 8
IL_0859: ldfld System.Int32[] MeshData::m_triangles
IL_085E: ldarg.s 6
IL_0860: ldarg.s 6
IL_0862: ldind.i4
IL_0863: dup
IL_0864: stloc.s 19 (System.Int32)
IL_0866: ldc.i4.1
IL_0867: add
IL_0868: stind.i4
IL_0869: ldloc.s 19 (System.Int32)
IL_086B: ldarg.s 5
IL_086D: ldind.i4
IL_086E: ldc.i4.5
IL_086F: sub
IL_0870: stelem.i4
IL_0871: ldarg.s 8
IL_0873: ldfld System.Int32[] MeshData::m_triangles
IL_0878: ldarg.s 6
IL_087A: ldarg.s 6
IL_087C: ldind.i4
IL_087D: dup
IL_087E: stloc.s 19 (System.Int32)
IL_0880: ldc.i4.1
IL_0881: add
IL_0882: stind.i4
IL_0883: ldloc.s 19 (System.Int32)
IL_0885: ldarg.s 5
IL_0887: ldind.i4
IL_0888: ldc.i4.1
IL_0889: sub
IL_088A: stelem.i4
IL_088B: ldarg.s 8
IL_088D: ldfld System.Int32[] MeshData::m_triangles
IL_0892: ldarg.s 6
IL_0894: ldarg.s 6
IL_0896: ldind.i4
IL_0897: dup
IL_0898: stloc.s 19 (System.Int32)
IL_089A: ldc.i4.1
IL_089B: add
IL_089C: stind.i4
IL_089D: ldloc.s 19 (System.Int32)
IL_089F: ldarg.s 5
IL_08A1: ldind.i4
IL_08A2: ldc.i4.1
IL_08A3: sub
IL_08A4: stelem.i4
IL_08A5: ldarg.s 8
IL_08A7: ldfld System.Int32[] MeshData::m_triangles
IL_08AC: ldarg.s 6
IL_08AE: ldarg.s 6
IL_08B0: ldind.i4
IL_08B1: dup
IL_08B2: stloc.s 19 (System.Int32)
IL_08B4: ldc.i4.1
IL_08B5: add
IL_08B6: stind.i4
IL_08B7: ldloc.s 19 (System.Int32)
IL_08B9: ldarg.s 5
IL_08BB: ldind.i4
IL_08BC: ldc.i4.5
IL_08BD: sub
IL_08BE: stelem.i4
IL_08BF: ldarg.s 8
IL_08C1: ldfld System.Int32[] MeshData::m_triangles
IL_08C6: ldarg.s 6
IL_08C8: ldarg.s 6
IL_08CA: ldind.i4
IL_08CB: dup
IL_08CC: stloc.s 19 (System.Int32)
IL_08CE: ldc.i4.1
IL_08CF: add
IL_08D0: stind.i4
IL_08D1: ldloc.s 19 (System.Int32)
IL_08D3: ldarg.s 5
IL_08D5: ldind.i4
IL_08D6: ldc.i4.4
IL_08D7: sub
IL_08D8: stelem.i4
IL_08D9: ldarg.s 8
IL_08DB: ldfld System.Int32[] MeshData::m_triangles
IL_08E0: ldarg.s 6
IL_08E2: ldarg.s 6
IL_08E4: ldind.i4
IL_08E5: dup
IL_08E6: stloc.s 19 (System.Int32)
IL_08E8: ldc.i4.1
IL_08E9: add
IL_08EA: stind.i4
IL_08EB: ldloc.s 19 (System.Int32)
IL_08ED: ldarg.s 5
IL_08EF: ldind.i4
IL_08F0: ldc.i4.1
IL_08F1: sub
IL_08F2: stelem.i4
IL_08F3: ldarg.s 8
IL_08F5: ldfld System.Int32[] MeshData::m_triangles
IL_08FA: ldarg.s 6
IL_08FC: ldarg.s 6
IL_08FE: ldind.i4
IL_08FF: dup
IL_0900: stloc.s 19 (System.Int32)
IL_0902: ldc.i4.1
IL_0903: add
IL_0904: stind.i4
IL_0905: ldloc.s 19 (System.Int32)
IL_0907: ldarg.s 5
IL_0909: ldind.i4
IL_090A: ldc.i4.4
IL_090B: sub
IL_090C: stelem.i4
IL_090D: ldarg.s 8
IL_090F: ldfld System.Int32[] MeshData::m_triangles
IL_0914: ldarg.s 6
IL_0916: ldarg.s 6
IL_0918: ldind.i4
IL_0919: dup
IL_091A: stloc.s 19 (System.Int32)
IL_091C: ldc.i4.1
IL_091D: add
IL_091E: stind.i4
IL_091F: ldloc.s 19 (System.Int32)
IL_0921: ldarg.s 5
IL_0923: ldind.i4
IL_0924: ldc.i4.2
IL_0925: sub
IL_0926: stelem.i4
IL_0927: ldarg.s 8
IL_0929: ldfld System.Int32[] MeshData::m_triangles
IL_092E: ldarg.s 6
IL_0930: ldarg.s 6
IL_0932: ldind.i4
IL_0933: dup
IL_0934: stloc.s 19 (System.Int32)
IL_0936: ldc.i4.1
IL_0937: add
IL_0938: stind.i4
IL_0939: ldloc.s 19 (System.Int32)
IL_093B: ldarg.s 5
IL_093D: ldind.i4
IL_093E: ldc.i4.2
IL_093F: sub
IL_0940: stelem.i4
IL_0941: ldarg.s 8
IL_0943: ldfld System.Int32[] MeshData::m_triangles
IL_0948: ldarg.s 6
IL_094A: ldarg.s 6
IL_094C: ldind.i4
IL_094D: dup
IL_094E: stloc.s 19 (System.Int32)
IL_0950: ldc.i4.1
IL_0951: add
IL_0952: stind.i4
IL_0953: ldloc.s 19 (System.Int32)
IL_0955: ldarg.s 5
IL_0957: ldind.i4
IL_0958: ldc.i4.4
IL_0959: sub
IL_095A: stelem.i4
IL_095B: ldarg.s 8
IL_095D: ldfld System.Int32[] MeshData::m_triangles
IL_0962: ldarg.s 6
IL_0964: ldarg.s 6
IL_0966: ldind.i4
IL_0967: dup
IL_0968: stloc.s 19 (System.Int32)
IL_096A: ldc.i4.1
IL_096B: add
IL_096C: stind.i4
IL_096D: ldloc.s 19 (System.Int32)
IL_096F: ldarg.s 5
IL_0971: ldind.i4
IL_0972: ldc.i4.3
IL_0973: sub
IL_0974: stelem.i4
IL_0975: // end original
IL_0975: Label1
IL_0975: ret
DONE

### Patch: virtual System.Void ElectricityManager::SimulationStepImpl(System.Int32


subStep)
### Replacement: static System.Void
ElectricityManager::ElectricityManager.SimulationStepImpl_Patch0(ElectricityManager
this, System.Int32 subStep)
IL_0000: Local var 0: System.UInt32
IL_0000: Local var 1: System.Int32
IL_0000: Local var 2: NetManager
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: NetInfo
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: ElectricityManager/Cell
IL_0000: Local var 13: ElectricityManager/PulseGroup
IL_0000: Local var 14: ElectricityManager/PulseUnit
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: ElectricityManager/PulseUnit
IL_0000: Local var 19: System.UInt32
IL_0000: Local var 20: System.Int32
IL_0000: Local var 21: ElectricityManager/Cell
IL_0000: Local var 22: System.Int32
IL_0000: Local var 23: System.Int32
IL_0000: Local var 24: NetNode
IL_0000: Local var 25: System.Int32
IL_0000: Local var 26: System.UInt16
IL_0000: Local var 27: System.UInt16
IL_0000: Local var 28: System.UInt16
IL_0000: Local var 29: System.UInt16
IL_0000: Local var 30: System.Int32
IL_0000: Local var 31: ElectricityManager/PulseGroup
IL_0000: Local var 32: ElectricityManager/PulseGroup
IL_0000: Local var 33: System.Int32
IL_0000: Local var 34: ElectricityManager/PulseGroup
IL_0000: Local var 35: System.Int32
IL_0000: Local var 36: ElectricityManager/Cell
IL_0000: // start original
IL_0000: ldarg.1
IL_0001: brfalse => Label0
IL_0006: ldarg.1
IL_0007: ldc.i4 1000
IL_000C: beq => Label1
IL_0011: call static SimulationManager
ColossalFramework.Singleton`1<SimulationManager>::get_instance()
IL_0016: ldfld System.UInt32 SimulationManager::m_currentFrameIndex
IL_001B: stloc.0
IL_001C: ldloc.0
IL_001D: ldc.i4 255
IL_0022: and
IL_0023: stloc.1
IL_0024: ldloc.1
IL_0025: ldc.i4 128
IL_002A: bge => Label2
IL_002F: ldloc.1
IL_0030: brtrue => Label3
IL_0035: ldarg.0
IL_0036: ldc.i4.0
IL_0037: stfld System.Int32 ElectricityManager::m_pulseGroupCount
IL_003C: ldarg.0
IL_003D: ldc.i4.0
IL_003E: stfld System.Int32 ElectricityManager::m_pulseUnitStart
IL_0043: ldarg.0
IL_0044: ldc.i4.0
IL_0045: stfld System.Int32 ElectricityManager::m_pulseUnitEnd
IL_004A: ldarg.0
IL_004B: ldc.i4.0
IL_004C: stfld System.Int32 ElectricityManager::m_processedCells
IL_0051: ldarg.0
IL_0052: ldc.i4.0
IL_0053: stfld System.Int32 ElectricityManager::m_conductiveCells
IL_0058: ldarg.0
IL_0059: ldc.i4.1
IL_005A: stfld System.Boolean ElectricityManager::m_canContinue
IL_005F: Label3
IL_005F: call static NetManager
ColossalFramework.Singleton`1<NetManager>::get_instance()
IL_0064: stloc.2
IL_0065: ldloc.1
IL_0066: ldc.i4 32768
IL_006B: mul
IL_006C: ldc.i4.7
IL_006D: shr
IL_006E: stloc.3
IL_006F: ldloc.1
IL_0070: ldc.i4.1
IL_0071: add
IL_0072: ldc.i4 32768
IL_0077: mul
IL_0078: ldc.i4.7
IL_0079: shr
IL_007A: ldc.i4.1
IL_007B: sub
IL_007C: stloc.s 4 (System.Int32)
IL_007E: ldloc.3
IL_007F: stloc.s 5 (System.Int32)
IL_0081: br => Label4
IL_0086: Label10
IL_0086: ldloc.2
IL_0087: ldfld Array16`1<NetNode> NetManager::m_nodes
IL_008C: ldfld NetNode[] Array16`1<NetNode>::m_buffer
IL_0091: ldloc.s 5 (System.Int32)
IL_0093: ldelema NetNode
IL_0098: ldfld Flags NetNode::m_flags
IL_009D: brfalse => Label5
IL_00A2: ldloc.2
IL_00A3: ldfld Array16`1<NetNode> NetManager::m_nodes
IL_00A8: ldfld NetNode[] Array16`1<NetNode>::m_buffer
IL_00AD: ldloc.s 5 (System.Int32)
IL_00AF: ldelema NetNode
IL_00B4: call NetInfo NetNode::get_Info()
IL_00B9: stloc.s 6 (NetInfo)
IL_00BB: ldloc.s 6 (NetInfo)
IL_00BD: ldfld ItemClass NetInfo::m_class
IL_00C2: ldfld Service ItemClass::m_service
IL_00C7: ldc.i4.s 10
IL_00C9: beq => Label6
IL_00CE: ldloc.s 6 (NetInfo)
IL_00D0: ldfld NetAI NetInfo::m_netAI
IL_00D5: isinst ConcourseAI
IL_00DA: brfalse => Label7
IL_00DF: Label6
IL_00DF: ldarg.0
IL_00E0: ldloc.s 5 (System.Int32)
IL_00E2: ldarg.0
IL_00E3: ldfld System.UInt16[] ElectricityManager::m_nodeGroups
IL_00E8: ldloc.s 5 (System.Int32)
IL_00EA: ldelem.u2
IL_00EB: ldc.i4 65535
IL_00F0: beq => Label8
IL_00F5: ldc.i4.1
IL_00F6: br => Label9
IL_00FB: Label8
IL_00FB: ldc.i4.0
IL_00FC: Label9
IL_00FC: call System.Void
ElectricityManager::UpdateNodeElectricity(System.Int32 nodeID, System.Int32 value)
IL_0101: ldarg.0
IL_0102: dup
IL_0103: ldfld System.Int32 ElectricityManager::m_conductiveCells
IL_0108: ldc.i4.1
IL_0109: add
IL_010A: stfld System.Int32 ElectricityManager::m_conductiveCells
IL_010F: Label5
IL_010F: Label7
IL_010F: ldarg.0
IL_0110: ldfld System.UInt16[] ElectricityManager::m_nodeGroups
IL_0115: ldloc.s 5 (System.Int32)
IL_0117: ldc.i4 65535
IL_011C: stelem.i2
IL_011D: ldloc.s 5 (System.Int32)
IL_011F: ldc.i4.1
IL_0120: add
IL_0121: stloc.s 5 (System.Int32)
IL_0123: Label4
IL_0123: ldloc.s 5 (System.Int32)
IL_0125: ldloc.s 4 (System.Int32)
IL_0127: ble => Label10
IL_012C: ldloc.1
IL_012D: ldc.i4 256
IL_0132: mul
IL_0133: ldc.i4.7
IL_0134: shr
IL_0135: stloc.s 7 (System.Int32)
IL_0137: ldloc.1
IL_0138: ldc.i4.1
IL_0139: add
IL_013A: ldc.i4 256
IL_013F: mul
IL_0140: ldc.i4.7
IL_0141: shr
IL_0142: ldc.i4.1
IL_0143: sub
IL_0144: stloc.s 8 (System.Int32)
IL_0146: ldloc.s 7 (System.Int32)
IL_0148: stloc.s 9 (System.Int32)
IL_014A: br => Label11
IL_014F: Label21
IL_014F: ldloc.s 9 (System.Int32)
IL_0151: ldc.i4 256
IL_0156: mul
IL_0157: stloc.s 10 (System.Int32)
IL_0159: ldc.i4.0
IL_015A: stloc.s 11 (System.Int32)
IL_015C: br => Label12
IL_0161: Label20
IL_0161: ldarg.0
IL_0162: ldfld Cell[] ElectricityManager::m_electricityGrid
IL_0167: ldloc.s 10 (System.Int32)
IL_0169: ldelema ElectricityManager+Cell
IL_016E: ldobj ElectricityManager+Cell
IL_0173: stloc.s 12 (ElectricityManager+Cell)
IL_0175: ldloca.s 12 (ElectricityManager+Cell)
IL_0177: ldfld System.Int16 Cell::m_currentCharge
IL_017C: ldc.i4.0
IL_017D: ble => Label13
IL_0182: ldarg.0
IL_0183: ldfld System.Int32 ElectricityManager::m_pulseGroupCount
IL_0188: ldc.i4 1024
IL_018D: bge => Label14
IL_0192: ldloca.s 13 (ElectricityManager+PulseGroup)
IL_0194: ldloca.s 12 (ElectricityManager+Cell)
IL_0196: ldfld System.Int16 Cell::m_currentCharge
IL_019B: conv.u4
IL_019C: stfld System.UInt32 PulseGroup::m_origCharge
IL_01A1: ldloca.s 13 (ElectricityManager+PulseGroup)
IL_01A3: ldloca.s 12 (ElectricityManager+Cell)
IL_01A5: ldfld System.Int16 Cell::m_currentCharge
IL_01AA: conv.u4
IL_01AB: stfld System.UInt32 PulseGroup::m_curCharge
IL_01B0: ldloca.s 13 (ElectricityManager+PulseGroup)
IL_01B2: ldc.i4.0
IL_01B3: stfld System.UInt16 PulseGroup::m_mergeCount
IL_01B8: ldloca.s 13 (ElectricityManager+PulseGroup)
IL_01BA: ldc.i4 65535
IL_01BF: stfld System.UInt16 PulseGroup::m_mergeIndex
IL_01C4: ldloca.s 13 (ElectricityManager+PulseGroup)
IL_01C6: ldloc.s 11 (System.Int32)
IL_01C8: conv.u1
IL_01C9: stfld System.Byte PulseGroup::m_x
IL_01CE: ldloca.s 13 (ElectricityManager+PulseGroup)
IL_01D0: ldloc.s 9 (System.Int32)
IL_01D2: conv.u1
IL_01D3: stfld System.Byte PulseGroup::m_z
IL_01D8: ldloca.s 14 (ElectricityManager+PulseUnit)
IL_01DA: ldarg.0
IL_01DB: ldfld System.Int32 ElectricityManager::m_pulseGroupCount
IL_01E0: conv.u2
IL_01E1: stfld System.UInt16 PulseUnit::m_group
IL_01E6: ldloca.s 14 (ElectricityManager+PulseUnit)
IL_01E8: ldc.i4.0
IL_01E9: stfld System.UInt16 PulseUnit::m_node
IL_01EE: ldloca.s 14 (ElectricityManager+PulseUnit)
IL_01F0: ldloc.s 11 (System.Int32)
IL_01F2: conv.u1
IL_01F3: stfld System.Byte PulseUnit::m_x
IL_01F8: ldloca.s 14 (ElectricityManager+PulseUnit)
IL_01FA: ldloc.s 9 (System.Int32)
IL_01FC: conv.u1
IL_01FD: stfld System.Byte PulseUnit::m_z
IL_0202: ldloca.s 12 (ElectricityManager+Cell)
IL_0204: ldarg.0
IL_0205: ldfld System.Int32 ElectricityManager::m_pulseGroupCount
IL_020A: conv.u2
IL_020B: stfld System.UInt16 Cell::m_pulseGroup
IL_0210: ldarg.0
IL_0211: ldfld PulseGroup[] ElectricityManager::m_pulseGroups
IL_0216: ldarg.0
IL_0217: dup
IL_0218: ldfld System.Int32 ElectricityManager::m_pulseGroupCount
IL_021D: dup
IL_021E: stloc.s 15 (System.Int32)
IL_0220: ldc.i4.1
IL_0221: add
IL_0222: stfld System.Int32 ElectricityManager::m_pulseGroupCount
IL_0227: ldloc.s 15 (System.Int32)
IL_0229: ldelema ElectricityManager+PulseGroup
IL_022E: ldloc.s 13 (ElectricityManager+PulseGroup)
IL_0230: stobj ElectricityManager+PulseGroup
IL_0235: ldarg.0
IL_0236: ldfld PulseUnit[] ElectricityManager::m_pulseUnits
IL_023B: ldarg.0
IL_023C: ldfld System.Int32 ElectricityManager::m_pulseUnitEnd
IL_0241: ldelema ElectricityManager+PulseUnit
IL_0246: ldloc.s 14 (ElectricityManager+PulseUnit)
IL_0248: stobj ElectricityManager+PulseUnit
IL_024D: ldarg.0
IL_024E: dup
IL_024F: ldfld System.Int32 ElectricityManager::m_pulseUnitEnd
IL_0254: ldc.i4.1
IL_0255: add
IL_0256: dup
IL_0257: stloc.s 15 (System.Int32)
IL_0259: stfld System.Int32 ElectricityManager::m_pulseUnitEnd
IL_025E: ldloc.s 15 (System.Int32)
IL_0260: ldarg.0
IL_0261: ldfld PulseUnit[] ElectricityManager::m_pulseUnits
IL_0266: ldlen
IL_0267: conv.i4
IL_0268: bne.un => Label15
IL_026D: ldarg.0
IL_026E: ldc.i4.0
IL_026F: stfld System.Int32 ElectricityManager::m_pulseUnitEnd
IL_0274: Label15
IL_0274: br => Label16
IL_0279: Label14
IL_0279: ldloca.s 12 (ElectricityManager+Cell)
IL_027B: ldc.i4 65535
IL_0280: stfld System.UInt16 Cell::m_pulseGroup
IL_0285: Label16
IL_0285: ldloca.s 12 (ElectricityManager+Cell)
IL_0287: ldc.i4.0
IL_0288: stfld System.Int16 Cell::m_currentCharge
IL_028D: ldarg.0
IL_028E: dup
IL_028F: ldfld System.Int32 ElectricityManager::m_conductiveCells
IL_0294: ldc.i4.1
IL_0295: add
IL_0296: stfld System.Int32 ElectricityManager::m_conductiveCells
IL_029B: br => Label17
IL_02A0: Label13
IL_02A0: ldloca.s 12 (ElectricityManager+Cell)
IL_02A2: ldc.i4 65535
IL_02A7: stfld System.UInt16 Cell::m_pulseGroup
IL_02AC: ldloca.s 12 (ElectricityManager+Cell)
IL_02AE: ldfld System.Byte Cell::m_conductivity
IL_02B3: ldc.i4.s 64
IL_02B5: blt => Label18
IL_02BA: ldarg.0
IL_02BB: dup
IL_02BC: ldfld System.Int32 ElectricityManager::m_conductiveCells
IL_02C1: ldc.i4.1
IL_02C2: add
IL_02C3: stfld System.Int32 ElectricityManager::m_conductiveCells
IL_02C8: Label17
IL_02C8: Label18
IL_02C8: ldloca.s 12 (ElectricityManager+Cell)
IL_02CA: ldfld System.Boolean Cell::m_tmpElectrified
IL_02CF: ldloca.s 12 (ElectricityManager+Cell)
IL_02D1: ldfld System.Boolean Cell::m_electrified
IL_02D6: beq => Label19
IL_02DB: ldloca.s 12 (ElectricityManager+Cell)
IL_02DD: ldloca.s 12 (ElectricityManager+Cell)
IL_02DF: ldfld System.Boolean Cell::m_tmpElectrified
IL_02E4: stfld System.Boolean Cell::m_electrified
IL_02E9: Label19
IL_02E9: ldloca.s 12 (ElectricityManager+Cell)
IL_02EB: ldloca.s 12 (ElectricityManager+Cell)
IL_02ED: ldfld System.UInt16 Cell::m_pulseGroup
IL_02F2: ldc.i4 65535
IL_02F7: ceq
IL_02F9: ldc.i4.0
IL_02FA: ceq
IL_02FC: stfld System.Boolean Cell::m_tmpElectrified
IL_0301: ldarg.0
IL_0302: ldfld Cell[] ElectricityManager::m_electricityGrid
IL_0307: ldloc.s 10 (System.Int32)
IL_0309: ldelema ElectricityManager+Cell
IL_030E: ldloc.s 12 (ElectricityManager+Cell)
IL_0310: stobj ElectricityManager+Cell
IL_0315: ldloc.s 10 (System.Int32)
IL_0317: ldc.i4.1
IL_0318: add
IL_0319: stloc.s 10 (System.Int32)
IL_031B: ldloc.s 11 (System.Int32)
IL_031D: ldc.i4.1
IL_031E: add
IL_031F: stloc.s 11 (System.Int32)
IL_0321: Label12
IL_0321: ldloc.s 11 (System.Int32)
IL_0323: ldc.i4 256
IL_0328: blt => Label20
IL_032D: ldloc.s 9 (System.Int32)
IL_032F: ldc.i4.1
IL_0330: add
IL_0331: stloc.s 9 (System.Int32)
IL_0333: Label11
IL_0333: ldloc.s 9 (System.Int32)
IL_0335: ldloc.s 8 (System.Int32)
IL_0337: ble => Label21
IL_033C: br => Label22
IL_0341: Label2
IL_0341: ldloc.1
IL_0342: ldc.i4.s 127
IL_0344: sub
IL_0345: ldarg.0
IL_0346: ldfld System.Int32 ElectricityManager::m_conductiveCells
IL_034B: mul
IL_034C: ldc.i4.7
IL_034D: shr
IL_034E: stloc.s 16 (System.Int32)
IL_0350: ldloc.1
IL_0351: ldc.i4 255
IL_0356: bne.un => Label23
IL_035B: ldc.i4 1000000000
IL_0360: stloc.s 16 (System.Int32)
IL_0362: Label23
IL_0362: br => Label24
IL_0367: Label54
IL_0367: ldarg.0
IL_0368: ldc.i4.0
IL_0369: stfld System.Boolean ElectricityManager::m_canContinue
IL_036E: ldarg.0
IL_036F: ldfld System.Int32 ElectricityManager::m_pulseUnitEnd
IL_0374: stloc.s 17 (System.Int32)
IL_0376: br => Label25
IL_037B: Label52
IL_037B: ldarg.0
IL_037C: ldfld PulseUnit[] ElectricityManager::m_pulseUnits
IL_0381: ldarg.0
IL_0382: ldfld System.Int32 ElectricityManager::m_pulseUnitStart
IL_0387: ldelema ElectricityManager+PulseUnit
IL_038C: ldobj ElectricityManager+PulseUnit
IL_0391: stloc.s 18 (ElectricityManager+PulseUnit)
IL_0393: ldarg.0
IL_0394: dup
IL_0395: ldfld System.Int32 ElectricityManager::m_pulseUnitStart
IL_039A: ldc.i4.1
IL_039B: add
IL_039C: dup
IL_039D: stloc.s 15 (System.Int32)
IL_039F: stfld System.Int32 ElectricityManager::m_pulseUnitStart
IL_03A4: ldloc.s 15 (System.Int32)
IL_03A6: ldarg.0
IL_03A7: ldfld PulseUnit[] ElectricityManager::m_pulseUnits
IL_03AC: ldlen
IL_03AD: conv.i4
IL_03AE: bne.un => Label26
IL_03B3: ldarg.0
IL_03B4: ldc.i4.0
IL_03B5: stfld System.Int32 ElectricityManager::m_pulseUnitStart
IL_03BA: Label26
IL_03BA: ldloca.s 18 (ElectricityManager+PulseUnit)
IL_03BC: ldarg.0
IL_03BD: ldloca.s 18 (ElectricityManager+PulseUnit)
IL_03BF: ldfld System.UInt16 PulseUnit::m_group
IL_03C4: call System.UInt16 ElectricityManager::GetRootGroup(System.UInt16
group)
IL_03C9: stfld System.UInt16 PulseUnit::m_group
IL_03CE: ldarg.0
IL_03CF: ldfld PulseGroup[] ElectricityManager::m_pulseGroups
IL_03D4: ldloca.s 18 (ElectricityManager+PulseUnit)
IL_03D6: ldfld System.UInt16 PulseUnit::m_group
IL_03DB: ldelema ElectricityManager+PulseGroup
IL_03E0: ldfld System.UInt32 PulseGroup::m_curCharge
IL_03E5: stloc.s 19 (System.UInt32)
IL_03E7: ldloca.s 18 (ElectricityManager+PulseUnit)
IL_03E9: ldfld System.UInt16 PulseUnit::m_node
IL_03EE: brtrue => Label27
IL_03F3: ldloca.s 18 (ElectricityManager+PulseUnit)
IL_03F5: ldfld System.Byte PulseUnit::m_z
IL_03FA: ldc.i4 256
IL_03FF: mul
IL_0400: ldloca.s 18 (ElectricityManager+PulseUnit)
IL_0402: ldfld System.Byte PulseUnit::m_x
IL_0407: add
IL_0408: stloc.s 20 (System.Int32)
IL_040A: ldarg.0
IL_040B: ldfld Cell[] ElectricityManager::m_electricityGrid
IL_0410: ldloc.s 20 (System.Int32)
IL_0412: ldelema ElectricityManager+Cell
IL_0417: ldobj ElectricityManager+Cell
IL_041C: stloc.s 21 (ElectricityManager+Cell)
IL_041E: ldloca.s 21 (ElectricityManager+Cell)
IL_0420: ldfld System.Byte Cell::m_conductivity
IL_0425: brfalse => Label28
IL_042A: ldloca.s 21 (ElectricityManager+Cell)
IL_042C: ldfld System.Boolean Cell::m_tmpElectrified
IL_0431: brtrue => Label29
IL_0436: ldloc.s 19 (System.UInt32)
IL_0438: brfalse => Label30
IL_043D: ldloca.s 21 (ElectricityManager+Cell)
IL_043F: ldfld System.Int16 Cell::m_currentCharge
IL_0444: neg
IL_0445: ldc.i4.0
IL_0446: ldloc.s 19 (System.UInt32)
IL_0448: call static System.Int32 UnityEngine.Mathf::Clamp(System.Int32
value, System.Int32 min, System.Int32 max)
IL_044D: stloc.s 22 (System.Int32)
IL_044F: ldloc.s 19 (System.UInt32)
IL_0451: ldloc.s 22 (System.Int32)
IL_0453: sub
IL_0454: stloc.s 19 (System.UInt32)
IL_0456: ldloca.s 21 (ElectricityManager+Cell)
IL_0458: dup
IL_0459: ldfld System.Int16 Cell::m_currentCharge
IL_045E: ldloc.s 22 (System.Int32)
IL_0460: conv.i2
IL_0461: add
IL_0462: conv.i2
IL_0463: stfld System.Int16 Cell::m_currentCharge
IL_0468: ldloca.s 21 (ElectricityManager+Cell)
IL_046A: ldfld System.Int16 Cell::m_currentCharge
IL_046F: brtrue => Label31
IL_0474: ldloca.s 21 (ElectricityManager+Cell)
IL_0476: ldc.i4.1
IL_0477: stfld System.Boolean Cell::m_tmpElectrified
IL_047C: Label31
IL_047C: ldarg.0
IL_047D: ldfld Cell[] ElectricityManager::m_electricityGrid
IL_0482: ldloc.s 20 (System.Int32)
IL_0484: ldelema ElectricityManager+Cell
IL_0489: ldloc.s 21 (ElectricityManager+Cell)
IL_048B: stobj ElectricityManager+Cell
IL_0490: ldarg.0
IL_0491: ldfld PulseGroup[] ElectricityManager::m_pulseGroups
IL_0496: ldloca.s 18 (ElectricityManager+PulseUnit)
IL_0498: ldfld System.UInt16 PulseUnit::m_group
IL_049D: ldelema ElectricityManager+PulseGroup
IL_04A2: ldloc.s 19 (System.UInt32)
IL_04A4: stfld System.UInt32 PulseGroup::m_curCharge
IL_04A9: Label28
IL_04A9: Label29
IL_04A9: Label30
IL_04A9: ldloc.s 19 (System.UInt32)
IL_04AB: brfalse => Label32
IL_04B0: ldloca.s 21 (ElectricityManager+Cell)
IL_04B2: ldfld System.Byte Cell::m_conductivity
IL_04B7: ldc.i4.s 64
IL_04B9: blt => Label33
IL_04BE: ldc.i4.1
IL_04BF: br => Label34
IL_04C4: Label33
IL_04C4: ldc.i4.s 64
IL_04C6: Label34
IL_04C6: stloc.s 23 (System.Int32)
IL_04C8: ldarg.0
IL_04C9: dup
IL_04CA: ldfld System.Int32 ElectricityManager::m_processedCells
IL_04CF: ldc.i4.1
IL_04D0: add
IL_04D1: stfld System.Int32 ElectricityManager::m_processedCells
IL_04D6: ldloca.s 18 (ElectricityManager+PulseUnit)
IL_04D8: ldfld System.Byte PulseUnit::m_z
IL_04DD: ldc.i4.0
IL_04DE: ble => Label35
IL_04E3: ldarg.0
IL_04E4: ldarg.0
IL_04E5: ldfld Cell[] ElectricityManager::m_electricityGrid
IL_04EA: ldloc.s 20 (System.Int32)
IL_04EC: ldc.i4 256
IL_04F1: sub
IL_04F2: ldelema ElectricityManager+Cell
IL_04F7: ldloca.s 18 (ElectricityManager+PulseUnit)
IL_04F9: ldfld System.UInt16 PulseUnit::m_group
IL_04FE: ldloca.s 18 (ElectricityManager+PulseUnit)
IL_0500: ldfld System.Byte PulseUnit::m_x
IL_0505: ldloca.s 18 (ElectricityManager+PulseUnit)
IL_0507: ldfld System.Byte PulseUnit::m_z
IL_050C: ldc.i4.1
IL_050D: sub
IL_050E: ldloc.s 23 (System.Int32)
IL_0510: call System.Void ElectricityManager::ConductToCell(Cell& cell,
System.UInt16 group, System.Int32 x, System.Int32 z, System.Int32 limit)
IL_0515: Label35
IL_0515: ldloca.s 18 (ElectricityManager+PulseUnit)
IL_0517: ldfld System.Byte PulseUnit::m_x
IL_051C: ldc.i4.0
IL_051D: ble => Label36
IL_0522: ldarg.0
IL_0523: ldarg.0
IL_0524: ldfld Cell[] ElectricityManager::m_electricityGrid
IL_0529: ldloc.s 20 (System.Int32)
IL_052B: ldc.i4.1
IL_052C: sub
IL_052D: ldelema ElectricityManager+Cell
IL_0532: ldloca.s 18 (ElectricityManager+PulseUnit)
IL_0534: ldfld System.UInt16 PulseUnit::m_group
IL_0539: ldloca.s 18 (ElectricityManager+PulseUnit)
IL_053B: ldfld System.Byte PulseUnit::m_x
IL_0540: ldc.i4.1
IL_0541: sub
IL_0542: ldloca.s 18 (ElectricityManager+PulseUnit)
IL_0544: ldfld System.Byte PulseUnit::m_z
IL_0549: ldloc.s 23 (System.Int32)
IL_054B: call System.Void ElectricityManager::ConductToCell(Cell& cell,
System.UInt16 group, System.Int32 x, System.Int32 z, System.Int32 limit)
IL_0550: Label36
IL_0550: ldloca.s 18 (ElectricityManager+PulseUnit)
IL_0552: ldfld System.Byte PulseUnit::m_z
IL_0557: ldc.i4 255
IL_055C: bge => Label37
IL_0561: ldarg.0
IL_0562: ldarg.0
IL_0563: ldfld Cell[] ElectricityManager::m_electricityGrid
IL_0568: ldloc.s 20 (System.Int32)
IL_056A: ldc.i4 256
IL_056F: add
IL_0570: ldelema ElectricityManager+Cell
IL_0575: ldloca.s 18 (ElectricityManager+PulseUnit)
IL_0577: ldfld System.UInt16 PulseUnit::m_group
IL_057C: ldloca.s 18 (ElectricityManager+PulseUnit)
IL_057E: ldfld System.Byte PulseUnit::m_x
IL_0583: ldloca.s 18 (ElectricityManager+PulseUnit)
IL_0585: ldfld System.Byte PulseUnit::m_z
IL_058A: ldc.i4.1
IL_058B: add
IL_058C: ldloc.s 23 (System.Int32)
IL_058E: call System.Void ElectricityManager::ConductToCell(Cell& cell,
System.UInt16 group, System.Int32 x, System.Int32 z, System.Int32 limit)
IL_0593: Label37
IL_0593: ldloca.s 18 (ElectricityManager+PulseUnit)
IL_0595: ldfld System.Byte PulseUnit::m_x
IL_059A: ldc.i4 255
IL_059F: bge => Label38
IL_05A4: ldarg.0
IL_05A5: ldarg.0
IL_05A6: ldfld Cell[] ElectricityManager::m_electricityGrid
IL_05AB: ldloc.s 20 (System.Int32)
IL_05AD: ldc.i4.1
IL_05AE: add
IL_05AF: ldelema ElectricityManager+Cell
IL_05B4: ldloca.s 18 (ElectricityManager+PulseUnit)
IL_05B6: ldfld System.UInt16 PulseUnit::m_group
IL_05BB: ldloca.s 18 (ElectricityManager+PulseUnit)
IL_05BD: ldfld System.Byte PulseUnit::m_x
IL_05C2: ldc.i4.1
IL_05C3: add
IL_05C4: ldloca.s 18 (ElectricityManager+PulseUnit)
IL_05C6: ldfld System.Byte PulseUnit::m_z
IL_05CB: ldloc.s 23 (System.Int32)
IL_05CD: call System.Void ElectricityManager::ConductToCell(Cell& cell,
System.UInt16 group, System.Int32 x, System.Int32 z, System.Int32 limit)
IL_05D2: Label38
IL_05D2: ldarg.0
IL_05D3: ldloca.s 18 (ElectricityManager+PulseUnit)
IL_05D5: ldfld System.UInt16 PulseUnit::m_group
IL_05DA: ldloca.s 18 (ElectricityManager+PulseUnit)
IL_05DC: ldfld System.Byte PulseUnit::m_x
IL_05E1: ldloca.s 18 (ElectricityManager+PulseUnit)
IL_05E3: ldfld System.Byte PulseUnit::m_z
IL_05E8: call System.Void ElectricityManager::ConductToNodes(System.UInt16
group, System.Int32 cellX, System.Int32 cellZ)
IL_05ED: br => Label39
IL_05F2: Label32
IL_05F2: ldarg.0
IL_05F3: ldfld PulseUnit[] ElectricityManager::m_pulseUnits
IL_05F8: ldarg.0
IL_05F9: ldfld System.Int32 ElectricityManager::m_pulseUnitEnd
IL_05FE: ldelema ElectricityManager+PulseUnit
IL_0603: ldloc.s 18 (ElectricityManager+PulseUnit)
IL_0605: stobj ElectricityManager+PulseUnit
IL_060A: ldarg.0
IL_060B: dup
IL_060C: ldfld System.Int32 ElectricityManager::m_pulseUnitEnd
IL_0611: ldc.i4.1
IL_0612: add
IL_0613: dup
IL_0614: stloc.s 15 (System.Int32)
IL_0616: stfld System.Int32 ElectricityManager::m_pulseUnitEnd
IL_061B: ldloc.s 15 (System.Int32)
IL_061D: ldarg.0
IL_061E: ldfld PulseUnit[] ElectricityManager::m_pulseUnits
IL_0623: ldlen
IL_0624: conv.i4
IL_0625: bne.un => Label40
IL_062A: ldarg.0
IL_062B: ldc.i4.0
IL_062C: stfld System.Int32 ElectricityManager::m_pulseUnitEnd
IL_0631: Label39
IL_0631: Label40
IL_0631: br => Label41
IL_0636: Label27
IL_0636: ldloc.s 19 (System.UInt32)
IL_0638: brfalse => Label42
IL_063D: ldarg.0
IL_063E: dup
IL_063F: ldfld System.Int32 ElectricityManager::m_processedCells
IL_0644: ldc.i4.1
IL_0645: add
IL_0646: stfld System.Int32 ElectricityManager::m_processedCells
IL_064B: call static NetManager
ColossalFramework.Singleton`1<NetManager>::get_instance()
IL_0650: ldfld Array16`1<NetNode> NetManager::m_nodes
IL_0655: ldfld NetNode[] Array16`1<NetNode>::m_buffer
IL_065A: ldloca.s 18 (ElectricityManager+PulseUnit)
IL_065C: ldfld System.UInt16 PulseUnit::m_node
IL_0661: ldelema NetNode
IL_0666: ldobj NetNode
IL_066B: stloc.s 24 (NetNode)
IL_066D: ldloca.s 24 (NetNode)
IL_066F: ldfld Flags NetNode::m_flags
IL_0674: brfalse => Label43
IL_0679: ldloca.s 24 (NetNode)
IL_067B: ldfld System.UInt32 NetNode::m_buildIndex
IL_0680: ldloc.0
IL_0681: ldc.i4.s -128
IL_0683: and
IL_0684: bge.un => Label44
IL_0689: ldarg.0
IL_068A: ldloca.s 18 (ElectricityManager+PulseUnit)
IL_068C: ldfld System.UInt16 PulseUnit::m_group
IL_0691: ldloca.s 24 (NetNode)
IL_0693: ldflda UnityEngine.Vector3 NetNode::m_position
IL_0698: ldfld System.Single UnityEngine.Vector3::x
IL_069D: ldloca.s 24 (NetNode)
IL_069F: ldflda UnityEngine.Vector3 NetNode::m_position
IL_06A4: ldfld System.Single UnityEngine.Vector3::z
IL_06A9: call System.Void ElectricityManager::ConductToCells(System.UInt16
group, System.Single worldX, System.Single worldZ)
IL_06AE: ldc.i4.0
IL_06AF: stloc.s 25 (System.Int32)
IL_06B1: br => Label45
IL_06B6: Label49
IL_06B6: ldloca.s 24 (NetNode)
IL_06B8: ldloc.s 25 (System.Int32)
IL_06BA: call System.UInt16 NetNode::GetSegment(System.Int32 index)
IL_06BF: stloc.s 26 (System.UInt16)
IL_06C1: ldloc.s 26 (System.UInt16)
IL_06C3: brfalse => Label46
IL_06C8: call static NetManager
ColossalFramework.Singleton`1<NetManager>::get_instance()
IL_06CD: ldfld Array16`1<NetSegment> NetManager::m_segments
IL_06D2: ldfld NetSegment[] Array16`1<NetSegment>::m_buffer
IL_06D7: ldloc.s 26 (System.UInt16)
IL_06D9: ldelema NetSegment
IL_06DE: ldfld System.UInt16 NetSegment::m_startNode
IL_06E3: stloc.s 27 (System.UInt16)
IL_06E5: call static NetManager
ColossalFramework.Singleton`1<NetManager>::get_instance()
IL_06EA: ldfld Array16`1<NetSegment> NetManager::m_segments
IL_06EF: ldfld NetSegment[] Array16`1<NetSegment>::m_buffer
IL_06F4: ldloc.s 26 (System.UInt16)
IL_06F6: ldelema NetSegment
IL_06FB: ldfld System.UInt16 NetSegment::m_endNode
IL_0700: stloc.s 28 (System.UInt16)
IL_0702: ldloc.s 27 (System.UInt16)
IL_0704: ldloca.s 18 (ElectricityManager+PulseUnit)
IL_0706: ldfld System.UInt16 PulseUnit::m_node
IL_070B: bne.un => Label47
IL_0710: ldloc.s 28 (System.UInt16)
IL_0712: br => Label48
IL_0717: Label47
IL_0717: ldloc.s 27 (System.UInt16)
IL_0719: Label48
IL_0719: stloc.s 29 (System.UInt16)
IL_071B: ldarg.0
IL_071C: ldloc.s 29 (System.UInt16)
IL_071E: call static NetManager
ColossalFramework.Singleton`1<NetManager>::get_instance()
IL_0723: ldfld Array16`1<NetNode> NetManager::m_nodes
IL_0728: ldfld NetNode[] Array16`1<NetNode>::m_buffer
IL_072D: ldloc.s 29 (System.UInt16)
IL_072F: ldelema NetNode
IL_0734: ldloca.s 18 (ElectricityManager+PulseUnit)
IL_0736: ldfld System.UInt16 PulseUnit::m_group
IL_073B: ldc.r4 -100000
IL_0740: ldc.r4 -100000
IL_0745: ldc.r4 100000
IL_074A: ldc.r4 100000
IL_074F: call System.Void ElectricityManager::ConductToNode(System.UInt16
nodeIndex, NetNode& node, System.UInt16 group, System.Single minX, System.Single
minZ, System.Single maxX, System.Single maxZ)
IL_0754: Label46
IL_0754: ldloc.s 25 (System.Int32)
IL_0756: ldc.i4.1
IL_0757: add
IL_0758: stloc.s 25 (System.Int32)
IL_075A: Label45
IL_075A: ldloc.s 25 (System.Int32)
IL_075C: ldc.i4.8
IL_075D: blt => Label49
IL_0762: Label43
IL_0762: Label44
IL_0762: br => Label50
IL_0767: Label42
IL_0767: ldarg.0
IL_0768: ldfld PulseUnit[] ElectricityManager::m_pulseUnits
IL_076D: ldarg.0
IL_076E: ldfld System.Int32 ElectricityManager::m_pulseUnitEnd
IL_0773: ldelema ElectricityManager+PulseUnit
IL_0778: ldloc.s 18 (ElectricityManager+PulseUnit)
IL_077A: stobj ElectricityManager+PulseUnit
IL_077F: ldarg.0
IL_0780: dup
IL_0781: ldfld System.Int32 ElectricityManager::m_pulseUnitEnd
IL_0786: ldc.i4.1
IL_0787: add
IL_0788: dup
IL_0789: stloc.s 15 (System.Int32)
IL_078B: stfld System.Int32 ElectricityManager::m_pulseUnitEnd
IL_0790: ldloc.s 15 (System.Int32)
IL_0792: ldarg.0
IL_0793: ldfld PulseUnit[] ElectricityManager::m_pulseUnits
IL_0798: ldlen
IL_0799: conv.i4
IL_079A: bne.un => Label51
IL_079F: ldarg.0
IL_07A0: ldc.i4.0
IL_07A1: stfld System.Int32 ElectricityManager::m_pulseUnitEnd
IL_07A6: Label25
IL_07A6: Label41
IL_07A6: Label50
IL_07A6: Label51
IL_07A6: ldarg.0
IL_07A7: ldfld System.Int32 ElectricityManager::m_pulseUnitStart
IL_07AC: ldloc.s 17 (System.Int32)
IL_07AE: bne.un => Label52
IL_07B3: Label24
IL_07B3: ldarg.0
IL_07B4: ldfld System.Boolean ElectricityManager::m_canContinue
IL_07B9: brfalse => Label53
IL_07BE: ldarg.0
IL_07BF: ldfld System.Int32 ElectricityManager::m_processedCells
IL_07C4: ldloc.s 16 (System.Int32)
IL_07C6: blt => Label54
IL_07CB: Label53
IL_07CB: ldloc.1
IL_07CC: ldc.i4 255
IL_07D1: bne.un => Label55
IL_07D6: ldc.i4.0
IL_07D7: stloc.s 30 (System.Int32)
IL_07D9: br => Label56
IL_07DE: Label58
IL_07DE: ldarg.0
IL_07DF: ldfld PulseGroup[] ElectricityManager::m_pulseGroups
IL_07E4: ldloc.s 30 (System.Int32)
IL_07E6: ldelema ElectricityManager+PulseGroup
IL_07EB: ldobj ElectricityManager+PulseGroup
IL_07F0: stloc.s 31 (ElectricityManager+PulseGroup)
IL_07F2: ldloca.s 31 (ElectricityManager+PulseGroup)
IL_07F4: ldfld System.UInt16 PulseGroup::m_mergeIndex
IL_07F9: ldc.i4 65535
IL_07FE: beq => Label57
IL_0803: ldarg.0
IL_0804: ldfld PulseGroup[] ElectricityManager::m_pulseGroups
IL_0809: ldloca.s 31 (ElectricityManager+PulseGroup)
IL_080B: ldfld System.UInt16 PulseGroup::m_mergeIndex
IL_0810: ldelema ElectricityManager+PulseGroup
IL_0815: ldobj ElectricityManager+PulseGroup
IL_081A: stloc.s 32 (ElectricityManager+PulseGroup)
IL_081C: ldloca.s 31 (ElectricityManager+PulseGroup)
IL_081E: ldloca.s 32 (ElectricityManager+PulseGroup)
IL_0820: ldfld System.UInt32 PulseGroup::m_curCharge
IL_0825: conv.u8
IL_0826: ldloca.s 31 (ElectricityManager+PulseGroup)
IL_0828: ldfld System.UInt32 PulseGroup::m_origCharge
IL_082D: conv.u8
IL_082E: mul
IL_082F: ldloca.s 32 (ElectricityManager+PulseGroup)
IL_0831: ldfld System.UInt32 PulseGroup::m_origCharge
IL_0836: conv.u8
IL_0837: div.un
IL_0838: conv.u4
IL_0839: stfld System.UInt32 PulseGroup::m_curCharge
IL_083E: ldloca.s 32 (ElectricityManager+PulseGroup)
IL_0840: dup
IL_0841: ldfld System.UInt32 PulseGroup::m_curCharge
IL_0846: ldloca.s 31 (ElectricityManager+PulseGroup)
IL_0848: ldfld System.UInt32 PulseGroup::m_curCharge
IL_084D: sub
IL_084E: stfld System.UInt32 PulseGroup::m_curCharge
IL_0853: ldloca.s 32 (ElectricityManager+PulseGroup)
IL_0855: dup
IL_0856: ldfld System.UInt32 PulseGroup::m_origCharge
IL_085B: ldloca.s 31 (ElectricityManager+PulseGroup)
IL_085D: ldfld System.UInt32 PulseGroup::m_origCharge
IL_0862: sub
IL_0863: stfld System.UInt32 PulseGroup::m_origCharge
IL_0868: ldarg.0
IL_0869: ldfld PulseGroup[] ElectricityManager::m_pulseGroups
IL_086E: ldloca.s 31 (ElectricityManager+PulseGroup)
IL_0870: ldfld System.UInt16 PulseGroup::m_mergeIndex
IL_0875: ldelema ElectricityManager+PulseGroup
IL_087A: ldloc.s 32 (ElectricityManager+PulseGroup)
IL_087C: stobj ElectricityManager+PulseGroup
IL_0881: ldarg.0
IL_0882: ldfld PulseGroup[] ElectricityManager::m_pulseGroups
IL_0887: ldloc.s 30 (System.Int32)
IL_0889: ldelema ElectricityManager+PulseGroup
IL_088E: ldloc.s 31 (ElectricityManager+PulseGroup)
IL_0890: stobj ElectricityManager+PulseGroup
IL_0895: Label57
IL_0895: ldloc.s 30 (System.Int32)
IL_0897: ldc.i4.1
IL_0898: add
IL_0899: stloc.s 30 (System.Int32)
IL_089B: Label56
IL_089B: ldloc.s 30 (System.Int32)
IL_089D: ldarg.0
IL_089E: ldfld System.Int32 ElectricityManager::m_pulseGroupCount
IL_08A3: blt => Label58
IL_08A8: ldc.i4.0
IL_08A9: stloc.s 33 (System.Int32)
IL_08AB: br => Label59
IL_08B0: Label62
IL_08B0: ldarg.0
IL_08B1: ldfld PulseGroup[] ElectricityManager::m_pulseGroups
IL_08B6: ldloc.s 33 (System.Int32)
IL_08B8: ldelema ElectricityManager+PulseGroup
IL_08BD: ldobj ElectricityManager+PulseGroup
IL_08C2: stloc.s 34 (ElectricityManager+PulseGroup)
IL_08C4: ldloca.s 34 (ElectricityManager+PulseGroup)
IL_08C6: ldfld System.UInt32 PulseGroup::m_curCharge
IL_08CB: brfalse => Label60
IL_08D0: ldloca.s 34 (ElectricityManager+PulseGroup)
IL_08D2: ldfld System.Byte PulseGroup::m_z
IL_08D7: ldc.i4 256
IL_08DC: mul
IL_08DD: ldloca.s 34 (ElectricityManager+PulseGroup)
IL_08DF: ldfld System.Byte PulseGroup::m_x
IL_08E4: add
IL_08E5: stloc.s 35 (System.Int32)
IL_08E7: ldarg.0
IL_08E8: ldfld Cell[] ElectricityManager::m_electricityGrid
IL_08ED: ldloc.s 35 (System.Int32)
IL_08EF: ldelema ElectricityManager+Cell
IL_08F4: ldobj ElectricityManager+Cell
IL_08F9: stloc.s 36 (ElectricityManager+Cell)
IL_08FB: ldloca.s 36 (ElectricityManager+Cell)
IL_08FD: ldfld System.Byte Cell::m_conductivity
IL_0902: brfalse => Label61
IL_0907: ldloca.s 36 (ElectricityManager+Cell)
IL_0909: dup
IL_090A: ldfld System.UInt16 Cell::m_extraCharge
IL_090F: ldloca.s 34 (ElectricityManager+PulseGroup)
IL_0911: ldfld System.UInt32 PulseGroup::m_curCharge
IL_0916: ldc.i4 32767
IL_091B: ldloca.s 36 (ElectricityManager+Cell)
IL_091D: ldfld System.UInt16 Cell::m_extraCharge
IL_0922: sub
IL_0923: call static System.Int32 UnityEngine.Mathf::Min(System.Int32 a,
System.Int32 b)
IL_0928: conv.u2
IL_0929: add
IL_092A: conv.u2
IL_092B: stfld System.UInt16 Cell::m_extraCharge
IL_0930: Label61
IL_0930: ldarg.0
IL_0931: ldfld Cell[] ElectricityManager::m_electricityGrid
IL_0936: ldloc.s 35 (System.Int32)
IL_0938: ldelema ElectricityManager+Cell
IL_093D: ldloc.s 36 (ElectricityManager+Cell)
IL_093F: stobj ElectricityManager+Cell
IL_0944: Label60
IL_0944: ldloc.s 33 (System.Int32)
IL_0946: ldc.i4.1
IL_0947: add
IL_0948: stloc.s 33 (System.Int32)
IL_094A: Label59
IL_094A: ldloc.s 33 (System.Int32)
IL_094C: ldarg.0
IL_094D: ldfld System.Int32 ElectricityManager::m_pulseGroupCount
IL_0952: blt => Label62
IL_0957: // end original
IL_0957: Label0
IL_0957: Label1
IL_0957: Label22
IL_0957: Label55
IL_0957: ret
DONE

### Patch: System.Void ElectricityManager::ConductToNode(System.UInt16 nodeIndex,


NetNode& node, System.UInt16 group, System.Single minX, System.Single minZ,
System.Single maxX, System.Single maxZ)
### Replacement: static System.Void
ElectricityManager::ElectricityManager.ConductToNode_Patch0(ElectricityManager
this, System.UInt16 nodeIndex, NetNode& node, System.UInt16 group, System.Single
minX, System.Single minZ, System.Single maxX, System.Single maxZ)
IL_0000: Local var 0: NetInfo
IL_0000: Local var 1: ElectricityManager/PulseUnit
IL_0000: Local var 2: System.Int32
IL_0000: Local var 3: System.UInt16
IL_0000: // start original
IL_0000: ldarg.2
IL_0001: ldflda UnityEngine.Vector3 NetNode::m_position
IL_0006: ldfld System.Single UnityEngine.Vector3::x
IL_000B: ldarg.s 4
IL_000D: blt.un => Label0
IL_0012: ldarg.2
IL_0013: ldflda UnityEngine.Vector3 NetNode::m_position
IL_0018: ldfld System.Single UnityEngine.Vector3::z
IL_001D: ldarg.s 5
IL_001F: blt.un => Label1
IL_0024: ldarg.2
IL_0025: ldflda UnityEngine.Vector3 NetNode::m_position
IL_002A: ldfld System.Single UnityEngine.Vector3::x
IL_002F: ldarg.s 6
IL_0031: bgt.un => Label2
IL_0036: ldarg.2
IL_0037: ldflda UnityEngine.Vector3 NetNode::m_position
IL_003C: ldfld System.Single UnityEngine.Vector3::z
IL_0041: ldarg.s 7
IL_0043: bgt.un => Label3
IL_0048: ldarg.2
IL_0049: call NetInfo NetNode::get_Info()
IL_004E: stloc.0
IL_004F: ldloc.0
IL_0050: ldfld ItemClass NetInfo::m_class
IL_0055: ldfld Service ItemClass::m_service
IL_005A: ldc.i4.s 10
IL_005C: beq => Label4
IL_0061: ldarg.2
IL_0062: call NetInfo NetNode::get_Info()
IL_0067: ldfld NetAI NetInfo::m_netAI
IL_006C: isinst ConcourseAI
IL_0071: brfalse => Label5
IL_0076: Label4
IL_0076: ldarg.0
IL_0077: ldfld System.UInt16[] ElectricityManager::m_nodeGroups
IL_007C: ldarg.1
IL_007D: ldelem.u2
IL_007E: ldc.i4 65535
IL_0083: bne.un => Label6
IL_0088: ldloca.s 1 (ElectricityManager+PulseUnit)
IL_008A: ldarg.3
IL_008B: stfld System.UInt16 PulseUnit::m_group
IL_0090: ldloca.s 1 (ElectricityManager+PulseUnit)
IL_0092: ldarg.1
IL_0093: stfld System.UInt16 PulseUnit::m_node
IL_0098: ldloca.s 1 (ElectricityManager+PulseUnit)
IL_009A: ldc.i4.0
IL_009B: stfld System.Byte PulseUnit::m_x
IL_00A0: ldloca.s 1 (ElectricityManager+PulseUnit)
IL_00A2: ldc.i4.0
IL_00A3: stfld System.Byte PulseUnit::m_z
IL_00A8: ldarg.0
IL_00A9: ldfld PulseUnit[] ElectricityManager::m_pulseUnits
IL_00AE: ldarg.0
IL_00AF: ldfld System.Int32 ElectricityManager::m_pulseUnitEnd
IL_00B4: ldelema ElectricityManager+PulseUnit
IL_00B9: ldloc.1
IL_00BA: stobj ElectricityManager+PulseUnit
IL_00BF: ldarg.0
IL_00C0: dup
IL_00C1: ldfld System.Int32 ElectricityManager::m_pulseUnitEnd
IL_00C6: ldc.i4.1
IL_00C7: add
IL_00C8: dup
IL_00C9: stloc.2
IL_00CA: stfld System.Int32 ElectricityManager::m_pulseUnitEnd
IL_00CF: ldloc.2
IL_00D0: ldarg.0
IL_00D1: ldfld PulseUnit[] ElectricityManager::m_pulseUnits
IL_00D6: ldlen
IL_00D7: conv.i4
IL_00D8: bne.un => Label7
IL_00DD: ldarg.0
IL_00DE: ldc.i4.0
IL_00DF: stfld System.Int32 ElectricityManager::m_pulseUnitEnd
IL_00E4: Label7
IL_00E4: ldarg.0
IL_00E5: ldfld System.UInt16[] ElectricityManager::m_nodeGroups
IL_00EA: ldarg.1
IL_00EB: ldarg.3
IL_00EC: stelem.i2
IL_00ED: ldarg.0
IL_00EE: ldc.i4.1
IL_00EF: stfld System.Boolean ElectricityManager::m_canContinue
IL_00F4: br => Label8
IL_00F9: Label6
IL_00F9: ldarg.0
IL_00FA: ldarg.0
IL_00FB: ldfld System.UInt16[] ElectricityManager::m_nodeGroups
IL_0100: ldarg.1
IL_0101: ldelem.u2
IL_0102: call System.UInt16 ElectricityManager::GetRootGroup(System.UInt16
group)
IL_0107: stloc.3
IL_0108: ldloc.3
IL_0109: ldarg.3
IL_010A: beq => Label9
IL_010F: ldarg.0
IL_0110: ldarg.3
IL_0111: ldloc.3
IL_0112: call System.Void ElectricityManager::MergeGroups(System.UInt16 root,
System.UInt16 merged)
IL_0117: ldarg.0
IL_0118: ldfld System.UInt16[] ElectricityManager::m_nodeGroups
IL_011D: ldarg.1
IL_011E: ldarg.3
IL_011F: stelem.i2
IL_0120: ldarg.0
IL_0121: ldc.i4.1
IL_0122: stfld System.Boolean ElectricityManager::m_canContinue
IL_0127: // end original
IL_0127: Label0
IL_0127: Label1
IL_0127: Label2
IL_0127: Label3
IL_0127: Label5
IL_0127: Label8
IL_0127: Label9
IL_0127: ret
DONE

### Patch: System.Void ElectricityManager::UpdateNodeElectricity(System.Int32


nodeID, System.Int32 value)
### Replacement: static System.Void
ElectricityManager::ElectricityManager.UpdateNodeElectricity_Patch0(ElectricityMana
ger this, System.Int32 nodeID, System.Int32 value)
IL_0000: Local var 0: InfoManager/InfoMode
IL_0000: Local var 1: NetManager
IL_0000: Local var 2: System.Boolean
IL_0000: Local var 3: NetNode/Flags
IL_0000: Local var 4: System.UInt16
IL_0000: Local var 5: BuildingManager
IL_0000: Local var 6: NetNode/Flags
IL_0000: Local var 7: System.Int32
IL_0000: Local var 8: System.UInt16
IL_0000: // start original
IL_0000: call static InfoManager
ColossalFramework.Singleton`1<InfoManager>::get_instance()
IL_0005: callvirt InfoMode InfoManager::get_CurrentMode()
IL_000A: stloc.0
IL_000B: call static NetManager
ColossalFramework.Singleton`1<NetManager>::get_instance()
IL_0010: stloc.1
IL_0011: ldc.i4.0
IL_0012: stloc.2
IL_0013: ldloc.1
IL_0014: ldfld Array16`1<NetNode> NetManager::m_nodes
IL_0019: ldfld NetNode[] Array16`1<NetNode>::m_buffer
IL_001E: ldarg.1
IL_001F: ldelema NetNode
IL_0024: ldfld Flags NetNode::m_flags
IL_0029: stloc.3
IL_002A: ldloc.3
IL_002B: ldc.i4 1048576
IL_0030: and
IL_0031: brfalse => Label0
IL_0036: ldloc.1
IL_0037: ldfld Array16`1<NetNode> NetManager::m_nodes
IL_003C: ldfld NetNode[] Array16`1<NetNode>::m_buffer
IL_0041: ldarg.1
IL_0042: ldelema NetNode
IL_0047: dup
IL_0048: ldfld Flags NetNode::m_flags
IL_004D: ldc.i4 -1048577
IL_0052: and
IL_0053: stfld Flags NetNode::m_flags
IL_0058: br => Label10
IL_005D: Label0
IL_005D: ldloc.1
IL_005E: ldfld Array16`1<NetNode> NetManager::m_nodes
IL_0063: ldfld NetNode[] Array16`1<NetNode>::m_buffer
IL_0068: ldarg.1
IL_0069: ldelema NetNode
IL_006E: ldfld System.UInt16 NetNode::m_building
IL_0073: stloc.s 4 (System.UInt16)
IL_0075: ldloc.s 4 (System.UInt16)
IL_0077: brfalse => Label1
IL_007C: call static BuildingManager
ColossalFramework.Singleton`1<BuildingManager>::get_instance()
IL_0081: stloc.s 5 (BuildingManager)
IL_0083: ldloc.s 5 (BuildingManager)
IL_0085: ldfld Array16`1<Building> BuildingManager::m_buildings
IL_008A: ldfld Building[] Array16`1<Building>::m_buffer
IL_008F: ldloc.s 4 (System.UInt16)
IL_0091: ldelema Building
IL_0096: ldfld System.UInt16 Building::m_electricityBuffer
IL_009B: ldarg.2
IL_009C: beq => Label2
IL_00A1: ldloc.s 5 (BuildingManager)
IL_00A3: ldfld Array16`1<Building> BuildingManager::m_buildings
IL_00A8: ldfld Building[] Array16`1<Building>::m_buffer
IL_00AD: ldloc.s 4 (System.UInt16)
IL_00AF: ldelema Building
IL_00B4: ldarg.2
IL_00B5: conv.u2
IL_00B6: stfld System.UInt16 Building::m_electricityBuffer
IL_00BB: ldloc.0
IL_00BC: ldc.i4.1
IL_00BD: ceq
IL_00BF: stloc.2
IL_00C0: Label2
IL_00C0: ldloc.2
IL_00C1: brfalse => Label3
IL_00C6: ldloc.s 5 (BuildingManager)
IL_00C8: ldloc.s 4 (System.UInt16)
IL_00CA: callvirt System.Void BuildingManager::UpdateBuildingColors(System.UInt16
building)
IL_00CF: Label1
IL_00CF: Label3
IL_00CF: ldloc.3
IL_00D0: ldc.i4 -67108865
IL_00D5: and
IL_00D6: stloc.s 6 (NetNode+Flags)
IL_00D8: ldarg.2
IL_00D9: brfalse => Label4
IL_00DE: ldloc.s 6 (NetNode+Flags)
IL_00E0: ldc.i4 67108864
IL_00E5: or
IL_00E6: stloc.s 6 (NetNode+Flags)
IL_00E8: Label4
IL_00E8: ldloc.s 6 (NetNode+Flags)
IL_00EA: ldloc.3
IL_00EB: beq => Label5
IL_00F0: ldloc.1
IL_00F1: ldfld Array16`1<NetNode> NetManager::m_nodes
IL_00F6: ldfld NetNode[] Array16`1<NetNode>::m_buffer
IL_00FB: ldarg.1
IL_00FC: ldelema NetNode
IL_0101: ldloc.s 6 (NetNode+Flags)
IL_0103: stfld Flags NetNode::m_flags
IL_0108: ldloc.0
IL_0109: ldc.i4.1
IL_010A: ceq
IL_010C: stloc.2
IL_010D: Label5
IL_010D: ldloc.2
IL_010E: brfalse => Label6
IL_0113: ldloc.1
IL_0114: ldarg.1
IL_0115: conv.u2
IL_0116: callvirt System.Void NetManager::UpdateNodeColors(System.UInt16 node)
IL_011B: ldc.i4.0
IL_011C: stloc.s 7 (System.Int32)
IL_011E: br => Label7
IL_0123: Label9
IL_0123: ldloc.1
IL_0124: ldfld Array16`1<NetNode> NetManager::m_nodes
IL_0129: ldfld NetNode[] Array16`1<NetNode>::m_buffer
IL_012E: ldarg.1
IL_012F: ldelema NetNode
IL_0134: ldloc.s 7 (System.Int32)
IL_0136: call System.UInt16 NetNode::GetSegment(System.Int32 index)
IL_013B: stloc.s 8 (System.UInt16)
IL_013D: ldloc.s 8 (System.UInt16)
IL_013F: brfalse => Label8
IL_0144: ldloc.1
IL_0145: ldloc.s 8 (System.UInt16)
IL_0147: callvirt System.Void NetManager::UpdateSegmentColors(System.UInt16
segment)
IL_014C: Label8
IL_014C: ldloc.s 7 (System.Int32)
IL_014E: ldc.i4.1
IL_014F: add
IL_0150: stloc.s 7 (System.Int32)
IL_0152: Label7
IL_0152: ldloc.s 7 (System.Int32)
IL_0154: ldc.i4.8
IL_0155: blt => Label9
IL_015A: // end original
IL_015A: Label6
IL_015A: Label10
IL_015A: ret
DONE

### Patch: virtual System.Void ColossalFramework.UI.UIView::Start()


### Replacement: static System.Void
ColossalFramework.UI.UIView::ColossalFramework.UI.UIView.Start_Patch1(ColossalFrame
work.UI.UIView this)
IL_0000: Local var 0:
ColossalFramework.PoolList`1<ColossalFramework.UI.UIComponent>
IL_0000: Local var 1: ColossalFramework.UI.UIComponent
IL_0000: Local var 2:
System.Collections.Generic.IEnumerator`1<ColossalFramework.UI.UIComponent>
IL_0000: // start original
IL_0000: ldarg.0
IL_0001: ldc.i4.0
IL_0002: stfld System.Int32 ColossalFramework.UI.UIView::m_FramesRendered
IL_0007: ldarg.0
IL_0008: call System.Void
ColossalFramework.UI.UIView::InvalidateAllComponents()
IL_000D: ldarg.0
IL_000E: ldfld UnityEngine.MeshRenderer
ColossalFramework.UI.UIView::m_MeshRenderer
IL_0013: ldnull
IL_0014: call static System.Boolean
UnityEngine.Object::op_Inequality(UnityEngine.Object x, UnityEngine.Object y)
IL_0019: brfalse => Label0
IL_001E: ldarg.0
IL_001F: ldfld UnityEngine.MeshRenderer
ColossalFramework.UI.UIView::m_MeshRenderer
IL_0024: ldc.i4.1
IL_0025: callvirt System.Void UnityEngine.Renderer::set_enabled(System.Boolean
value)
IL_002A: Label0
IL_002A: ldarg.0
IL_002B: call ColossalFramework.PoolList`1<ColossalFramework.UI.UIComponent>
ColossalFramework.UI.UIView::GetTopLevelComponents()
IL_0030: stloc.0
.try
{
IL_0031: ldloc.0
IL_0032: callvirt virtual
System.Collections.Generic.IEnumerator`1<ColossalFramework.UI.UIComponent>
ColossalFramework.PoolList`1<ColossalFramework.UI.UIComponent>::GetEnumerator()
IL_0037: stloc.2
.try
{
IL_0038: br => Label1
IL_003D: Label2
IL_003D: ldloc.2
IL_003E: callvirt abstract virtual ColossalFramework.UI.UIComponent
System.Collections.Generic.IEnumerator`1<ColossalFramework.UI.UIComponent>::get_Cur
rent()
IL_0043: stloc.1
IL_0044: ldloc.1
IL_0045: ldc.i4.1
IL_0046: callvirt System.Void
ColossalFramework.UI.UIComponent::InitializeParentVisibilityCache(System.Boolean
parentVisible)
IL_004B: Label1
IL_004B: ldloc.2
IL_004C: callvirt abstract virtual System.Boolean
System.Collections.IEnumerator::MoveNext()
IL_0051: brtrue => Label2
IL_0056: leave => Label3
IL_005B: leave => (autogenerated)
} // end try
.finally
{
IL_0060: ldloc.2
IL_0061: brfalse => Label4
IL_0066: ldloc.2
IL_0067: callvirt abstract virtual System.Void
System.IDisposable::Dispose()
IL_006C: Label4
IL_006C: endfinally
IL_006D: leave => (autogenerated)
} // end handler
IL_006E: Label3
IL_006E: leave => Label5
IL_0073: leave => (autogenerated)
} // end try
.finally
{
IL_0078: ldloc.0
IL_0079: brfalse => Label6
IL_007E: ldloc.0
IL_007F: callvirt abstract virtual System.Void
System.IDisposable::Dispose()
IL_0084: Label6
IL_0084: endfinally
IL_0085: leave => (autogenerated)
} // end handler
IL_0086: Label5
IL_0086: ldarg.0
IL_0087: ldc.i4.1
IL_0088: stfld System.Boolean
ColossalFramework.UI.UIView::m_VisibilityCacheInitialized
IL_008D: // end original
IL_008D: call static System.Void
Kwytto.Redirectors.UIViewRedirector::AfterStart()
IL_0092: ret
DONE

### Patch: virtual UnityEngine.Color NetAI::GetColor(System.UInt16 nodeID, NetNode&


data, InfoMode infoMode, SubInfoMode subInfoMode)
### Replacement: static UnityEngine.Color NetAI::NetAI.GetColor_Patch1(NetAI this,
System.UInt16 nodeID, NetNode& data, InfoMode infoMode, SubInfoMode subInfoMode)
IL_0000: Local var 0: UnityEngine.Color
IL_0000: ldloca 0 (UnityEngine.Color)
IL_0004: initobj UnityEngine.Color
IL_000A: // start original
IL_000A: ldarg.3
IL_000B: brfalse => Label0
IL_0010: call static InfoManager
ColossalFramework.Singleton`1<InfoManager>::get_instance()
IL_0015: ldfld InfoProperties SimulationManagerBase`2<InfoManager,
InfoProperties>::m_properties
IL_001A: ldfld UnityEngine.Color InfoProperties::m_neutralColor
IL_001F: br => Label1
IL_0024: Label0
IL_0024: ldarg.0
IL_0025: ldfld NetInfo NetAI::m_info
IL_002A: ldfld UnityEngine.Color NetInfo::m_color
IL_002F: // end original
IL_002F: Label1
IL_002F: stloc 0 (UnityEngine.Color)
IL_0033: ldloca 0 (UnityEngine.Color)
IL_0037: ldarg 1
IL_003B: ldarg 2
IL_003F: ldarg 3
IL_0043: ldarg 4
IL_0047: call static System.Void
ElectricRoads.Overrides.ElectricRoadsOverrides::AfterGetColorNode(UnityEngine.Color
& __result, System.UInt16 nodeID, NetNode& data, InfoMode infoMode, SubInfoMode
subInfoMode)
IL_004C: ldloc 0 (UnityEngine.Color)
IL_0050: ret
DONE

### Patch: virtual UnityEngine.Color NetAI::GetColor(System.UInt16 segmentID,


NetSegment& data, InfoMode infoMode, SubInfoMode subInfoMode)
### Replacement: static UnityEngine.Color NetAI::NetAI.GetColor_Patch1(NetAI this,
System.UInt16 segmentID, NetSegment& data, InfoMode infoMode, SubInfoMode
subInfoMode)
IL_0000: Local var 0: UnityEngine.Color
IL_0000: ldloca 0 (UnityEngine.Color)
IL_0004: initobj UnityEngine.Color
IL_000A: // start original
IL_000A: ldarg.3
IL_000B: brfalse => Label0
IL_0010: call static InfoManager
ColossalFramework.Singleton`1<InfoManager>::get_instance()
IL_0015: ldfld InfoProperties SimulationManagerBase`2<InfoManager,
InfoProperties>::m_properties
IL_001A: ldfld UnityEngine.Color InfoProperties::m_neutralColor
IL_001F: br => Label1
IL_0024: Label0
IL_0024: ldarg.0
IL_0025: ldfld NetInfo NetAI::m_info
IL_002A: ldfld UnityEngine.Color NetInfo::m_color
IL_002F: // end original
IL_002F: Label1
IL_002F: stloc 0 (UnityEngine.Color)
IL_0033: ldloca 0 (UnityEngine.Color)
IL_0037: ldarg 1
IL_003B: ldarg 2
IL_003F: ldarg 3
IL_0043: ldarg 4
IL_0047: call static System.Void
ElectricRoads.Overrides.ElectricRoadsOverrides::AfterGetColorSegment(UnityEngine.Co
lor& __result, System.UInt16 segmentID, NetSegment& data, InfoMode infoMode,
SubInfoMode subInfoMode)
IL_004C: ldloc 0 (UnityEngine.Color)
IL_0050: ret
DONE

### Patch: System.Void ElectricityManager::UpdateNodeElectricity(System.Int32


nodeID, System.Int32 value)
### Replacement: static System.Void
ElectricityManager::ElectricityManager.UpdateNodeElectricity_Patch0(ElectricityMana
ger this, System.Int32 nodeID, System.Int32 value)
IL_0000: Local var 0: InfoManager/InfoMode
IL_0000: Local var 1: NetManager
IL_0000: Local var 2: System.Boolean
IL_0000: Local var 3: NetNode/Flags
IL_0000: Local var 4: System.UInt16
IL_0000: Local var 5: BuildingManager
IL_0000: Local var 6: NetNode/Flags
IL_0000: Local var 7: System.Int32
IL_0000: Local var 8: System.UInt16
IL_0000: // start original
IL_0000: call static InfoManager
ColossalFramework.Singleton`1<InfoManager>::get_instance()
IL_0005: callvirt InfoMode InfoManager::get_CurrentMode()
IL_000A: stloc.0
IL_000B: call static NetManager
ColossalFramework.Singleton`1<NetManager>::get_instance()
IL_0010: stloc.1
IL_0011: ldc.i4.0
IL_0012: stloc.2
IL_0013: ldloc.1
IL_0014: ldfld Array16`1<NetNode> NetManager::m_nodes
IL_0019: ldfld NetNode[] Array16`1<NetNode>::m_buffer
IL_001E: ldarg.1
IL_001F: ldelema NetNode
IL_0024: ldfld Flags NetNode::m_flags
IL_0029: stloc.3
IL_002A: ldarg.1
IL_002B: call static System.Boolean
ElectricRoads.Overrides.ElectricRoadsOverrides::CheckNodeTransition(System.Int32
nodeID)
IL_0030: brfalse => Label0
IL_0035: ldloc.1
IL_0036: ldfld Array16`1<NetNode> NetManager::m_nodes
IL_003B: ldfld NetNode[] Array16`1<NetNode>::m_buffer
IL_0040: ldarg.1
IL_0041: ldelema NetNode
IL_0046: dup
IL_0047: ldfld Flags NetNode::m_flags
IL_004C: ldc.i4 -1048577
IL_0051: and
IL_0052: stfld Flags NetNode::m_flags
IL_0057: br => Label10
IL_005C: Label0
IL_005C: ldloc.1
IL_005D: ldfld Array16`1<NetNode> NetManager::m_nodes
IL_0062: ldfld NetNode[] Array16`1<NetNode>::m_buffer
IL_0067: ldarg.1
IL_0068: ldelema NetNode
IL_006D: ldfld System.UInt16 NetNode::m_building
IL_0072: stloc.s 4 (System.UInt16)
IL_0074: ldloc.s 4 (System.UInt16)
IL_0076: brfalse => Label1
IL_007B: call static BuildingManager
ColossalFramework.Singleton`1<BuildingManager>::get_instance()
IL_0080: stloc.s 5 (BuildingManager)
IL_0082: ldloc.s 5 (BuildingManager)
IL_0084: ldfld Array16`1<Building> BuildingManager::m_buildings
IL_0089: ldfld Building[] Array16`1<Building>::m_buffer
IL_008E: ldloc.s 4 (System.UInt16)
IL_0090: ldelema Building
IL_0095: ldfld System.UInt16 Building::m_electricityBuffer
IL_009A: ldarg.2
IL_009B: beq => Label2
IL_00A0: ldloc.s 5 (BuildingManager)
IL_00A2: ldfld Array16`1<Building> BuildingManager::m_buildings
IL_00A7: ldfld Building[] Array16`1<Building>::m_buffer
IL_00AC: ldloc.s 4 (System.UInt16)
IL_00AE: ldelema Building
IL_00B3: ldarg.2
IL_00B4: conv.u2
IL_00B5: stfld System.UInt16 Building::m_electricityBuffer
IL_00BA: ldloc.0
IL_00BB: ldc.i4.1
IL_00BC: ceq
IL_00BE: stloc.2
IL_00BF: Label2
IL_00BF: ldloc.2
IL_00C0: brfalse => Label3
IL_00C5: ldloc.s 5 (BuildingManager)
IL_00C7: ldloc.s 4 (System.UInt16)
IL_00C9: callvirt System.Void BuildingManager::UpdateBuildingColors(System.UInt16
building)
IL_00CE: Label1
IL_00CE: Label3
IL_00CE: ldloc.3
IL_00CF: ldc.i4 -67108865
IL_00D4: and
IL_00D5: stloc.s 6 (NetNode+Flags)
IL_00D7: ldarg.2
IL_00D8: brfalse => Label4
IL_00DD: ldloc.s 6 (NetNode+Flags)
IL_00DF: ldc.i4 67108864
IL_00E4: or
IL_00E5: stloc.s 6 (NetNode+Flags)
IL_00E7: Label4
IL_00E7: ldloc.s 6 (NetNode+Flags)
IL_00E9: ldloc.3
IL_00EA: beq => Label5
IL_00EF: ldloc.1
IL_00F0: ldfld Array16`1<NetNode> NetManager::m_nodes
IL_00F5: ldfld NetNode[] Array16`1<NetNode>::m_buffer
IL_00FA: ldarg.1
IL_00FB: ldelema NetNode
IL_0100: ldloc.s 6 (NetNode+Flags)
IL_0102: stfld Flags NetNode::m_flags
IL_0107: ldloc.0
IL_0108: ldc.i4.1
IL_0109: ceq
IL_010B: stloc.2
IL_010C: Label5
IL_010C: ldloc.2
IL_010D: brfalse => Label6
IL_0112: ldloc.1
IL_0113: ldarg.1
IL_0114: conv.u2
IL_0115: callvirt System.Void NetManager::UpdateNodeColors(System.UInt16 node)
IL_011A: ldc.i4.0
IL_011B: stloc.s 7 (System.Int32)
IL_011D: br => Label7
IL_0122: Label9
IL_0122: ldloc.1
IL_0123: ldfld Array16`1<NetNode> NetManager::m_nodes
IL_0128: ldfld NetNode[] Array16`1<NetNode>::m_buffer
IL_012D: ldarg.1
IL_012E: ldelema NetNode
IL_0133: ldloc.s 7 (System.Int32)
IL_0135: call System.UInt16 NetNode::GetSegment(System.Int32 index)
IL_013A: stloc.s 8 (System.UInt16)
IL_013C: ldloc.s 8 (System.UInt16)
IL_013E: brfalse => Label8
IL_0143: ldloc.1
IL_0144: ldloc.s 8 (System.UInt16)
IL_0146: callvirt System.Void NetManager::UpdateSegmentColors(System.UInt16
segment)
IL_014B: Label8
IL_014B: ldloc.s 7 (System.Int32)
IL_014D: ldc.i4.1
IL_014E: add
IL_014F: stloc.s 7 (System.Int32)
IL_0151: Label7
IL_0151: ldloc.s 7 (System.Int32)
IL_0153: ldc.i4.8
IL_0154: blt => Label9
IL_0159: // end original
IL_0159: Label6
IL_0159: Label10
IL_0159: ret
DONE

### Patch: static System.Void PropInstance::RenderInstance(CameraInfo cameraInfo,


PropInfo info, InstanceID id, UnityEngine.Vector3 position, System.Single scale,
System.Single angle, UnityEngine.Color color, UnityEngine.Vector4 objectIndex,
System.Boolean active, UnityEngine.Texture heightMap, UnityEngine.Vector4
heightMapping, UnityEngine.Vector4 surfaceMapping, UnityEngine.Texture
waterHeightMap, UnityEngine.Vector4 waterHeightMapping, UnityEngine.Vector4
waterSurfaceMapping)
### Replacement: static System.Void
PropInstance::PropInstance.RenderInstance_Patch0(CameraInfo cameraInfo, PropInfo
info, InstanceID id, UnityEngine.Vector3 position, System.Single scale,
System.Single angle, UnityEngine.Color color, UnityEngine.Vector4 objectIndex,
System.Boolean active, UnityEngine.Texture heightMap, UnityEngine.Vector4
heightMapping, UnityEngine.Vector4 surfaceMapping, UnityEngine.Texture
waterHeightMap, UnityEngine.Vector4 waterHeightMapping, UnityEngine.Vector4
waterSurfaceMapping)
IL_0000: Local var 0: UnityEngine.Matrix4x4
IL_0000: Local var 1: System.Single
IL_0000: Local var 2: System.Int32
IL_0000: Local var 3: UnityEngine.Vector3
IL_0000: Local var 4: UnityEngine.Vector3
IL_0000: Local var 5: EffectInfo/SpawnArea
IL_0000: Local var 6: System.Single
IL_0000: Local var 7: LightSystem
IL_0000: Local var 8: ColossalFramework.Math.Randomizer
IL_0000: Local var 9: UnityEngine.Vector4
IL_0000: Local var 10: System.Single
IL_0000: Local var 11: System.Single
IL_0000: Local var 12: System.Single
IL_0000: Local var 13: UnityEngine.Matrix4x4
IL_0000: Local var 14: PropManager
IL_0000: Local var 15: UnityEngine.MaterialPropertyBlock
IL_0000: Local var 16: System.Int32
IL_0000: // start original
IL_0000: ldarg.1
IL_0001: ldfld System.Boolean PrefabInfo::m_prefabInitialized
IL_0006: brfalse => Label0
IL_000B: ldarg.1
IL_000C: ldfld System.Boolean PropInfo::m_hasEffects
IL_0011: brfalse => Label1
IL_0016: ldarg.s 8
IL_0018: brtrue => Label2
IL_001D: ldarg.1
IL_001E: ldfld System.Boolean PropInfo::m_alwaysActive
IL_0023: brfalse => Label3
IL_0028: Label2
IL_0028: ldloca.s 0 (UnityEngine.Matrix4x4)
IL_002A: initobj UnityEngine.Matrix4x4
IL_0030: ldloca.s 0 (UnityEngine.Matrix4x4)
IL_0032: ldarg.3
IL_0033: ldarg.s 5
IL_0035: ldc.r4 57.29578
IL_003A: mul
IL_003B: call static UnityEngine.Vector3 UnityEngine.Vector3::get_down()
IL_0040: call static UnityEngine.Quaternion
UnityEngine.Quaternion::AngleAxis(System.Single angle, UnityEngine.Vector3 axis)
IL_0045: ldarg.s 4
IL_0047: ldarg.s 4
IL_0049: ldarg.s 4
IL_004B: newobj System.Void UnityEngine.Vector3::.ctor(System.Single x,
System.Single y, System.Single z)
IL_0050: call System.Void UnityEngine.Matrix4x4::SetTRS(UnityEngine.Vector3
pos, UnityEngine.Quaternion q, UnityEngine.Vector3 s)
IL_0055: call static SimulationManager
ColossalFramework.Singleton`1<SimulationManager>::get_instance()
IL_005A: ldfld System.Single SimulationManager::m_simulationTimeDelta
IL_005F: stloc.1
IL_0060: ldc.i4.0
IL_0061: stloc.2
IL_0062: br => Label4
IL_0067: Label5
IL_0067: ldloca.s 0 (UnityEngine.Matrix4x4)
IL_0069: ldarg.1
IL_006A: ldfld Effect[] PropInfo::m_effects
IL_006F: ldloc.2
IL_0070: ldelema PropInfo+Effect
IL_0075: ldfld UnityEngine.Vector3 Effect::m_position
IL_007A: call UnityEngine.Vector3
UnityEngine.Matrix4x4::MultiplyPoint(UnityEngine.Vector3 v)
IL_007F: stloc.3
IL_0080: ldloca.s 0 (UnityEngine.Matrix4x4)
IL_0082: ldarg.1
IL_0083: ldfld Effect[] PropInfo::m_effects
IL_0088: ldloc.2
IL_0089: ldelema PropInfo+Effect
IL_008E: ldfld UnityEngine.Vector3 Effect::m_direction
IL_0093: call UnityEngine.Vector3
UnityEngine.Matrix4x4::MultiplyVector(UnityEngine.Vector3 v)
IL_0098: stloc.s 4 (UnityEngine.Vector3)
IL_009A: ldloca.s 5 (EffectInfo+SpawnArea)
IL_009C: ldloc.3
IL_009D: ldloc.s 4 (UnityEngine.Vector3)
IL_009F: ldc.r4 0
IL_00A4: call System.Void SpawnArea::.ctor(UnityEngine.Vector3 position,
UnityEngine.Vector3 direction, System.Single radius)
IL_00A9: ldarg.1
IL_00AA: ldfld Effect[] PropInfo::m_effects
IL_00AF: ldloc.2
IL_00B0: ldelema PropInfo+Effect
IL_00B5: ldfld EffectInfo Effect::m_effect
IL_00BA: ldarg.2
IL_00BB: ldloc.s 5 (EffectInfo+SpawnArea)
IL_00BD: call static UnityEngine.Vector3 UnityEngine.Vector3::get_zero()
IL_00C2: ldc.r4 0
IL_00C7: ldc.r4 1
IL_00CC: ldc.r4 -1
IL_00D1: ldloc.1
IL_00D2: ldarg.0
IL_00D3: callvirt virtual System.Void EffectInfo::RenderEffect(InstanceID id,
SpawnArea area, UnityEngine.Vector3 velocity, System.Single acceleration,
System.Single magnitude, System.Single timeOffset, System.Single timeDelta,
CameraInfo cameraInfo)
IL_00D8: ldloc.2
IL_00D9: ldc.i4.1
IL_00DA: add
IL_00DB: stloc.2
IL_00DC: Label4
IL_00DC: ldloc.2
IL_00DD: ldarg.1
IL_00DE: ldfld Effect[] PropInfo::m_effects
IL_00E3: ldlen
IL_00E4: conv.i4
IL_00E5: blt => Label5
IL_00EA: Label1
IL_00EA: Label3
IL_00EA: ldarg.1
IL_00EB: ldfld System.Boolean PropInfo::m_hasRenderer
IL_00F0: brfalse => Label6
IL_00F5: ldarg.0
IL_00F6: ldfld System.Int32 CameraInfo::m_layerMask
IL_00FB: ldc.i4.1
IL_00FC: ldarg.1
IL_00FD: ldfld System.Int32 PrefabInfo::m_prefabDataLayer
IL_0102: ldc.i4.s 31
IL_0104: and
IL_0105: shl
IL_0106: and
IL_0107: brfalse => Label7
IL_010C: call static InfoManager
ColossalFramework.Singleton`1<InfoManager>::get_instance()
IL_0111: callvirt InfoMode InfoManager::get_CurrentMode()
IL_0116: brtrue => Label8
IL_011B: ldarg 2
IL_011F: call static System.Boolean
ElectricRoads.Overrides.ElectricRoadsOverrides::CheckElectrityNetForLight(InstanceI
D id)
IL_0124: brfalse => Label24
IL_0129: ldc.r4 0
IL_012E: stloc.s 6 (System.Single)
IL_0130: ldarg.s 8
IL_0132: brtrue => Label9
IL_0137: ldarg.1
IL_0138: ldfld System.Boolean PropInfo::m_alwaysActive
IL_013D: brtrue => Label10
IL_0142: Label24
IL_0142: ldarga.s 7
IL_0144: ldc.r4 0
IL_0149: stfld System.Single UnityEngine.Vector4::z
IL_014E: br => Label11
IL_0153: Label9
IL_0153: Label10
IL_0153: ldarg.1
IL_0154: ldflda UnityEngine.Vector2 PropInfo::m_illuminationOffRange
IL_0159: ldfld System.Single UnityEngine.Vector2::x
IL_015E: ldc.r4 1000
IL_0163: blt => Label12
IL_0168: ldarg.1
IL_0169: ldfld BlinkType PropInfo::m_illuminationBlinkType
IL_016E: brfalse => Label13
IL_0173: Label12
IL_0173: call static RenderManager
ColossalFramework.Singleton`1<RenderManager>::get_instance()
IL_0178: callvirt LightSystem RenderManager::get_lightSystem()
IL_017D: stloc.s 7 (LightSystem)
IL_017F: ldloca.s 8 (ColossalFramework.Math.Randomizer)
IL_0181: ldarga.s 2
IL_0183: call System.UInt32 InstanceID::get_Index()
IL_0188: call System.Void
ColossalFramework.Math.Randomizer::.ctor(System.UInt32 _seed)
IL_018D: ldarg.1
IL_018E: ldflda UnityEngine.Vector2 PropInfo::m_illuminationOffRange
IL_0193: ldfld System.Single UnityEngine.Vector2::x
IL_0198: ldloca.s 8 (ColossalFramework.Math.Randomizer)
IL_019A: ldc.i4 100000
IL_019F: call System.Int32
ColossalFramework.Math.Randomizer::Int32(System.UInt32 range)
IL_01A4: conv.r4
IL_01A5: ldc.r4 1E-05
IL_01AA: mul
IL_01AB: ldarg.1
IL_01AC: ldflda UnityEngine.Vector2 PropInfo::m_illuminationOffRange
IL_01B1: ldfld System.Single UnityEngine.Vector2::y
IL_01B6: ldarg.1
IL_01B7: ldflda UnityEngine.Vector2 PropInfo::m_illuminationOffRange
IL_01BC: ldfld System.Single UnityEngine.Vector2::x
IL_01C1: sub
IL_01C2: mul
IL_01C3: add
IL_01C4: stloc.s 6 (System.Single)
IL_01C6: ldarga.s 7
IL_01C8: ldloc.s 6 (System.Single)
IL_01CA: ldc.r4 0.01
IL_01CF: add
IL_01D0: ldloc.s 6 (System.Single)
IL_01D2: ldc.r4 0.01
IL_01D7: sub
IL_01D8: ldloc.s 7 (LightSystem)
IL_01DA: callvirt System.Single LightSystem::get_DayLightIntensity()
IL_01DF: call static System.Single MathUtils::SmoothStep(System.Single edge0,
System.Single edge1, System.Single x)
IL_01E4: stfld System.Single UnityEngine.Vector4::z
IL_01E9: ldarg.1
IL_01EA: ldfld BlinkType PropInfo::m_illuminationBlinkType
IL_01EF: brfalse => Label14
IL_01F4: ldarg.1
IL_01F5: ldfld BlinkType PropInfo::m_illuminationBlinkType
IL_01FA: call static UnityEngine.Vector4
LightEffect::GetBlinkVector(BlinkType type)
IL_01FF: stloc.s 9 (UnityEngine.Vector4)
IL_0201: ldloc.s 6 (System.Single)
IL_0203: ldc.r4 3.71
IL_0208: mul
IL_0209: call static SimulationManager
ColossalFramework.Singleton`1<SimulationManager>::get_instance()
IL_020E: ldfld System.Single SimulationManager::m_simulationTimer
IL_0213: ldloca.s 9 (UnityEngine.Vector4)
IL_0215: ldfld System.Single UnityEngine.Vector4::w
IL_021A: div
IL_021B: add
IL_021C: stloc.s 10 (System.Single)
IL_021E: ldloc.s 10 (System.Single)
IL_0220: ldloc.s 10 (System.Single)
IL_0222: call static System.Single UnityEngine.Mathf::Floor(System.Single f)
IL_0227: sub
IL_0228: ldloca.s 9 (UnityEngine.Vector4)
IL_022A: ldfld System.Single UnityEngine.Vector4::w
IL_022F: mul
IL_0230: stloc.s 10 (System.Single)
IL_0232: ldloca.s 9 (UnityEngine.Vector4)
IL_0234: ldfld System.Single UnityEngine.Vector4::x
IL_0239: ldloca.s 9 (UnityEngine.Vector4)
IL_023B: ldfld System.Single UnityEngine.Vector4::y
IL_0240: ldloc.s 10 (System.Single)
IL_0242: call static System.Single MathUtils::SmoothStep(System.Single edge0,
System.Single edge1, System.Single x)
IL_0247: stloc.s 11 (System.Single)
IL_0249: ldloca.s 9 (UnityEngine.Vector4)
IL_024B: ldfld System.Single UnityEngine.Vector4::w
IL_0250: ldloca.s 9 (UnityEngine.Vector4)
IL_0252: ldfld System.Single UnityEngine.Vector4::z
IL_0257: ldloc.s 10 (System.Single)
IL_0259: call static System.Single MathUtils::SmoothStep(System.Single edge0,
System.Single edge1, System.Single x)
IL_025E: stloc.s 12 (System.Single)
IL_0260: ldarga.s 7
IL_0262: dup
IL_0263: ldfld System.Single UnityEngine.Vector4::z
IL_0268: ldc.r4 1
IL_026D: ldloc.s 11 (System.Single)
IL_026F: ldloc.s 12 (System.Single)
IL_0271: mul
IL_0272: sub
IL_0273: mul
IL_0274: stfld System.Single UnityEngine.Vector4::z
IL_0279: Label14
IL_0279: br => Label15
IL_027E: Label13
IL_027E: ldarga.s 7
IL_0280: ldc.r4 1
IL_0285: stfld System.Single UnityEngine.Vector4::z
IL_028A: Label8
IL_028A: Label11
IL_028A: Label15
IL_028A: ldarg.0
IL_028B: brfalse => Label16
IL_0290: ldarg.0
IL_0291: ldarg.3
IL_0292: ldarg.1
IL_0293: ldfld System.Single PropInfo::m_lodRenderDistance
IL_0298: callvirt System.Boolean
CameraInfo::CheckRenderDistance(UnityEngine.Vector3 point, System.Single
maxDistance)
IL_029D: brfalse => Label17
IL_02A2: Label16
IL_02A2: ldloca.s 13 (UnityEngine.Matrix4x4)
IL_02A4: initobj UnityEngine.Matrix4x4
IL_02AA: ldloca.s 13 (UnityEngine.Matrix4x4)
IL_02AC: ldarg.3
IL_02AD: ldarg.s 5
IL_02AF: ldc.r4 57.29578
IL_02B4: mul
IL_02B5: call static UnityEngine.Vector3 UnityEngine.Vector3::get_down()
IL_02BA: call static UnityEngine.Quaternion
UnityEngine.Quaternion::AngleAxis(System.Single angle, UnityEngine.Vector3 axis)
IL_02BF: ldarg.s 4
IL_02C1: ldarg.s 4
IL_02C3: ldarg.s 4
IL_02C5: newobj System.Void UnityEngine.Vector3::.ctor(System.Single x,
System.Single y, System.Single z)
IL_02CA: call System.Void UnityEngine.Matrix4x4::SetTRS(UnityEngine.Vector3
pos, UnityEngine.Quaternion q, UnityEngine.Vector3 s)
IL_02CF: call static PropManager
ColossalFramework.Singleton`1<PropManager>::get_instance()
IL_02D4: stloc.s 14 (PropManager)
IL_02D6: ldloc.s 14 (PropManager)
IL_02D8: ldfld UnityEngine.MaterialPropertyBlock PropManager::m_materialBlock
IL_02DD: stloc.s 15 (UnityEngine.MaterialPropertyBlock)
IL_02DF: ldloc.s 15 (UnityEngine.MaterialPropertyBlock)
IL_02E1: callvirt System.Void UnityEngine.MaterialPropertyBlock::Clear()
IL_02E6: ldloc.s 15 (UnityEngine.MaterialPropertyBlock)
IL_02E8: ldloc.s 14 (PropManager)
IL_02EA: ldfld System.Int32 PropManager::ID_Color
IL_02EF: ldarg.s 6
IL_02F1: callvirt System.Void
UnityEngine.MaterialPropertyBlock::SetColor(System.Int32 nameID, UnityEngine.Color
value)
IL_02F6: ldloc.s 15 (UnityEngine.MaterialPropertyBlock)
IL_02F8: ldloc.s 14 (PropManager)
IL_02FA: ldfld System.Int32 PropManager::ID_HeightMap
IL_02FF: ldarg.s 9
IL_0301: callvirt System.Void
UnityEngine.MaterialPropertyBlock::SetTexture(System.Int32 nameID,
UnityEngine.Texture value)
IL_0306: ldloc.s 15 (UnityEngine.MaterialPropertyBlock)
IL_0308: ldloc.s 14 (PropManager)
IL_030A: ldfld System.Int32 PropManager::ID_HeightMapping
IL_030F: ldarg.s 10
IL_0311: callvirt System.Void
UnityEngine.MaterialPropertyBlock::SetVector(System.Int32 nameID,
UnityEngine.Vector4 value)
IL_0316: ldloc.s 15 (UnityEngine.MaterialPropertyBlock)
IL_0318: ldloc.s 14 (PropManager)
IL_031A: ldfld System.Int32 PropManager::ID_SurfaceMapping
IL_031F: ldarg.s 11
IL_0321: callvirt System.Void
UnityEngine.MaterialPropertyBlock::SetVector(System.Int32 nameID,
UnityEngine.Vector4 value)
IL_0326: ldloc.s 15 (UnityEngine.MaterialPropertyBlock)
IL_0328: ldloc.s 14 (PropManager)
IL_032A: ldfld System.Int32 PropManager::ID_ObjectIndex
IL_032F: ldarg.s 7
IL_0331: callvirt System.Void
UnityEngine.MaterialPropertyBlock::SetVector(System.Int32 nameID,
UnityEngine.Vector4 value)
IL_0336: ldloc.s 15 (UnityEngine.MaterialPropertyBlock)
IL_0338: ldloc.s 14 (PropManager)
IL_033A: ldfld System.Int32 PropManager::ID_WaterHeightMap
IL_033F: ldarg.s 12
IL_0341: callvirt System.Void
UnityEngine.MaterialPropertyBlock::SetTexture(System.Int32 nameID,
UnityEngine.Texture value)
IL_0346: ldloc.s 15 (UnityEngine.MaterialPropertyBlock)
IL_0348: ldloc.s 14 (PropManager)
IL_034A: ldfld System.Int32 PropManager::ID_WaterHeightMapping
IL_034F: ldarg.s 13
IL_0351: callvirt System.Void
UnityEngine.MaterialPropertyBlock::SetVector(System.Int32 nameID,
UnityEngine.Vector4 value)
IL_0356: ldloc.s 15 (UnityEngine.MaterialPropertyBlock)
IL_0358: ldloc.s 14 (PropManager)
IL_035A: ldfld System.Int32 PropManager::ID_WaterSurfaceMapping
IL_035F: ldarg.s 14
IL_0361: callvirt System.Void
UnityEngine.MaterialPropertyBlock::SetVector(System.Int32 nameID,
UnityEngine.Vector4 value)
IL_0366: ldarg.1
IL_0367: ldfld UnityEngine.Vector4[] PropInfo::m_rollLocation
IL_036C: brfalse => Label18
IL_0371: ldarg.1
IL_0372: ldfld UnityEngine.Material PropInfo::m_material
IL_0377: ldloc.s 14 (PropManager)
IL_0379: ldfld System.Int32 PropManager::ID_RollLocation
IL_037E: ldarg.1
IL_037F: ldfld UnityEngine.Vector4[] PropInfo::m_rollLocation
IL_0384: callvirt System.Void UnityEngine.Material::SetVectorArray(System.Int32
nameID, UnityEngine.Vector4[] values)
IL_0389: ldarg.1
IL_038A: ldfld UnityEngine.Material PropInfo::m_material
IL_038F: ldloc.s 14 (PropManager)
IL_0391: ldfld System.Int32 PropManager::ID_RollParams
IL_0396: ldarg.1
IL_0397: ldfld UnityEngine.Vector4[] PropInfo::m_rollParams
IL_039C: callvirt System.Void UnityEngine.Material::SetVectorArray(System.Int32
nameID, UnityEngine.Vector4[] values)
IL_03A1: Label18
IL_03A1: ldloc.s 14 (PropManager)
IL_03A3: ldflda DrawCallData SimulationManagerBase`2<PropManager,
PropProperties>::m_drawCallData
IL_03A8: dup
IL_03A9: ldfld System.Int32 DrawCallData::m_defaultCalls
IL_03AE: ldc.i4.1
IL_03AF: add
IL_03B0: stfld System.Int32 DrawCallData::m_defaultCalls
IL_03B5: ldarg.1
IL_03B6: ldfld UnityEngine.Mesh PropInfo::m_mesh
IL_03BB: ldloc.s 13 (UnityEngine.Matrix4x4)
IL_03BD: ldarg.1
IL_03BE: ldfld UnityEngine.Material PropInfo::m_material
IL_03C3: ldarg.1
IL_03C4: ldfld System.Int32 PrefabInfo::m_prefabDataLayer
IL_03C9: ldnull
IL_03CA: ldc.i4.0
IL_03CB: ldloc.s 15 (UnityEngine.MaterialPropertyBlock)
IL_03CD: call static System.Void
UnityEngine.Graphics::DrawMesh(UnityEngine.Mesh mesh, UnityEngine.Matrix4x4 matrix,
UnityEngine.Material material, System.Int32 layer, UnityEngine.Camera camera,
System.Int32 submeshIndex, UnityEngine.MaterialPropertyBlock properties)
IL_03D2: br => Label19
IL_03D7: Label17
IL_03D7: ldarg.s 9
IL_03D9: ldarg.1
IL_03DA: ldfld UnityEngine.Texture PropInfo::m_lodHeightMap
IL_03DF: call static System.Boolean
UnityEngine.Object::op_Inequality(UnityEngine.Object x, UnityEngine.Object y)
IL_03E4: brtrue => Label20
IL_03E9: ldarg.s 12
IL_03EB: ldarg.1
IL_03EC: ldfld UnityEngine.Texture PropInfo::m_lodWaterHeightMap
IL_03F1: call static System.Boolean
UnityEngine.Object::op_Inequality(UnityEngine.Object x, UnityEngine.Object y)
IL_03F6: brfalse => Label21
IL_03FB: Label20
IL_03FB: ldarg.1
IL_03FC: ldfld System.Int32 PropInfo::m_lodCount
IL_0401: brfalse => Label22
IL_0406: ldarg.0
IL_0407: ldarg.1
IL_0408: call static System.Void PropInstance::RenderLod(CameraInfo
cameraInfo, PropInfo info)
IL_040D: Label22
IL_040D: ldarg.1
IL_040E: ldarg.s 9
IL_0410: stfld UnityEngine.Texture PropInfo::m_lodHeightMap
IL_0415: ldarg.1
IL_0416: ldarg.s 10
IL_0418: stfld UnityEngine.Vector4 PropInfo::m_lodHeightMapping
IL_041D: ldarg.1
IL_041E: ldarg.s 11
IL_0420: stfld UnityEngine.Vector4 PropInfo::m_lodSurfaceMapping
IL_0425: ldarg.1
IL_0426: ldarg.s 12
IL_0428: stfld UnityEngine.Texture PropInfo::m_lodWaterHeightMap
IL_042D: ldarg.1
IL_042E: ldarg.s 13
IL_0430: stfld UnityEngine.Vector4 PropInfo::m_lodWaterHeightMapping
IL_0435: ldarg.1
IL_0436: ldarg.s 14
IL_0438: stfld UnityEngine.Vector4 PropInfo::m_lodWaterSurfaceMapping
IL_043D: Label21
IL_043D: ldarga.s 7
IL_043F: ldarg.s 4
IL_0441: stfld System.Single UnityEngine.Vector4::w
IL_0446: ldarg.1
IL_0447: ldfld UnityEngine.Vector4[] PropInfo::m_lodLocations
IL_044C: ldarg.1
IL_044D: ldfld System.Int32 PropInfo::m_lodCount
IL_0452: ldelema UnityEngine.Vector4
IL_0457: ldarga.s 3
IL_0459: ldfld System.Single UnityEngine.Vector3::x
IL_045E: ldarga.s 3
IL_0460: ldfld System.Single UnityEngine.Vector3::y
IL_0465: ldarga.s 3
IL_0467: ldfld System.Single UnityEngine.Vector3::z
IL_046C: ldarg.s 5
IL_046E: newobj System.Void UnityEngine.Vector4::.ctor(System.Single x,
System.Single y, System.Single z, System.Single w)
IL_0473: stobj UnityEngine.Vector4
IL_0478: ldarg.1
IL_0479: ldfld UnityEngine.Vector4[] PropInfo::m_lodObjectIndices
IL_047E: ldarg.1
IL_047F: ldfld System.Int32 PropInfo::m_lodCount
IL_0484: ldelema UnityEngine.Vector4
IL_0489: ldarg.s 7
IL_048B: stobj UnityEngine.Vector4
IL_0490: ldarg.1
IL_0491: ldfld UnityEngine.Vector4[] PropInfo::m_lodColors
IL_0496: ldarg.1
IL_0497: ldfld System.Int32 PropInfo::m_lodCount
IL_049C: ldelema UnityEngine.Vector4
IL_04A1: ldarga.s 6
IL_04A3: call UnityEngine.Color UnityEngine.Color::get_linear()
IL_04A8: call static UnityEngine.Vector4
UnityEngine.Color::op_Implicit(UnityEngine.Color c)
IL_04AD: stobj UnityEngine.Vector4
IL_04B2: ldarg.1
IL_04B3: ldarg.1
IL_04B4: ldfld UnityEngine.Vector3 PropInfo::m_lodMin
IL_04B9: ldarg.3
IL_04BA: call static UnityEngine.Vector3
UnityEngine.Vector3::Min(UnityEngine.Vector3 lhs, UnityEngine.Vector3 rhs)
IL_04BF: stfld UnityEngine.Vector3 PropInfo::m_lodMin
IL_04C4: ldarg.1
IL_04C5: ldarg.1
IL_04C6: ldfld UnityEngine.Vector3 PropInfo::m_lodMax
IL_04CB: ldarg.3
IL_04CC: call static UnityEngine.Vector3
UnityEngine.Vector3::Max(UnityEngine.Vector3 lhs, UnityEngine.Vector3 rhs)
IL_04D1: stfld UnityEngine.Vector3 PropInfo::m_lodMax
IL_04D6: ldarg.1
IL_04D7: dup
IL_04D8: ldfld System.Int32 PropInfo::m_lodCount
IL_04DD: ldc.i4.1
IL_04DE: add
IL_04DF: dup
IL_04E0: stloc.s 16 (System.Int32)
IL_04E2: stfld System.Int32 PropInfo::m_lodCount
IL_04E7: ldloc.s 16 (System.Int32)
IL_04E9: ldarg.1
IL_04EA: ldfld UnityEngine.Vector4[] PropInfo::m_lodLocations
IL_04EF: ldlen
IL_04F0: conv.i4
IL_04F1: bne.un => Label23
IL_04F6: ldarg.0
IL_04F7: ldarg.1
IL_04F8: call static System.Void PropInstance::RenderLod(CameraInfo
cameraInfo, PropInfo info)
IL_04FD: // end original
IL_04FD: Label0
IL_04FD: Label6
IL_04FD: Label7
IL_04FD: Label19
IL_04FD: Label23
IL_04FD: ret
DONE

### Patch: static System.Void PropInstance::RenderInstance(CameraInfo cameraInfo,


PropInfo info, InstanceID id, UnityEngine.Vector3 position, System.Single scale,
System.Single angle, UnityEngine.Color color, UnityEngine.Vector4 objectIndex,
System.Boolean active)
### Replacement: static System.Void
PropInstance::PropInstance.RenderInstance_Patch0(CameraInfo cameraInfo, PropInfo
info, InstanceID id, UnityEngine.Vector3 position, System.Single scale,
System.Single angle, UnityEngine.Color color, UnityEngine.Vector4 objectIndex,
System.Boolean active)
IL_0000: Local var 0: UnityEngine.Matrix4x4
IL_0000: Local var 1: System.Single
IL_0000: Local var 2: System.Int32
IL_0000: Local var 3: UnityEngine.Vector3
IL_0000: Local var 4: UnityEngine.Vector3
IL_0000: Local var 5: EffectInfo/SpawnArea
IL_0000: Local var 6: System.Single
IL_0000: Local var 7: LightSystem
IL_0000: Local var 8: ColossalFramework.Math.Randomizer
IL_0000: Local var 9: UnityEngine.Vector4
IL_0000: Local var 10: System.Single
IL_0000: Local var 11: System.Single
IL_0000: Local var 12: System.Single
IL_0000: Local var 13: UnityEngine.Matrix4x4
IL_0000: Local var 14: PropManager
IL_0000: Local var 15: UnityEngine.MaterialPropertyBlock
IL_0000: Local var 16: UnityEngine.Matrix4x4
IL_0000: Local var 17: PropManager
IL_0000: Local var 18: UnityEngine.MaterialPropertyBlock
IL_0000: Local var 19: System.Int32
IL_0000: // start original
IL_0000: ldarg.1
IL_0001: ldfld System.Boolean PrefabInfo::m_prefabInitialized
IL_0006: brfalse => Label0
IL_000B: ldarg.1
IL_000C: ldfld System.Boolean PropInfo::m_hasEffects
IL_0011: brfalse => Label1
IL_0016: ldarg.s 8
IL_0018: brtrue => Label2
IL_001D: ldarg.1
IL_001E: ldfld System.Boolean PropInfo::m_alwaysActive
IL_0023: brfalse => Label3
IL_0028: Label2
IL_0028: ldloca.s 0 (UnityEngine.Matrix4x4)
IL_002A: initobj UnityEngine.Matrix4x4
IL_0030: ldloca.s 0 (UnityEngine.Matrix4x4)
IL_0032: ldarg.3
IL_0033: ldarg.s 5
IL_0035: ldc.r4 57.29578
IL_003A: mul
IL_003B: call static UnityEngine.Vector3 UnityEngine.Vector3::get_down()
IL_0040: call static UnityEngine.Quaternion
UnityEngine.Quaternion::AngleAxis(System.Single angle, UnityEngine.Vector3 axis)
IL_0045: ldarg.s 4
IL_0047: ldarg.s 4
IL_0049: ldarg.s 4
IL_004B: newobj System.Void UnityEngine.Vector3::.ctor(System.Single x,
System.Single y, System.Single z)
IL_0050: call System.Void UnityEngine.Matrix4x4::SetTRS(UnityEngine.Vector3
pos, UnityEngine.Quaternion q, UnityEngine.Vector3 s)
IL_0055: call static SimulationManager
ColossalFramework.Singleton`1<SimulationManager>::get_instance()
IL_005A: ldfld System.Single SimulationManager::m_simulationTimeDelta
IL_005F: stloc.1
IL_0060: ldc.i4.0
IL_0061: stloc.2
IL_0062: br => Label4
IL_0067: Label5
IL_0067: ldloca.s 0 (UnityEngine.Matrix4x4)
IL_0069: ldarg.1
IL_006A: ldfld Effect[] PropInfo::m_effects
IL_006F: ldloc.2
IL_0070: ldelema PropInfo+Effect
IL_0075: ldfld UnityEngine.Vector3 Effect::m_position
IL_007A: call UnityEngine.Vector3
UnityEngine.Matrix4x4::MultiplyPoint(UnityEngine.Vector3 v)
IL_007F: stloc.3
IL_0080: ldloca.s 0 (UnityEngine.Matrix4x4)
IL_0082: ldarg.1
IL_0083: ldfld Effect[] PropInfo::m_effects
IL_0088: ldloc.2
IL_0089: ldelema PropInfo+Effect
IL_008E: ldfld UnityEngine.Vector3 Effect::m_direction
IL_0093: call UnityEngine.Vector3
UnityEngine.Matrix4x4::MultiplyVector(UnityEngine.Vector3 v)
IL_0098: stloc.s 4 (UnityEngine.Vector3)
IL_009A: ldloca.s 5 (EffectInfo+SpawnArea)
IL_009C: ldloc.3
IL_009D: ldloc.s 4 (UnityEngine.Vector3)
IL_009F: ldc.r4 0
IL_00A4: call System.Void SpawnArea::.ctor(UnityEngine.Vector3 position,
UnityEngine.Vector3 direction, System.Single radius)
IL_00A9: ldarg.1
IL_00AA: ldfld Effect[] PropInfo::m_effects
IL_00AF: ldloc.2
IL_00B0: ldelema PropInfo+Effect
IL_00B5: ldfld EffectInfo Effect::m_effect
IL_00BA: ldarg.2
IL_00BB: ldloc.s 5 (EffectInfo+SpawnArea)
IL_00BD: call static UnityEngine.Vector3 UnityEngine.Vector3::get_zero()
IL_00C2: ldc.r4 0
IL_00C7: ldc.r4 1
IL_00CC: ldc.r4 -1
IL_00D1: ldloc.1
IL_00D2: ldarg.0
IL_00D3: callvirt virtual System.Void EffectInfo::RenderEffect(InstanceID id,
SpawnArea area, UnityEngine.Vector3 velocity, System.Single acceleration,
System.Single magnitude, System.Single timeOffset, System.Single timeDelta,
CameraInfo cameraInfo)
IL_00D8: ldloc.2
IL_00D9: ldc.i4.1
IL_00DA: add
IL_00DB: stloc.2
IL_00DC: Label4
IL_00DC: ldloc.2
IL_00DD: ldarg.1
IL_00DE: ldfld Effect[] PropInfo::m_effects
IL_00E3: ldlen
IL_00E4: conv.i4
IL_00E5: blt => Label5
IL_00EA: Label1
IL_00EA: Label3
IL_00EA: ldarg.1
IL_00EB: ldfld System.Boolean PropInfo::m_hasRenderer
IL_00F0: brfalse => Label6
IL_00F5: ldarg.0
IL_00F6: ldfld System.Int32 CameraInfo::m_layerMask
IL_00FB: ldc.i4.1
IL_00FC: ldarg.1
IL_00FD: ldfld System.Int32 PrefabInfo::m_prefabDataLayer
IL_0102: ldc.i4.s 31
IL_0104: and
IL_0105: shl
IL_0106: and
IL_0107: brfalse => Label7
IL_010C: call static InfoManager
ColossalFramework.Singleton`1<InfoManager>::get_instance()
IL_0111: callvirt InfoMode InfoManager::get_CurrentMode()
IL_0116: brtrue => Label8
IL_011B: ldarg 2
IL_011F: call static System.Boolean
ElectricRoads.Overrides.ElectricRoadsOverrides::CheckElectrityNetForLight(InstanceI
D id)
IL_0124: brfalse => Label24
IL_0129: ldc.r4 0
IL_012E: stloc.s 6 (System.Single)
IL_0130: ldarg.s 8
IL_0132: brtrue => Label9
IL_0137: ldarg.1
IL_0138: ldfld System.Boolean PropInfo::m_alwaysActive
IL_013D: brtrue => Label10
IL_0142: Label24
IL_0142: ldarga.s 7
IL_0144: ldc.r4 0
IL_0149: stfld System.Single UnityEngine.Vector4::z
IL_014E: br => Label11
IL_0153: Label9
IL_0153: Label10
IL_0153: ldarg.1
IL_0154: ldflda UnityEngine.Vector2 PropInfo::m_illuminationOffRange
IL_0159: ldfld System.Single UnityEngine.Vector2::x
IL_015E: ldc.r4 1000
IL_0163: blt => Label12
IL_0168: ldarg.1
IL_0169: ldfld BlinkType PropInfo::m_illuminationBlinkType
IL_016E: brfalse => Label13
IL_0173: Label12
IL_0173: call static RenderManager
ColossalFramework.Singleton`1<RenderManager>::get_instance()
IL_0178: callvirt LightSystem RenderManager::get_lightSystem()
IL_017D: stloc.s 7 (LightSystem)
IL_017F: ldloca.s 8 (ColossalFramework.Math.Randomizer)
IL_0181: ldarga.s 2
IL_0183: call System.UInt32 InstanceID::get_Index()
IL_0188: call System.Void
ColossalFramework.Math.Randomizer::.ctor(System.UInt32 _seed)
IL_018D: ldarg.1
IL_018E: ldflda UnityEngine.Vector2 PropInfo::m_illuminationOffRange
IL_0193: ldfld System.Single UnityEngine.Vector2::x
IL_0198: ldloca.s 8 (ColossalFramework.Math.Randomizer)
IL_019A: ldc.i4 100000
IL_019F: call System.Int32
ColossalFramework.Math.Randomizer::Int32(System.UInt32 range)
IL_01A4: conv.r4
IL_01A5: ldc.r4 1E-05
IL_01AA: mul
IL_01AB: ldarg.1
IL_01AC: ldflda UnityEngine.Vector2 PropInfo::m_illuminationOffRange
IL_01B1: ldfld System.Single UnityEngine.Vector2::y
IL_01B6: ldarg.1
IL_01B7: ldflda UnityEngine.Vector2 PropInfo::m_illuminationOffRange
IL_01BC: ldfld System.Single UnityEngine.Vector2::x
IL_01C1: sub
IL_01C2: mul
IL_01C3: add
IL_01C4: stloc.s 6 (System.Single)
IL_01C6: ldarga.s 7
IL_01C8: ldloc.s 6 (System.Single)
IL_01CA: ldc.r4 0.01
IL_01CF: add
IL_01D0: ldloc.s 6 (System.Single)
IL_01D2: ldc.r4 0.01
IL_01D7: sub
IL_01D8: ldloc.s 7 (LightSystem)
IL_01DA: callvirt System.Single LightSystem::get_DayLightIntensity()
IL_01DF: call static System.Single MathUtils::SmoothStep(System.Single edge0,
System.Single edge1, System.Single x)
IL_01E4: stfld System.Single UnityEngine.Vector4::z
IL_01E9: ldarg.1
IL_01EA: ldfld BlinkType PropInfo::m_illuminationBlinkType
IL_01EF: brfalse => Label14
IL_01F4: ldarg.1
IL_01F5: ldfld BlinkType PropInfo::m_illuminationBlinkType
IL_01FA: call static UnityEngine.Vector4
LightEffect::GetBlinkVector(BlinkType type)
IL_01FF: stloc.s 9 (UnityEngine.Vector4)
IL_0201: ldloc.s 6 (System.Single)
IL_0203: ldc.r4 3.71
IL_0208: mul
IL_0209: call static SimulationManager
ColossalFramework.Singleton`1<SimulationManager>::get_instance()
IL_020E: ldfld System.Single SimulationManager::m_simulationTimer
IL_0213: ldloca.s 9 (UnityEngine.Vector4)
IL_0215: ldfld System.Single UnityEngine.Vector4::w
IL_021A: div
IL_021B: add
IL_021C: stloc.s 10 (System.Single)
IL_021E: ldloc.s 10 (System.Single)
IL_0220: ldloc.s 10 (System.Single)
IL_0222: call static System.Single UnityEngine.Mathf::Floor(System.Single f)
IL_0227: sub
IL_0228: ldloca.s 9 (UnityEngine.Vector4)
IL_022A: ldfld System.Single UnityEngine.Vector4::w
IL_022F: mul
IL_0230: stloc.s 10 (System.Single)
IL_0232: ldloca.s 9 (UnityEngine.Vector4)
IL_0234: ldfld System.Single UnityEngine.Vector4::x
IL_0239: ldloca.s 9 (UnityEngine.Vector4)
IL_023B: ldfld System.Single UnityEngine.Vector4::y
IL_0240: ldloc.s 10 (System.Single)
IL_0242: call static System.Single MathUtils::SmoothStep(System.Single edge0,
System.Single edge1, System.Single x)
IL_0247: stloc.s 11 (System.Single)
IL_0249: ldloca.s 9 (UnityEngine.Vector4)
IL_024B: ldfld System.Single UnityEngine.Vector4::w
IL_0250: ldloca.s 9 (UnityEngine.Vector4)
IL_0252: ldfld System.Single UnityEngine.Vector4::z
IL_0257: ldloc.s 10 (System.Single)
IL_0259: call static System.Single MathUtils::SmoothStep(System.Single edge0,
System.Single edge1, System.Single x)
IL_025E: stloc.s 12 (System.Single)
IL_0260: ldarga.s 7
IL_0262: dup
IL_0263: ldfld System.Single UnityEngine.Vector4::z
IL_0268: ldc.r4 1
IL_026D: ldloc.s 11 (System.Single)
IL_026F: ldloc.s 12 (System.Single)
IL_0271: mul
IL_0272: sub
IL_0273: mul
IL_0274: stfld System.Single UnityEngine.Vector4::z
IL_0279: Label14
IL_0279: br => Label15
IL_027E: Label13
IL_027E: ldarga.s 7
IL_0280: ldc.r4 1
IL_0285: stfld System.Single UnityEngine.Vector4::z
IL_028A: Label8
IL_028A: Label11
IL_028A: Label15
IL_028A: ldarg.0
IL_028B: brfalse => Label16
IL_0290: ldarg.0
IL_0291: ldarg.3
IL_0292: ldarg.1
IL_0293: ldfld System.Single PropInfo::m_lodRenderDistance
IL_0298: callvirt System.Boolean
CameraInfo::CheckRenderDistance(UnityEngine.Vector3 point, System.Single
maxDistance)
IL_029D: brfalse => Label17
IL_02A2: Label16
IL_02A2: ldloca.s 13 (UnityEngine.Matrix4x4)
IL_02A4: initobj UnityEngine.Matrix4x4
IL_02AA: ldloca.s 13 (UnityEngine.Matrix4x4)
IL_02AC: ldarg.3
IL_02AD: ldarg.s 5
IL_02AF: ldc.r4 57.29578
IL_02B4: mul
IL_02B5: call static UnityEngine.Vector3 UnityEngine.Vector3::get_down()
IL_02BA: call static UnityEngine.Quaternion
UnityEngine.Quaternion::AngleAxis(System.Single angle, UnityEngine.Vector3 axis)
IL_02BF: ldarg.s 4
IL_02C1: ldarg.s 4
IL_02C3: ldarg.s 4
IL_02C5: newobj System.Void UnityEngine.Vector3::.ctor(System.Single x,
System.Single y, System.Single z)
IL_02CA: call System.Void UnityEngine.Matrix4x4::SetTRS(UnityEngine.Vector3
pos, UnityEngine.Quaternion q, UnityEngine.Vector3 s)
IL_02CF: call static PropManager
ColossalFramework.Singleton`1<PropManager>::get_instance()
IL_02D4: stloc.s 14 (PropManager)
IL_02D6: ldloc.s 14 (PropManager)
IL_02D8: ldfld UnityEngine.MaterialPropertyBlock PropManager::m_materialBlock
IL_02DD: stloc.s 15 (UnityEngine.MaterialPropertyBlock)
IL_02DF: ldloc.s 15 (UnityEngine.MaterialPropertyBlock)
IL_02E1: callvirt System.Void UnityEngine.MaterialPropertyBlock::Clear()
IL_02E6: ldloc.s 15 (UnityEngine.MaterialPropertyBlock)
IL_02E8: ldloc.s 14 (PropManager)
IL_02EA: ldfld System.Int32 PropManager::ID_Color
IL_02EF: ldarg.s 6
IL_02F1: callvirt System.Void
UnityEngine.MaterialPropertyBlock::SetColor(System.Int32 nameID, UnityEngine.Color
value)
IL_02F6: ldloc.s 15 (UnityEngine.MaterialPropertyBlock)
IL_02F8: ldloc.s 14 (PropManager)
IL_02FA: ldfld System.Int32 PropManager::ID_ObjectIndex
IL_02FF: ldarg.s 7
IL_0301: callvirt System.Void
UnityEngine.MaterialPropertyBlock::SetVector(System.Int32 nameID,
UnityEngine.Vector4 value)
IL_0306: ldarg.1
IL_0307: ldfld UnityEngine.Vector4[] PropInfo::m_rollLocation
IL_030C: brfalse => Label18
IL_0311: ldarg.1
IL_0312: ldfld UnityEngine.Material PropInfo::m_material
IL_0317: ldloc.s 14 (PropManager)
IL_0319: ldfld System.Int32 PropManager::ID_RollLocation
IL_031E: ldarg.1
IL_031F: ldfld UnityEngine.Vector4[] PropInfo::m_rollLocation
IL_0324: callvirt System.Void UnityEngine.Material::SetVectorArray(System.Int32
nameID, UnityEngine.Vector4[] values)
IL_0329: ldarg.1
IL_032A: ldfld UnityEngine.Material PropInfo::m_material
IL_032F: ldloc.s 14 (PropManager)
IL_0331: ldfld System.Int32 PropManager::ID_RollParams
IL_0336: ldarg.1
IL_0337: ldfld UnityEngine.Vector4[] PropInfo::m_rollParams
IL_033C: callvirt System.Void UnityEngine.Material::SetVectorArray(System.Int32
nameID, UnityEngine.Vector4[] values)
IL_0341: Label18
IL_0341: ldloc.s 14 (PropManager)
IL_0343: ldflda DrawCallData SimulationManagerBase`2<PropManager,
PropProperties>::m_drawCallData
IL_0348: dup
IL_0349: ldfld System.Int32 DrawCallData::m_defaultCalls
IL_034E: ldc.i4.1
IL_034F: add
IL_0350: stfld System.Int32 DrawCallData::m_defaultCalls
IL_0355: ldarg.1
IL_0356: ldfld UnityEngine.Mesh PropInfo::m_mesh
IL_035B: ldloc.s 13 (UnityEngine.Matrix4x4)
IL_035D: ldarg.1
IL_035E: ldfld UnityEngine.Material PropInfo::m_material
IL_0363: ldarg.1
IL_0364: ldfld System.Int32 PrefabInfo::m_prefabDataLayer
IL_0369: ldnull
IL_036A: ldc.i4.0
IL_036B: ldloc.s 15 (UnityEngine.MaterialPropertyBlock)
IL_036D: call static System.Void
UnityEngine.Graphics::DrawMesh(UnityEngine.Mesh mesh, UnityEngine.Matrix4x4 matrix,
UnityEngine.Material material, System.Int32 layer, UnityEngine.Camera camera,
System.Int32 submeshIndex, UnityEngine.MaterialPropertyBlock properties)
IL_0372: br => Label19
IL_0377: Label17
IL_0377: ldarg.1
IL_0378: ldfld UnityEngine.Material PropInfo::m_lodMaterialCombined
IL_037D: ldnull
IL_037E: call static System.Boolean
UnityEngine.Object::op_Equality(UnityEngine.Object x, UnityEngine.Object y)
IL_0383: brfalse => Label20
IL_0388: ldloca.s 16 (UnityEngine.Matrix4x4)
IL_038A: initobj UnityEngine.Matrix4x4
IL_0390: ldloca.s 16 (UnityEngine.Matrix4x4)
IL_0392: ldarg.3
IL_0393: ldarg.s 5
IL_0395: ldc.r4 57.29578
IL_039A: mul
IL_039B: call static UnityEngine.Vector3 UnityEngine.Vector3::get_down()
IL_03A0: call static UnityEngine.Quaternion
UnityEngine.Quaternion::AngleAxis(System.Single angle, UnityEngine.Vector3 axis)
IL_03A5: ldarg.s 4
IL_03A7: ldarg.s 4
IL_03A9: ldarg.s 4
IL_03AB: newobj System.Void UnityEngine.Vector3::.ctor(System.Single x,
System.Single y, System.Single z)
IL_03B0: call System.Void UnityEngine.Matrix4x4::SetTRS(UnityEngine.Vector3
pos, UnityEngine.Quaternion q, UnityEngine.Vector3 s)
IL_03B5: call static PropManager
ColossalFramework.Singleton`1<PropManager>::get_instance()
IL_03BA: stloc.s 17 (PropManager)
IL_03BC: ldloc.s 17 (PropManager)
IL_03BE: ldfld UnityEngine.MaterialPropertyBlock PropManager::m_materialBlock
IL_03C3: stloc.s 18 (UnityEngine.MaterialPropertyBlock)
IL_03C5: ldloc.s 18 (UnityEngine.MaterialPropertyBlock)
IL_03C7: callvirt System.Void UnityEngine.MaterialPropertyBlock::Clear()
IL_03CC: ldloc.s 18 (UnityEngine.MaterialPropertyBlock)
IL_03CE: ldloc.s 17 (PropManager)
IL_03D0: ldfld System.Int32 PropManager::ID_Color
IL_03D5: ldarg.s 6
IL_03D7: callvirt System.Void
UnityEngine.MaterialPropertyBlock::SetColor(System.Int32 nameID, UnityEngine.Color
value)
IL_03DC: ldloc.s 18 (UnityEngine.MaterialPropertyBlock)
IL_03DE: ldloc.s 17 (PropManager)
IL_03E0: ldfld System.Int32 PropManager::ID_ObjectIndex
IL_03E5: ldarg.s 7
IL_03E7: callvirt System.Void
UnityEngine.MaterialPropertyBlock::SetVector(System.Int32 nameID,
UnityEngine.Vector4 value)
IL_03EC: ldarg.1
IL_03ED: ldfld UnityEngine.Vector4[] PropInfo::m_rollLocation
IL_03F2: brfalse => Label21
IL_03F7: ldarg.1
IL_03F8: ldfld UnityEngine.Material PropInfo::m_material
IL_03FD: ldloc.s 17 (PropManager)
IL_03FF: ldfld System.Int32 PropManager::ID_RollLocation
IL_0404: ldarg.1
IL_0405: ldfld UnityEngine.Vector4[] PropInfo::m_rollLocation
IL_040A: callvirt System.Void UnityEngine.Material::SetVectorArray(System.Int32
nameID, UnityEngine.Vector4[] values)
IL_040F: ldarg.1
IL_0410: ldfld UnityEngine.Material PropInfo::m_material
IL_0415: ldloc.s 17 (PropManager)
IL_0417: ldfld System.Int32 PropManager::ID_RollParams
IL_041C: ldarg.1
IL_041D: ldfld UnityEngine.Vector4[] PropInfo::m_rollParams
IL_0422: callvirt System.Void UnityEngine.Material::SetVectorArray(System.Int32
nameID, UnityEngine.Vector4[] values)
IL_0427: Label21
IL_0427: ldloc.s 17 (PropManager)
IL_0429: ldflda DrawCallData SimulationManagerBase`2<PropManager,
PropProperties>::m_drawCallData
IL_042E: dup
IL_042F: ldfld System.Int32 DrawCallData::m_defaultCalls
IL_0434: ldc.i4.1
IL_0435: add
IL_0436: stfld System.Int32 DrawCallData::m_defaultCalls
IL_043B: ldarg.1
IL_043C: ldfld UnityEngine.Mesh PropInfo::m_lodMesh
IL_0441: ldloc.s 16 (UnityEngine.Matrix4x4)
IL_0443: ldarg.1
IL_0444: ldfld UnityEngine.Material PropInfo::m_lodMaterial
IL_0449: ldarg.1
IL_044A: ldfld System.Int32 PrefabInfo::m_prefabDataLayer
IL_044F: ldnull
IL_0450: ldc.i4.0
IL_0451: ldloc.s 18 (UnityEngine.MaterialPropertyBlock)
IL_0453: call static System.Void
UnityEngine.Graphics::DrawMesh(UnityEngine.Mesh mesh, UnityEngine.Matrix4x4 matrix,
UnityEngine.Material material, System.Int32 layer, UnityEngine.Camera camera,
System.Int32 submeshIndex, UnityEngine.MaterialPropertyBlock properties)
IL_0458: br => Label22
IL_045D: Label20
IL_045D: ldarga.s 7
IL_045F: ldarg.s 4
IL_0461: stfld System.Single UnityEngine.Vector4::w
IL_0466: ldarg.1
IL_0467: ldfld UnityEngine.Vector4[] PropInfo::m_lodLocations
IL_046C: ldarg.1
IL_046D: ldfld System.Int32 PropInfo::m_lodCount
IL_0472: ldelema UnityEngine.Vector4
IL_0477: ldarga.s 3
IL_0479: ldfld System.Single UnityEngine.Vector3::x
IL_047E: ldarga.s 3
IL_0480: ldfld System.Single UnityEngine.Vector3::y
IL_0485: ldarga.s 3
IL_0487: ldfld System.Single UnityEngine.Vector3::z
IL_048C: ldarg.s 5
IL_048E: newobj System.Void UnityEngine.Vector4::.ctor(System.Single x,
System.Single y, System.Single z, System.Single w)
IL_0493: stobj UnityEngine.Vector4
IL_0498: ldarg.1
IL_0499: ldfld UnityEngine.Vector4[] PropInfo::m_lodObjectIndices
IL_049E: ldarg.1
IL_049F: ldfld System.Int32 PropInfo::m_lodCount
IL_04A4: ldelema UnityEngine.Vector4
IL_04A9: ldarg.s 7
IL_04AB: stobj UnityEngine.Vector4
IL_04B0: ldarg.1
IL_04B1: ldfld UnityEngine.Vector4[] PropInfo::m_lodColors
IL_04B6: ldarg.1
IL_04B7: ldfld System.Int32 PropInfo::m_lodCount
IL_04BC: ldelema UnityEngine.Vector4
IL_04C1: ldarga.s 6
IL_04C3: call UnityEngine.Color UnityEngine.Color::get_linear()
IL_04C8: call static UnityEngine.Vector4
UnityEngine.Color::op_Implicit(UnityEngine.Color c)
IL_04CD: stobj UnityEngine.Vector4
IL_04D2: ldarg.1
IL_04D3: ldarg.1
IL_04D4: ldfld UnityEngine.Vector3 PropInfo::m_lodMin
IL_04D9: ldarg.3
IL_04DA: call static UnityEngine.Vector3
UnityEngine.Vector3::Min(UnityEngine.Vector3 lhs, UnityEngine.Vector3 rhs)
IL_04DF: stfld UnityEngine.Vector3 PropInfo::m_lodMin
IL_04E4: ldarg.1
IL_04E5: ldarg.1
IL_04E6: ldfld UnityEngine.Vector3 PropInfo::m_lodMax
IL_04EB: ldarg.3
IL_04EC: call static UnityEngine.Vector3
UnityEngine.Vector3::Max(UnityEngine.Vector3 lhs, UnityEngine.Vector3 rhs)
IL_04F1: stfld UnityEngine.Vector3 PropInfo::m_lodMax
IL_04F6: ldarg.1
IL_04F7: dup
IL_04F8: ldfld System.Int32 PropInfo::m_lodCount
IL_04FD: ldc.i4.1
IL_04FE: add
IL_04FF: dup
IL_0500: stloc.s 19 (System.Int32)
IL_0502: stfld System.Int32 PropInfo::m_lodCount
IL_0507: ldloc.s 19 (System.Int32)
IL_0509: ldarg.1
IL_050A: ldfld UnityEngine.Vector4[] PropInfo::m_lodLocations
IL_050F: ldlen
IL_0510: conv.i4
IL_0511: bne.un => Label23
IL_0516: ldarg.0
IL_0517: ldarg.1
IL_0518: call static System.Void PropInstance::RenderLod(CameraInfo
cameraInfo, PropInfo info)
IL_051D: // end original
IL_051D: Label0
IL_051D: Label6
IL_051D: Label7
IL_051D: Label19
IL_051D: Label22
IL_051D: Label23
IL_051D: ret
DONE

### Patch: virtual System.Void LightEffect::PopulateGroupData(System.Int32 layer,


InstanceID id, UnityEngine.Vector3 pos, UnityEngine.Vector3 dir, 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
LightEffect::LightEffect.PopulateGroupData_Patch1(LightEffect this, System.Int32
layer, InstanceID id, UnityEngine.Vector3 pos, UnityEngine.Vector3 dir,
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.Boolean
IL_0000: Local var 1: UnityEngine.Vector3
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.Quaternion
IL_0000: Local var 7: UnityEngine.Vector4
IL_0000: Local var 8: UnityEngine.Vector2
IL_0000: Local var 9: ColossalFramework.Math.Randomizer
IL_0000: Local var 10: UnityEngine.Vector2
IL_0000: Local var 11: UnityEngine.Vector2
IL_0000: Local var 12: UnityEngine.Vector2
IL_0000: Local var 13: System.UInt16
IL_0000: Local var 14: UnityEngine.Vector3
IL_0000: Local var 15: UnityEngine.Color
IL_0000: Local var 16: UnityEngine.Color
IL_0000: Local var 17: System.Single
IL_0000: Local var 18: System.Single
IL_0000: Local var 19: System.Int32
IL_0000: Local var 20: System.Boolean
IL_0000: ldc.i4 0
IL_0005: stloc 20 (System.Boolean)
IL_0009: ldc.i4.1
IL_000A: stloc 20 (System.Boolean)
IL_000E: ldloc 20 (System.Boolean)
IL_0012: brfalse => Label1
IL_0017: ldarg 2
IL_001B: call static System.Boolean
ElectricRoads.Overrides.ElectricRoadsOverrides::CheckElectrityNetForLight(InstanceI
D id)
IL_0020: stloc 20 (System.Boolean)
IL_0024: Label1
IL_0024: nop
IL_0025: ldloc 20 (System.Boolean)
IL_0029: brfalse => Label0
IL_002E: // start original
IL_002E: ldarg.1
IL_002F: ldarg.0
IL_0030: ldfld System.Int32 LightEffect::m_groupLayer
IL_0035: beq => Label2
IL_003A: ldarg.1
IL_003B: ldarg.0
IL_003C: ldfld System.Int32 LightEffect::m_groupLayerFloating
IL_0041: bne.un => Label3
IL_0046: Label2
IL_0046: ldarg.1
IL_0047: ldarg.0
IL_0048: ldfld System.Int32 LightEffect::m_groupLayerFloating
IL_004D: ceq
IL_004F: stloc.0
IL_0050: ldloca.s 1 (UnityEngine.Vector3)
IL_0052: ldarg.0
IL_0053: ldfld System.Single LightEffect::m_lightRange
IL_0058: ldarg.0
IL_0059: ldfld System.Single LightEffect::m_lightRange
IL_005E: ldarg.0
IL_005F: ldfld System.Single LightEffect::m_lightRange
IL_0064: call System.Void UnityEngine.Vector3::.ctor(System.Single x,
System.Single y, System.Single z)
IL_0069: ldarg.3
IL_006A: ldloc.1
IL_006B: call static UnityEngine.Vector3
UnityEngine.Vector3::op_Subtraction(UnityEngine.Vector3 a, UnityEngine.Vector3 b)
IL_0070: stloc.2
IL_0071: ldarg.3
IL_0072: ldloc.1
IL_0073: call static UnityEngine.Vector3
UnityEngine.Vector3::op_Addition(UnityEngine.Vector3 a, UnityEngine.Vector3 b)
IL_0078: stloc.3
IL_0079: ldarg.s 9
IL_007B: ldarg.s 9
IL_007D: ldobj UnityEngine.Vector3
IL_0082: ldloc.2
IL_0083: call static UnityEngine.Vector3
UnityEngine.Vector3::Min(UnityEngine.Vector3 lhs, UnityEngine.Vector3 rhs)
IL_0088: stobj UnityEngine.Vector3
IL_008D: ldarg.s 10
IL_008F: ldarg.s 10
IL_0091: ldobj UnityEngine.Vector3
IL_0096: ldloc.3
IL_0097: call static UnityEngine.Vector3
UnityEngine.Vector3::Max(UnityEngine.Vector3 lhs, UnityEngine.Vector3 rhs)
IL_009C: stobj UnityEngine.Vector3
IL_00A1: ldarg.3
IL_00A2: ldarg.s 7
IL_00A4: call static UnityEngine.Vector3
UnityEngine.Vector3::op_Subtraction(UnityEngine.Vector3 a, UnityEngine.Vector3 b)
IL_00A9: stloc.s 4 (UnityEngine.Vector3)
IL_00AB: ldarg.s 11
IL_00AD: ldarg.s 11
IL_00AF: ldind.r4
IL_00B0: ldc.r4 30000
IL_00B5: call static System.Single UnityEngine.Mathf::Max(System.Single a,
System.Single b)
IL_00BA: stind.r4
IL_00BB: ldarg.0
IL_00BC: ldfld UnityEngine.LightType LightEffect::m_lightType
IL_00C1: brtrue => Label4
IL_00C6: ldarg.s 4
IL_00C8: call static UnityEngine.Quaternion
UnityEngine.Quaternion::LookRotation(UnityEngine.Vector3 forward)
IL_00CD: stloc.s 6 (UnityEngine.Quaternion)
IL_00CF: ldloc.s 6 (UnityEngine.Quaternion)
IL_00D1: ldarg.0
IL_00D2: ldfld UnityEngine.Quaternion LightEffect::m_lightRotation
IL_00D7: call static UnityEngine.Vector3 UnityEngine.Vector3::get_forward()
IL_00DC: call static UnityEngine.Vector3
UnityEngine.Quaternion::op_Multiply(UnityEngine.Quaternion rotation,
UnityEngine.Vector3 point)
IL_00E1: call static UnityEngine.Vector3
UnityEngine.Quaternion::op_Multiply(UnityEngine.Quaternion rotation,
UnityEngine.Vector3 point)
IL_00E6: stloc.s 5 (UnityEngine.Vector3)
IL_00E8: br => Label5
IL_00ED: Label4
IL_00ED: call static UnityEngine.Vector3 UnityEngine.Vector3::get_forward()
IL_00F2: stloc.s 5 (UnityEngine.Vector3)
IL_00F4: Label5
IL_00F4: ldloca.s 7 (UnityEngine.Vector4)
IL_00F6: ldloca.s 5 (UnityEngine.Vector3)
IL_00F8: ldfld System.Single UnityEngine.Vector3::x
IL_00FD: ldloca.s 5 (UnityEngine.Vector3)
IL_00FF: ldfld System.Single UnityEngine.Vector3::y
IL_0104: ldloca.s 5 (UnityEngine.Vector3)
IL_0106: ldfld System.Single UnityEngine.Vector3::z
IL_010B: ldc.r4 100000
IL_0110: call System.Void UnityEngine.Vector4::.ctor(System.Single x,
System.Single y, System.Single z, System.Single w)
IL_0115: ldarg.0
IL_0116: ldfld UnityEngine.LightType LightEffect::m_lightType
IL_011B: brtrue => Label6
IL_0120: ldloca.s 7 (UnityEngine.Vector4)
IL_0122: ldc.r4 0.01745329
IL_0127: ldarg.0
IL_0128: ldfld System.Single LightEffect::m_lightSpotAngle
IL_012D: mul
IL_012E: ldc.r4 0.5
IL_0133: mul
IL_0134: call static System.Single UnityEngine.Mathf::Cos(System.Single f)
IL_0139: neg
IL_013A: stfld System.Single UnityEngine.Vector4::w
IL_013F: Label6
IL_013F: ldloca.s 8 (UnityEngine.Vector2)
IL_0141: ldc.r4 1
IL_0146: ldarg.0
IL_0147: ldfld System.Single LightEffect::m_lightRange
IL_014C: ldarg.0
IL_014D: ldfld System.Single LightEffect::m_lightRange
IL_0152: mul
IL_0153: div
IL_0154: ldarg.0
IL_0155: ldfld System.Single LightEffect::m_lightIntensity
IL_015A: call System.Void UnityEngine.Vector2::.ctor(System.Single x,
System.Single y)
IL_015F: ldloca.s 9 (ColossalFramework.Math.Randomizer)
IL_0161: ldarga.s 2
IL_0163: call System.UInt32 InstanceID::get_Index()
IL_0168: call System.Void
ColossalFramework.Math.Randomizer::.ctor(System.UInt32 _seed)
IL_016D: ldloca.s 10 (UnityEngine.Vector2)
IL_016F: ldarg.0
IL_0170: ldflda UnityEngine.Vector2 LightEffect::m_offRange
IL_0175: ldfld System.Single UnityEngine.Vector2::x
IL_017A: ldloca.s 9 (ColossalFramework.Math.Randomizer)
IL_017C: ldc.i4 100000
IL_0181: call System.Int32
ColossalFramework.Math.Randomizer::Int32(System.UInt32 range)
IL_0186: conv.r4
IL_0187: ldc.r4 1E-05
IL_018C: mul
IL_018D: ldarg.0
IL_018E: ldflda UnityEngine.Vector2 LightEffect::m_offRange
IL_0193: ldfld System.Single UnityEngine.Vector2::y
IL_0198: ldarg.0
IL_0199: ldflda UnityEngine.Vector2 LightEffect::m_offRange
IL_019E: ldfld System.Single UnityEngine.Vector2::x
IL_01A3: sub
IL_01A4: mul
IL_01A5: add
IL_01A6: stfld System.Single UnityEngine.Vector2::x
IL_01AB: ldloca.s 10 (UnityEngine.Vector2)
IL_01AD: ldarg.0
IL_01AE: ldfld BlinkType LightEffect::m_blinkType
IL_01B3: conv.r4
IL_01B4: stfld System.Single UnityEngine.Vector2::y
IL_01B9: ldarg.2
IL_01BA: call static System.UInt16 EffectInfo::GetBuilding(InstanceID id)
IL_01BF: stloc.s 13 (System.UInt16)
IL_01C1: ldloc.s 13 (System.UInt16)
IL_01C3: brfalse => Label7
IL_01C8: ldloc.s 13 (System.UInt16)
IL_01CA: call static UnityEngine.Vector4
RenderManager::GetColorLocation(System.UInt32 instanceHolder)
IL_01CF: call static UnityEngine.Vector2
UnityEngine.Vector4::op_Implicit(UnityEngine.Vector4 v)
IL_01D4: stloc.s 11 (UnityEngine.Vector2)
IL_01D6: ldloc.0
IL_01D7: brfalse => Label8
IL_01DC: call static BuildingManager
ColossalFramework.Singleton`1<BuildingManager>::get_instance()
IL_01E1: ldfld Array16`1<Building> BuildingManager::m_buildings
IL_01E6: ldfld Building[] Array16`1<Building>::m_buffer
IL_01EB: ldloc.s 13 (System.UInt16)
IL_01ED: ldelema Building
IL_01F2: call UnityEngine.Vector3 Building::CalculateMeshPosition()
IL_01F7: stloc.s 14 (UnityEngine.Vector3)
IL_01F9: ldloc.s 14 (UnityEngine.Vector3)
IL_01FB: call static UnityEngine.Vector2
ColossalFramework.Math.VectorUtils::XZ(UnityEngine.Vector3 v)
IL_0200: stloc.s 12 (UnityEngine.Vector2)
IL_0202: ldarga.s 3
IL_0204: dup
IL_0205: ldfld System.Single UnityEngine.Vector3::y
IL_020A: ldloca.s 14 (UnityEngine.Vector3)
IL_020C: ldfld System.Single UnityEngine.Vector3::y
IL_0211: sub
IL_0212: stfld System.Single UnityEngine.Vector3::y
IL_0217: ldloca.s 4 (UnityEngine.Vector3)
IL_0219: dup
IL_021A: ldfld System.Single UnityEngine.Vector3::y
IL_021F: ldloca.s 14 (UnityEngine.Vector3)
IL_0221: ldfld System.Single UnityEngine.Vector3::y
IL_0226: sub
IL_0227: stfld System.Single UnityEngine.Vector3::y
IL_022C: br => Label9
IL_0231: Label8
IL_0231: call static UnityEngine.Vector2 UnityEngine.Vector2::get_zero()
IL_0236: stloc.s 12 (UnityEngine.Vector2)
IL_0238: Label9
IL_0238: br => Label10
IL_023D: Label7
IL_023D: ldsfld UnityEngine.Vector4 RenderManager::DefaultColorLocation
IL_0242: call static UnityEngine.Vector2
UnityEngine.Vector4::op_Implicit(UnityEngine.Vector4 v)
IL_0247: stloc.s 11 (UnityEngine.Vector2)
IL_0249: call static UnityEngine.Vector2 UnityEngine.Vector2::get_zero()
IL_024E: stloc.s 12 (UnityEngine.Vector2)
IL_0250: Label10
IL_0250: ldarg.0
IL_0251: ldfld UnityEngine.Color LightEffect::m_lightColor
IL_0256: stloc.s 15 (UnityEngine.Color)
IL_0258: ldarg.0
IL_0259: ldfld UnityEngine.Color[] LightEffect::m_variationColors
IL_025E: brfalse => Label11
IL_0263: ldarg.0
IL_0264: ldfld UnityEngine.Color[] LightEffect::m_variationColors
IL_0269: ldlen
IL_026A: conv.i4
IL_026B: brfalse => Label12
IL_0270: ldarg.0
IL_0271: ldfld UnityEngine.Color[] LightEffect::m_variationColors
IL_0276: ldloca.s 9 (ColossalFramework.Math.Randomizer)
IL_0278: ldarg.0
IL_0279: ldfld UnityEngine.Color[] LightEffect::m_variationColors
IL_027E: ldlen
IL_027F: conv.i4
IL_0280: call System.Int32
ColossalFramework.Math.Randomizer::Int32(System.UInt32 range)
IL_0285: ldelema UnityEngine.Color
IL_028A: ldobj UnityEngine.Color
IL_028F: stloc.s 16 (UnityEngine.Color)
IL_0291: ldloc.s 15 (UnityEngine.Color)
IL_0293: ldloc.s 16 (UnityEngine.Color)
IL_0295: ldloca.s 9 (ColossalFramework.Math.Randomizer)
IL_0297: ldc.i4 1000
IL_029C: call System.Int32
ColossalFramework.Math.Randomizer::Int32(System.UInt32 range)
IL_02A1: conv.r4
IL_02A2: ldc.r4 0.001
IL_02A7: mul
IL_02A8: call static UnityEngine.Color
UnityEngine.Color::Lerp(UnityEngine.Color a, UnityEngine.Color b, System.Single t)
IL_02AD: stloc.s 15 (UnityEngine.Color)
IL_02AF: Label11
IL_02AF: Label12
IL_02AF: ldloca.s 15 (UnityEngine.Color)
IL_02B1: call UnityEngine.Color UnityEngine.Color::get_linear()
IL_02B6: stloc.s 15 (UnityEngine.Color)
IL_02B8: ldloca.s 15 (UnityEngine.Color)
IL_02BA: ldarg.0
IL_02BB: ldfld UnityEngine.LightType LightEffect::m_lightType
IL_02C0: brtrue => Label13
IL_02C5: ldarg.0
IL_02C6: ldfld System.Single LightEffect::m_spotLeaking
IL_02CB: br => Label14
IL_02D0: Label13
IL_02D0: ldc.r4 0
IL_02D5: Label14
IL_02D5: stfld System.Single UnityEngine.Color::a
IL_02DA: ldarg.0
IL_02DB: ldfld System.Single LightEffect::m_lightRange
IL_02E0: ldc.r4 0.5235988
IL_02E5: call static System.Single UnityEngine.Mathf::Cos(System.Single f)
IL_02EA: div
IL_02EB: stloc.s 17 (System.Single)
IL_02ED: ldloc.s 17 (System.Single)
IL_02EF: ldc.r4 0.5
IL_02F4: mul
IL_02F5: stloc.s 18 (System.Single)
IL_02F7: ldarg.s 8
IL_02F9: ldfld UnityEngine.Vector3[] MeshData::m_vertices
IL_02FE: ldarg.s 5
IL_0300: ldind.i4
IL_0301: ldelema UnityEngine.Vector3
IL_0306: ldloca.s 4 (UnityEngine.Vector3)
IL_0308: ldfld System.Single UnityEngine.Vector3::x
IL_030D: ldloc.s 18 (System.Single)
IL_030F: sub
IL_0310: ldloca.s 4 (UnityEngine.Vector3)
IL_0312: ldfld System.Single UnityEngine.Vector3::y
IL_0317: ldarg.0
IL_0318: ldfld System.Single LightEffect::m_lightRange
IL_031D: add
IL_031E: ldloca.s 4 (UnityEngine.Vector3)
IL_0320: ldfld System.Single UnityEngine.Vector3::z
IL_0325: ldarg.0
IL_0326: ldfld System.Single LightEffect::m_lightRange
IL_032B: add
IL_032C: newobj System.Void UnityEngine.Vector3::.ctor(System.Single x,
System.Single y, System.Single z)
IL_0331: stobj UnityEngine.Vector3
IL_0336: ldarg.s 8
IL_0338: ldfld UnityEngine.Vector3[] MeshData::m_normals
IL_033D: ldarg.s 5
IL_033F: ldind.i4
IL_0340: ldelema UnityEngine.Vector3
IL_0345: ldarg.3
IL_0346: stobj UnityEngine.Vector3
IL_034B: ldarg.s 8
IL_034D: ldfld UnityEngine.Vector4[] MeshData::m_tangents
IL_0352: ldarg.s 5
IL_0354: ldind.i4
IL_0355: ldelema UnityEngine.Vector4
IL_035A: ldloc.s 7 (UnityEngine.Vector4)
IL_035C: stobj UnityEngine.Vector4
IL_0361: ldarg.s 8
IL_0363: ldfld UnityEngine.Vector2[] MeshData::m_uvs
IL_0368: ldarg.s 5
IL_036A: ldind.i4
IL_036B: ldelema UnityEngine.Vector2
IL_0370: ldloc.s 8 (UnityEngine.Vector2)
IL_0372: stobj UnityEngine.Vector2
IL_0377: ldarg.s 8
IL_0379: ldfld UnityEngine.Vector2[] MeshData::m_uvs2
IL_037E: ldarg.s 5
IL_0380: ldind.i4
IL_0381: ldelema UnityEngine.Vector2
IL_0386: ldloc.s 10 (UnityEngine.Vector2)
IL_0388: stobj UnityEngine.Vector2
IL_038D: ldarg.s 8
IL_038F: ldfld UnityEngine.Vector2[] MeshData::m_uvs3
IL_0394: ldarg.s 5
IL_0396: ldind.i4
IL_0397: ldelema UnityEngine.Vector2
IL_039C: ldloc.s 11 (UnityEngine.Vector2)
IL_039E: stobj UnityEngine.Vector2
IL_03A3: ldloc.0
IL_03A4: brfalse => Label15
IL_03A9: ldarg.s 8
IL_03AB: ldfld UnityEngine.Vector2[] MeshData::m_uvs4
IL_03B0: ldarg.s 5
IL_03B2: ldind.i4
IL_03B3: ldelema UnityEngine.Vector2
IL_03B8: ldloc.s 12 (UnityEngine.Vector2)
IL_03BA: stobj UnityEngine.Vector2
IL_03BF: Label15
IL_03BF: ldarg.s 8
IL_03C1: ldfld UnityEngine.Color32[] MeshData::m_colors
IL_03C6: ldarg.s 5
IL_03C8: ldind.i4
IL_03C9: ldelema UnityEngine.Color32
IL_03CE: ldloc.s 15 (UnityEngine.Color)
IL_03D0: call static UnityEngine.Color32
UnityEngine.Color32::op_Implicit(UnityEngine.Color c)
IL_03D5: stobj UnityEngine.Color32
IL_03DA: ldarg.s 5
IL_03DC: ldarg.s 5
IL_03DE: ldind.i4
IL_03DF: ldc.i4.1
IL_03E0: add
IL_03E1: stind.i4
IL_03E2: ldarg.s 8
IL_03E4: ldfld UnityEngine.Vector3[] MeshData::m_vertices
IL_03E9: ldarg.s 5
IL_03EB: ldind.i4
IL_03EC: ldelema UnityEngine.Vector3
IL_03F1: ldloca.s 4 (UnityEngine.Vector3)
IL_03F3: ldfld System.Single UnityEngine.Vector3::x
IL_03F8: ldloc.s 18 (System.Single)
IL_03FA: add
IL_03FB: ldloca.s 4 (UnityEngine.Vector3)
IL_03FD: ldfld System.Single UnityEngine.Vector3::y
IL_0402: ldarg.0
IL_0403: ldfld System.Single LightEffect::m_lightRange
IL_0408: add
IL_0409: ldloca.s 4 (UnityEngine.Vector3)
IL_040B: ldfld System.Single UnityEngine.Vector3::z
IL_0410: ldarg.0
IL_0411: ldfld System.Single LightEffect::m_lightRange
IL_0416: add
IL_0417: newobj System.Void UnityEngine.Vector3::.ctor(System.Single x,
System.Single y, System.Single z)
IL_041C: stobj UnityEngine.Vector3
IL_0421: ldarg.s 8
IL_0423: ldfld UnityEngine.Vector3[] MeshData::m_normals
IL_0428: ldarg.s 5
IL_042A: ldind.i4
IL_042B: ldelema UnityEngine.Vector3
IL_0430: ldarg.3
IL_0431: stobj UnityEngine.Vector3
IL_0436: ldarg.s 8
IL_0438: ldfld UnityEngine.Vector4[] MeshData::m_tangents
IL_043D: ldarg.s 5
IL_043F: ldind.i4
IL_0440: ldelema UnityEngine.Vector4
IL_0445: ldloc.s 7 (UnityEngine.Vector4)
IL_0447: stobj UnityEngine.Vector4
IL_044C: ldarg.s 8
IL_044E: ldfld UnityEngine.Vector2[] MeshData::m_uvs
IL_0453: ldarg.s 5
IL_0455: ldind.i4
IL_0456: ldelema UnityEngine.Vector2
IL_045B: ldloc.s 8 (UnityEngine.Vector2)
IL_045D: stobj UnityEngine.Vector2
IL_0462: ldarg.s 8
IL_0464: ldfld UnityEngine.Vector2[] MeshData::m_uvs2
IL_0469: ldarg.s 5
IL_046B: ldind.i4
IL_046C: ldelema UnityEngine.Vector2
IL_0471: ldloc.s 10 (UnityEngine.Vector2)
IL_0473: stobj UnityEngine.Vector2
IL_0478: ldarg.s 8
IL_047A: ldfld UnityEngine.Vector2[] MeshData::m_uvs3
IL_047F: ldarg.s 5
IL_0481: ldind.i4
IL_0482: ldelema UnityEngine.Vector2
IL_0487: ldloc.s 11 (UnityEngine.Vector2)
IL_0489: stobj UnityEngine.Vector2
IL_048E: ldloc.0
IL_048F: brfalse => Label16
IL_0494: ldarg.s 8
IL_0496: ldfld UnityEngine.Vector2[] MeshData::m_uvs4
IL_049B: ldarg.s 5
IL_049D: ldind.i4
IL_049E: ldelema UnityEngine.Vector2
IL_04A3: ldloc.s 12 (UnityEngine.Vector2)
IL_04A5: stobj UnityEngine.Vector2
IL_04AA: Label16
IL_04AA: ldarg.s 8
IL_04AC: ldfld UnityEngine.Color32[] MeshData::m_colors
IL_04B1: ldarg.s 5
IL_04B3: ldind.i4
IL_04B4: ldelema UnityEngine.Color32
IL_04B9: ldloc.s 15 (UnityEngine.Color)
IL_04BB: call static UnityEngine.Color32
UnityEngine.Color32::op_Implicit(UnityEngine.Color c)
IL_04C0: stobj UnityEngine.Color32
IL_04C5: ldarg.s 5
IL_04C7: ldarg.s 5
IL_04C9: ldind.i4
IL_04CA: ldc.i4.1
IL_04CB: add
IL_04CC: stind.i4
IL_04CD: ldarg.s 8
IL_04CF: ldfld UnityEngine.Vector3[] MeshData::m_vertices
IL_04D4: ldarg.s 5
IL_04D6: ldind.i4
IL_04D7: ldelema UnityEngine.Vector3
IL_04DC: ldloca.s 4 (UnityEngine.Vector3)
IL_04DE: ldfld System.Single UnityEngine.Vector3::x
IL_04E3: ldloc.s 17 (System.Single)
IL_04E5: add
IL_04E6: ldloca.s 4 (UnityEngine.Vector3)
IL_04E8: ldfld System.Single UnityEngine.Vector3::y
IL_04ED: ldloca.s 4 (UnityEngine.Vector3)
IL_04EF: ldfld System.Single UnityEngine.Vector3::z
IL_04F4: ldarg.0
IL_04F5: ldfld System.Single LightEffect::m_lightRange
IL_04FA: add
IL_04FB: newobj System.Void UnityEngine.Vector3::.ctor(System.Single x,
System.Single y, System.Single z)
IL_0500: stobj UnityEngine.Vector3
IL_0505: ldarg.s 8
IL_0507: ldfld UnityEngine.Vector3[] MeshData::m_normals
IL_050C: ldarg.s 5
IL_050E: ldind.i4
IL_050F: ldelema UnityEngine.Vector3
IL_0514: ldarg.3
IL_0515: stobj UnityEngine.Vector3
IL_051A: ldarg.s 8
IL_051C: ldfld UnityEngine.Vector4[] MeshData::m_tangents
IL_0521: ldarg.s 5
IL_0523: ldind.i4
IL_0524: ldelema UnityEngine.Vector4
IL_0529: ldloc.s 7 (UnityEngine.Vector4)
IL_052B: stobj UnityEngine.Vector4
IL_0530: ldarg.s 8
IL_0532: ldfld UnityEngine.Vector2[] MeshData::m_uvs
IL_0537: ldarg.s 5
IL_0539: ldind.i4
IL_053A: ldelema UnityEngine.Vector2
IL_053F: ldloc.s 8 (UnityEngine.Vector2)
IL_0541: stobj UnityEngine.Vector2
IL_0546: ldarg.s 8
IL_0548: ldfld UnityEngine.Vector2[] MeshData::m_uvs2
IL_054D: ldarg.s 5
IL_054F: ldind.i4
IL_0550: ldelema UnityEngine.Vector2
IL_0555: ldloc.s 10 (UnityEngine.Vector2)
IL_0557: stobj UnityEngine.Vector2
IL_055C: ldarg.s 8
IL_055E: ldfld UnityEngine.Vector2[] MeshData::m_uvs3
IL_0563: ldarg.s 5
IL_0565: ldind.i4
IL_0566: ldelema UnityEngine.Vector2
IL_056B: ldloc.s 11 (UnityEngine.Vector2)
IL_056D: stobj UnityEngine.Vector2
IL_0572: ldloc.0
IL_0573: brfalse => Label17
IL_0578: ldarg.s 8
IL_057A: ldfld UnityEngine.Vector2[] MeshData::m_uvs4
IL_057F: ldarg.s 5
IL_0581: ldind.i4
IL_0582: ldelema UnityEngine.Vector2
IL_0587: ldloc.s 12 (UnityEngine.Vector2)
IL_0589: stobj UnityEngine.Vector2
IL_058E: Label17
IL_058E: ldarg.s 8
IL_0590: ldfld UnityEngine.Color32[] MeshData::m_colors
IL_0595: ldarg.s 5
IL_0597: ldind.i4
IL_0598: ldelema UnityEngine.Color32
IL_059D: ldloc.s 15 (UnityEngine.Color)
IL_059F: call static UnityEngine.Color32
UnityEngine.Color32::op_Implicit(UnityEngine.Color c)
IL_05A4: stobj UnityEngine.Color32
IL_05A9: ldarg.s 5
IL_05AB: ldarg.s 5
IL_05AD: ldind.i4
IL_05AE: ldc.i4.1
IL_05AF: add
IL_05B0: stind.i4
IL_05B1: ldarg.s 8
IL_05B3: ldfld UnityEngine.Vector3[] MeshData::m_vertices
IL_05B8: ldarg.s 5
IL_05BA: ldind.i4
IL_05BB: ldelema UnityEngine.Vector3
IL_05C0: ldloca.s 4 (UnityEngine.Vector3)
IL_05C2: ldfld System.Single UnityEngine.Vector3::x
IL_05C7: ldloc.s 18 (System.Single)
IL_05C9: add
IL_05CA: ldloca.s 4 (UnityEngine.Vector3)
IL_05CC: ldfld System.Single UnityEngine.Vector3::y
IL_05D1: ldarg.0
IL_05D2: ldfld System.Single LightEffect::m_lightRange
IL_05D7: sub
IL_05D8: ldloca.s 4 (UnityEngine.Vector3)
IL_05DA: ldfld System.Single UnityEngine.Vector3::z
IL_05DF: ldarg.0
IL_05E0: ldfld System.Single LightEffect::m_lightRange
IL_05E5: add
IL_05E6: newobj System.Void UnityEngine.Vector3::.ctor(System.Single x,
System.Single y, System.Single z)
IL_05EB: stobj UnityEngine.Vector3
IL_05F0: ldarg.s 8
IL_05F2: ldfld UnityEngine.Vector3[] MeshData::m_normals
IL_05F7: ldarg.s 5
IL_05F9: ldind.i4
IL_05FA: ldelema UnityEngine.Vector3
IL_05FF: ldarg.3
IL_0600: stobj UnityEngine.Vector3
IL_0605: ldarg.s 8
IL_0607: ldfld UnityEngine.Vector4[] MeshData::m_tangents
IL_060C: ldarg.s 5
IL_060E: ldind.i4
IL_060F: ldelema UnityEngine.Vector4
IL_0614: ldloc.s 7 (UnityEngine.Vector4)
IL_0616: stobj UnityEngine.Vector4
IL_061B: ldarg.s 8
IL_061D: ldfld UnityEngine.Vector2[] MeshData::m_uvs
IL_0622: ldarg.s 5
IL_0624: ldind.i4
IL_0625: ldelema UnityEngine.Vector2
IL_062A: ldloc.s 8 (UnityEngine.Vector2)
IL_062C: stobj UnityEngine.Vector2
IL_0631: ldarg.s 8
IL_0633: ldfld UnityEngine.Vector2[] MeshData::m_uvs2
IL_0638: ldarg.s 5
IL_063A: ldind.i4
IL_063B: ldelema UnityEngine.Vector2
IL_0640: ldloc.s 10 (UnityEngine.Vector2)
IL_0642: stobj UnityEngine.Vector2
IL_0647: ldarg.s 8
IL_0649: ldfld UnityEngine.Vector2[] MeshData::m_uvs3
IL_064E: ldarg.s 5
IL_0650: ldind.i4
IL_0651: ldelema UnityEngine.Vector2
IL_0656: ldloc.s 11 (UnityEngine.Vector2)
IL_0658: stobj UnityEngine.Vector2
IL_065D: ldloc.0
IL_065E: brfalse => Label18
IL_0663: ldarg.s 8
IL_0665: ldfld UnityEngine.Vector2[] MeshData::m_uvs4
IL_066A: ldarg.s 5
IL_066C: ldind.i4
IL_066D: ldelema UnityEngine.Vector2
IL_0672: ldloc.s 12 (UnityEngine.Vector2)
IL_0674: stobj UnityEngine.Vector2
IL_0679: Label18
IL_0679: ldarg.s 8
IL_067B: ldfld UnityEngine.Color32[] MeshData::m_colors
IL_0680: ldarg.s 5
IL_0682: ldind.i4
IL_0683: ldelema UnityEngine.Color32
IL_0688: ldloc.s 15 (UnityEngine.Color)
IL_068A: call static UnityEngine.Color32
UnityEngine.Color32::op_Implicit(UnityEngine.Color c)
IL_068F: stobj UnityEngine.Color32
IL_0694: ldarg.s 5
IL_0696: ldarg.s 5
IL_0698: ldind.i4
IL_0699: ldc.i4.1
IL_069A: add
IL_069B: stind.i4
IL_069C: ldarg.s 8
IL_069E: ldfld UnityEngine.Vector3[] MeshData::m_vertices
IL_06A3: ldarg.s 5
IL_06A5: ldind.i4
IL_06A6: ldelema UnityEngine.Vector3
IL_06AB: ldloca.s 4 (UnityEngine.Vector3)
IL_06AD: ldfld System.Single UnityEngine.Vector3::x
IL_06B2: ldloc.s 18 (System.Single)
IL_06B4: sub
IL_06B5: ldloca.s 4 (UnityEngine.Vector3)
IL_06B7: ldfld System.Single UnityEngine.Vector3::y
IL_06BC: ldarg.0
IL_06BD: ldfld System.Single LightEffect::m_lightRange
IL_06C2: sub
IL_06C3: ldloca.s 4 (UnityEngine.Vector3)
IL_06C5: ldfld System.Single UnityEngine.Vector3::z
IL_06CA: ldarg.0
IL_06CB: ldfld System.Single LightEffect::m_lightRange
IL_06D0: add
IL_06D1: newobj System.Void UnityEngine.Vector3::.ctor(System.Single x,
System.Single y, System.Single z)
IL_06D6: stobj UnityEngine.Vector3
IL_06DB: ldarg.s 8
IL_06DD: ldfld UnityEngine.Vector3[] MeshData::m_normals
IL_06E2: ldarg.s 5
IL_06E4: ldind.i4
IL_06E5: ldelema UnityEngine.Vector3
IL_06EA: ldarg.3
IL_06EB: stobj UnityEngine.Vector3
IL_06F0: ldarg.s 8
IL_06F2: ldfld UnityEngine.Vector4[] MeshData::m_tangents
IL_06F7: ldarg.s 5
IL_06F9: ldind.i4
IL_06FA: ldelema UnityEngine.Vector4
IL_06FF: ldloc.s 7 (UnityEngine.Vector4)
IL_0701: stobj UnityEngine.Vector4
IL_0706: ldarg.s 8
IL_0708: ldfld UnityEngine.Vector2[] MeshData::m_uvs
IL_070D: ldarg.s 5
IL_070F: ldind.i4
IL_0710: ldelema UnityEngine.Vector2
IL_0715: ldloc.s 8 (UnityEngine.Vector2)
IL_0717: stobj UnityEngine.Vector2
IL_071C: ldarg.s 8
IL_071E: ldfld UnityEngine.Vector2[] MeshData::m_uvs2
IL_0723: ldarg.s 5
IL_0725: ldind.i4
IL_0726: ldelema UnityEngine.Vector2
IL_072B: ldloc.s 10 (UnityEngine.Vector2)
IL_072D: stobj UnityEngine.Vector2
IL_0732: ldarg.s 8
IL_0734: ldfld UnityEngine.Vector2[] MeshData::m_uvs3
IL_0739: ldarg.s 5
IL_073B: ldind.i4
IL_073C: ldelema UnityEngine.Vector2
IL_0741: ldloc.s 11 (UnityEngine.Vector2)
IL_0743: stobj UnityEngine.Vector2
IL_0748: ldloc.0
IL_0749: brfalse => Label19
IL_074E: ldarg.s 8
IL_0750: ldfld UnityEngine.Vector2[] MeshData::m_uvs4
IL_0755: ldarg.s 5
IL_0757: ldind.i4
IL_0758: ldelema UnityEngine.Vector2
IL_075D: ldloc.s 12 (UnityEngine.Vector2)
IL_075F: stobj UnityEngine.Vector2
IL_0764: Label19
IL_0764: ldarg.s 8
IL_0766: ldfld UnityEngine.Color32[] MeshData::m_colors
IL_076B: ldarg.s 5
IL_076D: ldind.i4
IL_076E: ldelema UnityEngine.Color32
IL_0773: ldloc.s 15 (UnityEngine.Color)
IL_0775: call static UnityEngine.Color32
UnityEngine.Color32::op_Implicit(UnityEngine.Color c)
IL_077A: stobj UnityEngine.Color32
IL_077F: ldarg.s 5
IL_0781: ldarg.s 5
IL_0783: ldind.i4
IL_0784: ldc.i4.1
IL_0785: add
IL_0786: stind.i4
IL_0787: ldarg.s 8
IL_0789: ldfld UnityEngine.Vector3[] MeshData::m_vertices
IL_078E: ldarg.s 5
IL_0790: ldind.i4
IL_0791: ldelema UnityEngine.Vector3
IL_0796: ldloca.s 4 (UnityEngine.Vector3)
IL_0798: ldfld System.Single UnityEngine.Vector3::x
IL_079D: ldloc.s 17 (System.Single)
IL_079F: sub
IL_07A0: ldloca.s 4 (UnityEngine.Vector3)
IL_07A2: ldfld System.Single UnityEngine.Vector3::y
IL_07A7: ldloca.s 4 (UnityEngine.Vector3)
IL_07A9: ldfld System.Single UnityEngine.Vector3::z
IL_07AE: ldarg.0
IL_07AF: ldfld System.Single LightEffect::m_lightRange
IL_07B4: add
IL_07B5: newobj System.Void UnityEngine.Vector3::.ctor(System.Single x,
System.Single y, System.Single z)
IL_07BA: stobj UnityEngine.Vector3
IL_07BF: ldarg.s 8
IL_07C1: ldfld UnityEngine.Vector3[] MeshData::m_normals
IL_07C6: ldarg.s 5
IL_07C8: ldind.i4
IL_07C9: ldelema UnityEngine.Vector3
IL_07CE: ldarg.3
IL_07CF: stobj UnityEngine.Vector3
IL_07D4: ldarg.s 8
IL_07D6: ldfld UnityEngine.Vector4[] MeshData::m_tangents
IL_07DB: ldarg.s 5
IL_07DD: ldind.i4
IL_07DE: ldelema UnityEngine.Vector4
IL_07E3: ldloc.s 7 (UnityEngine.Vector4)
IL_07E5: stobj UnityEngine.Vector4
IL_07EA: ldarg.s 8
IL_07EC: ldfld UnityEngine.Vector2[] MeshData::m_uvs
IL_07F1: ldarg.s 5
IL_07F3: ldind.i4
IL_07F4: ldelema UnityEngine.Vector2
IL_07F9: ldloc.s 8 (UnityEngine.Vector2)
IL_07FB: stobj UnityEngine.Vector2
IL_0800: ldarg.s 8
IL_0802: ldfld UnityEngine.Vector2[] MeshData::m_uvs2
IL_0807: ldarg.s 5
IL_0809: ldind.i4
IL_080A: ldelema UnityEngine.Vector2
IL_080F: ldloc.s 10 (UnityEngine.Vector2)
IL_0811: stobj UnityEngine.Vector2
IL_0816: ldarg.s 8
IL_0818: ldfld UnityEngine.Vector2[] MeshData::m_uvs3
IL_081D: ldarg.s 5
IL_081F: ldind.i4
IL_0820: ldelema UnityEngine.Vector2
IL_0825: ldloc.s 11 (UnityEngine.Vector2)
IL_0827: stobj UnityEngine.Vector2
IL_082C: ldloc.0
IL_082D: brfalse => Label20
IL_0832: ldarg.s 8
IL_0834: ldfld UnityEngine.Vector2[] MeshData::m_uvs4
IL_0839: ldarg.s 5
IL_083B: ldind.i4
IL_083C: ldelema UnityEngine.Vector2
IL_0841: ldloc.s 12 (UnityEngine.Vector2)
IL_0843: stobj UnityEngine.Vector2
IL_0848: Label20
IL_0848: ldarg.s 8
IL_084A: ldfld UnityEngine.Color32[] MeshData::m_colors
IL_084F: ldarg.s 5
IL_0851: ldind.i4
IL_0852: ldelema UnityEngine.Color32
IL_0857: ldloc.s 15 (UnityEngine.Color)
IL_0859: call static UnityEngine.Color32
UnityEngine.Color32::op_Implicit(UnityEngine.Color c)
IL_085E: stobj UnityEngine.Color32
IL_0863: ldarg.s 5
IL_0865: ldarg.s 5
IL_0867: ldind.i4
IL_0868: ldc.i4.1
IL_0869: add
IL_086A: stind.i4
IL_086B: ldarg.s 8
IL_086D: ldfld System.Int32[] MeshData::m_triangles
IL_0872: ldarg.s 6
IL_0874: ldarg.s 6
IL_0876: ldind.i4
IL_0877: dup
IL_0878: stloc.s 19 (System.Int32)
IL_087A: ldc.i4.1
IL_087B: add
IL_087C: stind.i4
IL_087D: ldloc.s 19 (System.Int32)
IL_087F: ldarg.s 5
IL_0881: ldind.i4
IL_0882: ldc.i4.6
IL_0883: sub
IL_0884: stelem.i4
IL_0885: ldarg.s 8
IL_0887: ldfld System.Int32[] MeshData::m_triangles
IL_088C: ldarg.s 6
IL_088E: ldarg.s 6
IL_0890: ldind.i4
IL_0891: dup
IL_0892: stloc.s 19 (System.Int32)
IL_0894: ldc.i4.1
IL_0895: add
IL_0896: stind.i4
IL_0897: ldloc.s 19 (System.Int32)
IL_0899: ldarg.s 5
IL_089B: ldind.i4
IL_089C: ldc.i4.5
IL_089D: sub
IL_089E: stelem.i4
IL_089F: ldarg.s 8
IL_08A1: ldfld System.Int32[] MeshData::m_triangles
IL_08A6: ldarg.s 6
IL_08A8: ldarg.s 6
IL_08AA: ldind.i4
IL_08AB: dup
IL_08AC: stloc.s 19 (System.Int32)
IL_08AE: ldc.i4.1
IL_08AF: add
IL_08B0: stind.i4
IL_08B1: ldloc.s 19 (System.Int32)
IL_08B3: ldarg.s 5
IL_08B5: ldind.i4
IL_08B6: ldc.i4.1
IL_08B7: sub
IL_08B8: stelem.i4
IL_08B9: ldarg.s 8
IL_08BB: ldfld System.Int32[] MeshData::m_triangles
IL_08C0: ldarg.s 6
IL_08C2: ldarg.s 6
IL_08C4: ldind.i4
IL_08C5: dup
IL_08C6: stloc.s 19 (System.Int32)
IL_08C8: ldc.i4.1
IL_08C9: add
IL_08CA: stind.i4
IL_08CB: ldloc.s 19 (System.Int32)
IL_08CD: ldarg.s 5
IL_08CF: ldind.i4
IL_08D0: ldc.i4.1
IL_08D1: sub
IL_08D2: stelem.i4
IL_08D3: ldarg.s 8
IL_08D5: ldfld System.Int32[] MeshData::m_triangles
IL_08DA: ldarg.s 6
IL_08DC: ldarg.s 6
IL_08DE: ldind.i4
IL_08DF: dup
IL_08E0: stloc.s 19 (System.Int32)
IL_08E2: ldc.i4.1
IL_08E3: add
IL_08E4: stind.i4
IL_08E5: ldloc.s 19 (System.Int32)
IL_08E7: ldarg.s 5
IL_08E9: ldind.i4
IL_08EA: ldc.i4.5
IL_08EB: sub
IL_08EC: stelem.i4
IL_08ED: ldarg.s 8
IL_08EF: ldfld System.Int32[] MeshData::m_triangles
IL_08F4: ldarg.s 6
IL_08F6: ldarg.s 6
IL_08F8: ldind.i4
IL_08F9: dup
IL_08FA: stloc.s 19 (System.Int32)
IL_08FC: ldc.i4.1
IL_08FD: add
IL_08FE: stind.i4
IL_08FF: ldloc.s 19 (System.Int32)
IL_0901: ldarg.s 5
IL_0903: ldind.i4
IL_0904: ldc.i4.4
IL_0905: sub
IL_0906: stelem.i4
IL_0907: ldarg.s 8
IL_0909: ldfld System.Int32[] MeshData::m_triangles
IL_090E: ldarg.s 6
IL_0910: ldarg.s 6
IL_0912: ldind.i4
IL_0913: dup
IL_0914: stloc.s 19 (System.Int32)
IL_0916: ldc.i4.1
IL_0917: add
IL_0918: stind.i4
IL_0919: ldloc.s 19 (System.Int32)
IL_091B: ldarg.s 5
IL_091D: ldind.i4
IL_091E: ldc.i4.1
IL_091F: sub
IL_0920: stelem.i4
IL_0921: ldarg.s 8
IL_0923: ldfld System.Int32[] MeshData::m_triangles
IL_0928: ldarg.s 6
IL_092A: ldarg.s 6
IL_092C: ldind.i4
IL_092D: dup
IL_092E: stloc.s 19 (System.Int32)
IL_0930: ldc.i4.1
IL_0931: add
IL_0932: stind.i4
IL_0933: ldloc.s 19 (System.Int32)
IL_0935: ldarg.s 5
IL_0937: ldind.i4
IL_0938: ldc.i4.4
IL_0939: sub
IL_093A: stelem.i4
IL_093B: ldarg.s 8
IL_093D: ldfld System.Int32[] MeshData::m_triangles
IL_0942: ldarg.s 6
IL_0944: ldarg.s 6
IL_0946: ldind.i4
IL_0947: dup
IL_0948: stloc.s 19 (System.Int32)
IL_094A: ldc.i4.1
IL_094B: add
IL_094C: stind.i4
IL_094D: ldloc.s 19 (System.Int32)
IL_094F: ldarg.s 5
IL_0951: ldind.i4
IL_0952: ldc.i4.2
IL_0953: sub
IL_0954: stelem.i4
IL_0955: ldarg.s 8
IL_0957: ldfld System.Int32[] MeshData::m_triangles
IL_095C: ldarg.s 6
IL_095E: ldarg.s 6
IL_0960: ldind.i4
IL_0961: dup
IL_0962: stloc.s 19 (System.Int32)
IL_0964: ldc.i4.1
IL_0965: add
IL_0966: stind.i4
IL_0967: ldloc.s 19 (System.Int32)
IL_0969: ldarg.s 5
IL_096B: ldind.i4
IL_096C: ldc.i4.2
IL_096D: sub
IL_096E: stelem.i4
IL_096F: ldarg.s 8
IL_0971: ldfld System.Int32[] MeshData::m_triangles
IL_0976: ldarg.s 6
IL_0978: ldarg.s 6
IL_097A: ldind.i4
IL_097B: dup
IL_097C: stloc.s 19 (System.Int32)
IL_097E: ldc.i4.1
IL_097F: add
IL_0980: stind.i4
IL_0981: ldloc.s 19 (System.Int32)
IL_0983: ldarg.s 5
IL_0985: ldind.i4
IL_0986: ldc.i4.4
IL_0987: sub
IL_0988: stelem.i4
IL_0989: ldarg.s 8
IL_098B: ldfld System.Int32[] MeshData::m_triangles
IL_0990: ldarg.s 6
IL_0992: ldarg.s 6
IL_0994: ldind.i4
IL_0995: dup
IL_0996: stloc.s 19 (System.Int32)
IL_0998: ldc.i4.1
IL_0999: add
IL_099A: stind.i4
IL_099B: ldloc.s 19 (System.Int32)
IL_099D: ldarg.s 5
IL_099F: ldind.i4
IL_09A0: ldc.i4.3
IL_09A1: sub
IL_09A2: stelem.i4
IL_09A3: // end original
IL_09A3: Label3
IL_09A3: Label0
IL_09A3: ret
DONE

### Patch: virtual System.Void ElectricityManager::SimulationStepImpl(System.Int32


subStep)
### Replacement: static System.Void
ElectricityManager::ElectricityManager.SimulationStepImpl_Patch0(ElectricityManager
this, System.Int32 subStep)
IL_0000: Local var 0: System.UInt32
IL_0000: Local var 1: System.Int32
IL_0000: Local var 2: NetManager
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: NetInfo
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: ElectricityManager/Cell
IL_0000: Local var 13: ElectricityManager/PulseGroup
IL_0000: Local var 14: ElectricityManager/PulseUnit
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: ElectricityManager/PulseUnit
IL_0000: Local var 19: System.UInt32
IL_0000: Local var 20: System.Int32
IL_0000: Local var 21: ElectricityManager/Cell
IL_0000: Local var 22: System.Int32
IL_0000: Local var 23: System.Int32
IL_0000: Local var 24: NetNode
IL_0000: Local var 25: System.Int32
IL_0000: Local var 26: System.UInt16
IL_0000: Local var 27: System.UInt16
IL_0000: Local var 28: System.UInt16
IL_0000: Local var 29: System.UInt16
IL_0000: Local var 30: System.Int32
IL_0000: Local var 31: ElectricityManager/PulseGroup
IL_0000: Local var 32: ElectricityManager/PulseGroup
IL_0000: Local var 33: System.Int32
IL_0000: Local var 34: ElectricityManager/PulseGroup
IL_0000: Local var 35: System.Int32
IL_0000: Local var 36: ElectricityManager/Cell
IL_0000: // start original
IL_0000: ldarg.1
IL_0001: brfalse => Label0
IL_0006: ldarg.1
IL_0007: ldc.i4 1000
IL_000C: beq => Label1
IL_0011: call static SimulationManager
ColossalFramework.Singleton`1<SimulationManager>::get_instance()
IL_0016: ldfld System.UInt32 SimulationManager::m_currentFrameIndex
IL_001B: stloc.0
IL_001C: ldloc.0
IL_001D: ldc.i4 255
IL_0022: and
IL_0023: stloc.1
IL_0024: ldloc.1
IL_0025: ldc.i4 128
IL_002A: bge => Label2
IL_002F: ldloc.1
IL_0030: brtrue => Label3
IL_0035: ldarg.0
IL_0036: ldc.i4.0
IL_0037: stfld System.Int32 ElectricityManager::m_pulseGroupCount
IL_003C: ldarg.0
IL_003D: ldc.i4.0
IL_003E: stfld System.Int32 ElectricityManager::m_pulseUnitStart
IL_0043: ldarg.0
IL_0044: ldc.i4.0
IL_0045: stfld System.Int32 ElectricityManager::m_pulseUnitEnd
IL_004A: ldarg.0
IL_004B: ldc.i4.0
IL_004C: stfld System.Int32 ElectricityManager::m_processedCells
IL_0051: ldarg.0
IL_0052: ldc.i4.0
IL_0053: stfld System.Int32 ElectricityManager::m_conductiveCells
IL_0058: ldarg.0
IL_0059: ldc.i4.1
IL_005A: stfld System.Boolean ElectricityManager::m_canContinue
IL_005F: Label3
IL_005F: call static NetManager
ColossalFramework.Singleton`1<NetManager>::get_instance()
IL_0064: stloc.2
IL_0065: ldloc.1
IL_0066: ldc.i4 32768
IL_006B: mul
IL_006C: ldc.i4.7
IL_006D: shr
IL_006E: stloc.3
IL_006F: ldloc.1
IL_0070: ldc.i4.1
IL_0071: add
IL_0072: ldc.i4 32768
IL_0077: mul
IL_0078: ldc.i4.7
IL_0079: shr
IL_007A: ldc.i4.1
IL_007B: sub
IL_007C: stloc.s 4 (System.Int32)
IL_007E: ldloc.3
IL_007F: stloc.s 5 (System.Int32)
IL_0081: br => Label4
IL_0086: Label10
IL_0086: ldloc.2
IL_0087: ldfld Array16`1<NetNode> NetManager::m_nodes
IL_008C: ldfld NetNode[] Array16`1<NetNode>::m_buffer
IL_0091: ldloc.s 5 (System.Int32)
IL_0093: ldelema NetNode
IL_0098: ldfld Flags NetNode::m_flags
IL_009D: brfalse => Label5
IL_00A2: ldloc.2
IL_00A3: ldfld Array16`1<NetNode> NetManager::m_nodes
IL_00A8: ldfld NetNode[] Array16`1<NetNode>::m_buffer
IL_00AD: ldloc.s 5 (System.Int32)
IL_00AF: ldelema NetNode
IL_00B4: call static System.Boolean
ElectricRoads.Overrides.ElectricRoadsOverrides::CheckElectricConductibility(NetNode
& node)
IL_00B9: brfalse => Label7
IL_00BE: Label6
IL_00BE: ldarg.0
IL_00BF: ldloc.s 5 (System.Int32)
IL_00C1: ldarg.0
IL_00C2: ldfld System.UInt16[] ElectricityManager::m_nodeGroups
IL_00C7: ldloc.s 5 (System.Int32)
IL_00C9: ldelem.u2
IL_00CA: ldc.i4 65535
IL_00CF: beq => Label8
IL_00D4: ldc.i4.1
IL_00D5: br => Label9
IL_00DA: Label8
IL_00DA: ldc.i4.0
IL_00DB: Label9
IL_00DB: call System.Void
ElectricityManager::UpdateNodeElectricity(System.Int32 nodeID, System.Int32 value)
IL_00E0: ldarg.0
IL_00E1: dup
IL_00E2: ldfld System.Int32 ElectricityManager::m_conductiveCells
IL_00E7: ldc.i4.1
IL_00E8: add
IL_00E9: stfld System.Int32 ElectricityManager::m_conductiveCells
IL_00EE: Label5
IL_00EE: Label7
IL_00EE: ldarg.0
IL_00EF: ldfld System.UInt16[] ElectricityManager::m_nodeGroups
IL_00F4: ldloc.s 5 (System.Int32)
IL_00F6: ldc.i4 65535
IL_00FB: stelem.i2
IL_00FC: ldloc.s 5 (System.Int32)
IL_00FE: ldc.i4.1
IL_00FF: add
IL_0100: stloc.s 5 (System.Int32)
IL_0102: Label4
IL_0102: ldloc.s 5 (System.Int32)
IL_0104: ldloc.s 4 (System.Int32)
IL_0106: ble => Label10
IL_010B: ldloc.1
IL_010C: ldc.i4 256
IL_0111: mul
IL_0112: ldc.i4.7
IL_0113: shr
IL_0114: stloc.s 7 (System.Int32)
IL_0116: ldloc.1
IL_0117: ldc.i4.1
IL_0118: add
IL_0119: ldc.i4 256
IL_011E: mul
IL_011F: ldc.i4.7
IL_0120: shr
IL_0121: ldc.i4.1
IL_0122: sub
IL_0123: stloc.s 8 (System.Int32)
IL_0125: ldloc.s 7 (System.Int32)
IL_0127: stloc.s 9 (System.Int32)
IL_0129: br => Label11
IL_012E: Label21
IL_012E: ldloc.s 9 (System.Int32)
IL_0130: ldc.i4 256
IL_0135: mul
IL_0136: stloc.s 10 (System.Int32)
IL_0138: ldc.i4.0
IL_0139: stloc.s 11 (System.Int32)
IL_013B: br => Label12
IL_0140: Label20
IL_0140: ldarg.0
IL_0141: ldfld Cell[] ElectricityManager::m_electricityGrid
IL_0146: ldloc.s 10 (System.Int32)
IL_0148: ldelema ElectricityManager+Cell
IL_014D: ldobj ElectricityManager+Cell
IL_0152: stloc.s 12 (ElectricityManager+Cell)
IL_0154: ldloca.s 12 (ElectricityManager+Cell)
IL_0156: ldfld System.Int16 Cell::m_currentCharge
IL_015B: ldc.i4.0
IL_015C: ble => Label13
IL_0161: ldarg.0
IL_0162: ldfld System.Int32 ElectricityManager::m_pulseGroupCount
IL_0167: ldc.i4 1024
IL_016C: bge => Label14
IL_0171: ldloca.s 13 (ElectricityManager+PulseGroup)
IL_0173: ldloca.s 12 (ElectricityManager+Cell)
IL_0175: ldfld System.Int16 Cell::m_currentCharge
IL_017A: conv.u4
IL_017B: stfld System.UInt32 PulseGroup::m_origCharge
IL_0180: ldloca.s 13 (ElectricityManager+PulseGroup)
IL_0182: ldloca.s 12 (ElectricityManager+Cell)
IL_0184: ldfld System.Int16 Cell::m_currentCharge
IL_0189: conv.u4
IL_018A: stfld System.UInt32 PulseGroup::m_curCharge
IL_018F: ldloca.s 13 (ElectricityManager+PulseGroup)
IL_0191: ldc.i4.0
IL_0192: stfld System.UInt16 PulseGroup::m_mergeCount
IL_0197: ldloca.s 13 (ElectricityManager+PulseGroup)
IL_0199: ldc.i4 65535
IL_019E: stfld System.UInt16 PulseGroup::m_mergeIndex
IL_01A3: ldloca.s 13 (ElectricityManager+PulseGroup)
IL_01A5: ldloc.s 11 (System.Int32)
IL_01A7: conv.u1
IL_01A8: stfld System.Byte PulseGroup::m_x
IL_01AD: ldloca.s 13 (ElectricityManager+PulseGroup)
IL_01AF: ldloc.s 9 (System.Int32)
IL_01B1: conv.u1
IL_01B2: stfld System.Byte PulseGroup::m_z
IL_01B7: ldloca.s 14 (ElectricityManager+PulseUnit)
IL_01B9: ldarg.0
IL_01BA: ldfld System.Int32 ElectricityManager::m_pulseGroupCount
IL_01BF: conv.u2
IL_01C0: stfld System.UInt16 PulseUnit::m_group
IL_01C5: ldloca.s 14 (ElectricityManager+PulseUnit)
IL_01C7: ldc.i4.0
IL_01C8: stfld System.UInt16 PulseUnit::m_node
IL_01CD: ldloca.s 14 (ElectricityManager+PulseUnit)
IL_01CF: ldloc.s 11 (System.Int32)
IL_01D1: conv.u1
IL_01D2: stfld System.Byte PulseUnit::m_x
IL_01D7: ldloca.s 14 (ElectricityManager+PulseUnit)
IL_01D9: ldloc.s 9 (System.Int32)
IL_01DB: conv.u1
IL_01DC: stfld System.Byte PulseUnit::m_z
IL_01E1: ldloca.s 12 (ElectricityManager+Cell)
IL_01E3: ldarg.0
IL_01E4: ldfld System.Int32 ElectricityManager::m_pulseGroupCount
IL_01E9: conv.u2
IL_01EA: stfld System.UInt16 Cell::m_pulseGroup
IL_01EF: ldarg.0
IL_01F0: ldfld PulseGroup[] ElectricityManager::m_pulseGroups
IL_01F5: ldarg.0
IL_01F6: dup
IL_01F7: ldfld System.Int32 ElectricityManager::m_pulseGroupCount
IL_01FC: dup
IL_01FD: stloc.s 15 (System.Int32)
IL_01FF: ldc.i4.1
IL_0200: add
IL_0201: stfld System.Int32 ElectricityManager::m_pulseGroupCount
IL_0206: ldloc.s 15 (System.Int32)
IL_0208: ldelema ElectricityManager+PulseGroup
IL_020D: ldloc.s 13 (ElectricityManager+PulseGroup)
IL_020F: stobj ElectricityManager+PulseGroup
IL_0214: ldarg.0
IL_0215: ldfld PulseUnit[] ElectricityManager::m_pulseUnits
IL_021A: ldarg.0
IL_021B: ldfld System.Int32 ElectricityManager::m_pulseUnitEnd
IL_0220: ldelema ElectricityManager+PulseUnit
IL_0225: ldloc.s 14 (ElectricityManager+PulseUnit)
IL_0227: stobj ElectricityManager+PulseUnit
IL_022C: ldarg.0
IL_022D: dup
IL_022E: ldfld System.Int32 ElectricityManager::m_pulseUnitEnd
IL_0233: ldc.i4.1
IL_0234: add
IL_0235: dup
IL_0236: stloc.s 15 (System.Int32)
IL_0238: stfld System.Int32 ElectricityManager::m_pulseUnitEnd
IL_023D: ldloc.s 15 (System.Int32)
IL_023F: ldarg.0
IL_0240: ldfld PulseUnit[] ElectricityManager::m_pulseUnits
IL_0245: ldlen
IL_0246: conv.i4
IL_0247: bne.un => Label15
IL_024C: ldarg.0
IL_024D: ldc.i4.0
IL_024E: stfld System.Int32 ElectricityManager::m_pulseUnitEnd
IL_0253: Label15
IL_0253: br => Label16
IL_0258: Label14
IL_0258: ldloca.s 12 (ElectricityManager+Cell)
IL_025A: ldc.i4 65535
IL_025F: stfld System.UInt16 Cell::m_pulseGroup
IL_0264: Label16
IL_0264: ldloca.s 12 (ElectricityManager+Cell)
IL_0266: ldc.i4.0
IL_0267: stfld System.Int16 Cell::m_currentCharge
IL_026C: ldarg.0
IL_026D: dup
IL_026E: ldfld System.Int32 ElectricityManager::m_conductiveCells
IL_0273: ldc.i4.1
IL_0274: add
IL_0275: stfld System.Int32 ElectricityManager::m_conductiveCells
IL_027A: br => Label17
IL_027F: Label13
IL_027F: ldloca.s 12 (ElectricityManager+Cell)
IL_0281: ldc.i4 65535
IL_0286: stfld System.UInt16 Cell::m_pulseGroup
IL_028B: ldloca.s 12 (ElectricityManager+Cell)
IL_028D: ldfld System.Byte Cell::m_conductivity
IL_0292: ldc.i4.s 64
IL_0294: blt => Label18
IL_0299: ldarg.0
IL_029A: dup
IL_029B: ldfld System.Int32 ElectricityManager::m_conductiveCells
IL_02A0: ldc.i4.1
IL_02A1: add
IL_02A2: stfld System.Int32 ElectricityManager::m_conductiveCells
IL_02A7: Label17
IL_02A7: Label18
IL_02A7: ldloca.s 12 (ElectricityManager+Cell)
IL_02A9: ldfld System.Boolean Cell::m_tmpElectrified
IL_02AE: ldloca.s 12 (ElectricityManager+Cell)
IL_02B0: ldfld System.Boolean Cell::m_electrified
IL_02B5: beq => Label19
IL_02BA: ldloca.s 12 (ElectricityManager+Cell)
IL_02BC: ldloca.s 12 (ElectricityManager+Cell)
IL_02BE: ldfld System.Boolean Cell::m_tmpElectrified
IL_02C3: stfld System.Boolean Cell::m_electrified
IL_02C8: Label19
IL_02C8: ldloca.s 12 (ElectricityManager+Cell)
IL_02CA: ldloca.s 12 (ElectricityManager+Cell)
IL_02CC: ldfld System.UInt16 Cell::m_pulseGroup
IL_02D1: ldc.i4 65535
IL_02D6: ceq
IL_02D8: ldc.i4.0
IL_02D9: ceq
IL_02DB: stfld System.Boolean Cell::m_tmpElectrified
IL_02E0: ldarg.0
IL_02E1: ldfld Cell[] ElectricityManager::m_electricityGrid
IL_02E6: ldloc.s 10 (System.Int32)
IL_02E8: ldelema ElectricityManager+Cell
IL_02ED: ldloc.s 12 (ElectricityManager+Cell)
IL_02EF: stobj ElectricityManager+Cell
IL_02F4: ldloc.s 10 (System.Int32)
IL_02F6: ldc.i4.1
IL_02F7: add
IL_02F8: stloc.s 10 (System.Int32)
IL_02FA: ldloc.s 11 (System.Int32)
IL_02FC: ldc.i4.1
IL_02FD: add
IL_02FE: stloc.s 11 (System.Int32)
IL_0300: Label12
IL_0300: ldloc.s 11 (System.Int32)
IL_0302: ldc.i4 256
IL_0307: blt => Label20
IL_030C: ldloc.s 9 (System.Int32)
IL_030E: ldc.i4.1
IL_030F: add
IL_0310: stloc.s 9 (System.Int32)
IL_0312: Label11
IL_0312: ldloc.s 9 (System.Int32)
IL_0314: ldloc.s 8 (System.Int32)
IL_0316: ble => Label21
IL_031B: br => Label22
IL_0320: Label2
IL_0320: ldloc.1
IL_0321: ldc.i4.s 127
IL_0323: sub
IL_0324: ldarg.0
IL_0325: ldfld System.Int32 ElectricityManager::m_conductiveCells
IL_032A: mul
IL_032B: ldc.i4.7
IL_032C: shr
IL_032D: stloc.s 16 (System.Int32)
IL_032F: ldloc.1
IL_0330: ldc.i4 255
IL_0335: bne.un => Label23
IL_033A: ldc.i4 1000000000
IL_033F: stloc.s 16 (System.Int32)
IL_0341: Label23
IL_0341: br => Label24
IL_0346: Label54
IL_0346: ldarg.0
IL_0347: ldc.i4.0
IL_0348: stfld System.Boolean ElectricityManager::m_canContinue
IL_034D: ldarg.0
IL_034E: ldfld System.Int32 ElectricityManager::m_pulseUnitEnd
IL_0353: stloc.s 17 (System.Int32)
IL_0355: br => Label25
IL_035A: Label52
IL_035A: ldarg.0
IL_035B: ldfld PulseUnit[] ElectricityManager::m_pulseUnits
IL_0360: ldarg.0
IL_0361: ldfld System.Int32 ElectricityManager::m_pulseUnitStart
IL_0366: ldelema ElectricityManager+PulseUnit
IL_036B: ldobj ElectricityManager+PulseUnit
IL_0370: stloc.s 18 (ElectricityManager+PulseUnit)
IL_0372: ldarg.0
IL_0373: dup
IL_0374: ldfld System.Int32 ElectricityManager::m_pulseUnitStart
IL_0379: ldc.i4.1
IL_037A: add
IL_037B: dup
IL_037C: stloc.s 15 (System.Int32)
IL_037E: stfld System.Int32 ElectricityManager::m_pulseUnitStart
IL_0383: ldloc.s 15 (System.Int32)
IL_0385: ldarg.0
IL_0386: ldfld PulseUnit[] ElectricityManager::m_pulseUnits
IL_038B: ldlen
IL_038C: conv.i4
IL_038D: bne.un => Label26
IL_0392: ldarg.0
IL_0393: ldc.i4.0
IL_0394: stfld System.Int32 ElectricityManager::m_pulseUnitStart
IL_0399: Label26
IL_0399: ldloca.s 18 (ElectricityManager+PulseUnit)
IL_039B: ldarg.0
IL_039C: ldloca.s 18 (ElectricityManager+PulseUnit)
IL_039E: ldfld System.UInt16 PulseUnit::m_group
IL_03A3: call System.UInt16 ElectricityManager::GetRootGroup(System.UInt16
group)
IL_03A8: stfld System.UInt16 PulseUnit::m_group
IL_03AD: ldarg.0
IL_03AE: ldfld PulseGroup[] ElectricityManager::m_pulseGroups
IL_03B3: ldloca.s 18 (ElectricityManager+PulseUnit)
IL_03B5: ldfld System.UInt16 PulseUnit::m_group
IL_03BA: ldelema ElectricityManager+PulseGroup
IL_03BF: ldfld System.UInt32 PulseGroup::m_curCharge
IL_03C4: stloc.s 19 (System.UInt32)
IL_03C6: ldloca.s 18 (ElectricityManager+PulseUnit)
IL_03C8: ldfld System.UInt16 PulseUnit::m_node
IL_03CD: brtrue => Label27
IL_03D2: ldloca.s 18 (ElectricityManager+PulseUnit)
IL_03D4: ldfld System.Byte PulseUnit::m_z
IL_03D9: ldc.i4 256
IL_03DE: mul
IL_03DF: ldloca.s 18 (ElectricityManager+PulseUnit)
IL_03E1: ldfld System.Byte PulseUnit::m_x
IL_03E6: add
IL_03E7: stloc.s 20 (System.Int32)
IL_03E9: ldarg.0
IL_03EA: ldfld Cell[] ElectricityManager::m_electricityGrid
IL_03EF: ldloc.s 20 (System.Int32)
IL_03F1: ldelema ElectricityManager+Cell
IL_03F6: ldobj ElectricityManager+Cell
IL_03FB: stloc.s 21 (ElectricityManager+Cell)
IL_03FD: ldloca.s 21 (ElectricityManager+Cell)
IL_03FF: ldfld System.Byte Cell::m_conductivity
IL_0404: brfalse => Label28
IL_0409: ldloca.s 21 (ElectricityManager+Cell)
IL_040B: ldfld System.Boolean Cell::m_tmpElectrified
IL_0410: brtrue => Label29
IL_0415: ldloc.s 19 (System.UInt32)
IL_0417: brfalse => Label30
IL_041C: ldloca.s 21 (ElectricityManager+Cell)
IL_041E: ldfld System.Int16 Cell::m_currentCharge
IL_0423: neg
IL_0424: ldc.i4.0
IL_0425: ldloc.s 19 (System.UInt32)
IL_0427: call static System.Int32 UnityEngine.Mathf::Clamp(System.Int32
value, System.Int32 min, System.Int32 max)
IL_042C: stloc.s 22 (System.Int32)
IL_042E: ldloc.s 19 (System.UInt32)
IL_0430: ldloc.s 22 (System.Int32)
IL_0432: sub
IL_0433: stloc.s 19 (System.UInt32)
IL_0435: ldloca.s 21 (ElectricityManager+Cell)
IL_0437: dup
IL_0438: ldfld System.Int16 Cell::m_currentCharge
IL_043D: ldloc.s 22 (System.Int32)
IL_043F: conv.i2
IL_0440: add
IL_0441: conv.i2
IL_0442: stfld System.Int16 Cell::m_currentCharge
IL_0447: ldloca.s 21 (ElectricityManager+Cell)
IL_0449: ldfld System.Int16 Cell::m_currentCharge
IL_044E: brtrue => Label31
IL_0453: ldloca.s 21 (ElectricityManager+Cell)
IL_0455: ldc.i4.1
IL_0456: stfld System.Boolean Cell::m_tmpElectrified
IL_045B: Label31
IL_045B: ldarg.0
IL_045C: ldfld Cell[] ElectricityManager::m_electricityGrid
IL_0461: ldloc.s 20 (System.Int32)
IL_0463: ldelema ElectricityManager+Cell
IL_0468: ldloc.s 21 (ElectricityManager+Cell)
IL_046A: stobj ElectricityManager+Cell
IL_046F: ldarg.0
IL_0470: ldfld PulseGroup[] ElectricityManager::m_pulseGroups
IL_0475: ldloca.s 18 (ElectricityManager+PulseUnit)
IL_0477: ldfld System.UInt16 PulseUnit::m_group
IL_047C: ldelema ElectricityManager+PulseGroup
IL_0481: ldloc.s 19 (System.UInt32)
IL_0483: stfld System.UInt32 PulseGroup::m_curCharge
IL_0488: Label28
IL_0488: Label29
IL_0488: Label30
IL_0488: ldloc.s 19 (System.UInt32)
IL_048A: brfalse => Label32
IL_048F: ldloca.s 21 (ElectricityManager+Cell)
IL_0491: ldfld System.Byte Cell::m_conductivity
IL_0496: ldc.i4.s 64
IL_0498: blt => Label33
IL_049D: ldc.i4.1
IL_049E: br => Label34
IL_04A3: Label33
IL_04A3: ldc.i4.s 64
IL_04A5: Label34
IL_04A5: stloc.s 23 (System.Int32)
IL_04A7: ldarg.0
IL_04A8: dup
IL_04A9: ldfld System.Int32 ElectricityManager::m_processedCells
IL_04AE: ldc.i4.1
IL_04AF: add
IL_04B0: stfld System.Int32 ElectricityManager::m_processedCells
IL_04B5: ldloca.s 18 (ElectricityManager+PulseUnit)
IL_04B7: ldfld System.Byte PulseUnit::m_z
IL_04BC: ldc.i4.0
IL_04BD: ble => Label35
IL_04C2: ldarg.0
IL_04C3: ldarg.0
IL_04C4: ldfld Cell[] ElectricityManager::m_electricityGrid
IL_04C9: ldloc.s 20 (System.Int32)
IL_04CB: ldc.i4 256
IL_04D0: sub
IL_04D1: ldelema ElectricityManager+Cell
IL_04D6: ldloca.s 18 (ElectricityManager+PulseUnit)
IL_04D8: ldfld System.UInt16 PulseUnit::m_group
IL_04DD: ldloca.s 18 (ElectricityManager+PulseUnit)
IL_04DF: ldfld System.Byte PulseUnit::m_x
IL_04E4: ldloca.s 18 (ElectricityManager+PulseUnit)
IL_04E6: ldfld System.Byte PulseUnit::m_z
IL_04EB: ldc.i4.1
IL_04EC: sub
IL_04ED: ldloc.s 23 (System.Int32)
IL_04EF: call System.Void ElectricityManager::ConductToCell(Cell& cell,
System.UInt16 group, System.Int32 x, System.Int32 z, System.Int32 limit)
IL_04F4: Label35
IL_04F4: ldloca.s 18 (ElectricityManager+PulseUnit)
IL_04F6: ldfld System.Byte PulseUnit::m_x
IL_04FB: ldc.i4.0
IL_04FC: ble => Label36
IL_0501: ldarg.0
IL_0502: ldarg.0
IL_0503: ldfld Cell[] ElectricityManager::m_electricityGrid
IL_0508: ldloc.s 20 (System.Int32)
IL_050A: ldc.i4.1
IL_050B: sub
IL_050C: ldelema ElectricityManager+Cell
IL_0511: ldloca.s 18 (ElectricityManager+PulseUnit)
IL_0513: ldfld System.UInt16 PulseUnit::m_group
IL_0518: ldloca.s 18 (ElectricityManager+PulseUnit)
IL_051A: ldfld System.Byte PulseUnit::m_x
IL_051F: ldc.i4.1
IL_0520: sub
IL_0521: ldloca.s 18 (ElectricityManager+PulseUnit)
IL_0523: ldfld System.Byte PulseUnit::m_z
IL_0528: ldloc.s 23 (System.Int32)
IL_052A: call System.Void ElectricityManager::ConductToCell(Cell& cell,
System.UInt16 group, System.Int32 x, System.Int32 z, System.Int32 limit)
IL_052F: Label36
IL_052F: ldloca.s 18 (ElectricityManager+PulseUnit)
IL_0531: ldfld System.Byte PulseUnit::m_z
IL_0536: ldc.i4 255
IL_053B: bge => Label37
IL_0540: ldarg.0
IL_0541: ldarg.0
IL_0542: ldfld Cell[] ElectricityManager::m_electricityGrid
IL_0547: ldloc.s 20 (System.Int32)
IL_0549: ldc.i4 256
IL_054E: add
IL_054F: ldelema ElectricityManager+Cell
IL_0554: ldloca.s 18 (ElectricityManager+PulseUnit)
IL_0556: ldfld System.UInt16 PulseUnit::m_group
IL_055B: ldloca.s 18 (ElectricityManager+PulseUnit)
IL_055D: ldfld System.Byte PulseUnit::m_x
IL_0562: ldloca.s 18 (ElectricityManager+PulseUnit)
IL_0564: ldfld System.Byte PulseUnit::m_z
IL_0569: ldc.i4.1
IL_056A: add
IL_056B: ldloc.s 23 (System.Int32)
IL_056D: call System.Void ElectricityManager::ConductToCell(Cell& cell,
System.UInt16 group, System.Int32 x, System.Int32 z, System.Int32 limit)
IL_0572: Label37
IL_0572: ldloca.s 18 (ElectricityManager+PulseUnit)
IL_0574: ldfld System.Byte PulseUnit::m_x
IL_0579: ldc.i4 255
IL_057E: bge => Label38
IL_0583: ldarg.0
IL_0584: ldarg.0
IL_0585: ldfld Cell[] ElectricityManager::m_electricityGrid
IL_058A: ldloc.s 20 (System.Int32)
IL_058C: ldc.i4.1
IL_058D: add
IL_058E: ldelema ElectricityManager+Cell
IL_0593: ldloca.s 18 (ElectricityManager+PulseUnit)
IL_0595: ldfld System.UInt16 PulseUnit::m_group
IL_059A: ldloca.s 18 (ElectricityManager+PulseUnit)
IL_059C: ldfld System.Byte PulseUnit::m_x
IL_05A1: ldc.i4.1
IL_05A2: add
IL_05A3: ldloca.s 18 (ElectricityManager+PulseUnit)
IL_05A5: ldfld System.Byte PulseUnit::m_z
IL_05AA: ldloc.s 23 (System.Int32)
IL_05AC: call System.Void ElectricityManager::ConductToCell(Cell& cell,
System.UInt16 group, System.Int32 x, System.Int32 z, System.Int32 limit)
IL_05B1: Label38
IL_05B1: ldarg.0
IL_05B2: ldloca.s 18 (ElectricityManager+PulseUnit)
IL_05B4: ldfld System.UInt16 PulseUnit::m_group
IL_05B9: ldloca.s 18 (ElectricityManager+PulseUnit)
IL_05BB: ldfld System.Byte PulseUnit::m_x
IL_05C0: ldloca.s 18 (ElectricityManager+PulseUnit)
IL_05C2: ldfld System.Byte PulseUnit::m_z
IL_05C7: call System.Void ElectricityManager::ConductToNodes(System.UInt16
group, System.Int32 cellX, System.Int32 cellZ)
IL_05CC: br => Label39
IL_05D1: Label32
IL_05D1: ldarg.0
IL_05D2: ldfld PulseUnit[] ElectricityManager::m_pulseUnits
IL_05D7: ldarg.0
IL_05D8: ldfld System.Int32 ElectricityManager::m_pulseUnitEnd
IL_05DD: ldelema ElectricityManager+PulseUnit
IL_05E2: ldloc.s 18 (ElectricityManager+PulseUnit)
IL_05E4: stobj ElectricityManager+PulseUnit
IL_05E9: ldarg.0
IL_05EA: dup
IL_05EB: ldfld System.Int32 ElectricityManager::m_pulseUnitEnd
IL_05F0: ldc.i4.1
IL_05F1: add
IL_05F2: dup
IL_05F3: stloc.s 15 (System.Int32)
IL_05F5: stfld System.Int32 ElectricityManager::m_pulseUnitEnd
IL_05FA: ldloc.s 15 (System.Int32)
IL_05FC: ldarg.0
IL_05FD: ldfld PulseUnit[] ElectricityManager::m_pulseUnits
IL_0602: ldlen
IL_0603: conv.i4
IL_0604: bne.un => Label40
IL_0609: ldarg.0
IL_060A: ldc.i4.0
IL_060B: stfld System.Int32 ElectricityManager::m_pulseUnitEnd
IL_0610: Label39
IL_0610: Label40
IL_0610: br => Label41
IL_0615: Label27
IL_0615: ldloc.s 19 (System.UInt32)
IL_0617: brfalse => Label42
IL_061C: ldarg.0
IL_061D: dup
IL_061E: ldfld System.Int32 ElectricityManager::m_processedCells
IL_0623: ldc.i4.1
IL_0624: add
IL_0625: stfld System.Int32 ElectricityManager::m_processedCells
IL_062A: call static NetManager
ColossalFramework.Singleton`1<NetManager>::get_instance()
IL_062F: ldfld Array16`1<NetNode> NetManager::m_nodes
IL_0634: ldfld NetNode[] Array16`1<NetNode>::m_buffer
IL_0639: ldloca.s 18 (ElectricityManager+PulseUnit)
IL_063B: ldfld System.UInt16 PulseUnit::m_node
IL_0640: ldelema NetNode
IL_0645: ldobj NetNode
IL_064A: stloc.s 24 (NetNode)
IL_064C: ldloca.s 24 (NetNode)
IL_064E: ldfld Flags NetNode::m_flags
IL_0653: brfalse => Label43
IL_0658: ldloca.s 24 (NetNode)
IL_065A: ldfld System.UInt32 NetNode::m_buildIndex
IL_065F: ldloc.0
IL_0660: ldc.i4.s -128
IL_0662: and
IL_0663: bge.un => Label44
IL_0668: ldarg.0
IL_0669: ldloca.s 18 (ElectricityManager+PulseUnit)
IL_066B: ldfld System.UInt16 PulseUnit::m_group
IL_0670: ldloca.s 24 (NetNode)
IL_0672: ldflda UnityEngine.Vector3 NetNode::m_position
IL_0677: ldfld System.Single UnityEngine.Vector3::x
IL_067C: ldloca.s 24 (NetNode)
IL_067E: ldflda UnityEngine.Vector3 NetNode::m_position
IL_0683: ldfld System.Single UnityEngine.Vector3::z
IL_0688: call System.Void ElectricityManager::ConductToCells(System.UInt16
group, System.Single worldX, System.Single worldZ)
IL_068D: ldc.i4.0
IL_068E: stloc.s 25 (System.Int32)
IL_0690: br => Label45
IL_0695: Label49
IL_0695: ldloca.s 24 (NetNode)
IL_0697: ldloc.s 25 (System.Int32)
IL_0699: call System.UInt16 NetNode::GetSegment(System.Int32 index)
IL_069E: stloc.s 26 (System.UInt16)
IL_06A0: ldloc.s 26 (System.UInt16)
IL_06A2: brfalse => Label46
IL_06A7: call static NetManager
ColossalFramework.Singleton`1<NetManager>::get_instance()
IL_06AC: ldfld Array16`1<NetSegment> NetManager::m_segments
IL_06B1: ldfld NetSegment[] Array16`1<NetSegment>::m_buffer
IL_06B6: ldloc.s 26 (System.UInt16)
IL_06B8: ldelema NetSegment
IL_06BD: ldfld System.UInt16 NetSegment::m_startNode
IL_06C2: stloc.s 27 (System.UInt16)
IL_06C4: call static NetManager
ColossalFramework.Singleton`1<NetManager>::get_instance()
IL_06C9: ldfld Array16`1<NetSegment> NetManager::m_segments
IL_06CE: ldfld NetSegment[] Array16`1<NetSegment>::m_buffer
IL_06D3: ldloc.s 26 (System.UInt16)
IL_06D5: ldelema NetSegment
IL_06DA: ldfld System.UInt16 NetSegment::m_endNode
IL_06DF: stloc.s 28 (System.UInt16)
IL_06E1: ldloc.s 27 (System.UInt16)
IL_06E3: ldloca.s 18 (ElectricityManager+PulseUnit)
IL_06E5: ldfld System.UInt16 PulseUnit::m_node
IL_06EA: bne.un => Label47
IL_06EF: ldloc.s 28 (System.UInt16)
IL_06F1: br => Label48
IL_06F6: Label47
IL_06F6: ldloc.s 27 (System.UInt16)
IL_06F8: Label48
IL_06F8: stloc.s 29 (System.UInt16)
IL_06FA: ldarg.0
IL_06FB: ldloc.s 29 (System.UInt16)
IL_06FD: call static NetManager
ColossalFramework.Singleton`1<NetManager>::get_instance()
IL_0702: ldfld Array16`1<NetNode> NetManager::m_nodes
IL_0707: ldfld NetNode[] Array16`1<NetNode>::m_buffer
IL_070C: ldloc.s 29 (System.UInt16)
IL_070E: ldelema NetNode
IL_0713: ldloca.s 18 (ElectricityManager+PulseUnit)
IL_0715: ldfld System.UInt16 PulseUnit::m_group
IL_071A: ldc.r4 -100000
IL_071F: ldc.r4 -100000
IL_0724: ldc.r4 100000
IL_0729: ldc.r4 100000
IL_072E: call System.Void ElectricityManager::ConductToNode(System.UInt16
nodeIndex, NetNode& node, System.UInt16 group, System.Single minX, System.Single
minZ, System.Single maxX, System.Single maxZ)
IL_0733: Label46
IL_0733: ldloc.s 25 (System.Int32)
IL_0735: ldc.i4.1
IL_0736: add
IL_0737: stloc.s 25 (System.Int32)
IL_0739: Label45
IL_0739: ldloc.s 25 (System.Int32)
IL_073B: ldc.i4.8
IL_073C: blt => Label49
IL_0741: Label43
IL_0741: Label44
IL_0741: br => Label50
IL_0746: Label42
IL_0746: ldarg.0
IL_0747: ldfld PulseUnit[] ElectricityManager::m_pulseUnits
IL_074C: ldarg.0
IL_074D: ldfld System.Int32 ElectricityManager::m_pulseUnitEnd
IL_0752: ldelema ElectricityManager+PulseUnit
IL_0757: ldloc.s 18 (ElectricityManager+PulseUnit)
IL_0759: stobj ElectricityManager+PulseUnit
IL_075E: ldarg.0
IL_075F: dup
IL_0760: ldfld System.Int32 ElectricityManager::m_pulseUnitEnd
IL_0765: ldc.i4.1
IL_0766: add
IL_0767: dup
IL_0768: stloc.s 15 (System.Int32)
IL_076A: stfld System.Int32 ElectricityManager::m_pulseUnitEnd
IL_076F: ldloc.s 15 (System.Int32)
IL_0771: ldarg.0
IL_0772: ldfld PulseUnit[] ElectricityManager::m_pulseUnits
IL_0777: ldlen
IL_0778: conv.i4
IL_0779: bne.un => Label51
IL_077E: ldarg.0
IL_077F: ldc.i4.0
IL_0780: stfld System.Int32 ElectricityManager::m_pulseUnitEnd
IL_0785: Label25
IL_0785: Label41
IL_0785: Label50
IL_0785: Label51
IL_0785: ldarg.0
IL_0786: ldfld System.Int32 ElectricityManager::m_pulseUnitStart
IL_078B: ldloc.s 17 (System.Int32)
IL_078D: bne.un => Label52
IL_0792: Label24
IL_0792: ldarg.0
IL_0793: ldfld System.Boolean ElectricityManager::m_canContinue
IL_0798: brfalse => Label53
IL_079D: ldarg.0
IL_079E: ldfld System.Int32 ElectricityManager::m_processedCells
IL_07A3: ldloc.s 16 (System.Int32)
IL_07A5: blt => Label54
IL_07AA: Label53
IL_07AA: ldloc.1
IL_07AB: ldc.i4 255
IL_07B0: bne.un => Label55
IL_07B5: ldc.i4.0
IL_07B6: stloc.s 30 (System.Int32)
IL_07B8: br => Label56
IL_07BD: Label58
IL_07BD: ldarg.0
IL_07BE: ldfld PulseGroup[] ElectricityManager::m_pulseGroups
IL_07C3: ldloc.s 30 (System.Int32)
IL_07C5: ldelema ElectricityManager+PulseGroup
IL_07CA: ldobj ElectricityManager+PulseGroup
IL_07CF: stloc.s 31 (ElectricityManager+PulseGroup)
IL_07D1: ldloca.s 31 (ElectricityManager+PulseGroup)
IL_07D3: ldfld System.UInt16 PulseGroup::m_mergeIndex
IL_07D8: ldc.i4 65535
IL_07DD: beq => Label57
IL_07E2: ldarg.0
IL_07E3: ldfld PulseGroup[] ElectricityManager::m_pulseGroups
IL_07E8: ldloca.s 31 (ElectricityManager+PulseGroup)
IL_07EA: ldfld System.UInt16 PulseGroup::m_mergeIndex
IL_07EF: ldelema ElectricityManager+PulseGroup
IL_07F4: ldobj ElectricityManager+PulseGroup
IL_07F9: stloc.s 32 (ElectricityManager+PulseGroup)
IL_07FB: ldloca.s 31 (ElectricityManager+PulseGroup)
IL_07FD: ldloca.s 32 (ElectricityManager+PulseGroup)
IL_07FF: ldfld System.UInt32 PulseGroup::m_curCharge
IL_0804: conv.u8
IL_0805: ldloca.s 31 (ElectricityManager+PulseGroup)
IL_0807: ldfld System.UInt32 PulseGroup::m_origCharge
IL_080C: conv.u8
IL_080D: mul
IL_080E: ldloca.s 32 (ElectricityManager+PulseGroup)
IL_0810: ldfld System.UInt32 PulseGroup::m_origCharge
IL_0815: conv.u8
IL_0816: div.un
IL_0817: conv.u4
IL_0818: stfld System.UInt32 PulseGroup::m_curCharge
IL_081D: ldloca.s 32 (ElectricityManager+PulseGroup)
IL_081F: dup
IL_0820: ldfld System.UInt32 PulseGroup::m_curCharge
IL_0825: ldloca.s 31 (ElectricityManager+PulseGroup)
IL_0827: ldfld System.UInt32 PulseGroup::m_curCharge
IL_082C: sub
IL_082D: stfld System.UInt32 PulseGroup::m_curCharge
IL_0832: ldloca.s 32 (ElectricityManager+PulseGroup)
IL_0834: dup
IL_0835: ldfld System.UInt32 PulseGroup::m_origCharge
IL_083A: ldloca.s 31 (ElectricityManager+PulseGroup)
IL_083C: ldfld System.UInt32 PulseGroup::m_origCharge
IL_0841: sub
IL_0842: stfld System.UInt32 PulseGroup::m_origCharge
IL_0847: ldarg.0
IL_0848: ldfld PulseGroup[] ElectricityManager::m_pulseGroups
IL_084D: ldloca.s 31 (ElectricityManager+PulseGroup)
IL_084F: ldfld System.UInt16 PulseGroup::m_mergeIndex
IL_0854: ldelema ElectricityManager+PulseGroup
IL_0859: ldloc.s 32 (ElectricityManager+PulseGroup)
IL_085B: stobj ElectricityManager+PulseGroup
IL_0860: ldarg.0
IL_0861: ldfld PulseGroup[] ElectricityManager::m_pulseGroups
IL_0866: ldloc.s 30 (System.Int32)
IL_0868: ldelema ElectricityManager+PulseGroup
IL_086D: ldloc.s 31 (ElectricityManager+PulseGroup)
IL_086F: stobj ElectricityManager+PulseGroup
IL_0874: Label57
IL_0874: ldloc.s 30 (System.Int32)
IL_0876: ldc.i4.1
IL_0877: add
IL_0878: stloc.s 30 (System.Int32)
IL_087A: Label56
IL_087A: ldloc.s 30 (System.Int32)
IL_087C: ldarg.0
IL_087D: ldfld System.Int32 ElectricityManager::m_pulseGroupCount
IL_0882: blt => Label58
IL_0887: ldc.i4.0
IL_0888: stloc.s 33 (System.Int32)
IL_088A: br => Label59
IL_088F: Label62
IL_088F: ldarg.0
IL_0890: ldfld PulseGroup[] ElectricityManager::m_pulseGroups
IL_0895: ldloc.s 33 (System.Int32)
IL_0897: ldelema ElectricityManager+PulseGroup
IL_089C: ldobj ElectricityManager+PulseGroup
IL_08A1: stloc.s 34 (ElectricityManager+PulseGroup)
IL_08A3: ldloca.s 34 (ElectricityManager+PulseGroup)
IL_08A5: ldfld System.UInt32 PulseGroup::m_curCharge
IL_08AA: brfalse => Label60
IL_08AF: ldloca.s 34 (ElectricityManager+PulseGroup)
IL_08B1: ldfld System.Byte PulseGroup::m_z
IL_08B6: ldc.i4 256
IL_08BB: mul
IL_08BC: ldloca.s 34 (ElectricityManager+PulseGroup)
IL_08BE: ldfld System.Byte PulseGroup::m_x
IL_08C3: add
IL_08C4: stloc.s 35 (System.Int32)
IL_08C6: ldarg.0
IL_08C7: ldfld Cell[] ElectricityManager::m_electricityGrid
IL_08CC: ldloc.s 35 (System.Int32)
IL_08CE: ldelema ElectricityManager+Cell
IL_08D3: ldobj ElectricityManager+Cell
IL_08D8: stloc.s 36 (ElectricityManager+Cell)
IL_08DA: ldloca.s 36 (ElectricityManager+Cell)
IL_08DC: ldfld System.Byte Cell::m_conductivity
IL_08E1: brfalse => Label61
IL_08E6: ldloca.s 36 (ElectricityManager+Cell)
IL_08E8: dup
IL_08E9: ldfld System.UInt16 Cell::m_extraCharge
IL_08EE: ldloca.s 34 (ElectricityManager+PulseGroup)
IL_08F0: ldfld System.UInt32 PulseGroup::m_curCharge
IL_08F5: ldc.i4 32767
IL_08FA: ldloca.s 36 (ElectricityManager+Cell)
IL_08FC: ldfld System.UInt16 Cell::m_extraCharge
IL_0901: sub
IL_0902: call static System.Int32 UnityEngine.Mathf::Min(System.Int32 a,
System.Int32 b)
IL_0907: conv.u2
IL_0908: add
IL_0909: conv.u2
IL_090A: stfld System.UInt16 Cell::m_extraCharge
IL_090F: Label61
IL_090F: ldarg.0
IL_0910: ldfld Cell[] ElectricityManager::m_electricityGrid
IL_0915: ldloc.s 35 (System.Int32)
IL_0917: ldelema ElectricityManager+Cell
IL_091C: ldloc.s 36 (ElectricityManager+Cell)
IL_091E: stobj ElectricityManager+Cell
IL_0923: Label60
IL_0923: ldloc.s 33 (System.Int32)
IL_0925: ldc.i4.1
IL_0926: add
IL_0927: stloc.s 33 (System.Int32)
IL_0929: Label59
IL_0929: ldloc.s 33 (System.Int32)
IL_092B: ldarg.0
IL_092C: ldfld System.Int32 ElectricityManager::m_pulseGroupCount
IL_0931: blt => Label62
IL_0936: // end original
IL_0936: Label0
IL_0936: Label1
IL_0936: Label22
IL_0936: Label55
IL_0936: ret
DONE

### Patch: System.Void ElectricityManager::ConductToNode(System.UInt16 nodeIndex,


NetNode& node, System.UInt16 group, System.Single minX, System.Single minZ,
System.Single maxX, System.Single maxZ)
### Replacement: static System.Void
ElectricityManager::ElectricityManager.ConductToNode_Patch0(ElectricityManager
this, System.UInt16 nodeIndex, NetNode& node, System.UInt16 group, System.Single
minX, System.Single minZ, System.Single maxX, System.Single maxZ)
IL_0000: Local var 0: NetInfo
IL_0000: Local var 1: ElectricityManager/PulseUnit
IL_0000: Local var 2: System.Int32
IL_0000: Local var 3: System.UInt16
IL_0000: // start original
IL_0000: ldarg.2
IL_0001: ldflda UnityEngine.Vector3 NetNode::m_position
IL_0006: ldfld System.Single UnityEngine.Vector3::x
IL_000B: ldarg.s 4
IL_000D: blt.un => Label0
IL_0012: ldarg.2
IL_0013: ldflda UnityEngine.Vector3 NetNode::m_position
IL_0018: ldfld System.Single UnityEngine.Vector3::z
IL_001D: ldarg.s 5
IL_001F: blt.un => Label1
IL_0024: ldarg.2
IL_0025: ldflda UnityEngine.Vector3 NetNode::m_position
IL_002A: ldfld System.Single UnityEngine.Vector3::x
IL_002F: ldarg.s 6
IL_0031: bgt.un => Label2
IL_0036: ldarg.2
IL_0037: ldflda UnityEngine.Vector3 NetNode::m_position
IL_003C: ldfld System.Single UnityEngine.Vector3::z
IL_0041: ldarg.s 7
IL_0043: bgt.un => Label3
IL_0048: ldarg.2
IL_0049: call static System.Boolean
ElectricRoads.Overrides.ElectricRoadsOverrides::CheckElectricConductibility(NetNode
& node)
IL_004E: brfalse => Label5
IL_0053: Label4
IL_0053: ldarg.0
IL_0054: ldfld System.UInt16[] ElectricityManager::m_nodeGroups
IL_0059: ldarg.1
IL_005A: ldelem.u2
IL_005B: ldc.i4 65535
IL_0060: bne.un => Label6
IL_0065: ldloca.s 1 (ElectricityManager+PulseUnit)
IL_0067: ldarg.3
IL_0068: stfld System.UInt16 PulseUnit::m_group
IL_006D: ldloca.s 1 (ElectricityManager+PulseUnit)
IL_006F: ldarg.1
IL_0070: stfld System.UInt16 PulseUnit::m_node
IL_0075: ldloca.s 1 (ElectricityManager+PulseUnit)
IL_0077: ldc.i4.0
IL_0078: stfld System.Byte PulseUnit::m_x
IL_007D: ldloca.s 1 (ElectricityManager+PulseUnit)
IL_007F: ldc.i4.0
IL_0080: stfld System.Byte PulseUnit::m_z
IL_0085: ldarg.0
IL_0086: ldfld PulseUnit[] ElectricityManager::m_pulseUnits
IL_008B: ldarg.0
IL_008C: ldfld System.Int32 ElectricityManager::m_pulseUnitEnd
IL_0091: ldelema ElectricityManager+PulseUnit
IL_0096: ldloc.1
IL_0097: stobj ElectricityManager+PulseUnit
IL_009C: ldarg.0
IL_009D: dup
IL_009E: ldfld System.Int32 ElectricityManager::m_pulseUnitEnd
IL_00A3: ldc.i4.1
IL_00A4: add
IL_00A5: dup
IL_00A6: stloc.2
IL_00A7: stfld System.Int32 ElectricityManager::m_pulseUnitEnd
IL_00AC: ldloc.2
IL_00AD: ldarg.0
IL_00AE: ldfld PulseUnit[] ElectricityManager::m_pulseUnits
IL_00B3: ldlen
IL_00B4: conv.i4
IL_00B5: bne.un => Label7
IL_00BA: ldarg.0
IL_00BB: ldc.i4.0
IL_00BC: stfld System.Int32 ElectricityManager::m_pulseUnitEnd
IL_00C1: Label7
IL_00C1: ldarg.0
IL_00C2: ldfld System.UInt16[] ElectricityManager::m_nodeGroups
IL_00C7: ldarg.1
IL_00C8: ldarg.3
IL_00C9: stelem.i2
IL_00CA: ldarg.0
IL_00CB: ldc.i4.1
IL_00CC: stfld System.Boolean ElectricityManager::m_canContinue
IL_00D1: br => Label8
IL_00D6: Label6
IL_00D6: ldarg.0
IL_00D7: ldarg.0
IL_00D8: ldfld System.UInt16[] ElectricityManager::m_nodeGroups
IL_00DD: ldarg.1
IL_00DE: ldelem.u2
IL_00DF: call System.UInt16 ElectricityManager::GetRootGroup(System.UInt16
group)
IL_00E4: stloc.3
IL_00E5: ldloc.3
IL_00E6: ldarg.3
IL_00E7: beq => Label9
IL_00EC: ldarg.0
IL_00ED: ldarg.3
IL_00EE: ldloc.3
IL_00EF: call System.Void ElectricityManager::MergeGroups(System.UInt16 root,
System.UInt16 merged)
IL_00F4: ldarg.0
IL_00F5: ldfld System.UInt16[] ElectricityManager::m_nodeGroups
IL_00FA: ldarg.1
IL_00FB: ldarg.3
IL_00FC: stelem.i2
IL_00FD: ldarg.0
IL_00FE: ldc.i4.1
IL_00FF: stfld System.Boolean ElectricityManager::m_canContinue
IL_0104: // end original
IL_0104: Label0
IL_0104: Label1
IL_0104: Label2
IL_0104: Label3
IL_0104: Label5
IL_0104: Label8
IL_0104: Label9
IL_0104: ret
DONE

### Patch: System.Void ElectricityManager::UpdateNodeElectricity(System.Int32


nodeID, System.Int32 value)
### Replacement: static System.Void
ElectricityManager::ElectricityManager.UpdateNodeElectricity_Patch2(ElectricityMana
ger this, System.Int32 nodeID, System.Int32 value)
IL_0000: Local var 0: InfoManager/InfoMode
IL_0000: Local var 1: NetManager
IL_0000: Local var 2: System.Boolean
IL_0000: Local var 3: NetNode/Flags
IL_0000: Local var 4: System.UInt16
IL_0000: Local var 5: BuildingManager
IL_0000: Local var 6: NetNode/Flags
IL_0000: Local var 7: System.Int32
IL_0000: Local var 8: System.UInt16
IL_0000: Local var 9: System.Boolean
IL_0000: Local var 10: System.Boolean
IL_0000: ldc.i4 0
IL_0005: stloc 9 (System.Boolean)
IL_0009: ldc.i4.1
IL_000A: stloc 9 (System.Boolean)
IL_000E: ldc.i4 0
IL_0013: stloc 10 (System.Boolean)
IL_0017: ldloc 9 (System.Boolean)
IL_001B: brfalse => Label1
IL_0020: ldarga 1
IL_0024: ldloca 10 (System.Boolean)
IL_0028: call static System.Void
ElectricRoads.Overrides.ElectricRoadsOverrides::PreConduct(System.Int32& nodeID,
System.Boolean& __state)
IL_002D: Label1
IL_002D: nop
IL_002E: ldloc 9 (System.Boolean)
IL_0032: brfalse => Label0
IL_0037: // start original
IL_0037: call static InfoManager
ColossalFramework.Singleton`1<InfoManager>::get_instance()
IL_003C: callvirt InfoMode InfoManager::get_CurrentMode()
IL_0041: stloc.0
IL_0042: call static NetManager
ColossalFramework.Singleton`1<NetManager>::get_instance()
IL_0047: stloc.1
IL_0048: ldc.i4.0
IL_0049: stloc.2
IL_004A: ldloc.1
IL_004B: ldfld Array16`1<NetNode> NetManager::m_nodes
IL_0050: ldfld NetNode[] Array16`1<NetNode>::m_buffer
IL_0055: ldarg.1
IL_0056: ldelema NetNode
IL_005B: ldfld Flags NetNode::m_flags
IL_0060: stloc.3
IL_0061: ldarg.1
IL_0062: call static System.Boolean
ElectricRoads.Overrides.ElectricRoadsOverrides::CheckNodeTransition(System.Int32
nodeID)
IL_0067: brfalse => Label2
IL_006C: ldloc.1
IL_006D: ldfld Array16`1<NetNode> NetManager::m_nodes
IL_0072: ldfld NetNode[] Array16`1<NetNode>::m_buffer
IL_0077: ldarg.1
IL_0078: ldelema NetNode
IL_007D: dup
IL_007E: ldfld Flags NetNode::m_flags
IL_0083: ldc.i4 -1048577
IL_0088: and
IL_0089: stfld Flags NetNode::m_flags
IL_008E: br => Label12
IL_0093: Label2
IL_0093: ldloc.1
IL_0094: ldfld Array16`1<NetNode> NetManager::m_nodes
IL_0099: ldfld NetNode[] Array16`1<NetNode>::m_buffer
IL_009E: ldarg.1
IL_009F: ldelema NetNode
IL_00A4: ldfld System.UInt16 NetNode::m_building
IL_00A9: stloc.s 4 (System.UInt16)
IL_00AB: ldloc.s 4 (System.UInt16)
IL_00AD: brfalse => Label3
IL_00B2: call static BuildingManager
ColossalFramework.Singleton`1<BuildingManager>::get_instance()
IL_00B7: stloc.s 5 (BuildingManager)
IL_00B9: ldloc.s 5 (BuildingManager)
IL_00BB: ldfld Array16`1<Building> BuildingManager::m_buildings
IL_00C0: ldfld Building[] Array16`1<Building>::m_buffer
IL_00C5: ldloc.s 4 (System.UInt16)
IL_00C7: ldelema Building
IL_00CC: ldfld System.UInt16 Building::m_electricityBuffer
IL_00D1: ldarg.2
IL_00D2: beq => Label4
IL_00D7: ldloc.s 5 (BuildingManager)
IL_00D9: ldfld Array16`1<Building> BuildingManager::m_buildings
IL_00DE: ldfld Building[] Array16`1<Building>::m_buffer
IL_00E3: ldloc.s 4 (System.UInt16)
IL_00E5: ldelema Building
IL_00EA: ldarg.2
IL_00EB: conv.u2
IL_00EC: stfld System.UInt16 Building::m_electricityBuffer
IL_00F1: ldloc.0
IL_00F2: ldc.i4.1
IL_00F3: ceq
IL_00F5: stloc.2
IL_00F6: Label4
IL_00F6: ldloc.2
IL_00F7: brfalse => Label5
IL_00FC: ldloc.s 5 (BuildingManager)
IL_00FE: ldloc.s 4 (System.UInt16)
IL_0100: callvirt System.Void BuildingManager::UpdateBuildingColors(System.UInt16
building)
IL_0105: Label3
IL_0105: Label5
IL_0105: ldloc.3
IL_0106: ldc.i4 -67108865
IL_010B: and
IL_010C: stloc.s 6 (NetNode+Flags)
IL_010E: ldarg.2
IL_010F: brfalse => Label6
IL_0114: ldloc.s 6 (NetNode+Flags)
IL_0116: ldc.i4 67108864
IL_011B: or
IL_011C: stloc.s 6 (NetNode+Flags)
IL_011E: Label6
IL_011E: ldloc.s 6 (NetNode+Flags)
IL_0120: ldloc.3
IL_0121: beq => Label7
IL_0126: ldloc.1
IL_0127: ldfld Array16`1<NetNode> NetManager::m_nodes
IL_012C: ldfld NetNode[] Array16`1<NetNode>::m_buffer
IL_0131: ldarg.1
IL_0132: ldelema NetNode
IL_0137: ldloc.s 6 (NetNode+Flags)
IL_0139: stfld Flags NetNode::m_flags
IL_013E: ldloc.0
IL_013F: ldc.i4.1
IL_0140: ceq
IL_0142: stloc.2
IL_0143: Label7
IL_0143: ldloc.2
IL_0144: brfalse => Label8
IL_0149: ldloc.1
IL_014A: ldarg.1
IL_014B: conv.u2
IL_014C: callvirt System.Void NetManager::UpdateNodeColors(System.UInt16 node)
IL_0151: ldc.i4.0
IL_0152: stloc.s 7 (System.Int32)
IL_0154: br => Label9
IL_0159: Label11
IL_0159: ldloc.1
IL_015A: ldfld Array16`1<NetNode> NetManager::m_nodes
IL_015F: ldfld NetNode[] Array16`1<NetNode>::m_buffer
IL_0164: ldarg.1
IL_0165: ldelema NetNode
IL_016A: ldloc.s 7 (System.Int32)
IL_016C: call System.UInt16 NetNode::GetSegment(System.Int32 index)
IL_0171: stloc.s 8 (System.UInt16)
IL_0173: ldloc.s 8 (System.UInt16)
IL_0175: brfalse => Label10
IL_017A: ldloc.1
IL_017B: ldloc.s 8 (System.UInt16)
IL_017D: callvirt System.Void NetManager::UpdateSegmentColors(System.UInt16
segment)
IL_0182: Label10
IL_0182: ldloc.s 7 (System.Int32)
IL_0184: ldc.i4.1
IL_0185: add
IL_0186: stloc.s 7 (System.Int32)
IL_0188: Label9
IL_0188: ldloc.s 7 (System.Int32)
IL_018A: ldc.i4.8
IL_018B: blt => Label11
IL_0190: // end original
IL_0190: Label8
IL_0190: Label12
IL_0190: Label0
IL_0190: ldarg 1
IL_0194: ldloc 10 (System.Boolean)
IL_0198: call static System.Void
ElectricRoads.Overrides.ElectricRoadsOverrides::PostConduct(System.Int32 nodeID,
System.Boolean __state)
IL_019D: ret
DONE

### Patch: virtual System.Void ColossalFramework.UI.UIView::Start()


### Replacement: static System.Void
ColossalFramework.UI.UIView::ColossalFramework.UI.UIView.Start_Patch0(ColossalFrame
work.UI.UIView this)
IL_0000: Local var 0:
ColossalFramework.PoolList`1<ColossalFramework.UI.UIComponent>
IL_0000: Local var 1: ColossalFramework.UI.UIComponent
IL_0000: Local var 2:
System.Collections.Generic.IEnumerator`1<ColossalFramework.UI.UIComponent>
IL_0000: // start original
IL_0000: ldarg.0
IL_0001: ldc.i4.0
IL_0002: stfld System.Int32 ColossalFramework.UI.UIView::m_FramesRendered
IL_0007: ldarg.0
IL_0008: call System.Void
ColossalFramework.UI.UIView::InvalidateAllComponents()
IL_000D: ldarg.0
IL_000E: ldfld UnityEngine.MeshRenderer
ColossalFramework.UI.UIView::m_MeshRenderer
IL_0013: ldnull
IL_0014: call static System.Boolean
UnityEngine.Object::op_Inequality(UnityEngine.Object x, UnityEngine.Object y)
IL_0019: brfalse => Label0
IL_001E: ldarg.0
IL_001F: ldfld UnityEngine.MeshRenderer
ColossalFramework.UI.UIView::m_MeshRenderer
IL_0024: ldc.i4.1
IL_0025: callvirt System.Void UnityEngine.Renderer::set_enabled(System.Boolean
value)
IL_002A: Label0
IL_002A: ldarg.0
IL_002B: call ColossalFramework.PoolList`1<ColossalFramework.UI.UIComponent>
ColossalFramework.UI.UIView::GetTopLevelComponents()
IL_0030: stloc.0
.try
{
IL_0031: ldloc.0
IL_0032: callvirt virtual
System.Collections.Generic.IEnumerator`1<ColossalFramework.UI.UIComponent>
ColossalFramework.PoolList`1<ColossalFramework.UI.UIComponent>::GetEnumerator()
IL_0037: stloc.2
.try
{
IL_0038: br => Label1
IL_003D: Label2
IL_003D: ldloc.2
IL_003E: callvirt abstract virtual ColossalFramework.UI.UIComponent
System.Collections.Generic.IEnumerator`1<ColossalFramework.UI.UIComponent>::get_Cur
rent()
IL_0043: stloc.1
IL_0044: ldloc.1
IL_0045: ldc.i4.1
IL_0046: callvirt System.Void
ColossalFramework.UI.UIComponent::InitializeParentVisibilityCache(System.Boolean
parentVisible)
IL_004B: Label1
IL_004B: ldloc.2
IL_004C: callvirt abstract virtual System.Boolean
System.Collections.IEnumerator::MoveNext()
IL_0051: brtrue => Label2
IL_0056: leave => Label3
IL_005B: leave => (autogenerated)
} // end try
.finally
{
IL_0060: ldloc.2
IL_0061: brfalse => Label4
IL_0066: ldloc.2
IL_0067: callvirt abstract virtual System.Void
System.IDisposable::Dispose()
IL_006C: Label4
IL_006C: endfinally
IL_006D: leave => (autogenerated)
} // end handler
IL_006E: Label3
IL_006E: leave => Label5
IL_0073: leave => (autogenerated)
} // end try
.finally
{
IL_0078: ldloc.0
IL_0079: brfalse => Label6
IL_007E: ldloc.0
IL_007F: callvirt abstract virtual System.Void
System.IDisposable::Dispose()
IL_0084: Label6
IL_0084: endfinally
IL_0085: leave => (autogenerated)
} // end handler
IL_0086: Label5
IL_0086: ldarg.0
IL_0087: ldc.i4.1
IL_0088: stfld System.Boolean
ColossalFramework.UI.UIView::m_VisibilityCacheInitialized
IL_008D: // end original
IL_008D: ret
DONE

### Patch: virtual UnityEngine.Color NetAI::GetColor(System.UInt16 nodeID, NetNode&


data, InfoMode infoMode, SubInfoMode subInfoMode)
### Replacement: static UnityEngine.Color NetAI::NetAI.GetColor_Patch0(NetAI this,
System.UInt16 nodeID, NetNode& data, InfoMode infoMode, SubInfoMode subInfoMode)
IL_0000: // start original
IL_0000: ldarg.3
IL_0001: brfalse => Label0
IL_0006: call static InfoManager
ColossalFramework.Singleton`1<InfoManager>::get_instance()
IL_000B: ldfld InfoProperties SimulationManagerBase`2<InfoManager,
InfoProperties>::m_properties
IL_0010: ldfld UnityEngine.Color InfoProperties::m_neutralColor
IL_0015: br => Label1
IL_001A: Label0
IL_001A: ldarg.0
IL_001B: ldfld NetInfo NetAI::m_info
IL_0020: ldfld UnityEngine.Color NetInfo::m_color
IL_0025: // end original
IL_0025: Label1
IL_0025: ret
DONE

### Patch: virtual UnityEngine.Color NetAI::GetColor(System.UInt16 segmentID,


NetSegment& data, InfoMode infoMode, SubInfoMode subInfoMode)
### Replacement: static UnityEngine.Color NetAI::NetAI.GetColor_Patch0(NetAI this,
System.UInt16 segmentID, NetSegment& data, InfoMode infoMode, SubInfoMode
subInfoMode)
IL_0000: // start original
IL_0000: ldarg.3
IL_0001: brfalse => Label0
IL_0006: call static InfoManager
ColossalFramework.Singleton`1<InfoManager>::get_instance()
IL_000B: ldfld InfoProperties SimulationManagerBase`2<InfoManager,
InfoProperties>::m_properties
IL_0010: ldfld UnityEngine.Color InfoProperties::m_neutralColor
IL_0015: br => Label1
IL_001A: Label0
IL_001A: ldarg.0
IL_001B: ldfld NetInfo NetAI::m_info
IL_0020: ldfld UnityEngine.Color NetInfo::m_color
IL_0025: // end original
IL_0025: Label1
IL_0025: ret
DONE

### Patch: System.Void ElectricityManager::UpdateNodeElectricity(System.Int32


nodeID, System.Int32 value)
### Replacement: static System.Void
ElectricityManager::ElectricityManager.UpdateNodeElectricity_Patch0(ElectricityMana
ger this, System.Int32 nodeID, System.Int32 value)
IL_0000: Local var 0: InfoManager/InfoMode
IL_0000: Local var 1: NetManager
IL_0000: Local var 2: System.Boolean
IL_0000: Local var 3: NetNode/Flags
IL_0000: Local var 4: System.UInt16
IL_0000: Local var 5: BuildingManager
IL_0000: Local var 6: NetNode/Flags
IL_0000: Local var 7: System.Int32
IL_0000: Local var 8: System.UInt16
IL_0000: // start original
IL_0000: call static InfoManager
ColossalFramework.Singleton`1<InfoManager>::get_instance()
IL_0005: callvirt InfoMode InfoManager::get_CurrentMode()
IL_000A: stloc.0
IL_000B: call static NetManager
ColossalFramework.Singleton`1<NetManager>::get_instance()
IL_0010: stloc.1
IL_0011: ldc.i4.0
IL_0012: stloc.2
IL_0013: ldloc.1
IL_0014: ldfld Array16`1<NetNode> NetManager::m_nodes
IL_0019: ldfld NetNode[] Array16`1<NetNode>::m_buffer
IL_001E: ldarg.1
IL_001F: ldelema NetNode
IL_0024: ldfld Flags NetNode::m_flags
IL_0029: stloc.3
IL_002A: ldloc.3
IL_002B: ldc.i4 1048576
IL_0030: and
IL_0031: brfalse => Label0
IL_0036: ldloc.1
IL_0037: ldfld Array16`1<NetNode> NetManager::m_nodes
IL_003C: ldfld NetNode[] Array16`1<NetNode>::m_buffer
IL_0041: ldarg.1
IL_0042: ldelema NetNode
IL_0047: dup
IL_0048: ldfld Flags NetNode::m_flags
IL_004D: ldc.i4 -1048577
IL_0052: and
IL_0053: stfld Flags NetNode::m_flags
IL_0058: br => Label10
IL_005D: Label0
IL_005D: ldloc.1
IL_005E: ldfld Array16`1<NetNode> NetManager::m_nodes
IL_0063: ldfld NetNode[] Array16`1<NetNode>::m_buffer
IL_0068: ldarg.1
IL_0069: ldelema NetNode
IL_006E: ldfld System.UInt16 NetNode::m_building
IL_0073: stloc.s 4 (System.UInt16)
IL_0075: ldloc.s 4 (System.UInt16)
IL_0077: brfalse => Label1
IL_007C: call static BuildingManager
ColossalFramework.Singleton`1<BuildingManager>::get_instance()
IL_0081: stloc.s 5 (BuildingManager)
IL_0083: ldloc.s 5 (BuildingManager)
IL_0085: ldfld Array16`1<Building> BuildingManager::m_buildings
IL_008A: ldfld Building[] Array16`1<Building>::m_buffer
IL_008F: ldloc.s 4 (System.UInt16)
IL_0091: ldelema Building
IL_0096: ldfld System.UInt16 Building::m_electricityBuffer
IL_009B: ldarg.2
IL_009C: beq => Label2
IL_00A1: ldloc.s 5 (BuildingManager)
IL_00A3: ldfld Array16`1<Building> BuildingManager::m_buildings
IL_00A8: ldfld Building[] Array16`1<Building>::m_buffer
IL_00AD: ldloc.s 4 (System.UInt16)
IL_00AF: ldelema Building
IL_00B4: ldarg.2
IL_00B5: conv.u2
IL_00B6: stfld System.UInt16 Building::m_electricityBuffer
IL_00BB: ldloc.0
IL_00BC: ldc.i4.1
IL_00BD: ceq
IL_00BF: stloc.2
IL_00C0: Label2
IL_00C0: ldloc.2
IL_00C1: brfalse => Label3
IL_00C6: ldloc.s 5 (BuildingManager)
IL_00C8: ldloc.s 4 (System.UInt16)
IL_00CA: callvirt System.Void BuildingManager::UpdateBuildingColors(System.UInt16
building)
IL_00CF: Label1
IL_00CF: Label3
IL_00CF: ldloc.3
IL_00D0: ldc.i4 -67108865
IL_00D5: and
IL_00D6: stloc.s 6 (NetNode+Flags)
IL_00D8: ldarg.2
IL_00D9: brfalse => Label4
IL_00DE: ldloc.s 6 (NetNode+Flags)
IL_00E0: ldc.i4 67108864
IL_00E5: or
IL_00E6: stloc.s 6 (NetNode+Flags)
IL_00E8: Label4
IL_00E8: ldloc.s 6 (NetNode+Flags)
IL_00EA: ldloc.3
IL_00EB: beq => Label5
IL_00F0: ldloc.1
IL_00F1: ldfld Array16`1<NetNode> NetManager::m_nodes
IL_00F6: ldfld NetNode[] Array16`1<NetNode>::m_buffer
IL_00FB: ldarg.1
IL_00FC: ldelema NetNode
IL_0101: ldloc.s 6 (NetNode+Flags)
IL_0103: stfld Flags NetNode::m_flags
IL_0108: ldloc.0
IL_0109: ldc.i4.1
IL_010A: ceq
IL_010C: stloc.2
IL_010D: Label5
IL_010D: ldloc.2
IL_010E: brfalse => Label6
IL_0113: ldloc.1
IL_0114: ldarg.1
IL_0115: conv.u2
IL_0116: callvirt System.Void NetManager::UpdateNodeColors(System.UInt16 node)
IL_011B: ldc.i4.0
IL_011C: stloc.s 7 (System.Int32)
IL_011E: br => Label7
IL_0123: Label9
IL_0123: ldloc.1
IL_0124: ldfld Array16`1<NetNode> NetManager::m_nodes
IL_0129: ldfld NetNode[] Array16`1<NetNode>::m_buffer
IL_012E: ldarg.1
IL_012F: ldelema NetNode
IL_0134: ldloc.s 7 (System.Int32)
IL_0136: call System.UInt16 NetNode::GetSegment(System.Int32 index)
IL_013B: stloc.s 8 (System.UInt16)
IL_013D: ldloc.s 8 (System.UInt16)
IL_013F: brfalse => Label8
IL_0144: ldloc.1
IL_0145: ldloc.s 8 (System.UInt16)
IL_0147: callvirt System.Void NetManager::UpdateSegmentColors(System.UInt16
segment)
IL_014C: Label8
IL_014C: ldloc.s 7 (System.Int32)
IL_014E: ldc.i4.1
IL_014F: add
IL_0150: stloc.s 7 (System.Int32)
IL_0152: Label7
IL_0152: ldloc.s 7 (System.Int32)
IL_0154: ldc.i4.8
IL_0155: blt => Label9
IL_015A: // end original
IL_015A: Label6
IL_015A: Label10
IL_015A: ret
DONE

### Patch: static System.Void PropInstance::RenderInstance(CameraInfo cameraInfo,


PropInfo info, InstanceID id, UnityEngine.Vector3 position, System.Single scale,
System.Single angle, UnityEngine.Color color, UnityEngine.Vector4 objectIndex,
System.Boolean active, UnityEngine.Texture heightMap, UnityEngine.Vector4
heightMapping, UnityEngine.Vector4 surfaceMapping, UnityEngine.Texture
waterHeightMap, UnityEngine.Vector4 waterHeightMapping, UnityEngine.Vector4
waterSurfaceMapping)
### Replacement: static System.Void
PropInstance::PropInstance.RenderInstance_Patch0(CameraInfo cameraInfo, PropInfo
info, InstanceID id, UnityEngine.Vector3 position, System.Single scale,
System.Single angle, UnityEngine.Color color, UnityEngine.Vector4 objectIndex,
System.Boolean active, UnityEngine.Texture heightMap, UnityEngine.Vector4
heightMapping, UnityEngine.Vector4 surfaceMapping, UnityEngine.Texture
waterHeightMap, UnityEngine.Vector4 waterHeightMapping, UnityEngine.Vector4
waterSurfaceMapping)
IL_0000: Local var 0: UnityEngine.Matrix4x4
IL_0000: Local var 1: System.Single
IL_0000: Local var 2: System.Int32
IL_0000: Local var 3: UnityEngine.Vector3
IL_0000: Local var 4: UnityEngine.Vector3
IL_0000: Local var 5: EffectInfo/SpawnArea
IL_0000: Local var 6: System.Single
IL_0000: Local var 7: LightSystem
IL_0000: Local var 8: ColossalFramework.Math.Randomizer
IL_0000: Local var 9: UnityEngine.Vector4
IL_0000: Local var 10: System.Single
IL_0000: Local var 11: System.Single
IL_0000: Local var 12: System.Single
IL_0000: Local var 13: UnityEngine.Matrix4x4
IL_0000: Local var 14: PropManager
IL_0000: Local var 15: UnityEngine.MaterialPropertyBlock
IL_0000: Local var 16: System.Int32
IL_0000: // start original
IL_0000: ldarg.1
IL_0001: ldfld System.Boolean PrefabInfo::m_prefabInitialized
IL_0006: brfalse => Label0
IL_000B: ldarg.1
IL_000C: ldfld System.Boolean PropInfo::m_hasEffects
IL_0011: brfalse => Label1
IL_0016: ldarg.s 8
IL_0018: brtrue => Label2
IL_001D: ldarg.1
IL_001E: ldfld System.Boolean PropInfo::m_alwaysActive
IL_0023: brfalse => Label3
IL_0028: Label2
IL_0028: ldloca.s 0 (UnityEngine.Matrix4x4)
IL_002A: initobj UnityEngine.Matrix4x4
IL_0030: ldloca.s 0 (UnityEngine.Matrix4x4)
IL_0032: ldarg.3
IL_0033: ldarg.s 5
IL_0035: ldc.r4 57.29578
IL_003A: mul
IL_003B: call static UnityEngine.Vector3 UnityEngine.Vector3::get_down()
IL_0040: call static UnityEngine.Quaternion
UnityEngine.Quaternion::AngleAxis(System.Single angle, UnityEngine.Vector3 axis)
IL_0045: ldarg.s 4
IL_0047: ldarg.s 4
IL_0049: ldarg.s 4
IL_004B: newobj System.Void UnityEngine.Vector3::.ctor(System.Single x,
System.Single y, System.Single z)
IL_0050: call System.Void UnityEngine.Matrix4x4::SetTRS(UnityEngine.Vector3
pos, UnityEngine.Quaternion q, UnityEngine.Vector3 s)
IL_0055: call static SimulationManager
ColossalFramework.Singleton`1<SimulationManager>::get_instance()
IL_005A: ldfld System.Single SimulationManager::m_simulationTimeDelta
IL_005F: stloc.1
IL_0060: ldc.i4.0
IL_0061: stloc.2
IL_0062: br => Label4
IL_0067: Label5
IL_0067: ldloca.s 0 (UnityEngine.Matrix4x4)
IL_0069: ldarg.1
IL_006A: ldfld Effect[] PropInfo::m_effects
IL_006F: ldloc.2
IL_0070: ldelema PropInfo+Effect
IL_0075: ldfld UnityEngine.Vector3 Effect::m_position
IL_007A: call UnityEngine.Vector3
UnityEngine.Matrix4x4::MultiplyPoint(UnityEngine.Vector3 v)
IL_007F: stloc.3
IL_0080: ldloca.s 0 (UnityEngine.Matrix4x4)
IL_0082: ldarg.1
IL_0083: ldfld Effect[] PropInfo::m_effects
IL_0088: ldloc.2
IL_0089: ldelema PropInfo+Effect
IL_008E: ldfld UnityEngine.Vector3 Effect::m_direction
IL_0093: call UnityEngine.Vector3
UnityEngine.Matrix4x4::MultiplyVector(UnityEngine.Vector3 v)
IL_0098: stloc.s 4 (UnityEngine.Vector3)
IL_009A: ldloca.s 5 (EffectInfo+SpawnArea)
IL_009C: ldloc.3
IL_009D: ldloc.s 4 (UnityEngine.Vector3)
IL_009F: ldc.r4 0
IL_00A4: call System.Void SpawnArea::.ctor(UnityEngine.Vector3 position,
UnityEngine.Vector3 direction, System.Single radius)
IL_00A9: ldarg.1
IL_00AA: ldfld Effect[] PropInfo::m_effects
IL_00AF: ldloc.2
IL_00B0: ldelema PropInfo+Effect
IL_00B5: ldfld EffectInfo Effect::m_effect
IL_00BA: ldarg.2
IL_00BB: ldloc.s 5 (EffectInfo+SpawnArea)
IL_00BD: call static UnityEngine.Vector3 UnityEngine.Vector3::get_zero()
IL_00C2: ldc.r4 0
IL_00C7: ldc.r4 1
IL_00CC: ldc.r4 -1
IL_00D1: ldloc.1
IL_00D2: ldarg.0
IL_00D3: callvirt virtual System.Void EffectInfo::RenderEffect(InstanceID id,
SpawnArea area, UnityEngine.Vector3 velocity, System.Single acceleration,
System.Single magnitude, System.Single timeOffset, System.Single timeDelta,
CameraInfo cameraInfo)
IL_00D8: ldloc.2
IL_00D9: ldc.i4.1
IL_00DA: add
IL_00DB: stloc.2
IL_00DC: Label4
IL_00DC: ldloc.2
IL_00DD: ldarg.1
IL_00DE: ldfld Effect[] PropInfo::m_effects
IL_00E3: ldlen
IL_00E4: conv.i4
IL_00E5: blt => Label5
IL_00EA: Label1
IL_00EA: Label3
IL_00EA: ldarg.1
IL_00EB: ldfld System.Boolean PropInfo::m_hasRenderer
IL_00F0: brfalse => Label6
IL_00F5: ldarg.0
IL_00F6: ldfld System.Int32 CameraInfo::m_layerMask
IL_00FB: ldc.i4.1
IL_00FC: ldarg.1
IL_00FD: ldfld System.Int32 PrefabInfo::m_prefabDataLayer
IL_0102: ldc.i4.s 31
IL_0104: and
IL_0105: shl
IL_0106: and
IL_0107: brfalse => Label7
IL_010C: call static InfoManager
ColossalFramework.Singleton`1<InfoManager>::get_instance()
IL_0111: callvirt InfoMode InfoManager::get_CurrentMode()
IL_0116: brtrue => Label8
IL_011B: ldc.r4 0
IL_0120: stloc.s 6 (System.Single)
IL_0122: ldarg.s 8
IL_0124: brtrue => Label9
IL_0129: ldarg.1
IL_012A: ldfld System.Boolean PropInfo::m_alwaysActive
IL_012F: brtrue => Label10
IL_0134: ldarga.s 7
IL_0136: ldc.r4 0
IL_013B: stfld System.Single UnityEngine.Vector4::z
IL_0140: br => Label11
IL_0145: Label9
IL_0145: Label10
IL_0145: ldarg.1
IL_0146: ldflda UnityEngine.Vector2 PropInfo::m_illuminationOffRange
IL_014B: ldfld System.Single UnityEngine.Vector2::x
IL_0150: ldc.r4 1000
IL_0155: blt => Label12
IL_015A: ldarg.1
IL_015B: ldfld BlinkType PropInfo::m_illuminationBlinkType
IL_0160: brfalse => Label13
IL_0165: Label12
IL_0165: call static RenderManager
ColossalFramework.Singleton`1<RenderManager>::get_instance()
IL_016A: callvirt LightSystem RenderManager::get_lightSystem()
IL_016F: stloc.s 7 (LightSystem)
IL_0171: ldloca.s 8 (ColossalFramework.Math.Randomizer)
IL_0173: ldarga.s 2
IL_0175: call System.UInt32 InstanceID::get_Index()
IL_017A: call System.Void
ColossalFramework.Math.Randomizer::.ctor(System.UInt32 _seed)
IL_017F: ldarg.1
IL_0180: ldflda UnityEngine.Vector2 PropInfo::m_illuminationOffRange
IL_0185: ldfld System.Single UnityEngine.Vector2::x
IL_018A: ldloca.s 8 (ColossalFramework.Math.Randomizer)
IL_018C: ldc.i4 100000
IL_0191: call System.Int32
ColossalFramework.Math.Randomizer::Int32(System.UInt32 range)
IL_0196: conv.r4
IL_0197: ldc.r4 1E-05
IL_019C: mul
IL_019D: ldarg.1
IL_019E: ldflda UnityEngine.Vector2 PropInfo::m_illuminationOffRange
IL_01A3: ldfld System.Single UnityEngine.Vector2::y
IL_01A8: ldarg.1
IL_01A9: ldflda UnityEngine.Vector2 PropInfo::m_illuminationOffRange
IL_01AE: ldfld System.Single UnityEngine.Vector2::x
IL_01B3: sub
IL_01B4: mul
IL_01B5: add
IL_01B6: stloc.s 6 (System.Single)
IL_01B8: ldarga.s 7
IL_01BA: ldloc.s 6 (System.Single)
IL_01BC: ldc.r4 0.01
IL_01C1: add
IL_01C2: ldloc.s 6 (System.Single)
IL_01C4: ldc.r4 0.01
IL_01C9: sub
IL_01CA: ldloc.s 7 (LightSystem)
IL_01CC: callvirt System.Single LightSystem::get_DayLightIntensity()
IL_01D1: call static System.Single MathUtils::SmoothStep(System.Single edge0,
System.Single edge1, System.Single x)
IL_01D6: stfld System.Single UnityEngine.Vector4::z
IL_01DB: ldarg.1
IL_01DC: ldfld BlinkType PropInfo::m_illuminationBlinkType
IL_01E1: brfalse => Label14
IL_01E6: ldarg.1
IL_01E7: ldfld BlinkType PropInfo::m_illuminationBlinkType
IL_01EC: call static UnityEngine.Vector4
LightEffect::GetBlinkVector(BlinkType type)
IL_01F1: stloc.s 9 (UnityEngine.Vector4)
IL_01F3: ldloc.s 6 (System.Single)
IL_01F5: ldc.r4 3.71
IL_01FA: mul
IL_01FB: call static SimulationManager
ColossalFramework.Singleton`1<SimulationManager>::get_instance()
IL_0200: ldfld System.Single SimulationManager::m_simulationTimer
IL_0205: ldloca.s 9 (UnityEngine.Vector4)
IL_0207: ldfld System.Single UnityEngine.Vector4::w
IL_020C: div
IL_020D: add
IL_020E: stloc.s 10 (System.Single)
IL_0210: ldloc.s 10 (System.Single)
IL_0212: ldloc.s 10 (System.Single)
IL_0214: call static System.Single UnityEngine.Mathf::Floor(System.Single f)
IL_0219: sub
IL_021A: ldloca.s 9 (UnityEngine.Vector4)
IL_021C: ldfld System.Single UnityEngine.Vector4::w
IL_0221: mul
IL_0222: stloc.s 10 (System.Single)
IL_0224: ldloca.s 9 (UnityEngine.Vector4)
IL_0226: ldfld System.Single UnityEngine.Vector4::x
IL_022B: ldloca.s 9 (UnityEngine.Vector4)
IL_022D: ldfld System.Single UnityEngine.Vector4::y
IL_0232: ldloc.s 10 (System.Single)
IL_0234: call static System.Single MathUtils::SmoothStep(System.Single edge0,
System.Single edge1, System.Single x)
IL_0239: stloc.s 11 (System.Single)
IL_023B: ldloca.s 9 (UnityEngine.Vector4)
IL_023D: ldfld System.Single UnityEngine.Vector4::w
IL_0242: ldloca.s 9 (UnityEngine.Vector4)
IL_0244: ldfld System.Single UnityEngine.Vector4::z
IL_0249: ldloc.s 10 (System.Single)
IL_024B: call static System.Single MathUtils::SmoothStep(System.Single edge0,
System.Single edge1, System.Single x)
IL_0250: stloc.s 12 (System.Single)
IL_0252: ldarga.s 7
IL_0254: dup
IL_0255: ldfld System.Single UnityEngine.Vector4::z
IL_025A: ldc.r4 1
IL_025F: ldloc.s 11 (System.Single)
IL_0261: ldloc.s 12 (System.Single)
IL_0263: mul
IL_0264: sub
IL_0265: mul
IL_0266: stfld System.Single UnityEngine.Vector4::z
IL_026B: Label14
IL_026B: br => Label15
IL_0270: Label13
IL_0270: ldarga.s 7
IL_0272: ldc.r4 1
IL_0277: stfld System.Single UnityEngine.Vector4::z
IL_027C: Label8
IL_027C: Label11
IL_027C: Label15
IL_027C: ldarg.0
IL_027D: brfalse => Label16
IL_0282: ldarg.0
IL_0283: ldarg.3
IL_0284: ldarg.1
IL_0285: ldfld System.Single PropInfo::m_lodRenderDistance
IL_028A: callvirt System.Boolean
CameraInfo::CheckRenderDistance(UnityEngine.Vector3 point, System.Single
maxDistance)
IL_028F: brfalse => Label17
IL_0294: Label16
IL_0294: ldloca.s 13 (UnityEngine.Matrix4x4)
IL_0296: initobj UnityEngine.Matrix4x4
IL_029C: ldloca.s 13 (UnityEngine.Matrix4x4)
IL_029E: ldarg.3
IL_029F: ldarg.s 5
IL_02A1: ldc.r4 57.29578
IL_02A6: mul
IL_02A7: call static UnityEngine.Vector3 UnityEngine.Vector3::get_down()
IL_02AC: call static UnityEngine.Quaternion
UnityEngine.Quaternion::AngleAxis(System.Single angle, UnityEngine.Vector3 axis)
IL_02B1: ldarg.s 4
IL_02B3: ldarg.s 4
IL_02B5: ldarg.s 4
IL_02B7: newobj System.Void UnityEngine.Vector3::.ctor(System.Single x,
System.Single y, System.Single z)
IL_02BC: call System.Void UnityEngine.Matrix4x4::SetTRS(UnityEngine.Vector3
pos, UnityEngine.Quaternion q, UnityEngine.Vector3 s)
IL_02C1: call static PropManager
ColossalFramework.Singleton`1<PropManager>::get_instance()
IL_02C6: stloc.s 14 (PropManager)
IL_02C8: ldloc.s 14 (PropManager)
IL_02CA: ldfld UnityEngine.MaterialPropertyBlock PropManager::m_materialBlock
IL_02CF: stloc.s 15 (UnityEngine.MaterialPropertyBlock)
IL_02D1: ldloc.s 15 (UnityEngine.MaterialPropertyBlock)
IL_02D3: callvirt System.Void UnityEngine.MaterialPropertyBlock::Clear()
IL_02D8: ldloc.s 15 (UnityEngine.MaterialPropertyBlock)
IL_02DA: ldloc.s 14 (PropManager)
IL_02DC: ldfld System.Int32 PropManager::ID_Color
IL_02E1: ldarg.s 6
IL_02E3: callvirt System.Void
UnityEngine.MaterialPropertyBlock::SetColor(System.Int32 nameID, UnityEngine.Color
value)
IL_02E8: ldloc.s 15 (UnityEngine.MaterialPropertyBlock)
IL_02EA: ldloc.s 14 (PropManager)
IL_02EC: ldfld System.Int32 PropManager::ID_HeightMap
IL_02F1: ldarg.s 9
IL_02F3: callvirt System.Void
UnityEngine.MaterialPropertyBlock::SetTexture(System.Int32 nameID,
UnityEngine.Texture value)
IL_02F8: ldloc.s 15 (UnityEngine.MaterialPropertyBlock)
IL_02FA: ldloc.s 14 (PropManager)
IL_02FC: ldfld System.Int32 PropManager::ID_HeightMapping
IL_0301: ldarg.s 10
IL_0303: callvirt System.Void
UnityEngine.MaterialPropertyBlock::SetVector(System.Int32 nameID,
UnityEngine.Vector4 value)
IL_0308: ldloc.s 15 (UnityEngine.MaterialPropertyBlock)
IL_030A: ldloc.s 14 (PropManager)
IL_030C: ldfld System.Int32 PropManager::ID_SurfaceMapping
IL_0311: ldarg.s 11
IL_0313: callvirt System.Void
UnityEngine.MaterialPropertyBlock::SetVector(System.Int32 nameID,
UnityEngine.Vector4 value)
IL_0318: ldloc.s 15 (UnityEngine.MaterialPropertyBlock)
IL_031A: ldloc.s 14 (PropManager)
IL_031C: ldfld System.Int32 PropManager::ID_ObjectIndex
IL_0321: ldarg.s 7
IL_0323: callvirt System.Void
UnityEngine.MaterialPropertyBlock::SetVector(System.Int32 nameID,
UnityEngine.Vector4 value)
IL_0328: ldloc.s 15 (UnityEngine.MaterialPropertyBlock)
IL_032A: ldloc.s 14 (PropManager)
IL_032C: ldfld System.Int32 PropManager::ID_WaterHeightMap
IL_0331: ldarg.s 12
IL_0333: callvirt System.Void
UnityEngine.MaterialPropertyBlock::SetTexture(System.Int32 nameID,
UnityEngine.Texture value)
IL_0338: ldloc.s 15 (UnityEngine.MaterialPropertyBlock)
IL_033A: ldloc.s 14 (PropManager)
IL_033C: ldfld System.Int32 PropManager::ID_WaterHeightMapping
IL_0341: ldarg.s 13
IL_0343: callvirt System.Void
UnityEngine.MaterialPropertyBlock::SetVector(System.Int32 nameID,
UnityEngine.Vector4 value)
IL_0348: ldloc.s 15 (UnityEngine.MaterialPropertyBlock)
IL_034A: ldloc.s 14 (PropManager)
IL_034C: ldfld System.Int32 PropManager::ID_WaterSurfaceMapping
IL_0351: ldarg.s 14
IL_0353: callvirt System.Void
UnityEngine.MaterialPropertyBlock::SetVector(System.Int32 nameID,
UnityEngine.Vector4 value)
IL_0358: ldarg.1
IL_0359: ldfld UnityEngine.Vector4[] PropInfo::m_rollLocation
IL_035E: brfalse => Label18
IL_0363: ldarg.1
IL_0364: ldfld UnityEngine.Material PropInfo::m_material
IL_0369: ldloc.s 14 (PropManager)
IL_036B: ldfld System.Int32 PropManager::ID_RollLocation
IL_0370: ldarg.1
IL_0371: ldfld UnityEngine.Vector4[] PropInfo::m_rollLocation
IL_0376: callvirt System.Void UnityEngine.Material::SetVectorArray(System.Int32
nameID, UnityEngine.Vector4[] values)
IL_037B: ldarg.1
IL_037C: ldfld UnityEngine.Material PropInfo::m_material
IL_0381: ldloc.s 14 (PropManager)
IL_0383: ldfld System.Int32 PropManager::ID_RollParams
IL_0388: ldarg.1
IL_0389: ldfld UnityEngine.Vector4[] PropInfo::m_rollParams
IL_038E: callvirt System.Void UnityEngine.Material::SetVectorArray(System.Int32
nameID, UnityEngine.Vector4[] values)
IL_0393: Label18
IL_0393: ldloc.s 14 (PropManager)
IL_0395: ldflda DrawCallData SimulationManagerBase`2<PropManager,
PropProperties>::m_drawCallData
IL_039A: dup
IL_039B: ldfld System.Int32 DrawCallData::m_defaultCalls
IL_03A0: ldc.i4.1
IL_03A1: add
IL_03A2: stfld System.Int32 DrawCallData::m_defaultCalls
IL_03A7: ldarg.1
IL_03A8: ldfld UnityEngine.Mesh PropInfo::m_mesh
IL_03AD: ldloc.s 13 (UnityEngine.Matrix4x4)
IL_03AF: ldarg.1
IL_03B0: ldfld UnityEngine.Material PropInfo::m_material
IL_03B5: ldarg.1
IL_03B6: ldfld System.Int32 PrefabInfo::m_prefabDataLayer
IL_03BB: ldnull
IL_03BC: ldc.i4.0
IL_03BD: ldloc.s 15 (UnityEngine.MaterialPropertyBlock)
IL_03BF: call static System.Void
UnityEngine.Graphics::DrawMesh(UnityEngine.Mesh mesh, UnityEngine.Matrix4x4 matrix,
UnityEngine.Material material, System.Int32 layer, UnityEngine.Camera camera,
System.Int32 submeshIndex, UnityEngine.MaterialPropertyBlock properties)
IL_03C4: br => Label19
IL_03C9: Label17
IL_03C9: ldarg.s 9
IL_03CB: ldarg.1
IL_03CC: ldfld UnityEngine.Texture PropInfo::m_lodHeightMap
IL_03D1: call static System.Boolean
UnityEngine.Object::op_Inequality(UnityEngine.Object x, UnityEngine.Object y)
IL_03D6: brtrue => Label20
IL_03DB: ldarg.s 12
IL_03DD: ldarg.1
IL_03DE: ldfld UnityEngine.Texture PropInfo::m_lodWaterHeightMap
IL_03E3: call static System.Boolean
UnityEngine.Object::op_Inequality(UnityEngine.Object x, UnityEngine.Object y)
IL_03E8: brfalse => Label21
IL_03ED: Label20
IL_03ED: ldarg.1
IL_03EE: ldfld System.Int32 PropInfo::m_lodCount
IL_03F3: brfalse => Label22
IL_03F8: ldarg.0
IL_03F9: ldarg.1
IL_03FA: call static System.Void PropInstance::RenderLod(CameraInfo
cameraInfo, PropInfo info)
IL_03FF: Label22
IL_03FF: ldarg.1
IL_0400: ldarg.s 9
IL_0402: stfld UnityEngine.Texture PropInfo::m_lodHeightMap
IL_0407: ldarg.1
IL_0408: ldarg.s 10
IL_040A: stfld UnityEngine.Vector4 PropInfo::m_lodHeightMapping
IL_040F: ldarg.1
IL_0410: ldarg.s 11
IL_0412: stfld UnityEngine.Vector4 PropInfo::m_lodSurfaceMapping
IL_0417: ldarg.1
IL_0418: ldarg.s 12
IL_041A: stfld UnityEngine.Texture PropInfo::m_lodWaterHeightMap
IL_041F: ldarg.1
IL_0420: ldarg.s 13
IL_0422: stfld UnityEngine.Vector4 PropInfo::m_lodWaterHeightMapping
IL_0427: ldarg.1
IL_0428: ldarg.s 14
IL_042A: stfld UnityEngine.Vector4 PropInfo::m_lodWaterSurfaceMapping
IL_042F: Label21
IL_042F: ldarga.s 7
IL_0431: ldarg.s 4
IL_0433: stfld System.Single UnityEngine.Vector4::w
IL_0438: ldarg.1
IL_0439: ldfld UnityEngine.Vector4[] PropInfo::m_lodLocations
IL_043E: ldarg.1
IL_043F: ldfld System.Int32 PropInfo::m_lodCount
IL_0444: ldelema UnityEngine.Vector4
IL_0449: ldarga.s 3
IL_044B: ldfld System.Single UnityEngine.Vector3::x
IL_0450: ldarga.s 3
IL_0452: ldfld System.Single UnityEngine.Vector3::y
IL_0457: ldarga.s 3
IL_0459: ldfld System.Single UnityEngine.Vector3::z
IL_045E: ldarg.s 5
IL_0460: newobj System.Void UnityEngine.Vector4::.ctor(System.Single x,
System.Single y, System.Single z, System.Single w)
IL_0465: stobj UnityEngine.Vector4
IL_046A: ldarg.1
IL_046B: ldfld UnityEngine.Vector4[] PropInfo::m_lodObjectIndices
IL_0470: ldarg.1
IL_0471: ldfld System.Int32 PropInfo::m_lodCount
IL_0476: ldelema UnityEngine.Vector4
IL_047B: ldarg.s 7
IL_047D: stobj UnityEngine.Vector4
IL_0482: ldarg.1
IL_0483: ldfld UnityEngine.Vector4[] PropInfo::m_lodColors
IL_0488: ldarg.1
IL_0489: ldfld System.Int32 PropInfo::m_lodCount
IL_048E: ldelema UnityEngine.Vector4
IL_0493: ldarga.s 6
IL_0495: call UnityEngine.Color UnityEngine.Color::get_linear()
IL_049A: call static UnityEngine.Vector4
UnityEngine.Color::op_Implicit(UnityEngine.Color c)
IL_049F: stobj UnityEngine.Vector4
IL_04A4: ldarg.1
IL_04A5: ldarg.1
IL_04A6: ldfld UnityEngine.Vector3 PropInfo::m_lodMin
IL_04AB: ldarg.3
IL_04AC: call static UnityEngine.Vector3
UnityEngine.Vector3::Min(UnityEngine.Vector3 lhs, UnityEngine.Vector3 rhs)
IL_04B1: stfld UnityEngine.Vector3 PropInfo::m_lodMin
IL_04B6: ldarg.1
IL_04B7: ldarg.1
IL_04B8: ldfld UnityEngine.Vector3 PropInfo::m_lodMax
IL_04BD: ldarg.3
IL_04BE: call static UnityEngine.Vector3
UnityEngine.Vector3::Max(UnityEngine.Vector3 lhs, UnityEngine.Vector3 rhs)
IL_04C3: stfld UnityEngine.Vector3 PropInfo::m_lodMax
IL_04C8: ldarg.1
IL_04C9: dup
IL_04CA: ldfld System.Int32 PropInfo::m_lodCount
IL_04CF: ldc.i4.1
IL_04D0: add
IL_04D1: dup
IL_04D2: stloc.s 16 (System.Int32)
IL_04D4: stfld System.Int32 PropInfo::m_lodCount
IL_04D9: ldloc.s 16 (System.Int32)
IL_04DB: ldarg.1
IL_04DC: ldfld UnityEngine.Vector4[] PropInfo::m_lodLocations
IL_04E1: ldlen
IL_04E2: conv.i4
IL_04E3: bne.un => Label23
IL_04E8: ldarg.0
IL_04E9: ldarg.1
IL_04EA: call static System.Void PropInstance::RenderLod(CameraInfo
cameraInfo, PropInfo info)
IL_04EF: // end original
IL_04EF: Label0
IL_04EF: Label6
IL_04EF: Label7
IL_04EF: Label19
IL_04EF: Label23
IL_04EF: ret
DONE

### Patch: static System.Void PropInstance::RenderInstance(CameraInfo cameraInfo,


PropInfo info, InstanceID id, UnityEngine.Vector3 position, System.Single scale,
System.Single angle, UnityEngine.Color color, UnityEngine.Vector4 objectIndex,
System.Boolean active)
### Replacement: static System.Void
PropInstance::PropInstance.RenderInstance_Patch0(CameraInfo cameraInfo, PropInfo
info, InstanceID id, UnityEngine.Vector3 position, System.Single scale,
System.Single angle, UnityEngine.Color color, UnityEngine.Vector4 objectIndex,
System.Boolean active)
IL_0000: Local var 0: UnityEngine.Matrix4x4
IL_0000: Local var 1: System.Single
IL_0000: Local var 2: System.Int32
IL_0000: Local var 3: UnityEngine.Vector3
IL_0000: Local var 4: UnityEngine.Vector3
IL_0000: Local var 5: EffectInfo/SpawnArea
IL_0000: Local var 6: System.Single
IL_0000: Local var 7: LightSystem
IL_0000: Local var 8: ColossalFramework.Math.Randomizer
IL_0000: Local var 9: UnityEngine.Vector4
IL_0000: Local var 10: System.Single
IL_0000: Local var 11: System.Single
IL_0000: Local var 12: System.Single
IL_0000: Local var 13: UnityEngine.Matrix4x4
IL_0000: Local var 14: PropManager
IL_0000: Local var 15: UnityEngine.MaterialPropertyBlock
IL_0000: Local var 16: UnityEngine.Matrix4x4
IL_0000: Local var 17: PropManager
IL_0000: Local var 18: UnityEngine.MaterialPropertyBlock
IL_0000: Local var 19: System.Int32
IL_0000: // start original
IL_0000: ldarg.1
IL_0001: ldfld System.Boolean PrefabInfo::m_prefabInitialized
IL_0006: brfalse => Label0
IL_000B: ldarg.1
IL_000C: ldfld System.Boolean PropInfo::m_hasEffects
IL_0011: brfalse => Label1
IL_0016: ldarg.s 8
IL_0018: brtrue => Label2
IL_001D: ldarg.1
IL_001E: ldfld System.Boolean PropInfo::m_alwaysActive
IL_0023: brfalse => Label3
IL_0028: Label2
IL_0028: ldloca.s 0 (UnityEngine.Matrix4x4)
IL_002A: initobj UnityEngine.Matrix4x4
IL_0030: ldloca.s 0 (UnityEngine.Matrix4x4)
IL_0032: ldarg.3
IL_0033: ldarg.s 5
IL_0035: ldc.r4 57.29578
IL_003A: mul
IL_003B: call static UnityEngine.Vector3 UnityEngine.Vector3::get_down()
IL_0040: call static UnityEngine.Quaternion
UnityEngine.Quaternion::AngleAxis(System.Single angle, UnityEngine.Vector3 axis)
IL_0045: ldarg.s 4
IL_0047: ldarg.s 4
IL_0049: ldarg.s 4
IL_004B: newobj System.Void UnityEngine.Vector3::.ctor(System.Single x,
System.Single y, System.Single z)
IL_0050: call System.Void UnityEngine.Matrix4x4::SetTRS(UnityEngine.Vector3
pos, UnityEngine.Quaternion q, UnityEngine.Vector3 s)
IL_0055: call static SimulationManager
ColossalFramework.Singleton`1<SimulationManager>::get_instance()
IL_005A: ldfld System.Single SimulationManager::m_simulationTimeDelta
IL_005F: stloc.1
IL_0060: ldc.i4.0
IL_0061: stloc.2
IL_0062: br => Label4
IL_0067: Label5
IL_0067: ldloca.s 0 (UnityEngine.Matrix4x4)
IL_0069: ldarg.1
IL_006A: ldfld Effect[] PropInfo::m_effects
IL_006F: ldloc.2
IL_0070: ldelema PropInfo+Effect
IL_0075: ldfld UnityEngine.Vector3 Effect::m_position
IL_007A: call UnityEngine.Vector3
UnityEngine.Matrix4x4::MultiplyPoint(UnityEngine.Vector3 v)
IL_007F: stloc.3
IL_0080: ldloca.s 0 (UnityEngine.Matrix4x4)
IL_0082: ldarg.1
IL_0083: ldfld Effect[] PropInfo::m_effects
IL_0088: ldloc.2
IL_0089: ldelema PropInfo+Effect
IL_008E: ldfld UnityEngine.Vector3 Effect::m_direction
IL_0093: call UnityEngine.Vector3
UnityEngine.Matrix4x4::MultiplyVector(UnityEngine.Vector3 v)
IL_0098: stloc.s 4 (UnityEngine.Vector3)
IL_009A: ldloca.s 5 (EffectInfo+SpawnArea)
IL_009C: ldloc.3
IL_009D: ldloc.s 4 (UnityEngine.Vector3)
IL_009F: ldc.r4 0
IL_00A4: call System.Void SpawnArea::.ctor(UnityEngine.Vector3 position,
UnityEngine.Vector3 direction, System.Single radius)
IL_00A9: ldarg.1
IL_00AA: ldfld Effect[] PropInfo::m_effects
IL_00AF: ldloc.2
IL_00B0: ldelema PropInfo+Effect
IL_00B5: ldfld EffectInfo Effect::m_effect
IL_00BA: ldarg.2
IL_00BB: ldloc.s 5 (EffectInfo+SpawnArea)
IL_00BD: call static UnityEngine.Vector3 UnityEngine.Vector3::get_zero()
IL_00C2: ldc.r4 0
IL_00C7: ldc.r4 1
IL_00CC: ldc.r4 -1
IL_00D1: ldloc.1
IL_00D2: ldarg.0
IL_00D3: callvirt virtual System.Void EffectInfo::RenderEffect(InstanceID id,
SpawnArea area, UnityEngine.Vector3 velocity, System.Single acceleration,
System.Single magnitude, System.Single timeOffset, System.Single timeDelta,
CameraInfo cameraInfo)
IL_00D8: ldloc.2
IL_00D9: ldc.i4.1
IL_00DA: add
IL_00DB: stloc.2
IL_00DC: Label4
IL_00DC: ldloc.2
IL_00DD: ldarg.1
IL_00DE: ldfld Effect[] PropInfo::m_effects
IL_00E3: ldlen
IL_00E4: conv.i4
IL_00E5: blt => Label5
IL_00EA: Label1
IL_00EA: Label3
IL_00EA: ldarg.1
IL_00EB: ldfld System.Boolean PropInfo::m_hasRenderer
IL_00F0: brfalse => Label6
IL_00F5: ldarg.0
IL_00F6: ldfld System.Int32 CameraInfo::m_layerMask
IL_00FB: ldc.i4.1
IL_00FC: ldarg.1
IL_00FD: ldfld System.Int32 PrefabInfo::m_prefabDataLayer
IL_0102: ldc.i4.s 31
IL_0104: and
IL_0105: shl
IL_0106: and
IL_0107: brfalse => Label7
IL_010C: call static InfoManager
ColossalFramework.Singleton`1<InfoManager>::get_instance()
IL_0111: callvirt InfoMode InfoManager::get_CurrentMode()
IL_0116: brtrue => Label8
IL_011B: ldc.r4 0
IL_0120: stloc.s 6 (System.Single)
IL_0122: ldarg.s 8
IL_0124: brtrue => Label9
IL_0129: ldarg.1
IL_012A: ldfld System.Boolean PropInfo::m_alwaysActive
IL_012F: brtrue => Label10
IL_0134: ldarga.s 7
IL_0136: ldc.r4 0
IL_013B: stfld System.Single UnityEngine.Vector4::z
IL_0140: br => Label11
IL_0145: Label9
IL_0145: Label10
IL_0145: ldarg.1
IL_0146: ldflda UnityEngine.Vector2 PropInfo::m_illuminationOffRange
IL_014B: ldfld System.Single UnityEngine.Vector2::x
IL_0150: ldc.r4 1000
IL_0155: blt => Label12
IL_015A: ldarg.1
IL_015B: ldfld BlinkType PropInfo::m_illuminationBlinkType
IL_0160: brfalse => Label13
IL_0165: Label12
IL_0165: call static RenderManager
ColossalFramework.Singleton`1<RenderManager>::get_instance()
IL_016A: callvirt LightSystem RenderManager::get_lightSystem()
IL_016F: stloc.s 7 (LightSystem)
IL_0171: ldloca.s 8 (ColossalFramework.Math.Randomizer)
IL_0173: ldarga.s 2
IL_0175: call System.UInt32 InstanceID::get_Index()
IL_017A: call System.Void
ColossalFramework.Math.Randomizer::.ctor(System.UInt32 _seed)
IL_017F: ldarg.1
IL_0180: ldflda UnityEngine.Vector2 PropInfo::m_illuminationOffRange
IL_0185: ldfld System.Single UnityEngine.Vector2::x
IL_018A: ldloca.s 8 (ColossalFramework.Math.Randomizer)
IL_018C: ldc.i4 100000
IL_0191: call System.Int32
ColossalFramework.Math.Randomizer::Int32(System.UInt32 range)
IL_0196: conv.r4
IL_0197: ldc.r4 1E-05
IL_019C: mul
IL_019D: ldarg.1
IL_019E: ldflda UnityEngine.Vector2 PropInfo::m_illuminationOffRange
IL_01A3: ldfld System.Single UnityEngine.Vector2::y
IL_01A8: ldarg.1
IL_01A9: ldflda UnityEngine.Vector2 PropInfo::m_illuminationOffRange
IL_01AE: ldfld System.Single UnityEngine.Vector2::x
IL_01B3: sub
IL_01B4: mul
IL_01B5: add
IL_01B6: stloc.s 6 (System.Single)
IL_01B8: ldarga.s 7
IL_01BA: ldloc.s 6 (System.Single)
IL_01BC: ldc.r4 0.01
IL_01C1: add
IL_01C2: ldloc.s 6 (System.Single)
IL_01C4: ldc.r4 0.01
IL_01C9: sub
IL_01CA: ldloc.s 7 (LightSystem)
IL_01CC: callvirt System.Single LightSystem::get_DayLightIntensity()
IL_01D1: call static System.Single MathUtils::SmoothStep(System.Single edge0,
System.Single edge1, System.Single x)
IL_01D6: stfld System.Single UnityEngine.Vector4::z
IL_01DB: ldarg.1
IL_01DC: ldfld BlinkType PropInfo::m_illuminationBlinkType
IL_01E1: brfalse => Label14
IL_01E6: ldarg.1
IL_01E7: ldfld BlinkType PropInfo::m_illuminationBlinkType
IL_01EC: call static UnityEngine.Vector4
LightEffect::GetBlinkVector(BlinkType type)
IL_01F1: stloc.s 9 (UnityEngine.Vector4)
IL_01F3: ldloc.s 6 (System.Single)
IL_01F5: ldc.r4 3.71
IL_01FA: mul
IL_01FB: call static SimulationManager
ColossalFramework.Singleton`1<SimulationManager>::get_instance()
IL_0200: ldfld System.Single SimulationManager::m_simulationTimer
IL_0205: ldloca.s 9 (UnityEngine.Vector4)
IL_0207: ldfld System.Single UnityEngine.Vector4::w
IL_020C: div
IL_020D: add
IL_020E: stloc.s 10 (System.Single)
IL_0210: ldloc.s 10 (System.Single)
IL_0212: ldloc.s 10 (System.Single)
IL_0214: call static System.Single UnityEngine.Mathf::Floor(System.Single f)
IL_0219: sub
IL_021A: ldloca.s 9 (UnityEngine.Vector4)
IL_021C: ldfld System.Single UnityEngine.Vector4::w
IL_0221: mul
IL_0222: stloc.s 10 (System.Single)
IL_0224: ldloca.s 9 (UnityEngine.Vector4)
IL_0226: ldfld System.Single UnityEngine.Vector4::x
IL_022B: ldloca.s 9 (UnityEngine.Vector4)
IL_022D: ldfld System.Single UnityEngine.Vector4::y
IL_0232: ldloc.s 10 (System.Single)
IL_0234: call static System.Single MathUtils::SmoothStep(System.Single edge0,
System.Single edge1, System.Single x)
IL_0239: stloc.s 11 (System.Single)
IL_023B: ldloca.s 9 (UnityEngine.Vector4)
IL_023D: ldfld System.Single UnityEngine.Vector4::w
IL_0242: ldloca.s 9 (UnityEngine.Vector4)
IL_0244: ldfld System.Single UnityEngine.Vector4::z
IL_0249: ldloc.s 10 (System.Single)
IL_024B: call static System.Single MathUtils::SmoothStep(System.Single edge0,
System.Single edge1, System.Single x)
IL_0250: stloc.s 12 (System.Single)
IL_0252: ldarga.s 7
IL_0254: dup
IL_0255: ldfld System.Single UnityEngine.Vector4::z
IL_025A: ldc.r4 1
IL_025F: ldloc.s 11 (System.Single)
IL_0261: ldloc.s 12 (System.Single)
IL_0263: mul
IL_0264: sub
IL_0265: mul
IL_0266: stfld System.Single UnityEngine.Vector4::z
IL_026B: Label14
IL_026B: br => Label15
IL_0270: Label13
IL_0270: ldarga.s 7
IL_0272: ldc.r4 1
IL_0277: stfld System.Single UnityEngine.Vector4::z
IL_027C: Label8
IL_027C: Label11
IL_027C: Label15
IL_027C: ldarg.0
IL_027D: brfalse => Label16
IL_0282: ldarg.0
IL_0283: ldarg.3
IL_0284: ldarg.1
IL_0285: ldfld System.Single PropInfo::m_lodRenderDistance
IL_028A: callvirt System.Boolean
CameraInfo::CheckRenderDistance(UnityEngine.Vector3 point, System.Single
maxDistance)
IL_028F: brfalse => Label17
IL_0294: Label16
IL_0294: ldloca.s 13 (UnityEngine.Matrix4x4)
IL_0296: initobj UnityEngine.Matrix4x4
IL_029C: ldloca.s 13 (UnityEngine.Matrix4x4)
IL_029E: ldarg.3
IL_029F: ldarg.s 5
IL_02A1: ldc.r4 57.29578
IL_02A6: mul
IL_02A7: call static UnityEngine.Vector3 UnityEngine.Vector3::get_down()
IL_02AC: call static UnityEngine.Quaternion
UnityEngine.Quaternion::AngleAxis(System.Single angle, UnityEngine.Vector3 axis)
IL_02B1: ldarg.s 4
IL_02B3: ldarg.s 4
IL_02B5: ldarg.s 4
IL_02B7: newobj System.Void UnityEngine.Vector3::.ctor(System.Single x,
System.Single y, System.Single z)
IL_02BC: call System.Void UnityEngine.Matrix4x4::SetTRS(UnityEngine.Vector3
pos, UnityEngine.Quaternion q, UnityEngine.Vector3 s)
IL_02C1: call static PropManager
ColossalFramework.Singleton`1<PropManager>::get_instance()
IL_02C6: stloc.s 14 (PropManager)
IL_02C8: ldloc.s 14 (PropManager)
IL_02CA: ldfld UnityEngine.MaterialPropertyBlock PropManager::m_materialBlock
IL_02CF: stloc.s 15 (UnityEngine.MaterialPropertyBlock)
IL_02D1: ldloc.s 15 (UnityEngine.MaterialPropertyBlock)
IL_02D3: callvirt System.Void UnityEngine.MaterialPropertyBlock::Clear()
IL_02D8: ldloc.s 15 (UnityEngine.MaterialPropertyBlock)
IL_02DA: ldloc.s 14 (PropManager)
IL_02DC: ldfld System.Int32 PropManager::ID_Color
IL_02E1: ldarg.s 6
IL_02E3: callvirt System.Void
UnityEngine.MaterialPropertyBlock::SetColor(System.Int32 nameID, UnityEngine.Color
value)
IL_02E8: ldloc.s 15 (UnityEngine.MaterialPropertyBlock)
IL_02EA: ldloc.s 14 (PropManager)
IL_02EC: ldfld System.Int32 PropManager::ID_ObjectIndex
IL_02F1: ldarg.s 7
IL_02F3: callvirt System.Void
UnityEngine.MaterialPropertyBlock::SetVector(System.Int32 nameID,
UnityEngine.Vector4 value)
IL_02F8: ldarg.1
IL_02F9: ldfld UnityEngine.Vector4[] PropInfo::m_rollLocation
IL_02FE: brfalse => Label18
IL_0303: ldarg.1
IL_0304: ldfld UnityEngine.Material PropInfo::m_material
IL_0309: ldloc.s 14 (PropManager)
IL_030B: ldfld System.Int32 PropManager::ID_RollLocation
IL_0310: ldarg.1
IL_0311: ldfld UnityEngine.Vector4[] PropInfo::m_rollLocation
IL_0316: callvirt System.Void UnityEngine.Material::SetVectorArray(System.Int32
nameID, UnityEngine.Vector4[] values)
IL_031B: ldarg.1
IL_031C: ldfld UnityEngine.Material PropInfo::m_material
IL_0321: ldloc.s 14 (PropManager)
IL_0323: ldfld System.Int32 PropManager::ID_RollParams
IL_0328: ldarg.1
IL_0329: ldfld UnityEngine.Vector4[] PropInfo::m_rollParams
IL_032E: callvirt System.Void UnityEngine.Material::SetVectorArray(System.Int32
nameID, UnityEngine.Vector4[] values)
IL_0333: Label18
IL_0333: ldloc.s 14 (PropManager)
IL_0335: ldflda DrawCallData SimulationManagerBase`2<PropManager,
PropProperties>::m_drawCallData
IL_033A: dup
IL_033B: ldfld System.Int32 DrawCallData::m_defaultCalls
IL_0340: ldc.i4.1
IL_0341: add
IL_0342: stfld System.Int32 DrawCallData::m_defaultCalls
IL_0347: ldarg.1
IL_0348: ldfld UnityEngine.Mesh PropInfo::m_mesh
IL_034D: ldloc.s 13 (UnityEngine.Matrix4x4)
IL_034F: ldarg.1
IL_0350: ldfld UnityEngine.Material PropInfo::m_material
IL_0355: ldarg.1
IL_0356: ldfld System.Int32 PrefabInfo::m_prefabDataLayer
IL_035B: ldnull
IL_035C: ldc.i4.0
IL_035D: ldloc.s 15 (UnityEngine.MaterialPropertyBlock)
IL_035F: call static System.Void
UnityEngine.Graphics::DrawMesh(UnityEngine.Mesh mesh, UnityEngine.Matrix4x4 matrix,
UnityEngine.Material material, System.Int32 layer, UnityEngine.Camera camera,
System.Int32 submeshIndex, UnityEngine.MaterialPropertyBlock properties)
IL_0364: br => Label19
IL_0369: Label17
IL_0369: ldarg.1
IL_036A: ldfld UnityEngine.Material PropInfo::m_lodMaterialCombined
IL_036F: ldnull
IL_0370: call static System.Boolean
UnityEngine.Object::op_Equality(UnityEngine.Object x, UnityEngine.Object y)
IL_0375: brfalse => Label20
IL_037A: ldloca.s 16 (UnityEngine.Matrix4x4)
IL_037C: initobj UnityEngine.Matrix4x4
IL_0382: ldloca.s 16 (UnityEngine.Matrix4x4)
IL_0384: ldarg.3
IL_0385: ldarg.s 5
IL_0387: ldc.r4 57.29578
IL_038C: mul
IL_038D: call static UnityEngine.Vector3 UnityEngine.Vector3::get_down()
IL_0392: call static UnityEngine.Quaternion
UnityEngine.Quaternion::AngleAxis(System.Single angle, UnityEngine.Vector3 axis)
IL_0397: ldarg.s 4
IL_0399: ldarg.s 4
IL_039B: ldarg.s 4
IL_039D: newobj System.Void UnityEngine.Vector3::.ctor(System.Single x,
System.Single y, System.Single z)
IL_03A2: call System.Void UnityEngine.Matrix4x4::SetTRS(UnityEngine.Vector3
pos, UnityEngine.Quaternion q, UnityEngine.Vector3 s)
IL_03A7: call static PropManager
ColossalFramework.Singleton`1<PropManager>::get_instance()
IL_03AC: stloc.s 17 (PropManager)
IL_03AE: ldloc.s 17 (PropManager)
IL_03B0: ldfld UnityEngine.MaterialPropertyBlock PropManager::m_materialBlock
IL_03B5: stloc.s 18 (UnityEngine.MaterialPropertyBlock)
IL_03B7: ldloc.s 18 (UnityEngine.MaterialPropertyBlock)
IL_03B9: callvirt System.Void UnityEngine.MaterialPropertyBlock::Clear()
IL_03BE: ldloc.s 18 (UnityEngine.MaterialPropertyBlock)
IL_03C0: ldloc.s 17 (PropManager)
IL_03C2: ldfld System.Int32 PropManager::ID_Color
IL_03C7: ldarg.s 6
IL_03C9: callvirt System.Void
UnityEngine.MaterialPropertyBlock::SetColor(System.Int32 nameID, UnityEngine.Color
value)
IL_03CE: ldloc.s 18 (UnityEngine.MaterialPropertyBlock)
IL_03D0: ldloc.s 17 (PropManager)
IL_03D2: ldfld System.Int32 PropManager::ID_ObjectIndex
IL_03D7: ldarg.s 7
IL_03D9: callvirt System.Void
UnityEngine.MaterialPropertyBlock::SetVector(System.Int32 nameID,
UnityEngine.Vector4 value)
IL_03DE: ldarg.1
IL_03DF: ldfld UnityEngine.Vector4[] PropInfo::m_rollLocation
IL_03E4: brfalse => Label21
IL_03E9: ldarg.1
IL_03EA: ldfld UnityEngine.Material PropInfo::m_material
IL_03EF: ldloc.s 17 (PropManager)
IL_03F1: ldfld System.Int32 PropManager::ID_RollLocation
IL_03F6: ldarg.1
IL_03F7: ldfld UnityEngine.Vector4[] PropInfo::m_rollLocation
IL_03FC: callvirt System.Void UnityEngine.Material::SetVectorArray(System.Int32
nameID, UnityEngine.Vector4[] values)
IL_0401: ldarg.1
IL_0402: ldfld UnityEngine.Material PropInfo::m_material
IL_0407: ldloc.s 17 (PropManager)
IL_0409: ldfld System.Int32 PropManager::ID_RollParams
IL_040E: ldarg.1
IL_040F: ldfld UnityEngine.Vector4[] PropInfo::m_rollParams
IL_0414: callvirt System.Void UnityEngine.Material::SetVectorArray(System.Int32
nameID, UnityEngine.Vector4[] values)
IL_0419: Label21
IL_0419: ldloc.s 17 (PropManager)
IL_041B: ldflda DrawCallData SimulationManagerBase`2<PropManager,
PropProperties>::m_drawCallData
IL_0420: dup
IL_0421: ldfld System.Int32 DrawCallData::m_defaultCalls
IL_0426: ldc.i4.1
IL_0427: add
IL_0428: stfld System.Int32 DrawCallData::m_defaultCalls
IL_042D: ldarg.1
IL_042E: ldfld UnityEngine.Mesh PropInfo::m_lodMesh
IL_0433: ldloc.s 16 (UnityEngine.Matrix4x4)
IL_0435: ldarg.1
IL_0436: ldfld UnityEngine.Material PropInfo::m_lodMaterial
IL_043B: ldarg.1
IL_043C: ldfld System.Int32 PrefabInfo::m_prefabDataLayer
IL_0441: ldnull
IL_0442: ldc.i4.0
IL_0443: ldloc.s 18 (UnityEngine.MaterialPropertyBlock)
IL_0445: call static System.Void
UnityEngine.Graphics::DrawMesh(UnityEngine.Mesh mesh, UnityEngine.Matrix4x4 matrix,
UnityEngine.Material material, System.Int32 layer, UnityEngine.Camera camera,
System.Int32 submeshIndex, UnityEngine.MaterialPropertyBlock properties)
IL_044A: br => Label22
IL_044F: Label20
IL_044F: ldarga.s 7
IL_0451: ldarg.s 4
IL_0453: stfld System.Single UnityEngine.Vector4::w
IL_0458: ldarg.1
IL_0459: ldfld UnityEngine.Vector4[] PropInfo::m_lodLocations
IL_045E: ldarg.1
IL_045F: ldfld System.Int32 PropInfo::m_lodCount
IL_0464: ldelema UnityEngine.Vector4
IL_0469: ldarga.s 3
IL_046B: ldfld System.Single UnityEngine.Vector3::x
IL_0470: ldarga.s 3
IL_0472: ldfld System.Single UnityEngine.Vector3::y
IL_0477: ldarga.s 3
IL_0479: ldfld System.Single UnityEngine.Vector3::z
IL_047E: ldarg.s 5
IL_0480: newobj System.Void UnityEngine.Vector4::.ctor(System.Single x,
System.Single y, System.Single z, System.Single w)
IL_0485: stobj UnityEngine.Vector4
IL_048A: ldarg.1
IL_048B: ldfld UnityEngine.Vector4[] PropInfo::m_lodObjectIndices
IL_0490: ldarg.1
IL_0491: ldfld System.Int32 PropInfo::m_lodCount
IL_0496: ldelema UnityEngine.Vector4
IL_049B: ldarg.s 7
IL_049D: stobj UnityEngine.Vector4
IL_04A2: ldarg.1
IL_04A3: ldfld UnityEngine.Vector4[] PropInfo::m_lodColors
IL_04A8: ldarg.1
IL_04A9: ldfld System.Int32 PropInfo::m_lodCount
IL_04AE: ldelema UnityEngine.Vector4
IL_04B3: ldarga.s 6
IL_04B5: call UnityEngine.Color UnityEngine.Color::get_linear()
IL_04BA: call static UnityEngine.Vector4
UnityEngine.Color::op_Implicit(UnityEngine.Color c)
IL_04BF: stobj UnityEngine.Vector4
IL_04C4: ldarg.1
IL_04C5: ldarg.1
IL_04C6: ldfld UnityEngine.Vector3 PropInfo::m_lodMin
IL_04CB: ldarg.3
IL_04CC: call static UnityEngine.Vector3
UnityEngine.Vector3::Min(UnityEngine.Vector3 lhs, UnityEngine.Vector3 rhs)
IL_04D1: stfld UnityEngine.Vector3 PropInfo::m_lodMin
IL_04D6: ldarg.1
IL_04D7: ldarg.1
IL_04D8: ldfld UnityEngine.Vector3 PropInfo::m_lodMax
IL_04DD: ldarg.3
IL_04DE: call static UnityEngine.Vector3
UnityEngine.Vector3::Max(UnityEngine.Vector3 lhs, UnityEngine.Vector3 rhs)
IL_04E3: stfld UnityEngine.Vector3 PropInfo::m_lodMax
IL_04E8: ldarg.1
IL_04E9: dup
IL_04EA: ldfld System.Int32 PropInfo::m_lodCount
IL_04EF: ldc.i4.1
IL_04F0: add
IL_04F1: dup
IL_04F2: stloc.s 19 (System.Int32)
IL_04F4: stfld System.Int32 PropInfo::m_lodCount
IL_04F9: ldloc.s 19 (System.Int32)
IL_04FB: ldarg.1
IL_04FC: ldfld UnityEngine.Vector4[] PropInfo::m_lodLocations
IL_0501: ldlen
IL_0502: conv.i4
IL_0503: bne.un => Label23
IL_0508: ldarg.0
IL_0509: ldarg.1
IL_050A: call static System.Void PropInstance::RenderLod(CameraInfo
cameraInfo, PropInfo info)
IL_050F: // end original
IL_050F: Label0
IL_050F: Label6
IL_050F: Label7
IL_050F: Label19
IL_050F: Label22
IL_050F: Label23
IL_050F: ret
DONE

### Patch: virtual System.Void LightEffect::PopulateGroupData(System.Int32 layer,


InstanceID id, UnityEngine.Vector3 pos, UnityEngine.Vector3 dir, 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
LightEffect::LightEffect.PopulateGroupData_Patch0(LightEffect this, System.Int32
layer, InstanceID id, UnityEngine.Vector3 pos, UnityEngine.Vector3 dir,
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.Boolean
IL_0000: Local var 1: UnityEngine.Vector3
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.Quaternion
IL_0000: Local var 7: UnityEngine.Vector4
IL_0000: Local var 8: UnityEngine.Vector2
IL_0000: Local var 9: ColossalFramework.Math.Randomizer
IL_0000: Local var 10: UnityEngine.Vector2
IL_0000: Local var 11: UnityEngine.Vector2
IL_0000: Local var 12: UnityEngine.Vector2
IL_0000: Local var 13: System.UInt16
IL_0000: Local var 14: UnityEngine.Vector3
IL_0000: Local var 15: UnityEngine.Color
IL_0000: Local var 16: UnityEngine.Color
IL_0000: Local var 17: System.Single
IL_0000: Local var 18: System.Single
IL_0000: Local var 19: System.Int32
IL_0000: // start original
IL_0000: ldarg.1
IL_0001: ldarg.0
IL_0002: ldfld System.Int32 LightEffect::m_groupLayer
IL_0007: beq => Label0
IL_000C: ldarg.1
IL_000D: ldarg.0
IL_000E: ldfld System.Int32 LightEffect::m_groupLayerFloating
IL_0013: bne.un => Label1
IL_0018: Label0
IL_0018: ldarg.1
IL_0019: ldarg.0
IL_001A: ldfld System.Int32 LightEffect::m_groupLayerFloating
IL_001F: ceq
IL_0021: stloc.0
IL_0022: ldloca.s 1 (UnityEngine.Vector3)
IL_0024: ldarg.0
IL_0025: ldfld System.Single LightEffect::m_lightRange
IL_002A: ldarg.0
IL_002B: ldfld System.Single LightEffect::m_lightRange
IL_0030: ldarg.0
IL_0031: ldfld System.Single LightEffect::m_lightRange
IL_0036: call System.Void UnityEngine.Vector3::.ctor(System.Single x,
System.Single y, System.Single z)
IL_003B: ldarg.3
IL_003C: ldloc.1
IL_003D: call static UnityEngine.Vector3
UnityEngine.Vector3::op_Subtraction(UnityEngine.Vector3 a, UnityEngine.Vector3 b)
IL_0042: stloc.2
IL_0043: ldarg.3
IL_0044: ldloc.1
IL_0045: call static UnityEngine.Vector3
UnityEngine.Vector3::op_Addition(UnityEngine.Vector3 a, UnityEngine.Vector3 b)
IL_004A: stloc.3
IL_004B: ldarg.s 9
IL_004D: ldarg.s 9
IL_004F: ldobj UnityEngine.Vector3
IL_0054: ldloc.2
IL_0055: call static UnityEngine.Vector3
UnityEngine.Vector3::Min(UnityEngine.Vector3 lhs, UnityEngine.Vector3 rhs)
IL_005A: stobj UnityEngine.Vector3
IL_005F: ldarg.s 10
IL_0061: ldarg.s 10
IL_0063: ldobj UnityEngine.Vector3
IL_0068: ldloc.3
IL_0069: call static UnityEngine.Vector3
UnityEngine.Vector3::Max(UnityEngine.Vector3 lhs, UnityEngine.Vector3 rhs)
IL_006E: stobj UnityEngine.Vector3
IL_0073: ldarg.3
IL_0074: ldarg.s 7
IL_0076: call static UnityEngine.Vector3
UnityEngine.Vector3::op_Subtraction(UnityEngine.Vector3 a, UnityEngine.Vector3 b)
IL_007B: stloc.s 4 (UnityEngine.Vector3)
IL_007D: ldarg.s 11
IL_007F: ldarg.s 11
IL_0081: ldind.r4
IL_0082: ldc.r4 30000
IL_0087: call static System.Single UnityEngine.Mathf::Max(System.Single a,
System.Single b)
IL_008C: stind.r4
IL_008D: ldarg.0
IL_008E: ldfld UnityEngine.LightType LightEffect::m_lightType
IL_0093: brtrue => Label2
IL_0098: ldarg.s 4
IL_009A: call static UnityEngine.Quaternion
UnityEngine.Quaternion::LookRotation(UnityEngine.Vector3 forward)
IL_009F: stloc.s 6 (UnityEngine.Quaternion)
IL_00A1: ldloc.s 6 (UnityEngine.Quaternion)
IL_00A3: ldarg.0
IL_00A4: ldfld UnityEngine.Quaternion LightEffect::m_lightRotation
IL_00A9: call static UnityEngine.Vector3 UnityEngine.Vector3::get_forward()
IL_00AE: call static UnityEngine.Vector3
UnityEngine.Quaternion::op_Multiply(UnityEngine.Quaternion rotation,
UnityEngine.Vector3 point)
IL_00B3: call static UnityEngine.Vector3
UnityEngine.Quaternion::op_Multiply(UnityEngine.Quaternion rotation,
UnityEngine.Vector3 point)
IL_00B8: stloc.s 5 (UnityEngine.Vector3)
IL_00BA: br => Label3
IL_00BF: Label2
IL_00BF: call static UnityEngine.Vector3 UnityEngine.Vector3::get_forward()
IL_00C4: stloc.s 5 (UnityEngine.Vector3)
IL_00C6: Label3
IL_00C6: ldloca.s 7 (UnityEngine.Vector4)
IL_00C8: ldloca.s 5 (UnityEngine.Vector3)
IL_00CA: ldfld System.Single UnityEngine.Vector3::x
IL_00CF: ldloca.s 5 (UnityEngine.Vector3)
IL_00D1: ldfld System.Single UnityEngine.Vector3::y
IL_00D6: ldloca.s 5 (UnityEngine.Vector3)
IL_00D8: ldfld System.Single UnityEngine.Vector3::z
IL_00DD: ldc.r4 100000
IL_00E2: call System.Void UnityEngine.Vector4::.ctor(System.Single x,
System.Single y, System.Single z, System.Single w)
IL_00E7: ldarg.0
IL_00E8: ldfld UnityEngine.LightType LightEffect::m_lightType
IL_00ED: brtrue => Label4
IL_00F2: ldloca.s 7 (UnityEngine.Vector4)
IL_00F4: ldc.r4 0.01745329
IL_00F9: ldarg.0
IL_00FA: ldfld System.Single LightEffect::m_lightSpotAngle
IL_00FF: mul
IL_0100: ldc.r4 0.5
IL_0105: mul
IL_0106: call static System.Single UnityEngine.Mathf::Cos(System.Single f)
IL_010B: neg
IL_010C: stfld System.Single UnityEngine.Vector4::w
IL_0111: Label4
IL_0111: ldloca.s 8 (UnityEngine.Vector2)
IL_0113: ldc.r4 1
IL_0118: ldarg.0
IL_0119: ldfld System.Single LightEffect::m_lightRange
IL_011E: ldarg.0
IL_011F: ldfld System.Single LightEffect::m_lightRange
IL_0124: mul
IL_0125: div
IL_0126: ldarg.0
IL_0127: ldfld System.Single LightEffect::m_lightIntensity
IL_012C: call System.Void UnityEngine.Vector2::.ctor(System.Single x,
System.Single y)
IL_0131: ldloca.s 9 (ColossalFramework.Math.Randomizer)
IL_0133: ldarga.s 2
IL_0135: call System.UInt32 InstanceID::get_Index()
IL_013A: call System.Void
ColossalFramework.Math.Randomizer::.ctor(System.UInt32 _seed)
IL_013F: ldloca.s 10 (UnityEngine.Vector2)
IL_0141: ldarg.0
IL_0142: ldflda UnityEngine.Vector2 LightEffect::m_offRange
IL_0147: ldfld System.Single UnityEngine.Vector2::x
IL_014C: ldloca.s 9 (ColossalFramework.Math.Randomizer)
IL_014E: ldc.i4 100000
IL_0153: call System.Int32
ColossalFramework.Math.Randomizer::Int32(System.UInt32 range)
IL_0158: conv.r4
IL_0159: ldc.r4 1E-05
IL_015E: mul
IL_015F: ldarg.0
IL_0160: ldflda UnityEngine.Vector2 LightEffect::m_offRange
IL_0165: ldfld System.Single UnityEngine.Vector2::y
IL_016A: ldarg.0
IL_016B: ldflda UnityEngine.Vector2 LightEffect::m_offRange
IL_0170: ldfld System.Single UnityEngine.Vector2::x
IL_0175: sub
IL_0176: mul
IL_0177: add
IL_0178: stfld System.Single UnityEngine.Vector2::x
IL_017D: ldloca.s 10 (UnityEngine.Vector2)
IL_017F: ldarg.0
IL_0180: ldfld BlinkType LightEffect::m_blinkType
IL_0185: conv.r4
IL_0186: stfld System.Single UnityEngine.Vector2::y
IL_018B: ldarg.2
IL_018C: call static System.UInt16 EffectInfo::GetBuilding(InstanceID id)
IL_0191: stloc.s 13 (System.UInt16)
IL_0193: ldloc.s 13 (System.UInt16)
IL_0195: brfalse => Label5
IL_019A: ldloc.s 13 (System.UInt16)
IL_019C: call static UnityEngine.Vector4
RenderManager::GetColorLocation(System.UInt32 instanceHolder)
IL_01A1: call static UnityEngine.Vector2
UnityEngine.Vector4::op_Implicit(UnityEngine.Vector4 v)
IL_01A6: stloc.s 11 (UnityEngine.Vector2)
IL_01A8: ldloc.0
IL_01A9: brfalse => Label6
IL_01AE: call static BuildingManager
ColossalFramework.Singleton`1<BuildingManager>::get_instance()
IL_01B3: ldfld Array16`1<Building> BuildingManager::m_buildings
IL_01B8: ldfld Building[] Array16`1<Building>::m_buffer
IL_01BD: ldloc.s 13 (System.UInt16)
IL_01BF: ldelema Building
IL_01C4: call UnityEngine.Vector3 Building::CalculateMeshPosition()
IL_01C9: stloc.s 14 (UnityEngine.Vector3)
IL_01CB: ldloc.s 14 (UnityEngine.Vector3)
IL_01CD: call static UnityEngine.Vector2
ColossalFramework.Math.VectorUtils::XZ(UnityEngine.Vector3 v)
IL_01D2: stloc.s 12 (UnityEngine.Vector2)
IL_01D4: ldarga.s 3
IL_01D6: dup
IL_01D7: ldfld System.Single UnityEngine.Vector3::y
IL_01DC: ldloca.s 14 (UnityEngine.Vector3)
IL_01DE: ldfld System.Single UnityEngine.Vector3::y
IL_01E3: sub
IL_01E4: stfld System.Single UnityEngine.Vector3::y
IL_01E9: ldloca.s 4 (UnityEngine.Vector3)
IL_01EB: dup
IL_01EC: ldfld System.Single UnityEngine.Vector3::y
IL_01F1: ldloca.s 14 (UnityEngine.Vector3)
IL_01F3: ldfld System.Single UnityEngine.Vector3::y
IL_01F8: sub
IL_01F9: stfld System.Single UnityEngine.Vector3::y
IL_01FE: br => Label7
IL_0203: Label6
IL_0203: call static UnityEngine.Vector2 UnityEngine.Vector2::get_zero()
IL_0208: stloc.s 12 (UnityEngine.Vector2)
IL_020A: Label7
IL_020A: br => Label8
IL_020F: Label5
IL_020F: ldsfld UnityEngine.Vector4 RenderManager::DefaultColorLocation
IL_0214: call static UnityEngine.Vector2
UnityEngine.Vector4::op_Implicit(UnityEngine.Vector4 v)
IL_0219: stloc.s 11 (UnityEngine.Vector2)
IL_021B: call static UnityEngine.Vector2 UnityEngine.Vector2::get_zero()
IL_0220: stloc.s 12 (UnityEngine.Vector2)
IL_0222: Label8
IL_0222: ldarg.0
IL_0223: ldfld UnityEngine.Color LightEffect::m_lightColor
IL_0228: stloc.s 15 (UnityEngine.Color)
IL_022A: ldarg.0
IL_022B: ldfld UnityEngine.Color[] LightEffect::m_variationColors
IL_0230: brfalse => Label9
IL_0235: ldarg.0
IL_0236: ldfld UnityEngine.Color[] LightEffect::m_variationColors
IL_023B: ldlen
IL_023C: conv.i4
IL_023D: brfalse => Label10
IL_0242: ldarg.0
IL_0243: ldfld UnityEngine.Color[] LightEffect::m_variationColors
IL_0248: ldloca.s 9 (ColossalFramework.Math.Randomizer)
IL_024A: ldarg.0
IL_024B: ldfld UnityEngine.Color[] LightEffect::m_variationColors
IL_0250: ldlen
IL_0251: conv.i4
IL_0252: call System.Int32
ColossalFramework.Math.Randomizer::Int32(System.UInt32 range)
IL_0257: ldelema UnityEngine.Color
IL_025C: ldobj UnityEngine.Color
IL_0261: stloc.s 16 (UnityEngine.Color)
IL_0263: ldloc.s 15 (UnityEngine.Color)
IL_0265: ldloc.s 16 (UnityEngine.Color)
IL_0267: ldloca.s 9 (ColossalFramework.Math.Randomizer)
IL_0269: ldc.i4 1000
IL_026E: call System.Int32
ColossalFramework.Math.Randomizer::Int32(System.UInt32 range)
IL_0273: conv.r4
IL_0274: ldc.r4 0.001
IL_0279: mul
IL_027A: call static UnityEngine.Color
UnityEngine.Color::Lerp(UnityEngine.Color a, UnityEngine.Color b, System.Single t)
IL_027F: stloc.s 15 (UnityEngine.Color)
IL_0281: Label9
IL_0281: Label10
IL_0281: ldloca.s 15 (UnityEngine.Color)
IL_0283: call UnityEngine.Color UnityEngine.Color::get_linear()
IL_0288: stloc.s 15 (UnityEngine.Color)
IL_028A: ldloca.s 15 (UnityEngine.Color)
IL_028C: ldarg.0
IL_028D: ldfld UnityEngine.LightType LightEffect::m_lightType
IL_0292: brtrue => Label11
IL_0297: ldarg.0
IL_0298: ldfld System.Single LightEffect::m_spotLeaking
IL_029D: br => Label12
IL_02A2: Label11
IL_02A2: ldc.r4 0
IL_02A7: Label12
IL_02A7: stfld System.Single UnityEngine.Color::a
IL_02AC: ldarg.0
IL_02AD: ldfld System.Single LightEffect::m_lightRange
IL_02B2: ldc.r4 0.5235988
IL_02B7: call static System.Single UnityEngine.Mathf::Cos(System.Single f)
IL_02BC: div
IL_02BD: stloc.s 17 (System.Single)
IL_02BF: ldloc.s 17 (System.Single)
IL_02C1: ldc.r4 0.5
IL_02C6: mul
IL_02C7: stloc.s 18 (System.Single)
IL_02C9: ldarg.s 8
IL_02CB: ldfld UnityEngine.Vector3[] MeshData::m_vertices
IL_02D0: ldarg.s 5
IL_02D2: ldind.i4
IL_02D3: ldelema UnityEngine.Vector3
IL_02D8: ldloca.s 4 (UnityEngine.Vector3)
IL_02DA: ldfld System.Single UnityEngine.Vector3::x
IL_02DF: ldloc.s 18 (System.Single)
IL_02E1: sub
IL_02E2: ldloca.s 4 (UnityEngine.Vector3)
IL_02E4: ldfld System.Single UnityEngine.Vector3::y
IL_02E9: ldarg.0
IL_02EA: ldfld System.Single LightEffect::m_lightRange
IL_02EF: add
IL_02F0: ldloca.s 4 (UnityEngine.Vector3)
IL_02F2: ldfld System.Single UnityEngine.Vector3::z
IL_02F7: ldarg.0
IL_02F8: ldfld System.Single LightEffect::m_lightRange
IL_02FD: add
IL_02FE: newobj System.Void UnityEngine.Vector3::.ctor(System.Single x,
System.Single y, System.Single z)
IL_0303: stobj UnityEngine.Vector3
IL_0308: ldarg.s 8
IL_030A: ldfld UnityEngine.Vector3[] MeshData::m_normals
IL_030F: ldarg.s 5
IL_0311: ldind.i4
IL_0312: ldelema UnityEngine.Vector3
IL_0317: ldarg.3
IL_0318: stobj UnityEngine.Vector3
IL_031D: ldarg.s 8
IL_031F: ldfld UnityEngine.Vector4[] MeshData::m_tangents
IL_0324: ldarg.s 5
IL_0326: ldind.i4
IL_0327: ldelema UnityEngine.Vector4
IL_032C: ldloc.s 7 (UnityEngine.Vector4)
IL_032E: stobj UnityEngine.Vector4
IL_0333: ldarg.s 8
IL_0335: ldfld UnityEngine.Vector2[] MeshData::m_uvs
IL_033A: ldarg.s 5
IL_033C: ldind.i4
IL_033D: ldelema UnityEngine.Vector2
IL_0342: ldloc.s 8 (UnityEngine.Vector2)
IL_0344: stobj UnityEngine.Vector2
IL_0349: ldarg.s 8
IL_034B: ldfld UnityEngine.Vector2[] MeshData::m_uvs2
IL_0350: ldarg.s 5
IL_0352: ldind.i4
IL_0353: ldelema UnityEngine.Vector2
IL_0358: ldloc.s 10 (UnityEngine.Vector2)
IL_035A: stobj UnityEngine.Vector2
IL_035F: ldarg.s 8
IL_0361: ldfld UnityEngine.Vector2[] MeshData::m_uvs3
IL_0366: ldarg.s 5
IL_0368: ldind.i4
IL_0369: ldelema UnityEngine.Vector2
IL_036E: ldloc.s 11 (UnityEngine.Vector2)
IL_0370: stobj UnityEngine.Vector2
IL_0375: ldloc.0
IL_0376: brfalse => Label13
IL_037B: ldarg.s 8
IL_037D: ldfld UnityEngine.Vector2[] MeshData::m_uvs4
IL_0382: ldarg.s 5
IL_0384: ldind.i4
IL_0385: ldelema UnityEngine.Vector2
IL_038A: ldloc.s 12 (UnityEngine.Vector2)
IL_038C: stobj UnityEngine.Vector2
IL_0391: Label13
IL_0391: ldarg.s 8
IL_0393: ldfld UnityEngine.Color32[] MeshData::m_colors
IL_0398: ldarg.s 5
IL_039A: ldind.i4
IL_039B: ldelema UnityEngine.Color32
IL_03A0: ldloc.s 15 (UnityEngine.Color)
IL_03A2: call static UnityEngine.Color32
UnityEngine.Color32::op_Implicit(UnityEngine.Color c)
IL_03A7: stobj UnityEngine.Color32
IL_03AC: ldarg.s 5
IL_03AE: ldarg.s 5
IL_03B0: ldind.i4
IL_03B1: ldc.i4.1
IL_03B2: add
IL_03B3: stind.i4
IL_03B4: ldarg.s 8
IL_03B6: ldfld UnityEngine.Vector3[] MeshData::m_vertices
IL_03BB: ldarg.s 5
IL_03BD: ldind.i4
IL_03BE: ldelema UnityEngine.Vector3
IL_03C3: ldloca.s 4 (UnityEngine.Vector3)
IL_03C5: ldfld System.Single UnityEngine.Vector3::x
IL_03CA: ldloc.s 18 (System.Single)
IL_03CC: add
IL_03CD: ldloca.s 4 (UnityEngine.Vector3)
IL_03CF: ldfld System.Single UnityEngine.Vector3::y
IL_03D4: ldarg.0
IL_03D5: ldfld System.Single LightEffect::m_lightRange
IL_03DA: add
IL_03DB: ldloca.s 4 (UnityEngine.Vector3)
IL_03DD: ldfld System.Single UnityEngine.Vector3::z
IL_03E2: ldarg.0
IL_03E3: ldfld System.Single LightEffect::m_lightRange
IL_03E8: add
IL_03E9: newobj System.Void UnityEngine.Vector3::.ctor(System.Single x,
System.Single y, System.Single z)
IL_03EE: stobj UnityEngine.Vector3
IL_03F3: ldarg.s 8
IL_03F5: ldfld UnityEngine.Vector3[] MeshData::m_normals
IL_03FA: ldarg.s 5
IL_03FC: ldind.i4
IL_03FD: ldelema UnityEngine.Vector3
IL_0402: ldarg.3
IL_0403: stobj UnityEngine.Vector3
IL_0408: ldarg.s 8
IL_040A: ldfld UnityEngine.Vector4[] MeshData::m_tangents
IL_040F: ldarg.s 5
IL_0411: ldind.i4
IL_0412: ldelema UnityEngine.Vector4
IL_0417: ldloc.s 7 (UnityEngine.Vector4)
IL_0419: stobj UnityEngine.Vector4
IL_041E: ldarg.s 8
IL_0420: ldfld UnityEngine.Vector2[] MeshData::m_uvs
IL_0425: ldarg.s 5
IL_0427: ldind.i4
IL_0428: ldelema UnityEngine.Vector2
IL_042D: ldloc.s 8 (UnityEngine.Vector2)
IL_042F: stobj UnityEngine.Vector2
IL_0434: ldarg.s 8
IL_0436: ldfld UnityEngine.Vector2[] MeshData::m_uvs2
IL_043B: ldarg.s 5
IL_043D: ldind.i4
IL_043E: ldelema UnityEngine.Vector2
IL_0443: ldloc.s 10 (UnityEngine.Vector2)
IL_0445: stobj UnityEngine.Vector2
IL_044A: ldarg.s 8
IL_044C: ldfld UnityEngine.Vector2[] MeshData::m_uvs3
IL_0451: ldarg.s 5
IL_0453: ldind.i4
IL_0454: ldelema UnityEngine.Vector2
IL_0459: ldloc.s 11 (UnityEngine.Vector2)
IL_045B: stobj UnityEngine.Vector2
IL_0460: ldloc.0
IL_0461: brfalse => Label14
IL_0466: ldarg.s 8
IL_0468: ldfld UnityEngine.Vector2[] MeshData::m_uvs4
IL_046D: ldarg.s 5
IL_046F: ldind.i4
IL_0470: ldelema UnityEngine.Vector2
IL_0475: ldloc.s 12 (UnityEngine.Vector2)
IL_0477: stobj UnityEngine.Vector2
IL_047C: Label14
IL_047C: ldarg.s 8
IL_047E: ldfld UnityEngine.Color32[] MeshData::m_colors
IL_0483: ldarg.s 5
IL_0485: ldind.i4
IL_0486: ldelema UnityEngine.Color32
IL_048B: ldloc.s 15 (UnityEngine.Color)
IL_048D: call static UnityEngine.Color32
UnityEngine.Color32::op_Implicit(UnityEngine.Color c)
IL_0492: stobj UnityEngine.Color32
IL_0497: ldarg.s 5
IL_0499: ldarg.s 5
IL_049B: ldind.i4
IL_049C: ldc.i4.1
IL_049D: add
IL_049E: stind.i4
IL_049F: ldarg.s 8
IL_04A1: ldfld UnityEngine.Vector3[] MeshData::m_vertices
IL_04A6: ldarg.s 5
IL_04A8: ldind.i4
IL_04A9: ldelema UnityEngine.Vector3
IL_04AE: ldloca.s 4 (UnityEngine.Vector3)
IL_04B0: ldfld System.Single UnityEngine.Vector3::x
IL_04B5: ldloc.s 17 (System.Single)
IL_04B7: add
IL_04B8: ldloca.s 4 (UnityEngine.Vector3)
IL_04BA: ldfld System.Single UnityEngine.Vector3::y
IL_04BF: ldloca.s 4 (UnityEngine.Vector3)
IL_04C1: ldfld System.Single UnityEngine.Vector3::z
IL_04C6: ldarg.0
IL_04C7: ldfld System.Single LightEffect::m_lightRange
IL_04CC: add
IL_04CD: newobj System.Void UnityEngine.Vector3::.ctor(System.Single x,
System.Single y, System.Single z)
IL_04D2: stobj UnityEngine.Vector3
IL_04D7: ldarg.s 8
IL_04D9: ldfld UnityEngine.Vector3[] MeshData::m_normals
IL_04DE: ldarg.s 5
IL_04E0: ldind.i4
IL_04E1: ldelema UnityEngine.Vector3
IL_04E6: ldarg.3
IL_04E7: stobj UnityEngine.Vector3
IL_04EC: ldarg.s 8
IL_04EE: ldfld UnityEngine.Vector4[] MeshData::m_tangents
IL_04F3: ldarg.s 5
IL_04F5: ldind.i4
IL_04F6: ldelema UnityEngine.Vector4
IL_04FB: ldloc.s 7 (UnityEngine.Vector4)
IL_04FD: stobj UnityEngine.Vector4
IL_0502: ldarg.s 8
IL_0504: ldfld UnityEngine.Vector2[] MeshData::m_uvs
IL_0509: ldarg.s 5
IL_050B: ldind.i4
IL_050C: ldelema UnityEngine.Vector2
IL_0511: ldloc.s 8 (UnityEngine.Vector2)
IL_0513: stobj UnityEngine.Vector2
IL_0518: ldarg.s 8
IL_051A: ldfld UnityEngine.Vector2[] MeshData::m_uvs2
IL_051F: ldarg.s 5
IL_0521: ldind.i4
IL_0522: ldelema UnityEngine.Vector2
IL_0527: ldloc.s 10 (UnityEngine.Vector2)
IL_0529: stobj UnityEngine.Vector2
IL_052E: ldarg.s 8
IL_0530: ldfld UnityEngine.Vector2[] MeshData::m_uvs3
IL_0535: ldarg.s 5
IL_0537: ldind.i4
IL_0538: ldelema UnityEngine.Vector2
IL_053D: ldloc.s 11 (UnityEngine.Vector2)
IL_053F: stobj UnityEngine.Vector2
IL_0544: ldloc.0
IL_0545: brfalse => Label15
IL_054A: ldarg.s 8
IL_054C: ldfld UnityEngine.Vector2[] MeshData::m_uvs4
IL_0551: ldarg.s 5
IL_0553: ldind.i4
IL_0554: ldelema UnityEngine.Vector2
IL_0559: ldloc.s 12 (UnityEngine.Vector2)
IL_055B: stobj UnityEngine.Vector2
IL_0560: Label15
IL_0560: ldarg.s 8
IL_0562: ldfld UnityEngine.Color32[] MeshData::m_colors
IL_0567: ldarg.s 5
IL_0569: ldind.i4
IL_056A: ldelema UnityEngine.Color32
IL_056F: ldloc.s 15 (UnityEngine.Color)
IL_0571: call static UnityEngine.Color32
UnityEngine.Color32::op_Implicit(UnityEngine.Color c)
IL_0576: stobj UnityEngine.Color32
IL_057B: ldarg.s 5
IL_057D: ldarg.s 5
IL_057F: ldind.i4
IL_0580: ldc.i4.1
IL_0581: add
IL_0582: stind.i4
IL_0583: ldarg.s 8
IL_0585: ldfld UnityEngine.Vector3[] MeshData::m_vertices
IL_058A: ldarg.s 5
IL_058C: ldind.i4
IL_058D: ldelema UnityEngine.Vector3
IL_0592: ldloca.s 4 (UnityEngine.Vector3)
IL_0594: ldfld System.Single UnityEngine.Vector3::x
IL_0599: ldloc.s 18 (System.Single)
IL_059B: add
IL_059C: ldloca.s 4 (UnityEngine.Vector3)
IL_059E: ldfld System.Single UnityEngine.Vector3::y
IL_05A3: ldarg.0
IL_05A4: ldfld System.Single LightEffect::m_lightRange
IL_05A9: sub
IL_05AA: ldloca.s 4 (UnityEngine.Vector3)
IL_05AC: ldfld System.Single UnityEngine.Vector3::z
IL_05B1: ldarg.0
IL_05B2: ldfld System.Single LightEffect::m_lightRange
IL_05B7: add
IL_05B8: newobj System.Void UnityEngine.Vector3::.ctor(System.Single x,
System.Single y, System.Single z)
IL_05BD: stobj UnityEngine.Vector3
IL_05C2: ldarg.s 8
IL_05C4: ldfld UnityEngine.Vector3[] MeshData::m_normals
IL_05C9: ldarg.s 5
IL_05CB: ldind.i4
IL_05CC: ldelema UnityEngine.Vector3
IL_05D1: ldarg.3
IL_05D2: stobj UnityEngine.Vector3
IL_05D7: ldarg.s 8
IL_05D9: ldfld UnityEngine.Vector4[] MeshData::m_tangents
IL_05DE: ldarg.s 5
IL_05E0: ldind.i4
IL_05E1: ldelema UnityEngine.Vector4
IL_05E6: ldloc.s 7 (UnityEngine.Vector4)
IL_05E8: stobj UnityEngine.Vector4
IL_05ED: ldarg.s 8
IL_05EF: ldfld UnityEngine.Vector2[] MeshData::m_uvs
IL_05F4: ldarg.s 5
IL_05F6: ldind.i4
IL_05F7: ldelema UnityEngine.Vector2
IL_05FC: ldloc.s 8 (UnityEngine.Vector2)
IL_05FE: stobj UnityEngine.Vector2
IL_0603: ldarg.s 8
IL_0605: ldfld UnityEngine.Vector2[] MeshData::m_uvs2
IL_060A: ldarg.s 5
IL_060C: ldind.i4
IL_060D: ldelema UnityEngine.Vector2
IL_0612: ldloc.s 10 (UnityEngine.Vector2)
IL_0614: stobj UnityEngine.Vector2
IL_0619: ldarg.s 8
IL_061B: ldfld UnityEngine.Vector2[] MeshData::m_uvs3
IL_0620: ldarg.s 5
IL_0622: ldind.i4
IL_0623: ldelema UnityEngine.Vector2
IL_0628: ldloc.s 11 (UnityEngine.Vector2)
IL_062A: stobj UnityEngine.Vector2
IL_062F: ldloc.0
IL_0630: brfalse => Label16
IL_0635: ldarg.s 8
IL_0637: ldfld UnityEngine.Vector2[] MeshData::m_uvs4
IL_063C: ldarg.s 5
IL_063E: ldind.i4
IL_063F: ldelema UnityEngine.Vector2
IL_0644: ldloc.s 12 (UnityEngine.Vector2)
IL_0646: stobj UnityEngine.Vector2
IL_064B: Label16
IL_064B: ldarg.s 8
IL_064D: ldfld UnityEngine.Color32[] MeshData::m_colors
IL_0652: ldarg.s 5
IL_0654: ldind.i4
IL_0655: ldelema UnityEngine.Color32
IL_065A: ldloc.s 15 (UnityEngine.Color)
IL_065C: call static UnityEngine.Color32
UnityEngine.Color32::op_Implicit(UnityEngine.Color c)
IL_0661: stobj UnityEngine.Color32
IL_0666: ldarg.s 5
IL_0668: ldarg.s 5
IL_066A: ldind.i4
IL_066B: ldc.i4.1
IL_066C: add
IL_066D: stind.i4
IL_066E: ldarg.s 8
IL_0670: ldfld UnityEngine.Vector3[] MeshData::m_vertices
IL_0675: ldarg.s 5
IL_0677: ldind.i4
IL_0678: ldelema UnityEngine.Vector3
IL_067D: ldloca.s 4 (UnityEngine.Vector3)
IL_067F: ldfld System.Single UnityEngine.Vector3::x
IL_0684: ldloc.s 18 (System.Single)
IL_0686: sub
IL_0687: ldloca.s 4 (UnityEngine.Vector3)
IL_0689: ldfld System.Single UnityEngine.Vector3::y
IL_068E: ldarg.0
IL_068F: ldfld System.Single LightEffect::m_lightRange
IL_0694: sub
IL_0695: ldloca.s 4 (UnityEngine.Vector3)
IL_0697: ldfld System.Single UnityEngine.Vector3::z
IL_069C: ldarg.0
IL_069D: ldfld System.Single LightEffect::m_lightRange
IL_06A2: add
IL_06A3: newobj System.Void UnityEngine.Vector3::.ctor(System.Single x,
System.Single y, System.Single z)
IL_06A8: stobj UnityEngine.Vector3
IL_06AD: ldarg.s 8
IL_06AF: ldfld UnityEngine.Vector3[] MeshData::m_normals
IL_06B4: ldarg.s 5
IL_06B6: ldind.i4
IL_06B7: ldelema UnityEngine.Vector3
IL_06BC: ldarg.3
IL_06BD: stobj UnityEngine.Vector3
IL_06C2: ldarg.s 8
IL_06C4: ldfld UnityEngine.Vector4[] MeshData::m_tangents
IL_06C9: ldarg.s 5
IL_06CB: ldind.i4
IL_06CC: ldelema UnityEngine.Vector4
IL_06D1: ldloc.s 7 (UnityEngine.Vector4)
IL_06D3: stobj UnityEngine.Vector4
IL_06D8: ldarg.s 8
IL_06DA: ldfld UnityEngine.Vector2[] MeshData::m_uvs
IL_06DF: ldarg.s 5
IL_06E1: ldind.i4
IL_06E2: ldelema UnityEngine.Vector2
IL_06E7: ldloc.s 8 (UnityEngine.Vector2)
IL_06E9: stobj UnityEngine.Vector2
IL_06EE: ldarg.s 8
IL_06F0: ldfld UnityEngine.Vector2[] MeshData::m_uvs2
IL_06F5: ldarg.s 5
IL_06F7: ldind.i4
IL_06F8: ldelema UnityEngine.Vector2
IL_06FD: ldloc.s 10 (UnityEngine.Vector2)
IL_06FF: stobj UnityEngine.Vector2
IL_0704: ldarg.s 8
IL_0706: ldfld UnityEngine.Vector2[] MeshData::m_uvs3
IL_070B: ldarg.s 5
IL_070D: ldind.i4
IL_070E: ldelema UnityEngine.Vector2
IL_0713: ldloc.s 11 (UnityEngine.Vector2)
IL_0715: stobj UnityEngine.Vector2
IL_071A: ldloc.0
IL_071B: brfalse => Label17
IL_0720: ldarg.s 8
IL_0722: ldfld UnityEngine.Vector2[] MeshData::m_uvs4
IL_0727: ldarg.s 5
IL_0729: ldind.i4
IL_072A: ldelema UnityEngine.Vector2
IL_072F: ldloc.s 12 (UnityEngine.Vector2)
IL_0731: stobj UnityEngine.Vector2
IL_0736: Label17
IL_0736: ldarg.s 8
IL_0738: ldfld UnityEngine.Color32[] MeshData::m_colors
IL_073D: ldarg.s 5
IL_073F: ldind.i4
IL_0740: ldelema UnityEngine.Color32
IL_0745: ldloc.s 15 (UnityEngine.Color)
IL_0747: call static UnityEngine.Color32
UnityEngine.Color32::op_Implicit(UnityEngine.Color c)
IL_074C: stobj UnityEngine.Color32
IL_0751: ldarg.s 5
IL_0753: ldarg.s 5
IL_0755: ldind.i4
IL_0756: ldc.i4.1
IL_0757: add
IL_0758: stind.i4
IL_0759: ldarg.s 8
IL_075B: ldfld UnityEngine.Vector3[] MeshData::m_vertices
IL_0760: ldarg.s 5
IL_0762: ldind.i4
IL_0763: ldelema UnityEngine.Vector3
IL_0768: ldloca.s 4 (UnityEngine.Vector3)
IL_076A: ldfld System.Single UnityEngine.Vector3::x
IL_076F: ldloc.s 17 (System.Single)
IL_0771: sub
IL_0772: ldloca.s 4 (UnityEngine.Vector3)
IL_0774: ldfld System.Single UnityEngine.Vector3::y
IL_0779: ldloca.s 4 (UnityEngine.Vector3)
IL_077B: ldfld System.Single UnityEngine.Vector3::z
IL_0780: ldarg.0
IL_0781: ldfld System.Single LightEffect::m_lightRange
IL_0786: add
IL_0787: newobj System.Void UnityEngine.Vector3::.ctor(System.Single x,
System.Single y, System.Single z)
IL_078C: stobj UnityEngine.Vector3
IL_0791: ldarg.s 8
IL_0793: ldfld UnityEngine.Vector3[] MeshData::m_normals
IL_0798: ldarg.s 5
IL_079A: ldind.i4
IL_079B: ldelema UnityEngine.Vector3
IL_07A0: ldarg.3
IL_07A1: stobj UnityEngine.Vector3
IL_07A6: ldarg.s 8
IL_07A8: ldfld UnityEngine.Vector4[] MeshData::m_tangents
IL_07AD: ldarg.s 5
IL_07AF: ldind.i4
IL_07B0: ldelema UnityEngine.Vector4
IL_07B5: ldloc.s 7 (UnityEngine.Vector4)
IL_07B7: stobj UnityEngine.Vector4
IL_07BC: ldarg.s 8
IL_07BE: ldfld UnityEngine.Vector2[] MeshData::m_uvs
IL_07C3: ldarg.s 5
IL_07C5: ldind.i4
IL_07C6: ldelema UnityEngine.Vector2
IL_07CB: ldloc.s 8 (UnityEngine.Vector2)
IL_07CD: stobj UnityEngine.Vector2
IL_07D2: ldarg.s 8
IL_07D4: ldfld UnityEngine.Vector2[] MeshData::m_uvs2
IL_07D9: ldarg.s 5
IL_07DB: ldind.i4
IL_07DC: ldelema UnityEngine.Vector2
IL_07E1: ldloc.s 10 (UnityEngine.Vector2)
IL_07E3: stobj UnityEngine.Vector2
IL_07E8: ldarg.s 8
IL_07EA: ldfld UnityEngine.Vector2[] MeshData::m_uvs3
IL_07EF: ldarg.s 5
IL_07F1: ldind.i4
IL_07F2: ldelema UnityEngine.Vector2
IL_07F7: ldloc.s 11 (UnityEngine.Vector2)
IL_07F9: stobj UnityEngine.Vector2
IL_07FE: ldloc.0
IL_07FF: brfalse => Label18
IL_0804: ldarg.s 8
IL_0806: ldfld UnityEngine.Vector2[] MeshData::m_uvs4
IL_080B: ldarg.s 5
IL_080D: ldind.i4
IL_080E: ldelema UnityEngine.Vector2
IL_0813: ldloc.s 12 (UnityEngine.Vector2)
IL_0815: stobj UnityEngine.Vector2
IL_081A: Label18
IL_081A: ldarg.s 8
IL_081C: ldfld UnityEngine.Color32[] MeshData::m_colors
IL_0821: ldarg.s 5
IL_0823: ldind.i4
IL_0824: ldelema UnityEngine.Color32
IL_0829: ldloc.s 15 (UnityEngine.Color)
IL_082B: call static UnityEngine.Color32
UnityEngine.Color32::op_Implicit(UnityEngine.Color c)
IL_0830: stobj UnityEngine.Color32
IL_0835: ldarg.s 5
IL_0837: ldarg.s 5
IL_0839: ldind.i4
IL_083A: ldc.i4.1
IL_083B: add
IL_083C: stind.i4
IL_083D: ldarg.s 8
IL_083F: ldfld System.Int32[] MeshData::m_triangles
IL_0844: ldarg.s 6
IL_0846: ldarg.s 6
IL_0848: ldind.i4
IL_0849: dup
IL_084A: stloc.s 19 (System.Int32)
IL_084C: ldc.i4.1
IL_084D: add
IL_084E: stind.i4
IL_084F: ldloc.s 19 (System.Int32)
IL_0851: ldarg.s 5
IL_0853: ldind.i4
IL_0854: ldc.i4.6
IL_0855: sub
IL_0856: stelem.i4
IL_0857: ldarg.s 8
IL_0859: ldfld System.Int32[] MeshData::m_triangles
IL_085E: ldarg.s 6
IL_0860: ldarg.s 6
IL_0862: ldind.i4
IL_0863: dup
IL_0864: stloc.s 19 (System.Int32)
IL_0866: ldc.i4.1
IL_0867: add
IL_0868: stind.i4
IL_0869: ldloc.s 19 (System.Int32)
IL_086B: ldarg.s 5
IL_086D: ldind.i4
IL_086E: ldc.i4.5
IL_086F: sub
IL_0870: stelem.i4
IL_0871: ldarg.s 8
IL_0873: ldfld System.Int32[] MeshData::m_triangles
IL_0878: ldarg.s 6
IL_087A: ldarg.s 6
IL_087C: ldind.i4
IL_087D: dup
IL_087E: stloc.s 19 (System.Int32)
IL_0880: ldc.i4.1
IL_0881: add
IL_0882: stind.i4
IL_0883: ldloc.s 19 (System.Int32)
IL_0885: ldarg.s 5
IL_0887: ldind.i4
IL_0888: ldc.i4.1
IL_0889: sub
IL_088A: stelem.i4
IL_088B: ldarg.s 8
IL_088D: ldfld System.Int32[] MeshData::m_triangles
IL_0892: ldarg.s 6
IL_0894: ldarg.s 6
IL_0896: ldind.i4
IL_0897: dup
IL_0898: stloc.s 19 (System.Int32)
IL_089A: ldc.i4.1
IL_089B: add
IL_089C: stind.i4
IL_089D: ldloc.s 19 (System.Int32)
IL_089F: ldarg.s 5
IL_08A1: ldind.i4
IL_08A2: ldc.i4.1
IL_08A3: sub
IL_08A4: stelem.i4
IL_08A5: ldarg.s 8
IL_08A7: ldfld System.Int32[] MeshData::m_triangles
IL_08AC: ldarg.s 6
IL_08AE: ldarg.s 6
IL_08B0: ldind.i4
IL_08B1: dup
IL_08B2: stloc.s 19 (System.Int32)
IL_08B4: ldc.i4.1
IL_08B5: add
IL_08B6: stind.i4
IL_08B7: ldloc.s 19 (System.Int32)
IL_08B9: ldarg.s 5
IL_08BB: ldind.i4
IL_08BC: ldc.i4.5
IL_08BD: sub
IL_08BE: stelem.i4
IL_08BF: ldarg.s 8
IL_08C1: ldfld System.Int32[] MeshData::m_triangles
IL_08C6: ldarg.s 6
IL_08C8: ldarg.s 6
IL_08CA: ldind.i4
IL_08CB: dup
IL_08CC: stloc.s 19 (System.Int32)
IL_08CE: ldc.i4.1
IL_08CF: add
IL_08D0: stind.i4
IL_08D1: ldloc.s 19 (System.Int32)
IL_08D3: ldarg.s 5
IL_08D5: ldind.i4
IL_08D6: ldc.i4.4
IL_08D7: sub
IL_08D8: stelem.i4
IL_08D9: ldarg.s 8
IL_08DB: ldfld System.Int32[] MeshData::m_triangles
IL_08E0: ldarg.s 6
IL_08E2: ldarg.s 6
IL_08E4: ldind.i4
IL_08E5: dup
IL_08E6: stloc.s 19 (System.Int32)
IL_08E8: ldc.i4.1
IL_08E9: add
IL_08EA: stind.i4
IL_08EB: ldloc.s 19 (System.Int32)
IL_08ED: ldarg.s 5
IL_08EF: ldind.i4
IL_08F0: ldc.i4.1
IL_08F1: sub
IL_08F2: stelem.i4
IL_08F3: ldarg.s 8
IL_08F5: ldfld System.Int32[] MeshData::m_triangles
IL_08FA: ldarg.s 6
IL_08FC: ldarg.s 6
IL_08FE: ldind.i4
IL_08FF: dup
IL_0900: stloc.s 19 (System.Int32)
IL_0902: ldc.i4.1
IL_0903: add
IL_0904: stind.i4
IL_0905: ldloc.s 19 (System.Int32)
IL_0907: ldarg.s 5
IL_0909: ldind.i4
IL_090A: ldc.i4.4
IL_090B: sub
IL_090C: stelem.i4
IL_090D: ldarg.s 8
IL_090F: ldfld System.Int32[] MeshData::m_triangles
IL_0914: ldarg.s 6
IL_0916: ldarg.s 6
IL_0918: ldind.i4
IL_0919: dup
IL_091A: stloc.s 19 (System.Int32)
IL_091C: ldc.i4.1
IL_091D: add
IL_091E: stind.i4
IL_091F: ldloc.s 19 (System.Int32)
IL_0921: ldarg.s 5
IL_0923: ldind.i4
IL_0924: ldc.i4.2
IL_0925: sub
IL_0926: stelem.i4
IL_0927: ldarg.s 8
IL_0929: ldfld System.Int32[] MeshData::m_triangles
IL_092E: ldarg.s 6
IL_0930: ldarg.s 6
IL_0932: ldind.i4
IL_0933: dup
IL_0934: stloc.s 19 (System.Int32)
IL_0936: ldc.i4.1
IL_0937: add
IL_0938: stind.i4
IL_0939: ldloc.s 19 (System.Int32)
IL_093B: ldarg.s 5
IL_093D: ldind.i4
IL_093E: ldc.i4.2
IL_093F: sub
IL_0940: stelem.i4
IL_0941: ldarg.s 8
IL_0943: ldfld System.Int32[] MeshData::m_triangles
IL_0948: ldarg.s 6
IL_094A: ldarg.s 6
IL_094C: ldind.i4
IL_094D: dup
IL_094E: stloc.s 19 (System.Int32)
IL_0950: ldc.i4.1
IL_0951: add
IL_0952: stind.i4
IL_0953: ldloc.s 19 (System.Int32)
IL_0955: ldarg.s 5
IL_0957: ldind.i4
IL_0958: ldc.i4.4
IL_0959: sub
IL_095A: stelem.i4
IL_095B: ldarg.s 8
IL_095D: ldfld System.Int32[] MeshData::m_triangles
IL_0962: ldarg.s 6
IL_0964: ldarg.s 6
IL_0966: ldind.i4
IL_0967: dup
IL_0968: stloc.s 19 (System.Int32)
IL_096A: ldc.i4.1
IL_096B: add
IL_096C: stind.i4
IL_096D: ldloc.s 19 (System.Int32)
IL_096F: ldarg.s 5
IL_0971: ldind.i4
IL_0972: ldc.i4.3
IL_0973: sub
IL_0974: stelem.i4
IL_0975: // end original
IL_0975: Label1
IL_0975: ret
DONE

### Patch: virtual System.Void ElectricityManager::SimulationStepImpl(System.Int32


subStep)
### Replacement: static System.Void
ElectricityManager::ElectricityManager.SimulationStepImpl_Patch0(ElectricityManager
this, System.Int32 subStep)
IL_0000: Local var 0: System.UInt32
IL_0000: Local var 1: System.Int32
IL_0000: Local var 2: NetManager
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: NetInfo
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: ElectricityManager/Cell
IL_0000: Local var 13: ElectricityManager/PulseGroup
IL_0000: Local var 14: ElectricityManager/PulseUnit
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: ElectricityManager/PulseUnit
IL_0000: Local var 19: System.UInt32
IL_0000: Local var 20: System.Int32
IL_0000: Local var 21: ElectricityManager/Cell
IL_0000: Local var 22: System.Int32
IL_0000: Local var 23: System.Int32
IL_0000: Local var 24: NetNode
IL_0000: Local var 25: System.Int32
IL_0000: Local var 26: System.UInt16
IL_0000: Local var 27: System.UInt16
IL_0000: Local var 28: System.UInt16
IL_0000: Local var 29: System.UInt16
IL_0000: Local var 30: System.Int32
IL_0000: Local var 31: ElectricityManager/PulseGroup
IL_0000: Local var 32: ElectricityManager/PulseGroup
IL_0000: Local var 33: System.Int32
IL_0000: Local var 34: ElectricityManager/PulseGroup
IL_0000: Local var 35: System.Int32
IL_0000: Local var 36: ElectricityManager/Cell
IL_0000: // start original
IL_0000: ldarg.1
IL_0001: brfalse => Label0
IL_0006: ldarg.1
IL_0007: ldc.i4 1000
IL_000C: beq => Label1
IL_0011: call static SimulationManager
ColossalFramework.Singleton`1<SimulationManager>::get_instance()
IL_0016: ldfld System.UInt32 SimulationManager::m_currentFrameIndex
IL_001B: stloc.0
IL_001C: ldloc.0
IL_001D: ldc.i4 255
IL_0022: and
IL_0023: stloc.1
IL_0024: ldloc.1
IL_0025: ldc.i4 128
IL_002A: bge => Label2
IL_002F: ldloc.1
IL_0030: brtrue => Label3
IL_0035: ldarg.0
IL_0036: ldc.i4.0
IL_0037: stfld System.Int32 ElectricityManager::m_pulseGroupCount
IL_003C: ldarg.0
IL_003D: ldc.i4.0
IL_003E: stfld System.Int32 ElectricityManager::m_pulseUnitStart
IL_0043: ldarg.0
IL_0044: ldc.i4.0
IL_0045: stfld System.Int32 ElectricityManager::m_pulseUnitEnd
IL_004A: ldarg.0
IL_004B: ldc.i4.0
IL_004C: stfld System.Int32 ElectricityManager::m_processedCells
IL_0051: ldarg.0
IL_0052: ldc.i4.0
IL_0053: stfld System.Int32 ElectricityManager::m_conductiveCells
IL_0058: ldarg.0
IL_0059: ldc.i4.1
IL_005A: stfld System.Boolean ElectricityManager::m_canContinue
IL_005F: Label3
IL_005F: call static NetManager
ColossalFramework.Singleton`1<NetManager>::get_instance()
IL_0064: stloc.2
IL_0065: ldloc.1
IL_0066: ldc.i4 32768
IL_006B: mul
IL_006C: ldc.i4.7
IL_006D: shr
IL_006E: stloc.3
IL_006F: ldloc.1
IL_0070: ldc.i4.1
IL_0071: add
IL_0072: ldc.i4 32768
IL_0077: mul
IL_0078: ldc.i4.7
IL_0079: shr
IL_007A: ldc.i4.1
IL_007B: sub
IL_007C: stloc.s 4 (System.Int32)
IL_007E: ldloc.3
IL_007F: stloc.s 5 (System.Int32)
IL_0081: br => Label4
IL_0086: Label10
IL_0086: ldloc.2
IL_0087: ldfld Array16`1<NetNode> NetManager::m_nodes
IL_008C: ldfld NetNode[] Array16`1<NetNode>::m_buffer
IL_0091: ldloc.s 5 (System.Int32)
IL_0093: ldelema NetNode
IL_0098: ldfld Flags NetNode::m_flags
IL_009D: brfalse => Label5
IL_00A2: ldloc.2
IL_00A3: ldfld Array16`1<NetNode> NetManager::m_nodes
IL_00A8: ldfld NetNode[] Array16`1<NetNode>::m_buffer
IL_00AD: ldloc.s 5 (System.Int32)
IL_00AF: ldelema NetNode
IL_00B4: call NetInfo NetNode::get_Info()
IL_00B9: stloc.s 6 (NetInfo)
IL_00BB: ldloc.s 6 (NetInfo)
IL_00BD: ldfld ItemClass NetInfo::m_class
IL_00C2: ldfld Service ItemClass::m_service
IL_00C7: ldc.i4.s 10
IL_00C9: beq => Label6
IL_00CE: ldloc.s 6 (NetInfo)
IL_00D0: ldfld NetAI NetInfo::m_netAI
IL_00D5: isinst ConcourseAI
IL_00DA: brfalse => Label7
IL_00DF: Label6
IL_00DF: ldarg.0
IL_00E0: ldloc.s 5 (System.Int32)
IL_00E2: ldarg.0
IL_00E3: ldfld System.UInt16[] ElectricityManager::m_nodeGroups
IL_00E8: ldloc.s 5 (System.Int32)
IL_00EA: ldelem.u2
IL_00EB: ldc.i4 65535
IL_00F0: beq => Label8
IL_00F5: ldc.i4.1
IL_00F6: br => Label9
IL_00FB: Label8
IL_00FB: ldc.i4.0
IL_00FC: Label9
IL_00FC: call System.Void
ElectricityManager::UpdateNodeElectricity(System.Int32 nodeID, System.Int32 value)
IL_0101: ldarg.0
IL_0102: dup
IL_0103: ldfld System.Int32 ElectricityManager::m_conductiveCells
IL_0108: ldc.i4.1
IL_0109: add
IL_010A: stfld System.Int32 ElectricityManager::m_conductiveCells
IL_010F: Label5
IL_010F: Label7
IL_010F: ldarg.0
IL_0110: ldfld System.UInt16[] ElectricityManager::m_nodeGroups
IL_0115: ldloc.s 5 (System.Int32)
IL_0117: ldc.i4 65535
IL_011C: stelem.i2
IL_011D: ldloc.s 5 (System.Int32)
IL_011F: ldc.i4.1
IL_0120: add
IL_0121: stloc.s 5 (System.Int32)
IL_0123: Label4
IL_0123: ldloc.s 5 (System.Int32)
IL_0125: ldloc.s 4 (System.Int32)
IL_0127: ble => Label10
IL_012C: ldloc.1
IL_012D: ldc.i4 256
IL_0132: mul
IL_0133: ldc.i4.7
IL_0134: shr
IL_0135: stloc.s 7 (System.Int32)
IL_0137: ldloc.1
IL_0138: ldc.i4.1
IL_0139: add
IL_013A: ldc.i4 256
IL_013F: mul
IL_0140: ldc.i4.7
IL_0141: shr
IL_0142: ldc.i4.1
IL_0143: sub
IL_0144: stloc.s 8 (System.Int32)
IL_0146: ldloc.s 7 (System.Int32)
IL_0148: stloc.s 9 (System.Int32)
IL_014A: br => Label11
IL_014F: Label21
IL_014F: ldloc.s 9 (System.Int32)
IL_0151: ldc.i4 256
IL_0156: mul
IL_0157: stloc.s 10 (System.Int32)
IL_0159: ldc.i4.0
IL_015A: stloc.s 11 (System.Int32)
IL_015C: br => Label12
IL_0161: Label20
IL_0161: ldarg.0
IL_0162: ldfld Cell[] ElectricityManager::m_electricityGrid
IL_0167: ldloc.s 10 (System.Int32)
IL_0169: ldelema ElectricityManager+Cell
IL_016E: ldobj ElectricityManager+Cell
IL_0173: stloc.s 12 (ElectricityManager+Cell)
IL_0175: ldloca.s 12 (ElectricityManager+Cell)
IL_0177: ldfld System.Int16 Cell::m_currentCharge
IL_017C: ldc.i4.0
IL_017D: ble => Label13
IL_0182: ldarg.0
IL_0183: ldfld System.Int32 ElectricityManager::m_pulseGroupCount
IL_0188: ldc.i4 1024
IL_018D: bge => Label14
IL_0192: ldloca.s 13 (ElectricityManager+PulseGroup)
IL_0194: ldloca.s 12 (ElectricityManager+Cell)
IL_0196: ldfld System.Int16 Cell::m_currentCharge
IL_019B: conv.u4
IL_019C: stfld System.UInt32 PulseGroup::m_origCharge
IL_01A1: ldloca.s 13 (ElectricityManager+PulseGroup)
IL_01A3: ldloca.s 12 (ElectricityManager+Cell)
IL_01A5: ldfld System.Int16 Cell::m_currentCharge
IL_01AA: conv.u4
IL_01AB: stfld System.UInt32 PulseGroup::m_curCharge
IL_01B0: ldloca.s 13 (ElectricityManager+PulseGroup)
IL_01B2: ldc.i4.0
IL_01B3: stfld System.UInt16 PulseGroup::m_mergeCount
IL_01B8: ldloca.s 13 (ElectricityManager+PulseGroup)
IL_01BA: ldc.i4 65535
IL_01BF: stfld System.UInt16 PulseGroup::m_mergeIndex
IL_01C4: ldloca.s 13 (ElectricityManager+PulseGroup)
IL_01C6: ldloc.s 11 (System.Int32)
IL_01C8: conv.u1
IL_01C9: stfld System.Byte PulseGroup::m_x
IL_01CE: ldloca.s 13 (ElectricityManager+PulseGroup)
IL_01D0: ldloc.s 9 (System.Int32)
IL_01D2: conv.u1
IL_01D3: stfld System.Byte PulseGroup::m_z
IL_01D8: ldloca.s 14 (ElectricityManager+PulseUnit)
IL_01DA: ldarg.0
IL_01DB: ldfld System.Int32 ElectricityManager::m_pulseGroupCount
IL_01E0: conv.u2
IL_01E1: stfld System.UInt16 PulseUnit::m_group
IL_01E6: ldloca.s 14 (ElectricityManager+PulseUnit)
IL_01E8: ldc.i4.0
IL_01E9: stfld System.UInt16 PulseUnit::m_node
IL_01EE: ldloca.s 14 (ElectricityManager+PulseUnit)
IL_01F0: ldloc.s 11 (System.Int32)
IL_01F2: conv.u1
IL_01F3: stfld System.Byte PulseUnit::m_x
IL_01F8: ldloca.s 14 (ElectricityManager+PulseUnit)
IL_01FA: ldloc.s 9 (System.Int32)
IL_01FC: conv.u1
IL_01FD: stfld System.Byte PulseUnit::m_z
IL_0202: ldloca.s 12 (ElectricityManager+Cell)
IL_0204: ldarg.0
IL_0205: ldfld System.Int32 ElectricityManager::m_pulseGroupCount
IL_020A: conv.u2
IL_020B: stfld System.UInt16 Cell::m_pulseGroup
IL_0210: ldarg.0
IL_0211: ldfld PulseGroup[] ElectricityManager::m_pulseGroups
IL_0216: ldarg.0
IL_0217: dup
IL_0218: ldfld System.Int32 ElectricityManager::m_pulseGroupCount
IL_021D: dup
IL_021E: stloc.s 15 (System.Int32)
IL_0220: ldc.i4.1
IL_0221: add
IL_0222: stfld System.Int32 ElectricityManager::m_pulseGroupCount
IL_0227: ldloc.s 15 (System.Int32)
IL_0229: ldelema ElectricityManager+PulseGroup
IL_022E: ldloc.s 13 (ElectricityManager+PulseGroup)
IL_0230: stobj ElectricityManager+PulseGroup
IL_0235: ldarg.0
IL_0236: ldfld PulseUnit[] ElectricityManager::m_pulseUnits
IL_023B: ldarg.0
IL_023C: ldfld System.Int32 ElectricityManager::m_pulseUnitEnd
IL_0241: ldelema ElectricityManager+PulseUnit
IL_0246: ldloc.s 14 (ElectricityManager+PulseUnit)
IL_0248: stobj ElectricityManager+PulseUnit
IL_024D: ldarg.0
IL_024E: dup
IL_024F: ldfld System.Int32 ElectricityManager::m_pulseUnitEnd
IL_0254: ldc.i4.1
IL_0255: add
IL_0256: dup
IL_0257: stloc.s 15 (System.Int32)
IL_0259: stfld System.Int32 ElectricityManager::m_pulseUnitEnd
IL_025E: ldloc.s 15 (System.Int32)
IL_0260: ldarg.0
IL_0261: ldfld PulseUnit[] ElectricityManager::m_pulseUnits
IL_0266: ldlen
IL_0267: conv.i4
IL_0268: bne.un => Label15
IL_026D: ldarg.0
IL_026E: ldc.i4.0
IL_026F: stfld System.Int32 ElectricityManager::m_pulseUnitEnd
IL_0274: Label15
IL_0274: br => Label16
IL_0279: Label14
IL_0279: ldloca.s 12 (ElectricityManager+Cell)
IL_027B: ldc.i4 65535
IL_0280: stfld System.UInt16 Cell::m_pulseGroup
IL_0285: Label16
IL_0285: ldloca.s 12 (ElectricityManager+Cell)
IL_0287: ldc.i4.0
IL_0288: stfld System.Int16 Cell::m_currentCharge
IL_028D: ldarg.0
IL_028E: dup
IL_028F: ldfld System.Int32 ElectricityManager::m_conductiveCells
IL_0294: ldc.i4.1
IL_0295: add
IL_0296: stfld System.Int32 ElectricityManager::m_conductiveCells
IL_029B: br => Label17
IL_02A0: Label13
IL_02A0: ldloca.s 12 (ElectricityManager+Cell)
IL_02A2: ldc.i4 65535
IL_02A7: stfld System.UInt16 Cell::m_pulseGroup
IL_02AC: ldloca.s 12 (ElectricityManager+Cell)
IL_02AE: ldfld System.Byte Cell::m_conductivity
IL_02B3: ldc.i4.s 64
IL_02B5: blt => Label18
IL_02BA: ldarg.0
IL_02BB: dup
IL_02BC: ldfld System.Int32 ElectricityManager::m_conductiveCells
IL_02C1: ldc.i4.1
IL_02C2: add
IL_02C3: stfld System.Int32 ElectricityManager::m_conductiveCells
IL_02C8: Label17
IL_02C8: Label18
IL_02C8: ldloca.s 12 (ElectricityManager+Cell)
IL_02CA: ldfld System.Boolean Cell::m_tmpElectrified
IL_02CF: ldloca.s 12 (ElectricityManager+Cell)
IL_02D1: ldfld System.Boolean Cell::m_electrified
IL_02D6: beq => Label19
IL_02DB: ldloca.s 12 (ElectricityManager+Cell)
IL_02DD: ldloca.s 12 (ElectricityManager+Cell)
IL_02DF: ldfld System.Boolean Cell::m_tmpElectrified
IL_02E4: stfld System.Boolean Cell::m_electrified
IL_02E9: Label19
IL_02E9: ldloca.s 12 (ElectricityManager+Cell)
IL_02EB: ldloca.s 12 (ElectricityManager+Cell)
IL_02ED: ldfld System.UInt16 Cell::m_pulseGroup
IL_02F2: ldc.i4 65535
IL_02F7: ceq
IL_02F9: ldc.i4.0
IL_02FA: ceq
IL_02FC: stfld System.Boolean Cell::m_tmpElectrified
IL_0301: ldarg.0
IL_0302: ldfld Cell[] ElectricityManager::m_electricityGrid
IL_0307: ldloc.s 10 (System.Int32)
IL_0309: ldelema ElectricityManager+Cell
IL_030E: ldloc.s 12 (ElectricityManager+Cell)
IL_0310: stobj ElectricityManager+Cell
IL_0315: ldloc.s 10 (System.Int32)
IL_0317: ldc.i4.1
IL_0318: add
IL_0319: stloc.s 10 (System.Int32)
IL_031B: ldloc.s 11 (System.Int32)
IL_031D: ldc.i4.1
IL_031E: add
IL_031F: stloc.s 11 (System.Int32)
IL_0321: Label12
IL_0321: ldloc.s 11 (System.Int32)
IL_0323: ldc.i4 256
IL_0328: blt => Label20
IL_032D: ldloc.s 9 (System.Int32)
IL_032F: ldc.i4.1
IL_0330: add
IL_0331: stloc.s 9 (System.Int32)
IL_0333: Label11
IL_0333: ldloc.s 9 (System.Int32)
IL_0335: ldloc.s 8 (System.Int32)
IL_0337: ble => Label21
IL_033C: br => Label22
IL_0341: Label2
IL_0341: ldloc.1
IL_0342: ldc.i4.s 127
IL_0344: sub
IL_0345: ldarg.0
IL_0346: ldfld System.Int32 ElectricityManager::m_conductiveCells
IL_034B: mul
IL_034C: ldc.i4.7
IL_034D: shr
IL_034E: stloc.s 16 (System.Int32)
IL_0350: ldloc.1
IL_0351: ldc.i4 255
IL_0356: bne.un => Label23
IL_035B: ldc.i4 1000000000
IL_0360: stloc.s 16 (System.Int32)
IL_0362: Label23
IL_0362: br => Label24
IL_0367: Label54
IL_0367: ldarg.0
IL_0368: ldc.i4.0
IL_0369: stfld System.Boolean ElectricityManager::m_canContinue
IL_036E: ldarg.0
IL_036F: ldfld System.Int32 ElectricityManager::m_pulseUnitEnd
IL_0374: stloc.s 17 (System.Int32)
IL_0376: br => Label25
IL_037B: Label52
IL_037B: ldarg.0
IL_037C: ldfld PulseUnit[] ElectricityManager::m_pulseUnits
IL_0381: ldarg.0
IL_0382: ldfld System.Int32 ElectricityManager::m_pulseUnitStart
IL_0387: ldelema ElectricityManager+PulseUnit
IL_038C: ldobj ElectricityManager+PulseUnit
IL_0391: stloc.s 18 (ElectricityManager+PulseUnit)
IL_0393: ldarg.0
IL_0394: dup
IL_0395: ldfld System.Int32 ElectricityManager::m_pulseUnitStart
IL_039A: ldc.i4.1
IL_039B: add
IL_039C: dup
IL_039D: stloc.s 15 (System.Int32)
IL_039F: stfld System.Int32 ElectricityManager::m_pulseUnitStart
IL_03A4: ldloc.s 15 (System.Int32)
IL_03A6: ldarg.0
IL_03A7: ldfld PulseUnit[] ElectricityManager::m_pulseUnits
IL_03AC: ldlen
IL_03AD: conv.i4
IL_03AE: bne.un => Label26
IL_03B3: ldarg.0
IL_03B4: ldc.i4.0
IL_03B5: stfld System.Int32 ElectricityManager::m_pulseUnitStart
IL_03BA: Label26
IL_03BA: ldloca.s 18 (ElectricityManager+PulseUnit)
IL_03BC: ldarg.0
IL_03BD: ldloca.s 18 (ElectricityManager+PulseUnit)
IL_03BF: ldfld System.UInt16 PulseUnit::m_group
IL_03C4: call System.UInt16 ElectricityManager::GetRootGroup(System.UInt16
group)
IL_03C9: stfld System.UInt16 PulseUnit::m_group
IL_03CE: ldarg.0
IL_03CF: ldfld PulseGroup[] ElectricityManager::m_pulseGroups
IL_03D4: ldloca.s 18 (ElectricityManager+PulseUnit)
IL_03D6: ldfld System.UInt16 PulseUnit::m_group
IL_03DB: ldelema ElectricityManager+PulseGroup
IL_03E0: ldfld System.UInt32 PulseGroup::m_curCharge
IL_03E5: stloc.s 19 (System.UInt32)
IL_03E7: ldloca.s 18 (ElectricityManager+PulseUnit)
IL_03E9: ldfld System.UInt16 PulseUnit::m_node
IL_03EE: brtrue => Label27
IL_03F3: ldloca.s 18 (ElectricityManager+PulseUnit)
IL_03F5: ldfld System.Byte PulseUnit::m_z
IL_03FA: ldc.i4 256
IL_03FF: mul
IL_0400: ldloca.s 18 (ElectricityManager+PulseUnit)
IL_0402: ldfld System.Byte PulseUnit::m_x
IL_0407: add
IL_0408: stloc.s 20 (System.Int32)
IL_040A: ldarg.0
IL_040B: ldfld Cell[] ElectricityManager::m_electricityGrid
IL_0410: ldloc.s 20 (System.Int32)
IL_0412: ldelema ElectricityManager+Cell
IL_0417: ldobj ElectricityManager+Cell
IL_041C: stloc.s 21 (ElectricityManager+Cell)
IL_041E: ldloca.s 21 (ElectricityManager+Cell)
IL_0420: ldfld System.Byte Cell::m_conductivity
IL_0425: brfalse => Label28
IL_042A: ldloca.s 21 (ElectricityManager+Cell)
IL_042C: ldfld System.Boolean Cell::m_tmpElectrified
IL_0431: brtrue => Label29
IL_0436: ldloc.s 19 (System.UInt32)
IL_0438: brfalse => Label30
IL_043D: ldloca.s 21 (ElectricityManager+Cell)
IL_043F: ldfld System.Int16 Cell::m_currentCharge
IL_0444: neg
IL_0445: ldc.i4.0
IL_0446: ldloc.s 19 (System.UInt32)
IL_0448: call static System.Int32 UnityEngine.Mathf::Clamp(System.Int32
value, System.Int32 min, System.Int32 max)
IL_044D: stloc.s 22 (System.Int32)
IL_044F: ldloc.s 19 (System.UInt32)
IL_0451: ldloc.s 22 (System.Int32)
IL_0453: sub
IL_0454: stloc.s 19 (System.UInt32)
IL_0456: ldloca.s 21 (ElectricityManager+Cell)
IL_0458: dup
IL_0459: ldfld System.Int16 Cell::m_currentCharge
IL_045E: ldloc.s 22 (System.Int32)
IL_0460: conv.i2
IL_0461: add
IL_0462: conv.i2
IL_0463: stfld System.Int16 Cell::m_currentCharge
IL_0468: ldloca.s 21 (ElectricityManager+Cell)
IL_046A: ldfld System.Int16 Cell::m_currentCharge
IL_046F: brtrue => Label31
IL_0474: ldloca.s 21 (ElectricityManager+Cell)
IL_0476: ldc.i4.1
IL_0477: stfld System.Boolean Cell::m_tmpElectrified
IL_047C: Label31
IL_047C: ldarg.0
IL_047D: ldfld Cell[] ElectricityManager::m_electricityGrid
IL_0482: ldloc.s 20 (System.Int32)
IL_0484: ldelema ElectricityManager+Cell
IL_0489: ldloc.s 21 (ElectricityManager+Cell)
IL_048B: stobj ElectricityManager+Cell
IL_0490: ldarg.0
IL_0491: ldfld PulseGroup[] ElectricityManager::m_pulseGroups
IL_0496: ldloca.s 18 (ElectricityManager+PulseUnit)
IL_0498: ldfld System.UInt16 PulseUnit::m_group
IL_049D: ldelema ElectricityManager+PulseGroup
IL_04A2: ldloc.s 19 (System.UInt32)
IL_04A4: stfld System.UInt32 PulseGroup::m_curCharge
IL_04A9: Label28
IL_04A9: Label29
IL_04A9: Label30
IL_04A9: ldloc.s 19 (System.UInt32)
IL_04AB: brfalse => Label32
IL_04B0: ldloca.s 21 (ElectricityManager+Cell)
IL_04B2: ldfld System.Byte Cell::m_conductivity
IL_04B7: ldc.i4.s 64
IL_04B9: blt => Label33
IL_04BE: ldc.i4.1
IL_04BF: br => Label34
IL_04C4: Label33
IL_04C4: ldc.i4.s 64
IL_04C6: Label34
IL_04C6: stloc.s 23 (System.Int32)
IL_04C8: ldarg.0
IL_04C9: dup
IL_04CA: ldfld System.Int32 ElectricityManager::m_processedCells
IL_04CF: ldc.i4.1
IL_04D0: add
IL_04D1: stfld System.Int32 ElectricityManager::m_processedCells
IL_04D6: ldloca.s 18 (ElectricityManager+PulseUnit)
IL_04D8: ldfld System.Byte PulseUnit::m_z
IL_04DD: ldc.i4.0
IL_04DE: ble => Label35
IL_04E3: ldarg.0
IL_04E4: ldarg.0
IL_04E5: ldfld Cell[] ElectricityManager::m_electricityGrid
IL_04EA: ldloc.s 20 (System.Int32)
IL_04EC: ldc.i4 256
IL_04F1: sub
IL_04F2: ldelema ElectricityManager+Cell
IL_04F7: ldloca.s 18 (ElectricityManager+PulseUnit)
IL_04F9: ldfld System.UInt16 PulseUnit::m_group
IL_04FE: ldloca.s 18 (ElectricityManager+PulseUnit)
IL_0500: ldfld System.Byte PulseUnit::m_x
IL_0505: ldloca.s 18 (ElectricityManager+PulseUnit)
IL_0507: ldfld System.Byte PulseUnit::m_z
IL_050C: ldc.i4.1
IL_050D: sub
IL_050E: ldloc.s 23 (System.Int32)
IL_0510: call System.Void ElectricityManager::ConductToCell(Cell& cell,
System.UInt16 group, System.Int32 x, System.Int32 z, System.Int32 limit)
IL_0515: Label35
IL_0515: ldloca.s 18 (ElectricityManager+PulseUnit)
IL_0517: ldfld System.Byte PulseUnit::m_x
IL_051C: ldc.i4.0
IL_051D: ble => Label36
IL_0522: ldarg.0
IL_0523: ldarg.0
IL_0524: ldfld Cell[] ElectricityManager::m_electricityGrid
IL_0529: ldloc.s 20 (System.Int32)
IL_052B: ldc.i4.1
IL_052C: sub
IL_052D: ldelema ElectricityManager+Cell
IL_0532: ldloca.s 18 (ElectricityManager+PulseUnit)
IL_0534: ldfld System.UInt16 PulseUnit::m_group
IL_0539: ldloca.s 18 (ElectricityManager+PulseUnit)
IL_053B: ldfld System.Byte PulseUnit::m_x
IL_0540: ldc.i4.1
IL_0541: sub
IL_0542: ldloca.s 18 (ElectricityManager+PulseUnit)
IL_0544: ldfld System.Byte PulseUnit::m_z
IL_0549: ldloc.s 23 (System.Int32)
IL_054B: call System.Void ElectricityManager::ConductToCell(Cell& cell,
System.UInt16 group, System.Int32 x, System.Int32 z, System.Int32 limit)
IL_0550: Label36
IL_0550: ldloca.s 18 (ElectricityManager+PulseUnit)
IL_0552: ldfld System.Byte PulseUnit::m_z
IL_0557: ldc.i4 255
IL_055C: bge => Label37
IL_0561: ldarg.0
IL_0562: ldarg.0
IL_0563: ldfld Cell[] ElectricityManager::m_electricityGrid
IL_0568: ldloc.s 20 (System.Int32)
IL_056A: ldc.i4 256
IL_056F: add
IL_0570: ldelema ElectricityManager+Cell
IL_0575: ldloca.s 18 (ElectricityManager+PulseUnit)
IL_0577: ldfld System.UInt16 PulseUnit::m_group
IL_057C: ldloca.s 18 (ElectricityManager+PulseUnit)
IL_057E: ldfld System.Byte PulseUnit::m_x
IL_0583: ldloca.s 18 (ElectricityManager+PulseUnit)
IL_0585: ldfld System.Byte PulseUnit::m_z
IL_058A: ldc.i4.1
IL_058B: add
IL_058C: ldloc.s 23 (System.Int32)
IL_058E: call System.Void ElectricityManager::ConductToCell(Cell& cell,
System.UInt16 group, System.Int32 x, System.Int32 z, System.Int32 limit)
IL_0593: Label37
IL_0593: ldloca.s 18 (ElectricityManager+PulseUnit)
IL_0595: ldfld System.Byte PulseUnit::m_x
IL_059A: ldc.i4 255
IL_059F: bge => Label38
IL_05A4: ldarg.0
IL_05A5: ldarg.0
IL_05A6: ldfld Cell[] ElectricityManager::m_electricityGrid
IL_05AB: ldloc.s 20 (System.Int32)
IL_05AD: ldc.i4.1
IL_05AE: add
IL_05AF: ldelema ElectricityManager+Cell
IL_05B4: ldloca.s 18 (ElectricityManager+PulseUnit)
IL_05B6: ldfld System.UInt16 PulseUnit::m_group
IL_05BB: ldloca.s 18 (ElectricityManager+PulseUnit)
IL_05BD: ldfld System.Byte PulseUnit::m_x
IL_05C2: ldc.i4.1
IL_05C3: add
IL_05C4: ldloca.s 18 (ElectricityManager+PulseUnit)
IL_05C6: ldfld System.Byte PulseUnit::m_z
IL_05CB: ldloc.s 23 (System.Int32)
IL_05CD: call System.Void ElectricityManager::ConductToCell(Cell& cell,
System.UInt16 group, System.Int32 x, System.Int32 z, System.Int32 limit)
IL_05D2: Label38
IL_05D2: ldarg.0
IL_05D3: ldloca.s 18 (ElectricityManager+PulseUnit)
IL_05D5: ldfld System.UInt16 PulseUnit::m_group
IL_05DA: ldloca.s 18 (ElectricityManager+PulseUnit)
IL_05DC: ldfld System.Byte PulseUnit::m_x
IL_05E1: ldloca.s 18 (ElectricityManager+PulseUnit)
IL_05E3: ldfld System.Byte PulseUnit::m_z
IL_05E8: call System.Void ElectricityManager::ConductToNodes(System.UInt16
group, System.Int32 cellX, System.Int32 cellZ)
IL_05ED: br => Label39
IL_05F2: Label32
IL_05F2: ldarg.0
IL_05F3: ldfld PulseUnit[] ElectricityManager::m_pulseUnits
IL_05F8: ldarg.0
IL_05F9: ldfld System.Int32 ElectricityManager::m_pulseUnitEnd
IL_05FE: ldelema ElectricityManager+PulseUnit
IL_0603: ldloc.s 18 (ElectricityManager+PulseUnit)
IL_0605: stobj ElectricityManager+PulseUnit
IL_060A: ldarg.0
IL_060B: dup
IL_060C: ldfld System.Int32 ElectricityManager::m_pulseUnitEnd
IL_0611: ldc.i4.1
IL_0612: add
IL_0613: dup
IL_0614: stloc.s 15 (System.Int32)
IL_0616: stfld System.Int32 ElectricityManager::m_pulseUnitEnd
IL_061B: ldloc.s 15 (System.Int32)
IL_061D: ldarg.0
IL_061E: ldfld PulseUnit[] ElectricityManager::m_pulseUnits
IL_0623: ldlen
IL_0624: conv.i4
IL_0625: bne.un => Label40
IL_062A: ldarg.0
IL_062B: ldc.i4.0
IL_062C: stfld System.Int32 ElectricityManager::m_pulseUnitEnd
IL_0631: Label39
IL_0631: Label40
IL_0631: br => Label41
IL_0636: Label27
IL_0636: ldloc.s 19 (System.UInt32)
IL_0638: brfalse => Label42
IL_063D: ldarg.0
IL_063E: dup
IL_063F: ldfld System.Int32 ElectricityManager::m_processedCells
IL_0644: ldc.i4.1
IL_0645: add
IL_0646: stfld System.Int32 ElectricityManager::m_processedCells
IL_064B: call static NetManager
ColossalFramework.Singleton`1<NetManager>::get_instance()
IL_0650: ldfld Array16`1<NetNode> NetManager::m_nodes
IL_0655: ldfld NetNode[] Array16`1<NetNode>::m_buffer
IL_065A: ldloca.s 18 (ElectricityManager+PulseUnit)
IL_065C: ldfld System.UInt16 PulseUnit::m_node
IL_0661: ldelema NetNode
IL_0666: ldobj NetNode
IL_066B: stloc.s 24 (NetNode)
IL_066D: ldloca.s 24 (NetNode)
IL_066F: ldfld Flags NetNode::m_flags
IL_0674: brfalse => Label43
IL_0679: ldloca.s 24 (NetNode)
IL_067B: ldfld System.UInt32 NetNode::m_buildIndex
IL_0680: ldloc.0
IL_0681: ldc.i4.s -128
IL_0683: and
IL_0684: bge.un => Label44
IL_0689: ldarg.0
IL_068A: ldloca.s 18 (ElectricityManager+PulseUnit)
IL_068C: ldfld System.UInt16 PulseUnit::m_group
IL_0691: ldloca.s 24 (NetNode)
IL_0693: ldflda UnityEngine.Vector3 NetNode::m_position
IL_0698: ldfld System.Single UnityEngine.Vector3::x
IL_069D: ldloca.s 24 (NetNode)
IL_069F: ldflda UnityEngine.Vector3 NetNode::m_position
IL_06A4: ldfld System.Single UnityEngine.Vector3::z
IL_06A9: call System.Void ElectricityManager::ConductToCells(System.UInt16
group, System.Single worldX, System.Single worldZ)
IL_06AE: ldc.i4.0
IL_06AF: stloc.s 25 (System.Int32)
IL_06B1: br => Label45
IL_06B6: Label49
IL_06B6: ldloca.s 24 (NetNode)
IL_06B8: ldloc.s 25 (System.Int32)
IL_06BA: call System.UInt16 NetNode::GetSegment(System.Int32 index)
IL_06BF: stloc.s 26 (System.UInt16)
IL_06C1: ldloc.s 26 (System.UInt16)
IL_06C3: brfalse => Label46
IL_06C8: call static NetManager
ColossalFramework.Singleton`1<NetManager>::get_instance()
IL_06CD: ldfld Array16`1<NetSegment> NetManager::m_segments
IL_06D2: ldfld NetSegment[] Array16`1<NetSegment>::m_buffer
IL_06D7: ldloc.s 26 (System.UInt16)
IL_06D9: ldelema NetSegment
IL_06DE: ldfld System.UInt16 NetSegment::m_startNode
IL_06E3: stloc.s 27 (System.UInt16)
IL_06E5: call static NetManager
ColossalFramework.Singleton`1<NetManager>::get_instance()
IL_06EA: ldfld Array16`1<NetSegment> NetManager::m_segments
IL_06EF: ldfld NetSegment[] Array16`1<NetSegment>::m_buffer
IL_06F4: ldloc.s 26 (System.UInt16)
IL_06F6: ldelema NetSegment
IL_06FB: ldfld System.UInt16 NetSegment::m_endNode
IL_0700: stloc.s 28 (System.UInt16)
IL_0702: ldloc.s 27 (System.UInt16)
IL_0704: ldloca.s 18 (ElectricityManager+PulseUnit)
IL_0706: ldfld System.UInt16 PulseUnit::m_node
IL_070B: bne.un => Label47
IL_0710: ldloc.s 28 (System.UInt16)
IL_0712: br => Label48
IL_0717: Label47
IL_0717: ldloc.s 27 (System.UInt16)
IL_0719: Label48
IL_0719: stloc.s 29 (System.UInt16)
IL_071B: ldarg.0
IL_071C: ldloc.s 29 (System.UInt16)
IL_071E: call static NetManager
ColossalFramework.Singleton`1<NetManager>::get_instance()
IL_0723: ldfld Array16`1<NetNode> NetManager::m_nodes
IL_0728: ldfld NetNode[] Array16`1<NetNode>::m_buffer
IL_072D: ldloc.s 29 (System.UInt16)
IL_072F: ldelema NetNode
IL_0734: ldloca.s 18 (ElectricityManager+PulseUnit)
IL_0736: ldfld System.UInt16 PulseUnit::m_group
IL_073B: ldc.r4 -100000
IL_0740: ldc.r4 -100000
IL_0745: ldc.r4 100000
IL_074A: ldc.r4 100000
IL_074F: call System.Void ElectricityManager::ConductToNode(System.UInt16
nodeIndex, NetNode& node, System.UInt16 group, System.Single minX, System.Single
minZ, System.Single maxX, System.Single maxZ)
IL_0754: Label46
IL_0754: ldloc.s 25 (System.Int32)
IL_0756: ldc.i4.1
IL_0757: add
IL_0758: stloc.s 25 (System.Int32)
IL_075A: Label45
IL_075A: ldloc.s 25 (System.Int32)
IL_075C: ldc.i4.8
IL_075D: blt => Label49
IL_0762: Label43
IL_0762: Label44
IL_0762: br => Label50
IL_0767: Label42
IL_0767: ldarg.0
IL_0768: ldfld PulseUnit[] ElectricityManager::m_pulseUnits
IL_076D: ldarg.0
IL_076E: ldfld System.Int32 ElectricityManager::m_pulseUnitEnd
IL_0773: ldelema ElectricityManager+PulseUnit
IL_0778: ldloc.s 18 (ElectricityManager+PulseUnit)
IL_077A: stobj ElectricityManager+PulseUnit
IL_077F: ldarg.0
IL_0780: dup
IL_0781: ldfld System.Int32 ElectricityManager::m_pulseUnitEnd
IL_0786: ldc.i4.1
IL_0787: add
IL_0788: dup
IL_0789: stloc.s 15 (System.Int32)
IL_078B: stfld System.Int32 ElectricityManager::m_pulseUnitEnd
IL_0790: ldloc.s 15 (System.Int32)
IL_0792: ldarg.0
IL_0793: ldfld PulseUnit[] ElectricityManager::m_pulseUnits
IL_0798: ldlen
IL_0799: conv.i4
IL_079A: bne.un => Label51
IL_079F: ldarg.0
IL_07A0: ldc.i4.0
IL_07A1: stfld System.Int32 ElectricityManager::m_pulseUnitEnd
IL_07A6: Label25
IL_07A6: Label41
IL_07A6: Label50
IL_07A6: Label51
IL_07A6: ldarg.0
IL_07A7: ldfld System.Int32 ElectricityManager::m_pulseUnitStart
IL_07AC: ldloc.s 17 (System.Int32)
IL_07AE: bne.un => Label52
IL_07B3: Label24
IL_07B3: ldarg.0
IL_07B4: ldfld System.Boolean ElectricityManager::m_canContinue
IL_07B9: brfalse => Label53
IL_07BE: ldarg.0
IL_07BF: ldfld System.Int32 ElectricityManager::m_processedCells
IL_07C4: ldloc.s 16 (System.Int32)
IL_07C6: blt => Label54
IL_07CB: Label53
IL_07CB: ldloc.1
IL_07CC: ldc.i4 255
IL_07D1: bne.un => Label55
IL_07D6: ldc.i4.0
IL_07D7: stloc.s 30 (System.Int32)
IL_07D9: br => Label56
IL_07DE: Label58
IL_07DE: ldarg.0
IL_07DF: ldfld PulseGroup[] ElectricityManager::m_pulseGroups
IL_07E4: ldloc.s 30 (System.Int32)
IL_07E6: ldelema ElectricityManager+PulseGroup
IL_07EB: ldobj ElectricityManager+PulseGroup
IL_07F0: stloc.s 31 (ElectricityManager+PulseGroup)
IL_07F2: ldloca.s 31 (ElectricityManager+PulseGroup)
IL_07F4: ldfld System.UInt16 PulseGroup::m_mergeIndex
IL_07F9: ldc.i4 65535
IL_07FE: beq => Label57
IL_0803: ldarg.0
IL_0804: ldfld PulseGroup[] ElectricityManager::m_pulseGroups
IL_0809: ldloca.s 31 (ElectricityManager+PulseGroup)
IL_080B: ldfld System.UInt16 PulseGroup::m_mergeIndex
IL_0810: ldelema ElectricityManager+PulseGroup
IL_0815: ldobj ElectricityManager+PulseGroup
IL_081A: stloc.s 32 (ElectricityManager+PulseGroup)
IL_081C: ldloca.s 31 (ElectricityManager+PulseGroup)
IL_081E: ldloca.s 32 (ElectricityManager+PulseGroup)
IL_0820: ldfld System.UInt32 PulseGroup::m_curCharge
IL_0825: conv.u8
IL_0826: ldloca.s 31 (ElectricityManager+PulseGroup)
IL_0828: ldfld System.UInt32 PulseGroup::m_origCharge
IL_082D: conv.u8
IL_082E: mul
IL_082F: ldloca.s 32 (ElectricityManager+PulseGroup)
IL_0831: ldfld System.UInt32 PulseGroup::m_origCharge
IL_0836: conv.u8
IL_0837: div.un
IL_0838: conv.u4
IL_0839: stfld System.UInt32 PulseGroup::m_curCharge
IL_083E: ldloca.s 32 (ElectricityManager+PulseGroup)
IL_0840: dup
IL_0841: ldfld System.UInt32 PulseGroup::m_curCharge
IL_0846: ldloca.s 31 (ElectricityManager+PulseGroup)
IL_0848: ldfld System.UInt32 PulseGroup::m_curCharge
IL_084D: sub
IL_084E: stfld System.UInt32 PulseGroup::m_curCharge
IL_0853: ldloca.s 32 (ElectricityManager+PulseGroup)
IL_0855: dup
IL_0856: ldfld System.UInt32 PulseGroup::m_origCharge
IL_085B: ldloca.s 31 (ElectricityManager+PulseGroup)
IL_085D: ldfld System.UInt32 PulseGroup::m_origCharge
IL_0862: sub
IL_0863: stfld System.UInt32 PulseGroup::m_origCharge
IL_0868: ldarg.0
IL_0869: ldfld PulseGroup[] ElectricityManager::m_pulseGroups
IL_086E: ldloca.s 31 (ElectricityManager+PulseGroup)
IL_0870: ldfld System.UInt16 PulseGroup::m_mergeIndex
IL_0875: ldelema ElectricityManager+PulseGroup
IL_087A: ldloc.s 32 (ElectricityManager+PulseGroup)
IL_087C: stobj ElectricityManager+PulseGroup
IL_0881: ldarg.0
IL_0882: ldfld PulseGroup[] ElectricityManager::m_pulseGroups
IL_0887: ldloc.s 30 (System.Int32)
IL_0889: ldelema ElectricityManager+PulseGroup
IL_088E: ldloc.s 31 (ElectricityManager+PulseGroup)
IL_0890: stobj ElectricityManager+PulseGroup
IL_0895: Label57
IL_0895: ldloc.s 30 (System.Int32)
IL_0897: ldc.i4.1
IL_0898: add
IL_0899: stloc.s 30 (System.Int32)
IL_089B: Label56
IL_089B: ldloc.s 30 (System.Int32)
IL_089D: ldarg.0
IL_089E: ldfld System.Int32 ElectricityManager::m_pulseGroupCount
IL_08A3: blt => Label58
IL_08A8: ldc.i4.0
IL_08A9: stloc.s 33 (System.Int32)
IL_08AB: br => Label59
IL_08B0: Label62
IL_08B0: ldarg.0
IL_08B1: ldfld PulseGroup[] ElectricityManager::m_pulseGroups
IL_08B6: ldloc.s 33 (System.Int32)
IL_08B8: ldelema ElectricityManager+PulseGroup
IL_08BD: ldobj ElectricityManager+PulseGroup
IL_08C2: stloc.s 34 (ElectricityManager+PulseGroup)
IL_08C4: ldloca.s 34 (ElectricityManager+PulseGroup)
IL_08C6: ldfld System.UInt32 PulseGroup::m_curCharge
IL_08CB: brfalse => Label60
IL_08D0: ldloca.s 34 (ElectricityManager+PulseGroup)
IL_08D2: ldfld System.Byte PulseGroup::m_z
IL_08D7: ldc.i4 256
IL_08DC: mul
IL_08DD: ldloca.s 34 (ElectricityManager+PulseGroup)
IL_08DF: ldfld System.Byte PulseGroup::m_x
IL_08E4: add
IL_08E5: stloc.s 35 (System.Int32)
IL_08E7: ldarg.0
IL_08E8: ldfld Cell[] ElectricityManager::m_electricityGrid
IL_08ED: ldloc.s 35 (System.Int32)
IL_08EF: ldelema ElectricityManager+Cell
IL_08F4: ldobj ElectricityManager+Cell
IL_08F9: stloc.s 36 (ElectricityManager+Cell)
IL_08FB: ldloca.s 36 (ElectricityManager+Cell)
IL_08FD: ldfld System.Byte Cell::m_conductivity
IL_0902: brfalse => Label61
IL_0907: ldloca.s 36 (ElectricityManager+Cell)
IL_0909: dup
IL_090A: ldfld System.UInt16 Cell::m_extraCharge
IL_090F: ldloca.s 34 (ElectricityManager+PulseGroup)
IL_0911: ldfld System.UInt32 PulseGroup::m_curCharge
IL_0916: ldc.i4 32767
IL_091B: ldloca.s 36 (ElectricityManager+Cell)
IL_091D: ldfld System.UInt16 Cell::m_extraCharge
IL_0922: sub
IL_0923: call static System.Int32 UnityEngine.Mathf::Min(System.Int32 a,
System.Int32 b)
IL_0928: conv.u2
IL_0929: add
IL_092A: conv.u2
IL_092B: stfld System.UInt16 Cell::m_extraCharge
IL_0930: Label61
IL_0930: ldarg.0
IL_0931: ldfld Cell[] ElectricityManager::m_electricityGrid
IL_0936: ldloc.s 35 (System.Int32)
IL_0938: ldelema ElectricityManager+Cell
IL_093D: ldloc.s 36 (ElectricityManager+Cell)
IL_093F: stobj ElectricityManager+Cell
IL_0944: Label60
IL_0944: ldloc.s 33 (System.Int32)
IL_0946: ldc.i4.1
IL_0947: add
IL_0948: stloc.s 33 (System.Int32)
IL_094A: Label59
IL_094A: ldloc.s 33 (System.Int32)
IL_094C: ldarg.0
IL_094D: ldfld System.Int32 ElectricityManager::m_pulseGroupCount
IL_0952: blt => Label62
IL_0957: // end original
IL_0957: Label0
IL_0957: Label1
IL_0957: Label22
IL_0957: Label55
IL_0957: ret
DONE

### Patch: System.Void ElectricityManager::ConductToNode(System.UInt16 nodeIndex,


NetNode& node, System.UInt16 group, System.Single minX, System.Single minZ,
System.Single maxX, System.Single maxZ)
### Replacement: static System.Void
ElectricityManager::ElectricityManager.ConductToNode_Patch0(ElectricityManager
this, System.UInt16 nodeIndex, NetNode& node, System.UInt16 group, System.Single
minX, System.Single minZ, System.Single maxX, System.Single maxZ)
IL_0000: Local var 0: NetInfo
IL_0000: Local var 1: ElectricityManager/PulseUnit
IL_0000: Local var 2: System.Int32
IL_0000: Local var 3: System.UInt16
IL_0000: // start original
IL_0000: ldarg.2
IL_0001: ldflda UnityEngine.Vector3 NetNode::m_position
IL_0006: ldfld System.Single UnityEngine.Vector3::x
IL_000B: ldarg.s 4
IL_000D: blt.un => Label0
IL_0012: ldarg.2
IL_0013: ldflda UnityEngine.Vector3 NetNode::m_position
IL_0018: ldfld System.Single UnityEngine.Vector3::z
IL_001D: ldarg.s 5
IL_001F: blt.un => Label1
IL_0024: ldarg.2
IL_0025: ldflda UnityEngine.Vector3 NetNode::m_position
IL_002A: ldfld System.Single UnityEngine.Vector3::x
IL_002F: ldarg.s 6
IL_0031: bgt.un => Label2
IL_0036: ldarg.2
IL_0037: ldflda UnityEngine.Vector3 NetNode::m_position
IL_003C: ldfld System.Single UnityEngine.Vector3::z
IL_0041: ldarg.s 7
IL_0043: bgt.un => Label3
IL_0048: ldarg.2
IL_0049: call NetInfo NetNode::get_Info()
IL_004E: stloc.0
IL_004F: ldloc.0
IL_0050: ldfld ItemClass NetInfo::m_class
IL_0055: ldfld Service ItemClass::m_service
IL_005A: ldc.i4.s 10
IL_005C: beq => Label4
IL_0061: ldarg.2
IL_0062: call NetInfo NetNode::get_Info()
IL_0067: ldfld NetAI NetInfo::m_netAI
IL_006C: isinst ConcourseAI
IL_0071: brfalse => Label5
IL_0076: Label4
IL_0076: ldarg.0
IL_0077: ldfld System.UInt16[] ElectricityManager::m_nodeGroups
IL_007C: ldarg.1
IL_007D: ldelem.u2
IL_007E: ldc.i4 65535
IL_0083: bne.un => Label6
IL_0088: ldloca.s 1 (ElectricityManager+PulseUnit)
IL_008A: ldarg.3
IL_008B: stfld System.UInt16 PulseUnit::m_group
IL_0090: ldloca.s 1 (ElectricityManager+PulseUnit)
IL_0092: ldarg.1
IL_0093: stfld System.UInt16 PulseUnit::m_node
IL_0098: ldloca.s 1 (ElectricityManager+PulseUnit)
IL_009A: ldc.i4.0
IL_009B: stfld System.Byte PulseUnit::m_x
IL_00A0: ldloca.s 1 (ElectricityManager+PulseUnit)
IL_00A2: ldc.i4.0
IL_00A3: stfld System.Byte PulseUnit::m_z
IL_00A8: ldarg.0
IL_00A9: ldfld PulseUnit[] ElectricityManager::m_pulseUnits
IL_00AE: ldarg.0
IL_00AF: ldfld System.Int32 ElectricityManager::m_pulseUnitEnd
IL_00B4: ldelema ElectricityManager+PulseUnit
IL_00B9: ldloc.1
IL_00BA: stobj ElectricityManager+PulseUnit
IL_00BF: ldarg.0
IL_00C0: dup
IL_00C1: ldfld System.Int32 ElectricityManager::m_pulseUnitEnd
IL_00C6: ldc.i4.1
IL_00C7: add
IL_00C8: dup
IL_00C9: stloc.2
IL_00CA: stfld System.Int32 ElectricityManager::m_pulseUnitEnd
IL_00CF: ldloc.2
IL_00D0: ldarg.0
IL_00D1: ldfld PulseUnit[] ElectricityManager::m_pulseUnits
IL_00D6: ldlen
IL_00D7: conv.i4
IL_00D8: bne.un => Label7
IL_00DD: ldarg.0
IL_00DE: ldc.i4.0
IL_00DF: stfld System.Int32 ElectricityManager::m_pulseUnitEnd
IL_00E4: Label7
IL_00E4: ldarg.0
IL_00E5: ldfld System.UInt16[] ElectricityManager::m_nodeGroups
IL_00EA: ldarg.1
IL_00EB: ldarg.3
IL_00EC: stelem.i2
IL_00ED: ldarg.0
IL_00EE: ldc.i4.1
IL_00EF: stfld System.Boolean ElectricityManager::m_canContinue
IL_00F4: br => Label8
IL_00F9: Label6
IL_00F9: ldarg.0
IL_00FA: ldarg.0
IL_00FB: ldfld System.UInt16[] ElectricityManager::m_nodeGroups
IL_0100: ldarg.1
IL_0101: ldelem.u2
IL_0102: call System.UInt16 ElectricityManager::GetRootGroup(System.UInt16
group)
IL_0107: stloc.3
IL_0108: ldloc.3
IL_0109: ldarg.3
IL_010A: beq => Label9
IL_010F: ldarg.0
IL_0110: ldarg.3
IL_0111: ldloc.3
IL_0112: call System.Void ElectricityManager::MergeGroups(System.UInt16 root,
System.UInt16 merged)
IL_0117: ldarg.0
IL_0118: ldfld System.UInt16[] ElectricityManager::m_nodeGroups
IL_011D: ldarg.1
IL_011E: ldarg.3
IL_011F: stelem.i2
IL_0120: ldarg.0
IL_0121: ldc.i4.1
IL_0122: stfld System.Boolean ElectricityManager::m_canContinue
IL_0127: // end original
IL_0127: Label0
IL_0127: Label1
IL_0127: Label2
IL_0127: Label3
IL_0127: Label5
IL_0127: Label8
IL_0127: Label9
IL_0127: ret
DONE

### Patch: System.Void ElectricityManager::UpdateNodeElectricity(System.Int32


nodeID, System.Int32 value)
### Replacement: static System.Void
ElectricityManager::ElectricityManager.UpdateNodeElectricity_Patch0(ElectricityMana
ger this, System.Int32 nodeID, System.Int32 value)
IL_0000: Local var 0: InfoManager/InfoMode
IL_0000: Local var 1: NetManager
IL_0000: Local var 2: System.Boolean
IL_0000: Local var 3: NetNode/Flags
IL_0000: Local var 4: System.UInt16
IL_0000: Local var 5: BuildingManager
IL_0000: Local var 6: NetNode/Flags
IL_0000: Local var 7: System.Int32
IL_0000: Local var 8: System.UInt16
IL_0000: // start original
IL_0000: call static InfoManager
ColossalFramework.Singleton`1<InfoManager>::get_instance()
IL_0005: callvirt InfoMode InfoManager::get_CurrentMode()
IL_000A: stloc.0
IL_000B: call static NetManager
ColossalFramework.Singleton`1<NetManager>::get_instance()
IL_0010: stloc.1
IL_0011: ldc.i4.0
IL_0012: stloc.2
IL_0013: ldloc.1
IL_0014: ldfld Array16`1<NetNode> NetManager::m_nodes
IL_0019: ldfld NetNode[] Array16`1<NetNode>::m_buffer
IL_001E: ldarg.1
IL_001F: ldelema NetNode
IL_0024: ldfld Flags NetNode::m_flags
IL_0029: stloc.3
IL_002A: ldloc.3
IL_002B: ldc.i4 1048576
IL_0030: and
IL_0031: brfalse => Label0
IL_0036: ldloc.1
IL_0037: ldfld Array16`1<NetNode> NetManager::m_nodes
IL_003C: ldfld NetNode[] Array16`1<NetNode>::m_buffer
IL_0041: ldarg.1
IL_0042: ldelema NetNode
IL_0047: dup
IL_0048: ldfld Flags NetNode::m_flags
IL_004D: ldc.i4 -1048577
IL_0052: and
IL_0053: stfld Flags NetNode::m_flags
IL_0058: br => Label10
IL_005D: Label0
IL_005D: ldloc.1
IL_005E: ldfld Array16`1<NetNode> NetManager::m_nodes
IL_0063: ldfld NetNode[] Array16`1<NetNode>::m_buffer
IL_0068: ldarg.1
IL_0069: ldelema NetNode
IL_006E: ldfld System.UInt16 NetNode::m_building
IL_0073: stloc.s 4 (System.UInt16)
IL_0075: ldloc.s 4 (System.UInt16)
IL_0077: brfalse => Label1
IL_007C: call static BuildingManager
ColossalFramework.Singleton`1<BuildingManager>::get_instance()
IL_0081: stloc.s 5 (BuildingManager)
IL_0083: ldloc.s 5 (BuildingManager)
IL_0085: ldfld Array16`1<Building> BuildingManager::m_buildings
IL_008A: ldfld Building[] Array16`1<Building>::m_buffer
IL_008F: ldloc.s 4 (System.UInt16)
IL_0091: ldelema Building
IL_0096: ldfld System.UInt16 Building::m_electricityBuffer
IL_009B: ldarg.2
IL_009C: beq => Label2
IL_00A1: ldloc.s 5 (BuildingManager)
IL_00A3: ldfld Array16`1<Building> BuildingManager::m_buildings
IL_00A8: ldfld Building[] Array16`1<Building>::m_buffer
IL_00AD: ldloc.s 4 (System.UInt16)
IL_00AF: ldelema Building
IL_00B4: ldarg.2
IL_00B5: conv.u2
IL_00B6: stfld System.UInt16 Building::m_electricityBuffer
IL_00BB: ldloc.0
IL_00BC: ldc.i4.1
IL_00BD: ceq
IL_00BF: stloc.2
IL_00C0: Label2
IL_00C0: ldloc.2
IL_00C1: brfalse => Label3
IL_00C6: ldloc.s 5 (BuildingManager)
IL_00C8: ldloc.s 4 (System.UInt16)
IL_00CA: callvirt System.Void BuildingManager::UpdateBuildingColors(System.UInt16
building)
IL_00CF: Label1
IL_00CF: Label3
IL_00CF: ldloc.3
IL_00D0: ldc.i4 -67108865
IL_00D5: and
IL_00D6: stloc.s 6 (NetNode+Flags)
IL_00D8: ldarg.2
IL_00D9: brfalse => Label4
IL_00DE: ldloc.s 6 (NetNode+Flags)
IL_00E0: ldc.i4 67108864
IL_00E5: or
IL_00E6: stloc.s 6 (NetNode+Flags)
IL_00E8: Label4
IL_00E8: ldloc.s 6 (NetNode+Flags)
IL_00EA: ldloc.3
IL_00EB: beq => Label5
IL_00F0: ldloc.1
IL_00F1: ldfld Array16`1<NetNode> NetManager::m_nodes
IL_00F6: ldfld NetNode[] Array16`1<NetNode>::m_buffer
IL_00FB: ldarg.1
IL_00FC: ldelema NetNode
IL_0101: ldloc.s 6 (NetNode+Flags)
IL_0103: stfld Flags NetNode::m_flags
IL_0108: ldloc.0
IL_0109: ldc.i4.1
IL_010A: ceq
IL_010C: stloc.2
IL_010D: Label5
IL_010D: ldloc.2
IL_010E: brfalse => Label6
IL_0113: ldloc.1
IL_0114: ldarg.1
IL_0115: conv.u2
IL_0116: callvirt System.Void NetManager::UpdateNodeColors(System.UInt16 node)
IL_011B: ldc.i4.0
IL_011C: stloc.s 7 (System.Int32)
IL_011E: br => Label7
IL_0123: Label9
IL_0123: ldloc.1
IL_0124: ldfld Array16`1<NetNode> NetManager::m_nodes
IL_0129: ldfld NetNode[] Array16`1<NetNode>::m_buffer
IL_012E: ldarg.1
IL_012F: ldelema NetNode
IL_0134: ldloc.s 7 (System.Int32)
IL_0136: call System.UInt16 NetNode::GetSegment(System.Int32 index)
IL_013B: stloc.s 8 (System.UInt16)
IL_013D: ldloc.s 8 (System.UInt16)
IL_013F: brfalse => Label8
IL_0144: ldloc.1
IL_0145: ldloc.s 8 (System.UInt16)
IL_0147: callvirt System.Void NetManager::UpdateSegmentColors(System.UInt16
segment)
IL_014C: Label8
IL_014C: ldloc.s 7 (System.Int32)
IL_014E: ldc.i4.1
IL_014F: add
IL_0150: stloc.s 7 (System.Int32)
IL_0152: Label7
IL_0152: ldloc.s 7 (System.Int32)
IL_0154: ldc.i4.8
IL_0155: blt => Label9
IL_015A: // end original
IL_015A: Label6
IL_015A: Label10
IL_015A: ret
DONE

### Patch: virtual System.Void ColossalFramework.UI.UIView::Start()


### Replacement: static System.Void
ColossalFramework.UI.UIView::ColossalFramework.UI.UIView.Start_Patch1(ColossalFrame
work.UI.UIView this)
IL_0000: Local var 0:
ColossalFramework.PoolList`1<ColossalFramework.UI.UIComponent>
IL_0000: Local var 1: ColossalFramework.UI.UIComponent
IL_0000: Local var 2:
System.Collections.Generic.IEnumerator`1<ColossalFramework.UI.UIComponent>
IL_0000: // start original
IL_0000: ldarg.0
IL_0001: ldc.i4.0
IL_0002: stfld System.Int32 ColossalFramework.UI.UIView::m_FramesRendered
IL_0007: ldarg.0
IL_0008: call System.Void
ColossalFramework.UI.UIView::InvalidateAllComponents()
IL_000D: ldarg.0
IL_000E: ldfld UnityEngine.MeshRenderer
ColossalFramework.UI.UIView::m_MeshRenderer
IL_0013: ldnull
IL_0014: call static System.Boolean
UnityEngine.Object::op_Inequality(UnityEngine.Object x, UnityEngine.Object y)
IL_0019: brfalse => Label0
IL_001E: ldarg.0
IL_001F: ldfld UnityEngine.MeshRenderer
ColossalFramework.UI.UIView::m_MeshRenderer
IL_0024: ldc.i4.1
IL_0025: callvirt System.Void UnityEngine.Renderer::set_enabled(System.Boolean
value)
IL_002A: Label0
IL_002A: ldarg.0
IL_002B: call ColossalFramework.PoolList`1<ColossalFramework.UI.UIComponent>
ColossalFramework.UI.UIView::GetTopLevelComponents()
IL_0030: stloc.0
.try
{
IL_0031: ldloc.0
IL_0032: callvirt virtual
System.Collections.Generic.IEnumerator`1<ColossalFramework.UI.UIComponent>
ColossalFramework.PoolList`1<ColossalFramework.UI.UIComponent>::GetEnumerator()
IL_0037: stloc.2
.try
{
IL_0038: br => Label1
IL_003D: Label2
IL_003D: ldloc.2
IL_003E: callvirt abstract virtual ColossalFramework.UI.UIComponent
System.Collections.Generic.IEnumerator`1<ColossalFramework.UI.UIComponent>::get_Cur
rent()
IL_0043: stloc.1
IL_0044: ldloc.1
IL_0045: ldc.i4.1
IL_0046: callvirt System.Void
ColossalFramework.UI.UIComponent::InitializeParentVisibilityCache(System.Boolean
parentVisible)
IL_004B: Label1
IL_004B: ldloc.2
IL_004C: callvirt abstract virtual System.Boolean
System.Collections.IEnumerator::MoveNext()
IL_0051: brtrue => Label2
IL_0056: leave => Label3
IL_005B: leave => (autogenerated)
} // end try
.finally
{
IL_0060: ldloc.2
IL_0061: brfalse => Label4
IL_0066: ldloc.2
IL_0067: callvirt abstract virtual System.Void
System.IDisposable::Dispose()
IL_006C: Label4
IL_006C: endfinally
IL_006D: leave => (autogenerated)
} // end handler
IL_006E: Label3
IL_006E: leave => Label5
IL_0073: leave => (autogenerated)
} // end try
.finally
{
IL_0078: ldloc.0
IL_0079: brfalse => Label6
IL_007E: ldloc.0
IL_007F: callvirt abstract virtual System.Void
System.IDisposable::Dispose()
IL_0084: Label6
IL_0084: endfinally
IL_0085: leave => (autogenerated)
} // end handler
IL_0086: Label5
IL_0086: ldarg.0
IL_0087: ldc.i4.1
IL_0088: stfld System.Boolean
ColossalFramework.UI.UIView::m_VisibilityCacheInitialized
IL_008D: // end original
IL_008D: call static System.Void
Kwytto.Redirectors.UIViewRedirector::AfterStart()
IL_0092: ret
DONE

### Patch: virtual UnityEngine.Color NetAI::GetColor(System.UInt16 nodeID, NetNode&


data, InfoMode infoMode, SubInfoMode subInfoMode)
### Replacement: static UnityEngine.Color NetAI::NetAI.GetColor_Patch1(NetAI this,
System.UInt16 nodeID, NetNode& data, InfoMode infoMode, SubInfoMode subInfoMode)
IL_0000: Local var 0: UnityEngine.Color
IL_0000: ldloca 0 (UnityEngine.Color)
IL_0004: initobj UnityEngine.Color
IL_000A: // start original
IL_000A: ldarg.3
IL_000B: brfalse => Label0
IL_0010: call static InfoManager
ColossalFramework.Singleton`1<InfoManager>::get_instance()
IL_0015: ldfld InfoProperties SimulationManagerBase`2<InfoManager,
InfoProperties>::m_properties
IL_001A: ldfld UnityEngine.Color InfoProperties::m_neutralColor
IL_001F: br => Label1
IL_0024: Label0
IL_0024: ldarg.0
IL_0025: ldfld NetInfo NetAI::m_info
IL_002A: ldfld UnityEngine.Color NetInfo::m_color
IL_002F: // end original
IL_002F: Label1
IL_002F: stloc 0 (UnityEngine.Color)
IL_0033: ldloca 0 (UnityEngine.Color)
IL_0037: ldarg 1
IL_003B: ldarg 2
IL_003F: ldarg 3
IL_0043: ldarg 4
IL_0047: call static System.Void
ElectricRoads.Overrides.ElectricRoadsOverrides::AfterGetColorNode(UnityEngine.Color
& __result, System.UInt16 nodeID, NetNode& data, InfoMode infoMode, SubInfoMode
subInfoMode)
IL_004C: ldloc 0 (UnityEngine.Color)
IL_0050: ret
DONE

### Patch: virtual UnityEngine.Color NetAI::GetColor(System.UInt16 segmentID,


NetSegment& data, InfoMode infoMode, SubInfoMode subInfoMode)
### Replacement: static UnityEngine.Color NetAI::NetAI.GetColor_Patch1(NetAI this,
System.UInt16 segmentID, NetSegment& data, InfoMode infoMode, SubInfoMode
subInfoMode)
IL_0000: Local var 0: UnityEngine.Color
IL_0000: ldloca 0 (UnityEngine.Color)
IL_0004: initobj UnityEngine.Color
IL_000A: // start original
IL_000A: ldarg.3
IL_000B: brfalse => Label0
IL_0010: call static InfoManager
ColossalFramework.Singleton`1<InfoManager>::get_instance()
IL_0015: ldfld InfoProperties SimulationManagerBase`2<InfoManager,
InfoProperties>::m_properties
IL_001A: ldfld UnityEngine.Color InfoProperties::m_neutralColor
IL_001F: br => Label1
IL_0024: Label0
IL_0024: ldarg.0
IL_0025: ldfld NetInfo NetAI::m_info
IL_002A: ldfld UnityEngine.Color NetInfo::m_color
IL_002F: // end original
IL_002F: Label1
IL_002F: stloc 0 (UnityEngine.Color)
IL_0033: ldloca 0 (UnityEngine.Color)
IL_0037: ldarg 1
IL_003B: ldarg 2
IL_003F: ldarg 3
IL_0043: ldarg 4
IL_0047: call static System.Void
ElectricRoads.Overrides.ElectricRoadsOverrides::AfterGetColorSegment(UnityEngine.Co
lor& __result, System.UInt16 segmentID, NetSegment& data, InfoMode infoMode,
SubInfoMode subInfoMode)
IL_004C: ldloc 0 (UnityEngine.Color)
IL_0050: ret
DONE

### Patch: System.Void ElectricityManager::UpdateNodeElectricity(System.Int32


nodeID, System.Int32 value)
### Replacement: static System.Void
ElectricityManager::ElectricityManager.UpdateNodeElectricity_Patch0(ElectricityMana
ger this, System.Int32 nodeID, System.Int32 value)
IL_0000: Local var 0: InfoManager/InfoMode
IL_0000: Local var 1: NetManager
IL_0000: Local var 2: System.Boolean
IL_0000: Local var 3: NetNode/Flags
IL_0000: Local var 4: System.UInt16
IL_0000: Local var 5: BuildingManager
IL_0000: Local var 6: NetNode/Flags
IL_0000: Local var 7: System.Int32
IL_0000: Local var 8: System.UInt16
IL_0000: // start original
IL_0000: call static InfoManager
ColossalFramework.Singleton`1<InfoManager>::get_instance()
IL_0005: callvirt InfoMode InfoManager::get_CurrentMode()
IL_000A: stloc.0
IL_000B: call static NetManager
ColossalFramework.Singleton`1<NetManager>::get_instance()
IL_0010: stloc.1
IL_0011: ldc.i4.0
IL_0012: stloc.2
IL_0013: ldloc.1
IL_0014: ldfld Array16`1<NetNode> NetManager::m_nodes
IL_0019: ldfld NetNode[] Array16`1<NetNode>::m_buffer
IL_001E: ldarg.1
IL_001F: ldelema NetNode
IL_0024: ldfld Flags NetNode::m_flags
IL_0029: stloc.3
IL_002A: ldarg.1
IL_002B: call static System.Boolean
ElectricRoads.Overrides.ElectricRoadsOverrides::CheckNodeTransition(System.Int32
nodeID)
IL_0030: brfalse => Label0
IL_0035: ldloc.1
IL_0036: ldfld Array16`1<NetNode> NetManager::m_nodes
IL_003B: ldfld NetNode[] Array16`1<NetNode>::m_buffer
IL_0040: ldarg.1
IL_0041: ldelema NetNode
IL_0046: dup
IL_0047: ldfld Flags NetNode::m_flags
IL_004C: ldc.i4 -1048577
IL_0051: and
IL_0052: stfld Flags NetNode::m_flags
IL_0057: br => Label10
IL_005C: Label0
IL_005C: ldloc.1
IL_005D: ldfld Array16`1<NetNode> NetManager::m_nodes
IL_0062: ldfld NetNode[] Array16`1<NetNode>::m_buffer
IL_0067: ldarg.1
IL_0068: ldelema NetNode
IL_006D: ldfld System.UInt16 NetNode::m_building
IL_0072: stloc.s 4 (System.UInt16)
IL_0074: ldloc.s 4 (System.UInt16)
IL_0076: brfalse => Label1
IL_007B: call static BuildingManager
ColossalFramework.Singleton`1<BuildingManager>::get_instance()
IL_0080: stloc.s 5 (BuildingManager)
IL_0082: ldloc.s 5 (BuildingManager)
IL_0084: ldfld Array16`1<Building> BuildingManager::m_buildings
IL_0089: ldfld Building[] Array16`1<Building>::m_buffer
IL_008E: ldloc.s 4 (System.UInt16)
IL_0090: ldelema Building
IL_0095: ldfld System.UInt16 Building::m_electricityBuffer
IL_009A: ldarg.2
IL_009B: beq => Label2
IL_00A0: ldloc.s 5 (BuildingManager)
IL_00A2: ldfld Array16`1<Building> BuildingManager::m_buildings
IL_00A7: ldfld Building[] Array16`1<Building>::m_buffer
IL_00AC: ldloc.s 4 (System.UInt16)
IL_00AE: ldelema Building
IL_00B3: ldarg.2
IL_00B4: conv.u2
IL_00B5: stfld System.UInt16 Building::m_electricityBuffer
IL_00BA: ldloc.0
IL_00BB: ldc.i4.1
IL_00BC: ceq
IL_00BE: stloc.2
IL_00BF: Label2
IL_00BF: ldloc.2
IL_00C0: brfalse => Label3
IL_00C5: ldloc.s 5 (BuildingManager)
IL_00C7: ldloc.s 4 (System.UInt16)
IL_00C9: callvirt System.Void BuildingManager::UpdateBuildingColors(System.UInt16
building)
IL_00CE: Label1
IL_00CE: Label3
IL_00CE: ldloc.3
IL_00CF: ldc.i4 -67108865
IL_00D4: and
IL_00D5: stloc.s 6 (NetNode+Flags)
IL_00D7: ldarg.2
IL_00D8: brfalse => Label4
IL_00DD: ldloc.s 6 (NetNode+Flags)
IL_00DF: ldc.i4 67108864
IL_00E4: or
IL_00E5: stloc.s 6 (NetNode+Flags)
IL_00E7: Label4
IL_00E7: ldloc.s 6 (NetNode+Flags)
IL_00E9: ldloc.3
IL_00EA: beq => Label5
IL_00EF: ldloc.1
IL_00F0: ldfld Array16`1<NetNode> NetManager::m_nodes
IL_00F5: ldfld NetNode[] Array16`1<NetNode>::m_buffer
IL_00FA: ldarg.1
IL_00FB: ldelema NetNode
IL_0100: ldloc.s 6 (NetNode+Flags)
IL_0102: stfld Flags NetNode::m_flags
IL_0107: ldloc.0
IL_0108: ldc.i4.1
IL_0109: ceq
IL_010B: stloc.2
IL_010C: Label5
IL_010C: ldloc.2
IL_010D: brfalse => Label6
IL_0112: ldloc.1
IL_0113: ldarg.1
IL_0114: conv.u2
IL_0115: callvirt System.Void NetManager::UpdateNodeColors(System.UInt16 node)
IL_011A: ldc.i4.0
IL_011B: stloc.s 7 (System.Int32)
IL_011D: br => Label7
IL_0122: Label9
IL_0122: ldloc.1
IL_0123: ldfld Array16`1<NetNode> NetManager::m_nodes
IL_0128: ldfld NetNode[] Array16`1<NetNode>::m_buffer
IL_012D: ldarg.1
IL_012E: ldelema NetNode
IL_0133: ldloc.s 7 (System.Int32)
IL_0135: call System.UInt16 NetNode::GetSegment(System.Int32 index)
IL_013A: stloc.s 8 (System.UInt16)
IL_013C: ldloc.s 8 (System.UInt16)
IL_013E: brfalse => Label8
IL_0143: ldloc.1
IL_0144: ldloc.s 8 (System.UInt16)
IL_0146: callvirt System.Void NetManager::UpdateSegmentColors(System.UInt16
segment)
IL_014B: Label8
IL_014B: ldloc.s 7 (System.Int32)
IL_014D: ldc.i4.1
IL_014E: add
IL_014F: stloc.s 7 (System.Int32)
IL_0151: Label7
IL_0151: ldloc.s 7 (System.Int32)
IL_0153: ldc.i4.8
IL_0154: blt => Label9
IL_0159: // end original
IL_0159: Label6
IL_0159: Label10
IL_0159: ret
DONE

### Patch: static System.Void PropInstance::RenderInstance(CameraInfo cameraInfo,


PropInfo info, InstanceID id, UnityEngine.Vector3 position, System.Single scale,
System.Single angle, UnityEngine.Color color, UnityEngine.Vector4 objectIndex,
System.Boolean active, UnityEngine.Texture heightMap, UnityEngine.Vector4
heightMapping, UnityEngine.Vector4 surfaceMapping, UnityEngine.Texture
waterHeightMap, UnityEngine.Vector4 waterHeightMapping, UnityEngine.Vector4
waterSurfaceMapping)
### Replacement: static System.Void
PropInstance::PropInstance.RenderInstance_Patch0(CameraInfo cameraInfo, PropInfo
info, InstanceID id, UnityEngine.Vector3 position, System.Single scale,
System.Single angle, UnityEngine.Color color, UnityEngine.Vector4 objectIndex,
System.Boolean active, UnityEngine.Texture heightMap, UnityEngine.Vector4
heightMapping, UnityEngine.Vector4 surfaceMapping, UnityEngine.Texture
waterHeightMap, UnityEngine.Vector4 waterHeightMapping, UnityEngine.Vector4
waterSurfaceMapping)
IL_0000: Local var 0: UnityEngine.Matrix4x4
IL_0000: Local var 1: System.Single
IL_0000: Local var 2: System.Int32
IL_0000: Local var 3: UnityEngine.Vector3
IL_0000: Local var 4: UnityEngine.Vector3
IL_0000: Local var 5: EffectInfo/SpawnArea
IL_0000: Local var 6: System.Single
IL_0000: Local var 7: LightSystem
IL_0000: Local var 8: ColossalFramework.Math.Randomizer
IL_0000: Local var 9: UnityEngine.Vector4
IL_0000: Local var 10: System.Single
IL_0000: Local var 11: System.Single
IL_0000: Local var 12: System.Single
IL_0000: Local var 13: UnityEngine.Matrix4x4
IL_0000: Local var 14: PropManager
IL_0000: Local var 15: UnityEngine.MaterialPropertyBlock
IL_0000: Local var 16: System.Int32
IL_0000: // start original
IL_0000: ldarg.1
IL_0001: ldfld System.Boolean PrefabInfo::m_prefabInitialized
IL_0006: brfalse => Label0
IL_000B: ldarg.1
IL_000C: ldfld System.Boolean PropInfo::m_hasEffects
IL_0011: brfalse => Label1
IL_0016: ldarg.s 8
IL_0018: brtrue => Label2
IL_001D: ldarg.1
IL_001E: ldfld System.Boolean PropInfo::m_alwaysActive
IL_0023: brfalse => Label3
IL_0028: Label2
IL_0028: ldloca.s 0 (UnityEngine.Matrix4x4)
IL_002A: initobj UnityEngine.Matrix4x4
IL_0030: ldloca.s 0 (UnityEngine.Matrix4x4)
IL_0032: ldarg.3
IL_0033: ldarg.s 5
IL_0035: ldc.r4 57.29578
IL_003A: mul
IL_003B: call static UnityEngine.Vector3 UnityEngine.Vector3::get_down()
IL_0040: call static UnityEngine.Quaternion
UnityEngine.Quaternion::AngleAxis(System.Single angle, UnityEngine.Vector3 axis)
IL_0045: ldarg.s 4
IL_0047: ldarg.s 4
IL_0049: ldarg.s 4
IL_004B: newobj System.Void UnityEngine.Vector3::.ctor(System.Single x,
System.Single y, System.Single z)
IL_0050: call System.Void UnityEngine.Matrix4x4::SetTRS(UnityEngine.Vector3
pos, UnityEngine.Quaternion q, UnityEngine.Vector3 s)
IL_0055: call static SimulationManager
ColossalFramework.Singleton`1<SimulationManager>::get_instance()
IL_005A: ldfld System.Single SimulationManager::m_simulationTimeDelta
IL_005F: stloc.1
IL_0060: ldc.i4.0
IL_0061: stloc.2
IL_0062: br => Label4
IL_0067: Label5
IL_0067: ldloca.s 0 (UnityEngine.Matrix4x4)
IL_0069: ldarg.1
IL_006A: ldfld Effect[] PropInfo::m_effects
IL_006F: ldloc.2
IL_0070: ldelema PropInfo+Effect
IL_0075: ldfld UnityEngine.Vector3 Effect::m_position
IL_007A: call UnityEngine.Vector3
UnityEngine.Matrix4x4::MultiplyPoint(UnityEngine.Vector3 v)
IL_007F: stloc.3
IL_0080: ldloca.s 0 (UnityEngine.Matrix4x4)
IL_0082: ldarg.1
IL_0083: ldfld Effect[] PropInfo::m_effects
IL_0088: ldloc.2
IL_0089: ldelema PropInfo+Effect
IL_008E: ldfld UnityEngine.Vector3 Effect::m_direction
IL_0093: call UnityEngine.Vector3
UnityEngine.Matrix4x4::MultiplyVector(UnityEngine.Vector3 v)
IL_0098: stloc.s 4 (UnityEngine.Vector3)
IL_009A: ldloca.s 5 (EffectInfo+SpawnArea)
IL_009C: ldloc.3
IL_009D: ldloc.s 4 (UnityEngine.Vector3)
IL_009F: ldc.r4 0
IL_00A4: call System.Void SpawnArea::.ctor(UnityEngine.Vector3 position,
UnityEngine.Vector3 direction, System.Single radius)
IL_00A9: ldarg.1
IL_00AA: ldfld Effect[] PropInfo::m_effects
IL_00AF: ldloc.2
IL_00B0: ldelema PropInfo+Effect
IL_00B5: ldfld EffectInfo Effect::m_effect
IL_00BA: ldarg.2
IL_00BB: ldloc.s 5 (EffectInfo+SpawnArea)
IL_00BD: call static UnityEngine.Vector3 UnityEngine.Vector3::get_zero()
IL_00C2: ldc.r4 0
IL_00C7: ldc.r4 1
IL_00CC: ldc.r4 -1
IL_00D1: ldloc.1
IL_00D2: ldarg.0
IL_00D3: callvirt virtual System.Void EffectInfo::RenderEffect(InstanceID id,
SpawnArea area, UnityEngine.Vector3 velocity, System.Single acceleration,
System.Single magnitude, System.Single timeOffset, System.Single timeDelta,
CameraInfo cameraInfo)
IL_00D8: ldloc.2
IL_00D9: ldc.i4.1
IL_00DA: add
IL_00DB: stloc.2
IL_00DC: Label4
IL_00DC: ldloc.2
IL_00DD: ldarg.1
IL_00DE: ldfld Effect[] PropInfo::m_effects
IL_00E3: ldlen
IL_00E4: conv.i4
IL_00E5: blt => Label5
IL_00EA: Label1
IL_00EA: Label3
IL_00EA: ldarg.1
IL_00EB: ldfld System.Boolean PropInfo::m_hasRenderer
IL_00F0: brfalse => Label6
IL_00F5: ldarg.0
IL_00F6: ldfld System.Int32 CameraInfo::m_layerMask
IL_00FB: ldc.i4.1
IL_00FC: ldarg.1
IL_00FD: ldfld System.Int32 PrefabInfo::m_prefabDataLayer
IL_0102: ldc.i4.s 31
IL_0104: and
IL_0105: shl
IL_0106: and
IL_0107: brfalse => Label7
IL_010C: call static InfoManager
ColossalFramework.Singleton`1<InfoManager>::get_instance()
IL_0111: callvirt InfoMode InfoManager::get_CurrentMode()
IL_0116: brtrue => Label8
IL_011B: ldarg 2
IL_011F: call static System.Boolean
ElectricRoads.Overrides.ElectricRoadsOverrides::CheckElectrityNetForLight(InstanceI
D id)
IL_0124: brfalse => Label24
IL_0129: ldc.r4 0
IL_012E: stloc.s 6 (System.Single)
IL_0130: ldarg.s 8
IL_0132: brtrue => Label9
IL_0137: ldarg.1
IL_0138: ldfld System.Boolean PropInfo::m_alwaysActive
IL_013D: brtrue => Label10
IL_0142: Label24
IL_0142: ldarga.s 7
IL_0144: ldc.r4 0
IL_0149: stfld System.Single UnityEngine.Vector4::z
IL_014E: br => Label11
IL_0153: Label9
IL_0153: Label10
IL_0153: ldarg.1
IL_0154: ldflda UnityEngine.Vector2 PropInfo::m_illuminationOffRange
IL_0159: ldfld System.Single UnityEngine.Vector2::x
IL_015E: ldc.r4 1000
IL_0163: blt => Label12
IL_0168: ldarg.1
IL_0169: ldfld BlinkType PropInfo::m_illuminationBlinkType
IL_016E: brfalse => Label13
IL_0173: Label12
IL_0173: call static RenderManager
ColossalFramework.Singleton`1<RenderManager>::get_instance()
IL_0178: callvirt LightSystem RenderManager::get_lightSystem()
IL_017D: stloc.s 7 (LightSystem)
IL_017F: ldloca.s 8 (ColossalFramework.Math.Randomizer)
IL_0181: ldarga.s 2
IL_0183: call System.UInt32 InstanceID::get_Index()
IL_0188: call System.Void
ColossalFramework.Math.Randomizer::.ctor(System.UInt32 _seed)
IL_018D: ldarg.1
IL_018E: ldflda UnityEngine.Vector2 PropInfo::m_illuminationOffRange
IL_0193: ldfld System.Single UnityEngine.Vector2::x
IL_0198: ldloca.s 8 (ColossalFramework.Math.Randomizer)
IL_019A: ldc.i4 100000
IL_019F: call System.Int32
ColossalFramework.Math.Randomizer::Int32(System.UInt32 range)
IL_01A4: conv.r4
IL_01A5: ldc.r4 1E-05
IL_01AA: mul
IL_01AB: ldarg.1
IL_01AC: ldflda UnityEngine.Vector2 PropInfo::m_illuminationOffRange
IL_01B1: ldfld System.Single UnityEngine.Vector2::y
IL_01B6: ldarg.1
IL_01B7: ldflda UnityEngine.Vector2 PropInfo::m_illuminationOffRange
IL_01BC: ldfld System.Single UnityEngine.Vector2::x
IL_01C1: sub
IL_01C2: mul
IL_01C3: add
IL_01C4: stloc.s 6 (System.Single)
IL_01C6: ldarga.s 7
IL_01C8: ldloc.s 6 (System.Single)
IL_01CA: ldc.r4 0.01
IL_01CF: add
IL_01D0: ldloc.s 6 (System.Single)
IL_01D2: ldc.r4 0.01
IL_01D7: sub
IL_01D8: ldloc.s 7 (LightSystem)
IL_01DA: callvirt System.Single LightSystem::get_DayLightIntensity()
IL_01DF: call static System.Single MathUtils::SmoothStep(System.Single edge0,
System.Single edge1, System.Single x)
IL_01E4: stfld System.Single UnityEngine.Vector4::z
IL_01E9: ldarg.1
IL_01EA: ldfld BlinkType PropInfo::m_illuminationBlinkType
IL_01EF: brfalse => Label14
IL_01F4: ldarg.1
IL_01F5: ldfld BlinkType PropInfo::m_illuminationBlinkType
IL_01FA: call static UnityEngine.Vector4
LightEffect::GetBlinkVector(BlinkType type)
IL_01FF: stloc.s 9 (UnityEngine.Vector4)
IL_0201: ldloc.s 6 (System.Single)
IL_0203: ldc.r4 3.71
IL_0208: mul
IL_0209: call static SimulationManager
ColossalFramework.Singleton`1<SimulationManager>::get_instance()
IL_020E: ldfld System.Single SimulationManager::m_simulationTimer
IL_0213: ldloca.s 9 (UnityEngine.Vector4)
IL_0215: ldfld System.Single UnityEngine.Vector4::w
IL_021A: div
IL_021B: add
IL_021C: stloc.s 10 (System.Single)
IL_021E: ldloc.s 10 (System.Single)
IL_0220: ldloc.s 10 (System.Single)
IL_0222: call static System.Single UnityEngine.Mathf::Floor(System.Single f)
IL_0227: sub
IL_0228: ldloca.s 9 (UnityEngine.Vector4)
IL_022A: ldfld System.Single UnityEngine.Vector4::w
IL_022F: mul
IL_0230: stloc.s 10 (System.Single)
IL_0232: ldloca.s 9 (UnityEngine.Vector4)
IL_0234: ldfld System.Single UnityEngine.Vector4::x
IL_0239: ldloca.s 9 (UnityEngine.Vector4)
IL_023B: ldfld System.Single UnityEngine.Vector4::y
IL_0240: ldloc.s 10 (System.Single)
IL_0242: call static System.Single MathUtils::SmoothStep(System.Single edge0,
System.Single edge1, System.Single x)
IL_0247: stloc.s 11 (System.Single)
IL_0249: ldloca.s 9 (UnityEngine.Vector4)
IL_024B: ldfld System.Single UnityEngine.Vector4::w
IL_0250: ldloca.s 9 (UnityEngine.Vector4)
IL_0252: ldfld System.Single UnityEngine.Vector4::z
IL_0257: ldloc.s 10 (System.Single)
IL_0259: call static System.Single MathUtils::SmoothStep(System.Single edge0,
System.Single edge1, System.Single x)
IL_025E: stloc.s 12 (System.Single)
IL_0260: ldarga.s 7
IL_0262: dup
IL_0263: ldfld System.Single UnityEngine.Vector4::z
IL_0268: ldc.r4 1
IL_026D: ldloc.s 11 (System.Single)
IL_026F: ldloc.s 12 (System.Single)
IL_0271: mul
IL_0272: sub
IL_0273: mul
IL_0274: stfld System.Single UnityEngine.Vector4::z
IL_0279: Label14
IL_0279: br => Label15
IL_027E: Label13
IL_027E: ldarga.s 7
IL_0280: ldc.r4 1
IL_0285: stfld System.Single UnityEngine.Vector4::z
IL_028A: Label8
IL_028A: Label11
IL_028A: Label15
IL_028A: ldarg.0
IL_028B: brfalse => Label16
IL_0290: ldarg.0
IL_0291: ldarg.3
IL_0292: ldarg.1
IL_0293: ldfld System.Single PropInfo::m_lodRenderDistance
IL_0298: callvirt System.Boolean
CameraInfo::CheckRenderDistance(UnityEngine.Vector3 point, System.Single
maxDistance)
IL_029D: brfalse => Label17
IL_02A2: Label16
IL_02A2: ldloca.s 13 (UnityEngine.Matrix4x4)
IL_02A4: initobj UnityEngine.Matrix4x4
IL_02AA: ldloca.s 13 (UnityEngine.Matrix4x4)
IL_02AC: ldarg.3
IL_02AD: ldarg.s 5
IL_02AF: ldc.r4 57.29578
IL_02B4: mul
IL_02B5: call static UnityEngine.Vector3 UnityEngine.Vector3::get_down()
IL_02BA: call static UnityEngine.Quaternion
UnityEngine.Quaternion::AngleAxis(System.Single angle, UnityEngine.Vector3 axis)
IL_02BF: ldarg.s 4
IL_02C1: ldarg.s 4
IL_02C3: ldarg.s 4
IL_02C5: newobj System.Void UnityEngine.Vector3::.ctor(System.Single x,
System.Single y, System.Single z)
IL_02CA: call System.Void UnityEngine.Matrix4x4::SetTRS(UnityEngine.Vector3
pos, UnityEngine.Quaternion q, UnityEngine.Vector3 s)
IL_02CF: call static PropManager
ColossalFramework.Singleton`1<PropManager>::get_instance()
IL_02D4: stloc.s 14 (PropManager)
IL_02D6: ldloc.s 14 (PropManager)
IL_02D8: ldfld UnityEngine.MaterialPropertyBlock PropManager::m_materialBlock
IL_02DD: stloc.s 15 (UnityEngine.MaterialPropertyBlock)
IL_02DF: ldloc.s 15 (UnityEngine.MaterialPropertyBlock)
IL_02E1: callvirt System.Void UnityEngine.MaterialPropertyBlock::Clear()
IL_02E6: ldloc.s 15 (UnityEngine.MaterialPropertyBlock)
IL_02E8: ldloc.s 14 (PropManager)
IL_02EA: ldfld System.Int32 PropManager::ID_Color
IL_02EF: ldarg.s 6
IL_02F1: callvirt System.Void
UnityEngine.MaterialPropertyBlock::SetColor(System.Int32 nameID, UnityEngine.Color
value)
IL_02F6: ldloc.s 15 (UnityEngine.MaterialPropertyBlock)
IL_02F8: ldloc.s 14 (PropManager)
IL_02FA: ldfld System.Int32 PropManager::ID_HeightMap
IL_02FF: ldarg.s 9
IL_0301: callvirt System.Void
UnityEngine.MaterialPropertyBlock::SetTexture(System.Int32 nameID,
UnityEngine.Texture value)
IL_0306: ldloc.s 15 (UnityEngine.MaterialPropertyBlock)
IL_0308: ldloc.s 14 (PropManager)
IL_030A: ldfld System.Int32 PropManager::ID_HeightMapping
IL_030F: ldarg.s 10
IL_0311: callvirt System.Void
UnityEngine.MaterialPropertyBlock::SetVector(System.Int32 nameID,
UnityEngine.Vector4 value)
IL_0316: ldloc.s 15 (UnityEngine.MaterialPropertyBlock)
IL_0318: ldloc.s 14 (PropManager)
IL_031A: ldfld System.Int32 PropManager::ID_SurfaceMapping
IL_031F: ldarg.s 11
IL_0321: callvirt System.Void
UnityEngine.MaterialPropertyBlock::SetVector(System.Int32 nameID,
UnityEngine.Vector4 value)
IL_0326: ldloc.s 15 (UnityEngine.MaterialPropertyBlock)
IL_0328: ldloc.s 14 (PropManager)
IL_032A: ldfld System.Int32 PropManager::ID_ObjectIndex
IL_032F: ldarg.s 7
IL_0331: callvirt System.Void
UnityEngine.MaterialPropertyBlock::SetVector(System.Int32 nameID,
UnityEngine.Vector4 value)
IL_0336: ldloc.s 15 (UnityEngine.MaterialPropertyBlock)
IL_0338: ldloc.s 14 (PropManager)
IL_033A: ldfld System.Int32 PropManager::ID_WaterHeightMap
IL_033F: ldarg.s 12
IL_0341: callvirt System.Void
UnityEngine.MaterialPropertyBlock::SetTexture(System.Int32 nameID,
UnityEngine.Texture value)
IL_0346: ldloc.s 15 (UnityEngine.MaterialPropertyBlock)
IL_0348: ldloc.s 14 (PropManager)
IL_034A: ldfld System.Int32 PropManager::ID_WaterHeightMapping
IL_034F: ldarg.s 13
IL_0351: callvirt System.Void
UnityEngine.MaterialPropertyBlock::SetVector(System.Int32 nameID,
UnityEngine.Vector4 value)
IL_0356: ldloc.s 15 (UnityEngine.MaterialPropertyBlock)
IL_0358: ldloc.s 14 (PropManager)
IL_035A: ldfld System.Int32 PropManager::ID_WaterSurfaceMapping
IL_035F: ldarg.s 14
IL_0361: callvirt System.Void
UnityEngine.MaterialPropertyBlock::SetVector(System.Int32 nameID,
UnityEngine.Vector4 value)
IL_0366: ldarg.1
IL_0367: ldfld UnityEngine.Vector4[] PropInfo::m_rollLocation
IL_036C: brfalse => Label18
IL_0371: ldarg.1
IL_0372: ldfld UnityEngine.Material PropInfo::m_material
IL_0377: ldloc.s 14 (PropManager)
IL_0379: ldfld System.Int32 PropManager::ID_RollLocation
IL_037E: ldarg.1
IL_037F: ldfld UnityEngine.Vector4[] PropInfo::m_rollLocation
IL_0384: callvirt System.Void UnityEngine.Material::SetVectorArray(System.Int32
nameID, UnityEngine.Vector4[] values)
IL_0389: ldarg.1
IL_038A: ldfld UnityEngine.Material PropInfo::m_material
IL_038F: ldloc.s 14 (PropManager)
IL_0391: ldfld System.Int32 PropManager::ID_RollParams
IL_0396: ldarg.1
IL_0397: ldfld UnityEngine.Vector4[] PropInfo::m_rollParams
IL_039C: callvirt System.Void UnityEngine.Material::SetVectorArray(System.Int32
nameID, UnityEngine.Vector4[] values)
IL_03A1: Label18
IL_03A1: ldloc.s 14 (PropManager)
IL_03A3: ldflda DrawCallData SimulationManagerBase`2<PropManager,
PropProperties>::m_drawCallData
IL_03A8: dup
IL_03A9: ldfld System.Int32 DrawCallData::m_defaultCalls
IL_03AE: ldc.i4.1
IL_03AF: add
IL_03B0: stfld System.Int32 DrawCallData::m_defaultCalls
IL_03B5: ldarg.1
IL_03B6: ldfld UnityEngine.Mesh PropInfo::m_mesh
IL_03BB: ldloc.s 13 (UnityEngine.Matrix4x4)
IL_03BD: ldarg.1
IL_03BE: ldfld UnityEngine.Material PropInfo::m_material
IL_03C3: ldarg.1
IL_03C4: ldfld System.Int32 PrefabInfo::m_prefabDataLayer
IL_03C9: ldnull
IL_03CA: ldc.i4.0
IL_03CB: ldloc.s 15 (UnityEngine.MaterialPropertyBlock)
IL_03CD: call static System.Void
UnityEngine.Graphics::DrawMesh(UnityEngine.Mesh mesh, UnityEngine.Matrix4x4 matrix,
UnityEngine.Material material, System.Int32 layer, UnityEngine.Camera camera,
System.Int32 submeshIndex, UnityEngine.MaterialPropertyBlock properties)
IL_03D2: br => Label19
IL_03D7: Label17
IL_03D7: ldarg.s 9
IL_03D9: ldarg.1
IL_03DA: ldfld UnityEngine.Texture PropInfo::m_lodHeightMap
IL_03DF: call static System.Boolean
UnityEngine.Object::op_Inequality(UnityEngine.Object x, UnityEngine.Object y)
IL_03E4: brtrue => Label20
IL_03E9: ldarg.s 12
IL_03EB: ldarg.1
IL_03EC: ldfld UnityEngine.Texture PropInfo::m_lodWaterHeightMap
IL_03F1: call static System.Boolean
UnityEngine.Object::op_Inequality(UnityEngine.Object x, UnityEngine.Object y)
IL_03F6: brfalse => Label21
IL_03FB: Label20
IL_03FB: ldarg.1
IL_03FC: ldfld System.Int32 PropInfo::m_lodCount
IL_0401: brfalse => Label22
IL_0406: ldarg.0
IL_0407: ldarg.1
IL_0408: call static System.Void PropInstance::RenderLod(CameraInfo
cameraInfo, PropInfo info)
IL_040D: Label22
IL_040D: ldarg.1
IL_040E: ldarg.s 9
IL_0410: stfld UnityEngine.Texture PropInfo::m_lodHeightMap
IL_0415: ldarg.1
IL_0416: ldarg.s 10
IL_0418: stfld UnityEngine.Vector4 PropInfo::m_lodHeightMapping
IL_041D: ldarg.1
IL_041E: ldarg.s 11
IL_0420: stfld UnityEngine.Vector4 PropInfo::m_lodSurfaceMapping
IL_0425: ldarg.1
IL_0426: ldarg.s 12
IL_0428: stfld UnityEngine.Texture PropInfo::m_lodWaterHeightMap
IL_042D: ldarg.1
IL_042E: ldarg.s 13
IL_0430: stfld UnityEngine.Vector4 PropInfo::m_lodWaterHeightMapping
IL_0435: ldarg.1
IL_0436: ldarg.s 14
IL_0438: stfld UnityEngine.Vector4 PropInfo::m_lodWaterSurfaceMapping
IL_043D: Label21
IL_043D: ldarga.s 7
IL_043F: ldarg.s 4
IL_0441: stfld System.Single UnityEngine.Vector4::w
IL_0446: ldarg.1
IL_0447: ldfld UnityEngine.Vector4[] PropInfo::m_lodLocations
IL_044C: ldarg.1
IL_044D: ldfld System.Int32 PropInfo::m_lodCount
IL_0452: ldelema UnityEngine.Vector4
IL_0457: ldarga.s 3
IL_0459: ldfld System.Single UnityEngine.Vector3::x
IL_045E: ldarga.s 3
IL_0460: ldfld System.Single UnityEngine.Vector3::y
IL_0465: ldarga.s 3
IL_0467: ldfld System.Single UnityEngine.Vector3::z
IL_046C: ldarg.s 5
IL_046E: newobj System.Void UnityEngine.Vector4::.ctor(System.Single x,
System.Single y, System.Single z, System.Single w)
IL_0473: stobj UnityEngine.Vector4
IL_0478: ldarg.1
IL_0479: ldfld UnityEngine.Vector4[] PropInfo::m_lodObjectIndices
IL_047E: ldarg.1
IL_047F: ldfld System.Int32 PropInfo::m_lodCount
IL_0484: ldelema UnityEngine.Vector4
IL_0489: ldarg.s 7
IL_048B: stobj UnityEngine.Vector4
IL_0490: ldarg.1
IL_0491: ldfld UnityEngine.Vector4[] PropInfo::m_lodColors
IL_0496: ldarg.1
IL_0497: ldfld System.Int32 PropInfo::m_lodCount
IL_049C: ldelema UnityEngine.Vector4
IL_04A1: ldarga.s 6
IL_04A3: call UnityEngine.Color UnityEngine.Color::get_linear()
IL_04A8: call static UnityEngine.Vector4
UnityEngine.Color::op_Implicit(UnityEngine.Color c)
IL_04AD: stobj UnityEngine.Vector4
IL_04B2: ldarg.1
IL_04B3: ldarg.1
IL_04B4: ldfld UnityEngine.Vector3 PropInfo::m_lodMin
IL_04B9: ldarg.3
IL_04BA: call static UnityEngine.Vector3
UnityEngine.Vector3::Min(UnityEngine.Vector3 lhs, UnityEngine.Vector3 rhs)
IL_04BF: stfld UnityEngine.Vector3 PropInfo::m_lodMin
IL_04C4: ldarg.1
IL_04C5: ldarg.1
IL_04C6: ldfld UnityEngine.Vector3 PropInfo::m_lodMax
IL_04CB: ldarg.3
IL_04CC: call static UnityEngine.Vector3
UnityEngine.Vector3::Max(UnityEngine.Vector3 lhs, UnityEngine.Vector3 rhs)
IL_04D1: stfld UnityEngine.Vector3 PropInfo::m_lodMax
IL_04D6: ldarg.1
IL_04D7: dup
IL_04D8: ldfld System.Int32 PropInfo::m_lodCount
IL_04DD: ldc.i4.1
IL_04DE: add
IL_04DF: dup
IL_04E0: stloc.s 16 (System.Int32)
IL_04E2: stfld System.Int32 PropInfo::m_lodCount
IL_04E7: ldloc.s 16 (System.Int32)
IL_04E9: ldarg.1
IL_04EA: ldfld UnityEngine.Vector4[] PropInfo::m_lodLocations
IL_04EF: ldlen
IL_04F0: conv.i4
IL_04F1: bne.un => Label23
IL_04F6: ldarg.0
IL_04F7: ldarg.1
IL_04F8: call static System.Void PropInstance::RenderLod(CameraInfo
cameraInfo, PropInfo info)
IL_04FD: // end original
IL_04FD: Label0
IL_04FD: Label6
IL_04FD: Label7
IL_04FD: Label19
IL_04FD: Label23
IL_04FD: ret
DONE

### Patch: static System.Void PropInstance::RenderInstance(CameraInfo cameraInfo,


PropInfo info, InstanceID id, UnityEngine.Vector3 position, System.Single scale,
System.Single angle, UnityEngine.Color color, UnityEngine.Vector4 objectIndex,
System.Boolean active)
### Replacement: static System.Void
PropInstance::PropInstance.RenderInstance_Patch0(CameraInfo cameraInfo, PropInfo
info, InstanceID id, UnityEngine.Vector3 position, System.Single scale,
System.Single angle, UnityEngine.Color color, UnityEngine.Vector4 objectIndex,
System.Boolean active)
IL_0000: Local var 0: UnityEngine.Matrix4x4
IL_0000: Local var 1: System.Single
IL_0000: Local var 2: System.Int32
IL_0000: Local var 3: UnityEngine.Vector3
IL_0000: Local var 4: UnityEngine.Vector3
IL_0000: Local var 5: EffectInfo/SpawnArea
IL_0000: Local var 6: System.Single
IL_0000: Local var 7: LightSystem
IL_0000: Local var 8: ColossalFramework.Math.Randomizer
IL_0000: Local var 9: UnityEngine.Vector4
IL_0000: Local var 10: System.Single
IL_0000: Local var 11: System.Single
IL_0000: Local var 12: System.Single
IL_0000: Local var 13: UnityEngine.Matrix4x4
IL_0000: Local var 14: PropManager
IL_0000: Local var 15: UnityEngine.MaterialPropertyBlock
IL_0000: Local var 16: UnityEngine.Matrix4x4
IL_0000: Local var 17: PropManager
IL_0000: Local var 18: UnityEngine.MaterialPropertyBlock
IL_0000: Local var 19: System.Int32
IL_0000: // start original
IL_0000: ldarg.1
IL_0001: ldfld System.Boolean PrefabInfo::m_prefabInitialized
IL_0006: brfalse => Label0
IL_000B: ldarg.1
IL_000C: ldfld System.Boolean PropInfo::m_hasEffects
IL_0011: brfalse => Label1
IL_0016: ldarg.s 8
IL_0018: brtrue => Label2
IL_001D: ldarg.1
IL_001E: ldfld System.Boolean PropInfo::m_alwaysActive
IL_0023: brfalse => Label3
IL_0028: Label2
IL_0028: ldloca.s 0 (UnityEngine.Matrix4x4)
IL_002A: initobj UnityEngine.Matrix4x4
IL_0030: ldloca.s 0 (UnityEngine.Matrix4x4)
IL_0032: ldarg.3
IL_0033: ldarg.s 5
IL_0035: ldc.r4 57.29578
IL_003A: mul
IL_003B: call static UnityEngine.Vector3 UnityEngine.Vector3::get_down()
IL_0040: call static UnityEngine.Quaternion
UnityEngine.Quaternion::AngleAxis(System.Single angle, UnityEngine.Vector3 axis)
IL_0045: ldarg.s 4
IL_0047: ldarg.s 4
IL_0049: ldarg.s 4
IL_004B: newobj System.Void UnityEngine.Vector3::.ctor(System.Single x,
System.Single y, System.Single z)
IL_0050: call System.Void UnityEngine.Matrix4x4::SetTRS(UnityEngine.Vector3
pos, UnityEngine.Quaternion q, UnityEngine.Vector3 s)
IL_0055: call static SimulationManager
ColossalFramework.Singleton`1<SimulationManager>::get_instance()
IL_005A: ldfld System.Single SimulationManager::m_simulationTimeDelta
IL_005F: stloc.1
IL_0060: ldc.i4.0
IL_0061: stloc.2
IL_0062: br => Label4
IL_0067: Label5
IL_0067: ldloca.s 0 (UnityEngine.Matrix4x4)
IL_0069: ldarg.1
IL_006A: ldfld Effect[] PropInfo::m_effects
IL_006F: ldloc.2
IL_0070: ldelema PropInfo+Effect
IL_0075: ldfld UnityEngine.Vector3 Effect::m_position
IL_007A: call UnityEngine.Vector3
UnityEngine.Matrix4x4::MultiplyPoint(UnityEngine.Vector3 v)
IL_007F: stloc.3
IL_0080: ldloca.s 0 (UnityEngine.Matrix4x4)
IL_0082: ldarg.1
IL_0083: ldfld Effect[] PropInfo::m_effects
IL_0088: ldloc.2
IL_0089: ldelema PropInfo+Effect
IL_008E: ldfld UnityEngine.Vector3 Effect::m_direction
IL_0093: call UnityEngine.Vector3
UnityEngine.Matrix4x4::MultiplyVector(UnityEngine.Vector3 v)
IL_0098: stloc.s 4 (UnityEngine.Vector3)
IL_009A: ldloca.s 5 (EffectInfo+SpawnArea)
IL_009C: ldloc.3
IL_009D: ldloc.s 4 (UnityEngine.Vector3)
IL_009F: ldc.r4 0
IL_00A4: call System.Void SpawnArea::.ctor(UnityEngine.Vector3 position,
UnityEngine.Vector3 direction, System.Single radius)
IL_00A9: ldarg.1
IL_00AA: ldfld Effect[] PropInfo::m_effects
IL_00AF: ldloc.2
IL_00B0: ldelema PropInfo+Effect
IL_00B5: ldfld EffectInfo Effect::m_effect
IL_00BA: ldarg.2
IL_00BB: ldloc.s 5 (EffectInfo+SpawnArea)
IL_00BD: call static UnityEngine.Vector3 UnityEngine.Vector3::get_zero()
IL_00C2: ldc.r4 0
IL_00C7: ldc.r4 1
IL_00CC: ldc.r4 -1
IL_00D1: ldloc.1
IL_00D2: ldarg.0
IL_00D3: callvirt virtual System.Void EffectInfo::RenderEffect(InstanceID id,
SpawnArea area, UnityEngine.Vector3 velocity, System.Single acceleration,
System.Single magnitude, System.Single timeOffset, System.Single timeDelta,
CameraInfo cameraInfo)
IL_00D8: ldloc.2
IL_00D9: ldc.i4.1
IL_00DA: add
IL_00DB: stloc.2
IL_00DC: Label4
IL_00DC: ldloc.2
IL_00DD: ldarg.1
IL_00DE: ldfld Effect[] PropInfo::m_effects
IL_00E3: ldlen
IL_00E4: conv.i4
IL_00E5: blt => Label5
IL_00EA: Label1
IL_00EA: Label3
IL_00EA: ldarg.1
IL_00EB: ldfld System.Boolean PropInfo::m_hasRenderer
IL_00F0: brfalse => Label6
IL_00F5: ldarg.0
IL_00F6: ldfld System.Int32 CameraInfo::m_layerMask
IL_00FB: ldc.i4.1
IL_00FC: ldarg.1
IL_00FD: ldfld System.Int32 PrefabInfo::m_prefabDataLayer
IL_0102: ldc.i4.s 31
IL_0104: and
IL_0105: shl
IL_0106: and
IL_0107: brfalse => Label7
IL_010C: call static InfoManager
ColossalFramework.Singleton`1<InfoManager>::get_instance()
IL_0111: callvirt InfoMode InfoManager::get_CurrentMode()
IL_0116: brtrue => Label8
IL_011B: ldarg 2
IL_011F: call static System.Boolean
ElectricRoads.Overrides.ElectricRoadsOverrides::CheckElectrityNetForLight(InstanceI
D id)
IL_0124: brfalse => Label24
IL_0129: ldc.r4 0
IL_012E: stloc.s 6 (System.Single)
IL_0130: ldarg.s 8
IL_0132: brtrue => Label9
IL_0137: ldarg.1
IL_0138: ldfld System.Boolean PropInfo::m_alwaysActive
IL_013D: brtrue => Label10
IL_0142: Label24
IL_0142: ldarga.s 7
IL_0144: ldc.r4 0
IL_0149: stfld System.Single UnityEngine.Vector4::z
IL_014E: br => Label11
IL_0153: Label9
IL_0153: Label10
IL_0153: ldarg.1
IL_0154: ldflda UnityEngine.Vector2 PropInfo::m_illuminationOffRange
IL_0159: ldfld System.Single UnityEngine.Vector2::x
IL_015E: ldc.r4 1000
IL_0163: blt => Label12
IL_0168: ldarg.1
IL_0169: ldfld BlinkType PropInfo::m_illuminationBlinkType
IL_016E: brfalse => Label13
IL_0173: Label12
IL_0173: call static RenderManager
ColossalFramework.Singleton`1<RenderManager>::get_instance()
IL_0178: callvirt LightSystem RenderManager::get_lightSystem()
IL_017D: stloc.s 7 (LightSystem)
IL_017F: ldloca.s 8 (ColossalFramework.Math.Randomizer)
IL_0181: ldarga.s 2
IL_0183: call System.UInt32 InstanceID::get_Index()
IL_0188: call System.Void
ColossalFramework.Math.Randomizer::.ctor(System.UInt32 _seed)
IL_018D: ldarg.1
IL_018E: ldflda UnityEngine.Vector2 PropInfo::m_illuminationOffRange
IL_0193: ldfld System.Single UnityEngine.Vector2::x
IL_0198: ldloca.s 8 (ColossalFramework.Math.Randomizer)
IL_019A: ldc.i4 100000
IL_019F: call System.Int32
ColossalFramework.Math.Randomizer::Int32(System.UInt32 range)
IL_01A4: conv.r4
IL_01A5: ldc.r4 1E-05
IL_01AA: mul
IL_01AB: ldarg.1
IL_01AC: ldflda UnityEngine.Vector2 PropInfo::m_illuminationOffRange
IL_01B1: ldfld System.Single UnityEngine.Vector2::y
IL_01B6: ldarg.1
IL_01B7: ldflda UnityEngine.Vector2 PropInfo::m_illuminationOffRange
IL_01BC: ldfld System.Single UnityEngine.Vector2::x
IL_01C1: sub
IL_01C2: mul
IL_01C3: add
IL_01C4: stloc.s 6 (System.Single)
IL_01C6: ldarga.s 7
IL_01C8: ldloc.s 6 (System.Single)
IL_01CA: ldc.r4 0.01
IL_01CF: add
IL_01D0: ldloc.s 6 (System.Single)
IL_01D2: ldc.r4 0.01
IL_01D7: sub
IL_01D8: ldloc.s 7 (LightSystem)
IL_01DA: callvirt System.Single LightSystem::get_DayLightIntensity()
IL_01DF: call static System.Single MathUtils::SmoothStep(System.Single edge0,
System.Single edge1, System.Single x)
IL_01E4: stfld System.Single UnityEngine.Vector4::z
IL_01E9: ldarg.1
IL_01EA: ldfld BlinkType PropInfo::m_illuminationBlinkType
IL_01EF: brfalse => Label14
IL_01F4: ldarg.1
IL_01F5: ldfld BlinkType PropInfo::m_illuminationBlinkType
IL_01FA: call static UnityEngine.Vector4
LightEffect::GetBlinkVector(BlinkType type)
IL_01FF: stloc.s 9 (UnityEngine.Vector4)
IL_0201: ldloc.s 6 (System.Single)
IL_0203: ldc.r4 3.71
IL_0208: mul
IL_0209: call static SimulationManager
ColossalFramework.Singleton`1<SimulationManager>::get_instance()
IL_020E: ldfld System.Single SimulationManager::m_simulationTimer
IL_0213: ldloca.s 9 (UnityEngine.Vector4)
IL_0215: ldfld System.Single UnityEngine.Vector4::w
IL_021A: div
IL_021B: add
IL_021C: stloc.s 10 (System.Single)
IL_021E: ldloc.s 10 (System.Single)
IL_0220: ldloc.s 10 (System.Single)
IL_0222: call static System.Single UnityEngine.Mathf::Floor(System.Single f)
IL_0227: sub
IL_0228: ldloca.s 9 (UnityEngine.Vector4)
IL_022A: ldfld System.Single UnityEngine.Vector4::w
IL_022F: mul
IL_0230: stloc.s 10 (System.Single)
IL_0232: ldloca.s 9 (UnityEngine.Vector4)
IL_0234: ldfld System.Single UnityEngine.Vector4::x
IL_0239: ldloca.s 9 (UnityEngine.Vector4)
IL_023B: ldfld System.Single UnityEngine.Vector4::y
IL_0240: ldloc.s 10 (System.Single)
IL_0242: call static System.Single MathUtils::SmoothStep(System.Single edge0,
System.Single edge1, System.Single x)
IL_0247: stloc.s 11 (System.Single)
IL_0249: ldloca.s 9 (UnityEngine.Vector4)
IL_024B: ldfld System.Single UnityEngine.Vector4::w
IL_0250: ldloca.s 9 (UnityEngine.Vector4)
IL_0252: ldfld System.Single UnityEngine.Vector4::z
IL_0257: ldloc.s 10 (System.Single)
IL_0259: call static System.Single MathUtils::SmoothStep(System.Single edge0,
System.Single edge1, System.Single x)
IL_025E: stloc.s 12 (System.Single)
IL_0260: ldarga.s 7
IL_0262: dup
IL_0263: ldfld System.Single UnityEngine.Vector4::z
IL_0268: ldc.r4 1
IL_026D: ldloc.s 11 (System.Single)
IL_026F: ldloc.s 12 (System.Single)
IL_0271: mul
IL_0272: sub
IL_0273: mul
IL_0274: stfld System.Single UnityEngine.Vector4::z
IL_0279: Label14
IL_0279: br => Label15
IL_027E: Label13
IL_027E: ldarga.s 7
IL_0280: ldc.r4 1
IL_0285: stfld System.Single UnityEngine.Vector4::z
IL_028A: Label8
IL_028A: Label11
IL_028A: Label15
IL_028A: ldarg.0
IL_028B: brfalse => Label16
IL_0290: ldarg.0
IL_0291: ldarg.3
IL_0292: ldarg.1
IL_0293: ldfld System.Single PropInfo::m_lodRenderDistance
IL_0298: callvirt System.Boolean
CameraInfo::CheckRenderDistance(UnityEngine.Vector3 point, System.Single
maxDistance)
IL_029D: brfalse => Label17
IL_02A2: Label16
IL_02A2: ldloca.s 13 (UnityEngine.Matrix4x4)
IL_02A4: initobj UnityEngine.Matrix4x4
IL_02AA: ldloca.s 13 (UnityEngine.Matrix4x4)
IL_02AC: ldarg.3
IL_02AD: ldarg.s 5
IL_02AF: ldc.r4 57.29578
IL_02B4: mul
IL_02B5: call static UnityEngine.Vector3 UnityEngine.Vector3::get_down()
IL_02BA: call static UnityEngine.Quaternion
UnityEngine.Quaternion::AngleAxis(System.Single angle, UnityEngine.Vector3 axis)
IL_02BF: ldarg.s 4
IL_02C1: ldarg.s 4
IL_02C3: ldarg.s 4
IL_02C5: newobj System.Void UnityEngine.Vector3::.ctor(System.Single x,
System.Single y, System.Single z)
IL_02CA: call System.Void UnityEngine.Matrix4x4::SetTRS(UnityEngine.Vector3
pos, UnityEngine.Quaternion q, UnityEngine.Vector3 s)
IL_02CF: call static PropManager
ColossalFramework.Singleton`1<PropManager>::get_instance()
IL_02D4: stloc.s 14 (PropManager)
IL_02D6: ldloc.s 14 (PropManager)
IL_02D8: ldfld UnityEngine.MaterialPropertyBlock PropManager::m_materialBlock
IL_02DD: stloc.s 15 (UnityEngine.MaterialPropertyBlock)
IL_02DF: ldloc.s 15 (UnityEngine.MaterialPropertyBlock)
IL_02E1: callvirt System.Void UnityEngine.MaterialPropertyBlock::Clear()
IL_02E6: ldloc.s 15 (UnityEngine.MaterialPropertyBlock)
IL_02E8: ldloc.s 14 (PropManager)
IL_02EA: ldfld System.Int32 PropManager::ID_Color
IL_02EF: ldarg.s 6
IL_02F1: callvirt System.Void
UnityEngine.MaterialPropertyBlock::SetColor(System.Int32 nameID, UnityEngine.Color
value)
IL_02F6: ldloc.s 15 (UnityEngine.MaterialPropertyBlock)
IL_02F8: ldloc.s 14 (PropManager)
IL_02FA: ldfld System.Int32 PropManager::ID_ObjectIndex
IL_02FF: ldarg.s 7
IL_0301: callvirt System.Void
UnityEngine.MaterialPropertyBlock::SetVector(System.Int32 nameID,
UnityEngine.Vector4 value)
IL_0306: ldarg.1
IL_0307: ldfld UnityEngine.Vector4[] PropInfo::m_rollLocation
IL_030C: brfalse => Label18
IL_0311: ldarg.1
IL_0312: ldfld UnityEngine.Material PropInfo::m_material
IL_0317: ldloc.s 14 (PropManager)
IL_0319: ldfld System.Int32 PropManager::ID_RollLocation
IL_031E: ldarg.1
IL_031F: ldfld UnityEngine.Vector4[] PropInfo::m_rollLocation
IL_0324: callvirt System.Void UnityEngine.Material::SetVectorArray(System.Int32
nameID, UnityEngine.Vector4[] values)
IL_0329: ldarg.1
IL_032A: ldfld UnityEngine.Material PropInfo::m_material
IL_032F: ldloc.s 14 (PropManager)
IL_0331: ldfld System.Int32 PropManager::ID_RollParams
IL_0336: ldarg.1
IL_0337: ldfld UnityEngine.Vector4[] PropInfo::m_rollParams
IL_033C: callvirt System.Void UnityEngine.Material::SetVectorArray(System.Int32
nameID, UnityEngine.Vector4[] values)
IL_0341: Label18
IL_0341: ldloc.s 14 (PropManager)
IL_0343: ldflda DrawCallData SimulationManagerBase`2<PropManager,
PropProperties>::m_drawCallData
IL_0348: dup
IL_0349: ldfld System.Int32 DrawCallData::m_defaultCalls
IL_034E: ldc.i4.1
IL_034F: add
IL_0350: stfld System.Int32 DrawCallData::m_defaultCalls
IL_0355: ldarg.1
IL_0356: ldfld UnityEngine.Mesh PropInfo::m_mesh
IL_035B: ldloc.s 13 (UnityEngine.Matrix4x4)
IL_035D: ldarg.1
IL_035E: ldfld UnityEngine.Material PropInfo::m_material
IL_0363: ldarg.1
IL_0364: ldfld System.Int32 PrefabInfo::m_prefabDataLayer
IL_0369: ldnull
IL_036A: ldc.i4.0
IL_036B: ldloc.s 15 (UnityEngine.MaterialPropertyBlock)
IL_036D: call static System.Void
UnityEngine.Graphics::DrawMesh(UnityEngine.Mesh mesh, UnityEngine.Matrix4x4 matrix,
UnityEngine.Material material, System.Int32 layer, UnityEngine.Camera camera,
System.Int32 submeshIndex, UnityEngine.MaterialPropertyBlock properties)
IL_0372: br => Label19
IL_0377: Label17
IL_0377: ldarg.1
IL_0378: ldfld UnityEngine.Material PropInfo::m_lodMaterialCombined
IL_037D: ldnull
IL_037E: call static System.Boolean
UnityEngine.Object::op_Equality(UnityEngine.Object x, UnityEngine.Object y)
IL_0383: brfalse => Label20
IL_0388: ldloca.s 16 (UnityEngine.Matrix4x4)
IL_038A: initobj UnityEngine.Matrix4x4
IL_0390: ldloca.s 16 (UnityEngine.Matrix4x4)
IL_0392: ldarg.3
IL_0393: ldarg.s 5
IL_0395: ldc.r4 57.29578
IL_039A: mul
IL_039B: call static UnityEngine.Vector3 UnityEngine.Vector3::get_down()
IL_03A0: call static UnityEngine.Quaternion
UnityEngine.Quaternion::AngleAxis(System.Single angle, UnityEngine.Vector3 axis)
IL_03A5: ldarg.s 4
IL_03A7: ldarg.s 4
IL_03A9: ldarg.s 4
IL_03AB: newobj System.Void UnityEngine.Vector3::.ctor(System.Single x,
System.Single y, System.Single z)
IL_03B0: call System.Void UnityEngine.Matrix4x4::SetTRS(UnityEngine.Vector3
pos, UnityEngine.Quaternion q, UnityEngine.Vector3 s)
IL_03B5: call static PropManager
ColossalFramework.Singleton`1<PropManager>::get_instance()
IL_03BA: stloc.s 17 (PropManager)
IL_03BC: ldloc.s 17 (PropManager)
IL_03BE: ldfld UnityEngine.MaterialPropertyBlock PropManager::m_materialBlock
IL_03C3: stloc.s 18 (UnityEngine.MaterialPropertyBlock)
IL_03C5: ldloc.s 18 (UnityEngine.MaterialPropertyBlock)
IL_03C7: callvirt System.Void UnityEngine.MaterialPropertyBlock::Clear()
IL_03CC: ldloc.s 18 (UnityEngine.MaterialPropertyBlock)
IL_03CE: ldloc.s 17 (PropManager)
IL_03D0: ldfld System.Int32 PropManager::ID_Color
IL_03D5: ldarg.s 6
IL_03D7: callvirt System.Void
UnityEngine.MaterialPropertyBlock::SetColor(System.Int32 nameID, UnityEngine.Color
value)
IL_03DC: ldloc.s 18 (UnityEngine.MaterialPropertyBlock)
IL_03DE: ldloc.s 17 (PropManager)
IL_03E0: ldfld System.Int32 PropManager::ID_ObjectIndex
IL_03E5: ldarg.s 7
IL_03E7: callvirt System.Void
UnityEngine.MaterialPropertyBlock::SetVector(System.Int32 nameID,
UnityEngine.Vector4 value)
IL_03EC: ldarg.1
IL_03ED: ldfld UnityEngine.Vector4[] PropInfo::m_rollLocation
IL_03F2: brfalse => Label21
IL_03F7: ldarg.1
IL_03F8: ldfld UnityEngine.Material PropInfo::m_material
IL_03FD: ldloc.s 17 (PropManager)
IL_03FF: ldfld System.Int32 PropManager::ID_RollLocation
IL_0404: ldarg.1
IL_0405: ldfld UnityEngine.Vector4[] PropInfo::m_rollLocation
IL_040A: callvirt System.Void UnityEngine.Material::SetVectorArray(System.Int32
nameID, UnityEngine.Vector4[] values)
IL_040F: ldarg.1
IL_0410: ldfld UnityEngine.Material PropInfo::m_material
IL_0415: ldloc.s 17 (PropManager)
IL_0417: ldfld System.Int32 PropManager::ID_RollParams
IL_041C: ldarg.1
IL_041D: ldfld UnityEngine.Vector4[] PropInfo::m_rollParams
IL_0422: callvirt System.Void UnityEngine.Material::SetVectorArray(System.Int32
nameID, UnityEngine.Vector4[] values)
IL_0427: Label21
IL_0427: ldloc.s 17 (PropManager)
IL_0429: ldflda DrawCallData SimulationManagerBase`2<PropManager,
PropProperties>::m_drawCallData
IL_042E: dup
IL_042F: ldfld System.Int32 DrawCallData::m_defaultCalls
IL_0434: ldc.i4.1
IL_0435: add
IL_0436: stfld System.Int32 DrawCallData::m_defaultCalls
IL_043B: ldarg.1
IL_043C: ldfld UnityEngine.Mesh PropInfo::m_lodMesh
IL_0441: ldloc.s 16 (UnityEngine.Matrix4x4)
IL_0443: ldarg.1
IL_0444: ldfld UnityEngine.Material PropInfo::m_lodMaterial
IL_0449: ldarg.1
IL_044A: ldfld System.Int32 PrefabInfo::m_prefabDataLayer
IL_044F: ldnull
IL_0450: ldc.i4.0
IL_0451: ldloc.s 18 (UnityEngine.MaterialPropertyBlock)
IL_0453: call static System.Void
UnityEngine.Graphics::DrawMesh(UnityEngine.Mesh mesh, UnityEngine.Matrix4x4 matrix,
UnityEngine.Material material, System.Int32 layer, UnityEngine.Camera camera,
System.Int32 submeshIndex, UnityEngine.MaterialPropertyBlock properties)
IL_0458: br => Label22
IL_045D: Label20
IL_045D: ldarga.s 7
IL_045F: ldarg.s 4
IL_0461: stfld System.Single UnityEngine.Vector4::w
IL_0466: ldarg.1
IL_0467: ldfld UnityEngine.Vector4[] PropInfo::m_lodLocations
IL_046C: ldarg.1
IL_046D: ldfld System.Int32 PropInfo::m_lodCount
IL_0472: ldelema UnityEngine.Vector4
IL_0477: ldarga.s 3
IL_0479: ldfld System.Single UnityEngine.Vector3::x
IL_047E: ldarga.s 3
IL_0480: ldfld System.Single UnityEngine.Vector3::y
IL_0485: ldarga.s 3
IL_0487: ldfld System.Single UnityEngine.Vector3::z
IL_048C: ldarg.s 5
IL_048E: newobj System.Void UnityEngine.Vector4::.ctor(System.Single x,
System.Single y, System.Single z, System.Single w)
IL_0493: stobj UnityEngine.Vector4
IL_0498: ldarg.1
IL_0499: ldfld UnityEngine.Vector4[] PropInfo::m_lodObjectIndices
IL_049E: ldarg.1
IL_049F: ldfld System.Int32 PropInfo::m_lodCount
IL_04A4: ldelema UnityEngine.Vector4
IL_04A9: ldarg.s 7
IL_04AB: stobj UnityEngine.Vector4
IL_04B0: ldarg.1
IL_04B1: ldfld UnityEngine.Vector4[] PropInfo::m_lodColors
IL_04B6: ldarg.1
IL_04B7: ldfld System.Int32 PropInfo::m_lodCount
IL_04BC: ldelema UnityEngine.Vector4
IL_04C1: ldarga.s 6
IL_04C3: call UnityEngine.Color UnityEngine.Color::get_linear()
IL_04C8: call static UnityEngine.Vector4
UnityEngine.Color::op_Implicit(UnityEngine.Color c)
IL_04CD: stobj UnityEngine.Vector4
IL_04D2: ldarg.1
IL_04D3: ldarg.1
IL_04D4: ldfld UnityEngine.Vector3 PropInfo::m_lodMin
IL_04D9: ldarg.3
IL_04DA: call static UnityEngine.Vector3
UnityEngine.Vector3::Min(UnityEngine.Vector3 lhs, UnityEngine.Vector3 rhs)
IL_04DF: stfld UnityEngine.Vector3 PropInfo::m_lodMin
IL_04E4: ldarg.1
IL_04E5: ldarg.1
IL_04E6: ldfld UnityEngine.Vector3 PropInfo::m_lodMax
IL_04EB: ldarg.3
IL_04EC: call static UnityEngine.Vector3
UnityEngine.Vector3::Max(UnityEngine.Vector3 lhs, UnityEngine.Vector3 rhs)
IL_04F1: stfld UnityEngine.Vector3 PropInfo::m_lodMax
IL_04F6: ldarg.1
IL_04F7: dup
IL_04F8: ldfld System.Int32 PropInfo::m_lodCount
IL_04FD: ldc.i4.1
IL_04FE: add
IL_04FF: dup
IL_0500: stloc.s 19 (System.Int32)
IL_0502: stfld System.Int32 PropInfo::m_lodCount
IL_0507: ldloc.s 19 (System.Int32)
IL_0509: ldarg.1
IL_050A: ldfld UnityEngine.Vector4[] PropInfo::m_lodLocations
IL_050F: ldlen
IL_0510: conv.i4
IL_0511: bne.un => Label23
IL_0516: ldarg.0
IL_0517: ldarg.1
IL_0518: call static System.Void PropInstance::RenderLod(CameraInfo
cameraInfo, PropInfo info)
IL_051D: // end original
IL_051D: Label0
IL_051D: Label6
IL_051D: Label7
IL_051D: Label19
IL_051D: Label22
IL_051D: Label23
IL_051D: ret
DONE

### Patch: virtual System.Void LightEffect::PopulateGroupData(System.Int32 layer,


InstanceID id, UnityEngine.Vector3 pos, UnityEngine.Vector3 dir, 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
LightEffect::LightEffect.PopulateGroupData_Patch1(LightEffect this, System.Int32
layer, InstanceID id, UnityEngine.Vector3 pos, UnityEngine.Vector3 dir,
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.Boolean
IL_0000: Local var 1: UnityEngine.Vector3
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.Quaternion
IL_0000: Local var 7: UnityEngine.Vector4
IL_0000: Local var 8: UnityEngine.Vector2
IL_0000: Local var 9: ColossalFramework.Math.Randomizer
IL_0000: Local var 10: UnityEngine.Vector2
IL_0000: Local var 11: UnityEngine.Vector2
IL_0000: Local var 12: UnityEngine.Vector2
IL_0000: Local var 13: System.UInt16
IL_0000: Local var 14: UnityEngine.Vector3
IL_0000: Local var 15: UnityEngine.Color
IL_0000: Local var 16: UnityEngine.Color
IL_0000: Local var 17: System.Single
IL_0000: Local var 18: System.Single
IL_0000: Local var 19: System.Int32
IL_0000: Local var 20: System.Boolean
IL_0000: ldc.i4 0
IL_0005: stloc 20 (System.Boolean)
IL_0009: ldc.i4.1
IL_000A: stloc 20 (System.Boolean)
IL_000E: ldloc 20 (System.Boolean)
IL_0012: brfalse => Label1
IL_0017: ldarg 2
IL_001B: call static System.Boolean
ElectricRoads.Overrides.ElectricRoadsOverrides::CheckElectrityNetForLight(InstanceI
D id)
IL_0020: stloc 20 (System.Boolean)
IL_0024: Label1
IL_0024: nop
IL_0025: ldloc 20 (System.Boolean)
IL_0029: brfalse => Label0
IL_002E: // start original
IL_002E: ldarg.1
IL_002F: ldarg.0
IL_0030: ldfld System.Int32 LightEffect::m_groupLayer
IL_0035: beq => Label2
IL_003A: ldarg.1
IL_003B: ldarg.0
IL_003C: ldfld System.Int32 LightEffect::m_groupLayerFloating
IL_0041: bne.un => Label3
IL_0046: Label2
IL_0046: ldarg.1
IL_0047: ldarg.0
IL_0048: ldfld System.Int32 LightEffect::m_groupLayerFloating
IL_004D: ceq
IL_004F: stloc.0
IL_0050: ldloca.s 1 (UnityEngine.Vector3)
IL_0052: ldarg.0
IL_0053: ldfld System.Single LightEffect::m_lightRange
IL_0058: ldarg.0
IL_0059: ldfld System.Single LightEffect::m_lightRange
IL_005E: ldarg.0
IL_005F: ldfld System.Single LightEffect::m_lightRange
IL_0064: call System.Void UnityEngine.Vector3::.ctor(System.Single x,
System.Single y, System.Single z)
IL_0069: ldarg.3
IL_006A: ldloc.1
IL_006B: call static UnityEngine.Vector3
UnityEngine.Vector3::op_Subtraction(UnityEngine.Vector3 a, UnityEngine.Vector3 b)
IL_0070: stloc.2
IL_0071: ldarg.3
IL_0072: ldloc.1
IL_0073: call static UnityEngine.Vector3
UnityEngine.Vector3::op_Addition(UnityEngine.Vector3 a, UnityEngine.Vector3 b)
IL_0078: stloc.3
IL_0079: ldarg.s 9
IL_007B: ldarg.s 9
IL_007D: ldobj UnityEngine.Vector3
IL_0082: ldloc.2
IL_0083: call static UnityEngine.Vector3
UnityEngine.Vector3::Min(UnityEngine.Vector3 lhs, UnityEngine.Vector3 rhs)
IL_0088: stobj UnityEngine.Vector3
IL_008D: ldarg.s 10
IL_008F: ldarg.s 10
IL_0091: ldobj UnityEngine.Vector3
IL_0096: ldloc.3
IL_0097: call static UnityEngine.Vector3
UnityEngine.Vector3::Max(UnityEngine.Vector3 lhs, UnityEngine.Vector3 rhs)
IL_009C: stobj UnityEngine.Vector3
IL_00A1: ldarg.3
IL_00A2: ldarg.s 7
IL_00A4: call static UnityEngine.Vector3
UnityEngine.Vector3::op_Subtraction(UnityEngine.Vector3 a, UnityEngine.Vector3 b)
IL_00A9: stloc.s 4 (UnityEngine.Vector3)
IL_00AB: ldarg.s 11
IL_00AD: ldarg.s 11
IL_00AF: ldind.r4
IL_00B0: ldc.r4 30000
IL_00B5: call static System.Single UnityEngine.Mathf::Max(System.Single a,
System.Single b)
IL_00BA: stind.r4
IL_00BB: ldarg.0
IL_00BC: ldfld UnityEngine.LightType LightEffect::m_lightType
IL_00C1: brtrue => Label4
IL_00C6: ldarg.s 4
IL_00C8: call static UnityEngine.Quaternion
UnityEngine.Quaternion::LookRotation(UnityEngine.Vector3 forward)
IL_00CD: stloc.s 6 (UnityEngine.Quaternion)
IL_00CF: ldloc.s 6 (UnityEngine.Quaternion)
IL_00D1: ldarg.0
IL_00D2: ldfld UnityEngine.Quaternion LightEffect::m_lightRotation
IL_00D7: call static UnityEngine.Vector3 UnityEngine.Vector3::get_forward()
IL_00DC: call static UnityEngine.Vector3
UnityEngine.Quaternion::op_Multiply(UnityEngine.Quaternion rotation,
UnityEngine.Vector3 point)
IL_00E1: call static UnityEngine.Vector3
UnityEngine.Quaternion::op_Multiply(UnityEngine.Quaternion rotation,
UnityEngine.Vector3 point)
IL_00E6: stloc.s 5 (UnityEngine.Vector3)
IL_00E8: br => Label5
IL_00ED: Label4
IL_00ED: call static UnityEngine.Vector3 UnityEngine.Vector3::get_forward()
IL_00F2: stloc.s 5 (UnityEngine.Vector3)
IL_00F4: Label5
IL_00F4: ldloca.s 7 (UnityEngine.Vector4)
IL_00F6: ldloca.s 5 (UnityEngine.Vector3)
IL_00F8: ldfld System.Single UnityEngine.Vector3::x
IL_00FD: ldloca.s 5 (UnityEngine.Vector3)
IL_00FF: ldfld System.Single UnityEngine.Vector3::y
IL_0104: ldloca.s 5 (UnityEngine.Vector3)
IL_0106: ldfld System.Single UnityEngine.Vector3::z
IL_010B: ldc.r4 100000
IL_0110: call System.Void UnityEngine.Vector4::.ctor(System.Single x,
System.Single y, System.Single z, System.Single w)
IL_0115: ldarg.0
IL_0116: ldfld UnityEngine.LightType LightEffect::m_lightType
IL_011B: brtrue => Label6
IL_0120: ldloca.s 7 (UnityEngine.Vector4)
IL_0122: ldc.r4 0.01745329
IL_0127: ldarg.0
IL_0128: ldfld System.Single LightEffect::m_lightSpotAngle
IL_012D: mul
IL_012E: ldc.r4 0.5
IL_0133: mul
IL_0134: call static System.Single UnityEngine.Mathf::Cos(System.Single f)
IL_0139: neg
IL_013A: stfld System.Single UnityEngine.Vector4::w
IL_013F: Label6
IL_013F: ldloca.s 8 (UnityEngine.Vector2)
IL_0141: ldc.r4 1
IL_0146: ldarg.0
IL_0147: ldfld System.Single LightEffect::m_lightRange
IL_014C: ldarg.0
IL_014D: ldfld System.Single LightEffect::m_lightRange
IL_0152: mul
IL_0153: div
IL_0154: ldarg.0
IL_0155: ldfld System.Single LightEffect::m_lightIntensity
IL_015A: call System.Void UnityEngine.Vector2::.ctor(System.Single x,
System.Single y)
IL_015F: ldloca.s 9 (ColossalFramework.Math.Randomizer)
IL_0161: ldarga.s 2
IL_0163: call System.UInt32 InstanceID::get_Index()
IL_0168: call System.Void
ColossalFramework.Math.Randomizer::.ctor(System.UInt32 _seed)
IL_016D: ldloca.s 10 (UnityEngine.Vector2)
IL_016F: ldarg.0
IL_0170: ldflda UnityEngine.Vector2 LightEffect::m_offRange
IL_0175: ldfld System.Single UnityEngine.Vector2::x
IL_017A: ldloca.s 9 (ColossalFramework.Math.Randomizer)
IL_017C: ldc.i4 100000
IL_0181: call System.Int32
ColossalFramework.Math.Randomizer::Int32(System.UInt32 range)
IL_0186: conv.r4
IL_0187: ldc.r4 1E-05
IL_018C: mul
IL_018D: ldarg.0
IL_018E: ldflda UnityEngine.Vector2 LightEffect::m_offRange
IL_0193: ldfld System.Single UnityEngine.Vector2::y
IL_0198: ldarg.0
IL_0199: ldflda UnityEngine.Vector2 LightEffect::m_offRange
IL_019E: ldfld System.Single UnityEngine.Vector2::x
IL_01A3: sub
IL_01A4: mul
IL_01A5: add
IL_01A6: stfld System.Single UnityEngine.Vector2::x
IL_01AB: ldloca.s 10 (UnityEngine.Vector2)
IL_01AD: ldarg.0
IL_01AE: ldfld BlinkType LightEffect::m_blinkType
IL_01B3: conv.r4
IL_01B4: stfld System.Single UnityEngine.Vector2::y
IL_01B9: ldarg.2
IL_01BA: call static System.UInt16 EffectInfo::GetBuilding(InstanceID id)
IL_01BF: stloc.s 13 (System.UInt16)
IL_01C1: ldloc.s 13 (System.UInt16)
IL_01C3: brfalse => Label7
IL_01C8: ldloc.s 13 (System.UInt16)
IL_01CA: call static UnityEngine.Vector4
RenderManager::GetColorLocation(System.UInt32 instanceHolder)
IL_01CF: call static UnityEngine.Vector2
UnityEngine.Vector4::op_Implicit(UnityEngine.Vector4 v)
IL_01D4: stloc.s 11 (UnityEngine.Vector2)
IL_01D6: ldloc.0
IL_01D7: brfalse => Label8
IL_01DC: call static BuildingManager
ColossalFramework.Singleton`1<BuildingManager>::get_instance()
IL_01E1: ldfld Array16`1<Building> BuildingManager::m_buildings
IL_01E6: ldfld Building[] Array16`1<Building>::m_buffer
IL_01EB: ldloc.s 13 (System.UInt16)
IL_01ED: ldelema Building
IL_01F2: call UnityEngine.Vector3 Building::CalculateMeshPosition()
IL_01F7: stloc.s 14 (UnityEngine.Vector3)
IL_01F9: ldloc.s 14 (UnityEngine.Vector3)
IL_01FB: call static UnityEngine.Vector2
ColossalFramework.Math.VectorUtils::XZ(UnityEngine.Vector3 v)
IL_0200: stloc.s 12 (UnityEngine.Vector2)
IL_0202: ldarga.s 3
IL_0204: dup
IL_0205: ldfld System.Single UnityEngine.Vector3::y
IL_020A: ldloca.s 14 (UnityEngine.Vector3)
IL_020C: ldfld System.Single UnityEngine.Vector3::y
IL_0211: sub
IL_0212: stfld System.Single UnityEngine.Vector3::y
IL_0217: ldloca.s 4 (UnityEngine.Vector3)
IL_0219: dup
IL_021A: ldfld System.Single UnityEngine.Vector3::y
IL_021F: ldloca.s 14 (UnityEngine.Vector3)
IL_0221: ldfld System.Single UnityEngine.Vector3::y
IL_0226: sub
IL_0227: stfld System.Single UnityEngine.Vector3::y
IL_022C: br => Label9
IL_0231: Label8
IL_0231: call static UnityEngine.Vector2 UnityEngine.Vector2::get_zero()
IL_0236: stloc.s 12 (UnityEngine.Vector2)
IL_0238: Label9
IL_0238: br => Label10
IL_023D: Label7
IL_023D: ldsfld UnityEngine.Vector4 RenderManager::DefaultColorLocation
IL_0242: call static UnityEngine.Vector2
UnityEngine.Vector4::op_Implicit(UnityEngine.Vector4 v)
IL_0247: stloc.s 11 (UnityEngine.Vector2)
IL_0249: call static UnityEngine.Vector2 UnityEngine.Vector2::get_zero()
IL_024E: stloc.s 12 (UnityEngine.Vector2)
IL_0250: Label10
IL_0250: ldarg.0
IL_0251: ldfld UnityEngine.Color LightEffect::m_lightColor
IL_0256: stloc.s 15 (UnityEngine.Color)
IL_0258: ldarg.0
IL_0259: ldfld UnityEngine.Color[] LightEffect::m_variationColors
IL_025E: brfalse => Label11
IL_0263: ldarg.0
IL_0264: ldfld UnityEngine.Color[] LightEffect::m_variationColors
IL_0269: ldlen
IL_026A: conv.i4
IL_026B: brfalse => Label12
IL_0270: ldarg.0
IL_0271: ldfld UnityEngine.Color[] LightEffect::m_variationColors
IL_0276: ldloca.s 9 (ColossalFramework.Math.Randomizer)
IL_0278: ldarg.0
IL_0279: ldfld UnityEngine.Color[] LightEffect::m_variationColors
IL_027E: ldlen
IL_027F: conv.i4
IL_0280: call System.Int32
ColossalFramework.Math.Randomizer::Int32(System.UInt32 range)
IL_0285: ldelema UnityEngine.Color
IL_028A: ldobj UnityEngine.Color
IL_028F: stloc.s 16 (UnityEngine.Color)
IL_0291: ldloc.s 15 (UnityEngine.Color)
IL_0293: ldloc.s 16 (UnityEngine.Color)
IL_0295: ldloca.s 9 (ColossalFramework.Math.Randomizer)
IL_0297: ldc.i4 1000
IL_029C: call System.Int32
ColossalFramework.Math.Randomizer::Int32(System.UInt32 range)
IL_02A1: conv.r4
IL_02A2: ldc.r4 0.001
IL_02A7: mul
IL_02A8: call static UnityEngine.Color
UnityEngine.Color::Lerp(UnityEngine.Color a, UnityEngine.Color b, System.Single t)
IL_02AD: stloc.s 15 (UnityEngine.Color)
IL_02AF: Label11
IL_02AF: Label12
IL_02AF: ldloca.s 15 (UnityEngine.Color)
IL_02B1: call UnityEngine.Color UnityEngine.Color::get_linear()
IL_02B6: stloc.s 15 (UnityEngine.Color)
IL_02B8: ldloca.s 15 (UnityEngine.Color)
IL_02BA: ldarg.0
IL_02BB: ldfld UnityEngine.LightType LightEffect::m_lightType
IL_02C0: brtrue => Label13
IL_02C5: ldarg.0
IL_02C6: ldfld System.Single LightEffect::m_spotLeaking
IL_02CB: br => Label14
IL_02D0: Label13
IL_02D0: ldc.r4 0
IL_02D5: Label14
IL_02D5: stfld System.Single UnityEngine.Color::a
IL_02DA: ldarg.0
IL_02DB: ldfld System.Single LightEffect::m_lightRange
IL_02E0: ldc.r4 0.5235988
IL_02E5: call static System.Single UnityEngine.Mathf::Cos(System.Single f)
IL_02EA: div
IL_02EB: stloc.s 17 (System.Single)
IL_02ED: ldloc.s 17 (System.Single)
IL_02EF: ldc.r4 0.5
IL_02F4: mul
IL_02F5: stloc.s 18 (System.Single)
IL_02F7: ldarg.s 8
IL_02F9: ldfld UnityEngine.Vector3[] MeshData::m_vertices
IL_02FE: ldarg.s 5
IL_0300: ldind.i4
IL_0301: ldelema UnityEngine.Vector3
IL_0306: ldloca.s 4 (UnityEngine.Vector3)
IL_0308: ldfld System.Single UnityEngine.Vector3::x
IL_030D: ldloc.s 18 (System.Single)
IL_030F: sub
IL_0310: ldloca.s 4 (UnityEngine.Vector3)
IL_0312: ldfld System.Single UnityEngine.Vector3::y
IL_0317: ldarg.0
IL_0318: ldfld System.Single LightEffect::m_lightRange
IL_031D: add
IL_031E: ldloca.s 4 (UnityEngine.Vector3)
IL_0320: ldfld System.Single UnityEngine.Vector3::z
IL_0325: ldarg.0
IL_0326: ldfld System.Single LightEffect::m_lightRange
IL_032B: add
IL_032C: newobj System.Void UnityEngine.Vector3::.ctor(System.Single x,
System.Single y, System.Single z)
IL_0331: stobj UnityEngine.Vector3
IL_0336: ldarg.s 8
IL_0338: ldfld UnityEngine.Vector3[] MeshData::m_normals
IL_033D: ldarg.s 5
IL_033F: ldind.i4
IL_0340: ldelema UnityEngine.Vector3
IL_0345: ldarg.3
IL_0346: stobj UnityEngine.Vector3
IL_034B: ldarg.s 8
IL_034D: ldfld UnityEngine.Vector4[] MeshData::m_tangents
IL_0352: ldarg.s 5
IL_0354: ldind.i4
IL_0355: ldelema UnityEngine.Vector4
IL_035A: ldloc.s 7 (UnityEngine.Vector4)
IL_035C: stobj UnityEngine.Vector4
IL_0361: ldarg.s 8
IL_0363: ldfld UnityEngine.Vector2[] MeshData::m_uvs
IL_0368: ldarg.s 5
IL_036A: ldind.i4
IL_036B: ldelema UnityEngine.Vector2
IL_0370: ldloc.s 8 (UnityEngine.Vector2)
IL_0372: stobj UnityEngine.Vector2
IL_0377: ldarg.s 8
IL_0379: ldfld UnityEngine.Vector2[] MeshData::m_uvs2
IL_037E: ldarg.s 5
IL_0380: ldind.i4
IL_0381: ldelema UnityEngine.Vector2
IL_0386: ldloc.s 10 (UnityEngine.Vector2)
IL_0388: stobj UnityEngine.Vector2
IL_038D: ldarg.s 8
IL_038F: ldfld UnityEngine.Vector2[] MeshData::m_uvs3
IL_0394: ldarg.s 5
IL_0396: ldind.i4
IL_0397: ldelema UnityEngine.Vector2
IL_039C: ldloc.s 11 (UnityEngine.Vector2)
IL_039E: stobj UnityEngine.Vector2
IL_03A3: ldloc.0
IL_03A4: brfalse => Label15
IL_03A9: ldarg.s 8
IL_03AB: ldfld UnityEngine.Vector2[] MeshData::m_uvs4
IL_03B0: ldarg.s 5
IL_03B2: ldind.i4
IL_03B3: ldelema UnityEngine.Vector2
IL_03B8: ldloc.s 12 (UnityEngine.Vector2)
IL_03BA: stobj UnityEngine.Vector2
IL_03BF: Label15
IL_03BF: ldarg.s 8
IL_03C1: ldfld UnityEngine.Color32[] MeshData::m_colors
IL_03C6: ldarg.s 5
IL_03C8: ldind.i4
IL_03C9: ldelema UnityEngine.Color32
IL_03CE: ldloc.s 15 (UnityEngine.Color)
IL_03D0: call static UnityEngine.Color32
UnityEngine.Color32::op_Implicit(UnityEngine.Color c)
IL_03D5: stobj UnityEngine.Color32
IL_03DA: ldarg.s 5
IL_03DC: ldarg.s 5
IL_03DE: ldind.i4
IL_03DF: ldc.i4.1
IL_03E0: add
IL_03E1: stind.i4
IL_03E2: ldarg.s 8
IL_03E4: ldfld UnityEngine.Vector3[] MeshData::m_vertices
IL_03E9: ldarg.s 5
IL_03EB: ldind.i4
IL_03EC: ldelema UnityEngine.Vector3
IL_03F1: ldloca.s 4 (UnityEngine.Vector3)
IL_03F3: ldfld System.Single UnityEngine.Vector3::x
IL_03F8: ldloc.s 18 (System.Single)
IL_03FA: add
IL_03FB: ldloca.s 4 (UnityEngine.Vector3)
IL_03FD: ldfld System.Single UnityEngine.Vector3::y
IL_0402: ldarg.0
IL_0403: ldfld System.Single LightEffect::m_lightRange
IL_0408: add
IL_0409: ldloca.s 4 (UnityEngine.Vector3)
IL_040B: ldfld System.Single UnityEngine.Vector3::z
IL_0410: ldarg.0
IL_0411: ldfld System.Single LightEffect::m_lightRange
IL_0416: add
IL_0417: newobj System.Void UnityEngine.Vector3::.ctor(System.Single x,
System.Single y, System.Single z)
IL_041C: stobj UnityEngine.Vector3
IL_0421: ldarg.s 8
IL_0423: ldfld UnityEngine.Vector3[] MeshData::m_normals
IL_0428: ldarg.s 5
IL_042A: ldind.i4
IL_042B: ldelema UnityEngine.Vector3
IL_0430: ldarg.3
IL_0431: stobj UnityEngine.Vector3
IL_0436: ldarg.s 8
IL_0438: ldfld UnityEngine.Vector4[] MeshData::m_tangents
IL_043D: ldarg.s 5
IL_043F: ldind.i4
IL_0440: ldelema UnityEngine.Vector4
IL_0445: ldloc.s 7 (UnityEngine.Vector4)
IL_0447: stobj UnityEngine.Vector4
IL_044C: ldarg.s 8
IL_044E: ldfld UnityEngine.Vector2[] MeshData::m_uvs
IL_0453: ldarg.s 5
IL_0455: ldind.i4
IL_0456: ldelema UnityEngine.Vector2
IL_045B: ldloc.s 8 (UnityEngine.Vector2)
IL_045D: stobj UnityEngine.Vector2
IL_0462: ldarg.s 8
IL_0464: ldfld UnityEngine.Vector2[] MeshData::m_uvs2
IL_0469: ldarg.s 5
IL_046B: ldind.i4
IL_046C: ldelema UnityEngine.Vector2
IL_0471: ldloc.s 10 (UnityEngine.Vector2)
IL_0473: stobj UnityEngine.Vector2
IL_0478: ldarg.s 8
IL_047A: ldfld UnityEngine.Vector2[] MeshData::m_uvs3
IL_047F: ldarg.s 5
IL_0481: ldind.i4
IL_0482: ldelema UnityEngine.Vector2
IL_0487: ldloc.s 11 (UnityEngine.Vector2)
IL_0489: stobj UnityEngine.Vector2
IL_048E: ldloc.0
IL_048F: brfalse => Label16
IL_0494: ldarg.s 8
IL_0496: ldfld UnityEngine.Vector2[] MeshData::m_uvs4
IL_049B: ldarg.s 5
IL_049D: ldind.i4
IL_049E: ldelema UnityEngine.Vector2
IL_04A3: ldloc.s 12 (UnityEngine.Vector2)
IL_04A5: stobj UnityEngine.Vector2
IL_04AA: Label16
IL_04AA: ldarg.s 8
IL_04AC: ldfld UnityEngine.Color32[] MeshData::m_colors
IL_04B1: ldarg.s 5
IL_04B3: ldind.i4
IL_04B4: ldelema UnityEngine.Color32
IL_04B9: ldloc.s 15 (UnityEngine.Color)
IL_04BB: call static UnityEngine.Color32
UnityEngine.Color32::op_Implicit(UnityEngine.Color c)
IL_04C0: stobj UnityEngine.Color32
IL_04C5: ldarg.s 5
IL_04C7: ldarg.s 5
IL_04C9: ldind.i4
IL_04CA: ldc.i4.1
IL_04CB: add
IL_04CC: stind.i4
IL_04CD: ldarg.s 8
IL_04CF: ldfld UnityEngine.Vector3[] MeshData::m_vertices
IL_04D4: ldarg.s 5
IL_04D6: ldind.i4
IL_04D7: ldelema UnityEngine.Vector3
IL_04DC: ldloca.s 4 (UnityEngine.Vector3)
IL_04DE: ldfld System.Single UnityEngine.Vector3::x
IL_04E3: ldloc.s 17 (System.Single)
IL_04E5: add
IL_04E6: ldloca.s 4 (UnityEngine.Vector3)
IL_04E8: ldfld System.Single UnityEngine.Vector3::y
IL_04ED: ldloca.s 4 (UnityEngine.Vector3)
IL_04EF: ldfld System.Single UnityEngine.Vector3::z
IL_04F4: ldarg.0
IL_04F5: ldfld System.Single LightEffect::m_lightRange
IL_04FA: add
IL_04FB: newobj System.Void UnityEngine.Vector3::.ctor(System.Single x,
System.Single y, System.Single z)
IL_0500: stobj UnityEngine.Vector3
IL_0505: ldarg.s 8
IL_0507: ldfld UnityEngine.Vector3[] MeshData::m_normals
IL_050C: ldarg.s 5
IL_050E: ldind.i4
IL_050F: ldelema UnityEngine.Vector3
IL_0514: ldarg.3
IL_0515: stobj UnityEngine.Vector3
IL_051A: ldarg.s 8
IL_051C: ldfld UnityEngine.Vector4[] MeshData::m_tangents
IL_0521: ldarg.s 5
IL_0523: ldind.i4
IL_0524: ldelema UnityEngine.Vector4
IL_0529: ldloc.s 7 (UnityEngine.Vector4)
IL_052B: stobj UnityEngine.Vector4
IL_0530: ldarg.s 8
IL_0532: ldfld UnityEngine.Vector2[] MeshData::m_uvs
IL_0537: ldarg.s 5
IL_0539: ldind.i4
IL_053A: ldelema UnityEngine.Vector2
IL_053F: ldloc.s 8 (UnityEngine.Vector2)
IL_0541: stobj UnityEngine.Vector2
IL_0546: ldarg.s 8
IL_0548: ldfld UnityEngine.Vector2[] MeshData::m_uvs2
IL_054D: ldarg.s 5
IL_054F: ldind.i4
IL_0550: ldelema UnityEngine.Vector2
IL_0555: ldloc.s 10 (UnityEngine.Vector2)
IL_0557: stobj UnityEngine.Vector2
IL_055C: ldarg.s 8
IL_055E: ldfld UnityEngine.Vector2[] MeshData::m_uvs3
IL_0563: ldarg.s 5
IL_0565: ldind.i4
IL_0566: ldelema UnityEngine.Vector2
IL_056B: ldloc.s 11 (UnityEngine.Vector2)
IL_056D: stobj UnityEngine.Vector2
IL_0572: ldloc.0
IL_0573: brfalse => Label17
IL_0578: ldarg.s 8
IL_057A: ldfld UnityEngine.Vector2[] MeshData::m_uvs4
IL_057F: ldarg.s 5
IL_0581: ldind.i4
IL_0582: ldelema UnityEngine.Vector2
IL_0587: ldloc.s 12 (UnityEngine.Vector2)
IL_0589: stobj UnityEngine.Vector2
IL_058E: Label17
IL_058E: ldarg.s 8
IL_0590: ldfld UnityEngine.Color32[] MeshData::m_colors
IL_0595: ldarg.s 5
IL_0597: ldind.i4
IL_0598: ldelema UnityEngine.Color32
IL_059D: ldloc.s 15 (UnityEngine.Color)
IL_059F: call static UnityEngine.Color32
UnityEngine.Color32::op_Implicit(UnityEngine.Color c)
IL_05A4: stobj UnityEngine.Color32
IL_05A9: ldarg.s 5
IL_05AB: ldarg.s 5
IL_05AD: ldind.i4
IL_05AE: ldc.i4.1
IL_05AF: add
IL_05B0: stind.i4
IL_05B1: ldarg.s 8
IL_05B3: ldfld UnityEngine.Vector3[] MeshData::m_vertices
IL_05B8: ldarg.s 5
IL_05BA: ldind.i4
IL_05BB: ldelema UnityEngine.Vector3
IL_05C0: ldloca.s 4 (UnityEngine.Vector3)
IL_05C2: ldfld System.Single UnityEngine.Vector3::x
IL_05C7: ldloc.s 18 (System.Single)
IL_05C9: add
IL_05CA: ldloca.s 4 (UnityEngine.Vector3)
IL_05CC: ldfld System.Single UnityEngine.Vector3::y
IL_05D1: ldarg.0
IL_05D2: ldfld System.Single LightEffect::m_lightRange
IL_05D7: sub
IL_05D8: ldloca.s 4 (UnityEngine.Vector3)
IL_05DA: ldfld System.Single UnityEngine.Vector3::z
IL_05DF: ldarg.0
IL_05E0: ldfld System.Single LightEffect::m_lightRange
IL_05E5: add
IL_05E6: newobj System.Void UnityEngine.Vector3::.ctor(System.Single x,
System.Single y, System.Single z)
IL_05EB: stobj UnityEngine.Vector3
IL_05F0: ldarg.s 8
IL_05F2: ldfld UnityEngine.Vector3[] MeshData::m_normals
IL_05F7: ldarg.s 5
IL_05F9: ldind.i4
IL_05FA: ldelema UnityEngine.Vector3
IL_05FF: ldarg.3
IL_0600: stobj UnityEngine.Vector3
IL_0605: ldarg.s 8
IL_0607: ldfld UnityEngine.Vector4[] MeshData::m_tangents
IL_060C: ldarg.s 5
IL_060E: ldind.i4
IL_060F: ldelema UnityEngine.Vector4
IL_0614: ldloc.s 7 (UnityEngine.Vector4)
IL_0616: stobj UnityEngine.Vector4
IL_061B: ldarg.s 8
IL_061D: ldfld UnityEngine.Vector2[] MeshData::m_uvs
IL_0622: ldarg.s 5
IL_0624: ldind.i4
IL_0625: ldelema UnityEngine.Vector2
IL_062A: ldloc.s 8 (UnityEngine.Vector2)
IL_062C: stobj UnityEngine.Vector2
IL_0631: ldarg.s 8
IL_0633: ldfld UnityEngine.Vector2[] MeshData::m_uvs2
IL_0638: ldarg.s 5
IL_063A: ldind.i4
IL_063B: ldelema UnityEngine.Vector2
IL_0640: ldloc.s 10 (UnityEngine.Vector2)
IL_0642: stobj UnityEngine.Vector2
IL_0647: ldarg.s 8
IL_0649: ldfld UnityEngine.Vector2[] MeshData::m_uvs3
IL_064E: ldarg.s 5
IL_0650: ldind.i4
IL_0651: ldelema UnityEngine.Vector2
IL_0656: ldloc.s 11 (UnityEngine.Vector2)
IL_0658: stobj UnityEngine.Vector2
IL_065D: ldloc.0
IL_065E: brfalse => Label18
IL_0663: ldarg.s 8
IL_0665: ldfld UnityEngine.Vector2[] MeshData::m_uvs4
IL_066A: ldarg.s 5
IL_066C: ldind.i4
IL_066D: ldelema UnityEngine.Vector2
IL_0672: ldloc.s 12 (UnityEngine.Vector2)
IL_0674: stobj UnityEngine.Vector2
IL_0679: Label18
IL_0679: ldarg.s 8
IL_067B: ldfld UnityEngine.Color32[] MeshData::m_colors
IL_0680: ldarg.s 5
IL_0682: ldind.i4
IL_0683: ldelema UnityEngine.Color32
IL_0688: ldloc.s 15 (UnityEngine.Color)
IL_068A: call static UnityEngine.Color32
UnityEngine.Color32::op_Implicit(UnityEngine.Color c)
IL_068F: stobj UnityEngine.Color32
IL_0694: ldarg.s 5
IL_0696: ldarg.s 5
IL_0698: ldind.i4
IL_0699: ldc.i4.1
IL_069A: add
IL_069B: stind.i4
IL_069C: ldarg.s 8
IL_069E: ldfld UnityEngine.Vector3[] MeshData::m_vertices
IL_06A3: ldarg.s 5
IL_06A5: ldind.i4
IL_06A6: ldelema UnityEngine.Vector3
IL_06AB: ldloca.s 4 (UnityEngine.Vector3)
IL_06AD: ldfld System.Single UnityEngine.Vector3::x
IL_06B2: ldloc.s 18 (System.Single)
IL_06B4: sub
IL_06B5: ldloca.s 4 (UnityEngine.Vector3)
IL_06B7: ldfld System.Single UnityEngine.Vector3::y
IL_06BC: ldarg.0
IL_06BD: ldfld System.Single LightEffect::m_lightRange
IL_06C2: sub
IL_06C3: ldloca.s 4 (UnityEngine.Vector3)
IL_06C5: ldfld System.Single UnityEngine.Vector3::z
IL_06CA: ldarg.0
IL_06CB: ldfld System.Single LightEffect::m_lightRange
IL_06D0: add
IL_06D1: newobj System.Void UnityEngine.Vector3::.ctor(System.Single x,
System.Single y, System.Single z)
IL_06D6: stobj UnityEngine.Vector3
IL_06DB: ldarg.s 8
IL_06DD: ldfld UnityEngine.Vector3[] MeshData::m_normals
IL_06E2: ldarg.s 5
IL_06E4: ldind.i4
IL_06E5: ldelema UnityEngine.Vector3
IL_06EA: ldarg.3
IL_06EB: stobj UnityEngine.Vector3
IL_06F0: ldarg.s 8
IL_06F2: ldfld UnityEngine.Vector4[] MeshData::m_tangents
IL_06F7: ldarg.s 5
IL_06F9: ldind.i4
IL_06FA: ldelema UnityEngine.Vector4
IL_06FF: ldloc.s 7 (UnityEngine.Vector4)
IL_0701: stobj UnityEngine.Vector4
IL_0706: ldarg.s 8
IL_0708: ldfld UnityEngine.Vector2[] MeshData::m_uvs
IL_070D: ldarg.s 5
IL_070F: ldind.i4
IL_0710: ldelema UnityEngine.Vector2
IL_0715: ldloc.s 8 (UnityEngine.Vector2)
IL_0717: stobj UnityEngine.Vector2
IL_071C: ldarg.s 8
IL_071E: ldfld UnityEngine.Vector2[] MeshData::m_uvs2
IL_0723: ldarg.s 5
IL_0725: ldind.i4
IL_0726: ldelema UnityEngine.Vector2
IL_072B: ldloc.s 10 (UnityEngine.Vector2)
IL_072D: stobj UnityEngine.Vector2
IL_0732: ldarg.s 8
IL_0734: ldfld UnityEngine.Vector2[] MeshData::m_uvs3
IL_0739: ldarg.s 5
IL_073B: ldind.i4
IL_073C: ldelema UnityEngine.Vector2
IL_0741: ldloc.s 11 (UnityEngine.Vector2)
IL_0743: stobj UnityEngine.Vector2
IL_0748: ldloc.0
IL_0749: brfalse => Label19
IL_074E: ldarg.s 8
IL_0750: ldfld UnityEngine.Vector2[] MeshData::m_uvs4
IL_0755: ldarg.s 5
IL_0757: ldind.i4
IL_0758: ldelema UnityEngine.Vector2
IL_075D: ldloc.s 12 (UnityEngine.Vector2)
IL_075F: stobj UnityEngine.Vector2
IL_0764: Label19
IL_0764: ldarg.s 8
IL_0766: ldfld UnityEngine.Color32[] MeshData::m_colors
IL_076B: ldarg.s 5
IL_076D: ldind.i4
IL_076E: ldelema UnityEngine.Color32
IL_0773: ldloc.s 15 (UnityEngine.Color)
IL_0775: call static UnityEngine.Color32
UnityEngine.Color32::op_Implicit(UnityEngine.Color c)
IL_077A: stobj UnityEngine.Color32
IL_077F: ldarg.s 5
IL_0781: ldarg.s 5
IL_0783: ldind.i4
IL_0784: ldc.i4.1
IL_0785: add
IL_0786: stind.i4
IL_0787: ldarg.s 8
IL_0789: ldfld UnityEngine.Vector3[] MeshData::m_vertices
IL_078E: ldarg.s 5
IL_0790: ldind.i4
IL_0791: ldelema UnityEngine.Vector3
IL_0796: ldloca.s 4 (UnityEngine.Vector3)
IL_0798: ldfld System.Single UnityEngine.Vector3::x
IL_079D: ldloc.s 17 (System.Single)
IL_079F: sub
IL_07A0: ldloca.s 4 (UnityEngine.Vector3)
IL_07A2: ldfld System.Single UnityEngine.Vector3::y
IL_07A7: ldloca.s 4 (UnityEngine.Vector3)
IL_07A9: ldfld System.Single UnityEngine.Vector3::z
IL_07AE: ldarg.0
IL_07AF: ldfld System.Single LightEffect::m_lightRange
IL_07B4: add
IL_07B5: newobj System.Void UnityEngine.Vector3::.ctor(System.Single x,
System.Single y, System.Single z)
IL_07BA: stobj UnityEngine.Vector3
IL_07BF: ldarg.s 8
IL_07C1: ldfld UnityEngine.Vector3[] MeshData::m_normals
IL_07C6: ldarg.s 5
IL_07C8: ldind.i4
IL_07C9: ldelema UnityEngine.Vector3
IL_07CE: ldarg.3
IL_07CF: stobj UnityEngine.Vector3
IL_07D4: ldarg.s 8
IL_07D6: ldfld UnityEngine.Vector4[] MeshData::m_tangents
IL_07DB: ldarg.s 5
IL_07DD: ldind.i4
IL_07DE: ldelema UnityEngine.Vector4
IL_07E3: ldloc.s 7 (UnityEngine.Vector4)
IL_07E5: stobj UnityEngine.Vector4
IL_07EA: ldarg.s 8
IL_07EC: ldfld UnityEngine.Vector2[] MeshData::m_uvs
IL_07F1: ldarg.s 5
IL_07F3: ldind.i4
IL_07F4: ldelema UnityEngine.Vector2
IL_07F9: ldloc.s 8 (UnityEngine.Vector2)
IL_07FB: stobj UnityEngine.Vector2
IL_0800: ldarg.s 8
IL_0802: ldfld UnityEngine.Vector2[] MeshData::m_uvs2
IL_0807: ldarg.s 5
IL_0809: ldind.i4
IL_080A: ldelema UnityEngine.Vector2
IL_080F: ldloc.s 10 (UnityEngine.Vector2)
IL_0811: stobj UnityEngine.Vector2
IL_0816: ldarg.s 8
IL_0818: ldfld UnityEngine.Vector2[] MeshData::m_uvs3
IL_081D: ldarg.s 5
IL_081F: ldind.i4
IL_0820: ldelema UnityEngine.Vector2
IL_0825: ldloc.s 11 (UnityEngine.Vector2)
IL_0827: stobj UnityEngine.Vector2
IL_082C: ldloc.0
IL_082D: brfalse => Label20
IL_0832: ldarg.s 8
IL_0834: ldfld UnityEngine.Vector2[] MeshData::m_uvs4
IL_0839: ldarg.s 5
IL_083B: ldind.i4
IL_083C: ldelema UnityEngine.Vector2
IL_0841: ldloc.s 12 (UnityEngine.Vector2)
IL_0843: stobj UnityEngine.Vector2
IL_0848: Label20
IL_0848: ldarg.s 8
IL_084A: ldfld UnityEngine.Color32[] MeshData::m_colors
IL_084F: ldarg.s 5
IL_0851: ldind.i4
IL_0852: ldelema UnityEngine.Color32
IL_0857: ldloc.s 15 (UnityEngine.Color)
IL_0859: call static UnityEngine.Color32
UnityEngine.Color32::op_Implicit(UnityEngine.Color c)
IL_085E: stobj UnityEngine.Color32
IL_0863: ldarg.s 5
IL_0865: ldarg.s 5
IL_0867: ldind.i4
IL_0868: ldc.i4.1
IL_0869: add
IL_086A: stind.i4
IL_086B: ldarg.s 8
IL_086D: ldfld System.Int32[] MeshData::m_triangles
IL_0872: ldarg.s 6
IL_0874: ldarg.s 6
IL_0876: ldind.i4
IL_0877: dup
IL_0878: stloc.s 19 (System.Int32)
IL_087A: ldc.i4.1
IL_087B: add
IL_087C: stind.i4
IL_087D: ldloc.s 19 (System.Int32)
IL_087F: ldarg.s 5
IL_0881: ldind.i4
IL_0882: ldc.i4.6
IL_0883: sub
IL_0884: stelem.i4
IL_0885: ldarg.s 8
IL_0887: ldfld System.Int32[] MeshData::m_triangles
IL_088C: ldarg.s 6
IL_088E: ldarg.s 6
IL_0890: ldind.i4
IL_0891: dup
IL_0892: stloc.s 19 (System.Int32)
IL_0894: ldc.i4.1
IL_0895: add
IL_0896: stind.i4
IL_0897: ldloc.s 19 (System.Int32)
IL_0899: ldarg.s 5
IL_089B: ldind.i4
IL_089C: ldc.i4.5
IL_089D: sub
IL_089E: stelem.i4
IL_089F: ldarg.s 8
IL_08A1: ldfld System.Int32[] MeshData::m_triangles
IL_08A6: ldarg.s 6
IL_08A8: ldarg.s 6
IL_08AA: ldind.i4
IL_08AB: dup
IL_08AC: stloc.s 19 (System.Int32)
IL_08AE: ldc.i4.1
IL_08AF: add
IL_08B0: stind.i4
IL_08B1: ldloc.s 19 (System.Int32)
IL_08B3: ldarg.s 5
IL_08B5: ldind.i4
IL_08B6: ldc.i4.1
IL_08B7: sub
IL_08B8: stelem.i4
IL_08B9: ldarg.s 8
IL_08BB: ldfld System.Int32[] MeshData::m_triangles
IL_08C0: ldarg.s 6
IL_08C2: ldarg.s 6
IL_08C4: ldind.i4
IL_08C5: dup
IL_08C6: stloc.s 19 (System.Int32)
IL_08C8: ldc.i4.1
IL_08C9: add
IL_08CA: stind.i4
IL_08CB: ldloc.s 19 (System.Int32)
IL_08CD: ldarg.s 5
IL_08CF: ldind.i4
IL_08D0: ldc.i4.1
IL_08D1: sub
IL_08D2: stelem.i4
IL_08D3: ldarg.s 8
IL_08D5: ldfld System.Int32[] MeshData::m_triangles
IL_08DA: ldarg.s 6
IL_08DC: ldarg.s 6
IL_08DE: ldind.i4
IL_08DF: dup
IL_08E0: stloc.s 19 (System.Int32)
IL_08E2: ldc.i4.1
IL_08E3: add
IL_08E4: stind.i4
IL_08E5: ldloc.s 19 (System.Int32)
IL_08E7: ldarg.s 5
IL_08E9: ldind.i4
IL_08EA: ldc.i4.5
IL_08EB: sub
IL_08EC: stelem.i4
IL_08ED: ldarg.s 8
IL_08EF: ldfld System.Int32[] MeshData::m_triangles
IL_08F4: ldarg.s 6
IL_08F6: ldarg.s 6
IL_08F8: ldind.i4
IL_08F9: dup
IL_08FA: stloc.s 19 (System.Int32)
IL_08FC: ldc.i4.1
IL_08FD: add
IL_08FE: stind.i4
IL_08FF: ldloc.s 19 (System.Int32)
IL_0901: ldarg.s 5
IL_0903: ldind.i4
IL_0904: ldc.i4.4
IL_0905: sub
IL_0906: stelem.i4
IL_0907: ldarg.s 8
IL_0909: ldfld System.Int32[] MeshData::m_triangles
IL_090E: ldarg.s 6
IL_0910: ldarg.s 6
IL_0912: ldind.i4
IL_0913: dup
IL_0914: stloc.s 19 (System.Int32)
IL_0916: ldc.i4.1
IL_0917: add
IL_0918: stind.i4
IL_0919: ldloc.s 19 (System.Int32)
IL_091B: ldarg.s 5
IL_091D: ldind.i4
IL_091E: ldc.i4.1
IL_091F: sub
IL_0920: stelem.i4
IL_0921: ldarg.s 8
IL_0923: ldfld System.Int32[] MeshData::m_triangles
IL_0928: ldarg.s 6
IL_092A: ldarg.s 6
IL_092C: ldind.i4
IL_092D: dup
IL_092E: stloc.s 19 (System.Int32)
IL_0930: ldc.i4.1
IL_0931: add
IL_0932: stind.i4
IL_0933: ldloc.s 19 (System.Int32)
IL_0935: ldarg.s 5
IL_0937: ldind.i4
IL_0938: ldc.i4.4
IL_0939: sub
IL_093A: stelem.i4
IL_093B: ldarg.s 8
IL_093D: ldfld System.Int32[] MeshData::m_triangles
IL_0942: ldarg.s 6
IL_0944: ldarg.s 6
IL_0946: ldind.i4
IL_0947: dup
IL_0948: stloc.s 19 (System.Int32)
IL_094A: ldc.i4.1
IL_094B: add
IL_094C: stind.i4
IL_094D: ldloc.s 19 (System.Int32)
IL_094F: ldarg.s 5
IL_0951: ldind.i4
IL_0952: ldc.i4.2
IL_0953: sub
IL_0954: stelem.i4
IL_0955: ldarg.s 8
IL_0957: ldfld System.Int32[] MeshData::m_triangles
IL_095C: ldarg.s 6
IL_095E: ldarg.s 6
IL_0960: ldind.i4
IL_0961: dup
IL_0962: stloc.s 19 (System.Int32)
IL_0964: ldc.i4.1
IL_0965: add
IL_0966: stind.i4
IL_0967: ldloc.s 19 (System.Int32)
IL_0969: ldarg.s 5
IL_096B: ldind.i4
IL_096C: ldc.i4.2
IL_096D: sub
IL_096E: stelem.i4
IL_096F: ldarg.s 8
IL_0971: ldfld System.Int32[] MeshData::m_triangles
IL_0976: ldarg.s 6
IL_0978: ldarg.s 6
IL_097A: ldind.i4
IL_097B: dup
IL_097C: stloc.s 19 (System.Int32)
IL_097E: ldc.i4.1
IL_097F: add
IL_0980: stind.i4
IL_0981: ldloc.s 19 (System.Int32)
IL_0983: ldarg.s 5
IL_0985: ldind.i4
IL_0986: ldc.i4.4
IL_0987: sub
IL_0988: stelem.i4
IL_0989: ldarg.s 8
IL_098B: ldfld System.Int32[] MeshData::m_triangles
IL_0990: ldarg.s 6
IL_0992: ldarg.s 6
IL_0994: ldind.i4
IL_0995: dup
IL_0996: stloc.s 19 (System.Int32)
IL_0998: ldc.i4.1
IL_0999: add
IL_099A: stind.i4
IL_099B: ldloc.s 19 (System.Int32)
IL_099D: ldarg.s 5
IL_099F: ldind.i4
IL_09A0: ldc.i4.3
IL_09A1: sub
IL_09A2: stelem.i4
IL_09A3: // end original
IL_09A3: Label3
IL_09A3: Label0
IL_09A3: ret
DONE

### Patch: virtual System.Void ElectricityManager::SimulationStepImpl(System.Int32


subStep)
### Replacement: static System.Void
ElectricityManager::ElectricityManager.SimulationStepImpl_Patch0(ElectricityManager
this, System.Int32 subStep)
IL_0000: Local var 0: System.UInt32
IL_0000: Local var 1: System.Int32
IL_0000: Local var 2: NetManager
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: NetInfo
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: ElectricityManager/Cell
IL_0000: Local var 13: ElectricityManager/PulseGroup
IL_0000: Local var 14: ElectricityManager/PulseUnit
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: ElectricityManager/PulseUnit
IL_0000: Local var 19: System.UInt32
IL_0000: Local var 20: System.Int32
IL_0000: Local var 21: ElectricityManager/Cell
IL_0000: Local var 22: System.Int32
IL_0000: Local var 23: System.Int32
IL_0000: Local var 24: NetNode
IL_0000: Local var 25: System.Int32
IL_0000: Local var 26: System.UInt16
IL_0000: Local var 27: System.UInt16
IL_0000: Local var 28: System.UInt16
IL_0000: Local var 29: System.UInt16
IL_0000: Local var 30: System.Int32
IL_0000: Local var 31: ElectricityManager/PulseGroup
IL_0000: Local var 32: ElectricityManager/PulseGroup
IL_0000: Local var 33: System.Int32
IL_0000: Local var 34: ElectricityManager/PulseGroup
IL_0000: Local var 35: System.Int32
IL_0000: Local var 36: ElectricityManager/Cell
IL_0000: // start original
IL_0000: ldarg.1
IL_0001: brfalse => Label0
IL_0006: ldarg.1
IL_0007: ldc.i4 1000
IL_000C: beq => Label1
IL_0011: call static SimulationManager
ColossalFramework.Singleton`1<SimulationManager>::get_instance()
IL_0016: ldfld System.UInt32 SimulationManager::m_currentFrameIndex
IL_001B: stloc.0
IL_001C: ldloc.0
IL_001D: ldc.i4 255
IL_0022: and
IL_0023: stloc.1
IL_0024: ldloc.1
IL_0025: ldc.i4 128
IL_002A: bge => Label2
IL_002F: ldloc.1
IL_0030: brtrue => Label3
IL_0035: ldarg.0
IL_0036: ldc.i4.0
IL_0037: stfld System.Int32 ElectricityManager::m_pulseGroupCount
IL_003C: ldarg.0
IL_003D: ldc.i4.0
IL_003E: stfld System.Int32 ElectricityManager::m_pulseUnitStart
IL_0043: ldarg.0
IL_0044: ldc.i4.0
IL_0045: stfld System.Int32 ElectricityManager::m_pulseUnitEnd
IL_004A: ldarg.0
IL_004B: ldc.i4.0
IL_004C: stfld System.Int32 ElectricityManager::m_processedCells
IL_0051: ldarg.0
IL_0052: ldc.i4.0
IL_0053: stfld System.Int32 ElectricityManager::m_conductiveCells
IL_0058: ldarg.0
IL_0059: ldc.i4.1
IL_005A: stfld System.Boolean ElectricityManager::m_canContinue
IL_005F: Label3
IL_005F: call static NetManager
ColossalFramework.Singleton`1<NetManager>::get_instance()
IL_0064: stloc.2
IL_0065: ldloc.1
IL_0066: ldc.i4 32768
IL_006B: mul
IL_006C: ldc.i4.7
IL_006D: shr
IL_006E: stloc.3
IL_006F: ldloc.1
IL_0070: ldc.i4.1
IL_0071: add
IL_0072: ldc.i4 32768
IL_0077: mul
IL_0078: ldc.i4.7
IL_0079: shr
IL_007A: ldc.i4.1
IL_007B: sub
IL_007C: stloc.s 4 (System.Int32)
IL_007E: ldloc.3
IL_007F: stloc.s 5 (System.Int32)
IL_0081: br => Label4
IL_0086: Label10
IL_0086: ldloc.2
IL_0087: ldfld Array16`1<NetNode> NetManager::m_nodes
IL_008C: ldfld NetNode[] Array16`1<NetNode>::m_buffer
IL_0091: ldloc.s 5 (System.Int32)
IL_0093: ldelema NetNode
IL_0098: ldfld Flags NetNode::m_flags
IL_009D: brfalse => Label5
IL_00A2: ldloc.2
IL_00A3: ldfld Array16`1<NetNode> NetManager::m_nodes
IL_00A8: ldfld NetNode[] Array16`1<NetNode>::m_buffer
IL_00AD: ldloc.s 5 (System.Int32)
IL_00AF: ldelema NetNode
IL_00B4: call static System.Boolean
ElectricRoads.Overrides.ElectricRoadsOverrides::CheckElectricConductibility(NetNode
& node)
IL_00B9: brfalse => Label7
IL_00BE: Label6
IL_00BE: ldarg.0
IL_00BF: ldloc.s 5 (System.Int32)
IL_00C1: ldarg.0
IL_00C2: ldfld System.UInt16[] ElectricityManager::m_nodeGroups
IL_00C7: ldloc.s 5 (System.Int32)
IL_00C9: ldelem.u2
IL_00CA: ldc.i4 65535
IL_00CF: beq => Label8
IL_00D4: ldc.i4.1
IL_00D5: br => Label9
IL_00DA: Label8
IL_00DA: ldc.i4.0
IL_00DB: Label9
IL_00DB: call System.Void
ElectricityManager::UpdateNodeElectricity(System.Int32 nodeID, System.Int32 value)
IL_00E0: ldarg.0
IL_00E1: dup
IL_00E2: ldfld System.Int32 ElectricityManager::m_conductiveCells
IL_00E7: ldc.i4.1
IL_00E8: add
IL_00E9: stfld System.Int32 ElectricityManager::m_conductiveCells
IL_00EE: Label5
IL_00EE: Label7
IL_00EE: ldarg.0
IL_00EF: ldfld System.UInt16[] ElectricityManager::m_nodeGroups
IL_00F4: ldloc.s 5 (System.Int32)
IL_00F6: ldc.i4 65535
IL_00FB: stelem.i2
IL_00FC: ldloc.s 5 (System.Int32)
IL_00FE: ldc.i4.1
IL_00FF: add
IL_0100: stloc.s 5 (System.Int32)
IL_0102: Label4
IL_0102: ldloc.s 5 (System.Int32)
IL_0104: ldloc.s 4 (System.Int32)
IL_0106: ble => Label10
IL_010B: ldloc.1
IL_010C: ldc.i4 256
IL_0111: mul
IL_0112: ldc.i4.7
IL_0113: shr
IL_0114: stloc.s 7 (System.Int32)
IL_0116: ldloc.1
IL_0117: ldc.i4.1
IL_0118: add
IL_0119: ldc.i4 256
IL_011E: mul
IL_011F: ldc.i4.7
IL_0120: shr
IL_0121: ldc.i4.1
IL_0122: sub
IL_0123: stloc.s 8 (System.Int32)
IL_0125: ldloc.s 7 (System.Int32)
IL_0127: stloc.s 9 (System.Int32)
IL_0129: br => Label11
IL_012E: Label21
IL_012E: ldloc.s 9 (System.Int32)
IL_0130: ldc.i4 256
IL_0135: mul
IL_0136: stloc.s 10 (System.Int32)
IL_0138: ldc.i4.0
IL_0139: stloc.s 11 (System.Int32)
IL_013B: br => Label12
IL_0140: Label20
IL_0140: ldarg.0
IL_0141: ldfld Cell[] ElectricityManager::m_electricityGrid
IL_0146: ldloc.s 10 (System.Int32)
IL_0148: ldelema ElectricityManager+Cell
IL_014D: ldobj ElectricityManager+Cell
IL_0152: stloc.s 12 (ElectricityManager+Cell)
IL_0154: ldloca.s 12 (ElectricityManager+Cell)
IL_0156: ldfld System.Int16 Cell::m_currentCharge
IL_015B: ldc.i4.0
IL_015C: ble => Label13
IL_0161: ldarg.0
IL_0162: ldfld System.Int32 ElectricityManager::m_pulseGroupCount
IL_0167: ldc.i4 1024
IL_016C: bge => Label14
IL_0171: ldloca.s 13 (ElectricityManager+PulseGroup)
IL_0173: ldloca.s 12 (ElectricityManager+Cell)
IL_0175: ldfld System.Int16 Cell::m_currentCharge
IL_017A: conv.u4
IL_017B: stfld System.UInt32 PulseGroup::m_origCharge
IL_0180: ldloca.s 13 (ElectricityManager+PulseGroup)
IL_0182: ldloca.s 12 (ElectricityManager+Cell)
IL_0184: ldfld System.Int16 Cell::m_currentCharge
IL_0189: conv.u4
IL_018A: stfld System.UInt32 PulseGroup::m_curCharge
IL_018F: ldloca.s 13 (ElectricityManager+PulseGroup)
IL_0191: ldc.i4.0
IL_0192: stfld System.UInt16 PulseGroup::m_mergeCount
IL_0197: ldloca.s 13 (ElectricityManager+PulseGroup)
IL_0199: ldc.i4 65535
IL_019E: stfld System.UInt16 PulseGroup::m_mergeIndex
IL_01A3: ldloca.s 13 (ElectricityManager+PulseGroup)
IL_01A5: ldloc.s 11 (System.Int32)
IL_01A7: conv.u1
IL_01A8: stfld System.Byte PulseGroup::m_x
IL_01AD: ldloca.s 13 (ElectricityManager+PulseGroup)
IL_01AF: ldloc.s 9 (System.Int32)
IL_01B1: conv.u1
IL_01B2: stfld System.Byte PulseGroup::m_z
IL_01B7: ldloca.s 14 (ElectricityManager+PulseUnit)
IL_01B9: ldarg.0
IL_01BA: ldfld System.Int32 ElectricityManager::m_pulseGroupCount
IL_01BF: conv.u2
IL_01C0: stfld System.UInt16 PulseUnit::m_group
IL_01C5: ldloca.s 14 (ElectricityManager+PulseUnit)
IL_01C7: ldc.i4.0
IL_01C8: stfld System.UInt16 PulseUnit::m_node
IL_01CD: ldloca.s 14 (ElectricityManager+PulseUnit)
IL_01CF: ldloc.s 11 (System.Int32)
IL_01D1: conv.u1
IL_01D2: stfld System.Byte PulseUnit::m_x
IL_01D7: ldloca.s 14 (ElectricityManager+PulseUnit)
IL_01D9: ldloc.s 9 (System.Int32)
IL_01DB: conv.u1
IL_01DC: stfld System.Byte PulseUnit::m_z
IL_01E1: ldloca.s 12 (ElectricityManager+Cell)
IL_01E3: ldarg.0
IL_01E4: ldfld System.Int32 ElectricityManager::m_pulseGroupCount
IL_01E9: conv.u2
IL_01EA: stfld System.UInt16 Cell::m_pulseGroup
IL_01EF: ldarg.0
IL_01F0: ldfld PulseGroup[] ElectricityManager::m_pulseGroups
IL_01F5: ldarg.0
IL_01F6: dup
IL_01F7: ldfld System.Int32 ElectricityManager::m_pulseGroupCount
IL_01FC: dup
IL_01FD: stloc.s 15 (System.Int32)
IL_01FF: ldc.i4.1
IL_0200: add
IL_0201: stfld System.Int32 ElectricityManager::m_pulseGroupCount
IL_0206: ldloc.s 15 (System.Int32)
IL_0208: ldelema ElectricityManager+PulseGroup
IL_020D: ldloc.s 13 (ElectricityManager+PulseGroup)
IL_020F: stobj ElectricityManager+PulseGroup
IL_0214: ldarg.0
IL_0215: ldfld PulseUnit[] ElectricityManager::m_pulseUnits
IL_021A: ldarg.0
IL_021B: ldfld System.Int32 ElectricityManager::m_pulseUnitEnd
IL_0220: ldelema ElectricityManager+PulseUnit
IL_0225: ldloc.s 14 (ElectricityManager+PulseUnit)
IL_0227: stobj ElectricityManager+PulseUnit
IL_022C: ldarg.0
IL_022D: dup
IL_022E: ldfld System.Int32 ElectricityManager::m_pulseUnitEnd
IL_0233: ldc.i4.1
IL_0234: add
IL_0235: dup
IL_0236: stloc.s 15 (System.Int32)
IL_0238: stfld System.Int32 ElectricityManager::m_pulseUnitEnd
IL_023D: ldloc.s 15 (System.Int32)
IL_023F: ldarg.0
IL_0240: ldfld PulseUnit[] ElectricityManager::m_pulseUnits
IL_0245: ldlen
IL_0246: conv.i4
IL_0247: bne.un => Label15
IL_024C: ldarg.0
IL_024D: ldc.i4.0
IL_024E: stfld System.Int32 ElectricityManager::m_pulseUnitEnd
IL_0253: Label15
IL_0253: br => Label16
IL_0258: Label14
IL_0258: ldloca.s 12 (ElectricityManager+Cell)
IL_025A: ldc.i4 65535
IL_025F: stfld System.UInt16 Cell::m_pulseGroup
IL_0264: Label16
IL_0264: ldloca.s 12 (ElectricityManager+Cell)
IL_0266: ldc.i4.0
IL_0267: stfld System.Int16 Cell::m_currentCharge
IL_026C: ldarg.0
IL_026D: dup
IL_026E: ldfld System.Int32 ElectricityManager::m_conductiveCells
IL_0273: ldc.i4.1
IL_0274: add
IL_0275: stfld System.Int32 ElectricityManager::m_conductiveCells
IL_027A: br => Label17
IL_027F: Label13
IL_027F: ldloca.s 12 (ElectricityManager+Cell)
IL_0281: ldc.i4 65535
IL_0286: stfld System.UInt16 Cell::m_pulseGroup
IL_028B: ldloca.s 12 (ElectricityManager+Cell)
IL_028D: ldfld System.Byte Cell::m_conductivity
IL_0292: ldc.i4.s 64
IL_0294: blt => Label18
IL_0299: ldarg.0
IL_029A: dup
IL_029B: ldfld System.Int32 ElectricityManager::m_conductiveCells
IL_02A0: ldc.i4.1
IL_02A1: add
IL_02A2: stfld System.Int32 ElectricityManager::m_conductiveCells
IL_02A7: Label17
IL_02A7: Label18
IL_02A7: ldloca.s 12 (ElectricityManager+Cell)
IL_02A9: ldfld System.Boolean Cell::m_tmpElectrified
IL_02AE: ldloca.s 12 (ElectricityManager+Cell)
IL_02B0: ldfld System.Boolean Cell::m_electrified
IL_02B5: beq => Label19
IL_02BA: ldloca.s 12 (ElectricityManager+Cell)
IL_02BC: ldloca.s 12 (ElectricityManager+Cell)
IL_02BE: ldfld System.Boolean Cell::m_tmpElectrified
IL_02C3: stfld System.Boolean Cell::m_electrified
IL_02C8: Label19
IL_02C8: ldloca.s 12 (ElectricityManager+Cell)
IL_02CA: ldloca.s 12 (ElectricityManager+Cell)
IL_02CC: ldfld System.UInt16 Cell::m_pulseGroup
IL_02D1: ldc.i4 65535
IL_02D6: ceq
IL_02D8: ldc.i4.0
IL_02D9: ceq
IL_02DB: stfld System.Boolean Cell::m_tmpElectrified
IL_02E0: ldarg.0
IL_02E1: ldfld Cell[] ElectricityManager::m_electricityGrid
IL_02E6: ldloc.s 10 (System.Int32)
IL_02E8: ldelema ElectricityManager+Cell
IL_02ED: ldloc.s 12 (ElectricityManager+Cell)
IL_02EF: stobj ElectricityManager+Cell
IL_02F4: ldloc.s 10 (System.Int32)
IL_02F6: ldc.i4.1
IL_02F7: add
IL_02F8: stloc.s 10 (System.Int32)
IL_02FA: ldloc.s 11 (System.Int32)
IL_02FC: ldc.i4.1
IL_02FD: add
IL_02FE: stloc.s 11 (System.Int32)
IL_0300: Label12
IL_0300: ldloc.s 11 (System.Int32)
IL_0302: ldc.i4 256
IL_0307: blt => Label20
IL_030C: ldloc.s 9 (System.Int32)
IL_030E: ldc.i4.1
IL_030F: add
IL_0310: stloc.s 9 (System.Int32)
IL_0312: Label11
IL_0312: ldloc.s 9 (System.Int32)
IL_0314: ldloc.s 8 (System.Int32)
IL_0316: ble => Label21
IL_031B: br => Label22
IL_0320: Label2
IL_0320: ldloc.1
IL_0321: ldc.i4.s 127
IL_0323: sub
IL_0324: ldarg.0
IL_0325: ldfld System.Int32 ElectricityManager::m_conductiveCells
IL_032A: mul
IL_032B: ldc.i4.7
IL_032C: shr
IL_032D: stloc.s 16 (System.Int32)
IL_032F: ldloc.1
IL_0330: ldc.i4 255
IL_0335: bne.un => Label23
IL_033A: ldc.i4 1000000000
IL_033F: stloc.s 16 (System.Int32)
IL_0341: Label23
IL_0341: br => Label24
IL_0346: Label54
IL_0346: ldarg.0
IL_0347: ldc.i4.0
IL_0348: stfld System.Boolean ElectricityManager::m_canContinue
IL_034D: ldarg.0
IL_034E: ldfld System.Int32 ElectricityManager::m_pulseUnitEnd
IL_0353: stloc.s 17 (System.Int32)
IL_0355: br => Label25
IL_035A: Label52
IL_035A: ldarg.0
IL_035B: ldfld PulseUnit[] ElectricityManager::m_pulseUnits
IL_0360: ldarg.0
IL_0361: ldfld System.Int32 ElectricityManager::m_pulseUnitStart
IL_0366: ldelema ElectricityManager+PulseUnit
IL_036B: ldobj ElectricityManager+PulseUnit
IL_0370: stloc.s 18 (ElectricityManager+PulseUnit)
IL_0372: ldarg.0
IL_0373: dup
IL_0374: ldfld System.Int32 ElectricityManager::m_pulseUnitStart
IL_0379: ldc.i4.1
IL_037A: add
IL_037B: dup
IL_037C: stloc.s 15 (System.Int32)
IL_037E: stfld System.Int32 ElectricityManager::m_pulseUnitStart
IL_0383: ldloc.s 15 (System.Int32)
IL_0385: ldarg.0
IL_0386: ldfld PulseUnit[] ElectricityManager::m_pulseUnits
IL_038B: ldlen
IL_038C: conv.i4
IL_038D: bne.un => Label26
IL_0392: ldarg.0
IL_0393: ldc.i4.0
IL_0394: stfld System.Int32 ElectricityManager::m_pulseUnitStart
IL_0399: Label26
IL_0399: ldloca.s 18 (ElectricityManager+PulseUnit)
IL_039B: ldarg.0
IL_039C: ldloca.s 18 (ElectricityManager+PulseUnit)
IL_039E: ldfld System.UInt16 PulseUnit::m_group
IL_03A3: call System.UInt16 ElectricityManager::GetRootGroup(System.UInt16
group)
IL_03A8: stfld System.UInt16 PulseUnit::m_group
IL_03AD: ldarg.0
IL_03AE: ldfld PulseGroup[] ElectricityManager::m_pulseGroups
IL_03B3: ldloca.s 18 (ElectricityManager+PulseUnit)
IL_03B5: ldfld System.UInt16 PulseUnit::m_group
IL_03BA: ldelema ElectricityManager+PulseGroup
IL_03BF: ldfld System.UInt32 PulseGroup::m_curCharge
IL_03C4: stloc.s 19 (System.UInt32)
IL_03C6: ldloca.s 18 (ElectricityManager+PulseUnit)
IL_03C8: ldfld System.UInt16 PulseUnit::m_node
IL_03CD: brtrue => Label27
IL_03D2: ldloca.s 18 (ElectricityManager+PulseUnit)
IL_03D4: ldfld System.Byte PulseUnit::m_z
IL_03D9: ldc.i4 256
IL_03DE: mul
IL_03DF: ldloca.s 18 (ElectricityManager+PulseUnit)
IL_03E1: ldfld System.Byte PulseUnit::m_x
IL_03E6: add
IL_03E7: stloc.s 20 (System.Int32)
IL_03E9: ldarg.0
IL_03EA: ldfld Cell[] ElectricityManager::m_electricityGrid
IL_03EF: ldloc.s 20 (System.Int32)
IL_03F1: ldelema ElectricityManager+Cell
IL_03F6: ldobj ElectricityManager+Cell
IL_03FB: stloc.s 21 (ElectricityManager+Cell)
IL_03FD: ldloca.s 21 (ElectricityManager+Cell)
IL_03FF: ldfld System.Byte Cell::m_conductivity
IL_0404: brfalse => Label28
IL_0409: ldloca.s 21 (ElectricityManager+Cell)
IL_040B: ldfld System.Boolean Cell::m_tmpElectrified
IL_0410: brtrue => Label29
IL_0415: ldloc.s 19 (System.UInt32)
IL_0417: brfalse => Label30
IL_041C: ldloca.s 21 (ElectricityManager+Cell)
IL_041E: ldfld System.Int16 Cell::m_currentCharge
IL_0423: neg
IL_0424: ldc.i4.0
IL_0425: ldloc.s 19 (System.UInt32)
IL_0427: call static System.Int32 UnityEngine.Mathf::Clamp(System.Int32
value, System.Int32 min, System.Int32 max)
IL_042C: stloc.s 22 (System.Int32)
IL_042E: ldloc.s 19 (System.UInt32)
IL_0430: ldloc.s 22 (System.Int32)
IL_0432: sub
IL_0433: stloc.s 19 (System.UInt32)
IL_0435: ldloca.s 21 (ElectricityManager+Cell)
IL_0437: dup
IL_0438: ldfld System.Int16 Cell::m_currentCharge
IL_043D: ldloc.s 22 (System.Int32)
IL_043F: conv.i2
IL_0440: add
IL_0441: conv.i2
IL_0442: stfld System.Int16 Cell::m_currentCharge
IL_0447: ldloca.s 21 (ElectricityManager+Cell)
IL_0449: ldfld System.Int16 Cell::m_currentCharge
IL_044E: brtrue => Label31
IL_0453: ldloca.s 21 (ElectricityManager+Cell)
IL_0455: ldc.i4.1
IL_0456: stfld System.Boolean Cell::m_tmpElectrified
IL_045B: Label31
IL_045B: ldarg.0
IL_045C: ldfld Cell[] ElectricityManager::m_electricityGrid
IL_0461: ldloc.s 20 (System.Int32)
IL_0463: ldelema ElectricityManager+Cell
IL_0468: ldloc.s 21 (ElectricityManager+Cell)
IL_046A: stobj ElectricityManager+Cell
IL_046F: ldarg.0
IL_0470: ldfld PulseGroup[] ElectricityManager::m_pulseGroups
IL_0475: ldloca.s 18 (ElectricityManager+PulseUnit)
IL_0477: ldfld System.UInt16 PulseUnit::m_group
IL_047C: ldelema ElectricityManager+PulseGroup
IL_0481: ldloc.s 19 (System.UInt32)
IL_0483: stfld System.UInt32 PulseGroup::m_curCharge
IL_0488: Label28
IL_0488: Label29
IL_0488: Label30
IL_0488: ldloc.s 19 (System.UInt32)
IL_048A: brfalse => Label32
IL_048F: ldloca.s 21 (ElectricityManager+Cell)
IL_0491: ldfld System.Byte Cell::m_conductivity
IL_0496: ldc.i4.s 64
IL_0498: blt => Label33
IL_049D: ldc.i4.1
IL_049E: br => Label34
IL_04A3: Label33
IL_04A3: ldc.i4.s 64
IL_04A5: Label34
IL_04A5: stloc.s 23 (System.Int32)
IL_04A7: ldarg.0
IL_04A8: dup
IL_04A9: ldfld System.Int32 ElectricityManager::m_processedCells
IL_04AE: ldc.i4.1
IL_04AF: add
IL_04B0: stfld System.Int32 ElectricityManager::m_processedCells
IL_04B5: ldloca.s 18 (ElectricityManager+PulseUnit)
IL_04B7: ldfld System.Byte PulseUnit::m_z
IL_04BC: ldc.i4.0
IL_04BD: ble => Label35
IL_04C2: ldarg.0
IL_04C3: ldarg.0
IL_04C4: ldfld Cell[] ElectricityManager::m_electricityGrid
IL_04C9: ldloc.s 20 (System.Int32)
IL_04CB: ldc.i4 256
IL_04D0: sub
IL_04D1: ldelema ElectricityManager+Cell
IL_04D6: ldloca.s 18 (ElectricityManager+PulseUnit)
IL_04D8: ldfld System.UInt16 PulseUnit::m_group
IL_04DD: ldloca.s 18 (ElectricityManager+PulseUnit)
IL_04DF: ldfld System.Byte PulseUnit::m_x
IL_04E4: ldloca.s 18 (ElectricityManager+PulseUnit)
IL_04E6: ldfld System.Byte PulseUnit::m_z
IL_04EB: ldc.i4.1
IL_04EC: sub
IL_04ED: ldloc.s 23 (System.Int32)
IL_04EF: call System.Void ElectricityManager::ConductToCell(Cell& cell,
System.UInt16 group, System.Int32 x, System.Int32 z, System.Int32 limit)
IL_04F4: Label35
IL_04F4: ldloca.s 18 (ElectricityManager+PulseUnit)
IL_04F6: ldfld System.Byte PulseUnit::m_x
IL_04FB: ldc.i4.0
IL_04FC: ble => Label36
IL_0501: ldarg.0
IL_0502: ldarg.0
IL_0503: ldfld Cell[] ElectricityManager::m_electricityGrid
IL_0508: ldloc.s 20 (System.Int32)
IL_050A: ldc.i4.1
IL_050B: sub
IL_050C: ldelema ElectricityManager+Cell
IL_0511: ldloca.s 18 (ElectricityManager+PulseUnit)
IL_0513: ldfld System.UInt16 PulseUnit::m_group
IL_0518: ldloca.s 18 (ElectricityManager+PulseUnit)
IL_051A: ldfld System.Byte PulseUnit::m_x
IL_051F: ldc.i4.1
IL_0520: sub
IL_0521: ldloca.s 18 (ElectricityManager+PulseUnit)
IL_0523: ldfld System.Byte PulseUnit::m_z
IL_0528: ldloc.s 23 (System.Int32)
IL_052A: call System.Void ElectricityManager::ConductToCell(Cell& cell,
System.UInt16 group, System.Int32 x, System.Int32 z, System.Int32 limit)
IL_052F: Label36
IL_052F: ldloca.s 18 (ElectricityManager+PulseUnit)
IL_0531: ldfld System.Byte PulseUnit::m_z
IL_0536: ldc.i4 255
IL_053B: bge => Label37
IL_0540: ldarg.0
IL_0541: ldarg.0
IL_0542: ldfld Cell[] ElectricityManager::m_electricityGrid
IL_0547: ldloc.s 20 (System.Int32)
IL_0549: ldc.i4 256
IL_054E: add
IL_054F: ldelema ElectricityManager+Cell
IL_0554: ldloca.s 18 (ElectricityManager+PulseUnit)
IL_0556: ldfld System.UInt16 PulseUnit::m_group
IL_055B: ldloca.s 18 (ElectricityManager+PulseUnit)
IL_055D: ldfld System.Byte PulseUnit::m_x
IL_0562: ldloca.s 18 (ElectricityManager+PulseUnit)
IL_0564: ldfld System.Byte PulseUnit::m_z
IL_0569: ldc.i4.1
IL_056A: add
IL_056B: ldloc.s 23 (System.Int32)
IL_056D: call System.Void ElectricityManager::ConductToCell(Cell& cell,
System.UInt16 group, System.Int32 x, System.Int32 z, System.Int32 limit)
IL_0572: Label37
IL_0572: ldloca.s 18 (ElectricityManager+PulseUnit)
IL_0574: ldfld System.Byte PulseUnit::m_x
IL_0579: ldc.i4 255
IL_057E: bge => Label38
IL_0583: ldarg.0
IL_0584: ldarg.0
IL_0585: ldfld Cell[] ElectricityManager::m_electricityGrid
IL_058A: ldloc.s 20 (System.Int32)
IL_058C: ldc.i4.1
IL_058D: add
IL_058E: ldelema ElectricityManager+Cell
IL_0593: ldloca.s 18 (ElectricityManager+PulseUnit)
IL_0595: ldfld System.UInt16 PulseUnit::m_group
IL_059A: ldloca.s 18 (ElectricityManager+PulseUnit)
IL_059C: ldfld System.Byte PulseUnit::m_x
IL_05A1: ldc.i4.1
IL_05A2: add
IL_05A3: ldloca.s 18 (ElectricityManager+PulseUnit)
IL_05A5: ldfld System.Byte PulseUnit::m_z
IL_05AA: ldloc.s 23 (System.Int32)
IL_05AC: call System.Void ElectricityManager::ConductToCell(Cell& cell,
System.UInt16 group, System.Int32 x, System.Int32 z, System.Int32 limit)
IL_05B1: Label38
IL_05B1: ldarg.0
IL_05B2: ldloca.s 18 (ElectricityManager+PulseUnit)
IL_05B4: ldfld System.UInt16 PulseUnit::m_group
IL_05B9: ldloca.s 18 (ElectricityManager+PulseUnit)
IL_05BB: ldfld System.Byte PulseUnit::m_x
IL_05C0: ldloca.s 18 (ElectricityManager+PulseUnit)
IL_05C2: ldfld System.Byte PulseUnit::m_z
IL_05C7: call System.Void ElectricityManager::ConductToNodes(System.UInt16
group, System.Int32 cellX, System.Int32 cellZ)
IL_05CC: br => Label39
IL_05D1: Label32
IL_05D1: ldarg.0
IL_05D2: ldfld PulseUnit[] ElectricityManager::m_pulseUnits
IL_05D7: ldarg.0
IL_05D8: ldfld System.Int32 ElectricityManager::m_pulseUnitEnd
IL_05DD: ldelema ElectricityManager+PulseUnit
IL_05E2: ldloc.s 18 (ElectricityManager+PulseUnit)
IL_05E4: stobj ElectricityManager+PulseUnit
IL_05E9: ldarg.0
IL_05EA: dup
IL_05EB: ldfld System.Int32 ElectricityManager::m_pulseUnitEnd
IL_05F0: ldc.i4.1
IL_05F1: add
IL_05F2: dup
IL_05F3: stloc.s 15 (System.Int32)
IL_05F5: stfld System.Int32 ElectricityManager::m_pulseUnitEnd
IL_05FA: ldloc.s 15 (System.Int32)
IL_05FC: ldarg.0
IL_05FD: ldfld PulseUnit[] ElectricityManager::m_pulseUnits
IL_0602: ldlen
IL_0603: conv.i4
IL_0604: bne.un => Label40
IL_0609: ldarg.0
IL_060A: ldc.i4.0
IL_060B: stfld System.Int32 ElectricityManager::m_pulseUnitEnd
IL_0610: Label39
IL_0610: Label40
IL_0610: br => Label41
IL_0615: Label27
IL_0615: ldloc.s 19 (System.UInt32)
IL_0617: brfalse => Label42
IL_061C: ldarg.0
IL_061D: dup
IL_061E: ldfld System.Int32 ElectricityManager::m_processedCells
IL_0623: ldc.i4.1
IL_0624: add
IL_0625: stfld System.Int32 ElectricityManager::m_processedCells
IL_062A: call static NetManager
ColossalFramework.Singleton`1<NetManager>::get_instance()
IL_062F: ldfld Array16`1<NetNode> NetManager::m_nodes
IL_0634: ldfld NetNode[] Array16`1<NetNode>::m_buffer
IL_0639: ldloca.s 18 (ElectricityManager+PulseUnit)
IL_063B: ldfld System.UInt16 PulseUnit::m_node
IL_0640: ldelema NetNode
IL_0645: ldobj NetNode
IL_064A: stloc.s 24 (NetNode)
IL_064C: ldloca.s 24 (NetNode)
IL_064E: ldfld Flags NetNode::m_flags
IL_0653: brfalse => Label43
IL_0658: ldloca.s 24 (NetNode)
IL_065A: ldfld System.UInt32 NetNode::m_buildIndex
IL_065F: ldloc.0
IL_0660: ldc.i4.s -128
IL_0662: and
IL_0663: bge.un => Label44
IL_0668: ldarg.0
IL_0669: ldloca.s 18 (ElectricityManager+PulseUnit)
IL_066B: ldfld System.UInt16 PulseUnit::m_group
IL_0670: ldloca.s 24 (NetNode)
IL_0672: ldflda UnityEngine.Vector3 NetNode::m_position
IL_0677: ldfld System.Single UnityEngine.Vector3::x
IL_067C: ldloca.s 24 (NetNode)
IL_067E: ldflda UnityEngine.Vector3 NetNode::m_position
IL_0683: ldfld System.Single UnityEngine.Vector3::z
IL_0688: call System.Void ElectricityManager::ConductToCells(System.UInt16
group, System.Single worldX, System.Single worldZ)
IL_068D: ldc.i4.0
IL_068E: stloc.s 25 (System.Int32)
IL_0690: br => Label45
IL_0695: Label49
IL_0695: ldloca.s 24 (NetNode)
IL_0697: ldloc.s 25 (System.Int32)
IL_0699: call System.UInt16 NetNode::GetSegment(System.Int32 index)
IL_069E: stloc.s 26 (System.UInt16)
IL_06A0: ldloc.s 26 (System.UInt16)
IL_06A2: brfalse => Label46
IL_06A7: call static NetManager
ColossalFramework.Singleton`1<NetManager>::get_instance()
IL_06AC: ldfld Array16`1<NetSegment> NetManager::m_segments
IL_06B1: ldfld NetSegment[] Array16`1<NetSegment>::m_buffer
IL_06B6: ldloc.s 26 (System.UInt16)
IL_06B8: ldelema NetSegment
IL_06BD: ldfld System.UInt16 NetSegment::m_startNode
IL_06C2: stloc.s 27 (System.UInt16)
IL_06C4: call static NetManager
ColossalFramework.Singleton`1<NetManager>::get_instance()
IL_06C9: ldfld Array16`1<NetSegment> NetManager::m_segments
IL_06CE: ldfld NetSegment[] Array16`1<NetSegment>::m_buffer
IL_06D3: ldloc.s 26 (System.UInt16)
IL_06D5: ldelema NetSegment
IL_06DA: ldfld System.UInt16 NetSegment::m_endNode
IL_06DF: stloc.s 28 (System.UInt16)
IL_06E1: ldloc.s 27 (System.UInt16)
IL_06E3: ldloca.s 18 (ElectricityManager+PulseUnit)
IL_06E5: ldfld System.UInt16 PulseUnit::m_node
IL_06EA: bne.un => Label47
IL_06EF: ldloc.s 28 (System.UInt16)
IL_06F1: br => Label48
IL_06F6: Label47
IL_06F6: ldloc.s 27 (System.UInt16)
IL_06F8: Label48
IL_06F8: stloc.s 29 (System.UInt16)
IL_06FA: ldarg.0
IL_06FB: ldloc.s 29 (System.UInt16)
IL_06FD: call static NetManager
ColossalFramework.Singleton`1<NetManager>::get_instance()
IL_0702: ldfld Array16`1<NetNode> NetManager::m_nodes
IL_0707: ldfld NetNode[] Array16`1<NetNode>::m_buffer
IL_070C: ldloc.s 29 (System.UInt16)
IL_070E: ldelema NetNode
IL_0713: ldloca.s 18 (ElectricityManager+PulseUnit)
IL_0715: ldfld System.UInt16 PulseUnit::m_group
IL_071A: ldc.r4 -100000
IL_071F: ldc.r4 -100000
IL_0724: ldc.r4 100000
IL_0729: ldc.r4 100000
IL_072E: call System.Void ElectricityManager::ConductToNode(System.UInt16
nodeIndex, NetNode& node, System.UInt16 group, System.Single minX, System.Single
minZ, System.Single maxX, System.Single maxZ)
IL_0733: Label46
IL_0733: ldloc.s 25 (System.Int32)
IL_0735: ldc.i4.1
IL_0736: add
IL_0737: stloc.s 25 (System.Int32)
IL_0739: Label45
IL_0739: ldloc.s 25 (System.Int32)
IL_073B: ldc.i4.8
IL_073C: blt => Label49
IL_0741: Label43
IL_0741: Label44
IL_0741: br => Label50
IL_0746: Label42
IL_0746: ldarg.0
IL_0747: ldfld PulseUnit[] ElectricityManager::m_pulseUnits
IL_074C: ldarg.0
IL_074D: ldfld System.Int32 ElectricityManager::m_pulseUnitEnd
IL_0752: ldelema ElectricityManager+PulseUnit
IL_0757: ldloc.s 18 (ElectricityManager+PulseUnit)
IL_0759: stobj ElectricityManager+PulseUnit
IL_075E: ldarg.0
IL_075F: dup
IL_0760: ldfld System.Int32 ElectricityManager::m_pulseUnitEnd
IL_0765: ldc.i4.1
IL_0766: add
IL_0767: dup
IL_0768: stloc.s 15 (System.Int32)
IL_076A: stfld System.Int32 ElectricityManager::m_pulseUnitEnd
IL_076F: ldloc.s 15 (System.Int32)
IL_0771: ldarg.0
IL_0772: ldfld PulseUnit[] ElectricityManager::m_pulseUnits
IL_0777: ldlen
IL_0778: conv.i4
IL_0779: bne.un => Label51
IL_077E: ldarg.0
IL_077F: ldc.i4.0
IL_0780: stfld System.Int32 ElectricityManager::m_pulseUnitEnd
IL_0785: Label25
IL_0785: Label41
IL_0785: Label50
IL_0785: Label51
IL_0785: ldarg.0
IL_0786: ldfld System.Int32 ElectricityManager::m_pulseUnitStart
IL_078B: ldloc.s 17 (System.Int32)
IL_078D: bne.un => Label52
IL_0792: Label24
IL_0792: ldarg.0
IL_0793: ldfld System.Boolean ElectricityManager::m_canContinue
IL_0798: brfalse => Label53
IL_079D: ldarg.0
IL_079E: ldfld System.Int32 ElectricityManager::m_processedCells
IL_07A3: ldloc.s 16 (System.Int32)
IL_07A5: blt => Label54
IL_07AA: Label53
IL_07AA: ldloc.1
IL_07AB: ldc.i4 255
IL_07B0: bne.un => Label55
IL_07B5: ldc.i4.0
IL_07B6: stloc.s 30 (System.Int32)
IL_07B8: br => Label56
IL_07BD: Label58
IL_07BD: ldarg.0
IL_07BE: ldfld PulseGroup[] ElectricityManager::m_pulseGroups
IL_07C3: ldloc.s 30 (System.Int32)
IL_07C5: ldelema ElectricityManager+PulseGroup
IL_07CA: ldobj ElectricityManager+PulseGroup
IL_07CF: stloc.s 31 (ElectricityManager+PulseGroup)
IL_07D1: ldloca.s 31 (ElectricityManager+PulseGroup)
IL_07D3: ldfld System.UInt16 PulseGroup::m_mergeIndex
IL_07D8: ldc.i4 65535
IL_07DD: beq => Label57
IL_07E2: ldarg.0
IL_07E3: ldfld PulseGroup[] ElectricityManager::m_pulseGroups
IL_07E8: ldloca.s 31 (ElectricityManager+PulseGroup)
IL_07EA: ldfld System.UInt16 PulseGroup::m_mergeIndex
IL_07EF: ldelema ElectricityManager+PulseGroup
IL_07F4: ldobj ElectricityManager+PulseGroup
IL_07F9: stloc.s 32 (ElectricityManager+PulseGroup)
IL_07FB: ldloca.s 31 (ElectricityManager+PulseGroup)
IL_07FD: ldloca.s 32 (ElectricityManager+PulseGroup)
IL_07FF: ldfld System.UInt32 PulseGroup::m_curCharge
IL_0804: conv.u8
IL_0805: ldloca.s 31 (ElectricityManager+PulseGroup)
IL_0807: ldfld System.UInt32 PulseGroup::m_origCharge
IL_080C: conv.u8
IL_080D: mul
IL_080E: ldloca.s 32 (ElectricityManager+PulseGroup)
IL_0810: ldfld System.UInt32 PulseGroup::m_origCharge
IL_0815: conv.u8
IL_0816: div.un
IL_0817: conv.u4
IL_0818: stfld System.UInt32 PulseGroup::m_curCharge
IL_081D: ldloca.s 32 (ElectricityManager+PulseGroup)
IL_081F: dup
IL_0820: ldfld System.UInt32 PulseGroup::m_curCharge
IL_0825: ldloca.s 31 (ElectricityManager+PulseGroup)
IL_0827: ldfld System.UInt32 PulseGroup::m_curCharge
IL_082C: sub
IL_082D: stfld System.UInt32 PulseGroup::m_curCharge
IL_0832: ldloca.s 32 (ElectricityManager+PulseGroup)
IL_0834: dup
IL_0835: ldfld System.UInt32 PulseGroup::m_origCharge
IL_083A: ldloca.s 31 (ElectricityManager+PulseGroup)
IL_083C: ldfld System.UInt32 PulseGroup::m_origCharge
IL_0841: sub
IL_0842: stfld System.UInt32 PulseGroup::m_origCharge
IL_0847: ldarg.0
IL_0848: ldfld PulseGroup[] ElectricityManager::m_pulseGroups
IL_084D: ldloca.s 31 (ElectricityManager+PulseGroup)
IL_084F: ldfld System.UInt16 PulseGroup::m_mergeIndex
IL_0854: ldelema ElectricityManager+PulseGroup
IL_0859: ldloc.s 32 (ElectricityManager+PulseGroup)
IL_085B: stobj ElectricityManager+PulseGroup
IL_0860: ldarg.0
IL_0861: ldfld PulseGroup[] ElectricityManager::m_pulseGroups
IL_0866: ldloc.s 30 (System.Int32)
IL_0868: ldelema ElectricityManager+PulseGroup
IL_086D: ldloc.s 31 (ElectricityManager+PulseGroup)
IL_086F: stobj ElectricityManager+PulseGroup
IL_0874: Label57
IL_0874: ldloc.s 30 (System.Int32)
IL_0876: ldc.i4.1
IL_0877: add
IL_0878: stloc.s 30 (System.Int32)
IL_087A: Label56
IL_087A: ldloc.s 30 (System.Int32)
IL_087C: ldarg.0
IL_087D: ldfld System.Int32 ElectricityManager::m_pulseGroupCount
IL_0882: blt => Label58
IL_0887: ldc.i4.0
IL_0888: stloc.s 33 (System.Int32)
IL_088A: br => Label59
IL_088F: Label62
IL_088F: ldarg.0
IL_0890: ldfld PulseGroup[] ElectricityManager::m_pulseGroups
IL_0895: ldloc.s 33 (System.Int32)
IL_0897: ldelema ElectricityManager+PulseGroup
IL_089C: ldobj ElectricityManager+PulseGroup
IL_08A1: stloc.s 34 (ElectricityManager+PulseGroup)
IL_08A3: ldloca.s 34 (ElectricityManager+PulseGroup)
IL_08A5: ldfld System.UInt32 PulseGroup::m_curCharge
IL_08AA: brfalse => Label60
IL_08AF: ldloca.s 34 (ElectricityManager+PulseGroup)
IL_08B1: ldfld System.Byte PulseGroup::m_z
IL_08B6: ldc.i4 256
IL_08BB: mul
IL_08BC: ldloca.s 34 (ElectricityManager+PulseGroup)
IL_08BE: ldfld System.Byte PulseGroup::m_x
IL_08C3: add
IL_08C4: stloc.s 35 (System.Int32)
IL_08C6: ldarg.0
IL_08C7: ldfld Cell[] ElectricityManager::m_electricityGrid
IL_08CC: ldloc.s 35 (System.Int32)
IL_08CE: ldelema ElectricityManager+Cell
IL_08D3: ldobj ElectricityManager+Cell
IL_08D8: stloc.s 36 (ElectricityManager+Cell)
IL_08DA: ldloca.s 36 (ElectricityManager+Cell)
IL_08DC: ldfld System.Byte Cell::m_conductivity
IL_08E1: brfalse => Label61
IL_08E6: ldloca.s 36 (ElectricityManager+Cell)
IL_08E8: dup
IL_08E9: ldfld System.UInt16 Cell::m_extraCharge
IL_08EE: ldloca.s 34 (ElectricityManager+PulseGroup)
IL_08F0: ldfld System.UInt32 PulseGroup::m_curCharge
IL_08F5: ldc.i4 32767
IL_08FA: ldloca.s 36 (ElectricityManager+Cell)
IL_08FC: ldfld System.UInt16 Cell::m_extraCharge
IL_0901: sub
IL_0902: call static System.Int32 UnityEngine.Mathf::Min(System.Int32 a,
System.Int32 b)
IL_0907: conv.u2
IL_0908: add
IL_0909: conv.u2
IL_090A: stfld System.UInt16 Cell::m_extraCharge
IL_090F: Label61
IL_090F: ldarg.0
IL_0910: ldfld Cell[] ElectricityManager::m_electricityGrid
IL_0915: ldloc.s 35 (System.Int32)
IL_0917: ldelema ElectricityManager+Cell
IL_091C: ldloc.s 36 (ElectricityManager+Cell)
IL_091E: stobj ElectricityManager+Cell
IL_0923: Label60
IL_0923: ldloc.s 33 (System.Int32)
IL_0925: ldc.i4.1
IL_0926: add
IL_0927: stloc.s 33 (System.Int32)
IL_0929: Label59
IL_0929: ldloc.s 33 (System.Int32)
IL_092B: ldarg.0
IL_092C: ldfld System.Int32 ElectricityManager::m_pulseGroupCount
IL_0931: blt => Label62
IL_0936: // end original
IL_0936: Label0
IL_0936: Label1
IL_0936: Label22
IL_0936: Label55
IL_0936: ret
DONE

### Patch: System.Void ElectricityManager::ConductToNode(System.UInt16 nodeIndex,


NetNode& node, System.UInt16 group, System.Single minX, System.Single minZ,
System.Single maxX, System.Single maxZ)
### Replacement: static System.Void
ElectricityManager::ElectricityManager.ConductToNode_Patch0(ElectricityManager
this, System.UInt16 nodeIndex, NetNode& node, System.UInt16 group, System.Single
minX, System.Single minZ, System.Single maxX, System.Single maxZ)
IL_0000: Local var 0: NetInfo
IL_0000: Local var 1: ElectricityManager/PulseUnit
IL_0000: Local var 2: System.Int32
IL_0000: Local var 3: System.UInt16
IL_0000: // start original
IL_0000: ldarg.2
IL_0001: ldflda UnityEngine.Vector3 NetNode::m_position
IL_0006: ldfld System.Single UnityEngine.Vector3::x
IL_000B: ldarg.s 4
IL_000D: blt.un => Label0
IL_0012: ldarg.2
IL_0013: ldflda UnityEngine.Vector3 NetNode::m_position
IL_0018: ldfld System.Single UnityEngine.Vector3::z
IL_001D: ldarg.s 5
IL_001F: blt.un => Label1
IL_0024: ldarg.2
IL_0025: ldflda UnityEngine.Vector3 NetNode::m_position
IL_002A: ldfld System.Single UnityEngine.Vector3::x
IL_002F: ldarg.s 6
IL_0031: bgt.un => Label2
IL_0036: ldarg.2
IL_0037: ldflda UnityEngine.Vector3 NetNode::m_position
IL_003C: ldfld System.Single UnityEngine.Vector3::z
IL_0041: ldarg.s 7
IL_0043: bgt.un => Label3
IL_0048: ldarg.2
IL_0049: call static System.Boolean
ElectricRoads.Overrides.ElectricRoadsOverrides::CheckElectricConductibility(NetNode
& node)
IL_004E: brfalse => Label5
IL_0053: Label4
IL_0053: ldarg.0
IL_0054: ldfld System.UInt16[] ElectricityManager::m_nodeGroups
IL_0059: ldarg.1
IL_005A: ldelem.u2
IL_005B: ldc.i4 65535
IL_0060: bne.un => Label6
IL_0065: ldloca.s 1 (ElectricityManager+PulseUnit)
IL_0067: ldarg.3
IL_0068: stfld System.UInt16 PulseUnit::m_group
IL_006D: ldloca.s 1 (ElectricityManager+PulseUnit)
IL_006F: ldarg.1
IL_0070: stfld System.UInt16 PulseUnit::m_node
IL_0075: ldloca.s 1 (ElectricityManager+PulseUnit)
IL_0077: ldc.i4.0
IL_0078: stfld System.Byte PulseUnit::m_x
IL_007D: ldloca.s 1 (ElectricityManager+PulseUnit)
IL_007F: ldc.i4.0
IL_0080: stfld System.Byte PulseUnit::m_z
IL_0085: ldarg.0
IL_0086: ldfld PulseUnit[] ElectricityManager::m_pulseUnits
IL_008B: ldarg.0
IL_008C: ldfld System.Int32 ElectricityManager::m_pulseUnitEnd
IL_0091: ldelema ElectricityManager+PulseUnit
IL_0096: ldloc.1
IL_0097: stobj ElectricityManager+PulseUnit
IL_009C: ldarg.0
IL_009D: dup
IL_009E: ldfld System.Int32 ElectricityManager::m_pulseUnitEnd
IL_00A3: ldc.i4.1
IL_00A4: add
IL_00A5: dup
IL_00A6: stloc.2
IL_00A7: stfld System.Int32 ElectricityManager::m_pulseUnitEnd
IL_00AC: ldloc.2
IL_00AD: ldarg.0
IL_00AE: ldfld PulseUnit[] ElectricityManager::m_pulseUnits
IL_00B3: ldlen
IL_00B4: conv.i4
IL_00B5: bne.un => Label7
IL_00BA: ldarg.0
IL_00BB: ldc.i4.0
IL_00BC: stfld System.Int32 ElectricityManager::m_pulseUnitEnd
IL_00C1: Label7
IL_00C1: ldarg.0
IL_00C2: ldfld System.UInt16[] ElectricityManager::m_nodeGroups
IL_00C7: ldarg.1
IL_00C8: ldarg.3
IL_00C9: stelem.i2
IL_00CA: ldarg.0
IL_00CB: ldc.i4.1
IL_00CC: stfld System.Boolean ElectricityManager::m_canContinue
IL_00D1: br => Label8
IL_00D6: Label6
IL_00D6: ldarg.0
IL_00D7: ldarg.0
IL_00D8: ldfld System.UInt16[] ElectricityManager::m_nodeGroups
IL_00DD: ldarg.1
IL_00DE: ldelem.u2
IL_00DF: call System.UInt16 ElectricityManager::GetRootGroup(System.UInt16
group)
IL_00E4: stloc.3
IL_00E5: ldloc.3
IL_00E6: ldarg.3
IL_00E7: beq => Label9
IL_00EC: ldarg.0
IL_00ED: ldarg.3
IL_00EE: ldloc.3
IL_00EF: call System.Void ElectricityManager::MergeGroups(System.UInt16 root,
System.UInt16 merged)
IL_00F4: ldarg.0
IL_00F5: ldfld System.UInt16[] ElectricityManager::m_nodeGroups
IL_00FA: ldarg.1
IL_00FB: ldarg.3
IL_00FC: stelem.i2
IL_00FD: ldarg.0
IL_00FE: ldc.i4.1
IL_00FF: stfld System.Boolean ElectricityManager::m_canContinue
IL_0104: // end original
IL_0104: Label0
IL_0104: Label1
IL_0104: Label2
IL_0104: Label3
IL_0104: Label5
IL_0104: Label8
IL_0104: Label9
IL_0104: ret
DONE

### Patch: System.Void ElectricityManager::UpdateNodeElectricity(System.Int32


nodeID, System.Int32 value)
### Replacement: static System.Void
ElectricityManager::ElectricityManager.UpdateNodeElectricity_Patch2(ElectricityMana
ger this, System.Int32 nodeID, System.Int32 value)
IL_0000: Local var 0: InfoManager/InfoMode
IL_0000: Local var 1: NetManager
IL_0000: Local var 2: System.Boolean
IL_0000: Local var 3: NetNode/Flags
IL_0000: Local var 4: System.UInt16
IL_0000: Local var 5: BuildingManager
IL_0000: Local var 6: NetNode/Flags
IL_0000: Local var 7: System.Int32
IL_0000: Local var 8: System.UInt16
IL_0000: Local var 9: System.Boolean
IL_0000: Local var 10: System.Boolean
IL_0000: ldc.i4 0
IL_0005: stloc 9 (System.Boolean)
IL_0009: ldc.i4.1
IL_000A: stloc 9 (System.Boolean)
IL_000E: ldc.i4 0
IL_0013: stloc 10 (System.Boolean)
IL_0017: ldloc 9 (System.Boolean)
IL_001B: brfalse => Label1
IL_0020: ldarga 1
IL_0024: ldloca 10 (System.Boolean)
IL_0028: call static System.Void
ElectricRoads.Overrides.ElectricRoadsOverrides::PreConduct(System.Int32& nodeID,
System.Boolean& __state)
IL_002D: Label1
IL_002D: nop
IL_002E: ldloc 9 (System.Boolean)
IL_0032: brfalse => Label0
IL_0037: // start original
IL_0037: call static InfoManager
ColossalFramework.Singleton`1<InfoManager>::get_instance()
IL_003C: callvirt InfoMode InfoManager::get_CurrentMode()
IL_0041: stloc.0
IL_0042: call static NetManager
ColossalFramework.Singleton`1<NetManager>::get_instance()
IL_0047: stloc.1
IL_0048: ldc.i4.0
IL_0049: stloc.2
IL_004A: ldloc.1
IL_004B: ldfld Array16`1<NetNode> NetManager::m_nodes
IL_0050: ldfld NetNode[] Array16`1<NetNode>::m_buffer
IL_0055: ldarg.1
IL_0056: ldelema NetNode
IL_005B: ldfld Flags NetNode::m_flags
IL_0060: stloc.3
IL_0061: ldarg.1
IL_0062: call static System.Boolean
ElectricRoads.Overrides.ElectricRoadsOverrides::CheckNodeTransition(System.Int32
nodeID)
IL_0067: brfalse => Label2
IL_006C: ldloc.1
IL_006D: ldfld Array16`1<NetNode> NetManager::m_nodes
IL_0072: ldfld NetNode[] Array16`1<NetNode>::m_buffer
IL_0077: ldarg.1
IL_0078: ldelema NetNode
IL_007D: dup
IL_007E: ldfld Flags NetNode::m_flags
IL_0083: ldc.i4 -1048577
IL_0088: and
IL_0089: stfld Flags NetNode::m_flags
IL_008E: br => Label12
IL_0093: Label2
IL_0093: ldloc.1
IL_0094: ldfld Array16`1<NetNode> NetManager::m_nodes
IL_0099: ldfld NetNode[] Array16`1<NetNode>::m_buffer
IL_009E: ldarg.1
IL_009F: ldelema NetNode
IL_00A4: ldfld System.UInt16 NetNode::m_building
IL_00A9: stloc.s 4 (System.UInt16)
IL_00AB: ldloc.s 4 (System.UInt16)
IL_00AD: brfalse => Label3
IL_00B2: call static BuildingManager
ColossalFramework.Singleton`1<BuildingManager>::get_instance()
IL_00B7: stloc.s 5 (BuildingManager)
IL_00B9: ldloc.s 5 (BuildingManager)
IL_00BB: ldfld Array16`1<Building> BuildingManager::m_buildings
IL_00C0: ldfld Building[] Array16`1<Building>::m_buffer
IL_00C5: ldloc.s 4 (System.UInt16)
IL_00C7: ldelema Building
IL_00CC: ldfld System.UInt16 Building::m_electricityBuffer
IL_00D1: ldarg.2
IL_00D2: beq => Label4
IL_00D7: ldloc.s 5 (BuildingManager)
IL_00D9: ldfld Array16`1<Building> BuildingManager::m_buildings
IL_00DE: ldfld Building[] Array16`1<Building>::m_buffer
IL_00E3: ldloc.s 4 (System.UInt16)
IL_00E5: ldelema Building
IL_00EA: ldarg.2
IL_00EB: conv.u2
IL_00EC: stfld System.UInt16 Building::m_electricityBuffer
IL_00F1: ldloc.0
IL_00F2: ldc.i4.1
IL_00F3: ceq
IL_00F5: stloc.2
IL_00F6: Label4
IL_00F6: ldloc.2
IL_00F7: brfalse => Label5
IL_00FC: ldloc.s 5 (BuildingManager)
IL_00FE: ldloc.s 4 (System.UInt16)
IL_0100: callvirt System.Void BuildingManager::UpdateBuildingColors(System.UInt16
building)
IL_0105: Label3
IL_0105: Label5
IL_0105: ldloc.3
IL_0106: ldc.i4 -67108865
IL_010B: and
IL_010C: stloc.s 6 (NetNode+Flags)
IL_010E: ldarg.2
IL_010F: brfalse => Label6
IL_0114: ldloc.s 6 (NetNode+Flags)
IL_0116: ldc.i4 67108864
IL_011B: or
IL_011C: stloc.s 6 (NetNode+Flags)
IL_011E: Label6
IL_011E: ldloc.s 6 (NetNode+Flags)
IL_0120: ldloc.3
IL_0121: beq => Label7
IL_0126: ldloc.1
IL_0127: ldfld Array16`1<NetNode> NetManager::m_nodes
IL_012C: ldfld NetNode[] Array16`1<NetNode>::m_buffer
IL_0131: ldarg.1
IL_0132: ldelema NetNode
IL_0137: ldloc.s 6 (NetNode+Flags)
IL_0139: stfld Flags NetNode::m_flags
IL_013E: ldloc.0
IL_013F: ldc.i4.1
IL_0140: ceq
IL_0142: stloc.2
IL_0143: Label7
IL_0143: ldloc.2
IL_0144: brfalse => Label8
IL_0149: ldloc.1
IL_014A: ldarg.1
IL_014B: conv.u2
IL_014C: callvirt System.Void NetManager::UpdateNodeColors(System.UInt16 node)
IL_0151: ldc.i4.0
IL_0152: stloc.s 7 (System.Int32)
IL_0154: br => Label9
IL_0159: Label11
IL_0159: ldloc.1
IL_015A: ldfld Array16`1<NetNode> NetManager::m_nodes
IL_015F: ldfld NetNode[] Array16`1<NetNode>::m_buffer
IL_0164: ldarg.1
IL_0165: ldelema NetNode
IL_016A: ldloc.s 7 (System.Int32)
IL_016C: call System.UInt16 NetNode::GetSegment(System.Int32 index)
IL_0171: stloc.s 8 (System.UInt16)
IL_0173: ldloc.s 8 (System.UInt16)
IL_0175: brfalse => Label10
IL_017A: ldloc.1
IL_017B: ldloc.s 8 (System.UInt16)
IL_017D: callvirt System.Void NetManager::UpdateSegmentColors(System.UInt16
segment)
IL_0182: Label10
IL_0182: ldloc.s 7 (System.Int32)
IL_0184: ldc.i4.1
IL_0185: add
IL_0186: stloc.s 7 (System.Int32)
IL_0188: Label9
IL_0188: ldloc.s 7 (System.Int32)
IL_018A: ldc.i4.8
IL_018B: blt => Label11
IL_0190: // end original
IL_0190: Label8
IL_0190: Label12
IL_0190: Label0
IL_0190: ldarg 1
IL_0194: ldloc 10 (System.Boolean)
IL_0198: call static System.Void
ElectricRoads.Overrides.ElectricRoadsOverrides::PostConduct(System.Int32 nodeID,
System.Boolean __state)
IL_019D: ret
DONE

### Patch: virtual System.Void ColossalFramework.UI.UIView::Start()


### Replacement: static System.Void
ColossalFramework.UI.UIView::ColossalFramework.UI.UIView.Start_Patch0(ColossalFrame
work.UI.UIView this)
IL_0000: Local var 0:
ColossalFramework.PoolList`1<ColossalFramework.UI.UIComponent>
IL_0000: Local var 1: ColossalFramework.UI.UIComponent
IL_0000: Local var 2:
System.Collections.Generic.IEnumerator`1<ColossalFramework.UI.UIComponent>
IL_0000: // start original
IL_0000: ldarg.0
IL_0001: ldc.i4.0
IL_0002: stfld System.Int32 ColossalFramework.UI.UIView::m_FramesRendered
IL_0007: ldarg.0
IL_0008: call System.Void
ColossalFramework.UI.UIView::InvalidateAllComponents()
IL_000D: ldarg.0
IL_000E: ldfld UnityEngine.MeshRenderer
ColossalFramework.UI.UIView::m_MeshRenderer
IL_0013: ldnull
IL_0014: call static System.Boolean
UnityEngine.Object::op_Inequality(UnityEngine.Object x, UnityEngine.Object y)
IL_0019: brfalse => Label0
IL_001E: ldarg.0
IL_001F: ldfld UnityEngine.MeshRenderer
ColossalFramework.UI.UIView::m_MeshRenderer
IL_0024: ldc.i4.1
IL_0025: callvirt System.Void UnityEngine.Renderer::set_enabled(System.Boolean
value)
IL_002A: Label0
IL_002A: ldarg.0
IL_002B: call ColossalFramework.PoolList`1<ColossalFramework.UI.UIComponent>
ColossalFramework.UI.UIView::GetTopLevelComponents()
IL_0030: stloc.0
.try
{
IL_0031: ldloc.0
IL_0032: callvirt virtual
System.Collections.Generic.IEnumerator`1<ColossalFramework.UI.UIComponent>
ColossalFramework.PoolList`1<ColossalFramework.UI.UIComponent>::GetEnumerator()
IL_0037: stloc.2
.try
{
IL_0038: br => Label1
IL_003D: Label2
IL_003D: ldloc.2
IL_003E: callvirt abstract virtual ColossalFramework.UI.UIComponent
System.Collections.Generic.IEnumerator`1<ColossalFramework.UI.UIComponent>::get_Cur
rent()
IL_0043: stloc.1
IL_0044: ldloc.1
IL_0045: ldc.i4.1
IL_0046: callvirt System.Void
ColossalFramework.UI.UIComponent::InitializeParentVisibilityCache(System.Boolean
parentVisible)
IL_004B: Label1
IL_004B: ldloc.2
IL_004C: callvirt abstract virtual System.Boolean
System.Collections.IEnumerator::MoveNext()
IL_0051: brtrue => Label2
IL_0056: leave => Label3
IL_005B: leave => (autogenerated)
} // end try
.finally
{
IL_0060: ldloc.2
IL_0061: brfalse => Label4
IL_0066: ldloc.2
IL_0067: callvirt abstract virtual System.Void
System.IDisposable::Dispose()
IL_006C: Label4
IL_006C: endfinally
IL_006D: leave => (autogenerated)
} // end handler
IL_006E: Label3
IL_006E: leave => Label5
IL_0073: leave => (autogenerated)
} // end try
.finally
{
IL_0078: ldloc.0
IL_0079: brfalse => Label6
IL_007E: ldloc.0
IL_007F: callvirt abstract virtual System.Void
System.IDisposable::Dispose()
IL_0084: Label6
IL_0084: endfinally
IL_0085: leave => (autogenerated)
} // end handler
IL_0086: Label5
IL_0086: ldarg.0
IL_0087: ldc.i4.1
IL_0088: stfld System.Boolean
ColossalFramework.UI.UIView::m_VisibilityCacheInitialized
IL_008D: // end original
IL_008D: ret
DONE

### Patch: virtual UnityEngine.Color NetAI::GetColor(System.UInt16 nodeID, NetNode&


data, InfoMode infoMode, SubInfoMode subInfoMode)
### Replacement: static UnityEngine.Color NetAI::NetAI.GetColor_Patch0(NetAI this,
System.UInt16 nodeID, NetNode& data, InfoMode infoMode, SubInfoMode subInfoMode)
IL_0000: // start original
IL_0000: ldarg.3
IL_0001: brfalse => Label0
IL_0006: call static InfoManager
ColossalFramework.Singleton`1<InfoManager>::get_instance()
IL_000B: ldfld InfoProperties SimulationManagerBase`2<InfoManager,
InfoProperties>::m_properties
IL_0010: ldfld UnityEngine.Color InfoProperties::m_neutralColor
IL_0015: br => Label1
IL_001A: Label0
IL_001A: ldarg.0
IL_001B: ldfld NetInfo NetAI::m_info
IL_0020: ldfld UnityEngine.Color NetInfo::m_color
IL_0025: // end original
IL_0025: Label1
IL_0025: ret
DONE

### Patch: virtual UnityEngine.Color NetAI::GetColor(System.UInt16 segmentID,


NetSegment& data, InfoMode infoMode, SubInfoMode subInfoMode)
### Replacement: static UnityEngine.Color NetAI::NetAI.GetColor_Patch0(NetAI this,
System.UInt16 segmentID, NetSegment& data, InfoMode infoMode, SubInfoMode
subInfoMode)
IL_0000: // start original
IL_0000: ldarg.3
IL_0001: brfalse => Label0
IL_0006: call static InfoManager
ColossalFramework.Singleton`1<InfoManager>::get_instance()
IL_000B: ldfld InfoProperties SimulationManagerBase`2<InfoManager,
InfoProperties>::m_properties
IL_0010: ldfld UnityEngine.Color InfoProperties::m_neutralColor
IL_0015: br => Label1
IL_001A: Label0
IL_001A: ldarg.0
IL_001B: ldfld NetInfo NetAI::m_info
IL_0020: ldfld UnityEngine.Color NetInfo::m_color
IL_0025: // end original
IL_0025: Label1
IL_0025: ret
DONE

### Patch: System.Void ElectricityManager::UpdateNodeElectricity(System.Int32


nodeID, System.Int32 value)
### Replacement: static System.Void
ElectricityManager::ElectricityManager.UpdateNodeElectricity_Patch0(ElectricityMana
ger this, System.Int32 nodeID, System.Int32 value)
IL_0000: Local var 0: InfoManager/InfoMode
IL_0000: Local var 1: NetManager
IL_0000: Local var 2: System.Boolean
IL_0000: Local var 3: NetNode/Flags
IL_0000: Local var 4: System.UInt16
IL_0000: Local var 5: BuildingManager
IL_0000: Local var 6: NetNode/Flags
IL_0000: Local var 7: System.Int32
IL_0000: Local var 8: System.UInt16
IL_0000: // start original
IL_0000: call static InfoManager
ColossalFramework.Singleton`1<InfoManager>::get_instance()
IL_0005: callvirt InfoMode InfoManager::get_CurrentMode()
IL_000A: stloc.0
IL_000B: call static NetManager
ColossalFramework.Singleton`1<NetManager>::get_instance()
IL_0010: stloc.1
IL_0011: ldc.i4.0
IL_0012: stloc.2
IL_0013: ldloc.1
IL_0014: ldfld Array16`1<NetNode> NetManager::m_nodes
IL_0019: ldfld NetNode[] Array16`1<NetNode>::m_buffer
IL_001E: ldarg.1
IL_001F: ldelema NetNode
IL_0024: ldfld Flags NetNode::m_flags
IL_0029: stloc.3
IL_002A: ldloc.3
IL_002B: ldc.i4 1048576
IL_0030: and
IL_0031: brfalse => Label0
IL_0036: ldloc.1
IL_0037: ldfld Array16`1<NetNode> NetManager::m_nodes
IL_003C: ldfld NetNode[] Array16`1<NetNode>::m_buffer
IL_0041: ldarg.1
IL_0042: ldelema NetNode
IL_0047: dup
IL_0048: ldfld Flags NetNode::m_flags
IL_004D: ldc.i4 -1048577
IL_0052: and
IL_0053: stfld Flags NetNode::m_flags
IL_0058: br => Label10
IL_005D: Label0
IL_005D: ldloc.1
IL_005E: ldfld Array16`1<NetNode> NetManager::m_nodes
IL_0063: ldfld NetNode[] Array16`1<NetNode>::m_buffer
IL_0068: ldarg.1
IL_0069: ldelema NetNode
IL_006E: ldfld System.UInt16 NetNode::m_building
IL_0073: stloc.s 4 (System.UInt16)
IL_0075: ldloc.s 4 (System.UInt16)
IL_0077: brfalse => Label1
IL_007C: call static BuildingManager
ColossalFramework.Singleton`1<BuildingManager>::get_instance()
IL_0081: stloc.s 5 (BuildingManager)
IL_0083: ldloc.s 5 (BuildingManager)
IL_0085: ldfld Array16`1<Building> BuildingManager::m_buildings
IL_008A: ldfld Building[] Array16`1<Building>::m_buffer
IL_008F: ldloc.s 4 (System.UInt16)
IL_0091: ldelema Building
IL_0096: ldfld System.UInt16 Building::m_electricityBuffer
IL_009B: ldarg.2
IL_009C: beq => Label2
IL_00A1: ldloc.s 5 (BuildingManager)
IL_00A3: ldfld Array16`1<Building> BuildingManager::m_buildings
IL_00A8: ldfld Building[] Array16`1<Building>::m_buffer
IL_00AD: ldloc.s 4 (System.UInt16)
IL_00AF: ldelema Building
IL_00B4: ldarg.2
IL_00B5: conv.u2
IL_00B6: stfld System.UInt16 Building::m_electricityBuffer
IL_00BB: ldloc.0
IL_00BC: ldc.i4.1
IL_00BD: ceq
IL_00BF: stloc.2
IL_00C0: Label2
IL_00C0: ldloc.2
IL_00C1: brfalse => Label3
IL_00C6: ldloc.s 5 (BuildingManager)
IL_00C8: ldloc.s 4 (System.UInt16)
IL_00CA: callvirt System.Void BuildingManager::UpdateBuildingColors(System.UInt16
building)
IL_00CF: Label1
IL_00CF: Label3
IL_00CF: ldloc.3
IL_00D0: ldc.i4 -67108865
IL_00D5: and
IL_00D6: stloc.s 6 (NetNode+Flags)
IL_00D8: ldarg.2
IL_00D9: brfalse => Label4
IL_00DE: ldloc.s 6 (NetNode+Flags)
IL_00E0: ldc.i4 67108864
IL_00E5: or
IL_00E6: stloc.s 6 (NetNode+Flags)
IL_00E8: Label4
IL_00E8: ldloc.s 6 (NetNode+Flags)
IL_00EA: ldloc.3
IL_00EB: beq => Label5
IL_00F0: ldloc.1
IL_00F1: ldfld Array16`1<NetNode> NetManager::m_nodes
IL_00F6: ldfld NetNode[] Array16`1<NetNode>::m_buffer
IL_00FB: ldarg.1
IL_00FC: ldelema NetNode
IL_0101: ldloc.s 6 (NetNode+Flags)
IL_0103: stfld Flags NetNode::m_flags
IL_0108: ldloc.0
IL_0109: ldc.i4.1
IL_010A: ceq
IL_010C: stloc.2
IL_010D: Label5
IL_010D: ldloc.2
IL_010E: brfalse => Label6
IL_0113: ldloc.1
IL_0114: ldarg.1
IL_0115: conv.u2
IL_0116: callvirt System.Void NetManager::UpdateNodeColors(System.UInt16 node)
IL_011B: ldc.i4.0
IL_011C: stloc.s 7 (System.Int32)
IL_011E: br => Label7
IL_0123: Label9
IL_0123: ldloc.1
IL_0124: ldfld Array16`1<NetNode> NetManager::m_nodes
IL_0129: ldfld NetNode[] Array16`1<NetNode>::m_buffer
IL_012E: ldarg.1
IL_012F: ldelema NetNode
IL_0134: ldloc.s 7 (System.Int32)
IL_0136: call System.UInt16 NetNode::GetSegment(System.Int32 index)
IL_013B: stloc.s 8 (System.UInt16)
IL_013D: ldloc.s 8 (System.UInt16)
IL_013F: brfalse => Label8
IL_0144: ldloc.1
IL_0145: ldloc.s 8 (System.UInt16)
IL_0147: callvirt System.Void NetManager::UpdateSegmentColors(System.UInt16
segment)
IL_014C: Label8
IL_014C: ldloc.s 7 (System.Int32)
IL_014E: ldc.i4.1
IL_014F: add
IL_0150: stloc.s 7 (System.Int32)
IL_0152: Label7
IL_0152: ldloc.s 7 (System.Int32)
IL_0154: ldc.i4.8
IL_0155: blt => Label9
IL_015A: // end original
IL_015A: Label6
IL_015A: Label10
IL_015A: ret
DONE

### Patch: static System.Void PropInstance::RenderInstance(CameraInfo cameraInfo,


PropInfo info, InstanceID id, UnityEngine.Vector3 position, System.Single scale,
System.Single angle, UnityEngine.Color color, UnityEngine.Vector4 objectIndex,
System.Boolean active, UnityEngine.Texture heightMap, UnityEngine.Vector4
heightMapping, UnityEngine.Vector4 surfaceMapping, UnityEngine.Texture
waterHeightMap, UnityEngine.Vector4 waterHeightMapping, UnityEngine.Vector4
waterSurfaceMapping)
### Replacement: static System.Void
PropInstance::PropInstance.RenderInstance_Patch0(CameraInfo cameraInfo, PropInfo
info, InstanceID id, UnityEngine.Vector3 position, System.Single scale,
System.Single angle, UnityEngine.Color color, UnityEngine.Vector4 objectIndex,
System.Boolean active, UnityEngine.Texture heightMap, UnityEngine.Vector4
heightMapping, UnityEngine.Vector4 surfaceMapping, UnityEngine.Texture
waterHeightMap, UnityEngine.Vector4 waterHeightMapping, UnityEngine.Vector4
waterSurfaceMapping)
IL_0000: Local var 0: UnityEngine.Matrix4x4
IL_0000: Local var 1: System.Single
IL_0000: Local var 2: System.Int32
IL_0000: Local var 3: UnityEngine.Vector3
IL_0000: Local var 4: UnityEngine.Vector3
IL_0000: Local var 5: EffectInfo/SpawnArea
IL_0000: Local var 6: System.Single
IL_0000: Local var 7: LightSystem
IL_0000: Local var 8: ColossalFramework.Math.Randomizer
IL_0000: Local var 9: UnityEngine.Vector4
IL_0000: Local var 10: System.Single
IL_0000: Local var 11: System.Single
IL_0000: Local var 12: System.Single
IL_0000: Local var 13: UnityEngine.Matrix4x4
IL_0000: Local var 14: PropManager
IL_0000: Local var 15: UnityEngine.MaterialPropertyBlock
IL_0000: Local var 16: System.Int32
IL_0000: // start original
IL_0000: ldarg.1
IL_0001: ldfld System.Boolean PrefabInfo::m_prefabInitialized
IL_0006: brfalse => Label0
IL_000B: ldarg.1
IL_000C: ldfld System.Boolean PropInfo::m_hasEffects
IL_0011: brfalse => Label1
IL_0016: ldarg.s 8
IL_0018: brtrue => Label2
IL_001D: ldarg.1
IL_001E: ldfld System.Boolean PropInfo::m_alwaysActive
IL_0023: brfalse => Label3
IL_0028: Label2
IL_0028: ldloca.s 0 (UnityEngine.Matrix4x4)
IL_002A: initobj UnityEngine.Matrix4x4
IL_0030: ldloca.s 0 (UnityEngine.Matrix4x4)
IL_0032: ldarg.3
IL_0033: ldarg.s 5
IL_0035: ldc.r4 57.29578
IL_003A: mul
IL_003B: call static UnityEngine.Vector3 UnityEngine.Vector3::get_down()
IL_0040: call static UnityEngine.Quaternion
UnityEngine.Quaternion::AngleAxis(System.Single angle, UnityEngine.Vector3 axis)
IL_0045: ldarg.s 4
IL_0047: ldarg.s 4
IL_0049: ldarg.s 4
IL_004B: newobj System.Void UnityEngine.Vector3::.ctor(System.Single x,
System.Single y, System.Single z)
IL_0050: call System.Void UnityEngine.Matrix4x4::SetTRS(UnityEngine.Vector3
pos, UnityEngine.Quaternion q, UnityEngine.Vector3 s)
IL_0055: call static SimulationManager
ColossalFramework.Singleton`1<SimulationManager>::get_instance()
IL_005A: ldfld System.Single SimulationManager::m_simulationTimeDelta
IL_005F: stloc.1
IL_0060: ldc.i4.0
IL_0061: stloc.2
IL_0062: br => Label4
IL_0067: Label5
IL_0067: ldloca.s 0 (UnityEngine.Matrix4x4)
IL_0069: ldarg.1
IL_006A: ldfld Effect[] PropInfo::m_effects
IL_006F: ldloc.2
IL_0070: ldelema PropInfo+Effect
IL_0075: ldfld UnityEngine.Vector3 Effect::m_position
IL_007A: call UnityEngine.Vector3
UnityEngine.Matrix4x4::MultiplyPoint(UnityEngine.Vector3 v)
IL_007F: stloc.3
IL_0080: ldloca.s 0 (UnityEngine.Matrix4x4)
IL_0082: ldarg.1
IL_0083: ldfld Effect[] PropInfo::m_effects
IL_0088: ldloc.2
IL_0089: ldelema PropInfo+Effect
IL_008E: ldfld UnityEngine.Vector3 Effect::m_direction
IL_0093: call UnityEngine.Vector3
UnityEngine.Matrix4x4::MultiplyVector(UnityEngine.Vector3 v)
IL_0098: stloc.s 4 (UnityEngine.Vector3)
IL_009A: ldloca.s 5 (EffectInfo+SpawnArea)
IL_009C: ldloc.3
IL_009D: ldloc.s 4 (UnityEngine.Vector3)
IL_009F: ldc.r4 0
IL_00A4: call System.Void SpawnArea::.ctor(UnityEngine.Vector3 position,
UnityEngine.Vector3 direction, System.Single radius)
IL_00A9: ldarg.1
IL_00AA: ldfld Effect[] PropInfo::m_effects
IL_00AF: ldloc.2
IL_00B0: ldelema PropInfo+Effect
IL_00B5: ldfld EffectInfo Effect::m_effect
IL_00BA: ldarg.2
IL_00BB: ldloc.s 5 (EffectInfo+SpawnArea)
IL_00BD: call static UnityEngine.Vector3 UnityEngine.Vector3::get_zero()
IL_00C2: ldc.r4 0
IL_00C7: ldc.r4 1
IL_00CC: ldc.r4 -1
IL_00D1: ldloc.1
IL_00D2: ldarg.0
IL_00D3: callvirt virtual System.Void EffectInfo::RenderEffect(InstanceID id,
SpawnArea area, UnityEngine.Vector3 velocity, System.Single acceleration,
System.Single magnitude, System.Single timeOffset, System.Single timeDelta,
CameraInfo cameraInfo)
IL_00D8: ldloc.2
IL_00D9: ldc.i4.1
IL_00DA: add
IL_00DB: stloc.2
IL_00DC: Label4
IL_00DC: ldloc.2
IL_00DD: ldarg.1
IL_00DE: ldfld Effect[] PropInfo::m_effects
IL_00E3: ldlen
IL_00E4: conv.i4
IL_00E5: blt => Label5
IL_00EA: Label1
IL_00EA: Label3
IL_00EA: ldarg.1
IL_00EB: ldfld System.Boolean PropInfo::m_hasRenderer
IL_00F0: brfalse => Label6
IL_00F5: ldarg.0
IL_00F6: ldfld System.Int32 CameraInfo::m_layerMask
IL_00FB: ldc.i4.1
IL_00FC: ldarg.1
IL_00FD: ldfld System.Int32 PrefabInfo::m_prefabDataLayer
IL_0102: ldc.i4.s 31
IL_0104: and
IL_0105: shl
IL_0106: and
IL_0107: brfalse => Label7
IL_010C: call static InfoManager
ColossalFramework.Singleton`1<InfoManager>::get_instance()
IL_0111: callvirt InfoMode InfoManager::get_CurrentMode()
IL_0116: brtrue => Label8
IL_011B: ldc.r4 0
IL_0120: stloc.s 6 (System.Single)
IL_0122: ldarg.s 8
IL_0124: brtrue => Label9
IL_0129: ldarg.1
IL_012A: ldfld System.Boolean PropInfo::m_alwaysActive
IL_012F: brtrue => Label10
IL_0134: ldarga.s 7
IL_0136: ldc.r4 0
IL_013B: stfld System.Single UnityEngine.Vector4::z
IL_0140: br => Label11
IL_0145: Label9
IL_0145: Label10
IL_0145: ldarg.1
IL_0146: ldflda UnityEngine.Vector2 PropInfo::m_illuminationOffRange
IL_014B: ldfld System.Single UnityEngine.Vector2::x
IL_0150: ldc.r4 1000
IL_0155: blt => Label12
IL_015A: ldarg.1
IL_015B: ldfld BlinkType PropInfo::m_illuminationBlinkType
IL_0160: brfalse => Label13
IL_0165: Label12
IL_0165: call static RenderManager
ColossalFramework.Singleton`1<RenderManager>::get_instance()
IL_016A: callvirt LightSystem RenderManager::get_lightSystem()
IL_016F: stloc.s 7 (LightSystem)
IL_0171: ldloca.s 8 (ColossalFramework.Math.Randomizer)
IL_0173: ldarga.s 2
IL_0175: call System.UInt32 InstanceID::get_Index()
IL_017A: call System.Void
ColossalFramework.Math.Randomizer::.ctor(System.UInt32 _seed)
IL_017F: ldarg.1
IL_0180: ldflda UnityEngine.Vector2 PropInfo::m_illuminationOffRange
IL_0185: ldfld System.Single UnityEngine.Vector2::x
IL_018A: ldloca.s 8 (ColossalFramework.Math.Randomizer)
IL_018C: ldc.i4 100000
IL_0191: call System.Int32
ColossalFramework.Math.Randomizer::Int32(System.UInt32 range)
IL_0196: conv.r4
IL_0197: ldc.r4 1E-05
IL_019C: mul
IL_019D: ldarg.1
IL_019E: ldflda UnityEngine.Vector2 PropInfo::m_illuminationOffRange
IL_01A3: ldfld System.Single UnityEngine.Vector2::y
IL_01A8: ldarg.1
IL_01A9: ldflda UnityEngine.Vector2 PropInfo::m_illuminationOffRange
IL_01AE: ldfld System.Single UnityEngine.Vector2::x
IL_01B3: sub
IL_01B4: mul
IL_01B5: add
IL_01B6: stloc.s 6 (System.Single)
IL_01B8: ldarga.s 7
IL_01BA: ldloc.s 6 (System.Single)
IL_01BC: ldc.r4 0.01
IL_01C1: add
IL_01C2: ldloc.s 6 (System.Single)
IL_01C4: ldc.r4 0.01
IL_01C9: sub
IL_01CA: ldloc.s 7 (LightSystem)
IL_01CC: callvirt System.Single LightSystem::get_DayLightIntensity()
IL_01D1: call static System.Single MathUtils::SmoothStep(System.Single edge0,
System.Single edge1, System.Single x)
IL_01D6: stfld System.Single UnityEngine.Vector4::z
IL_01DB: ldarg.1
IL_01DC: ldfld BlinkType PropInfo::m_illuminationBlinkType
IL_01E1: brfalse => Label14
IL_01E6: ldarg.1
IL_01E7: ldfld BlinkType PropInfo::m_illuminationBlinkType
IL_01EC: call static UnityEngine.Vector4
LightEffect::GetBlinkVector(BlinkType type)
IL_01F1: stloc.s 9 (UnityEngine.Vector4)
IL_01F3: ldloc.s 6 (System.Single)
IL_01F5: ldc.r4 3.71
IL_01FA: mul
IL_01FB: call static SimulationManager
ColossalFramework.Singleton`1<SimulationManager>::get_instance()
IL_0200: ldfld System.Single SimulationManager::m_simulationTimer
IL_0205: ldloca.s 9 (UnityEngine.Vector4)
IL_0207: ldfld System.Single UnityEngine.Vector4::w
IL_020C: div
IL_020D: add
IL_020E: stloc.s 10 (System.Single)
IL_0210: ldloc.s 10 (System.Single)
IL_0212: ldloc.s 10 (System.Single)
IL_0214: call static System.Single UnityEngine.Mathf::Floor(System.Single f)
IL_0219: sub
IL_021A: ldloca.s 9 (UnityEngine.Vector4)
IL_021C: ldfld System.Single UnityEngine.Vector4::w
IL_0221: mul
IL_0222: stloc.s 10 (System.Single)
IL_0224: ldloca.s 9 (UnityEngine.Vector4)
IL_0226: ldfld System.Single UnityEngine.Vector4::x
IL_022B: ldloca.s 9 (UnityEngine.Vector4)
IL_022D: ldfld System.Single UnityEngine.Vector4::y
IL_0232: ldloc.s 10 (System.Single)
IL_0234: call static System.Single MathUtils::SmoothStep(System.Single edge0,
System.Single edge1, System.Single x)
IL_0239: stloc.s 11 (System.Single)
IL_023B: ldloca.s 9 (UnityEngine.Vector4)
IL_023D: ldfld System.Single UnityEngine.Vector4::w
IL_0242: ldloca.s 9 (UnityEngine.Vector4)
IL_0244: ldfld System.Single UnityEngine.Vector4::z
IL_0249: ldloc.s 10 (System.Single)
IL_024B: call static System.Single MathUtils::SmoothStep(System.Single edge0,
System.Single edge1, System.Single x)
IL_0250: stloc.s 12 (System.Single)
IL_0252: ldarga.s 7
IL_0254: dup
IL_0255: ldfld System.Single UnityEngine.Vector4::z
IL_025A: ldc.r4 1
IL_025F: ldloc.s 11 (System.Single)
IL_0261: ldloc.s 12 (System.Single)
IL_0263: mul
IL_0264: sub
IL_0265: mul
IL_0266: stfld System.Single UnityEngine.Vector4::z
IL_026B: Label14
IL_026B: br => Label15
IL_0270: Label13
IL_0270: ldarga.s 7
IL_0272: ldc.r4 1
IL_0277: stfld System.Single UnityEngine.Vector4::z
IL_027C: Label8
IL_027C: Label11
IL_027C: Label15
IL_027C: ldarg.0
IL_027D: brfalse => Label16
IL_0282: ldarg.0
IL_0283: ldarg.3
IL_0284: ldarg.1
IL_0285: ldfld System.Single PropInfo::m_lodRenderDistance
IL_028A: callvirt System.Boolean
CameraInfo::CheckRenderDistance(UnityEngine.Vector3 point, System.Single
maxDistance)
IL_028F: brfalse => Label17
IL_0294: Label16
IL_0294: ldloca.s 13 (UnityEngine.Matrix4x4)
IL_0296: initobj UnityEngine.Matrix4x4
IL_029C: ldloca.s 13 (UnityEngine.Matrix4x4)
IL_029E: ldarg.3
IL_029F: ldarg.s 5
IL_02A1: ldc.r4 57.29578
IL_02A6: mul
IL_02A7: call static UnityEngine.Vector3 UnityEngine.Vector3::get_down()
IL_02AC: call static UnityEngine.Quaternion
UnityEngine.Quaternion::AngleAxis(System.Single angle, UnityEngine.Vector3 axis)
IL_02B1: ldarg.s 4
IL_02B3: ldarg.s 4
IL_02B5: ldarg.s 4
IL_02B7: newobj System.Void UnityEngine.Vector3::.ctor(System.Single x,
System.Single y, System.Single z)
IL_02BC: call System.Void UnityEngine.Matrix4x4::SetTRS(UnityEngine.Vector3
pos, UnityEngine.Quaternion q, UnityEngine.Vector3 s)
IL_02C1: call static PropManager
ColossalFramework.Singleton`1<PropManager>::get_instance()
IL_02C6: stloc.s 14 (PropManager)
IL_02C8: ldloc.s 14 (PropManager)
IL_02CA: ldfld UnityEngine.MaterialPropertyBlock PropManager::m_materialBlock
IL_02CF: stloc.s 15 (UnityEngine.MaterialPropertyBlock)
IL_02D1: ldloc.s 15 (UnityEngine.MaterialPropertyBlock)
IL_02D3: callvirt System.Void UnityEngine.MaterialPropertyBlock::Clear()
IL_02D8: ldloc.s 15 (UnityEngine.MaterialPropertyBlock)
IL_02DA: ldloc.s 14 (PropManager)
IL_02DC: ldfld System.Int32 PropManager::ID_Color
IL_02E1: ldarg.s 6
IL_02E3: callvirt System.Void
UnityEngine.MaterialPropertyBlock::SetColor(System.Int32 nameID, UnityEngine.Color
value)
IL_02E8: ldloc.s 15 (UnityEngine.MaterialPropertyBlock)
IL_02EA: ldloc.s 14 (PropManager)
IL_02EC: ldfld System.Int32 PropManager::ID_HeightMap
IL_02F1: ldarg.s 9
IL_02F3: callvirt System.Void
UnityEngine.MaterialPropertyBlock::SetTexture(System.Int32 nameID,
UnityEngine.Texture value)
IL_02F8: ldloc.s 15 (UnityEngine.MaterialPropertyBlock)
IL_02FA: ldloc.s 14 (PropManager)
IL_02FC: ldfld System.Int32 PropManager::ID_HeightMapping
IL_0301: ldarg.s 10
IL_0303: callvirt System.Void
UnityEngine.MaterialPropertyBlock::SetVector(System.Int32 nameID,
UnityEngine.Vector4 value)
IL_0308: ldloc.s 15 (UnityEngine.MaterialPropertyBlock)
IL_030A: ldloc.s 14 (PropManager)
IL_030C: ldfld System.Int32 PropManager::ID_SurfaceMapping
IL_0311: ldarg.s 11
IL_0313: callvirt System.Void
UnityEngine.MaterialPropertyBlock::SetVector(System.Int32 nameID,
UnityEngine.Vector4 value)
IL_0318: ldloc.s 15 (UnityEngine.MaterialPropertyBlock)
IL_031A: ldloc.s 14 (PropManager)
IL_031C: ldfld System.Int32 PropManager::ID_ObjectIndex
IL_0321: ldarg.s 7
IL_0323: callvirt System.Void
UnityEngine.MaterialPropertyBlock::SetVector(System.Int32 nameID,
UnityEngine.Vector4 value)
IL_0328: ldloc.s 15 (UnityEngine.MaterialPropertyBlock)
IL_032A: ldloc.s 14 (PropManager)
IL_032C: ldfld System.Int32 PropManager::ID_WaterHeightMap
IL_0331: ldarg.s 12
IL_0333: callvirt System.Void
UnityEngine.MaterialPropertyBlock::SetTexture(System.Int32 nameID,
UnityEngine.Texture value)
IL_0338: ldloc.s 15 (UnityEngine.MaterialPropertyBlock)
IL_033A: ldloc.s 14 (PropManager)
IL_033C: ldfld System.Int32 PropManager::ID_WaterHeightMapping
IL_0341: ldarg.s 13
IL_0343: callvirt System.Void
UnityEngine.MaterialPropertyBlock::SetVector(System.Int32 nameID,
UnityEngine.Vector4 value)
IL_0348: ldloc.s 15 (UnityEngine.MaterialPropertyBlock)
IL_034A: ldloc.s 14 (PropManager)
IL_034C: ldfld System.Int32 PropManager::ID_WaterSurfaceMapping
IL_0351: ldarg.s 14
IL_0353: callvirt System.Void
UnityEngine.MaterialPropertyBlock::SetVector(System.Int32 nameID,
UnityEngine.Vector4 value)
IL_0358: ldarg.1
IL_0359: ldfld UnityEngine.Vector4[] PropInfo::m_rollLocation
IL_035E: brfalse => Label18
IL_0363: ldarg.1
IL_0364: ldfld UnityEngine.Material PropInfo::m_material
IL_0369: ldloc.s 14 (PropManager)
IL_036B: ldfld System.Int32 PropManager::ID_RollLocation
IL_0370: ldarg.1
IL_0371: ldfld UnityEngine.Vector4[] PropInfo::m_rollLocation
IL_0376: callvirt System.Void UnityEngine.Material::SetVectorArray(System.Int32
nameID, UnityEngine.Vector4[] values)
IL_037B: ldarg.1
IL_037C: ldfld UnityEngine.Material PropInfo::m_material
IL_0381: ldloc.s 14 (PropManager)
IL_0383: ldfld System.Int32 PropManager::ID_RollParams
IL_0388: ldarg.1
IL_0389: ldfld UnityEngine.Vector4[] PropInfo::m_rollParams
IL_038E: callvirt System.Void UnityEngine.Material::SetVectorArray(System.Int32
nameID, UnityEngine.Vector4[] values)
IL_0393: Label18
IL_0393: ldloc.s 14 (PropManager)
IL_0395: ldflda DrawCallData SimulationManagerBase`2<PropManager,
PropProperties>::m_drawCallData
IL_039A: dup
IL_039B: ldfld System.Int32 DrawCallData::m_defaultCalls
IL_03A0: ldc.i4.1
IL_03A1: add
IL_03A2: stfld System.Int32 DrawCallData::m_defaultCalls
IL_03A7: ldarg.1
IL_03A8: ldfld UnityEngine.Mesh PropInfo::m_mesh
IL_03AD: ldloc.s 13 (UnityEngine.Matrix4x4)
IL_03AF: ldarg.1
IL_03B0: ldfld UnityEngine.Material PropInfo::m_material
IL_03B5: ldarg.1
IL_03B6: ldfld System.Int32 PrefabInfo::m_prefabDataLayer
IL_03BB: ldnull
IL_03BC: ldc.i4.0
IL_03BD: ldloc.s 15 (UnityEngine.MaterialPropertyBlock)
IL_03BF: call static System.Void
UnityEngine.Graphics::DrawMesh(UnityEngine.Mesh mesh, UnityEngine.Matrix4x4 matrix,
UnityEngine.Material material, System.Int32 layer, UnityEngine.Camera camera,
System.Int32 submeshIndex, UnityEngine.MaterialPropertyBlock properties)
IL_03C4: br => Label19
IL_03C9: Label17
IL_03C9: ldarg.s 9
IL_03CB: ldarg.1
IL_03CC: ldfld UnityEngine.Texture PropInfo::m_lodHeightMap
IL_03D1: call static System.Boolean
UnityEngine.Object::op_Inequality(UnityEngine.Object x, UnityEngine.Object y)
IL_03D6: brtrue => Label20
IL_03DB: ldarg.s 12
IL_03DD: ldarg.1
IL_03DE: ldfld UnityEngine.Texture PropInfo::m_lodWaterHeightMap
IL_03E3: call static System.Boolean
UnityEngine.Object::op_Inequality(UnityEngine.Object x, UnityEngine.Object y)
IL_03E8: brfalse => Label21
IL_03ED: Label20
IL_03ED: ldarg.1
IL_03EE: ldfld System.Int32 PropInfo::m_lodCount
IL_03F3: brfalse => Label22
IL_03F8: ldarg.0
IL_03F9: ldarg.1
IL_03FA: call static System.Void PropInstance::RenderLod(CameraInfo
cameraInfo, PropInfo info)
IL_03FF: Label22
IL_03FF: ldarg.1
IL_0400: ldarg.s 9
IL_0402: stfld UnityEngine.Texture PropInfo::m_lodHeightMap
IL_0407: ldarg.1
IL_0408: ldarg.s 10
IL_040A: stfld UnityEngine.Vector4 PropInfo::m_lodHeightMapping
IL_040F: ldarg.1
IL_0410: ldarg.s 11
IL_0412: stfld UnityEngine.Vector4 PropInfo::m_lodSurfaceMapping
IL_0417: ldarg.1
IL_0418: ldarg.s 12
IL_041A: stfld UnityEngine.Texture PropInfo::m_lodWaterHeightMap
IL_041F: ldarg.1
IL_0420: ldarg.s 13
IL_0422: stfld UnityEngine.Vector4 PropInfo::m_lodWaterHeightMapping
IL_0427: ldarg.1
IL_0428: ldarg.s 14
IL_042A: stfld UnityEngine.Vector4 PropInfo::m_lodWaterSurfaceMapping
IL_042F: Label21
IL_042F: ldarga.s 7
IL_0431: ldarg.s 4
IL_0433: stfld System.Single UnityEngine.Vector4::w
IL_0438: ldarg.1
IL_0439: ldfld UnityEngine.Vector4[] PropInfo::m_lodLocations
IL_043E: ldarg.1
IL_043F: ldfld System.Int32 PropInfo::m_lodCount
IL_0444: ldelema UnityEngine.Vector4
IL_0449: ldarga.s 3
IL_044B: ldfld System.Single UnityEngine.Vector3::x
IL_0450: ldarga.s 3
IL_0452: ldfld System.Single UnityEngine.Vector3::y
IL_0457: ldarga.s 3
IL_0459: ldfld System.Single UnityEngine.Vector3::z
IL_045E: ldarg.s 5
IL_0460: newobj System.Void UnityEngine.Vector4::.ctor(System.Single x,
System.Single y, System.Single z, System.Single w)
IL_0465: stobj UnityEngine.Vector4
IL_046A: ldarg.1
IL_046B: ldfld UnityEngine.Vector4[] PropInfo::m_lodObjectIndices
IL_0470: ldarg.1
IL_0471: ldfld System.Int32 PropInfo::m_lodCount
IL_0476: ldelema UnityEngine.Vector4
IL_047B: ldarg.s 7
IL_047D: stobj UnityEngine.Vector4
IL_0482: ldarg.1
IL_0483: ldfld UnityEngine.Vector4[] PropInfo::m_lodColors
IL_0488: ldarg.1
IL_0489: ldfld System.Int32 PropInfo::m_lodCount
IL_048E: ldelema UnityEngine.Vector4
IL_0493: ldarga.s 6
IL_0495: call UnityEngine.Color UnityEngine.Color::get_linear()
IL_049A: call static UnityEngine.Vector4
UnityEngine.Color::op_Implicit(UnityEngine.Color c)
IL_049F: stobj UnityEngine.Vector4
IL_04A4: ldarg.1
IL_04A5: ldarg.1
IL_04A6: ldfld UnityEngine.Vector3 PropInfo::m_lodMin
IL_04AB: ldarg.3
IL_04AC: call static UnityEngine.Vector3
UnityEngine.Vector3::Min(UnityEngine.Vector3 lhs, UnityEngine.Vector3 rhs)
IL_04B1: stfld UnityEngine.Vector3 PropInfo::m_lodMin
IL_04B6: ldarg.1
IL_04B7: ldarg.1
IL_04B8: ldfld UnityEngine.Vector3 PropInfo::m_lodMax
IL_04BD: ldarg.3
IL_04BE: call static UnityEngine.Vector3
UnityEngine.Vector3::Max(UnityEngine.Vector3 lhs, UnityEngine.Vector3 rhs)
IL_04C3: stfld UnityEngine.Vector3 PropInfo::m_lodMax
IL_04C8: ldarg.1
IL_04C9: dup
IL_04CA: ldfld System.Int32 PropInfo::m_lodCount
IL_04CF: ldc.i4.1
IL_04D0: add
IL_04D1: dup
IL_04D2: stloc.s 16 (System.Int32)
IL_04D4: stfld System.Int32 PropInfo::m_lodCount
IL_04D9: ldloc.s 16 (System.Int32)
IL_04DB: ldarg.1
IL_04DC: ldfld UnityEngine.Vector4[] PropInfo::m_lodLocations
IL_04E1: ldlen
IL_04E2: conv.i4
IL_04E3: bne.un => Label23
IL_04E8: ldarg.0
IL_04E9: ldarg.1
IL_04EA: call static System.Void PropInstance::RenderLod(CameraInfo
cameraInfo, PropInfo info)
IL_04EF: // end original
IL_04EF: Label0
IL_04EF: Label6
IL_04EF: Label7
IL_04EF: Label19
IL_04EF: Label23
IL_04EF: ret
DONE

### Patch: static System.Void PropInstance::RenderInstance(CameraInfo cameraInfo,


PropInfo info, InstanceID id, UnityEngine.Vector3 position, System.Single scale,
System.Single angle, UnityEngine.Color color, UnityEngine.Vector4 objectIndex,
System.Boolean active)
### Replacement: static System.Void
PropInstance::PropInstance.RenderInstance_Patch0(CameraInfo cameraInfo, PropInfo
info, InstanceID id, UnityEngine.Vector3 position, System.Single scale,
System.Single angle, UnityEngine.Color color, UnityEngine.Vector4 objectIndex,
System.Boolean active)
IL_0000: Local var 0: UnityEngine.Matrix4x4
IL_0000: Local var 1: System.Single
IL_0000: Local var 2: System.Int32
IL_0000: Local var 3: UnityEngine.Vector3
IL_0000: Local var 4: UnityEngine.Vector3
IL_0000: Local var 5: EffectInfo/SpawnArea
IL_0000: Local var 6: System.Single
IL_0000: Local var 7: LightSystem
IL_0000: Local var 8: ColossalFramework.Math.Randomizer
IL_0000: Local var 9: UnityEngine.Vector4
IL_0000: Local var 10: System.Single
IL_0000: Local var 11: System.Single
IL_0000: Local var 12: System.Single
IL_0000: Local var 13: UnityEngine.Matrix4x4
IL_0000: Local var 14: PropManager
IL_0000: Local var 15: UnityEngine.MaterialPropertyBlock
IL_0000: Local var 16: UnityEngine.Matrix4x4
IL_0000: Local var 17: PropManager
IL_0000: Local var 18: UnityEngine.MaterialPropertyBlock
IL_0000: Local var 19: System.Int32
IL_0000: // start original
IL_0000: ldarg.1
IL_0001: ldfld System.Boolean PrefabInfo::m_prefabInitialized
IL_0006: brfalse => Label0
IL_000B: ldarg.1
IL_000C: ldfld System.Boolean PropInfo::m_hasEffects
IL_0011: brfalse => Label1
IL_0016: ldarg.s 8
IL_0018: brtrue => Label2
IL_001D: ldarg.1
IL_001E: ldfld System.Boolean PropInfo::m_alwaysActive
IL_0023: brfalse => Label3
IL_0028: Label2
IL_0028: ldloca.s 0 (UnityEngine.Matrix4x4)
IL_002A: initobj UnityEngine.Matrix4x4
IL_0030: ldloca.s 0 (UnityEngine.Matrix4x4)
IL_0032: ldarg.3
IL_0033: ldarg.s 5
IL_0035: ldc.r4 57.29578
IL_003A: mul
IL_003B: call static UnityEngine.Vector3 UnityEngine.Vector3::get_down()
IL_0040: call static UnityEngine.Quaternion
UnityEngine.Quaternion::AngleAxis(System.Single angle, UnityEngine.Vector3 axis)
IL_0045: ldarg.s 4
IL_0047: ldarg.s 4
IL_0049: ldarg.s 4
IL_004B: newobj System.Void UnityEngine.Vector3::.ctor(System.Single x,
System.Single y, System.Single z)
IL_0050: call System.Void UnityEngine.Matrix4x4::SetTRS(UnityEngine.Vector3
pos, UnityEngine.Quaternion q, UnityEngine.Vector3 s)
IL_0055: call static SimulationManager
ColossalFramework.Singleton`1<SimulationManager>::get_instance()
IL_005A: ldfld System.Single SimulationManager::m_simulationTimeDelta
IL_005F: stloc.1
IL_0060: ldc.i4.0
IL_0061: stloc.2
IL_0062: br => Label4
IL_0067: Label5
IL_0067: ldloca.s 0 (UnityEngine.Matrix4x4)
IL_0069: ldarg.1
IL_006A: ldfld Effect[] PropInfo::m_effects
IL_006F: ldloc.2
IL_0070: ldelema PropInfo+Effect
IL_0075: ldfld UnityEngine.Vector3 Effect::m_position
IL_007A: call UnityEngine.Vector3
UnityEngine.Matrix4x4::MultiplyPoint(UnityEngine.Vector3 v)
IL_007F: stloc.3
IL_0080: ldloca.s 0 (UnityEngine.Matrix4x4)
IL_0082: ldarg.1
IL_0083: ldfld Effect[] PropInfo::m_effects
IL_0088: ldloc.2
IL_0089: ldelema PropInfo+Effect
IL_008E: ldfld UnityEngine.Vector3 Effect::m_direction
IL_0093: call UnityEngine.Vector3
UnityEngine.Matrix4x4::MultiplyVector(UnityEngine.Vector3 v)
IL_0098: stloc.s 4 (UnityEngine.Vector3)
IL_009A: ldloca.s 5 (EffectInfo+SpawnArea)
IL_009C: ldloc.3
IL_009D: ldloc.s 4 (UnityEngine.Vector3)
IL_009F: ldc.r4 0
IL_00A4: call System.Void SpawnArea::.ctor(UnityEngine.Vector3 position,
UnityEngine.Vector3 direction, System.Single radius)
IL_00A9: ldarg.1
IL_00AA: ldfld Effect[] PropInfo::m_effects
IL_00AF: ldloc.2
IL_00B0: ldelema PropInfo+Effect
IL_00B5: ldfld EffectInfo Effect::m_effect
IL_00BA: ldarg.2
IL_00BB: ldloc.s 5 (EffectInfo+SpawnArea)
IL_00BD: call static UnityEngine.Vector3 UnityEngine.Vector3::get_zero()
IL_00C2: ldc.r4 0
IL_00C7: ldc.r4 1
IL_00CC: ldc.r4 -1
IL_00D1: ldloc.1
IL_00D2: ldarg.0
IL_00D3: callvirt virtual System.Void EffectInfo::RenderEffect(InstanceID id,
SpawnArea area, UnityEngine.Vector3 velocity, System.Single acceleration,
System.Single magnitude, System.Single timeOffset, System.Single timeDelta,
CameraInfo cameraInfo)
IL_00D8: ldloc.2
IL_00D9: ldc.i4.1
IL_00DA: add
IL_00DB: stloc.2
IL_00DC: Label4
IL_00DC: ldloc.2
IL_00DD: ldarg.1
IL_00DE: ldfld Effect[] PropInfo::m_effects
IL_00E3: ldlen
IL_00E4: conv.i4
IL_00E5: blt => Label5
IL_00EA: Label1
IL_00EA: Label3
IL_00EA: ldarg.1
IL_00EB: ldfld System.Boolean PropInfo::m_hasRenderer
IL_00F0: brfalse => Label6
IL_00F5: ldarg.0
IL_00F6: ldfld System.Int32 CameraInfo::m_layerMask
IL_00FB: ldc.i4.1
IL_00FC: ldarg.1
IL_00FD: ldfld System.Int32 PrefabInfo::m_prefabDataLayer
IL_0102: ldc.i4.s 31
IL_0104: and
IL_0105: shl
IL_0106: and
IL_0107: brfalse => Label7
IL_010C: call static InfoManager
ColossalFramework.Singleton`1<InfoManager>::get_instance()
IL_0111: callvirt InfoMode InfoManager::get_CurrentMode()
IL_0116: brtrue => Label8
IL_011B: ldc.r4 0
IL_0120: stloc.s 6 (System.Single)
IL_0122: ldarg.s 8
IL_0124: brtrue => Label9
IL_0129: ldarg.1
IL_012A: ldfld System.Boolean PropInfo::m_alwaysActive
IL_012F: brtrue => Label10
IL_0134: ldarga.s 7
IL_0136: ldc.r4 0
IL_013B: stfld System.Single UnityEngine.Vector4::z
IL_0140: br => Label11
IL_0145: Label9
IL_0145: Label10
IL_0145: ldarg.1
IL_0146: ldflda UnityEngine.Vector2 PropInfo::m_illuminationOffRange
IL_014B: ldfld System.Single UnityEngine.Vector2::x
IL_0150: ldc.r4 1000
IL_0155: blt => Label12
IL_015A: ldarg.1
IL_015B: ldfld BlinkType PropInfo::m_illuminationBlinkType
IL_0160: brfalse => Label13
IL_0165: Label12
IL_0165: call static RenderManager
ColossalFramework.Singleton`1<RenderManager>::get_instance()
IL_016A: callvirt LightSystem RenderManager::get_lightSystem()
IL_016F: stloc.s 7 (LightSystem)
IL_0171: ldloca.s 8 (ColossalFramework.Math.Randomizer)
IL_0173: ldarga.s 2
IL_0175: call System.UInt32 InstanceID::get_Index()
IL_017A: call System.Void
ColossalFramework.Math.Randomizer::.ctor(System.UInt32 _seed)
IL_017F: ldarg.1
IL_0180: ldflda UnityEngine.Vector2 PropInfo::m_illuminationOffRange
IL_0185: ldfld System.Single UnityEngine.Vector2::x
IL_018A: ldloca.s 8 (ColossalFramework.Math.Randomizer)
IL_018C: ldc.i4 100000
IL_0191: call System.Int32
ColossalFramework.Math.Randomizer::Int32(System.UInt32 range)
IL_0196: conv.r4
IL_0197: ldc.r4 1E-05
IL_019C: mul
IL_019D: ldarg.1
IL_019E: ldflda UnityEngine.Vector2 PropInfo::m_illuminationOffRange
IL_01A3: ldfld System.Single UnityEngine.Vector2::y
IL_01A8: ldarg.1
IL_01A9: ldflda UnityEngine.Vector2 PropInfo::m_illuminationOffRange
IL_01AE: ldfld System.Single UnityEngine.Vector2::x
IL_01B3: sub
IL_01B4: mul
IL_01B5: add
IL_01B6: stloc.s 6 (System.Single)
IL_01B8: ldarga.s 7
IL_01BA: ldloc.s 6 (System.Single)
IL_01BC: ldc.r4 0.01
IL_01C1: add
IL_01C2: ldloc.s 6 (System.Single)
IL_01C4: ldc.r4 0.01
IL_01C9: sub
IL_01CA: ldloc.s 7 (LightSystem)
IL_01CC: callvirt System.Single LightSystem::get_DayLightIntensity()
IL_01D1: call static System.Single MathUtils::SmoothStep(System.Single edge0,
System.Single edge1, System.Single x)
IL_01D6: stfld System.Single UnityEngine.Vector4::z
IL_01DB: ldarg.1
IL_01DC: ldfld BlinkType PropInfo::m_illuminationBlinkType
IL_01E1: brfalse => Label14
IL_01E6: ldarg.1
IL_01E7: ldfld BlinkType PropInfo::m_illuminationBlinkType
IL_01EC: call static UnityEngine.Vector4
LightEffect::GetBlinkVector(BlinkType type)
IL_01F1: stloc.s 9 (UnityEngine.Vector4)
IL_01F3: ldloc.s 6 (System.Single)
IL_01F5: ldc.r4 3.71
IL_01FA: mul
IL_01FB: call static SimulationManager
ColossalFramework.Singleton`1<SimulationManager>::get_instance()
IL_0200: ldfld System.Single SimulationManager::m_simulationTimer
IL_0205: ldloca.s 9 (UnityEngine.Vector4)
IL_0207: ldfld System.Single UnityEngine.Vector4::w
IL_020C: div
IL_020D: add
IL_020E: stloc.s 10 (System.Single)
IL_0210: ldloc.s 10 (System.Single)
IL_0212: ldloc.s 10 (System.Single)
IL_0214: call static System.Single UnityEngine.Mathf::Floor(System.Single f)
IL_0219: sub
IL_021A: ldloca.s 9 (UnityEngine.Vector4)
IL_021C: ldfld System.Single UnityEngine.Vector4::w
IL_0221: mul
IL_0222: stloc.s 10 (System.Single)
IL_0224: ldloca.s 9 (UnityEngine.Vector4)
IL_0226: ldfld System.Single UnityEngine.Vector4::x
IL_022B: ldloca.s 9 (UnityEngine.Vector4)
IL_022D: ldfld System.Single UnityEngine.Vector4::y
IL_0232: ldloc.s 10 (System.Single)
IL_0234: call static System.Single MathUtils::SmoothStep(System.Single edge0,
System.Single edge1, System.Single x)
IL_0239: stloc.s 11 (System.Single)
IL_023B: ldloca.s 9 (UnityEngine.Vector4)
IL_023D: ldfld System.Single UnityEngine.Vector4::w
IL_0242: ldloca.s 9 (UnityEngine.Vector4)
IL_0244: ldfld System.Single UnityEngine.Vector4::z
IL_0249: ldloc.s 10 (System.Single)
IL_024B: call static System.Single MathUtils::SmoothStep(System.Single edge0,
System.Single edge1, System.Single x)
IL_0250: stloc.s 12 (System.Single)
IL_0252: ldarga.s 7
IL_0254: dup
IL_0255: ldfld System.Single UnityEngine.Vector4::z
IL_025A: ldc.r4 1
IL_025F: ldloc.s 11 (System.Single)
IL_0261: ldloc.s 12 (System.Single)
IL_0263: mul
IL_0264: sub
IL_0265: mul
IL_0266: stfld System.Single UnityEngine.Vector4::z
IL_026B: Label14
IL_026B: br => Label15
IL_0270: Label13
IL_0270: ldarga.s 7
IL_0272: ldc.r4 1
IL_0277: stfld System.Single UnityEngine.Vector4::z
IL_027C: Label8
IL_027C: Label11
IL_027C: Label15
IL_027C: ldarg.0
IL_027D: brfalse => Label16
IL_0282: ldarg.0
IL_0283: ldarg.3
IL_0284: ldarg.1
IL_0285: ldfld System.Single PropInfo::m_lodRenderDistance
IL_028A: callvirt System.Boolean
CameraInfo::CheckRenderDistance(UnityEngine.Vector3 point, System.Single
maxDistance)
IL_028F: brfalse => Label17
IL_0294: Label16
IL_0294: ldloca.s 13 (UnityEngine.Matrix4x4)
IL_0296: initobj UnityEngine.Matrix4x4
IL_029C: ldloca.s 13 (UnityEngine.Matrix4x4)
IL_029E: ldarg.3
IL_029F: ldarg.s 5
IL_02A1: ldc.r4 57.29578
IL_02A6: mul
IL_02A7: call static UnityEngine.Vector3 UnityEngine.Vector3::get_down()
IL_02AC: call static UnityEngine.Quaternion
UnityEngine.Quaternion::AngleAxis(System.Single angle, UnityEngine.Vector3 axis)
IL_02B1: ldarg.s 4
IL_02B3: ldarg.s 4
IL_02B5: ldarg.s 4
IL_02B7: newobj System.Void UnityEngine.Vector3::.ctor(System.Single x,
System.Single y, System.Single z)
IL_02BC: call System.Void UnityEngine.Matrix4x4::SetTRS(UnityEngine.Vector3
pos, UnityEngine.Quaternion q, UnityEngine.Vector3 s)
IL_02C1: call static PropManager
ColossalFramework.Singleton`1<PropManager>::get_instance()
IL_02C6: stloc.s 14 (PropManager)
IL_02C8: ldloc.s 14 (PropManager)
IL_02CA: ldfld UnityEngine.MaterialPropertyBlock PropManager::m_materialBlock
IL_02CF: stloc.s 15 (UnityEngine.MaterialPropertyBlock)
IL_02D1: ldloc.s 15 (UnityEngine.MaterialPropertyBlock)
IL_02D3: callvirt System.Void UnityEngine.MaterialPropertyBlock::Clear()
IL_02D8: ldloc.s 15 (UnityEngine.MaterialPropertyBlock)
IL_02DA: ldloc.s 14 (PropManager)
IL_02DC: ldfld System.Int32 PropManager::ID_Color
IL_02E1: ldarg.s 6
IL_02E3: callvirt System.Void
UnityEngine.MaterialPropertyBlock::SetColor(System.Int32 nameID, UnityEngine.Color
value)
IL_02E8: ldloc.s 15 (UnityEngine.MaterialPropertyBlock)
IL_02EA: ldloc.s 14 (PropManager)
IL_02EC: ldfld System.Int32 PropManager::ID_ObjectIndex
IL_02F1: ldarg.s 7
IL_02F3: callvirt System.Void
UnityEngine.MaterialPropertyBlock::SetVector(System.Int32 nameID,
UnityEngine.Vector4 value)
IL_02F8: ldarg.1
IL_02F9: ldfld UnityEngine.Vector4[] PropInfo::m_rollLocation
IL_02FE: brfalse => Label18
IL_0303: ldarg.1
IL_0304: ldfld UnityEngine.Material PropInfo::m_material
IL_0309: ldloc.s 14 (PropManager)
IL_030B: ldfld System.Int32 PropManager::ID_RollLocation
IL_0310: ldarg.1
IL_0311: ldfld UnityEngine.Vector4[] PropInfo::m_rollLocation
IL_0316: callvirt System.Void UnityEngine.Material::SetVectorArray(System.Int32
nameID, UnityEngine.Vector4[] values)
IL_031B: ldarg.1
IL_031C: ldfld UnityEngine.Material PropInfo::m_material
IL_0321: ldloc.s 14 (PropManager)
IL_0323: ldfld System.Int32 PropManager::ID_RollParams
IL_0328: ldarg.1
IL_0329: ldfld UnityEngine.Vector4[] PropInfo::m_rollParams
IL_032E: callvirt System.Void UnityEngine.Material::SetVectorArray(System.Int32
nameID, UnityEngine.Vector4[] values)
IL_0333: Label18
IL_0333: ldloc.s 14 (PropManager)
IL_0335: ldflda DrawCallData SimulationManagerBase`2<PropManager,
PropProperties>::m_drawCallData
IL_033A: dup
IL_033B: ldfld System.Int32 DrawCallData::m_defaultCalls
IL_0340: ldc.i4.1
IL_0341: add
IL_0342: stfld System.Int32 DrawCallData::m_defaultCalls
IL_0347: ldarg.1
IL_0348: ldfld UnityEngine.Mesh PropInfo::m_mesh
IL_034D: ldloc.s 13 (UnityEngine.Matrix4x4)
IL_034F: ldarg.1
IL_0350: ldfld UnityEngine.Material PropInfo::m_material
IL_0355: ldarg.1
IL_0356: ldfld System.Int32 PrefabInfo::m_prefabDataLayer
IL_035B: ldnull
IL_035C: ldc.i4.0
IL_035D: ldloc.s 15 (UnityEngine.MaterialPropertyBlock)
IL_035F: call static System.Void
UnityEngine.Graphics::DrawMesh(UnityEngine.Mesh mesh, UnityEngine.Matrix4x4 matrix,
UnityEngine.Material material, System.Int32 layer, UnityEngine.Camera camera,
System.Int32 submeshIndex, UnityEngine.MaterialPropertyBlock properties)
IL_0364: br => Label19
IL_0369: Label17
IL_0369: ldarg.1
IL_036A: ldfld UnityEngine.Material PropInfo::m_lodMaterialCombined
IL_036F: ldnull
IL_0370: call static System.Boolean
UnityEngine.Object::op_Equality(UnityEngine.Object x, UnityEngine.Object y)
IL_0375: brfalse => Label20
IL_037A: ldloca.s 16 (UnityEngine.Matrix4x4)
IL_037C: initobj UnityEngine.Matrix4x4
IL_0382: ldloca.s 16 (UnityEngine.Matrix4x4)
IL_0384: ldarg.3
IL_0385: ldarg.s 5
IL_0387: ldc.r4 57.29578
IL_038C: mul
IL_038D: call static UnityEngine.Vector3 UnityEngine.Vector3::get_down()
IL_0392: call static UnityEngine.Quaternion
UnityEngine.Quaternion::AngleAxis(System.Single angle, UnityEngine.Vector3 axis)
IL_0397: ldarg.s 4
IL_0399: ldarg.s 4
IL_039B: ldarg.s 4
IL_039D: newobj System.Void UnityEngine.Vector3::.ctor(System.Single x,
System.Single y, System.Single z)
IL_03A2: call System.Void UnityEngine.Matrix4x4::SetTRS(UnityEngine.Vector3
pos, UnityEngine.Quaternion q, UnityEngine.Vector3 s)
IL_03A7: call static PropManager
ColossalFramework.Singleton`1<PropManager>::get_instance()
IL_03AC: stloc.s 17 (PropManager)
IL_03AE: ldloc.s 17 (PropManager)
IL_03B0: ldfld UnityEngine.MaterialPropertyBlock PropManager::m_materialBlock
IL_03B5: stloc.s 18 (UnityEngine.MaterialPropertyBlock)
IL_03B7: ldloc.s 18 (UnityEngine.MaterialPropertyBlock)
IL_03B9: callvirt System.Void UnityEngine.MaterialPropertyBlock::Clear()
IL_03BE: ldloc.s 18 (UnityEngine.MaterialPropertyBlock)
IL_03C0: ldloc.s 17 (PropManager)
IL_03C2: ldfld System.Int32 PropManager::ID_Color
IL_03C7: ldarg.s 6
IL_03C9: callvirt System.Void
UnityEngine.MaterialPropertyBlock::SetColor(System.Int32 nameID, UnityEngine.Color
value)
IL_03CE: ldloc.s 18 (UnityEngine.MaterialPropertyBlock)
IL_03D0: ldloc.s 17 (PropManager)
IL_03D2: ldfld System.Int32 PropManager::ID_ObjectIndex
IL_03D7: ldarg.s 7
IL_03D9: callvirt System.Void
UnityEngine.MaterialPropertyBlock::SetVector(System.Int32 nameID,
UnityEngine.Vector4 value)
IL_03DE: ldarg.1
IL_03DF: ldfld UnityEngine.Vector4[] PropInfo::m_rollLocation
IL_03E4: brfalse => Label21
IL_03E9: ldarg.1
IL_03EA: ldfld UnityEngine.Material PropInfo::m_material
IL_03EF: ldloc.s 17 (PropManager)
IL_03F1: ldfld System.Int32 PropManager::ID_RollLocation
IL_03F6: ldarg.1
IL_03F7: ldfld UnityEngine.Vector4[] PropInfo::m_rollLocation
IL_03FC: callvirt System.Void UnityEngine.Material::SetVectorArray(System.Int32
nameID, UnityEngine.Vector4[] values)
IL_0401: ldarg.1
IL_0402: ldfld UnityEngine.Material PropInfo::m_material
IL_0407: ldloc.s 17 (PropManager)
IL_0409: ldfld System.Int32 PropManager::ID_RollParams
IL_040E: ldarg.1
IL_040F: ldfld UnityEngine.Vector4[] PropInfo::m_rollParams
IL_0414: callvirt System.Void UnityEngine.Material::SetVectorArray(System.Int32
nameID, UnityEngine.Vector4[] values)
IL_0419: Label21
IL_0419: ldloc.s 17 (PropManager)
IL_041B: ldflda DrawCallData SimulationManagerBase`2<PropManager,
PropProperties>::m_drawCallData
IL_0420: dup
IL_0421: ldfld System.Int32 DrawCallData::m_defaultCalls
IL_0426: ldc.i4.1
IL_0427: add
IL_0428: stfld System.Int32 DrawCallData::m_defaultCalls
IL_042D: ldarg.1
IL_042E: ldfld UnityEngine.Mesh PropInfo::m_lodMesh
IL_0433: ldloc.s 16 (UnityEngine.Matrix4x4)
IL_0435: ldarg.1
IL_0436: ldfld UnityEngine.Material PropInfo::m_lodMaterial
IL_043B: ldarg.1
IL_043C: ldfld System.Int32 PrefabInfo::m_prefabDataLayer
IL_0441: ldnull
IL_0442: ldc.i4.0
IL_0443: ldloc.s 18 (UnityEngine.MaterialPropertyBlock)
IL_0445: call static System.Void
UnityEngine.Graphics::DrawMesh(UnityEngine.Mesh mesh, UnityEngine.Matrix4x4 matrix,
UnityEngine.Material material, System.Int32 layer, UnityEngine.Camera camera,
System.Int32 submeshIndex, UnityEngine.MaterialPropertyBlock properties)
IL_044A: br => Label22
IL_044F: Label20
IL_044F: ldarga.s 7
IL_0451: ldarg.s 4
IL_0453: stfld System.Single UnityEngine.Vector4::w
IL_0458: ldarg.1
IL_0459: ldfld UnityEngine.Vector4[] PropInfo::m_lodLocations
IL_045E: ldarg.1
IL_045F: ldfld System.Int32 PropInfo::m_lodCount
IL_0464: ldelema UnityEngine.Vector4
IL_0469: ldarga.s 3
IL_046B: ldfld System.Single UnityEngine.Vector3::x
IL_0470: ldarga.s 3
IL_0472: ldfld System.Single UnityEngine.Vector3::y
IL_0477: ldarga.s 3
IL_0479: ldfld System.Single UnityEngine.Vector3::z
IL_047E: ldarg.s 5
IL_0480: newobj System.Void UnityEngine.Vector4::.ctor(System.Single x,
System.Single y, System.Single z, System.Single w)
IL_0485: stobj UnityEngine.Vector4
IL_048A: ldarg.1
IL_048B: ldfld UnityEngine.Vector4[] PropInfo::m_lodObjectIndices
IL_0490: ldarg.1
IL_0491: ldfld System.Int32 PropInfo::m_lodCount
IL_0496: ldelema UnityEngine.Vector4
IL_049B: ldarg.s 7
IL_049D: stobj UnityEngine.Vector4
IL_04A2: ldarg.1
IL_04A3: ldfld UnityEngine.Vector4[] PropInfo::m_lodColors
IL_04A8: ldarg.1
IL_04A9: ldfld System.Int32 PropInfo::m_lodCount
IL_04AE: ldelema UnityEngine.Vector4
IL_04B3: ldarga.s 6
IL_04B5: call UnityEngine.Color UnityEngine.Color::get_linear()
IL_04BA: call static UnityEngine.Vector4
UnityEngine.Color::op_Implicit(UnityEngine.Color c)
IL_04BF: stobj UnityEngine.Vector4
IL_04C4: ldarg.1
IL_04C5: ldarg.1
IL_04C6: ldfld UnityEngine.Vector3 PropInfo::m_lodMin
IL_04CB: ldarg.3
IL_04CC: call static UnityEngine.Vector3
UnityEngine.Vector3::Min(UnityEngine.Vector3 lhs, UnityEngine.Vector3 rhs)
IL_04D1: stfld UnityEngine.Vector3 PropInfo::m_lodMin
IL_04D6: ldarg.1
IL_04D7: ldarg.1
IL_04D8: ldfld UnityEngine.Vector3 PropInfo::m_lodMax
IL_04DD: ldarg.3
IL_04DE: call static UnityEngine.Vector3
UnityEngine.Vector3::Max(UnityEngine.Vector3 lhs, UnityEngine.Vector3 rhs)
IL_04E3: stfld UnityEngine.Vector3 PropInfo::m_lodMax
IL_04E8: ldarg.1
IL_04E9: dup
IL_04EA: ldfld System.Int32 PropInfo::m_lodCount
IL_04EF: ldc.i4.1
IL_04F0: add
IL_04F1: dup
IL_04F2: stloc.s 19 (System.Int32)
IL_04F4: stfld System.Int32 PropInfo::m_lodCount
IL_04F9: ldloc.s 19 (System.Int32)
IL_04FB: ldarg.1
IL_04FC: ldfld UnityEngine.Vector4[] PropInfo::m_lodLocations
IL_0501: ldlen
IL_0502: conv.i4
IL_0503: bne.un => Label23
IL_0508: ldarg.0
IL_0509: ldarg.1
IL_050A: call static System.Void PropInstance::RenderLod(CameraInfo
cameraInfo, PropInfo info)
IL_050F: // end original
IL_050F: Label0
IL_050F: Label6
IL_050F: Label7
IL_050F: Label19
IL_050F: Label22
IL_050F: Label23
IL_050F: ret
DONE

### Patch: virtual System.Void LightEffect::PopulateGroupData(System.Int32 layer,


InstanceID id, UnityEngine.Vector3 pos, UnityEngine.Vector3 dir, 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
LightEffect::LightEffect.PopulateGroupData_Patch0(LightEffect this, System.Int32
layer, InstanceID id, UnityEngine.Vector3 pos, UnityEngine.Vector3 dir,
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.Boolean
IL_0000: Local var 1: UnityEngine.Vector3
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.Quaternion
IL_0000: Local var 7: UnityEngine.Vector4
IL_0000: Local var 8: UnityEngine.Vector2
IL_0000: Local var 9: ColossalFramework.Math.Randomizer
IL_0000: Local var 10: UnityEngine.Vector2
IL_0000: Local var 11: UnityEngine.Vector2
IL_0000: Local var 12: UnityEngine.Vector2
IL_0000: Local var 13: System.UInt16
IL_0000: Local var 14: UnityEngine.Vector3
IL_0000: Local var 15: UnityEngine.Color
IL_0000: Local var 16: UnityEngine.Color
IL_0000: Local var 17: System.Single
IL_0000: Local var 18: System.Single
IL_0000: Local var 19: System.Int32
IL_0000: // start original
IL_0000: ldarg.1
IL_0001: ldarg.0
IL_0002: ldfld System.Int32 LightEffect::m_groupLayer
IL_0007: beq => Label0
IL_000C: ldarg.1
IL_000D: ldarg.0
IL_000E: ldfld System.Int32 LightEffect::m_groupLayerFloating
IL_0013: bne.un => Label1
IL_0018: Label0
IL_0018: ldarg.1
IL_0019: ldarg.0
IL_001A: ldfld System.Int32 LightEffect::m_groupLayerFloating
IL_001F: ceq
IL_0021: stloc.0
IL_0022: ldloca.s 1 (UnityEngine.Vector3)
IL_0024: ldarg.0
IL_0025: ldfld System.Single LightEffect::m_lightRange
IL_002A: ldarg.0
IL_002B: ldfld System.Single LightEffect::m_lightRange
IL_0030: ldarg.0
IL_0031: ldfld System.Single LightEffect::m_lightRange
IL_0036: call System.Void UnityEngine.Vector3::.ctor(System.Single x,
System.Single y, System.Single z)
IL_003B: ldarg.3
IL_003C: ldloc.1
IL_003D: call static UnityEngine.Vector3
UnityEngine.Vector3::op_Subtraction(UnityEngine.Vector3 a, UnityEngine.Vector3 b)
IL_0042: stloc.2
IL_0043: ldarg.3
IL_0044: ldloc.1
IL_0045: call static UnityEngine.Vector3
UnityEngine.Vector3::op_Addition(UnityEngine.Vector3 a, UnityEngine.Vector3 b)
IL_004A: stloc.3
IL_004B: ldarg.s 9
IL_004D: ldarg.s 9
IL_004F: ldobj UnityEngine.Vector3
IL_0054: ldloc.2
IL_0055: call static UnityEngine.Vector3
UnityEngine.Vector3::Min(UnityEngine.Vector3 lhs, UnityEngine.Vector3 rhs)
IL_005A: stobj UnityEngine.Vector3
IL_005F: ldarg.s 10
IL_0061: ldarg.s 10
IL_0063: ldobj UnityEngine.Vector3
IL_0068: ldloc.3
IL_0069: call static UnityEngine.Vector3
UnityEngine.Vector3::Max(UnityEngine.Vector3 lhs, UnityEngine.Vector3 rhs)
IL_006E: stobj UnityEngine.Vector3
IL_0073: ldarg.3
IL_0074: ldarg.s 7
IL_0076: call static UnityEngine.Vector3
UnityEngine.Vector3::op_Subtraction(UnityEngine.Vector3 a, UnityEngine.Vector3 b)
IL_007B: stloc.s 4 (UnityEngine.Vector3)
IL_007D: ldarg.s 11
IL_007F: ldarg.s 11
IL_0081: ldind.r4
IL_0082: ldc.r4 30000
IL_0087: call static System.Single UnityEngine.Mathf::Max(System.Single a,
System.Single b)
IL_008C: stind.r4
IL_008D: ldarg.0
IL_008E: ldfld UnityEngine.LightType LightEffect::m_lightType
IL_0093: brtrue => Label2
IL_0098: ldarg.s 4
IL_009A: call static UnityEngine.Quaternion
UnityEngine.Quaternion::LookRotation(UnityEngine.Vector3 forward)
IL_009F: stloc.s 6 (UnityEngine.Quaternion)
IL_00A1: ldloc.s 6 (UnityEngine.Quaternion)
IL_00A3: ldarg.0
IL_00A4: ldfld UnityEngine.Quaternion LightEffect::m_lightRotation
IL_00A9: call static UnityEngine.Vector3 UnityEngine.Vector3::get_forward()
IL_00AE: call static UnityEngine.Vector3
UnityEngine.Quaternion::op_Multiply(UnityEngine.Quaternion rotation,
UnityEngine.Vector3 point)
IL_00B3: call static UnityEngine.Vector3
UnityEngine.Quaternion::op_Multiply(UnityEngine.Quaternion rotation,
UnityEngine.Vector3 point)
IL_00B8: stloc.s 5 (UnityEngine.Vector3)
IL_00BA: br => Label3
IL_00BF: Label2
IL_00BF: call static UnityEngine.Vector3 UnityEngine.Vector3::get_forward()
IL_00C4: stloc.s 5 (UnityEngine.Vector3)
IL_00C6: Label3
IL_00C6: ldloca.s 7 (UnityEngine.Vector4)
IL_00C8: ldloca.s 5 (UnityEngine.Vector3)
IL_00CA: ldfld System.Single UnityEngine.Vector3::x
IL_00CF: ldloca.s 5 (UnityEngine.Vector3)
IL_00D1: ldfld System.Single UnityEngine.Vector3::y
IL_00D6: ldloca.s 5 (UnityEngine.Vector3)
IL_00D8: ldfld System.Single UnityEngine.Vector3::z
IL_00DD: ldc.r4 100000
IL_00E2: call System.Void UnityEngine.Vector4::.ctor(System.Single x,
System.Single y, System.Single z, System.Single w)
IL_00E7: ldarg.0
IL_00E8: ldfld UnityEngine.LightType LightEffect::m_lightType
IL_00ED: brtrue => Label4
IL_00F2: ldloca.s 7 (UnityEngine.Vector4)
IL_00F4: ldc.r4 0.01745329
IL_00F9: ldarg.0
IL_00FA: ldfld System.Single LightEffect::m_lightSpotAngle
IL_00FF: mul
IL_0100: ldc.r4 0.5
IL_0105: mul
IL_0106: call static System.Single UnityEngine.Mathf::Cos(System.Single f)
IL_010B: neg
IL_010C: stfld System.Single UnityEngine.Vector4::w
IL_0111: Label4
IL_0111: ldloca.s 8 (UnityEngine.Vector2)
IL_0113: ldc.r4 1
IL_0118: ldarg.0
IL_0119: ldfld System.Single LightEffect::m_lightRange
IL_011E: ldarg.0
IL_011F: ldfld System.Single LightEffect::m_lightRange
IL_0124: mul
IL_0125: div
IL_0126: ldarg.0
IL_0127: ldfld System.Single LightEffect::m_lightIntensity
IL_012C: call System.Void UnityEngine.Vector2::.ctor(System.Single x,
System.Single y)
IL_0131: ldloca.s 9 (ColossalFramework.Math.Randomizer)
IL_0133: ldarga.s 2
IL_0135: call System.UInt32 InstanceID::get_Index()
IL_013A: call System.Void
ColossalFramework.Math.Randomizer::.ctor(System.UInt32 _seed)
IL_013F: ldloca.s 10 (UnityEngine.Vector2)
IL_0141: ldarg.0
IL_0142: ldflda UnityEngine.Vector2 LightEffect::m_offRange
IL_0147: ldfld System.Single UnityEngine.Vector2::x
IL_014C: ldloca.s 9 (ColossalFramework.Math.Randomizer)
IL_014E: ldc.i4 100000
IL_0153: call System.Int32
ColossalFramework.Math.Randomizer::Int32(System.UInt32 range)
IL_0158: conv.r4
IL_0159: ldc.r4 1E-05
IL_015E: mul
IL_015F: ldarg.0
IL_0160: ldflda UnityEngine.Vector2 LightEffect::m_offRange
IL_0165: ldfld System.Single UnityEngine.Vector2::y
IL_016A: ldarg.0
IL_016B: ldflda UnityEngine.Vector2 LightEffect::m_offRange
IL_0170: ldfld System.Single UnityEngine.Vector2::x
IL_0175: sub
IL_0176: mul
IL_0177: add
IL_0178: stfld System.Single UnityEngine.Vector2::x
IL_017D: ldloca.s 10 (UnityEngine.Vector2)
IL_017F: ldarg.0
IL_0180: ldfld BlinkType LightEffect::m_blinkType
IL_0185: conv.r4
IL_0186: stfld System.Single UnityEngine.Vector2::y
IL_018B: ldarg.2
IL_018C: call static System.UInt16 EffectInfo::GetBuilding(InstanceID id)
IL_0191: stloc.s 13 (System.UInt16)
IL_0193: ldloc.s 13 (System.UInt16)
IL_0195: brfalse => Label5
IL_019A: ldloc.s 13 (System.UInt16)
IL_019C: call static UnityEngine.Vector4
RenderManager::GetColorLocation(System.UInt32 instanceHolder)
IL_01A1: call static UnityEngine.Vector2
UnityEngine.Vector4::op_Implicit(UnityEngine.Vector4 v)
IL_01A6: stloc.s 11 (UnityEngine.Vector2)
IL_01A8: ldloc.0
IL_01A9: brfalse => Label6
IL_01AE: call static BuildingManager
ColossalFramework.Singleton`1<BuildingManager>::get_instance()
IL_01B3: ldfld Array16`1<Building> BuildingManager::m_buildings
IL_01B8: ldfld Building[] Array16`1<Building>::m_buffer
IL_01BD: ldloc.s 13 (System.UInt16)
IL_01BF: ldelema Building
IL_01C4: call UnityEngine.Vector3 Building::CalculateMeshPosition()
IL_01C9: stloc.s 14 (UnityEngine.Vector3)
IL_01CB: ldloc.s 14 (UnityEngine.Vector3)
IL_01CD: call static UnityEngine.Vector2
ColossalFramework.Math.VectorUtils::XZ(UnityEngine.Vector3 v)
IL_01D2: stloc.s 12 (UnityEngine.Vector2)
IL_01D4: ldarga.s 3
IL_01D6: dup
IL_01D7: ldfld System.Single UnityEngine.Vector3::y
IL_01DC: ldloca.s 14 (UnityEngine.Vector3)
IL_01DE: ldfld System.Single UnityEngine.Vector3::y
IL_01E3: sub
IL_01E4: stfld System.Single UnityEngine.Vector3::y
IL_01E9: ldloca.s 4 (UnityEngine.Vector3)
IL_01EB: dup
IL_01EC: ldfld System.Single UnityEngine.Vector3::y
IL_01F1: ldloca.s 14 (UnityEngine.Vector3)
IL_01F3: ldfld System.Single UnityEngine.Vector3::y
IL_01F8: sub
IL_01F9: stfld System.Single UnityEngine.Vector3::y
IL_01FE: br => Label7
IL_0203: Label6
IL_0203: call static UnityEngine.Vector2 UnityEngine.Vector2::get_zero()
IL_0208: stloc.s 12 (UnityEngine.Vector2)
IL_020A: Label7
IL_020A: br => Label8
IL_020F: Label5
IL_020F: ldsfld UnityEngine.Vector4 RenderManager::DefaultColorLocation
IL_0214: call static UnityEngine.Vector2
UnityEngine.Vector4::op_Implicit(UnityEngine.Vector4 v)
IL_0219: stloc.s 11 (UnityEngine.Vector2)
IL_021B: call static UnityEngine.Vector2 UnityEngine.Vector2::get_zero()
IL_0220: stloc.s 12 (UnityEngine.Vector2)
IL_0222: Label8
IL_0222: ldarg.0
IL_0223: ldfld UnityEngine.Color LightEffect::m_lightColor
IL_0228: stloc.s 15 (UnityEngine.Color)
IL_022A: ldarg.0
IL_022B: ldfld UnityEngine.Color[] LightEffect::m_variationColors
IL_0230: brfalse => Label9
IL_0235: ldarg.0
IL_0236: ldfld UnityEngine.Color[] LightEffect::m_variationColors
IL_023B: ldlen
IL_023C: conv.i4
IL_023D: brfalse => Label10
IL_0242: ldarg.0
IL_0243: ldfld UnityEngine.Color[] LightEffect::m_variationColors
IL_0248: ldloca.s 9 (ColossalFramework.Math.Randomizer)
IL_024A: ldarg.0
IL_024B: ldfld UnityEngine.Color[] LightEffect::m_variationColors
IL_0250: ldlen
IL_0251: conv.i4
IL_0252: call System.Int32
ColossalFramework.Math.Randomizer::Int32(System.UInt32 range)
IL_0257: ldelema UnityEngine.Color
IL_025C: ldobj UnityEngine.Color
IL_0261: stloc.s 16 (UnityEngine.Color)
IL_0263: ldloc.s 15 (UnityEngine.Color)
IL_0265: ldloc.s 16 (UnityEngine.Color)
IL_0267: ldloca.s 9 (ColossalFramework.Math.Randomizer)
IL_0269: ldc.i4 1000
IL_026E: call System.Int32
ColossalFramework.Math.Randomizer::Int32(System.UInt32 range)
IL_0273: conv.r4
IL_0274: ldc.r4 0.001
IL_0279: mul
IL_027A: call static UnityEngine.Color
UnityEngine.Color::Lerp(UnityEngine.Color a, UnityEngine.Color b, System.Single t)
IL_027F: stloc.s 15 (UnityEngine.Color)
IL_0281: Label9
IL_0281: Label10
IL_0281: ldloca.s 15 (UnityEngine.Color)
IL_0283: call UnityEngine.Color UnityEngine.Color::get_linear()
IL_0288: stloc.s 15 (UnityEngine.Color)
IL_028A: ldloca.s 15 (UnityEngine.Color)
IL_028C: ldarg.0
IL_028D: ldfld UnityEngine.LightType LightEffect::m_lightType
IL_0292: brtrue => Label11
IL_0297: ldarg.0
IL_0298: ldfld System.Single LightEffect::m_spotLeaking
IL_029D: br => Label12
IL_02A2: Label11
IL_02A2: ldc.r4 0
IL_02A7: Label12
IL_02A7: stfld System.Single UnityEngine.Color::a
IL_02AC: ldarg.0
IL_02AD: ldfld System.Single LightEffect::m_lightRange
IL_02B2: ldc.r4 0.5235988
IL_02B7: call static System.Single UnityEngine.Mathf::Cos(System.Single f)
IL_02BC: div
IL_02BD: stloc.s 17 (System.Single)
IL_02BF: ldloc.s 17 (System.Single)
IL_02C1: ldc.r4 0.5
IL_02C6: mul
IL_02C7: stloc.s 18 (System.Single)
IL_02C9: ldarg.s 8
IL_02CB: ldfld UnityEngine.Vector3[] MeshData::m_vertices
IL_02D0: ldarg.s 5
IL_02D2: ldind.i4
IL_02D3: ldelema UnityEngine.Vector3
IL_02D8: ldloca.s 4 (UnityEngine.Vector3)
IL_02DA: ldfld System.Single UnityEngine.Vector3::x
IL_02DF: ldloc.s 18 (System.Single)
IL_02E1: sub
IL_02E2: ldloca.s 4 (UnityEngine.Vector3)
IL_02E4: ldfld System.Single UnityEngine.Vector3::y
IL_02E9: ldarg.0
IL_02EA: ldfld System.Single LightEffect::m_lightRange
IL_02EF: add
IL_02F0: ldloca.s 4 (UnityEngine.Vector3)
IL_02F2: ldfld System.Single UnityEngine.Vector3::z
IL_02F7: ldarg.0
IL_02F8: ldfld System.Single LightEffect::m_lightRange
IL_02FD: add
IL_02FE: newobj System.Void UnityEngine.Vector3::.ctor(System.Single x,
System.Single y, System.Single z)
IL_0303: stobj UnityEngine.Vector3
IL_0308: ldarg.s 8
IL_030A: ldfld UnityEngine.Vector3[] MeshData::m_normals
IL_030F: ldarg.s 5
IL_0311: ldind.i4
IL_0312: ldelema UnityEngine.Vector3
IL_0317: ldarg.3
IL_0318: stobj UnityEngine.Vector3
IL_031D: ldarg.s 8
IL_031F: ldfld UnityEngine.Vector4[] MeshData::m_tangents
IL_0324: ldarg.s 5
IL_0326: ldind.i4
IL_0327: ldelema UnityEngine.Vector4
IL_032C: ldloc.s 7 (UnityEngine.Vector4)
IL_032E: stobj UnityEngine.Vector4
IL_0333: ldarg.s 8
IL_0335: ldfld UnityEngine.Vector2[] MeshData::m_uvs
IL_033A: ldarg.s 5
IL_033C: ldind.i4
IL_033D: ldelema UnityEngine.Vector2
IL_0342: ldloc.s 8 (UnityEngine.Vector2)
IL_0344: stobj UnityEngine.Vector2
IL_0349: ldarg.s 8
IL_034B: ldfld UnityEngine.Vector2[] MeshData::m_uvs2
IL_0350: ldarg.s 5
IL_0352: ldind.i4
IL_0353: ldelema UnityEngine.Vector2
IL_0358: ldloc.s 10 (UnityEngine.Vector2)
IL_035A: stobj UnityEngine.Vector2
IL_035F: ldarg.s 8
IL_0361: ldfld UnityEngine.Vector2[] MeshData::m_uvs3
IL_0366: ldarg.s 5
IL_0368: ldind.i4
IL_0369: ldelema UnityEngine.Vector2
IL_036E: ldloc.s 11 (UnityEngine.Vector2)
IL_0370: stobj UnityEngine.Vector2
IL_0375: ldloc.0
IL_0376: brfalse => Label13
IL_037B: ldarg.s 8
IL_037D: ldfld UnityEngine.Vector2[] MeshData::m_uvs4
IL_0382: ldarg.s 5
IL_0384: ldind.i4
IL_0385: ldelema UnityEngine.Vector2
IL_038A: ldloc.s 12 (UnityEngine.Vector2)
IL_038C: stobj UnityEngine.Vector2
IL_0391: Label13
IL_0391: ldarg.s 8
IL_0393: ldfld UnityEngine.Color32[] MeshData::m_colors
IL_0398: ldarg.s 5
IL_039A: ldind.i4
IL_039B: ldelema UnityEngine.Color32
IL_03A0: ldloc.s 15 (UnityEngine.Color)
IL_03A2: call static UnityEngine.Color32
UnityEngine.Color32::op_Implicit(UnityEngine.Color c)
IL_03A7: stobj UnityEngine.Color32
IL_03AC: ldarg.s 5
IL_03AE: ldarg.s 5
IL_03B0: ldind.i4
IL_03B1: ldc.i4.1
IL_03B2: add
IL_03B3: stind.i4
IL_03B4: ldarg.s 8
IL_03B6: ldfld UnityEngine.Vector3[] MeshData::m_vertices
IL_03BB: ldarg.s 5
IL_03BD: ldind.i4
IL_03BE: ldelema UnityEngine.Vector3
IL_03C3: ldloca.s 4 (UnityEngine.Vector3)
IL_03C5: ldfld System.Single UnityEngine.Vector3::x
IL_03CA: ldloc.s 18 (System.Single)
IL_03CC: add
IL_03CD: ldloca.s 4 (UnityEngine.Vector3)
IL_03CF: ldfld System.Single UnityEngine.Vector3::y
IL_03D4: ldarg.0
IL_03D5: ldfld System.Single LightEffect::m_lightRange
IL_03DA: add
IL_03DB: ldloca.s 4 (UnityEngine.Vector3)
IL_03DD: ldfld System.Single UnityEngine.Vector3::z
IL_03E2: ldarg.0
IL_03E3: ldfld System.Single LightEffect::m_lightRange
IL_03E8: add
IL_03E9: newobj System.Void UnityEngine.Vector3::.ctor(System.Single x,
System.Single y, System.Single z)
IL_03EE: stobj UnityEngine.Vector3
IL_03F3: ldarg.s 8
IL_03F5: ldfld UnityEngine.Vector3[] MeshData::m_normals
IL_03FA: ldarg.s 5
IL_03FC: ldind.i4
IL_03FD: ldelema UnityEngine.Vector3
IL_0402: ldarg.3
IL_0403: stobj UnityEngine.Vector3
IL_0408: ldarg.s 8
IL_040A: ldfld UnityEngine.Vector4[] MeshData::m_tangents
IL_040F: ldarg.s 5
IL_0411: ldind.i4
IL_0412: ldelema UnityEngine.Vector4
IL_0417: ldloc.s 7 (UnityEngine.Vector4)
IL_0419: stobj UnityEngine.Vector4
IL_041E: ldarg.s 8
IL_0420: ldfld UnityEngine.Vector2[] MeshData::m_uvs
IL_0425: ldarg.s 5
IL_0427: ldind.i4
IL_0428: ldelema UnityEngine.Vector2
IL_042D: ldloc.s 8 (UnityEngine.Vector2)
IL_042F: stobj UnityEngine.Vector2
IL_0434: ldarg.s 8
IL_0436: ldfld UnityEngine.Vector2[] MeshData::m_uvs2
IL_043B: ldarg.s 5
IL_043D: ldind.i4
IL_043E: ldelema UnityEngine.Vector2
IL_0443: ldloc.s 10 (UnityEngine.Vector2)
IL_0445: stobj UnityEngine.Vector2
IL_044A: ldarg.s 8
IL_044C: ldfld UnityEngine.Vector2[] MeshData::m_uvs3
IL_0451: ldarg.s 5
IL_0453: ldind.i4
IL_0454: ldelema UnityEngine.Vector2
IL_0459: ldloc.s 11 (UnityEngine.Vector2)
IL_045B: stobj UnityEngine.Vector2
IL_0460: ldloc.0
IL_0461: brfalse => Label14
IL_0466: ldarg.s 8
IL_0468: ldfld UnityEngine.Vector2[] MeshData::m_uvs4
IL_046D: ldarg.s 5
IL_046F: ldind.i4
IL_0470: ldelema UnityEngine.Vector2
IL_0475: ldloc.s 12 (UnityEngine.Vector2)
IL_0477: stobj UnityEngine.Vector2
IL_047C: Label14
IL_047C: ldarg.s 8
IL_047E: ldfld UnityEngine.Color32[] MeshData::m_colors
IL_0483: ldarg.s 5
IL_0485: ldind.i4
IL_0486: ldelema UnityEngine.Color32
IL_048B: ldloc.s 15 (UnityEngine.Color)
IL_048D: call static UnityEngine.Color32
UnityEngine.Color32::op_Implicit(UnityEngine.Color c)
IL_0492: stobj UnityEngine.Color32
IL_0497: ldarg.s 5
IL_0499: ldarg.s 5
IL_049B: ldind.i4
IL_049C: ldc.i4.1
IL_049D: add
IL_049E: stind.i4
IL_049F: ldarg.s 8
IL_04A1: ldfld UnityEngine.Vector3[] MeshData::m_vertices
IL_04A6: ldarg.s 5
IL_04A8: ldind.i4
IL_04A9: ldelema UnityEngine.Vector3
IL_04AE: ldloca.s 4 (UnityEngine.Vector3)
IL_04B0: ldfld System.Single UnityEngine.Vector3::x
IL_04B5: ldloc.s 17 (System.Single)
IL_04B7: add
IL_04B8: ldloca.s 4 (UnityEngine.Vector3)
IL_04BA: ldfld System.Single UnityEngine.Vector3::y
IL_04BF: ldloca.s 4 (UnityEngine.Vector3)
IL_04C1: ldfld System.Single UnityEngine.Vector3::z
IL_04C6: ldarg.0
IL_04C7: ldfld System.Single LightEffect::m_lightRange
IL_04CC: add
IL_04CD: newobj System.Void UnityEngine.Vector3::.ctor(System.Single x,
System.Single y, System.Single z)
IL_04D2: stobj UnityEngine.Vector3
IL_04D7: ldarg.s 8
IL_04D9: ldfld UnityEngine.Vector3[] MeshData::m_normals
IL_04DE: ldarg.s 5
IL_04E0: ldind.i4
IL_04E1: ldelema UnityEngine.Vector3
IL_04E6: ldarg.3
IL_04E7: stobj UnityEngine.Vector3
IL_04EC: ldarg.s 8
IL_04EE: ldfld UnityEngine.Vector4[] MeshData::m_tangents
IL_04F3: ldarg.s 5
IL_04F5: ldind.i4
IL_04F6: ldelema UnityEngine.Vector4
IL_04FB: ldloc.s 7 (UnityEngine.Vector4)
IL_04FD: stobj UnityEngine.Vector4
IL_0502: ldarg.s 8
IL_0504: ldfld UnityEngine.Vector2[] MeshData::m_uvs
IL_0509: ldarg.s 5
IL_050B: ldind.i4
IL_050C: ldelema UnityEngine.Vector2
IL_0511: ldloc.s 8 (UnityEngine.Vector2)
IL_0513: stobj UnityEngine.Vector2
IL_0518: ldarg.s 8
IL_051A: ldfld UnityEngine.Vector2[] MeshData::m_uvs2
IL_051F: ldarg.s 5
IL_0521: ldind.i4
IL_0522: ldelema UnityEngine.Vector2
IL_0527: ldloc.s 10 (UnityEngine.Vector2)
IL_0529: stobj UnityEngine.Vector2
IL_052E: ldarg.s 8
IL_0530: ldfld UnityEngine.Vector2[] MeshData::m_uvs3
IL_0535: ldarg.s 5
IL_0537: ldind.i4
IL_0538: ldelema UnityEngine.Vector2
IL_053D: ldloc.s 11 (UnityEngine.Vector2)
IL_053F: stobj UnityEngine.Vector2
IL_0544: ldloc.0
IL_0545: brfalse => Label15
IL_054A: ldarg.s 8
IL_054C: ldfld UnityEngine.Vector2[] MeshData::m_uvs4
IL_0551: ldarg.s 5
IL_0553: ldind.i4
IL_0554: ldelema UnityEngine.Vector2
IL_0559: ldloc.s 12 (UnityEngine.Vector2)
IL_055B: stobj UnityEngine.Vector2
IL_0560: Label15
IL_0560: ldarg.s 8
IL_0562: ldfld UnityEngine.Color32[] MeshData::m_colors
IL_0567: ldarg.s 5
IL_0569: ldind.i4
IL_056A: ldelema UnityEngine.Color32
IL_056F: ldloc.s 15 (UnityEngine.Color)
IL_0571: call static UnityEngine.Color32
UnityEngine.Color32::op_Implicit(UnityEngine.Color c)
IL_0576: stobj UnityEngine.Color32
IL_057B: ldarg.s 5
IL_057D: ldarg.s 5
IL_057F: ldind.i4
IL_0580: ldc.i4.1
IL_0581: add
IL_0582: stind.i4
IL_0583: ldarg.s 8
IL_0585: ldfld UnityEngine.Vector3[] MeshData::m_vertices
IL_058A: ldarg.s 5
IL_058C: ldind.i4
IL_058D: ldelema UnityEngine.Vector3
IL_0592: ldloca.s 4 (UnityEngine.Vector3)
IL_0594: ldfld System.Single UnityEngine.Vector3::x
IL_0599: ldloc.s 18 (System.Single)
IL_059B: add
IL_059C: ldloca.s 4 (UnityEngine.Vector3)
IL_059E: ldfld System.Single UnityEngine.Vector3::y
IL_05A3: ldarg.0
IL_05A4: ldfld System.Single LightEffect::m_lightRange
IL_05A9: sub
IL_05AA: ldloca.s 4 (UnityEngine.Vector3)
IL_05AC: ldfld System.Single UnityEngine.Vector3::z
IL_05B1: ldarg.0
IL_05B2: ldfld System.Single LightEffect::m_lightRange
IL_05B7: add
IL_05B8: newobj System.Void UnityEngine.Vector3::.ctor(System.Single x,
System.Single y, System.Single z)
IL_05BD: stobj UnityEngine.Vector3
IL_05C2: ldarg.s 8
IL_05C4: ldfld UnityEngine.Vector3[] MeshData::m_normals
IL_05C9: ldarg.s 5
IL_05CB: ldind.i4
IL_05CC: ldelema UnityEngine.Vector3
IL_05D1: ldarg.3
IL_05D2: stobj UnityEngine.Vector3
IL_05D7: ldarg.s 8
IL_05D9: ldfld UnityEngine.Vector4[] MeshData::m_tangents
IL_05DE: ldarg.s 5
IL_05E0: ldind.i4
IL_05E1: ldelema UnityEngine.Vector4
IL_05E6: ldloc.s 7 (UnityEngine.Vector4)
IL_05E8: stobj UnityEngine.Vector4
IL_05ED: ldarg.s 8
IL_05EF: ldfld UnityEngine.Vector2[] MeshData::m_uvs
IL_05F4: ldarg.s 5
IL_05F6: ldind.i4
IL_05F7: ldelema UnityEngine.Vector2
IL_05FC: ldloc.s 8 (UnityEngine.Vector2)
IL_05FE: stobj UnityEngine.Vector2
IL_0603: ldarg.s 8
IL_0605: ldfld UnityEngine.Vector2[] MeshData::m_uvs2
IL_060A: ldarg.s 5
IL_060C: ldind.i4
IL_060D: ldelema UnityEngine.Vector2
IL_0612: ldloc.s 10 (UnityEngine.Vector2)
IL_0614: stobj UnityEngine.Vector2
IL_0619: ldarg.s 8
IL_061B: ldfld UnityEngine.Vector2[] MeshData::m_uvs3
IL_0620: ldarg.s 5
IL_0622: ldind.i4
IL_0623: ldelema UnityEngine.Vector2
IL_0628: ldloc.s 11 (UnityEngine.Vector2)
IL_062A: stobj UnityEngine.Vector2
IL_062F: ldloc.0
IL_0630: brfalse => Label16
IL_0635: ldarg.s 8
IL_0637: ldfld UnityEngine.Vector2[] MeshData::m_uvs4
IL_063C: ldarg.s 5
IL_063E: ldind.i4
IL_063F: ldelema UnityEngine.Vector2
IL_0644: ldloc.s 12 (UnityEngine.Vector2)
IL_0646: stobj UnityEngine.Vector2
IL_064B: Label16
IL_064B: ldarg.s 8
IL_064D: ldfld UnityEngine.Color32[] MeshData::m_colors
IL_0652: ldarg.s 5
IL_0654: ldind.i4
IL_0655: ldelema UnityEngine.Color32
IL_065A: ldloc.s 15 (UnityEngine.Color)
IL_065C: call static UnityEngine.Color32
UnityEngine.Color32::op_Implicit(UnityEngine.Color c)
IL_0661: stobj UnityEngine.Color32
IL_0666: ldarg.s 5
IL_0668: ldarg.s 5
IL_066A: ldind.i4
IL_066B: ldc.i4.1
IL_066C: add
IL_066D: stind.i4
IL_066E: ldarg.s 8
IL_0670: ldfld UnityEngine.Vector3[] MeshData::m_vertices
IL_0675: ldarg.s 5
IL_0677: ldind.i4
IL_0678: ldelema UnityEngine.Vector3
IL_067D: ldloca.s 4 (UnityEngine.Vector3)
IL_067F: ldfld System.Single UnityEngine.Vector3::x
IL_0684: ldloc.s 18 (System.Single)
IL_0686: sub
IL_0687: ldloca.s 4 (UnityEngine.Vector3)
IL_0689: ldfld System.Single UnityEngine.Vector3::y
IL_068E: ldarg.0
IL_068F: ldfld System.Single LightEffect::m_lightRange
IL_0694: sub
IL_0695: ldloca.s 4 (UnityEngine.Vector3)
IL_0697: ldfld System.Single UnityEngine.Vector3::z
IL_069C: ldarg.0
IL_069D: ldfld System.Single LightEffect::m_lightRange
IL_06A2: add
IL_06A3: newobj System.Void UnityEngine.Vector3::.ctor(System.Single x,
System.Single y, System.Single z)
IL_06A8: stobj UnityEngine.Vector3
IL_06AD: ldarg.s 8
IL_06AF: ldfld UnityEngine.Vector3[] MeshData::m_normals
IL_06B4: ldarg.s 5
IL_06B6: ldind.i4
IL_06B7: ldelema UnityEngine.Vector3
IL_06BC: ldarg.3
IL_06BD: stobj UnityEngine.Vector3
IL_06C2: ldarg.s 8
IL_06C4: ldfld UnityEngine.Vector4[] MeshData::m_tangents
IL_06C9: ldarg.s 5
IL_06CB: ldind.i4
IL_06CC: ldelema UnityEngine.Vector4
IL_06D1: ldloc.s 7 (UnityEngine.Vector4)
IL_06D3: stobj UnityEngine.Vector4
IL_06D8: ldarg.s 8
IL_06DA: ldfld UnityEngine.Vector2[] MeshData::m_uvs
IL_06DF: ldarg.s 5
IL_06E1: ldind.i4
IL_06E2: ldelema UnityEngine.Vector2
IL_06E7: ldloc.s 8 (UnityEngine.Vector2)
IL_06E9: stobj UnityEngine.Vector2
IL_06EE: ldarg.s 8
IL_06F0: ldfld UnityEngine.Vector2[] MeshData::m_uvs2
IL_06F5: ldarg.s 5
IL_06F7: ldind.i4
IL_06F8: ldelema UnityEngine.Vector2
IL_06FD: ldloc.s 10 (UnityEngine.Vector2)
IL_06FF: stobj UnityEngine.Vector2
IL_0704: ldarg.s 8
IL_0706: ldfld UnityEngine.Vector2[] MeshData::m_uvs3
IL_070B: ldarg.s 5
IL_070D: ldind.i4
IL_070E: ldelema UnityEngine.Vector2
IL_0713: ldloc.s 11 (UnityEngine.Vector2)
IL_0715: stobj UnityEngine.Vector2
IL_071A: ldloc.0
IL_071B: brfalse => Label17
IL_0720: ldarg.s 8
IL_0722: ldfld UnityEngine.Vector2[] MeshData::m_uvs4
IL_0727: ldarg.s 5
IL_0729: ldind.i4
IL_072A: ldelema UnityEngine.Vector2
IL_072F: ldloc.s 12 (UnityEngine.Vector2)
IL_0731: stobj UnityEngine.Vector2
IL_0736: Label17
IL_0736: ldarg.s 8
IL_0738: ldfld UnityEngine.Color32[] MeshData::m_colors
IL_073D: ldarg.s 5
IL_073F: ldind.i4
IL_0740: ldelema UnityEngine.Color32
IL_0745: ldloc.s 15 (UnityEngine.Color)
IL_0747: call static UnityEngine.Color32
UnityEngine.Color32::op_Implicit(UnityEngine.Color c)
IL_074C: stobj UnityEngine.Color32
IL_0751: ldarg.s 5
IL_0753: ldarg.s 5
IL_0755: ldind.i4
IL_0756: ldc.i4.1
IL_0757: add
IL_0758: stind.i4
IL_0759: ldarg.s 8
IL_075B: ldfld UnityEngine.Vector3[] MeshData::m_vertices
IL_0760: ldarg.s 5
IL_0762: ldind.i4
IL_0763: ldelema UnityEngine.Vector3
IL_0768: ldloca.s 4 (UnityEngine.Vector3)
IL_076A: ldfld System.Single UnityEngine.Vector3::x
IL_076F: ldloc.s 17 (System.Single)
IL_0771: sub
IL_0772: ldloca.s 4 (UnityEngine.Vector3)
IL_0774: ldfld System.Single UnityEngine.Vector3::y
IL_0779: ldloca.s 4 (UnityEngine.Vector3)
IL_077B: ldfld System.Single UnityEngine.Vector3::z
IL_0780: ldarg.0
IL_0781: ldfld System.Single LightEffect::m_lightRange
IL_0786: add
IL_0787: newobj System.Void UnityEngine.Vector3::.ctor(System.Single x,
System.Single y, System.Single z)
IL_078C: stobj UnityEngine.Vector3
IL_0791: ldarg.s 8
IL_0793: ldfld UnityEngine.Vector3[] MeshData::m_normals
IL_0798: ldarg.s 5
IL_079A: ldind.i4
IL_079B: ldelema UnityEngine.Vector3
IL_07A0: ldarg.3
IL_07A1: stobj UnityEngine.Vector3
IL_07A6: ldarg.s 8
IL_07A8: ldfld UnityEngine.Vector4[] MeshData::m_tangents
IL_07AD: ldarg.s 5
IL_07AF: ldind.i4
IL_07B0: ldelema UnityEngine.Vector4
IL_07B5: ldloc.s 7 (UnityEngine.Vector4)
IL_07B7: stobj UnityEngine.Vector4
IL_07BC: ldarg.s 8
IL_07BE: ldfld UnityEngine.Vector2[] MeshData::m_uvs
IL_07C3: ldarg.s 5
IL_07C5: ldind.i4
IL_07C6: ldelema UnityEngine.Vector2
IL_07CB: ldloc.s 8 (UnityEngine.Vector2)
IL_07CD: stobj UnityEngine.Vector2
IL_07D2: ldarg.s 8
IL_07D4: ldfld UnityEngine.Vector2[] MeshData::m_uvs2
IL_07D9: ldarg.s 5
IL_07DB: ldind.i4
IL_07DC: ldelema UnityEngine.Vector2
IL_07E1: ldloc.s 10 (UnityEngine.Vector2)
IL_07E3: stobj UnityEngine.Vector2
IL_07E8: ldarg.s 8
IL_07EA: ldfld UnityEngine.Vector2[] MeshData::m_uvs3
IL_07EF: ldarg.s 5
IL_07F1: ldind.i4
IL_07F2: ldelema UnityEngine.Vector2
IL_07F7: ldloc.s 11 (UnityEngine.Vector2)
IL_07F9: stobj UnityEngine.Vector2
IL_07FE: ldloc.0
IL_07FF: brfalse => Label18
IL_0804: ldarg.s 8
IL_0806: ldfld UnityEngine.Vector2[] MeshData::m_uvs4
IL_080B: ldarg.s 5
IL_080D: ldind.i4
IL_080E: ldelema UnityEngine.Vector2
IL_0813: ldloc.s 12 (UnityEngine.Vector2)
IL_0815: stobj UnityEngine.Vector2
IL_081A: Label18
IL_081A: ldarg.s 8
IL_081C: ldfld UnityEngine.Color32[] MeshData::m_colors
IL_0821: ldarg.s 5
IL_0823: ldind.i4
IL_0824: ldelema UnityEngine.Color32
IL_0829: ldloc.s 15 (UnityEngine.Color)
IL_082B: call static UnityEngine.Color32
UnityEngine.Color32::op_Implicit(UnityEngine.Color c)
IL_0830: stobj UnityEngine.Color32
IL_0835: ldarg.s 5
IL_0837: ldarg.s 5
IL_0839: ldind.i4
IL_083A: ldc.i4.1
IL_083B: add
IL_083C: stind.i4
IL_083D: ldarg.s 8
IL_083F: ldfld System.Int32[] MeshData::m_triangles
IL_0844: ldarg.s 6
IL_0846: ldarg.s 6
IL_0848: ldind.i4
IL_0849: dup
IL_084A: stloc.s 19 (System.Int32)
IL_084C: ldc.i4.1
IL_084D: add
IL_084E: stind.i4
IL_084F: ldloc.s 19 (System.Int32)
IL_0851: ldarg.s 5
IL_0853: ldind.i4
IL_0854: ldc.i4.6
IL_0855: sub
IL_0856: stelem.i4
IL_0857: ldarg.s 8
IL_0859: ldfld System.Int32[] MeshData::m_triangles
IL_085E: ldarg.s 6
IL_0860: ldarg.s 6
IL_0862: ldind.i4
IL_0863: dup
IL_0864: stloc.s 19 (System.Int32)
IL_0866: ldc.i4.1
IL_0867: add
IL_0868: stind.i4
IL_0869: ldloc.s 19 (System.Int32)
IL_086B: ldarg.s 5
IL_086D: ldind.i4
IL_086E: ldc.i4.5
IL_086F: sub
IL_0870: stelem.i4
IL_0871: ldarg.s 8
IL_0873: ldfld System.Int32[] MeshData::m_triangles
IL_0878: ldarg.s 6
IL_087A: ldarg.s 6
IL_087C: ldind.i4
IL_087D: dup
IL_087E: stloc.s 19 (System.Int32)
IL_0880: ldc.i4.1
IL_0881: add
IL_0882: stind.i4
IL_0883: ldloc.s 19 (System.Int32)
IL_0885: ldarg.s 5
IL_0887: ldind.i4
IL_0888: ldc.i4.1
IL_0889: sub
IL_088A: stelem.i4
IL_088B: ldarg.s 8
IL_088D: ldfld System.Int32[] MeshData::m_triangles
IL_0892: ldarg.s 6
IL_0894: ldarg.s 6
IL_0896: ldind.i4
IL_0897: dup
IL_0898: stloc.s 19 (System.Int32)
IL_089A: ldc.i4.1
IL_089B: add
IL_089C: stind.i4
IL_089D: ldloc.s 19 (System.Int32)
IL_089F: ldarg.s 5
IL_08A1: ldind.i4
IL_08A2: ldc.i4.1
IL_08A3: sub
IL_08A4: stelem.i4
IL_08A5: ldarg.s 8
IL_08A7: ldfld System.Int32[] MeshData::m_triangles
IL_08AC: ldarg.s 6
IL_08AE: ldarg.s 6
IL_08B0: ldind.i4
IL_08B1: dup
IL_08B2: stloc.s 19 (System.Int32)
IL_08B4: ldc.i4.1
IL_08B5: add
IL_08B6: stind.i4
IL_08B7: ldloc.s 19 (System.Int32)
IL_08B9: ldarg.s 5
IL_08BB: ldind.i4
IL_08BC: ldc.i4.5
IL_08BD: sub
IL_08BE: stelem.i4
IL_08BF: ldarg.s 8
IL_08C1: ldfld System.Int32[] MeshData::m_triangles
IL_08C6: ldarg.s 6
IL_08C8: ldarg.s 6
IL_08CA: ldind.i4
IL_08CB: dup
IL_08CC: stloc.s 19 (System.Int32)
IL_08CE: ldc.i4.1
IL_08CF: add
IL_08D0: stind.i4
IL_08D1: ldloc.s 19 (System.Int32)
IL_08D3: ldarg.s 5
IL_08D5: ldind.i4
IL_08D6: ldc.i4.4
IL_08D7: sub
IL_08D8: stelem.i4
IL_08D9: ldarg.s 8
IL_08DB: ldfld System.Int32[] MeshData::m_triangles
IL_08E0: ldarg.s 6
IL_08E2: ldarg.s 6
IL_08E4: ldind.i4
IL_08E5: dup
IL_08E6: stloc.s 19 (System.Int32)
IL_08E8: ldc.i4.1
IL_08E9: add
IL_08EA: stind.i4
IL_08EB: ldloc.s 19 (System.Int32)
IL_08ED: ldarg.s 5
IL_08EF: ldind.i4
IL_08F0: ldc.i4.1
IL_08F1: sub
IL_08F2: stelem.i4
IL_08F3: ldarg.s 8
IL_08F5: ldfld System.Int32[] MeshData::m_triangles
IL_08FA: ldarg.s 6
IL_08FC: ldarg.s 6
IL_08FE: ldind.i4
IL_08FF: dup
IL_0900: stloc.s 19 (System.Int32)
IL_0902: ldc.i4.1
IL_0903: add
IL_0904: stind.i4
IL_0905: ldloc.s 19 (System.Int32)
IL_0907: ldarg.s 5
IL_0909: ldind.i4
IL_090A: ldc.i4.4
IL_090B: sub
IL_090C: stelem.i4
IL_090D: ldarg.s 8
IL_090F: ldfld System.Int32[] MeshData::m_triangles
IL_0914: ldarg.s 6
IL_0916: ldarg.s 6
IL_0918: ldind.i4
IL_0919: dup
IL_091A: stloc.s 19 (System.Int32)
IL_091C: ldc.i4.1
IL_091D: add
IL_091E: stind.i4
IL_091F: ldloc.s 19 (System.Int32)
IL_0921: ldarg.s 5
IL_0923: ldind.i4
IL_0924: ldc.i4.2
IL_0925: sub
IL_0926: stelem.i4
IL_0927: ldarg.s 8
IL_0929: ldfld System.Int32[] MeshData::m_triangles
IL_092E: ldarg.s 6
IL_0930: ldarg.s 6
IL_0932: ldind.i4
IL_0933: dup
IL_0934: stloc.s 19 (System.Int32)
IL_0936: ldc.i4.1
IL_0937: add
IL_0938: stind.i4
IL_0939: ldloc.s 19 (System.Int32)
IL_093B: ldarg.s 5
IL_093D: ldind.i4
IL_093E: ldc.i4.2
IL_093F: sub
IL_0940: stelem.i4
IL_0941: ldarg.s 8
IL_0943: ldfld System.Int32[] MeshData::m_triangles
IL_0948: ldarg.s 6
IL_094A: ldarg.s 6
IL_094C: ldind.i4
IL_094D: dup
IL_094E: stloc.s 19 (System.Int32)
IL_0950: ldc.i4.1
IL_0951: add
IL_0952: stind.i4
IL_0953: ldloc.s 19 (System.Int32)
IL_0955: ldarg.s 5
IL_0957: ldind.i4
IL_0958: ldc.i4.4
IL_0959: sub
IL_095A: stelem.i4
IL_095B: ldarg.s 8
IL_095D: ldfld System.Int32[] MeshData::m_triangles
IL_0962: ldarg.s 6
IL_0964: ldarg.s 6
IL_0966: ldind.i4
IL_0967: dup
IL_0968: stloc.s 19 (System.Int32)
IL_096A: ldc.i4.1
IL_096B: add
IL_096C: stind.i4
IL_096D: ldloc.s 19 (System.Int32)
IL_096F: ldarg.s 5
IL_0971: ldind.i4
IL_0972: ldc.i4.3
IL_0973: sub
IL_0974: stelem.i4
IL_0975: // end original
IL_0975: Label1
IL_0975: ret
DONE

### Patch: virtual System.Void ElectricityManager::SimulationStepImpl(System.Int32


subStep)
### Replacement: static System.Void
ElectricityManager::ElectricityManager.SimulationStepImpl_Patch0(ElectricityManager
this, System.Int32 subStep)
IL_0000: Local var 0: System.UInt32
IL_0000: Local var 1: System.Int32
IL_0000: Local var 2: NetManager
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: NetInfo
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: ElectricityManager/Cell
IL_0000: Local var 13: ElectricityManager/PulseGroup
IL_0000: Local var 14: ElectricityManager/PulseUnit
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: ElectricityManager/PulseUnit
IL_0000: Local var 19: System.UInt32
IL_0000: Local var 20: System.Int32
IL_0000: Local var 21: ElectricityManager/Cell
IL_0000: Local var 22: System.Int32
IL_0000: Local var 23: System.Int32
IL_0000: Local var 24: NetNode
IL_0000: Local var 25: System.Int32
IL_0000: Local var 26: System.UInt16
IL_0000: Local var 27: System.UInt16
IL_0000: Local var 28: System.UInt16
IL_0000: Local var 29: System.UInt16
IL_0000: Local var 30: System.Int32
IL_0000: Local var 31: ElectricityManager/PulseGroup
IL_0000: Local var 32: ElectricityManager/PulseGroup
IL_0000: Local var 33: System.Int32
IL_0000: Local var 34: ElectricityManager/PulseGroup
IL_0000: Local var 35: System.Int32
IL_0000: Local var 36: ElectricityManager/Cell
IL_0000: // start original
IL_0000: ldarg.1
IL_0001: brfalse => Label0
IL_0006: ldarg.1
IL_0007: ldc.i4 1000
IL_000C: beq => Label1
IL_0011: call static SimulationManager
ColossalFramework.Singleton`1<SimulationManager>::get_instance()
IL_0016: ldfld System.UInt32 SimulationManager::m_currentFrameIndex
IL_001B: stloc.0
IL_001C: ldloc.0
IL_001D: ldc.i4 255
IL_0022: and
IL_0023: stloc.1
IL_0024: ldloc.1
IL_0025: ldc.i4 128
IL_002A: bge => Label2
IL_002F: ldloc.1
IL_0030: brtrue => Label3
IL_0035: ldarg.0
IL_0036: ldc.i4.0
IL_0037: stfld System.Int32 ElectricityManager::m_pulseGroupCount
IL_003C: ldarg.0
IL_003D: ldc.i4.0
IL_003E: stfld System.Int32 ElectricityManager::m_pulseUnitStart
IL_0043: ldarg.0
IL_0044: ldc.i4.0
IL_0045: stfld System.Int32 ElectricityManager::m_pulseUnitEnd
IL_004A: ldarg.0
IL_004B: ldc.i4.0
IL_004C: stfld System.Int32 ElectricityManager::m_processedCells
IL_0051: ldarg.0
IL_0052: ldc.i4.0
IL_0053: stfld System.Int32 ElectricityManager::m_conductiveCells
IL_0058: ldarg.0
IL_0059: ldc.i4.1
IL_005A: stfld System.Boolean ElectricityManager::m_canContinue
IL_005F: Label3
IL_005F: call static NetManager
ColossalFramework.Singleton`1<NetManager>::get_instance()
IL_0064: stloc.2
IL_0065: ldloc.1
IL_0066: ldc.i4 32768
IL_006B: mul
IL_006C: ldc.i4.7
IL_006D: shr
IL_006E: stloc.3
IL_006F: ldloc.1
IL_0070: ldc.i4.1
IL_0071: add
IL_0072: ldc.i4 32768
IL_0077: mul
IL_0078: ldc.i4.7
IL_0079: shr
IL_007A: ldc.i4.1
IL_007B: sub
IL_007C: stloc.s 4 (System.Int32)
IL_007E: ldloc.3
IL_007F: stloc.s 5 (System.Int32)
IL_0081: br => Label4
IL_0086: Label10
IL_0086: ldloc.2
IL_0087: ldfld Array16`1<NetNode> NetManager::m_nodes
IL_008C: ldfld NetNode[] Array16`1<NetNode>::m_buffer
IL_0091: ldloc.s 5 (System.Int32)
IL_0093: ldelema NetNode
IL_0098: ldfld Flags NetNode::m_flags
IL_009D: brfalse => Label5
IL_00A2: ldloc.2
IL_00A3: ldfld Array16`1<NetNode> NetManager::m_nodes
IL_00A8: ldfld NetNode[] Array16`1<NetNode>::m_buffer
IL_00AD: ldloc.s 5 (System.Int32)
IL_00AF: ldelema NetNode
IL_00B4: call NetInfo NetNode::get_Info()
IL_00B9: stloc.s 6 (NetInfo)
IL_00BB: ldloc.s 6 (NetInfo)
IL_00BD: ldfld ItemClass NetInfo::m_class
IL_00C2: ldfld Service ItemClass::m_service
IL_00C7: ldc.i4.s 10
IL_00C9: beq => Label6
IL_00CE: ldloc.s 6 (NetInfo)
IL_00D0: ldfld NetAI NetInfo::m_netAI
IL_00D5: isinst ConcourseAI
IL_00DA: brfalse => Label7
IL_00DF: Label6
IL_00DF: ldarg.0
IL_00E0: ldloc.s 5 (System.Int32)
IL_00E2: ldarg.0
IL_00E3: ldfld System.UInt16[] ElectricityManager::m_nodeGroups
IL_00E8: ldloc.s 5 (System.Int32)
IL_00EA: ldelem.u2
IL_00EB: ldc.i4 65535
IL_00F0: beq => Label8
IL_00F5: ldc.i4.1
IL_00F6: br => Label9
IL_00FB: Label8
IL_00FB: ldc.i4.0
IL_00FC: Label9
IL_00FC: call System.Void
ElectricityManager::UpdateNodeElectricity(System.Int32 nodeID, System.Int32 value)
IL_0101: ldarg.0
IL_0102: dup
IL_0103: ldfld System.Int32 ElectricityManager::m_conductiveCells
IL_0108: ldc.i4.1
IL_0109: add
IL_010A: stfld System.Int32 ElectricityManager::m_conductiveCells
IL_010F: Label5
IL_010F: Label7
IL_010F: ldarg.0
IL_0110: ldfld System.UInt16[] ElectricityManager::m_nodeGroups
IL_0115: ldloc.s 5 (System.Int32)
IL_0117: ldc.i4 65535
IL_011C: stelem.i2
IL_011D: ldloc.s 5 (System.Int32)
IL_011F: ldc.i4.1
IL_0120: add
IL_0121: stloc.s 5 (System.Int32)
IL_0123: Label4
IL_0123: ldloc.s 5 (System.Int32)
IL_0125: ldloc.s 4 (System.Int32)
IL_0127: ble => Label10
IL_012C: ldloc.1
IL_012D: ldc.i4 256
IL_0132: mul
IL_0133: ldc.i4.7
IL_0134: shr
IL_0135: stloc.s 7 (System.Int32)
IL_0137: ldloc.1
IL_0138: ldc.i4.1
IL_0139: add
IL_013A: ldc.i4 256
IL_013F: mul
IL_0140: ldc.i4.7
IL_0141: shr
IL_0142: ldc.i4.1
IL_0143: sub
IL_0144: stloc.s 8 (System.Int32)
IL_0146: ldloc.s 7 (System.Int32)
IL_0148: stloc.s 9 (System.Int32)
IL_014A: br => Label11
IL_014F: Label21
IL_014F: ldloc.s 9 (System.Int32)
IL_0151: ldc.i4 256
IL_0156: mul
IL_0157: stloc.s 10 (System.Int32)
IL_0159: ldc.i4.0
IL_015A: stloc.s 11 (System.Int32)
IL_015C: br => Label12
IL_0161: Label20
IL_0161: ldarg.0
IL_0162: ldfld Cell[] ElectricityManager::m_electricityGrid
IL_0167: ldloc.s 10 (System.Int32)
IL_0169: ldelema ElectricityManager+Cell
IL_016E: ldobj ElectricityManager+Cell
IL_0173: stloc.s 12 (ElectricityManager+Cell)
IL_0175: ldloca.s 12 (ElectricityManager+Cell)
IL_0177: ldfld System.Int16 Cell::m_currentCharge
IL_017C: ldc.i4.0
IL_017D: ble => Label13
IL_0182: ldarg.0
IL_0183: ldfld System.Int32 ElectricityManager::m_pulseGroupCount
IL_0188: ldc.i4 1024
IL_018D: bge => Label14
IL_0192: ldloca.s 13 (ElectricityManager+PulseGroup)
IL_0194: ldloca.s 12 (ElectricityManager+Cell)
IL_0196: ldfld System.Int16 Cell::m_currentCharge
IL_019B: conv.u4
IL_019C: stfld System.UInt32 PulseGroup::m_origCharge
IL_01A1: ldloca.s 13 (ElectricityManager+PulseGroup)
IL_01A3: ldloca.s 12 (ElectricityManager+Cell)
IL_01A5: ldfld System.Int16 Cell::m_currentCharge
IL_01AA: conv.u4
IL_01AB: stfld System.UInt32 PulseGroup::m_curCharge
IL_01B0: ldloca.s 13 (ElectricityManager+PulseGroup)
IL_01B2: ldc.i4.0
IL_01B3: stfld System.UInt16 PulseGroup::m_mergeCount
IL_01B8: ldloca.s 13 (ElectricityManager+PulseGroup)
IL_01BA: ldc.i4 65535
IL_01BF: stfld System.UInt16 PulseGroup::m_mergeIndex
IL_01C4: ldloca.s 13 (ElectricityManager+PulseGroup)
IL_01C6: ldloc.s 11 (System.Int32)
IL_01C8: conv.u1
IL_01C9: stfld System.Byte PulseGroup::m_x
IL_01CE: ldloca.s 13 (ElectricityManager+PulseGroup)
IL_01D0: ldloc.s 9 (System.Int32)
IL_01D2: conv.u1
IL_01D3: stfld System.Byte PulseGroup::m_z
IL_01D8: ldloca.s 14 (ElectricityManager+PulseUnit)
IL_01DA: ldarg.0
IL_01DB: ldfld System.Int32 ElectricityManager::m_pulseGroupCount
IL_01E0: conv.u2
IL_01E1: stfld System.UInt16 PulseUnit::m_group
IL_01E6: ldloca.s 14 (ElectricityManager+PulseUnit)
IL_01E8: ldc.i4.0
IL_01E9: stfld System.UInt16 PulseUnit::m_node
IL_01EE: ldloca.s 14 (ElectricityManager+PulseUnit)
IL_01F0: ldloc.s 11 (System.Int32)
IL_01F2: conv.u1
IL_01F3: stfld System.Byte PulseUnit::m_x
IL_01F8: ldloca.s 14 (ElectricityManager+PulseUnit)
IL_01FA: ldloc.s 9 (System.Int32)
IL_01FC: conv.u1
IL_01FD: stfld System.Byte PulseUnit::m_z
IL_0202: ldloca.s 12 (ElectricityManager+Cell)
IL_0204: ldarg.0
IL_0205: ldfld System.Int32 ElectricityManager::m_pulseGroupCount
IL_020A: conv.u2
IL_020B: stfld System.UInt16 Cell::m_pulseGroup
IL_0210: ldarg.0
IL_0211: ldfld PulseGroup[] ElectricityManager::m_pulseGroups
IL_0216: ldarg.0
IL_0217: dup
IL_0218: ldfld System.Int32 ElectricityManager::m_pulseGroupCount
IL_021D: dup
IL_021E: stloc.s 15 (System.Int32)
IL_0220: ldc.i4.1
IL_0221: add
IL_0222: stfld System.Int32 ElectricityManager::m_pulseGroupCount
IL_0227: ldloc.s 15 (System.Int32)
IL_0229: ldelema ElectricityManager+PulseGroup
IL_022E: ldloc.s 13 (ElectricityManager+PulseGroup)
IL_0230: stobj ElectricityManager+PulseGroup
IL_0235: ldarg.0
IL_0236: ldfld PulseUnit[] ElectricityManager::m_pulseUnits
IL_023B: ldarg.0
IL_023C: ldfld System.Int32 ElectricityManager::m_pulseUnitEnd
IL_0241: ldelema ElectricityManager+PulseUnit
IL_0246: ldloc.s 14 (ElectricityManager+PulseUnit)
IL_0248: stobj ElectricityManager+PulseUnit
IL_024D: ldarg.0
IL_024E: dup
IL_024F: ldfld System.Int32 ElectricityManager::m_pulseUnitEnd
IL_0254: ldc.i4.1
IL_0255: add
IL_0256: dup
IL_0257: stloc.s 15 (System.Int32)
IL_0259: stfld System.Int32 ElectricityManager::m_pulseUnitEnd
IL_025E: ldloc.s 15 (System.Int32)
IL_0260: ldarg.0
IL_0261: ldfld PulseUnit[] ElectricityManager::m_pulseUnits
IL_0266: ldlen
IL_0267: conv.i4
IL_0268: bne.un => Label15
IL_026D: ldarg.0
IL_026E: ldc.i4.0
IL_026F: stfld System.Int32 ElectricityManager::m_pulseUnitEnd
IL_0274: Label15
IL_0274: br => Label16
IL_0279: Label14
IL_0279: ldloca.s 12 (ElectricityManager+Cell)
IL_027B: ldc.i4 65535
IL_0280: stfld System.UInt16 Cell::m_pulseGroup
IL_0285: Label16
IL_0285: ldloca.s 12 (ElectricityManager+Cell)
IL_0287: ldc.i4.0
IL_0288: stfld System.Int16 Cell::m_currentCharge
IL_028D: ldarg.0
IL_028E: dup
IL_028F: ldfld System.Int32 ElectricityManager::m_conductiveCells
IL_0294: ldc.i4.1
IL_0295: add
IL_0296: stfld System.Int32 ElectricityManager::m_conductiveCells
IL_029B: br => Label17
IL_02A0: Label13
IL_02A0: ldloca.s 12 (ElectricityManager+Cell)
IL_02A2: ldc.i4 65535
IL_02A7: stfld System.UInt16 Cell::m_pulseGroup
IL_02AC: ldloca.s 12 (ElectricityManager+Cell)
IL_02AE: ldfld System.Byte Cell::m_conductivity
IL_02B3: ldc.i4.s 64
IL_02B5: blt => Label18
IL_02BA: ldarg.0
IL_02BB: dup
IL_02BC: ldfld System.Int32 ElectricityManager::m_conductiveCells
IL_02C1: ldc.i4.1
IL_02C2: add
IL_02C3: stfld System.Int32 ElectricityManager::m_conductiveCells
IL_02C8: Label17
IL_02C8: Label18
IL_02C8: ldloca.s 12 (ElectricityManager+Cell)
IL_02CA: ldfld System.Boolean Cell::m_tmpElectrified
IL_02CF: ldloca.s 12 (ElectricityManager+Cell)
IL_02D1: ldfld System.Boolean Cell::m_electrified
IL_02D6: beq => Label19
IL_02DB: ldloca.s 12 (ElectricityManager+Cell)
IL_02DD: ldloca.s 12 (ElectricityManager+Cell)
IL_02DF: ldfld System.Boolean Cell::m_tmpElectrified
IL_02E4: stfld System.Boolean Cell::m_electrified
IL_02E9: Label19
IL_02E9: ldloca.s 12 (ElectricityManager+Cell)
IL_02EB: ldloca.s 12 (ElectricityManager+Cell)
IL_02ED: ldfld System.UInt16 Cell::m_pulseGroup
IL_02F2: ldc.i4 65535
IL_02F7: ceq
IL_02F9: ldc.i4.0
IL_02FA: ceq
IL_02FC: stfld System.Boolean Cell::m_tmpElectrified
IL_0301: ldarg.0
IL_0302: ldfld Cell[] ElectricityManager::m_electricityGrid
IL_0307: ldloc.s 10 (System.Int32)
IL_0309: ldelema ElectricityManager+Cell
IL_030E: ldloc.s 12 (ElectricityManager+Cell)
IL_0310: stobj ElectricityManager+Cell
IL_0315: ldloc.s 10 (System.Int32)
IL_0317: ldc.i4.1
IL_0318: add
IL_0319: stloc.s 10 (System.Int32)
IL_031B: ldloc.s 11 (System.Int32)
IL_031D: ldc.i4.1
IL_031E: add
IL_031F: stloc.s 11 (System.Int32)
IL_0321: Label12
IL_0321: ldloc.s 11 (System.Int32)
IL_0323: ldc.i4 256
IL_0328: blt => Label20
IL_032D: ldloc.s 9 (System.Int32)
IL_032F: ldc.i4.1
IL_0330: add
IL_0331: stloc.s 9 (System.Int32)
IL_0333: Label11
IL_0333: ldloc.s 9 (System.Int32)
IL_0335: ldloc.s 8 (System.Int32)
IL_0337: ble => Label21
IL_033C: br => Label22
IL_0341: Label2
IL_0341: ldloc.1
IL_0342: ldc.i4.s 127
IL_0344: sub
IL_0345: ldarg.0
IL_0346: ldfld System.Int32 ElectricityManager::m_conductiveCells
IL_034B: mul
IL_034C: ldc.i4.7
IL_034D: shr
IL_034E: stloc.s 16 (System.Int32)
IL_0350: ldloc.1
IL_0351: ldc.i4 255
IL_0356: bne.un => Label23
IL_035B: ldc.i4 1000000000
IL_0360: stloc.s 16 (System.Int32)
IL_0362: Label23
IL_0362: br => Label24
IL_0367: Label54
IL_0367: ldarg.0
IL_0368: ldc.i4.0
IL_0369: stfld System.Boolean ElectricityManager::m_canContinue
IL_036E: ldarg.0
IL_036F: ldfld System.Int32 ElectricityManager::m_pulseUnitEnd
IL_0374: stloc.s 17 (System.Int32)
IL_0376: br => Label25
IL_037B: Label52
IL_037B: ldarg.0
IL_037C: ldfld PulseUnit[] ElectricityManager::m_pulseUnits
IL_0381: ldarg.0
IL_0382: ldfld System.Int32 ElectricityManager::m_pulseUnitStart
IL_0387: ldelema ElectricityManager+PulseUnit
IL_038C: ldobj ElectricityManager+PulseUnit
IL_0391: stloc.s 18 (ElectricityManager+PulseUnit)
IL_0393: ldarg.0
IL_0394: dup
IL_0395: ldfld System.Int32 ElectricityManager::m_pulseUnitStart
IL_039A: ldc.i4.1
IL_039B: add
IL_039C: dup
IL_039D: stloc.s 15 (System.Int32)
IL_039F: stfld System.Int32 ElectricityManager::m_pulseUnitStart
IL_03A4: ldloc.s 15 (System.Int32)
IL_03A6: ldarg.0
IL_03A7: ldfld PulseUnit[] ElectricityManager::m_pulseUnits
IL_03AC: ldlen
IL_03AD: conv.i4
IL_03AE: bne.un => Label26
IL_03B3: ldarg.0
IL_03B4: ldc.i4.0
IL_03B5: stfld System.Int32 ElectricityManager::m_pulseUnitStart
IL_03BA: Label26
IL_03BA: ldloca.s 18 (ElectricityManager+PulseUnit)
IL_03BC: ldarg.0
IL_03BD: ldloca.s 18 (ElectricityManager+PulseUnit)
IL_03BF: ldfld System.UInt16 PulseUnit::m_group
IL_03C4: call System.UInt16 ElectricityManager::GetRootGroup(System.UInt16
group)
IL_03C9: stfld System.UInt16 PulseUnit::m_group
IL_03CE: ldarg.0
IL_03CF: ldfld PulseGroup[] ElectricityManager::m_pulseGroups
IL_03D4: ldloca.s 18 (ElectricityManager+PulseUnit)
IL_03D6: ldfld System.UInt16 PulseUnit::m_group
IL_03DB: ldelema ElectricityManager+PulseGroup
IL_03E0: ldfld System.UInt32 PulseGroup::m_curCharge
IL_03E5: stloc.s 19 (System.UInt32)
IL_03E7: ldloca.s 18 (ElectricityManager+PulseUnit)
IL_03E9: ldfld System.UInt16 PulseUnit::m_node
IL_03EE: brtrue => Label27
IL_03F3: ldloca.s 18 (ElectricityManager+PulseUnit)
IL_03F5: ldfld System.Byte PulseUnit::m_z
IL_03FA: ldc.i4 256
IL_03FF: mul
IL_0400: ldloca.s 18 (ElectricityManager+PulseUnit)
IL_0402: ldfld System.Byte PulseUnit::m_x
IL_0407: add
IL_0408: stloc.s 20 (System.Int32)
IL_040A: ldarg.0
IL_040B: ldfld Cell[] ElectricityManager::m_electricityGrid
IL_0410: ldloc.s 20 (System.Int32)
IL_0412: ldelema ElectricityManager+Cell
IL_0417: ldobj ElectricityManager+Cell
IL_041C: stloc.s 21 (ElectricityManager+Cell)
IL_041E: ldloca.s 21 (ElectricityManager+Cell)
IL_0420: ldfld System.Byte Cell::m_conductivity
IL_0425: brfalse => Label28
IL_042A: ldloca.s 21 (ElectricityManager+Cell)
IL_042C: ldfld System.Boolean Cell::m_tmpElectrified
IL_0431: brtrue => Label29
IL_0436: ldloc.s 19 (System.UInt32)
IL_0438: brfalse => Label30
IL_043D: ldloca.s 21 (ElectricityManager+Cell)
IL_043F: ldfld System.Int16 Cell::m_currentCharge
IL_0444: neg
IL_0445: ldc.i4.0
IL_0446: ldloc.s 19 (System.UInt32)
IL_0448: call static System.Int32 UnityEngine.Mathf::Clamp(System.Int32
value, System.Int32 min, System.Int32 max)
IL_044D: stloc.s 22 (System.Int32)
IL_044F: ldloc.s 19 (System.UInt32)
IL_0451: ldloc.s 22 (System.Int32)
IL_0453: sub
IL_0454: stloc.s 19 (System.UInt32)
IL_0456: ldloca.s 21 (ElectricityManager+Cell)
IL_0458: dup
IL_0459: ldfld System.Int16 Cell::m_currentCharge
IL_045E: ldloc.s 22 (System.Int32)
IL_0460: conv.i2
IL_0461: add
IL_0462: conv.i2
IL_0463: stfld System.Int16 Cell::m_currentCharge
IL_0468: ldloca.s 21 (ElectricityManager+Cell)
IL_046A: ldfld System.Int16 Cell::m_currentCharge
IL_046F: brtrue => Label31
IL_0474: ldloca.s 21 (ElectricityManager+Cell)
IL_0476: ldc.i4.1
IL_0477: stfld System.Boolean Cell::m_tmpElectrified
IL_047C: Label31
IL_047C: ldarg.0
IL_047D: ldfld Cell[] ElectricityManager::m_electricityGrid
IL_0482: ldloc.s 20 (System.Int32)
IL_0484: ldelema ElectricityManager+Cell
IL_0489: ldloc.s 21 (ElectricityManager+Cell)
IL_048B: stobj ElectricityManager+Cell
IL_0490: ldarg.0
IL_0491: ldfld PulseGroup[] ElectricityManager::m_pulseGroups
IL_0496: ldloca.s 18 (ElectricityManager+PulseUnit)
IL_0498: ldfld System.UInt16 PulseUnit::m_group
IL_049D: ldelema ElectricityManager+PulseGroup
IL_04A2: ldloc.s 19 (System.UInt32)
IL_04A4: stfld System.UInt32 PulseGroup::m_curCharge
IL_04A9: Label28
IL_04A9: Label29
IL_04A9: Label30
IL_04A9: ldloc.s 19 (System.UInt32)
IL_04AB: brfalse => Label32
IL_04B0: ldloca.s 21 (ElectricityManager+Cell)
IL_04B2: ldfld System.Byte Cell::m_conductivity
IL_04B7: ldc.i4.s 64
IL_04B9: blt => Label33
IL_04BE: ldc.i4.1
IL_04BF: br => Label34
IL_04C4: Label33
IL_04C4: ldc.i4.s 64
IL_04C6: Label34
IL_04C6: stloc.s 23 (System.Int32)
IL_04C8: ldarg.0
IL_04C9: dup
IL_04CA: ldfld System.Int32 ElectricityManager::m_processedCells
IL_04CF: ldc.i4.1
IL_04D0: add
IL_04D1: stfld System.Int32 ElectricityManager::m_processedCells
IL_04D6: ldloca.s 18 (ElectricityManager+PulseUnit)
IL_04D8: ldfld System.Byte PulseUnit::m_z
IL_04DD: ldc.i4.0
IL_04DE: ble => Label35
IL_04E3: ldarg.0
IL_04E4: ldarg.0
IL_04E5: ldfld Cell[] ElectricityManager::m_electricityGrid
IL_04EA: ldloc.s 20 (System.Int32)
IL_04EC: ldc.i4 256
IL_04F1: sub
IL_04F2: ldelema ElectricityManager+Cell
IL_04F7: ldloca.s 18 (ElectricityManager+PulseUnit)
IL_04F9: ldfld System.UInt16 PulseUnit::m_group
IL_04FE: ldloca.s 18 (ElectricityManager+PulseUnit)
IL_0500: ldfld System.Byte PulseUnit::m_x
IL_0505: ldloca.s 18 (ElectricityManager+PulseUnit)
IL_0507: ldfld System.Byte PulseUnit::m_z
IL_050C: ldc.i4.1
IL_050D: sub
IL_050E: ldloc.s 23 (System.Int32)
IL_0510: call System.Void ElectricityManager::ConductToCell(Cell& cell,
System.UInt16 group, System.Int32 x, System.Int32 z, System.Int32 limit)
IL_0515: Label35
IL_0515: ldloca.s 18 (ElectricityManager+PulseUnit)
IL_0517: ldfld System.Byte PulseUnit::m_x
IL_051C: ldc.i4.0
IL_051D: ble => Label36
IL_0522: ldarg.0
IL_0523: ldarg.0
IL_0524: ldfld Cell[] ElectricityManager::m_electricityGrid
IL_0529: ldloc.s 20 (System.Int32)
IL_052B: ldc.i4.1
IL_052C: sub
IL_052D: ldelema ElectricityManager+Cell
IL_0532: ldloca.s 18 (ElectricityManager+PulseUnit)
IL_0534: ldfld System.UInt16 PulseUnit::m_group
IL_0539: ldloca.s 18 (ElectricityManager+PulseUnit)
IL_053B: ldfld System.Byte PulseUnit::m_x
IL_0540: ldc.i4.1
IL_0541: sub
IL_0542: ldloca.s 18 (ElectricityManager+PulseUnit)
IL_0544: ldfld System.Byte PulseUnit::m_z
IL_0549: ldloc.s 23 (System.Int32)
IL_054B: call System.Void ElectricityManager::ConductToCell(Cell& cell,
System.UInt16 group, System.Int32 x, System.Int32 z, System.Int32 limit)
IL_0550: Label36
IL_0550: ldloca.s 18 (ElectricityManager+PulseUnit)
IL_0552: ldfld System.Byte PulseUnit::m_z
IL_0557: ldc.i4 255
IL_055C: bge => Label37
IL_0561: ldarg.0
IL_0562: ldarg.0
IL_0563: ldfld Cell[] ElectricityManager::m_electricityGrid
IL_0568: ldloc.s 20 (System.Int32)
IL_056A: ldc.i4 256
IL_056F: add
IL_0570: ldelema ElectricityManager+Cell
IL_0575: ldloca.s 18 (ElectricityManager+PulseUnit)
IL_0577: ldfld System.UInt16 PulseUnit::m_group
IL_057C: ldloca.s 18 (ElectricityManager+PulseUnit)
IL_057E: ldfld System.Byte PulseUnit::m_x
IL_0583: ldloca.s 18 (ElectricityManager+PulseUnit)
IL_0585: ldfld System.Byte PulseUnit::m_z
IL_058A: ldc.i4.1
IL_058B: add
IL_058C: ldloc.s 23 (System.Int32)
IL_058E: call System.Void ElectricityManager::ConductToCell(Cell& cell,
System.UInt16 group, System.Int32 x, System.Int32 z, System.Int32 limit)
IL_0593: Label37
IL_0593: ldloca.s 18 (ElectricityManager+PulseUnit)
IL_0595: ldfld System.Byte PulseUnit::m_x
IL_059A: ldc.i4 255
IL_059F: bge => Label38
IL_05A4: ldarg.0
IL_05A5: ldarg.0
IL_05A6: ldfld Cell[] ElectricityManager::m_electricityGrid
IL_05AB: ldloc.s 20 (System.Int32)
IL_05AD: ldc.i4.1
IL_05AE: add
IL_05AF: ldelema ElectricityManager+Cell
IL_05B4: ldloca.s 18 (ElectricityManager+PulseUnit)
IL_05B6: ldfld System.UInt16 PulseUnit::m_group
IL_05BB: ldloca.s 18 (ElectricityManager+PulseUnit)
IL_05BD: ldfld System.Byte PulseUnit::m_x
IL_05C2: ldc.i4.1
IL_05C3: add
IL_05C4: ldloca.s 18 (ElectricityManager+PulseUnit)
IL_05C6: ldfld System.Byte PulseUnit::m_z
IL_05CB: ldloc.s 23 (System.Int32)
IL_05CD: call System.Void ElectricityManager::ConductToCell(Cell& cell,
System.UInt16 group, System.Int32 x, System.Int32 z, System.Int32 limit)
IL_05D2: Label38
IL_05D2: ldarg.0
IL_05D3: ldloca.s 18 (ElectricityManager+PulseUnit)
IL_05D5: ldfld System.UInt16 PulseUnit::m_group
IL_05DA: ldloca.s 18 (ElectricityManager+PulseUnit)
IL_05DC: ldfld System.Byte PulseUnit::m_x
IL_05E1: ldloca.s 18 (ElectricityManager+PulseUnit)
IL_05E3: ldfld System.Byte PulseUnit::m_z
IL_05E8: call System.Void ElectricityManager::ConductToNodes(System.UInt16
group, System.Int32 cellX, System.Int32 cellZ)
IL_05ED: br => Label39
IL_05F2: Label32
IL_05F2: ldarg.0
IL_05F3: ldfld PulseUnit[] ElectricityManager::m_pulseUnits
IL_05F8: ldarg.0
IL_05F9: ldfld System.Int32 ElectricityManager::m_pulseUnitEnd
IL_05FE: ldelema ElectricityManager+PulseUnit
IL_0603: ldloc.s 18 (ElectricityManager+PulseUnit)
IL_0605: stobj ElectricityManager+PulseUnit
IL_060A: ldarg.0
IL_060B: dup
IL_060C: ldfld System.Int32 ElectricityManager::m_pulseUnitEnd
IL_0611: ldc.i4.1
IL_0612: add
IL_0613: dup
IL_0614: stloc.s 15 (System.Int32)
IL_0616: stfld System.Int32 ElectricityManager::m_pulseUnitEnd
IL_061B: ldloc.s 15 (System.Int32)
IL_061D: ldarg.0
IL_061E: ldfld PulseUnit[] ElectricityManager::m_pulseUnits
IL_0623: ldlen
IL_0624: conv.i4
IL_0625: bne.un => Label40
IL_062A: ldarg.0
IL_062B: ldc.i4.0
IL_062C: stfld System.Int32 ElectricityManager::m_pulseUnitEnd
IL_0631: Label39
IL_0631: Label40
IL_0631: br => Label41
IL_0636: Label27
IL_0636: ldloc.s 19 (System.UInt32)
IL_0638: brfalse => Label42
IL_063D: ldarg.0
IL_063E: dup
IL_063F: ldfld System.Int32 ElectricityManager::m_processedCells
IL_0644: ldc.i4.1
IL_0645: add
IL_0646: stfld System.Int32 ElectricityManager::m_processedCells
IL_064B: call static NetManager
ColossalFramework.Singleton`1<NetManager>::get_instance()
IL_0650: ldfld Array16`1<NetNode> NetManager::m_nodes
IL_0655: ldfld NetNode[] Array16`1<NetNode>::m_buffer
IL_065A: ldloca.s 18 (ElectricityManager+PulseUnit)
IL_065C: ldfld System.UInt16 PulseUnit::m_node
IL_0661: ldelema NetNode
IL_0666: ldobj NetNode
IL_066B: stloc.s 24 (NetNode)
IL_066D: ldloca.s 24 (NetNode)
IL_066F: ldfld Flags NetNode::m_flags
IL_0674: brfalse => Label43
IL_0679: ldloca.s 24 (NetNode)
IL_067B: ldfld System.UInt32 NetNode::m_buildIndex
IL_0680: ldloc.0
IL_0681: ldc.i4.s -128
IL_0683: and
IL_0684: bge.un => Label44
IL_0689: ldarg.0
IL_068A: ldloca.s 18 (ElectricityManager+PulseUnit)
IL_068C: ldfld System.UInt16 PulseUnit::m_group
IL_0691: ldloca.s 24 (NetNode)
IL_0693: ldflda UnityEngine.Vector3 NetNode::m_position
IL_0698: ldfld System.Single UnityEngine.Vector3::x
IL_069D: ldloca.s 24 (NetNode)
IL_069F: ldflda UnityEngine.Vector3 NetNode::m_position
IL_06A4: ldfld System.Single UnityEngine.Vector3::z
IL_06A9: call System.Void ElectricityManager::ConductToCells(System.UInt16
group, System.Single worldX, System.Single worldZ)
IL_06AE: ldc.i4.0
IL_06AF: stloc.s 25 (System.Int32)
IL_06B1: br => Label45
IL_06B6: Label49
IL_06B6: ldloca.s 24 (NetNode)
IL_06B8: ldloc.s 25 (System.Int32)
IL_06BA: call System.UInt16 NetNode::GetSegment(System.Int32 index)
IL_06BF: stloc.s 26 (System.UInt16)
IL_06C1: ldloc.s 26 (System.UInt16)
IL_06C3: brfalse => Label46
IL_06C8: call static NetManager
ColossalFramework.Singleton`1<NetManager>::get_instance()
IL_06CD: ldfld Array16`1<NetSegment> NetManager::m_segments
IL_06D2: ldfld NetSegment[] Array16`1<NetSegment>::m_buffer
IL_06D7: ldloc.s 26 (System.UInt16)
IL_06D9: ldelema NetSegment
IL_06DE: ldfld System.UInt16 NetSegment::m_startNode
IL_06E3: stloc.s 27 (System.UInt16)
IL_06E5: call static NetManager
ColossalFramework.Singleton`1<NetManager>::get_instance()
IL_06EA: ldfld Array16`1<NetSegment> NetManager::m_segments
IL_06EF: ldfld NetSegment[] Array16`1<NetSegment>::m_buffer
IL_06F4: ldloc.s 26 (System.UInt16)
IL_06F6: ldelema NetSegment
IL_06FB: ldfld System.UInt16 NetSegment::m_endNode
IL_0700: stloc.s 28 (System.UInt16)
IL_0702: ldloc.s 27 (System.UInt16)
IL_0704: ldloca.s 18 (ElectricityManager+PulseUnit)
IL_0706: ldfld System.UInt16 PulseUnit::m_node
IL_070B: bne.un => Label47
IL_0710: ldloc.s 28 (System.UInt16)
IL_0712: br => Label48
IL_0717: Label47
IL_0717: ldloc.s 27 (System.UInt16)
IL_0719: Label48
IL_0719: stloc.s 29 (System.UInt16)
IL_071B: ldarg.0
IL_071C: ldloc.s 29 (System.UInt16)
IL_071E: call static NetManager
ColossalFramework.Singleton`1<NetManager>::get_instance()
IL_0723: ldfld Array16`1<NetNode> NetManager::m_nodes
IL_0728: ldfld NetNode[] Array16`1<NetNode>::m_buffer
IL_072D: ldloc.s 29 (System.UInt16)
IL_072F: ldelema NetNode
IL_0734: ldloca.s 18 (ElectricityManager+PulseUnit)
IL_0736: ldfld System.UInt16 PulseUnit::m_group
IL_073B: ldc.r4 -100000
IL_0740: ldc.r4 -100000
IL_0745: ldc.r4 100000
IL_074A: ldc.r4 100000
IL_074F: call System.Void ElectricityManager::ConductToNode(System.UInt16
nodeIndex, NetNode& node, System.UInt16 group, System.Single minX, System.Single
minZ, System.Single maxX, System.Single maxZ)
IL_0754: Label46
IL_0754: ldloc.s 25 (System.Int32)
IL_0756: ldc.i4.1
IL_0757: add
IL_0758: stloc.s 25 (System.Int32)
IL_075A: Label45
IL_075A: ldloc.s 25 (System.Int32)
IL_075C: ldc.i4.8
IL_075D: blt => Label49
IL_0762: Label43
IL_0762: Label44
IL_0762: br => Label50
IL_0767: Label42
IL_0767: ldarg.0
IL_0768: ldfld PulseUnit[] ElectricityManager::m_pulseUnits
IL_076D: ldarg.0
IL_076E: ldfld System.Int32 ElectricityManager::m_pulseUnitEnd
IL_0773: ldelema ElectricityManager+PulseUnit
IL_0778: ldloc.s 18 (ElectricityManager+PulseUnit)
IL_077A: stobj ElectricityManager+PulseUnit
IL_077F: ldarg.0
IL_0780: dup
IL_0781: ldfld System.Int32 ElectricityManager::m_pulseUnitEnd
IL_0786: ldc.i4.1
IL_0787: add
IL_0788: dup
IL_0789: stloc.s 15 (System.Int32)
IL_078B: stfld System.Int32 ElectricityManager::m_pulseUnitEnd
IL_0790: ldloc.s 15 (System.Int32)
IL_0792: ldarg.0
IL_0793: ldfld PulseUnit[] ElectricityManager::m_pulseUnits
IL_0798: ldlen
IL_0799: conv.i4
IL_079A: bne.un => Label51
IL_079F: ldarg.0
IL_07A0: ldc.i4.0
IL_07A1: stfld System.Int32 ElectricityManager::m_pulseUnitEnd
IL_07A6: Label25
IL_07A6: Label41
IL_07A6: Label50
IL_07A6: Label51
IL_07A6: ldarg.0
IL_07A7: ldfld System.Int32 ElectricityManager::m_pulseUnitStart
IL_07AC: ldloc.s 17 (System.Int32)
IL_07AE: bne.un => Label52
IL_07B3: Label24
IL_07B3: ldarg.0
IL_07B4: ldfld System.Boolean ElectricityManager::m_canContinue
IL_07B9: brfalse => Label53
IL_07BE: ldarg.0
IL_07BF: ldfld System.Int32 ElectricityManager::m_processedCells
IL_07C4: ldloc.s 16 (System.Int32)
IL_07C6: blt => Label54
IL_07CB: Label53
IL_07CB: ldloc.1
IL_07CC: ldc.i4 255
IL_07D1: bne.un => Label55
IL_07D6: ldc.i4.0
IL_07D7: stloc.s 30 (System.Int32)
IL_07D9: br => Label56
IL_07DE: Label58
IL_07DE: ldarg.0
IL_07DF: ldfld PulseGroup[] ElectricityManager::m_pulseGroups
IL_07E4: ldloc.s 30 (System.Int32)
IL_07E6: ldelema ElectricityManager+PulseGroup
IL_07EB: ldobj ElectricityManager+PulseGroup
IL_07F0: stloc.s 31 (ElectricityManager+PulseGroup)
IL_07F2: ldloca.s 31 (ElectricityManager+PulseGroup)
IL_07F4: ldfld System.UInt16 PulseGroup::m_mergeIndex
IL_07F9: ldc.i4 65535
IL_07FE: beq => Label57
IL_0803: ldarg.0
IL_0804: ldfld PulseGroup[] ElectricityManager::m_pulseGroups
IL_0809: ldloca.s 31 (ElectricityManager+PulseGroup)
IL_080B: ldfld System.UInt16 PulseGroup::m_mergeIndex
IL_0810: ldelema ElectricityManager+PulseGroup
IL_0815: ldobj ElectricityManager+PulseGroup
IL_081A: stloc.s 32 (ElectricityManager+PulseGroup)
IL_081C: ldloca.s 31 (ElectricityManager+PulseGroup)
IL_081E: ldloca.s 32 (ElectricityManager+PulseGroup)
IL_0820: ldfld System.UInt32 PulseGroup::m_curCharge
IL_0825: conv.u8
IL_0826: ldloca.s 31 (ElectricityManager+PulseGroup)
IL_0828: ldfld System.UInt32 PulseGroup::m_origCharge
IL_082D: conv.u8
IL_082E: mul
IL_082F: ldloca.s 32 (ElectricityManager+PulseGroup)
IL_0831: ldfld System.UInt32 PulseGroup::m_origCharge
IL_0836: conv.u8
IL_0837: div.un
IL_0838: conv.u4
IL_0839: stfld System.UInt32 PulseGroup::m_curCharge
IL_083E: ldloca.s 32 (ElectricityManager+PulseGroup)
IL_0840: dup
IL_0841: ldfld System.UInt32 PulseGroup::m_curCharge
IL_0846: ldloca.s 31 (ElectricityManager+PulseGroup)
IL_0848: ldfld System.UInt32 PulseGroup::m_curCharge
IL_084D: sub
IL_084E: stfld System.UInt32 PulseGroup::m_curCharge
IL_0853: ldloca.s 32 (ElectricityManager+PulseGroup)
IL_0855: dup
IL_0856: ldfld System.UInt32 PulseGroup::m_origCharge
IL_085B: ldloca.s 31 (ElectricityManager+PulseGroup)
IL_085D: ldfld System.UInt32 PulseGroup::m_origCharge
IL_0862: sub
IL_0863: stfld System.UInt32 PulseGroup::m_origCharge
IL_0868: ldarg.0
IL_0869: ldfld PulseGroup[] ElectricityManager::m_pulseGroups
IL_086E: ldloca.s 31 (ElectricityManager+PulseGroup)
IL_0870: ldfld System.UInt16 PulseGroup::m_mergeIndex
IL_0875: ldelema ElectricityManager+PulseGroup
IL_087A: ldloc.s 32 (ElectricityManager+PulseGroup)
IL_087C: stobj ElectricityManager+PulseGroup
IL_0881: ldarg.0
IL_0882: ldfld PulseGroup[] ElectricityManager::m_pulseGroups
IL_0887: ldloc.s 30 (System.Int32)
IL_0889: ldelema ElectricityManager+PulseGroup
IL_088E: ldloc.s 31 (ElectricityManager+PulseGroup)
IL_0890: stobj ElectricityManager+PulseGroup
IL_0895: Label57
IL_0895: ldloc.s 30 (System.Int32)
IL_0897: ldc.i4.1
IL_0898: add
IL_0899: stloc.s 30 (System.Int32)
IL_089B: Label56
IL_089B: ldloc.s 30 (System.Int32)
IL_089D: ldarg.0
IL_089E: ldfld System.Int32 ElectricityManager::m_pulseGroupCount
IL_08A3: blt => Label58
IL_08A8: ldc.i4.0
IL_08A9: stloc.s 33 (System.Int32)
IL_08AB: br => Label59
IL_08B0: Label62
IL_08B0: ldarg.0
IL_08B1: ldfld PulseGroup[] ElectricityManager::m_pulseGroups
IL_08B6: ldloc.s 33 (System.Int32)
IL_08B8: ldelema ElectricityManager+PulseGroup
IL_08BD: ldobj ElectricityManager+PulseGroup
IL_08C2: stloc.s 34 (ElectricityManager+PulseGroup)
IL_08C4: ldloca.s 34 (ElectricityManager+PulseGroup)
IL_08C6: ldfld System.UInt32 PulseGroup::m_curCharge
IL_08CB: brfalse => Label60
IL_08D0: ldloca.s 34 (ElectricityManager+PulseGroup)
IL_08D2: ldfld System.Byte PulseGroup::m_z
IL_08D7: ldc.i4 256
IL_08DC: mul
IL_08DD: ldloca.s 34 (ElectricityManager+PulseGroup)
IL_08DF: ldfld System.Byte PulseGroup::m_x
IL_08E4: add
IL_08E5: stloc.s 35 (System.Int32)
IL_08E7: ldarg.0
IL_08E8: ldfld Cell[] ElectricityManager::m_electricityGrid
IL_08ED: ldloc.s 35 (System.Int32)
IL_08EF: ldelema ElectricityManager+Cell
IL_08F4: ldobj ElectricityManager+Cell
IL_08F9: stloc.s 36 (ElectricityManager+Cell)
IL_08FB: ldloca.s 36 (ElectricityManager+Cell)
IL_08FD: ldfld System.Byte Cell::m_conductivity
IL_0902: brfalse => Label61
IL_0907: ldloca.s 36 (ElectricityManager+Cell)
IL_0909: dup
IL_090A: ldfld System.UInt16 Cell::m_extraCharge
IL_090F: ldloca.s 34 (ElectricityManager+PulseGroup)
IL_0911: ldfld System.UInt32 PulseGroup::m_curCharge
IL_0916: ldc.i4 32767
IL_091B: ldloca.s 36 (ElectricityManager+Cell)
IL_091D: ldfld System.UInt16 Cell::m_extraCharge
IL_0922: sub
IL_0923: call static System.Int32 UnityEngine.Mathf::Min(System.Int32 a,
System.Int32 b)
IL_0928: conv.u2
IL_0929: add
IL_092A: conv.u2
IL_092B: stfld System.UInt16 Cell::m_extraCharge
IL_0930: Label61
IL_0930: ldarg.0
IL_0931: ldfld Cell[] ElectricityManager::m_electricityGrid
IL_0936: ldloc.s 35 (System.Int32)
IL_0938: ldelema ElectricityManager+Cell
IL_093D: ldloc.s 36 (ElectricityManager+Cell)
IL_093F: stobj ElectricityManager+Cell
IL_0944: Label60
IL_0944: ldloc.s 33 (System.Int32)
IL_0946: ldc.i4.1
IL_0947: add
IL_0948: stloc.s 33 (System.Int32)
IL_094A: Label59
IL_094A: ldloc.s 33 (System.Int32)
IL_094C: ldarg.0
IL_094D: ldfld System.Int32 ElectricityManager::m_pulseGroupCount
IL_0952: blt => Label62
IL_0957: // end original
IL_0957: Label0
IL_0957: Label1
IL_0957: Label22
IL_0957: Label55
IL_0957: ret
DONE

### Patch: System.Void ElectricityManager::ConductToNode(System.UInt16 nodeIndex,


NetNode& node, System.UInt16 group, System.Single minX, System.Single minZ,
System.Single maxX, System.Single maxZ)
### Replacement: static System.Void
ElectricityManager::ElectricityManager.ConductToNode_Patch0(ElectricityManager
this, System.UInt16 nodeIndex, NetNode& node, System.UInt16 group, System.Single
minX, System.Single minZ, System.Single maxX, System.Single maxZ)
IL_0000: Local var 0: NetInfo
IL_0000: Local var 1: ElectricityManager/PulseUnit
IL_0000: Local var 2: System.Int32
IL_0000: Local var 3: System.UInt16
IL_0000: // start original
IL_0000: ldarg.2
IL_0001: ldflda UnityEngine.Vector3 NetNode::m_position
IL_0006: ldfld System.Single UnityEngine.Vector3::x
IL_000B: ldarg.s 4
IL_000D: blt.un => Label0
IL_0012: ldarg.2
IL_0013: ldflda UnityEngine.Vector3 NetNode::m_position
IL_0018: ldfld System.Single UnityEngine.Vector3::z
IL_001D: ldarg.s 5
IL_001F: blt.un => Label1
IL_0024: ldarg.2
IL_0025: ldflda UnityEngine.Vector3 NetNode::m_position
IL_002A: ldfld System.Single UnityEngine.Vector3::x
IL_002F: ldarg.s 6
IL_0031: bgt.un => Label2
IL_0036: ldarg.2
IL_0037: ldflda UnityEngine.Vector3 NetNode::m_position
IL_003C: ldfld System.Single UnityEngine.Vector3::z
IL_0041: ldarg.s 7
IL_0043: bgt.un => Label3
IL_0048: ldarg.2
IL_0049: call NetInfo NetNode::get_Info()
IL_004E: stloc.0
IL_004F: ldloc.0
IL_0050: ldfld ItemClass NetInfo::m_class
IL_0055: ldfld Service ItemClass::m_service
IL_005A: ldc.i4.s 10
IL_005C: beq => Label4
IL_0061: ldarg.2
IL_0062: call NetInfo NetNode::get_Info()
IL_0067: ldfld NetAI NetInfo::m_netAI
IL_006C: isinst ConcourseAI
IL_0071: brfalse => Label5
IL_0076: Label4
IL_0076: ldarg.0
IL_0077: ldfld System.UInt16[] ElectricityManager::m_nodeGroups
IL_007C: ldarg.1
IL_007D: ldelem.u2
IL_007E: ldc.i4 65535
IL_0083: bne.un => Label6
IL_0088: ldloca.s 1 (ElectricityManager+PulseUnit)
IL_008A: ldarg.3
IL_008B: stfld System.UInt16 PulseUnit::m_group
IL_0090: ldloca.s 1 (ElectricityManager+PulseUnit)
IL_0092: ldarg.1
IL_0093: stfld System.UInt16 PulseUnit::m_node
IL_0098: ldloca.s 1 (ElectricityManager+PulseUnit)
IL_009A: ldc.i4.0
IL_009B: stfld System.Byte PulseUnit::m_x
IL_00A0: ldloca.s 1 (ElectricityManager+PulseUnit)
IL_00A2: ldc.i4.0
IL_00A3: stfld System.Byte PulseUnit::m_z
IL_00A8: ldarg.0
IL_00A9: ldfld PulseUnit[] ElectricityManager::m_pulseUnits
IL_00AE: ldarg.0
IL_00AF: ldfld System.Int32 ElectricityManager::m_pulseUnitEnd
IL_00B4: ldelema ElectricityManager+PulseUnit
IL_00B9: ldloc.1
IL_00BA: stobj ElectricityManager+PulseUnit
IL_00BF: ldarg.0
IL_00C0: dup
IL_00C1: ldfld System.Int32 ElectricityManager::m_pulseUnitEnd
IL_00C6: ldc.i4.1
IL_00C7: add
IL_00C8: dup
IL_00C9: stloc.2
IL_00CA: stfld System.Int32 ElectricityManager::m_pulseUnitEnd
IL_00CF: ldloc.2
IL_00D0: ldarg.0
IL_00D1: ldfld PulseUnit[] ElectricityManager::m_pulseUnits
IL_00D6: ldlen
IL_00D7: conv.i4
IL_00D8: bne.un => Label7
IL_00DD: ldarg.0
IL_00DE: ldc.i4.0
IL_00DF: stfld System.Int32 ElectricityManager::m_pulseUnitEnd
IL_00E4: Label7
IL_00E4: ldarg.0
IL_00E5: ldfld System.UInt16[] ElectricityManager::m_nodeGroups
IL_00EA: ldarg.1
IL_00EB: ldarg.3
IL_00EC: stelem.i2
IL_00ED: ldarg.0
IL_00EE: ldc.i4.1
IL_00EF: stfld System.Boolean ElectricityManager::m_canContinue
IL_00F4: br => Label8
IL_00F9: Label6
IL_00F9: ldarg.0
IL_00FA: ldarg.0
IL_00FB: ldfld System.UInt16[] ElectricityManager::m_nodeGroups
IL_0100: ldarg.1
IL_0101: ldelem.u2
IL_0102: call System.UInt16 ElectricityManager::GetRootGroup(System.UInt16
group)
IL_0107: stloc.3
IL_0108: ldloc.3
IL_0109: ldarg.3
IL_010A: beq => Label9
IL_010F: ldarg.0
IL_0110: ldarg.3
IL_0111: ldloc.3
IL_0112: call System.Void ElectricityManager::MergeGroups(System.UInt16 root,
System.UInt16 merged)
IL_0117: ldarg.0
IL_0118: ldfld System.UInt16[] ElectricityManager::m_nodeGroups
IL_011D: ldarg.1
IL_011E: ldarg.3
IL_011F: stelem.i2
IL_0120: ldarg.0
IL_0121: ldc.i4.1
IL_0122: stfld System.Boolean ElectricityManager::m_canContinue
IL_0127: // end original
IL_0127: Label0
IL_0127: Label1
IL_0127: Label2
IL_0127: Label3
IL_0127: Label5
IL_0127: Label8
IL_0127: Label9
IL_0127: ret
DONE

### Patch: System.Void ElectricityManager::UpdateNodeElectricity(System.Int32


nodeID, System.Int32 value)
### Replacement: static System.Void
ElectricityManager::ElectricityManager.UpdateNodeElectricity_Patch0(ElectricityMana
ger this, System.Int32 nodeID, System.Int32 value)
IL_0000: Local var 0: InfoManager/InfoMode
IL_0000: Local var 1: NetManager
IL_0000: Local var 2: System.Boolean
IL_0000: Local var 3: NetNode/Flags
IL_0000: Local var 4: System.UInt16
IL_0000: Local var 5: BuildingManager
IL_0000: Local var 6: NetNode/Flags
IL_0000: Local var 7: System.Int32
IL_0000: Local var 8: System.UInt16
IL_0000: // start original
IL_0000: call static InfoManager
ColossalFramework.Singleton`1<InfoManager>::get_instance()
IL_0005: callvirt InfoMode InfoManager::get_CurrentMode()
IL_000A: stloc.0
IL_000B: call static NetManager
ColossalFramework.Singleton`1<NetManager>::get_instance()
IL_0010: stloc.1
IL_0011: ldc.i4.0
IL_0012: stloc.2
IL_0013: ldloc.1
IL_0014: ldfld Array16`1<NetNode> NetManager::m_nodes
IL_0019: ldfld NetNode[] Array16`1<NetNode>::m_buffer
IL_001E: ldarg.1
IL_001F: ldelema NetNode
IL_0024: ldfld Flags NetNode::m_flags
IL_0029: stloc.3
IL_002A: ldloc.3
IL_002B: ldc.i4 1048576
IL_0030: and
IL_0031: brfalse => Label0
IL_0036: ldloc.1
IL_0037: ldfld Array16`1<NetNode> NetManager::m_nodes
IL_003C: ldfld NetNode[] Array16`1<NetNode>::m_buffer
IL_0041: ldarg.1
IL_0042: ldelema NetNode
IL_0047: dup
IL_0048: ldfld Flags NetNode::m_flags
IL_004D: ldc.i4 -1048577
IL_0052: and
IL_0053: stfld Flags NetNode::m_flags
IL_0058: br => Label10
IL_005D: Label0
IL_005D: ldloc.1
IL_005E: ldfld Array16`1<NetNode> NetManager::m_nodes
IL_0063: ldfld NetNode[] Array16`1<NetNode>::m_buffer
IL_0068: ldarg.1
IL_0069: ldelema NetNode
IL_006E: ldfld System.UInt16 NetNode::m_building
IL_0073: stloc.s 4 (System.UInt16)
IL_0075: ldloc.s 4 (System.UInt16)
IL_0077: brfalse => Label1
IL_007C: call static BuildingManager
ColossalFramework.Singleton`1<BuildingManager>::get_instance()
IL_0081: stloc.s 5 (BuildingManager)
IL_0083: ldloc.s 5 (BuildingManager)
IL_0085: ldfld Array16`1<Building> BuildingManager::m_buildings
IL_008A: ldfld Building[] Array16`1<Building>::m_buffer
IL_008F: ldloc.s 4 (System.UInt16)
IL_0091: ldelema Building
IL_0096: ldfld System.UInt16 Building::m_electricityBuffer
IL_009B: ldarg.2
IL_009C: beq => Label2
IL_00A1: ldloc.s 5 (BuildingManager)
IL_00A3: ldfld Array16`1<Building> BuildingManager::m_buildings
IL_00A8: ldfld Building[] Array16`1<Building>::m_buffer
IL_00AD: ldloc.s 4 (System.UInt16)
IL_00AF: ldelema Building
IL_00B4: ldarg.2
IL_00B5: conv.u2
IL_00B6: stfld System.UInt16 Building::m_electricityBuffer
IL_00BB: ldloc.0
IL_00BC: ldc.i4.1
IL_00BD: ceq
IL_00BF: stloc.2
IL_00C0: Label2
IL_00C0: ldloc.2
IL_00C1: brfalse => Label3
IL_00C6: ldloc.s 5 (BuildingManager)
IL_00C8: ldloc.s 4 (System.UInt16)
IL_00CA: callvirt System.Void BuildingManager::UpdateBuildingColors(System.UInt16
building)
IL_00CF: Label1
IL_00CF: Label3
IL_00CF: ldloc.3
IL_00D0: ldc.i4 -67108865
IL_00D5: and
IL_00D6: stloc.s 6 (NetNode+Flags)
IL_00D8: ldarg.2
IL_00D9: brfalse => Label4
IL_00DE: ldloc.s 6 (NetNode+Flags)
IL_00E0: ldc.i4 67108864
IL_00E5: or
IL_00E6: stloc.s 6 (NetNode+Flags)
IL_00E8: Label4
IL_00E8: ldloc.s 6 (NetNode+Flags)
IL_00EA: ldloc.3
IL_00EB: beq => Label5
IL_00F0: ldloc.1
IL_00F1: ldfld Array16`1<NetNode> NetManager::m_nodes
IL_00F6: ldfld NetNode[] Array16`1<NetNode>::m_buffer
IL_00FB: ldarg.1
IL_00FC: ldelema NetNode
IL_0101: ldloc.s 6 (NetNode+Flags)
IL_0103: stfld Flags NetNode::m_flags
IL_0108: ldloc.0
IL_0109: ldc.i4.1
IL_010A: ceq
IL_010C: stloc.2
IL_010D: Label5
IL_010D: ldloc.2
IL_010E: brfalse => Label6
IL_0113: ldloc.1
IL_0114: ldarg.1
IL_0115: conv.u2
IL_0116: callvirt System.Void NetManager::UpdateNodeColors(System.UInt16 node)
IL_011B: ldc.i4.0
IL_011C: stloc.s 7 (System.Int32)
IL_011E: br => Label7
IL_0123: Label9
IL_0123: ldloc.1
IL_0124: ldfld Array16`1<NetNode> NetManager::m_nodes
IL_0129: ldfld NetNode[] Array16`1<NetNode>::m_buffer
IL_012E: ldarg.1
IL_012F: ldelema NetNode
IL_0134: ldloc.s 7 (System.Int32)
IL_0136: call System.UInt16 NetNode::GetSegment(System.Int32 index)
IL_013B: stloc.s 8 (System.UInt16)
IL_013D: ldloc.s 8 (System.UInt16)
IL_013F: brfalse => Label8
IL_0144: ldloc.1
IL_0145: ldloc.s 8 (System.UInt16)
IL_0147: callvirt System.Void NetManager::UpdateSegmentColors(System.UInt16
segment)
IL_014C: Label8
IL_014C: ldloc.s 7 (System.Int32)
IL_014E: ldc.i4.1
IL_014F: add
IL_0150: stloc.s 7 (System.Int32)
IL_0152: Label7
IL_0152: ldloc.s 7 (System.Int32)
IL_0154: ldc.i4.8
IL_0155: blt => Label9
IL_015A: // end original
IL_015A: Label6
IL_015A: Label10
IL_015A: ret
DONE

### Patch: virtual System.Void ColossalFramework.UI.UIView::Start()


### Replacement: static System.Void
ColossalFramework.UI.UIView::ColossalFramework.UI.UIView.Start_Patch1(ColossalFrame
work.UI.UIView this)
IL_0000: Local var 0:
ColossalFramework.PoolList`1<ColossalFramework.UI.UIComponent>
IL_0000: Local var 1: ColossalFramework.UI.UIComponent
IL_0000: Local var 2:
System.Collections.Generic.IEnumerator`1<ColossalFramework.UI.UIComponent>
IL_0000: // start original
IL_0000: ldarg.0
IL_0001: ldc.i4.0
IL_0002: stfld System.Int32 ColossalFramework.UI.UIView::m_FramesRendered
IL_0007: ldarg.0
IL_0008: call System.Void
ColossalFramework.UI.UIView::InvalidateAllComponents()
IL_000D: ldarg.0
IL_000E: ldfld UnityEngine.MeshRenderer
ColossalFramework.UI.UIView::m_MeshRenderer
IL_0013: ldnull
IL_0014: call static System.Boolean
UnityEngine.Object::op_Inequality(UnityEngine.Object x, UnityEngine.Object y)
IL_0019: brfalse => Label0
IL_001E: ldarg.0
IL_001F: ldfld UnityEngine.MeshRenderer
ColossalFramework.UI.UIView::m_MeshRenderer
IL_0024: ldc.i4.1
IL_0025: callvirt System.Void UnityEngine.Renderer::set_enabled(System.Boolean
value)
IL_002A: Label0
IL_002A: ldarg.0
IL_002B: call ColossalFramework.PoolList`1<ColossalFramework.UI.UIComponent>
ColossalFramework.UI.UIView::GetTopLevelComponents()
IL_0030: stloc.0
.try
{
IL_0031: ldloc.0
IL_0032: callvirt virtual
System.Collections.Generic.IEnumerator`1<ColossalFramework.UI.UIComponent>
ColossalFramework.PoolList`1<ColossalFramework.UI.UIComponent>::GetEnumerator()
IL_0037: stloc.2
.try
{
IL_0038: br => Label1
IL_003D: Label2
IL_003D: ldloc.2
IL_003E: callvirt abstract virtual ColossalFramework.UI.UIComponent
System.Collections.Generic.IEnumerator`1<ColossalFramework.UI.UIComponent>::get_Cur
rent()
IL_0043: stloc.1
IL_0044: ldloc.1
IL_0045: ldc.i4.1
IL_0046: callvirt System.Void
ColossalFramework.UI.UIComponent::InitializeParentVisibilityCache(System.Boolean
parentVisible)
IL_004B: Label1
IL_004B: ldloc.2
IL_004C: callvirt abstract virtual System.Boolean
System.Collections.IEnumerator::MoveNext()
IL_0051: brtrue => Label2
IL_0056: leave => Label3
IL_005B: leave => (autogenerated)
} // end try
.finally
{
IL_0060: ldloc.2
IL_0061: brfalse => Label4
IL_0066: ldloc.2
IL_0067: callvirt abstract virtual System.Void
System.IDisposable::Dispose()
IL_006C: Label4
IL_006C: endfinally
IL_006D: leave => (autogenerated)
} // end handler
IL_006E: Label3
IL_006E: leave => Label5
IL_0073: leave => (autogenerated)
} // end try
.finally
{
IL_0078: ldloc.0
IL_0079: brfalse => Label6
IL_007E: ldloc.0
IL_007F: callvirt abstract virtual System.Void
System.IDisposable::Dispose()
IL_0084: Label6
IL_0084: endfinally
IL_0085: leave => (autogenerated)
} // end handler
IL_0086: Label5
IL_0086: ldarg.0
IL_0087: ldc.i4.1
IL_0088: stfld System.Boolean
ColossalFramework.UI.UIView::m_VisibilityCacheInitialized
IL_008D: // end original
IL_008D: call static System.Void
Kwytto.Redirectors.UIViewRedirector::AfterStart()
IL_0092: ret
DONE

### Patch: virtual UnityEngine.Color NetAI::GetColor(System.UInt16 nodeID, NetNode&


data, InfoMode infoMode, SubInfoMode subInfoMode)
### Replacement: static UnityEngine.Color NetAI::NetAI.GetColor_Patch1(NetAI this,
System.UInt16 nodeID, NetNode& data, InfoMode infoMode, SubInfoMode subInfoMode)
IL_0000: Local var 0: UnityEngine.Color
IL_0000: ldloca 0 (UnityEngine.Color)
IL_0004: initobj UnityEngine.Color
IL_000A: // start original
IL_000A: ldarg.3
IL_000B: brfalse => Label0
IL_0010: call static InfoManager
ColossalFramework.Singleton`1<InfoManager>::get_instance()
IL_0015: ldfld InfoProperties SimulationManagerBase`2<InfoManager,
InfoProperties>::m_properties
IL_001A: ldfld UnityEngine.Color InfoProperties::m_neutralColor
IL_001F: br => Label1
IL_0024: Label0
IL_0024: ldarg.0
IL_0025: ldfld NetInfo NetAI::m_info
IL_002A: ldfld UnityEngine.Color NetInfo::m_color
IL_002F: // end original
IL_002F: Label1
IL_002F: stloc 0 (UnityEngine.Color)
IL_0033: ldloca 0 (UnityEngine.Color)
IL_0037: ldarg 1
IL_003B: ldarg 2
IL_003F: ldarg 3
IL_0043: ldarg 4
IL_0047: call static System.Void
ElectricRoads.Overrides.ElectricRoadsOverrides::AfterGetColorNode(UnityEngine.Color
& __result, System.UInt16 nodeID, NetNode& data, InfoMode infoMode, SubInfoMode
subInfoMode)
IL_004C: ldloc 0 (UnityEngine.Color)
IL_0050: ret
DONE

### Patch: virtual UnityEngine.Color NetAI::GetColor(System.UInt16 segmentID,


NetSegment& data, InfoMode infoMode, SubInfoMode subInfoMode)
### Replacement: static UnityEngine.Color NetAI::NetAI.GetColor_Patch1(NetAI this,
System.UInt16 segmentID, NetSegment& data, InfoMode infoMode, SubInfoMode
subInfoMode)
IL_0000: Local var 0: UnityEngine.Color
IL_0000: ldloca 0 (UnityEngine.Color)
IL_0004: initobj UnityEngine.Color
IL_000A: // start original
IL_000A: ldarg.3
IL_000B: brfalse => Label0
IL_0010: call static InfoManager
ColossalFramework.Singleton`1<InfoManager>::get_instance()
IL_0015: ldfld InfoProperties SimulationManagerBase`2<InfoManager,
InfoProperties>::m_properties
IL_001A: ldfld UnityEngine.Color InfoProperties::m_neutralColor
IL_001F: br => Label1
IL_0024: Label0
IL_0024: ldarg.0
IL_0025: ldfld NetInfo NetAI::m_info
IL_002A: ldfld UnityEngine.Color NetInfo::m_color
IL_002F: // end original
IL_002F: Label1
IL_002F: stloc 0 (UnityEngine.Color)
IL_0033: ldloca 0 (UnityEngine.Color)
IL_0037: ldarg 1
IL_003B: ldarg 2
IL_003F: ldarg 3
IL_0043: ldarg 4
IL_0047: call static System.Void
ElectricRoads.Overrides.ElectricRoadsOverrides::AfterGetColorSegment(UnityEngine.Co
lor& __result, System.UInt16 segmentID, NetSegment& data, InfoMode infoMode,
SubInfoMode subInfoMode)
IL_004C: ldloc 0 (UnityEngine.Color)
IL_0050: ret
DONE

### Patch: System.Void ElectricityManager::UpdateNodeElectricity(System.Int32


nodeID, System.Int32 value)
### Replacement: static System.Void
ElectricityManager::ElectricityManager.UpdateNodeElectricity_Patch0(ElectricityMana
ger this, System.Int32 nodeID, System.Int32 value)
IL_0000: Local var 0: InfoManager/InfoMode
IL_0000: Local var 1: NetManager
IL_0000: Local var 2: System.Boolean
IL_0000: Local var 3: NetNode/Flags
IL_0000: Local var 4: System.UInt16
IL_0000: Local var 5: BuildingManager
IL_0000: Local var 6: NetNode/Flags
IL_0000: Local var 7: System.Int32
IL_0000: Local var 8: System.UInt16
IL_0000: // start original
IL_0000: call static InfoManager
ColossalFramework.Singleton`1<InfoManager>::get_instance()
IL_0005: callvirt InfoMode InfoManager::get_CurrentMode()
IL_000A: stloc.0
IL_000B: call static NetManager
ColossalFramework.Singleton`1<NetManager>::get_instance()
IL_0010: stloc.1
IL_0011: ldc.i4.0
IL_0012: stloc.2
IL_0013: ldloc.1
IL_0014: ldfld Array16`1<NetNode> NetManager::m_nodes
IL_0019: ldfld NetNode[] Array16`1<NetNode>::m_buffer
IL_001E: ldarg.1
IL_001F: ldelema NetNode
IL_0024: ldfld Flags NetNode::m_flags
IL_0029: stloc.3
IL_002A: ldarg.1
IL_002B: call static System.Boolean
ElectricRoads.Overrides.ElectricRoadsOverrides::CheckNodeTransition(System.Int32
nodeID)
IL_0030: brfalse => Label0
IL_0035: ldloc.1
IL_0036: ldfld Array16`1<NetNode> NetManager::m_nodes
IL_003B: ldfld NetNode[] Array16`1<NetNode>::m_buffer
IL_0040: ldarg.1
IL_0041: ldelema NetNode
IL_0046: dup
IL_0047: ldfld Flags NetNode::m_flags
IL_004C: ldc.i4 -1048577
IL_0051: and
IL_0052: stfld Flags NetNode::m_flags
IL_0057: br => Label10
IL_005C: Label0
IL_005C: ldloc.1
IL_005D: ldfld Array16`1<NetNode> NetManager::m_nodes
IL_0062: ldfld NetNode[] Array16`1<NetNode>::m_buffer
IL_0067: ldarg.1
IL_0068: ldelema NetNode
IL_006D: ldfld System.UInt16 NetNode::m_building
IL_0072: stloc.s 4 (System.UInt16)
IL_0074: ldloc.s 4 (System.UInt16)
IL_0076: brfalse => Label1
IL_007B: call static BuildingManager
ColossalFramework.Singleton`1<BuildingManager>::get_instance()
IL_0080: stloc.s 5 (BuildingManager)
IL_0082: ldloc.s 5 (BuildingManager)
IL_0084: ldfld Array16`1<Building> BuildingManager::m_buildings
IL_0089: ldfld Building[] Array16`1<Building>::m_buffer
IL_008E: ldloc.s 4 (System.UInt16)
IL_0090: ldelema Building
IL_0095: ldfld System.UInt16 Building::m_electricityBuffer
IL_009A: ldarg.2
IL_009B: beq => Label2
IL_00A0: ldloc.s 5 (BuildingManager)
IL_00A2: ldfld Array16`1<Building> BuildingManager::m_buildings
IL_00A7: ldfld Building[] Array16`1<Building>::m_buffer
IL_00AC: ldloc.s 4 (System.UInt16)
IL_00AE: ldelema Building
IL_00B3: ldarg.2
IL_00B4: conv.u2
IL_00B5: stfld System.UInt16 Building::m_electricityBuffer
IL_00BA: ldloc.0
IL_00BB: ldc.i4.1
IL_00BC: ceq
IL_00BE: stloc.2
IL_00BF: Label2
IL_00BF: ldloc.2
IL_00C0: brfalse => Label3
IL_00C5: ldloc.s 5 (BuildingManager)
IL_00C7: ldloc.s 4 (System.UInt16)
IL_00C9: callvirt System.Void BuildingManager::UpdateBuildingColors(System.UInt16
building)
IL_00CE: Label1
IL_00CE: Label3
IL_00CE: ldloc.3
IL_00CF: ldc.i4 -67108865
IL_00D4: and
IL_00D5: stloc.s 6 (NetNode+Flags)
IL_00D7: ldarg.2
IL_00D8: brfalse => Label4
IL_00DD: ldloc.s 6 (NetNode+Flags)
IL_00DF: ldc.i4 67108864
IL_00E4: or
IL_00E5: stloc.s 6 (NetNode+Flags)
IL_00E7: Label4
IL_00E7: ldloc.s 6 (NetNode+Flags)
IL_00E9: ldloc.3
IL_00EA: beq => Label5
IL_00EF: ldloc.1
IL_00F0: ldfld Array16`1<NetNode> NetManager::m_nodes
IL_00F5: ldfld NetNode[] Array16`1<NetNode>::m_buffer
IL_00FA: ldarg.1
IL_00FB: ldelema NetNode
IL_0100: ldloc.s 6 (NetNode+Flags)
IL_0102: stfld Flags NetNode::m_flags
IL_0107: ldloc.0
IL_0108: ldc.i4.1
IL_0109: ceq
IL_010B: stloc.2
IL_010C: Label5
IL_010C: ldloc.2
IL_010D: brfalse => Label6
IL_0112: ldloc.1
IL_0113: ldarg.1
IL_0114: conv.u2
IL_0115: callvirt System.Void NetManager::UpdateNodeColors(System.UInt16 node)
IL_011A: ldc.i4.0
IL_011B: stloc.s 7 (System.Int32)
IL_011D: br => Label7
IL_0122: Label9
IL_0122: ldloc.1
IL_0123: ldfld Array16`1<NetNode> NetManager::m_nodes
IL_0128: ldfld NetNode[] Array16`1<NetNode>::m_buffer
IL_012D: ldarg.1
IL_012E: ldelema NetNode
IL_0133: ldloc.s 7 (System.Int32)
IL_0135: call System.UInt16 NetNode::GetSegment(System.Int32 index)
IL_013A: stloc.s 8 (System.UInt16)
IL_013C: ldloc.s 8 (System.UInt16)
IL_013E: brfalse => Label8
IL_0143: ldloc.1
IL_0144: ldloc.s 8 (System.UInt16)
IL_0146: callvirt System.Void NetManager::UpdateSegmentColors(System.UInt16
segment)
IL_014B: Label8
IL_014B: ldloc.s 7 (System.Int32)
IL_014D: ldc.i4.1
IL_014E: add
IL_014F: stloc.s 7 (System.Int32)
IL_0151: Label7
IL_0151: ldloc.s 7 (System.Int32)
IL_0153: ldc.i4.8
IL_0154: blt => Label9
IL_0159: // end original
IL_0159: Label6
IL_0159: Label10
IL_0159: ret
DONE

### Patch: static System.Void PropInstance::RenderInstance(CameraInfo cameraInfo,


PropInfo info, InstanceID id, UnityEngine.Vector3 position, System.Single scale,
System.Single angle, UnityEngine.Color color, UnityEngine.Vector4 objectIndex,
System.Boolean active, UnityEngine.Texture heightMap, UnityEngine.Vector4
heightMapping, UnityEngine.Vector4 surfaceMapping, UnityEngine.Texture
waterHeightMap, UnityEngine.Vector4 waterHeightMapping, UnityEngine.Vector4
waterSurfaceMapping)
### Replacement: static System.Void
PropInstance::PropInstance.RenderInstance_Patch0(CameraInfo cameraInfo, PropInfo
info, InstanceID id, UnityEngine.Vector3 position, System.Single scale,
System.Single angle, UnityEngine.Color color, UnityEngine.Vector4 objectIndex,
System.Boolean active, UnityEngine.Texture heightMap, UnityEngine.Vector4
heightMapping, UnityEngine.Vector4 surfaceMapping, UnityEngine.Texture
waterHeightMap, UnityEngine.Vector4 waterHeightMapping, UnityEngine.Vector4
waterSurfaceMapping)
IL_0000: Local var 0: UnityEngine.Matrix4x4
IL_0000: Local var 1: System.Single
IL_0000: Local var 2: System.Int32
IL_0000: Local var 3: UnityEngine.Vector3
IL_0000: Local var 4: UnityEngine.Vector3
IL_0000: Local var 5: EffectInfo/SpawnArea
IL_0000: Local var 6: System.Single
IL_0000: Local var 7: LightSystem
IL_0000: Local var 8: ColossalFramework.Math.Randomizer
IL_0000: Local var 9: UnityEngine.Vector4
IL_0000: Local var 10: System.Single
IL_0000: Local var 11: System.Single
IL_0000: Local var 12: System.Single
IL_0000: Local var 13: UnityEngine.Matrix4x4
IL_0000: Local var 14: PropManager
IL_0000: Local var 15: UnityEngine.MaterialPropertyBlock
IL_0000: Local var 16: System.Int32
IL_0000: // start original
IL_0000: ldarg.1
IL_0001: ldfld System.Boolean PrefabInfo::m_prefabInitialized
IL_0006: brfalse => Label0
IL_000B: ldarg.1
IL_000C: ldfld System.Boolean PropInfo::m_hasEffects
IL_0011: brfalse => Label1
IL_0016: ldarg.s 8
IL_0018: brtrue => Label2
IL_001D: ldarg.1
IL_001E: ldfld System.Boolean PropInfo::m_alwaysActive
IL_0023: brfalse => Label3
IL_0028: Label2
IL_0028: ldloca.s 0 (UnityEngine.Matrix4x4)
IL_002A: initobj UnityEngine.Matrix4x4
IL_0030: ldloca.s 0 (UnityEngine.Matrix4x4)
IL_0032: ldarg.3
IL_0033: ldarg.s 5
IL_0035: ldc.r4 57.29578
IL_003A: mul
IL_003B: call static UnityEngine.Vector3 UnityEngine.Vector3::get_down()
IL_0040: call static UnityEngine.Quaternion
UnityEngine.Quaternion::AngleAxis(System.Single angle, UnityEngine.Vector3 axis)
IL_0045: ldarg.s 4
IL_0047: ldarg.s 4
IL_0049: ldarg.s 4
IL_004B: newobj System.Void UnityEngine.Vector3::.ctor(System.Single x,
System.Single y, System.Single z)
IL_0050: call System.Void UnityEngine.Matrix4x4::SetTRS(UnityEngine.Vector3
pos, UnityEngine.Quaternion q, UnityEngine.Vector3 s)
IL_0055: call static SimulationManager
ColossalFramework.Singleton`1<SimulationManager>::get_instance()
IL_005A: ldfld System.Single SimulationManager::m_simulationTimeDelta
IL_005F: stloc.1
IL_0060: ldc.i4.0
IL_0061: stloc.2
IL_0062: br => Label4
IL_0067: Label5
IL_0067: ldloca.s 0 (UnityEngine.Matrix4x4)
IL_0069: ldarg.1
IL_006A: ldfld Effect[] PropInfo::m_effects
IL_006F: ldloc.2
IL_0070: ldelema PropInfo+Effect
IL_0075: ldfld UnityEngine.Vector3 Effect::m_position
IL_007A: call UnityEngine.Vector3
UnityEngine.Matrix4x4::MultiplyPoint(UnityEngine.Vector3 v)
IL_007F: stloc.3
IL_0080: ldloca.s 0 (UnityEngine.Matrix4x4)
IL_0082: ldarg.1
IL_0083: ldfld Effect[] PropInfo::m_effects
IL_0088: ldloc.2
IL_0089: ldelema PropInfo+Effect
IL_008E: ldfld UnityEngine.Vector3 Effect::m_direction
IL_0093: call UnityEngine.Vector3
UnityEngine.Matrix4x4::MultiplyVector(UnityEngine.Vector3 v)
IL_0098: stloc.s 4 (UnityEngine.Vector3)
IL_009A: ldloca.s 5 (EffectInfo+SpawnArea)
IL_009C: ldloc.3
IL_009D: ldloc.s 4 (UnityEngine.Vector3)
IL_009F: ldc.r4 0
IL_00A4: call System.Void SpawnArea::.ctor(UnityEngine.Vector3 position,
UnityEngine.Vector3 direction, System.Single radius)
IL_00A9: ldarg.1
IL_00AA: ldfld Effect[] PropInfo::m_effects
IL_00AF: ldloc.2
IL_00B0: ldelema PropInfo+Effect
IL_00B5: ldfld EffectInfo Effect::m_effect
IL_00BA: ldarg.2
IL_00BB: ldloc.s 5 (EffectInfo+SpawnArea)
IL_00BD: call static UnityEngine.Vector3 UnityEngine.Vector3::get_zero()
IL_00C2: ldc.r4 0
IL_00C7: ldc.r4 1
IL_00CC: ldc.r4 -1
IL_00D1: ldloc.1
IL_00D2: ldarg.0
IL_00D3: callvirt virtual System.Void EffectInfo::RenderEffect(InstanceID id,
SpawnArea area, UnityEngine.Vector3 velocity, System.Single acceleration,
System.Single magnitude, System.Single timeOffset, System.Single timeDelta,
CameraInfo cameraInfo)
IL_00D8: ldloc.2
IL_00D9: ldc.i4.1
IL_00DA: add
IL_00DB: stloc.2
IL_00DC: Label4
IL_00DC: ldloc.2
IL_00DD: ldarg.1
IL_00DE: ldfld Effect[] PropInfo::m_effects
IL_00E3: ldlen
IL_00E4: conv.i4
IL_00E5: blt => Label5
IL_00EA: Label1
IL_00EA: Label3
IL_00EA: ldarg.1
IL_00EB: ldfld System.Boolean PropInfo::m_hasRenderer
IL_00F0: brfalse => Label6
IL_00F5: ldarg.0
IL_00F6: ldfld System.Int32 CameraInfo::m_layerMask
IL_00FB: ldc.i4.1
IL_00FC: ldarg.1
IL_00FD: ldfld System.Int32 PrefabInfo::m_prefabDataLayer
IL_0102: ldc.i4.s 31
IL_0104: and
IL_0105: shl
IL_0106: and
IL_0107: brfalse => Label7
IL_010C: call static InfoManager
ColossalFramework.Singleton`1<InfoManager>::get_instance()
IL_0111: callvirt InfoMode InfoManager::get_CurrentMode()
IL_0116: brtrue => Label8
IL_011B: ldarg 2
IL_011F: call static System.Boolean
ElectricRoads.Overrides.ElectricRoadsOverrides::CheckElectrityNetForLight(InstanceI
D id)
IL_0124: brfalse => Label24
IL_0129: ldc.r4 0
IL_012E: stloc.s 6 (System.Single)
IL_0130: ldarg.s 8
IL_0132: brtrue => Label9
IL_0137: ldarg.1
IL_0138: ldfld System.Boolean PropInfo::m_alwaysActive
IL_013D: brtrue => Label10
IL_0142: Label24
IL_0142: ldarga.s 7
IL_0144: ldc.r4 0
IL_0149: stfld System.Single UnityEngine.Vector4::z
IL_014E: br => Label11
IL_0153: Label9
IL_0153: Label10
IL_0153: ldarg.1
IL_0154: ldflda UnityEngine.Vector2 PropInfo::m_illuminationOffRange
IL_0159: ldfld System.Single UnityEngine.Vector2::x
IL_015E: ldc.r4 1000
IL_0163: blt => Label12
IL_0168: ldarg.1
IL_0169: ldfld BlinkType PropInfo::m_illuminationBlinkType
IL_016E: brfalse => Label13
IL_0173: Label12
IL_0173: call static RenderManager
ColossalFramework.Singleton`1<RenderManager>::get_instance()
IL_0178: callvirt LightSystem RenderManager::get_lightSystem()
IL_017D: stloc.s 7 (LightSystem)
IL_017F: ldloca.s 8 (ColossalFramework.Math.Randomizer)
IL_0181: ldarga.s 2
IL_0183: call System.UInt32 InstanceID::get_Index()
IL_0188: call System.Void
ColossalFramework.Math.Randomizer::.ctor(System.UInt32 _seed)
IL_018D: ldarg.1
IL_018E: ldflda UnityEngine.Vector2 PropInfo::m_illuminationOffRange
IL_0193: ldfld System.Single UnityEngine.Vector2::x
IL_0198: ldloca.s 8 (ColossalFramework.Math.Randomizer)
IL_019A: ldc.i4 100000
IL_019F: call System.Int32
ColossalFramework.Math.Randomizer::Int32(System.UInt32 range)
IL_01A4: conv.r4
IL_01A5: ldc.r4 1E-05
IL_01AA: mul
IL_01AB: ldarg.1
IL_01AC: ldflda UnityEngine.Vector2 PropInfo::m_illuminationOffRange
IL_01B1: ldfld System.Single UnityEngine.Vector2::y
IL_01B6: ldarg.1
IL_01B7: ldflda UnityEngine.Vector2 PropInfo::m_illuminationOffRange
IL_01BC: ldfld System.Single UnityEngine.Vector2::x
IL_01C1: sub
IL_01C2: mul
IL_01C3: add
IL_01C4: stloc.s 6 (System.Single)
IL_01C6: ldarga.s 7
IL_01C8: ldloc.s 6 (System.Single)
IL_01CA: ldc.r4 0.01
IL_01CF: add
IL_01D0: ldloc.s 6 (System.Single)
IL_01D2: ldc.r4 0.01
IL_01D7: sub
IL_01D8: ldloc.s 7 (LightSystem)
IL_01DA: callvirt System.Single LightSystem::get_DayLightIntensity()
IL_01DF: call static System.Single MathUtils::SmoothStep(System.Single edge0,
System.Single edge1, System.Single x)
IL_01E4: stfld System.Single UnityEngine.Vector4::z
IL_01E9: ldarg.1
IL_01EA: ldfld BlinkType PropInfo::m_illuminationBlinkType
IL_01EF: brfalse => Label14
IL_01F4: ldarg.1
IL_01F5: ldfld BlinkType PropInfo::m_illuminationBlinkType
IL_01FA: call static UnityEngine.Vector4
LightEffect::GetBlinkVector(BlinkType type)
IL_01FF: stloc.s 9 (UnityEngine.Vector4)
IL_0201: ldloc.s 6 (System.Single)
IL_0203: ldc.r4 3.71
IL_0208: mul
IL_0209: call static SimulationManager
ColossalFramework.Singleton`1<SimulationManager>::get_instance()
IL_020E: ldfld System.Single SimulationManager::m_simulationTimer
IL_0213: ldloca.s 9 (UnityEngine.Vector4)
IL_0215: ldfld System.Single UnityEngine.Vector4::w
IL_021A: div
IL_021B: add
IL_021C: stloc.s 10 (System.Single)
IL_021E: ldloc.s 10 (System.Single)
IL_0220: ldloc.s 10 (System.Single)
IL_0222: call static System.Single UnityEngine.Mathf::Floor(System.Single f)
IL_0227: sub
IL_0228: ldloca.s 9 (UnityEngine.Vector4)
IL_022A: ldfld System.Single UnityEngine.Vector4::w
IL_022F: mul
IL_0230: stloc.s 10 (System.Single)
IL_0232: ldloca.s 9 (UnityEngine.Vector4)
IL_0234: ldfld System.Single UnityEngine.Vector4::x
IL_0239: ldloca.s 9 (UnityEngine.Vector4)
IL_023B: ldfld System.Single UnityEngine.Vector4::y
IL_0240: ldloc.s 10 (System.Single)
IL_0242: call static System.Single MathUtils::SmoothStep(System.Single edge0,
System.Single edge1, System.Single x)
IL_0247: stloc.s 11 (System.Single)
IL_0249: ldloca.s 9 (UnityEngine.Vector4)
IL_024B: ldfld System.Single UnityEngine.Vector4::w
IL_0250: ldloca.s 9 (UnityEngine.Vector4)
IL_0252: ldfld System.Single UnityEngine.Vector4::z
IL_0257: ldloc.s 10 (System.Single)
IL_0259: call static System.Single MathUtils::SmoothStep(System.Single edge0,
System.Single edge1, System.Single x)
IL_025E: stloc.s 12 (System.Single)
IL_0260: ldarga.s 7
IL_0262: dup
IL_0263: ldfld System.Single UnityEngine.Vector4::z
IL_0268: ldc.r4 1
IL_026D: ldloc.s 11 (System.Single)
IL_026F: ldloc.s 12 (System.Single)
IL_0271: mul
IL_0272: sub
IL_0273: mul
IL_0274: stfld System.Single UnityEngine.Vector4::z
IL_0279: Label14
IL_0279: br => Label15
IL_027E: Label13
IL_027E: ldarga.s 7
IL_0280: ldc.r4 1
IL_0285: stfld System.Single UnityEngine.Vector4::z
IL_028A: Label8
IL_028A: Label11
IL_028A: Label15
IL_028A: ldarg.0
IL_028B: brfalse => Label16
IL_0290: ldarg.0
IL_0291: ldarg.3
IL_0292: ldarg.1
IL_0293: ldfld System.Single PropInfo::m_lodRenderDistance
IL_0298: callvirt System.Boolean
CameraInfo::CheckRenderDistance(UnityEngine.Vector3 point, System.Single
maxDistance)
IL_029D: brfalse => Label17
IL_02A2: Label16
IL_02A2: ldloca.s 13 (UnityEngine.Matrix4x4)
IL_02A4: initobj UnityEngine.Matrix4x4
IL_02AA: ldloca.s 13 (UnityEngine.Matrix4x4)
IL_02AC: ldarg.3
IL_02AD: ldarg.s 5
IL_02AF: ldc.r4 57.29578
IL_02B4: mul
IL_02B5: call static UnityEngine.Vector3 UnityEngine.Vector3::get_down()
IL_02BA: call static UnityEngine.Quaternion
UnityEngine.Quaternion::AngleAxis(System.Single angle, UnityEngine.Vector3 axis)
IL_02BF: ldarg.s 4
IL_02C1: ldarg.s 4
IL_02C3: ldarg.s 4
IL_02C5: newobj System.Void UnityEngine.Vector3::.ctor(System.Single x,
System.Single y, System.Single z)
IL_02CA: call System.Void UnityEngine.Matrix4x4::SetTRS(UnityEngine.Vector3
pos, UnityEngine.Quaternion q, UnityEngine.Vector3 s)
IL_02CF: call static PropManager
ColossalFramework.Singleton`1<PropManager>::get_instance()
IL_02D4: stloc.s 14 (PropManager)
IL_02D6: ldloc.s 14 (PropManager)
IL_02D8: ldfld UnityEngine.MaterialPropertyBlock PropManager::m_materialBlock
IL_02DD: stloc.s 15 (UnityEngine.MaterialPropertyBlock)
IL_02DF: ldloc.s 15 (UnityEngine.MaterialPropertyBlock)
IL_02E1: callvirt System.Void UnityEngine.MaterialPropertyBlock::Clear()
IL_02E6: ldloc.s 15 (UnityEngine.MaterialPropertyBlock)
IL_02E8: ldloc.s 14 (PropManager)
IL_02EA: ldfld System.Int32 PropManager::ID_Color
IL_02EF: ldarg.s 6
IL_02F1: callvirt System.Void
UnityEngine.MaterialPropertyBlock::SetColor(System.Int32 nameID, UnityEngine.Color
value)
IL_02F6: ldloc.s 15 (UnityEngine.MaterialPropertyBlock)
IL_02F8: ldloc.s 14 (PropManager)
IL_02FA: ldfld System.Int32 PropManager::ID_HeightMap
IL_02FF: ldarg.s 9
IL_0301: callvirt System.Void
UnityEngine.MaterialPropertyBlock::SetTexture(System.Int32 nameID,
UnityEngine.Texture value)
IL_0306: ldloc.s 15 (UnityEngine.MaterialPropertyBlock)
IL_0308: ldloc.s 14 (PropManager)
IL_030A: ldfld System.Int32 PropManager::ID_HeightMapping
IL_030F: ldarg.s 10
IL_0311: callvirt System.Void
UnityEngine.MaterialPropertyBlock::SetVector(System.Int32 nameID,
UnityEngine.Vector4 value)
IL_0316: ldloc.s 15 (UnityEngine.MaterialPropertyBlock)
IL_0318: ldloc.s 14 (PropManager)
IL_031A: ldfld System.Int32 PropManager::ID_SurfaceMapping
IL_031F: ldarg.s 11
IL_0321: callvirt System.Void
UnityEngine.MaterialPropertyBlock::SetVector(System.Int32 nameID,
UnityEngine.Vector4 value)
IL_0326: ldloc.s 15 (UnityEngine.MaterialPropertyBlock)
IL_0328: ldloc.s 14 (PropManager)
IL_032A: ldfld System.Int32 PropManager::ID_ObjectIndex
IL_032F: ldarg.s 7
IL_0331: callvirt System.Void
UnityEngine.MaterialPropertyBlock::SetVector(System.Int32 nameID,
UnityEngine.Vector4 value)
IL_0336: ldloc.s 15 (UnityEngine.MaterialPropertyBlock)
IL_0338: ldloc.s 14 (PropManager)
IL_033A: ldfld System.Int32 PropManager::ID_WaterHeightMap
IL_033F: ldarg.s 12
IL_0341: callvirt System.Void
UnityEngine.MaterialPropertyBlock::SetTexture(System.Int32 nameID,
UnityEngine.Texture value)
IL_0346: ldloc.s 15 (UnityEngine.MaterialPropertyBlock)
IL_0348: ldloc.s 14 (PropManager)
IL_034A: ldfld System.Int32 PropManager::ID_WaterHeightMapping
IL_034F: ldarg.s 13
IL_0351: callvirt System.Void
UnityEngine.MaterialPropertyBlock::SetVector(System.Int32 nameID,
UnityEngine.Vector4 value)
IL_0356: ldloc.s 15 (UnityEngine.MaterialPropertyBlock)
IL_0358: ldloc.s 14 (PropManager)
IL_035A: ldfld System.Int32 PropManager::ID_WaterSurfaceMapping
IL_035F: ldarg.s 14
IL_0361: callvirt System.Void
UnityEngine.MaterialPropertyBlock::SetVector(System.Int32 nameID,
UnityEngine.Vector4 value)
IL_0366: ldarg.1
IL_0367: ldfld UnityEngine.Vector4[] PropInfo::m_rollLocation
IL_036C: brfalse => Label18
IL_0371: ldarg.1
IL_0372: ldfld UnityEngine.Material PropInfo::m_material
IL_0377: ldloc.s 14 (PropManager)
IL_0379: ldfld System.Int32 PropManager::ID_RollLocation
IL_037E: ldarg.1
IL_037F: ldfld UnityEngine.Vector4[] PropInfo::m_rollLocation
IL_0384: callvirt System.Void UnityEngine.Material::SetVectorArray(System.Int32
nameID, UnityEngine.Vector4[] values)
IL_0389: ldarg.1
IL_038A: ldfld UnityEngine.Material PropInfo::m_material
IL_038F: ldloc.s 14 (PropManager)
IL_0391: ldfld System.Int32 PropManager::ID_RollParams
IL_0396: ldarg.1
IL_0397: ldfld UnityEngine.Vector4[] PropInfo::m_rollParams
IL_039C: callvirt System.Void UnityEngine.Material::SetVectorArray(System.Int32
nameID, UnityEngine.Vector4[] values)
IL_03A1: Label18
IL_03A1: ldloc.s 14 (PropManager)
IL_03A3: ldflda DrawCallData SimulationManagerBase`2<PropManager,
PropProperties>::m_drawCallData
IL_03A8: dup
IL_03A9: ldfld System.Int32 DrawCallData::m_defaultCalls
IL_03AE: ldc.i4.1
IL_03AF: add
IL_03B0: stfld System.Int32 DrawCallData::m_defaultCalls
IL_03B5: ldarg.1
IL_03B6: ldfld UnityEngine.Mesh PropInfo::m_mesh
IL_03BB: ldloc.s 13 (UnityEngine.Matrix4x4)
IL_03BD: ldarg.1
IL_03BE: ldfld UnityEngine.Material PropInfo::m_material
IL_03C3: ldarg.1
IL_03C4: ldfld System.Int32 PrefabInfo::m_prefabDataLayer
IL_03C9: ldnull
IL_03CA: ldc.i4.0
IL_03CB: ldloc.s 15 (UnityEngine.MaterialPropertyBlock)
IL_03CD: call static System.Void
UnityEngine.Graphics::DrawMesh(UnityEngine.Mesh mesh, UnityEngine.Matrix4x4 matrix,
UnityEngine.Material material, System.Int32 layer, UnityEngine.Camera camera,
System.Int32 submeshIndex, UnityEngine.MaterialPropertyBlock properties)
IL_03D2: br => Label19
IL_03D7: Label17
IL_03D7: ldarg.s 9
IL_03D9: ldarg.1
IL_03DA: ldfld UnityEngine.Texture PropInfo::m_lodHeightMap
IL_03DF: call static System.Boolean
UnityEngine.Object::op_Inequality(UnityEngine.Object x, UnityEngine.Object y)
IL_03E4: brtrue => Label20
IL_03E9: ldarg.s 12
IL_03EB: ldarg.1
IL_03EC: ldfld UnityEngine.Texture PropInfo::m_lodWaterHeightMap
IL_03F1: call static System.Boolean
UnityEngine.Object::op_Inequality(UnityEngine.Object x, UnityEngine.Object y)
IL_03F6: brfalse => Label21
IL_03FB: Label20
IL_03FB: ldarg.1
IL_03FC: ldfld System.Int32 PropInfo::m_lodCount
IL_0401: brfalse => Label22
IL_0406: ldarg.0
IL_0407: ldarg.1
IL_0408: call static System.Void PropInstance::RenderLod(CameraInfo
cameraInfo, PropInfo info)
IL_040D: Label22
IL_040D: ldarg.1
IL_040E: ldarg.s 9
IL_0410: stfld UnityEngine.Texture PropInfo::m_lodHeightMap
IL_0415: ldarg.1
IL_0416: ldarg.s 10
IL_0418: stfld UnityEngine.Vector4 PropInfo::m_lodHeightMapping
IL_041D: ldarg.1
IL_041E: ldarg.s 11
IL_0420: stfld UnityEngine.Vector4 PropInfo::m_lodSurfaceMapping
IL_0425: ldarg.1
IL_0426: ldarg.s 12
IL_0428: stfld UnityEngine.Texture PropInfo::m_lodWaterHeightMap
IL_042D: ldarg.1
IL_042E: ldarg.s 13
IL_0430: stfld UnityEngine.Vector4 PropInfo::m_lodWaterHeightMapping
IL_0435: ldarg.1
IL_0436: ldarg.s 14
IL_0438: stfld UnityEngine.Vector4 PropInfo::m_lodWaterSurfaceMapping
IL_043D: Label21
IL_043D: ldarga.s 7
IL_043F: ldarg.s 4
IL_0441: stfld System.Single UnityEngine.Vector4::w
IL_0446: ldarg.1
IL_0447: ldfld UnityEngine.Vector4[] PropInfo::m_lodLocations
IL_044C: ldarg.1
IL_044D: ldfld System.Int32 PropInfo::m_lodCount
IL_0452: ldelema UnityEngine.Vector4
IL_0457: ldarga.s 3
IL_0459: ldfld System.Single UnityEngine.Vector3::x
IL_045E: ldarga.s 3
IL_0460: ldfld System.Single UnityEngine.Vector3::y
IL_0465: ldarga.s 3
IL_0467: ldfld System.Single UnityEngine.Vector3::z
IL_046C: ldarg.s 5
IL_046E: newobj System.Void UnityEngine.Vector4::.ctor(System.Single x,
System.Single y, System.Single z, System.Single w)
IL_0473: stobj UnityEngine.Vector4
IL_0478: ldarg.1
IL_0479: ldfld UnityEngine.Vector4[] PropInfo::m_lodObjectIndices
IL_047E: ldarg.1
IL_047F: ldfld System.Int32 PropInfo::m_lodCount
IL_0484: ldelema UnityEngine.Vector4
IL_0489: ldarg.s 7
IL_048B: stobj UnityEngine.Vector4
IL_0490: ldarg.1
IL_0491: ldfld UnityEngine.Vector4[] PropInfo::m_lodColors
IL_0496: ldarg.1
IL_0497: ldfld System.Int32 PropInfo::m_lodCount
IL_049C: ldelema UnityEngine.Vector4
IL_04A1: ldarga.s 6
IL_04A3: call UnityEngine.Color UnityEngine.Color::get_linear()
IL_04A8: call static UnityEngine.Vector4
UnityEngine.Color::op_Implicit(UnityEngine.Color c)
IL_04AD: stobj UnityEngine.Vector4
IL_04B2: ldarg.1
IL_04B3: ldarg.1
IL_04B4: ldfld UnityEngine.Vector3 PropInfo::m_lodMin
IL_04B9: ldarg.3
IL_04BA: call static UnityEngine.Vector3
UnityEngine.Vector3::Min(UnityEngine.Vector3 lhs, UnityEngine.Vector3 rhs)
IL_04BF: stfld UnityEngine.Vector3 PropInfo::m_lodMin
IL_04C4: ldarg.1
IL_04C5: ldarg.1
IL_04C6: ldfld UnityEngine.Vector3 PropInfo::m_lodMax
IL_04CB: ldarg.3
IL_04CC: call static UnityEngine.Vector3
UnityEngine.Vector3::Max(UnityEngine.Vector3 lhs, UnityEngine.Vector3 rhs)
IL_04D1: stfld UnityEngine.Vector3 PropInfo::m_lodMax
IL_04D6: ldarg.1
IL_04D7: dup
IL_04D8: ldfld System.Int32 PropInfo::m_lodCount
IL_04DD: ldc.i4.1
IL_04DE: add
IL_04DF: dup
IL_04E0: stloc.s 16 (System.Int32)
IL_04E2: stfld System.Int32 PropInfo::m_lodCount
IL_04E7: ldloc.s 16 (System.Int32)
IL_04E9: ldarg.1
IL_04EA: ldfld UnityEngine.Vector4[] PropInfo::m_lodLocations
IL_04EF: ldlen
IL_04F0: conv.i4
IL_04F1: bne.un => Label23
IL_04F6: ldarg.0
IL_04F7: ldarg.1
IL_04F8: call static System.Void PropInstance::RenderLod(CameraInfo
cameraInfo, PropInfo info)
IL_04FD: // end original
IL_04FD: Label0
IL_04FD: Label6
IL_04FD: Label7
IL_04FD: Label19
IL_04FD: Label23
IL_04FD: ret
DONE

### Patch: static System.Void PropInstance::RenderInstance(CameraInfo cameraInfo,


PropInfo info, InstanceID id, UnityEngine.Vector3 position, System.Single scale,
System.Single angle, UnityEngine.Color color, UnityEngine.Vector4 objectIndex,
System.Boolean active)
### Replacement: static System.Void
PropInstance::PropInstance.RenderInstance_Patch0(CameraInfo cameraInfo, PropInfo
info, InstanceID id, UnityEngine.Vector3 position, System.Single scale,
System.Single angle, UnityEngine.Color color, UnityEngine.Vector4 objectIndex,
System.Boolean active)
IL_0000: Local var 0: UnityEngine.Matrix4x4
IL_0000: Local var 1: System.Single
IL_0000: Local var 2: System.Int32
IL_0000: Local var 3: UnityEngine.Vector3
IL_0000: Local var 4: UnityEngine.Vector3
IL_0000: Local var 5: EffectInfo/SpawnArea
IL_0000: Local var 6: System.Single
IL_0000: Local var 7: LightSystem
IL_0000: Local var 8: ColossalFramework.Math.Randomizer
IL_0000: Local var 9: UnityEngine.Vector4
IL_0000: Local var 10: System.Single
IL_0000: Local var 11: System.Single
IL_0000: Local var 12: System.Single
IL_0000: Local var 13: UnityEngine.Matrix4x4
IL_0000: Local var 14: PropManager
IL_0000: Local var 15: UnityEngine.MaterialPropertyBlock
IL_0000: Local var 16: UnityEngine.Matrix4x4
IL_0000: Local var 17: PropManager
IL_0000: Local var 18: UnityEngine.MaterialPropertyBlock
IL_0000: Local var 19: System.Int32
IL_0000: // start original
IL_0000: ldarg.1
IL_0001: ldfld System.Boolean PrefabInfo::m_prefabInitialized
IL_0006: brfalse => Label0
IL_000B: ldarg.1
IL_000C: ldfld System.Boolean PropInfo::m_hasEffects
IL_0011: brfalse => Label1
IL_0016: ldarg.s 8
IL_0018: brtrue => Label2
IL_001D: ldarg.1
IL_001E: ldfld System.Boolean PropInfo::m_alwaysActive
IL_0023: brfalse => Label3
IL_0028: Label2
IL_0028: ldloca.s 0 (UnityEngine.Matrix4x4)
IL_002A: initobj UnityEngine.Matrix4x4
IL_0030: ldloca.s 0 (UnityEngine.Matrix4x4)
IL_0032: ldarg.3
IL_0033: ldarg.s 5
IL_0035: ldc.r4 57.29578
IL_003A: mul
IL_003B: call static UnityEngine.Vector3 UnityEngine.Vector3::get_down()
IL_0040: call static UnityEngine.Quaternion
UnityEngine.Quaternion::AngleAxis(System.Single angle, UnityEngine.Vector3 axis)
IL_0045: ldarg.s 4
IL_0047: ldarg.s 4
IL_0049: ldarg.s 4
IL_004B: newobj System.Void UnityEngine.Vector3::.ctor(System.Single x,
System.Single y, System.Single z)
IL_0050: call System.Void UnityEngine.Matrix4x4::SetTRS(UnityEngine.Vector3
pos, UnityEngine.Quaternion q, UnityEngine.Vector3 s)
IL_0055: call static SimulationManager
ColossalFramework.Singleton`1<SimulationManager>::get_instance()
IL_005A: ldfld System.Single SimulationManager::m_simulationTimeDelta
IL_005F: stloc.1
IL_0060: ldc.i4.0
IL_0061: stloc.2
IL_0062: br => Label4
IL_0067: Label5
IL_0067: ldloca.s 0 (UnityEngine.Matrix4x4)
IL_0069: ldarg.1
IL_006A: ldfld Effect[] PropInfo::m_effects
IL_006F: ldloc.2
IL_0070: ldelema PropInfo+Effect
IL_0075: ldfld UnityEngine.Vector3 Effect::m_position
IL_007A: call UnityEngine.Vector3
UnityEngine.Matrix4x4::MultiplyPoint(UnityEngine.Vector3 v)
IL_007F: stloc.3
IL_0080: ldloca.s 0 (UnityEngine.Matrix4x4)
IL_0082: ldarg.1
IL_0083: ldfld Effect[] PropInfo::m_effects
IL_0088: ldloc.2
IL_0089: ldelema PropInfo+Effect
IL_008E: ldfld UnityEngine.Vector3 Effect::m_direction
IL_0093: call UnityEngine.Vector3
UnityEngine.Matrix4x4::MultiplyVector(UnityEngine.Vector3 v)
IL_0098: stloc.s 4 (UnityEngine.Vector3)
IL_009A: ldloca.s 5 (EffectInfo+SpawnArea)
IL_009C: ldloc.3
IL_009D: ldloc.s 4 (UnityEngine.Vector3)
IL_009F: ldc.r4 0
IL_00A4: call System.Void SpawnArea::.ctor(UnityEngine.Vector3 position,
UnityEngine.Vector3 direction, System.Single radius)
IL_00A9: ldarg.1
IL_00AA: ldfld Effect[] PropInfo::m_effects
IL_00AF: ldloc.2
IL_00B0: ldelema PropInfo+Effect
IL_00B5: ldfld EffectInfo Effect::m_effect
IL_00BA: ldarg.2
IL_00BB: ldloc.s 5 (EffectInfo+SpawnArea)
IL_00BD: call static UnityEngine.Vector3 UnityEngine.Vector3::get_zero()
IL_00C2: ldc.r4 0
IL_00C7: ldc.r4 1
IL_00CC: ldc.r4 -1
IL_00D1: ldloc.1
IL_00D2: ldarg.0
IL_00D3: callvirt virtual System.Void EffectInfo::RenderEffect(InstanceID id,
SpawnArea area, UnityEngine.Vector3 velocity, System.Single acceleration,
System.Single magnitude, System.Single timeOffset, System.Single timeDelta,
CameraInfo cameraInfo)
IL_00D8: ldloc.2
IL_00D9: ldc.i4.1
IL_00DA: add
IL_00DB: stloc.2
IL_00DC: Label4
IL_00DC: ldloc.2
IL_00DD: ldarg.1
IL_00DE: ldfld Effect[] PropInfo::m_effects
IL_00E3: ldlen
IL_00E4: conv.i4
IL_00E5: blt => Label5
IL_00EA: Label1
IL_00EA: Label3
IL_00EA: ldarg.1
IL_00EB: ldfld System.Boolean PropInfo::m_hasRenderer
IL_00F0: brfalse => Label6
IL_00F5: ldarg.0
IL_00F6: ldfld System.Int32 CameraInfo::m_layerMask
IL_00FB: ldc.i4.1
IL_00FC: ldarg.1
IL_00FD: ldfld System.Int32 PrefabInfo::m_prefabDataLayer
IL_0102: ldc.i4.s 31
IL_0104: and
IL_0105: shl
IL_0106: and
IL_0107: brfalse => Label7
IL_010C: call static InfoManager
ColossalFramework.Singleton`1<InfoManager>::get_instance()
IL_0111: callvirt InfoMode InfoManager::get_CurrentMode()
IL_0116: brtrue => Label8
IL_011B: ldarg 2
IL_011F: call static System.Boolean
ElectricRoads.Overrides.ElectricRoadsOverrides::CheckElectrityNetForLight(InstanceI
D id)
IL_0124: brfalse => Label24
IL_0129: ldc.r4 0
IL_012E: stloc.s 6 (System.Single)
IL_0130: ldarg.s 8
IL_0132: brtrue => Label9
IL_0137: ldarg.1
IL_0138: ldfld System.Boolean PropInfo::m_alwaysActive
IL_013D: brtrue => Label10
IL_0142: Label24
IL_0142: ldarga.s 7
IL_0144: ldc.r4 0
IL_0149: stfld System.Single UnityEngine.Vector4::z
IL_014E: br => Label11
IL_0153: Label9
IL_0153: Label10
IL_0153: ldarg.1
IL_0154: ldflda UnityEngine.Vector2 PropInfo::m_illuminationOffRange
IL_0159: ldfld System.Single UnityEngine.Vector2::x
IL_015E: ldc.r4 1000
IL_0163: blt => Label12
IL_0168: ldarg.1
IL_0169: ldfld BlinkType PropInfo::m_illuminationBlinkType
IL_016E: brfalse => Label13
IL_0173: Label12
IL_0173: call static RenderManager
ColossalFramework.Singleton`1<RenderManager>::get_instance()
IL_0178: callvirt LightSystem RenderManager::get_lightSystem()
IL_017D: stloc.s 7 (LightSystem)
IL_017F: ldloca.s 8 (ColossalFramework.Math.Randomizer)
IL_0181: ldarga.s 2
IL_0183: call System.UInt32 InstanceID::get_Index()
IL_0188: call System.Void
ColossalFramework.Math.Randomizer::.ctor(System.UInt32 _seed)
IL_018D: ldarg.1
IL_018E: ldflda UnityEngine.Vector2 PropInfo::m_illuminationOffRange
IL_0193: ldfld System.Single UnityEngine.Vector2::x
IL_0198: ldloca.s 8 (ColossalFramework.Math.Randomizer)
IL_019A: ldc.i4 100000
IL_019F: call System.Int32
ColossalFramework.Math.Randomizer::Int32(System.UInt32 range)
IL_01A4: conv.r4
IL_01A5: ldc.r4 1E-05
IL_01AA: mul
IL_01AB: ldarg.1
IL_01AC: ldflda UnityEngine.Vector2 PropInfo::m_illuminationOffRange
IL_01B1: ldfld System.Single UnityEngine.Vector2::y
IL_01B6: ldarg.1
IL_01B7: ldflda UnityEngine.Vector2 PropInfo::m_illuminationOffRange
IL_01BC: ldfld System.Single UnityEngine.Vector2::x
IL_01C1: sub
IL_01C2: mul
IL_01C3: add
IL_01C4: stloc.s 6 (System.Single)
IL_01C6: ldarga.s 7
IL_01C8: ldloc.s 6 (System.Single)
IL_01CA: ldc.r4 0.01
IL_01CF: add
IL_01D0: ldloc.s 6 (System.Single)
IL_01D2: ldc.r4 0.01
IL_01D7: sub
IL_01D8: ldloc.s 7 (LightSystem)
IL_01DA: callvirt System.Single LightSystem::get_DayLightIntensity()
IL_01DF: call static System.Single MathUtils::SmoothStep(System.Single edge0,
System.Single edge1, System.Single x)
IL_01E4: stfld System.Single UnityEngine.Vector4::z
IL_01E9: ldarg.1
IL_01EA: ldfld BlinkType PropInfo::m_illuminationBlinkType
IL_01EF: brfalse => Label14
IL_01F4: ldarg.1
IL_01F5: ldfld BlinkType PropInfo::m_illuminationBlinkType
IL_01FA: call static UnityEngine.Vector4
LightEffect::GetBlinkVector(BlinkType type)
IL_01FF: stloc.s 9 (UnityEngine.Vector4)
IL_0201: ldloc.s 6 (System.Single)
IL_0203: ldc.r4 3.71
IL_0208: mul
IL_0209: call static SimulationManager
ColossalFramework.Singleton`1<SimulationManager>::get_instance()
IL_020E: ldfld System.Single SimulationManager::m_simulationTimer
IL_0213: ldloca.s 9 (UnityEngine.Vector4)
IL_0215: ldfld System.Single UnityEngine.Vector4::w
IL_021A: div
IL_021B: add
IL_021C: stloc.s 10 (System.Single)
IL_021E: ldloc.s 10 (System.Single)
IL_0220: ldloc.s 10 (System.Single)
IL_0222: call static System.Single UnityEngine.Mathf::Floor(System.Single f)
IL_0227: sub
IL_0228: ldloca.s 9 (UnityEngine.Vector4)
IL_022A: ldfld System.Single UnityEngine.Vector4::w
IL_022F: mul
IL_0230: stloc.s 10 (System.Single)
IL_0232: ldloca.s 9 (UnityEngine.Vector4)
IL_0234: ldfld System.Single UnityEngine.Vector4::x
IL_0239: ldloca.s 9 (UnityEngine.Vector4)
IL_023B: ldfld System.Single UnityEngine.Vector4::y
IL_0240: ldloc.s 10 (System.Single)
IL_0242: call static System.Single MathUtils::SmoothStep(System.Single edge0,
System.Single edge1, System.Single x)
IL_0247: stloc.s 11 (System.Single)
IL_0249: ldloca.s 9 (UnityEngine.Vector4)
IL_024B: ldfld System.Single UnityEngine.Vector4::w
IL_0250: ldloca.s 9 (UnityEngine.Vector4)
IL_0252: ldfld System.Single UnityEngine.Vector4::z
IL_0257: ldloc.s 10 (System.Single)
IL_0259: call static System.Single MathUtils::SmoothStep(System.Single edge0,
System.Single edge1, System.Single x)
IL_025E: stloc.s 12 (System.Single)
IL_0260: ldarga.s 7
IL_0262: dup
IL_0263: ldfld System.Single UnityEngine.Vector4::z
IL_0268: ldc.r4 1
IL_026D: ldloc.s 11 (System.Single)
IL_026F: ldloc.s 12 (System.Single)
IL_0271: mul
IL_0272: sub
IL_0273: mul
IL_0274: stfld System.Single UnityEngine.Vector4::z
IL_0279: Label14
IL_0279: br => Label15
IL_027E: Label13
IL_027E: ldarga.s 7
IL_0280: ldc.r4 1
IL_0285: stfld System.Single UnityEngine.Vector4::z
IL_028A: Label8
IL_028A: Label11
IL_028A: Label15
IL_028A: ldarg.0
IL_028B: brfalse => Label16
IL_0290: ldarg.0
IL_0291: ldarg.3
IL_0292: ldarg.1
IL_0293: ldfld System.Single PropInfo::m_lodRenderDistance
IL_0298: callvirt System.Boolean
CameraInfo::CheckRenderDistance(UnityEngine.Vector3 point, System.Single
maxDistance)
IL_029D: brfalse => Label17
IL_02A2: Label16
IL_02A2: ldloca.s 13 (UnityEngine.Matrix4x4)
IL_02A4: initobj UnityEngine.Matrix4x4
IL_02AA: ldloca.s 13 (UnityEngine.Matrix4x4)
IL_02AC: ldarg.3
IL_02AD: ldarg.s 5
IL_02AF: ldc.r4 57.29578
IL_02B4: mul
IL_02B5: call static UnityEngine.Vector3 UnityEngine.Vector3::get_down()
IL_02BA: call static UnityEngine.Quaternion
UnityEngine.Quaternion::AngleAxis(System.Single angle, UnityEngine.Vector3 axis)
IL_02BF: ldarg.s 4
IL_02C1: ldarg.s 4
IL_02C3: ldarg.s 4
IL_02C5: newobj System.Void UnityEngine.Vector3::.ctor(System.Single x,
System.Single y, System.Single z)
IL_02CA: call System.Void UnityEngine.Matrix4x4::SetTRS(UnityEngine.Vector3
pos, UnityEngine.Quaternion q, UnityEngine.Vector3 s)
IL_02CF: call static PropManager
ColossalFramework.Singleton`1<PropManager>::get_instance()
IL_02D4: stloc.s 14 (PropManager)
IL_02D6: ldloc.s 14 (PropManager)
IL_02D8: ldfld UnityEngine.MaterialPropertyBlock PropManager::m_materialBlock
IL_02DD: stloc.s 15 (UnityEngine.MaterialPropertyBlock)
IL_02DF: ldloc.s 15 (UnityEngine.MaterialPropertyBlock)
IL_02E1: callvirt System.Void UnityEngine.MaterialPropertyBlock::Clear()
IL_02E6: ldloc.s 15 (UnityEngine.MaterialPropertyBlock)
IL_02E8: ldloc.s 14 (PropManager)
IL_02EA: ldfld System.Int32 PropManager::ID_Color
IL_02EF: ldarg.s 6
IL_02F1: callvirt System.Void
UnityEngine.MaterialPropertyBlock::SetColor(System.Int32 nameID, UnityEngine.Color
value)
IL_02F6: ldloc.s 15 (UnityEngine.MaterialPropertyBlock)
IL_02F8: ldloc.s 14 (PropManager)
IL_02FA: ldfld System.Int32 PropManager::ID_ObjectIndex
IL_02FF: ldarg.s 7
IL_0301: callvirt System.Void
UnityEngine.MaterialPropertyBlock::SetVector(System.Int32 nameID,
UnityEngine.Vector4 value)
IL_0306: ldarg.1
IL_0307: ldfld UnityEngine.Vector4[] PropInfo::m_rollLocation
IL_030C: brfalse => Label18
IL_0311: ldarg.1
IL_0312: ldfld UnityEngine.Material PropInfo::m_material
IL_0317: ldloc.s 14 (PropManager)
IL_0319: ldfld System.Int32 PropManager::ID_RollLocation
IL_031E: ldarg.1
IL_031F: ldfld UnityEngine.Vector4[] PropInfo::m_rollLocation
IL_0324: callvirt System.Void UnityEngine.Material::SetVectorArray(System.Int32
nameID, UnityEngine.Vector4[] values)
IL_0329: ldarg.1
IL_032A: ldfld UnityEngine.Material PropInfo::m_material
IL_032F: ldloc.s 14 (PropManager)
IL_0331: ldfld System.Int32 PropManager::ID_RollParams
IL_0336: ldarg.1
IL_0337: ldfld UnityEngine.Vector4[] PropInfo::m_rollParams
IL_033C: callvirt System.Void UnityEngine.Material::SetVectorArray(System.Int32
nameID, UnityEngine.Vector4[] values)
IL_0341: Label18
IL_0341: ldloc.s 14 (PropManager)
IL_0343: ldflda DrawCallData SimulationManagerBase`2<PropManager,
PropProperties>::m_drawCallData
IL_0348: dup
IL_0349: ldfld System.Int32 DrawCallData::m_defaultCalls
IL_034E: ldc.i4.1
IL_034F: add
IL_0350: stfld System.Int32 DrawCallData::m_defaultCalls
IL_0355: ldarg.1
IL_0356: ldfld UnityEngine.Mesh PropInfo::m_mesh
IL_035B: ldloc.s 13 (UnityEngine.Matrix4x4)
IL_035D: ldarg.1
IL_035E: ldfld UnityEngine.Material PropInfo::m_material
IL_0363: ldarg.1
IL_0364: ldfld System.Int32 PrefabInfo::m_prefabDataLayer
IL_0369: ldnull
IL_036A: ldc.i4.0
IL_036B: ldloc.s 15 (UnityEngine.MaterialPropertyBlock)
IL_036D: call static System.Void
UnityEngine.Graphics::DrawMesh(UnityEngine.Mesh mesh, UnityEngine.Matrix4x4 matrix,
UnityEngine.Material material, System.Int32 layer, UnityEngine.Camera camera,
System.Int32 submeshIndex, UnityEngine.MaterialPropertyBlock properties)
IL_0372: br => Label19
IL_0377: Label17
IL_0377: ldarg.1
IL_0378: ldfld UnityEngine.Material PropInfo::m_lodMaterialCombined
IL_037D: ldnull
IL_037E: call static System.Boolean
UnityEngine.Object::op_Equality(UnityEngine.Object x, UnityEngine.Object y)
IL_0383: brfalse => Label20
IL_0388: ldloca.s 16 (UnityEngine.Matrix4x4)
IL_038A: initobj UnityEngine.Matrix4x4
IL_0390: ldloca.s 16 (UnityEngine.Matrix4x4)
IL_0392: ldarg.3
IL_0393: ldarg.s 5
IL_0395: ldc.r4 57.29578
IL_039A: mul
IL_039B: call static UnityEngine.Vector3 UnityEngine.Vector3::get_down()
IL_03A0: call static UnityEngine.Quaternion
UnityEngine.Quaternion::AngleAxis(System.Single angle, UnityEngine.Vector3 axis)
IL_03A5: ldarg.s 4
IL_03A7: ldarg.s 4
IL_03A9: ldarg.s 4
IL_03AB: newobj System.Void UnityEngine.Vector3::.ctor(System.Single x,
System.Single y, System.Single z)
IL_03B0: call System.Void UnityEngine.Matrix4x4::SetTRS(UnityEngine.Vector3
pos, UnityEngine.Quaternion q, UnityEngine.Vector3 s)
IL_03B5: call static PropManager
ColossalFramework.Singleton`1<PropManager>::get_instance()
IL_03BA: stloc.s 17 (PropManager)
IL_03BC: ldloc.s 17 (PropManager)
IL_03BE: ldfld UnityEngine.MaterialPropertyBlock PropManager::m_materialBlock
IL_03C3: stloc.s 18 (UnityEngine.MaterialPropertyBlock)
IL_03C5: ldloc.s 18 (UnityEngine.MaterialPropertyBlock)
IL_03C7: callvirt System.Void UnityEngine.MaterialPropertyBlock::Clear()
IL_03CC: ldloc.s 18 (UnityEngine.MaterialPropertyBlock)
IL_03CE: ldloc.s 17 (PropManager)
IL_03D0: ldfld System.Int32 PropManager::ID_Color
IL_03D5: ldarg.s 6
IL_03D7: callvirt System.Void
UnityEngine.MaterialPropertyBlock::SetColor(System.Int32 nameID, UnityEngine.Color
value)
IL_03DC: ldloc.s 18 (UnityEngine.MaterialPropertyBlock)
IL_03DE: ldloc.s 17 (PropManager)
IL_03E0: ldfld System.Int32 PropManager::ID_ObjectIndex
IL_03E5: ldarg.s 7
IL_03E7: callvirt System.Void
UnityEngine.MaterialPropertyBlock::SetVector(System.Int32 nameID,
UnityEngine.Vector4 value)
IL_03EC: ldarg.1
IL_03ED: ldfld UnityEngine.Vector4[] PropInfo::m_rollLocation
IL_03F2: brfalse => Label21
IL_03F7: ldarg.1
IL_03F8: ldfld UnityEngine.Material PropInfo::m_material
IL_03FD: ldloc.s 17 (PropManager)
IL_03FF: ldfld System.Int32 PropManager::ID_RollLocation
IL_0404: ldarg.1
IL_0405: ldfld UnityEngine.Vector4[] PropInfo::m_rollLocation
IL_040A: callvirt System.Void UnityEngine.Material::SetVectorArray(System.Int32
nameID, UnityEngine.Vector4[] values)
IL_040F: ldarg.1
IL_0410: ldfld UnityEngine.Material PropInfo::m_material
IL_0415: ldloc.s 17 (PropManager)
IL_0417: ldfld System.Int32 PropManager::ID_RollParams
IL_041C: ldarg.1
IL_041D: ldfld UnityEngine.Vector4[] PropInfo::m_rollParams
IL_0422: callvirt System.Void UnityEngine.Material::SetVectorArray(System.Int32
nameID, UnityEngine.Vector4[] values)
IL_0427: Label21
IL_0427: ldloc.s 17 (PropManager)
IL_0429: ldflda DrawCallData SimulationManagerBase`2<PropManager,
PropProperties>::m_drawCallData
IL_042E: dup
IL_042F: ldfld System.Int32 DrawCallData::m_defaultCalls
IL_0434: ldc.i4.1
IL_0435: add
IL_0436: stfld System.Int32 DrawCallData::m_defaultCalls
IL_043B: ldarg.1
IL_043C: ldfld UnityEngine.Mesh PropInfo::m_lodMesh
IL_0441: ldloc.s 16 (UnityEngine.Matrix4x4)
IL_0443: ldarg.1
IL_0444: ldfld UnityEngine.Material PropInfo::m_lodMaterial
IL_0449: ldarg.1
IL_044A: ldfld System.Int32 PrefabInfo::m_prefabDataLayer
IL_044F: ldnull
IL_0450: ldc.i4.0
IL_0451: ldloc.s 18 (UnityEngine.MaterialPropertyBlock)
IL_0453: call static System.Void
UnityEngine.Graphics::DrawMesh(UnityEngine.Mesh mesh, UnityEngine.Matrix4x4 matrix,
UnityEngine.Material material, System.Int32 layer, UnityEngine.Camera camera,
System.Int32 submeshIndex, UnityEngine.MaterialPropertyBlock properties)
IL_0458: br => Label22
IL_045D: Label20
IL_045D: ldarga.s 7
IL_045F: ldarg.s 4
IL_0461: stfld System.Single UnityEngine.Vector4::w
IL_0466: ldarg.1
IL_0467: ldfld UnityEngine.Vector4[] PropInfo::m_lodLocations
IL_046C: ldarg.1
IL_046D: ldfld System.Int32 PropInfo::m_lodCount
IL_0472: ldelema UnityEngine.Vector4
IL_0477: ldarga.s 3
IL_0479: ldfld System.Single UnityEngine.Vector3::x
IL_047E: ldarga.s 3
IL_0480: ldfld System.Single UnityEngine.Vector3::y
IL_0485: ldarga.s 3
IL_0487: ldfld System.Single UnityEngine.Vector3::z
IL_048C: ldarg.s 5
IL_048E: newobj System.Void UnityEngine.Vector4::.ctor(System.Single x,
System.Single y, System.Single z, System.Single w)
IL_0493: stobj UnityEngine.Vector4
IL_0498: ldarg.1
IL_0499: ldfld UnityEngine.Vector4[] PropInfo::m_lodObjectIndices
IL_049E: ldarg.1
IL_049F: ldfld System.Int32 PropInfo::m_lodCount
IL_04A4: ldelema UnityEngine.Vector4
IL_04A9: ldarg.s 7
IL_04AB: stobj UnityEngine.Vector4
IL_04B0: ldarg.1
IL_04B1: ldfld UnityEngine.Vector4[] PropInfo::m_lodColors
IL_04B6: ldarg.1
IL_04B7: ldfld System.Int32 PropInfo::m_lodCount
IL_04BC: ldelema UnityEngine.Vector4
IL_04C1: ldarga.s 6
IL_04C3: call UnityEngine.Color UnityEngine.Color::get_linear()
IL_04C8: call static UnityEngine.Vector4
UnityEngine.Color::op_Implicit(UnityEngine.Color c)
IL_04CD: stobj UnityEngine.Vector4
IL_04D2: ldarg.1
IL_04D3: ldarg.1
IL_04D4: ldfld UnityEngine.Vector3 PropInfo::m_lodMin
IL_04D9: ldarg.3
IL_04DA: call static UnityEngine.Vector3
UnityEngine.Vector3::Min(UnityEngine.Vector3 lhs, UnityEngine.Vector3 rhs)
IL_04DF: stfld UnityEngine.Vector3 PropInfo::m_lodMin
IL_04E4: ldarg.1
IL_04E5: ldarg.1
IL_04E6: ldfld UnityEngine.Vector3 PropInfo::m_lodMax
IL_04EB: ldarg.3
IL_04EC: call static UnityEngine.Vector3
UnityEngine.Vector3::Max(UnityEngine.Vector3 lhs, UnityEngine.Vector3 rhs)
IL_04F1: stfld UnityEngine.Vector3 PropInfo::m_lodMax
IL_04F6: ldarg.1
IL_04F7: dup
IL_04F8: ldfld System.Int32 PropInfo::m_lodCount
IL_04FD: ldc.i4.1
IL_04FE: add
IL_04FF: dup
IL_0500: stloc.s 19 (System.Int32)
IL_0502: stfld System.Int32 PropInfo::m_lodCount
IL_0507: ldloc.s 19 (System.Int32)
IL_0509: ldarg.1
IL_050A: ldfld UnityEngine.Vector4[] PropInfo::m_lodLocations
IL_050F: ldlen
IL_0510: conv.i4
IL_0511: bne.un => Label23
IL_0516: ldarg.0
IL_0517: ldarg.1
IL_0518: call static System.Void PropInstance::RenderLod(CameraInfo
cameraInfo, PropInfo info)
IL_051D: // end original
IL_051D: Label0
IL_051D: Label6
IL_051D: Label7
IL_051D: Label19
IL_051D: Label22
IL_051D: Label23
IL_051D: ret
DONE

### Patch: virtual System.Void LightEffect::PopulateGroupData(System.Int32 layer,


InstanceID id, UnityEngine.Vector3 pos, UnityEngine.Vector3 dir, 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
LightEffect::LightEffect.PopulateGroupData_Patch1(LightEffect this, System.Int32
layer, InstanceID id, UnityEngine.Vector3 pos, UnityEngine.Vector3 dir,
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.Boolean
IL_0000: Local var 1: UnityEngine.Vector3
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.Quaternion
IL_0000: Local var 7: UnityEngine.Vector4
IL_0000: Local var 8: UnityEngine.Vector2
IL_0000: Local var 9: ColossalFramework.Math.Randomizer
IL_0000: Local var 10: UnityEngine.Vector2
IL_0000: Local var 11: UnityEngine.Vector2
IL_0000: Local var 12: UnityEngine.Vector2
IL_0000: Local var 13: System.UInt16
IL_0000: Local var 14: UnityEngine.Vector3
IL_0000: Local var 15: UnityEngine.Color
IL_0000: Local var 16: UnityEngine.Color
IL_0000: Local var 17: System.Single
IL_0000: Local var 18: System.Single
IL_0000: Local var 19: System.Int32
IL_0000: Local var 20: System.Boolean
IL_0000: ldc.i4 0
IL_0005: stloc 20 (System.Boolean)
IL_0009: ldc.i4.1
IL_000A: stloc 20 (System.Boolean)
IL_000E: ldloc 20 (System.Boolean)
IL_0012: brfalse => Label1
IL_0017: ldarg 2
IL_001B: call static System.Boolean
ElectricRoads.Overrides.ElectricRoadsOverrides::CheckElectrityNetForLight(InstanceI
D id)
IL_0020: stloc 20 (System.Boolean)
IL_0024: Label1
IL_0024: nop
IL_0025: ldloc 20 (System.Boolean)
IL_0029: brfalse => Label0
IL_002E: // start original
IL_002E: ldarg.1
IL_002F: ldarg.0
IL_0030: ldfld System.Int32 LightEffect::m_groupLayer
IL_0035: beq => Label2
IL_003A: ldarg.1
IL_003B: ldarg.0
IL_003C: ldfld System.Int32 LightEffect::m_groupLayerFloating
IL_0041: bne.un => Label3
IL_0046: Label2
IL_0046: ldarg.1
IL_0047: ldarg.0
IL_0048: ldfld System.Int32 LightEffect::m_groupLayerFloating
IL_004D: ceq
IL_004F: stloc.0
IL_0050: ldloca.s 1 (UnityEngine.Vector3)
IL_0052: ldarg.0
IL_0053: ldfld System.Single LightEffect::m_lightRange
IL_0058: ldarg.0
IL_0059: ldfld System.Single LightEffect::m_lightRange
IL_005E: ldarg.0
IL_005F: ldfld System.Single LightEffect::m_lightRange
IL_0064: call System.Void UnityEngine.Vector3::.ctor(System.Single x,
System.Single y, System.Single z)
IL_0069: ldarg.3
IL_006A: ldloc.1
IL_006B: call static UnityEngine.Vector3
UnityEngine.Vector3::op_Subtraction(UnityEngine.Vector3 a, UnityEngine.Vector3 b)
IL_0070: stloc.2
IL_0071: ldarg.3
IL_0072: ldloc.1
IL_0073: call static UnityEngine.Vector3
UnityEngine.Vector3::op_Addition(UnityEngine.Vector3 a, UnityEngine.Vector3 b)
IL_0078: stloc.3
IL_0079: ldarg.s 9
IL_007B: ldarg.s 9
IL_007D: ldobj UnityEngine.Vector3
IL_0082: ldloc.2
IL_0083: call static UnityEngine.Vector3
UnityEngine.Vector3::Min(UnityEngine.Vector3 lhs, UnityEngine.Vector3 rhs)
IL_0088: stobj UnityEngine.Vector3
IL_008D: ldarg.s 10
IL_008F: ldarg.s 10
IL_0091: ldobj UnityEngine.Vector3
IL_0096: ldloc.3
IL_0097: call static UnityEngine.Vector3
UnityEngine.Vector3::Max(UnityEngine.Vector3 lhs, UnityEngine.Vector3 rhs)
IL_009C: stobj UnityEngine.Vector3
IL_00A1: ldarg.3
IL_00A2: ldarg.s 7
IL_00A4: call static UnityEngine.Vector3
UnityEngine.Vector3::op_Subtraction(UnityEngine.Vector3 a, UnityEngine.Vector3 b)
IL_00A9: stloc.s 4 (UnityEngine.Vector3)
IL_00AB: ldarg.s 11
IL_00AD: ldarg.s 11
IL_00AF: ldind.r4
IL_00B0: ldc.r4 30000
IL_00B5: call static System.Single UnityEngine.Mathf::Max(System.Single a,
System.Single b)
IL_00BA: stind.r4
IL_00BB: ldarg.0
IL_00BC: ldfld UnityEngine.LightType LightEffect::m_lightType
IL_00C1: brtrue => Label4
IL_00C6: ldarg.s 4
IL_00C8: call static UnityEngine.Quaternion
UnityEngine.Quaternion::LookRotation(UnityEngine.Vector3 forward)
IL_00CD: stloc.s 6 (UnityEngine.Quaternion)
IL_00CF: ldloc.s 6 (UnityEngine.Quaternion)
IL_00D1: ldarg.0
IL_00D2: ldfld UnityEngine.Quaternion LightEffect::m_lightRotation
IL_00D7: call static UnityEngine.Vector3 UnityEngine.Vector3::get_forward()
IL_00DC: call static UnityEngine.Vector3
UnityEngine.Quaternion::op_Multiply(UnityEngine.Quaternion rotation,
UnityEngine.Vector3 point)
IL_00E1: call static UnityEngine.Vector3
UnityEngine.Quaternion::op_Multiply(UnityEngine.Quaternion rotation,
UnityEngine.Vector3 point)
IL_00E6: stloc.s 5 (UnityEngine.Vector3)
IL_00E8: br => Label5
IL_00ED: Label4
IL_00ED: call static UnityEngine.Vector3 UnityEngine.Vector3::get_forward()
IL_00F2: stloc.s 5 (UnityEngine.Vector3)
IL_00F4: Label5
IL_00F4: ldloca.s 7 (UnityEngine.Vector4)
IL_00F6: ldloca.s 5 (UnityEngine.Vector3)
IL_00F8: ldfld System.Single UnityEngine.Vector3::x
IL_00FD: ldloca.s 5 (UnityEngine.Vector3)
IL_00FF: ldfld System.Single UnityEngine.Vector3::y
IL_0104: ldloca.s 5 (UnityEngine.Vector3)
IL_0106: ldfld System.Single UnityEngine.Vector3::z
IL_010B: ldc.r4 100000
IL_0110: call System.Void UnityEngine.Vector4::.ctor(System.Single x,
System.Single y, System.Single z, System.Single w)
IL_0115: ldarg.0
IL_0116: ldfld UnityEngine.LightType LightEffect::m_lightType
IL_011B: brtrue => Label6
IL_0120: ldloca.s 7 (UnityEngine.Vector4)
IL_0122: ldc.r4 0.01745329
IL_0127: ldarg.0
IL_0128: ldfld System.Single LightEffect::m_lightSpotAngle
IL_012D: mul
IL_012E: ldc.r4 0.5
IL_0133: mul
IL_0134: call static System.Single UnityEngine.Mathf::Cos(System.Single f)
IL_0139: neg
IL_013A: stfld System.Single UnityEngine.Vector4::w
IL_013F: Label6
IL_013F: ldloca.s 8 (UnityEngine.Vector2)
IL_0141: ldc.r4 1
IL_0146: ldarg.0
IL_0147: ldfld System.Single LightEffect::m_lightRange
IL_014C: ldarg.0
IL_014D: ldfld System.Single LightEffect::m_lightRange
IL_0152: mul
IL_0153: div
IL_0154: ldarg.0
IL_0155: ldfld System.Single LightEffect::m_lightIntensity
IL_015A: call System.Void UnityEngine.Vector2::.ctor(System.Single x,
System.Single y)
IL_015F: ldloca.s 9 (ColossalFramework.Math.Randomizer)
IL_0161: ldarga.s 2
IL_0163: call System.UInt32 InstanceID::get_Index()
IL_0168: call System.Void
ColossalFramework.Math.Randomizer::.ctor(System.UInt32 _seed)
IL_016D: ldloca.s 10 (UnityEngine.Vector2)
IL_016F: ldarg.0
IL_0170: ldflda UnityEngine.Vector2 LightEffect::m_offRange
IL_0175: ldfld System.Single UnityEngine.Vector2::x
IL_017A: ldloca.s 9 (ColossalFramework.Math.Randomizer)
IL_017C: ldc.i4 100000
IL_0181: call System.Int32
ColossalFramework.Math.Randomizer::Int32(System.UInt32 range)
IL_0186: conv.r4
IL_0187: ldc.r4 1E-05
IL_018C: mul
IL_018D: ldarg.0
IL_018E: ldflda UnityEngine.Vector2 LightEffect::m_offRange
IL_0193: ldfld System.Single UnityEngine.Vector2::y
IL_0198: ldarg.0
IL_0199: ldflda UnityEngine.Vector2 LightEffect::m_offRange
IL_019E: ldfld System.Single UnityEngine.Vector2::x
IL_01A3: sub
IL_01A4: mul
IL_01A5: add
IL_01A6: stfld System.Single UnityEngine.Vector2::x
IL_01AB: ldloca.s 10 (UnityEngine.Vector2)
IL_01AD: ldarg.0
IL_01AE: ldfld BlinkType LightEffect::m_blinkType
IL_01B3: conv.r4
IL_01B4: stfld System.Single UnityEngine.Vector2::y
IL_01B9: ldarg.2
IL_01BA: call static System.UInt16 EffectInfo::GetBuilding(InstanceID id)
IL_01BF: stloc.s 13 (System.UInt16)
IL_01C1: ldloc.s 13 (System.UInt16)
IL_01C3: brfalse => Label7
IL_01C8: ldloc.s 13 (System.UInt16)
IL_01CA: call static UnityEngine.Vector4
RenderManager::GetColorLocation(System.UInt32 instanceHolder)
IL_01CF: call static UnityEngine.Vector2
UnityEngine.Vector4::op_Implicit(UnityEngine.Vector4 v)
IL_01D4: stloc.s 11 (UnityEngine.Vector2)
IL_01D6: ldloc.0
IL_01D7: brfalse => Label8
IL_01DC: call static BuildingManager
ColossalFramework.Singleton`1<BuildingManager>::get_instance()
IL_01E1: ldfld Array16`1<Building> BuildingManager::m_buildings
IL_01E6: ldfld Building[] Array16`1<Building>::m_buffer
IL_01EB: ldloc.s 13 (System.UInt16)
IL_01ED: ldelema Building
IL_01F2: call UnityEngine.Vector3 Building::CalculateMeshPosition()
IL_01F7: stloc.s 14 (UnityEngine.Vector3)
IL_01F9: ldloc.s 14 (UnityEngine.Vector3)
IL_01FB: call static UnityEngine.Vector2
ColossalFramework.Math.VectorUtils::XZ(UnityEngine.Vector3 v)
IL_0200: stloc.s 12 (UnityEngine.Vector2)
IL_0202: ldarga.s 3
IL_0204: dup
IL_0205: ldfld System.Single UnityEngine.Vector3::y
IL_020A: ldloca.s 14 (UnityEngine.Vector3)
IL_020C: ldfld System.Single UnityEngine.Vector3::y
IL_0211: sub
IL_0212: stfld System.Single UnityEngine.Vector3::y
IL_0217: ldloca.s 4 (UnityEngine.Vector3)
IL_0219: dup
IL_021A: ldfld System.Single UnityEngine.Vector3::y
IL_021F: ldloca.s 14 (UnityEngine.Vector3)
IL_0221: ldfld System.Single UnityEngine.Vector3::y
IL_0226: sub
IL_0227: stfld System.Single UnityEngine.Vector3::y
IL_022C: br => Label9
IL_0231: Label8
IL_0231: call static UnityEngine.Vector2 UnityEngine.Vector2::get_zero()
IL_0236: stloc.s 12 (UnityEngine.Vector2)
IL_0238: Label9
IL_0238: br => Label10
IL_023D: Label7
IL_023D: ldsfld UnityEngine.Vector4 RenderManager::DefaultColorLocation
IL_0242: call static UnityEngine.Vector2
UnityEngine.Vector4::op_Implicit(UnityEngine.Vector4 v)
IL_0247: stloc.s 11 (UnityEngine.Vector2)
IL_0249: call static UnityEngine.Vector2 UnityEngine.Vector2::get_zero()
IL_024E: stloc.s 12 (UnityEngine.Vector2)
IL_0250: Label10
IL_0250: ldarg.0
IL_0251: ldfld UnityEngine.Color LightEffect::m_lightColor
IL_0256: stloc.s 15 (UnityEngine.Color)
IL_0258: ldarg.0
IL_0259: ldfld UnityEngine.Color[] LightEffect::m_variationColors
IL_025E: brfalse => Label11
IL_0263: ldarg.0
IL_0264: ldfld UnityEngine.Color[] LightEffect::m_variationColors
IL_0269: ldlen
IL_026A: conv.i4
IL_026B: brfalse => Label12
IL_0270: ldarg.0
IL_0271: ldfld UnityEngine.Color[] LightEffect::m_variationColors
IL_0276: ldloca.s 9 (ColossalFramework.Math.Randomizer)
IL_0278: ldarg.0
IL_0279: ldfld UnityEngine.Color[] LightEffect::m_variationColors
IL_027E: ldlen
IL_027F: conv.i4
IL_0280: call System.Int32
ColossalFramework.Math.Randomizer::Int32(System.UInt32 range)
IL_0285: ldelema UnityEngine.Color
IL_028A: ldobj UnityEngine.Color
IL_028F: stloc.s 16 (UnityEngine.Color)
IL_0291: ldloc.s 15 (UnityEngine.Color)
IL_0293: ldloc.s 16 (UnityEngine.Color)
IL_0295: ldloca.s 9 (ColossalFramework.Math.Randomizer)
IL_0297: ldc.i4 1000
IL_029C: call System.Int32
ColossalFramework.Math.Randomizer::Int32(System.UInt32 range)
IL_02A1: conv.r4
IL_02A2: ldc.r4 0.001
IL_02A7: mul
IL_02A8: call static UnityEngine.Color
UnityEngine.Color::Lerp(UnityEngine.Color a, UnityEngine.Color b, System.Single t)
IL_02AD: stloc.s 15 (UnityEngine.Color)
IL_02AF: Label11
IL_02AF: Label12
IL_02AF: ldloca.s 15 (UnityEngine.Color)
IL_02B1: call UnityEngine.Color UnityEngine.Color::get_linear()
IL_02B6: stloc.s 15 (UnityEngine.Color)
IL_02B8: ldloca.s 15 (UnityEngine.Color)
IL_02BA: ldarg.0
IL_02BB: ldfld UnityEngine.LightType LightEffect::m_lightType
IL_02C0: brtrue => Label13
IL_02C5: ldarg.0
IL_02C6: ldfld System.Single LightEffect::m_spotLeaking
IL_02CB: br => Label14
IL_02D0: Label13
IL_02D0: ldc.r4 0
IL_02D5: Label14
IL_02D5: stfld System.Single UnityEngine.Color::a
IL_02DA: ldarg.0
IL_02DB: ldfld System.Single LightEffect::m_lightRange
IL_02E0: ldc.r4 0.5235988
IL_02E5: call static System.Single UnityEngine.Mathf::Cos(System.Single f)
IL_02EA: div
IL_02EB: stloc.s 17 (System.Single)
IL_02ED: ldloc.s 17 (System.Single)
IL_02EF: ldc.r4 0.5
IL_02F4: mul
IL_02F5: stloc.s 18 (System.Single)
IL_02F7: ldarg.s 8
IL_02F9: ldfld UnityEngine.Vector3[] MeshData::m_vertices
IL_02FE: ldarg.s 5
IL_0300: ldind.i4
IL_0301: ldelema UnityEngine.Vector3
IL_0306: ldloca.s 4 (UnityEngine.Vector3)
IL_0308: ldfld System.Single UnityEngine.Vector3::x
IL_030D: ldloc.s 18 (System.Single)
IL_030F: sub
IL_0310: ldloca.s 4 (UnityEngine.Vector3)
IL_0312: ldfld System.Single UnityEngine.Vector3::y
IL_0317: ldarg.0
IL_0318: ldfld System.Single LightEffect::m_lightRange
IL_031D: add
IL_031E: ldloca.s 4 (UnityEngine.Vector3)
IL_0320: ldfld System.Single UnityEngine.Vector3::z
IL_0325: ldarg.0
IL_0326: ldfld System.Single LightEffect::m_lightRange
IL_032B: add
IL_032C: newobj System.Void UnityEngine.Vector3::.ctor(System.Single x,
System.Single y, System.Single z)
IL_0331: stobj UnityEngine.Vector3
IL_0336: ldarg.s 8
IL_0338: ldfld UnityEngine.Vector3[] MeshData::m_normals
IL_033D: ldarg.s 5
IL_033F: ldind.i4
IL_0340: ldelema UnityEngine.Vector3
IL_0345: ldarg.3
IL_0346: stobj UnityEngine.Vector3
IL_034B: ldarg.s 8
IL_034D: ldfld UnityEngine.Vector4[] MeshData::m_tangents
IL_0352: ldarg.s 5
IL_0354: ldind.i4
IL_0355: ldelema UnityEngine.Vector4
IL_035A: ldloc.s 7 (UnityEngine.Vector4)
IL_035C: stobj UnityEngine.Vector4
IL_0361: ldarg.s 8
IL_0363: ldfld UnityEngine.Vector2[] MeshData::m_uvs
IL_0368: ldarg.s 5
IL_036A: ldind.i4
IL_036B: ldelema UnityEngine.Vector2
IL_0370: ldloc.s 8 (UnityEngine.Vector2)
IL_0372: stobj UnityEngine.Vector2
IL_0377: ldarg.s 8
IL_0379: ldfld UnityEngine.Vector2[] MeshData::m_uvs2
IL_037E: ldarg.s 5
IL_0380: ldind.i4
IL_0381: ldelema UnityEngine.Vector2
IL_0386: ldloc.s 10 (UnityEngine.Vector2)
IL_0388: stobj UnityEngine.Vector2
IL_038D: ldarg.s 8
IL_038F: ldfld UnityEngine.Vector2[] MeshData::m_uvs3
IL_0394: ldarg.s 5
IL_0396: ldind.i4
IL_0397: ldelema UnityEngine.Vector2
IL_039C: ldloc.s 11 (UnityEngine.Vector2)
IL_039E: stobj UnityEngine.Vector2
IL_03A3: ldloc.0
IL_03A4: brfalse => Label15
IL_03A9: ldarg.s 8
IL_03AB: ldfld UnityEngine.Vector2[] MeshData::m_uvs4
IL_03B0: ldarg.s 5
IL_03B2: ldind.i4
IL_03B3: ldelema UnityEngine.Vector2
IL_03B8: ldloc.s 12 (UnityEngine.Vector2)
IL_03BA: stobj UnityEngine.Vector2
IL_03BF: Label15
IL_03BF: ldarg.s 8
IL_03C1: ldfld UnityEngine.Color32[] MeshData::m_colors
IL_03C6: ldarg.s 5
IL_03C8: ldind.i4
IL_03C9: ldelema UnityEngine.Color32
IL_03CE: ldloc.s 15 (UnityEngine.Color)
IL_03D0: call static UnityEngine.Color32
UnityEngine.Color32::op_Implicit(UnityEngine.Color c)
IL_03D5: stobj UnityEngine.Color32
IL_03DA: ldarg.s 5
IL_03DC: ldarg.s 5
IL_03DE: ldind.i4
IL_03DF: ldc.i4.1
IL_03E0: add
IL_03E1: stind.i4
IL_03E2: ldarg.s 8
IL_03E4: ldfld UnityEngine.Vector3[] MeshData::m_vertices
IL_03E9: ldarg.s 5
IL_03EB: ldind.i4
IL_03EC: ldelema UnityEngine.Vector3
IL_03F1: ldloca.s 4 (UnityEngine.Vector3)
IL_03F3: ldfld System.Single UnityEngine.Vector3::x
IL_03F8: ldloc.s 18 (System.Single)
IL_03FA: add
IL_03FB: ldloca.s 4 (UnityEngine.Vector3)
IL_03FD: ldfld System.Single UnityEngine.Vector3::y
IL_0402: ldarg.0
IL_0403: ldfld System.Single LightEffect::m_lightRange
IL_0408: add
IL_0409: ldloca.s 4 (UnityEngine.Vector3)
IL_040B: ldfld System.Single UnityEngine.Vector3::z
IL_0410: ldarg.0
IL_0411: ldfld System.Single LightEffect::m_lightRange
IL_0416: add
IL_0417: newobj System.Void UnityEngine.Vector3::.ctor(System.Single x,
System.Single y, System.Single z)
IL_041C: stobj UnityEngine.Vector3
IL_0421: ldarg.s 8
IL_0423: ldfld UnityEngine.Vector3[] MeshData::m_normals
IL_0428: ldarg.s 5
IL_042A: ldind.i4
IL_042B: ldelema UnityEngine.Vector3
IL_0430: ldarg.3
IL_0431: stobj UnityEngine.Vector3
IL_0436: ldarg.s 8
IL_0438: ldfld UnityEngine.Vector4[] MeshData::m_tangents
IL_043D: ldarg.s 5
IL_043F: ldind.i4
IL_0440: ldelema UnityEngine.Vector4
IL_0445: ldloc.s 7 (UnityEngine.Vector4)
IL_0447: stobj UnityEngine.Vector4
IL_044C: ldarg.s 8
IL_044E: ldfld UnityEngine.Vector2[] MeshData::m_uvs
IL_0453: ldarg.s 5
IL_0455: ldind.i4
IL_0456: ldelema UnityEngine.Vector2
IL_045B: ldloc.s 8 (UnityEngine.Vector2)
IL_045D: stobj UnityEngine.Vector2
IL_0462: ldarg.s 8
IL_0464: ldfld UnityEngine.Vector2[] MeshData::m_uvs2
IL_0469: ldarg.s 5
IL_046B: ldind.i4
IL_046C: ldelema UnityEngine.Vector2
IL_0471: ldloc.s 10 (UnityEngine.Vector2)
IL_0473: stobj UnityEngine.Vector2
IL_0478: ldarg.s 8
IL_047A: ldfld UnityEngine.Vector2[] MeshData::m_uvs3
IL_047F: ldarg.s 5
IL_0481: ldind.i4
IL_0482: ldelema UnityEngine.Vector2
IL_0487: ldloc.s 11 (UnityEngine.Vector2)
IL_0489: stobj UnityEngine.Vector2
IL_048E: ldloc.0
IL_048F: brfalse => Label16
IL_0494: ldarg.s 8
IL_0496: ldfld UnityEngine.Vector2[] MeshData::m_uvs4
IL_049B: ldarg.s 5
IL_049D: ldind.i4
IL_049E: ldelema UnityEngine.Vector2
IL_04A3: ldloc.s 12 (UnityEngine.Vector2)
IL_04A5: stobj UnityEngine.Vector2
IL_04AA: Label16
IL_04AA: ldarg.s 8
IL_04AC: ldfld UnityEngine.Color32[] MeshData::m_colors
IL_04B1: ldarg.s 5
IL_04B3: ldind.i4
IL_04B4: ldelema UnityEngine.Color32
IL_04B9: ldloc.s 15 (UnityEngine.Color)
IL_04BB: call static UnityEngine.Color32
UnityEngine.Color32::op_Implicit(UnityEngine.Color c)
IL_04C0: stobj UnityEngine.Color32
IL_04C5: ldarg.s 5
IL_04C7: ldarg.s 5
IL_04C9: ldind.i4
IL_04CA: ldc.i4.1
IL_04CB: add
IL_04CC: stind.i4
IL_04CD: ldarg.s 8
IL_04CF: ldfld UnityEngine.Vector3[] MeshData::m_vertices
IL_04D4: ldarg.s 5
IL_04D6: ldind.i4
IL_04D7: ldelema UnityEngine.Vector3
IL_04DC: ldloca.s 4 (UnityEngine.Vector3)
IL_04DE: ldfld System.Single UnityEngine.Vector3::x
IL_04E3: ldloc.s 17 (System.Single)
IL_04E5: add
IL_04E6: ldloca.s 4 (UnityEngine.Vector3)
IL_04E8: ldfld System.Single UnityEngine.Vector3::y
IL_04ED: ldloca.s 4 (UnityEngine.Vector3)
IL_04EF: ldfld System.Single UnityEngine.Vector3::z
IL_04F4: ldarg.0
IL_04F5: ldfld System.Single LightEffect::m_lightRange
IL_04FA: add
IL_04FB: newobj System.Void UnityEngine.Vector3::.ctor(System.Single x,
System.Single y, System.Single z)
IL_0500: stobj UnityEngine.Vector3
IL_0505: ldarg.s 8
IL_0507: ldfld UnityEngine.Vector3[] MeshData::m_normals
IL_050C: ldarg.s 5
IL_050E: ldind.i4
IL_050F: ldelema UnityEngine.Vector3
IL_0514: ldarg.3
IL_0515: stobj UnityEngine.Vector3
IL_051A: ldarg.s 8
IL_051C: ldfld UnityEngine.Vector4[] MeshData::m_tangents
IL_0521: ldarg.s 5
IL_0523: ldind.i4
IL_0524: ldelema UnityEngine.Vector4
IL_0529: ldloc.s 7 (UnityEngine.Vector4)
IL_052B: stobj UnityEngine.Vector4
IL_0530: ldarg.s 8
IL_0532: ldfld UnityEngine.Vector2[] MeshData::m_uvs
IL_0537: ldarg.s 5
IL_0539: ldind.i4
IL_053A: ldelema UnityEngine.Vector2
IL_053F: ldloc.s 8 (UnityEngine.Vector2)
IL_0541: stobj UnityEngine.Vector2
IL_0546: ldarg.s 8
IL_0548: ldfld UnityEngine.Vector2[] MeshData::m_uvs2
IL_054D: ldarg.s 5
IL_054F: ldind.i4
IL_0550: ldelema UnityEngine.Vector2
IL_0555: ldloc.s 10 (UnityEngine.Vector2)
IL_0557: stobj UnityEngine.Vector2
IL_055C: ldarg.s 8
IL_055E: ldfld UnityEngine.Vector2[] MeshData::m_uvs3
IL_0563: ldarg.s 5
IL_0565: ldind.i4
IL_0566: ldelema UnityEngine.Vector2
IL_056B: ldloc.s 11 (UnityEngine.Vector2)
IL_056D: stobj UnityEngine.Vector2
IL_0572: ldloc.0
IL_0573: brfalse => Label17
IL_0578: ldarg.s 8
IL_057A: ldfld UnityEngine.Vector2[] MeshData::m_uvs4
IL_057F: ldarg.s 5
IL_0581: ldind.i4
IL_0582: ldelema UnityEngine.Vector2
IL_0587: ldloc.s 12 (UnityEngine.Vector2)
IL_0589: stobj UnityEngine.Vector2
IL_058E: Label17
IL_058E: ldarg.s 8
IL_0590: ldfld UnityEngine.Color32[] MeshData::m_colors
IL_0595: ldarg.s 5
IL_0597: ldind.i4
IL_0598: ldelema UnityEngine.Color32
IL_059D: ldloc.s 15 (UnityEngine.Color)
IL_059F: call static UnityEngine.Color32
UnityEngine.Color32::op_Implicit(UnityEngine.Color c)
IL_05A4: stobj UnityEngine.Color32
IL_05A9: ldarg.s 5
IL_05AB: ldarg.s 5
IL_05AD: ldind.i4
IL_05AE: ldc.i4.1
IL_05AF: add
IL_05B0: stind.i4
IL_05B1: ldarg.s 8
IL_05B3: ldfld UnityEngine.Vector3[] MeshData::m_vertices
IL_05B8: ldarg.s 5
IL_05BA: ldind.i4
IL_05BB: ldelema UnityEngine.Vector3
IL_05C0: ldloca.s 4 (UnityEngine.Vector3)
IL_05C2: ldfld System.Single UnityEngine.Vector3::x
IL_05C7: ldloc.s 18 (System.Single)
IL_05C9: add
IL_05CA: ldloca.s 4 (UnityEngine.Vector3)
IL_05CC: ldfld System.Single UnityEngine.Vector3::y
IL_05D1: ldarg.0
IL_05D2: ldfld System.Single LightEffect::m_lightRange
IL_05D7: sub
IL_05D8: ldloca.s 4 (UnityEngine.Vector3)
IL_05DA: ldfld System.Single UnityEngine.Vector3::z
IL_05DF: ldarg.0
IL_05E0: ldfld System.Single LightEffect::m_lightRange
IL_05E5: add
IL_05E6: newobj System.Void UnityEngine.Vector3::.ctor(System.Single x,
System.Single y, System.Single z)
IL_05EB: stobj UnityEngine.Vector3
IL_05F0: ldarg.s 8
IL_05F2: ldfld UnityEngine.Vector3[] MeshData::m_normals
IL_05F7: ldarg.s 5
IL_05F9: ldind.i4
IL_05FA: ldelema UnityEngine.Vector3
IL_05FF: ldarg.3
IL_0600: stobj UnityEngine.Vector3
IL_0605: ldarg.s 8
IL_0607: ldfld UnityEngine.Vector4[] MeshData::m_tangents
IL_060C: ldarg.s 5
IL_060E: ldind.i4
IL_060F: ldelema UnityEngine.Vector4
IL_0614: ldloc.s 7 (UnityEngine.Vector4)
IL_0616: stobj UnityEngine.Vector4
IL_061B: ldarg.s 8
IL_061D: ldfld UnityEngine.Vector2[] MeshData::m_uvs
IL_0622: ldarg.s 5
IL_0624: ldind.i4
IL_0625: ldelema UnityEngine.Vector2
IL_062A: ldloc.s 8 (UnityEngine.Vector2)
IL_062C: stobj UnityEngine.Vector2
IL_0631: ldarg.s 8
IL_0633: ldfld UnityEngine.Vector2[] MeshData::m_uvs2
IL_0638: ldarg.s 5
IL_063A: ldind.i4
IL_063B: ldelema UnityEngine.Vector2
IL_0640: ldloc.s 10 (UnityEngine.Vector2)
IL_0642: stobj UnityEngine.Vector2
IL_0647: ldarg.s 8
IL_0649: ldfld UnityEngine.Vector2[] MeshData::m_uvs3
IL_064E: ldarg.s 5
IL_0650: ldind.i4
IL_0651: ldelema UnityEngine.Vector2
IL_0656: ldloc.s 11 (UnityEngine.Vector2)
IL_0658: stobj UnityEngine.Vector2
IL_065D: ldloc.0
IL_065E: brfalse => Label18
IL_0663: ldarg.s 8
IL_0665: ldfld UnityEngine.Vector2[] MeshData::m_uvs4
IL_066A: ldarg.s 5
IL_066C: ldind.i4
IL_066D: ldelema UnityEngine.Vector2
IL_0672: ldloc.s 12 (UnityEngine.Vector2)
IL_0674: stobj UnityEngine.Vector2
IL_0679: Label18
IL_0679: ldarg.s 8
IL_067B: ldfld UnityEngine.Color32[] MeshData::m_colors
IL_0680: ldarg.s 5
IL_0682: ldind.i4
IL_0683: ldelema UnityEngine.Color32
IL_0688: ldloc.s 15 (UnityEngine.Color)
IL_068A: call static UnityEngine.Color32
UnityEngine.Color32::op_Implicit(UnityEngine.Color c)
IL_068F: stobj UnityEngine.Color32
IL_0694: ldarg.s 5
IL_0696: ldarg.s 5
IL_0698: ldind.i4
IL_0699: ldc.i4.1
IL_069A: add
IL_069B: stind.i4
IL_069C: ldarg.s 8
IL_069E: ldfld UnityEngine.Vector3[] MeshData::m_vertices
IL_06A3: ldarg.s 5
IL_06A5: ldind.i4
IL_06A6: ldelema UnityEngine.Vector3
IL_06AB: ldloca.s 4 (UnityEngine.Vector3)
IL_06AD: ldfld System.Single UnityEngine.Vector3::x
IL_06B2: ldloc.s 18 (System.Single)
IL_06B4: sub
IL_06B5: ldloca.s 4 (UnityEngine.Vector3)
IL_06B7: ldfld System.Single UnityEngine.Vector3::y
IL_06BC: ldarg.0
IL_06BD: ldfld System.Single LightEffect::m_lightRange
IL_06C2: sub
IL_06C3: ldloca.s 4 (UnityEngine.Vector3)
IL_06C5: ldfld System.Single UnityEngine.Vector3::z
IL_06CA: ldarg.0
IL_06CB: ldfld System.Single LightEffect::m_lightRange
IL_06D0: add
IL_06D1: newobj System.Void UnityEngine.Vector3::.ctor(System.Single x,
System.Single y, System.Single z)
IL_06D6: stobj UnityEngine.Vector3
IL_06DB: ldarg.s 8
IL_06DD: ldfld UnityEngine.Vector3[] MeshData::m_normals
IL_06E2: ldarg.s 5
IL_06E4: ldind.i4
IL_06E5: ldelema UnityEngine.Vector3
IL_06EA: ldarg.3
IL_06EB: stobj UnityEngine.Vector3
IL_06F0: ldarg.s 8
IL_06F2: ldfld UnityEngine.Vector4[] MeshData::m_tangents
IL_06F7: ldarg.s 5
IL_06F9: ldind.i4
IL_06FA: ldelema UnityEngine.Vector4
IL_06FF: ldloc.s 7 (UnityEngine.Vector4)
IL_0701: stobj UnityEngine.Vector4
IL_0706: ldarg.s 8
IL_0708: ldfld UnityEngine.Vector2[] MeshData::m_uvs
IL_070D: ldarg.s 5
IL_070F: ldind.i4
IL_0710: ldelema UnityEngine.Vector2
IL_0715: ldloc.s 8 (UnityEngine.Vector2)
IL_0717: stobj UnityEngine.Vector2
IL_071C: ldarg.s 8
IL_071E: ldfld UnityEngine.Vector2[] MeshData::m_uvs2
IL_0723: ldarg.s 5
IL_0725: ldind.i4
IL_0726: ldelema UnityEngine.Vector2
IL_072B: ldloc.s 10 (UnityEngine.Vector2)
IL_072D: stobj UnityEngine.Vector2
IL_0732: ldarg.s 8
IL_0734: ldfld UnityEngine.Vector2[] MeshData::m_uvs3
IL_0739: ldarg.s 5
IL_073B: ldind.i4
IL_073C: ldelema UnityEngine.Vector2
IL_0741: ldloc.s 11 (UnityEngine.Vector2)
IL_0743: stobj UnityEngine.Vector2
IL_0748: ldloc.0
IL_0749: brfalse => Label19
IL_074E: ldarg.s 8
IL_0750: ldfld UnityEngine.Vector2[] MeshData::m_uvs4
IL_0755: ldarg.s 5
IL_0757: ldind.i4
IL_0758: ldelema UnityEngine.Vector2
IL_075D: ldloc.s 12 (UnityEngine.Vector2)
IL_075F: stobj UnityEngine.Vector2
IL_0764: Label19
IL_0764: ldarg.s 8
IL_0766: ldfld UnityEngine.Color32[] MeshData::m_colors
IL_076B: ldarg.s 5
IL_076D: ldind.i4
IL_076E: ldelema UnityEngine.Color32
IL_0773: ldloc.s 15 (UnityEngine.Color)
IL_0775: call static UnityEngine.Color32
UnityEngine.Color32::op_Implicit(UnityEngine.Color c)
IL_077A: stobj UnityEngine.Color32
IL_077F: ldarg.s 5
IL_0781: ldarg.s 5
IL_0783: ldind.i4
IL_0784: ldc.i4.1
IL_0785: add
IL_0786: stind.i4
IL_0787: ldarg.s 8
IL_0789: ldfld UnityEngine.Vector3[] MeshData::m_vertices
IL_078E: ldarg.s 5
IL_0790: ldind.i4
IL_0791: ldelema UnityEngine.Vector3
IL_0796: ldloca.s 4 (UnityEngine.Vector3)
IL_0798: ldfld System.Single UnityEngine.Vector3::x
IL_079D: ldloc.s 17 (System.Single)
IL_079F: sub
IL_07A0: ldloca.s 4 (UnityEngine.Vector3)
IL_07A2: ldfld System.Single UnityEngine.Vector3::y
IL_07A7: ldloca.s 4 (UnityEngine.Vector3)
IL_07A9: ldfld System.Single UnityEngine.Vector3::z
IL_07AE: ldarg.0
IL_07AF: ldfld System.Single LightEffect::m_lightRange
IL_07B4: add
IL_07B5: newobj System.Void UnityEngine.Vector3::.ctor(System.Single x,
System.Single y, System.Single z)
IL_07BA: stobj UnityEngine.Vector3
IL_07BF: ldarg.s 8
IL_07C1: ldfld UnityEngine.Vector3[] MeshData::m_normals
IL_07C6: ldarg.s 5
IL_07C8: ldind.i4
IL_07C9: ldelema UnityEngine.Vector3
IL_07CE: ldarg.3
IL_07CF: stobj UnityEngine.Vector3
IL_07D4: ldarg.s 8
IL_07D6: ldfld UnityEngine.Vector4[] MeshData::m_tangents
IL_07DB: ldarg.s 5
IL_07DD: ldind.i4
IL_07DE: ldelema UnityEngine.Vector4
IL_07E3: ldloc.s 7 (UnityEngine.Vector4)
IL_07E5: stobj UnityEngine.Vector4
IL_07EA: ldarg.s 8
IL_07EC: ldfld UnityEngine.Vector2[] MeshData::m_uvs
IL_07F1: ldarg.s 5
IL_07F3: ldind.i4
IL_07F4: ldelema UnityEngine.Vector2
IL_07F9: ldloc.s 8 (UnityEngine.Vector2)
IL_07FB: stobj UnityEngine.Vector2
IL_0800: ldarg.s 8
IL_0802: ldfld UnityEngine.Vector2[] MeshData::m_uvs2
IL_0807: ldarg.s 5
IL_0809: ldind.i4
IL_080A: ldelema UnityEngine.Vector2
IL_080F: ldloc.s 10 (UnityEngine.Vector2)
IL_0811: stobj UnityEngine.Vector2
IL_0816: ldarg.s 8
IL_0818: ldfld UnityEngine.Vector2[] MeshData::m_uvs3
IL_081D: ldarg.s 5
IL_081F: ldind.i4
IL_0820: ldelema UnityEngine.Vector2
IL_0825: ldloc.s 11 (UnityEngine.Vector2)
IL_0827: stobj UnityEngine.Vector2
IL_082C: ldloc.0
IL_082D: brfalse => Label20
IL_0832: ldarg.s 8
IL_0834: ldfld UnityEngine.Vector2[] MeshData::m_uvs4
IL_0839: ldarg.s 5
IL_083B: ldind.i4
IL_083C: ldelema UnityEngine.Vector2
IL_0841: ldloc.s 12 (UnityEngine.Vector2)
IL_0843: stobj UnityEngine.Vector2
IL_0848: Label20
IL_0848: ldarg.s 8
IL_084A: ldfld UnityEngine.Color32[] MeshData::m_colors
IL_084F: ldarg.s 5
IL_0851: ldind.i4
IL_0852: ldelema UnityEngine.Color32
IL_0857: ldloc.s 15 (UnityEngine.Color)
IL_0859: call static UnityEngine.Color32
UnityEngine.Color32::op_Implicit(UnityEngine.Color c)
IL_085E: stobj UnityEngine.Color32
IL_0863: ldarg.s 5
IL_0865: ldarg.s 5
IL_0867: ldind.i4
IL_0868: ldc.i4.1
IL_0869: add
IL_086A: stind.i4
IL_086B: ldarg.s 8
IL_086D: ldfld System.Int32[] MeshData::m_triangles
IL_0872: ldarg.s 6
IL_0874: ldarg.s 6
IL_0876: ldind.i4
IL_0877: dup
IL_0878: stloc.s 19 (System.Int32)
IL_087A: ldc.i4.1
IL_087B: add
IL_087C: stind.i4
IL_087D: ldloc.s 19 (System.Int32)
IL_087F: ldarg.s 5
IL_0881: ldind.i4
IL_0882: ldc.i4.6
IL_0883: sub
IL_0884: stelem.i4
IL_0885: ldarg.s 8
IL_0887: ldfld System.Int32[] MeshData::m_triangles
IL_088C: ldarg.s 6
IL_088E: ldarg.s 6
IL_0890: ldind.i4
IL_0891: dup
IL_0892: stloc.s 19 (System.Int32)
IL_0894: ldc.i4.1
IL_0895: add
IL_0896: stind.i4
IL_0897: ldloc.s 19 (System.Int32)
IL_0899: ldarg.s 5
IL_089B: ldind.i4
IL_089C: ldc.i4.5
IL_089D: sub
IL_089E: stelem.i4
IL_089F: ldarg.s 8
IL_08A1: ldfld System.Int32[] MeshData::m_triangles
IL_08A6: ldarg.s 6
IL_08A8: ldarg.s 6
IL_08AA: ldind.i4
IL_08AB: dup
IL_08AC: stloc.s 19 (System.Int32)
IL_08AE: ldc.i4.1
IL_08AF: add
IL_08B0: stind.i4
IL_08B1: ldloc.s 19 (System.Int32)
IL_08B3: ldarg.s 5
IL_08B5: ldind.i4
IL_08B6: ldc.i4.1
IL_08B7: sub
IL_08B8: stelem.i4
IL_08B9: ldarg.s 8
IL_08BB: ldfld System.Int32[] MeshData::m_triangles
IL_08C0: ldarg.s 6
IL_08C2: ldarg.s 6
IL_08C4: ldind.i4
IL_08C5: dup
IL_08C6: stloc.s 19 (System.Int32)
IL_08C8: ldc.i4.1
IL_08C9: add
IL_08CA: stind.i4
IL_08CB: ldloc.s 19 (System.Int32)
IL_08CD: ldarg.s 5
IL_08CF: ldind.i4
IL_08D0: ldc.i4.1
IL_08D1: sub
IL_08D2: stelem.i4
IL_08D3: ldarg.s 8
IL_08D5: ldfld System.Int32[] MeshData::m_triangles
IL_08DA: ldarg.s 6
IL_08DC: ldarg.s 6
IL_08DE: ldind.i4
IL_08DF: dup
IL_08E0: stloc.s 19 (System.Int32)
IL_08E2: ldc.i4.1
IL_08E3: add
IL_08E4: stind.i4
IL_08E5: ldloc.s 19 (System.Int32)
IL_08E7: ldarg.s 5
IL_08E9: ldind.i4
IL_08EA: ldc.i4.5
IL_08EB: sub
IL_08EC: stelem.i4
IL_08ED: ldarg.s 8
IL_08EF: ldfld System.Int32[] MeshData::m_triangles
IL_08F4: ldarg.s 6
IL_08F6: ldarg.s 6
IL_08F8: ldind.i4
IL_08F9: dup
IL_08FA: stloc.s 19 (System.Int32)
IL_08FC: ldc.i4.1
IL_08FD: add
IL_08FE: stind.i4
IL_08FF: ldloc.s 19 (System.Int32)
IL_0901: ldarg.s 5
IL_0903: ldind.i4
IL_0904: ldc.i4.4
IL_0905: sub
IL_0906: stelem.i4
IL_0907: ldarg.s 8
IL_0909: ldfld System.Int32[] MeshData::m_triangles
IL_090E: ldarg.s 6
IL_0910: ldarg.s 6
IL_0912: ldind.i4
IL_0913: dup
IL_0914: stloc.s 19 (System.Int32)
IL_0916: ldc.i4.1
IL_0917: add
IL_0918: stind.i4
IL_0919: ldloc.s 19 (System.Int32)
IL_091B: ldarg.s 5
IL_091D: ldind.i4
IL_091E: ldc.i4.1
IL_091F: sub
IL_0920: stelem.i4
IL_0921: ldarg.s 8
IL_0923: ldfld System.Int32[] MeshData::m_triangles
IL_0928: ldarg.s 6
IL_092A: ldarg.s 6
IL_092C: ldind.i4
IL_092D: dup
IL_092E: stloc.s 19 (System.Int32)
IL_0930: ldc.i4.1
IL_0931: add
IL_0932: stind.i4
IL_0933: ldloc.s 19 (System.Int32)
IL_0935: ldarg.s 5
IL_0937: ldind.i4
IL_0938: ldc.i4.4
IL_0939: sub
IL_093A: stelem.i4
IL_093B: ldarg.s 8
IL_093D: ldfld System.Int32[] MeshData::m_triangles
IL_0942: ldarg.s 6
IL_0944: ldarg.s 6
IL_0946: ldind.i4
IL_0947: dup
IL_0948: stloc.s 19 (System.Int32)
IL_094A: ldc.i4.1
IL_094B: add
IL_094C: stind.i4
IL_094D: ldloc.s 19 (System.Int32)
IL_094F: ldarg.s 5
IL_0951: ldind.i4
IL_0952: ldc.i4.2
IL_0953: sub
IL_0954: stelem.i4
IL_0955: ldarg.s 8
IL_0957: ldfld System.Int32[] MeshData::m_triangles
IL_095C: ldarg.s 6
IL_095E: ldarg.s 6
IL_0960: ldind.i4
IL_0961: dup
IL_0962: stloc.s 19 (System.Int32)
IL_0964: ldc.i4.1
IL_0965: add
IL_0966: stind.i4
IL_0967: ldloc.s 19 (System.Int32)
IL_0969: ldarg.s 5
IL_096B: ldind.i4
IL_096C: ldc.i4.2
IL_096D: sub
IL_096E: stelem.i4
IL_096F: ldarg.s 8
IL_0971: ldfld System.Int32[] MeshData::m_triangles
IL_0976: ldarg.s 6
IL_0978: ldarg.s 6
IL_097A: ldind.i4
IL_097B: dup
IL_097C: stloc.s 19 (System.Int32)
IL_097E: ldc.i4.1
IL_097F: add
IL_0980: stind.i4
IL_0981: ldloc.s 19 (System.Int32)
IL_0983: ldarg.s 5
IL_0985: ldind.i4
IL_0986: ldc.i4.4
IL_0987: sub
IL_0988: stelem.i4
IL_0989: ldarg.s 8
IL_098B: ldfld System.Int32[] MeshData::m_triangles
IL_0990: ldarg.s 6
IL_0992: ldarg.s 6
IL_0994: ldind.i4
IL_0995: dup
IL_0996: stloc.s 19 (System.Int32)
IL_0998: ldc.i4.1
IL_0999: add
IL_099A: stind.i4
IL_099B: ldloc.s 19 (System.Int32)
IL_099D: ldarg.s 5
IL_099F: ldind.i4
IL_09A0: ldc.i4.3
IL_09A1: sub
IL_09A2: stelem.i4
IL_09A3: // end original
IL_09A3: Label3
IL_09A3: Label0
IL_09A3: ret
DONE

### Patch: virtual System.Void ElectricityManager::SimulationStepImpl(System.Int32


subStep)
### Replacement: static System.Void
ElectricityManager::ElectricityManager.SimulationStepImpl_Patch0(ElectricityManager
this, System.Int32 subStep)
IL_0000: Local var 0: System.UInt32
IL_0000: Local var 1: System.Int32
IL_0000: Local var 2: NetManager
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: NetInfo
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: ElectricityManager/Cell
IL_0000: Local var 13: ElectricityManager/PulseGroup
IL_0000: Local var 14: ElectricityManager/PulseUnit
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: ElectricityManager/PulseUnit
IL_0000: Local var 19: System.UInt32
IL_0000: Local var 20: System.Int32
IL_0000: Local var 21: ElectricityManager/Cell
IL_0000: Local var 22: System.Int32
IL_0000: Local var 23: System.Int32
IL_0000: Local var 24: NetNode
IL_0000: Local var 25: System.Int32
IL_0000: Local var 26: System.UInt16
IL_0000: Local var 27: System.UInt16
IL_0000: Local var 28: System.UInt16
IL_0000: Local var 29: System.UInt16
IL_0000: Local var 30: System.Int32
IL_0000: Local var 31: ElectricityManager/PulseGroup
IL_0000: Local var 32: ElectricityManager/PulseGroup
IL_0000: Local var 33: System.Int32
IL_0000: Local var 34: ElectricityManager/PulseGroup
IL_0000: Local var 35: System.Int32
IL_0000: Local var 36: ElectricityManager/Cell
IL_0000: // start original
IL_0000: ldarg.1
IL_0001: brfalse => Label0
IL_0006: ldarg.1
IL_0007: ldc.i4 1000
IL_000C: beq => Label1
IL_0011: call static SimulationManager
ColossalFramework.Singleton`1<SimulationManager>::get_instance()
IL_0016: ldfld System.UInt32 SimulationManager::m_currentFrameIndex
IL_001B: stloc.0
IL_001C: ldloc.0
IL_001D: ldc.i4 255
IL_0022: and
IL_0023: stloc.1
IL_0024: ldloc.1
IL_0025: ldc.i4 128
IL_002A: bge => Label2
IL_002F: ldloc.1
IL_0030: brtrue => Label3
IL_0035: ldarg.0
IL_0036: ldc.i4.0
IL_0037: stfld System.Int32 ElectricityManager::m_pulseGroupCount
IL_003C: ldarg.0
IL_003D: ldc.i4.0
IL_003E: stfld System.Int32 ElectricityManager::m_pulseUnitStart
IL_0043: ldarg.0
IL_0044: ldc.i4.0
IL_0045: stfld System.Int32 ElectricityManager::m_pulseUnitEnd
IL_004A: ldarg.0
IL_004B: ldc.i4.0
IL_004C: stfld System.Int32 ElectricityManager::m_processedCells
IL_0051: ldarg.0
IL_0052: ldc.i4.0
IL_0053: stfld System.Int32 ElectricityManager::m_conductiveCells
IL_0058: ldarg.0
IL_0059: ldc.i4.1
IL_005A: stfld System.Boolean ElectricityManager::m_canContinue
IL_005F: Label3
IL_005F: call static NetManager
ColossalFramework.Singleton`1<NetManager>::get_instance()
IL_0064: stloc.2
IL_0065: ldloc.1
IL_0066: ldc.i4 32768
IL_006B: mul
IL_006C: ldc.i4.7
IL_006D: shr
IL_006E: stloc.3
IL_006F: ldloc.1
IL_0070: ldc.i4.1
IL_0071: add
IL_0072: ldc.i4 32768
IL_0077: mul
IL_0078: ldc.i4.7
IL_0079: shr
IL_007A: ldc.i4.1
IL_007B: sub
IL_007C: stloc.s 4 (System.Int32)
IL_007E: ldloc.3
IL_007F: stloc.s 5 (System.Int32)
IL_0081: br => Label4
IL_0086: Label10
IL_0086: ldloc.2
IL_0087: ldfld Array16`1<NetNode> NetManager::m_nodes
IL_008C: ldfld NetNode[] Array16`1<NetNode>::m_buffer
IL_0091: ldloc.s 5 (System.Int32)
IL_0093: ldelema NetNode
IL_0098: ldfld Flags NetNode::m_flags
IL_009D: brfalse => Label5
IL_00A2: ldloc.2
IL_00A3: ldfld Array16`1<NetNode> NetManager::m_nodes
IL_00A8: ldfld NetNode[] Array16`1<NetNode>::m_buffer
IL_00AD: ldloc.s 5 (System.Int32)
IL_00AF: ldelema NetNode
IL_00B4: call static System.Boolean
ElectricRoads.Overrides.ElectricRoadsOverrides::CheckElectricConductibility(NetNode
& node)
IL_00B9: brfalse => Label7
IL_00BE: Label6
IL_00BE: ldarg.0
IL_00BF: ldloc.s 5 (System.Int32)
IL_00C1: ldarg.0
IL_00C2: ldfld System.UInt16[] ElectricityManager::m_nodeGroups
IL_00C7: ldloc.s 5 (System.Int32)
IL_00C9: ldelem.u2
IL_00CA: ldc.i4 65535
IL_00CF: beq => Label8
IL_00D4: ldc.i4.1
IL_00D5: br => Label9
IL_00DA: Label8
IL_00DA: ldc.i4.0
IL_00DB: Label9
IL_00DB: call System.Void
ElectricityManager::UpdateNodeElectricity(System.Int32 nodeID, System.Int32 value)
IL_00E0: ldarg.0
IL_00E1: dup
IL_00E2: ldfld System.Int32 ElectricityManager::m_conductiveCells
IL_00E7: ldc.i4.1
IL_00E8: add
IL_00E9: stfld System.Int32 ElectricityManager::m_conductiveCells
IL_00EE: Label5
IL_00EE: Label7
IL_00EE: ldarg.0
IL_00EF: ldfld System.UInt16[] ElectricityManager::m_nodeGroups
IL_00F4: ldloc.s 5 (System.Int32)
IL_00F6: ldc.i4 65535
IL_00FB: stelem.i2
IL_00FC: ldloc.s 5 (System.Int32)
IL_00FE: ldc.i4.1
IL_00FF: add
IL_0100: stloc.s 5 (System.Int32)
IL_0102: Label4
IL_0102: ldloc.s 5 (System.Int32)
IL_0104: ldloc.s 4 (System.Int32)
IL_0106: ble => Label10
IL_010B: ldloc.1
IL_010C: ldc.i4 256
IL_0111: mul
IL_0112: ldc.i4.7
IL_0113: shr
IL_0114: stloc.s 7 (System.Int32)
IL_0116: ldloc.1
IL_0117: ldc.i4.1
IL_0118: add
IL_0119: ldc.i4 256
IL_011E: mul
IL_011F: ldc.i4.7
IL_0120: shr
IL_0121: ldc.i4.1
IL_0122: sub
IL_0123: stloc.s 8 (System.Int32)
IL_0125: ldloc.s 7 (System.Int32)
IL_0127: stloc.s 9 (System.Int32)
IL_0129: br => Label11
IL_012E: Label21
IL_012E: ldloc.s 9 (System.Int32)
IL_0130: ldc.i4 256
IL_0135: mul
IL_0136: stloc.s 10 (System.Int32)
IL_0138: ldc.i4.0
IL_0139: stloc.s 11 (System.Int32)
IL_013B: br => Label12
IL_0140: Label20
IL_0140: ldarg.0
IL_0141: ldfld Cell[] ElectricityManager::m_electricityGrid
IL_0146: ldloc.s 10 (System.Int32)
IL_0148: ldelema ElectricityManager+Cell
IL_014D: ldobj ElectricityManager+Cell
IL_0152: stloc.s 12 (ElectricityManager+Cell)
IL_0154: ldloca.s 12 (ElectricityManager+Cell)
IL_0156: ldfld System.Int16 Cell::m_currentCharge
IL_015B: ldc.i4.0
IL_015C: ble => Label13
IL_0161: ldarg.0
IL_0162: ldfld System.Int32 ElectricityManager::m_pulseGroupCount
IL_0167: ldc.i4 1024
IL_016C: bge => Label14
IL_0171: ldloca.s 13 (ElectricityManager+PulseGroup)
IL_0173: ldloca.s 12 (ElectricityManager+Cell)
IL_0175: ldfld System.Int16 Cell::m_currentCharge
IL_017A: conv.u4
IL_017B: stfld System.UInt32 PulseGroup::m_origCharge
IL_0180: ldloca.s 13 (ElectricityManager+PulseGroup)
IL_0182: ldloca.s 12 (ElectricityManager+Cell)
IL_0184: ldfld System.Int16 Cell::m_currentCharge
IL_0189: conv.u4
IL_018A: stfld System.UInt32 PulseGroup::m_curCharge
IL_018F: ldloca.s 13 (ElectricityManager+PulseGroup)
IL_0191: ldc.i4.0
IL_0192: stfld System.UInt16 PulseGroup::m_mergeCount
IL_0197: ldloca.s 13 (ElectricityManager+PulseGroup)
IL_0199: ldc.i4 65535
IL_019E: stfld System.UInt16 PulseGroup::m_mergeIndex
IL_01A3: ldloca.s 13 (ElectricityManager+PulseGroup)
IL_01A5: ldloc.s 11 (System.Int32)
IL_01A7: conv.u1
IL_01A8: stfld System.Byte PulseGroup::m_x
IL_01AD: ldloca.s 13 (ElectricityManager+PulseGroup)
IL_01AF: ldloc.s 9 (System.Int32)
IL_01B1: conv.u1
IL_01B2: stfld System.Byte PulseGroup::m_z
IL_01B7: ldloca.s 14 (ElectricityManager+PulseUnit)
IL_01B9: ldarg.0
IL_01BA: ldfld System.Int32 ElectricityManager::m_pulseGroupCount
IL_01BF: conv.u2
IL_01C0: stfld System.UInt16 PulseUnit::m_group
IL_01C5: ldloca.s 14 (ElectricityManager+PulseUnit)
IL_01C7: ldc.i4.0
IL_01C8: stfld System.UInt16 PulseUnit::m_node
IL_01CD: ldloca.s 14 (ElectricityManager+PulseUnit)
IL_01CF: ldloc.s 11 (System.Int32)
IL_01D1: conv.u1
IL_01D2: stfld System.Byte PulseUnit::m_x
IL_01D7: ldloca.s 14 (ElectricityManager+PulseUnit)
IL_01D9: ldloc.s 9 (System.Int32)
IL_01DB: conv.u1
IL_01DC: stfld System.Byte PulseUnit::m_z
IL_01E1: ldloca.s 12 (ElectricityManager+Cell)
IL_01E3: ldarg.0
IL_01E4: ldfld System.Int32 ElectricityManager::m_pulseGroupCount
IL_01E9: conv.u2
IL_01EA: stfld System.UInt16 Cell::m_pulseGroup
IL_01EF: ldarg.0
IL_01F0: ldfld PulseGroup[] ElectricityManager::m_pulseGroups
IL_01F5: ldarg.0
IL_01F6: dup
IL_01F7: ldfld System.Int32 ElectricityManager::m_pulseGroupCount
IL_01FC: dup
IL_01FD: stloc.s 15 (System.Int32)
IL_01FF: ldc.i4.1
IL_0200: add
IL_0201: stfld System.Int32 ElectricityManager::m_pulseGroupCount
IL_0206: ldloc.s 15 (System.Int32)
IL_0208: ldelema ElectricityManager+PulseGroup
IL_020D: ldloc.s 13 (ElectricityManager+PulseGroup)
IL_020F: stobj ElectricityManager+PulseGroup
IL_0214: ldarg.0
IL_0215: ldfld PulseUnit[] ElectricityManager::m_pulseUnits
IL_021A: ldarg.0
IL_021B: ldfld System.Int32 ElectricityManager::m_pulseUnitEnd
IL_0220: ldelema ElectricityManager+PulseUnit
IL_0225: ldloc.s 14 (ElectricityManager+PulseUnit)
IL_0227: stobj ElectricityManager+PulseUnit
IL_022C: ldarg.0
IL_022D: dup
IL_022E: ldfld System.Int32 ElectricityManager::m_pulseUnitEnd
IL_0233: ldc.i4.1
IL_0234: add
IL_0235: dup
IL_0236: stloc.s 15 (System.Int32)
IL_0238: stfld System.Int32 ElectricityManager::m_pulseUnitEnd
IL_023D: ldloc.s 15 (System.Int32)
IL_023F: ldarg.0
IL_0240: ldfld PulseUnit[] ElectricityManager::m_pulseUnits
IL_0245: ldlen
IL_0246: conv.i4
IL_0247: bne.un => Label15
IL_024C: ldarg.0
IL_024D: ldc.i4.0
IL_024E: stfld System.Int32 ElectricityManager::m_pulseUnitEnd
IL_0253: Label15
IL_0253: br => Label16
IL_0258: Label14
IL_0258: ldloca.s 12 (ElectricityManager+Cell)
IL_025A: ldc.i4 65535
IL_025F: stfld System.UInt16 Cell::m_pulseGroup
IL_0264: Label16
IL_0264: ldloca.s 12 (ElectricityManager+Cell)
IL_0266: ldc.i4.0
IL_0267: stfld System.Int16 Cell::m_currentCharge
IL_026C: ldarg.0
IL_026D: dup
IL_026E: ldfld System.Int32 ElectricityManager::m_conductiveCells
IL_0273: ldc.i4.1
IL_0274: add
IL_0275: stfld System.Int32 ElectricityManager::m_conductiveCells
IL_027A: br => Label17
IL_027F: Label13
IL_027F: ldloca.s 12 (ElectricityManager+Cell)
IL_0281: ldc.i4 65535
IL_0286: stfld System.UInt16 Cell::m_pulseGroup
IL_028B: ldloca.s 12 (ElectricityManager+Cell)
IL_028D: ldfld System.Byte Cell::m_conductivity
IL_0292: ldc.i4.s 64
IL_0294: blt => Label18
IL_0299: ldarg.0
IL_029A: dup
IL_029B: ldfld System.Int32 ElectricityManager::m_conductiveCells
IL_02A0: ldc.i4.1
IL_02A1: add
IL_02A2: stfld System.Int32 ElectricityManager::m_conductiveCells
IL_02A7: Label17
IL_02A7: Label18
IL_02A7: ldloca.s 12 (ElectricityManager+Cell)
IL_02A9: ldfld System.Boolean Cell::m_tmpElectrified
IL_02AE: ldloca.s 12 (ElectricityManager+Cell)
IL_02B0: ldfld System.Boolean Cell::m_electrified
IL_02B5: beq => Label19
IL_02BA: ldloca.s 12 (ElectricityManager+Cell)
IL_02BC: ldloca.s 12 (ElectricityManager+Cell)
IL_02BE: ldfld System.Boolean Cell::m_tmpElectrified
IL_02C3: stfld System.Boolean Cell::m_electrified
IL_02C8: Label19
IL_02C8: ldloca.s 12 (ElectricityManager+Cell)
IL_02CA: ldloca.s 12 (ElectricityManager+Cell)
IL_02CC: ldfld System.UInt16 Cell::m_pulseGroup
IL_02D1: ldc.i4 65535
IL_02D6: ceq
IL_02D8: ldc.i4.0
IL_02D9: ceq
IL_02DB: stfld System.Boolean Cell::m_tmpElectrified
IL_02E0: ldarg.0
IL_02E1: ldfld Cell[] ElectricityManager::m_electricityGrid
IL_02E6: ldloc.s 10 (System.Int32)
IL_02E8: ldelema ElectricityManager+Cell
IL_02ED: ldloc.s 12 (ElectricityManager+Cell)
IL_02EF: stobj ElectricityManager+Cell
IL_02F4: ldloc.s 10 (System.Int32)
IL_02F6: ldc.i4.1
IL_02F7: add
IL_02F8: stloc.s 10 (System.Int32)
IL_02FA: ldloc.s 11 (System.Int32)
IL_02FC: ldc.i4.1
IL_02FD: add
IL_02FE: stloc.s 11 (System.Int32)
IL_0300: Label12
IL_0300: ldloc.s 11 (System.Int32)
IL_0302: ldc.i4 256
IL_0307: blt => Label20
IL_030C: ldloc.s 9 (System.Int32)
IL_030E: ldc.i4.1
IL_030F: add
IL_0310: stloc.s 9 (System.Int32)
IL_0312: Label11
IL_0312: ldloc.s 9 (System.Int32)
IL_0314: ldloc.s 8 (System.Int32)
IL_0316: ble => Label21
IL_031B: br => Label22
IL_0320: Label2
IL_0320: ldloc.1
IL_0321: ldc.i4.s 127
IL_0323: sub
IL_0324: ldarg.0
IL_0325: ldfld System.Int32 ElectricityManager::m_conductiveCells
IL_032A: mul
IL_032B: ldc.i4.7
IL_032C: shr
IL_032D: stloc.s 16 (System.Int32)
IL_032F: ldloc.1
IL_0330: ldc.i4 255
IL_0335: bne.un => Label23
IL_033A: ldc.i4 1000000000
IL_033F: stloc.s 16 (System.Int32)
IL_0341: Label23
IL_0341: br => Label24
IL_0346: Label54
IL_0346: ldarg.0
IL_0347: ldc.i4.0
IL_0348: stfld System.Boolean ElectricityManager::m_canContinue
IL_034D: ldarg.0
IL_034E: ldfld System.Int32 ElectricityManager::m_pulseUnitEnd
IL_0353: stloc.s 17 (System.Int32)
IL_0355: br => Label25
IL_035A: Label52
IL_035A: ldarg.0
IL_035B: ldfld PulseUnit[] ElectricityManager::m_pulseUnits
IL_0360: ldarg.0
IL_0361: ldfld System.Int32 ElectricityManager::m_pulseUnitStart
IL_0366: ldelema ElectricityManager+PulseUnit
IL_036B: ldobj ElectricityManager+PulseUnit
IL_0370: stloc.s 18 (ElectricityManager+PulseUnit)
IL_0372: ldarg.0
IL_0373: dup
IL_0374: ldfld System.Int32 ElectricityManager::m_pulseUnitStart
IL_0379: ldc.i4.1
IL_037A: add
IL_037B: dup
IL_037C: stloc.s 15 (System.Int32)
IL_037E: stfld System.Int32 ElectricityManager::m_pulseUnitStart
IL_0383: ldloc.s 15 (System.Int32)
IL_0385: ldarg.0
IL_0386: ldfld PulseUnit[] ElectricityManager::m_pulseUnits
IL_038B: ldlen
IL_038C: conv.i4
IL_038D: bne.un => Label26
IL_0392: ldarg.0
IL_0393: ldc.i4.0
IL_0394: stfld System.Int32 ElectricityManager::m_pulseUnitStart
IL_0399: Label26
IL_0399: ldloca.s 18 (ElectricityManager+PulseUnit)
IL_039B: ldarg.0
IL_039C: ldloca.s 18 (ElectricityManager+PulseUnit)
IL_039E: ldfld System.UInt16 PulseUnit::m_group
IL_03A3: call System.UInt16 ElectricityManager::GetRootGroup(System.UInt16
group)
IL_03A8: stfld System.UInt16 PulseUnit::m_group
IL_03AD: ldarg.0
IL_03AE: ldfld PulseGroup[] ElectricityManager::m_pulseGroups
IL_03B3: ldloca.s 18 (ElectricityManager+PulseUnit)
IL_03B5: ldfld System.UInt16 PulseUnit::m_group
IL_03BA: ldelema ElectricityManager+PulseGroup
IL_03BF: ldfld System.UInt32 PulseGroup::m_curCharge
IL_03C4: stloc.s 19 (System.UInt32)
IL_03C6: ldloca.s 18 (ElectricityManager+PulseUnit)
IL_03C8: ldfld System.UInt16 PulseUnit::m_node
IL_03CD: brtrue => Label27
IL_03D2: ldloca.s 18 (ElectricityManager+PulseUnit)
IL_03D4: ldfld System.Byte PulseUnit::m_z
IL_03D9: ldc.i4 256
IL_03DE: mul
IL_03DF: ldloca.s 18 (ElectricityManager+PulseUnit)
IL_03E1: ldfld System.Byte PulseUnit::m_x
IL_03E6: add
IL_03E7: stloc.s 20 (System.Int32)
IL_03E9: ldarg.0
IL_03EA: ldfld Cell[] ElectricityManager::m_electricityGrid
IL_03EF: ldloc.s 20 (System.Int32)
IL_03F1: ldelema ElectricityManager+Cell
IL_03F6: ldobj ElectricityManager+Cell
IL_03FB: stloc.s 21 (ElectricityManager+Cell)
IL_03FD: ldloca.s 21 (ElectricityManager+Cell)
IL_03FF: ldfld System.Byte Cell::m_conductivity
IL_0404: brfalse => Label28
IL_0409: ldloca.s 21 (ElectricityManager+Cell)
IL_040B: ldfld System.Boolean Cell::m_tmpElectrified
IL_0410: brtrue => Label29
IL_0415: ldloc.s 19 (System.UInt32)
IL_0417: brfalse => Label30
IL_041C: ldloca.s 21 (ElectricityManager+Cell)
IL_041E: ldfld System.Int16 Cell::m_currentCharge
IL_0423: neg
IL_0424: ldc.i4.0
IL_0425: ldloc.s 19 (System.UInt32)
IL_0427: call static System.Int32 UnityEngine.Mathf::Clamp(System.Int32
value, System.Int32 min, System.Int32 max)
IL_042C: stloc.s 22 (System.Int32)
IL_042E: ldloc.s 19 (System.UInt32)
IL_0430: ldloc.s 22 (System.Int32)
IL_0432: sub
IL_0433: stloc.s 19 (System.UInt32)
IL_0435: ldloca.s 21 (ElectricityManager+Cell)
IL_0437: dup
IL_0438: ldfld System.Int16 Cell::m_currentCharge
IL_043D: ldloc.s 22 (System.Int32)
IL_043F: conv.i2
IL_0440: add
IL_0441: conv.i2
IL_0442: stfld System.Int16 Cell::m_currentCharge
IL_0447: ldloca.s 21 (ElectricityManager+Cell)
IL_0449: ldfld System.Int16 Cell::m_currentCharge
IL_044E: brtrue => Label31
IL_0453: ldloca.s 21 (ElectricityManager+Cell)
IL_0455: ldc.i4.1
IL_0456: stfld System.Boolean Cell::m_tmpElectrified
IL_045B: Label31
IL_045B: ldarg.0
IL_045C: ldfld Cell[] ElectricityManager::m_electricityGrid
IL_0461: ldloc.s 20 (System.Int32)
IL_0463: ldelema ElectricityManager+Cell
IL_0468: ldloc.s 21 (ElectricityManager+Cell)
IL_046A: stobj ElectricityManager+Cell
IL_046F: ldarg.0
IL_0470: ldfld PulseGroup[] ElectricityManager::m_pulseGroups
IL_0475: ldloca.s 18 (ElectricityManager+PulseUnit)
IL_0477: ldfld System.UInt16 PulseUnit::m_group
IL_047C: ldelema ElectricityManager+PulseGroup
IL_0481: ldloc.s 19 (System.UInt32)
IL_0483: stfld System.UInt32 PulseGroup::m_curCharge
IL_0488: Label28
IL_0488: Label29
IL_0488: Label30
IL_0488: ldloc.s 19 (System.UInt32)
IL_048A: brfalse => Label32
IL_048F: ldloca.s 21 (ElectricityManager+Cell)
IL_0491: ldfld System.Byte Cell::m_conductivity
IL_0496: ldc.i4.s 64
IL_0498: blt => Label33
IL_049D: ldc.i4.1
IL_049E: br => Label34
IL_04A3: Label33
IL_04A3: ldc.i4.s 64
IL_04A5: Label34
IL_04A5: stloc.s 23 (System.Int32)
IL_04A7: ldarg.0
IL_04A8: dup
IL_04A9: ldfld System.Int32 ElectricityManager::m_processedCells
IL_04AE: ldc.i4.1
IL_04AF: add
IL_04B0: stfld System.Int32 ElectricityManager::m_processedCells
IL_04B5: ldloca.s 18 (ElectricityManager+PulseUnit)
IL_04B7: ldfld System.Byte PulseUnit::m_z
IL_04BC: ldc.i4.0
IL_04BD: ble => Label35
IL_04C2: ldarg.0
IL_04C3: ldarg.0
IL_04C4: ldfld Cell[] ElectricityManager::m_electricityGrid
IL_04C9: ldloc.s 20 (System.Int32)
IL_04CB: ldc.i4 256
IL_04D0: sub
IL_04D1: ldelema ElectricityManager+Cell
IL_04D6: ldloca.s 18 (ElectricityManager+PulseUnit)
IL_04D8: ldfld System.UInt16 PulseUnit::m_group
IL_04DD: ldloca.s 18 (ElectricityManager+PulseUnit)
IL_04DF: ldfld System.Byte PulseUnit::m_x
IL_04E4: ldloca.s 18 (ElectricityManager+PulseUnit)
IL_04E6: ldfld System.Byte PulseUnit::m_z
IL_04EB: ldc.i4.1
IL_04EC: sub
IL_04ED: ldloc.s 23 (System.Int32)
IL_04EF: call System.Void ElectricityManager::ConductToCell(Cell& cell,
System.UInt16 group, System.Int32 x, System.Int32 z, System.Int32 limit)
IL_04F4: Label35
IL_04F4: ldloca.s 18 (ElectricityManager+PulseUnit)
IL_04F6: ldfld System.Byte PulseUnit::m_x
IL_04FB: ldc.i4.0
IL_04FC: ble => Label36
IL_0501: ldarg.0
IL_0502: ldarg.0
IL_0503: ldfld Cell[] ElectricityManager::m_electricityGrid
IL_0508: ldloc.s 20 (System.Int32)
IL_050A: ldc.i4.1
IL_050B: sub
IL_050C: ldelema ElectricityManager+Cell
IL_0511: ldloca.s 18 (ElectricityManager+PulseUnit)
IL_0513: ldfld System.UInt16 PulseUnit::m_group
IL_0518: ldloca.s 18 (ElectricityManager+PulseUnit)
IL_051A: ldfld System.Byte PulseUnit::m_x
IL_051F: ldc.i4.1
IL_0520: sub
IL_0521: ldloca.s 18 (ElectricityManager+PulseUnit)
IL_0523: ldfld System.Byte PulseUnit::m_z
IL_0528: ldloc.s 23 (System.Int32)
IL_052A: call System.Void ElectricityManager::ConductToCell(Cell& cell,
System.UInt16 group, System.Int32 x, System.Int32 z, System.Int32 limit)
IL_052F: Label36
IL_052F: ldloca.s 18 (ElectricityManager+PulseUnit)
IL_0531: ldfld System.Byte PulseUnit::m_z
IL_0536: ldc.i4 255
IL_053B: bge => Label37
IL_0540: ldarg.0
IL_0541: ldarg.0
IL_0542: ldfld Cell[] ElectricityManager::m_electricityGrid
IL_0547: ldloc.s 20 (System.Int32)
IL_0549: ldc.i4 256
IL_054E: add
IL_054F: ldelema ElectricityManager+Cell
IL_0554: ldloca.s 18 (ElectricityManager+PulseUnit)
IL_0556: ldfld System.UInt16 PulseUnit::m_group
IL_055B: ldloca.s 18 (ElectricityManager+PulseUnit)
IL_055D: ldfld System.Byte PulseUnit::m_x
IL_0562: ldloca.s 18 (ElectricityManager+PulseUnit)
IL_0564: ldfld System.Byte PulseUnit::m_z
IL_0569: ldc.i4.1
IL_056A: add
IL_056B: ldloc.s 23 (System.Int32)
IL_056D: call System.Void ElectricityManager::ConductToCell(Cell& cell,
System.UInt16 group, System.Int32 x, System.Int32 z, System.Int32 limit)
IL_0572: Label37
IL_0572: ldloca.s 18 (ElectricityManager+PulseUnit)
IL_0574: ldfld System.Byte PulseUnit::m_x
IL_0579: ldc.i4 255
IL_057E: bge => Label38
IL_0583: ldarg.0
IL_0584: ldarg.0
IL_0585: ldfld Cell[] ElectricityManager::m_electricityGrid
IL_058A: ldloc.s 20 (System.Int32)
IL_058C: ldc.i4.1
IL_058D: add
IL_058E: ldelema ElectricityManager+Cell
IL_0593: ldloca.s 18 (ElectricityManager+PulseUnit)
IL_0595: ldfld System.UInt16 PulseUnit::m_group
IL_059A: ldloca.s 18 (ElectricityManager+PulseUnit)
IL_059C: ldfld System.Byte PulseUnit::m_x
IL_05A1: ldc.i4.1
IL_05A2: add
IL_05A3: ldloca.s 18 (ElectricityManager+PulseUnit)
IL_05A5: ldfld System.Byte PulseUnit::m_z
IL_05AA: ldloc.s 23 (System.Int32)
IL_05AC: call System.Void ElectricityManager::ConductToCell(Cell& cell,
System.UInt16 group, System.Int32 x, System.Int32 z, System.Int32 limit)
IL_05B1: Label38
IL_05B1: ldarg.0
IL_05B2: ldloca.s 18 (ElectricityManager+PulseUnit)
IL_05B4: ldfld System.UInt16 PulseUnit::m_group
IL_05B9: ldloca.s 18 (ElectricityManager+PulseUnit)
IL_05BB: ldfld System.Byte PulseUnit::m_x
IL_05C0: ldloca.s 18 (ElectricityManager+PulseUnit)
IL_05C2: ldfld System.Byte PulseUnit::m_z
IL_05C7: call System.Void ElectricityManager::ConductToNodes(System.UInt16
group, System.Int32 cellX, System.Int32 cellZ)
IL_05CC: br => Label39
IL_05D1: Label32
IL_05D1: ldarg.0
IL_05D2: ldfld PulseUnit[] ElectricityManager::m_pulseUnits
IL_05D7: ldarg.0
IL_05D8: ldfld System.Int32 ElectricityManager::m_pulseUnitEnd
IL_05DD: ldelema ElectricityManager+PulseUnit
IL_05E2: ldloc.s 18 (ElectricityManager+PulseUnit)
IL_05E4: stobj ElectricityManager+PulseUnit
IL_05E9: ldarg.0
IL_05EA: dup
IL_05EB: ldfld System.Int32 ElectricityManager::m_pulseUnitEnd
IL_05F0: ldc.i4.1
IL_05F1: add
IL_05F2: dup
IL_05F3: stloc.s 15 (System.Int32)
IL_05F5: stfld System.Int32 ElectricityManager::m_pulseUnitEnd
IL_05FA: ldloc.s 15 (System.Int32)
IL_05FC: ldarg.0
IL_05FD: ldfld PulseUnit[] ElectricityManager::m_pulseUnits
IL_0602: ldlen
IL_0603: conv.i4
IL_0604: bne.un => Label40
IL_0609: ldarg.0
IL_060A: ldc.i4.0
IL_060B: stfld System.Int32 ElectricityManager::m_pulseUnitEnd
IL_0610: Label39
IL_0610: Label40
IL_0610: br => Label41
IL_0615: Label27
IL_0615: ldloc.s 19 (System.UInt32)
IL_0617: brfalse => Label42
IL_061C: ldarg.0
IL_061D: dup
IL_061E: ldfld System.Int32 ElectricityManager::m_processedCells
IL_0623: ldc.i4.1
IL_0624: add
IL_0625: stfld System.Int32 ElectricityManager::m_processedCells
IL_062A: call static NetManager
ColossalFramework.Singleton`1<NetManager>::get_instance()
IL_062F: ldfld Array16`1<NetNode> NetManager::m_nodes
IL_0634: ldfld NetNode[] Array16`1<NetNode>::m_buffer
IL_0639: ldloca.s 18 (ElectricityManager+PulseUnit)
IL_063B: ldfld System.UInt16 PulseUnit::m_node
IL_0640: ldelema NetNode
IL_0645: ldobj NetNode
IL_064A: stloc.s 24 (NetNode)
IL_064C: ldloca.s 24 (NetNode)
IL_064E: ldfld Flags NetNode::m_flags
IL_0653: brfalse => Label43
IL_0658: ldloca.s 24 (NetNode)
IL_065A: ldfld System.UInt32 NetNode::m_buildIndex
IL_065F: ldloc.0
IL_0660: ldc.i4.s -128
IL_0662: and
IL_0663: bge.un => Label44
IL_0668: ldarg.0
IL_0669: ldloca.s 18 (ElectricityManager+PulseUnit)
IL_066B: ldfld System.UInt16 PulseUnit::m_group
IL_0670: ldloca.s 24 (NetNode)
IL_0672: ldflda UnityEngine.Vector3 NetNode::m_position
IL_0677: ldfld System.Single UnityEngine.Vector3::x
IL_067C: ldloca.s 24 (NetNode)
IL_067E: ldflda UnityEngine.Vector3 NetNode::m_position
IL_0683: ldfld System.Single UnityEngine.Vector3::z
IL_0688: call System.Void ElectricityManager::ConductToCells(System.UInt16
group, System.Single worldX, System.Single worldZ)
IL_068D: ldc.i4.0
IL_068E: stloc.s 25 (System.Int32)
IL_0690: br => Label45
IL_0695: Label49
IL_0695: ldloca.s 24 (NetNode)
IL_0697: ldloc.s 25 (System.Int32)
IL_0699: call System.UInt16 NetNode::GetSegment(System.Int32 index)
IL_069E: stloc.s 26 (System.UInt16)
IL_06A0: ldloc.s 26 (System.UInt16)
IL_06A2: brfalse => Label46
IL_06A7: call static NetManager
ColossalFramework.Singleton`1<NetManager>::get_instance()
IL_06AC: ldfld Array16`1<NetSegment> NetManager::m_segments
IL_06B1: ldfld NetSegment[] Array16`1<NetSegment>::m_buffer
IL_06B6: ldloc.s 26 (System.UInt16)
IL_06B8: ldelema NetSegment
IL_06BD: ldfld System.UInt16 NetSegment::m_startNode
IL_06C2: stloc.s 27 (System.UInt16)
IL_06C4: call static NetManager
ColossalFramework.Singleton`1<NetManager>::get_instance()
IL_06C9: ldfld Array16`1<NetSegment> NetManager::m_segments
IL_06CE: ldfld NetSegment[] Array16`1<NetSegment>::m_buffer
IL_06D3: ldloc.s 26 (System.UInt16)
IL_06D5: ldelema NetSegment
IL_06DA: ldfld System.UInt16 NetSegment::m_endNode
IL_06DF: stloc.s 28 (System.UInt16)
IL_06E1: ldloc.s 27 (System.UInt16)
IL_06E3: ldloca.s 18 (ElectricityManager+PulseUnit)
IL_06E5: ldfld System.UInt16 PulseUnit::m_node
IL_06EA: bne.un => Label47
IL_06EF: ldloc.s 28 (System.UInt16)
IL_06F1: br => Label48
IL_06F6: Label47
IL_06F6: ldloc.s 27 (System.UInt16)
IL_06F8: Label48
IL_06F8: stloc.s 29 (System.UInt16)
IL_06FA: ldarg.0
IL_06FB: ldloc.s 29 (System.UInt16)
IL_06FD: call static NetManager
ColossalFramework.Singleton`1<NetManager>::get_instance()
IL_0702: ldfld Array16`1<NetNode> NetManager::m_nodes
IL_0707: ldfld NetNode[] Array16`1<NetNode>::m_buffer
IL_070C: ldloc.s 29 (System.UInt16)
IL_070E: ldelema NetNode
IL_0713: ldloca.s 18 (ElectricityManager+PulseUnit)
IL_0715: ldfld System.UInt16 PulseUnit::m_group
IL_071A: ldc.r4 -100000
IL_071F: ldc.r4 -100000
IL_0724: ldc.r4 100000
IL_0729: ldc.r4 100000
IL_072E: call System.Void ElectricityManager::ConductToNode(System.UInt16
nodeIndex, NetNode& node, System.UInt16 group, System.Single minX, System.Single
minZ, System.Single maxX, System.Single maxZ)
IL_0733: Label46
IL_0733: ldloc.s 25 (System.Int32)
IL_0735: ldc.i4.1
IL_0736: add
IL_0737: stloc.s 25 (System.Int32)
IL_0739: Label45
IL_0739: ldloc.s 25 (System.Int32)
IL_073B: ldc.i4.8
IL_073C: blt => Label49
IL_0741: Label43
IL_0741: Label44
IL_0741: br => Label50
IL_0746: Label42
IL_0746: ldarg.0
IL_0747: ldfld PulseUnit[] ElectricityManager::m_pulseUnits
IL_074C: ldarg.0
IL_074D: ldfld System.Int32 ElectricityManager::m_pulseUnitEnd
IL_0752: ldelema ElectricityManager+PulseUnit
IL_0757: ldloc.s 18 (ElectricityManager+PulseUnit)
IL_0759: stobj ElectricityManager+PulseUnit
IL_075E: ldarg.0
IL_075F: dup
IL_0760: ldfld System.Int32 ElectricityManager::m_pulseUnitEnd
IL_0765: ldc.i4.1
IL_0766: add
IL_0767: dup
IL_0768: stloc.s 15 (System.Int32)
IL_076A: stfld System.Int32 ElectricityManager::m_pulseUnitEnd
IL_076F: ldloc.s 15 (System.Int32)
IL_0771: ldarg.0
IL_0772: ldfld PulseUnit[] ElectricityManager::m_pulseUnits
IL_0777: ldlen
IL_0778: conv.i4
IL_0779: bne.un => Label51
IL_077E: ldarg.0
IL_077F: ldc.i4.0
IL_0780: stfld System.Int32 ElectricityManager::m_pulseUnitEnd
IL_0785: Label25
IL_0785: Label41
IL_0785: Label50
IL_0785: Label51
IL_0785: ldarg.0
IL_0786: ldfld System.Int32 ElectricityManager::m_pulseUnitStart
IL_078B: ldloc.s 17 (System.Int32)
IL_078D: bne.un => Label52
IL_0792: Label24
IL_0792: ldarg.0
IL_0793: ldfld System.Boolean ElectricityManager::m_canContinue
IL_0798: brfalse => Label53
IL_079D: ldarg.0
IL_079E: ldfld System.Int32 ElectricityManager::m_processedCells
IL_07A3: ldloc.s 16 (System.Int32)
IL_07A5: blt => Label54
IL_07AA: Label53
IL_07AA: ldloc.1
IL_07AB: ldc.i4 255
IL_07B0: bne.un => Label55
IL_07B5: ldc.i4.0
IL_07B6: stloc.s 30 (System.Int32)
IL_07B8: br => Label56
IL_07BD: Label58
IL_07BD: ldarg.0
IL_07BE: ldfld PulseGroup[] ElectricityManager::m_pulseGroups
IL_07C3: ldloc.s 30 (System.Int32)
IL_07C5: ldelema ElectricityManager+PulseGroup
IL_07CA: ldobj ElectricityManager+PulseGroup
IL_07CF: stloc.s 31 (ElectricityManager+PulseGroup)
IL_07D1: ldloca.s 31 (ElectricityManager+PulseGroup)
IL_07D3: ldfld System.UInt16 PulseGroup::m_mergeIndex
IL_07D8: ldc.i4 65535
IL_07DD: beq => Label57
IL_07E2: ldarg.0
IL_07E3: ldfld PulseGroup[] ElectricityManager::m_pulseGroups
IL_07E8: ldloca.s 31 (ElectricityManager+PulseGroup)
IL_07EA: ldfld System.UInt16 PulseGroup::m_mergeIndex
IL_07EF: ldelema ElectricityManager+PulseGroup
IL_07F4: ldobj ElectricityManager+PulseGroup
IL_07F9: stloc.s 32 (ElectricityManager+PulseGroup)
IL_07FB: ldloca.s 31 (ElectricityManager+PulseGroup)
IL_07FD: ldloca.s 32 (ElectricityManager+PulseGroup)
IL_07FF: ldfld System.UInt32 PulseGroup::m_curCharge
IL_0804: conv.u8
IL_0805: ldloca.s 31 (ElectricityManager+PulseGroup)
IL_0807: ldfld System.UInt32 PulseGroup::m_origCharge
IL_080C: conv.u8
IL_080D: mul
IL_080E: ldloca.s 32 (ElectricityManager+PulseGroup)
IL_0810: ldfld System.UInt32 PulseGroup::m_origCharge
IL_0815: conv.u8
IL_0816: div.un
IL_0817: conv.u4
IL_0818: stfld System.UInt32 PulseGroup::m_curCharge
IL_081D: ldloca.s 32 (ElectricityManager+PulseGroup)
IL_081F: dup
IL_0820: ldfld System.UInt32 PulseGroup::m_curCharge
IL_0825: ldloca.s 31 (ElectricityManager+PulseGroup)
IL_0827: ldfld System.UInt32 PulseGroup::m_curCharge
IL_082C: sub
IL_082D: stfld System.UInt32 PulseGroup::m_curCharge
IL_0832: ldloca.s 32 (ElectricityManager+PulseGroup)
IL_0834: dup
IL_0835: ldfld System.UInt32 PulseGroup::m_origCharge
IL_083A: ldloca.s 31 (ElectricityManager+PulseGroup)
IL_083C: ldfld System.UInt32 PulseGroup::m_origCharge
IL_0841: sub
IL_0842: stfld System.UInt32 PulseGroup::m_origCharge
IL_0847: ldarg.0
IL_0848: ldfld PulseGroup[] ElectricityManager::m_pulseGroups
IL_084D: ldloca.s 31 (ElectricityManager+PulseGroup)
IL_084F: ldfld System.UInt16 PulseGroup::m_mergeIndex
IL_0854: ldelema ElectricityManager+PulseGroup
IL_0859: ldloc.s 32 (ElectricityManager+PulseGroup)
IL_085B: stobj ElectricityManager+PulseGroup
IL_0860: ldarg.0
IL_0861: ldfld PulseGroup[] ElectricityManager::m_pulseGroups
IL_0866: ldloc.s 30 (System.Int32)
IL_0868: ldelema ElectricityManager+PulseGroup
IL_086D: ldloc.s 31 (ElectricityManager+PulseGroup)
IL_086F: stobj ElectricityManager+PulseGroup
IL_0874: Label57
IL_0874: ldloc.s 30 (System.Int32)
IL_0876: ldc.i4.1
IL_0877: add
IL_0878: stloc.s 30 (System.Int32)
IL_087A: Label56
IL_087A: ldloc.s 30 (System.Int32)
IL_087C: ldarg.0
IL_087D: ldfld System.Int32 ElectricityManager::m_pulseGroupCount
IL_0882: blt => Label58
IL_0887: ldc.i4.0
IL_0888: stloc.s 33 (System.Int32)
IL_088A: br => Label59
IL_088F: Label62
IL_088F: ldarg.0
IL_0890: ldfld PulseGroup[] ElectricityManager::m_pulseGroups
IL_0895: ldloc.s 33 (System.Int32)
IL_0897: ldelema ElectricityManager+PulseGroup
IL_089C: ldobj ElectricityManager+PulseGroup
IL_08A1: stloc.s 34 (ElectricityManager+PulseGroup)
IL_08A3: ldloca.s 34 (ElectricityManager+PulseGroup)
IL_08A5: ldfld System.UInt32 PulseGroup::m_curCharge
IL_08AA: brfalse => Label60
IL_08AF: ldloca.s 34 (ElectricityManager+PulseGroup)
IL_08B1: ldfld System.Byte PulseGroup::m_z
IL_08B6: ldc.i4 256
IL_08BB: mul
IL_08BC: ldloca.s 34 (ElectricityManager+PulseGroup)
IL_08BE: ldfld System.Byte PulseGroup::m_x
IL_08C3: add
IL_08C4: stloc.s 35 (System.Int32)
IL_08C6: ldarg.0
IL_08C7: ldfld Cell[] ElectricityManager::m_electricityGrid
IL_08CC: ldloc.s 35 (System.Int32)
IL_08CE: ldelema ElectricityManager+Cell
IL_08D3: ldobj ElectricityManager+Cell
IL_08D8: stloc.s 36 (ElectricityManager+Cell)
IL_08DA: ldloca.s 36 (ElectricityManager+Cell)
IL_08DC: ldfld System.Byte Cell::m_conductivity
IL_08E1: brfalse => Label61
IL_08E6: ldloca.s 36 (ElectricityManager+Cell)
IL_08E8: dup
IL_08E9: ldfld System.UInt16 Cell::m_extraCharge
IL_08EE: ldloca.s 34 (ElectricityManager+PulseGroup)
IL_08F0: ldfld System.UInt32 PulseGroup::m_curCharge
IL_08F5: ldc.i4 32767
IL_08FA: ldloca.s 36 (ElectricityManager+Cell)
IL_08FC: ldfld System.UInt16 Cell::m_extraCharge
IL_0901: sub
IL_0902: call static System.Int32 UnityEngine.Mathf::Min(System.Int32 a,
System.Int32 b)
IL_0907: conv.u2
IL_0908: add
IL_0909: conv.u2
IL_090A: stfld System.UInt16 Cell::m_extraCharge
IL_090F: Label61
IL_090F: ldarg.0
IL_0910: ldfld Cell[] ElectricityManager::m_electricityGrid
IL_0915: ldloc.s 35 (System.Int32)
IL_0917: ldelema ElectricityManager+Cell
IL_091C: ldloc.s 36 (ElectricityManager+Cell)
IL_091E: stobj ElectricityManager+Cell
IL_0923: Label60
IL_0923: ldloc.s 33 (System.Int32)
IL_0925: ldc.i4.1
IL_0926: add
IL_0927: stloc.s 33 (System.Int32)
IL_0929: Label59
IL_0929: ldloc.s 33 (System.Int32)
IL_092B: ldarg.0
IL_092C: ldfld System.Int32 ElectricityManager::m_pulseGroupCount
IL_0931: blt => Label62
IL_0936: // end original
IL_0936: Label0
IL_0936: Label1
IL_0936: Label22
IL_0936: Label55
IL_0936: ret
DONE

### Patch: System.Void ElectricityManager::ConductToNode(System.UInt16 nodeIndex,


NetNode& node, System.UInt16 group, System.Single minX, System.Single minZ,
System.Single maxX, System.Single maxZ)
### Replacement: static System.Void
ElectricityManager::ElectricityManager.ConductToNode_Patch0(ElectricityManager
this, System.UInt16 nodeIndex, NetNode& node, System.UInt16 group, System.Single
minX, System.Single minZ, System.Single maxX, System.Single maxZ)
IL_0000: Local var 0: NetInfo
IL_0000: Local var 1: ElectricityManager/PulseUnit
IL_0000: Local var 2: System.Int32
IL_0000: Local var 3: System.UInt16
IL_0000: // start original
IL_0000: ldarg.2
IL_0001: ldflda UnityEngine.Vector3 NetNode::m_position
IL_0006: ldfld System.Single UnityEngine.Vector3::x
IL_000B: ldarg.s 4
IL_000D: blt.un => Label0
IL_0012: ldarg.2
IL_0013: ldflda UnityEngine.Vector3 NetNode::m_position
IL_0018: ldfld System.Single UnityEngine.Vector3::z
IL_001D: ldarg.s 5
IL_001F: blt.un => Label1
IL_0024: ldarg.2
IL_0025: ldflda UnityEngine.Vector3 NetNode::m_position
IL_002A: ldfld System.Single UnityEngine.Vector3::x
IL_002F: ldarg.s 6
IL_0031: bgt.un => Label2
IL_0036: ldarg.2
IL_0037: ldflda UnityEngine.Vector3 NetNode::m_position
IL_003C: ldfld System.Single UnityEngine.Vector3::z
IL_0041: ldarg.s 7
IL_0043: bgt.un => Label3
IL_0048: ldarg.2
IL_0049: call static System.Boolean
ElectricRoads.Overrides.ElectricRoadsOverrides::CheckElectricConductibility(NetNode
& node)
IL_004E: brfalse => Label5
IL_0053: Label4
IL_0053: ldarg.0
IL_0054: ldfld System.UInt16[] ElectricityManager::m_nodeGroups
IL_0059: ldarg.1
IL_005A: ldelem.u2
IL_005B: ldc.i4 65535
IL_0060: bne.un => Label6
IL_0065: ldloca.s 1 (ElectricityManager+PulseUnit)
IL_0067: ldarg.3
IL_0068: stfld System.UInt16 PulseUnit::m_group
IL_006D: ldloca.s 1 (ElectricityManager+PulseUnit)
IL_006F: ldarg.1
IL_0070: stfld System.UInt16 PulseUnit::m_node
IL_0075: ldloca.s 1 (ElectricityManager+PulseUnit)
IL_0077: ldc.i4.0
IL_0078: stfld System.Byte PulseUnit::m_x
IL_007D: ldloca.s 1 (ElectricityManager+PulseUnit)
IL_007F: ldc.i4.0
IL_0080: stfld System.Byte PulseUnit::m_z
IL_0085: ldarg.0
IL_0086: ldfld PulseUnit[] ElectricityManager::m_pulseUnits
IL_008B: ldarg.0
IL_008C: ldfld System.Int32 ElectricityManager::m_pulseUnitEnd
IL_0091: ldelema ElectricityManager+PulseUnit
IL_0096: ldloc.1
IL_0097: stobj ElectricityManager+PulseUnit
IL_009C: ldarg.0
IL_009D: dup
IL_009E: ldfld System.Int32 ElectricityManager::m_pulseUnitEnd
IL_00A3: ldc.i4.1
IL_00A4: add
IL_00A5: dup
IL_00A6: stloc.2
IL_00A7: stfld System.Int32 ElectricityManager::m_pulseUnitEnd
IL_00AC: ldloc.2
IL_00AD: ldarg.0
IL_00AE: ldfld PulseUnit[] ElectricityManager::m_pulseUnits
IL_00B3: ldlen
IL_00B4: conv.i4
IL_00B5: bne.un => Label7
IL_00BA: ldarg.0
IL_00BB: ldc.i4.0
IL_00BC: stfld System.Int32 ElectricityManager::m_pulseUnitEnd
IL_00C1: Label7
IL_00C1: ldarg.0
IL_00C2: ldfld System.UInt16[] ElectricityManager::m_nodeGroups
IL_00C7: ldarg.1
IL_00C8: ldarg.3
IL_00C9: stelem.i2
IL_00CA: ldarg.0
IL_00CB: ldc.i4.1
IL_00CC: stfld System.Boolean ElectricityManager::m_canContinue
IL_00D1: br => Label8
IL_00D6: Label6
IL_00D6: ldarg.0
IL_00D7: ldarg.0
IL_00D8: ldfld System.UInt16[] ElectricityManager::m_nodeGroups
IL_00DD: ldarg.1
IL_00DE: ldelem.u2
IL_00DF: call System.UInt16 ElectricityManager::GetRootGroup(System.UInt16
group)
IL_00E4: stloc.3
IL_00E5: ldloc.3
IL_00E6: ldarg.3
IL_00E7: beq => Label9
IL_00EC: ldarg.0
IL_00ED: ldarg.3
IL_00EE: ldloc.3
IL_00EF: call System.Void ElectricityManager::MergeGroups(System.UInt16 root,
System.UInt16 merged)
IL_00F4: ldarg.0
IL_00F5: ldfld System.UInt16[] ElectricityManager::m_nodeGroups
IL_00FA: ldarg.1
IL_00FB: ldarg.3
IL_00FC: stelem.i2
IL_00FD: ldarg.0
IL_00FE: ldc.i4.1
IL_00FF: stfld System.Boolean ElectricityManager::m_canContinue
IL_0104: // end original
IL_0104: Label0
IL_0104: Label1
IL_0104: Label2
IL_0104: Label3
IL_0104: Label5
IL_0104: Label8
IL_0104: Label9
IL_0104: ret
DONE

### Patch: System.Void ElectricityManager::UpdateNodeElectricity(System.Int32


nodeID, System.Int32 value)
### Replacement: static System.Void
ElectricityManager::ElectricityManager.UpdateNodeElectricity_Patch2(ElectricityMana
ger this, System.Int32 nodeID, System.Int32 value)
IL_0000: Local var 0: InfoManager/InfoMode
IL_0000: Local var 1: NetManager
IL_0000: Local var 2: System.Boolean
IL_0000: Local var 3: NetNode/Flags
IL_0000: Local var 4: System.UInt16
IL_0000: Local var 5: BuildingManager
IL_0000: Local var 6: NetNode/Flags
IL_0000: Local var 7: System.Int32
IL_0000: Local var 8: System.UInt16
IL_0000: Local var 9: System.Boolean
IL_0000: Local var 10: System.Boolean
IL_0000: ldc.i4 0
IL_0005: stloc 9 (System.Boolean)
IL_0009: ldc.i4.1
IL_000A: stloc 9 (System.Boolean)
IL_000E: ldc.i4 0
IL_0013: stloc 10 (System.Boolean)
IL_0017: ldloc 9 (System.Boolean)
IL_001B: brfalse => Label1
IL_0020: ldarga 1
IL_0024: ldloca 10 (System.Boolean)
IL_0028: call static System.Void
ElectricRoads.Overrides.ElectricRoadsOverrides::PreConduct(System.Int32& nodeID,
System.Boolean& __state)
IL_002D: Label1
IL_002D: nop
IL_002E: ldloc 9 (System.Boolean)
IL_0032: brfalse => Label0
IL_0037: // start original
IL_0037: call static InfoManager
ColossalFramework.Singleton`1<InfoManager>::get_instance()
IL_003C: callvirt InfoMode InfoManager::get_CurrentMode()
IL_0041: stloc.0
IL_0042: call static NetManager
ColossalFramework.Singleton`1<NetManager>::get_instance()
IL_0047: stloc.1
IL_0048: ldc.i4.0
IL_0049: stloc.2
IL_004A: ldloc.1
IL_004B: ldfld Array16`1<NetNode> NetManager::m_nodes
IL_0050: ldfld NetNode[] Array16`1<NetNode>::m_buffer
IL_0055: ldarg.1
IL_0056: ldelema NetNode
IL_005B: ldfld Flags NetNode::m_flags
IL_0060: stloc.3
IL_0061: ldarg.1
IL_0062: call static System.Boolean
ElectricRoads.Overrides.ElectricRoadsOverrides::CheckNodeTransition(System.Int32
nodeID)
IL_0067: brfalse => Label2
IL_006C: ldloc.1
IL_006D: ldfld Array16`1<NetNode> NetManager::m_nodes
IL_0072: ldfld NetNode[] Array16`1<NetNode>::m_buffer
IL_0077: ldarg.1
IL_0078: ldelema NetNode
IL_007D: dup
IL_007E: ldfld Flags NetNode::m_flags
IL_0083: ldc.i4 -1048577
IL_0088: and
IL_0089: stfld Flags NetNode::m_flags
IL_008E: br => Label12
IL_0093: Label2
IL_0093: ldloc.1
IL_0094: ldfld Array16`1<NetNode> NetManager::m_nodes
IL_0099: ldfld NetNode[] Array16`1<NetNode>::m_buffer
IL_009E: ldarg.1
IL_009F: ldelema NetNode
IL_00A4: ldfld System.UInt16 NetNode::m_building
IL_00A9: stloc.s 4 (System.UInt16)
IL_00AB: ldloc.s 4 (System.UInt16)
IL_00AD: brfalse => Label3
IL_00B2: call static BuildingManager
ColossalFramework.Singleton`1<BuildingManager>::get_instance()
IL_00B7: stloc.s 5 (BuildingManager)
IL_00B9: ldloc.s 5 (BuildingManager)
IL_00BB: ldfld Array16`1<Building> BuildingManager::m_buildings
IL_00C0: ldfld Building[] Array16`1<Building>::m_buffer
IL_00C5: ldloc.s 4 (System.UInt16)
IL_00C7: ldelema Building
IL_00CC: ldfld System.UInt16 Building::m_electricityBuffer
IL_00D1: ldarg.2
IL_00D2: beq => Label4
IL_00D7: ldloc.s 5 (BuildingManager)
IL_00D9: ldfld Array16`1<Building> BuildingManager::m_buildings
IL_00DE: ldfld Building[] Array16`1<Building>::m_buffer
IL_00E3: ldloc.s 4 (System.UInt16)
IL_00E5: ldelema Building
IL_00EA: ldarg.2
IL_00EB: conv.u2
IL_00EC: stfld System.UInt16 Building::m_electricityBuffer
IL_00F1: ldloc.0
IL_00F2: ldc.i4.1
IL_00F3: ceq
IL_00F5: stloc.2
IL_00F6: Label4
IL_00F6: ldloc.2
IL_00F7: brfalse => Label5
IL_00FC: ldloc.s 5 (BuildingManager)
IL_00FE: ldloc.s 4 (System.UInt16)
IL_0100: callvirt System.Void BuildingManager::UpdateBuildingColors(System.UInt16
building)
IL_0105: Label3
IL_0105: Label5
IL_0105: ldloc.3
IL_0106: ldc.i4 -67108865
IL_010B: and
IL_010C: stloc.s 6 (NetNode+Flags)
IL_010E: ldarg.2
IL_010F: brfalse => Label6
IL_0114: ldloc.s 6 (NetNode+Flags)
IL_0116: ldc.i4 67108864
IL_011B: or
IL_011C: stloc.s 6 (NetNode+Flags)
IL_011E: Label6
IL_011E: ldloc.s 6 (NetNode+Flags)
IL_0120: ldloc.3
IL_0121: beq => Label7
IL_0126: ldloc.1
IL_0127: ldfld Array16`1<NetNode> NetManager::m_nodes
IL_012C: ldfld NetNode[] Array16`1<NetNode>::m_buffer
IL_0131: ldarg.1
IL_0132: ldelema NetNode
IL_0137: ldloc.s 6 (NetNode+Flags)
IL_0139: stfld Flags NetNode::m_flags
IL_013E: ldloc.0
IL_013F: ldc.i4.1
IL_0140: ceq
IL_0142: stloc.2
IL_0143: Label7
IL_0143: ldloc.2
IL_0144: brfalse => Label8
IL_0149: ldloc.1
IL_014A: ldarg.1
IL_014B: conv.u2
IL_014C: callvirt System.Void NetManager::UpdateNodeColors(System.UInt16 node)
IL_0151: ldc.i4.0
IL_0152: stloc.s 7 (System.Int32)
IL_0154: br => Label9
IL_0159: Label11
IL_0159: ldloc.1
IL_015A: ldfld Array16`1<NetNode> NetManager::m_nodes
IL_015F: ldfld NetNode[] Array16`1<NetNode>::m_buffer
IL_0164: ldarg.1
IL_0165: ldelema NetNode
IL_016A: ldloc.s 7 (System.Int32)
IL_016C: call System.UInt16 NetNode::GetSegment(System.Int32 index)
IL_0171: stloc.s 8 (System.UInt16)
IL_0173: ldloc.s 8 (System.UInt16)
IL_0175: brfalse => Label10
IL_017A: ldloc.1
IL_017B: ldloc.s 8 (System.UInt16)
IL_017D: callvirt System.Void NetManager::UpdateSegmentColors(System.UInt16
segment)
IL_0182: Label10
IL_0182: ldloc.s 7 (System.Int32)
IL_0184: ldc.i4.1
IL_0185: add
IL_0186: stloc.s 7 (System.Int32)
IL_0188: Label9
IL_0188: ldloc.s 7 (System.Int32)
IL_018A: ldc.i4.8
IL_018B: blt => Label11
IL_0190: // end original
IL_0190: Label8
IL_0190: Label12
IL_0190: Label0
IL_0190: ldarg 1
IL_0194: ldloc 10 (System.Boolean)
IL_0198: call static System.Void
ElectricRoads.Overrides.ElectricRoadsOverrides::PostConduct(System.Int32 nodeID,
System.Boolean __state)
IL_019D: ret
DONE

### Harmony id=com.github.keallu.csl.hideit, version=2.0.4.0, location=E:\


SteamLibrary\steamapps\common\data-0000000022595390, env/clr=2.0.50727.1433,
platform=Win32NT, ptrsize:runtime/env=8/Bits64, Windows
### Started from static System.Void HideIt.Patcher::PatchAll(), location E:\
SteamLibrary\steamapps\common\data-0000000022F4CD30
### At 2023-02-07 02.24.35
### Patch: ColossalFramework.UI.UIComponent
TutorialAdvisorPanel::Show(System.String localeID, System.String icon,
System.String sprite, System.Single timeout, System.Boolean dontUpdate,
System.Boolean hasAudio)
### Replacement: static ColossalFramework.UI.UIComponent
TutorialAdvisorPanel::TutorialAdvisorPanel.Show_Patch1(TutorialAdvisorPanel this,
System.String localeID, System.String icon, System.String sprite, System.Single
timeout, System.Boolean dontUpdate, System.Boolean hasAudio)
IL_0000: Local var 0: ColossalFramework.UI.UIComponent
IL_0000: Local var 1: System.Boolean
IL_0000: ldnull
IL_0001: stloc 0 (ColossalFramework.UI.UIComponent)
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 => Label1
IL_001C: call static System.Boolean
HideIt.TutorialAdvisorPanelShowPatch::Prefix()
IL_0021: stloc 1 (System.Boolean)
IL_0025: Label1
IL_0025: nop
IL_0026: ldloc 1 (System.Boolean)
IL_002A: brfalse => Label0
IL_002F: // start original
IL_002F: ldarg.0
IL_0030: ldarg.s 4
IL_0032: call System.Void TutorialAdvisorPanel::SetTimeout(System.Single
timeout)
IL_0037: ldarg.0
IL_0038: call ColossalFramework.UI.UIComponent
ColossalFramework.UI.UICustomControl::get_component()
IL_003D: callvirt System.Single ColossalFramework.UI.UIComponent::get_opacity()
IL_0042: ldc.r4 1
IL_0047: beq => Label2
IL_004C: ldarg.0
IL_004D: call ColossalFramework.UI.UIComponent
ColossalFramework.UI.UICustomControl::get_component()
IL_0052: callvirt System.Boolean
ColossalFramework.UI.UIComponent::get_isVisible()
IL_0057: brtrue => Label3
IL_005C: Label2
IL_005C: ldarg.0
IL_005D: call ColossalFramework.UI.UIComponent
ColossalFramework.UI.UICustomControl::get_component()
IL_0062: callvirt System.Boolean
ColossalFramework.UI.UIComponent::get_isVisible()
IL_0067: brtrue => Label4
IL_006C: Label3
IL_006C: ldarg.0
IL_006D: call ColossalFramework.UI.UIComponent
ColossalFramework.UI.UICustomControl::get_component()
IL_0072: ldc.i4.1
IL_0073: callvirt System.Void
ColossalFramework.UI.UIComponent::Show(System.Boolean bringToFront)
IL_0078: ldarg.0
IL_0079: call ColossalFramework.UI.UIComponent
ColossalFramework.UI.UICustomControl::get_component()
IL_007E: callvirt System.Void ColossalFramework.UI.UIComponent::Focus()
IL_0083: ldstr "TutorialAdvisorPanel"
IL_0088: ldarg.0
IL_0089: ldftn System.Void TutorialAdvisorPanel::<Show>m__0(System.Single val)
IL_008F: newobj System.Void System.Action`1<System.Single>::.ctor(System.Object
object, System.IntPtr method)
IL_0094: ldc.r4 0
IL_0099: ldc.r4 1
IL_009E: ldarg.0
IL_009F: ldfld System.Single TutorialAdvisorPanel::m_ShowHideTime
IL_00A4: newobj System.Void
ColossalFramework.AnimatedFloat::.ctor(System.Single startValue, System.Single
endValue, System.Single time)
IL_00A9: call static System.Void
ColossalFramework.ValueAnimator::Animate(System.String name,
System.Action`1<System.Single> target, ColossalFramework.AnimatedFloat v)
IL_00AE: Label4
IL_00AE: ldarg.s 5
IL_00B0: brtrue => Label5
IL_00B5: ldarg.0
IL_00B6: ldarg.1
IL_00B7: ldarg.2
IL_00B8: ldarg.3
IL_00B9: call System.Void TutorialAdvisorPanel::SetBindings(System.String
localeID, System.String icon, System.String sprite)
IL_00BE: Label5
IL_00BE: call static System.Boolean
ColossalFramework.Singleton`1<AudioManager>::get_exists()
IL_00C3: brfalse => Label6
IL_00C8: ldarg.s 6
IL_00CA: brfalse => Label7
IL_00CF: ldarg.0
IL_00D0: ldfld UnityEngine.AudioClip TutorialAdvisorPanel::m_NotificationSound
IL_00D5: ldnull
IL_00D6: call static System.Boolean
UnityEngine.Object::op_Inequality(UnityEngine.Object x, UnityEngine.Object y)
IL_00DB: brfalse => Label8
IL_00E0: call static AudioManager
ColossalFramework.Singleton`1<AudioManager>::get_instance()
IL_00E5: ldarg.0
IL_00E6: ldfld UnityEngine.AudioClip TutorialAdvisorPanel::m_NotificationSound
IL_00EB: ldc.r4 1
IL_00F0: callvirt System.Void AudioManager::PlaySound(UnityEngine.AudioClip clip,
System.Single volume)
IL_00F5: Label6
IL_00F5: Label7
IL_00F5: Label8
IL_00F5: ldarg.0
IL_00F6: call ColossalFramework.UI.UIComponent
ColossalFramework.UI.UICustomControl::get_component()
IL_00FB: // end original
IL_00FB: stloc 0 (ColossalFramework.UI.UIComponent)
IL_00FF: Label0
IL_00FF: ldloc 0 (ColossalFramework.UI.UIComponent)
IL_0103: ret
DONE

### Patch: ColossalFramework.UI.UIComponent UnlockingPanel::ShowModal()


### Replacement: static ColossalFramework.UI.UIComponent
UnlockingPanel::UnlockingPanel.ShowModal_Patch1(UnlockingPanel this)
IL_0000: Local var 0: UnlockingPanel/<ShowModal>c__AnonStorey1
IL_0000: Local var 1: ColossalFramework.UI.UIComponent
IL_0000: Local var 2: System.Boolean
IL_0000: ldnull
IL_0001: stloc 1 (ColossalFramework.UI.UIComponent)
IL_0005: ldc.i4 0
IL_000A: stloc 2 (System.Boolean)
IL_000E: ldc.i4.1
IL_000F: stloc 2 (System.Boolean)
IL_0013: ldloc 2 (System.Boolean)
IL_0017: brfalse => Label1
IL_001C: call static System.Boolean
HideIt.UnlockingPanelShowModalPatch::Prefix()
IL_0021: stloc 2 (System.Boolean)
IL_0025: Label1
IL_0025: nop
IL_0026: ldloc 2 (System.Boolean)
IL_002A: brfalse => Label0
IL_002F: // start original
IL_002F: call static CameraTool ToolsModifierControl::GetCurrentTool()
IL_0034: ldnull
IL_0035: call static System.Boolean
UnityEngine.Object::op_Inequality(UnityEngine.Object x, UnityEngine.Object y)
IL_003A: brfalse => Label2
IL_003F: call static DefaultTool ToolsModifierControl::SetTool()
IL_0044: pop
IL_0045: Label2
IL_0045: call static ColossalFramework.UI.UIComponent TutorialPanel::Hide()
IL_004A: pop
IL_004B: ldarg.0
IL_004C: ldc.i4.1
IL_004D: call System.Void UnlockingPanel::SetCurrentMilestone(System.Boolean
justUnlocked)
IL_0052: ldarg.0
IL_0053: call ColossalFramework.UI.UIComponent
ColossalFramework.UI.UICustomControl::get_component()
IL_0058: callvirt System.Boolean
ColossalFramework.UI.UIComponent::get_isVisible()
IL_005D: brfalse => Label3
IL_0062: ldarg.0
IL_0063: call ColossalFramework.UI.UIComponent
ColossalFramework.UI.UICustomControl::get_component()
IL_0068: callvirt System.Void ColossalFramework.UI.UIComponent::Hide()
IL_006D: Label3
IL_006D: call static System.Boolean
ColossalFramework.Singleton`1<SimulationManager>::get_exists()
IL_0072: brfalse => Label4
IL_0077: call static SimulationManager
ColossalFramework.Singleton`1<SimulationManager>::get_instance()
IL_007C: ldsfld System.Action UnlockingPanel::<>f__am$cache0
IL_0081: brtrue => Label5
IL_0086: ldnull
IL_0087: ldftn static System.Void UnlockingPanel::<ShowModal>m__0()
IL_008D: newobj System.Void System.Action::.ctor(System.Object object,
System.IntPtr method)
IL_0092: stsfld System.Action UnlockingPanel::<>f__am$cache0
IL_0097: Label5
IL_0097: ldsfld System.Action UnlockingPanel::<>f__am$cache0
IL_009C: callvirt AsyncAction SimulationManager::AddAction(System.Action action)
IL_00A1: pop
IL_00A2: Label4
IL_00A2: ldc.i4.1
IL_00A3: call static System.Void
UnityEngine.Cursor::set_visible(System.Boolean value)
IL_00A8: ldc.i4.0
IL_00A9: call static System.Void
UnityEngine.Cursor::set_lockState(UnityEngine.CursorLockMode value)
IL_00AE: ldarg.0
IL_00AF: ldfld ColossalFramework.UI.UITabstrip UnlockingPanel::m_Tabstrip
IL_00B4: ldc.i4.0
IL_00B5: callvirt System.Void
ColossalFramework.UI.UITabstrip::set_selectedIndex(System.Int32 value)
IL_00BA: ldarg.0
IL_00BB: ldfld ColossalFramework.UI.UITextureSprite UnlockingPanel::m_Congrats
IL_00C0: callvirt System.Void ColossalFramework.UI.UIComponent::Show()
IL_00C5: ldarg.0
IL_00C6: ldarg.0
IL_00C7: ldfld ColossalFramework.UI.UITextureSprite UnlockingPanel::m_Congrats
IL_00CC: callvirt UnityEngine.Material
ColossalFramework.UI.UITextureSprite::get_renderMaterial()
IL_00D1: callvirt System.Int32 UnityEngine.Material::get_renderQueue()
IL_00D6: ldarg.0
IL_00D7: ldfld System.Int32 UnlockingPanel::m_RenderQueueOffset
IL_00DC: sub
IL_00DD: call System.Void
UnlockingPanel::SetFireWorksRenderQueue(System.Int32 rdrq)
IL_00E2: ldarg.0
IL_00E3: ldfld UnityEngine.ParticleSystem UnlockingPanel::m_Fireworks
IL_00E8: callvirt System.Void UnityEngine.ParticleSystem::Play()
IL_00ED: ldarg.0
IL_00EE: call ColossalFramework.UI.UIComponent
ColossalFramework.UI.UICustomControl::get_component()
IL_00F3: ldc.i4.1
IL_00F4: callvirt System.Void
ColossalFramework.UI.UIComponent::Show(System.Boolean bringToFront)
IL_00F9: ldarg.0
IL_00FA: call ColossalFramework.UI.UIComponent
ColossalFramework.UI.UICustomControl::get_component()
IL_00FF: callvirt System.Void ColossalFramework.UI.UIComponent::Focus()
IL_0104: ldarg.0
IL_0105: ldfld System.Boolean UnlockingPanel::m_IsModal
IL_010A: brtrue => Label6
IL_010F: newobj System.Void <ShowModal>c__AnonStorey1::.ctor()
IL_0114: stloc.0
IL_0115: ldloc.0
IL_0116: call static ColossalFramework.UI.UIView
ColossalFramework.UI.UIView::GetAView()
IL_011B: callvirt ColossalFramework.UI.UIComponent
ColossalFramework.UI.UIView::get_panelsLibraryModalEffect()
IL_0120: stfld ColossalFramework.UI.UIComponent <ShowModal>c__AnonStorey1::cc
IL_0125: ldloc.0
IL_0126: ldfld ColossalFramework.UI.UIComponent <ShowModal>c__AnonStorey1::cc
IL_012B: ldnull
IL_012C: call static System.Boolean
UnityEngine.Object::op_Inequality(UnityEngine.Object x, UnityEngine.Object y)
IL_0131: brfalse => Label7
IL_0136: ldloc.0
IL_0137: ldfld ColossalFramework.UI.UIComponent <ShowModal>c__AnonStorey1::cc
IL_013C: ldnull
IL_013D: callvirt System.Void
ColossalFramework.UI.UIComponent::FitTo(ColossalFramework.UI.UIComponent target)
IL_0142: call static System.Boolean
ColossalFramework.UI.UIView::HasModalInput()
IL_0147: brtrue => Label8
IL_014C: ldloc.0
IL_014D: ldfld ColossalFramework.UI.UIComponent <ShowModal>c__AnonStorey1::cc
IL_0152: ldc.i4.0
IL_0153: callvirt System.Void
ColossalFramework.UI.UIComponent::Show(System.Boolean bringToFront)
IL_0158: ldstr "ModalEffect67419"
IL_015D: ldloc.0
IL_015E: ldftn System.Void <ShowModal>c__AnonStorey1::<>m__0(System.Single
val)
IL_0164: newobj System.Void System.Action`1<System.Single>::.ctor(System.Object
object, System.IntPtr method)
IL_0169: ldc.r4 0
IL_016E: ldc.r4 1
IL_0173: ldc.r4 0.7
IL_0178: ldc.i4.s 10
IL_017A: newobj System.Void
ColossalFramework.AnimatedFloat::.ctor(System.Single startValue, System.Single
endValue, System.Single time, ColossalFramework.EasingType type)
IL_017F: call static System.Void
ColossalFramework.ValueAnimator::Animate(System.String name,
System.Action`1<System.Single> target, ColossalFramework.AnimatedFloat v)
IL_0184: Label8
IL_0184: ldloc.0
IL_0185: ldfld ColossalFramework.UI.UIComponent <ShowModal>c__AnonStorey1::cc
IL_018A: ldarg.0
IL_018B: call ColossalFramework.UI.UIComponent
ColossalFramework.UI.UICustomControl::get_component()
IL_0190: callvirt System.Int32 ColossalFramework.UI.UIComponent::get_zOrder()
IL_0195: ldc.i4.1
IL_0196: sub
IL_0197: callvirt System.Void
ColossalFramework.UI.UIComponent::set_zOrder(System.Int32 value)
IL_019C: Label7
IL_019C: ldarg.0
IL_019D: call ColossalFramework.UI.UIComponent
ColossalFramework.UI.UICustomControl::get_component()
IL_01A2: ldarg.0
IL_01A3: ldftn System.Void
UnlockingPanel::PopModal(ColossalFramework.UI.UIComponent comp)
IL_01A9: newobj System.Void
ColossalFramework.UI.ModalPoppedCallback::.ctor(System.Object object, System.IntPtr
method)
IL_01AE: call static System.Void
ColossalFramework.UI.UIView::PushModal(ColossalFramework.UI.UIComponent component,
ColossalFramework.UI.ModalPoppedCallback callback)
IL_01B3: ldarg.0
IL_01B4: ldc.i4.1
IL_01B5: stfld System.Boolean UnlockingPanel::m_IsModal
IL_01BA: Label6
IL_01BA: ldarg.0
IL_01BB: call UnityEngine.Transform UnityEngine.Component::get_transform()
IL_01C0: ldarg.0
IL_01C1: ldfld UnityEngine.Vector3 UnlockingPanel::m_StartPosition
IL_01C6: callvirt System.Void
UnityEngine.Transform::set_position(UnityEngine.Vector3 value)
IL_01CB: ldarg.0
IL_01CC: call ColossalFramework.UI.UIComponent
ColossalFramework.UI.UICustomControl::get_component()
IL_01D1: ldarg.0
IL_01D2: ldfld UnityEngine.Vector2 UnlockingPanel::m_StartSize
IL_01D7: callvirt System.Void
ColossalFramework.UI.UIComponent::set_size(UnityEngine.Vector2 value)
IL_01DC: ldarg.0
IL_01DD: call ColossalFramework.UI.UIComponent
ColossalFramework.UI.UICustomControl::get_component()
IL_01E2: ldc.r4 1
IL_01E7: callvirt System.Void
ColossalFramework.UI.UIComponent::set_opacity(System.Single value)
IL_01EC: ldarg.0
IL_01ED: call ColossalFramework.UI.UIComponent
ColossalFramework.UI.UICustomControl::get_component()
IL_01F2: // end original
IL_01F2: stloc 1 (ColossalFramework.UI.UIComponent)
IL_01F6: Label0
IL_01F6: ldloc 1 (ColossalFramework.UI.UIComponent)
IL_01FA: ret
DONE

### Patch: System.Boolean CitizenManager::CreateCitizenInstance(System.UInt16&


instance, ColossalFramework.Math.Randomizer& randomizer, CitizenInfo info,
System.UInt32 citizen)
### Replacement: static System.Boolean
CitizenManager::CitizenManager.CreateCitizenInstance_Patch1(CitizenManager this,
System.UInt16& instance, ColossalFramework.Math.Randomizer& randomizer, CitizenInfo
info, System.UInt32 citizen)
IL_0000: Local var 0: System.UInt16
IL_0000: Local var 1: CitizenInstance/Frame
IL_0000: Local var 2: UnityEngine.Color32
IL_0000: Local var 3: System.Boolean
IL_0000: Local var 4: System.Boolean
IL_0000: ldc.i4 0
IL_0005: stloc 3 (System.Boolean)
IL_0009: ldc.i4 0
IL_000E: stloc 4 (System.Boolean)
IL_0012: ldc.i4.1
IL_0013: stloc 4 (System.Boolean)
IL_0017: ldloc 4 (System.Boolean)
IL_001B: brfalse => Label1
IL_0020: ldarg 1
IL_0024: ldarg 2
IL_0028: ldarg 3
IL_002C: ldarg 4
IL_0030: call static System.Boolean
HideIt.CitizenManagerCreateCitizenInstancePatch::Prefix(System.UInt16& instance,
ColossalFramework.Math.Randomizer& randomizer, CitizenInfo info, System.UInt32
citizen)
IL_0035: stloc 4 (System.Boolean)
IL_0039: Label1
IL_0039: nop
IL_003A: ldloc 4 (System.Boolean)
IL_003E: brfalse => Label0
IL_0043: // start original
IL_0043: ldarg.0
IL_0044: ldfld Array16`1<CitizenInstance> CitizenManager::m_instances
IL_0049: ldloca.s 0 (System.UInt16)
IL_004B: ldarg.2
IL_004C: callvirt System.Boolean
Array16`1<CitizenInstance>::CreateItem(System.UInt16& item,
ColossalFramework.Math.Randomizer& r)
IL_0051: brfalse => Label2
IL_0056: ldarg.1
IL_0057: ldloc.0
IL_0058: stind.i2
IL_0059: ldloca.s 1 (CitizenInstance+Frame)
IL_005B: call static UnityEngine.Vector3 UnityEngine.Vector3::get_zero()
IL_0060: stfld UnityEngine.Vector3 Frame::m_velocity
IL_0065: ldloca.s 1 (CitizenInstance+Frame)
IL_0067: call static UnityEngine.Vector3 UnityEngine.Vector3::get_zero()
IL_006C: stfld UnityEngine.Vector3 Frame::m_position
IL_0071: ldloca.s 1 (CitizenInstance+Frame)
IL_0073: call static UnityEngine.Quaternion
UnityEngine.Quaternion::get_identity()
IL_0078: stfld UnityEngine.Quaternion Frame::m_rotation
IL_007D: ldloca.s 1 (CitizenInstance+Frame)
IL_007F: ldc.i4.0
IL_0080: stfld System.Boolean Frame::m_underground
IL_0085: ldloca.s 1 (CitizenInstance+Frame)
IL_0087: ldc.i4.0
IL_0088: stfld System.Boolean Frame::m_insideBuilding
IL_008D: ldloca.s 1 (CitizenInstance+Frame)
IL_008F: ldc.i4.0
IL_0090: stfld System.Boolean Frame::m_transition
IL_0095: ldarg.0
IL_0096: ldfld Array16`1<CitizenInstance> CitizenManager::m_instances
IL_009B: ldfld CitizenInstance[] Array16`1<CitizenInstance>::m_buffer
IL_00A0: ldarg.1
IL_00A1: ldind.u2
IL_00A2: ldelema CitizenInstance
IL_00A7: ldc.i4.1
IL_00A8: stfld Flags CitizenInstance::m_flags
IL_00AD: ldarg.0
IL_00AE: ldfld Array16`1<CitizenInstance> CitizenManager::m_instances
IL_00B3: ldfld CitizenInstance[] Array16`1<CitizenInstance>::m_buffer
IL_00B8: ldarg.1
IL_00B9: ldind.u2
IL_00BA: ldelema CitizenInstance
IL_00BF: ldarg.3
IL_00C0: call System.Void CitizenInstance::set_Info(CitizenInfo value)
IL_00C5: ldarg.0
IL_00C6: ldfld Array16`1<CitizenInstance> CitizenManager::m_instances
IL_00CB: ldfld CitizenInstance[] Array16`1<CitizenInstance>::m_buffer
IL_00D0: ldarg.1
IL_00D1: ldind.u2
IL_00D2: ldelema CitizenInstance
IL_00D7: ldarg.s 4
IL_00D9: stfld System.UInt32 CitizenInstance::m_citizen
IL_00DE: ldarg.0
IL_00DF: ldfld Array16`1<CitizenInstance> CitizenManager::m_instances
IL_00E4: ldfld CitizenInstance[] Array16`1<CitizenInstance>::m_buffer
IL_00E9: ldarg.1
IL_00EA: ldind.u2
IL_00EB: ldelema CitizenInstance
IL_00F0: ldloc.1
IL_00F1: stfld Frame CitizenInstance::m_frame0
IL_00F6: ldarg.0
IL_00F7: ldfld Array16`1<CitizenInstance> CitizenManager::m_instances
IL_00FC: ldfld CitizenInstance[] Array16`1<CitizenInstance>::m_buffer
IL_0101: ldarg.1
IL_0102: ldind.u2
IL_0103: ldelema CitizenInstance
IL_0108: ldloc.1
IL_0109: stfld Frame CitizenInstance::m_frame1
IL_010E: ldarg.0
IL_010F: ldfld Array16`1<CitizenInstance> CitizenManager::m_instances
IL_0114: ldfld CitizenInstance[] Array16`1<CitizenInstance>::m_buffer
IL_0119: ldarg.1
IL_011A: ldind.u2
IL_011B: ldelema CitizenInstance
IL_0120: ldloc.1
IL_0121: stfld Frame CitizenInstance::m_frame2
IL_0126: ldarg.0
IL_0127: ldfld Array16`1<CitizenInstance> CitizenManager::m_instances
IL_012C: ldfld CitizenInstance[] Array16`1<CitizenInstance>::m_buffer
IL_0131: ldarg.1
IL_0132: ldind.u2
IL_0133: ldelema CitizenInstance
IL_0138: ldloc.1
IL_0139: stfld Frame CitizenInstance::m_frame3
IL_013E: ldarg.0
IL_013F: ldfld Array16`1<CitizenInstance> CitizenManager::m_instances
IL_0144: ldfld CitizenInstance[] Array16`1<CitizenInstance>::m_buffer
IL_0149: ldarg.1
IL_014A: ldind.u2
IL_014B: ldelema CitizenInstance
IL_0150: call static UnityEngine.Vector3 UnityEngine.Vector3::get_zero()
IL_0155: call static UnityEngine.Vector4
UnityEngine.Vector4::op_Implicit(UnityEngine.Vector3 v)
IL_015A: stfld UnityEngine.Vector4 CitizenInstance::m_targetPos
IL_015F: ldarg.0
IL_0160: ldfld Array16`1<CitizenInstance> CitizenManager::m_instances
IL_0165: ldfld CitizenInstance[] Array16`1<CitizenInstance>::m_buffer
IL_016A: ldarg.1
IL_016B: ldind.u2
IL_016C: ldelema CitizenInstance
IL_0171: call static UnityEngine.Vector2 UnityEngine.Vector2::get_zero()
IL_0176: stfld UnityEngine.Vector2 CitizenInstance::m_targetDir
IL_017B: ldarg.0
IL_017C: ldfld Array16`1<CitizenInstance> CitizenManager::m_instances
IL_0181: ldfld CitizenInstance[] Array16`1<CitizenInstance>::m_buffer
IL_0186: ldarg.1
IL_0187: ldind.u2
IL_0188: ldelema CitizenInstance
IL_018D: ldloca.s 2 (UnityEngine.Color32)
IL_018F: initobj UnityEngine.Color32
IL_0195: ldloc.2
IL_0196: stfld UnityEngine.Color32 CitizenInstance::m_color
IL_019B: ldarg.0
IL_019C: ldfld Array16`1<CitizenInstance> CitizenManager::m_instances
IL_01A1: ldfld CitizenInstance[] Array16`1<CitizenInstance>::m_buffer
IL_01A6: ldarg.1
IL_01A7: ldind.u2
IL_01A8: ldelema CitizenInstance
IL_01AD: ldc.i4.0
IL_01AE: stfld System.UInt16 CitizenInstance::m_sourceBuilding
IL_01B3: ldarg.0
IL_01B4: ldfld Array16`1<CitizenInstance> CitizenManager::m_instances
IL_01B9: ldfld CitizenInstance[] Array16`1<CitizenInstance>::m_buffer
IL_01BE: ldarg.1
IL_01BF: ldind.u2
IL_01C0: ldelema CitizenInstance
IL_01C5: ldc.i4.0
IL_01C6: stfld System.UInt16 CitizenInstance::m_targetBuilding
IL_01CB: ldarg.0
IL_01CC: ldfld Array16`1<CitizenInstance> CitizenManager::m_instances
IL_01D1: ldfld CitizenInstance[] Array16`1<CitizenInstance>::m_buffer
IL_01D6: ldarg.1
IL_01D7: ldind.u2
IL_01D8: ldelema CitizenInstance
IL_01DD: ldc.i4.0
IL_01DE: stfld System.UInt16 CitizenInstance::m_nextGridInstance
IL_01E3: ldarg.0
IL_01E4: ldfld Array16`1<CitizenInstance> CitizenManager::m_instances
IL_01E9: ldfld CitizenInstance[] Array16`1<CitizenInstance>::m_buffer
IL_01EE: ldarg.1
IL_01EF: ldind.u2
IL_01F0: ldelema CitizenInstance
IL_01F5: ldc.i4.0
IL_01F6: stfld System.UInt16 CitizenInstance::m_nextSourceInstance
IL_01FB: ldarg.0
IL_01FC: ldfld Array16`1<CitizenInstance> CitizenManager::m_instances
IL_0201: ldfld CitizenInstance[] Array16`1<CitizenInstance>::m_buffer
IL_0206: ldarg.1
IL_0207: ldind.u2
IL_0208: ldelema CitizenInstance
IL_020D: ldc.i4.0
IL_020E: stfld System.UInt16 CitizenInstance::m_nextTargetInstance
IL_0213: ldarg.0
IL_0214: ldfld Array16`1<CitizenInstance> CitizenManager::m_instances
IL_0219: ldfld CitizenInstance[] Array16`1<CitizenInstance>::m_buffer
IL_021E: ldarg.1
IL_021F: ldind.u2
IL_0220: ldelema CitizenInstance
IL_0225: ldc.i4.0
IL_0226: stfld System.Byte CitizenInstance::m_lastFrame
IL_022B: ldarg.0
IL_022C: ldfld Array16`1<CitizenInstance> CitizenManager::m_instances
IL_0231: ldfld CitizenInstance[] Array16`1<CitizenInstance>::m_buffer
IL_0236: ldarg.1
IL_0237: ldind.u2
IL_0238: ldelema CitizenInstance
IL_023D: ldc.i4.0
IL_023E: stfld System.Byte CitizenInstance::m_pathPositionIndex
IL_0243: ldarg.0
IL_0244: ldfld Array16`1<CitizenInstance> CitizenManager::m_instances
IL_0249: ldfld CitizenInstance[] Array16`1<CitizenInstance>::m_buffer
IL_024E: ldarg.1
IL_024F: ldind.u2
IL_0250: ldelema CitizenInstance
IL_0255: ldc.i4.0
IL_0256: stfld System.Byte CitizenInstance::m_lastPathOffset
IL_025B: ldarg.0
IL_025C: ldfld Array16`1<CitizenInstance> CitizenManager::m_instances
IL_0261: ldfld CitizenInstance[] Array16`1<CitizenInstance>::m_buffer
IL_0266: ldarg.1
IL_0267: ldind.u2
IL_0268: ldelema CitizenInstance
IL_026D: ldc.i4.0
IL_026E: stfld System.Byte CitizenInstance::m_waitCounter
IL_0273: ldarg.0
IL_0274: ldfld Array16`1<CitizenInstance> CitizenManager::m_instances
IL_0279: ldfld CitizenInstance[] Array16`1<CitizenInstance>::m_buffer
IL_027E: ldarg.1
IL_027F: ldind.u2
IL_0280: ldelema CitizenInstance
IL_0285: ldc.i4.0
IL_0286: stfld System.Byte CitizenInstance::m_targetSeed
IL_028B: ldarg.s 4
IL_028D: brfalse => Label3
IL_0292: ldarg.0
IL_0293: ldfld Array32`1<Citizen> CitizenManager::m_citizens
IL_0298: ldfld Citizen[] Array32`1<Citizen>::m_buffer
IL_029D: ldarg.s 4
IL_029F: conv.u
IL_02A0: ldelema Citizen
IL_02A5: ldarg.1
IL_02A6: ldind.u2
IL_02A7: stfld System.UInt16 Citizen::m_instance
IL_02AC: Label3
IL_02AC: ldarg.3
IL_02AD: ldfld CitizenAI CitizenInfo::m_citizenAI
IL_02B2: ldarg.1
IL_02B3: ldind.u2
IL_02B4: ldarg.0
IL_02B5: ldfld Array16`1<CitizenInstance> CitizenManager::m_instances
IL_02BA: ldfld CitizenInstance[] Array16`1<CitizenInstance>::m_buffer
IL_02BF: ldarg.1
IL_02C0: ldind.u2
IL_02C1: ldelema CitizenInstance
IL_02C6: callvirt virtual System.Void CitizenAI::CreateInstance(System.UInt16
instanceID, CitizenInstance& data)
IL_02CB: ldarg.0
IL_02CC: ldarg.0
IL_02CD: ldfld Array16`1<CitizenInstance> CitizenManager::m_instances
IL_02D2: callvirt System.UInt32 Array16`1<CitizenInstance>::ItemCount()
IL_02D7: ldc.i4.1
IL_02D8: sub
IL_02D9: stfld System.Int32 CitizenManager::m_instanceCount
IL_02DE: ldc.i4.1
IL_02DF: br => Label4
IL_02E4: Label2
IL_02E4: ldarg.1
IL_02E5: ldc.i4.0
IL_02E6: stind.i2
IL_02E7: ldc.i4.0
IL_02E8: // end original
IL_02E8: Label4
IL_02E8: stloc 3 (System.Boolean)
IL_02EC: Label0
IL_02EC: ldloc 3 (System.Boolean)
IL_02F0: ret
DONE

### Patch: System.Void NaturalResourceManager::UpdateTexture()


### Replacement: static System.Void
NaturalResourceManager::NaturalResourceManager.UpdateTexture_Patch1(NaturalResource
Manager this)
IL_0000: Local var 0: System.Int32
IL_0000: Local var 1: System.Int32
IL_0000: Local var 2: System.Int32
IL_0000: Local var 3: System.Int32
IL_0000: Local var 4: UnityEngine.Color
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.Boolean
IL_0000: ldc.i4 0
IL_0005: stloc 12 (System.Boolean)
IL_0009: ldc.i4.1
IL_000A: stloc 12 (System.Boolean)
IL_000E: ldloc 12 (System.Boolean)
IL_0012: brfalse => Label1
IL_0017: ldarg.0
IL_0018: call static System.Boolean
HideIt.NaturalResourceManagerUpdateTexturePatch::Prefix(NaturalResourceManager
__instance)
IL_001D: stloc 12 (System.Boolean)
IL_0021: Label1
IL_0021: nop
IL_0022: ldloc 12 (System.Boolean)
IL_0026: brfalse => Label0
IL_002B: // start original
IL_002B: ldc.i4.0
IL_002C: stloc.0
IL_002D: br => Label2
IL_0032: Label16
IL_0032: ldarg.0
IL_0033: ldfld System.Int32[] NaturalResourceManager::m_modifiedX2
IL_0038: ldloc.0
IL_0039: ldelem.i4
IL_003A: ldarg.0
IL_003B: ldfld System.Int32[] NaturalResourceManager::m_modifiedX1
IL_0040: ldloc.0
IL_0041: ldelem.i4
IL_0042: blt => Label3
IL_0047: br => Label4
IL_004C: Label4
IL_004C: Label5
IL_004C: ldarg.0
IL_004D: ldfld ResourceCell[] NaturalResourceManager::m_naturalResources
IL_0052: ldsfld System.Int32 SimulationManager::SYNCHRONIZE_TIMEOUT
IL_0057: call static System.Boolean
System.Threading.Monitor::TryEnter(System.Object obj, System.Int32
millisecondsTimeout)
IL_005C: brfalse => Label5
.try
{
IL_0061: ldarg.0
IL_0062: ldfld System.Int32[] NaturalResourceManager::m_modifiedX1
IL_0067: ldloc.0
IL_0068: ldelem.i4
IL_0069: stloc.1
IL_006A: ldarg.0
IL_006B: ldfld System.Int32[] NaturalResourceManager::m_modifiedX2
IL_0070: ldloc.0
IL_0071: ldelem.i4
IL_0072: stloc.2
IL_0073: ldarg.0
IL_0074: ldfld System.Int32[] NaturalResourceManager::m_modifiedX1
IL_0079: ldloc.0
IL_007A: ldc.i4 10000
IL_007F: stelem.i4
IL_0080: ldarg.0
IL_0081: ldfld System.Int32[] NaturalResourceManager::m_modifiedX2
IL_0086: ldloc.0
IL_0087: ldc.i4 -10000
IL_008C: stelem.i4
IL_008D: leave => Label6
IL_0092: leave => (autogenerated)
} // end try
.finally
{
IL_0097: ldarg.0
IL_0098: ldfld ResourceCell[] NaturalResourceManager::m_naturalResources
IL_009D: call static System.Void
System.Threading.Monitor::Exit(System.Object obj)
IL_00A2: endfinally
IL_00A3: leave => (autogenerated)
} // end handler
IL_00A4: Label6
IL_00A4: ldloc.1
IL_00A5: stloc.3
IL_00A6: br => Label7
IL_00AB: Label15
IL_00AB: ldloc.0
IL_00AC: brfalse => Label8
IL_00B1: ldloc.3
IL_00B2: brfalse => Label9
IL_00B7: ldloc.0
IL_00B8: ldc.i4 511
IL_00BD: beq => Label10
IL_00C2: ldloc.3
IL_00C3: ldc.i4 511
IL_00C8: bne.un => Label11
IL_00CD: Label8
IL_00CD: Label9
IL_00CD: Label10
IL_00CD: ldloca.s 4 (UnityEngine.Color)
IL_00CF: ldc.r4 0.5
IL_00D4: ldc.r4 0.5
IL_00D9: ldc.r4 0.5
IL_00DE: ldc.r4 0
IL_00E3: call System.Void UnityEngine.Color::.ctor(System.Single r,
System.Single g, System.Single b, System.Single a)
IL_00E8: br => Label12
IL_00ED: Label11
IL_00ED: ldc.i4.0
IL_00EE: stloc.s 5 (System.Int32)
IL_00F0: ldc.i4.0
IL_00F1: stloc.s 6 (System.Int32)
IL_00F3: ldc.i4.0
IL_00F4: stloc.s 7 (System.Int32)
IL_00F6: ldc.i4.0
IL_00F7: stloc.s 8 (System.Int32)
IL_00F9: ldc.i4.0
IL_00FA: stloc.s 9 (System.Int32)
IL_00FC: ldc.i4.0
IL_00FD: stloc.s 10 (System.Int32)
IL_00FF: ldarg.0
IL_0100: ldloc.3
IL_0101: ldc.i4.1
IL_0102: sub
IL_0103: ldloc.0
IL_0104: ldc.i4.1
IL_0105: sub
IL_0106: ldc.i4.5
IL_0107: ldloca.s 5 (System.Int32)
IL_0109: ldloca.s 6 (System.Int32)
IL_010B: ldloca.s 7 (System.Int32)
IL_010D: ldloca.s 8 (System.Int32)
IL_010F: ldloca.s 9 (System.Int32)
IL_0111: ldloca.s 10 (System.Int32)
IL_0113: call System.Void NaturalResourceManager::AddResource(System.Int32 x,
System.Int32 z, System.Int32 multiplier, System.Int32& ore, System.Int32& oil,
System.Int32& sand, System.Int32& fertility, System.Int32& forest, System.Int32&
shore)
IL_0118: ldarg.0
IL_0119: ldloc.3
IL_011A: ldloc.0
IL_011B: ldc.i4.1
IL_011C: sub
IL_011D: ldc.i4.7
IL_011E: ldloca.s 5 (System.Int32)
IL_0120: ldloca.s 6 (System.Int32)
IL_0122: ldloca.s 7 (System.Int32)
IL_0124: ldloca.s 8 (System.Int32)
IL_0126: ldloca.s 9 (System.Int32)
IL_0128: ldloca.s 10 (System.Int32)
IL_012A: call System.Void NaturalResourceManager::AddResource(System.Int32 x,
System.Int32 z, System.Int32 multiplier, System.Int32& ore, System.Int32& oil,
System.Int32& sand, System.Int32& fertility, System.Int32& forest, System.Int32&
shore)
IL_012F: ldarg.0
IL_0130: ldloc.3
IL_0131: ldc.i4.1
IL_0132: add
IL_0133: ldloc.0
IL_0134: ldc.i4.1
IL_0135: sub
IL_0136: ldc.i4.5
IL_0137: ldloca.s 5 (System.Int32)
IL_0139: ldloca.s 6 (System.Int32)
IL_013B: ldloca.s 7 (System.Int32)
IL_013D: ldloca.s 8 (System.Int32)
IL_013F: ldloca.s 9 (System.Int32)
IL_0141: ldloca.s 10 (System.Int32)
IL_0143: call System.Void NaturalResourceManager::AddResource(System.Int32 x,
System.Int32 z, System.Int32 multiplier, System.Int32& ore, System.Int32& oil,
System.Int32& sand, System.Int32& fertility, System.Int32& forest, System.Int32&
shore)
IL_0148: ldarg.0
IL_0149: ldloc.3
IL_014A: ldc.i4.1
IL_014B: sub
IL_014C: ldloc.0
IL_014D: ldc.i4.7
IL_014E: ldloca.s 5 (System.Int32)
IL_0150: ldloca.s 6 (System.Int32)
IL_0152: ldloca.s 7 (System.Int32)
IL_0154: ldloca.s 8 (System.Int32)
IL_0156: ldloca.s 9 (System.Int32)
IL_0158: ldloca.s 10 (System.Int32)
IL_015A: call System.Void NaturalResourceManager::AddResource(System.Int32 x,
System.Int32 z, System.Int32 multiplier, System.Int32& ore, System.Int32& oil,
System.Int32& sand, System.Int32& fertility, System.Int32& forest, System.Int32&
shore)
IL_015F: ldarg.0
IL_0160: ldloc.3
IL_0161: ldloc.0
IL_0162: ldc.i4.s 14
IL_0164: ldloca.s 5 (System.Int32)
IL_0166: ldloca.s 6 (System.Int32)
IL_0168: ldloca.s 7 (System.Int32)
IL_016A: ldloca.s 8 (System.Int32)
IL_016C: ldloca.s 9 (System.Int32)
IL_016E: ldloca.s 10 (System.Int32)
IL_0170: call System.Void NaturalResourceManager::AddResource(System.Int32 x,
System.Int32 z, System.Int32 multiplier, System.Int32& ore, System.Int32& oil,
System.Int32& sand, System.Int32& fertility, System.Int32& forest, System.Int32&
shore)
IL_0175: ldarg.0
IL_0176: ldloc.3
IL_0177: ldc.i4.1
IL_0178: add
IL_0179: ldloc.0
IL_017A: ldc.i4.7
IL_017B: ldloca.s 5 (System.Int32)
IL_017D: ldloca.s 6 (System.Int32)
IL_017F: ldloca.s 7 (System.Int32)
IL_0181: ldloca.s 8 (System.Int32)
IL_0183: ldloca.s 9 (System.Int32)
IL_0185: ldloca.s 10 (System.Int32)
IL_0187: call System.Void NaturalResourceManager::AddResource(System.Int32 x,
System.Int32 z, System.Int32 multiplier, System.Int32& ore, System.Int32& oil,
System.Int32& sand, System.Int32& fertility, System.Int32& forest, System.Int32&
shore)
IL_018C: ldarg.0
IL_018D: ldloc.3
IL_018E: ldc.i4.1
IL_018F: sub
IL_0190: ldloc.0
IL_0191: ldc.i4.1
IL_0192: add
IL_0193: ldc.i4.5
IL_0194: ldloca.s 5 (System.Int32)
IL_0196: ldloca.s 6 (System.Int32)
IL_0198: ldloca.s 7 (System.Int32)
IL_019A: ldloca.s 8 (System.Int32)
IL_019C: ldloca.s 9 (System.Int32)
IL_019E: ldloca.s 10 (System.Int32)
IL_01A0: call System.Void NaturalResourceManager::AddResource(System.Int32 x,
System.Int32 z, System.Int32 multiplier, System.Int32& ore, System.Int32& oil,
System.Int32& sand, System.Int32& fertility, System.Int32& forest, System.Int32&
shore)
IL_01A5: ldarg.0
IL_01A6: ldloc.3
IL_01A7: ldloc.0
IL_01A8: ldc.i4.1
IL_01A9: add
IL_01AA: ldc.i4.7
IL_01AB: ldloca.s 5 (System.Int32)
IL_01AD: ldloca.s 6 (System.Int32)
IL_01AF: ldloca.s 7 (System.Int32)
IL_01B1: ldloca.s 8 (System.Int32)
IL_01B3: ldloca.s 9 (System.Int32)
IL_01B5: ldloca.s 10 (System.Int32)
IL_01B7: call System.Void NaturalResourceManager::AddResource(System.Int32 x,
System.Int32 z, System.Int32 multiplier, System.Int32& ore, System.Int32& oil,
System.Int32& sand, System.Int32& fertility, System.Int32& forest, System.Int32&
shore)
IL_01BC: ldarg.0
IL_01BD: ldloc.3
IL_01BE: ldc.i4.1
IL_01BF: add
IL_01C0: ldloc.0
IL_01C1: ldc.i4.1
IL_01C2: add
IL_01C3: ldc.i4.5
IL_01C4: ldloca.s 5 (System.Int32)
IL_01C6: ldloca.s 6 (System.Int32)
IL_01C8: ldloca.s 7 (System.Int32)
IL_01CA: ldloca.s 8 (System.Int32)
IL_01CC: ldloca.s 9 (System.Int32)
IL_01CE: ldloca.s 10 (System.Int32)
IL_01D0: call System.Void NaturalResourceManager::AddResource(System.Int32 x,
System.Int32 z, System.Int32 multiplier, System.Int32& ore, System.Int32& oil,
System.Int32& sand, System.Int32& fertility, System.Int32& forest, System.Int32&
shore)
IL_01D5: ldloca.s 4 (UnityEngine.Color)
IL_01D7: ldloc.s 5 (System.Int32)
IL_01D9: ldloc.s 6 (System.Int32)
IL_01DB: sub
IL_01DC: ldc.i4 15810
IL_01E1: add
IL_01E2: conv.r4
IL_01E3: ldc.r4 3.162555E-05
IL_01E8: mul
IL_01E9: stfld System.Single UnityEngine.Color::r
IL_01EE: ldloca.s 4 (UnityEngine.Color)
IL_01F0: ldloc.s 7 (System.Int32)
IL_01F2: ldloc.s 8 (System.Int32)
IL_01F4: sub
IL_01F5: ldc.i4 15810
IL_01FA: add
IL_01FB: conv.r4
IL_01FC: ldc.r4 3.162555E-05
IL_0201: mul
IL_0202: stfld System.Single UnityEngine.Color::g
IL_0207: ldloc.s 10 (System.Int32)
IL_0209: ldc.i4.4
IL_020A: mul
IL_020B: ldloc.s 9 (System.Int32)
IL_020D: sub
IL_020E: stloc.s 11 (System.Int32)
IL_0210: ldloc.s 11 (System.Int32)
IL_0212: ldc.i4.0
IL_0213: ble => Label13
IL_0218: ldloca.s 4 (UnityEngine.Color)
IL_021A: ldc.i4 15810
IL_021F: ldloc.s 11 (System.Int32)
IL_0221: ldc.i4.4
IL_0222: div
IL_0223: add
IL_0224: conv.r4
IL_0225: ldc.r4 3.162555E-05
IL_022A: mul
IL_022B: stfld System.Single UnityEngine.Color::b
IL_0230: br => Label14
IL_0235: Label13
IL_0235: ldloca.s 4 (UnityEngine.Color)
IL_0237: ldc.i4 15810
IL_023C: ldloc.s 11 (System.Int32)
IL_023E: add
IL_023F: conv.r4
IL_0240: ldc.r4 3.162555E-05
IL_0245: mul
IL_0246: stfld System.Single UnityEngine.Color::b
IL_024B: Label14
IL_024B: ldloca.s 4 (UnityEngine.Color)
IL_024D: ldc.r4 1
IL_0252: stfld System.Single UnityEngine.Color::a
IL_0257: Label12
IL_0257: ldarg.0
IL_0258: ldfld UnityEngine.Texture2D NaturalResourceManager::m_resourceTexture
IL_025D: ldloc.3
IL_025E: ldloc.0
IL_025F: ldloc.s 4 (UnityEngine.Color)
IL_0261: callvirt System.Void UnityEngine.Texture2D::SetPixel(System.Int32 x,
System.Int32 y, UnityEngine.Color color)
IL_0266: ldloc.3
IL_0267: ldc.i4.1
IL_0268: add
IL_0269: stloc.3
IL_026A: Label7
IL_026A: ldloc.3
IL_026B: ldloc.2
IL_026C: ble => Label15
IL_0271: Label3
IL_0271: ldloc.0
IL_0272: ldc.i4.1
IL_0273: add
IL_0274: stloc.0
IL_0275: Label2
IL_0275: ldloc.0
IL_0276: ldc.i4 512
IL_027B: blt => Label16
IL_0280: ldarg.0
IL_0281: ldfld UnityEngine.Texture2D NaturalResourceManager::m_resourceTexture
IL_0286: callvirt System.Void UnityEngine.Texture2D::Apply()
IL_028B: // end original
IL_028B: Label0
IL_028B: ret
DONE
### Patch: System.Void NaturalResourceManager::UpdateTextureB()
### Replacement: static System.Void
NaturalResourceManager::NaturalResourceManager.UpdateTextureB_Patch1(NaturalResourc
eManager this)
IL_0000: Local var 0: System.Int32
IL_0000: Local var 1: System.Int32
IL_0000: Local var 2: System.Int32
IL_0000: Local var 3: System.Int32
IL_0000: Local var 4: UnityEngine.Color
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.Boolean
IL_0000: ldc.i4 0
IL_0005: stloc 8 (System.Boolean)
IL_0009: ldc.i4.1
IL_000A: stloc 8 (System.Boolean)
IL_000E: ldloc 8 (System.Boolean)
IL_0012: brfalse => Label1
IL_0017: ldarg.0
IL_0018: call static System.Boolean
HideIt.NaturalResourceManagerUpdateTextureBPatch::Prefix(NaturalResourceManager
__instance)
IL_001D: stloc 8 (System.Boolean)
IL_0021: Label1
IL_0021: nop
IL_0022: ldloc 8 (System.Boolean)
IL_0026: brfalse => Label0
IL_002B: // start original
IL_002B: ldc.i4.0
IL_002C: stloc.0
IL_002D: br => Label2
IL_0032: Label14
IL_0032: ldarg.0
IL_0033: ldfld System.Int32[] NaturalResourceManager::m_modifiedBX2
IL_0038: ldloc.0
IL_0039: ldelem.i4
IL_003A: ldarg.0
IL_003B: ldfld System.Int32[] NaturalResourceManager::m_modifiedBX1
IL_0040: ldloc.0
IL_0041: ldelem.i4
IL_0042: blt => Label3
IL_0047: br => Label4
IL_004C: Label4
IL_004C: Label5
IL_004C: ldarg.0
IL_004D: ldfld ResourceCell[] NaturalResourceManager::m_naturalResources
IL_0052: ldsfld System.Int32 SimulationManager::SYNCHRONIZE_TIMEOUT
IL_0057: call static System.Boolean
System.Threading.Monitor::TryEnter(System.Object obj, System.Int32
millisecondsTimeout)
IL_005C: brfalse => Label5
.try
{
IL_0061: ldarg.0
IL_0062: ldfld System.Int32[] NaturalResourceManager::m_modifiedBX1
IL_0067: ldloc.0
IL_0068: ldelem.i4
IL_0069: stloc.1
IL_006A: ldarg.0
IL_006B: ldfld System.Int32[] NaturalResourceManager::m_modifiedBX2
IL_0070: ldloc.0
IL_0071: ldelem.i4
IL_0072: stloc.2
IL_0073: ldarg.0
IL_0074: ldfld System.Int32[] NaturalResourceManager::m_modifiedBX1
IL_0079: ldloc.0
IL_007A: ldc.i4 10000
IL_007F: stelem.i4
IL_0080: ldarg.0
IL_0081: ldfld System.Int32[] NaturalResourceManager::m_modifiedBX2
IL_0086: ldloc.0
IL_0087: ldc.i4 -10000
IL_008C: stelem.i4
IL_008D: leave => Label6
IL_0092: leave => (autogenerated)
} // end try
.finally
{
IL_0097: ldarg.0
IL_0098: ldfld ResourceCell[] NaturalResourceManager::m_naturalResources
IL_009D: call static System.Void
System.Threading.Monitor::Exit(System.Object obj)
IL_00A2: endfinally
IL_00A3: leave => (autogenerated)
} // end handler
IL_00A4: Label6
IL_00A4: ldloc.1
IL_00A5: stloc.3
IL_00A6: br => Label7
IL_00AB: Label13
IL_00AB: ldloc.0
IL_00AC: brfalse => Label8
IL_00B1: ldloc.3
IL_00B2: brfalse => Label9
IL_00B7: ldloc.0
IL_00B8: ldc.i4 511
IL_00BD: beq => Label10
IL_00C2: ldloc.3
IL_00C3: ldc.i4 511
IL_00C8: bne.un => Label11
IL_00CD: Label8
IL_00CD: Label9
IL_00CD: Label10
IL_00CD: ldloca.s 4 (UnityEngine.Color)
IL_00CF: ldc.r4 0
IL_00D4: ldc.r4 0
IL_00D9: ldc.r4 0
IL_00DE: ldc.r4 1
IL_00E3: call System.Void UnityEngine.Color::.ctor(System.Single r,
System.Single g, System.Single b, System.Single a)
IL_00E8: br => Label12
IL_00ED: Label11
IL_00ED: ldc.i4.0
IL_00EE: stloc.s 5 (System.Int32)
IL_00F0: ldc.i4.0
IL_00F1: stloc.s 6 (System.Int32)
IL_00F3: ldc.i4.0
IL_00F4: stloc.s 7 (System.Int32)
IL_00F6: ldarg.0
IL_00F7: ldloc.3
IL_00F8: ldc.i4.1
IL_00F9: sub
IL_00FA: ldloc.0
IL_00FB: ldc.i4.1
IL_00FC: sub
IL_00FD: ldc.i4.5
IL_00FE: ldloca.s 5 (System.Int32)
IL_0100: ldloca.s 6 (System.Int32)
IL_0102: ldloca.s 7 (System.Int32)
IL_0104: call System.Void NaturalResourceManager::AddResource(System.Int32 x,
System.Int32 z, System.Int32 multiplier, System.Int32& pollution, System.Int32&
burned, System.Int32& destroyed)
IL_0109: ldarg.0
IL_010A: ldloc.3
IL_010B: ldloc.0
IL_010C: ldc.i4.1
IL_010D: sub
IL_010E: ldc.i4.7
IL_010F: ldloca.s 5 (System.Int32)
IL_0111: ldloca.s 6 (System.Int32)
IL_0113: ldloca.s 7 (System.Int32)
IL_0115: call System.Void NaturalResourceManager::AddResource(System.Int32 x,
System.Int32 z, System.Int32 multiplier, System.Int32& pollution, System.Int32&
burned, System.Int32& destroyed)
IL_011A: ldarg.0
IL_011B: ldloc.3
IL_011C: ldc.i4.1
IL_011D: add
IL_011E: ldloc.0
IL_011F: ldc.i4.1
IL_0120: sub
IL_0121: ldc.i4.5
IL_0122: ldloca.s 5 (System.Int32)
IL_0124: ldloca.s 6 (System.Int32)
IL_0126: ldloca.s 7 (System.Int32)
IL_0128: call System.Void NaturalResourceManager::AddResource(System.Int32 x,
System.Int32 z, System.Int32 multiplier, System.Int32& pollution, System.Int32&
burned, System.Int32& destroyed)
IL_012D: ldarg.0
IL_012E: ldloc.3
IL_012F: ldc.i4.1
IL_0130: sub
IL_0131: ldloc.0
IL_0132: ldc.i4.7
IL_0133: ldloca.s 5 (System.Int32)
IL_0135: ldloca.s 6 (System.Int32)
IL_0137: ldloca.s 7 (System.Int32)
IL_0139: call System.Void NaturalResourceManager::AddResource(System.Int32 x,
System.Int32 z, System.Int32 multiplier, System.Int32& pollution, System.Int32&
burned, System.Int32& destroyed)
IL_013E: ldarg.0
IL_013F: ldloc.3
IL_0140: ldloc.0
IL_0141: ldc.i4.s 14
IL_0143: ldloca.s 5 (System.Int32)
IL_0145: ldloca.s 6 (System.Int32)
IL_0147: ldloca.s 7 (System.Int32)
IL_0149: call System.Void NaturalResourceManager::AddResource(System.Int32 x,
System.Int32 z, System.Int32 multiplier, System.Int32& pollution, System.Int32&
burned, System.Int32& destroyed)
IL_014E: ldarg.0
IL_014F: ldloc.3
IL_0150: ldc.i4.1
IL_0151: add
IL_0152: ldloc.0
IL_0153: ldc.i4.7
IL_0154: ldloca.s 5 (System.Int32)
IL_0156: ldloca.s 6 (System.Int32)
IL_0158: ldloca.s 7 (System.Int32)
IL_015A: call System.Void NaturalResourceManager::AddResource(System.Int32 x,
System.Int32 z, System.Int32 multiplier, System.Int32& pollution, System.Int32&
burned, System.Int32& destroyed)
IL_015F: ldarg.0
IL_0160: ldloc.3
IL_0161: ldc.i4.1
IL_0162: sub
IL_0163: ldloc.0
IL_0164: ldc.i4.1
IL_0165: add
IL_0166: ldc.i4.5
IL_0167: ldloca.s 5 (System.Int32)
IL_0169: ldloca.s 6 (System.Int32)
IL_016B: ldloca.s 7 (System.Int32)
IL_016D: call System.Void NaturalResourceManager::AddResource(System.Int32 x,
System.Int32 z, System.Int32 multiplier, System.Int32& pollution, System.Int32&
burned, System.Int32& destroyed)
IL_0172: ldarg.0
IL_0173: ldloc.3
IL_0174: ldloc.0
IL_0175: ldc.i4.1
IL_0176: add
IL_0177: ldc.i4.7
IL_0178: ldloca.s 5 (System.Int32)
IL_017A: ldloca.s 6 (System.Int32)
IL_017C: ldloca.s 7 (System.Int32)
IL_017E: call System.Void NaturalResourceManager::AddResource(System.Int32 x,
System.Int32 z, System.Int32 multiplier, System.Int32& pollution, System.Int32&
burned, System.Int32& destroyed)
IL_0183: ldarg.0
IL_0184: ldloc.3
IL_0185: ldc.i4.1
IL_0186: add
IL_0187: ldloc.0
IL_0188: ldc.i4.1
IL_0189: add
IL_018A: ldc.i4.5
IL_018B: ldloca.s 5 (System.Int32)
IL_018D: ldloca.s 6 (System.Int32)
IL_018F: ldloca.s 7 (System.Int32)
IL_0191: call System.Void NaturalResourceManager::AddResource(System.Int32 x,
System.Int32 z, System.Int32 multiplier, System.Int32& pollution, System.Int32&
burned, System.Int32& destroyed)
IL_0196: ldloca.s 4 (UnityEngine.Color)
IL_0198: ldloc.s 5 (System.Int32)
IL_019A: conv.r4
IL_019B: ldc.r4 6.325111E-05
IL_01A0: mul
IL_01A1: stfld System.Single UnityEngine.Color::r
IL_01A6: ldloca.s 4 (UnityEngine.Color)
IL_01A8: ldloc.s 6 (System.Int32)
IL_01AA: conv.r4
IL_01AB: ldc.r4 6.325111E-05
IL_01B0: mul
IL_01B1: stfld System.Single UnityEngine.Color::g
IL_01B6: ldloca.s 4 (UnityEngine.Color)
IL_01B8: ldloc.s 7 (System.Int32)
IL_01BA: conv.r4
IL_01BB: ldc.r4 6.325111E-05
IL_01C0: mul
IL_01C1: stfld System.Single UnityEngine.Color::b
IL_01C6: ldloca.s 4 (UnityEngine.Color)
IL_01C8: ldc.r4 1
IL_01CD: stfld System.Single UnityEngine.Color::a
IL_01D2: Label12
IL_01D2: ldarg.0
IL_01D3: ldfld UnityEngine.Texture2D
NaturalResourceManager::m_destructionTexture
IL_01D8: ldloc.3
IL_01D9: ldloc.0
IL_01DA: ldloc.s 4 (UnityEngine.Color)
IL_01DC: callvirt System.Void UnityEngine.Texture2D::SetPixel(System.Int32 x,
System.Int32 y, UnityEngine.Color color)
IL_01E1: ldloc.3
IL_01E2: ldc.i4.1
IL_01E3: add
IL_01E4: stloc.3
IL_01E5: Label7
IL_01E5: ldloc.3
IL_01E6: ldloc.2
IL_01E7: ble => Label13
IL_01EC: Label3
IL_01EC: ldloc.0
IL_01ED: ldc.i4.1
IL_01EE: add
IL_01EF: stloc.0
IL_01F0: Label2
IL_01F0: ldloc.0
IL_01F1: ldc.i4 512
IL_01F6: blt => Label14
IL_01FB: ldarg.0
IL_01FC: ldfld UnityEngine.Texture2D
NaturalResourceManager::m_destructionTexture
IL_0201: callvirt System.Void UnityEngine.Texture2D::Apply()
IL_0206: // end original
IL_0206: Label0
IL_0206: ret
DONE

### Patch: virtual System.Void ColossalFramework.UI.UIView::Start()


### Replacement: static System.Void
ColossalFramework.UI.UIView::ColossalFramework.UI.UIView.Start_Patch0(ColossalFrame
work.UI.UIView this)
IL_0000: Local var 0:
ColossalFramework.PoolList`1<ColossalFramework.UI.UIComponent>
IL_0000: Local var 1: ColossalFramework.UI.UIComponent
IL_0000: Local var 2:
System.Collections.Generic.IEnumerator`1<ColossalFramework.UI.UIComponent>
IL_0000: // start original
IL_0000: ldarg.0
IL_0001: ldc.i4.0
IL_0002: stfld System.Int32 ColossalFramework.UI.UIView::m_FramesRendered
IL_0007: ldarg.0
IL_0008: call System.Void
ColossalFramework.UI.UIView::InvalidateAllComponents()
IL_000D: ldarg.0
IL_000E: ldfld UnityEngine.MeshRenderer
ColossalFramework.UI.UIView::m_MeshRenderer
IL_0013: ldnull
IL_0014: call static System.Boolean
UnityEngine.Object::op_Inequality(UnityEngine.Object x, UnityEngine.Object y)
IL_0019: brfalse => Label0
IL_001E: ldarg.0
IL_001F: ldfld UnityEngine.MeshRenderer
ColossalFramework.UI.UIView::m_MeshRenderer
IL_0024: ldc.i4.1
IL_0025: callvirt System.Void UnityEngine.Renderer::set_enabled(System.Boolean
value)
IL_002A: Label0
IL_002A: ldarg.0
IL_002B: call ColossalFramework.PoolList`1<ColossalFramework.UI.UIComponent>
ColossalFramework.UI.UIView::GetTopLevelComponents()
IL_0030: stloc.0
.try
{
IL_0031: ldloc.0
IL_0032: callvirt virtual
System.Collections.Generic.IEnumerator`1<ColossalFramework.UI.UIComponent>
ColossalFramework.PoolList`1<ColossalFramework.UI.UIComponent>::GetEnumerator()
IL_0037: stloc.2
.try
{
IL_0038: br => Label1
IL_003D: Label2
IL_003D: ldloc.2
IL_003E: callvirt abstract virtual ColossalFramework.UI.UIComponent
System.Collections.Generic.IEnumerator`1<ColossalFramework.UI.UIComponent>::get_Cur
rent()
IL_0043: stloc.1
IL_0044: ldloc.1
IL_0045: ldc.i4.1
IL_0046: callvirt System.Void
ColossalFramework.UI.UIComponent::InitializeParentVisibilityCache(System.Boolean
parentVisible)
IL_004B: Label1
IL_004B: ldloc.2
IL_004C: callvirt abstract virtual System.Boolean
System.Collections.IEnumerator::MoveNext()
IL_0051: brtrue => Label2
IL_0056: leave => Label3
IL_005B: leave => (autogenerated)
} // end try
.finally
{
IL_0060: ldloc.2
IL_0061: brfalse => Label4
IL_0066: ldloc.2
IL_0067: callvirt abstract virtual System.Void
System.IDisposable::Dispose()
IL_006C: Label4
IL_006C: endfinally
IL_006D: leave => (autogenerated)
} // end handler
IL_006E: Label3
IL_006E: leave => Label5
IL_0073: leave => (autogenerated)
} // end try
.finally
{
IL_0078: ldloc.0
IL_0079: brfalse => Label6
IL_007E: ldloc.0
IL_007F: callvirt abstract virtual System.Void
System.IDisposable::Dispose()
IL_0084: Label6
IL_0084: endfinally
IL_0085: leave => (autogenerated)
} // end handler
IL_0086: Label5
IL_0086: ldarg.0
IL_0087: ldc.i4.1
IL_0088: stfld System.Boolean
ColossalFramework.UI.UIView::m_VisibilityCacheInitialized
IL_008D: // end original
IL_008D: ret
DONE

### Patch: virtual UnityEngine.Color NetAI::GetColor(System.UInt16 nodeID, NetNode&


data, InfoMode infoMode, SubInfoMode subInfoMode)
### Replacement: static UnityEngine.Color NetAI::NetAI.GetColor_Patch0(NetAI this,
System.UInt16 nodeID, NetNode& data, InfoMode infoMode, SubInfoMode subInfoMode)
IL_0000: // start original
IL_0000: ldarg.3
IL_0001: brfalse => Label0
IL_0006: call static InfoManager
ColossalFramework.Singleton`1<InfoManager>::get_instance()
IL_000B: ldfld InfoProperties SimulationManagerBase`2<InfoManager,
InfoProperties>::m_properties
IL_0010: ldfld UnityEngine.Color InfoProperties::m_neutralColor
IL_0015: br => Label1
IL_001A: Label0
IL_001A: ldarg.0
IL_001B: ldfld NetInfo NetAI::m_info
IL_0020: ldfld UnityEngine.Color NetInfo::m_color
IL_0025: // end original
IL_0025: Label1
IL_0025: ret
DONE

### Patch: virtual UnityEngine.Color NetAI::GetColor(System.UInt16 segmentID,


NetSegment& data, InfoMode infoMode, SubInfoMode subInfoMode)
### Replacement: static UnityEngine.Color NetAI::NetAI.GetColor_Patch0(NetAI this,
System.UInt16 segmentID, NetSegment& data, InfoMode infoMode, SubInfoMode
subInfoMode)
IL_0000: // start original
IL_0000: ldarg.3
IL_0001: brfalse => Label0
IL_0006: call static InfoManager
ColossalFramework.Singleton`1<InfoManager>::get_instance()
IL_000B: ldfld InfoProperties SimulationManagerBase`2<InfoManager,
InfoProperties>::m_properties
IL_0010: ldfld UnityEngine.Color InfoProperties::m_neutralColor
IL_0015: br => Label1
IL_001A: Label0
IL_001A: ldarg.0
IL_001B: ldfld NetInfo NetAI::m_info
IL_0020: ldfld UnityEngine.Color NetInfo::m_color
IL_0025: // end original
IL_0025: Label1
IL_0025: ret
DONE

### Patch: System.Void ElectricityManager::UpdateNodeElectricity(System.Int32


nodeID, System.Int32 value)
### Replacement: static System.Void
ElectricityManager::ElectricityManager.UpdateNodeElectricity_Patch0(ElectricityMana
ger this, System.Int32 nodeID, System.Int32 value)
IL_0000: Local var 0: InfoManager/InfoMode
IL_0000: Local var 1: NetManager
IL_0000: Local var 2: System.Boolean
IL_0000: Local var 3: NetNode/Flags
IL_0000: Local var 4: System.UInt16
IL_0000: Local var 5: BuildingManager
IL_0000: Local var 6: NetNode/Flags
IL_0000: Local var 7: System.Int32
IL_0000: Local var 8: System.UInt16
IL_0000: // start original
IL_0000: call static InfoManager
ColossalFramework.Singleton`1<InfoManager>::get_instance()
IL_0005: callvirt InfoMode InfoManager::get_CurrentMode()
IL_000A: stloc.0
IL_000B: call static NetManager
ColossalFramework.Singleton`1<NetManager>::get_instance()
IL_0010: stloc.1
IL_0011: ldc.i4.0
IL_0012: stloc.2
IL_0013: ldloc.1
IL_0014: ldfld Array16`1<NetNode> NetManager::m_nodes
IL_0019: ldfld NetNode[] Array16`1<NetNode>::m_buffer
IL_001E: ldarg.1
IL_001F: ldelema NetNode
IL_0024: ldfld Flags NetNode::m_flags
IL_0029: stloc.3
IL_002A: ldloc.3
IL_002B: ldc.i4 1048576
IL_0030: and
IL_0031: brfalse => Label0
IL_0036: ldloc.1
IL_0037: ldfld Array16`1<NetNode> NetManager::m_nodes
IL_003C: ldfld NetNode[] Array16`1<NetNode>::m_buffer
IL_0041: ldarg.1
IL_0042: ldelema NetNode
IL_0047: dup
IL_0048: ldfld Flags NetNode::m_flags
IL_004D: ldc.i4 -1048577
IL_0052: and
IL_0053: stfld Flags NetNode::m_flags
IL_0058: br => Label10
IL_005D: Label0
IL_005D: ldloc.1
IL_005E: ldfld Array16`1<NetNode> NetManager::m_nodes
IL_0063: ldfld NetNode[] Array16`1<NetNode>::m_buffer
IL_0068: ldarg.1
IL_0069: ldelema NetNode
IL_006E: ldfld System.UInt16 NetNode::m_building
IL_0073: stloc.s 4 (System.UInt16)
IL_0075: ldloc.s 4 (System.UInt16)
IL_0077: brfalse => Label1
IL_007C: call static BuildingManager
ColossalFramework.Singleton`1<BuildingManager>::get_instance()
IL_0081: stloc.s 5 (BuildingManager)
IL_0083: ldloc.s 5 (BuildingManager)
IL_0085: ldfld Array16`1<Building> BuildingManager::m_buildings
IL_008A: ldfld Building[] Array16`1<Building>::m_buffer
IL_008F: ldloc.s 4 (System.UInt16)
IL_0091: ldelema Building
IL_0096: ldfld System.UInt16 Building::m_electricityBuffer
IL_009B: ldarg.2
IL_009C: beq => Label2
IL_00A1: ldloc.s 5 (BuildingManager)
IL_00A3: ldfld Array16`1<Building> BuildingManager::m_buildings
IL_00A8: ldfld Building[] Array16`1<Building>::m_buffer
IL_00AD: ldloc.s 4 (System.UInt16)
IL_00AF: ldelema Building
IL_00B4: ldarg.2
IL_00B5: conv.u2
IL_00B6: stfld System.UInt16 Building::m_electricityBuffer
IL_00BB: ldloc.0
IL_00BC: ldc.i4.1
IL_00BD: ceq
IL_00BF: stloc.2
IL_00C0: Label2
IL_00C0: ldloc.2
IL_00C1: brfalse => Label3
IL_00C6: ldloc.s 5 (BuildingManager)
IL_00C8: ldloc.s 4 (System.UInt16)
IL_00CA: callvirt System.Void BuildingManager::UpdateBuildingColors(System.UInt16
building)
IL_00CF: Label1
IL_00CF: Label3
IL_00CF: ldloc.3
IL_00D0: ldc.i4 -67108865
IL_00D5: and
IL_00D6: stloc.s 6 (NetNode+Flags)
IL_00D8: ldarg.2
IL_00D9: brfalse => Label4
IL_00DE: ldloc.s 6 (NetNode+Flags)
IL_00E0: ldc.i4 67108864
IL_00E5: or
IL_00E6: stloc.s 6 (NetNode+Flags)
IL_00E8: Label4
IL_00E8: ldloc.s 6 (NetNode+Flags)
IL_00EA: ldloc.3
IL_00EB: beq => Label5
IL_00F0: ldloc.1
IL_00F1: ldfld Array16`1<NetNode> NetManager::m_nodes
IL_00F6: ldfld NetNode[] Array16`1<NetNode>::m_buffer
IL_00FB: ldarg.1
IL_00FC: ldelema NetNode
IL_0101: ldloc.s 6 (NetNode+Flags)
IL_0103: stfld Flags NetNode::m_flags
IL_0108: ldloc.0
IL_0109: ldc.i4.1
IL_010A: ceq
IL_010C: stloc.2
IL_010D: Label5
IL_010D: ldloc.2
IL_010E: brfalse => Label6
IL_0113: ldloc.1
IL_0114: ldarg.1
IL_0115: conv.u2
IL_0116: callvirt System.Void NetManager::UpdateNodeColors(System.UInt16 node)
IL_011B: ldc.i4.0
IL_011C: stloc.s 7 (System.Int32)
IL_011E: br => Label7
IL_0123: Label9
IL_0123: ldloc.1
IL_0124: ldfld Array16`1<NetNode> NetManager::m_nodes
IL_0129: ldfld NetNode[] Array16`1<NetNode>::m_buffer
IL_012E: ldarg.1
IL_012F: ldelema NetNode
IL_0134: ldloc.s 7 (System.Int32)
IL_0136: call System.UInt16 NetNode::GetSegment(System.Int32 index)
IL_013B: stloc.s 8 (System.UInt16)
IL_013D: ldloc.s 8 (System.UInt16)
IL_013F: brfalse => Label8
IL_0144: ldloc.1
IL_0145: ldloc.s 8 (System.UInt16)
IL_0147: callvirt System.Void NetManager::UpdateSegmentColors(System.UInt16
segment)
IL_014C: Label8
IL_014C: ldloc.s 7 (System.Int32)
IL_014E: ldc.i4.1
IL_014F: add
IL_0150: stloc.s 7 (System.Int32)
IL_0152: Label7
IL_0152: ldloc.s 7 (System.Int32)
IL_0154: ldc.i4.8
IL_0155: blt => Label9
IL_015A: // end original
IL_015A: Label6
IL_015A: Label10
IL_015A: ret
DONE

### Patch: static System.Void PropInstance::RenderInstance(CameraInfo cameraInfo,


PropInfo info, InstanceID id, UnityEngine.Vector3 position, System.Single scale,
System.Single angle, UnityEngine.Color color, UnityEngine.Vector4 objectIndex,
System.Boolean active, UnityEngine.Texture heightMap, UnityEngine.Vector4
heightMapping, UnityEngine.Vector4 surfaceMapping, UnityEngine.Texture
waterHeightMap, UnityEngine.Vector4 waterHeightMapping, UnityEngine.Vector4
waterSurfaceMapping)
### Replacement: static System.Void
PropInstance::PropInstance.RenderInstance_Patch0(CameraInfo cameraInfo, PropInfo
info, InstanceID id, UnityEngine.Vector3 position, System.Single scale,
System.Single angle, UnityEngine.Color color, UnityEngine.Vector4 objectIndex,
System.Boolean active, UnityEngine.Texture heightMap, UnityEngine.Vector4
heightMapping, UnityEngine.Vector4 surfaceMapping, UnityEngine.Texture
waterHeightMap, UnityEngine.Vector4 waterHeightMapping, UnityEngine.Vector4
waterSurfaceMapping)
IL_0000: Local var 0: UnityEngine.Matrix4x4
IL_0000: Local var 1: System.Single
IL_0000: Local var 2: System.Int32
IL_0000: Local var 3: UnityEngine.Vector3
IL_0000: Local var 4: UnityEngine.Vector3
IL_0000: Local var 5: EffectInfo/SpawnArea
IL_0000: Local var 6: System.Single
IL_0000: Local var 7: LightSystem
IL_0000: Local var 8: ColossalFramework.Math.Randomizer
IL_0000: Local var 9: UnityEngine.Vector4
IL_0000: Local var 10: System.Single
IL_0000: Local var 11: System.Single
IL_0000: Local var 12: System.Single
IL_0000: Local var 13: UnityEngine.Matrix4x4
IL_0000: Local var 14: PropManager
IL_0000: Local var 15: UnityEngine.MaterialPropertyBlock
IL_0000: Local var 16: System.Int32
IL_0000: // start original
IL_0000: ldarg.1
IL_0001: ldfld System.Boolean PrefabInfo::m_prefabInitialized
IL_0006: brfalse => Label0
IL_000B: ldarg.1
IL_000C: ldfld System.Boolean PropInfo::m_hasEffects
IL_0011: brfalse => Label1
IL_0016: ldarg.s 8
IL_0018: brtrue => Label2
IL_001D: ldarg.1
IL_001E: ldfld System.Boolean PropInfo::m_alwaysActive
IL_0023: brfalse => Label3
IL_0028: Label2
IL_0028: ldloca.s 0 (UnityEngine.Matrix4x4)
IL_002A: initobj UnityEngine.Matrix4x4
IL_0030: ldloca.s 0 (UnityEngine.Matrix4x4)
IL_0032: ldarg.3
IL_0033: ldarg.s 5
IL_0035: ldc.r4 57.29578
IL_003A: mul
IL_003B: call static UnityEngine.Vector3 UnityEngine.Vector3::get_down()
IL_0040: call static UnityEngine.Quaternion
UnityEngine.Quaternion::AngleAxis(System.Single angle, UnityEngine.Vector3 axis)
IL_0045: ldarg.s 4
IL_0047: ldarg.s 4
IL_0049: ldarg.s 4
IL_004B: newobj System.Void UnityEngine.Vector3::.ctor(System.Single x,
System.Single y, System.Single z)
IL_0050: call System.Void UnityEngine.Matrix4x4::SetTRS(UnityEngine.Vector3
pos, UnityEngine.Quaternion q, UnityEngine.Vector3 s)
IL_0055: call static SimulationManager
ColossalFramework.Singleton`1<SimulationManager>::get_instance()
IL_005A: ldfld System.Single SimulationManager::m_simulationTimeDelta
IL_005F: stloc.1
IL_0060: ldc.i4.0
IL_0061: stloc.2
IL_0062: br => Label4
IL_0067: Label5
IL_0067: ldloca.s 0 (UnityEngine.Matrix4x4)
IL_0069: ldarg.1
IL_006A: ldfld Effect[] PropInfo::m_effects
IL_006F: ldloc.2
IL_0070: ldelema PropInfo+Effect
IL_0075: ldfld UnityEngine.Vector3 Effect::m_position
IL_007A: call UnityEngine.Vector3
UnityEngine.Matrix4x4::MultiplyPoint(UnityEngine.Vector3 v)
IL_007F: stloc.3
IL_0080: ldloca.s 0 (UnityEngine.Matrix4x4)
IL_0082: ldarg.1
IL_0083: ldfld Effect[] PropInfo::m_effects
IL_0088: ldloc.2
IL_0089: ldelema PropInfo+Effect
IL_008E: ldfld UnityEngine.Vector3 Effect::m_direction
IL_0093: call UnityEngine.Vector3
UnityEngine.Matrix4x4::MultiplyVector(UnityEngine.Vector3 v)
IL_0098: stloc.s 4 (UnityEngine.Vector3)
IL_009A: ldloca.s 5 (EffectInfo+SpawnArea)
IL_009C: ldloc.3
IL_009D: ldloc.s 4 (UnityEngine.Vector3)
IL_009F: ldc.r4 0
IL_00A4: call System.Void SpawnArea::.ctor(UnityEngine.Vector3 position,
UnityEngine.Vector3 direction, System.Single radius)
IL_00A9: ldarg.1
IL_00AA: ldfld Effect[] PropInfo::m_effects
IL_00AF: ldloc.2
IL_00B0: ldelema PropInfo+Effect
IL_00B5: ldfld EffectInfo Effect::m_effect
IL_00BA: ldarg.2
IL_00BB: ldloc.s 5 (EffectInfo+SpawnArea)
IL_00BD: call static UnityEngine.Vector3 UnityEngine.Vector3::get_zero()
IL_00C2: ldc.r4 0
IL_00C7: ldc.r4 1
IL_00CC: ldc.r4 -1
IL_00D1: ldloc.1
IL_00D2: ldarg.0
IL_00D3: callvirt virtual System.Void EffectInfo::RenderEffect(InstanceID id,
SpawnArea area, UnityEngine.Vector3 velocity, System.Single acceleration,
System.Single magnitude, System.Single timeOffset, System.Single timeDelta,
CameraInfo cameraInfo)
IL_00D8: ldloc.2
IL_00D9: ldc.i4.1
IL_00DA: add
IL_00DB: stloc.2
IL_00DC: Label4
IL_00DC: ldloc.2
IL_00DD: ldarg.1
IL_00DE: ldfld Effect[] PropInfo::m_effects
IL_00E3: ldlen
IL_00E4: conv.i4
IL_00E5: blt => Label5
IL_00EA: Label1
IL_00EA: Label3
IL_00EA: ldarg.1
IL_00EB: ldfld System.Boolean PropInfo::m_hasRenderer
IL_00F0: brfalse => Label6
IL_00F5: ldarg.0
IL_00F6: ldfld System.Int32 CameraInfo::m_layerMask
IL_00FB: ldc.i4.1
IL_00FC: ldarg.1
IL_00FD: ldfld System.Int32 PrefabInfo::m_prefabDataLayer
IL_0102: ldc.i4.s 31
IL_0104: and
IL_0105: shl
IL_0106: and
IL_0107: brfalse => Label7
IL_010C: call static InfoManager
ColossalFramework.Singleton`1<InfoManager>::get_instance()
IL_0111: callvirt InfoMode InfoManager::get_CurrentMode()
IL_0116: brtrue => Label8
IL_011B: ldc.r4 0
IL_0120: stloc.s 6 (System.Single)
IL_0122: ldarg.s 8
IL_0124: brtrue => Label9
IL_0129: ldarg.1
IL_012A: ldfld System.Boolean PropInfo::m_alwaysActive
IL_012F: brtrue => Label10
IL_0134: ldarga.s 7
IL_0136: ldc.r4 0
IL_013B: stfld System.Single UnityEngine.Vector4::z
IL_0140: br => Label11
IL_0145: Label9
IL_0145: Label10
IL_0145: ldarg.1
IL_0146: ldflda UnityEngine.Vector2 PropInfo::m_illuminationOffRange
IL_014B: ldfld System.Single UnityEngine.Vector2::x
IL_0150: ldc.r4 1000
IL_0155: blt => Label12
IL_015A: ldarg.1
IL_015B: ldfld BlinkType PropInfo::m_illuminationBlinkType
IL_0160: brfalse => Label13
IL_0165: Label12
IL_0165: call static RenderManager
ColossalFramework.Singleton`1<RenderManager>::get_instance()
IL_016A: callvirt LightSystem RenderManager::get_lightSystem()
IL_016F: stloc.s 7 (LightSystem)
IL_0171: ldloca.s 8 (ColossalFramework.Math.Randomizer)
IL_0173: ldarga.s 2
IL_0175: call System.UInt32 InstanceID::get_Index()
IL_017A: call System.Void
ColossalFramework.Math.Randomizer::.ctor(System.UInt32 _seed)
IL_017F: ldarg.1
IL_0180: ldflda UnityEngine.Vector2 PropInfo::m_illuminationOffRange
IL_0185: ldfld System.Single UnityEngine.Vector2::x
IL_018A: ldloca.s 8 (ColossalFramework.Math.Randomizer)
IL_018C: ldc.i4 100000
IL_0191: call System.Int32
ColossalFramework.Math.Randomizer::Int32(System.UInt32 range)
IL_0196: conv.r4
IL_0197: ldc.r4 1E-05
IL_019C: mul
IL_019D: ldarg.1
IL_019E: ldflda UnityEngine.Vector2 PropInfo::m_illuminationOffRange
IL_01A3: ldfld System.Single UnityEngine.Vector2::y
IL_01A8: ldarg.1
IL_01A9: ldflda UnityEngine.Vector2 PropInfo::m_illuminationOffRange
IL_01AE: ldfld System.Single UnityEngine.Vector2::x
IL_01B3: sub
IL_01B4: mul
IL_01B5: add
IL_01B6: stloc.s 6 (System.Single)
IL_01B8: ldarga.s 7
IL_01BA: ldloc.s 6 (System.Single)
IL_01BC: ldc.r4 0.01
IL_01C1: add
IL_01C2: ldloc.s 6 (System.Single)
IL_01C4: ldc.r4 0.01
IL_01C9: sub
IL_01CA: ldloc.s 7 (LightSystem)
IL_01CC: callvirt System.Single LightSystem::get_DayLightIntensity()
IL_01D1: call static System.Single MathUtils::SmoothStep(System.Single edge0,
System.Single edge1, System.Single x)
IL_01D6: stfld System.Single UnityEngine.Vector4::z
IL_01DB: ldarg.1
IL_01DC: ldfld BlinkType PropInfo::m_illuminationBlinkType
IL_01E1: brfalse => Label14
IL_01E6: ldarg.1
IL_01E7: ldfld BlinkType PropInfo::m_illuminationBlinkType
IL_01EC: call static UnityEngine.Vector4
LightEffect::GetBlinkVector(BlinkType type)
IL_01F1: stloc.s 9 (UnityEngine.Vector4)
IL_01F3: ldloc.s 6 (System.Single)
IL_01F5: ldc.r4 3.71
IL_01FA: mul
IL_01FB: call static SimulationManager
ColossalFramework.Singleton`1<SimulationManager>::get_instance()
IL_0200: ldfld System.Single SimulationManager::m_simulationTimer
IL_0205: ldloca.s 9 (UnityEngine.Vector4)
IL_0207: ldfld System.Single UnityEngine.Vector4::w
IL_020C: div
IL_020D: add
IL_020E: stloc.s 10 (System.Single)
IL_0210: ldloc.s 10 (System.Single)
IL_0212: ldloc.s 10 (System.Single)
IL_0214: call static System.Single UnityEngine.Mathf::Floor(System.Single f)
IL_0219: sub
IL_021A: ldloca.s 9 (UnityEngine.Vector4)
IL_021C: ldfld System.Single UnityEngine.Vector4::w
IL_0221: mul
IL_0222: stloc.s 10 (System.Single)
IL_0224: ldloca.s 9 (UnityEngine.Vector4)
IL_0226: ldfld System.Single UnityEngine.Vector4::x
IL_022B: ldloca.s 9 (UnityEngine.Vector4)
IL_022D: ldfld System.Single UnityEngine.Vector4::y
IL_0232: ldloc.s 10 (System.Single)
IL_0234: call static System.Single MathUtils::SmoothStep(System.Single edge0,
System.Single edge1, System.Single x)
IL_0239: stloc.s 11 (System.Single)
IL_023B: ldloca.s 9 (UnityEngine.Vector4)
IL_023D: ldfld System.Single UnityEngine.Vector4::w
IL_0242: ldloca.s 9 (UnityEngine.Vector4)
IL_0244: ldfld System.Single UnityEngine.Vector4::z
IL_0249: ldloc.s 10 (System.Single)
IL_024B: call static System.Single MathUtils::SmoothStep(System.Single edge0,
System.Single edge1, System.Single x)
IL_0250: stloc.s 12 (System.Single)
IL_0252: ldarga.s 7
IL_0254: dup
IL_0255: ldfld System.Single UnityEngine.Vector4::z
IL_025A: ldc.r4 1
IL_025F: ldloc.s 11 (System.Single)
IL_0261: ldloc.s 12 (System.Single)
IL_0263: mul
IL_0264: sub
IL_0265: mul
IL_0266: stfld System.Single UnityEngine.Vector4::z
IL_026B: Label14
IL_026B: br => Label15
IL_0270: Label13
IL_0270: ldarga.s 7
IL_0272: ldc.r4 1
IL_0277: stfld System.Single UnityEngine.Vector4::z
IL_027C: Label8
IL_027C: Label11
IL_027C: Label15
IL_027C: ldarg.0
IL_027D: brfalse => Label16
IL_0282: ldarg.0
IL_0283: ldarg.3
IL_0284: ldarg.1
IL_0285: ldfld System.Single PropInfo::m_lodRenderDistance
IL_028A: callvirt System.Boolean
CameraInfo::CheckRenderDistance(UnityEngine.Vector3 point, System.Single
maxDistance)
IL_028F: brfalse => Label17
IL_0294: Label16
IL_0294: ldloca.s 13 (UnityEngine.Matrix4x4)
IL_0296: initobj UnityEngine.Matrix4x4
IL_029C: ldloca.s 13 (UnityEngine.Matrix4x4)
IL_029E: ldarg.3
IL_029F: ldarg.s 5
IL_02A1: ldc.r4 57.29578
IL_02A6: mul
IL_02A7: call static UnityEngine.Vector3 UnityEngine.Vector3::get_down()
IL_02AC: call static UnityEngine.Quaternion
UnityEngine.Quaternion::AngleAxis(System.Single angle, UnityEngine.Vector3 axis)
IL_02B1: ldarg.s 4
IL_02B3: ldarg.s 4
IL_02B5: ldarg.s 4
IL_02B7: newobj System.Void UnityEngine.Vector3::.ctor(System.Single x,
System.Single y, System.Single z)
IL_02BC: call System.Void UnityEngine.Matrix4x4::SetTRS(UnityEngine.Vector3
pos, UnityEngine.Quaternion q, UnityEngine.Vector3 s)
IL_02C1: call static PropManager
ColossalFramework.Singleton`1<PropManager>::get_instance()
IL_02C6: stloc.s 14 (PropManager)
IL_02C8: ldloc.s 14 (PropManager)
IL_02CA: ldfld UnityEngine.MaterialPropertyBlock PropManager::m_materialBlock
IL_02CF: stloc.s 15 (UnityEngine.MaterialPropertyBlock)
IL_02D1: ldloc.s 15 (UnityEngine.MaterialPropertyBlock)
IL_02D3: callvirt System.Void UnityEngine.MaterialPropertyBlock::Clear()
IL_02D8: ldloc.s 15 (UnityEngine.MaterialPropertyBlock)
IL_02DA: ldloc.s 14 (PropManager)
IL_02DC: ldfld System.Int32 PropManager::ID_Color
IL_02E1: ldarg.s 6
IL_02E3: callvirt System.Void
UnityEngine.MaterialPropertyBlock::SetColor(System.Int32 nameID, UnityEngine.Color
value)
IL_02E8: ldloc.s 15 (UnityEngine.MaterialPropertyBlock)
IL_02EA: ldloc.s 14 (PropManager)
IL_02EC: ldfld System.Int32 PropManager::ID_HeightMap
IL_02F1: ldarg.s 9
IL_02F3: callvirt System.Void
UnityEngine.MaterialPropertyBlock::SetTexture(System.Int32 nameID,
UnityEngine.Texture value)
IL_02F8: ldloc.s 15 (UnityEngine.MaterialPropertyBlock)
IL_02FA: ldloc.s 14 (PropManager)
IL_02FC: ldfld System.Int32 PropManager::ID_HeightMapping
IL_0301: ldarg.s 10
IL_0303: callvirt System.Void
UnityEngine.MaterialPropertyBlock::SetVector(System.Int32 nameID,
UnityEngine.Vector4 value)
IL_0308: ldloc.s 15 (UnityEngine.MaterialPropertyBlock)
IL_030A: ldloc.s 14 (PropManager)
IL_030C: ldfld System.Int32 PropManager::ID_SurfaceMapping
IL_0311: ldarg.s 11
IL_0313: callvirt System.Void
UnityEngine.MaterialPropertyBlock::SetVector(System.Int32 nameID,
UnityEngine.Vector4 value)
IL_0318: ldloc.s 15 (UnityEngine.MaterialPropertyBlock)
IL_031A: ldloc.s 14 (PropManager)
IL_031C: ldfld System.Int32 PropManager::ID_ObjectIndex
IL_0321: ldarg.s 7
IL_0323: callvirt System.Void
UnityEngine.MaterialPropertyBlock::SetVector(System.Int32 nameID,
UnityEngine.Vector4 value)
IL_0328: ldloc.s 15 (UnityEngine.MaterialPropertyBlock)
IL_032A: ldloc.s 14 (PropManager)
IL_032C: ldfld System.Int32 PropManager::ID_WaterHeightMap
IL_0331: ldarg.s 12
IL_0333: callvirt System.Void
UnityEngine.MaterialPropertyBlock::SetTexture(System.Int32 nameID,
UnityEngine.Texture value)
IL_0338: ldloc.s 15 (UnityEngine.MaterialPropertyBlock)
IL_033A: ldloc.s 14 (PropManager)
IL_033C: ldfld System.Int32 PropManager::ID_WaterHeightMapping
IL_0341: ldarg.s 13
IL_0343: callvirt System.Void
UnityEngine.MaterialPropertyBlock::SetVector(System.Int32 nameID,
UnityEngine.Vector4 value)
IL_0348: ldloc.s 15 (UnityEngine.MaterialPropertyBlock)
IL_034A: ldloc.s 14 (PropManager)
IL_034C: ldfld System.Int32 PropManager::ID_WaterSurfaceMapping
IL_0351: ldarg.s 14
IL_0353: callvirt System.Void
UnityEngine.MaterialPropertyBlock::SetVector(System.Int32 nameID,
UnityEngine.Vector4 value)
IL_0358: ldarg.1
IL_0359: ldfld UnityEngine.Vector4[] PropInfo::m_rollLocation
IL_035E: brfalse => Label18
IL_0363: ldarg.1
IL_0364: ldfld UnityEngine.Material PropInfo::m_material
IL_0369: ldloc.s 14 (PropManager)
IL_036B: ldfld System.Int32 PropManager::ID_RollLocation
IL_0370: ldarg.1
IL_0371: ldfld UnityEngine.Vector4[] PropInfo::m_rollLocation
IL_0376: callvirt System.Void UnityEngine.Material::SetVectorArray(System.Int32
nameID, UnityEngine.Vector4[] values)
IL_037B: ldarg.1
IL_037C: ldfld UnityEngine.Material PropInfo::m_material
IL_0381: ldloc.s 14 (PropManager)
IL_0383: ldfld System.Int32 PropManager::ID_RollParams
IL_0388: ldarg.1
IL_0389: ldfld UnityEngine.Vector4[] PropInfo::m_rollParams
IL_038E: callvirt System.Void UnityEngine.Material::SetVectorArray(System.Int32
nameID, UnityEngine.Vector4[] values)
IL_0393: Label18
IL_0393: ldloc.s 14 (PropManager)
IL_0395: ldflda DrawCallData SimulationManagerBase`2<PropManager,
PropProperties>::m_drawCallData
IL_039A: dup
IL_039B: ldfld System.Int32 DrawCallData::m_defaultCalls
IL_03A0: ldc.i4.1
IL_03A1: add
IL_03A2: stfld System.Int32 DrawCallData::m_defaultCalls
IL_03A7: ldarg.1
IL_03A8: ldfld UnityEngine.Mesh PropInfo::m_mesh
IL_03AD: ldloc.s 13 (UnityEngine.Matrix4x4)
IL_03AF: ldarg.1
IL_03B0: ldfld UnityEngine.Material PropInfo::m_material
IL_03B5: ldarg.1
IL_03B6: ldfld System.Int32 PrefabInfo::m_prefabDataLayer
IL_03BB: ldnull
IL_03BC: ldc.i4.0
IL_03BD: ldloc.s 15 (UnityEngine.MaterialPropertyBlock)
IL_03BF: call static System.Void
UnityEngine.Graphics::DrawMesh(UnityEngine.Mesh mesh, UnityEngine.Matrix4x4 matrix,
UnityEngine.Material material, System.Int32 layer, UnityEngine.Camera camera,
System.Int32 submeshIndex, UnityEngine.MaterialPropertyBlock properties)
IL_03C4: br => Label19
IL_03C9: Label17
IL_03C9: ldarg.s 9
IL_03CB: ldarg.1
IL_03CC: ldfld UnityEngine.Texture PropInfo::m_lodHeightMap
IL_03D1: call static System.Boolean
UnityEngine.Object::op_Inequality(UnityEngine.Object x, UnityEngine.Object y)
IL_03D6: brtrue => Label20
IL_03DB: ldarg.s 12
IL_03DD: ldarg.1
IL_03DE: ldfld UnityEngine.Texture PropInfo::m_lodWaterHeightMap
IL_03E3: call static System.Boolean
UnityEngine.Object::op_Inequality(UnityEngine.Object x, UnityEngine.Object y)
IL_03E8: brfalse => Label21
IL_03ED: Label20
IL_03ED: ldarg.1
IL_03EE: ldfld System.Int32 PropInfo::m_lodCount
IL_03F3: brfalse => Label22
IL_03F8: ldarg.0
IL_03F9: ldarg.1
IL_03FA: call static System.Void PropInstance::RenderLod(CameraInfo
cameraInfo, PropInfo info)
IL_03FF: Label22
IL_03FF: ldarg.1
IL_0400: ldarg.s 9
IL_0402: stfld UnityEngine.Texture PropInfo::m_lodHeightMap
IL_0407: ldarg.1
IL_0408: ldarg.s 10
IL_040A: stfld UnityEngine.Vector4 PropInfo::m_lodHeightMapping
IL_040F: ldarg.1
IL_0410: ldarg.s 11
IL_0412: stfld UnityEngine.Vector4 PropInfo::m_lodSurfaceMapping
IL_0417: ldarg.1
IL_0418: ldarg.s 12
IL_041A: stfld UnityEngine.Texture PropInfo::m_lodWaterHeightMap
IL_041F: ldarg.1
IL_0420: ldarg.s 13
IL_0422: stfld UnityEngine.Vector4 PropInfo::m_lodWaterHeightMapping
IL_0427: ldarg.1
IL_0428: ldarg.s 14
IL_042A: stfld UnityEngine.Vector4 PropInfo::m_lodWaterSurfaceMapping
IL_042F: Label21
IL_042F: ldarga.s 7
IL_0431: ldarg.s 4
IL_0433: stfld System.Single UnityEngine.Vector4::w
IL_0438: ldarg.1
IL_0439: ldfld UnityEngine.Vector4[] PropInfo::m_lodLocations
IL_043E: ldarg.1
IL_043F: ldfld System.Int32 PropInfo::m_lodCount
IL_0444: ldelema UnityEngine.Vector4
IL_0449: ldarga.s 3
IL_044B: ldfld System.Single UnityEngine.Vector3::x
IL_0450: ldarga.s 3
IL_0452: ldfld System.Single UnityEngine.Vector3::y
IL_0457: ldarga.s 3
IL_0459: ldfld System.Single UnityEngine.Vector3::z
IL_045E: ldarg.s 5
IL_0460: newobj System.Void UnityEngine.Vector4::.ctor(System.Single x,
System.Single y, System.Single z, System.Single w)
IL_0465: stobj UnityEngine.Vector4
IL_046A: ldarg.1
IL_046B: ldfld UnityEngine.Vector4[] PropInfo::m_lodObjectIndices
IL_0470: ldarg.1
IL_0471: ldfld System.Int32 PropInfo::m_lodCount
IL_0476: ldelema UnityEngine.Vector4
IL_047B: ldarg.s 7
IL_047D: stobj UnityEngine.Vector4
IL_0482: ldarg.1
IL_0483: ldfld UnityEngine.Vector4[] PropInfo::m_lodColors
IL_0488: ldarg.1
IL_0489: ldfld System.Int32 PropInfo::m_lodCount
IL_048E: ldelema UnityEngine.Vector4
IL_0493: ldarga.s 6
IL_0495: call UnityEngine.Color UnityEngine.Color::get_linear()
IL_049A: call static UnityEngine.Vector4
UnityEngine.Color::op_Implicit(UnityEngine.Color c)
IL_049F: stobj UnityEngine.Vector4
IL_04A4: ldarg.1
IL_04A5: ldarg.1
IL_04A6: ldfld UnityEngine.Vector3 PropInfo::m_lodMin
IL_04AB: ldarg.3
IL_04AC: call static UnityEngine.Vector3
UnityEngine.Vector3::Min(UnityEngine.Vector3 lhs, UnityEngine.Vector3 rhs)
IL_04B1: stfld UnityEngine.Vector3 PropInfo::m_lodMin
IL_04B6: ldarg.1
IL_04B7: ldarg.1
IL_04B8: ldfld UnityEngine.Vector3 PropInfo::m_lodMax
IL_04BD: ldarg.3
IL_04BE: call static UnityEngine.Vector3
UnityEngine.Vector3::Max(UnityEngine.Vector3 lhs, UnityEngine.Vector3 rhs)
IL_04C3: stfld UnityEngine.Vector3 PropInfo::m_lodMax
IL_04C8: ldarg.1
IL_04C9: dup
IL_04CA: ldfld System.Int32 PropInfo::m_lodCount
IL_04CF: ldc.i4.1
IL_04D0: add
IL_04D1: dup
IL_04D2: stloc.s 16 (System.Int32)
IL_04D4: stfld System.Int32 PropInfo::m_lodCount
IL_04D9: ldloc.s 16 (System.Int32)
IL_04DB: ldarg.1
IL_04DC: ldfld UnityEngine.Vector4[] PropInfo::m_lodLocations
IL_04E1: ldlen
IL_04E2: conv.i4
IL_04E3: bne.un => Label23
IL_04E8: ldarg.0
IL_04E9: ldarg.1
IL_04EA: call static System.Void PropInstance::RenderLod(CameraInfo
cameraInfo, PropInfo info)
IL_04EF: // end original
IL_04EF: Label0
IL_04EF: Label6
IL_04EF: Label7
IL_04EF: Label19
IL_04EF: Label23
IL_04EF: ret
DONE

### Patch: static System.Void PropInstance::RenderInstance(CameraInfo cameraInfo,


PropInfo info, InstanceID id, UnityEngine.Vector3 position, System.Single scale,
System.Single angle, UnityEngine.Color color, UnityEngine.Vector4 objectIndex,
System.Boolean active)
### Replacement: static System.Void
PropInstance::PropInstance.RenderInstance_Patch0(CameraInfo cameraInfo, PropInfo
info, InstanceID id, UnityEngine.Vector3 position, System.Single scale,
System.Single angle, UnityEngine.Color color, UnityEngine.Vector4 objectIndex,
System.Boolean active)
IL_0000: Local var 0: UnityEngine.Matrix4x4
IL_0000: Local var 1: System.Single
IL_0000: Local var 2: System.Int32
IL_0000: Local var 3: UnityEngine.Vector3
IL_0000: Local var 4: UnityEngine.Vector3
IL_0000: Local var 5: EffectInfo/SpawnArea
IL_0000: Local var 6: System.Single
IL_0000: Local var 7: LightSystem
IL_0000: Local var 8: ColossalFramework.Math.Randomizer
IL_0000: Local var 9: UnityEngine.Vector4
IL_0000: Local var 10: System.Single
IL_0000: Local var 11: System.Single
IL_0000: Local var 12: System.Single
IL_0000: Local var 13: UnityEngine.Matrix4x4
IL_0000: Local var 14: PropManager
IL_0000: Local var 15: UnityEngine.MaterialPropertyBlock
IL_0000: Local var 16: UnityEngine.Matrix4x4
IL_0000: Local var 17: PropManager
IL_0000: Local var 18: UnityEngine.MaterialPropertyBlock
IL_0000: Local var 19: System.Int32
IL_0000: // start original
IL_0000: ldarg.1
IL_0001: ldfld System.Boolean PrefabInfo::m_prefabInitialized
IL_0006: brfalse => Label0
IL_000B: ldarg.1
IL_000C: ldfld System.Boolean PropInfo::m_hasEffects
IL_0011: brfalse => Label1
IL_0016: ldarg.s 8
IL_0018: brtrue => Label2
IL_001D: ldarg.1
IL_001E: ldfld System.Boolean PropInfo::m_alwaysActive
IL_0023: brfalse => Label3
IL_0028: Label2
IL_0028: ldloca.s 0 (UnityEngine.Matrix4x4)
IL_002A: initobj UnityEngine.Matrix4x4
IL_0030: ldloca.s 0 (UnityEngine.Matrix4x4)
IL_0032: ldarg.3
IL_0033: ldarg.s 5
IL_0035: ldc.r4 57.29578
IL_003A: mul
IL_003B: call static UnityEngine.Vector3 UnityEngine.Vector3::get_down()
IL_0040: call static UnityEngine.Quaternion
UnityEngine.Quaternion::AngleAxis(System.Single angle, UnityEngine.Vector3 axis)
IL_0045: ldarg.s 4
IL_0047: ldarg.s 4
IL_0049: ldarg.s 4
IL_004B: newobj System.Void UnityEngine.Vector3::.ctor(System.Single x,
System.Single y, System.Single z)
IL_0050: call System.Void UnityEngine.Matrix4x4::SetTRS(UnityEngine.Vector3
pos, UnityEngine.Quaternion q, UnityEngine.Vector3 s)
IL_0055: call static SimulationManager
ColossalFramework.Singleton`1<SimulationManager>::get_instance()
IL_005A: ldfld System.Single SimulationManager::m_simulationTimeDelta
IL_005F: stloc.1
IL_0060: ldc.i4.0
IL_0061: stloc.2
IL_0062: br => Label4
IL_0067: Label5
IL_0067: ldloca.s 0 (UnityEngine.Matrix4x4)
IL_0069: ldarg.1
IL_006A: ldfld Effect[] PropInfo::m_effects
IL_006F: ldloc.2
IL_0070: ldelema PropInfo+Effect
IL_0075: ldfld UnityEngine.Vector3 Effect::m_position
IL_007A: call UnityEngine.Vector3
UnityEngine.Matrix4x4::MultiplyPoint(UnityEngine.Vector3 v)
IL_007F: stloc.3
IL_0080: ldloca.s 0 (UnityEngine.Matrix4x4)
IL_0082: ldarg.1
IL_0083: ldfld Effect[] PropInfo::m_effects
IL_0088: ldloc.2
IL_0089: ldelema PropInfo+Effect
IL_008E: ldfld UnityEngine.Vector3 Effect::m_direction
IL_0093: call UnityEngine.Vector3
UnityEngine.Matrix4x4::MultiplyVector(UnityEngine.Vector3 v)
IL_0098: stloc.s 4 (UnityEngine.Vector3)
IL_009A: ldloca.s 5 (EffectInfo+SpawnArea)
IL_009C: ldloc.3
IL_009D: ldloc.s 4 (UnityEngine.Vector3)
IL_009F: ldc.r4 0
IL_00A4: call System.Void SpawnArea::.ctor(UnityEngine.Vector3 position,
UnityEngine.Vector3 direction, System.Single radius)
IL_00A9: ldarg.1
IL_00AA: ldfld Effect[] PropInfo::m_effects
IL_00AF: ldloc.2
IL_00B0: ldelema PropInfo+Effect
IL_00B5: ldfld EffectInfo Effect::m_effect
IL_00BA: ldarg.2
IL_00BB: ldloc.s 5 (EffectInfo+SpawnArea)
IL_00BD: call static UnityEngine.Vector3 UnityEngine.Vector3::get_zero()
IL_00C2: ldc.r4 0
IL_00C7: ldc.r4 1
IL_00CC: ldc.r4 -1
IL_00D1: ldloc.1
IL_00D2: ldarg.0
IL_00D3: callvirt virtual System.Void EffectInfo::RenderEffect(InstanceID id,
SpawnArea area, UnityEngine.Vector3 velocity, System.Single acceleration,
System.Single magnitude, System.Single timeOffset, System.Single timeDelta,
CameraInfo cameraInfo)
IL_00D8: ldloc.2
IL_00D9: ldc.i4.1
IL_00DA: add
IL_00DB: stloc.2
IL_00DC: Label4
IL_00DC: ldloc.2
IL_00DD: ldarg.1
IL_00DE: ldfld Effect[] PropInfo::m_effects
IL_00E3: ldlen
IL_00E4: conv.i4
IL_00E5: blt => Label5
IL_00EA: Label1
IL_00EA: Label3
IL_00EA: ldarg.1
IL_00EB: ldfld System.Boolean PropInfo::m_hasRenderer
IL_00F0: brfalse => Label6
IL_00F5: ldarg.0
IL_00F6: ldfld System.Int32 CameraInfo::m_layerMask
IL_00FB: ldc.i4.1
IL_00FC: ldarg.1
IL_00FD: ldfld System.Int32 PrefabInfo::m_prefabDataLayer
IL_0102: ldc.i4.s 31
IL_0104: and
IL_0105: shl
IL_0106: and
IL_0107: brfalse => Label7
IL_010C: call static InfoManager
ColossalFramework.Singleton`1<InfoManager>::get_instance()
IL_0111: callvirt InfoMode InfoManager::get_CurrentMode()
IL_0116: brtrue => Label8
IL_011B: ldc.r4 0
IL_0120: stloc.s 6 (System.Single)
IL_0122: ldarg.s 8
IL_0124: brtrue => Label9
IL_0129: ldarg.1
IL_012A: ldfld System.Boolean PropInfo::m_alwaysActive
IL_012F: brtrue => Label10
IL_0134: ldarga.s 7
IL_0136: ldc.r4 0
IL_013B: stfld System.Single UnityEngine.Vector4::z
IL_0140: br => Label11
IL_0145: Label9
IL_0145: Label10
IL_0145: ldarg.1
IL_0146: ldflda UnityEngine.Vector2 PropInfo::m_illuminationOffRange
IL_014B: ldfld System.Single UnityEngine.Vector2::x
IL_0150: ldc.r4 1000
IL_0155: blt => Label12
IL_015A: ldarg.1
IL_015B: ldfld BlinkType PropInfo::m_illuminationBlinkType
IL_0160: brfalse => Label13
IL_0165: Label12
IL_0165: call static RenderManager
ColossalFramework.Singleton`1<RenderManager>::get_instance()
IL_016A: callvirt LightSystem RenderManager::get_lightSystem()
IL_016F: stloc.s 7 (LightSystem)
IL_0171: ldloca.s 8 (ColossalFramework.Math.Randomizer)
IL_0173: ldarga.s 2
IL_0175: call System.UInt32 InstanceID::get_Index()
IL_017A: call System.Void
ColossalFramework.Math.Randomizer::.ctor(System.UInt32 _seed)
IL_017F: ldarg.1
IL_0180: ldflda UnityEngine.Vector2 PropInfo::m_illuminationOffRange
IL_0185: ldfld System.Single UnityEngine.Vector2::x
IL_018A: ldloca.s 8 (ColossalFramework.Math.Randomizer)
IL_018C: ldc.i4 100000
IL_0191: call System.Int32
ColossalFramework.Math.Randomizer::Int32(System.UInt32 range)
IL_0196: conv.r4
IL_0197: ldc.r4 1E-05
IL_019C: mul
IL_019D: ldarg.1
IL_019E: ldflda UnityEngine.Vector2 PropInfo::m_illuminationOffRange
IL_01A3: ldfld System.Single UnityEngine.Vector2::y
IL_01A8: ldarg.1
IL_01A9: ldflda UnityEngine.Vector2 PropInfo::m_illuminationOffRange
IL_01AE: ldfld System.Single UnityEngine.Vector2::x
IL_01B3: sub
IL_01B4: mul
IL_01B5: add
IL_01B6: stloc.s 6 (System.Single)
IL_01B8: ldarga.s 7
IL_01BA: ldloc.s 6 (System.Single)
IL_01BC: ldc.r4 0.01
IL_01C1: add
IL_01C2: ldloc.s 6 (System.Single)
IL_01C4: ldc.r4 0.01
IL_01C9: sub
IL_01CA: ldloc.s 7 (LightSystem)
IL_01CC: callvirt System.Single LightSystem::get_DayLightIntensity()
IL_01D1: call static System.Single MathUtils::SmoothStep(System.Single edge0,
System.Single edge1, System.Single x)
IL_01D6: stfld System.Single UnityEngine.Vector4::z
IL_01DB: ldarg.1
IL_01DC: ldfld BlinkType PropInfo::m_illuminationBlinkType
IL_01E1: brfalse => Label14
IL_01E6: ldarg.1
IL_01E7: ldfld BlinkType PropInfo::m_illuminationBlinkType
IL_01EC: call static UnityEngine.Vector4
LightEffect::GetBlinkVector(BlinkType type)
IL_01F1: stloc.s 9 (UnityEngine.Vector4)
IL_01F3: ldloc.s 6 (System.Single)
IL_01F5: ldc.r4 3.71
IL_01FA: mul
IL_01FB: call static SimulationManager
ColossalFramework.Singleton`1<SimulationManager>::get_instance()
IL_0200: ldfld System.Single SimulationManager::m_simulationTimer
IL_0205: ldloca.s 9 (UnityEngine.Vector4)
IL_0207: ldfld System.Single UnityEngine.Vector4::w
IL_020C: div
IL_020D: add
IL_020E: stloc.s 10 (System.Single)
IL_0210: ldloc.s 10 (System.Single)
IL_0212: ldloc.s 10 (System.Single)
IL_0214: call static System.Single UnityEngine.Mathf::Floor(System.Single f)
IL_0219: sub
IL_021A: ldloca.s 9 (UnityEngine.Vector4)
IL_021C: ldfld System.Single UnityEngine.Vector4::w
IL_0221: mul
IL_0222: stloc.s 10 (System.Single)
IL_0224: ldloca.s 9 (UnityEngine.Vector4)
IL_0226: ldfld System.Single UnityEngine.Vector4::x
IL_022B: ldloca.s 9 (UnityEngine.Vector4)
IL_022D: ldfld System.Single UnityEngine.Vector4::y
IL_0232: ldloc.s 10 (System.Single)
IL_0234: call static System.Single MathUtils::SmoothStep(System.Single edge0,
System.Single edge1, System.Single x)
IL_0239: stloc.s 11 (System.Single)
IL_023B: ldloca.s 9 (UnityEngine.Vector4)
IL_023D: ldfld System.Single UnityEngine.Vector4::w
IL_0242: ldloca.s 9 (UnityEngine.Vector4)
IL_0244: ldfld System.Single UnityEngine.Vector4::z
IL_0249: ldloc.s 10 (System.Single)
IL_024B: call static System.Single MathUtils::SmoothStep(System.Single edge0,
System.Single edge1, System.Single x)
IL_0250: stloc.s 12 (System.Single)
IL_0252: ldarga.s 7
IL_0254: dup
IL_0255: ldfld System.Single UnityEngine.Vector4::z
IL_025A: ldc.r4 1
IL_025F: ldloc.s 11 (System.Single)
IL_0261: ldloc.s 12 (System.Single)
IL_0263: mul
IL_0264: sub
IL_0265: mul
IL_0266: stfld System.Single UnityEngine.Vector4::z
IL_026B: Label14
IL_026B: br => Label15
IL_0270: Label13
IL_0270: ldarga.s 7
IL_0272: ldc.r4 1
IL_0277: stfld System.Single UnityEngine.Vector4::z
IL_027C: Label8
IL_027C: Label11
IL_027C: Label15
IL_027C: ldarg.0
IL_027D: brfalse => Label16
IL_0282: ldarg.0
IL_0283: ldarg.3
IL_0284: ldarg.1
IL_0285: ldfld System.Single PropInfo::m_lodRenderDistance
IL_028A: callvirt System.Boolean
CameraInfo::CheckRenderDistance(UnityEngine.Vector3 point, System.Single
maxDistance)
IL_028F: brfalse => Label17
IL_0294: Label16
IL_0294: ldloca.s 13 (UnityEngine.Matrix4x4)
IL_0296: initobj UnityEngine.Matrix4x4
IL_029C: ldloca.s 13 (UnityEngine.Matrix4x4)
IL_029E: ldarg.3
IL_029F: ldarg.s 5
IL_02A1: ldc.r4 57.29578
IL_02A6: mul
IL_02A7: call static UnityEngine.Vector3 UnityEngine.Vector3::get_down()
IL_02AC: call static UnityEngine.Quaternion
UnityEngine.Quaternion::AngleAxis(System.Single angle, UnityEngine.Vector3 axis)
IL_02B1: ldarg.s 4
IL_02B3: ldarg.s 4
IL_02B5: ldarg.s 4
IL_02B7: newobj System.Void UnityEngine.Vector3::.ctor(System.Single x,
System.Single y, System.Single z)
IL_02BC: call System.Void UnityEngine.Matrix4x4::SetTRS(UnityEngine.Vector3
pos, UnityEngine.Quaternion q, UnityEngine.Vector3 s)
IL_02C1: call static PropManager
ColossalFramework.Singleton`1<PropManager>::get_instance()
IL_02C6: stloc.s 14 (PropManager)
IL_02C8: ldloc.s 14 (PropManager)
IL_02CA: ldfld UnityEngine.MaterialPropertyBlock PropManager::m_materialBlock
IL_02CF: stloc.s 15 (UnityEngine.MaterialPropertyBlock)
IL_02D1: ldloc.s 15 (UnityEngine.MaterialPropertyBlock)
IL_02D3: callvirt System.Void UnityEngine.MaterialPropertyBlock::Clear()
IL_02D8: ldloc.s 15 (UnityEngine.MaterialPropertyBlock)
IL_02DA: ldloc.s 14 (PropManager)
IL_02DC: ldfld System.Int32 PropManager::ID_Color
IL_02E1: ldarg.s 6
IL_02E3: callvirt System.Void
UnityEngine.MaterialPropertyBlock::SetColor(System.Int32 nameID, UnityEngine.Color
value)
IL_02E8: ldloc.s 15 (UnityEngine.MaterialPropertyBlock)
IL_02EA: ldloc.s 14 (PropManager)
IL_02EC: ldfld System.Int32 PropManager::ID_ObjectIndex
IL_02F1: ldarg.s 7
IL_02F3: callvirt System.Void
UnityEngine.MaterialPropertyBlock::SetVector(System.Int32 nameID,
UnityEngine.Vector4 value)
IL_02F8: ldarg.1
IL_02F9: ldfld UnityEngine.Vector4[] PropInfo::m_rollLocation
IL_02FE: brfalse => Label18
IL_0303: ldarg.1
IL_0304: ldfld UnityEngine.Material PropInfo::m_material
IL_0309: ldloc.s 14 (PropManager)
IL_030B: ldfld System.Int32 PropManager::ID_RollLocation
IL_0310: ldarg.1
IL_0311: ldfld UnityEngine.Vector4[] PropInfo::m_rollLocation
IL_0316: callvirt System.Void UnityEngine.Material::SetVectorArray(System.Int32
nameID, UnityEngine.Vector4[] values)
IL_031B: ldarg.1
IL_031C: ldfld UnityEngine.Material PropInfo::m_material
IL_0321: ldloc.s 14 (PropManager)
IL_0323: ldfld System.Int32 PropManager::ID_RollParams
IL_0328: ldarg.1
IL_0329: ldfld UnityEngine.Vector4[] PropInfo::m_rollParams
IL_032E: callvirt System.Void UnityEngine.Material::SetVectorArray(System.Int32
nameID, UnityEngine.Vector4[] values)
IL_0333: Label18
IL_0333: ldloc.s 14 (PropManager)
IL_0335: ldflda DrawCallData SimulationManagerBase`2<PropManager,
PropProperties>::m_drawCallData
IL_033A: dup
IL_033B: ldfld System.Int32 DrawCallData::m_defaultCalls
IL_0340: ldc.i4.1
IL_0341: add
IL_0342: stfld System.Int32 DrawCallData::m_defaultCalls
IL_0347: ldarg.1
IL_0348: ldfld UnityEngine.Mesh PropInfo::m_mesh
IL_034D: ldloc.s 13 (UnityEngine.Matrix4x4)
IL_034F: ldarg.1
IL_0350: ldfld UnityEngine.Material PropInfo::m_material
IL_0355: ldarg.1
IL_0356: ldfld System.Int32 PrefabInfo::m_prefabDataLayer
IL_035B: ldnull
IL_035C: ldc.i4.0
IL_035D: ldloc.s 15 (UnityEngine.MaterialPropertyBlock)
IL_035F: call static System.Void
UnityEngine.Graphics::DrawMesh(UnityEngine.Mesh mesh, UnityEngine.Matrix4x4 matrix,
UnityEngine.Material material, System.Int32 layer, UnityEngine.Camera camera,
System.Int32 submeshIndex, UnityEngine.MaterialPropertyBlock properties)
IL_0364: br => Label19
IL_0369: Label17
IL_0369: ldarg.1
IL_036A: ldfld UnityEngine.Material PropInfo::m_lodMaterialCombined
IL_036F: ldnull
IL_0370: call static System.Boolean
UnityEngine.Object::op_Equality(UnityEngine.Object x, UnityEngine.Object y)
IL_0375: brfalse => Label20
IL_037A: ldloca.s 16 (UnityEngine.Matrix4x4)
IL_037C: initobj UnityEngine.Matrix4x4
IL_0382: ldloca.s 16 (UnityEngine.Matrix4x4)
IL_0384: ldarg.3
IL_0385: ldarg.s 5
IL_0387: ldc.r4 57.29578
IL_038C: mul
IL_038D: call static UnityEngine.Vector3 UnityEngine.Vector3::get_down()
IL_0392: call static UnityEngine.Quaternion
UnityEngine.Quaternion::AngleAxis(System.Single angle, UnityEngine.Vector3 axis)
IL_0397: ldarg.s 4
IL_0399: ldarg.s 4
IL_039B: ldarg.s 4
IL_039D: newobj System.Void UnityEngine.Vector3::.ctor(System.Single x,
System.Single y, System.Single z)
IL_03A2: call System.Void UnityEngine.Matrix4x4::SetTRS(UnityEngine.Vector3
pos, UnityEngine.Quaternion q, UnityEngine.Vector3 s)
IL_03A7: call static PropManager
ColossalFramework.Singleton`1<PropManager>::get_instance()
IL_03AC: stloc.s 17 (PropManager)
IL_03AE: ldloc.s 17 (PropManager)
IL_03B0: ldfld UnityEngine.MaterialPropertyBlock PropManager::m_materialBlock
IL_03B5: stloc.s 18 (UnityEngine.MaterialPropertyBlock)
IL_03B7: ldloc.s 18 (UnityEngine.MaterialPropertyBlock)
IL_03B9: callvirt System.Void UnityEngine.MaterialPropertyBlock::Clear()
IL_03BE: ldloc.s 18 (UnityEngine.MaterialPropertyBlock)
IL_03C0: ldloc.s 17 (PropManager)
IL_03C2: ldfld System.Int32 PropManager::ID_Color
IL_03C7: ldarg.s 6
IL_03C9: callvirt System.Void
UnityEngine.MaterialPropertyBlock::SetColor(System.Int32 nameID, UnityEngine.Color
value)
IL_03CE: ldloc.s 18 (UnityEngine.MaterialPropertyBlock)
IL_03D0: ldloc.s 17 (PropManager)
IL_03D2: ldfld System.Int32 PropManager::ID_ObjectIndex
IL_03D7: ldarg.s 7
IL_03D9: callvirt System.Void
UnityEngine.MaterialPropertyBlock::SetVector(System.Int32 nameID,
UnityEngine.Vector4 value)
IL_03DE: ldarg.1
IL_03DF: ldfld UnityEngine.Vector4[] PropInfo::m_rollLocation
IL_03E4: brfalse => Label21
IL_03E9: ldarg.1
IL_03EA: ldfld UnityEngine.Material PropInfo::m_material
IL_03EF: ldloc.s 17 (PropManager)
IL_03F1: ldfld System.Int32 PropManager::ID_RollLocation
IL_03F6: ldarg.1
IL_03F7: ldfld UnityEngine.Vector4[] PropInfo::m_rollLocation
IL_03FC: callvirt System.Void UnityEngine.Material::SetVectorArray(System.Int32
nameID, UnityEngine.Vector4[] values)
IL_0401: ldarg.1
IL_0402: ldfld UnityEngine.Material PropInfo::m_material
IL_0407: ldloc.s 17 (PropManager)
IL_0409: ldfld System.Int32 PropManager::ID_RollParams
IL_040E: ldarg.1
IL_040F: ldfld UnityEngine.Vector4[] PropInfo::m_rollParams
IL_0414: callvirt System.Void UnityEngine.Material::SetVectorArray(System.Int32
nameID, UnityEngine.Vector4[] values)
IL_0419: Label21
IL_0419: ldloc.s 17 (PropManager)
IL_041B: ldflda DrawCallData SimulationManagerBase`2<PropManager,
PropProperties>::m_drawCallData
IL_0420: dup
IL_0421: ldfld System.Int32 DrawCallData::m_defaultCalls
IL_0426: ldc.i4.1
IL_0427: add
IL_0428: stfld System.Int32 DrawCallData::m_defaultCalls
IL_042D: ldarg.1
IL_042E: ldfld UnityEngine.Mesh PropInfo::m_lodMesh
IL_0433: ldloc.s 16 (UnityEngine.Matrix4x4)
IL_0435: ldarg.1
IL_0436: ldfld UnityEngine.Material PropInfo::m_lodMaterial
IL_043B: ldarg.1
IL_043C: ldfld System.Int32 PrefabInfo::m_prefabDataLayer
IL_0441: ldnull
IL_0442: ldc.i4.0
IL_0443: ldloc.s 18 (UnityEngine.MaterialPropertyBlock)
IL_0445: call static System.Void
UnityEngine.Graphics::DrawMesh(UnityEngine.Mesh mesh, UnityEngine.Matrix4x4 matrix,
UnityEngine.Material material, System.Int32 layer, UnityEngine.Camera camera,
System.Int32 submeshIndex, UnityEngine.MaterialPropertyBlock properties)
IL_044A: br => Label22
IL_044F: Label20
IL_044F: ldarga.s 7
IL_0451: ldarg.s 4
IL_0453: stfld System.Single UnityEngine.Vector4::w
IL_0458: ldarg.1
IL_0459: ldfld UnityEngine.Vector4[] PropInfo::m_lodLocations
IL_045E: ldarg.1
IL_045F: ldfld System.Int32 PropInfo::m_lodCount
IL_0464: ldelema UnityEngine.Vector4
IL_0469: ldarga.s 3
IL_046B: ldfld System.Single UnityEngine.Vector3::x
IL_0470: ldarga.s 3
IL_0472: ldfld System.Single UnityEngine.Vector3::y
IL_0477: ldarga.s 3
IL_0479: ldfld System.Single UnityEngine.Vector3::z
IL_047E: ldarg.s 5
IL_0480: newobj System.Void UnityEngine.Vector4::.ctor(System.Single x,
System.Single y, System.Single z, System.Single w)
IL_0485: stobj UnityEngine.Vector4
IL_048A: ldarg.1
IL_048B: ldfld UnityEngine.Vector4[] PropInfo::m_lodObjectIndices
IL_0490: ldarg.1
IL_0491: ldfld System.Int32 PropInfo::m_lodCount
IL_0496: ldelema UnityEngine.Vector4
IL_049B: ldarg.s 7
IL_049D: stobj UnityEngine.Vector4
IL_04A2: ldarg.1
IL_04A3: ldfld UnityEngine.Vector4[] PropInfo::m_lodColors
IL_04A8: ldarg.1
IL_04A9: ldfld System.Int32 PropInfo::m_lodCount
IL_04AE: ldelema UnityEngine.Vector4
IL_04B3: ldarga.s 6
IL_04B5: call UnityEngine.Color UnityEngine.Color::get_linear()
IL_04BA: call static UnityEngine.Vector4
UnityEngine.Color::op_Implicit(UnityEngine.Color c)
IL_04BF: stobj UnityEngine.Vector4
IL_04C4: ldarg.1
IL_04C5: ldarg.1
IL_04C6: ldfld UnityEngine.Vector3 PropInfo::m_lodMin
IL_04CB: ldarg.3
IL_04CC: call static UnityEngine.Vector3
UnityEngine.Vector3::Min(UnityEngine.Vector3 lhs, UnityEngine.Vector3 rhs)
IL_04D1: stfld UnityEngine.Vector3 PropInfo::m_lodMin
IL_04D6: ldarg.1
IL_04D7: ldarg.1
IL_04D8: ldfld UnityEngine.Vector3 PropInfo::m_lodMax
IL_04DD: ldarg.3
IL_04DE: call static UnityEngine.Vector3
UnityEngine.Vector3::Max(UnityEngine.Vector3 lhs, UnityEngine.Vector3 rhs)
IL_04E3: stfld UnityEngine.Vector3 PropInfo::m_lodMax
IL_04E8: ldarg.1
IL_04E9: dup
IL_04EA: ldfld System.Int32 PropInfo::m_lodCount
IL_04EF: ldc.i4.1
IL_04F0: add
IL_04F1: dup
IL_04F2: stloc.s 19 (System.Int32)
IL_04F4: stfld System.Int32 PropInfo::m_lodCount
IL_04F9: ldloc.s 19 (System.Int32)
IL_04FB: ldarg.1
IL_04FC: ldfld UnityEngine.Vector4[] PropInfo::m_lodLocations
IL_0501: ldlen
IL_0502: conv.i4
IL_0503: bne.un => Label23
IL_0508: ldarg.0
IL_0509: ldarg.1
IL_050A: call static System.Void PropInstance::RenderLod(CameraInfo
cameraInfo, PropInfo info)
IL_050F: // end original
IL_050F: Label0
IL_050F: Label6
IL_050F: Label7
IL_050F: Label19
IL_050F: Label22
IL_050F: Label23
IL_050F: ret
DONE

### Patch: virtual System.Void LightEffect::PopulateGroupData(System.Int32 layer,


InstanceID id, UnityEngine.Vector3 pos, UnityEngine.Vector3 dir, 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
LightEffect::LightEffect.PopulateGroupData_Patch0(LightEffect this, System.Int32
layer, InstanceID id, UnityEngine.Vector3 pos, UnityEngine.Vector3 dir,
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.Boolean
IL_0000: Local var 1: UnityEngine.Vector3
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.Quaternion
IL_0000: Local var 7: UnityEngine.Vector4
IL_0000: Local var 8: UnityEngine.Vector2
IL_0000: Local var 9: ColossalFramework.Math.Randomizer
IL_0000: Local var 10: UnityEngine.Vector2
IL_0000: Local var 11: UnityEngine.Vector2
IL_0000: Local var 12: UnityEngine.Vector2
IL_0000: Local var 13: System.UInt16
IL_0000: Local var 14: UnityEngine.Vector3
IL_0000: Local var 15: UnityEngine.Color
IL_0000: Local var 16: UnityEngine.Color
IL_0000: Local var 17: System.Single
IL_0000: Local var 18: System.Single
IL_0000: Local var 19: System.Int32
IL_0000: // start original
IL_0000: ldarg.1
IL_0001: ldarg.0
IL_0002: ldfld System.Int32 LightEffect::m_groupLayer
IL_0007: beq => Label0
IL_000C: ldarg.1
IL_000D: ldarg.0
IL_000E: ldfld System.Int32 LightEffect::m_groupLayerFloating
IL_0013: bne.un => Label1
IL_0018: Label0
IL_0018: ldarg.1
IL_0019: ldarg.0
IL_001A: ldfld System.Int32 LightEffect::m_groupLayerFloating
IL_001F: ceq
IL_0021: stloc.0
IL_0022: ldloca.s 1 (UnityEngine.Vector3)
IL_0024: ldarg.0
IL_0025: ldfld System.Single LightEffect::m_lightRange
IL_002A: ldarg.0
IL_002B: ldfld System.Single LightEffect::m_lightRange
IL_0030: ldarg.0
IL_0031: ldfld System.Single LightEffect::m_lightRange
IL_0036: call System.Void UnityEngine.Vector3::.ctor(System.Single x,
System.Single y, System.Single z)
IL_003B: ldarg.3
IL_003C: ldloc.1
IL_003D: call static UnityEngine.Vector3
UnityEngine.Vector3::op_Subtraction(UnityEngine.Vector3 a, UnityEngine.Vector3 b)
IL_0042: stloc.2
IL_0043: ldarg.3
IL_0044: ldloc.1
IL_0045: call static UnityEngine.Vector3
UnityEngine.Vector3::op_Addition(UnityEngine.Vector3 a, UnityEngine.Vector3 b)
IL_004A: stloc.3
IL_004B: ldarg.s 9
IL_004D: ldarg.s 9
IL_004F: ldobj UnityEngine.Vector3
IL_0054: ldloc.2
IL_0055: call static UnityEngine.Vector3
UnityEngine.Vector3::Min(UnityEngine.Vector3 lhs, UnityEngine.Vector3 rhs)
IL_005A: stobj UnityEngine.Vector3
IL_005F: ldarg.s 10
IL_0061: ldarg.s 10
IL_0063: ldobj UnityEngine.Vector3
IL_0068: ldloc.3
IL_0069: call static UnityEngine.Vector3
UnityEngine.Vector3::Max(UnityEngine.Vector3 lhs, UnityEngine.Vector3 rhs)
IL_006E: stobj UnityEngine.Vector3
IL_0073: ldarg.3
IL_0074: ldarg.s 7
IL_0076: call static UnityEngine.Vector3
UnityEngine.Vector3::op_Subtraction(UnityEngine.Vector3 a, UnityEngine.Vector3 b)
IL_007B: stloc.s 4 (UnityEngine.Vector3)
IL_007D: ldarg.s 11
IL_007F: ldarg.s 11
IL_0081: ldind.r4
IL_0082: ldc.r4 30000
IL_0087: call static System.Single UnityEngine.Mathf::Max(System.Single a,
System.Single b)
IL_008C: stind.r4
IL_008D: ldarg.0
IL_008E: ldfld UnityEngine.LightType LightEffect::m_lightType
IL_0093: brtrue => Label2
IL_0098: ldarg.s 4
IL_009A: call static UnityEngine.Quaternion
UnityEngine.Quaternion::LookRotation(UnityEngine.Vector3 forward)
IL_009F: stloc.s 6 (UnityEngine.Quaternion)
IL_00A1: ldloc.s 6 (UnityEngine.Quaternion)
IL_00A3: ldarg.0
IL_00A4: ldfld UnityEngine.Quaternion LightEffect::m_lightRotation
IL_00A9: call static UnityEngine.Vector3 UnityEngine.Vector3::get_forward()
IL_00AE: call static UnityEngine.Vector3
UnityEngine.Quaternion::op_Multiply(UnityEngine.Quaternion rotation,
UnityEngine.Vector3 point)
IL_00B3: call static UnityEngine.Vector3
UnityEngine.Quaternion::op_Multiply(UnityEngine.Quaternion rotation,
UnityEngine.Vector3 point)
IL_00B8: stloc.s 5 (UnityEngine.Vector3)
IL_00BA: br => Label3
IL_00BF: Label2
IL_00BF: call static UnityEngine.Vector3 UnityEngine.Vector3::get_forward()
IL_00C4: stloc.s 5 (UnityEngine.Vector3)
IL_00C6: Label3
IL_00C6: ldloca.s 7 (UnityEngine.Vector4)
IL_00C8: ldloca.s 5 (UnityEngine.Vector3)
IL_00CA: ldfld System.Single UnityEngine.Vector3::x
IL_00CF: ldloca.s 5 (UnityEngine.Vector3)
IL_00D1: ldfld System.Single UnityEngine.Vector3::y
IL_00D6: ldloca.s 5 (UnityEngine.Vector3)
IL_00D8: ldfld System.Single UnityEngine.Vector3::z
IL_00DD: ldc.r4 100000
IL_00E2: call System.Void UnityEngine.Vector4::.ctor(System.Single x,
System.Single y, System.Single z, System.Single w)
IL_00E7: ldarg.0
IL_00E8: ldfld UnityEngine.LightType LightEffect::m_lightType
IL_00ED: brtrue => Label4
IL_00F2: ldloca.s 7 (UnityEngine.Vector4)
IL_00F4: ldc.r4 0.01745329
IL_00F9: ldarg.0
IL_00FA: ldfld System.Single LightEffect::m_lightSpotAngle
IL_00FF: mul
IL_0100: ldc.r4 0.5
IL_0105: mul
IL_0106: call static System.Single UnityEngine.Mathf::Cos(System.Single f)
IL_010B: neg
IL_010C: stfld System.Single UnityEngine.Vector4::w
IL_0111: Label4
IL_0111: ldloca.s 8 (UnityEngine.Vector2)
IL_0113: ldc.r4 1
IL_0118: ldarg.0
IL_0119: ldfld System.Single LightEffect::m_lightRange
IL_011E: ldarg.0
IL_011F: ldfld System.Single LightEffect::m_lightRange
IL_0124: mul
IL_0125: div
IL_0126: ldarg.0
IL_0127: ldfld System.Single LightEffect::m_lightIntensity
IL_012C: call System.Void UnityEngine.Vector2::.ctor(System.Single x,
System.Single y)
IL_0131: ldloca.s 9 (ColossalFramework.Math.Randomizer)
IL_0133: ldarga.s 2
IL_0135: call System.UInt32 InstanceID::get_Index()
IL_013A: call System.Void
ColossalFramework.Math.Randomizer::.ctor(System.UInt32 _seed)
IL_013F: ldloca.s 10 (UnityEngine.Vector2)
IL_0141: ldarg.0
IL_0142: ldflda UnityEngine.Vector2 LightEffect::m_offRange
IL_0147: ldfld System.Single UnityEngine.Vector2::x
IL_014C: ldloca.s 9 (ColossalFramework.Math.Randomizer)
IL_014E: ldc.i4 100000
IL_0153: call System.Int32
ColossalFramework.Math.Randomizer::Int32(System.UInt32 range)
IL_0158: conv.r4
IL_0159: ldc.r4 1E-05
IL_015E: mul
IL_015F: ldarg.0
IL_0160: ldflda UnityEngine.Vector2 LightEffect::m_offRange
IL_0165: ldfld System.Single UnityEngine.Vector2::y
IL_016A: ldarg.0
IL_016B: ldflda UnityEngine.Vector2 LightEffect::m_offRange
IL_0170: ldfld System.Single UnityEngine.Vector2::x
IL_0175: sub
IL_0176: mul
IL_0177: add
IL_0178: stfld System.Single UnityEngine.Vector2::x
IL_017D: ldloca.s 10 (UnityEngine.Vector2)
IL_017F: ldarg.0
IL_0180: ldfld BlinkType LightEffect::m_blinkType
IL_0185: conv.r4
IL_0186: stfld System.Single UnityEngine.Vector2::y
IL_018B: ldarg.2
IL_018C: call static System.UInt16 EffectInfo::GetBuilding(InstanceID id)
IL_0191: stloc.s 13 (System.UInt16)
IL_0193: ldloc.s 13 (System.UInt16)
IL_0195: brfalse => Label5
IL_019A: ldloc.s 13 (System.UInt16)
IL_019C: call static UnityEngine.Vector4
RenderManager::GetColorLocation(System.UInt32 instanceHolder)
IL_01A1: call static UnityEngine.Vector2
UnityEngine.Vector4::op_Implicit(UnityEngine.Vector4 v)
IL_01A6: stloc.s 11 (UnityEngine.Vector2)
IL_01A8: ldloc.0
IL_01A9: brfalse => Label6
IL_01AE: call static BuildingManager
ColossalFramework.Singleton`1<BuildingManager>::get_instance()
IL_01B3: ldfld Array16`1<Building> BuildingManager::m_buildings
IL_01B8: ldfld Building[] Array16`1<Building>::m_buffer
IL_01BD: ldloc.s 13 (System.UInt16)
IL_01BF: ldelema Building
IL_01C4: call UnityEngine.Vector3 Building::CalculateMeshPosition()
IL_01C9: stloc.s 14 (UnityEngine.Vector3)
IL_01CB: ldloc.s 14 (UnityEngine.Vector3)
IL_01CD: call static UnityEngine.Vector2
ColossalFramework.Math.VectorUtils::XZ(UnityEngine.Vector3 v)
IL_01D2: stloc.s 12 (UnityEngine.Vector2)
IL_01D4: ldarga.s 3
IL_01D6: dup
IL_01D7: ldfld System.Single UnityEngine.Vector3::y
IL_01DC: ldloca.s 14 (UnityEngine.Vector3)
IL_01DE: ldfld System.Single UnityEngine.Vector3::y
IL_01E3: sub
IL_01E4: stfld System.Single UnityEngine.Vector3::y
IL_01E9: ldloca.s 4 (UnityEngine.Vector3)
IL_01EB: dup
IL_01EC: ldfld System.Single UnityEngine.Vector3::y
IL_01F1: ldloca.s 14 (UnityEngine.Vector3)
IL_01F3: ldfld System.Single UnityEngine.Vector3::y
IL_01F8: sub
IL_01F9: stfld System.Single UnityEngine.Vector3::y
IL_01FE: br => Label7
IL_0203: Label6
IL_0203: call static UnityEngine.Vector2 UnityEngine.Vector2::get_zero()
IL_0208: stloc.s 12 (UnityEngine.Vector2)
IL_020A: Label7
IL_020A: br => Label8
IL_020F: Label5
IL_020F: ldsfld UnityEngine.Vector4 RenderManager::DefaultColorLocation
IL_0214: call static UnityEngine.Vector2
UnityEngine.Vector4::op_Implicit(UnityEngine.Vector4 v)
IL_0219: stloc.s 11 (UnityEngine.Vector2)
IL_021B: call static UnityEngine.Vector2 UnityEngine.Vector2::get_zero()
IL_0220: stloc.s 12 (UnityEngine.Vector2)
IL_0222: Label8
IL_0222: ldarg.0
IL_0223: ldfld UnityEngine.Color LightEffect::m_lightColor
IL_0228: stloc.s 15 (UnityEngine.Color)
IL_022A: ldarg.0
IL_022B: ldfld UnityEngine.Color[] LightEffect::m_variationColors
IL_0230: brfalse => Label9
IL_0235: ldarg.0
IL_0236: ldfld UnityEngine.Color[] LightEffect::m_variationColors
IL_023B: ldlen
IL_023C: conv.i4
IL_023D: brfalse => Label10
IL_0242: ldarg.0
IL_0243: ldfld UnityEngine.Color[] LightEffect::m_variationColors
IL_0248: ldloca.s 9 (ColossalFramework.Math.Randomizer)
IL_024A: ldarg.0
IL_024B: ldfld UnityEngine.Color[] LightEffect::m_variationColors
IL_0250: ldlen
IL_0251: conv.i4
IL_0252: call System.Int32
ColossalFramework.Math.Randomizer::Int32(System.UInt32 range)
IL_0257: ldelema UnityEngine.Color
IL_025C: ldobj UnityEngine.Color
IL_0261: stloc.s 16 (UnityEngine.Color)
IL_0263: ldloc.s 15 (UnityEngine.Color)
IL_0265: ldloc.s 16 (UnityEngine.Color)
IL_0267: ldloca.s 9 (ColossalFramework.Math.Randomizer)
IL_0269: ldc.i4 1000
IL_026E: call System.Int32
ColossalFramework.Math.Randomizer::Int32(System.UInt32 range)
IL_0273: conv.r4
IL_0274: ldc.r4 0.001
IL_0279: mul
IL_027A: call static UnityEngine.Color
UnityEngine.Color::Lerp(UnityEngine.Color a, UnityEngine.Color b, System.Single t)
IL_027F: stloc.s 15 (UnityEngine.Color)
IL_0281: Label9
IL_0281: Label10
IL_0281: ldloca.s 15 (UnityEngine.Color)
IL_0283: call UnityEngine.Color UnityEngine.Color::get_linear()
IL_0288: stloc.s 15 (UnityEngine.Color)
IL_028A: ldloca.s 15 (UnityEngine.Color)
IL_028C: ldarg.0
IL_028D: ldfld UnityEngine.LightType LightEffect::m_lightType
IL_0292: brtrue => Label11
IL_0297: ldarg.0
IL_0298: ldfld System.Single LightEffect::m_spotLeaking
IL_029D: br => Label12
IL_02A2: Label11
IL_02A2: ldc.r4 0
IL_02A7: Label12
IL_02A7: stfld System.Single UnityEngine.Color::a
IL_02AC: ldarg.0
IL_02AD: ldfld System.Single LightEffect::m_lightRange
IL_02B2: ldc.r4 0.5235988
IL_02B7: call static System.Single UnityEngine.Mathf::Cos(System.Single f)
IL_02BC: div
IL_02BD: stloc.s 17 (System.Single)
IL_02BF: ldloc.s 17 (System.Single)
IL_02C1: ldc.r4 0.5
IL_02C6: mul
IL_02C7: stloc.s 18 (System.Single)
IL_02C9: ldarg.s 8
IL_02CB: ldfld UnityEngine.Vector3[] MeshData::m_vertices
IL_02D0: ldarg.s 5
IL_02D2: ldind.i4
IL_02D3: ldelema UnityEngine.Vector3
IL_02D8: ldloca.s 4 (UnityEngine.Vector3)
IL_02DA: ldfld System.Single UnityEngine.Vector3::x
IL_02DF: ldloc.s 18 (System.Single)
IL_02E1: sub
IL_02E2: ldloca.s 4 (UnityEngine.Vector3)
IL_02E4: ldfld System.Single UnityEngine.Vector3::y
IL_02E9: ldarg.0
IL_02EA: ldfld System.Single LightEffect::m_lightRange
IL_02EF: add
IL_02F0: ldloca.s 4 (UnityEngine.Vector3)
IL_02F2: ldfld System.Single UnityEngine.Vector3::z
IL_02F7: ldarg.0
IL_02F8: ldfld System.Single LightEffect::m_lightRange
IL_02FD: add
IL_02FE: newobj System.Void UnityEngine.Vector3::.ctor(System.Single x,
System.Single y, System.Single z)
IL_0303: stobj UnityEngine.Vector3
IL_0308: ldarg.s 8
IL_030A: ldfld UnityEngine.Vector3[] MeshData::m_normals
IL_030F: ldarg.s 5
IL_0311: ldind.i4
IL_0312: ldelema UnityEngine.Vector3
IL_0317: ldarg.3
IL_0318: stobj UnityEngine.Vector3
IL_031D: ldarg.s 8
IL_031F: ldfld UnityEngine.Vector4[] MeshData::m_tangents
IL_0324: ldarg.s 5
IL_0326: ldind.i4
IL_0327: ldelema UnityEngine.Vector4
IL_032C: ldloc.s 7 (UnityEngine.Vector4)
IL_032E: stobj UnityEngine.Vector4
IL_0333: ldarg.s 8
IL_0335: ldfld UnityEngine.Vector2[] MeshData::m_uvs
IL_033A: ldarg.s 5
IL_033C: ldind.i4
IL_033D: ldelema UnityEngine.Vector2
IL_0342: ldloc.s 8 (UnityEngine.Vector2)
IL_0344: stobj UnityEngine.Vector2
IL_0349: ldarg.s 8
IL_034B: ldfld UnityEngine.Vector2[] MeshData::m_uvs2
IL_0350: ldarg.s 5
IL_0352: ldind.i4
IL_0353: ldelema UnityEngine.Vector2
IL_0358: ldloc.s 10 (UnityEngine.Vector2)
IL_035A: stobj UnityEngine.Vector2
IL_035F: ldarg.s 8
IL_0361: ldfld UnityEngine.Vector2[] MeshData::m_uvs3
IL_0366: ldarg.s 5
IL_0368: ldind.i4
IL_0369: ldelema UnityEngine.Vector2
IL_036E: ldloc.s 11 (UnityEngine.Vector2)
IL_0370: stobj UnityEngine.Vector2
IL_0375: ldloc.0
IL_0376: brfalse => Label13
IL_037B: ldarg.s 8
IL_037D: ldfld UnityEngine.Vector2[] MeshData::m_uvs4
IL_0382: ldarg.s 5
IL_0384: ldind.i4
IL_0385: ldelema UnityEngine.Vector2
IL_038A: ldloc.s 12 (UnityEngine.Vector2)
IL_038C: stobj UnityEngine.Vector2
IL_0391: Label13
IL_0391: ldarg.s 8
IL_0393: ldfld UnityEngine.Color32[] MeshData::m_colors
IL_0398: ldarg.s 5
IL_039A: ldind.i4
IL_039B: ldelema UnityEngine.Color32
IL_03A0: ldloc.s 15 (UnityEngine.Color)
IL_03A2: call static UnityEngine.Color32
UnityEngine.Color32::op_Implicit(UnityEngine.Color c)
IL_03A7: stobj UnityEngine.Color32
IL_03AC: ldarg.s 5
IL_03AE: ldarg.s 5
IL_03B0: ldind.i4
IL_03B1: ldc.i4.1
IL_03B2: add
IL_03B3: stind.i4
IL_03B4: ldarg.s 8
IL_03B6: ldfld UnityEngine.Vector3[] MeshData::m_vertices
IL_03BB: ldarg.s 5
IL_03BD: ldind.i4
IL_03BE: ldelema UnityEngine.Vector3
IL_03C3: ldloca.s 4 (UnityEngine.Vector3)
IL_03C5: ldfld System.Single UnityEngine.Vector3::x
IL_03CA: ldloc.s 18 (System.Single)
IL_03CC: add
IL_03CD: ldloca.s 4 (UnityEngine.Vector3)
IL_03CF: ldfld System.Single UnityEngine.Vector3::y
IL_03D4: ldarg.0
IL_03D5: ldfld System.Single LightEffect::m_lightRange
IL_03DA: add
IL_03DB: ldloca.s 4 (UnityEngine.Vector3)
IL_03DD: ldfld System.Single UnityEngine.Vector3::z
IL_03E2: ldarg.0
IL_03E3: ldfld System.Single LightEffect::m_lightRange
IL_03E8: add
IL_03E9: newobj System.Void UnityEngine.Vector3::.ctor(System.Single x,
System.Single y, System.Single z)
IL_03EE: stobj UnityEngine.Vector3
IL_03F3: ldarg.s 8
IL_03F5: ldfld UnityEngine.Vector3[] MeshData::m_normals
IL_03FA: ldarg.s 5
IL_03FC: ldind.i4
IL_03FD: ldelema UnityEngine.Vector3
IL_0402: ldarg.3
IL_0403: stobj UnityEngine.Vector3
IL_0408: ldarg.s 8
IL_040A: ldfld UnityEngine.Vector4[] MeshData::m_tangents
IL_040F: ldarg.s 5
IL_0411: ldind.i4
IL_0412: ldelema UnityEngine.Vector4
IL_0417: ldloc.s 7 (UnityEngine.Vector4)
IL_0419: stobj UnityEngine.Vector4
IL_041E: ldarg.s 8
IL_0420: ldfld UnityEngine.Vector2[] MeshData::m_uvs
IL_0425: ldarg.s 5
IL_0427: ldind.i4
IL_0428: ldelema UnityEngine.Vector2
IL_042D: ldloc.s 8 (UnityEngine.Vector2)
IL_042F: stobj UnityEngine.Vector2
IL_0434: ldarg.s 8
IL_0436: ldfld UnityEngine.Vector2[] MeshData::m_uvs2
IL_043B: ldarg.s 5
IL_043D: ldind.i4
IL_043E: ldelema UnityEngine.Vector2
IL_0443: ldloc.s 10 (UnityEngine.Vector2)
IL_0445: stobj UnityEngine.Vector2
IL_044A: ldarg.s 8
IL_044C: ldfld UnityEngine.Vector2[] MeshData::m_uvs3
IL_0451: ldarg.s 5
IL_0453: ldind.i4
IL_0454: ldelema UnityEngine.Vector2
IL_0459: ldloc.s 11 (UnityEngine.Vector2)
IL_045B: stobj UnityEngine.Vector2
IL_0460: ldloc.0
IL_0461: brfalse => Label14
IL_0466: ldarg.s 8
IL_0468: ldfld UnityEngine.Vector2[] MeshData::m_uvs4
IL_046D: ldarg.s 5
IL_046F: ldind.i4
IL_0470: ldelema UnityEngine.Vector2
IL_0475: ldloc.s 12 (UnityEngine.Vector2)
IL_0477: stobj UnityEngine.Vector2
IL_047C: Label14
IL_047C: ldarg.s 8
IL_047E: ldfld UnityEngine.Color32[] MeshData::m_colors
IL_0483: ldarg.s 5
IL_0485: ldind.i4
IL_0486: ldelema UnityEngine.Color32
IL_048B: ldloc.s 15 (UnityEngine.Color)
IL_048D: call static UnityEngine.Color32
UnityEngine.Color32::op_Implicit(UnityEngine.Color c)
IL_0492: stobj UnityEngine.Color32
IL_0497: ldarg.s 5
IL_0499: ldarg.s 5
IL_049B: ldind.i4
IL_049C: ldc.i4.1
IL_049D: add
IL_049E: stind.i4
IL_049F: ldarg.s 8
IL_04A1: ldfld UnityEngine.Vector3[] MeshData::m_vertices
IL_04A6: ldarg.s 5
IL_04A8: ldind.i4
IL_04A9: ldelema UnityEngine.Vector3
IL_04AE: ldloca.s 4 (UnityEngine.Vector3)
IL_04B0: ldfld System.Single UnityEngine.Vector3::x
IL_04B5: ldloc.s 17 (System.Single)
IL_04B7: add
IL_04B8: ldloca.s 4 (UnityEngine.Vector3)
IL_04BA: ldfld System.Single UnityEngine.Vector3::y
IL_04BF: ldloca.s 4 (UnityEngine.Vector3)
IL_04C1: ldfld System.Single UnityEngine.Vector3::z
IL_04C6: ldarg.0
IL_04C7: ldfld System.Single LightEffect::m_lightRange
IL_04CC: add
IL_04CD: newobj System.Void UnityEngine.Vector3::.ctor(System.Single x,
System.Single y, System.Single z)
IL_04D2: stobj UnityEngine.Vector3
IL_04D7: ldarg.s 8
IL_04D9: ldfld UnityEngine.Vector3[] MeshData::m_normals
IL_04DE: ldarg.s 5
IL_04E0: ldind.i4
IL_04E1: ldelema UnityEngine.Vector3
IL_04E6: ldarg.3
IL_04E7: stobj UnityEngine.Vector3
IL_04EC: ldarg.s 8
IL_04EE: ldfld UnityEngine.Vector4[] MeshData::m_tangents
IL_04F3: ldarg.s 5
IL_04F5: ldind.i4
IL_04F6: ldelema UnityEngine.Vector4
IL_04FB: ldloc.s 7 (UnityEngine.Vector4)
IL_04FD: stobj UnityEngine.Vector4
IL_0502: ldarg.s 8
IL_0504: ldfld UnityEngine.Vector2[] MeshData::m_uvs
IL_0509: ldarg.s 5
IL_050B: ldind.i4
IL_050C: ldelema UnityEngine.Vector2
IL_0511: ldloc.s 8 (UnityEngine.Vector2)
IL_0513: stobj UnityEngine.Vector2
IL_0518: ldarg.s 8
IL_051A: ldfld UnityEngine.Vector2[] MeshData::m_uvs2
IL_051F: ldarg.s 5
IL_0521: ldind.i4
IL_0522: ldelema UnityEngine.Vector2
IL_0527: ldloc.s 10 (UnityEngine.Vector2)
IL_0529: stobj UnityEngine.Vector2
IL_052E: ldarg.s 8
IL_0530: ldfld UnityEngine.Vector2[] MeshData::m_uvs3
IL_0535: ldarg.s 5
IL_0537: ldind.i4
IL_0538: ldelema UnityEngine.Vector2
IL_053D: ldloc.s 11 (UnityEngine.Vector2)
IL_053F: stobj UnityEngine.Vector2
IL_0544: ldloc.0
IL_0545: brfalse => Label15
IL_054A: ldarg.s 8
IL_054C: ldfld UnityEngine.Vector2[] MeshData::m_uvs4
IL_0551: ldarg.s 5
IL_0553: ldind.i4
IL_0554: ldelema UnityEngine.Vector2
IL_0559: ldloc.s 12 (UnityEngine.Vector2)
IL_055B: stobj UnityEngine.Vector2
IL_0560: Label15
IL_0560: ldarg.s 8
IL_0562: ldfld UnityEngine.Color32[] MeshData::m_colors
IL_0567: ldarg.s 5
IL_0569: ldind.i4
IL_056A: ldelema UnityEngine.Color32
IL_056F: ldloc.s 15 (UnityEngine.Color)
IL_0571: call static UnityEngine.Color32
UnityEngine.Color32::op_Implicit(UnityEngine.Color c)
IL_0576: stobj UnityEngine.Color32
IL_057B: ldarg.s 5
IL_057D: ldarg.s 5
IL_057F: ldind.i4
IL_0580: ldc.i4.1
IL_0581: add
IL_0582: stind.i4
IL_0583: ldarg.s 8
IL_0585: ldfld UnityEngine.Vector3[] MeshData::m_vertices
IL_058A: ldarg.s 5
IL_058C: ldind.i4
IL_058D: ldelema UnityEngine.Vector3
IL_0592: ldloca.s 4 (UnityEngine.Vector3)
IL_0594: ldfld System.Single UnityEngine.Vector3::x
IL_0599: ldloc.s 18 (System.Single)
IL_059B: add
IL_059C: ldloca.s 4 (UnityEngine.Vector3)
IL_059E: ldfld System.Single UnityEngine.Vector3::y
IL_05A3: ldarg.0
IL_05A4: ldfld System.Single LightEffect::m_lightRange
IL_05A9: sub
IL_05AA: ldloca.s 4 (UnityEngine.Vector3)
IL_05AC: ldfld System.Single UnityEngine.Vector3::z
IL_05B1: ldarg.0
IL_05B2: ldfld System.Single LightEffect::m_lightRange
IL_05B7: add
IL_05B8: newobj System.Void UnityEngine.Vector3::.ctor(System.Single x,
System.Single y, System.Single z)
IL_05BD: stobj UnityEngine.Vector3
IL_05C2: ldarg.s 8
IL_05C4: ldfld UnityEngine.Vector3[] MeshData::m_normals
IL_05C9: ldarg.s 5
IL_05CB: ldind.i4
IL_05CC: ldelema UnityEngine.Vector3
IL_05D1: ldarg.3
IL_05D2: stobj UnityEngine.Vector3
IL_05D7: ldarg.s 8
IL_05D9: ldfld UnityEngine.Vector4[] MeshData::m_tangents
IL_05DE: ldarg.s 5
IL_05E0: ldind.i4
IL_05E1: ldelema UnityEngine.Vector4
IL_05E6: ldloc.s 7 (UnityEngine.Vector4)
IL_05E8: stobj UnityEngine.Vector4
IL_05ED: ldarg.s 8
IL_05EF: ldfld UnityEngine.Vector2[] MeshData::m_uvs
IL_05F4: ldarg.s 5
IL_05F6: ldind.i4
IL_05F7: ldelema UnityEngine.Vector2
IL_05FC: ldloc.s 8 (UnityEngine.Vector2)
IL_05FE: stobj UnityEngine.Vector2
IL_0603: ldarg.s 8
IL_0605: ldfld UnityEngine.Vector2[] MeshData::m_uvs2
IL_060A: ldarg.s 5
IL_060C: ldind.i4
IL_060D: ldelema UnityEngine.Vector2
IL_0612: ldloc.s 10 (UnityEngine.Vector2)
IL_0614: stobj UnityEngine.Vector2
IL_0619: ldarg.s 8
IL_061B: ldfld UnityEngine.Vector2[] MeshData::m_uvs3
IL_0620: ldarg.s 5
IL_0622: ldind.i4
IL_0623: ldelema UnityEngine.Vector2
IL_0628: ldloc.s 11 (UnityEngine.Vector2)
IL_062A: stobj UnityEngine.Vector2
IL_062F: ldloc.0
IL_0630: brfalse => Label16
IL_0635: ldarg.s 8
IL_0637: ldfld UnityEngine.Vector2[] MeshData::m_uvs4
IL_063C: ldarg.s 5
IL_063E: ldind.i4
IL_063F: ldelema UnityEngine.Vector2
IL_0644: ldloc.s 12 (UnityEngine.Vector2)
IL_0646: stobj UnityEngine.Vector2
IL_064B: Label16
IL_064B: ldarg.s 8
IL_064D: ldfld UnityEngine.Color32[] MeshData::m_colors
IL_0652: ldarg.s 5
IL_0654: ldind.i4
IL_0655: ldelema UnityEngine.Color32
IL_065A: ldloc.s 15 (UnityEngine.Color)
IL_065C: call static UnityEngine.Color32
UnityEngine.Color32::op_Implicit(UnityEngine.Color c)
IL_0661: stobj UnityEngine.Color32
IL_0666: ldarg.s 5
IL_0668: ldarg.s 5
IL_066A: ldind.i4
IL_066B: ldc.i4.1
IL_066C: add
IL_066D: stind.i4
IL_066E: ldarg.s 8
IL_0670: ldfld UnityEngine.Vector3[] MeshData::m_vertices
IL_0675: ldarg.s 5
IL_0677: ldind.i4
IL_0678: ldelema UnityEngine.Vector3
IL_067D: ldloca.s 4 (UnityEngine.Vector3)
IL_067F: ldfld System.Single UnityEngine.Vector3::x
IL_0684: ldloc.s 18 (System.Single)
IL_0686: sub
IL_0687: ldloca.s 4 (UnityEngine.Vector3)
IL_0689: ldfld System.Single UnityEngine.Vector3::y
IL_068E: ldarg.0
IL_068F: ldfld System.Single LightEffect::m_lightRange
IL_0694: sub
IL_0695: ldloca.s 4 (UnityEngine.Vector3)
IL_0697: ldfld System.Single UnityEngine.Vector3::z
IL_069C: ldarg.0
IL_069D: ldfld System.Single LightEffect::m_lightRange
IL_06A2: add
IL_06A3: newobj System.Void UnityEngine.Vector3::.ctor(System.Single x,
System.Single y, System.Single z)
IL_06A8: stobj UnityEngine.Vector3
IL_06AD: ldarg.s 8
IL_06AF: ldfld UnityEngine.Vector3[] MeshData::m_normals
IL_06B4: ldarg.s 5
IL_06B6: ldind.i4
IL_06B7: ldelema UnityEngine.Vector3
IL_06BC: ldarg.3
IL_06BD: stobj UnityEngine.Vector3
IL_06C2: ldarg.s 8
IL_06C4: ldfld UnityEngine.Vector4[] MeshData::m_tangents
IL_06C9: ldarg.s 5
IL_06CB: ldind.i4
IL_06CC: ldelema UnityEngine.Vector4
IL_06D1: ldloc.s 7 (UnityEngine.Vector4)
IL_06D3: stobj UnityEngine.Vector4
IL_06D8: ldarg.s 8
IL_06DA: ldfld UnityEngine.Vector2[] MeshData::m_uvs
IL_06DF: ldarg.s 5
IL_06E1: ldind.i4
IL_06E2: ldelema UnityEngine.Vector2
IL_06E7: ldloc.s 8 (UnityEngine.Vector2)
IL_06E9: stobj UnityEngine.Vector2
IL_06EE: ldarg.s 8
IL_06F0: ldfld UnityEngine.Vector2[] MeshData::m_uvs2
IL_06F5: ldarg.s 5
IL_06F7: ldind.i4
IL_06F8: ldelema UnityEngine.Vector2
IL_06FD: ldloc.s 10 (UnityEngine.Vector2)
IL_06FF: stobj UnityEngine.Vector2
IL_0704: ldarg.s 8
IL_0706: ldfld UnityEngine.Vector2[] MeshData::m_uvs3
IL_070B: ldarg.s 5
IL_070D: ldind.i4
IL_070E: ldelema UnityEngine.Vector2
IL_0713: ldloc.s 11 (UnityEngine.Vector2)
IL_0715: stobj UnityEngine.Vector2
IL_071A: ldloc.0
IL_071B: brfalse => Label17
IL_0720: ldarg.s 8
IL_0722: ldfld UnityEngine.Vector2[] MeshData::m_uvs4
IL_0727: ldarg.s 5
IL_0729: ldind.i4
IL_072A: ldelema UnityEngine.Vector2
IL_072F: ldloc.s 12 (UnityEngine.Vector2)
IL_0731: stobj UnityEngine.Vector2
IL_0736: Label17
IL_0736: ldarg.s 8
IL_0738: ldfld UnityEngine.Color32[] MeshData::m_colors
IL_073D: ldarg.s 5
IL_073F: ldind.i4
IL_0740: ldelema UnityEngine.Color32
IL_0745: ldloc.s 15 (UnityEngine.Color)
IL_0747: call static UnityEngine.Color32
UnityEngine.Color32::op_Implicit(UnityEngine.Color c)
IL_074C: stobj UnityEngine.Color32
IL_0751: ldarg.s 5
IL_0753: ldarg.s 5
IL_0755: ldind.i4
IL_0756: ldc.i4.1
IL_0757: add
IL_0758: stind.i4
IL_0759: ldarg.s 8
IL_075B: ldfld UnityEngine.Vector3[] MeshData::m_vertices
IL_0760: ldarg.s 5
IL_0762: ldind.i4
IL_0763: ldelema UnityEngine.Vector3
IL_0768: ldloca.s 4 (UnityEngine.Vector3)
IL_076A: ldfld System.Single UnityEngine.Vector3::x
IL_076F: ldloc.s 17 (System.Single)
IL_0771: sub
IL_0772: ldloca.s 4 (UnityEngine.Vector3)
IL_0774: ldfld System.Single UnityEngine.Vector3::y
IL_0779: ldloca.s 4 (UnityEngine.Vector3)
IL_077B: ldfld System.Single UnityEngine.Vector3::z
IL_0780: ldarg.0
IL_0781: ldfld System.Single LightEffect::m_lightRange
IL_0786: add
IL_0787: newobj System.Void UnityEngine.Vector3::.ctor(System.Single x,
System.Single y, System.Single z)
IL_078C: stobj UnityEngine.Vector3
IL_0791: ldarg.s 8
IL_0793: ldfld UnityEngine.Vector3[] MeshData::m_normals
IL_0798: ldarg.s 5
IL_079A: ldind.i4
IL_079B: ldelema UnityEngine.Vector3
IL_07A0: ldarg.3
IL_07A1: stobj UnityEngine.Vector3
IL_07A6: ldarg.s 8
IL_07A8: ldfld UnityEngine.Vector4[] MeshData::m_tangents
IL_07AD: ldarg.s 5
IL_07AF: ldind.i4
IL_07B0: ldelema UnityEngine.Vector4
IL_07B5: ldloc.s 7 (UnityEngine.Vector4)
IL_07B7: stobj UnityEngine.Vector4
IL_07BC: ldarg.s 8
IL_07BE: ldfld UnityEngine.Vector2[] MeshData::m_uvs
IL_07C3: ldarg.s 5
IL_07C5: ldind.i4
IL_07C6: ldelema UnityEngine.Vector2
IL_07CB: ldloc.s 8 (UnityEngine.Vector2)
IL_07CD: stobj UnityEngine.Vector2
IL_07D2: ldarg.s 8
IL_07D4: ldfld UnityEngine.Vector2[] MeshData::m_uvs2
IL_07D9: ldarg.s 5
IL_07DB: ldind.i4
IL_07DC: ldelema UnityEngine.Vector2
IL_07E1: ldloc.s 10 (UnityEngine.Vector2)
IL_07E3: stobj UnityEngine.Vector2
IL_07E8: ldarg.s 8
IL_07EA: ldfld UnityEngine.Vector2[] MeshData::m_uvs3
IL_07EF: ldarg.s 5
IL_07F1: ldind.i4
IL_07F2: ldelema UnityEngine.Vector2
IL_07F7: ldloc.s 11 (UnityEngine.Vector2)
IL_07F9: stobj UnityEngine.Vector2
IL_07FE: ldloc.0
IL_07FF: brfalse => Label18
IL_0804: ldarg.s 8
IL_0806: ldfld UnityEngine.Vector2[] MeshData::m_uvs4
IL_080B: ldarg.s 5
IL_080D: ldind.i4
IL_080E: ldelema UnityEngine.Vector2
IL_0813: ldloc.s 12 (UnityEngine.Vector2)
IL_0815: stobj UnityEngine.Vector2
IL_081A: Label18
IL_081A: ldarg.s 8
IL_081C: ldfld UnityEngine.Color32[] MeshData::m_colors
IL_0821: ldarg.s 5
IL_0823: ldind.i4
IL_0824: ldelema UnityEngine.Color32
IL_0829: ldloc.s 15 (UnityEngine.Color)
IL_082B: call static UnityEngine.Color32
UnityEngine.Color32::op_Implicit(UnityEngine.Color c)
IL_0830: stobj UnityEngine.Color32
IL_0835: ldarg.s 5
IL_0837: ldarg.s 5
IL_0839: ldind.i4
IL_083A: ldc.i4.1
IL_083B: add
IL_083C: stind.i4
IL_083D: ldarg.s 8
IL_083F: ldfld System.Int32[] MeshData::m_triangles
IL_0844: ldarg.s 6
IL_0846: ldarg.s 6
IL_0848: ldind.i4
IL_0849: dup
IL_084A: stloc.s 19 (System.Int32)
IL_084C: ldc.i4.1
IL_084D: add
IL_084E: stind.i4
IL_084F: ldloc.s 19 (System.Int32)
IL_0851: ldarg.s 5
IL_0853: ldind.i4
IL_0854: ldc.i4.6
IL_0855: sub
IL_0856: stelem.i4
IL_0857: ldarg.s 8
IL_0859: ldfld System.Int32[] MeshData::m_triangles
IL_085E: ldarg.s 6
IL_0860: ldarg.s 6
IL_0862: ldind.i4
IL_0863: dup
IL_0864: stloc.s 19 (System.Int32)
IL_0866: ldc.i4.1
IL_0867: add
IL_0868: stind.i4
IL_0869: ldloc.s 19 (System.Int32)
IL_086B: ldarg.s 5
IL_086D: ldind.i4
IL_086E: ldc.i4.5
IL_086F: sub
IL_0870: stelem.i4
IL_0871: ldarg.s 8
IL_0873: ldfld System.Int32[] MeshData::m_triangles
IL_0878: ldarg.s 6
IL_087A: ldarg.s 6
IL_087C: ldind.i4
IL_087D: dup
IL_087E: stloc.s 19 (System.Int32)
IL_0880: ldc.i4.1
IL_0881: add
IL_0882: stind.i4
IL_0883: ldloc.s 19 (System.Int32)
IL_0885: ldarg.s 5
IL_0887: ldind.i4
IL_0888: ldc.i4.1
IL_0889: sub
IL_088A: stelem.i4
IL_088B: ldarg.s 8
IL_088D: ldfld System.Int32[] MeshData::m_triangles
IL_0892: ldarg.s 6
IL_0894: ldarg.s 6
IL_0896: ldind.i4
IL_0897: dup
IL_0898: stloc.s 19 (System.Int32)
IL_089A: ldc.i4.1
IL_089B: add
IL_089C: stind.i4
IL_089D: ldloc.s 19 (System.Int32)
IL_089F: ldarg.s 5
IL_08A1: ldind.i4
IL_08A2: ldc.i4.1
IL_08A3: sub
IL_08A4: stelem.i4
IL_08A5: ldarg.s 8
IL_08A7: ldfld System.Int32[] MeshData::m_triangles
IL_08AC: ldarg.s 6
IL_08AE: ldarg.s 6
IL_08B0: ldind.i4
IL_08B1: dup
IL_08B2: stloc.s 19 (System.Int32)
IL_08B4: ldc.i4.1
IL_08B5: add
IL_08B6: stind.i4
IL_08B7: ldloc.s 19 (System.Int32)
IL_08B9: ldarg.s 5
IL_08BB: ldind.i4
IL_08BC: ldc.i4.5
IL_08BD: sub
IL_08BE: stelem.i4
IL_08BF: ldarg.s 8
IL_08C1: ldfld System.Int32[] MeshData::m_triangles
IL_08C6: ldarg.s 6
IL_08C8: ldarg.s 6
IL_08CA: ldind.i4
IL_08CB: dup
IL_08CC: stloc.s 19 (System.Int32)
IL_08CE: ldc.i4.1
IL_08CF: add
IL_08D0: stind.i4
IL_08D1: ldloc.s 19 (System.Int32)
IL_08D3: ldarg.s 5
IL_08D5: ldind.i4
IL_08D6: ldc.i4.4
IL_08D7: sub
IL_08D8: stelem.i4
IL_08D9: ldarg.s 8
IL_08DB: ldfld System.Int32[] MeshData::m_triangles
IL_08E0: ldarg.s 6
IL_08E2: ldarg.s 6
IL_08E4: ldind.i4
IL_08E5: dup
IL_08E6: stloc.s 19 (System.Int32)
IL_08E8: ldc.i4.1
IL_08E9: add
IL_08EA: stind.i4
IL_08EB: ldloc.s 19 (System.Int32)
IL_08ED: ldarg.s 5
IL_08EF: ldind.i4
IL_08F0: ldc.i4.1
IL_08F1: sub
IL_08F2: stelem.i4
IL_08F3: ldarg.s 8
IL_08F5: ldfld System.Int32[] MeshData::m_triangles
IL_08FA: ldarg.s 6
IL_08FC: ldarg.s 6
IL_08FE: ldind.i4
IL_08FF: dup
IL_0900: stloc.s 19 (System.Int32)
IL_0902: ldc.i4.1
IL_0903: add
IL_0904: stind.i4
IL_0905: ldloc.s 19 (System.Int32)
IL_0907: ldarg.s 5
IL_0909: ldind.i4
IL_090A: ldc.i4.4
IL_090B: sub
IL_090C: stelem.i4
IL_090D: ldarg.s 8
IL_090F: ldfld System.Int32[] MeshData::m_triangles
IL_0914: ldarg.s 6
IL_0916: ldarg.s 6
IL_0918: ldind.i4
IL_0919: dup
IL_091A: stloc.s 19 (System.Int32)
IL_091C: ldc.i4.1
IL_091D: add
IL_091E: stind.i4
IL_091F: ldloc.s 19 (System.Int32)
IL_0921: ldarg.s 5
IL_0923: ldind.i4
IL_0924: ldc.i4.2
IL_0925: sub
IL_0926: stelem.i4
IL_0927: ldarg.s 8
IL_0929: ldfld System.Int32[] MeshData::m_triangles
IL_092E: ldarg.s 6
IL_0930: ldarg.s 6
IL_0932: ldind.i4
IL_0933: dup
IL_0934: stloc.s 19 (System.Int32)
IL_0936: ldc.i4.1
IL_0937: add
IL_0938: stind.i4
IL_0939: ldloc.s 19 (System.Int32)
IL_093B: ldarg.s 5
IL_093D: ldind.i4
IL_093E: ldc.i4.2
IL_093F: sub
IL_0940: stelem.i4
IL_0941: ldarg.s 8
IL_0943: ldfld System.Int32[] MeshData::m_triangles
IL_0948: ldarg.s 6
IL_094A: ldarg.s 6
IL_094C: ldind.i4
IL_094D: dup
IL_094E: stloc.s 19 (System.Int32)
IL_0950: ldc.i4.1
IL_0951: add
IL_0952: stind.i4
IL_0953: ldloc.s 19 (System.Int32)
IL_0955: ldarg.s 5
IL_0957: ldind.i4
IL_0958: ldc.i4.4
IL_0959: sub
IL_095A: stelem.i4
IL_095B: ldarg.s 8
IL_095D: ldfld System.Int32[] MeshData::m_triangles
IL_0962: ldarg.s 6
IL_0964: ldarg.s 6
IL_0966: ldind.i4
IL_0967: dup
IL_0968: stloc.s 19 (System.Int32)
IL_096A: ldc.i4.1
IL_096B: add
IL_096C: stind.i4
IL_096D: ldloc.s 19 (System.Int32)
IL_096F: ldarg.s 5
IL_0971: ldind.i4
IL_0972: ldc.i4.3
IL_0973: sub
IL_0974: stelem.i4
IL_0975: // end original
IL_0975: Label1
IL_0975: ret
DONE

### Patch: virtual System.Void ElectricityManager::SimulationStepImpl(System.Int32


subStep)
### Replacement: static System.Void
ElectricityManager::ElectricityManager.SimulationStepImpl_Patch0(ElectricityManager
this, System.Int32 subStep)
IL_0000: Local var 0: System.UInt32
IL_0000: Local var 1: System.Int32
IL_0000: Local var 2: NetManager
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: NetInfo
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: ElectricityManager/Cell
IL_0000: Local var 13: ElectricityManager/PulseGroup
IL_0000: Local var 14: ElectricityManager/PulseUnit
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: ElectricityManager/PulseUnit
IL_0000: Local var 19: System.UInt32
IL_0000: Local var 20: System.Int32
IL_0000: Local var 21: ElectricityManager/Cell
IL_0000: Local var 22: System.Int32
IL_0000: Local var 23: System.Int32
IL_0000: Local var 24: NetNode
IL_0000: Local var 25: System.Int32
IL_0000: Local var 26: System.UInt16
IL_0000: Local var 27: System.UInt16
IL_0000: Local var 28: System.UInt16
IL_0000: Local var 29: System.UInt16
IL_0000: Local var 30: System.Int32
IL_0000: Local var 31: ElectricityManager/PulseGroup
IL_0000: Local var 32: ElectricityManager/PulseGroup
IL_0000: Local var 33: System.Int32
IL_0000: Local var 34: ElectricityManager/PulseGroup
IL_0000: Local var 35: System.Int32
IL_0000: Local var 36: ElectricityManager/Cell
IL_0000: // start original
IL_0000: ldarg.1
IL_0001: brfalse => Label0
IL_0006: ldarg.1
IL_0007: ldc.i4 1000
IL_000C: beq => Label1
IL_0011: call static SimulationManager
ColossalFramework.Singleton`1<SimulationManager>::get_instance()
IL_0016: ldfld System.UInt32 SimulationManager::m_currentFrameIndex
IL_001B: stloc.0
IL_001C: ldloc.0
IL_001D: ldc.i4 255
IL_0022: and
IL_0023: stloc.1
IL_0024: ldloc.1
IL_0025: ldc.i4 128
IL_002A: bge => Label2
IL_002F: ldloc.1
IL_0030: brtrue => Label3
IL_0035: ldarg.0
IL_0036: ldc.i4.0
IL_0037: stfld System.Int32 ElectricityManager::m_pulseGroupCount
IL_003C: ldarg.0
IL_003D: ldc.i4.0
IL_003E: stfld System.Int32 ElectricityManager::m_pulseUnitStart
IL_0043: ldarg.0
IL_0044: ldc.i4.0
IL_0045: stfld System.Int32 ElectricityManager::m_pulseUnitEnd
IL_004A: ldarg.0
IL_004B: ldc.i4.0
IL_004C: stfld System.Int32 ElectricityManager::m_processedCells
IL_0051: ldarg.0
IL_0052: ldc.i4.0
IL_0053: stfld System.Int32 ElectricityManager::m_conductiveCells
IL_0058: ldarg.0
IL_0059: ldc.i4.1
IL_005A: stfld System.Boolean ElectricityManager::m_canContinue
IL_005F: Label3
IL_005F: call static NetManager
ColossalFramework.Singleton`1<NetManager>::get_instance()
IL_0064: stloc.2
IL_0065: ldloc.1
IL_0066: ldc.i4 32768
IL_006B: mul
IL_006C: ldc.i4.7
IL_006D: shr
IL_006E: stloc.3
IL_006F: ldloc.1
IL_0070: ldc.i4.1
IL_0071: add
IL_0072: ldc.i4 32768
IL_0077: mul
IL_0078: ldc.i4.7
IL_0079: shr
IL_007A: ldc.i4.1
IL_007B: sub
IL_007C: stloc.s 4 (System.Int32)
IL_007E: ldloc.3
IL_007F: stloc.s 5 (System.Int32)
IL_0081: br => Label4
IL_0086: Label10
IL_0086: ldloc.2
IL_0087: ldfld Array16`1<NetNode> NetManager::m_nodes
IL_008C: ldfld NetNode[] Array16`1<NetNode>::m_buffer
IL_0091: ldloc.s 5 (System.Int32)
IL_0093: ldelema NetNode
IL_0098: ldfld Flags NetNode::m_flags
IL_009D: brfalse => Label5
IL_00A2: ldloc.2
IL_00A3: ldfld Array16`1<NetNode> NetManager::m_nodes
IL_00A8: ldfld NetNode[] Array16`1<NetNode>::m_buffer
IL_00AD: ldloc.s 5 (System.Int32)
IL_00AF: ldelema NetNode
IL_00B4: call NetInfo NetNode::get_Info()
IL_00B9: stloc.s 6 (NetInfo)
IL_00BB: ldloc.s 6 (NetInfo)
IL_00BD: ldfld ItemClass NetInfo::m_class
IL_00C2: ldfld Service ItemClass::m_service
IL_00C7: ldc.i4.s 10
IL_00C9: beq => Label6
IL_00CE: ldloc.s 6 (NetInfo)
IL_00D0: ldfld NetAI NetInfo::m_netAI
IL_00D5: isinst ConcourseAI
IL_00DA: brfalse => Label7
IL_00DF: Label6
IL_00DF: ldarg.0
IL_00E0: ldloc.s 5 (System.Int32)
IL_00E2: ldarg.0
IL_00E3: ldfld System.UInt16[] ElectricityManager::m_nodeGroups
IL_00E8: ldloc.s 5 (System.Int32)
IL_00EA: ldelem.u2
IL_00EB: ldc.i4 65535
IL_00F0: beq => Label8
IL_00F5: ldc.i4.1
IL_00F6: br => Label9
IL_00FB: Label8
IL_00FB: ldc.i4.0
IL_00FC: Label9
IL_00FC: call System.Void
ElectricityManager::UpdateNodeElectricity(System.Int32 nodeID, System.Int32 value)
IL_0101: ldarg.0
IL_0102: dup
IL_0103: ldfld System.Int32 ElectricityManager::m_conductiveCells
IL_0108: ldc.i4.1
IL_0109: add
IL_010A: stfld System.Int32 ElectricityManager::m_conductiveCells
IL_010F: Label5
IL_010F: Label7
IL_010F: ldarg.0
IL_0110: ldfld System.UInt16[] ElectricityManager::m_nodeGroups
IL_0115: ldloc.s 5 (System.Int32)
IL_0117: ldc.i4 65535
IL_011C: stelem.i2
IL_011D: ldloc.s 5 (System.Int32)
IL_011F: ldc.i4.1
IL_0120: add
IL_0121: stloc.s 5 (System.Int32)
IL_0123: Label4
IL_0123: ldloc.s 5 (System.Int32)
IL_0125: ldloc.s 4 (System.Int32)
IL_0127: ble => Label10
IL_012C: ldloc.1
IL_012D: ldc.i4 256
IL_0132: mul
IL_0133: ldc.i4.7
IL_0134: shr
IL_0135: stloc.s 7 (System.Int32)
IL_0137: ldloc.1
IL_0138: ldc.i4.1
IL_0139: add
IL_013A: ldc.i4 256
IL_013F: mul
IL_0140: ldc.i4.7
IL_0141: shr
IL_0142: ldc.i4.1
IL_0143: sub
IL_0144: stloc.s 8 (System.Int32)
IL_0146: ldloc.s 7 (System.Int32)
IL_0148: stloc.s 9 (System.Int32)
IL_014A: br => Label11
IL_014F: Label21
IL_014F: ldloc.s 9 (System.Int32)
IL_0151: ldc.i4 256
IL_0156: mul
IL_0157: stloc.s 10 (System.Int32)
IL_0159: ldc.i4.0
IL_015A: stloc.s 11 (System.Int32)
IL_015C: br => Label12
IL_0161: Label20
IL_0161: ldarg.0
IL_0162: ldfld Cell[] ElectricityManager::m_electricityGrid
IL_0167: ldloc.s 10 (System.Int32)
IL_0169: ldelema ElectricityManager+Cell
IL_016E: ldobj ElectricityManager+Cell
IL_0173: stloc.s 12 (ElectricityManager+Cell)
IL_0175: ldloca.s 12 (ElectricityManager+Cell)
IL_0177: ldfld System.Int16 Cell::m_currentCharge
IL_017C: ldc.i4.0
IL_017D: ble => Label13
IL_0182: ldarg.0
IL_0183: ldfld System.Int32 ElectricityManager::m_pulseGroupCount
IL_0188: ldc.i4 1024
IL_018D: bge => Label14
IL_0192: ldloca.s 13 (ElectricityManager+PulseGroup)
IL_0194: ldloca.s 12 (ElectricityManager+Cell)
IL_0196: ldfld System.Int16 Cell::m_currentCharge
IL_019B: conv.u4
IL_019C: stfld System.UInt32 PulseGroup::m_origCharge
IL_01A1: ldloca.s 13 (ElectricityManager+PulseGroup)
IL_01A3: ldloca.s 12 (ElectricityManager+Cell)
IL_01A5: ldfld System.Int16 Cell::m_currentCharge
IL_01AA: conv.u4
IL_01AB: stfld System.UInt32 PulseGroup::m_curCharge
IL_01B0: ldloca.s 13 (ElectricityManager+PulseGroup)
IL_01B2: ldc.i4.0
IL_01B3: stfld System.UInt16 PulseGroup::m_mergeCount
IL_01B8: ldloca.s 13 (ElectricityManager+PulseGroup)
IL_01BA: ldc.i4 65535
IL_01BF: stfld System.UInt16 PulseGroup::m_mergeIndex
IL_01C4: ldloca.s 13 (ElectricityManager+PulseGroup)
IL_01C6: ldloc.s 11 (System.Int32)
IL_01C8: conv.u1
IL_01C9: stfld System.Byte PulseGroup::m_x
IL_01CE: ldloca.s 13 (ElectricityManager+PulseGroup)
IL_01D0: ldloc.s 9 (System.Int32)
IL_01D2: conv.u1
IL_01D3: stfld System.Byte PulseGroup::m_z
IL_01D8: ldloca.s 14 (ElectricityManager+PulseUnit)
IL_01DA: ldarg.0
IL_01DB: ldfld System.Int32 ElectricityManager::m_pulseGroupCount
IL_01E0: conv.u2
IL_01E1: stfld System.UInt16 PulseUnit::m_group
IL_01E6: ldloca.s 14 (ElectricityManager+PulseUnit)
IL_01E8: ldc.i4.0
IL_01E9: stfld System.UInt16 PulseUnit::m_node
IL_01EE: ldloca.s 14 (ElectricityManager+PulseUnit)
IL_01F0: ldloc.s 11 (System.Int32)
IL_01F2: conv.u1
IL_01F3: stfld System.Byte PulseUnit::m_x
IL_01F8: ldloca.s 14 (ElectricityManager+PulseUnit)
IL_01FA: ldloc.s 9 (System.Int32)
IL_01FC: conv.u1
IL_01FD: stfld System.Byte PulseUnit::m_z
IL_0202: ldloca.s 12 (ElectricityManager+Cell)
IL_0204: ldarg.0
IL_0205: ldfld System.Int32 ElectricityManager::m_pulseGroupCount
IL_020A: conv.u2
IL_020B: stfld System.UInt16 Cell::m_pulseGroup
IL_0210: ldarg.0
IL_0211: ldfld PulseGroup[] ElectricityManager::m_pulseGroups
IL_0216: ldarg.0
IL_0217: dup
IL_0218: ldfld System.Int32 ElectricityManager::m_pulseGroupCount
IL_021D: dup
IL_021E: stloc.s 15 (System.Int32)
IL_0220: ldc.i4.1
IL_0221: add
IL_0222: stfld System.Int32 ElectricityManager::m_pulseGroupCount
IL_0227: ldloc.s 15 (System.Int32)
IL_0229: ldelema ElectricityManager+PulseGroup
IL_022E: ldloc.s 13 (ElectricityManager+PulseGroup)
IL_0230: stobj ElectricityManager+PulseGroup
IL_0235: ldarg.0
IL_0236: ldfld PulseUnit[] ElectricityManager::m_pulseUnits
IL_023B: ldarg.0
IL_023C: ldfld System.Int32 ElectricityManager::m_pulseUnitEnd
IL_0241: ldelema ElectricityManager+PulseUnit
IL_0246: ldloc.s 14 (ElectricityManager+PulseUnit)
IL_0248: stobj ElectricityManager+PulseUnit
IL_024D: ldarg.0
IL_024E: dup
IL_024F: ldfld System.Int32 ElectricityManager::m_pulseUnitEnd
IL_0254: ldc.i4.1
IL_0255: add
IL_0256: dup
IL_0257: stloc.s 15 (System.Int32)
IL_0259: stfld System.Int32 ElectricityManager::m_pulseUnitEnd
IL_025E: ldloc.s 15 (System.Int32)
IL_0260: ldarg.0
IL_0261: ldfld PulseUnit[] ElectricityManager::m_pulseUnits
IL_0266: ldlen
IL_0267: conv.i4
IL_0268: bne.un => Label15
IL_026D: ldarg.0
IL_026E: ldc.i4.0
IL_026F: stfld System.Int32 ElectricityManager::m_pulseUnitEnd
IL_0274: Label15
IL_0274: br => Label16
IL_0279: Label14
IL_0279: ldloca.s 12 (ElectricityManager+Cell)
IL_027B: ldc.i4 65535
IL_0280: stfld System.UInt16 Cell::m_pulseGroup
IL_0285: Label16
IL_0285: ldloca.s 12 (ElectricityManager+Cell)
IL_0287: ldc.i4.0
IL_0288: stfld System.Int16 Cell::m_currentCharge
IL_028D: ldarg.0
IL_028E: dup
IL_028F: ldfld System.Int32 ElectricityManager::m_conductiveCells
IL_0294: ldc.i4.1
IL_0295: add
IL_0296: stfld System.Int32 ElectricityManager::m_conductiveCells
IL_029B: br => Label17
IL_02A0: Label13
IL_02A0: ldloca.s 12 (ElectricityManager+Cell)
IL_02A2: ldc.i4 65535
IL_02A7: stfld System.UInt16 Cell::m_pulseGroup
IL_02AC: ldloca.s 12 (ElectricityManager+Cell)
IL_02AE: ldfld System.Byte Cell::m_conductivity
IL_02B3: ldc.i4.s 64
IL_02B5: blt => Label18
IL_02BA: ldarg.0
IL_02BB: dup
IL_02BC: ldfld System.Int32 ElectricityManager::m_conductiveCells
IL_02C1: ldc.i4.1
IL_02C2: add
IL_02C3: stfld System.Int32 ElectricityManager::m_conductiveCells
IL_02C8: Label17
IL_02C8: Label18
IL_02C8: ldloca.s 12 (ElectricityManager+Cell)
IL_02CA: ldfld System.Boolean Cell::m_tmpElectrified
IL_02CF: ldloca.s 12 (ElectricityManager+Cell)
IL_02D1: ldfld System.Boolean Cell::m_electrified
IL_02D6: beq => Label19
IL_02DB: ldloca.s 12 (ElectricityManager+Cell)
IL_02DD: ldloca.s 12 (ElectricityManager+Cell)
IL_02DF: ldfld System.Boolean Cell::m_tmpElectrified
IL_02E4: stfld System.Boolean Cell::m_electrified
IL_02E9: Label19
IL_02E9: ldloca.s 12 (ElectricityManager+Cell)
IL_02EB: ldloca.s 12 (ElectricityManager+Cell)
IL_02ED: ldfld System.UInt16 Cell::m_pulseGroup
IL_02F2: ldc.i4 65535
IL_02F7: ceq
IL_02F9: ldc.i4.0
IL_02FA: ceq
IL_02FC: stfld System.Boolean Cell::m_tmpElectrified
IL_0301: ldarg.0
IL_0302: ldfld Cell[] ElectricityManager::m_electricityGrid
IL_0307: ldloc.s 10 (System.Int32)
IL_0309: ldelema ElectricityManager+Cell
IL_030E: ldloc.s 12 (ElectricityManager+Cell)
IL_0310: stobj ElectricityManager+Cell
IL_0315: ldloc.s 10 (System.Int32)
IL_0317: ldc.i4.1
IL_0318: add
IL_0319: stloc.s 10 (System.Int32)
IL_031B: ldloc.s 11 (System.Int32)
IL_031D: ldc.i4.1
IL_031E: add
IL_031F: stloc.s 11 (System.Int32)
IL_0321: Label12
IL_0321: ldloc.s 11 (System.Int32)
IL_0323: ldc.i4 256
IL_0328: blt => Label20
IL_032D: ldloc.s 9 (System.Int32)
IL_032F: ldc.i4.1
IL_0330: add
IL_0331: stloc.s 9 (System.Int32)
IL_0333: Label11
IL_0333: ldloc.s 9 (System.Int32)
IL_0335: ldloc.s 8 (System.Int32)
IL_0337: ble => Label21
IL_033C: br => Label22
IL_0341: Label2
IL_0341: ldloc.1
IL_0342: ldc.i4.s 127
IL_0344: sub
IL_0345: ldarg.0
IL_0346: ldfld System.Int32 ElectricityManager::m_conductiveCells
IL_034B: mul
IL_034C: ldc.i4.7
IL_034D: shr
IL_034E: stloc.s 16 (System.Int32)
IL_0350: ldloc.1
IL_0351: ldc.i4 255
IL_0356: bne.un => Label23
IL_035B: ldc.i4 1000000000
IL_0360: stloc.s 16 (System.Int32)
IL_0362: Label23
IL_0362: br => Label24
IL_0367: Label54
IL_0367: ldarg.0
IL_0368: ldc.i4.0
IL_0369: stfld System.Boolean ElectricityManager::m_canContinue
IL_036E: ldarg.0
IL_036F: ldfld System.Int32 ElectricityManager::m_pulseUnitEnd
IL_0374: stloc.s 17 (System.Int32)
IL_0376: br => Label25
IL_037B: Label52
IL_037B: ldarg.0
IL_037C: ldfld PulseUnit[] ElectricityManager::m_pulseUnits
IL_0381: ldarg.0
IL_0382: ldfld System.Int32 ElectricityManager::m_pulseUnitStart
IL_0387: ldelema ElectricityManager+PulseUnit
IL_038C: ldobj ElectricityManager+PulseUnit
IL_0391: stloc.s 18 (ElectricityManager+PulseUnit)
IL_0393: ldarg.0
IL_0394: dup
IL_0395: ldfld System.Int32 ElectricityManager::m_pulseUnitStart
IL_039A: ldc.i4.1
IL_039B: add
IL_039C: dup
IL_039D: stloc.s 15 (System.Int32)
IL_039F: stfld System.Int32 ElectricityManager::m_pulseUnitStart
IL_03A4: ldloc.s 15 (System.Int32)
IL_03A6: ldarg.0
IL_03A7: ldfld PulseUnit[] ElectricityManager::m_pulseUnits
IL_03AC: ldlen
IL_03AD: conv.i4
IL_03AE: bne.un => Label26
IL_03B3: ldarg.0
IL_03B4: ldc.i4.0
IL_03B5: stfld System.Int32 ElectricityManager::m_pulseUnitStart
IL_03BA: Label26
IL_03BA: ldloca.s 18 (ElectricityManager+PulseUnit)
IL_03BC: ldarg.0
IL_03BD: ldloca.s 18 (ElectricityManager+PulseUnit)
IL_03BF: ldfld System.UInt16 PulseUnit::m_group
IL_03C4: call System.UInt16 ElectricityManager::GetRootGroup(System.UInt16
group)
IL_03C9: stfld System.UInt16 PulseUnit::m_group
IL_03CE: ldarg.0
IL_03CF: ldfld PulseGroup[] ElectricityManager::m_pulseGroups
IL_03D4: ldloca.s 18 (ElectricityManager+PulseUnit)
IL_03D6: ldfld System.UInt16 PulseUnit::m_group
IL_03DB: ldelema ElectricityManager+PulseGroup
IL_03E0: ldfld System.UInt32 PulseGroup::m_curCharge
IL_03E5: stloc.s 19 (System.UInt32)
IL_03E7: ldloca.s 18 (ElectricityManager+PulseUnit)
IL_03E9: ldfld System.UInt16 PulseUnit::m_node
IL_03EE: brtrue => Label27
IL_03F3: ldloca.s 18 (ElectricityManager+PulseUnit)
IL_03F5: ldfld System.Byte PulseUnit::m_z
IL_03FA: ldc.i4 256
IL_03FF: mul
IL_0400: ldloca.s 18 (ElectricityManager+PulseUnit)
IL_0402: ldfld System.Byte PulseUnit::m_x
IL_0407: add
IL_0408: stloc.s 20 (System.Int32)
IL_040A: ldarg.0
IL_040B: ldfld Cell[] ElectricityManager::m_electricityGrid
IL_0410: ldloc.s 20 (System.Int32)
IL_0412: ldelema ElectricityManager+Cell
IL_0417: ldobj ElectricityManager+Cell
IL_041C: stloc.s 21 (ElectricityManager+Cell)
IL_041E: ldloca.s 21 (ElectricityManager+Cell)
IL_0420: ldfld System.Byte Cell::m_conductivity
IL_0425: brfalse => Label28
IL_042A: ldloca.s 21 (ElectricityManager+Cell)
IL_042C: ldfld System.Boolean Cell::m_tmpElectrified
IL_0431: brtrue => Label29
IL_0436: ldloc.s 19 (System.UInt32)
IL_0438: brfalse => Label30
IL_043D: ldloca.s 21 (ElectricityManager+Cell)
IL_043F: ldfld System.Int16 Cell::m_currentCharge
IL_0444: neg
IL_0445: ldc.i4.0
IL_0446: ldloc.s 19 (System.UInt32)
IL_0448: call static System.Int32 UnityEngine.Mathf::Clamp(System.Int32
value, System.Int32 min, System.Int32 max)
IL_044D: stloc.s 22 (System.Int32)
IL_044F: ldloc.s 19 (System.UInt32)
IL_0451: ldloc.s 22 (System.Int32)
IL_0453: sub
IL_0454: stloc.s 19 (System.UInt32)
IL_0456: ldloca.s 21 (ElectricityManager+Cell)
IL_0458: dup
IL_0459: ldfld System.Int16 Cell::m_currentCharge
IL_045E: ldloc.s 22 (System.Int32)
IL_0460: conv.i2
IL_0461: add
IL_0462: conv.i2
IL_0463: stfld System.Int16 Cell::m_currentCharge
IL_0468: ldloca.s 21 (ElectricityManager+Cell)
IL_046A: ldfld System.Int16 Cell::m_currentCharge
IL_046F: brtrue => Label31
IL_0474: ldloca.s 21 (ElectricityManager+Cell)
IL_0476: ldc.i4.1
IL_0477: stfld System.Boolean Cell::m_tmpElectrified
IL_047C: Label31
IL_047C: ldarg.0
IL_047D: ldfld Cell[] ElectricityManager::m_electricityGrid
IL_0482: ldloc.s 20 (System.Int32)
IL_0484: ldelema ElectricityManager+Cell
IL_0489: ldloc.s 21 (ElectricityManager+Cell)
IL_048B: stobj ElectricityManager+Cell
IL_0490: ldarg.0
IL_0491: ldfld PulseGroup[] ElectricityManager::m_pulseGroups
IL_0496: ldloca.s 18 (ElectricityManager+PulseUnit)
IL_0498: ldfld System.UInt16 PulseUnit::m_group
IL_049D: ldelema ElectricityManager+PulseGroup
IL_04A2: ldloc.s 19 (System.UInt32)
IL_04A4: stfld System.UInt32 PulseGroup::m_curCharge
IL_04A9: Label28
IL_04A9: Label29
IL_04A9: Label30
IL_04A9: ldloc.s 19 (System.UInt32)
IL_04AB: brfalse => Label32
IL_04B0: ldloca.s 21 (ElectricityManager+Cell)
IL_04B2: ldfld System.Byte Cell::m_conductivity
IL_04B7: ldc.i4.s 64
IL_04B9: blt => Label33
IL_04BE: ldc.i4.1
IL_04BF: br => Label34
IL_04C4: Label33
IL_04C4: ldc.i4.s 64
IL_04C6: Label34
IL_04C6: stloc.s 23 (System.Int32)
IL_04C8: ldarg.0
IL_04C9: dup
IL_04CA: ldfld System.Int32 ElectricityManager::m_processedCells
IL_04CF: ldc.i4.1
IL_04D0: add
IL_04D1: stfld System.Int32 ElectricityManager::m_processedCells
IL_04D6: ldloca.s 18 (ElectricityManager+PulseUnit)
IL_04D8: ldfld System.Byte PulseUnit::m_z
IL_04DD: ldc.i4.0
IL_04DE: ble => Label35
IL_04E3: ldarg.0
IL_04E4: ldarg.0
IL_04E5: ldfld Cell[] ElectricityManager::m_electricityGrid
IL_04EA: ldloc.s 20 (System.Int32)
IL_04EC: ldc.i4 256
IL_04F1: sub
IL_04F2: ldelema ElectricityManager+Cell
IL_04F7: ldloca.s 18 (ElectricityManager+PulseUnit)
IL_04F9: ldfld System.UInt16 PulseUnit::m_group
IL_04FE: ldloca.s 18 (ElectricityManager+PulseUnit)
IL_0500: ldfld System.Byte PulseUnit::m_x
IL_0505: ldloca.s 18 (ElectricityManager+PulseUnit)
IL_0507: ldfld System.Byte PulseUnit::m_z
IL_050C: ldc.i4.1
IL_050D: sub
IL_050E: ldloc.s 23 (System.Int32)
IL_0510: call System.Void ElectricityManager::ConductToCell(Cell& cell,
System.UInt16 group, System.Int32 x, System.Int32 z, System.Int32 limit)
IL_0515: Label35
IL_0515: ldloca.s 18 (ElectricityManager+PulseUnit)
IL_0517: ldfld System.Byte PulseUnit::m_x
IL_051C: ldc.i4.0
IL_051D: ble => Label36
IL_0522: ldarg.0
IL_0523: ldarg.0
IL_0524: ldfld Cell[] ElectricityManager::m_electricityGrid
IL_0529: ldloc.s 20 (System.Int32)
IL_052B: ldc.i4.1
IL_052C: sub
IL_052D: ldelema ElectricityManager+Cell
IL_0532: ldloca.s 18 (ElectricityManager+PulseUnit)
IL_0534: ldfld System.UInt16 PulseUnit::m_group
IL_0539: ldloca.s 18 (ElectricityManager+PulseUnit)
IL_053B: ldfld System.Byte PulseUnit::m_x
IL_0540: ldc.i4.1
IL_0541: sub
IL_0542: ldloca.s 18 (ElectricityManager+PulseUnit)
IL_0544: ldfld System.Byte PulseUnit::m_z
IL_0549: ldloc.s 23 (System.Int32)
IL_054B: call System.Void ElectricityManager::ConductToCell(Cell& cell,
System.UInt16 group, System.Int32 x, System.Int32 z, System.Int32 limit)
IL_0550: Label36
IL_0550: ldloca.s 18 (ElectricityManager+PulseUnit)
IL_0552: ldfld System.Byte PulseUnit::m_z
IL_0557: ldc.i4 255
IL_055C: bge => Label37
IL_0561: ldarg.0
IL_0562: ldarg.0
IL_0563: ldfld Cell[] ElectricityManager::m_electricityGrid
IL_0568: ldloc.s 20 (System.Int32)
IL_056A: ldc.i4 256
IL_056F: add
IL_0570: ldelema ElectricityManager+Cell
IL_0575: ldloca.s 18 (ElectricityManager+PulseUnit)
IL_0577: ldfld System.UInt16 PulseUnit::m_group
IL_057C: ldloca.s 18 (ElectricityManager+PulseUnit)
IL_057E: ldfld System.Byte PulseUnit::m_x
IL_0583: ldloca.s 18 (ElectricityManager+PulseUnit)
IL_0585: ldfld System.Byte PulseUnit::m_z
IL_058A: ldc.i4.1
IL_058B: add
IL_058C: ldloc.s 23 (System.Int32)
IL_058E: call System.Void ElectricityManager::ConductToCell(Cell& cell,
System.UInt16 group, System.Int32 x, System.Int32 z, System.Int32 limit)
IL_0593: Label37
IL_0593: ldloca.s 18 (ElectricityManager+PulseUnit)
IL_0595: ldfld System.Byte PulseUnit::m_x
IL_059A: ldc.i4 255
IL_059F: bge => Label38
IL_05A4: ldarg.0
IL_05A5: ldarg.0
IL_05A6: ldfld Cell[] ElectricityManager::m_electricityGrid
IL_05AB: ldloc.s 20 (System.Int32)
IL_05AD: ldc.i4.1
IL_05AE: add
IL_05AF: ldelema ElectricityManager+Cell
IL_05B4: ldloca.s 18 (ElectricityManager+PulseUnit)
IL_05B6: ldfld System.UInt16 PulseUnit::m_group
IL_05BB: ldloca.s 18 (ElectricityManager+PulseUnit)
IL_05BD: ldfld System.Byte PulseUnit::m_x
IL_05C2: ldc.i4.1
IL_05C3: add
IL_05C4: ldloca.s 18 (ElectricityManager+PulseUnit)
IL_05C6: ldfld System.Byte PulseUnit::m_z
IL_05CB: ldloc.s 23 (System.Int32)
IL_05CD: call System.Void ElectricityManager::ConductToCell(Cell& cell,
System.UInt16 group, System.Int32 x, System.Int32 z, System.Int32 limit)
IL_05D2: Label38
IL_05D2: ldarg.0
IL_05D3: ldloca.s 18 (ElectricityManager+PulseUnit)
IL_05D5: ldfld System.UInt16 PulseUnit::m_group
IL_05DA: ldloca.s 18 (ElectricityManager+PulseUnit)
IL_05DC: ldfld System.Byte PulseUnit::m_x
IL_05E1: ldloca.s 18 (ElectricityManager+PulseUnit)
IL_05E3: ldfld System.Byte PulseUnit::m_z
IL_05E8: call System.Void ElectricityManager::ConductToNodes(System.UInt16
group, System.Int32 cellX, System.Int32 cellZ)
IL_05ED: br => Label39
IL_05F2: Label32
IL_05F2: ldarg.0
IL_05F3: ldfld PulseUnit[] ElectricityManager::m_pulseUnits
IL_05F8: ldarg.0
IL_05F9: ldfld System.Int32 ElectricityManager::m_pulseUnitEnd
IL_05FE: ldelema ElectricityManager+PulseUnit
IL_0603: ldloc.s 18 (ElectricityManager+PulseUnit)
IL_0605: stobj ElectricityManager+PulseUnit
IL_060A: ldarg.0
IL_060B: dup
IL_060C: ldfld System.Int32 ElectricityManager::m_pulseUnitEnd
IL_0611: ldc.i4.1
IL_0612: add
IL_0613: dup
IL_0614: stloc.s 15 (System.Int32)
IL_0616: stfld System.Int32 ElectricityManager::m_pulseUnitEnd
IL_061B: ldloc.s 15 (System.Int32)
IL_061D: ldarg.0
IL_061E: ldfld PulseUnit[] ElectricityManager::m_pulseUnits
IL_0623: ldlen
IL_0624: conv.i4
IL_0625: bne.un => Label40
IL_062A: ldarg.0
IL_062B: ldc.i4.0
IL_062C: stfld System.Int32 ElectricityManager::m_pulseUnitEnd
IL_0631: Label39
IL_0631: Label40
IL_0631: br => Label41
IL_0636: Label27
IL_0636: ldloc.s 19 (System.UInt32)
IL_0638: brfalse => Label42
IL_063D: ldarg.0
IL_063E: dup
IL_063F: ldfld System.Int32 ElectricityManager::m_processedCells
IL_0644: ldc.i4.1
IL_0645: add
IL_0646: stfld System.Int32 ElectricityManager::m_processedCells
IL_064B: call static NetManager
ColossalFramework.Singleton`1<NetManager>::get_instance()
IL_0650: ldfld Array16`1<NetNode> NetManager::m_nodes
IL_0655: ldfld NetNode[] Array16`1<NetNode>::m_buffer
IL_065A: ldloca.s 18 (ElectricityManager+PulseUnit)
IL_065C: ldfld System.UInt16 PulseUnit::m_node
IL_0661: ldelema NetNode
IL_0666: ldobj NetNode
IL_066B: stloc.s 24 (NetNode)
IL_066D: ldloca.s 24 (NetNode)
IL_066F: ldfld Flags NetNode::m_flags
IL_0674: brfalse => Label43
IL_0679: ldloca.s 24 (NetNode)
IL_067B: ldfld System.UInt32 NetNode::m_buildIndex
IL_0680: ldloc.0
IL_0681: ldc.i4.s -128
IL_0683: and
IL_0684: bge.un => Label44
IL_0689: ldarg.0
IL_068A: ldloca.s 18 (ElectricityManager+PulseUnit)
IL_068C: ldfld System.UInt16 PulseUnit::m_group
IL_0691: ldloca.s 24 (NetNode)
IL_0693: ldflda UnityEngine.Vector3 NetNode::m_position
IL_0698: ldfld System.Single UnityEngine.Vector3::x
IL_069D: ldloca.s 24 (NetNode)
IL_069F: ldflda UnityEngine.Vector3 NetNode::m_position
IL_06A4: ldfld System.Single UnityEngine.Vector3::z
IL_06A9: call System.Void ElectricityManager::ConductToCells(System.UInt16
group, System.Single worldX, System.Single worldZ)
IL_06AE: ldc.i4.0
IL_06AF: stloc.s 25 (System.Int32)
IL_06B1: br => Label45
IL_06B6: Label49
IL_06B6: ldloca.s 24 (NetNode)
IL_06B8: ldloc.s 25 (System.Int32)
IL_06BA: call System.UInt16 NetNode::GetSegment(System.Int32 index)
IL_06BF: stloc.s 26 (System.UInt16)
IL_06C1: ldloc.s 26 (System.UInt16)
IL_06C3: brfalse => Label46
IL_06C8: call static NetManager
ColossalFramework.Singleton`1<NetManager>::get_instance()
IL_06CD: ldfld Array16`1<NetSegment> NetManager::m_segments
IL_06D2: ldfld NetSegment[] Array16`1<NetSegment>::m_buffer
IL_06D7: ldloc.s 26 (System.UInt16)
IL_06D9: ldelema NetSegment
IL_06DE: ldfld System.UInt16 NetSegment::m_startNode
IL_06E3: stloc.s 27 (System.UInt16)
IL_06E5: call static NetManager
ColossalFramework.Singleton`1<NetManager>::get_instance()
IL_06EA: ldfld Array16`1<NetSegment> NetManager::m_segments
IL_06EF: ldfld NetSegment[] Array16`1<NetSegment>::m_buffer
IL_06F4: ldloc.s 26 (System.UInt16)
IL_06F6: ldelema NetSegment
IL_06FB: ldfld System.UInt16 NetSegment::m_endNode
IL_0700: stloc.s 28 (System.UInt16)
IL_0702: ldloc.s 27 (System.UInt16)
IL_0704: ldloca.s 18 (ElectricityManager+PulseUnit)
IL_0706: ldfld System.UInt16 PulseUnit::m_node
IL_070B: bne.un => Label47
IL_0710: ldloc.s 28 (System.UInt16)
IL_0712: br => Label48
IL_0717: Label47
IL_0717: ldloc.s 27 (System.UInt16)
IL_0719: Label48
IL_0719: stloc.s 29 (System.UInt16)
IL_071B: ldarg.0
IL_071C: ldloc.s 29 (System.UInt16)
IL_071E: call static NetManager
ColossalFramework.Singleton`1<NetManager>::get_instance()
IL_0723: ldfld Array16`1<NetNode> NetManager::m_nodes
IL_0728: ldfld NetNode[] Array16`1<NetNode>::m_buffer
IL_072D: ldloc.s 29 (System.UInt16)
IL_072F: ldelema NetNode
IL_0734: ldloca.s 18 (ElectricityManager+PulseUnit)
IL_0736: ldfld System.UInt16 PulseUnit::m_group
IL_073B: ldc.r4 -100000
IL_0740: ldc.r4 -100000
IL_0745: ldc.r4 100000
IL_074A: ldc.r4 100000
IL_074F: call System.Void ElectricityManager::ConductToNode(System.UInt16
nodeIndex, NetNode& node, System.UInt16 group, System.Single minX, System.Single
minZ, System.Single maxX, System.Single maxZ)
IL_0754: Label46
IL_0754: ldloc.s 25 (System.Int32)
IL_0756: ldc.i4.1
IL_0757: add
IL_0758: stloc.s 25 (System.Int32)
IL_075A: Label45
IL_075A: ldloc.s 25 (System.Int32)
IL_075C: ldc.i4.8
IL_075D: blt => Label49
IL_0762: Label43
IL_0762: Label44
IL_0762: br => Label50
IL_0767: Label42
IL_0767: ldarg.0
IL_0768: ldfld PulseUnit[] ElectricityManager::m_pulseUnits
IL_076D: ldarg.0
IL_076E: ldfld System.Int32 ElectricityManager::m_pulseUnitEnd
IL_0773: ldelema ElectricityManager+PulseUnit
IL_0778: ldloc.s 18 (ElectricityManager+PulseUnit)
IL_077A: stobj ElectricityManager+PulseUnit
IL_077F: ldarg.0
IL_0780: dup
IL_0781: ldfld System.Int32 ElectricityManager::m_pulseUnitEnd
IL_0786: ldc.i4.1
IL_0787: add
IL_0788: dup
IL_0789: stloc.s 15 (System.Int32)
IL_078B: stfld System.Int32 ElectricityManager::m_pulseUnitEnd
IL_0790: ldloc.s 15 (System.Int32)
IL_0792: ldarg.0
IL_0793: ldfld PulseUnit[] ElectricityManager::m_pulseUnits
IL_0798: ldlen
IL_0799: conv.i4
IL_079A: bne.un => Label51
IL_079F: ldarg.0
IL_07A0: ldc.i4.0
IL_07A1: stfld System.Int32 ElectricityManager::m_pulseUnitEnd
IL_07A6: Label25
IL_07A6: Label41
IL_07A6: Label50
IL_07A6: Label51
IL_07A6: ldarg.0
IL_07A7: ldfld System.Int32 ElectricityManager::m_pulseUnitStart
IL_07AC: ldloc.s 17 (System.Int32)
IL_07AE: bne.un => Label52
IL_07B3: Label24
IL_07B3: ldarg.0
IL_07B4: ldfld System.Boolean ElectricityManager::m_canContinue
IL_07B9: brfalse => Label53
IL_07BE: ldarg.0
IL_07BF: ldfld System.Int32 ElectricityManager::m_processedCells
IL_07C4: ldloc.s 16 (System.Int32)
IL_07C6: blt => Label54
IL_07CB: Label53
IL_07CB: ldloc.1
IL_07CC: ldc.i4 255
IL_07D1: bne.un => Label55
IL_07D6: ldc.i4.0
IL_07D7: stloc.s 30 (System.Int32)
IL_07D9: br => Label56
IL_07DE: Label58
IL_07DE: ldarg.0
IL_07DF: ldfld PulseGroup[] ElectricityManager::m_pulseGroups
IL_07E4: ldloc.s 30 (System.Int32)
IL_07E6: ldelema ElectricityManager+PulseGroup
IL_07EB: ldobj ElectricityManager+PulseGroup
IL_07F0: stloc.s 31 (ElectricityManager+PulseGroup)
IL_07F2: ldloca.s 31 (ElectricityManager+PulseGroup)
IL_07F4: ldfld System.UInt16 PulseGroup::m_mergeIndex
IL_07F9: ldc.i4 65535
IL_07FE: beq => Label57
IL_0803: ldarg.0
IL_0804: ldfld PulseGroup[] ElectricityManager::m_pulseGroups
IL_0809: ldloca.s 31 (ElectricityManager+PulseGroup)
IL_080B: ldfld System.UInt16 PulseGroup::m_mergeIndex
IL_0810: ldelema ElectricityManager+PulseGroup
IL_0815: ldobj ElectricityManager+PulseGroup
IL_081A: stloc.s 32 (ElectricityManager+PulseGroup)
IL_081C: ldloca.s 31 (ElectricityManager+PulseGroup)
IL_081E: ldloca.s 32 (ElectricityManager+PulseGroup)
IL_0820: ldfld System.UInt32 PulseGroup::m_curCharge
IL_0825: conv.u8
IL_0826: ldloca.s 31 (ElectricityManager+PulseGroup)
IL_0828: ldfld System.UInt32 PulseGroup::m_origCharge
IL_082D: conv.u8
IL_082E: mul
IL_082F: ldloca.s 32 (ElectricityManager+PulseGroup)
IL_0831: ldfld System.UInt32 PulseGroup::m_origCharge
IL_0836: conv.u8
IL_0837: div.un
IL_0838: conv.u4
IL_0839: stfld System.UInt32 PulseGroup::m_curCharge
IL_083E: ldloca.s 32 (ElectricityManager+PulseGroup)
IL_0840: dup
IL_0841: ldfld System.UInt32 PulseGroup::m_curCharge
IL_0846: ldloca.s 31 (ElectricityManager+PulseGroup)
IL_0848: ldfld System.UInt32 PulseGroup::m_curCharge
IL_084D: sub
IL_084E: stfld System.UInt32 PulseGroup::m_curCharge
IL_0853: ldloca.s 32 (ElectricityManager+PulseGroup)
IL_0855: dup
IL_0856: ldfld System.UInt32 PulseGroup::m_origCharge
IL_085B: ldloca.s 31 (ElectricityManager+PulseGroup)
IL_085D: ldfld System.UInt32 PulseGroup::m_origCharge
IL_0862: sub
IL_0863: stfld System.UInt32 PulseGroup::m_origCharge
IL_0868: ldarg.0
IL_0869: ldfld PulseGroup[] ElectricityManager::m_pulseGroups
IL_086E: ldloca.s 31 (ElectricityManager+PulseGroup)
IL_0870: ldfld System.UInt16 PulseGroup::m_mergeIndex
IL_0875: ldelema ElectricityManager+PulseGroup
IL_087A: ldloc.s 32 (ElectricityManager+PulseGroup)
IL_087C: stobj ElectricityManager+PulseGroup
IL_0881: ldarg.0
IL_0882: ldfld PulseGroup[] ElectricityManager::m_pulseGroups
IL_0887: ldloc.s 30 (System.Int32)
IL_0889: ldelema ElectricityManager+PulseGroup
IL_088E: ldloc.s 31 (ElectricityManager+PulseGroup)
IL_0890: stobj ElectricityManager+PulseGroup
IL_0895: Label57
IL_0895: ldloc.s 30 (System.Int32)
IL_0897: ldc.i4.1
IL_0898: add
IL_0899: stloc.s 30 (System.Int32)
IL_089B: Label56
IL_089B: ldloc.s 30 (System.Int32)
IL_089D: ldarg.0
IL_089E: ldfld System.Int32 ElectricityManager::m_pulseGroupCount
IL_08A3: blt => Label58
IL_08A8: ldc.i4.0
IL_08A9: stloc.s 33 (System.Int32)
IL_08AB: br => Label59
IL_08B0: Label62
IL_08B0: ldarg.0
IL_08B1: ldfld PulseGroup[] ElectricityManager::m_pulseGroups
IL_08B6: ldloc.s 33 (System.Int32)
IL_08B8: ldelema ElectricityManager+PulseGroup
IL_08BD: ldobj ElectricityManager+PulseGroup
IL_08C2: stloc.s 34 (ElectricityManager+PulseGroup)
IL_08C4: ldloca.s 34 (ElectricityManager+PulseGroup)
IL_08C6: ldfld System.UInt32 PulseGroup::m_curCharge
IL_08CB: brfalse => Label60
IL_08D0: ldloca.s 34 (ElectricityManager+PulseGroup)
IL_08D2: ldfld System.Byte PulseGroup::m_z
IL_08D7: ldc.i4 256
IL_08DC: mul
IL_08DD: ldloca.s 34 (ElectricityManager+PulseGroup)
IL_08DF: ldfld System.Byte PulseGroup::m_x
IL_08E4: add
IL_08E5: stloc.s 35 (System.Int32)
IL_08E7: ldarg.0
IL_08E8: ldfld Cell[] ElectricityManager::m_electricityGrid
IL_08ED: ldloc.s 35 (System.Int32)
IL_08EF: ldelema ElectricityManager+Cell
IL_08F4: ldobj ElectricityManager+Cell
IL_08F9: stloc.s 36 (ElectricityManager+Cell)
IL_08FB: ldloca.s 36 (ElectricityManager+Cell)
IL_08FD: ldfld System.Byte Cell::m_conductivity
IL_0902: brfalse => Label61
IL_0907: ldloca.s 36 (ElectricityManager+Cell)
IL_0909: dup
IL_090A: ldfld System.UInt16 Cell::m_extraCharge
IL_090F: ldloca.s 34 (ElectricityManager+PulseGroup)
IL_0911: ldfld System.UInt32 PulseGroup::m_curCharge
IL_0916: ldc.i4 32767
IL_091B: ldloca.s 36 (ElectricityManager+Cell)
IL_091D: ldfld System.UInt16 Cell::m_extraCharge
IL_0922: sub
IL_0923: call static System.Int32 UnityEngine.Mathf::Min(System.Int32 a,
System.Int32 b)
IL_0928: conv.u2
IL_0929: add
IL_092A: conv.u2
IL_092B: stfld System.UInt16 Cell::m_extraCharge
IL_0930: Label61
IL_0930: ldarg.0
IL_0931: ldfld Cell[] ElectricityManager::m_electricityGrid
IL_0936: ldloc.s 35 (System.Int32)
IL_0938: ldelema ElectricityManager+Cell
IL_093D: ldloc.s 36 (ElectricityManager+Cell)
IL_093F: stobj ElectricityManager+Cell
IL_0944: Label60
IL_0944: ldloc.s 33 (System.Int32)
IL_0946: ldc.i4.1
IL_0947: add
IL_0948: stloc.s 33 (System.Int32)
IL_094A: Label59
IL_094A: ldloc.s 33 (System.Int32)
IL_094C: ldarg.0
IL_094D: ldfld System.Int32 ElectricityManager::m_pulseGroupCount
IL_0952: blt => Label62
IL_0957: // end original
IL_0957: Label0
IL_0957: Label1
IL_0957: Label22
IL_0957: Label55
IL_0957: ret
DONE
### Patch: System.Void ElectricityManager::ConductToNode(System.UInt16 nodeIndex,
NetNode& node, System.UInt16 group, System.Single minX, System.Single minZ,
System.Single maxX, System.Single maxZ)
### Replacement: static System.Void
ElectricityManager::ElectricityManager.ConductToNode_Patch0(ElectricityManager
this, System.UInt16 nodeIndex, NetNode& node, System.UInt16 group, System.Single
minX, System.Single minZ, System.Single maxX, System.Single maxZ)
IL_0000: Local var 0: NetInfo
IL_0000: Local var 1: ElectricityManager/PulseUnit
IL_0000: Local var 2: System.Int32
IL_0000: Local var 3: System.UInt16
IL_0000: // start original
IL_0000: ldarg.2
IL_0001: ldflda UnityEngine.Vector3 NetNode::m_position
IL_0006: ldfld System.Single UnityEngine.Vector3::x
IL_000B: ldarg.s 4
IL_000D: blt.un => Label0
IL_0012: ldarg.2
IL_0013: ldflda UnityEngine.Vector3 NetNode::m_position
IL_0018: ldfld System.Single UnityEngine.Vector3::z
IL_001D: ldarg.s 5
IL_001F: blt.un => Label1
IL_0024: ldarg.2
IL_0025: ldflda UnityEngine.Vector3 NetNode::m_position
IL_002A: ldfld System.Single UnityEngine.Vector3::x
IL_002F: ldarg.s 6
IL_0031: bgt.un => Label2
IL_0036: ldarg.2
IL_0037: ldflda UnityEngine.Vector3 NetNode::m_position
IL_003C: ldfld System.Single UnityEngine.Vector3::z
IL_0041: ldarg.s 7
IL_0043: bgt.un => Label3
IL_0048: ldarg.2
IL_0049: call NetInfo NetNode::get_Info()
IL_004E: stloc.0
IL_004F: ldloc.0
IL_0050: ldfld ItemClass NetInfo::m_class
IL_0055: ldfld Service ItemClass::m_service
IL_005A: ldc.i4.s 10
IL_005C: beq => Label4
IL_0061: ldarg.2
IL_0062: call NetInfo NetNode::get_Info()
IL_0067: ldfld NetAI NetInfo::m_netAI
IL_006C: isinst ConcourseAI
IL_0071: brfalse => Label5
IL_0076: Label4
IL_0076: ldarg.0
IL_0077: ldfld System.UInt16[] ElectricityManager::m_nodeGroups
IL_007C: ldarg.1
IL_007D: ldelem.u2
IL_007E: ldc.i4 65535
IL_0083: bne.un => Label6
IL_0088: ldloca.s 1 (ElectricityManager+PulseUnit)
IL_008A: ldarg.3
IL_008B: stfld System.UInt16 PulseUnit::m_group
IL_0090: ldloca.s 1 (ElectricityManager+PulseUnit)
IL_0092: ldarg.1
IL_0093: stfld System.UInt16 PulseUnit::m_node
IL_0098: ldloca.s 1 (ElectricityManager+PulseUnit)
IL_009A: ldc.i4.0
IL_009B: stfld System.Byte PulseUnit::m_x
IL_00A0: ldloca.s 1 (ElectricityManager+PulseUnit)
IL_00A2: ldc.i4.0
IL_00A3: stfld System.Byte PulseUnit::m_z
IL_00A8: ldarg.0
IL_00A9: ldfld PulseUnit[] ElectricityManager::m_pulseUnits
IL_00AE: ldarg.0
IL_00AF: ldfld System.Int32 ElectricityManager::m_pulseUnitEnd
IL_00B4: ldelema ElectricityManager+PulseUnit
IL_00B9: ldloc.1
IL_00BA: stobj ElectricityManager+PulseUnit
IL_00BF: ldarg.0
IL_00C0: dup
IL_00C1: ldfld System.Int32 ElectricityManager::m_pulseUnitEnd
IL_00C6: ldc.i4.1
IL_00C7: add
IL_00C8: dup
IL_00C9: stloc.2
IL_00CA: stfld System.Int32 ElectricityManager::m_pulseUnitEnd
IL_00CF: ldloc.2
IL_00D0: ldarg.0
IL_00D1: ldfld PulseUnit[] ElectricityManager::m_pulseUnits
IL_00D6: ldlen
IL_00D7: conv.i4
IL_00D8: bne.un => Label7
IL_00DD: ldarg.0
IL_00DE: ldc.i4.0
IL_00DF: stfld System.Int32 ElectricityManager::m_pulseUnitEnd
IL_00E4: Label7
IL_00E4: ldarg.0
IL_00E5: ldfld System.UInt16[] ElectricityManager::m_nodeGroups
IL_00EA: ldarg.1
IL_00EB: ldarg.3
IL_00EC: stelem.i2
IL_00ED: ldarg.0
IL_00EE: ldc.i4.1
IL_00EF: stfld System.Boolean ElectricityManager::m_canContinue
IL_00F4: br => Label8
IL_00F9: Label6
IL_00F9: ldarg.0
IL_00FA: ldarg.0
IL_00FB: ldfld System.UInt16[] ElectricityManager::m_nodeGroups
IL_0100: ldarg.1
IL_0101: ldelem.u2
IL_0102: call System.UInt16 ElectricityManager::GetRootGroup(System.UInt16
group)
IL_0107: stloc.3
IL_0108: ldloc.3
IL_0109: ldarg.3
IL_010A: beq => Label9
IL_010F: ldarg.0
IL_0110: ldarg.3
IL_0111: ldloc.3
IL_0112: call System.Void ElectricityManager::MergeGroups(System.UInt16 root,
System.UInt16 merged)
IL_0117: ldarg.0
IL_0118: ldfld System.UInt16[] ElectricityManager::m_nodeGroups
IL_011D: ldarg.1
IL_011E: ldarg.3
IL_011F: stelem.i2
IL_0120: ldarg.0
IL_0121: ldc.i4.1
IL_0122: stfld System.Boolean ElectricityManager::m_canContinue
IL_0127: // end original
IL_0127: Label0
IL_0127: Label1
IL_0127: Label2
IL_0127: Label3
IL_0127: Label5
IL_0127: Label8
IL_0127: Label9
IL_0127: ret
DONE

### Patch: System.Void ElectricityManager::UpdateNodeElectricity(System.Int32


nodeID, System.Int32 value)
### Replacement: static System.Void
ElectricityManager::ElectricityManager.UpdateNodeElectricity_Patch0(ElectricityMana
ger this, System.Int32 nodeID, System.Int32 value)
IL_0000: Local var 0: InfoManager/InfoMode
IL_0000: Local var 1: NetManager
IL_0000: Local var 2: System.Boolean
IL_0000: Local var 3: NetNode/Flags
IL_0000: Local var 4: System.UInt16
IL_0000: Local var 5: BuildingManager
IL_0000: Local var 6: NetNode/Flags
IL_0000: Local var 7: System.Int32
IL_0000: Local var 8: System.UInt16
IL_0000: // start original
IL_0000: call static InfoManager
ColossalFramework.Singleton`1<InfoManager>::get_instance()
IL_0005: callvirt InfoMode InfoManager::get_CurrentMode()
IL_000A: stloc.0
IL_000B: call static NetManager
ColossalFramework.Singleton`1<NetManager>::get_instance()
IL_0010: stloc.1
IL_0011: ldc.i4.0
IL_0012: stloc.2
IL_0013: ldloc.1
IL_0014: ldfld Array16`1<NetNode> NetManager::m_nodes
IL_0019: ldfld NetNode[] Array16`1<NetNode>::m_buffer
IL_001E: ldarg.1
IL_001F: ldelema NetNode
IL_0024: ldfld Flags NetNode::m_flags
IL_0029: stloc.3
IL_002A: ldloc.3
IL_002B: ldc.i4 1048576
IL_0030: and
IL_0031: brfalse => Label0
IL_0036: ldloc.1
IL_0037: ldfld Array16`1<NetNode> NetManager::m_nodes
IL_003C: ldfld NetNode[] Array16`1<NetNode>::m_buffer
IL_0041: ldarg.1
IL_0042: ldelema NetNode
IL_0047: dup
IL_0048: ldfld Flags NetNode::m_flags
IL_004D: ldc.i4 -1048577
IL_0052: and
IL_0053: stfld Flags NetNode::m_flags
IL_0058: br => Label10
IL_005D: Label0
IL_005D: ldloc.1
IL_005E: ldfld Array16`1<NetNode> NetManager::m_nodes
IL_0063: ldfld NetNode[] Array16`1<NetNode>::m_buffer
IL_0068: ldarg.1
IL_0069: ldelema NetNode
IL_006E: ldfld System.UInt16 NetNode::m_building
IL_0073: stloc.s 4 (System.UInt16)
IL_0075: ldloc.s 4 (System.UInt16)
IL_0077: brfalse => Label1
IL_007C: call static BuildingManager
ColossalFramework.Singleton`1<BuildingManager>::get_instance()
IL_0081: stloc.s 5 (BuildingManager)
IL_0083: ldloc.s 5 (BuildingManager)
IL_0085: ldfld Array16`1<Building> BuildingManager::m_buildings
IL_008A: ldfld Building[] Array16`1<Building>::m_buffer
IL_008F: ldloc.s 4 (System.UInt16)
IL_0091: ldelema Building
IL_0096: ldfld System.UInt16 Building::m_electricityBuffer
IL_009B: ldarg.2
IL_009C: beq => Label2
IL_00A1: ldloc.s 5 (BuildingManager)
IL_00A3: ldfld Array16`1<Building> BuildingManager::m_buildings
IL_00A8: ldfld Building[] Array16`1<Building>::m_buffer
IL_00AD: ldloc.s 4 (System.UInt16)
IL_00AF: ldelema Building
IL_00B4: ldarg.2
IL_00B5: conv.u2
IL_00B6: stfld System.UInt16 Building::m_electricityBuffer
IL_00BB: ldloc.0
IL_00BC: ldc.i4.1
IL_00BD: ceq
IL_00BF: stloc.2
IL_00C0: Label2
IL_00C0: ldloc.2
IL_00C1: brfalse => Label3
IL_00C6: ldloc.s 5 (BuildingManager)
IL_00C8: ldloc.s 4 (System.UInt16)
IL_00CA: callvirt System.Void BuildingManager::UpdateBuildingColors(System.UInt16
building)
IL_00CF: Label1
IL_00CF: Label3
IL_00CF: ldloc.3
IL_00D0: ldc.i4 -67108865
IL_00D5: and
IL_00D6: stloc.s 6 (NetNode+Flags)
IL_00D8: ldarg.2
IL_00D9: brfalse => Label4
IL_00DE: ldloc.s 6 (NetNode+Flags)
IL_00E0: ldc.i4 67108864
IL_00E5: or
IL_00E6: stloc.s 6 (NetNode+Flags)
IL_00E8: Label4
IL_00E8: ldloc.s 6 (NetNode+Flags)
IL_00EA: ldloc.3
IL_00EB: beq => Label5
IL_00F0: ldloc.1
IL_00F1: ldfld Array16`1<NetNode> NetManager::m_nodes
IL_00F6: ldfld NetNode[] Array16`1<NetNode>::m_buffer
IL_00FB: ldarg.1
IL_00FC: ldelema NetNode
IL_0101: ldloc.s 6 (NetNode+Flags)
IL_0103: stfld Flags NetNode::m_flags
IL_0108: ldloc.0
IL_0109: ldc.i4.1
IL_010A: ceq
IL_010C: stloc.2
IL_010D: Label5
IL_010D: ldloc.2
IL_010E: brfalse => Label6
IL_0113: ldloc.1
IL_0114: ldarg.1
IL_0115: conv.u2
IL_0116: callvirt System.Void NetManager::UpdateNodeColors(System.UInt16 node)
IL_011B: ldc.i4.0
IL_011C: stloc.s 7 (System.Int32)
IL_011E: br => Label7
IL_0123: Label9
IL_0123: ldloc.1
IL_0124: ldfld Array16`1<NetNode> NetManager::m_nodes
IL_0129: ldfld NetNode[] Array16`1<NetNode>::m_buffer
IL_012E: ldarg.1
IL_012F: ldelema NetNode
IL_0134: ldloc.s 7 (System.Int32)
IL_0136: call System.UInt16 NetNode::GetSegment(System.Int32 index)
IL_013B: stloc.s 8 (System.UInt16)
IL_013D: ldloc.s 8 (System.UInt16)
IL_013F: brfalse => Label8
IL_0144: ldloc.1
IL_0145: ldloc.s 8 (System.UInt16)
IL_0147: callvirt System.Void NetManager::UpdateSegmentColors(System.UInt16
segment)
IL_014C: Label8
IL_014C: ldloc.s 7 (System.Int32)
IL_014E: ldc.i4.1
IL_014F: add
IL_0150: stloc.s 7 (System.Int32)
IL_0152: Label7
IL_0152: ldloc.s 7 (System.Int32)
IL_0154: ldc.i4.8
IL_0155: blt => Label9
IL_015A: // end original
IL_015A: Label6
IL_015A: Label10
IL_015A: ret
DONE

### Patch: virtual System.Void ColossalFramework.UI.UIView::Start()


### Replacement: static System.Void
ColossalFramework.UI.UIView::ColossalFramework.UI.UIView.Start_Patch1(ColossalFrame
work.UI.UIView this)
IL_0000: Local var 0:
ColossalFramework.PoolList`1<ColossalFramework.UI.UIComponent>
IL_0000: Local var 1: ColossalFramework.UI.UIComponent
IL_0000: Local var 2:
System.Collections.Generic.IEnumerator`1<ColossalFramework.UI.UIComponent>
IL_0000: // start original
IL_0000: ldarg.0
IL_0001: ldc.i4.0
IL_0002: stfld System.Int32 ColossalFramework.UI.UIView::m_FramesRendered
IL_0007: ldarg.0
IL_0008: call System.Void
ColossalFramework.UI.UIView::InvalidateAllComponents()
IL_000D: ldarg.0
IL_000E: ldfld UnityEngine.MeshRenderer
ColossalFramework.UI.UIView::m_MeshRenderer
IL_0013: ldnull
IL_0014: call static System.Boolean
UnityEngine.Object::op_Inequality(UnityEngine.Object x, UnityEngine.Object y)
IL_0019: brfalse => Label0
IL_001E: ldarg.0
IL_001F: ldfld UnityEngine.MeshRenderer
ColossalFramework.UI.UIView::m_MeshRenderer
IL_0024: ldc.i4.1
IL_0025: callvirt System.Void UnityEngine.Renderer::set_enabled(System.Boolean
value)
IL_002A: Label0
IL_002A: ldarg.0
IL_002B: call ColossalFramework.PoolList`1<ColossalFramework.UI.UIComponent>
ColossalFramework.UI.UIView::GetTopLevelComponents()
IL_0030: stloc.0
.try
{
IL_0031: ldloc.0
IL_0032: callvirt virtual
System.Collections.Generic.IEnumerator`1<ColossalFramework.UI.UIComponent>
ColossalFramework.PoolList`1<ColossalFramework.UI.UIComponent>::GetEnumerator()
IL_0037: stloc.2
.try
{
IL_0038: br => Label1
IL_003D: Label2
IL_003D: ldloc.2
IL_003E: callvirt abstract virtual ColossalFramework.UI.UIComponent
System.Collections.Generic.IEnumerator`1<ColossalFramework.UI.UIComponent>::get_Cur
rent()
IL_0043: stloc.1
IL_0044: ldloc.1
IL_0045: ldc.i4.1
IL_0046: callvirt System.Void
ColossalFramework.UI.UIComponent::InitializeParentVisibilityCache(System.Boolean
parentVisible)
IL_004B: Label1
IL_004B: ldloc.2
IL_004C: callvirt abstract virtual System.Boolean
System.Collections.IEnumerator::MoveNext()
IL_0051: brtrue => Label2
IL_0056: leave => Label3
IL_005B: leave => (autogenerated)
} // end try
.finally
{
IL_0060: ldloc.2
IL_0061: brfalse => Label4
IL_0066: ldloc.2
IL_0067: callvirt abstract virtual System.Void
System.IDisposable::Dispose()
IL_006C: Label4
IL_006C: endfinally
IL_006D: leave => (autogenerated)
} // end handler
IL_006E: Label3
IL_006E: leave => Label5
IL_0073: leave => (autogenerated)
} // end try
.finally
{
IL_0078: ldloc.0
IL_0079: brfalse => Label6
IL_007E: ldloc.0
IL_007F: callvirt abstract virtual System.Void
System.IDisposable::Dispose()
IL_0084: Label6
IL_0084: endfinally
IL_0085: leave => (autogenerated)
} // end handler
IL_0086: Label5
IL_0086: ldarg.0
IL_0087: ldc.i4.1
IL_0088: stfld System.Boolean
ColossalFramework.UI.UIView::m_VisibilityCacheInitialized
IL_008D: // end original
IL_008D: call static System.Void
Kwytto.Redirectors.UIViewRedirector::AfterStart()
IL_0092: ret
DONE

### Patch: virtual UnityEngine.Color NetAI::GetColor(System.UInt16 nodeID, NetNode&


data, InfoMode infoMode, SubInfoMode subInfoMode)
### Replacement: static UnityEngine.Color NetAI::NetAI.GetColor_Patch1(NetAI this,
System.UInt16 nodeID, NetNode& data, InfoMode infoMode, SubInfoMode subInfoMode)
IL_0000: Local var 0: UnityEngine.Color
IL_0000: ldloca 0 (UnityEngine.Color)
IL_0004: initobj UnityEngine.Color
IL_000A: // start original
IL_000A: ldarg.3
IL_000B: brfalse => Label0
IL_0010: call static InfoManager
ColossalFramework.Singleton`1<InfoManager>::get_instance()
IL_0015: ldfld InfoProperties SimulationManagerBase`2<InfoManager,
InfoProperties>::m_properties
IL_001A: ldfld UnityEngine.Color InfoProperties::m_neutralColor
IL_001F: br => Label1
IL_0024: Label0
IL_0024: ldarg.0
IL_0025: ldfld NetInfo NetAI::m_info
IL_002A: ldfld UnityEngine.Color NetInfo::m_color
IL_002F: // end original
IL_002F: Label1
IL_002F: stloc 0 (UnityEngine.Color)
IL_0033: ldloca 0 (UnityEngine.Color)
IL_0037: ldarg 1
IL_003B: ldarg 2
IL_003F: ldarg 3
IL_0043: ldarg 4
IL_0047: call static System.Void
ElectricRoads.Overrides.ElectricRoadsOverrides::AfterGetColorNode(UnityEngine.Color
& __result, System.UInt16 nodeID, NetNode& data, InfoMode infoMode, SubInfoMode
subInfoMode)
IL_004C: ldloc 0 (UnityEngine.Color)
IL_0050: ret
DONE

### Patch: virtual UnityEngine.Color NetAI::GetColor(System.UInt16 segmentID,


NetSegment& data, InfoMode infoMode, SubInfoMode subInfoMode)
### Replacement: static UnityEngine.Color NetAI::NetAI.GetColor_Patch1(NetAI this,
System.UInt16 segmentID, NetSegment& data, InfoMode infoMode, SubInfoMode
subInfoMode)
IL_0000: Local var 0: UnityEngine.Color
IL_0000: ldloca 0 (UnityEngine.Color)
IL_0004: initobj UnityEngine.Color
IL_000A: // start original
IL_000A: ldarg.3
IL_000B: brfalse => Label0
IL_0010: call static InfoManager
ColossalFramework.Singleton`1<InfoManager>::get_instance()
IL_0015: ldfld InfoProperties SimulationManagerBase`2<InfoManager,
InfoProperties>::m_properties
IL_001A: ldfld UnityEngine.Color InfoProperties::m_neutralColor
IL_001F: br => Label1
IL_0024: Label0
IL_0024: ldarg.0
IL_0025: ldfld NetInfo NetAI::m_info
IL_002A: ldfld UnityEngine.Color NetInfo::m_color
IL_002F: // end original
IL_002F: Label1
IL_002F: stloc 0 (UnityEngine.Color)
IL_0033: ldloca 0 (UnityEngine.Color)
IL_0037: ldarg 1
IL_003B: ldarg 2
IL_003F: ldarg 3
IL_0043: ldarg 4
IL_0047: call static System.Void
ElectricRoads.Overrides.ElectricRoadsOverrides::AfterGetColorSegment(UnityEngine.Co
lor& __result, System.UInt16 segmentID, NetSegment& data, InfoMode infoMode,
SubInfoMode subInfoMode)
IL_004C: ldloc 0 (UnityEngine.Color)
IL_0050: ret
DONE

### Patch: System.Void ElectricityManager::UpdateNodeElectricity(System.Int32


nodeID, System.Int32 value)
### Replacement: static System.Void
ElectricityManager::ElectricityManager.UpdateNodeElectricity_Patch0(ElectricityMana
ger this, System.Int32 nodeID, System.Int32 value)
IL_0000: Local var 0: InfoManager/InfoMode
IL_0000: Local var 1: NetManager
IL_0000: Local var 2: System.Boolean
IL_0000: Local var 3: NetNode/Flags
IL_0000: Local var 4: System.UInt16
IL_0000: Local var 5: BuildingManager
IL_0000: Local var 6: NetNode/Flags
IL_0000: Local var 7: System.Int32
IL_0000: Local var 8: System.UInt16
IL_0000: // start original
IL_0000: call static InfoManager
ColossalFramework.Singleton`1<InfoManager>::get_instance()
IL_0005: callvirt InfoMode InfoManager::get_CurrentMode()
IL_000A: stloc.0
IL_000B: call static NetManager
ColossalFramework.Singleton`1<NetManager>::get_instance()
IL_0010: stloc.1
IL_0011: ldc.i4.0
IL_0012: stloc.2
IL_0013: ldloc.1
IL_0014: ldfld Array16`1<NetNode> NetManager::m_nodes
IL_0019: ldfld NetNode[] Array16`1<NetNode>::m_buffer
IL_001E: ldarg.1
IL_001F: ldelema NetNode
IL_0024: ldfld Flags NetNode::m_flags
IL_0029: stloc.3
IL_002A: ldarg.1
IL_002B: call static System.Boolean
ElectricRoads.Overrides.ElectricRoadsOverrides::CheckNodeTransition(System.Int32
nodeID)
IL_0030: brfalse => Label0
IL_0035: ldloc.1
IL_0036: ldfld Array16`1<NetNode> NetManager::m_nodes
IL_003B: ldfld NetNode[] Array16`1<NetNode>::m_buffer
IL_0040: ldarg.1
IL_0041: ldelema NetNode
IL_0046: dup
IL_0047: ldfld Flags NetNode::m_flags
IL_004C: ldc.i4 -1048577
IL_0051: and
IL_0052: stfld Flags NetNode::m_flags
IL_0057: br => Label10
IL_005C: Label0
IL_005C: ldloc.1
IL_005D: ldfld Array16`1<NetNode> NetManager::m_nodes
IL_0062: ldfld NetNode[] Array16`1<NetNode>::m_buffer
IL_0067: ldarg.1
IL_0068: ldelema NetNode
IL_006D: ldfld System.UInt16 NetNode::m_building
IL_0072: stloc.s 4 (System.UInt16)
IL_0074: ldloc.s 4 (System.UInt16)
IL_0076: brfalse => Label1
IL_007B: call static BuildingManager
ColossalFramework.Singleton`1<BuildingManager>::get_instance()
IL_0080: stloc.s 5 (BuildingManager)
IL_0082: ldloc.s 5 (BuildingManager)
IL_0084: ldfld Array16`1<Building> BuildingManager::m_buildings
IL_0089: ldfld Building[] Array16`1<Building>::m_buffer
IL_008E: ldloc.s 4 (System.UInt16)
IL_0090: ldelema Building
IL_0095: ldfld System.UInt16 Building::m_electricityBuffer
IL_009A: ldarg.2
IL_009B: beq => Label2
IL_00A0: ldloc.s 5 (BuildingManager)
IL_00A2: ldfld Array16`1<Building> BuildingManager::m_buildings
IL_00A7: ldfld Building[] Array16`1<Building>::m_buffer
IL_00AC: ldloc.s 4 (System.UInt16)
IL_00AE: ldelema Building
IL_00B3: ldarg.2
IL_00B4: conv.u2
IL_00B5: stfld System.UInt16 Building::m_electricityBuffer
IL_00BA: ldloc.0
IL_00BB: ldc.i4.1
IL_00BC: ceq
IL_00BE: stloc.2
IL_00BF: Label2
IL_00BF: ldloc.2
IL_00C0: brfalse => Label3
IL_00C5: ldloc.s 5 (BuildingManager)
IL_00C7: ldloc.s 4 (System.UInt16)
IL_00C9: callvirt System.Void BuildingManager::UpdateBuildingColors(System.UInt16
building)
IL_00CE: Label1
IL_00CE: Label3
IL_00CE: ldloc.3
IL_00CF: ldc.i4 -67108865
IL_00D4: and
IL_00D5: stloc.s 6 (NetNode+Flags)
IL_00D7: ldarg.2
IL_00D8: brfalse => Label4
IL_00DD: ldloc.s 6 (NetNode+Flags)
IL_00DF: ldc.i4 67108864
IL_00E4: or
IL_00E5: stloc.s 6 (NetNode+Flags)
IL_00E7: Label4
IL_00E7: ldloc.s 6 (NetNode+Flags)
IL_00E9: ldloc.3
IL_00EA: beq => Label5
IL_00EF: ldloc.1
IL_00F0: ldfld Array16`1<NetNode> NetManager::m_nodes
IL_00F5: ldfld NetNode[] Array16`1<NetNode>::m_buffer
IL_00FA: ldarg.1
IL_00FB: ldelema NetNode
IL_0100: ldloc.s 6 (NetNode+Flags)
IL_0102: stfld Flags NetNode::m_flags
IL_0107: ldloc.0
IL_0108: ldc.i4.1
IL_0109: ceq
IL_010B: stloc.2
IL_010C: Label5
IL_010C: ldloc.2
IL_010D: brfalse => Label6
IL_0112: ldloc.1
IL_0113: ldarg.1
IL_0114: conv.u2
IL_0115: callvirt System.Void NetManager::UpdateNodeColors(System.UInt16 node)
IL_011A: ldc.i4.0
IL_011B: stloc.s 7 (System.Int32)
IL_011D: br => Label7
IL_0122: Label9
IL_0122: ldloc.1
IL_0123: ldfld Array16`1<NetNode> NetManager::m_nodes
IL_0128: ldfld NetNode[] Array16`1<NetNode>::m_buffer
IL_012D: ldarg.1
IL_012E: ldelema NetNode
IL_0133: ldloc.s 7 (System.Int32)
IL_0135: call System.UInt16 NetNode::GetSegment(System.Int32 index)
IL_013A: stloc.s 8 (System.UInt16)
IL_013C: ldloc.s 8 (System.UInt16)
IL_013E: brfalse => Label8
IL_0143: ldloc.1
IL_0144: ldloc.s 8 (System.UInt16)
IL_0146: callvirt System.Void NetManager::UpdateSegmentColors(System.UInt16
segment)
IL_014B: Label8
IL_014B: ldloc.s 7 (System.Int32)
IL_014D: ldc.i4.1
IL_014E: add
IL_014F: stloc.s 7 (System.Int32)
IL_0151: Label7
IL_0151: ldloc.s 7 (System.Int32)
IL_0153: ldc.i4.8
IL_0154: blt => Label9
IL_0159: // end original
IL_0159: Label6
IL_0159: Label10
IL_0159: ret
DONE

### Patch: static System.Void PropInstance::RenderInstance(CameraInfo cameraInfo,


PropInfo info, InstanceID id, UnityEngine.Vector3 position, System.Single scale,
System.Single angle, UnityEngine.Color color, UnityEngine.Vector4 objectIndex,
System.Boolean active, UnityEngine.Texture heightMap, UnityEngine.Vector4
heightMapping, UnityEngine.Vector4 surfaceMapping, UnityEngine.Texture
waterHeightMap, UnityEngine.Vector4 waterHeightMapping, UnityEngine.Vector4
waterSurfaceMapping)
### Replacement: static System.Void
PropInstance::PropInstance.RenderInstance_Patch0(CameraInfo cameraInfo, PropInfo
info, InstanceID id, UnityEngine.Vector3 position, System.Single scale,
System.Single angle, UnityEngine.Color color, UnityEngine.Vector4 objectIndex,
System.Boolean active, UnityEngine.Texture heightMap, UnityEngine.Vector4
heightMapping, UnityEngine.Vector4 surfaceMapping, UnityEngine.Texture
waterHeightMap, UnityEngine.Vector4 waterHeightMapping, UnityEngine.Vector4
waterSurfaceMapping)
IL_0000: Local var 0: UnityEngine.Matrix4x4
IL_0000: Local var 1: System.Single
IL_0000: Local var 2: System.Int32
IL_0000: Local var 3: UnityEngine.Vector3
IL_0000: Local var 4: UnityEngine.Vector3
IL_0000: Local var 5: EffectInfo/SpawnArea
IL_0000: Local var 6: System.Single
IL_0000: Local var 7: LightSystem
IL_0000: Local var 8: ColossalFramework.Math.Randomizer
IL_0000: Local var 9: UnityEngine.Vector4
IL_0000: Local var 10: System.Single
IL_0000: Local var 11: System.Single
IL_0000: Local var 12: System.Single
IL_0000: Local var 13: UnityEngine.Matrix4x4
IL_0000: Local var 14: PropManager
IL_0000: Local var 15: UnityEngine.MaterialPropertyBlock
IL_0000: Local var 16: System.Int32
IL_0000: // start original
IL_0000: ldarg.1
IL_0001: ldfld System.Boolean PrefabInfo::m_prefabInitialized
IL_0006: brfalse => Label0
IL_000B: ldarg.1
IL_000C: ldfld System.Boolean PropInfo::m_hasEffects
IL_0011: brfalse => Label1
IL_0016: ldarg.s 8
IL_0018: brtrue => Label2
IL_001D: ldarg.1
IL_001E: ldfld System.Boolean PropInfo::m_alwaysActive
IL_0023: brfalse => Label3
IL_0028: Label2
IL_0028: ldloca.s 0 (UnityEngine.Matrix4x4)
IL_002A: initobj UnityEngine.Matrix4x4
IL_0030: ldloca.s 0 (UnityEngine.Matrix4x4)
IL_0032: ldarg.3
IL_0033: ldarg.s 5
IL_0035: ldc.r4 57.29578
IL_003A: mul
IL_003B: call static UnityEngine.Vector3 UnityEngine.Vector3::get_down()
IL_0040: call static UnityEngine.Quaternion
UnityEngine.Quaternion::AngleAxis(System.Single angle, UnityEngine.Vector3 axis)
IL_0045: ldarg.s 4
IL_0047: ldarg.s 4
IL_0049: ldarg.s 4
IL_004B: newobj System.Void UnityEngine.Vector3::.ctor(System.Single x,
System.Single y, System.Single z)
IL_0050: call System.Void UnityEngine.Matrix4x4::SetTRS(UnityEngine.Vector3
pos, UnityEngine.Quaternion q, UnityEngine.Vector3 s)
IL_0055: call static SimulationManager
ColossalFramework.Singleton`1<SimulationManager>::get_instance()
IL_005A: ldfld System.Single SimulationManager::m_simulationTimeDelta
IL_005F: stloc.1
IL_0060: ldc.i4.0
IL_0061: stloc.2
IL_0062: br => Label4
IL_0067: Label5
IL_0067: ldloca.s 0 (UnityEngine.Matrix4x4)
IL_0069: ldarg.1
IL_006A: ldfld Effect[] PropInfo::m_effects
IL_006F: ldloc.2
IL_0070: ldelema PropInfo+Effect
IL_0075: ldfld UnityEngine.Vector3 Effect::m_position
IL_007A: call UnityEngine.Vector3
UnityEngine.Matrix4x4::MultiplyPoint(UnityEngine.Vector3 v)
IL_007F: stloc.3
IL_0080: ldloca.s 0 (UnityEngine.Matrix4x4)
IL_0082: ldarg.1
IL_0083: ldfld Effect[] PropInfo::m_effects
IL_0088: ldloc.2
IL_0089: ldelema PropInfo+Effect
IL_008E: ldfld UnityEngine.Vector3 Effect::m_direction
IL_0093: call UnityEngine.Vector3
UnityEngine.Matrix4x4::MultiplyVector(UnityEngine.Vector3 v)
IL_0098: stloc.s 4 (UnityEngine.Vector3)
IL_009A: ldloca.s 5 (EffectInfo+SpawnArea)
IL_009C: ldloc.3
IL_009D: ldloc.s 4 (UnityEngine.Vector3)
IL_009F: ldc.r4 0
IL_00A4: call System.Void SpawnArea::.ctor(UnityEngine.Vector3 position,
UnityEngine.Vector3 direction, System.Single radius)
IL_00A9: ldarg.1
IL_00AA: ldfld Effect[] PropInfo::m_effects
IL_00AF: ldloc.2
IL_00B0: ldelema PropInfo+Effect
IL_00B5: ldfld EffectInfo Effect::m_effect
IL_00BA: ldarg.2
IL_00BB: ldloc.s 5 (EffectInfo+SpawnArea)
IL_00BD: call static UnityEngine.Vector3 UnityEngine.Vector3::get_zero()
IL_00C2: ldc.r4 0
IL_00C7: ldc.r4 1
IL_00CC: ldc.r4 -1
IL_00D1: ldloc.1
IL_00D2: ldarg.0
IL_00D3: callvirt virtual System.Void EffectInfo::RenderEffect(InstanceID id,
SpawnArea area, UnityEngine.Vector3 velocity, System.Single acceleration,
System.Single magnitude, System.Single timeOffset, System.Single timeDelta,
CameraInfo cameraInfo)
IL_00D8: ldloc.2
IL_00D9: ldc.i4.1
IL_00DA: add
IL_00DB: stloc.2
IL_00DC: Label4
IL_00DC: ldloc.2
IL_00DD: ldarg.1
IL_00DE: ldfld Effect[] PropInfo::m_effects
IL_00E3: ldlen
IL_00E4: conv.i4
IL_00E5: blt => Label5
IL_00EA: Label1
IL_00EA: Label3
IL_00EA: ldarg.1
IL_00EB: ldfld System.Boolean PropInfo::m_hasRenderer
IL_00F0: brfalse => Label6
IL_00F5: ldarg.0
IL_00F6: ldfld System.Int32 CameraInfo::m_layerMask
IL_00FB: ldc.i4.1
IL_00FC: ldarg.1
IL_00FD: ldfld System.Int32 PrefabInfo::m_prefabDataLayer
IL_0102: ldc.i4.s 31
IL_0104: and
IL_0105: shl
IL_0106: and
IL_0107: brfalse => Label7
IL_010C: call static InfoManager
ColossalFramework.Singleton`1<InfoManager>::get_instance()
IL_0111: callvirt InfoMode InfoManager::get_CurrentMode()
IL_0116: brtrue => Label8
IL_011B: ldarg 2
IL_011F: call static System.Boolean
ElectricRoads.Overrides.ElectricRoadsOverrides::CheckElectrityNetForLight(InstanceI
D id)
IL_0124: brfalse => Label24
IL_0129: ldc.r4 0
IL_012E: stloc.s 6 (System.Single)
IL_0130: ldarg.s 8
IL_0132: brtrue => Label9
IL_0137: ldarg.1
IL_0138: ldfld System.Boolean PropInfo::m_alwaysActive
IL_013D: brtrue => Label10
IL_0142: Label24
IL_0142: ldarga.s 7
IL_0144: ldc.r4 0
IL_0149: stfld System.Single UnityEngine.Vector4::z
IL_014E: br => Label11
IL_0153: Label9
IL_0153: Label10
IL_0153: ldarg.1
IL_0154: ldflda UnityEngine.Vector2 PropInfo::m_illuminationOffRange
IL_0159: ldfld System.Single UnityEngine.Vector2::x
IL_015E: ldc.r4 1000
IL_0163: blt => Label12
IL_0168: ldarg.1
IL_0169: ldfld BlinkType PropInfo::m_illuminationBlinkType
IL_016E: brfalse => Label13
IL_0173: Label12
IL_0173: call static RenderManager
ColossalFramework.Singleton`1<RenderManager>::get_instance()
IL_0178: callvirt LightSystem RenderManager::get_lightSystem()
IL_017D: stloc.s 7 (LightSystem)
IL_017F: ldloca.s 8 (ColossalFramework.Math.Randomizer)
IL_0181: ldarga.s 2
IL_0183: call System.UInt32 InstanceID::get_Index()
IL_0188: call System.Void
ColossalFramework.Math.Randomizer::.ctor(System.UInt32 _seed)
IL_018D: ldarg.1
IL_018E: ldflda UnityEngine.Vector2 PropInfo::m_illuminationOffRange
IL_0193: ldfld System.Single UnityEngine.Vector2::x
IL_0198: ldloca.s 8 (ColossalFramework.Math.Randomizer)
IL_019A: ldc.i4 100000
IL_019F: call System.Int32
ColossalFramework.Math.Randomizer::Int32(System.UInt32 range)
IL_01A4: conv.r4
IL_01A5: ldc.r4 1E-05
IL_01AA: mul
IL_01AB: ldarg.1
IL_01AC: ldflda UnityEngine.Vector2 PropInfo::m_illuminationOffRange
IL_01B1: ldfld System.Single UnityEngine.Vector2::y
IL_01B6: ldarg.1
IL_01B7: ldflda UnityEngine.Vector2 PropInfo::m_illuminationOffRange
IL_01BC: ldfld System.Single UnityEngine.Vector2::x
IL_01C1: sub
IL_01C2: mul
IL_01C3: add
IL_01C4: stloc.s 6 (System.Single)
IL_01C6: ldarga.s 7
IL_01C8: ldloc.s 6 (System.Single)
IL_01CA: ldc.r4 0.01
IL_01CF: add
IL_01D0: ldloc.s 6 (System.Single)
IL_01D2: ldc.r4 0.01
IL_01D7: sub
IL_01D8: ldloc.s 7 (LightSystem)
IL_01DA: callvirt System.Single LightSystem::get_DayLightIntensity()
IL_01DF: call static System.Single MathUtils::SmoothStep(System.Single edge0,
System.Single edge1, System.Single x)
IL_01E4: stfld System.Single UnityEngine.Vector4::z
IL_01E9: ldarg.1
IL_01EA: ldfld BlinkType PropInfo::m_illuminationBlinkType
IL_01EF: brfalse => Label14
IL_01F4: ldarg.1
IL_01F5: ldfld BlinkType PropInfo::m_illuminationBlinkType
IL_01FA: call static UnityEngine.Vector4
LightEffect::GetBlinkVector(BlinkType type)
IL_01FF: stloc.s 9 (UnityEngine.Vector4)
IL_0201: ldloc.s 6 (System.Single)
IL_0203: ldc.r4 3.71
IL_0208: mul
IL_0209: call static SimulationManager
ColossalFramework.Singleton`1<SimulationManager>::get_instance()
IL_020E: ldfld System.Single SimulationManager::m_simulationTimer
IL_0213: ldloca.s 9 (UnityEngine.Vector4)
IL_0215: ldfld System.Single UnityEngine.Vector4::w
IL_021A: div
IL_021B: add
IL_021C: stloc.s 10 (System.Single)
IL_021E: ldloc.s 10 (System.Single)
IL_0220: ldloc.s 10 (System.Single)
IL_0222: call static System.Single UnityEngine.Mathf::Floor(System.Single f)
IL_0227: sub
IL_0228: ldloca.s 9 (UnityEngine.Vector4)
IL_022A: ldfld System.Single UnityEngine.Vector4::w
IL_022F: mul
IL_0230: stloc.s 10 (System.Single)
IL_0232: ldloca.s 9 (UnityEngine.Vector4)
IL_0234: ldfld System.Single UnityEngine.Vector4::x
IL_0239: ldloca.s 9 (UnityEngine.Vector4)
IL_023B: ldfld System.Single UnityEngine.Vector4::y
IL_0240: ldloc.s 10 (System.Single)
IL_0242: call static System.Single MathUtils::SmoothStep(System.Single edge0,
System.Single edge1, System.Single x)
IL_0247: stloc.s 11 (System.Single)
IL_0249: ldloca.s 9 (UnityEngine.Vector4)
IL_024B: ldfld System.Single UnityEngine.Vector4::w
IL_0250: ldloca.s 9 (UnityEngine.Vector4)
IL_0252: ldfld System.Single UnityEngine.Vector4::z
IL_0257: ldloc.s 10 (System.Single)
IL_0259: call static System.Single MathUtils::SmoothStep(System.Single edge0,
System.Single edge1, System.Single x)
IL_025E: stloc.s 12 (System.Single)
IL_0260: ldarga.s 7
IL_0262: dup
IL_0263: ldfld System.Single UnityEngine.Vector4::z
IL_0268: ldc.r4 1
IL_026D: ldloc.s 11 (System.Single)
IL_026F: ldloc.s 12 (System.Single)
IL_0271: mul
IL_0272: sub
IL_0273: mul
IL_0274: stfld System.Single UnityEngine.Vector4::z
IL_0279: Label14
IL_0279: br => Label15
IL_027E: Label13
IL_027E: ldarga.s 7
IL_0280: ldc.r4 1
IL_0285: stfld System.Single UnityEngine.Vector4::z
IL_028A: Label8
IL_028A: Label11
IL_028A: Label15
IL_028A: ldarg.0
IL_028B: brfalse => Label16
IL_0290: ldarg.0
IL_0291: ldarg.3
IL_0292: ldarg.1
IL_0293: ldfld System.Single PropInfo::m_lodRenderDistance
IL_0298: callvirt System.Boolean
CameraInfo::CheckRenderDistance(UnityEngine.Vector3 point, System.Single
maxDistance)
IL_029D: brfalse => Label17
IL_02A2: Label16
IL_02A2: ldloca.s 13 (UnityEngine.Matrix4x4)
IL_02A4: initobj UnityEngine.Matrix4x4
IL_02AA: ldloca.s 13 (UnityEngine.Matrix4x4)
IL_02AC: ldarg.3
IL_02AD: ldarg.s 5
IL_02AF: ldc.r4 57.29578
IL_02B4: mul
IL_02B5: call static UnityEngine.Vector3 UnityEngine.Vector3::get_down()
IL_02BA: call static UnityEngine.Quaternion
UnityEngine.Quaternion::AngleAxis(System.Single angle, UnityEngine.Vector3 axis)
IL_02BF: ldarg.s 4
IL_02C1: ldarg.s 4
IL_02C3: ldarg.s 4
IL_02C5: newobj System.Void UnityEngine.Vector3::.ctor(System.Single x,
System.Single y, System.Single z)
IL_02CA: call System.Void UnityEngine.Matrix4x4::SetTRS(UnityEngine.Vector3
pos, UnityEngine.Quaternion q, UnityEngine.Vector3 s)
IL_02CF: call static PropManager
ColossalFramework.Singleton`1<PropManager>::get_instance()
IL_02D4: stloc.s 14 (PropManager)
IL_02D6: ldloc.s 14 (PropManager)
IL_02D8: ldfld UnityEngine.MaterialPropertyBlock PropManager::m_materialBlock
IL_02DD: stloc.s 15 (UnityEngine.MaterialPropertyBlock)
IL_02DF: ldloc.s 15 (UnityEngine.MaterialPropertyBlock)
IL_02E1: callvirt System.Void UnityEngine.MaterialPropertyBlock::Clear()
IL_02E6: ldloc.s 15 (UnityEngine.MaterialPropertyBlock)
IL_02E8: ldloc.s 14 (PropManager)
IL_02EA: ldfld System.Int32 PropManager::ID_Color
IL_02EF: ldarg.s 6
IL_02F1: callvirt System.Void
UnityEngine.MaterialPropertyBlock::SetColor(System.Int32 nameID, UnityEngine.Color
value)
IL_02F6: ldloc.s 15 (UnityEngine.MaterialPropertyBlock)
IL_02F8: ldloc.s 14 (PropManager)
IL_02FA: ldfld System.Int32 PropManager::ID_HeightMap
IL_02FF: ldarg.s 9
IL_0301: callvirt System.Void
UnityEngine.MaterialPropertyBlock::SetTexture(System.Int32 nameID,
UnityEngine.Texture value)
IL_0306: ldloc.s 15 (UnityEngine.MaterialPropertyBlock)
IL_0308: ldloc.s 14 (PropManager)
IL_030A: ldfld System.Int32 PropManager::ID_HeightMapping
IL_030F: ldarg.s 10
IL_0311: callvirt System.Void
UnityEngine.MaterialPropertyBlock::SetVector(System.Int32 nameID,
UnityEngine.Vector4 value)
IL_0316: ldloc.s 15 (UnityEngine.MaterialPropertyBlock)
IL_0318: ldloc.s 14 (PropManager)
IL_031A: ldfld System.Int32 PropManager::ID_SurfaceMapping
IL_031F: ldarg.s 11
IL_0321: callvirt System.Void
UnityEngine.MaterialPropertyBlock::SetVector(System.Int32 nameID,
UnityEngine.Vector4 value)
IL_0326: ldloc.s 15 (UnityEngine.MaterialPropertyBlock)
IL_0328: ldloc.s 14 (PropManager)
IL_032A: ldfld System.Int32 PropManager::ID_ObjectIndex
IL_032F: ldarg.s 7
IL_0331: callvirt System.Void
UnityEngine.MaterialPropertyBlock::SetVector(System.Int32 nameID,
UnityEngine.Vector4 value)
IL_0336: ldloc.s 15 (UnityEngine.MaterialPropertyBlock)
IL_0338: ldloc.s 14 (PropManager)
IL_033A: ldfld System.Int32 PropManager::ID_WaterHeightMap
IL_033F: ldarg.s 12
IL_0341: callvirt System.Void
UnityEngine.MaterialPropertyBlock::SetTexture(System.Int32 nameID,
UnityEngine.Texture value)
IL_0346: ldloc.s 15 (UnityEngine.MaterialPropertyBlock)
IL_0348: ldloc.s 14 (PropManager)
IL_034A: ldfld System.Int32 PropManager::ID_WaterHeightMapping
IL_034F: ldarg.s 13
IL_0351: callvirt System.Void
UnityEngine.MaterialPropertyBlock::SetVector(System.Int32 nameID,
UnityEngine.Vector4 value)
IL_0356: ldloc.s 15 (UnityEngine.MaterialPropertyBlock)
IL_0358: ldloc.s 14 (PropManager)
IL_035A: ldfld System.Int32 PropManager::ID_WaterSurfaceMapping
IL_035F: ldarg.s 14
IL_0361: callvirt System.Void
UnityEngine.MaterialPropertyBlock::SetVector(System.Int32 nameID,
UnityEngine.Vector4 value)
IL_0366: ldarg.1
IL_0367: ldfld UnityEngine.Vector4[] PropInfo::m_rollLocation
IL_036C: brfalse => Label18
IL_0371: ldarg.1
IL_0372: ldfld UnityEngine.Material PropInfo::m_material
IL_0377: ldloc.s 14 (PropManager)
IL_0379: ldfld System.Int32 PropManager::ID_RollLocation
IL_037E: ldarg.1
IL_037F: ldfld UnityEngine.Vector4[] PropInfo::m_rollLocation
IL_0384: callvirt System.Void UnityEngine.Material::SetVectorArray(System.Int32
nameID, UnityEngine.Vector4[] values)
IL_0389: ldarg.1
IL_038A: ldfld UnityEngine.Material PropInfo::m_material
IL_038F: ldloc.s 14 (PropManager)
IL_0391: ldfld System.Int32 PropManager::ID_RollParams
IL_0396: ldarg.1
IL_0397: ldfld UnityEngine.Vector4[] PropInfo::m_rollParams
IL_039C: callvirt System.Void UnityEngine.Material::SetVectorArray(System.Int32
nameID, UnityEngine.Vector4[] values)
IL_03A1: Label18
IL_03A1: ldloc.s 14 (PropManager)
IL_03A3: ldflda DrawCallData SimulationManagerBase`2<PropManager,
PropProperties>::m_drawCallData
IL_03A8: dup
IL_03A9: ldfld System.Int32 DrawCallData::m_defaultCalls
IL_03AE: ldc.i4.1
IL_03AF: add
IL_03B0: stfld System.Int32 DrawCallData::m_defaultCalls
IL_03B5: ldarg.1
IL_03B6: ldfld UnityEngine.Mesh PropInfo::m_mesh
IL_03BB: ldloc.s 13 (UnityEngine.Matrix4x4)
IL_03BD: ldarg.1
IL_03BE: ldfld UnityEngine.Material PropInfo::m_material
IL_03C3: ldarg.1
IL_03C4: ldfld System.Int32 PrefabInfo::m_prefabDataLayer
IL_03C9: ldnull
IL_03CA: ldc.i4.0
IL_03CB: ldloc.s 15 (UnityEngine.MaterialPropertyBlock)
IL_03CD: call static System.Void
UnityEngine.Graphics::DrawMesh(UnityEngine.Mesh mesh, UnityEngine.Matrix4x4 matrix,
UnityEngine.Material material, System.Int32 layer, UnityEngine.Camera camera,
System.Int32 submeshIndex, UnityEngine.MaterialPropertyBlock properties)
IL_03D2: br => Label19
IL_03D7: Label17
IL_03D7: ldarg.s 9
IL_03D9: ldarg.1
IL_03DA: ldfld UnityEngine.Texture PropInfo::m_lodHeightMap
IL_03DF: call static System.Boolean
UnityEngine.Object::op_Inequality(UnityEngine.Object x, UnityEngine.Object y)
IL_03E4: brtrue => Label20
IL_03E9: ldarg.s 12
IL_03EB: ldarg.1
IL_03EC: ldfld UnityEngine.Texture PropInfo::m_lodWaterHeightMap
IL_03F1: call static System.Boolean
UnityEngine.Object::op_Inequality(UnityEngine.Object x, UnityEngine.Object y)
IL_03F6: brfalse => Label21
IL_03FB: Label20
IL_03FB: ldarg.1
IL_03FC: ldfld System.Int32 PropInfo::m_lodCount
IL_0401: brfalse => Label22
IL_0406: ldarg.0
IL_0407: ldarg.1
IL_0408: call static System.Void PropInstance::RenderLod(CameraInfo
cameraInfo, PropInfo info)
IL_040D: Label22
IL_040D: ldarg.1
IL_040E: ldarg.s 9
IL_0410: stfld UnityEngine.Texture PropInfo::m_lodHeightMap
IL_0415: ldarg.1
IL_0416: ldarg.s 10
IL_0418: stfld UnityEngine.Vector4 PropInfo::m_lodHeightMapping
IL_041D: ldarg.1
IL_041E: ldarg.s 11
IL_0420: stfld UnityEngine.Vector4 PropInfo::m_lodSurfaceMapping
IL_0425: ldarg.1
IL_0426: ldarg.s 12
IL_0428: stfld UnityEngine.Texture PropInfo::m_lodWaterHeightMap
IL_042D: ldarg.1
IL_042E: ldarg.s 13
IL_0430: stfld UnityEngine.Vector4 PropInfo::m_lodWaterHeightMapping
IL_0435: ldarg.1
IL_0436: ldarg.s 14
IL_0438: stfld UnityEngine.Vector4 PropInfo::m_lodWaterSurfaceMapping
IL_043D: Label21
IL_043D: ldarga.s 7
IL_043F: ldarg.s 4
IL_0441: stfld System.Single UnityEngine.Vector4::w
IL_0446: ldarg.1
IL_0447: ldfld UnityEngine.Vector4[] PropInfo::m_lodLocations
IL_044C: ldarg.1
IL_044D: ldfld System.Int32 PropInfo::m_lodCount
IL_0452: ldelema UnityEngine.Vector4
IL_0457: ldarga.s 3
IL_0459: ldfld System.Single UnityEngine.Vector3::x
IL_045E: ldarga.s 3
IL_0460: ldfld System.Single UnityEngine.Vector3::y
IL_0465: ldarga.s 3
IL_0467: ldfld System.Single UnityEngine.Vector3::z
IL_046C: ldarg.s 5
IL_046E: newobj System.Void UnityEngine.Vector4::.ctor(System.Single x,
System.Single y, System.Single z, System.Single w)
IL_0473: stobj UnityEngine.Vector4
IL_0478: ldarg.1
IL_0479: ldfld UnityEngine.Vector4[] PropInfo::m_lodObjectIndices
IL_047E: ldarg.1
IL_047F: ldfld System.Int32 PropInfo::m_lodCount
IL_0484: ldelema UnityEngine.Vector4
IL_0489: ldarg.s 7
IL_048B: stobj UnityEngine.Vector4
IL_0490: ldarg.1
IL_0491: ldfld UnityEngine.Vector4[] PropInfo::m_lodColors
IL_0496: ldarg.1
IL_0497: ldfld System.Int32 PropInfo::m_lodCount
IL_049C: ldelema UnityEngine.Vector4
IL_04A1: ldarga.s 6
IL_04A3: call UnityEngine.Color UnityEngine.Color::get_linear()
IL_04A8: call static UnityEngine.Vector4
UnityEngine.Color::op_Implicit(UnityEngine.Color c)
IL_04AD: stobj UnityEngine.Vector4
IL_04B2: ldarg.1
IL_04B3: ldarg.1
IL_04B4: ldfld UnityEngine.Vector3 PropInfo::m_lodMin
IL_04B9: ldarg.3
IL_04BA: call static UnityEngine.Vector3
UnityEngine.Vector3::Min(UnityEngine.Vector3 lhs, UnityEngine.Vector3 rhs)
IL_04BF: stfld UnityEngine.Vector3 PropInfo::m_lodMin
IL_04C4: ldarg.1
IL_04C5: ldarg.1
IL_04C6: ldfld UnityEngine.Vector3 PropInfo::m_lodMax
IL_04CB: ldarg.3
IL_04CC: call static UnityEngine.Vector3
UnityEngine.Vector3::Max(UnityEngine.Vector3 lhs, UnityEngine.Vector3 rhs)
IL_04D1: stfld UnityEngine.Vector3 PropInfo::m_lodMax
IL_04D6: ldarg.1
IL_04D7: dup
IL_04D8: ldfld System.Int32 PropInfo::m_lodCount
IL_04DD: ldc.i4.1
IL_04DE: add
IL_04DF: dup
IL_04E0: stloc.s 16 (System.Int32)
IL_04E2: stfld System.Int32 PropInfo::m_lodCount
IL_04E7: ldloc.s 16 (System.Int32)
IL_04E9: ldarg.1
IL_04EA: ldfld UnityEngine.Vector4[] PropInfo::m_lodLocations
IL_04EF: ldlen
IL_04F0: conv.i4
IL_04F1: bne.un => Label23
IL_04F6: ldarg.0
IL_04F7: ldarg.1
IL_04F8: call static System.Void PropInstance::RenderLod(CameraInfo
cameraInfo, PropInfo info)
IL_04FD: // end original
IL_04FD: Label0
IL_04FD: Label6
IL_04FD: Label7
IL_04FD: Label19
IL_04FD: Label23
IL_04FD: ret
DONE

### Patch: static System.Void PropInstance::RenderInstance(CameraInfo cameraInfo,


PropInfo info, InstanceID id, UnityEngine.Vector3 position, System.Single scale,
System.Single angle, UnityEngine.Color color, UnityEngine.Vector4 objectIndex,
System.Boolean active)
### Replacement: static System.Void
PropInstance::PropInstance.RenderInstance_Patch0(CameraInfo cameraInfo, PropInfo
info, InstanceID id, UnityEngine.Vector3 position, System.Single scale,
System.Single angle, UnityEngine.Color color, UnityEngine.Vector4 objectIndex,
System.Boolean active)
IL_0000: Local var 0: UnityEngine.Matrix4x4
IL_0000: Local var 1: System.Single
IL_0000: Local var 2: System.Int32
IL_0000: Local var 3: UnityEngine.Vector3
IL_0000: Local var 4: UnityEngine.Vector3
IL_0000: Local var 5: EffectInfo/SpawnArea
IL_0000: Local var 6: System.Single
IL_0000: Local var 7: LightSystem
IL_0000: Local var 8: ColossalFramework.Math.Randomizer
IL_0000: Local var 9: UnityEngine.Vector4
IL_0000: Local var 10: System.Single
IL_0000: Local var 11: System.Single
IL_0000: Local var 12: System.Single
IL_0000: Local var 13: UnityEngine.Matrix4x4
IL_0000: Local var 14: PropManager
IL_0000: Local var 15: UnityEngine.MaterialPropertyBlock
IL_0000: Local var 16: UnityEngine.Matrix4x4
IL_0000: Local var 17: PropManager
IL_0000: Local var 18: UnityEngine.MaterialPropertyBlock
IL_0000: Local var 19: System.Int32
IL_0000: // start original
IL_0000: ldarg.1
IL_0001: ldfld System.Boolean PrefabInfo::m_prefabInitialized
IL_0006: brfalse => Label0
IL_000B: ldarg.1
IL_000C: ldfld System.Boolean PropInfo::m_hasEffects
IL_0011: brfalse => Label1
IL_0016: ldarg.s 8
IL_0018: brtrue => Label2
IL_001D: ldarg.1
IL_001E: ldfld System.Boolean PropInfo::m_alwaysActive
IL_0023: brfalse => Label3
IL_0028: Label2
IL_0028: ldloca.s 0 (UnityEngine.Matrix4x4)
IL_002A: initobj UnityEngine.Matrix4x4
IL_0030: ldloca.s 0 (UnityEngine.Matrix4x4)
IL_0032: ldarg.3
IL_0033: ldarg.s 5
IL_0035: ldc.r4 57.29578
IL_003A: mul
IL_003B: call static UnityEngine.Vector3 UnityEngine.Vector3::get_down()
IL_0040: call static UnityEngine.Quaternion
UnityEngine.Quaternion::AngleAxis(System.Single angle, UnityEngine.Vector3 axis)
IL_0045: ldarg.s 4
IL_0047: ldarg.s 4
IL_0049: ldarg.s 4
IL_004B: newobj System.Void UnityEngine.Vector3::.ctor(System.Single x,
System.Single y, System.Single z)
IL_0050: call System.Void UnityEngine.Matrix4x4::SetTRS(UnityEngine.Vector3
pos, UnityEngine.Quaternion q, UnityEngine.Vector3 s)
IL_0055: call static SimulationManager
ColossalFramework.Singleton`1<SimulationManager>::get_instance()
IL_005A: ldfld System.Single SimulationManager::m_simulationTimeDelta
IL_005F: stloc.1
IL_0060: ldc.i4.0
IL_0061: stloc.2
IL_0062: br => Label4
IL_0067: Label5
IL_0067: ldloca.s 0 (UnityEngine.Matrix4x4)
IL_0069: ldarg.1
IL_006A: ldfld Effect[] PropInfo::m_effects
IL_006F: ldloc.2
IL_0070: ldelema PropInfo+Effect
IL_0075: ldfld UnityEngine.Vector3 Effect::m_position
IL_007A: call UnityEngine.Vector3
UnityEngine.Matrix4x4::MultiplyPoint(UnityEngine.Vector3 v)
IL_007F: stloc.3
IL_0080: ldloca.s 0 (UnityEngine.Matrix4x4)
IL_0082: ldarg.1
IL_0083: ldfld Effect[] PropInfo::m_effects
IL_0088: ldloc.2
IL_0089: ldelema PropInfo+Effect
IL_008E: ldfld UnityEngine.Vector3 Effect::m_direction
IL_0093: call UnityEngine.Vector3
UnityEngine.Matrix4x4::MultiplyVector(UnityEngine.Vector3 v)
IL_0098: stloc.s 4 (UnityEngine.Vector3)
IL_009A: ldloca.s 5 (EffectInfo+SpawnArea)
IL_009C: ldloc.3
IL_009D: ldloc.s 4 (UnityEngine.Vector3)
IL_009F: ldc.r4 0
IL_00A4: call System.Void SpawnArea::.ctor(UnityEngine.Vector3 position,
UnityEngine.Vector3 direction, System.Single radius)
IL_00A9: ldarg.1
IL_00AA: ldfld Effect[] PropInfo::m_effects
IL_00AF: ldloc.2
IL_00B0: ldelema PropInfo+Effect
IL_00B5: ldfld EffectInfo Effect::m_effect
IL_00BA: ldarg.2
IL_00BB: ldloc.s 5 (EffectInfo+SpawnArea)
IL_00BD: call static UnityEngine.Vector3 UnityEngine.Vector3::get_zero()
IL_00C2: ldc.r4 0
IL_00C7: ldc.r4 1
IL_00CC: ldc.r4 -1
IL_00D1: ldloc.1
IL_00D2: ldarg.0
IL_00D3: callvirt virtual System.Void EffectInfo::RenderEffect(InstanceID id,
SpawnArea area, UnityEngine.Vector3 velocity, System.Single acceleration,
System.Single magnitude, System.Single timeOffset, System.Single timeDelta,
CameraInfo cameraInfo)
IL_00D8: ldloc.2
IL_00D9: ldc.i4.1
IL_00DA: add
IL_00DB: stloc.2
IL_00DC: Label4
IL_00DC: ldloc.2
IL_00DD: ldarg.1
IL_00DE: ldfld Effect[] PropInfo::m_effects
IL_00E3: ldlen
IL_00E4: conv.i4
IL_00E5: blt => Label5
IL_00EA: Label1
IL_00EA: Label3
IL_00EA: ldarg.1
IL_00EB: ldfld System.Boolean PropInfo::m_hasRenderer
IL_00F0: brfalse => Label6
IL_00F5: ldarg.0
IL_00F6: ldfld System.Int32 CameraInfo::m_layerMask
IL_00FB: ldc.i4.1
IL_00FC: ldarg.1
IL_00FD: ldfld System.Int32 PrefabInfo::m_prefabDataLayer
IL_0102: ldc.i4.s 31
IL_0104: and
IL_0105: shl
IL_0106: and
IL_0107: brfalse => Label7
IL_010C: call static InfoManager
ColossalFramework.Singleton`1<InfoManager>::get_instance()
IL_0111: callvirt InfoMode InfoManager::get_CurrentMode()
IL_0116: brtrue => Label8
IL_011B: ldarg 2
IL_011F: call static System.Boolean
ElectricRoads.Overrides.ElectricRoadsOverrides::CheckElectrityNetForLight(InstanceI
D id)
IL_0124: brfalse => Label24
IL_0129: ldc.r4 0
IL_012E: stloc.s 6 (System.Single)
IL_0130: ldarg.s 8
IL_0132: brtrue => Label9
IL_0137: ldarg.1
IL_0138: ldfld System.Boolean PropInfo::m_alwaysActive
IL_013D: brtrue => Label10
IL_0142: Label24
IL_0142: ldarga.s 7
IL_0144: ldc.r4 0
IL_0149: stfld System.Single UnityEngine.Vector4::z
IL_014E: br => Label11
IL_0153: Label9
IL_0153: Label10
IL_0153: ldarg.1
IL_0154: ldflda UnityEngine.Vector2 PropInfo::m_illuminationOffRange
IL_0159: ldfld System.Single UnityEngine.Vector2::x
IL_015E: ldc.r4 1000
IL_0163: blt => Label12
IL_0168: ldarg.1
IL_0169: ldfld BlinkType PropInfo::m_illuminationBlinkType
IL_016E: brfalse => Label13
IL_0173: Label12
IL_0173: call static RenderManager
ColossalFramework.Singleton`1<RenderManager>::get_instance()
IL_0178: callvirt LightSystem RenderManager::get_lightSystem()
IL_017D: stloc.s 7 (LightSystem)
IL_017F: ldloca.s 8 (ColossalFramework.Math.Randomizer)
IL_0181: ldarga.s 2
IL_0183: call System.UInt32 InstanceID::get_Index()
IL_0188: call System.Void
ColossalFramework.Math.Randomizer::.ctor(System.UInt32 _seed)
IL_018D: ldarg.1
IL_018E: ldflda UnityEngine.Vector2 PropInfo::m_illuminationOffRange
IL_0193: ldfld System.Single UnityEngine.Vector2::x
IL_0198: ldloca.s 8 (ColossalFramework.Math.Randomizer)
IL_019A: ldc.i4 100000
IL_019F: call System.Int32
ColossalFramework.Math.Randomizer::Int32(System.UInt32 range)
IL_01A4: conv.r4
IL_01A5: ldc.r4 1E-05
IL_01AA: mul
IL_01AB: ldarg.1
IL_01AC: ldflda UnityEngine.Vector2 PropInfo::m_illuminationOffRange
IL_01B1: ldfld System.Single UnityEngine.Vector2::y
IL_01B6: ldarg.1
IL_01B7: ldflda UnityEngine.Vector2 PropInfo::m_illuminationOffRange
IL_01BC: ldfld System.Single UnityEngine.Vector2::x
IL_01C1: sub
IL_01C2: mul
IL_01C3: add
IL_01C4: stloc.s 6 (System.Single)
IL_01C6: ldarga.s 7
IL_01C8: ldloc.s 6 (System.Single)
IL_01CA: ldc.r4 0.01
IL_01CF: add
IL_01D0: ldloc.s 6 (System.Single)
IL_01D2: ldc.r4 0.01
IL_01D7: sub
IL_01D8: ldloc.s 7 (LightSystem)
IL_01DA: callvirt System.Single LightSystem::get_DayLightIntensity()
IL_01DF: call static System.Single MathUtils::SmoothStep(System.Single edge0,
System.Single edge1, System.Single x)
IL_01E4: stfld System.Single UnityEngine.Vector4::z
IL_01E9: ldarg.1
IL_01EA: ldfld BlinkType PropInfo::m_illuminationBlinkType
IL_01EF: brfalse => Label14
IL_01F4: ldarg.1
IL_01F5: ldfld BlinkType PropInfo::m_illuminationBlinkType
IL_01FA: call static UnityEngine.Vector4
LightEffect::GetBlinkVector(BlinkType type)
IL_01FF: stloc.s 9 (UnityEngine.Vector4)
IL_0201: ldloc.s 6 (System.Single)
IL_0203: ldc.r4 3.71
IL_0208: mul
IL_0209: call static SimulationManager
ColossalFramework.Singleton`1<SimulationManager>::get_instance()
IL_020E: ldfld System.Single SimulationManager::m_simulationTimer
IL_0213: ldloca.s 9 (UnityEngine.Vector4)
IL_0215: ldfld System.Single UnityEngine.Vector4::w
IL_021A: div
IL_021B: add
IL_021C: stloc.s 10 (System.Single)
IL_021E: ldloc.s 10 (System.Single)
IL_0220: ldloc.s 10 (System.Single)
IL_0222: call static System.Single UnityEngine.Mathf::Floor(System.Single f)
IL_0227: sub
IL_0228: ldloca.s 9 (UnityEngine.Vector4)
IL_022A: ldfld System.Single UnityEngine.Vector4::w
IL_022F: mul
IL_0230: stloc.s 10 (System.Single)
IL_0232: ldloca.s 9 (UnityEngine.Vector4)
IL_0234: ldfld System.Single UnityEngine.Vector4::x
IL_0239: ldloca.s 9 (UnityEngine.Vector4)
IL_023B: ldfld System.Single UnityEngine.Vector4::y
IL_0240: ldloc.s 10 (System.Single)
IL_0242: call static System.Single MathUtils::SmoothStep(System.Single edge0,
System.Single edge1, System.Single x)
IL_0247: stloc.s 11 (System.Single)
IL_0249: ldloca.s 9 (UnityEngine.Vector4)
IL_024B: ldfld System.Single UnityEngine.Vector4::w
IL_0250: ldloca.s 9 (UnityEngine.Vector4)
IL_0252: ldfld System.Single UnityEngine.Vector4::z
IL_0257: ldloc.s 10 (System.Single)
IL_0259: call static System.Single MathUtils::SmoothStep(System.Single edge0,
System.Single edge1, System.Single x)
IL_025E: stloc.s 12 (System.Single)
IL_0260: ldarga.s 7
IL_0262: dup
IL_0263: ldfld System.Single UnityEngine.Vector4::z
IL_0268: ldc.r4 1
IL_026D: ldloc.s 11 (System.Single)
IL_026F: ldloc.s 12 (System.Single)
IL_0271: mul
IL_0272: sub
IL_0273: mul
IL_0274: stfld System.Single UnityEngine.Vector4::z
IL_0279: Label14
IL_0279: br => Label15
IL_027E: Label13
IL_027E: ldarga.s 7
IL_0280: ldc.r4 1
IL_0285: stfld System.Single UnityEngine.Vector4::z
IL_028A: Label8
IL_028A: Label11
IL_028A: Label15
IL_028A: ldarg.0
IL_028B: brfalse => Label16
IL_0290: ldarg.0
IL_0291: ldarg.3
IL_0292: ldarg.1
IL_0293: ldfld System.Single PropInfo::m_lodRenderDistance
IL_0298: callvirt System.Boolean
CameraInfo::CheckRenderDistance(UnityEngine.Vector3 point, System.Single
maxDistance)
IL_029D: brfalse => Label17
IL_02A2: Label16
IL_02A2: ldloca.s 13 (UnityEngine.Matrix4x4)
IL_02A4: initobj UnityEngine.Matrix4x4
IL_02AA: ldloca.s 13 (UnityEngine.Matrix4x4)
IL_02AC: ldarg.3
IL_02AD: ldarg.s 5
IL_02AF: ldc.r4 57.29578
IL_02B4: mul
IL_02B5: call static UnityEngine.Vector3 UnityEngine.Vector3::get_down()
IL_02BA: call static UnityEngine.Quaternion
UnityEngine.Quaternion::AngleAxis(System.Single angle, UnityEngine.Vector3 axis)
IL_02BF: ldarg.s 4
IL_02C1: ldarg.s 4
IL_02C3: ldarg.s 4
IL_02C5: newobj System.Void UnityEngine.Vector3::.ctor(System.Single x,
System.Single y, System.Single z)
IL_02CA: call System.Void UnityEngine.Matrix4x4::SetTRS(UnityEngine.Vector3
pos, UnityEngine.Quaternion q, UnityEngine.Vector3 s)
IL_02CF: call static PropManager
ColossalFramework.Singleton`1<PropManager>::get_instance()
IL_02D4: stloc.s 14 (PropManager)
IL_02D6: ldloc.s 14 (PropManager)
IL_02D8: ldfld UnityEngine.MaterialPropertyBlock PropManager::m_materialBlock
IL_02DD: stloc.s 15 (UnityEngine.MaterialPropertyBlock)
IL_02DF: ldloc.s 15 (UnityEngine.MaterialPropertyBlock)
IL_02E1: callvirt System.Void UnityEngine.MaterialPropertyBlock::Clear()
IL_02E6: ldloc.s 15 (UnityEngine.MaterialPropertyBlock)
IL_02E8: ldloc.s 14 (PropManager)
IL_02EA: ldfld System.Int32 PropManager::ID_Color
IL_02EF: ldarg.s 6
IL_02F1: callvirt System.Void
UnityEngine.MaterialPropertyBlock::SetColor(System.Int32 nameID, UnityEngine.Color
value)
IL_02F6: ldloc.s 15 (UnityEngine.MaterialPropertyBlock)
IL_02F8: ldloc.s 14 (PropManager)
IL_02FA: ldfld System.Int32 PropManager::ID_ObjectIndex
IL_02FF: ldarg.s 7
IL_0301: callvirt System.Void
UnityEngine.MaterialPropertyBlock::SetVector(System.Int32 nameID,
UnityEngine.Vector4 value)
IL_0306: ldarg.1
IL_0307: ldfld UnityEngine.Vector4[] PropInfo::m_rollLocation
IL_030C: brfalse => Label18
IL_0311: ldarg.1
IL_0312: ldfld UnityEngine.Material PropInfo::m_material
IL_0317: ldloc.s 14 (PropManager)
IL_0319: ldfld System.Int32 PropManager::ID_RollLocation
IL_031E: ldarg.1
IL_031F: ldfld UnityEngine.Vector4[] PropInfo::m_rollLocation
IL_0324: callvirt System.Void UnityEngine.Material::SetVectorArray(System.Int32
nameID, UnityEngine.Vector4[] values)
IL_0329: ldarg.1
IL_032A: ldfld UnityEngine.Material PropInfo::m_material
IL_032F: ldloc.s 14 (PropManager)
IL_0331: ldfld System.Int32 PropManager::ID_RollParams
IL_0336: ldarg.1
IL_0337: ldfld UnityEngine.Vector4[] PropInfo::m_rollParams
IL_033C: callvirt System.Void UnityEngine.Material::SetVectorArray(System.Int32
nameID, UnityEngine.Vector4[] values)
IL_0341: Label18
IL_0341: ldloc.s 14 (PropManager)
IL_0343: ldflda DrawCallData SimulationManagerBase`2<PropManager,
PropProperties>::m_drawCallData
IL_0348: dup
IL_0349: ldfld System.Int32 DrawCallData::m_defaultCalls
IL_034E: ldc.i4.1
IL_034F: add
IL_0350: stfld System.Int32 DrawCallData::m_defaultCalls
IL_0355: ldarg.1
IL_0356: ldfld UnityEngine.Mesh PropInfo::m_mesh
IL_035B: ldloc.s 13 (UnityEngine.Matrix4x4)
IL_035D: ldarg.1
IL_035E: ldfld UnityEngine.Material PropInfo::m_material
IL_0363: ldarg.1
IL_0364: ldfld System.Int32 PrefabInfo::m_prefabDataLayer
IL_0369: ldnull
IL_036A: ldc.i4.0
IL_036B: ldloc.s 15 (UnityEngine.MaterialPropertyBlock)
IL_036D: call static System.Void
UnityEngine.Graphics::DrawMesh(UnityEngine.Mesh mesh, UnityEngine.Matrix4x4 matrix,
UnityEngine.Material material, System.Int32 layer, UnityEngine.Camera camera,
System.Int32 submeshIndex, UnityEngine.MaterialPropertyBlock properties)
IL_0372: br => Label19
IL_0377: Label17
IL_0377: ldarg.1
IL_0378: ldfld UnityEngine.Material PropInfo::m_lodMaterialCombined
IL_037D: ldnull
IL_037E: call static System.Boolean
UnityEngine.Object::op_Equality(UnityEngine.Object x, UnityEngine.Object y)
IL_0383: brfalse => Label20
IL_0388: ldloca.s 16 (UnityEngine.Matrix4x4)
IL_038A: initobj UnityEngine.Matrix4x4
IL_0390: ldloca.s 16 (UnityEngine.Matrix4x4)
IL_0392: ldarg.3
IL_0393: ldarg.s 5
IL_0395: ldc.r4 57.29578
IL_039A: mul
IL_039B: call static UnityEngine.Vector3 UnityEngine.Vector3::get_down()
IL_03A0: call static UnityEngine.Quaternion
UnityEngine.Quaternion::AngleAxis(System.Single angle, UnityEngine.Vector3 axis)
IL_03A5: ldarg.s 4
IL_03A7: ldarg.s 4
IL_03A9: ldarg.s 4
IL_03AB: newobj System.Void UnityEngine.Vector3::.ctor(System.Single x,
System.Single y, System.Single z)
IL_03B0: call System.Void UnityEngine.Matrix4x4::SetTRS(UnityEngine.Vector3
pos, UnityEngine.Quaternion q, UnityEngine.Vector3 s)
IL_03B5: call static PropManager
ColossalFramework.Singleton`1<PropManager>::get_instance()
IL_03BA: stloc.s 17 (PropManager)
IL_03BC: ldloc.s 17 (PropManager)
IL_03BE: ldfld UnityEngine.MaterialPropertyBlock PropManager::m_materialBlock
IL_03C3: stloc.s 18 (UnityEngine.MaterialPropertyBlock)
IL_03C5: ldloc.s 18 (UnityEngine.MaterialPropertyBlock)
IL_03C7: callvirt System.Void UnityEngine.MaterialPropertyBlock::Clear()
IL_03CC: ldloc.s 18 (UnityEngine.MaterialPropertyBlock)
IL_03CE: ldloc.s 17 (PropManager)
IL_03D0: ldfld System.Int32 PropManager::ID_Color
IL_03D5: ldarg.s 6
IL_03D7: callvirt System.Void
UnityEngine.MaterialPropertyBlock::SetColor(System.Int32 nameID, UnityEngine.Color
value)
IL_03DC: ldloc.s 18 (UnityEngine.MaterialPropertyBlock)
IL_03DE: ldloc.s 17 (PropManager)
IL_03E0: ldfld System.Int32 PropManager::ID_ObjectIndex
IL_03E5: ldarg.s 7
IL_03E7: callvirt System.Void
UnityEngine.MaterialPropertyBlock::SetVector(System.Int32 nameID,
UnityEngine.Vector4 value)
IL_03EC: ldarg.1
IL_03ED: ldfld UnityEngine.Vector4[] PropInfo::m_rollLocation
IL_03F2: brfalse => Label21
IL_03F7: ldarg.1
IL_03F8: ldfld UnityEngine.Material PropInfo::m_material
IL_03FD: ldloc.s 17 (PropManager)
IL_03FF: ldfld System.Int32 PropManager::ID_RollLocation
IL_0404: ldarg.1
IL_0405: ldfld UnityEngine.Vector4[] PropInfo::m_rollLocation
IL_040A: callvirt System.Void UnityEngine.Material::SetVectorArray(System.Int32
nameID, UnityEngine.Vector4[] values)
IL_040F: ldarg.1
IL_0410: ldfld UnityEngine.Material PropInfo::m_material
IL_0415: ldloc.s 17 (PropManager)
IL_0417: ldfld System.Int32 PropManager::ID_RollParams
IL_041C: ldarg.1
IL_041D: ldfld UnityEngine.Vector4[] PropInfo::m_rollParams
IL_0422: callvirt System.Void UnityEngine.Material::SetVectorArray(System.Int32
nameID, UnityEngine.Vector4[] values)
IL_0427: Label21
IL_0427: ldloc.s 17 (PropManager)
IL_0429: ldflda DrawCallData SimulationManagerBase`2<PropManager,
PropProperties>::m_drawCallData
IL_042E: dup
IL_042F: ldfld System.Int32 DrawCallData::m_defaultCalls
IL_0434: ldc.i4.1
IL_0435: add
IL_0436: stfld System.Int32 DrawCallData::m_defaultCalls
IL_043B: ldarg.1
IL_043C: ldfld UnityEngine.Mesh PropInfo::m_lodMesh
IL_0441: ldloc.s 16 (UnityEngine.Matrix4x4)
IL_0443: ldarg.1
IL_0444: ldfld UnityEngine.Material PropInfo::m_lodMaterial
IL_0449: ldarg.1
IL_044A: ldfld System.Int32 PrefabInfo::m_prefabDataLayer
IL_044F: ldnull
IL_0450: ldc.i4.0
IL_0451: ldloc.s 18 (UnityEngine.MaterialPropertyBlock)
IL_0453: call static System.Void
UnityEngine.Graphics::DrawMesh(UnityEngine.Mesh mesh, UnityEngine.Matrix4x4 matrix,
UnityEngine.Material material, System.Int32 layer, UnityEngine.Camera camera,
System.Int32 submeshIndex, UnityEngine.MaterialPropertyBlock properties)
IL_0458: br => Label22
IL_045D: Label20
IL_045D: ldarga.s 7
IL_045F: ldarg.s 4
IL_0461: stfld System.Single UnityEngine.Vector4::w
IL_0466: ldarg.1
IL_0467: ldfld UnityEngine.Vector4[] PropInfo::m_lodLocations
IL_046C: ldarg.1
IL_046D: ldfld System.Int32 PropInfo::m_lodCount
IL_0472: ldelema UnityEngine.Vector4
IL_0477: ldarga.s 3
IL_0479: ldfld System.Single UnityEngine.Vector3::x
IL_047E: ldarga.s 3
IL_0480: ldfld System.Single UnityEngine.Vector3::y
IL_0485: ldarga.s 3
IL_0487: ldfld System.Single UnityEngine.Vector3::z
IL_048C: ldarg.s 5
IL_048E: newobj System.Void UnityEngine.Vector4::.ctor(System.Single x,
System.Single y, System.Single z, System.Single w)
IL_0493: stobj UnityEngine.Vector4
IL_0498: ldarg.1
IL_0499: ldfld UnityEngine.Vector4[] PropInfo::m_lodObjectIndices
IL_049E: ldarg.1
IL_049F: ldfld System.Int32 PropInfo::m_lodCount
IL_04A4: ldelema UnityEngine.Vector4
IL_04A9: ldarg.s 7
IL_04AB: stobj UnityEngine.Vector4
IL_04B0: ldarg.1
IL_04B1: ldfld UnityEngine.Vector4[] PropInfo::m_lodColors
IL_04B6: ldarg.1
IL_04B7: ldfld System.Int32 PropInfo::m_lodCount
IL_04BC: ldelema UnityEngine.Vector4
IL_04C1: ldarga.s 6
IL_04C3: call UnityEngine.Color UnityEngine.Color::get_linear()
IL_04C8: call static UnityEngine.Vector4
UnityEngine.Color::op_Implicit(UnityEngine.Color c)
IL_04CD: stobj UnityEngine.Vector4
IL_04D2: ldarg.1
IL_04D3: ldarg.1
IL_04D4: ldfld UnityEngine.Vector3 PropInfo::m_lodMin
IL_04D9: ldarg.3
IL_04DA: call static UnityEngine.Vector3
UnityEngine.Vector3::Min(UnityEngine.Vector3 lhs, UnityEngine.Vector3 rhs)
IL_04DF: stfld UnityEngine.Vector3 PropInfo::m_lodMin
IL_04E4: ldarg.1
IL_04E5: ldarg.1
IL_04E6: ldfld UnityEngine.Vector3 PropInfo::m_lodMax
IL_04EB: ldarg.3
IL_04EC: call static UnityEngine.Vector3
UnityEngine.Vector3::Max(UnityEngine.Vector3 lhs, UnityEngine.Vector3 rhs)
IL_04F1: stfld UnityEngine.Vector3 PropInfo::m_lodMax
IL_04F6: ldarg.1
IL_04F7: dup
IL_04F8: ldfld System.Int32 PropInfo::m_lodCount
IL_04FD: ldc.i4.1
IL_04FE: add
IL_04FF: dup
IL_0500: stloc.s 19 (System.Int32)
IL_0502: stfld System.Int32 PropInfo::m_lodCount
IL_0507: ldloc.s 19 (System.Int32)
IL_0509: ldarg.1
IL_050A: ldfld UnityEngine.Vector4[] PropInfo::m_lodLocations
IL_050F: ldlen
IL_0510: conv.i4
IL_0511: bne.un => Label23
IL_0516: ldarg.0
IL_0517: ldarg.1
IL_0518: call static System.Void PropInstance::RenderLod(CameraInfo
cameraInfo, PropInfo info)
IL_051D: // end original
IL_051D: Label0
IL_051D: Label6
IL_051D: Label7
IL_051D: Label19
IL_051D: Label22
IL_051D: Label23
IL_051D: ret
DONE

### Patch: virtual System.Void LightEffect::PopulateGroupData(System.Int32 layer,


InstanceID id, UnityEngine.Vector3 pos, UnityEngine.Vector3 dir, 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
LightEffect::LightEffect.PopulateGroupData_Patch1(LightEffect this, System.Int32
layer, InstanceID id, UnityEngine.Vector3 pos, UnityEngine.Vector3 dir,
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.Boolean
IL_0000: Local var 1: UnityEngine.Vector3
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.Quaternion
IL_0000: Local var 7: UnityEngine.Vector4
IL_0000: Local var 8: UnityEngine.Vector2
IL_0000: Local var 9: ColossalFramework.Math.Randomizer
IL_0000: Local var 10: UnityEngine.Vector2
IL_0000: Local var 11: UnityEngine.Vector2
IL_0000: Local var 12: UnityEngine.Vector2
IL_0000: Local var 13: System.UInt16
IL_0000: Local var 14: UnityEngine.Vector3
IL_0000: Local var 15: UnityEngine.Color
IL_0000: Local var 16: UnityEngine.Color
IL_0000: Local var 17: System.Single
IL_0000: Local var 18: System.Single
IL_0000: Local var 19: System.Int32
IL_0000: Local var 20: System.Boolean
IL_0000: ldc.i4 0
IL_0005: stloc 20 (System.Boolean)
IL_0009: ldc.i4.1
IL_000A: stloc 20 (System.Boolean)
IL_000E: ldloc 20 (System.Boolean)
IL_0012: brfalse => Label1
IL_0017: ldarg 2
IL_001B: call static System.Boolean
ElectricRoads.Overrides.ElectricRoadsOverrides::CheckElectrityNetForLight(InstanceI
D id)
IL_0020: stloc 20 (System.Boolean)
IL_0024: Label1
IL_0024: nop
IL_0025: ldloc 20 (System.Boolean)
IL_0029: brfalse => Label0
IL_002E: // start original
IL_002E: ldarg.1
IL_002F: ldarg.0
IL_0030: ldfld System.Int32 LightEffect::m_groupLayer
IL_0035: beq => Label2
IL_003A: ldarg.1
IL_003B: ldarg.0
IL_003C: ldfld System.Int32 LightEffect::m_groupLayerFloating
IL_0041: bne.un => Label3
IL_0046: Label2
IL_0046: ldarg.1
IL_0047: ldarg.0
IL_0048: ldfld System.Int32 LightEffect::m_groupLayerFloating
IL_004D: ceq
IL_004F: stloc.0
IL_0050: ldloca.s 1 (UnityEngine.Vector3)
IL_0052: ldarg.0
IL_0053: ldfld System.Single LightEffect::m_lightRange
IL_0058: ldarg.0
IL_0059: ldfld System.Single LightEffect::m_lightRange
IL_005E: ldarg.0
IL_005F: ldfld System.Single LightEffect::m_lightRange
IL_0064: call System.Void UnityEngine.Vector3::.ctor(System.Single x,
System.Single y, System.Single z)
IL_0069: ldarg.3
IL_006A: ldloc.1
IL_006B: call static UnityEngine.Vector3
UnityEngine.Vector3::op_Subtraction(UnityEngine.Vector3 a, UnityEngine.Vector3 b)
IL_0070: stloc.2
IL_0071: ldarg.3
IL_0072: ldloc.1
IL_0073: call static UnityEngine.Vector3
UnityEngine.Vector3::op_Addition(UnityEngine.Vector3 a, UnityEngine.Vector3 b)
IL_0078: stloc.3
IL_0079: ldarg.s 9
IL_007B: ldarg.s 9
IL_007D: ldobj UnityEngine.Vector3
IL_0082: ldloc.2
IL_0083: call static UnityEngine.Vector3
UnityEngine.Vector3::Min(UnityEngine.Vector3 lhs, UnityEngine.Vector3 rhs)
IL_0088: stobj UnityEngine.Vector3
IL_008D: ldarg.s 10
IL_008F: ldarg.s 10
IL_0091: ldobj UnityEngine.Vector3
IL_0096: ldloc.3
IL_0097: call static UnityEngine.Vector3
UnityEngine.Vector3::Max(UnityEngine.Vector3 lhs, UnityEngine.Vector3 rhs)
IL_009C: stobj UnityEngine.Vector3
IL_00A1: ldarg.3
IL_00A2: ldarg.s 7
IL_00A4: call static UnityEngine.Vector3
UnityEngine.Vector3::op_Subtraction(UnityEngine.Vector3 a, UnityEngine.Vector3 b)
IL_00A9: stloc.s 4 (UnityEngine.Vector3)
IL_00AB: ldarg.s 11
IL_00AD: ldarg.s 11
IL_00AF: ldind.r4
IL_00B0: ldc.r4 30000
IL_00B5: call static System.Single UnityEngine.Mathf::Max(System.Single a,
System.Single b)
IL_00BA: stind.r4
IL_00BB: ldarg.0
IL_00BC: ldfld UnityEngine.LightType LightEffect::m_lightType
IL_00C1: brtrue => Label4
IL_00C6: ldarg.s 4
IL_00C8: call static UnityEngine.Quaternion
UnityEngine.Quaternion::LookRotation(UnityEngine.Vector3 forward)
IL_00CD: stloc.s 6 (UnityEngine.Quaternion)
IL_00CF: ldloc.s 6 (UnityEngine.Quaternion)
IL_00D1: ldarg.0
IL_00D2: ldfld UnityEngine.Quaternion LightEffect::m_lightRotation
IL_00D7: call static UnityEngine.Vector3 UnityEngine.Vector3::get_forward()
IL_00DC: call static UnityEngine.Vector3
UnityEngine.Quaternion::op_Multiply(UnityEngine.Quaternion rotation,
UnityEngine.Vector3 point)
IL_00E1: call static UnityEngine.Vector3
UnityEngine.Quaternion::op_Multiply(UnityEngine.Quaternion rotation,
UnityEngine.Vector3 point)
IL_00E6: stloc.s 5 (UnityEngine.Vector3)
IL_00E8: br => Label5
IL_00ED: Label4
IL_00ED: call static UnityEngine.Vector3 UnityEngine.Vector3::get_forward()
IL_00F2: stloc.s 5 (UnityEngine.Vector3)
IL_00F4: Label5
IL_00F4: ldloca.s 7 (UnityEngine.Vector4)
IL_00F6: ldloca.s 5 (UnityEngine.Vector3)
IL_00F8: ldfld System.Single UnityEngine.Vector3::x
IL_00FD: ldloca.s 5 (UnityEngine.Vector3)
IL_00FF: ldfld System.Single UnityEngine.Vector3::y
IL_0104: ldloca.s 5 (UnityEngine.Vector3)
IL_0106: ldfld System.Single UnityEngine.Vector3::z
IL_010B: ldc.r4 100000
IL_0110: call System.Void UnityEngine.Vector4::.ctor(System.Single x,
System.Single y, System.Single z, System.Single w)
IL_0115: ldarg.0
IL_0116: ldfld UnityEngine.LightType LightEffect::m_lightType
IL_011B: brtrue => Label6
IL_0120: ldloca.s 7 (UnityEngine.Vector4)
IL_0122: ldc.r4 0.01745329
IL_0127: ldarg.0
IL_0128: ldfld System.Single LightEffect::m_lightSpotAngle
IL_012D: mul
IL_012E: ldc.r4 0.5
IL_0133: mul
IL_0134: call static System.Single UnityEngine.Mathf::Cos(System.Single f)
IL_0139: neg
IL_013A: stfld System.Single UnityEngine.Vector4::w
IL_013F: Label6
IL_013F: ldloca.s 8 (UnityEngine.Vector2)
IL_0141: ldc.r4 1
IL_0146: ldarg.0
IL_0147: ldfld System.Single LightEffect::m_lightRange
IL_014C: ldarg.0
IL_014D: ldfld System.Single LightEffect::m_lightRange
IL_0152: mul
IL_0153: div
IL_0154: ldarg.0
IL_0155: ldfld System.Single LightEffect::m_lightIntensity
IL_015A: call System.Void UnityEngine.Vector2::.ctor(System.Single x,
System.Single y)
IL_015F: ldloca.s 9 (ColossalFramework.Math.Randomizer)
IL_0161: ldarga.s 2
IL_0163: call System.UInt32 InstanceID::get_Index()
IL_0168: call System.Void
ColossalFramework.Math.Randomizer::.ctor(System.UInt32 _seed)
IL_016D: ldloca.s 10 (UnityEngine.Vector2)
IL_016F: ldarg.0
IL_0170: ldflda UnityEngine.Vector2 LightEffect::m_offRange
IL_0175: ldfld System.Single UnityEngine.Vector2::x
IL_017A: ldloca.s 9 (ColossalFramework.Math.Randomizer)
IL_017C: ldc.i4 100000
IL_0181: call System.Int32
ColossalFramework.Math.Randomizer::Int32(System.UInt32 range)
IL_0186: conv.r4
IL_0187: ldc.r4 1E-05
IL_018C: mul
IL_018D: ldarg.0
IL_018E: ldflda UnityEngine.Vector2 LightEffect::m_offRange
IL_0193: ldfld System.Single UnityEngine.Vector2::y
IL_0198: ldarg.0
IL_0199: ldflda UnityEngine.Vector2 LightEffect::m_offRange
IL_019E: ldfld System.Single UnityEngine.Vector2::x
IL_01A3: sub
IL_01A4: mul
IL_01A5: add
IL_01A6: stfld System.Single UnityEngine.Vector2::x
IL_01AB: ldloca.s 10 (UnityEngine.Vector2)
IL_01AD: ldarg.0
IL_01AE: ldfld BlinkType LightEffect::m_blinkType
IL_01B3: conv.r4
IL_01B4: stfld System.Single UnityEngine.Vector2::y
IL_01B9: ldarg.2
IL_01BA: call static System.UInt16 EffectInfo::GetBuilding(InstanceID id)
IL_01BF: stloc.s 13 (System.UInt16)
IL_01C1: ldloc.s 13 (System.UInt16)
IL_01C3: brfalse => Label7
IL_01C8: ldloc.s 13 (System.UInt16)
IL_01CA: call static UnityEngine.Vector4
RenderManager::GetColorLocation(System.UInt32 instanceHolder)
IL_01CF: call static UnityEngine.Vector2
UnityEngine.Vector4::op_Implicit(UnityEngine.Vector4 v)
IL_01D4: stloc.s 11 (UnityEngine.Vector2)
IL_01D6: ldloc.0
IL_01D7: brfalse => Label8
IL_01DC: call static BuildingManager
ColossalFramework.Singleton`1<BuildingManager>::get_instance()
IL_01E1: ldfld Array16`1<Building> BuildingManager::m_buildings
IL_01E6: ldfld Building[] Array16`1<Building>::m_buffer
IL_01EB: ldloc.s 13 (System.UInt16)
IL_01ED: ldelema Building
IL_01F2: call UnityEngine.Vector3 Building::CalculateMeshPosition()
IL_01F7: stloc.s 14 (UnityEngine.Vector3)
IL_01F9: ldloc.s 14 (UnityEngine.Vector3)
IL_01FB: call static UnityEngine.Vector2
ColossalFramework.Math.VectorUtils::XZ(UnityEngine.Vector3 v)
IL_0200: stloc.s 12 (UnityEngine.Vector2)
IL_0202: ldarga.s 3
IL_0204: dup
IL_0205: ldfld System.Single UnityEngine.Vector3::y
IL_020A: ldloca.s 14 (UnityEngine.Vector3)
IL_020C: ldfld System.Single UnityEngine.Vector3::y
IL_0211: sub
IL_0212: stfld System.Single UnityEngine.Vector3::y
IL_0217: ldloca.s 4 (UnityEngine.Vector3)
IL_0219: dup
IL_021A: ldfld System.Single UnityEngine.Vector3::y
IL_021F: ldloca.s 14 (UnityEngine.Vector3)
IL_0221: ldfld System.Single UnityEngine.Vector3::y
IL_0226: sub
IL_0227: stfld System.Single UnityEngine.Vector3::y
IL_022C: br => Label9
IL_0231: Label8
IL_0231: call static UnityEngine.Vector2 UnityEngine.Vector2::get_zero()
IL_0236: stloc.s 12 (UnityEngine.Vector2)
IL_0238: Label9
IL_0238: br => Label10
IL_023D: Label7
IL_023D: ldsfld UnityEngine.Vector4 RenderManager::DefaultColorLocation
IL_0242: call static UnityEngine.Vector2
UnityEngine.Vector4::op_Implicit(UnityEngine.Vector4 v)
IL_0247: stloc.s 11 (UnityEngine.Vector2)
IL_0249: call static UnityEngine.Vector2 UnityEngine.Vector2::get_zero()
IL_024E: stloc.s 12 (UnityEngine.Vector2)
IL_0250: Label10
IL_0250: ldarg.0
IL_0251: ldfld UnityEngine.Color LightEffect::m_lightColor
IL_0256: stloc.s 15 (UnityEngine.Color)
IL_0258: ldarg.0
IL_0259: ldfld UnityEngine.Color[] LightEffect::m_variationColors
IL_025E: brfalse => Label11
IL_0263: ldarg.0
IL_0264: ldfld UnityEngine.Color[] LightEffect::m_variationColors
IL_0269: ldlen
IL_026A: conv.i4
IL_026B: brfalse => Label12
IL_0270: ldarg.0
IL_0271: ldfld UnityEngine.Color[] LightEffect::m_variationColors
IL_0276: ldloca.s 9 (ColossalFramework.Math.Randomizer)
IL_0278: ldarg.0
IL_0279: ldfld UnityEngine.Color[] LightEffect::m_variationColors
IL_027E: ldlen
IL_027F: conv.i4
IL_0280: call System.Int32
ColossalFramework.Math.Randomizer::Int32(System.UInt32 range)
IL_0285: ldelema UnityEngine.Color
IL_028A: ldobj UnityEngine.Color
IL_028F: stloc.s 16 (UnityEngine.Color)
IL_0291: ldloc.s 15 (UnityEngine.Color)
IL_0293: ldloc.s 16 (UnityEngine.Color)
IL_0295: ldloca.s 9 (ColossalFramework.Math.Randomizer)
IL_0297: ldc.i4 1000
IL_029C: call System.Int32
ColossalFramework.Math.Randomizer::Int32(System.UInt32 range)
IL_02A1: conv.r4
IL_02A2: ldc.r4 0.001
IL_02A7: mul
IL_02A8: call static UnityEngine.Color
UnityEngine.Color::Lerp(UnityEngine.Color a, UnityEngine.Color b, System.Single t)
IL_02AD: stloc.s 15 (UnityEngine.Color)
IL_02AF: Label11
IL_02AF: Label12
IL_02AF: ldloca.s 15 (UnityEngine.Color)
IL_02B1: call UnityEngine.Color UnityEngine.Color::get_linear()
IL_02B6: stloc.s 15 (UnityEngine.Color)
IL_02B8: ldloca.s 15 (UnityEngine.Color)
IL_02BA: ldarg.0
IL_02BB: ldfld UnityEngine.LightType LightEffect::m_lightType
IL_02C0: brtrue => Label13
IL_02C5: ldarg.0
IL_02C6: ldfld System.Single LightEffect::m_spotLeaking
IL_02CB: br => Label14
IL_02D0: Label13
IL_02D0: ldc.r4 0
IL_02D5: Label14
IL_02D5: stfld System.Single UnityEngine.Color::a
IL_02DA: ldarg.0
IL_02DB: ldfld System.Single LightEffect::m_lightRange
IL_02E0: ldc.r4 0.5235988
IL_02E5: call static System.Single UnityEngine.Mathf::Cos(System.Single f)
IL_02EA: div
IL_02EB: stloc.s 17 (System.Single)
IL_02ED: ldloc.s 17 (System.Single)
IL_02EF: ldc.r4 0.5
IL_02F4: mul
IL_02F5: stloc.s 18 (System.Single)
IL_02F7: ldarg.s 8
IL_02F9: ldfld UnityEngine.Vector3[] MeshData::m_vertices
IL_02FE: ldarg.s 5
IL_0300: ldind.i4
IL_0301: ldelema UnityEngine.Vector3
IL_0306: ldloca.s 4 (UnityEngine.Vector3)
IL_0308: ldfld System.Single UnityEngine.Vector3::x
IL_030D: ldloc.s 18 (System.Single)
IL_030F: sub
IL_0310: ldloca.s 4 (UnityEngine.Vector3)
IL_0312: ldfld System.Single UnityEngine.Vector3::y
IL_0317: ldarg.0
IL_0318: ldfld System.Single LightEffect::m_lightRange
IL_031D: add
IL_031E: ldloca.s 4 (UnityEngine.Vector3)
IL_0320: ldfld System.Single UnityEngine.Vector3::z
IL_0325: ldarg.0
IL_0326: ldfld System.Single LightEffect::m_lightRange
IL_032B: add
IL_032C: newobj System.Void UnityEngine.Vector3::.ctor(System.Single x,
System.Single y, System.Single z)
IL_0331: stobj UnityEngine.Vector3
IL_0336: ldarg.s 8
IL_0338: ldfld UnityEngine.Vector3[] MeshData::m_normals
IL_033D: ldarg.s 5
IL_033F: ldind.i4
IL_0340: ldelema UnityEngine.Vector3
IL_0345: ldarg.3
IL_0346: stobj UnityEngine.Vector3
IL_034B: ldarg.s 8
IL_034D: ldfld UnityEngine.Vector4[] MeshData::m_tangents
IL_0352: ldarg.s 5
IL_0354: ldind.i4
IL_0355: ldelema UnityEngine.Vector4
IL_035A: ldloc.s 7 (UnityEngine.Vector4)
IL_035C: stobj UnityEngine.Vector4
IL_0361: ldarg.s 8
IL_0363: ldfld UnityEngine.Vector2[] MeshData::m_uvs
IL_0368: ldarg.s 5
IL_036A: ldind.i4
IL_036B: ldelema UnityEngine.Vector2
IL_0370: ldloc.s 8 (UnityEngine.Vector2)
IL_0372: stobj UnityEngine.Vector2
IL_0377: ldarg.s 8
IL_0379: ldfld UnityEngine.Vector2[] MeshData::m_uvs2
IL_037E: ldarg.s 5
IL_0380: ldind.i4
IL_0381: ldelema UnityEngine.Vector2
IL_0386: ldloc.s 10 (UnityEngine.Vector2)
IL_0388: stobj UnityEngine.Vector2
IL_038D: ldarg.s 8
IL_038F: ldfld UnityEngine.Vector2[] MeshData::m_uvs3
IL_0394: ldarg.s 5
IL_0396: ldind.i4
IL_0397: ldelema UnityEngine.Vector2
IL_039C: ldloc.s 11 (UnityEngine.Vector2)
IL_039E: stobj UnityEngine.Vector2
IL_03A3: ldloc.0
IL_03A4: brfalse => Label15
IL_03A9: ldarg.s 8
IL_03AB: ldfld UnityEngine.Vector2[] MeshData::m_uvs4
IL_03B0: ldarg.s 5
IL_03B2: ldind.i4
IL_03B3: ldelema UnityEngine.Vector2
IL_03B8: ldloc.s 12 (UnityEngine.Vector2)
IL_03BA: stobj UnityEngine.Vector2
IL_03BF: Label15
IL_03BF: ldarg.s 8
IL_03C1: ldfld UnityEngine.Color32[] MeshData::m_colors
IL_03C6: ldarg.s 5
IL_03C8: ldind.i4
IL_03C9: ldelema UnityEngine.Color32
IL_03CE: ldloc.s 15 (UnityEngine.Color)
IL_03D0: call static UnityEngine.Color32
UnityEngine.Color32::op_Implicit(UnityEngine.Color c)
IL_03D5: stobj UnityEngine.Color32
IL_03DA: ldarg.s 5
IL_03DC: ldarg.s 5
IL_03DE: ldind.i4
IL_03DF: ldc.i4.1
IL_03E0: add
IL_03E1: stind.i4
IL_03E2: ldarg.s 8
IL_03E4: ldfld UnityEngine.Vector3[] MeshData::m_vertices
IL_03E9: ldarg.s 5
IL_03EB: ldind.i4
IL_03EC: ldelema UnityEngine.Vector3
IL_03F1: ldloca.s 4 (UnityEngine.Vector3)
IL_03F3: ldfld System.Single UnityEngine.Vector3::x
IL_03F8: ldloc.s 18 (System.Single)
IL_03FA: add
IL_03FB: ldloca.s 4 (UnityEngine.Vector3)
IL_03FD: ldfld System.Single UnityEngine.Vector3::y
IL_0402: ldarg.0
IL_0403: ldfld System.Single LightEffect::m_lightRange
IL_0408: add
IL_0409: ldloca.s 4 (UnityEngine.Vector3)
IL_040B: ldfld System.Single UnityEngine.Vector3::z
IL_0410: ldarg.0
IL_0411: ldfld System.Single LightEffect::m_lightRange
IL_0416: add
IL_0417: newobj System.Void UnityEngine.Vector3::.ctor(System.Single x,
System.Single y, System.Single z)
IL_041C: stobj UnityEngine.Vector3
IL_0421: ldarg.s 8
IL_0423: ldfld UnityEngine.Vector3[] MeshData::m_normals
IL_0428: ldarg.s 5
IL_042A: ldind.i4
IL_042B: ldelema UnityEngine.Vector3
IL_0430: ldarg.3
IL_0431: stobj UnityEngine.Vector3
IL_0436: ldarg.s 8
IL_0438: ldfld UnityEngine.Vector4[] MeshData::m_tangents
IL_043D: ldarg.s 5
IL_043F: ldind.i4
IL_0440: ldelema UnityEngine.Vector4
IL_0445: ldloc.s 7 (UnityEngine.Vector4)
IL_0447: stobj UnityEngine.Vector4
IL_044C: ldarg.s 8
IL_044E: ldfld UnityEngine.Vector2[] MeshData::m_uvs
IL_0453: ldarg.s 5
IL_0455: ldind.i4
IL_0456: ldelema UnityEngine.Vector2
IL_045B: ldloc.s 8 (UnityEngine.Vector2)
IL_045D: stobj UnityEngine.Vector2
IL_0462: ldarg.s 8
IL_0464: ldfld UnityEngine.Vector2[] MeshData::m_uvs2
IL_0469: ldarg.s 5
IL_046B: ldind.i4
IL_046C: ldelema UnityEngine.Vector2
IL_0471: ldloc.s 10 (UnityEngine.Vector2)
IL_0473: stobj UnityEngine.Vector2
IL_0478: ldarg.s 8
IL_047A: ldfld UnityEngine.Vector2[] MeshData::m_uvs3
IL_047F: ldarg.s 5
IL_0481: ldind.i4
IL_0482: ldelema UnityEngine.Vector2
IL_0487: ldloc.s 11 (UnityEngine.Vector2)
IL_0489: stobj UnityEngine.Vector2
IL_048E: ldloc.0
IL_048F: brfalse => Label16
IL_0494: ldarg.s 8
IL_0496: ldfld UnityEngine.Vector2[] MeshData::m_uvs4
IL_049B: ldarg.s 5
IL_049D: ldind.i4
IL_049E: ldelema UnityEngine.Vector2
IL_04A3: ldloc.s 12 (UnityEngine.Vector2)
IL_04A5: stobj UnityEngine.Vector2
IL_04AA: Label16
IL_04AA: ldarg.s 8
IL_04AC: ldfld UnityEngine.Color32[] MeshData::m_colors
IL_04B1: ldarg.s 5
IL_04B3: ldind.i4
IL_04B4: ldelema UnityEngine.Color32
IL_04B9: ldloc.s 15 (UnityEngine.Color)
IL_04BB: call static UnityEngine.Color32
UnityEngine.Color32::op_Implicit(UnityEngine.Color c)
IL_04C0: stobj UnityEngine.Color32
IL_04C5: ldarg.s 5
IL_04C7: ldarg.s 5
IL_04C9: ldind.i4
IL_04CA: ldc.i4.1
IL_04CB: add
IL_04CC: stind.i4
IL_04CD: ldarg.s 8
IL_04CF: ldfld UnityEngine.Vector3[] MeshData::m_vertices
IL_04D4: ldarg.s 5
IL_04D6: ldind.i4
IL_04D7: ldelema UnityEngine.Vector3
IL_04DC: ldloca.s 4 (UnityEngine.Vector3)
IL_04DE: ldfld System.Single UnityEngine.Vector3::x
IL_04E3: ldloc.s 17 (System.Single)
IL_04E5: add
IL_04E6: ldloca.s 4 (UnityEngine.Vector3)
IL_04E8: ldfld System.Single UnityEngine.Vector3::y
IL_04ED: ldloca.s 4 (UnityEngine.Vector3)
IL_04EF: ldfld System.Single UnityEngine.Vector3::z
IL_04F4: ldarg.0
IL_04F5: ldfld System.Single LightEffect::m_lightRange
IL_04FA: add
IL_04FB: newobj System.Void UnityEngine.Vector3::.ctor(System.Single x,
System.Single y, System.Single z)
IL_0500: stobj UnityEngine.Vector3
IL_0505: ldarg.s 8
IL_0507: ldfld UnityEngine.Vector3[] MeshData::m_normals
IL_050C: ldarg.s 5
IL_050E: ldind.i4
IL_050F: ldelema UnityEngine.Vector3
IL_0514: ldarg.3
IL_0515: stobj UnityEngine.Vector3
IL_051A: ldarg.s 8
IL_051C: ldfld UnityEngine.Vector4[] MeshData::m_tangents
IL_0521: ldarg.s 5
IL_0523: ldind.i4
IL_0524: ldelema UnityEngine.Vector4
IL_0529: ldloc.s 7 (UnityEngine.Vector4)
IL_052B: stobj UnityEngine.Vector4
IL_0530: ldarg.s 8
IL_0532: ldfld UnityEngine.Vector2[] MeshData::m_uvs
IL_0537: ldarg.s 5
IL_0539: ldind.i4
IL_053A: ldelema UnityEngine.Vector2
IL_053F: ldloc.s 8 (UnityEngine.Vector2)
IL_0541: stobj UnityEngine.Vector2
IL_0546: ldarg.s 8
IL_0548: ldfld UnityEngine.Vector2[] MeshData::m_uvs2
IL_054D: ldarg.s 5
IL_054F: ldind.i4
IL_0550: ldelema UnityEngine.Vector2
IL_0555: ldloc.s 10 (UnityEngine.Vector2)
IL_0557: stobj UnityEngine.Vector2
IL_055C: ldarg.s 8
IL_055E: ldfld UnityEngine.Vector2[] MeshData::m_uvs3
IL_0563: ldarg.s 5
IL_0565: ldind.i4
IL_0566: ldelema UnityEngine.Vector2
IL_056B: ldloc.s 11 (UnityEngine.Vector2)
IL_056D: stobj UnityEngine.Vector2
IL_0572: ldloc.0
IL_0573: brfalse => Label17
IL_0578: ldarg.s 8
IL_057A: ldfld UnityEngine.Vector2[] MeshData::m_uvs4
IL_057F: ldarg.s 5
IL_0581: ldind.i4
IL_0582: ldelema UnityEngine.Vector2
IL_0587: ldloc.s 12 (UnityEngine.Vector2)
IL_0589: stobj UnityEngine.Vector2
IL_058E: Label17
IL_058E: ldarg.s 8
IL_0590: ldfld UnityEngine.Color32[] MeshData::m_colors
IL_0595: ldarg.s 5
IL_0597: ldind.i4
IL_0598: ldelema UnityEngine.Color32
IL_059D: ldloc.s 15 (UnityEngine.Color)
IL_059F: call static UnityEngine.Color32
UnityEngine.Color32::op_Implicit(UnityEngine.Color c)
IL_05A4: stobj UnityEngine.Color32
IL_05A9: ldarg.s 5
IL_05AB: ldarg.s 5
IL_05AD: ldind.i4
IL_05AE: ldc.i4.1
IL_05AF: add
IL_05B0: stind.i4
IL_05B1: ldarg.s 8
IL_05B3: ldfld UnityEngine.Vector3[] MeshData::m_vertices
IL_05B8: ldarg.s 5
IL_05BA: ldind.i4
IL_05BB: ldelema UnityEngine.Vector3
IL_05C0: ldloca.s 4 (UnityEngine.Vector3)
IL_05C2: ldfld System.Single UnityEngine.Vector3::x
IL_05C7: ldloc.s 18 (System.Single)
IL_05C9: add
IL_05CA: ldloca.s 4 (UnityEngine.Vector3)
IL_05CC: ldfld System.Single UnityEngine.Vector3::y
IL_05D1: ldarg.0
IL_05D2: ldfld System.Single LightEffect::m_lightRange
IL_05D7: sub
IL_05D8: ldloca.s 4 (UnityEngine.Vector3)
IL_05DA: ldfld System.Single UnityEngine.Vector3::z
IL_05DF: ldarg.0
IL_05E0: ldfld System.Single LightEffect::m_lightRange
IL_05E5: add
IL_05E6: newobj System.Void UnityEngine.Vector3::.ctor(System.Single x,
System.Single y, System.Single z)
IL_05EB: stobj UnityEngine.Vector3
IL_05F0: ldarg.s 8
IL_05F2: ldfld UnityEngine.Vector3[] MeshData::m_normals
IL_05F7: ldarg.s 5
IL_05F9: ldind.i4
IL_05FA: ldelema UnityEngine.Vector3
IL_05FF: ldarg.3
IL_0600: stobj UnityEngine.Vector3
IL_0605: ldarg.s 8
IL_0607: ldfld UnityEngine.Vector4[] MeshData::m_tangents
IL_060C: ldarg.s 5
IL_060E: ldind.i4
IL_060F: ldelema UnityEngine.Vector4
IL_0614: ldloc.s 7 (UnityEngine.Vector4)
IL_0616: stobj UnityEngine.Vector4
IL_061B: ldarg.s 8
IL_061D: ldfld UnityEngine.Vector2[] MeshData::m_uvs
IL_0622: ldarg.s 5
IL_0624: ldind.i4
IL_0625: ldelema UnityEngine.Vector2
IL_062A: ldloc.s 8 (UnityEngine.Vector2)
IL_062C: stobj UnityEngine.Vector2
IL_0631: ldarg.s 8
IL_0633: ldfld UnityEngine.Vector2[] MeshData::m_uvs2
IL_0638: ldarg.s 5
IL_063A: ldind.i4
IL_063B: ldelema UnityEngine.Vector2
IL_0640: ldloc.s 10 (UnityEngine.Vector2)
IL_0642: stobj UnityEngine.Vector2
IL_0647: ldarg.s 8
IL_0649: ldfld UnityEngine.Vector2[] MeshData::m_uvs3
IL_064E: ldarg.s 5
IL_0650: ldind.i4
IL_0651: ldelema UnityEngine.Vector2
IL_0656: ldloc.s 11 (UnityEngine.Vector2)
IL_0658: stobj UnityEngine.Vector2
IL_065D: ldloc.0
IL_065E: brfalse => Label18
IL_0663: ldarg.s 8
IL_0665: ldfld UnityEngine.Vector2[] MeshData::m_uvs4
IL_066A: ldarg.s 5
IL_066C: ldind.i4
IL_066D: ldelema UnityEngine.Vector2
IL_0672: ldloc.s 12 (UnityEngine.Vector2)
IL_0674: stobj UnityEngine.Vector2
IL_0679: Label18
IL_0679: ldarg.s 8
IL_067B: ldfld UnityEngine.Color32[] MeshData::m_colors
IL_0680: ldarg.s 5
IL_0682: ldind.i4
IL_0683: ldelema UnityEngine.Color32
IL_0688: ldloc.s 15 (UnityEngine.Color)
IL_068A: call static UnityEngine.Color32
UnityEngine.Color32::op_Implicit(UnityEngine.Color c)
IL_068F: stobj UnityEngine.Color32
IL_0694: ldarg.s 5
IL_0696: ldarg.s 5
IL_0698: ldind.i4
IL_0699: ldc.i4.1
IL_069A: add
IL_069B: stind.i4
IL_069C: ldarg.s 8
IL_069E: ldfld UnityEngine.Vector3[] MeshData::m_vertices
IL_06A3: ldarg.s 5
IL_06A5: ldind.i4
IL_06A6: ldelema UnityEngine.Vector3
IL_06AB: ldloca.s 4 (UnityEngine.Vector3)
IL_06AD: ldfld System.Single UnityEngine.Vector3::x
IL_06B2: ldloc.s 18 (System.Single)
IL_06B4: sub
IL_06B5: ldloca.s 4 (UnityEngine.Vector3)
IL_06B7: ldfld System.Single UnityEngine.Vector3::y
IL_06BC: ldarg.0
IL_06BD: ldfld System.Single LightEffect::m_lightRange
IL_06C2: sub
IL_06C3: ldloca.s 4 (UnityEngine.Vector3)
IL_06C5: ldfld System.Single UnityEngine.Vector3::z
IL_06CA: ldarg.0
IL_06CB: ldfld System.Single LightEffect::m_lightRange
IL_06D0: add
IL_06D1: newobj System.Void UnityEngine.Vector3::.ctor(System.Single x,
System.Single y, System.Single z)
IL_06D6: stobj UnityEngine.Vector3
IL_06DB: ldarg.s 8
IL_06DD: ldfld UnityEngine.Vector3[] MeshData::m_normals
IL_06E2: ldarg.s 5
IL_06E4: ldind.i4
IL_06E5: ldelema UnityEngine.Vector3
IL_06EA: ldarg.3
IL_06EB: stobj UnityEngine.Vector3
IL_06F0: ldarg.s 8
IL_06F2: ldfld UnityEngine.Vector4[] MeshData::m_tangents
IL_06F7: ldarg.s 5
IL_06F9: ldind.i4
IL_06FA: ldelema UnityEngine.Vector4
IL_06FF: ldloc.s 7 (UnityEngine.Vector4)
IL_0701: stobj UnityEngine.Vector4
IL_0706: ldarg.s 8
IL_0708: ldfld UnityEngine.Vector2[] MeshData::m_uvs
IL_070D: ldarg.s 5
IL_070F: ldind.i4
IL_0710: ldelema UnityEngine.Vector2
IL_0715: ldloc.s 8 (UnityEngine.Vector2)
IL_0717: stobj UnityEngine.Vector2
IL_071C: ldarg.s 8
IL_071E: ldfld UnityEngine.Vector2[] MeshData::m_uvs2
IL_0723: ldarg.s 5
IL_0725: ldind.i4
IL_0726: ldelema UnityEngine.Vector2
IL_072B: ldloc.s 10 (UnityEngine.Vector2)
IL_072D: stobj UnityEngine.Vector2
IL_0732: ldarg.s 8
IL_0734: ldfld UnityEngine.Vector2[] MeshData::m_uvs3
IL_0739: ldarg.s 5
IL_073B: ldind.i4
IL_073C: ldelema UnityEngine.Vector2
IL_0741: ldloc.s 11 (UnityEngine.Vector2)
IL_0743: stobj UnityEngine.Vector2
IL_0748: ldloc.0
IL_0749: brfalse => Label19
IL_074E: ldarg.s 8
IL_0750: ldfld UnityEngine.Vector2[] MeshData::m_uvs4
IL_0755: ldarg.s 5
IL_0757: ldind.i4
IL_0758: ldelema UnityEngine.Vector2
IL_075D: ldloc.s 12 (UnityEngine.Vector2)
IL_075F: stobj UnityEngine.Vector2
IL_0764: Label19
IL_0764: ldarg.s 8
IL_0766: ldfld UnityEngine.Color32[] MeshData::m_colors
IL_076B: ldarg.s 5
IL_076D: ldind.i4
IL_076E: ldelema UnityEngine.Color32
IL_0773: ldloc.s 15 (UnityEngine.Color)
IL_0775: call static UnityEngine.Color32
UnityEngine.Color32::op_Implicit(UnityEngine.Color c)
IL_077A: stobj UnityEngine.Color32
IL_077F: ldarg.s 5
IL_0781: ldarg.s 5
IL_0783: ldind.i4
IL_0784: ldc.i4.1
IL_0785: add
IL_0786: stind.i4
IL_0787: ldarg.s 8
IL_0789: ldfld UnityEngine.Vector3[] MeshData::m_vertices
IL_078E: ldarg.s 5
IL_0790: ldind.i4
IL_0791: ldelema UnityEngine.Vector3
IL_0796: ldloca.s 4 (UnityEngine.Vector3)
IL_0798: ldfld System.Single UnityEngine.Vector3::x
IL_079D: ldloc.s 17 (System.Single)
IL_079F: sub
IL_07A0: ldloca.s 4 (UnityEngine.Vector3)
IL_07A2: ldfld System.Single UnityEngine.Vector3::y
IL_07A7: ldloca.s 4 (UnityEngine.Vector3)
IL_07A9: ldfld System.Single UnityEngine.Vector3::z
IL_07AE: ldarg.0
IL_07AF: ldfld System.Single LightEffect::m_lightRange
IL_07B4: add
IL_07B5: newobj System.Void UnityEngine.Vector3::.ctor(System.Single x,
System.Single y, System.Single z)
IL_07BA: stobj UnityEngine.Vector3
IL_07BF: ldarg.s 8
IL_07C1: ldfld UnityEngine.Vector3[] MeshData::m_normals
IL_07C6: ldarg.s 5
IL_07C8: ldind.i4
IL_07C9: ldelema UnityEngine.Vector3
IL_07CE: ldarg.3
IL_07CF: stobj UnityEngine.Vector3
IL_07D4: ldarg.s 8
IL_07D6: ldfld UnityEngine.Vector4[] MeshData::m_tangents
IL_07DB: ldarg.s 5
IL_07DD: ldind.i4
IL_07DE: ldelema UnityEngine.Vector4
IL_07E3: ldloc.s 7 (UnityEngine.Vector4)
IL_07E5: stobj UnityEngine.Vector4
IL_07EA: ldarg.s 8
IL_07EC: ldfld UnityEngine.Vector2[] MeshData::m_uvs
IL_07F1: ldarg.s 5
IL_07F3: ldind.i4
IL_07F4: ldelema UnityEngine.Vector2
IL_07F9: ldloc.s 8 (UnityEngine.Vector2)
IL_07FB: stobj UnityEngine.Vector2
IL_0800: ldarg.s 8
IL_0802: ldfld UnityEngine.Vector2[] MeshData::m_uvs2
IL_0807: ldarg.s 5
IL_0809: ldind.i4
IL_080A: ldelema UnityEngine.Vector2
IL_080F: ldloc.s 10 (UnityEngine.Vector2)
IL_0811: stobj UnityEngine.Vector2
IL_0816: ldarg.s 8
IL_0818: ldfld UnityEngine.Vector2[] MeshData::m_uvs3
IL_081D: ldarg.s 5
IL_081F: ldind.i4
IL_0820: ldelema UnityEngine.Vector2
IL_0825: ldloc.s 11 (UnityEngine.Vector2)
IL_0827: stobj UnityEngine.Vector2
IL_082C: ldloc.0
IL_082D: brfalse => Label20
IL_0832: ldarg.s 8
IL_0834: ldfld UnityEngine.Vector2[] MeshData::m_uvs4
IL_0839: ldarg.s 5
IL_083B: ldind.i4
IL_083C: ldelema UnityEngine.Vector2
IL_0841: ldloc.s 12 (UnityEngine.Vector2)
IL_0843: stobj UnityEngine.Vector2
IL_0848: Label20
IL_0848: ldarg.s 8
IL_084A: ldfld UnityEngine.Color32[] MeshData::m_colors
IL_084F: ldarg.s 5
IL_0851: ldind.i4
IL_0852: ldelema UnityEngine.Color32
IL_0857: ldloc.s 15 (UnityEngine.Color)
IL_0859: call static UnityEngine.Color32
UnityEngine.Color32::op_Implicit(UnityEngine.Color c)
IL_085E: stobj UnityEngine.Color32
IL_0863: ldarg.s 5
IL_0865: ldarg.s 5
IL_0867: ldind.i4
IL_0868: ldc.i4.1
IL_0869: add
IL_086A: stind.i4
IL_086B: ldarg.s 8
IL_086D: ldfld System.Int32[] MeshData::m_triangles
IL_0872: ldarg.s 6
IL_0874: ldarg.s 6
IL_0876: ldind.i4
IL_0877: dup
IL_0878: stloc.s 19 (System.Int32)
IL_087A: ldc.i4.1
IL_087B: add
IL_087C: stind.i4
IL_087D: ldloc.s 19 (System.Int32)
IL_087F: ldarg.s 5
IL_0881: ldind.i4
IL_0882: ldc.i4.6
IL_0883: sub
IL_0884: stelem.i4
IL_0885: ldarg.s 8
IL_0887: ldfld System.Int32[] MeshData::m_triangles
IL_088C: ldarg.s 6
IL_088E: ldarg.s 6
IL_0890: ldind.i4
IL_0891: dup
IL_0892: stloc.s 19 (System.Int32)
IL_0894: ldc.i4.1
IL_0895: add
IL_0896: stind.i4
IL_0897: ldloc.s 19 (System.Int32)
IL_0899: ldarg.s 5
IL_089B: ldind.i4
IL_089C: ldc.i4.5
IL_089D: sub
IL_089E: stelem.i4
IL_089F: ldarg.s 8
IL_08A1: ldfld System.Int32[] MeshData::m_triangles
IL_08A6: ldarg.s 6
IL_08A8: ldarg.s 6
IL_08AA: ldind.i4
IL_08AB: dup
IL_08AC: stloc.s 19 (System.Int32)
IL_08AE: ldc.i4.1
IL_08AF: add
IL_08B0: stind.i4
IL_08B1: ldloc.s 19 (System.Int32)
IL_08B3: ldarg.s 5
IL_08B5: ldind.i4
IL_08B6: ldc.i4.1
IL_08B7: sub
IL_08B8: stelem.i4
IL_08B9: ldarg.s 8
IL_08BB: ldfld System.Int32[] MeshData::m_triangles
IL_08C0: ldarg.s 6
IL_08C2: ldarg.s 6
IL_08C4: ldind.i4
IL_08C5: dup
IL_08C6: stloc.s 19 (System.Int32)
IL_08C8: ldc.i4.1
IL_08C9: add
IL_08CA: stind.i4
IL_08CB: ldloc.s 19 (System.Int32)
IL_08CD: ldarg.s 5
IL_08CF: ldind.i4
IL_08D0: ldc.i4.1
IL_08D1: sub
IL_08D2: stelem.i4
IL_08D3: ldarg.s 8
IL_08D5: ldfld System.Int32[] MeshData::m_triangles
IL_08DA: ldarg.s 6
IL_08DC: ldarg.s 6
IL_08DE: ldind.i4
IL_08DF: dup
IL_08E0: stloc.s 19 (System.Int32)
IL_08E2: ldc.i4.1
IL_08E3: add
IL_08E4: stind.i4
IL_08E5: ldloc.s 19 (System.Int32)
IL_08E7: ldarg.s 5
IL_08E9: ldind.i4
IL_08EA: ldc.i4.5
IL_08EB: sub
IL_08EC: stelem.i4
IL_08ED: ldarg.s 8
IL_08EF: ldfld System.Int32[] MeshData::m_triangles
IL_08F4: ldarg.s 6
IL_08F6: ldarg.s 6
IL_08F8: ldind.i4
IL_08F9: dup
IL_08FA: stloc.s 19 (System.Int32)
IL_08FC: ldc.i4.1
IL_08FD: add
IL_08FE: stind.i4
IL_08FF: ldloc.s 19 (System.Int32)
IL_0901: ldarg.s 5
IL_0903: ldind.i4
IL_0904: ldc.i4.4
IL_0905: sub
IL_0906: stelem.i4
IL_0907: ldarg.s 8
IL_0909: ldfld System.Int32[] MeshData::m_triangles
IL_090E: ldarg.s 6
IL_0910: ldarg.s 6
IL_0912: ldind.i4
IL_0913: dup
IL_0914: stloc.s 19 (System.Int32)
IL_0916: ldc.i4.1
IL_0917: add
IL_0918: stind.i4
IL_0919: ldloc.s 19 (System.Int32)
IL_091B: ldarg.s 5
IL_091D: ldind.i4
IL_091E: ldc.i4.1
IL_091F: sub
IL_0920: stelem.i4
IL_0921: ldarg.s 8
IL_0923: ldfld System.Int32[] MeshData::m_triangles
IL_0928: ldarg.s 6
IL_092A: ldarg.s 6
IL_092C: ldind.i4
IL_092D: dup
IL_092E: stloc.s 19 (System.Int32)
IL_0930: ldc.i4.1
IL_0931: add
IL_0932: stind.i4
IL_0933: ldloc.s 19 (System.Int32)
IL_0935: ldarg.s 5
IL_0937: ldind.i4
IL_0938: ldc.i4.4
IL_0939: sub
IL_093A: stelem.i4
IL_093B: ldarg.s 8
IL_093D: ldfld System.Int32[] MeshData::m_triangles
IL_0942: ldarg.s 6
IL_0944: ldarg.s 6
IL_0946: ldind.i4
IL_0947: dup
IL_0948: stloc.s 19 (System.Int32)
IL_094A: ldc.i4.1
IL_094B: add
IL_094C: stind.i4
IL_094D: ldloc.s 19 (System.Int32)
IL_094F: ldarg.s 5
IL_0951: ldind.i4
IL_0952: ldc.i4.2
IL_0953: sub
IL_0954: stelem.i4
IL_0955: ldarg.s 8
IL_0957: ldfld System.Int32[] MeshData::m_triangles
IL_095C: ldarg.s 6
IL_095E: ldarg.s 6
IL_0960: ldind.i4
IL_0961: dup
IL_0962: stloc.s 19 (System.Int32)
IL_0964: ldc.i4.1
IL_0965: add
IL_0966: stind.i4
IL_0967: ldloc.s 19 (System.Int32)
IL_0969: ldarg.s 5
IL_096B: ldind.i4
IL_096C: ldc.i4.2
IL_096D: sub
IL_096E: stelem.i4
IL_096F: ldarg.s 8
IL_0971: ldfld System.Int32[] MeshData::m_triangles
IL_0976: ldarg.s 6
IL_0978: ldarg.s 6
IL_097A: ldind.i4
IL_097B: dup
IL_097C: stloc.s 19 (System.Int32)
IL_097E: ldc.i4.1
IL_097F: add
IL_0980: stind.i4
IL_0981: ldloc.s 19 (System.Int32)
IL_0983: ldarg.s 5
IL_0985: ldind.i4
IL_0986: ldc.i4.4
IL_0987: sub
IL_0988: stelem.i4
IL_0989: ldarg.s 8
IL_098B: ldfld System.Int32[] MeshData::m_triangles
IL_0990: ldarg.s 6
IL_0992: ldarg.s 6
IL_0994: ldind.i4
IL_0995: dup
IL_0996: stloc.s 19 (System.Int32)
IL_0998: ldc.i4.1
IL_0999: add
IL_099A: stind.i4
IL_099B: ldloc.s 19 (System.Int32)
IL_099D: ldarg.s 5
IL_099F: ldind.i4
IL_09A0: ldc.i4.3
IL_09A1: sub
IL_09A2: stelem.i4
IL_09A3: // end original
IL_09A3: Label3
IL_09A3: Label0
IL_09A3: ret
DONE

### Patch: virtual System.Void ElectricityManager::SimulationStepImpl(System.Int32


subStep)
### Replacement: static System.Void
ElectricityManager::ElectricityManager.SimulationStepImpl_Patch0(ElectricityManager
this, System.Int32 subStep)
IL_0000: Local var 0: System.UInt32
IL_0000: Local var 1: System.Int32
IL_0000: Local var 2: NetManager
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: NetInfo
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: ElectricityManager/Cell
IL_0000: Local var 13: ElectricityManager/PulseGroup
IL_0000: Local var 14: ElectricityManager/PulseUnit
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: ElectricityManager/PulseUnit
IL_0000: Local var 19: System.UInt32
IL_0000: Local var 20: System.Int32
IL_0000: Local var 21: ElectricityManager/Cell
IL_0000: Local var 22: System.Int32
IL_0000: Local var 23: System.Int32
IL_0000: Local var 24: NetNode
IL_0000: Local var 25: System.Int32
IL_0000: Local var 26: System.UInt16
IL_0000: Local var 27: System.UInt16
IL_0000: Local var 28: System.UInt16
IL_0000: Local var 29: System.UInt16
IL_0000: Local var 30: System.Int32
IL_0000: Local var 31: ElectricityManager/PulseGroup
IL_0000: Local var 32: ElectricityManager/PulseGroup
IL_0000: Local var 33: System.Int32
IL_0000: Local var 34: ElectricityManager/PulseGroup
IL_0000: Local var 35: System.Int32
IL_0000: Local var 36: ElectricityManager/Cell
IL_0000: // start original
IL_0000: ldarg.1
IL_0001: brfalse => Label0
IL_0006: ldarg.1
IL_0007: ldc.i4 1000
IL_000C: beq => Label1
IL_0011: call static SimulationManager
ColossalFramework.Singleton`1<SimulationManager>::get_instance()
IL_0016: ldfld System.UInt32 SimulationManager::m_currentFrameIndex
IL_001B: stloc.0
IL_001C: ldloc.0
IL_001D: ldc.i4 255
IL_0022: and
IL_0023: stloc.1
IL_0024: ldloc.1
IL_0025: ldc.i4 128
IL_002A: bge => Label2
IL_002F: ldloc.1
IL_0030: brtrue => Label3
IL_0035: ldarg.0
IL_0036: ldc.i4.0
IL_0037: stfld System.Int32 ElectricityManager::m_pulseGroupCount
IL_003C: ldarg.0
IL_003D: ldc.i4.0
IL_003E: stfld System.Int32 ElectricityManager::m_pulseUnitStart
IL_0043: ldarg.0
IL_0044: ldc.i4.0
IL_0045: stfld System.Int32 ElectricityManager::m_pulseUnitEnd
IL_004A: ldarg.0
IL_004B: ldc.i4.0
IL_004C: stfld System.Int32 ElectricityManager::m_processedCells
IL_0051: ldarg.0
IL_0052: ldc.i4.0
IL_0053: stfld System.Int32 ElectricityManager::m_conductiveCells
IL_0058: ldarg.0
IL_0059: ldc.i4.1
IL_005A: stfld System.Boolean ElectricityManager::m_canContinue
IL_005F: Label3
IL_005F: call static NetManager
ColossalFramework.Singleton`1<NetManager>::get_instance()
IL_0064: stloc.2
IL_0065: ldloc.1
IL_0066: ldc.i4 32768
IL_006B: mul
IL_006C: ldc.i4.7
IL_006D: shr
IL_006E: stloc.3
IL_006F: ldloc.1
IL_0070: ldc.i4.1
IL_0071: add
IL_0072: ldc.i4 32768
IL_0077: mul
IL_0078: ldc.i4.7
IL_0079: shr
IL_007A: ldc.i4.1
IL_007B: sub
IL_007C: stloc.s 4 (System.Int32)
IL_007E: ldloc.3
IL_007F: stloc.s 5 (System.Int32)
IL_0081: br => Label4
IL_0086: Label10
IL_0086: ldloc.2
IL_0087: ldfld Array16`1<NetNode> NetManager::m_nodes
IL_008C: ldfld NetNode[] Array16`1<NetNode>::m_buffer
IL_0091: ldloc.s 5 (System.Int32)
IL_0093: ldelema NetNode
IL_0098: ldfld Flags NetNode::m_flags
IL_009D: brfalse => Label5
IL_00A2: ldloc.2
IL_00A3: ldfld Array16`1<NetNode> NetManager::m_nodes
IL_00A8: ldfld NetNode[] Array16`1<NetNode>::m_buffer
IL_00AD: ldloc.s 5 (System.Int32)
IL_00AF: ldelema NetNode
IL_00B4: call static System.Boolean
ElectricRoads.Overrides.ElectricRoadsOverrides::CheckElectricConductibility(NetNode
& node)
IL_00B9: brfalse => Label7
IL_00BE: Label6
IL_00BE: ldarg.0
IL_00BF: ldloc.s 5 (System.Int32)
IL_00C1: ldarg.0
IL_00C2: ldfld System.UInt16[] ElectricityManager::m_nodeGroups
IL_00C7: ldloc.s 5 (System.Int32)
IL_00C9: ldelem.u2
IL_00CA: ldc.i4 65535
IL_00CF: beq => Label8
IL_00D4: ldc.i4.1
IL_00D5: br => Label9
IL_00DA: Label8
IL_00DA: ldc.i4.0
IL_00DB: Label9
IL_00DB: call System.Void
ElectricityManager::UpdateNodeElectricity(System.Int32 nodeID, System.Int32 value)
IL_00E0: ldarg.0
IL_00E1: dup
IL_00E2: ldfld System.Int32 ElectricityManager::m_conductiveCells
IL_00E7: ldc.i4.1
IL_00E8: add
IL_00E9: stfld System.Int32 ElectricityManager::m_conductiveCells
IL_00EE: Label5
IL_00EE: Label7
IL_00EE: ldarg.0
IL_00EF: ldfld System.UInt16[] ElectricityManager::m_nodeGroups
IL_00F4: ldloc.s 5 (System.Int32)
IL_00F6: ldc.i4 65535
IL_00FB: stelem.i2
IL_00FC: ldloc.s 5 (System.Int32)
IL_00FE: ldc.i4.1
IL_00FF: add
IL_0100: stloc.s 5 (System.Int32)
IL_0102: Label4
IL_0102: ldloc.s 5 (System.Int32)
IL_0104: ldloc.s 4 (System.Int32)
IL_0106: ble => Label10
IL_010B: ldloc.1
IL_010C: ldc.i4 256
IL_0111: mul
IL_0112: ldc.i4.7
IL_0113: shr
IL_0114: stloc.s 7 (System.Int32)
IL_0116: ldloc.1
IL_0117: ldc.i4.1
IL_0118: add
IL_0119: ldc.i4 256
IL_011E: mul
IL_011F: ldc.i4.7
IL_0120: shr
IL_0121: ldc.i4.1
IL_0122: sub
IL_0123: stloc.s 8 (System.Int32)
IL_0125: ldloc.s 7 (System.Int32)
IL_0127: stloc.s 9 (System.Int32)
IL_0129: br => Label11
IL_012E: Label21
IL_012E: ldloc.s 9 (System.Int32)
IL_0130: ldc.i4 256
IL_0135: mul
IL_0136: stloc.s 10 (System.Int32)
IL_0138: ldc.i4.0
IL_0139: stloc.s 11 (System.Int32)
IL_013B: br => Label12
IL_0140: Label20
IL_0140: ldarg.0
IL_0141: ldfld Cell[] ElectricityManager::m_electricityGrid
IL_0146: ldloc.s 10 (System.Int32)
IL_0148: ldelema ElectricityManager+Cell
IL_014D: ldobj ElectricityManager+Cell
IL_0152: stloc.s 12 (ElectricityManager+Cell)
IL_0154: ldloca.s 12 (ElectricityManager+Cell)
IL_0156: ldfld System.Int16 Cell::m_currentCharge
IL_015B: ldc.i4.0
IL_015C: ble => Label13
IL_0161: ldarg.0
IL_0162: ldfld System.Int32 ElectricityManager::m_pulseGroupCount
IL_0167: ldc.i4 1024
IL_016C: bge => Label14
IL_0171: ldloca.s 13 (ElectricityManager+PulseGroup)
IL_0173: ldloca.s 12 (ElectricityManager+Cell)
IL_0175: ldfld System.Int16 Cell::m_currentCharge
IL_017A: conv.u4
IL_017B: stfld System.UInt32 PulseGroup::m_origCharge
IL_0180: ldloca.s 13 (ElectricityManager+PulseGroup)
IL_0182: ldloca.s 12 (ElectricityManager+Cell)
IL_0184: ldfld System.Int16 Cell::m_currentCharge
IL_0189: conv.u4
IL_018A: stfld System.UInt32 PulseGroup::m_curCharge
IL_018F: ldloca.s 13 (ElectricityManager+PulseGroup)
IL_0191: ldc.i4.0
IL_0192: stfld System.UInt16 PulseGroup::m_mergeCount
IL_0197: ldloca.s 13 (ElectricityManager+PulseGroup)
IL_0199: ldc.i4 65535
IL_019E: stfld System.UInt16 PulseGroup::m_mergeIndex
IL_01A3: ldloca.s 13 (ElectricityManager+PulseGroup)
IL_01A5: ldloc.s 11 (System.Int32)
IL_01A7: conv.u1
IL_01A8: stfld System.Byte PulseGroup::m_x
IL_01AD: ldloca.s 13 (ElectricityManager+PulseGroup)
IL_01AF: ldloc.s 9 (System.Int32)
IL_01B1: conv.u1
IL_01B2: stfld System.Byte PulseGroup::m_z
IL_01B7: ldloca.s 14 (ElectricityManager+PulseUnit)
IL_01B9: ldarg.0
IL_01BA: ldfld System.Int32 ElectricityManager::m_pulseGroupCount
IL_01BF: conv.u2
IL_01C0: stfld System.UInt16 PulseUnit::m_group
IL_01C5: ldloca.s 14 (ElectricityManager+PulseUnit)
IL_01C7: ldc.i4.0
IL_01C8: stfld System.UInt16 PulseUnit::m_node
IL_01CD: ldloca.s 14 (ElectricityManager+PulseUnit)
IL_01CF: ldloc.s 11 (System.Int32)
IL_01D1: conv.u1
IL_01D2: stfld System.Byte PulseUnit::m_x
IL_01D7: ldloca.s 14 (ElectricityManager+PulseUnit)
IL_01D9: ldloc.s 9 (System.Int32)
IL_01DB: conv.u1
IL_01DC: stfld System.Byte PulseUnit::m_z
IL_01E1: ldloca.s 12 (ElectricityManager+Cell)
IL_01E3: ldarg.0
IL_01E4: ldfld System.Int32 ElectricityManager::m_pulseGroupCount
IL_01E9: conv.u2
IL_01EA: stfld System.UInt16 Cell::m_pulseGroup
IL_01EF: ldarg.0
IL_01F0: ldfld PulseGroup[] ElectricityManager::m_pulseGroups
IL_01F5: ldarg.0
IL_01F6: dup
IL_01F7: ldfld System.Int32 ElectricityManager::m_pulseGroupCount
IL_01FC: dup
IL_01FD: stloc.s 15 (System.Int32)
IL_01FF: ldc.i4.1
IL_0200: add
IL_0201: stfld System.Int32 ElectricityManager::m_pulseGroupCount
IL_0206: ldloc.s 15 (System.Int32)
IL_0208: ldelema ElectricityManager+PulseGroup
IL_020D: ldloc.s 13 (ElectricityManager+PulseGroup)
IL_020F: stobj ElectricityManager+PulseGroup
IL_0214: ldarg.0
IL_0215: ldfld PulseUnit[] ElectricityManager::m_pulseUnits
IL_021A: ldarg.0
IL_021B: ldfld System.Int32 ElectricityManager::m_pulseUnitEnd
IL_0220: ldelema ElectricityManager+PulseUnit
IL_0225: ldloc.s 14 (ElectricityManager+PulseUnit)
IL_0227: stobj ElectricityManager+PulseUnit
IL_022C: ldarg.0
IL_022D: dup
IL_022E: ldfld System.Int32 ElectricityManager::m_pulseUnitEnd
IL_0233: ldc.i4.1
IL_0234: add
IL_0235: dup
IL_0236: stloc.s 15 (System.Int32)
IL_0238: stfld System.Int32 ElectricityManager::m_pulseUnitEnd
IL_023D: ldloc.s 15 (System.Int32)
IL_023F: ldarg.0
IL_0240: ldfld PulseUnit[] ElectricityManager::m_pulseUnits
IL_0245: ldlen
IL_0246: conv.i4
IL_0247: bne.un => Label15
IL_024C: ldarg.0
IL_024D: ldc.i4.0
IL_024E: stfld System.Int32 ElectricityManager::m_pulseUnitEnd
IL_0253: Label15
IL_0253: br => Label16
IL_0258: Label14
IL_0258: ldloca.s 12 (ElectricityManager+Cell)
IL_025A: ldc.i4 65535
IL_025F: stfld System.UInt16 Cell::m_pulseGroup
IL_0264: Label16
IL_0264: ldloca.s 12 (ElectricityManager+Cell)
IL_0266: ldc.i4.0
IL_0267: stfld System.Int16 Cell::m_currentCharge
IL_026C: ldarg.0
IL_026D: dup
IL_026E: ldfld System.Int32 ElectricityManager::m_conductiveCells
IL_0273: ldc.i4.1
IL_0274: add
IL_0275: stfld System.Int32 ElectricityManager::m_conductiveCells
IL_027A: br => Label17
IL_027F: Label13
IL_027F: ldloca.s 12 (ElectricityManager+Cell)
IL_0281: ldc.i4 65535
IL_0286: stfld System.UInt16 Cell::m_pulseGroup
IL_028B: ldloca.s 12 (ElectricityManager+Cell)
IL_028D: ldfld System.Byte Cell::m_conductivity
IL_0292: ldc.i4.s 64
IL_0294: blt => Label18
IL_0299: ldarg.0
IL_029A: dup
IL_029B: ldfld System.Int32 ElectricityManager::m_conductiveCells
IL_02A0: ldc.i4.1
IL_02A1: add
IL_02A2: stfld System.Int32 ElectricityManager::m_conductiveCells
IL_02A7: Label17
IL_02A7: Label18
IL_02A7: ldloca.s 12 (ElectricityManager+Cell)
IL_02A9: ldfld System.Boolean Cell::m_tmpElectrified
IL_02AE: ldloca.s 12 (ElectricityManager+Cell)
IL_02B0: ldfld System.Boolean Cell::m_electrified
IL_02B5: beq => Label19
IL_02BA: ldloca.s 12 (ElectricityManager+Cell)
IL_02BC: ldloca.s 12 (ElectricityManager+Cell)
IL_02BE: ldfld System.Boolean Cell::m_tmpElectrified
IL_02C3: stfld System.Boolean Cell::m_electrified
IL_02C8: Label19
IL_02C8: ldloca.s 12 (ElectricityManager+Cell)
IL_02CA: ldloca.s 12 (ElectricityManager+Cell)
IL_02CC: ldfld System.UInt16 Cell::m_pulseGroup
IL_02D1: ldc.i4 65535
IL_02D6: ceq
IL_02D8: ldc.i4.0
IL_02D9: ceq
IL_02DB: stfld System.Boolean Cell::m_tmpElectrified
IL_02E0: ldarg.0
IL_02E1: ldfld Cell[] ElectricityManager::m_electricityGrid
IL_02E6: ldloc.s 10 (System.Int32)
IL_02E8: ldelema ElectricityManager+Cell
IL_02ED: ldloc.s 12 (ElectricityManager+Cell)
IL_02EF: stobj ElectricityManager+Cell
IL_02F4: ldloc.s 10 (System.Int32)
IL_02F6: ldc.i4.1
IL_02F7: add
IL_02F8: stloc.s 10 (System.Int32)
IL_02FA: ldloc.s 11 (System.Int32)
IL_02FC: ldc.i4.1
IL_02FD: add
IL_02FE: stloc.s 11 (System.Int32)
IL_0300: Label12
IL_0300: ldloc.s 11 (System.Int32)
IL_0302: ldc.i4 256
IL_0307: blt => Label20
IL_030C: ldloc.s 9 (System.Int32)
IL_030E: ldc.i4.1
IL_030F: add
IL_0310: stloc.s 9 (System.Int32)
IL_0312: Label11
IL_0312: ldloc.s 9 (System.Int32)
IL_0314: ldloc.s 8 (System.Int32)
IL_0316: ble => Label21
IL_031B: br => Label22
IL_0320: Label2
IL_0320: ldloc.1
IL_0321: ldc.i4.s 127
IL_0323: sub
IL_0324: ldarg.0
IL_0325: ldfld System.Int32 ElectricityManager::m_conductiveCells
IL_032A: mul
IL_032B: ldc.i4.7
IL_032C: shr
IL_032D: stloc.s 16 (System.Int32)
IL_032F: ldloc.1
IL_0330: ldc.i4 255
IL_0335: bne.un => Label23
IL_033A: ldc.i4 1000000000
IL_033F: stloc.s 16 (System.Int32)
IL_0341: Label23
IL_0341: br => Label24
IL_0346: Label54
IL_0346: ldarg.0
IL_0347: ldc.i4.0
IL_0348: stfld System.Boolean ElectricityManager::m_canContinue
IL_034D: ldarg.0
IL_034E: ldfld System.Int32 ElectricityManager::m_pulseUnitEnd
IL_0353: stloc.s 17 (System.Int32)
IL_0355: br => Label25
IL_035A: Label52
IL_035A: ldarg.0
IL_035B: ldfld PulseUnit[] ElectricityManager::m_pulseUnits
IL_0360: ldarg.0
IL_0361: ldfld System.Int32 ElectricityManager::m_pulseUnitStart
IL_0366: ldelema ElectricityManager+PulseUnit
IL_036B: ldobj ElectricityManager+PulseUnit
IL_0370: stloc.s 18 (ElectricityManager+PulseUnit)
IL_0372: ldarg.0
IL_0373: dup
IL_0374: ldfld System.Int32 ElectricityManager::m_pulseUnitStart
IL_0379: ldc.i4.1
IL_037A: add
IL_037B: dup
IL_037C: stloc.s 15 (System.Int32)
IL_037E: stfld System.Int32 ElectricityManager::m_pulseUnitStart
IL_0383: ldloc.s 15 (System.Int32)
IL_0385: ldarg.0
IL_0386: ldfld PulseUnit[] ElectricityManager::m_pulseUnits
IL_038B: ldlen
IL_038C: conv.i4
IL_038D: bne.un => Label26
IL_0392: ldarg.0
IL_0393: ldc.i4.0
IL_0394: stfld System.Int32 ElectricityManager::m_pulseUnitStart
IL_0399: Label26
IL_0399: ldloca.s 18 (ElectricityManager+PulseUnit)
IL_039B: ldarg.0
IL_039C: ldloca.s 18 (ElectricityManager+PulseUnit)
IL_039E: ldfld System.UInt16 PulseUnit::m_group
IL_03A3: call System.UInt16 ElectricityManager::GetRootGroup(System.UInt16
group)
IL_03A8: stfld System.UInt16 PulseUnit::m_group
IL_03AD: ldarg.0
IL_03AE: ldfld PulseGroup[] ElectricityManager::m_pulseGroups
IL_03B3: ldloca.s 18 (ElectricityManager+PulseUnit)
IL_03B5: ldfld System.UInt16 PulseUnit::m_group
IL_03BA: ldelema ElectricityManager+PulseGroup
IL_03BF: ldfld System.UInt32 PulseGroup::m_curCharge
IL_03C4: stloc.s 19 (System.UInt32)
IL_03C6: ldloca.s 18 (ElectricityManager+PulseUnit)
IL_03C8: ldfld System.UInt16 PulseUnit::m_node
IL_03CD: brtrue => Label27
IL_03D2: ldloca.s 18 (ElectricityManager+PulseUnit)
IL_03D4: ldfld System.Byte PulseUnit::m_z
IL_03D9: ldc.i4 256
IL_03DE: mul
IL_03DF: ldloca.s 18 (ElectricityManager+PulseUnit)
IL_03E1: ldfld System.Byte PulseUnit::m_x
IL_03E6: add
IL_03E7: stloc.s 20 (System.Int32)
IL_03E9: ldarg.0
IL_03EA: ldfld Cell[] ElectricityManager::m_electricityGrid
IL_03EF: ldloc.s 20 (System.Int32)
IL_03F1: ldelema ElectricityManager+Cell
IL_03F6: ldobj ElectricityManager+Cell
IL_03FB: stloc.s 21 (ElectricityManager+Cell)
IL_03FD: ldloca.s 21 (ElectricityManager+Cell)
IL_03FF: ldfld System.Byte Cell::m_conductivity
IL_0404: brfalse => Label28
IL_0409: ldloca.s 21 (ElectricityManager+Cell)
IL_040B: ldfld System.Boolean Cell::m_tmpElectrified
IL_0410: brtrue => Label29
IL_0415: ldloc.s 19 (System.UInt32)
IL_0417: brfalse => Label30
IL_041C: ldloca.s 21 (ElectricityManager+Cell)
IL_041E: ldfld System.Int16 Cell::m_currentCharge
IL_0423: neg
IL_0424: ldc.i4.0
IL_0425: ldloc.s 19 (System.UInt32)
IL_0427: call static System.Int32 UnityEngine.Mathf::Clamp(System.Int32
value, System.Int32 min, System.Int32 max)
IL_042C: stloc.s 22 (System.Int32)
IL_042E: ldloc.s 19 (System.UInt32)
IL_0430: ldloc.s 22 (System.Int32)
IL_0432: sub
IL_0433: stloc.s 19 (System.UInt32)
IL_0435: ldloca.s 21 (ElectricityManager+Cell)
IL_0437: dup
IL_0438: ldfld System.Int16 Cell::m_currentCharge
IL_043D: ldloc.s 22 (System.Int32)
IL_043F: conv.i2
IL_0440: add
IL_0441: conv.i2
IL_0442: stfld System.Int16 Cell::m_currentCharge
IL_0447: ldloca.s 21 (ElectricityManager+Cell)
IL_0449: ldfld System.Int16 Cell::m_currentCharge
IL_044E: brtrue => Label31
IL_0453: ldloca.s 21 (ElectricityManager+Cell)
IL_0455: ldc.i4.1
IL_0456: stfld System.Boolean Cell::m_tmpElectrified
IL_045B: Label31
IL_045B: ldarg.0
IL_045C: ldfld Cell[] ElectricityManager::m_electricityGrid
IL_0461: ldloc.s 20 (System.Int32)
IL_0463: ldelema ElectricityManager+Cell
IL_0468: ldloc.s 21 (ElectricityManager+Cell)
IL_046A: stobj ElectricityManager+Cell
IL_046F: ldarg.0
IL_0470: ldfld PulseGroup[] ElectricityManager::m_pulseGroups
IL_0475: ldloca.s 18 (ElectricityManager+PulseUnit)
IL_0477: ldfld System.UInt16 PulseUnit::m_group
IL_047C: ldelema ElectricityManager+PulseGroup
IL_0481: ldloc.s 19 (System.UInt32)
IL_0483: stfld System.UInt32 PulseGroup::m_curCharge
IL_0488: Label28
IL_0488: Label29
IL_0488: Label30
IL_0488: ldloc.s 19 (System.UInt32)
IL_048A: brfalse => Label32
IL_048F: ldloca.s 21 (ElectricityManager+Cell)
IL_0491: ldfld System.Byte Cell::m_conductivity
IL_0496: ldc.i4.s 64
IL_0498: blt => Label33
IL_049D: ldc.i4.1
IL_049E: br => Label34
IL_04A3: Label33
IL_04A3: ldc.i4.s 64
IL_04A5: Label34
IL_04A5: stloc.s 23 (System.Int32)
IL_04A7: ldarg.0
IL_04A8: dup
IL_04A9: ldfld System.Int32 ElectricityManager::m_processedCells
IL_04AE: ldc.i4.1
IL_04AF: add
IL_04B0: stfld System.Int32 ElectricityManager::m_processedCells
IL_04B5: ldloca.s 18 (ElectricityManager+PulseUnit)
IL_04B7: ldfld System.Byte PulseUnit::m_z
IL_04BC: ldc.i4.0
IL_04BD: ble => Label35
IL_04C2: ldarg.0
IL_04C3: ldarg.0
IL_04C4: ldfld Cell[] ElectricityManager::m_electricityGrid
IL_04C9: ldloc.s 20 (System.Int32)
IL_04CB: ldc.i4 256
IL_04D0: sub
IL_04D1: ldelema ElectricityManager+Cell
IL_04D6: ldloca.s 18 (ElectricityManager+PulseUnit)
IL_04D8: ldfld System.UInt16 PulseUnit::m_group
IL_04DD: ldloca.s 18 (ElectricityManager+PulseUnit)
IL_04DF: ldfld System.Byte PulseUnit::m_x
IL_04E4: ldloca.s 18 (ElectricityManager+PulseUnit)
IL_04E6: ldfld System.Byte PulseUnit::m_z
IL_04EB: ldc.i4.1
IL_04EC: sub
IL_04ED: ldloc.s 23 (System.Int32)
IL_04EF: call System.Void ElectricityManager::ConductToCell(Cell& cell,
System.UInt16 group, System.Int32 x, System.Int32 z, System.Int32 limit)
IL_04F4: Label35
IL_04F4: ldloca.s 18 (ElectricityManager+PulseUnit)
IL_04F6: ldfld System.Byte PulseUnit::m_x
IL_04FB: ldc.i4.0
IL_04FC: ble => Label36
IL_0501: ldarg.0
IL_0502: ldarg.0
IL_0503: ldfld Cell[] ElectricityManager::m_electricityGrid
IL_0508: ldloc.s 20 (System.Int32)
IL_050A: ldc.i4.1
IL_050B: sub
IL_050C: ldelema ElectricityManager+Cell
IL_0511: ldloca.s 18 (ElectricityManager+PulseUnit)
IL_0513: ldfld System.UInt16 PulseUnit::m_group
IL_0518: ldloca.s 18 (ElectricityManager+PulseUnit)
IL_051A: ldfld System.Byte PulseUnit::m_x
IL_051F: ldc.i4.1
IL_0520: sub
IL_0521: ldloca.s 18 (ElectricityManager+PulseUnit)
IL_0523: ldfld System.Byte PulseUnit::m_z
IL_0528: ldloc.s 23 (System.Int32)
IL_052A: call System.Void ElectricityManager::ConductToCell(Cell& cell,
System.UInt16 group, System.Int32 x, System.Int32 z, System.Int32 limit)
IL_052F: Label36
IL_052F: ldloca.s 18 (ElectricityManager+PulseUnit)
IL_0531: ldfld System.Byte PulseUnit::m_z
IL_0536: ldc.i4 255
IL_053B: bge => Label37
IL_0540: ldarg.0
IL_0541: ldarg.0
IL_0542: ldfld Cell[] ElectricityManager::m_electricityGrid
IL_0547: ldloc.s 20 (System.Int32)
IL_0549: ldc.i4 256
IL_054E: add
IL_054F: ldelema ElectricityManager+Cell
IL_0554: ldloca.s 18 (ElectricityManager+PulseUnit)
IL_0556: ldfld System.UInt16 PulseUnit::m_group
IL_055B: ldloca.s 18 (ElectricityManager+PulseUnit)
IL_055D: ldfld System.Byte PulseUnit::m_x
IL_0562: ldloca.s 18 (ElectricityManager+PulseUnit)
IL_0564: ldfld System.Byte PulseUnit::m_z
IL_0569: ldc.i4.1
IL_056A: add
IL_056B: ldloc.s 23 (System.Int32)
IL_056D: call System.Void ElectricityManager::ConductToCell(Cell& cell,
System.UInt16 group, System.Int32 x, System.Int32 z, System.Int32 limit)
IL_0572: Label37
IL_0572: ldloca.s 18 (ElectricityManager+PulseUnit)
IL_0574: ldfld System.Byte PulseUnit::m_x
IL_0579: ldc.i4 255
IL_057E: bge => Label38
IL_0583: ldarg.0
IL_0584: ldarg.0
IL_0585: ldfld Cell[] ElectricityManager::m_electricityGrid
IL_058A: ldloc.s 20 (System.Int32)
IL_058C: ldc.i4.1
IL_058D: add
IL_058E: ldelema ElectricityManager+Cell
IL_0593: ldloca.s 18 (ElectricityManager+PulseUnit)
IL_0595: ldfld System.UInt16 PulseUnit::m_group
IL_059A: ldloca.s 18 (ElectricityManager+PulseUnit)
IL_059C: ldfld System.Byte PulseUnit::m_x
IL_05A1: ldc.i4.1
IL_05A2: add
IL_05A3: ldloca.s 18 (ElectricityManager+PulseUnit)
IL_05A5: ldfld System.Byte PulseUnit::m_z
IL_05AA: ldloc.s 23 (System.Int32)
IL_05AC: call System.Void ElectricityManager::ConductToCell(Cell& cell,
System.UInt16 group, System.Int32 x, System.Int32 z, System.Int32 limit)
IL_05B1: Label38
IL_05B1: ldarg.0
IL_05B2: ldloca.s 18 (ElectricityManager+PulseUnit)
IL_05B4: ldfld System.UInt16 PulseUnit::m_group
IL_05B9: ldloca.s 18 (ElectricityManager+PulseUnit)
IL_05BB: ldfld System.Byte PulseUnit::m_x
IL_05C0: ldloca.s 18 (ElectricityManager+PulseUnit)
IL_05C2: ldfld System.Byte PulseUnit::m_z
IL_05C7: call System.Void ElectricityManager::ConductToNodes(System.UInt16
group, System.Int32 cellX, System.Int32 cellZ)
IL_05CC: br => Label39
IL_05D1: Label32
IL_05D1: ldarg.0
IL_05D2: ldfld PulseUnit[] ElectricityManager::m_pulseUnits
IL_05D7: ldarg.0
IL_05D8: ldfld System.Int32 ElectricityManager::m_pulseUnitEnd
IL_05DD: ldelema ElectricityManager+PulseUnit
IL_05E2: ldloc.s 18 (ElectricityManager+PulseUnit)
IL_05E4: stobj ElectricityManager+PulseUnit
IL_05E9: ldarg.0
IL_05EA: dup
IL_05EB: ldfld System.Int32 ElectricityManager::m_pulseUnitEnd
IL_05F0: ldc.i4.1
IL_05F1: add
IL_05F2: dup
IL_05F3: stloc.s 15 (System.Int32)
IL_05F5: stfld System.Int32 ElectricityManager::m_pulseUnitEnd
IL_05FA: ldloc.s 15 (System.Int32)
IL_05FC: ldarg.0
IL_05FD: ldfld PulseUnit[] ElectricityManager::m_pulseUnits
IL_0602: ldlen
IL_0603: conv.i4
IL_0604: bne.un => Label40
IL_0609: ldarg.0
IL_060A: ldc.i4.0
IL_060B: stfld System.Int32 ElectricityManager::m_pulseUnitEnd
IL_0610: Label39
IL_0610: Label40
IL_0610: br => Label41
IL_0615: Label27
IL_0615: ldloc.s 19 (System.UInt32)
IL_0617: brfalse => Label42
IL_061C: ldarg.0
IL_061D: dup
IL_061E: ldfld System.Int32 ElectricityManager::m_processedCells
IL_0623: ldc.i4.1
IL_0624: add
IL_0625: stfld System.Int32 ElectricityManager::m_processedCells
IL_062A: call static NetManager
ColossalFramework.Singleton`1<NetManager>::get_instance()
IL_062F: ldfld Array16`1<NetNode> NetManager::m_nodes
IL_0634: ldfld NetNode[] Array16`1<NetNode>::m_buffer
IL_0639: ldloca.s 18 (ElectricityManager+PulseUnit)
IL_063B: ldfld System.UInt16 PulseUnit::m_node
IL_0640: ldelema NetNode
IL_0645: ldobj NetNode
IL_064A: stloc.s 24 (NetNode)
IL_064C: ldloca.s 24 (NetNode)
IL_064E: ldfld Flags NetNode::m_flags
IL_0653: brfalse => Label43
IL_0658: ldloca.s 24 (NetNode)
IL_065A: ldfld System.UInt32 NetNode::m_buildIndex
IL_065F: ldloc.0
IL_0660: ldc.i4.s -128
IL_0662: and
IL_0663: bge.un => Label44
IL_0668: ldarg.0
IL_0669: ldloca.s 18 (ElectricityManager+PulseUnit)
IL_066B: ldfld System.UInt16 PulseUnit::m_group
IL_0670: ldloca.s 24 (NetNode)
IL_0672: ldflda UnityEngine.Vector3 NetNode::m_position
IL_0677: ldfld System.Single UnityEngine.Vector3::x
IL_067C: ldloca.s 24 (NetNode)
IL_067E: ldflda UnityEngine.Vector3 NetNode::m_position
IL_0683: ldfld System.Single UnityEngine.Vector3::z
IL_0688: call System.Void ElectricityManager::ConductToCells(System.UInt16
group, System.Single worldX, System.Single worldZ)
IL_068D: ldc.i4.0
IL_068E: stloc.s 25 (System.Int32)
IL_0690: br => Label45
IL_0695: Label49
IL_0695: ldloca.s 24 (NetNode)
IL_0697: ldloc.s 25 (System.Int32)
IL_0699: call System.UInt16 NetNode::GetSegment(System.Int32 index)
IL_069E: stloc.s 26 (System.UInt16)
IL_06A0: ldloc.s 26 (System.UInt16)
IL_06A2: brfalse => Label46
IL_06A7: call static NetManager
ColossalFramework.Singleton`1<NetManager>::get_instance()
IL_06AC: ldfld Array16`1<NetSegment> NetManager::m_segments
IL_06B1: ldfld NetSegment[] Array16`1<NetSegment>::m_buffer
IL_06B6: ldloc.s 26 (System.UInt16)
IL_06B8: ldelema NetSegment
IL_06BD: ldfld System.UInt16 NetSegment::m_startNode
IL_06C2: stloc.s 27 (System.UInt16)
IL_06C4: call static NetManager
ColossalFramework.Singleton`1<NetManager>::get_instance()
IL_06C9: ldfld Array16`1<NetSegment> NetManager::m_segments
IL_06CE: ldfld NetSegment[] Array16`1<NetSegment>::m_buffer
IL_06D3: ldloc.s 26 (System.UInt16)
IL_06D5: ldelema NetSegment
IL_06DA: ldfld System.UInt16 NetSegment::m_endNode
IL_06DF: stloc.s 28 (System.UInt16)
IL_06E1: ldloc.s 27 (System.UInt16)
IL_06E3: ldloca.s 18 (ElectricityManager+PulseUnit)
IL_06E5: ldfld System.UInt16 PulseUnit::m_node
IL_06EA: bne.un => Label47
IL_06EF: ldloc.s 28 (System.UInt16)
IL_06F1: br => Label48
IL_06F6: Label47
IL_06F6: ldloc.s 27 (System.UInt16)
IL_06F8: Label48
IL_06F8: stloc.s 29 (System.UInt16)
IL_06FA: ldarg.0
IL_06FB: ldloc.s 29 (System.UInt16)
IL_06FD: call static NetManager
ColossalFramework.Singleton`1<NetManager>::get_instance()
IL_0702: ldfld Array16`1<NetNode> NetManager::m_nodes
IL_0707: ldfld NetNode[] Array16`1<NetNode>::m_buffer
IL_070C: ldloc.s 29 (System.UInt16)
IL_070E: ldelema NetNode
IL_0713: ldloca.s 18 (ElectricityManager+PulseUnit)
IL_0715: ldfld System.UInt16 PulseUnit::m_group
IL_071A: ldc.r4 -100000
IL_071F: ldc.r4 -100000
IL_0724: ldc.r4 100000
IL_0729: ldc.r4 100000
IL_072E: call System.Void ElectricityManager::ConductToNode(System.UInt16
nodeIndex, NetNode& node, System.UInt16 group, System.Single minX, System.Single
minZ, System.Single maxX, System.Single maxZ)
IL_0733: Label46
IL_0733: ldloc.s 25 (System.Int32)
IL_0735: ldc.i4.1
IL_0736: add
IL_0737: stloc.s 25 (System.Int32)
IL_0739: Label45
IL_0739: ldloc.s 25 (System.Int32)
IL_073B: ldc.i4.8
IL_073C: blt => Label49
IL_0741: Label43
IL_0741: Label44
IL_0741: br => Label50
IL_0746: Label42
IL_0746: ldarg.0
IL_0747: ldfld PulseUnit[] ElectricityManager::m_pulseUnits
IL_074C: ldarg.0
IL_074D: ldfld System.Int32 ElectricityManager::m_pulseUnitEnd
IL_0752: ldelema ElectricityManager+PulseUnit
IL_0757: ldloc.s 18 (ElectricityManager+PulseUnit)
IL_0759: stobj ElectricityManager+PulseUnit
IL_075E: ldarg.0
IL_075F: dup
IL_0760: ldfld System.Int32 ElectricityManager::m_pulseUnitEnd
IL_0765: ldc.i4.1
IL_0766: add
IL_0767: dup
IL_0768: stloc.s 15 (System.Int32)
IL_076A: stfld System.Int32 ElectricityManager::m_pulseUnitEnd
IL_076F: ldloc.s 15 (System.Int32)
IL_0771: ldarg.0
IL_0772: ldfld PulseUnit[] ElectricityManager::m_pulseUnits
IL_0777: ldlen
IL_0778: conv.i4
IL_0779: bne.un => Label51
IL_077E: ldarg.0
IL_077F: ldc.i4.0
IL_0780: stfld System.Int32 ElectricityManager::m_pulseUnitEnd
IL_0785: Label25
IL_0785: Label41
IL_0785: Label50
IL_0785: Label51
IL_0785: ldarg.0
IL_0786: ldfld System.Int32 ElectricityManager::m_pulseUnitStart
IL_078B: ldloc.s 17 (System.Int32)
IL_078D: bne.un => Label52
IL_0792: Label24
IL_0792: ldarg.0
IL_0793: ldfld System.Boolean ElectricityManager::m_canContinue
IL_0798: brfalse => Label53
IL_079D: ldarg.0
IL_079E: ldfld System.Int32 ElectricityManager::m_processedCells
IL_07A3: ldloc.s 16 (System.Int32)
IL_07A5: blt => Label54
IL_07AA: Label53
IL_07AA: ldloc.1
IL_07AB: ldc.i4 255
IL_07B0: bne.un => Label55
IL_07B5: ldc.i4.0
IL_07B6: stloc.s 30 (System.Int32)
IL_07B8: br => Label56
IL_07BD: Label58
IL_07BD: ldarg.0
IL_07BE: ldfld PulseGroup[] ElectricityManager::m_pulseGroups
IL_07C3: ldloc.s 30 (System.Int32)
IL_07C5: ldelema ElectricityManager+PulseGroup
IL_07CA: ldobj ElectricityManager+PulseGroup
IL_07CF: stloc.s 31 (ElectricityManager+PulseGroup)
IL_07D1: ldloca.s 31 (ElectricityManager+PulseGroup)
IL_07D3: ldfld System.UInt16 PulseGroup::m_mergeIndex
IL_07D8: ldc.i4 65535
IL_07DD: beq => Label57
IL_07E2: ldarg.0
IL_07E3: ldfld PulseGroup[] ElectricityManager::m_pulseGroups
IL_07E8: ldloca.s 31 (ElectricityManager+PulseGroup)
IL_07EA: ldfld System.UInt16 PulseGroup::m_mergeIndex
IL_07EF: ldelema ElectricityManager+PulseGroup
IL_07F4: ldobj ElectricityManager+PulseGroup
IL_07F9: stloc.s 32 (ElectricityManager+PulseGroup)
IL_07FB: ldloca.s 31 (ElectricityManager+PulseGroup)
IL_07FD: ldloca.s 32 (ElectricityManager+PulseGroup)
IL_07FF: ldfld System.UInt32 PulseGroup::m_curCharge
IL_0804: conv.u8
IL_0805: ldloca.s 31 (ElectricityManager+PulseGroup)
IL_0807: ldfld System.UInt32 PulseGroup::m_origCharge
IL_080C: conv.u8
IL_080D: mul
IL_080E: ldloca.s 32 (ElectricityManager+PulseGroup)
IL_0810: ldfld System.UInt32 PulseGroup::m_origCharge
IL_0815: conv.u8
IL_0816: div.un
IL_0817: conv.u4
IL_0818: stfld System.UInt32 PulseGroup::m_curCharge
IL_081D: ldloca.s 32 (ElectricityManager+PulseGroup)
IL_081F: dup
IL_0820: ldfld System.UInt32 PulseGroup::m_curCharge
IL_0825: ldloca.s 31 (ElectricityManager+PulseGroup)
IL_0827: ldfld System.UInt32 PulseGroup::m_curCharge
IL_082C: sub
IL_082D: stfld System.UInt32 PulseGroup::m_curCharge
IL_0832: ldloca.s 32 (ElectricityManager+PulseGroup)
IL_0834: dup
IL_0835: ldfld System.UInt32 PulseGroup::m_origCharge
IL_083A: ldloca.s 31 (ElectricityManager+PulseGroup)
IL_083C: ldfld System.UInt32 PulseGroup::m_origCharge
IL_0841: sub
IL_0842: stfld System.UInt32 PulseGroup::m_origCharge
IL_0847: ldarg.0
IL_0848: ldfld PulseGroup[] ElectricityManager::m_pulseGroups
IL_084D: ldloca.s 31 (ElectricityManager+PulseGroup)
IL_084F: ldfld System.UInt16 PulseGroup::m_mergeIndex
IL_0854: ldelema ElectricityManager+PulseGroup
IL_0859: ldloc.s 32 (ElectricityManager+PulseGroup)
IL_085B: stobj ElectricityManager+PulseGroup
IL_0860: ldarg.0
IL_0861: ldfld PulseGroup[] ElectricityManager::m_pulseGroups
IL_0866: ldloc.s 30 (System.Int32)
IL_0868: ldelema ElectricityManager+PulseGroup
IL_086D: ldloc.s 31 (ElectricityManager+PulseGroup)
IL_086F: stobj ElectricityManager+PulseGroup
IL_0874: Label57
IL_0874: ldloc.s 30 (System.Int32)
IL_0876: ldc.i4.1
IL_0877: add
IL_0878: stloc.s 30 (System.Int32)
IL_087A: Label56
IL_087A: ldloc.s 30 (System.Int32)
IL_087C: ldarg.0
IL_087D: ldfld System.Int32 ElectricityManager::m_pulseGroupCount
IL_0882: blt => Label58
IL_0887: ldc.i4.0
IL_0888: stloc.s 33 (System.Int32)
IL_088A: br => Label59
IL_088F: Label62
IL_088F: ldarg.0
IL_0890: ldfld PulseGroup[] ElectricityManager::m_pulseGroups
IL_0895: ldloc.s 33 (System.Int32)
IL_0897: ldelema ElectricityManager+PulseGroup
IL_089C: ldobj ElectricityManager+PulseGroup
IL_08A1: stloc.s 34 (ElectricityManager+PulseGroup)
IL_08A3: ldloca.s 34 (ElectricityManager+PulseGroup)
IL_08A5: ldfld System.UInt32 PulseGroup::m_curCharge
IL_08AA: brfalse => Label60
IL_08AF: ldloca.s 34 (ElectricityManager+PulseGroup)
IL_08B1: ldfld System.Byte PulseGroup::m_z
IL_08B6: ldc.i4 256
IL_08BB: mul
IL_08BC: ldloca.s 34 (ElectricityManager+PulseGroup)
IL_08BE: ldfld System.Byte PulseGroup::m_x
IL_08C3: add
IL_08C4: stloc.s 35 (System.Int32)
IL_08C6: ldarg.0
IL_08C7: ldfld Cell[] ElectricityManager::m_electricityGrid
IL_08CC: ldloc.s 35 (System.Int32)
IL_08CE: ldelema ElectricityManager+Cell
IL_08D3: ldobj ElectricityManager+Cell
IL_08D8: stloc.s 36 (ElectricityManager+Cell)
IL_08DA: ldloca.s 36 (ElectricityManager+Cell)
IL_08DC: ldfld System.Byte Cell::m_conductivity
IL_08E1: brfalse => Label61
IL_08E6: ldloca.s 36 (ElectricityManager+Cell)
IL_08E8: dup
IL_08E9: ldfld System.UInt16 Cell::m_extraCharge
IL_08EE: ldloca.s 34 (ElectricityManager+PulseGroup)
IL_08F0: ldfld System.UInt32 PulseGroup::m_curCharge
IL_08F5: ldc.i4 32767
IL_08FA: ldloca.s 36 (ElectricityManager+Cell)
IL_08FC: ldfld System.UInt16 Cell::m_extraCharge
IL_0901: sub
IL_0902: call static System.Int32 UnityEngine.Mathf::Min(System.Int32 a,
System.Int32 b)
IL_0907: conv.u2
IL_0908: add
IL_0909: conv.u2
IL_090A: stfld System.UInt16 Cell::m_extraCharge
IL_090F: Label61
IL_090F: ldarg.0
IL_0910: ldfld Cell[] ElectricityManager::m_electricityGrid
IL_0915: ldloc.s 35 (System.Int32)
IL_0917: ldelema ElectricityManager+Cell
IL_091C: ldloc.s 36 (ElectricityManager+Cell)
IL_091E: stobj ElectricityManager+Cell
IL_0923: Label60
IL_0923: ldloc.s 33 (System.Int32)
IL_0925: ldc.i4.1
IL_0926: add
IL_0927: stloc.s 33 (System.Int32)
IL_0929: Label59
IL_0929: ldloc.s 33 (System.Int32)
IL_092B: ldarg.0
IL_092C: ldfld System.Int32 ElectricityManager::m_pulseGroupCount
IL_0931: blt => Label62
IL_0936: // end original
IL_0936: Label0
IL_0936: Label1
IL_0936: Label22
IL_0936: Label55
IL_0936: ret
DONE

### Patch: System.Void ElectricityManager::ConductToNode(System.UInt16 nodeIndex,


NetNode& node, System.UInt16 group, System.Single minX, System.Single minZ,
System.Single maxX, System.Single maxZ)
### Replacement: static System.Void
ElectricityManager::ElectricityManager.ConductToNode_Patch0(ElectricityManager
this, System.UInt16 nodeIndex, NetNode& node, System.UInt16 group, System.Single
minX, System.Single minZ, System.Single maxX, System.Single maxZ)
IL_0000: Local var 0: NetInfo
IL_0000: Local var 1: ElectricityManager/PulseUnit
IL_0000: Local var 2: System.Int32
IL_0000: Local var 3: System.UInt16
IL_0000: // start original
IL_0000: ldarg.2
IL_0001: ldflda UnityEngine.Vector3 NetNode::m_position
IL_0006: ldfld System.Single UnityEngine.Vector3::x
IL_000B: ldarg.s 4
IL_000D: blt.un => Label0
IL_0012: ldarg.2
IL_0013: ldflda UnityEngine.Vector3 NetNode::m_position
IL_0018: ldfld System.Single UnityEngine.Vector3::z
IL_001D: ldarg.s 5
IL_001F: blt.un => Label1
IL_0024: ldarg.2
IL_0025: ldflda UnityEngine.Vector3 NetNode::m_position
IL_002A: ldfld System.Single UnityEngine.Vector3::x
IL_002F: ldarg.s 6
IL_0031: bgt.un => Label2
IL_0036: ldarg.2
IL_0037: ldflda UnityEngine.Vector3 NetNode::m_position
IL_003C: ldfld System.Single UnityEngine.Vector3::z
IL_0041: ldarg.s 7
IL_0043: bgt.un => Label3
IL_0048: ldarg.2
IL_0049: call static System.Boolean
ElectricRoads.Overrides.ElectricRoadsOverrides::CheckElectricConductibility(NetNode
& node)
IL_004E: brfalse => Label5
IL_0053: Label4
IL_0053: ldarg.0
IL_0054: ldfld System.UInt16[] ElectricityManager::m_nodeGroups
IL_0059: ldarg.1
IL_005A: ldelem.u2
IL_005B: ldc.i4 65535
IL_0060: bne.un => Label6
IL_0065: ldloca.s 1 (ElectricityManager+PulseUnit)
IL_0067: ldarg.3
IL_0068: stfld System.UInt16 PulseUnit::m_group
IL_006D: ldloca.s 1 (ElectricityManager+PulseUnit)
IL_006F: ldarg.1
IL_0070: stfld System.UInt16 PulseUnit::m_node
IL_0075: ldloca.s 1 (ElectricityManager+PulseUnit)
IL_0077: ldc.i4.0
IL_0078: stfld System.Byte PulseUnit::m_x
IL_007D: ldloca.s 1 (ElectricityManager+PulseUnit)
IL_007F: ldc.i4.0
IL_0080: stfld System.Byte PulseUnit::m_z
IL_0085: ldarg.0
IL_0086: ldfld PulseUnit[] ElectricityManager::m_pulseUnits
IL_008B: ldarg.0
IL_008C: ldfld System.Int32 ElectricityManager::m_pulseUnitEnd
IL_0091: ldelema ElectricityManager+PulseUnit
IL_0096: ldloc.1
IL_0097: stobj ElectricityManager+PulseUnit
IL_009C: ldarg.0
IL_009D: dup
IL_009E: ldfld System.Int32 ElectricityManager::m_pulseUnitEnd
IL_00A3: ldc.i4.1
IL_00A4: add
IL_00A5: dup
IL_00A6: stloc.2
IL_00A7: stfld System.Int32 ElectricityManager::m_pulseUnitEnd
IL_00AC: ldloc.2
IL_00AD: ldarg.0
IL_00AE: ldfld PulseUnit[] ElectricityManager::m_pulseUnits
IL_00B3: ldlen
IL_00B4: conv.i4
IL_00B5: bne.un => Label7
IL_00BA: ldarg.0
IL_00BB: ldc.i4.0
IL_00BC: stfld System.Int32 ElectricityManager::m_pulseUnitEnd
IL_00C1: Label7
IL_00C1: ldarg.0
IL_00C2: ldfld System.UInt16[] ElectricityManager::m_nodeGroups
IL_00C7: ldarg.1
IL_00C8: ldarg.3
IL_00C9: stelem.i2
IL_00CA: ldarg.0
IL_00CB: ldc.i4.1
IL_00CC: stfld System.Boolean ElectricityManager::m_canContinue
IL_00D1: br => Label8
IL_00D6: Label6
IL_00D6: ldarg.0
IL_00D7: ldarg.0
IL_00D8: ldfld System.UInt16[] ElectricityManager::m_nodeGroups
IL_00DD: ldarg.1
IL_00DE: ldelem.u2
IL_00DF: call System.UInt16 ElectricityManager::GetRootGroup(System.UInt16
group)
IL_00E4: stloc.3
IL_00E5: ldloc.3
IL_00E6: ldarg.3
IL_00E7: beq => Label9
IL_00EC: ldarg.0
IL_00ED: ldarg.3
IL_00EE: ldloc.3
IL_00EF: call System.Void ElectricityManager::MergeGroups(System.UInt16 root,
System.UInt16 merged)
IL_00F4: ldarg.0
IL_00F5: ldfld System.UInt16[] ElectricityManager::m_nodeGroups
IL_00FA: ldarg.1
IL_00FB: ldarg.3
IL_00FC: stelem.i2
IL_00FD: ldarg.0
IL_00FE: ldc.i4.1
IL_00FF: stfld System.Boolean ElectricityManager::m_canContinue
IL_0104: // end original
IL_0104: Label0
IL_0104: Label1
IL_0104: Label2
IL_0104: Label3
IL_0104: Label5
IL_0104: Label8
IL_0104: Label9
IL_0104: ret
DONE

### Patch: System.Void ElectricityManager::UpdateNodeElectricity(System.Int32


nodeID, System.Int32 value)
### Replacement: static System.Void
ElectricityManager::ElectricityManager.UpdateNodeElectricity_Patch2(ElectricityMana
ger this, System.Int32 nodeID, System.Int32 value)
IL_0000: Local var 0: InfoManager/InfoMode
IL_0000: Local var 1: NetManager
IL_0000: Local var 2: System.Boolean
IL_0000: Local var 3: NetNode/Flags
IL_0000: Local var 4: System.UInt16
IL_0000: Local var 5: BuildingManager
IL_0000: Local var 6: NetNode/Flags
IL_0000: Local var 7: System.Int32
IL_0000: Local var 8: System.UInt16
IL_0000: Local var 9: System.Boolean
IL_0000: Local var 10: System.Boolean
IL_0000: ldc.i4 0
IL_0005: stloc 9 (System.Boolean)
IL_0009: ldc.i4.1
IL_000A: stloc 9 (System.Boolean)
IL_000E: ldc.i4 0
IL_0013: stloc 10 (System.Boolean)
IL_0017: ldloc 9 (System.Boolean)
IL_001B: brfalse => Label1
IL_0020: ldarga 1
IL_0024: ldloca 10 (System.Boolean)
IL_0028: call static System.Void
ElectricRoads.Overrides.ElectricRoadsOverrides::PreConduct(System.Int32& nodeID,
System.Boolean& __state)
IL_002D: Label1
IL_002D: nop
IL_002E: ldloc 9 (System.Boolean)
IL_0032: brfalse => Label0
IL_0037: // start original
IL_0037: call static InfoManager
ColossalFramework.Singleton`1<InfoManager>::get_instance()
IL_003C: callvirt InfoMode InfoManager::get_CurrentMode()
IL_0041: stloc.0
IL_0042: call static NetManager
ColossalFramework.Singleton`1<NetManager>::get_instance()
IL_0047: stloc.1
IL_0048: ldc.i4.0
IL_0049: stloc.2
IL_004A: ldloc.1
IL_004B: ldfld Array16`1<NetNode> NetManager::m_nodes
IL_0050: ldfld NetNode[] Array16`1<NetNode>::m_buffer
IL_0055: ldarg.1
IL_0056: ldelema NetNode
IL_005B: ldfld Flags NetNode::m_flags
IL_0060: stloc.3
IL_0061: ldarg.1
IL_0062: call static System.Boolean
ElectricRoads.Overrides.ElectricRoadsOverrides::CheckNodeTransition(System.Int32
nodeID)
IL_0067: brfalse => Label2
IL_006C: ldloc.1
IL_006D: ldfld Array16`1<NetNode> NetManager::m_nodes
IL_0072: ldfld NetNode[] Array16`1<NetNode>::m_buffer
IL_0077: ldarg.1
IL_0078: ldelema NetNode
IL_007D: dup
IL_007E: ldfld Flags NetNode::m_flags
IL_0083: ldc.i4 -1048577
IL_0088: and
IL_0089: stfld Flags NetNode::m_flags
IL_008E: br => Label12
IL_0093: Label2
IL_0093: ldloc.1
IL_0094: ldfld Array16`1<NetNode> NetManager::m_nodes
IL_0099: ldfld NetNode[] Array16`1<NetNode>::m_buffer
IL_009E: ldarg.1
IL_009F: ldelema NetNode
IL_00A4: ldfld System.UInt16 NetNode::m_building
IL_00A9: stloc.s 4 (System.UInt16)
IL_00AB: ldloc.s 4 (System.UInt16)
IL_00AD: brfalse => Label3
IL_00B2: call static BuildingManager
ColossalFramework.Singleton`1<BuildingManager>::get_instance()
IL_00B7: stloc.s 5 (BuildingManager)
IL_00B9: ldloc.s 5 (BuildingManager)
IL_00BB: ldfld Array16`1<Building> BuildingManager::m_buildings
IL_00C0: ldfld Building[] Array16`1<Building>::m_buffer
IL_00C5: ldloc.s 4 (System.UInt16)
IL_00C7: ldelema Building
IL_00CC: ldfld System.UInt16 Building::m_electricityBuffer
IL_00D1: ldarg.2
IL_00D2: beq => Label4
IL_00D7: ldloc.s 5 (BuildingManager)
IL_00D9: ldfld Array16`1<Building> BuildingManager::m_buildings
IL_00DE: ldfld Building[] Array16`1<Building>::m_buffer
IL_00E3: ldloc.s 4 (System.UInt16)
IL_00E5: ldelema Building
IL_00EA: ldarg.2
IL_00EB: conv.u2
IL_00EC: stfld System.UInt16 Building::m_electricityBuffer
IL_00F1: ldloc.0
IL_00F2: ldc.i4.1
IL_00F3: ceq
IL_00F5: stloc.2
IL_00F6: Label4
IL_00F6: ldloc.2
IL_00F7: brfalse => Label5
IL_00FC: ldloc.s 5 (BuildingManager)
IL_00FE: ldloc.s 4 (System.UInt16)
IL_0100: callvirt System.Void BuildingManager::UpdateBuildingColors(System.UInt16
building)
IL_0105: Label3
IL_0105: Label5
IL_0105: ldloc.3
IL_0106: ldc.i4 -67108865
IL_010B: and
IL_010C: stloc.s 6 (NetNode+Flags)
IL_010E: ldarg.2
IL_010F: brfalse => Label6
IL_0114: ldloc.s 6 (NetNode+Flags)
IL_0116: ldc.i4 67108864
IL_011B: or
IL_011C: stloc.s 6 (NetNode+Flags)
IL_011E: Label6
IL_011E: ldloc.s 6 (NetNode+Flags)
IL_0120: ldloc.3
IL_0121: beq => Label7
IL_0126: ldloc.1
IL_0127: ldfld Array16`1<NetNode> NetManager::m_nodes
IL_012C: ldfld NetNode[] Array16`1<NetNode>::m_buffer
IL_0131: ldarg.1
IL_0132: ldelema NetNode
IL_0137: ldloc.s 6 (NetNode+Flags)
IL_0139: stfld Flags NetNode::m_flags
IL_013E: ldloc.0
IL_013F: ldc.i4.1
IL_0140: ceq
IL_0142: stloc.2
IL_0143: Label7
IL_0143: ldloc.2
IL_0144: brfalse => Label8
IL_0149: ldloc.1
IL_014A: ldarg.1
IL_014B: conv.u2
IL_014C: callvirt System.Void NetManager::UpdateNodeColors(System.UInt16 node)
IL_0151: ldc.i4.0
IL_0152: stloc.s 7 (System.Int32)
IL_0154: br => Label9
IL_0159: Label11
IL_0159: ldloc.1
IL_015A: ldfld Array16`1<NetNode> NetManager::m_nodes
IL_015F: ldfld NetNode[] Array16`1<NetNode>::m_buffer
IL_0164: ldarg.1
IL_0165: ldelema NetNode
IL_016A: ldloc.s 7 (System.Int32)
IL_016C: call System.UInt16 NetNode::GetSegment(System.Int32 index)
IL_0171: stloc.s 8 (System.UInt16)
IL_0173: ldloc.s 8 (System.UInt16)
IL_0175: brfalse => Label10
IL_017A: ldloc.1
IL_017B: ldloc.s 8 (System.UInt16)
IL_017D: callvirt System.Void NetManager::UpdateSegmentColors(System.UInt16
segment)
IL_0182: Label10
IL_0182: ldloc.s 7 (System.Int32)
IL_0184: ldc.i4.1
IL_0185: add
IL_0186: stloc.s 7 (System.Int32)
IL_0188: Label9
IL_0188: ldloc.s 7 (System.Int32)
IL_018A: ldc.i4.8
IL_018B: blt => Label11
IL_0190: // end original
IL_0190: Label8
IL_0190: Label12
IL_0190: Label0
IL_0190: ldarg 1
IL_0194: ldloc 10 (System.Boolean)
IL_0198: call static System.Void
ElectricRoads.Overrides.ElectricRoadsOverrides::PostConduct(System.Int32 nodeID,
System.Boolean __state)
IL_019D: ret
DONE

### Harmony id=NodeMarkup, version=2.0.4.0, location=E:\SteamLibrary\steamapps\


common\data-0000000022595390, env/clr=2.0.50727.1433, platform=Win32NT,
ptrsize:runtime/env=8/Bits64, Windows
### Started from System.Object ModsCommon.BasePatcherMod`1<TypeMod>::get_Harmony(),
location E:\SteamLibrary\steamapps\common\data-0000000023EF7040
### At 2023-02-07 02.24.35
### Patch: System.Void ToolController::Awake()
### Replacement: static System.Void
ToolController::ToolController.Awake_Patch0(ToolController this)
IL_0000: Local var 0: System.String[]
IL_0000: Local var 1: System.Int32
IL_0000: // start original
IL_0000: call static System.Void ModsCommon.BaseTool`2<NodeMarkup.Mod,
NodeMarkup.Tools.NodeMarkupTool>::Create()
IL_0005: call static LoadingManager
ColossalFramework.Singleton`1<LoadingManager>::get_instance()
IL_000A: ldfld LoadingProfiler LoadingManager::m_loadingProfilerMain
IL_000F: ldstr "ToolController"
IL_0014: callvirt System.Void LoadingProfiler::BeginLoading(System.String name)
IL_0019: ldarg.0
IL_001A: ldc.i4 4096
IL_001F: newarr System.Single
IL_0024: stfld System.Single[] ToolController::m_brushData
IL_0029: ldarg.0
IL_002A: ldarg.0
IL_002B: call ToolBase[] UnityEngine.Component::GetComponents()
IL_0030: stfld ToolBase[] ToolController::m_tools
IL_0035: ldarg.0
IL_0036: ldarg.0
IL_0037: ldfld UnityEngine.Material ToolController::m_brushMaterial
IL_003C: newobj System.Void UnityEngine.Material::.ctor(UnityEngine.Material
source)
IL_0041: stfld UnityEngine.Material ToolController::m_brushMaterial2
IL_0046: ldarg.0
IL_0047: ldstr "_BrushTex"
IL_004C: call static System.Int32
UnityEngine.Shader::PropertyToID(System.String name)
IL_0051: stfld System.Int32 ToolController::ID_BrushTex
IL_0056: ldarg.0
IL_0057: ldstr "_BrushWS"
IL_005C: call static System.Int32
UnityEngine.Shader::PropertyToID(System.String name)
IL_0061: stfld System.Int32 ToolController::ID_BrushWS
IL_0066: ldarg.0
IL_0067: ldc.i4 576
IL_006C: newarr System.UInt64
IL_0071: stfld System.UInt64[] ToolController::m_collidingSegments1
IL_0076: ldarg.0
IL_0077: ldc.i4 576
IL_007C: newarr System.UInt64
IL_0081: stfld System.UInt64[] ToolController::m_collidingSegments2
IL_0086: ldarg.0
IL_0087: ldc.i4 768
IL_008C: newarr System.UInt64
IL_0091: stfld System.UInt64[] ToolController::m_collidingBuildings1
IL_0096: ldarg.0
IL_0097: ldc.i4 768
IL_009C: newarr System.UInt64
IL_00A1: stfld System.UInt64[] ToolController::m_collidingBuildings2
IL_00A6: ldarg.0
IL_00A7: ldc.i4.0
IL_00A8: stfld System.Int32 ToolController::m_collidingDepth
IL_00AD: ldarg.0
IL_00AE: ldarg.0
IL_00AF: call DefaultTool UnityEngine.Component::GetComponent()
IL_00B4: call System.Void ToolController::set_CurrentTool(ToolBase value)
IL_00B9: call static ToolManager
ColossalFramework.Singleton`1<ToolManager>::get_instance()
IL_00BE: ldarg.0
IL_00BF: callvirt virtual System.Void SimulationManagerBase`2<ToolManager,
ToolController>::InitializeProperties(ToolController properties)
IL_00C4: call static System.Void ColossalFramework.UI.UIView::PopAllModal()
IL_00C9: ldarg.0
IL_00CA: call static System.Boolean UnityEngine.Application::get_isEditor()
IL_00CF: stfld System.Boolean ToolController::m_enableDevUI
IL_00D4: ldarg.0
IL_00D5: ldfld System.Boolean ToolController::m_enableDevUI
IL_00DA: brtrue => Label0
IL_00DF: ldstr "dev"
IL_00E4: call static System.Boolean System.IO.File::Exists(System.String
path)
IL_00E9: brfalse => Label1
IL_00EE: ldarg.0
IL_00EF: ldc.i4.1
IL_00F0: stfld System.Boolean ToolController::m_enableDevUI
IL_00F5: Label1
IL_00F5: ldsfld System.String[] ColossalFramework.CommandLine::arguments
IL_00FA: stloc.0
IL_00FB: ldloc.0
IL_00FC: brfalse => Label2
IL_0101: ldc.i4.0
IL_0102: stloc.1
IL_0103: br => Label3
IL_0108: Label6
IL_0108: ldloc.0
IL_0109: ldloc.1
IL_010A: ldelem.ref
IL_010B: ldstr "--enable-dev-ui"
IL_0110: call static System.Boolean System.String::op_Equality(System.String
a, System.String b)
IL_0115: brfalse => Label4
IL_011A: ldarg.0
IL_011B: ldc.i4.1
IL_011C: stfld System.Boolean ToolController::m_enableDevUI
IL_0121: br => Label5
IL_0126: Label4
IL_0126: ldloc.1
IL_0127: ldc.i4.1
IL_0128: add
IL_0129: stloc.1
IL_012A: Label3
IL_012A: ldloc.1
IL_012B: ldloc.0
IL_012C: ldlen
IL_012D: conv.i4
IL_012E: blt => Label6
IL_0133: Label0
IL_0133: Label2
IL_0133: Label5
IL_0133: call static LoadingManager
ColossalFramework.Singleton`1<LoadingManager>::get_instance()
IL_0138: ldarg.0
IL_0139: ldftn System.Void ToolController::ResetTool()
IL_013F: newobj System.Void LevelPreLoadedHandler::.ctor(System.Object object,
System.IntPtr method)
IL_0144: callvirt System.Void
LoadingManager::add_m_levelPreLoaded(LevelPreLoadedHandler value)
IL_0149: call static LoadingManager
ColossalFramework.Singleton`1<LoadingManager>::get_instance()
IL_014E: ldfld LoadingProfiler LoadingManager::m_loadingProfilerMain
IL_0153: callvirt System.Void LoadingProfiler::EndLoading()
IL_0158: // end original
IL_0158: ret
DONE

### Harmony id=NodeMarkup, version=2.0.4.0, location=E:\SteamLibrary\steamapps\


common\data-0000000022595390, env/clr=2.0.50727.1433, platform=Win32NT,
ptrsize:runtime/env=8/Bits64, Windows
### Started from System.Object ModsCommon.BasePatcherMod`1<TypeMod>::get_Harmony(),
location E:\SteamLibrary\steamapps\common\data-0000000023EF7040
### At 2023-02-07 02.24.35
### Patch: OptionPanelBase GeneratedScrollPanel::CreateOptionPanel(System.String
templateName)
### Replacement: static OptionPanelBase
GeneratedScrollPanel::GeneratedScrollPanel.CreateOptionPanel_Patch1(GeneratedScroll
Panel this, System.String templateName)
IL_0000: Local var 0: System.String
IL_0000: Local var 1: ColossalFramework.UI.UIComponent
IL_0000: Local var 2: ColossalFramework.UI.UIComponent
IL_0000: Local var 3: System.String
IL_0000: Local var 4: UnityEngine.Vector2
IL_0000: Local var 5: ColossalFramework.UI.UIComponent
IL_0000: Local var 6: TutorialUITag[]
IL_0000: Local var 7: System.Int32
IL_0000: Local var 8: OptionPanelBase
IL_0000: ldnull
IL_0001: stloc 8 (OptionPanelBase)
IL_0005: // start original
IL_0005: ldarg.0
IL_0006: ldfld ColossalFramework.UI.UIComponent
GeneratedScrollPanel::m_OptionsBar
IL_000B: ldnull
IL_000C: call static System.Boolean
UnityEngine.Object::op_Inequality(UnityEngine.Object x, UnityEngine.Object y)
IL_0011: brfalse => Label0
IL_0016: ldarg.0
IL_0017: call System.Type System.Object::GetType()
IL_001C: callvirt virtual System.String System.Object::ToString()
IL_0021: stloc.0
IL_0022: ldarg.0
IL_0023: ldfld ColossalFramework.UI.UIComponent
GeneratedScrollPanel::m_OptionsBar
IL_0028: ldarg.1
IL_0029: ldstr "("
IL_002E: ldloc.0
IL_002F: ldstr ")"
IL_0034: call static System.String System.String::Concat(System.String str0,
System.String str1, System.String str2, System.String str3)
IL_0039: callvirt ColossalFramework.UI.UIComponent
ColossalFramework.UI.UIComponent::Find(System.String searchName)
IL_003E: stloc.1
IL_003F: ldloc.1
IL_0040: ldnull
IL_0041: call static System.Boolean
UnityEngine.Object::op_Equality(UnityEngine.Object x, UnityEngine.Object y)
IL_0046: brfalse => Label1
IL_004B: ldarg.0
IL_004C: ldfld ColossalFramework.UI.UIComponent
GeneratedScrollPanel::m_OptionsBar
IL_0051: ldarg.1
IL_0052: callvirt ColossalFramework.UI.UIComponent
ColossalFramework.UI.UIComponent::Find(System.String searchName)
IL_0057: stloc.2
IL_0058: ldloc.2
IL_0059: ldnull
IL_005A: call static System.Boolean
UnityEngine.Object::op_Inequality(UnityEngine.Object x, UnityEngine.Object y)
IL_005F: brfalse => Label2
IL_0064: ldloc.2
IL_0065: callvirt System.String UnityEngine.Object::get_name()
IL_006A: stloc.3
IL_006B: ldloc.2
IL_006C: callvirt UnityEngine.Vector3
ColossalFramework.UI.UIComponent::get_relativePosition()
IL_0071: call static UnityEngine.Vector2
UnityEngine.Vector2::op_Implicit(UnityEngine.Vector3 v)
IL_0076: stloc.s 4 (UnityEngine.Vector2)
IL_0078: ldloc.2
IL_0079: call static ColossalFramework.UI.UIComponent
UnityEngine.Object::Instantiate(ColossalFramework.UI.UIComponent original)
IL_007E: stloc.s 5 (ColossalFramework.UI.UIComponent)
IL_0080: ldarg.0
IL_0081: ldfld ColossalFramework.UI.UIComponent
GeneratedScrollPanel::m_OptionsBar
IL_0086: ldloc.s 5 (ColossalFramework.UI.UIComponent)
IL_0088: callvirt UnityEngine.GameObject UnityEngine.Component::get_gameObject()
IL_008D: callvirt ColossalFramework.UI.UIComponent
ColossalFramework.UI.UIComponent::AttachUIComponent(UnityEngine.GameObject go)
IL_0092: stloc.1
IL_0093: ldloc.1
IL_0094: ldloc.3
IL_0095: ldstr "("
IL_009A: ldloc.0
IL_009B: ldstr ")"
IL_00A0: call static System.String System.String::Concat(System.String str0,
System.String str1, System.String str2, System.String str3)
IL_00A5: callvirt System.Void
ColossalFramework.UI.UIComponent::set_cachedName(System.String value)
IL_00AA: ldloc.1
IL_00AB: ldloc.s 4 (UnityEngine.Vector2)
IL_00AD: call static UnityEngine.Vector3
UnityEngine.Vector2::op_Implicit(UnityEngine.Vector2 v)
IL_00B2: callvirt System.Void
ColossalFramework.UI.UIComponent::set_relativePosition(UnityEngine.Vector3 value)
IL_00B7: ldloc.1
IL_00B8: callvirt TutorialUITag UnityEngine.Component::GetComponent()
IL_00BD: ldarg.0
IL_00BE: call ColossalFramework.UI.UIComponent
ColossalFramework.UI.UICustomControl::get_component()
IL_00C3: stfld ColossalFramework.UI.UIComponent
TutorialUITag::m_ParentOverride
IL_00C8: ldloc.s 5 (ColossalFramework.UI.UIComponent)
IL_00CA: callvirt TutorialUITag[]
UnityEngine.Component::GetComponentsInChildren()
IL_00CF: stloc.s 6 (TutorialUITag[])
IL_00D1: ldc.i4.0
IL_00D2: stloc.s 7 (System.Int32)
IL_00D4: br => Label3
IL_00D9: Label4
IL_00D9: ldloc.s 6 (TutorialUITag[])
IL_00DB: ldloc.s 7 (System.Int32)
IL_00DD: ldelem.ref
IL_00DE: ldarg.0
IL_00DF: callvirt abstract virtual Service GeneratedScrollPanel::get_service()
IL_00E4: call static System.String
ColossalFramework.EnumExtensions::Name(Service en)
IL_00E9: ldloc.s 6 (TutorialUITag[])
IL_00EB: ldloc.s 7 (System.Int32)
IL_00ED: ldelem.ref
IL_00EE: ldfld System.String MonoTutorialTag::m_Tag
IL_00F3: call static System.String System.String::Concat(System.String str0,
System.String str1)
IL_00F8: callvirt System.Void MonoTutorialTag::set_tutorialTag(System.String
value)
IL_00FD: ldloc.s 7 (System.Int32)
IL_00FF: ldc.i4.1
IL_0100: add
IL_0101: stloc.s 7 (System.Int32)
IL_0103: Label3
IL_0103: ldloc.s 7 (System.Int32)
IL_0105: ldloc.s 6 (TutorialUITag[])
IL_0107: ldlen
IL_0108: conv.i4
IL_0109: blt => Label4
IL_010E: Label1
IL_010E: Label2
IL_010E: ldloc.1
IL_010F: ldnull
IL_0110: call static System.Boolean
UnityEngine.Object::op_Inequality(UnityEngine.Object x, UnityEngine.Object y)
IL_0115: brfalse => Label5
IL_011A: ldloc.1
IL_011B: callvirt OptionPanelBase UnityEngine.Component::GetComponent()
IL_0120: br => Label6
IL_0125: Label0
IL_0125: Label5
IL_0125: ldnull
IL_0126: // end original
IL_0126: Label6
IL_0126: stloc 8 (OptionPanelBase)
IL_012A: ldarg 1
IL_012E: ldloca 8 (OptionPanelBase)
IL_0132: call static System.Void
NodeMarkup.Patcher::GeneratedScrollPanelCreateOptionPanelPostfix(System.String
templateName, OptionPanelBase& __result)
IL_0137: ldloc 8 (OptionPanelBase)
IL_013B: ret
DONE

### Harmony id=NodeMarkup, version=2.0.4.0, location=E:\SteamLibrary\steamapps\


common\data-0000000022595390, env/clr=2.0.50727.1433, platform=Win32NT,
ptrsize:runtime/env=8/Bits64, Windows
### Started from System.Object ModsCommon.BasePatcherMod`1<TypeMod>::get_Harmony(),
location E:\SteamLibrary\steamapps\common\data-0000000023EF7040
### At 2023-02-07 02.24.35
### Patch: System.Void GameKeyShortcuts::Escape()
### Replacement: static System.Void
GameKeyShortcuts::GameKeyShortcuts.Escape_Patch0(GameKeyShortcuts this)
IL_0000: Local var 0: BuildingTool
IL_0000: // start original
IL_0000: call static BuildingTool ToolsModifierControl::GetTool()
IL_0005: stloc.0
IL_0006: call static CameraTool ToolsModifierControl::GetCurrentTool()
IL_000B: ldnull
IL_000C: call static System.Boolean
UnityEngine.Object::op_Inequality(UnityEngine.Object x, UnityEngine.Object y)
IL_0011: brfalse => Label0
IL_0016: ldarg.0
IL_0017: ldstr "FreeCamButton"
IL_001C: call System.Void KeyShortcuts::SelectUIButton(System.String
tagString)
IL_0021: br => Label1
IL_0026: Label0
IL_0026: call static TutorialPanel TutorialPanel::get_instance()
IL_002B: ldnull
IL_002C: call static System.Boolean
UnityEngine.Object::op_Inequality(UnityEngine.Object x, UnityEngine.Object y)
IL_0031: brfalse => Label2
IL_0036: call static TutorialPanel TutorialPanel::get_instance()
IL_003B: callvirt System.Boolean TutorialPanel::get_isVisible()
IL_0040: brfalse => Label3
IL_0045: call static TutorialPanel TutorialPanel::get_instance()
IL_004A: callvirt System.Void TutorialPanel::OnClose()
IL_004F: br => Label4
IL_0054: Label2
IL_0054: Label3
IL_0054: call static TutorialAdvisorPanel
TutorialAdvisorPanel::get_instance()
IL_0059: ldnull
IL_005A: call static System.Boolean
UnityEngine.Object::op_Inequality(UnityEngine.Object x, UnityEngine.Object y)
IL_005F: brfalse => Label5
IL_0064: call static TutorialAdvisorPanel
TutorialAdvisorPanel::get_instance()
IL_0069: callvirt System.Boolean TutorialAdvisorPanel::get_isVisible()
IL_006E: brfalse => Label6
IL_0073: call static TutorialAdvisorPanel
TutorialAdvisorPanel::get_instance()
IL_0078: callvirt System.Void TutorialAdvisorPanel::OnClose()
IL_007D: br => Label7
IL_0082: Label5
IL_0082: Label6
IL_0082: call static ChirpPanel ChirpPanel::get_instance()
IL_0087: ldnull
IL_0088: call static System.Boolean
UnityEngine.Object::op_Inequality(UnityEngine.Object x, UnityEngine.Object y)
IL_008D: brfalse => Label8
IL_0092: call static ChirpPanel ChirpPanel::get_instance()
IL_0097: callvirt System.Boolean ChirpPanel::get_isShowing()
IL_009C: brfalse => Label9
IL_00A1: call static ChirpPanel ChirpPanel::get_instance()
IL_00A6: callvirt System.Void ChirpPanel::Hide()
IL_00AB: br => Label10
IL_00B0: Label8
IL_00B0: Label9
IL_00B0: call static System.Boolean WorldInfoPanel::AnyWorldInfoPanelOpen()
IL_00B5: brfalse => Label11
IL_00BA: call static System.Void WorldInfoPanel::HideAllWorldInfoPanels()
IL_00BF: br => Label12
IL_00C4: Label11
IL_00C4: call static CityInfoPanel CityInfoPanel::get_instance()
IL_00C9: ldnull
IL_00CA: call static System.Boolean
UnityEngine.Object::op_Inequality(UnityEngine.Object x, UnityEngine.Object y)
IL_00CF: brfalse => Label13
IL_00D4: call static CityInfoPanel CityInfoPanel::get_instance()
IL_00D9: callvirt System.Boolean CityInfoPanel::get_isVisible()
IL_00DE: brfalse => Label14
IL_00E3: call static CityInfoPanel CityInfoPanel::get_instance()
IL_00E8: callvirt System.Void CityInfoPanel::OnCloseButton()
IL_00ED: br => Label15
IL_00F2: Label13
IL_00F2: Label14
IL_00F2: ldarg.0
IL_00F3: ldfld ColossalFramework.UI.UIButton
GameKeyShortcuts::m_UnlockingPanelClose
IL_00F8: ldnull
IL_00F9: call static System.Boolean
UnityEngine.Object::op_Inequality(UnityEngine.Object x, UnityEngine.Object y)
IL_00FE: brfalse => Label16
IL_0103: ldarg.0
IL_0104: ldfld ColossalFramework.UI.UIButton
GameKeyShortcuts::m_UnlockingPanelClose
IL_0109: callvirt System.Boolean
ColossalFramework.UI.UIComponent::get_isVisible()
IL_010E: brfalse => Label17
IL_0113: ldarg.0
IL_0114: ldfld ColossalFramework.UI.UIButton
GameKeyShortcuts::m_UnlockingPanelClose
IL_0119: callvirt System.Void ColossalFramework.UI.UIComponent::SimulateClick()
IL_011E: br => Label18
IL_0123: Label16
IL_0123: Label17
IL_0123: call static BuildingTool ToolsModifierControl::GetCurrentTool()
IL_0128: ldnull
IL_0129: call static System.Boolean
UnityEngine.Object::op_Inequality(UnityEngine.Object x, UnityEngine.Object y)
IL_012E: brfalse => Label19
IL_0133: ldloc.0
IL_0134: ldfld System.Int32 BuildingTool::m_relocate
IL_0139: brfalse => Label20
IL_013E: ldloc.0
IL_013F: callvirt System.Void BuildingTool::CancelRelocate()
IL_0144: br => Label21
IL_0149: Label19
IL_0149: Label20
IL_0149: call static TransportTool ToolsModifierControl::GetCurrentTool()
IL_014E: ldnull
IL_014F: call static System.Boolean
UnityEngine.Object::op_Inequality(UnityEngine.Object x, UnityEngine.Object y)
IL_0154: brfalse => Label22
IL_0159: call static DefaultTool ToolsModifierControl::SetTool()
IL_015E: pop
IL_015F: br => Label23
IL_0164: Label22
IL_0164: call static BulldozeTool ToolsModifierControl::GetCurrentTool()
IL_0169: ldnull
IL_016A: call static System.Boolean
UnityEngine.Object::op_Inequality(UnityEngine.Object x, UnityEngine.Object y)
IL_016F: brfalse => Label24
IL_0174: ldarg.0
IL_0175: ldstr "Bulldozer"
IL_017A: call System.Void KeyShortcuts::SelectUIButton(System.String
tagString)
IL_017F: br => Label25
IL_0184: Label24
IL_0184: call static GameAreaTool ToolsModifierControl::GetCurrentTool()
IL_0189: ldnull
IL_018A: call static System.Boolean
UnityEngine.Object::op_Inequality(UnityEngine.Object x, UnityEngine.Object y)
IL_018F: brfalse => Label26
IL_0194: ldarg.0
IL_0195: ldstr "ZoomButton"
IL_019A: call System.Void KeyShortcuts::SelectUIButton(System.String
tagString)
IL_019F: br => Label27
IL_01A4: Label26
IL_01A4: call static BuySellInvestmentPanel
BuySellInvestmentPanel::get_instance()
IL_01A9: callvirt System.Boolean BuySellInvestmentPanel::get_isVisible()
IL_01AE: brfalse => Label28
IL_01B3: call static System.Void BuySellInvestmentPanel::HidePanel()
IL_01B8: br => Label29
IL_01BD: Label28
IL_01BD: ldarg.0
IL_01BE: ldfld ColossalFramework.UI.UIButton
GameKeyShortcuts::m_CloseToolbarButton
IL_01C3: ldnull
IL_01C4: call static System.Boolean
UnityEngine.Object::op_Inequality(UnityEngine.Object x, UnityEngine.Object y)
IL_01C9: brfalse => Label30
IL_01CE: ldarg.0
IL_01CF: ldfld ColossalFramework.UI.UIButton
GameKeyShortcuts::m_CloseToolbarButton
IL_01D4: callvirt System.Boolean
ColossalFramework.UI.UIComponent::get_isVisible()
IL_01D9: brfalse => Label31
IL_01DE: ldarg.0
IL_01DF: ldfld ColossalFramework.UI.UIButton
GameKeyShortcuts::m_CloseToolbarButton
IL_01E4: callvirt System.Void ColossalFramework.UI.UIComponent::SimulateClick()
IL_01E9: br => Label32
IL_01EE: Label30
IL_01EE: Label31
IL_01EE: ldarg.0
IL_01EF: ldfld ColossalFramework.UI.UIPanel GameKeyShortcuts::m_InfoViewsPanel
IL_01F4: ldnull
IL_01F5: call static System.Boolean
UnityEngine.Object::op_Inequality(UnityEngine.Object x, UnityEngine.Object y)
IL_01FA: brfalse => Label33
IL_01FF: ldarg.0
IL_0200: ldfld ColossalFramework.UI.UIPanel GameKeyShortcuts::m_InfoViewsPanel
IL_0205: callvirt System.Boolean
ColossalFramework.UI.UIComponent::get_isVisible()
IL_020A: brfalse => Label34
IL_020F: ldarg.0
IL_0210: ldstr "InfoPanel"
IL_0215: call System.Void KeyShortcuts::SelectUIButton(System.String
tagString)
IL_021A: br => Label35
IL_021F: Label33
IL_021F: Label34
IL_021F: call static NodeMarkup.Tools.NodeMarkupTool
ModsCommon.SingletonItem`1<NodeMarkup.Tools.NodeMarkupTool>::get_Instance()
IL_0224: call System.Boolean UnityEngine.Behaviour::get_enabled()
IL_0229: brfalse => Label40
IL_022E: call static NodeMarkup.Tools.NodeMarkupTool
ModsCommon.SingletonItem`1<NodeMarkup.Tools.NodeMarkupTool>::get_Instance()
IL_0233: callvirt virtual System.Void NodeMarkup.Tools.NodeMarkupTool::Escape()
IL_0238: br => Label39
IL_023D: Label40
IL_023D: call static System.Boolean
ColossalFramework.Singleton`1<InfoManager>::get_exists()
IL_0242: brfalse => Label36
IL_0247: call static InfoManager
ColossalFramework.Singleton`1<InfoManager>::get_instance()
IL_024C: callvirt InfoMode InfoManager::get_CurrentMode()
IL_0251: brfalse => Label37
IL_0256: call static InfoManager
ColossalFramework.Singleton`1<InfoManager>::get_instance()
IL_025B: ldc.i4.0
IL_025C: ldc.i4.0
IL_025D: callvirt System.Void InfoManager::SetCurrentMode(InfoMode mode,
SubInfoMode subMode)
IL_0262: br => Label38
IL_0267: Label36
IL_0267: Label37
IL_0267: call static ColossalFramework.UI.UIDynamicPanels
ColossalFramework.UI.UIView::get_library()
IL_026C: ldstr "PauseMenu"
IL_0271: callvirt ColossalFramework.UI.UIComponent
ColossalFramework.UI.UIDynamicPanels::ShowModal(System.String panelName)
IL_0276: pop
IL_0277: // end original
IL_0277: Label1
IL_0277: Label4
IL_0277: Label7
IL_0277: Label10
IL_0277: Label12
IL_0277: Label15
IL_0277: Label18
IL_0277: Label21
IL_0277: Label23
IL_0277: Label25
IL_0277: Label27
IL_0277: Label29
IL_0277: Label32
IL_0277: Label35
IL_0277: Label38
IL_0277: Label39
IL_0277: ret
DONE

### Harmony id=NodeMarkup, version=2.0.4.0, location=E:\SteamLibrary\steamapps\


common\data-0000000022595390, env/clr=2.0.50727.1433, platform=Win32NT,
ptrsize:runtime/env=8/Bits64, Windows
### Started from System.Object ModsCommon.BasePatcherMod`1<TypeMod>::get_Harmony(),
location E:\SteamLibrary\steamapps\common\data-0000000023EF7040
### At 2023-02-07 02.24.35
### 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
NodeMarkup.Patcher::LoadAssetPanelOnLoadPostfix(LoadAssetPanel __instance,
ColossalFramework.UI.UIListBox ___m_SaveList)
IL_07F2: ret
DONE

### Harmony id=NodeMarkup, version=2.0.4.0, location=E:\SteamLibrary\steamapps\


common\data-0000000022595390, env/clr=2.0.50727.1433, platform=Win32NT,
ptrsize:runtime/env=8/Bits64, Windows
### Started from System.Object ModsCommon.BasePatcherMod`1<TypeMod>::get_Harmony(),
location E:\SteamLibrary\steamapps\common\data-0000000023EF7040
### At 2023-02-07 02.24.35
### 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: call static NodeMarkup.BuildingAssetDataExtension
ModsCommon.SingletonItem`1<NodeMarkup.BuildingAssetDataExtension>::get_Instance()
IL_08B8: box NodeMarkup.BuildingAssetDataExtension
IL_08BD: ldarg.0
IL_08BE: ldloc.0
IL_08BF: ldfld FastList`1<System.UInt16> NetManager::m_tempSegmentBuffer
IL_08C4: ldloc.0
IL_08C5: ldfld FastList`1<System.UInt16> NetManager::m_tempNodeBuffer
IL_08CA: call virtual System.Void
ModsCommon.Utilities.BaseBuildingAssetDataExtension`3<NodeMarkup.Mod,
NodeMarkup.BuildingAssetDataExtension,
NodeMarkup.Utilities.ObjectsMap>::OnPlaceAsset(BuildingInfo buildingInfo,
FastList`1<System.UInt16> segments, FastList`1<System.UInt16> nodes)
IL_08CF: ldloc.0
IL_08D0: ldfld FastList`1<System.UInt16> NetManager::m_tempNodeBuffer
IL_08D5: callvirt System.Void FastList`1<System.UInt16>::Clear()
IL_08DA: ldloc.0
IL_08DB: ldfld FastList`1<System.UInt16> NetManager::m_tempSegmentBuffer
IL_08E0: callvirt System.Void FastList`1<System.UInt16>::Clear()
IL_08E5: // end original
IL_08E5: Label0
IL_08E5: ret
DONE

### Harmony id=NodeMarkup, version=2.0.4.0, location=E:\SteamLibrary\steamapps\


common\data-0000000022595390, env/clr=2.0.50727.1433, platform=Win32NT,
ptrsize:runtime/env=8/Bits64, Windows
### Started from System.Object ModsCommon.BasePatcherMod`1<TypeMod>::get_Harmony(),
location E:\SteamLibrary\steamapps\common\data-0000000023EF7040
### At 2023-02-07 02.24.35
### Patch: System.Boolean NetManager::CreateSegment(System.UInt16& segment,
ColossalFramework.Math.Randomizer& randomizer, NetInfo info, TreeInfo treeInfo,
System.UInt16 startNode, System.UInt16 endNode, UnityEngine.Vector3 startDirection,
UnityEngine.Vector3 endDirection, System.UInt32 buildIndex, System.UInt32
modifiedIndex, System.Boolean invert)
### Replacement: static System.Boolean
NetManager::NetManager.CreateSegment_Patch1(NetManager this, System.UInt16&
segment, ColossalFramework.Math.Randomizer& randomizer, NetInfo info, TreeInfo
treeInfo, System.UInt16 startNode, System.UInt16 endNode, UnityEngine.Vector3
startDirection, UnityEngine.Vector3 endDirection, System.UInt32 buildIndex,
System.UInt32 modifiedIndex, System.Boolean invert)
IL_0000: Local var 0: System.UInt16
IL_0000: Local var 1: System.Boolean
IL_0000: ldc.i4 0
IL_0005: stloc 1 (System.Boolean)
IL_0009: // start original
IL_0009: ldarg.0
IL_000A: ldfld Array16`1<NetSegment> NetManager::m_segments
IL_000F: ldloca.s 0 (System.UInt16)
IL_0011: ldarg.2
IL_0012: callvirt System.Boolean Array16`1<NetSegment>::CreateItem(System.UInt16&
item, ColossalFramework.Math.Randomizer& r)
IL_0017: brfalse => Label0
IL_001C: ldarg.1
IL_001D: ldloc.0
IL_001E: stind.i2
IL_001F: ldarg.0
IL_0020: ldfld Array16`1<NetNode> NetManager::m_nodes
IL_0025: ldfld NetNode[] Array16`1<NetNode>::m_buffer
IL_002A: ldarg.s 5
IL_002C: ldelema NetNode
IL_0031: ldarg.1
IL_0032: ldind.u2
IL_0033: call System.Boolean NetNode::AddSegment(System.UInt16 segment)
IL_0038: brtrue => Label1
IL_003D: ldarg.0
IL_003E: ldfld Array16`1<NetSegment> NetManager::m_segments
IL_0043: ldloc.0
IL_0044: callvirt System.Void Array16`1<NetSegment>::ReleaseItem(System.UInt16
item)
IL_0049: ldarg.1
IL_004A: ldc.i4.0
IL_004B: stind.i2
IL_004C: ldc.i4.0
IL_004D: br => Label5
IL_0052: Label1
IL_0052: ldarg.0
IL_0053: ldfld Array16`1<NetNode> NetManager::m_nodes
IL_0058: ldfld NetNode[] Array16`1<NetNode>::m_buffer
IL_005D: ldarg.s 6
IL_005F: ldelema NetNode
IL_0064: ldarg.1
IL_0065: ldind.u2
IL_0066: call System.Boolean NetNode::AddSegment(System.UInt16 segment)
IL_006B: brtrue => Label2
IL_0070: ldarg.0
IL_0071: ldfld Array16`1<NetNode> NetManager::m_nodes
IL_0076: ldfld NetNode[] Array16`1<NetNode>::m_buffer
IL_007B: ldarg.s 5
IL_007D: ldelema NetNode
IL_0082: ldarg.1
IL_0083: ldind.u2
IL_0084: call System.Boolean NetNode::RemoveSegment(System.UInt16 segment)
IL_0089: pop
IL_008A: ldarg.0
IL_008B: ldfld Array16`1<NetSegment> NetManager::m_segments
IL_0090: ldloc.0
IL_0091: callvirt System.Void Array16`1<NetSegment>::ReleaseItem(System.UInt16
item)
IL_0096: ldarg.1
IL_0097: ldc.i4.0
IL_0098: stind.i2
IL_0099: ldc.i4.0
IL_009A: br => Label6
IL_009F: Label2
IL_009F: ldarg.0
IL_00A0: ldfld Array16`1<NetSegment> NetManager::m_segments
IL_00A5: ldfld NetSegment[] Array16`1<NetSegment>::m_buffer
IL_00AA: ldarg.1
IL_00AB: ldind.u2
IL_00AC: ldelema NetSegment
IL_00B1: ldc.i4.1
IL_00B2: stfld Flags NetSegment::m_flags
IL_00B7: ldarg.0
IL_00B8: ldfld Array16`1<NetSegment> NetManager::m_segments
IL_00BD: ldfld NetSegment[] Array16`1<NetSegment>::m_buffer
IL_00C2: ldarg.1
IL_00C3: ldind.u2
IL_00C4: ldelema NetSegment
IL_00C9: ldc.i4.0
IL_00CA: stfld Flags2 NetSegment::m_flags2
IL_00CF: ldarg.s 11
IL_00D1: brfalse => Label3
IL_00D6: ldarg.0
IL_00D7: ldfld Array16`1<NetSegment> NetManager::m_segments
IL_00DC: ldfld NetSegment[] Array16`1<NetSegment>::m_buffer
IL_00E1: ldarg.1
IL_00E2: ldind.u2
IL_00E3: ldelema NetSegment
IL_00E8: dup
IL_00E9: ldfld Flags NetSegment::m_flags
IL_00EE: ldc.i4.s 16
IL_00F0: or
IL_00F1: stfld Flags NetSegment::m_flags
IL_00F6: Label3
IL_00F6: ldarg.0
IL_00F7: ldfld Array16`1<NetSegment> NetManager::m_segments
IL_00FC: ldfld NetSegment[] Array16`1<NetSegment>::m_buffer
IL_0101: ldarg.1
IL_0102: ldind.u2
IL_0103: ldelema NetSegment
IL_0108: ldarg.3
IL_0109: call System.Void NetSegment::set_Info(NetInfo value)
IL_010E: ldarg.0
IL_010F: ldfld Array16`1<NetSegment> NetManager::m_segments
IL_0114: ldfld NetSegment[] Array16`1<NetSegment>::m_buffer
IL_0119: ldarg.1
IL_011A: ldind.u2
IL_011B: ldelema NetSegment
IL_0120: ldarg.s 4
IL_0122: call System.Void NetSegment::set_TreeInfo(TreeInfo value)
IL_0127: ldarg.0
IL_0128: ldfld Array16`1<NetSegment> NetManager::m_segments
IL_012D: ldfld NetSegment[] Array16`1<NetSegment>::m_buffer
IL_0132: ldarg.1
IL_0133: ldind.u2
IL_0134: ldelema NetSegment
IL_0139: ldarg.s 9
IL_013B: stfld System.UInt32 NetSegment::m_buildIndex
IL_0140: ldarg.0
IL_0141: ldfld Array16`1<NetSegment> NetManager::m_segments
IL_0146: ldfld NetSegment[] Array16`1<NetSegment>::m_buffer
IL_014B: ldarg.1
IL_014C: ldind.u2
IL_014D: ldelema NetSegment
IL_0152: ldarg.s 10
IL_0154: stfld System.UInt32 NetSegment::m_modifiedIndex
IL_0159: ldarg.0
IL_015A: ldfld Array16`1<NetSegment> NetManager::m_segments
IL_015F: ldfld NetSegment[] Array16`1<NetSegment>::m_buffer
IL_0164: ldarg.1
IL_0165: ldind.u2
IL_0166: ldelema NetSegment
IL_016B: ldarg.s 5
IL_016D: stfld System.UInt16 NetSegment::m_startNode
IL_0172: ldarg.0
IL_0173: ldfld Array16`1<NetSegment> NetManager::m_segments
IL_0178: ldfld NetSegment[] Array16`1<NetSegment>::m_buffer
IL_017D: ldarg.1
IL_017E: ldind.u2
IL_017F: ldelema NetSegment
IL_0184: ldarg.s 6
IL_0186: stfld System.UInt16 NetSegment::m_endNode
IL_018B: ldarg.0
IL_018C: ldfld Array16`1<NetSegment> NetManager::m_segments
IL_0191: ldfld NetSegment[] Array16`1<NetSegment>::m_buffer
IL_0196: ldarg.1
IL_0197: ldind.u2
IL_0198: ldelema NetSegment
IL_019D: ldarg.s 7
IL_019F: stfld UnityEngine.Vector3 NetSegment::m_startDirection
IL_01A4: ldarg.0
IL_01A5: ldfld Array16`1<NetSegment> NetManager::m_segments
IL_01AA: ldfld NetSegment[] Array16`1<NetSegment>::m_buffer
IL_01AF: ldarg.1
IL_01B0: ldind.u2
IL_01B1: ldelema NetSegment
IL_01B6: ldarg.s 8
IL_01B8: stfld UnityEngine.Vector3 NetSegment::m_endDirection
IL_01BD: ldarg.0
IL_01BE: ldfld Array16`1<NetSegment> NetManager::m_segments
IL_01C3: ldfld NetSegment[] Array16`1<NetSegment>::m_buffer
IL_01C8: ldarg.1
IL_01C9: ldind.u2
IL_01CA: ldelema NetSegment
IL_01CF: call static ProblemStruct ProblemStruct::get_None()
IL_01D4: stfld ProblemStruct NetSegment::m_problems
IL_01D9: ldarg.0
IL_01DA: ldfld Array16`1<NetSegment> NetManager::m_segments
IL_01DF: ldfld NetSegment[] Array16`1<NetSegment>::m_buffer
IL_01E4: ldarg.1
IL_01E5: ldind.u2
IL_01E6: ldelema NetSegment
IL_01EB: ldc.i4.0
IL_01EC: stfld System.UInt16 NetSegment::m_blockStartLeft
IL_01F1: ldarg.0
IL_01F2: ldfld Array16`1<NetSegment> NetManager::m_segments
IL_01F7: ldfld NetSegment[] Array16`1<NetSegment>::m_buffer
IL_01FC: ldarg.1
IL_01FD: ldind.u2
IL_01FE: ldelema NetSegment
IL_0203: ldc.i4.0
IL_0204: stfld System.UInt16 NetSegment::m_blockStartRight
IL_0209: ldarg.0
IL_020A: ldfld Array16`1<NetSegment> NetManager::m_segments
IL_020F: ldfld NetSegment[] Array16`1<NetSegment>::m_buffer
IL_0214: ldarg.1
IL_0215: ldind.u2
IL_0216: ldelema NetSegment
IL_021B: ldc.i4.0
IL_021C: stfld System.UInt16 NetSegment::m_blockEndLeft
IL_0221: ldarg.0
IL_0222: ldfld Array16`1<NetSegment> NetManager::m_segments
IL_0227: ldfld NetSegment[] Array16`1<NetSegment>::m_buffer
IL_022C: ldarg.1
IL_022D: ldind.u2
IL_022E: ldelema NetSegment
IL_0233: ldc.i4.0
IL_0234: stfld System.UInt16 NetSegment::m_blockEndRight
IL_0239: ldarg.0
IL_023A: ldfld Array16`1<NetSegment> NetManager::m_segments
IL_023F: ldfld NetSegment[] Array16`1<NetSegment>::m_buffer
IL_0244: ldarg.1
IL_0245: ldind.u2
IL_0246: ldelema NetSegment
IL_024B: ldc.i4.0
IL_024C: stfld System.UInt32 NetSegment::m_lanes
IL_0251: ldarg.0
IL_0252: ldfld Array16`1<NetSegment> NetManager::m_segments
IL_0257: ldfld NetSegment[] Array16`1<NetSegment>::m_buffer
IL_025C: ldarg.1
IL_025D: ldind.u2
IL_025E: ldelema NetSegment
IL_0263: ldc.i4.0
IL_0264: stfld System.UInt32 NetSegment::m_path
IL_0269: ldarg.0
IL_026A: ldfld Array16`1<NetSegment> NetManager::m_segments
IL_026F: ldfld NetSegment[] Array16`1<NetSegment>::m_buffer
IL_0274: ldarg.1
IL_0275: ldind.u2
IL_0276: ldelema NetSegment
IL_027B: ldc.i4.0
IL_027C: stfld System.UInt16 NetSegment::m_trafficBuffer
IL_0281: ldarg.0
IL_0282: ldfld Array16`1<NetSegment> NetManager::m_segments
IL_0287: ldfld NetSegment[] Array16`1<NetSegment>::m_buffer
IL_028C: ldarg.1
IL_028D: ldind.u2
IL_028E: ldelema NetSegment
IL_0293: ldc.i4.0
IL_0294: stfld System.Byte NetSegment::m_trafficDensity
IL_0299: ldarg.0
IL_029A: ldfld Array16`1<NetSegment> NetManager::m_segments
IL_029F: ldfld NetSegment[] Array16`1<NetSegment>::m_buffer
IL_02A4: ldarg.1
IL_02A5: ldind.u2
IL_02A6: ldelema NetSegment
IL_02AB: ldc.i4.0
IL_02AC: stfld System.Int32 NetSegment::m_trafficLightState0
IL_02B1: ldarg.0
IL_02B2: ldfld Array16`1<NetSegment> NetManager::m_segments
IL_02B7: ldfld NetSegment[] Array16`1<NetSegment>::m_buffer
IL_02BC: ldarg.1
IL_02BD: ldind.u2
IL_02BE: ldelema NetSegment
IL_02C3: ldc.i4.0
IL_02C4: stfld System.Int32 NetSegment::m_trafficLightState1
IL_02C9: ldarg.0
IL_02CA: ldfld Array16`1<NetSegment> NetManager::m_segments
IL_02CF: ldfld NetSegment[] Array16`1<NetSegment>::m_buffer
IL_02D4: ldarg.1
IL_02D5: ldind.u2
IL_02D6: ldelema NetSegment
IL_02DB: ldc.i4.0
IL_02DC: stfld System.UInt16 NetSegment::m_startLeftSegment
IL_02E1: ldarg.0
IL_02E2: ldfld Array16`1<NetSegment> NetManager::m_segments
IL_02E7: ldfld NetSegment[] Array16`1<NetSegment>::m_buffer
IL_02EC: ldarg.1
IL_02ED: ldind.u2
IL_02EE: ldelema NetSegment
IL_02F3: ldc.i4.0
IL_02F4: stfld System.UInt16 NetSegment::m_startRightSegment
IL_02F9: ldarg.0
IL_02FA: ldfld Array16`1<NetSegment> NetManager::m_segments
IL_02FF: ldfld NetSegment[] Array16`1<NetSegment>::m_buffer
IL_0304: ldarg.1
IL_0305: ldind.u2
IL_0306: ldelema NetSegment
IL_030B: ldc.i4.0
IL_030C: stfld System.UInt16 NetSegment::m_endLeftSegment
IL_0311: ldarg.0
IL_0312: ldfld Array16`1<NetSegment> NetManager::m_segments
IL_0317: ldfld NetSegment[] Array16`1<NetSegment>::m_buffer
IL_031C: ldarg.1
IL_031D: ldind.u2
IL_031E: ldelema NetSegment
IL_0323: ldc.i4.0
IL_0324: stfld System.UInt16 NetSegment::m_endRightSegment
IL_0329: ldarg.0
IL_032A: ldfld Array16`1<NetSegment> NetManager::m_segments
IL_032F: ldfld NetSegment[] Array16`1<NetSegment>::m_buffer
IL_0334: ldarg.1
IL_0335: ldind.u2
IL_0336: ldelema NetSegment
IL_033B: ldc.r4 0
IL_0340: stfld System.Single NetSegment::m_averageLength
IL_0345: ldarg.0
IL_0346: ldfld Array16`1<NetSegment> NetManager::m_segments
IL_034B: ldfld NetSegment[] Array16`1<NetSegment>::m_buffer
IL_0350: ldarg.1
IL_0351: ldind.u2
IL_0352: ldelema NetSegment
IL_0357: ldc.i4.0
IL_0358: stfld System.UInt16 NetSegment::m_nextGridSegment
IL_035D: ldarg.0
IL_035E: ldfld Array16`1<NetSegment> NetManager::m_segments
IL_0363: ldfld NetSegment[] Array16`1<NetSegment>::m_buffer
IL_0368: ldarg.1
IL_0369: ldind.u2
IL_036A: ldelema NetSegment
IL_036F: ldc.i4.0
IL_0370: stfld System.Byte NetSegment::m_cornerAngleStart
IL_0375: ldarg.0
IL_0376: ldfld Array16`1<NetSegment> NetManager::m_segments
IL_037B: ldfld NetSegment[] Array16`1<NetSegment>::m_buffer
IL_0380: ldarg.1
IL_0381: ldind.u2
IL_0382: ldelema NetSegment
IL_0387: ldc.i4.0
IL_0388: stfld System.Byte NetSegment::m_cornerAngleEnd
IL_038D: ldarg.0
IL_038E: ldfld Array16`1<NetSegment> NetManager::m_segments
IL_0393: ldfld NetSegment[] Array16`1<NetSegment>::m_buffer
IL_0398: ldarg.1
IL_0399: ldind.u2
IL_039A: ldelema NetSegment
IL_039F: ldc.i4.0
IL_03A0: stfld System.Byte NetSegment::m_fireCoverage
IL_03A5: ldarg.0
IL_03A6: ldfld Array16`1<NetSegment> NetManager::m_segments
IL_03AB: ldfld NetSegment[] Array16`1<NetSegment>::m_buffer
IL_03B0: ldarg.1
IL_03B1: ldind.u2
IL_03B2: ldelema NetSegment
IL_03B7: ldc.i4.0
IL_03B8: stfld System.Byte NetSegment::m_wetness
IL_03BD: ldarg.0
IL_03BE: ldfld Array16`1<NetSegment> NetManager::m_segments
IL_03C3: ldfld NetSegment[] Array16`1<NetSegment>::m_buffer
IL_03C8: ldarg.1
IL_03C9: ldind.u2
IL_03CA: ldelema NetSegment
IL_03CF: ldc.i4.0
IL_03D0: stfld System.Byte NetSegment::m_condition
IL_03D5: ldarg.0
IL_03D6: ldfld Array16`1<NetSegment> NetManager::m_segments
IL_03DB: ldfld NetSegment[] Array16`1<NetSegment>::m_buffer
IL_03E0: ldarg.1
IL_03E1: ldind.u2
IL_03E2: ldelema NetSegment
IL_03E7: ldc.i4.0
IL_03E8: stfld System.UInt16 NetSegment::m_nameSeed
IL_03ED: ldarg.0
IL_03EE: ldfld Array16`1<NetSegment> NetManager::m_segments
IL_03F3: ldfld NetSegment[] Array16`1<NetSegment>::m_buffer
IL_03F8: ldarg.1
IL_03F9: ldind.u2
IL_03FA: ldelema NetSegment
IL_03FF: ldc.i4.0
IL_0400: stfld System.UInt16 NetSegment::m_noiseBuffer
IL_0405: ldarg.0
IL_0406: ldfld Array16`1<NetSegment> NetManager::m_segments
IL_040B: ldfld NetSegment[] Array16`1<NetSegment>::m_buffer
IL_0410: ldarg.1
IL_0411: ldind.u2
IL_0412: ldelema NetSegment
IL_0417: ldc.i4.0
IL_0418: stfld System.Byte NetSegment::m_noiseDensity
IL_041D: ldarg.0
IL_041E: ldfld Array16`1<NetSegment> NetManager::m_segments
IL_0423: ldfld NetSegment[] Array16`1<NetSegment>::m_buffer
IL_0428: ldarg.1
IL_0429: ldind.u2
IL_042A: ldelema NetSegment
IL_042F: ldc.i4.0
IL_0430: stfld System.Boolean NetSegment::m_overridePathFindDirectionLimit
IL_0435: ldarg.3
IL_0436: ldfld NetAI NetInfo::m_netAI
IL_043B: ldarg.1
IL_043C: ldind.u2
IL_043D: ldarg.0
IL_043E: ldfld Array16`1<NetSegment> NetManager::m_segments
IL_0443: ldfld NetSegment[] Array16`1<NetSegment>::m_buffer
IL_0448: ldarg.1
IL_0449: ldind.u2
IL_044A: ldelema NetSegment
IL_044F: callvirt virtual System.Void NetAI::CreateSegment(System.UInt16
segmentID, NetSegment& data)
IL_0454: ldarg.3
IL_0455: ldfld Lane[] NetInfo::m_lanes
IL_045A: brfalse => Label4
IL_045F: ldarg.0
IL_0460: ldarg.0
IL_0461: ldfld Array16`1<NetSegment> NetManager::m_segments
IL_0466: ldfld NetSegment[] Array16`1<NetSegment>::m_buffer
IL_046B: ldarg.1
IL_046C: ldind.u2
IL_046D: ldelema NetSegment
IL_0472: ldflda System.UInt32 NetSegment::m_lanes
IL_0477: ldarg.2
IL_0478: ldarg.1
IL_0479: ldind.u2
IL_047A: ldarg.3
IL_047B: ldfld Lane[] NetInfo::m_lanes
IL_0480: ldlen
IL_0481: conv.i4
IL_0482: call System.Boolean NetManager::CreateLanes(System.UInt32&
firstLane, ColossalFramework.Math.Randomizer& randomizer, System.UInt16 segment,
System.Int32 count)
IL_0487: pop
IL_0488: Label4
IL_0488: ldarg.0
IL_0489: ldarg.1
IL_048A: ldind.u2
IL_048B: ldarg.0
IL_048C: ldfld Array16`1<NetSegment> NetManager::m_segments
IL_0491: ldfld NetSegment[] Array16`1<NetSegment>::m_buffer
IL_0496: ldarg.1
IL_0497: ldind.u2
IL_0498: ldelema NetSegment
IL_049D: call System.Void NetManager::InitializeSegment(System.UInt16
segment, NetSegment& data)
IL_04A2: ldarg.0
IL_04A3: ldarg.1
IL_04A4: ldind.u2
IL_04A5: call System.Void NetManager::UpdateSegment(System.UInt16 segment)
IL_04AA: ldarg.0
IL_04AB: ldarg.1
IL_04AC: ldind.u2
IL_04AD: call System.Void NetManager::UpdateSegmentColors(System.UInt16
segment)
IL_04B2: ldarg.0
IL_04B3: ldfld Array16`1<NetSegment> NetManager::m_segments
IL_04B8: ldfld NetSegment[] Array16`1<NetSegment>::m_buffer
IL_04BD: ldarg.1
IL_04BE: ldind.u2
IL_04BF: ldelema NetSegment
IL_04C4: ldarg.1
IL_04C5: ldind.u2
IL_04C6: call System.Void NetSegment::UpdateBounds(System.UInt16 segmentID)
IL_04CB: ldarg.0
IL_04CC: ldfld Array16`1<NetSegment> NetManager::m_segments
IL_04D1: ldfld NetSegment[] Array16`1<NetSegment>::m_buffer
IL_04D6: ldarg.1
IL_04D7: ldind.u2
IL_04D8: ldelema NetSegment
IL_04DD: ldarg.1
IL_04DE: ldind.u2
IL_04DF: call System.Void NetSegment::UpdateZones(System.UInt16 segmentID)
IL_04E4: ldarg.0
IL_04E5: ldarg.0
IL_04E6: ldfld Array16`1<NetSegment> NetManager::m_segments
IL_04EB: callvirt System.UInt32 Array16`1<NetSegment>::ItemCount()
IL_04F0: ldc.i4.1
IL_04F1: sub
IL_04F2: stfld System.Int32 NetManager::m_segmentCount
IL_04F7: ldc.i4.1
IL_04F8: br => Label7
IL_04FD: Label0
IL_04FD: ldarg.1
IL_04FE: ldc.i4.0
IL_04FF: stind.i2
IL_0500: ldc.i4.0
IL_0501: // end original
IL_0501: Label5
IL_0501: Label6
IL_0501: Label7
IL_0501: stloc 1 (System.Boolean)
IL_0505: ldarg 3
IL_0509: ldarg 1
IL_050D: ldobj System.UInt16
IL_0512: ldarg 5
IL_0516: ldarg 6
IL_051A: call static System.Void
NodeMarkup.Patcher::NetManagerCreateSegmentPostfix(NetInfo info, System.UInt16
segment, System.UInt16 startNode, System.UInt16 endNode)
IL_051F: ldloc 1 (System.Boolean)
IL_0523: ret
DONE

### Harmony id=NodeMarkup, version=2.0.4.0, location=E:\SteamLibrary\steamapps\


common\data-0000000022595390, env/clr=2.0.50727.1433, platform=Win32NT,
ptrsize:runtime/env=8/Bits64, Windows
### Started from System.Object ModsCommon.BasePatcherMod`1<TypeMod>::get_Harmony(),
location E:\SteamLibrary\steamapps\common\data-0000000023EF7040
### At 2023-02-07 02.24.35
### Patch: System.Void NetManager::ReleaseNodeImplementation(System.UInt16 node,
NetNode& data)
### Replacement: static System.Void
NetManager::NetManager.ReleaseNodeImplementation_Patch1(NetManager this,
System.UInt16 node, NetNode& data)
IL_0000: Local var 0: NetInfo
IL_0000: Local var 1: CitizenManager
IL_0000: Local var 2: System.UInt16
IL_0000: Local var 3: System.Int32
IL_0000: Local var 4: System.UInt16
IL_0000: Local var 5: CitizenInfo
IL_0000: ldarg 1
IL_0004: call static System.Void
NodeMarkup.Manager.MarkupManager::NetManagerReleaseNodeImplementationPrefix(System.
UInt16 node)
IL_0009: // start original
IL_0009: ldarg.2
IL_000A: ldfld Flags NetNode::m_flags
IL_000F: brfalse => Label0
IL_0014: ldarg.2
IL_0015: call NetInfo NetNode::get_Info()
IL_001A: stloc.0
IL_001B: ldloc.0
IL_001C: brfalse => Label1
IL_0021: ldloc.0
IL_0022: ldfld NetAI NetInfo::m_netAI
IL_0027: ldarg.1
IL_0028: ldarg.2
IL_0029: callvirt virtual System.Void NetAI::ReleaseNode(System.UInt16 nodeID,
NetNode& data)
IL_002E: Label1
IL_002E: ldarg.2
IL_002F: ldc.i4.0
IL_0030: stfld Flags NetNode::m_flags
IL_0035: ldarg.2
IL_0036: ldc.i4.0
IL_0037: stfld Flags2 NetNode::m_flags2
IL_003C: ldarg.0
IL_003D: ldarg.1
IL_003E: ldarg.2
IL_003F: ldflda System.UInt16 NetNode::m_segment0
IL_0044: call System.Void NetManager::ReleaseNodeSegment(System.UInt16 node,
System.UInt16& nodeSegment)
IL_0049: ldarg.0
IL_004A: ldarg.1
IL_004B: ldarg.2
IL_004C: ldflda System.UInt16 NetNode::m_segment1
IL_0051: call System.Void NetManager::ReleaseNodeSegment(System.UInt16 node,
System.UInt16& nodeSegment)
IL_0056: ldarg.0
IL_0057: ldarg.1
IL_0058: ldarg.2
IL_0059: ldflda System.UInt16 NetNode::m_segment2
IL_005E: call System.Void NetManager::ReleaseNodeSegment(System.UInt16 node,
System.UInt16& nodeSegment)
IL_0063: ldarg.0
IL_0064: ldarg.1
IL_0065: ldarg.2
IL_0066: ldflda System.UInt16 NetNode::m_segment3
IL_006B: call System.Void NetManager::ReleaseNodeSegment(System.UInt16 node,
System.UInt16& nodeSegment)
IL_0070: ldarg.0
IL_0071: ldarg.1
IL_0072: ldarg.2
IL_0073: ldflda System.UInt16 NetNode::m_segment4
IL_0078: call System.Void NetManager::ReleaseNodeSegment(System.UInt16 node,
System.UInt16& nodeSegment)
IL_007D: ldarg.0
IL_007E: ldarg.1
IL_007F: ldarg.2
IL_0080: ldflda System.UInt16 NetNode::m_segment5
IL_0085: call System.Void NetManager::ReleaseNodeSegment(System.UInt16 node,
System.UInt16& nodeSegment)
IL_008A: ldarg.0
IL_008B: ldarg.1
IL_008C: ldarg.2
IL_008D: ldflda System.UInt16 NetNode::m_segment6
IL_0092: call System.Void NetManager::ReleaseNodeSegment(System.UInt16 node,
System.UInt16& nodeSegment)
IL_0097: ldarg.0
IL_0098: ldarg.1
IL_0099: ldarg.2
IL_009A: ldflda System.UInt16 NetNode::m_segment7
IL_009F: call System.Void NetManager::ReleaseNodeSegment(System.UInt16 node,
System.UInt16& nodeSegment)
IL_00A4: ldarg.2
IL_00A5: ldc.i4.0
IL_00A6: stfld System.UInt16 NetNode::m_nextBuildingNode
IL_00AB: ldarg.2
IL_00AC: ldfld System.UInt16 NetNode::m_building
IL_00B1: brfalse => Label2
IL_00B6: call static BuildingManager
ColossalFramework.Singleton`1<BuildingManager>::get_instance()
IL_00BB: ldarg.2
IL_00BC: ldfld System.UInt16 NetNode::m_building
IL_00C1: callvirt System.Void BuildingManager::ReleaseBuilding(System.UInt16
building)
IL_00C6: ldarg.2
IL_00C7: ldc.i4.0
IL_00C8: stfld System.UInt16 NetNode::m_building
IL_00CD: Label2
IL_00CD: ldarg.2
IL_00CE: ldfld System.UInt16 NetNode::m_targetCitizens
IL_00D3: brfalse => Label3
IL_00D8: call static CitizenManager
ColossalFramework.Singleton`1<CitizenManager>::get_instance()
IL_00DD: stloc.1
IL_00DE: ldarg.2
IL_00DF: ldfld System.UInt16 NetNode::m_targetCitizens
IL_00E4: stloc.2
IL_00E5: ldc.i4.0
IL_00E6: stloc.3
IL_00E7: br => Label4
IL_00EC: Label8
IL_00EC: ldloc.1
IL_00ED: ldfld Array16`1<CitizenInstance> CitizenManager::m_instances
IL_00F2: ldfld CitizenInstance[] Array16`1<CitizenInstance>::m_buffer
IL_00F7: ldloc.2
IL_00F8: ldelema CitizenInstance
IL_00FD: ldfld System.UInt16 CitizenInstance::m_nextTargetInstance
IL_0102: stloc.s 4 (System.UInt16)
IL_0104: ldloc.1
IL_0105: ldfld Array16`1<CitizenInstance> CitizenManager::m_instances
IL_010A: ldfld CitizenInstance[] Array16`1<CitizenInstance>::m_buffer
IL_010F: ldloc.2
IL_0110: ldelema CitizenInstance
IL_0115: call CitizenInfo CitizenInstance::get_Info()
IL_011A: stloc.s 5 (CitizenInfo)
IL_011C: ldloc.s 5 (CitizenInfo)
IL_011E: brfalse => Label5
IL_0123: ldloc.s 5 (CitizenInfo)
IL_0125: ldfld CitizenAI CitizenInfo::m_citizenAI
IL_012A: ldloc.2
IL_012B: ldloc.1
IL_012C: ldfld Array16`1<CitizenInstance> CitizenManager::m_instances
IL_0131: ldfld CitizenInstance[] Array16`1<CitizenInstance>::m_buffer
IL_0136: ldloc.2
IL_0137: ldelema CitizenInstance
IL_013C: ldc.i4.0
IL_013D: callvirt System.Void CitizenAI::SetTarget(System.UInt16 instanceID,
CitizenInstance& data, System.UInt16 targetBuilding)
IL_0142: Label5
IL_0142: ldloc.s 4 (System.UInt16)
IL_0144: stloc.2
IL_0145: ldloc.3
IL_0146: ldc.i4.1
IL_0147: add
IL_0148: dup
IL_0149: stloc.3
IL_014A: ldc.i4 65536
IL_014F: ble => Label6
IL_0154: ldc.i4.1
IL_0155: ldstr "Invalid list detected!\n"
IL_015A: call static System.String System.Environment::get_StackTrace()
IL_015F: call static System.String System.String::Concat(System.String str0,
System.String str1)
IL_0164: call static System.Void
ColossalFramework.CODebugBase`1<LogChannel>::Error(LogChannel ll, System.String
msg)
IL_0169: br => Label7
IL_016E: Label4
IL_016E: Label6
IL_016E: ldloc.2
IL_016F: brtrue => Label8
IL_0174: Label3
IL_0174: Label7
IL_0174: ldarg.0
IL_0175: ldfld Array16`1<NetNode> NetManager::m_nodes
IL_017A: ldarg.1
IL_017B: callvirt System.Void Array16`1<NetNode>::ReleaseItem(System.UInt16 item)
IL_0180: ldarg.0
IL_0181: ldarg.0
IL_0182: ldfld Array16`1<NetNode> NetManager::m_nodes
IL_0187: callvirt System.UInt32 Array16`1<NetNode>::ItemCount()
IL_018C: ldc.i4.1
IL_018D: sub
IL_018E: stfld System.Int32 NetManager::m_nodeCount
IL_0193: // end original
IL_0193: Label0
IL_0193: ret
DONE

### Harmony id=NodeMarkup, version=2.0.4.0, location=E:\SteamLibrary\steamapps\


common\data-0000000022595390, env/clr=2.0.50727.1433, platform=Win32NT,
ptrsize:runtime/env=8/Bits64, Windows
### Started from System.Object ModsCommon.BasePatcherMod`1<TypeMod>::get_Harmony(),
location E:\SteamLibrary\steamapps\common\data-0000000023EF7040
### At 2023-02-07 02.24.35
### Patch: System.Void NetManager::ReleaseSegmentImplementation(System.UInt16
segment, NetSegment& data, System.Boolean keepNodes)
### Replacement: static System.Void
NetManager::NetManager.ReleaseSegmentImplementation_Patch1(NetManager this,
System.UInt16 segment, NetSegment& data, System.Boolean keepNodes)
IL_0000: Local var 0: NetInfo
IL_0000: Local var 1: InstanceID
IL_0000: ldarg 1
IL_0004: call static System.Void
NodeMarkup.Manager.MarkupManager::NetManagerReleaseSegmentImplementationPrefix(Syst
em.UInt16 segment)
IL_0009: // start original
IL_0009: ldarg.2
IL_000A: ldfld Flags NetSegment::m_flags
IL_000F: brfalse => Label0
IL_0014: ldarg.2
IL_0015: call NetInfo NetSegment::get_Info()
IL_001A: stloc.0
IL_001B: ldloc.0
IL_001C: brfalse => Label1
IL_0021: ldloc.0
IL_0022: ldfld NetAI NetInfo::m_netAI
IL_0027: ldarg.1
IL_0028: ldarg.2
IL_0029: callvirt virtual System.Void NetAI::ReleaseSegment(System.UInt16
segmentID, NetSegment& data)
IL_002E: Label1
IL_002E: ldarg.0
IL_002F: ldfld NetAdjust NetManager::m_netAdjust
IL_0034: brfalse => Label2
IL_0039: ldarg.0
IL_003A: ldfld NetAdjust NetManager::m_netAdjust
IL_003F: ldarg.1
IL_0040: callvirt System.Void NetAdjust::SegmentRemoved(System.UInt16 segment)
IL_0045: Label2
IL_0045: ldloca.s 1 (InstanceID)
IL_0047: initobj InstanceID
IL_004D: ldloca.s 1 (InstanceID)
IL_004F: ldarg.1
IL_0050: call System.Void InstanceID::set_NetSegment(System.UInt16 value)
IL_0055: call static InstanceManager
ColossalFramework.Singleton`1<InstanceManager>::get_instance()
IL_005A: ldloc.1
IL_005B: callvirt System.Void InstanceManager::ReleaseInstance(InstanceID id)
IL_0060: ldarg.2
IL_0061: ldc.i4.0
IL_0062: stfld Flags NetSegment::m_flags
IL_0067: ldarg.2
IL_0068: ldc.i4.0
IL_0069: stfld Flags2 NetSegment::m_flags2
IL_006E: ldarg.0
IL_006F: ldfld System.UInt64[] NetManager::m_adjustedSegments
IL_0074: ldarg.1
IL_0075: ldc.i4.6
IL_0076: shr
IL_0077: ldelema System.UInt64
IL_007C: dup
IL_007D: ldind.i8
IL_007E: ldc.i4.1
IL_007F: conv.i8
IL_0080: ldarg.1
IL_0081: ldc.i4.s 63
IL_0083: and
IL_0084: ldc.i4.s 63
IL_0086: and
IL_0087: shl
IL_0088: not
IL_0089: and
IL_008A: stind.i8
IL_008B: ldarg.0
IL_008C: ldarg.1
IL_008D: ldarg.2
IL_008E: ldflda System.UInt16 NetSegment::m_startNode
IL_0093: ldarg.3
IL_0094: call System.Void NetManager::ReleaseSegmentNode(System.UInt16
segment, System.UInt16& segmentNode, System.Boolean keepNodes)
IL_0099: ldarg.0
IL_009A: ldarg.1
IL_009B: ldarg.2
IL_009C: ldflda System.UInt16 NetSegment::m_endNode
IL_00A1: ldarg.3
IL_00A2: call System.Void NetManager::ReleaseSegmentNode(System.UInt16
segment, System.UInt16& segmentNode, System.Boolean keepNodes)
IL_00A7: ldarg.0
IL_00A8: ldarg.1
IL_00A9: ldarg.2
IL_00AA: ldflda System.UInt16 NetSegment::m_blockStartLeft
IL_00AF: call System.Void NetManager::ReleaseSegmentBlock(System.UInt16
segment, System.UInt16& segmentBlock)
IL_00B4: ldarg.0
IL_00B5: ldarg.1
IL_00B6: ldarg.2
IL_00B7: ldflda System.UInt16 NetSegment::m_blockStartRight
IL_00BC: call System.Void NetManager::ReleaseSegmentBlock(System.UInt16
segment, System.UInt16& segmentBlock)
IL_00C1: ldarg.0
IL_00C2: ldarg.1
IL_00C3: ldarg.2
IL_00C4: ldflda System.UInt16 NetSegment::m_blockEndLeft
IL_00C9: call System.Void NetManager::ReleaseSegmentBlock(System.UInt16
segment, System.UInt16& segmentBlock)
IL_00CE: ldarg.0
IL_00CF: ldarg.1
IL_00D0: ldarg.2
IL_00D1: ldflda System.UInt16 NetSegment::m_blockEndRight
IL_00D6: call System.Void NetManager::ReleaseSegmentBlock(System.UInt16
segment, System.UInt16& segmentBlock)
IL_00DB: ldarg.2
IL_00DC: ldfld System.UInt32 NetSegment::m_lanes
IL_00E1: brfalse => Label3
IL_00E6: ldarg.0
IL_00E7: ldarg.2
IL_00E8: ldfld System.UInt32 NetSegment::m_lanes
IL_00ED: call System.Void NetManager::ReleaseLanes(System.UInt32 firstLane)
IL_00F2: ldarg.2
IL_00F3: ldc.i4.0
IL_00F4: stfld System.UInt32 NetSegment::m_lanes
IL_00F9: Label3
IL_00F9: ldarg.2
IL_00FA: ldfld System.UInt32 NetSegment::m_path
IL_00FF: brfalse => Label4
IL_0104: call static PathManager
ColossalFramework.Singleton`1<PathManager>::get_instance()
IL_0109: ldarg.2
IL_010A: ldfld System.UInt32 NetSegment::m_path
IL_010F: callvirt System.Void PathManager::ReleasePath(System.UInt32 unit)
IL_0114: ldarg.2
IL_0115: ldc.i4.0
IL_0116: stfld System.UInt32 NetSegment::m_path
IL_011B: Label4
IL_011B: ldarg.0
IL_011C: ldfld Array16`1<NetSegment> NetManager::m_segments
IL_0121: ldarg.1
IL_0122: callvirt System.Void Array16`1<NetSegment>::ReleaseItem(System.UInt16
item)
IL_0127: ldarg.0
IL_0128: ldarg.0
IL_0129: ldfld Array16`1<NetSegment> NetManager::m_segments
IL_012E: callvirt System.UInt32 Array16`1<NetSegment>::ItemCount()
IL_0133: ldc.i4.1
IL_0134: sub
IL_0135: stfld System.Int32 NetManager::m_segmentCount
IL_013A: // end original
IL_013A: Label0
IL_013A: ret
DONE

### Harmony id=NodeMarkup, version=2.0.4.0, location=E:\SteamLibrary\steamapps\


common\data-0000000022595390, env/clr=2.0.50727.1433, platform=Win32NT,
ptrsize:runtime/env=8/Bits64, Windows
### Started from System.Object ModsCommon.BasePatcherMod`1<TypeMod>::get_Harmony(),
location E:\SteamLibrary\steamapps\common\data-0000000023EF7040
### At 2023-02-07 02.24.35
### Patch: virtual System.Void NetManager::SimulationStepImpl(System.Int32 subStep)
### Replacement: static System.Void
NetManager::NetManager.SimulationStepImpl_Patch1(NetManager this, System.Int32
subStep)
IL_0000: Local var 0: System.Boolean
IL_0000: Local var 1: System.Boolean
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.UInt64
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.UInt64
IL_0000: Local var 11: System.Int32
IL_0000: Local var 12: System.UInt16
IL_0000: Local var 13: System.Int32
IL_0000: Local var 14: System.Int32
IL_0000: Local var 15: System.UInt64
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.UInt64
IL_0000: Local var 21: System.Int32
IL_0000: Local var 22: System.UInt16
IL_0000: Local var 23: System.Int32
IL_0000: Local var 24: System.Int32
IL_0000: Local var 25: System.UInt64
IL_0000: Local var 26: System.Int32
IL_0000: Local var 27: System.UInt16
IL_0000: Local var 28: Notification/ProblemStruct
IL_0000: Local var 29: Notification/ProblemStruct
IL_0000: Local var 30: System.Int32
IL_0000: Local var 31: System.Int32
IL_0000: Local var 32: System.UInt64
IL_0000: Local var 33: System.Int32
IL_0000: Local var 34: System.UInt16
IL_0000: Local var 35: System.Boolean
IL_0000: Local var 36: System.Int32
IL_0000: Local var 37: System.Int32
IL_0000: Local var 38: System.Int32
IL_0000: Local var 39: System.Int32
IL_0000: Local var 40: System.Int32
IL_0000: Local var 41: NetInfo
IL_0000: Local var 42: Notification/ProblemStruct
IL_0000: Local var 43: System.Int32
IL_0000: Local var 44: Notification/ProblemStruct
IL_0000: Local var 45: InfoManager/InfoMode
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: Notification/ProblemStruct
IL_0000: Local var 52: NetInfo
IL_0000: Local var 53: Notification/ProblemStruct
IL_0000: Local var 54: InfoManager/InfoMode
IL_0000: Local var 55: GuideController
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: NetInfo
IL_0000: Local var 61: MilestoneInfo
IL_0000: Local var 62: System.Int32
IL_0000: call static System.Void
NodeMarkup.Manager.MarkupManager::GetToUpdate()
IL_0005: // start original
IL_0005: ldarg.0
IL_0006: ldfld System.Boolean NetManager::m_nodesUpdated
IL_000B: brtrue => Label0
IL_0010: ldarg.0
IL_0011: ldfld System.Boolean NetManager::m_segmentsUpdated
IL_0016: brfalse => Label1
IL_001B: Label0
IL_001B: ldarg.0
IL_001C: ldfld System.Boolean NetManager::m_nodesUpdated
IL_0021: stloc.0
IL_0022: ldarg.0
IL_0023: ldfld System.Boolean NetManager::m_segmentsUpdated
IL_0028: stloc.1
IL_0029: ldarg.0
IL_002A: ldc.i4.0
IL_002B: stfld System.Boolean NetManager::m_nodesUpdated
IL_0030: ldarg.0
IL_0031: ldc.i4.0
IL_0032: stfld System.Boolean NetManager::m_segmentsUpdated
IL_0037: ldc.i4.0
IL_0038: stloc.2
IL_0039: br => Label2
IL_003E: Label36
IL_003E: ldloc.0
IL_003F: brfalse => Label3
IL_0044: ldarg.0
IL_0045: ldfld System.UInt64[] NetManager::m_updatedNodes
IL_004A: ldlen
IL_004B: conv.i4
IL_004C: stloc.3
IL_004D: ldc.i4.0
IL_004E: stloc.s 4 (System.Int32)
IL_0050: br => Label4
IL_0055: Label9
IL_0055: ldarg.0
IL_0056: ldfld System.UInt64[] NetManager::m_updatedNodes
IL_005B: ldloc.s 4 (System.Int32)
IL_005D: ldelem.i8
IL_005E: stloc.s 5 (System.UInt64)
IL_0060: ldloc.s 5 (System.UInt64)
IL_0062: ldc.i4.0
IL_0063: conv.i8
IL_0064: beq => Label5
IL_0069: ldc.i4.0
IL_006A: stloc.s 6 (System.Int32)
IL_006C: br => Label6
IL_0071: Label8
IL_0071: ldloc.s 5 (System.UInt64)
IL_0073: ldc.i4.1
IL_0074: conv.i8
IL_0075: ldloc.s 6 (System.Int32)
IL_0077: ldc.i4.s 63
IL_0079: and
IL_007A: shl
IL_007B: and
IL_007C: ldc.i4.0
IL_007D: conv.i8
IL_007E: beq => Label7
IL_0083: ldloc.s 4 (System.Int32)
IL_0085: ldc.i4.6
IL_0086: shl
IL_0087: ldloc.s 6 (System.Int32)
IL_0089: or
IL_008A: conv.u2
IL_008B: stloc.s 7 (System.UInt16)
IL_008D: ldarg.0
IL_008E: ldfld Array16`1<NetNode> NetManager::m_nodes
IL_0093: ldfld NetNode[] Array16`1<NetNode>::m_buffer
IL_0098: ldloc.s 7 (System.UInt16)
IL_009A: ldelema NetNode
IL_009F: ldloc.s 7 (System.UInt16)
IL_00A1: call System.Void NetNode::CalculateNode(System.UInt16 nodeID)
IL_00A6: Label7
IL_00A6: ldloc.s 6 (System.Int32)
IL_00A8: ldc.i4.1
IL_00A9: add
IL_00AA: stloc.s 6 (System.Int32)
IL_00AC: Label6
IL_00AC: ldloc.s 6 (System.Int32)
IL_00AE: ldc.i4.s 64
IL_00B0: blt => Label8
IL_00B5: Label5
IL_00B5: ldloc.s 4 (System.Int32)
IL_00B7: ldc.i4.1
IL_00B8: add
IL_00B9: stloc.s 4 (System.Int32)
IL_00BB: Label4
IL_00BB: ldloc.s 4 (System.Int32)
IL_00BD: ldloc.3
IL_00BE: blt => Label9
IL_00C3: Label3
IL_00C3: ldloc.1
IL_00C4: brfalse => Label10
IL_00C9: ldarg.0
IL_00CA: ldfld System.UInt64[] NetManager::m_updatedSegments
IL_00CF: ldlen
IL_00D0: conv.i4
IL_00D1: stloc.s 8 (System.Int32)
IL_00D3: ldc.i4.0
IL_00D4: stloc.s 9 (System.Int32)
IL_00D6: br => Label11
IL_00DB: Label16
IL_00DB: ldarg.0
IL_00DC: ldfld System.UInt64[] NetManager::m_updatedSegments
IL_00E1: ldloc.s 9 (System.Int32)
IL_00E3: ldelem.i8
IL_00E4: stloc.s 10 (System.UInt64)
IL_00E6: ldloc.s 10 (System.UInt64)
IL_00E8: ldc.i4.0
IL_00E9: conv.i8
IL_00EA: beq => Label12
IL_00EF: ldc.i4.0
IL_00F0: stloc.s 11 (System.Int32)
IL_00F2: br => Label13
IL_00F7: Label15
IL_00F7: ldloc.s 10 (System.UInt64)
IL_00F9: ldc.i4.1
IL_00FA: conv.i8
IL_00FB: ldloc.s 11 (System.Int32)
IL_00FD: ldc.i4.s 63
IL_00FF: and
IL_0100: shl
IL_0101: and
IL_0102: ldc.i4.0
IL_0103: conv.i8
IL_0104: beq => Label14
IL_0109: ldloc.s 9 (System.Int32)
IL_010B: ldc.i4.6
IL_010C: shl
IL_010D: ldloc.s 11 (System.Int32)
IL_010F: or
IL_0110: conv.u2
IL_0111: stloc.s 12 (System.UInt16)
IL_0113: ldarg.0
IL_0114: ldfld Array16`1<NetSegment> NetManager::m_segments
IL_0119: ldfld NetSegment[] Array16`1<NetSegment>::m_buffer
IL_011E: ldloc.s 12 (System.UInt16)
IL_0120: ldelema NetSegment
IL_0125: ldloc.s 12 (System.UInt16)
IL_0127: call System.Void NetSegment::CalculateSegment(System.UInt16
segmentID)
IL_012C: Label14
IL_012C: ldloc.s 11 (System.Int32)
IL_012E: ldc.i4.1
IL_012F: add
IL_0130: stloc.s 11 (System.Int32)
IL_0132: Label13
IL_0132: ldloc.s 11 (System.Int32)
IL_0134: ldc.i4.s 64
IL_0136: blt => Label15
IL_013B: Label12
IL_013B: ldloc.s 9 (System.Int32)
IL_013D: ldc.i4.1
IL_013E: add
IL_013F: stloc.s 9 (System.Int32)
IL_0141: Label11
IL_0141: ldloc.s 9 (System.Int32)
IL_0143: ldloc.s 8 (System.Int32)
IL_0145: blt => Label16
IL_014A: Label10
IL_014A: ldloc.1
IL_014B: brfalse => Label17
IL_0150: ldarg.0
IL_0151: ldfld System.UInt64[] NetManager::m_updatedSegments
IL_0156: ldlen
IL_0157: conv.i4
IL_0158: stloc.s 13 (System.Int32)
IL_015A: ldc.i4.0
IL_015B: stloc.s 14 (System.Int32)
IL_015D: br => Label18
IL_0162: Label23
IL_0162: ldarg.0
IL_0163: ldfld System.UInt64[] NetManager::m_updatedSegments
IL_0168: ldloc.s 14 (System.Int32)
IL_016A: ldelem.i8
IL_016B: stloc.s 15 (System.UInt64)
IL_016D: ldloc.s 15 (System.UInt64)
IL_016F: ldc.i4.0
IL_0170: conv.i8
IL_0171: beq => Label19
IL_0176: ldc.i4.0
IL_0177: stloc.s 16 (System.Int32)
IL_0179: br => Label20
IL_017E: Label22
IL_017E: ldloc.s 15 (System.UInt64)
IL_0180: ldc.i4.1
IL_0181: conv.i8
IL_0182: ldloc.s 16 (System.Int32)
IL_0184: ldc.i4.s 63
IL_0186: and
IL_0187: shl
IL_0188: and
IL_0189: ldc.i4.0
IL_018A: conv.i8
IL_018B: beq => Label21
IL_0190: ldloc.s 14 (System.Int32)
IL_0192: ldc.i4.6
IL_0193: shl
IL_0194: ldloc.s 16 (System.Int32)
IL_0196: or
IL_0197: conv.u2
IL_0198: stloc.s 17 (System.UInt16)
IL_019A: ldarg.0
IL_019B: ldfld Array16`1<NetSegment> NetManager::m_segments
IL_01A0: ldfld NetSegment[] Array16`1<NetSegment>::m_buffer
IL_01A5: ldloc.s 17 (System.UInt16)
IL_01A7: ldelema NetSegment
IL_01AC: ldloc.s 17 (System.UInt16)
IL_01AE: call System.Void NetSegment::UpdateBounds(System.UInt16 segmentID)
IL_01B3: ldarg.0
IL_01B4: ldfld Array16`1<NetSegment> NetManager::m_segments
IL_01B9: ldfld NetSegment[] Array16`1<NetSegment>::m_buffer
IL_01BE: ldloc.s 17 (System.UInt16)
IL_01C0: ldelema NetSegment
IL_01C5: ldloc.s 17 (System.UInt16)
IL_01C7: ldc.i4.0
IL_01C8: call System.Void NetSegment::UpdateLanes(System.UInt16 segmentID,
System.Boolean loading)
IL_01CD: Label21
IL_01CD: ldloc.s 16 (System.Int32)
IL_01CF: ldc.i4.1
IL_01D0: add
IL_01D1: stloc.s 16 (System.Int32)
IL_01D3: Label20
IL_01D3: ldloc.s 16 (System.Int32)
IL_01D5: ldc.i4.s 64
IL_01D7: blt => Label22
IL_01DC: Label19
IL_01DC: ldloc.s 14 (System.Int32)
IL_01DE: ldc.i4.1
IL_01DF: add
IL_01E0: stloc.s 14 (System.Int32)
IL_01E2: Label18
IL_01E2: ldloc.s 14 (System.Int32)
IL_01E4: ldloc.s 13 (System.Int32)
IL_01E6: blt => Label23
IL_01EB: Label17
IL_01EB: ldloc.0
IL_01EC: brfalse => Label24
IL_01F1: ldarg.0
IL_01F2: ldfld System.UInt64[] NetManager::m_updatedNodes
IL_01F7: ldlen
IL_01F8: conv.i4
IL_01F9: stloc.s 18 (System.Int32)
IL_01FB: ldc.i4.0
IL_01FC: stloc.s 19 (System.Int32)
IL_01FE: br => Label25
IL_0203: Label30
IL_0203: ldarg.0
IL_0204: ldfld System.UInt64[] NetManager::m_updatedNodes
IL_0209: ldloc.s 19 (System.Int32)
IL_020B: ldelem.i8
IL_020C: stloc.s 20 (System.UInt64)
IL_020E: ldloc.s 20 (System.UInt64)
IL_0210: ldc.i4.0
IL_0211: conv.i8
IL_0212: beq => Label26
IL_0217: ldc.i4.0
IL_0218: stloc.s 21 (System.Int32)
IL_021A: br => Label27
IL_021F: Label29
IL_021F: ldloc.s 20 (System.UInt64)
IL_0221: ldc.i4.1
IL_0222: conv.i8
IL_0223: ldloc.s 21 (System.Int32)
IL_0225: ldc.i4.s 63
IL_0227: and
IL_0228: shl
IL_0229: and
IL_022A: ldc.i4.0
IL_022B: conv.i8
IL_022C: beq => Label28
IL_0231: ldloc.s 19 (System.Int32)
IL_0233: ldc.i4.6
IL_0234: shl
IL_0235: ldloc.s 21 (System.Int32)
IL_0237: or
IL_0238: conv.u2
IL_0239: stloc.s 22 (System.UInt16)
IL_023B: ldarg.0
IL_023C: ldfld Array16`1<NetNode> NetManager::m_nodes
IL_0241: ldfld NetNode[] Array16`1<NetNode>::m_buffer
IL_0246: ldloc.s 22 (System.UInt16)
IL_0248: ldelema NetNode
IL_024D: ldloc.s 22 (System.UInt16)
IL_024F: call System.Void NetNode::UpdateBounds(System.UInt16 nodeID)
IL_0254: ldarg.0
IL_0255: ldfld Array16`1<NetNode> NetManager::m_nodes
IL_025A: ldfld NetNode[] Array16`1<NetNode>::m_buffer
IL_025F: ldloc.s 22 (System.UInt16)
IL_0261: ldelema NetNode
IL_0266: ldloc.s 22 (System.UInt16)
IL_0268: call System.Void NetNode::UpdateLaneConnection(System.UInt16 nodeID)
IL_026D: Label28
IL_026D: ldloc.s 21 (System.Int32)
IL_026F: ldc.i4.1
IL_0270: add
IL_0271: stloc.s 21 (System.Int32)
IL_0273: Label27
IL_0273: ldloc.s 21 (System.Int32)
IL_0275: ldc.i4.s 64
IL_0277: blt => Label29
IL_027C: Label26
IL_027C: ldloc.s 19 (System.Int32)
IL_027E: ldc.i4.1
IL_027F: add
IL_0280: stloc.s 19 (System.Int32)
IL_0282: Label25
IL_0282: ldloc.s 19 (System.Int32)
IL_0284: ldloc.s 18 (System.Int32)
IL_0286: blt => Label30
IL_028B: Label24
IL_028B: ldarg.0
IL_028C: ldfld System.Boolean NetManager::m_nodesUpdated
IL_0291: brtrue => Label31
IL_0296: ldarg.0
IL_0297: ldfld System.Boolean NetManager::m_segmentsUpdated
IL_029C: brtrue => Label32
IL_02A1: br => Label33
IL_02A6: Label31
IL_02A6: Label32
IL_02A6: ldarg.0
IL_02A7: ldfld System.Boolean NetManager::m_nodesUpdated
IL_02AC: brfalse => Label34
IL_02B1: ldc.i4.1
IL_02B2: stloc.0
IL_02B3: ldarg.0
IL_02B4: ldc.i4.0
IL_02B5: stfld System.Boolean NetManager::m_nodesUpdated
IL_02BA: Label34
IL_02BA: ldarg.0
IL_02BB: ldfld System.Boolean NetManager::m_segmentsUpdated
IL_02C0: brfalse => Label35
IL_02C5: ldc.i4.1
IL_02C6: stloc.1
IL_02C7: ldarg.0
IL_02C8: ldc.i4.0
IL_02C9: stfld System.Boolean NetManager::m_segmentsUpdated
IL_02CE: Label35
IL_02CE: ldloc.2
IL_02CF: ldc.i4.1
IL_02D0: add
IL_02D1: stloc.2
IL_02D2: Label2
IL_02D2: ldloc.2
IL_02D3: ldc.i4.3
IL_02D4: blt => Label36
IL_02D9: Label33
IL_02D9: ldloc.0
IL_02DA: brfalse => Label37
IL_02DF: ldarg.0
IL_02E0: ldfld System.UInt64[] NetManager::m_updatedNodes
IL_02E5: ldlen
IL_02E6: conv.i4
IL_02E7: stloc.s 23 (System.Int32)
IL_02E9: ldc.i4.0
IL_02EA: stloc.s 24 (System.Int32)
IL_02EC: br => Label38
IL_02F1: Label44
IL_02F1: ldarg.0
IL_02F2: ldfld System.UInt64[] NetManager::m_updatedNodes
IL_02F7: ldloc.s 24 (System.Int32)
IL_02F9: ldelem.i8
IL_02FA: stloc.s 25 (System.UInt64)
IL_02FC: ldloc.s 25 (System.UInt64)
IL_02FE: ldc.i4.0
IL_02FF: conv.i8
IL_0300: beq => Label39
IL_0305: ldarg.0
IL_0306: ldfld System.UInt64[] NetManager::m_updatedNodes
IL_030B: ldloc.s 24 (System.Int32)
IL_030D: ldc.i4.0
IL_030E: conv.i8
IL_030F: stelem.i8
IL_0310: ldc.i4.0
IL_0311: stloc.s 26 (System.Int32)
IL_0313: br => Label40
IL_0318: Label43
IL_0318: ldloc.s 25 (System.UInt64)
IL_031A: ldc.i4.1
IL_031B: conv.i8
IL_031C: ldloc.s 26 (System.Int32)
IL_031E: ldc.i4.s 63
IL_0320: and
IL_0321: shl
IL_0322: and
IL_0323: ldc.i4.0
IL_0324: conv.i8
IL_0325: beq => Label41
IL_032A: ldloc.s 24 (System.Int32)
IL_032C: ldc.i4.6
IL_032D: shl
IL_032E: ldloc.s 26 (System.Int32)
IL_0330: or
IL_0331: conv.u2
IL_0332: stloc.s 27 (System.UInt16)
IL_0334: ldarg.0
IL_0335: ldfld Array16`1<NetNode> NetManager::m_nodes
IL_033A: ldfld NetNode[] Array16`1<NetNode>::m_buffer
IL_033F: ldloc.s 27 (System.UInt16)
IL_0341: ldelema NetNode
IL_0346: ldfld ProblemStruct NetNode::m_problems
IL_034B: stloc.s 28 (Notification+ProblemStruct)
IL_034D: ldarg.0
IL_034E: ldfld Array16`1<NetNode> NetManager::m_nodes
IL_0353: ldfld NetNode[] Array16`1<NetNode>::m_buffer
IL_0358: ldloc.s 27 (System.UInt16)
IL_035A: ldelema NetNode
IL_035F: ldloc.s 27 (System.UInt16)
IL_0361: call System.Void NetNode::UpdateNode(System.UInt16 nodeID)
IL_0366: ldarg.0
IL_0367: ldfld Array16`1<NetNode> NetManager::m_nodes
IL_036C: ldfld NetNode[] Array16`1<NetNode>::m_buffer
IL_0371: ldloc.s 27 (System.UInt16)
IL_0373: ldelema NetNode
IL_0378: ldfld ProblemStruct NetNode::m_problems
IL_037D: stloc.s 29 (Notification+ProblemStruct)
IL_037F: ldloc.s 29 (Notification+ProblemStruct)
IL_0381: ldloc.s 28 (Notification+ProblemStruct)
IL_0383: call static System.Boolean
ProblemStruct::op_Inequality(ProblemStruct a, ProblemStruct b)
IL_0388: brfalse => Label42
IL_038D: ldarg.0
IL_038E: ldloc.s 27 (System.UInt16)
IL_0390: ldloc.s 28 (Notification+ProblemStruct)
IL_0392: ldloc.s 29 (Notification+ProblemStruct)
IL_0394: call System.Void NetManager::UpdateNodeNotifications(System.UInt16
node, ProblemStruct oldProblems, ProblemStruct newProblems)
IL_0399: Label42
IL_0399: ldarg.0
IL_039A: ldloc.s 27 (System.UInt16)
IL_039C: call System.Void NetManager::UpdateNodeFlags(System.UInt16 node)
IL_03A1: ldarg.0
IL_03A2: ldloc.s 27 (System.UInt16)
IL_03A4: ldc.i4.1
IL_03A5: call System.Void NetManager::UpdateNodeRenderer(System.UInt16 node,
System.Boolean updateGroup)
IL_03AA: Label41
IL_03AA: ldloc.s 26 (System.Int32)
IL_03AC: ldc.i4.1
IL_03AD: add
IL_03AE: stloc.s 26 (System.Int32)
IL_03B0: Label40
IL_03B0: ldloc.s 26 (System.Int32)
IL_03B2: ldc.i4.s 64
IL_03B4: blt => Label43
IL_03B9: Label39
IL_03B9: ldloc.s 24 (System.Int32)
IL_03BB: ldc.i4.1
IL_03BC: add
IL_03BD: stloc.s 24 (System.Int32)
IL_03BF: Label38
IL_03BF: ldloc.s 24 (System.Int32)
IL_03C1: ldloc.s 23 (System.Int32)
IL_03C3: blt => Label44
IL_03C8: Label37
IL_03C8: ldloc.1
IL_03C9: brfalse => Label45
IL_03CE: ldarg.0
IL_03CF: ldfld System.UInt64[] NetManager::m_updatedSegments
IL_03D4: ldlen
IL_03D5: conv.i4
IL_03D6: stloc.s 30 (System.Int32)
IL_03D8: ldc.i4.0
IL_03D9: stloc.s 31 (System.Int32)
IL_03DB: br => Label46
IL_03E0: Label51
IL_03E0: ldarg.0
IL_03E1: ldfld System.UInt64[] NetManager::m_updatedSegments
IL_03E6: ldloc.s 31 (System.Int32)
IL_03E8: ldelem.i8
IL_03E9: stloc.s 32 (System.UInt64)
IL_03EB: ldloc.s 32 (System.UInt64)
IL_03ED: ldc.i4.0
IL_03EE: conv.i8
IL_03EF: beq => Label47
IL_03F4: ldarg.0
IL_03F5: ldfld System.UInt64[] NetManager::m_updatedSegments
IL_03FA: ldloc.s 31 (System.Int32)
IL_03FC: ldc.i4.0
IL_03FD: conv.i8
IL_03FE: stelem.i8
IL_03FF: ldc.i4.0
IL_0400: stloc.s 33 (System.Int32)
IL_0402: br => Label48
IL_0407: Label50
IL_0407: ldloc.s 32 (System.UInt64)
IL_0409: ldc.i4.1
IL_040A: conv.i8
IL_040B: ldloc.s 33 (System.Int32)
IL_040D: ldc.i4.s 63
IL_040F: and
IL_0410: shl
IL_0411: and
IL_0412: ldc.i4.0
IL_0413: conv.i8
IL_0414: beq => Label49
IL_0419: ldloc.s 31 (System.Int32)
IL_041B: ldc.i4.6
IL_041C: shl
IL_041D: ldloc.s 33 (System.Int32)
IL_041F: or
IL_0420: conv.u2
IL_0421: stloc.s 34 (System.UInt16)
IL_0423: ldarg.0
IL_0424: ldfld Array16`1<NetSegment> NetManager::m_segments
IL_0429: ldfld NetSegment[] Array16`1<NetSegment>::m_buffer
IL_042E: ldloc.s 34 (System.UInt16)
IL_0430: ldelema NetSegment
IL_0435: ldloc.s 34 (System.UInt16)
IL_0437: call System.Void NetSegment::UpdateSegment(System.UInt16 segmentID)
IL_043C: ldarg.0
IL_043D: ldloc.s 34 (System.UInt16)
IL_043F: call System.Void NetManager::UpdateSegmentFlags(System.UInt16
segment)
IL_0444: ldarg.0
IL_0445: ldloc.s 34 (System.UInt16)
IL_0447: ldc.i4.1
IL_0448: call System.Void NetManager::UpdateSegmentRenderer(System.UInt16
segment, System.Boolean updateGroup)
IL_044D: Label49
IL_044D: ldloc.s 33 (System.Int32)
IL_044F: ldc.i4.1
IL_0450: add
IL_0451: stloc.s 33 (System.Int32)
IL_0453: Label48
IL_0453: ldloc.s 33 (System.Int32)
IL_0455: ldc.i4.s 64
IL_0457: blt => Label50
IL_045C: Label47
IL_045C: ldloc.s 31 (System.Int32)
IL_045E: ldc.i4.1
IL_045F: add
IL_0460: stloc.s 31 (System.Int32)
IL_0462: Label46
IL_0462: ldloc.s 31 (System.Int32)
IL_0464: ldloc.s 30 (System.Int32)
IL_0466: blt => Label51
IL_046B: Label1
IL_046B: Label45
IL_046B: ldarg.0
IL_046C: ldfld System.Collections.Generic.HashSet`1<System.UInt16>
NetManager::m_updateNameVisibility
IL_0471: callvirt virtual System.Int32
System.Collections.Generic.HashSet`1<System.UInt16>::get_Count()
IL_0476: brfalse => Label52
IL_047B: ldarg.0
IL_047C: call System.Void NetManager::UpdateNameVisibilities()
IL_0481: Label52
IL_0481: ldarg.1
IL_0482: brfalse => Label53
IL_0487: ldc.i4.0
IL_0488: stloc.s 35 (System.Boolean)
IL_048A: call static SimulationManager
ColossalFramework.Singleton`1<SimulationManager>::get_instance()
IL_048F: ldfld System.UInt32 SimulationManager::m_currentFrameIndex
IL_0494: ldc.i4 255
IL_0499: and
IL_049A: stloc.s 36 (System.Int32)
IL_049C: ldloc.s 36 (System.Int32)
IL_049E: ldc.i4 144
IL_04A3: mul
IL_04A4: stloc.s 37 (System.Int32)
IL_04A6: ldloc.s 36 (System.Int32)
IL_04A8: ldc.i4.1
IL_04A9: add
IL_04AA: ldc.i4 144
IL_04AF: mul
IL_04B0: ldc.i4.1
IL_04B1: sub
IL_04B2: stloc.s 38 (System.Int32)
IL_04B4: ldc.i4.0
IL_04B5: stloc.s 39 (System.Int32)
IL_04B7: ldloc.s 37 (System.Int32)
IL_04B9: stloc.s 40 (System.Int32)
IL_04BB: br => Label54
IL_04C0: Label60
IL_04C0: ldarg.0
IL_04C1: ldfld Array16`1<NetSegment> NetManager::m_segments
IL_04C6: ldfld NetSegment[] Array16`1<NetSegment>::m_buffer
IL_04CB: ldloc.s 40 (System.Int32)
IL_04CD: ldelema NetSegment
IL_04D2: ldfld Flags NetSegment::m_flags
IL_04D7: ldc.i4.1
IL_04D8: and
IL_04D9: brfalse => Label55
IL_04DE: ldarg.0
IL_04DF: ldfld Array16`1<NetSegment> NetManager::m_segments
IL_04E4: ldfld NetSegment[] Array16`1<NetSegment>::m_buffer
IL_04E9: ldloc.s 40 (System.Int32)
IL_04EB: ldelema NetSegment
IL_04F0: call NetInfo NetSegment::get_Info()
IL_04F5: stloc.s 41 (NetInfo)
IL_04F7: ldarg.0
IL_04F8: ldfld Array16`1<NetSegment> NetManager::m_segments
IL_04FD: ldfld NetSegment[] Array16`1<NetSegment>::m_buffer
IL_0502: ldloc.s 40 (System.Int32)
IL_0504: conv.u2
IL_0505: ldelema NetSegment
IL_050A: ldfld ProblemStruct NetSegment::m_problems
IL_050F: stloc.s 42 (Notification+ProblemStruct)
IL_0511: ldloc.s 41 (NetInfo)
IL_0513: brfalse => Label56
IL_0518: ldloc.s 41 (NetInfo)
IL_051A: ldfld NetAI NetInfo::m_netAI
IL_051F: brfalse => Label57
IL_0524: ldloc.s 41 (NetInfo)
IL_0526: ldfld NetAI NetInfo::m_netAI
IL_052B: ldloc.s 40 (System.Int32)
IL_052D: conv.u2
IL_052E: ldarg.0
IL_052F: ldfld Array16`1<NetSegment> NetManager::m_segments
IL_0534: ldfld NetSegment[] Array16`1<NetSegment>::m_buffer
IL_0539: ldloc.s 40 (System.Int32)
IL_053B: ldelema NetSegment
IL_0540: callvirt virtual System.Void NetAI::SimulationStep(System.UInt16
segmentID, NetSegment& data)
IL_0545: Label56
IL_0545: Label57
IL_0545: ldarg.0
IL_0546: ldfld Array16`1<NetSegment> NetManager::m_segments
IL_054B: ldfld NetSegment[] Array16`1<NetSegment>::m_buffer
IL_0550: ldloc.s 40 (System.Int32)
IL_0552: ldelema NetSegment
IL_0557: ldfld System.Byte NetSegment::m_wetness
IL_055C: stloc.s 43 (System.Int32)
IL_055E: ldloc.s 43 (System.Int32)
IL_0560: ldloc.s 39 (System.Int32)
IL_0562: ble => Label58
IL_0567: ldloc.s 43 (System.Int32)
IL_0569: stloc.s 39 (System.Int32)
IL_056B: Label58
IL_056B: ldarg.0
IL_056C: ldfld Array16`1<NetSegment> NetManager::m_segments
IL_0571: ldfld NetSegment[] Array16`1<NetSegment>::m_buffer
IL_0576: ldloc.s 40 (System.Int32)
IL_0578: conv.u2
IL_0579: ldelema NetSegment
IL_057E: ldfld ProblemStruct NetSegment::m_problems
IL_0583: stloc.s 44 (Notification+ProblemStruct)
IL_0585: ldloc.s 44 (Notification+ProblemStruct)
IL_0587: ldloc.s 42 (Notification+ProblemStruct)
IL_0589: call static System.Boolean
ProblemStruct::op_Inequality(ProblemStruct a, ProblemStruct b)
IL_058E: brfalse => Label59
IL_0593: ldarg.0
IL_0594: ldloc.s 40 (System.Int32)
IL_0596: conv.u2
IL_0597: ldloc.s 42 (Notification+ProblemStruct)
IL_0599: ldloc.s 44 (Notification+ProblemStruct)
IL_059B: call System.Void
NetManager::UpdateSegmentNotifications(System.UInt16 segment, ProblemStruct
oldProblems, ProblemStruct newProblems)
IL_05A0: Label55
IL_05A0: Label59
IL_05A0: ldc.i4.1
IL_05A1: stloc.s 35 (System.Boolean)
IL_05A3: ldloc.s 40 (System.Int32)
IL_05A5: ldc.i4.1
IL_05A6: add
IL_05A7: stloc.s 40 (System.Int32)
IL_05A9: Label54
IL_05A9: ldloc.s 40 (System.Int32)
IL_05AB: ldloc.s 38 (System.Int32)
IL_05AD: ble => Label60
IL_05B2: ldloc.s 35 (System.Boolean)
IL_05B4: brfalse => Label61
IL_05B9: call static InfoManager
ColossalFramework.Singleton`1<InfoManager>::get_instance()
IL_05BE: callvirt InfoMode InfoManager::get_CurrentMode()
IL_05C3: stloc.s 45 (InfoManager+InfoMode)
IL_05C5: ldloc.s 45 (InfoManager+InfoMode)
IL_05C7: switch => Labels62,63,64,65,66,67,68,69,70,71
IL_05F4: Label65
IL_05F4: Label66
IL_05F4: Label67
IL_05F4: Label68
IL_05F4: Label70
IL_05F4: ldloc.s 45 (InfoManager+InfoMode)
IL_05F6: ldc.i4.s 22
IL_05F8: sub
IL_05F9: switch => Labels72,73,74
IL_060A: ldloc.s 45 (InfoManager+InfoMode)
IL_060C: ldc.i4.s 14
IL_060E: beq => Label75
IL_0613: br => Label76
IL_0618: Label63
IL_0618: Label64
IL_0618: Label69
IL_0618: Label71
IL_0618: Label72
IL_0618: Label73
IL_0618: Label74
IL_0618: Label75
IL_0618: ldarg.0
IL_0619: ldloc.s 37 (System.Int32)
IL_061B: conv.u2
IL_061C: ldloc.s 38 (System.Int32)
IL_061E: conv.u2
IL_061F: call System.Void NetManager::UpdateSegmentColors(System.UInt16 min,
System.UInt16 max)
IL_0624: br => Label77
IL_0629: Label62
IL_0629: ldarg.0
IL_062A: ldfld System.Int32 NetManager::m_wetnessChanged
IL_062F: brfalse => Label78
IL_0634: ldarg.0
IL_0635: ldloc.s 37 (System.Int32)
IL_0637: conv.u2
IL_0638: ldloc.s 38 (System.Int32)
IL_063A: conv.u2
IL_063B: call System.Void NetManager::UpdateSegmentColors(System.UInt16 min,
System.UInt16 max)
IL_0640: Label78
IL_0640: br => Label79
IL_0645: Label61
IL_0645: Label76
IL_0645: Label77
IL_0645: Label79
IL_0645: ldloc.s 36 (System.Int32)
IL_0647: ldc.i4 255
IL_064C: bne.un => Label80
IL_0651: ldarg.0
IL_0652: ldarg.0
IL_0653: ldfld System.Int32 NetManager::m_currentMaxWetness
IL_0658: stfld System.Int32 NetManager::m_lastMaxWetness
IL_065D: ldarg.0
IL_065E: ldc.i4.0
IL_065F: stfld System.Int32 NetManager::m_currentMaxWetness
IL_0664: br => Label81
IL_0669: Label80
IL_0669: ldloc.s 39 (System.Int32)
IL_066B: ldarg.0
IL_066C: ldfld System.Int32 NetManager::m_currentMaxWetness
IL_0671: ble => Label82
IL_0676: ldarg.0
IL_0677: ldloc.s 39 (System.Int32)
IL_0679: stfld System.Int32 NetManager::m_currentMaxWetness
IL_067E: Label53
IL_067E: Label81
IL_067E: Label82
IL_067E: ldarg.1
IL_067F: brfalse => Label83
IL_0684: ldc.i4.0
IL_0685: stloc.s 46 (System.Boolean)
IL_0687: call static SimulationManager
ColossalFramework.Singleton`1<SimulationManager>::get_instance()
IL_068C: ldfld System.UInt32 SimulationManager::m_currentFrameIndex
IL_0691: ldc.i4 255
IL_0696: and
IL_0697: stloc.s 47 (System.Int32)
IL_0699: ldloc.s 47 (System.Int32)
IL_069B: ldc.i4 128
IL_06A0: mul
IL_06A1: stloc.s 48 (System.Int32)
IL_06A3: ldloc.s 47 (System.Int32)
IL_06A5: ldc.i4.1
IL_06A6: add
IL_06A7: ldc.i4 128
IL_06AC: mul
IL_06AD: ldc.i4.1
IL_06AE: sub
IL_06AF: stloc.s 49 (System.Int32)
IL_06B1: ldloc.s 48 (System.Int32)
IL_06B3: stloc.s 50 (System.Int32)
IL_06B5: br => Label84
IL_06BA: Label89
IL_06BA: ldarg.0
IL_06BB: ldfld Array16`1<NetNode> NetManager::m_nodes
IL_06C0: ldfld NetNode[] Array16`1<NetNode>::m_buffer
IL_06C5: ldloc.s 50 (System.Int32)
IL_06C7: ldelema NetNode
IL_06CC: ldfld Flags NetNode::m_flags
IL_06D1: ldc.i4.1
IL_06D2: and
IL_06D3: brfalse => Label85
IL_06D8: ldarg.0
IL_06D9: ldfld Array16`1<NetNode> NetManager::m_nodes
IL_06DE: ldfld NetNode[] Array16`1<NetNode>::m_buffer
IL_06E3: ldloc.s 50 (System.Int32)
IL_06E5: ldelema NetNode
IL_06EA: ldfld ProblemStruct NetNode::m_problems
IL_06EF: stloc.s 51 (Notification+ProblemStruct)
IL_06F1: ldarg.0
IL_06F2: ldfld Array16`1<NetNode> NetManager::m_nodes
IL_06F7: ldfld NetNode[] Array16`1<NetNode>::m_buffer
IL_06FC: ldloc.s 50 (System.Int32)
IL_06FE: ldelema NetNode
IL_0703: call NetInfo NetNode::get_Info()
IL_0708: stloc.s 52 (NetInfo)
IL_070A: ldloc.s 52 (NetInfo)
IL_070C: brfalse => Label86
IL_0711: ldloc.s 52 (NetInfo)
IL_0713: ldfld NetAI NetInfo::m_netAI
IL_0718: brfalse => Label87
IL_071D: ldloc.s 52 (NetInfo)
IL_071F: ldfld NetAI NetInfo::m_netAI
IL_0724: ldloc.s 50 (System.Int32)
IL_0726: conv.u2
IL_0727: ldarg.0
IL_0728: ldfld Array16`1<NetNode> NetManager::m_nodes
IL_072D: ldfld NetNode[] Array16`1<NetNode>::m_buffer
IL_0732: ldloc.s 50 (System.Int32)
IL_0734: ldelema NetNode
IL_0739: callvirt virtual System.Void NetAI::SimulationStep(System.UInt16 nodeID,
NetNode& data)
IL_073E: Label86
IL_073E: Label87
IL_073E: ldarg.0
IL_073F: ldfld Array16`1<NetNode> NetManager::m_nodes
IL_0744: ldfld NetNode[] Array16`1<NetNode>::m_buffer
IL_0749: ldloc.s 50 (System.Int32)
IL_074B: ldelema NetNode
IL_0750: ldfld ProblemStruct NetNode::m_problems
IL_0755: stloc.s 53 (Notification+ProblemStruct)
IL_0757: ldloc.s 53 (Notification+ProblemStruct)
IL_0759: ldloc.s 51 (Notification+ProblemStruct)
IL_075B: call static System.Boolean
ProblemStruct::op_Inequality(ProblemStruct a, ProblemStruct b)
IL_0760: brfalse => Label88
IL_0765: ldarg.0
IL_0766: ldloc.s 50 (System.Int32)
IL_0768: conv.u2
IL_0769: ldloc.s 51 (Notification+ProblemStruct)
IL_076B: ldloc.s 53 (Notification+ProblemStruct)
IL_076D: call System.Void NetManager::UpdateNodeNotifications(System.UInt16
node, ProblemStruct oldProblems, ProblemStruct newProblems)
IL_0772: Label85
IL_0772: Label88
IL_0772: ldc.i4.1
IL_0773: stloc.s 46 (System.Boolean)
IL_0775: ldloc.s 50 (System.Int32)
IL_0777: ldc.i4.1
IL_0778: add
IL_0779: stloc.s 50 (System.Int32)
IL_077B: Label84
IL_077B: ldloc.s 50 (System.Int32)
IL_077D: ldloc.s 49 (System.Int32)
IL_077F: ble => Label89
IL_0784: ldloc.s 46 (System.Boolean)
IL_0786: brfalse => Label90
IL_078B: call static InfoManager
ColossalFramework.Singleton`1<InfoManager>::get_instance()
IL_0790: callvirt InfoMode InfoManager::get_CurrentMode()
IL_0795: stloc.s 54 (InfoManager+InfoMode)
IL_0797: ldloc.s 54 (InfoManager+InfoMode)
IL_0799: ldc.i4.s 22
IL_079B: sub
IL_079C: switch => Labels91,92,93
IL_07AD: ldloc.s 54 (InfoManager+InfoMode)
IL_07AF: switch => Labels94,95,96
IL_07C0: Label95
IL_07C0: ldloc.s 54 (InfoManager+InfoMode)
IL_07C2: ldc.i4.7
IL_07C3: sub
IL_07C4: switch => Labels97,98,99
IL_07D5: Label98
IL_07D5: ldloc.s 54 (InfoManager+InfoMode)
IL_07D7: ldc.i4.s 14
IL_07D9: beq => Label100
IL_07DE: br => Label101
IL_07E3: Label91
IL_07E3: Label92
IL_07E3: Label93
IL_07E3: Label96
IL_07E3: Label97
IL_07E3: Label99
IL_07E3: Label100
IL_07E3: ldarg.0
IL_07E4: ldloc.s 48 (System.Int32)
IL_07E6: conv.u2
IL_07E7: ldloc.s 49 (System.Int32)
IL_07E9: conv.u2
IL_07EA: call System.Void NetManager::UpdateNodeColors(System.UInt16 min,
System.UInt16 max)
IL_07EF: br => Label102
IL_07F4: Label94
IL_07F4: ldarg.0
IL_07F5: ldfld System.Int32 NetManager::m_wetnessChanged
IL_07FA: brfalse => Label103
IL_07FF: ldarg.0
IL_0800: ldloc.s 48 (System.Int32)
IL_0802: conv.u2
IL_0803: ldloc.s 49 (System.Int32)
IL_0805: conv.u2
IL_0806: call System.Void NetManager::UpdateNodeColors(System.UInt16 min,
System.UInt16 max)
IL_080B: Label103
IL_080B: br => Label104
IL_0810: Label83
IL_0810: Label90
IL_0810: Label101
IL_0810: Label102
IL_0810: Label104
IL_0810: ldarg.0
IL_0811: ldfld System.Int32 NetManager::m_wetnessChanged
IL_0816: brfalse => Label105
IL_081B: ldarg.0
IL_081C: dup
IL_081D: ldfld System.Int32 NetManager::m_wetnessChanged
IL_0822: ldc.i4.1
IL_0823: sub
IL_0824: stfld System.Int32 NetManager::m_wetnessChanged
IL_0829: Label105
IL_0829: ldarg.0
IL_082A: ldfld PathVisualizer NetManager::m_pathVisualizer
IL_082F: ldarg.1
IL_0830: callvirt System.Void PathVisualizer::SimulationStep(System.Int32
subStep)
IL_0835: ldarg.0
IL_0836: ldfld NetAdjust NetManager::m_netAdjust
IL_083B: ldarg.1
IL_083C: callvirt System.Void NetAdjust::SimulationStep(System.Int32 subStep)
IL_0841: call static GuideManager
ColossalFramework.Singleton`1<GuideManager>::get_instance()
IL_0846: ldfld GuideController SimulationManagerBase`2<GuideManager,
GuideController>::m_properties
IL_084B: stloc.s 55 (GuideController)
IL_084D: ldarg.1
IL_084E: ldc.i4.1
IL_084F: bgt => Label106
IL_0854: call static SimulationManager
ColossalFramework.Singleton`1<SimulationManager>::get_instance()
IL_0859: ldfld System.UInt32 SimulationManager::m_currentTickIndex
IL_085E: ldc.i4 1023
IL_0863: and
IL_0864: stloc.s 56 (System.Int32)
IL_0866: ldloc.s 56 (System.Int32)
IL_0868: call static System.Int32 PrefabCollection`1<NetInfo>::PrefabCount()
IL_086D: mul
IL_086E: ldc.i4.s 10
IL_0870: shr
IL_0871: stloc.s 57 (System.Int32)
IL_0873: ldloc.s 56 (System.Int32)
IL_0875: ldc.i4.1
IL_0876: add
IL_0877: call static System.Int32 PrefabCollection`1<NetInfo>::PrefabCount()
IL_087C: mul
IL_087D: ldc.i4.s 10
IL_087F: shr
IL_0880: ldc.i4.1
IL_0881: sub
IL_0882: stloc.s 58 (System.Int32)
IL_0884: ldloc.s 57 (System.Int32)
IL_0886: stloc.s 59 (System.Int32)
IL_0888: br => Label107
IL_088D: Label114
IL_088D: ldloc.s 59 (System.Int32)
IL_088F: call static NetInfo
PrefabCollection`1<NetInfo>::GetPrefab(System.UInt32 index)
IL_0894: stloc.s 60 (NetInfo)
IL_0896: ldloc.s 60 (NetInfo)
IL_0898: brfalse => Label108
IL_089D: ldloc.s 60 (NetInfo)
IL_089F: ldfld MilestoneInfo NetInfo::m_UnlockMilestone
IL_08A4: stloc.s 61 (MilestoneInfo)
IL_08A6: ldloc.s 61 (MilestoneInfo)
IL_08A8: brfalse => Label109
IL_08AD: call static UnlockManager
ColossalFramework.Singleton`1<UnlockManager>::get_instance()
IL_08B2: ldloc.s 61 (MilestoneInfo)
IL_08B4: ldc.i4.0
IL_08B5: ldc.i4.0
IL_08B6: callvirt System.Int32 UnlockManager::CheckMilestone(MilestoneInfo
milestone, System.Boolean forceUnlock, System.Boolean forceRelock)
IL_08BB: pop
IL_08BC: Label109
IL_08BC: ldloc.s 55 (GuideController)
IL_08BE: brfalse => Label110
IL_08C3: call static UnlockManager
ColossalFramework.Singleton`1<UnlockManager>::get_instance()
IL_08C8: ldloc.s 60 (NetInfo)
IL_08CA: ldfld ItemClass NetInfo::m_class
IL_08CF: ldfld Service ItemClass::m_service
IL_08D4: callvirt System.Boolean UnlockManager::Unlocked(Service service)
IL_08D9: brfalse => Label111
IL_08DE: call static UnlockManager
ColossalFramework.Singleton`1<UnlockManager>::get_instance()
IL_08E3: ldloc.s 60 (NetInfo)
IL_08E5: ldfld MilestoneInfo NetInfo::m_UnlockMilestone
IL_08EA: callvirt System.Boolean UnlockManager::Unlocked(MilestoneInfo milestone)
IL_08EF: brfalse => Label112
IL_08F4: ldloc.s 55 (GuideController)
IL_08F6: brfalse => Label113
IL_08FB: ldloc.s 60 (NetInfo)
IL_08FD: ldfld NetAI NetInfo::m_netAI
IL_0902: ldloc.s 55 (GuideController)
IL_0904: callvirt virtual System.Void NetAI::UpdateGuide(GuideController
guideController)
IL_0909: Label108
IL_0909: Label110
IL_0909: Label111
IL_0909: Label112
IL_0909: Label113
IL_0909: ldloc.s 59 (System.Int32)
IL_090B: ldc.i4.1
IL_090C: add
IL_090D: stloc.s 59 (System.Int32)
IL_090F: Label107
IL_090F: ldloc.s 59 (System.Int32)
IL_0911: ldloc.s 58 (System.Int32)
IL_0913: ble => Label114
IL_0918: Label106
IL_0918: ldarg.1
IL_0919: ldc.i4.1
IL_091A: bgt => Label115
IL_091F: ldloc.s 55 (GuideController)
IL_0921: brfalse => Label116
IL_0926: call static SimulationManager
ColossalFramework.Singleton`1<SimulationManager>::get_instance()
IL_092B: ldfld System.UInt32 SimulationManager::m_currentTickIndex
IL_0930: ldc.i4 255
IL_0935: and
IL_0936: stloc.s 62 (System.Int32)
IL_0938: ldloc.s 62 (System.Int32)
IL_093A: ldc.i4 189
IL_093F: beq => Label117
IL_0944: ldloc.s 62 (System.Int32)
IL_0946: ldc.i4 217
IL_094B: beq => Label118
IL_0950: ldloc.s 62 (System.Int32)
IL_0952: ldc.i4.s 75
IL_0954: beq => Label119
IL_0959: br => Label120
IL_095E: Label117
IL_095E: ldarg.0
IL_095F: ldfld GenericGuide NetManager::m_roadsNotUsed
IL_0964: ldloc.s 55 (GuideController)
IL_0966: ldfld GuideInfo GuideController::m_roadsNotUsed
IL_096B: callvirt System.Void GenericGuide::Activate(GuideInfo guideInfo)
IL_0970: br => Label121
IL_0975: Label118
IL_0975: ldarg.0
IL_0976: ldfld System.UInt16 NetManager::m_lastVisibleRoadNameSegment
IL_097B: brfalse => Label122
IL_0980: ldarg.0
IL_0981: ldfld NetSegmentInstanceGuide NetManager::m_roadNames
IL_0986: ldloc.s 55 (GuideController)
IL_0988: ldfld GuideInfo GuideController::m_roadNames
IL_098D: ldarg.0
IL_098E: ldfld System.UInt16 NetManager::m_lastVisibleRoadNameSegment
IL_0993: ldc.i4.1
IL_0994: callvirt System.Void NetSegmentInstanceGuide::Activate(GuideInfo
guideInfo, System.UInt16 segmentID, System.Boolean ignoreID)
IL_0999: Label122
IL_0999: br => Label123
IL_099E: Label119
IL_099E: ldarg.0
IL_099F: ldfld System.UInt16 NetManager::m_lastVisibleTrafficLightNode
IL_09A4: brfalse => Label124
IL_09A9: ldarg.0
IL_09AA: ldfld NetNodeInstanceGuide NetManager::m_yieldLights
IL_09AF: ldloc.s 55 (GuideController)
IL_09B1: ldfld GuideInfo GuideController::m_yieldLights
IL_09B6: ldarg.0
IL_09B7: ldfld System.UInt16 NetManager::m_lastVisibleTrafficLightNode
IL_09BC: ldc.i4.0
IL_09BD: conv.i8
IL_09BE: ldc.i4.1
IL_09BF: callvirt System.Void NetNodeInstanceGuide::Activate(GuideInfo guideInfo,
System.UInt16 nodeID, Problem1 problems, System.Boolean ignoreID)
IL_09C4: Label124
IL_09C4: br => Label125
IL_09C9: // end original
IL_09C9: Label115
IL_09C9: Label116
IL_09C9: Label120
IL_09C9: Label121
IL_09C9: Label123
IL_09C9: Label125
IL_09C9: ret
DONE

### Harmony id=NodeMarkup, version=2.0.4.0, location=E:\SteamLibrary\steamapps\


common\data-0000000022595390, env/clr=2.0.50727.1433, platform=Win32NT,
ptrsize:runtime/env=8/Bits64, Windows
### Started from System.Object ModsCommon.BasePatcherMod`1<TypeMod>::get_Harmony(),
location E:\SteamLibrary\steamapps\common\data-0000000023EF7040
### At 2023-02-07 02.24.35
### Patch: virtual System.Void NetManager::SimulationStepImpl(System.Int32 subStep)
### Replacement: static System.Void
NetManager::NetManager.SimulationStepImpl_Patch2(NetManager this, System.Int32
subStep)
IL_0000: Local var 0: System.Boolean
IL_0000: Local var 1: System.Boolean
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.UInt64
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.UInt64
IL_0000: Local var 11: System.Int32
IL_0000: Local var 12: System.UInt16
IL_0000: Local var 13: System.Int32
IL_0000: Local var 14: System.Int32
IL_0000: Local var 15: System.UInt64
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.UInt64
IL_0000: Local var 21: System.Int32
IL_0000: Local var 22: System.UInt16
IL_0000: Local var 23: System.Int32
IL_0000: Local var 24: System.Int32
IL_0000: Local var 25: System.UInt64
IL_0000: Local var 26: System.Int32
IL_0000: Local var 27: System.UInt16
IL_0000: Local var 28: Notification/ProblemStruct
IL_0000: Local var 29: Notification/ProblemStruct
IL_0000: Local var 30: System.Int32
IL_0000: Local var 31: System.Int32
IL_0000: Local var 32: System.UInt64
IL_0000: Local var 33: System.Int32
IL_0000: Local var 34: System.UInt16
IL_0000: Local var 35: System.Boolean
IL_0000: Local var 36: System.Int32
IL_0000: Local var 37: System.Int32
IL_0000: Local var 38: System.Int32
IL_0000: Local var 39: System.Int32
IL_0000: Local var 40: System.Int32
IL_0000: Local var 41: NetInfo
IL_0000: Local var 42: Notification/ProblemStruct
IL_0000: Local var 43: System.Int32
IL_0000: Local var 44: Notification/ProblemStruct
IL_0000: Local var 45: InfoManager/InfoMode
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: Notification/ProblemStruct
IL_0000: Local var 52: NetInfo
IL_0000: Local var 53: Notification/ProblemStruct
IL_0000: Local var 54: InfoManager/InfoMode
IL_0000: Local var 55: GuideController
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: NetInfo
IL_0000: Local var 61: MilestoneInfo
IL_0000: Local var 62: System.Int32
IL_0000: call static System.Void
NodeMarkup.Manager.MarkupManager::GetToUpdate()
IL_0005: // start original
IL_0005: ldarg.0
IL_0006: ldfld System.Boolean NetManager::m_nodesUpdated
IL_000B: brtrue => Label0
IL_0010: ldarg.0
IL_0011: ldfld System.Boolean NetManager::m_segmentsUpdated
IL_0016: brfalse => Label1
IL_001B: Label0
IL_001B: ldarg.0
IL_001C: ldfld System.Boolean NetManager::m_nodesUpdated
IL_0021: stloc.0
IL_0022: ldarg.0
IL_0023: ldfld System.Boolean NetManager::m_segmentsUpdated
IL_0028: stloc.1
IL_0029: ldarg.0
IL_002A: ldc.i4.0
IL_002B: stfld System.Boolean NetManager::m_nodesUpdated
IL_0030: ldarg.0
IL_0031: ldc.i4.0
IL_0032: stfld System.Boolean NetManager::m_segmentsUpdated
IL_0037: ldc.i4.0
IL_0038: stloc.2
IL_0039: br => Label2
IL_003E: Label36
IL_003E: ldloc.0
IL_003F: brfalse => Label3
IL_0044: ldarg.0
IL_0045: ldfld System.UInt64[] NetManager::m_updatedNodes
IL_004A: ldlen
IL_004B: conv.i4
IL_004C: stloc.3
IL_004D: ldc.i4.0
IL_004E: stloc.s 4 (System.Int32)
IL_0050: br => Label4
IL_0055: Label9
IL_0055: ldarg.0
IL_0056: ldfld System.UInt64[] NetManager::m_updatedNodes
IL_005B: ldloc.s 4 (System.Int32)
IL_005D: ldelem.i8
IL_005E: stloc.s 5 (System.UInt64)
IL_0060: ldloc.s 5 (System.UInt64)
IL_0062: ldc.i4.0
IL_0063: conv.i8
IL_0064: beq => Label5
IL_0069: ldc.i4.0
IL_006A: stloc.s 6 (System.Int32)
IL_006C: br => Label6
IL_0071: Label8
IL_0071: ldloc.s 5 (System.UInt64)
IL_0073: ldc.i4.1
IL_0074: conv.i8
IL_0075: ldloc.s 6 (System.Int32)
IL_0077: ldc.i4.s 63
IL_0079: and
IL_007A: shl
IL_007B: and
IL_007C: ldc.i4.0
IL_007D: conv.i8
IL_007E: beq => Label7
IL_0083: ldloc.s 4 (System.Int32)
IL_0085: ldc.i4.6
IL_0086: shl
IL_0087: ldloc.s 6 (System.Int32)
IL_0089: or
IL_008A: conv.u2
IL_008B: stloc.s 7 (System.UInt16)
IL_008D: ldarg.0
IL_008E: ldfld Array16`1<NetNode> NetManager::m_nodes
IL_0093: ldfld NetNode[] Array16`1<NetNode>::m_buffer
IL_0098: ldloc.s 7 (System.UInt16)
IL_009A: ldelema NetNode
IL_009F: ldloc.s 7 (System.UInt16)
IL_00A1: call System.Void NetNode::CalculateNode(System.UInt16 nodeID)
IL_00A6: Label7
IL_00A6: ldloc.s 6 (System.Int32)
IL_00A8: ldc.i4.1
IL_00A9: add
IL_00AA: stloc.s 6 (System.Int32)
IL_00AC: Label6
IL_00AC: ldloc.s 6 (System.Int32)
IL_00AE: ldc.i4.s 64
IL_00B0: blt => Label8
IL_00B5: Label5
IL_00B5: ldloc.s 4 (System.Int32)
IL_00B7: ldc.i4.1
IL_00B8: add
IL_00B9: stloc.s 4 (System.Int32)
IL_00BB: Label4
IL_00BB: ldloc.s 4 (System.Int32)
IL_00BD: ldloc.3
IL_00BE: blt => Label9
IL_00C3: Label3
IL_00C3: ldloc.1
IL_00C4: brfalse => Label10
IL_00C9: ldarg.0
IL_00CA: ldfld System.UInt64[] NetManager::m_updatedSegments
IL_00CF: ldlen
IL_00D0: conv.i4
IL_00D1: stloc.s 8 (System.Int32)
IL_00D3: ldc.i4.0
IL_00D4: stloc.s 9 (System.Int32)
IL_00D6: br => Label11
IL_00DB: Label16
IL_00DB: ldarg.0
IL_00DC: ldfld System.UInt64[] NetManager::m_updatedSegments
IL_00E1: ldloc.s 9 (System.Int32)
IL_00E3: ldelem.i8
IL_00E4: stloc.s 10 (System.UInt64)
IL_00E6: ldloc.s 10 (System.UInt64)
IL_00E8: ldc.i4.0
IL_00E9: conv.i8
IL_00EA: beq => Label12
IL_00EF: ldc.i4.0
IL_00F0: stloc.s 11 (System.Int32)
IL_00F2: br => Label13
IL_00F7: Label15
IL_00F7: ldloc.s 10 (System.UInt64)
IL_00F9: ldc.i4.1
IL_00FA: conv.i8
IL_00FB: ldloc.s 11 (System.Int32)
IL_00FD: ldc.i4.s 63
IL_00FF: and
IL_0100: shl
IL_0101: and
IL_0102: ldc.i4.0
IL_0103: conv.i8
IL_0104: beq => Label14
IL_0109: ldloc.s 9 (System.Int32)
IL_010B: ldc.i4.6
IL_010C: shl
IL_010D: ldloc.s 11 (System.Int32)
IL_010F: or
IL_0110: conv.u2
IL_0111: stloc.s 12 (System.UInt16)
IL_0113: ldarg.0
IL_0114: ldfld Array16`1<NetSegment> NetManager::m_segments
IL_0119: ldfld NetSegment[] Array16`1<NetSegment>::m_buffer
IL_011E: ldloc.s 12 (System.UInt16)
IL_0120: ldelema NetSegment
IL_0125: ldloc.s 12 (System.UInt16)
IL_0127: call System.Void NetSegment::CalculateSegment(System.UInt16
segmentID)
IL_012C: Label14
IL_012C: ldloc.s 11 (System.Int32)
IL_012E: ldc.i4.1
IL_012F: add
IL_0130: stloc.s 11 (System.Int32)
IL_0132: Label13
IL_0132: ldloc.s 11 (System.Int32)
IL_0134: ldc.i4.s 64
IL_0136: blt => Label15
IL_013B: Label12
IL_013B: ldloc.s 9 (System.Int32)
IL_013D: ldc.i4.1
IL_013E: add
IL_013F: stloc.s 9 (System.Int32)
IL_0141: Label11
IL_0141: ldloc.s 9 (System.Int32)
IL_0143: ldloc.s 8 (System.Int32)
IL_0145: blt => Label16
IL_014A: Label10
IL_014A: ldloc.1
IL_014B: brfalse => Label17
IL_0150: ldarg.0
IL_0151: ldfld System.UInt64[] NetManager::m_updatedSegments
IL_0156: ldlen
IL_0157: conv.i4
IL_0158: stloc.s 13 (System.Int32)
IL_015A: ldc.i4.0
IL_015B: stloc.s 14 (System.Int32)
IL_015D: br => Label18
IL_0162: Label23
IL_0162: ldarg.0
IL_0163: ldfld System.UInt64[] NetManager::m_updatedSegments
IL_0168: ldloc.s 14 (System.Int32)
IL_016A: ldelem.i8
IL_016B: stloc.s 15 (System.UInt64)
IL_016D: ldloc.s 15 (System.UInt64)
IL_016F: ldc.i4.0
IL_0170: conv.i8
IL_0171: beq => Label19
IL_0176: ldc.i4.0
IL_0177: stloc.s 16 (System.Int32)
IL_0179: br => Label20
IL_017E: Label22
IL_017E: ldloc.s 15 (System.UInt64)
IL_0180: ldc.i4.1
IL_0181: conv.i8
IL_0182: ldloc.s 16 (System.Int32)
IL_0184: ldc.i4.s 63
IL_0186: and
IL_0187: shl
IL_0188: and
IL_0189: ldc.i4.0
IL_018A: conv.i8
IL_018B: beq => Label21
IL_0190: ldloc.s 14 (System.Int32)
IL_0192: ldc.i4.6
IL_0193: shl
IL_0194: ldloc.s 16 (System.Int32)
IL_0196: or
IL_0197: conv.u2
IL_0198: stloc.s 17 (System.UInt16)
IL_019A: ldarg.0
IL_019B: ldfld Array16`1<NetSegment> NetManager::m_segments
IL_01A0: ldfld NetSegment[] Array16`1<NetSegment>::m_buffer
IL_01A5: ldloc.s 17 (System.UInt16)
IL_01A7: ldelema NetSegment
IL_01AC: ldloc.s 17 (System.UInt16)
IL_01AE: call System.Void NetSegment::UpdateBounds(System.UInt16 segmentID)
IL_01B3: ldarg.0
IL_01B4: ldfld Array16`1<NetSegment> NetManager::m_segments
IL_01B9: ldfld NetSegment[] Array16`1<NetSegment>::m_buffer
IL_01BE: ldloc.s 17 (System.UInt16)
IL_01C0: ldelema NetSegment
IL_01C5: ldloc.s 17 (System.UInt16)
IL_01C7: ldc.i4.0
IL_01C8: call System.Void NetSegment::UpdateLanes(System.UInt16 segmentID,
System.Boolean loading)
IL_01CD: Label21
IL_01CD: ldloc.s 16 (System.Int32)
IL_01CF: ldc.i4.1
IL_01D0: add
IL_01D1: stloc.s 16 (System.Int32)
IL_01D3: Label20
IL_01D3: ldloc.s 16 (System.Int32)
IL_01D5: ldc.i4.s 64
IL_01D7: blt => Label22
IL_01DC: Label19
IL_01DC: ldloc.s 14 (System.Int32)
IL_01DE: ldc.i4.1
IL_01DF: add
IL_01E0: stloc.s 14 (System.Int32)
IL_01E2: Label18
IL_01E2: ldloc.s 14 (System.Int32)
IL_01E4: ldloc.s 13 (System.Int32)
IL_01E6: blt => Label23
IL_01EB: Label17
IL_01EB: ldloc.0
IL_01EC: brfalse => Label24
IL_01F1: ldarg.0
IL_01F2: ldfld System.UInt64[] NetManager::m_updatedNodes
IL_01F7: ldlen
IL_01F8: conv.i4
IL_01F9: stloc.s 18 (System.Int32)
IL_01FB: ldc.i4.0
IL_01FC: stloc.s 19 (System.Int32)
IL_01FE: br => Label25
IL_0203: Label30
IL_0203: ldarg.0
IL_0204: ldfld System.UInt64[] NetManager::m_updatedNodes
IL_0209: ldloc.s 19 (System.Int32)
IL_020B: ldelem.i8
IL_020C: stloc.s 20 (System.UInt64)
IL_020E: ldloc.s 20 (System.UInt64)
IL_0210: ldc.i4.0
IL_0211: conv.i8
IL_0212: beq => Label26
IL_0217: ldc.i4.0
IL_0218: stloc.s 21 (System.Int32)
IL_021A: br => Label27
IL_021F: Label29
IL_021F: ldloc.s 20 (System.UInt64)
IL_0221: ldc.i4.1
IL_0222: conv.i8
IL_0223: ldloc.s 21 (System.Int32)
IL_0225: ldc.i4.s 63
IL_0227: and
IL_0228: shl
IL_0229: and
IL_022A: ldc.i4.0
IL_022B: conv.i8
IL_022C: beq => Label28
IL_0231: ldloc.s 19 (System.Int32)
IL_0233: ldc.i4.6
IL_0234: shl
IL_0235: ldloc.s 21 (System.Int32)
IL_0237: or
IL_0238: conv.u2
IL_0239: stloc.s 22 (System.UInt16)
IL_023B: ldarg.0
IL_023C: ldfld Array16`1<NetNode> NetManager::m_nodes
IL_0241: ldfld NetNode[] Array16`1<NetNode>::m_buffer
IL_0246: ldloc.s 22 (System.UInt16)
IL_0248: ldelema NetNode
IL_024D: ldloc.s 22 (System.UInt16)
IL_024F: call System.Void NetNode::UpdateBounds(System.UInt16 nodeID)
IL_0254: ldarg.0
IL_0255: ldfld Array16`1<NetNode> NetManager::m_nodes
IL_025A: ldfld NetNode[] Array16`1<NetNode>::m_buffer
IL_025F: ldloc.s 22 (System.UInt16)
IL_0261: ldelema NetNode
IL_0266: ldloc.s 22 (System.UInt16)
IL_0268: call System.Void NetNode::UpdateLaneConnection(System.UInt16 nodeID)
IL_026D: Label28
IL_026D: ldloc.s 21 (System.Int32)
IL_026F: ldc.i4.1
IL_0270: add
IL_0271: stloc.s 21 (System.Int32)
IL_0273: Label27
IL_0273: ldloc.s 21 (System.Int32)
IL_0275: ldc.i4.s 64
IL_0277: blt => Label29
IL_027C: Label26
IL_027C: ldloc.s 19 (System.Int32)
IL_027E: ldc.i4.1
IL_027F: add
IL_0280: stloc.s 19 (System.Int32)
IL_0282: Label25
IL_0282: ldloc.s 19 (System.Int32)
IL_0284: ldloc.s 18 (System.Int32)
IL_0286: blt => Label30
IL_028B: Label24
IL_028B: ldarg.0
IL_028C: ldfld System.Boolean NetManager::m_nodesUpdated
IL_0291: brtrue => Label31
IL_0296: ldarg.0
IL_0297: ldfld System.Boolean NetManager::m_segmentsUpdated
IL_029C: brtrue => Label32
IL_02A1: br => Label33
IL_02A6: Label31
IL_02A6: Label32
IL_02A6: ldarg.0
IL_02A7: ldfld System.Boolean NetManager::m_nodesUpdated
IL_02AC: brfalse => Label34
IL_02B1: ldc.i4.1
IL_02B2: stloc.0
IL_02B3: ldarg.0
IL_02B4: ldc.i4.0
IL_02B5: stfld System.Boolean NetManager::m_nodesUpdated
IL_02BA: Label34
IL_02BA: ldarg.0
IL_02BB: ldfld System.Boolean NetManager::m_segmentsUpdated
IL_02C0: brfalse => Label35
IL_02C5: ldc.i4.1
IL_02C6: stloc.1
IL_02C7: ldarg.0
IL_02C8: ldc.i4.0
IL_02C9: stfld System.Boolean NetManager::m_segmentsUpdated
IL_02CE: Label35
IL_02CE: ldloc.2
IL_02CF: ldc.i4.1
IL_02D0: add
IL_02D1: stloc.2
IL_02D2: Label2
IL_02D2: ldloc.2
IL_02D3: ldc.i4.3
IL_02D4: blt => Label36
IL_02D9: Label33
IL_02D9: ldloc.0
IL_02DA: brfalse => Label37
IL_02DF: ldarg.0
IL_02E0: ldfld System.UInt64[] NetManager::m_updatedNodes
IL_02E5: ldlen
IL_02E6: conv.i4
IL_02E7: stloc.s 23 (System.Int32)
IL_02E9: ldc.i4.0
IL_02EA: stloc.s 24 (System.Int32)
IL_02EC: br => Label38
IL_02F1: Label44
IL_02F1: ldarg.0
IL_02F2: ldfld System.UInt64[] NetManager::m_updatedNodes
IL_02F7: ldloc.s 24 (System.Int32)
IL_02F9: ldelem.i8
IL_02FA: stloc.s 25 (System.UInt64)
IL_02FC: ldloc.s 25 (System.UInt64)
IL_02FE: ldc.i4.0
IL_02FF: conv.i8
IL_0300: beq => Label39
IL_0305: ldarg.0
IL_0306: ldfld System.UInt64[] NetManager::m_updatedNodes
IL_030B: ldloc.s 24 (System.Int32)
IL_030D: ldc.i4.0
IL_030E: conv.i8
IL_030F: stelem.i8
IL_0310: ldc.i4.0
IL_0311: stloc.s 26 (System.Int32)
IL_0313: br => Label40
IL_0318: Label43
IL_0318: ldloc.s 25 (System.UInt64)
IL_031A: ldc.i4.1
IL_031B: conv.i8
IL_031C: ldloc.s 26 (System.Int32)
IL_031E: ldc.i4.s 63
IL_0320: and
IL_0321: shl
IL_0322: and
IL_0323: ldc.i4.0
IL_0324: conv.i8
IL_0325: beq => Label41
IL_032A: ldloc.s 24 (System.Int32)
IL_032C: ldc.i4.6
IL_032D: shl
IL_032E: ldloc.s 26 (System.Int32)
IL_0330: or
IL_0331: conv.u2
IL_0332: stloc.s 27 (System.UInt16)
IL_0334: ldarg.0
IL_0335: ldfld Array16`1<NetNode> NetManager::m_nodes
IL_033A: ldfld NetNode[] Array16`1<NetNode>::m_buffer
IL_033F: ldloc.s 27 (System.UInt16)
IL_0341: ldelema NetNode
IL_0346: ldfld ProblemStruct NetNode::m_problems
IL_034B: stloc.s 28 (Notification+ProblemStruct)
IL_034D: ldarg.0
IL_034E: ldfld Array16`1<NetNode> NetManager::m_nodes
IL_0353: ldfld NetNode[] Array16`1<NetNode>::m_buffer
IL_0358: ldloc.s 27 (System.UInt16)
IL_035A: ldelema NetNode
IL_035F: ldloc.s 27 (System.UInt16)
IL_0361: call System.Void NetNode::UpdateNode(System.UInt16 nodeID)
IL_0366: ldarg.0
IL_0367: ldfld Array16`1<NetNode> NetManager::m_nodes
IL_036C: ldfld NetNode[] Array16`1<NetNode>::m_buffer
IL_0371: ldloc.s 27 (System.UInt16)
IL_0373: ldelema NetNode
IL_0378: ldfld ProblemStruct NetNode::m_problems
IL_037D: stloc.s 29 (Notification+ProblemStruct)
IL_037F: ldloc.s 29 (Notification+ProblemStruct)
IL_0381: ldloc.s 28 (Notification+ProblemStruct)
IL_0383: call static System.Boolean
ProblemStruct::op_Inequality(ProblemStruct a, ProblemStruct b)
IL_0388: brfalse => Label42
IL_038D: ldarg.0
IL_038E: ldloc.s 27 (System.UInt16)
IL_0390: ldloc.s 28 (Notification+ProblemStruct)
IL_0392: ldloc.s 29 (Notification+ProblemStruct)
IL_0394: call System.Void NetManager::UpdateNodeNotifications(System.UInt16
node, ProblemStruct oldProblems, ProblemStruct newProblems)
IL_0399: Label42
IL_0399: ldarg.0
IL_039A: ldloc.s 27 (System.UInt16)
IL_039C: call System.Void NetManager::UpdateNodeFlags(System.UInt16 node)
IL_03A1: ldarg.0
IL_03A2: ldloc.s 27 (System.UInt16)
IL_03A4: ldc.i4.1
IL_03A5: call System.Void NetManager::UpdateNodeRenderer(System.UInt16 node,
System.Boolean updateGroup)
IL_03AA: Label41
IL_03AA: ldloc.s 26 (System.Int32)
IL_03AC: ldc.i4.1
IL_03AD: add
IL_03AE: stloc.s 26 (System.Int32)
IL_03B0: Label40
IL_03B0: ldloc.s 26 (System.Int32)
IL_03B2: ldc.i4.s 64
IL_03B4: blt => Label43
IL_03B9: Label39
IL_03B9: ldloc.s 24 (System.Int32)
IL_03BB: ldc.i4.1
IL_03BC: add
IL_03BD: stloc.s 24 (System.Int32)
IL_03BF: Label38
IL_03BF: ldloc.s 24 (System.Int32)
IL_03C1: ldloc.s 23 (System.Int32)
IL_03C3: blt => Label44
IL_03C8: Label37
IL_03C8: ldloc.1
IL_03C9: brfalse => Label45
IL_03CE: ldarg.0
IL_03CF: ldfld System.UInt64[] NetManager::m_updatedSegments
IL_03D4: ldlen
IL_03D5: conv.i4
IL_03D6: stloc.s 30 (System.Int32)
IL_03D8: ldc.i4.0
IL_03D9: stloc.s 31 (System.Int32)
IL_03DB: br => Label46
IL_03E0: Label51
IL_03E0: ldarg.0
IL_03E1: ldfld System.UInt64[] NetManager::m_updatedSegments
IL_03E6: ldloc.s 31 (System.Int32)
IL_03E8: ldelem.i8
IL_03E9: stloc.s 32 (System.UInt64)
IL_03EB: ldloc.s 32 (System.UInt64)
IL_03ED: ldc.i4.0
IL_03EE: conv.i8
IL_03EF: beq => Label47
IL_03F4: ldarg.0
IL_03F5: ldfld System.UInt64[] NetManager::m_updatedSegments
IL_03FA: ldloc.s 31 (System.Int32)
IL_03FC: ldc.i4.0
IL_03FD: conv.i8
IL_03FE: stelem.i8
IL_03FF: ldc.i4.0
IL_0400: stloc.s 33 (System.Int32)
IL_0402: br => Label48
IL_0407: Label50
IL_0407: ldloc.s 32 (System.UInt64)
IL_0409: ldc.i4.1
IL_040A: conv.i8
IL_040B: ldloc.s 33 (System.Int32)
IL_040D: ldc.i4.s 63
IL_040F: and
IL_0410: shl
IL_0411: and
IL_0412: ldc.i4.0
IL_0413: conv.i8
IL_0414: beq => Label49
IL_0419: ldloc.s 31 (System.Int32)
IL_041B: ldc.i4.6
IL_041C: shl
IL_041D: ldloc.s 33 (System.Int32)
IL_041F: or
IL_0420: conv.u2
IL_0421: stloc.s 34 (System.UInt16)
IL_0423: ldarg.0
IL_0424: ldfld Array16`1<NetSegment> NetManager::m_segments
IL_0429: ldfld NetSegment[] Array16`1<NetSegment>::m_buffer
IL_042E: ldloc.s 34 (System.UInt16)
IL_0430: ldelema NetSegment
IL_0435: ldloc.s 34 (System.UInt16)
IL_0437: call System.Void NetSegment::UpdateSegment(System.UInt16 segmentID)
IL_043C: ldarg.0
IL_043D: ldloc.s 34 (System.UInt16)
IL_043F: call System.Void NetManager::UpdateSegmentFlags(System.UInt16
segment)
IL_0444: ldarg.0
IL_0445: ldloc.s 34 (System.UInt16)
IL_0447: ldc.i4.1
IL_0448: call System.Void NetManager::UpdateSegmentRenderer(System.UInt16
segment, System.Boolean updateGroup)
IL_044D: Label49
IL_044D: ldloc.s 33 (System.Int32)
IL_044F: ldc.i4.1
IL_0450: add
IL_0451: stloc.s 33 (System.Int32)
IL_0453: Label48
IL_0453: ldloc.s 33 (System.Int32)
IL_0455: ldc.i4.s 64
IL_0457: blt => Label50
IL_045C: Label47
IL_045C: ldloc.s 31 (System.Int32)
IL_045E: ldc.i4.1
IL_045F: add
IL_0460: stloc.s 31 (System.Int32)
IL_0462: Label46
IL_0462: ldloc.s 31 (System.Int32)
IL_0464: ldloc.s 30 (System.Int32)
IL_0466: blt => Label51
IL_046B: Label1
IL_046B: Label45
IL_046B: ldarg.0
IL_046C: ldfld System.Collections.Generic.HashSet`1<System.UInt16>
NetManager::m_updateNameVisibility
IL_0471: callvirt virtual System.Int32
System.Collections.Generic.HashSet`1<System.UInt16>::get_Count()
IL_0476: brfalse => Label52
IL_047B: ldarg.0
IL_047C: call System.Void NetManager::UpdateNameVisibilities()
IL_0481: Label52
IL_0481: ldarg.1
IL_0482: brfalse => Label53
IL_0487: ldc.i4.0
IL_0488: stloc.s 35 (System.Boolean)
IL_048A: call static SimulationManager
ColossalFramework.Singleton`1<SimulationManager>::get_instance()
IL_048F: ldfld System.UInt32 SimulationManager::m_currentFrameIndex
IL_0494: ldc.i4 255
IL_0499: and
IL_049A: stloc.s 36 (System.Int32)
IL_049C: ldloc.s 36 (System.Int32)
IL_049E: ldc.i4 144
IL_04A3: mul
IL_04A4: stloc.s 37 (System.Int32)
IL_04A6: ldloc.s 36 (System.Int32)
IL_04A8: ldc.i4.1
IL_04A9: add
IL_04AA: ldc.i4 144
IL_04AF: mul
IL_04B0: ldc.i4.1
IL_04B1: sub
IL_04B2: stloc.s 38 (System.Int32)
IL_04B4: ldc.i4.0
IL_04B5: stloc.s 39 (System.Int32)
IL_04B7: ldloc.s 37 (System.Int32)
IL_04B9: stloc.s 40 (System.Int32)
IL_04BB: br => Label54
IL_04C0: Label60
IL_04C0: ldarg.0
IL_04C1: ldfld Array16`1<NetSegment> NetManager::m_segments
IL_04C6: ldfld NetSegment[] Array16`1<NetSegment>::m_buffer
IL_04CB: ldloc.s 40 (System.Int32)
IL_04CD: ldelema NetSegment
IL_04D2: ldfld Flags NetSegment::m_flags
IL_04D7: ldc.i4.1
IL_04D8: and
IL_04D9: brfalse => Label55
IL_04DE: ldarg.0
IL_04DF: ldfld Array16`1<NetSegment> NetManager::m_segments
IL_04E4: ldfld NetSegment[] Array16`1<NetSegment>::m_buffer
IL_04E9: ldloc.s 40 (System.Int32)
IL_04EB: ldelema NetSegment
IL_04F0: call NetInfo NetSegment::get_Info()
IL_04F5: stloc.s 41 (NetInfo)
IL_04F7: ldarg.0
IL_04F8: ldfld Array16`1<NetSegment> NetManager::m_segments
IL_04FD: ldfld NetSegment[] Array16`1<NetSegment>::m_buffer
IL_0502: ldloc.s 40 (System.Int32)
IL_0504: conv.u2
IL_0505: ldelema NetSegment
IL_050A: ldfld ProblemStruct NetSegment::m_problems
IL_050F: stloc.s 42 (Notification+ProblemStruct)
IL_0511: ldloc.s 41 (NetInfo)
IL_0513: brfalse => Label56
IL_0518: ldloc.s 41 (NetInfo)
IL_051A: ldfld NetAI NetInfo::m_netAI
IL_051F: brfalse => Label57
IL_0524: ldloc.s 41 (NetInfo)
IL_0526: ldfld NetAI NetInfo::m_netAI
IL_052B: ldloc.s 40 (System.Int32)
IL_052D: conv.u2
IL_052E: ldarg.0
IL_052F: ldfld Array16`1<NetSegment> NetManager::m_segments
IL_0534: ldfld NetSegment[] Array16`1<NetSegment>::m_buffer
IL_0539: ldloc.s 40 (System.Int32)
IL_053B: ldelema NetSegment
IL_0540: callvirt virtual System.Void NetAI::SimulationStep(System.UInt16
segmentID, NetSegment& data)
IL_0545: Label56
IL_0545: Label57
IL_0545: ldarg.0
IL_0546: ldfld Array16`1<NetSegment> NetManager::m_segments
IL_054B: ldfld NetSegment[] Array16`1<NetSegment>::m_buffer
IL_0550: ldloc.s 40 (System.Int32)
IL_0552: ldelema NetSegment
IL_0557: ldfld System.Byte NetSegment::m_wetness
IL_055C: stloc.s 43 (System.Int32)
IL_055E: ldloc.s 43 (System.Int32)
IL_0560: ldloc.s 39 (System.Int32)
IL_0562: ble => Label58
IL_0567: ldloc.s 43 (System.Int32)
IL_0569: stloc.s 39 (System.Int32)
IL_056B: Label58
IL_056B: ldarg.0
IL_056C: ldfld Array16`1<NetSegment> NetManager::m_segments
IL_0571: ldfld NetSegment[] Array16`1<NetSegment>::m_buffer
IL_0576: ldloc.s 40 (System.Int32)
IL_0578: conv.u2
IL_0579: ldelema NetSegment
IL_057E: ldfld ProblemStruct NetSegment::m_problems
IL_0583: stloc.s 44 (Notification+ProblemStruct)
IL_0585: ldloc.s 44 (Notification+ProblemStruct)
IL_0587: ldloc.s 42 (Notification+ProblemStruct)
IL_0589: call static System.Boolean
ProblemStruct::op_Inequality(ProblemStruct a, ProblemStruct b)
IL_058E: brfalse => Label59
IL_0593: ldarg.0
IL_0594: ldloc.s 40 (System.Int32)
IL_0596: conv.u2
IL_0597: ldloc.s 42 (Notification+ProblemStruct)
IL_0599: ldloc.s 44 (Notification+ProblemStruct)
IL_059B: call System.Void
NetManager::UpdateSegmentNotifications(System.UInt16 segment, ProblemStruct
oldProblems, ProblemStruct newProblems)
IL_05A0: Label55
IL_05A0: Label59
IL_05A0: ldc.i4.1
IL_05A1: stloc.s 35 (System.Boolean)
IL_05A3: ldloc.s 40 (System.Int32)
IL_05A5: ldc.i4.1
IL_05A6: add
IL_05A7: stloc.s 40 (System.Int32)
IL_05A9: Label54
IL_05A9: ldloc.s 40 (System.Int32)
IL_05AB: ldloc.s 38 (System.Int32)
IL_05AD: ble => Label60
IL_05B2: ldloc.s 35 (System.Boolean)
IL_05B4: brfalse => Label61
IL_05B9: call static InfoManager
ColossalFramework.Singleton`1<InfoManager>::get_instance()
IL_05BE: callvirt InfoMode InfoManager::get_CurrentMode()
IL_05C3: stloc.s 45 (InfoManager+InfoMode)
IL_05C5: ldloc.s 45 (InfoManager+InfoMode)
IL_05C7: switch => Labels62,63,64,65,66,67,68,69,70,71
IL_05F4: Label65
IL_05F4: Label66
IL_05F4: Label67
IL_05F4: Label68
IL_05F4: Label70
IL_05F4: ldloc.s 45 (InfoManager+InfoMode)
IL_05F6: ldc.i4.s 22
IL_05F8: sub
IL_05F9: switch => Labels72,73,74
IL_060A: ldloc.s 45 (InfoManager+InfoMode)
IL_060C: ldc.i4.s 14
IL_060E: beq => Label75
IL_0613: br => Label76
IL_0618: Label63
IL_0618: Label64
IL_0618: Label69
IL_0618: Label71
IL_0618: Label72
IL_0618: Label73
IL_0618: Label74
IL_0618: Label75
IL_0618: ldarg.0
IL_0619: ldloc.s 37 (System.Int32)
IL_061B: conv.u2
IL_061C: ldloc.s 38 (System.Int32)
IL_061E: conv.u2
IL_061F: call System.Void NetManager::UpdateSegmentColors(System.UInt16 min,
System.UInt16 max)
IL_0624: br => Label77
IL_0629: Label62
IL_0629: ldarg.0
IL_062A: ldfld System.Int32 NetManager::m_wetnessChanged
IL_062F: brfalse => Label78
IL_0634: ldarg.0
IL_0635: ldloc.s 37 (System.Int32)
IL_0637: conv.u2
IL_0638: ldloc.s 38 (System.Int32)
IL_063A: conv.u2
IL_063B: call System.Void NetManager::UpdateSegmentColors(System.UInt16 min,
System.UInt16 max)
IL_0640: Label78
IL_0640: br => Label79
IL_0645: Label61
IL_0645: Label76
IL_0645: Label77
IL_0645: Label79
IL_0645: ldloc.s 36 (System.Int32)
IL_0647: ldc.i4 255
IL_064C: bne.un => Label80
IL_0651: ldarg.0
IL_0652: ldarg.0
IL_0653: ldfld System.Int32 NetManager::m_currentMaxWetness
IL_0658: stfld System.Int32 NetManager::m_lastMaxWetness
IL_065D: ldarg.0
IL_065E: ldc.i4.0
IL_065F: stfld System.Int32 NetManager::m_currentMaxWetness
IL_0664: br => Label81
IL_0669: Label80
IL_0669: ldloc.s 39 (System.Int32)
IL_066B: ldarg.0
IL_066C: ldfld System.Int32 NetManager::m_currentMaxWetness
IL_0671: ble => Label82
IL_0676: ldarg.0
IL_0677: ldloc.s 39 (System.Int32)
IL_0679: stfld System.Int32 NetManager::m_currentMaxWetness
IL_067E: Label53
IL_067E: Label81
IL_067E: Label82
IL_067E: ldarg.1
IL_067F: brfalse => Label83
IL_0684: ldc.i4.0
IL_0685: stloc.s 46 (System.Boolean)
IL_0687: call static SimulationManager
ColossalFramework.Singleton`1<SimulationManager>::get_instance()
IL_068C: ldfld System.UInt32 SimulationManager::m_currentFrameIndex
IL_0691: ldc.i4 255
IL_0696: and
IL_0697: stloc.s 47 (System.Int32)
IL_0699: ldloc.s 47 (System.Int32)
IL_069B: ldc.i4 128
IL_06A0: mul
IL_06A1: stloc.s 48 (System.Int32)
IL_06A3: ldloc.s 47 (System.Int32)
IL_06A5: ldc.i4.1
IL_06A6: add
IL_06A7: ldc.i4 128
IL_06AC: mul
IL_06AD: ldc.i4.1
IL_06AE: sub
IL_06AF: stloc.s 49 (System.Int32)
IL_06B1: ldloc.s 48 (System.Int32)
IL_06B3: stloc.s 50 (System.Int32)
IL_06B5: br => Label84
IL_06BA: Label89
IL_06BA: ldarg.0
IL_06BB: ldfld Array16`1<NetNode> NetManager::m_nodes
IL_06C0: ldfld NetNode[] Array16`1<NetNode>::m_buffer
IL_06C5: ldloc.s 50 (System.Int32)
IL_06C7: ldelema NetNode
IL_06CC: ldfld Flags NetNode::m_flags
IL_06D1: ldc.i4.1
IL_06D2: and
IL_06D3: brfalse => Label85
IL_06D8: ldarg.0
IL_06D9: ldfld Array16`1<NetNode> NetManager::m_nodes
IL_06DE: ldfld NetNode[] Array16`1<NetNode>::m_buffer
IL_06E3: ldloc.s 50 (System.Int32)
IL_06E5: ldelema NetNode
IL_06EA: ldfld ProblemStruct NetNode::m_problems
IL_06EF: stloc.s 51 (Notification+ProblemStruct)
IL_06F1: ldarg.0
IL_06F2: ldfld Array16`1<NetNode> NetManager::m_nodes
IL_06F7: ldfld NetNode[] Array16`1<NetNode>::m_buffer
IL_06FC: ldloc.s 50 (System.Int32)
IL_06FE: ldelema NetNode
IL_0703: call NetInfo NetNode::get_Info()
IL_0708: stloc.s 52 (NetInfo)
IL_070A: ldloc.s 52 (NetInfo)
IL_070C: brfalse => Label86
IL_0711: ldloc.s 52 (NetInfo)
IL_0713: ldfld NetAI NetInfo::m_netAI
IL_0718: brfalse => Label87
IL_071D: ldloc.s 52 (NetInfo)
IL_071F: ldfld NetAI NetInfo::m_netAI
IL_0724: ldloc.s 50 (System.Int32)
IL_0726: conv.u2
IL_0727: ldarg.0
IL_0728: ldfld Array16`1<NetNode> NetManager::m_nodes
IL_072D: ldfld NetNode[] Array16`1<NetNode>::m_buffer
IL_0732: ldloc.s 50 (System.Int32)
IL_0734: ldelema NetNode
IL_0739: callvirt virtual System.Void NetAI::SimulationStep(System.UInt16 nodeID,
NetNode& data)
IL_073E: Label86
IL_073E: Label87
IL_073E: ldarg.0
IL_073F: ldfld Array16`1<NetNode> NetManager::m_nodes
IL_0744: ldfld NetNode[] Array16`1<NetNode>::m_buffer
IL_0749: ldloc.s 50 (System.Int32)
IL_074B: ldelema NetNode
IL_0750: ldfld ProblemStruct NetNode::m_problems
IL_0755: stloc.s 53 (Notification+ProblemStruct)
IL_0757: ldloc.s 53 (Notification+ProblemStruct)
IL_0759: ldloc.s 51 (Notification+ProblemStruct)
IL_075B: call static System.Boolean
ProblemStruct::op_Inequality(ProblemStruct a, ProblemStruct b)
IL_0760: brfalse => Label88
IL_0765: ldarg.0
IL_0766: ldloc.s 50 (System.Int32)
IL_0768: conv.u2
IL_0769: ldloc.s 51 (Notification+ProblemStruct)
IL_076B: ldloc.s 53 (Notification+ProblemStruct)
IL_076D: call System.Void NetManager::UpdateNodeNotifications(System.UInt16
node, ProblemStruct oldProblems, ProblemStruct newProblems)
IL_0772: Label85
IL_0772: Label88
IL_0772: ldc.i4.1
IL_0773: stloc.s 46 (System.Boolean)
IL_0775: ldloc.s 50 (System.Int32)
IL_0777: ldc.i4.1
IL_0778: add
IL_0779: stloc.s 50 (System.Int32)
IL_077B: Label84
IL_077B: ldloc.s 50 (System.Int32)
IL_077D: ldloc.s 49 (System.Int32)
IL_077F: ble => Label89
IL_0784: ldloc.s 46 (System.Boolean)
IL_0786: brfalse => Label90
IL_078B: call static InfoManager
ColossalFramework.Singleton`1<InfoManager>::get_instance()
IL_0790: callvirt InfoMode InfoManager::get_CurrentMode()
IL_0795: stloc.s 54 (InfoManager+InfoMode)
IL_0797: ldloc.s 54 (InfoManager+InfoMode)
IL_0799: ldc.i4.s 22
IL_079B: sub
IL_079C: switch => Labels91,92,93
IL_07AD: ldloc.s 54 (InfoManager+InfoMode)
IL_07AF: switch => Labels94,95,96
IL_07C0: Label95
IL_07C0: ldloc.s 54 (InfoManager+InfoMode)
IL_07C2: ldc.i4.7
IL_07C3: sub
IL_07C4: switch => Labels97,98,99
IL_07D5: Label98
IL_07D5: ldloc.s 54 (InfoManager+InfoMode)
IL_07D7: ldc.i4.s 14
IL_07D9: beq => Label100
IL_07DE: br => Label101
IL_07E3: Label91
IL_07E3: Label92
IL_07E3: Label93
IL_07E3: Label96
IL_07E3: Label97
IL_07E3: Label99
IL_07E3: Label100
IL_07E3: ldarg.0
IL_07E4: ldloc.s 48 (System.Int32)
IL_07E6: conv.u2
IL_07E7: ldloc.s 49 (System.Int32)
IL_07E9: conv.u2
IL_07EA: call System.Void NetManager::UpdateNodeColors(System.UInt16 min,
System.UInt16 max)
IL_07EF: br => Label102
IL_07F4: Label94
IL_07F4: ldarg.0
IL_07F5: ldfld System.Int32 NetManager::m_wetnessChanged
IL_07FA: brfalse => Label103
IL_07FF: ldarg.0
IL_0800: ldloc.s 48 (System.Int32)
IL_0802: conv.u2
IL_0803: ldloc.s 49 (System.Int32)
IL_0805: conv.u2
IL_0806: call System.Void NetManager::UpdateNodeColors(System.UInt16 min,
System.UInt16 max)
IL_080B: Label103
IL_080B: br => Label104
IL_0810: Label83
IL_0810: Label90
IL_0810: Label101
IL_0810: Label102
IL_0810: Label104
IL_0810: ldarg.0
IL_0811: ldfld System.Int32 NetManager::m_wetnessChanged
IL_0816: brfalse => Label105
IL_081B: ldarg.0
IL_081C: dup
IL_081D: ldfld System.Int32 NetManager::m_wetnessChanged
IL_0822: ldc.i4.1
IL_0823: sub
IL_0824: stfld System.Int32 NetManager::m_wetnessChanged
IL_0829: Label105
IL_0829: ldarg.0
IL_082A: ldfld PathVisualizer NetManager::m_pathVisualizer
IL_082F: ldarg.1
IL_0830: callvirt System.Void PathVisualizer::SimulationStep(System.Int32
subStep)
IL_0835: ldarg.0
IL_0836: ldfld NetAdjust NetManager::m_netAdjust
IL_083B: ldarg.1
IL_083C: callvirt System.Void NetAdjust::SimulationStep(System.Int32 subStep)
IL_0841: call static GuideManager
ColossalFramework.Singleton`1<GuideManager>::get_instance()
IL_0846: ldfld GuideController SimulationManagerBase`2<GuideManager,
GuideController>::m_properties
IL_084B: stloc.s 55 (GuideController)
IL_084D: ldarg.1
IL_084E: ldc.i4.1
IL_084F: bgt => Label106
IL_0854: call static SimulationManager
ColossalFramework.Singleton`1<SimulationManager>::get_instance()
IL_0859: ldfld System.UInt32 SimulationManager::m_currentTickIndex
IL_085E: ldc.i4 1023
IL_0863: and
IL_0864: stloc.s 56 (System.Int32)
IL_0866: ldloc.s 56 (System.Int32)
IL_0868: call static System.Int32 PrefabCollection`1<NetInfo>::PrefabCount()
IL_086D: mul
IL_086E: ldc.i4.s 10
IL_0870: shr
IL_0871: stloc.s 57 (System.Int32)
IL_0873: ldloc.s 56 (System.Int32)
IL_0875: ldc.i4.1
IL_0876: add
IL_0877: call static System.Int32 PrefabCollection`1<NetInfo>::PrefabCount()
IL_087C: mul
IL_087D: ldc.i4.s 10
IL_087F: shr
IL_0880: ldc.i4.1
IL_0881: sub
IL_0882: stloc.s 58 (System.Int32)
IL_0884: ldloc.s 57 (System.Int32)
IL_0886: stloc.s 59 (System.Int32)
IL_0888: br => Label107
IL_088D: Label114
IL_088D: ldloc.s 59 (System.Int32)
IL_088F: call static NetInfo
PrefabCollection`1<NetInfo>::GetPrefab(System.UInt32 index)
IL_0894: stloc.s 60 (NetInfo)
IL_0896: ldloc.s 60 (NetInfo)
IL_0898: brfalse => Label108
IL_089D: ldloc.s 60 (NetInfo)
IL_089F: ldfld MilestoneInfo NetInfo::m_UnlockMilestone
IL_08A4: stloc.s 61 (MilestoneInfo)
IL_08A6: ldloc.s 61 (MilestoneInfo)
IL_08A8: brfalse => Label109
IL_08AD: call static UnlockManager
ColossalFramework.Singleton`1<UnlockManager>::get_instance()
IL_08B2: ldloc.s 61 (MilestoneInfo)
IL_08B4: ldc.i4.0
IL_08B5: ldc.i4.0
IL_08B6: callvirt System.Int32 UnlockManager::CheckMilestone(MilestoneInfo
milestone, System.Boolean forceUnlock, System.Boolean forceRelock)
IL_08BB: pop
IL_08BC: Label109
IL_08BC: ldloc.s 55 (GuideController)
IL_08BE: brfalse => Label110
IL_08C3: call static UnlockManager
ColossalFramework.Singleton`1<UnlockManager>::get_instance()
IL_08C8: ldloc.s 60 (NetInfo)
IL_08CA: ldfld ItemClass NetInfo::m_class
IL_08CF: ldfld Service ItemClass::m_service
IL_08D4: callvirt System.Boolean UnlockManager::Unlocked(Service service)
IL_08D9: brfalse => Label111
IL_08DE: call static UnlockManager
ColossalFramework.Singleton`1<UnlockManager>::get_instance()
IL_08E3: ldloc.s 60 (NetInfo)
IL_08E5: ldfld MilestoneInfo NetInfo::m_UnlockMilestone
IL_08EA: callvirt System.Boolean UnlockManager::Unlocked(MilestoneInfo milestone)
IL_08EF: brfalse => Label112
IL_08F4: ldloc.s 55 (GuideController)
IL_08F6: brfalse => Label113
IL_08FB: ldloc.s 60 (NetInfo)
IL_08FD: ldfld NetAI NetInfo::m_netAI
IL_0902: ldloc.s 55 (GuideController)
IL_0904: callvirt virtual System.Void NetAI::UpdateGuide(GuideController
guideController)
IL_0909: Label108
IL_0909: Label110
IL_0909: Label111
IL_0909: Label112
IL_0909: Label113
IL_0909: ldloc.s 59 (System.Int32)
IL_090B: ldc.i4.1
IL_090C: add
IL_090D: stloc.s 59 (System.Int32)
IL_090F: Label107
IL_090F: ldloc.s 59 (System.Int32)
IL_0911: ldloc.s 58 (System.Int32)
IL_0913: ble => Label114
IL_0918: Label106
IL_0918: ldarg.1
IL_0919: ldc.i4.1
IL_091A: bgt => Label115
IL_091F: ldloc.s 55 (GuideController)
IL_0921: brfalse => Label116
IL_0926: call static SimulationManager
ColossalFramework.Singleton`1<SimulationManager>::get_instance()
IL_092B: ldfld System.UInt32 SimulationManager::m_currentTickIndex
IL_0930: ldc.i4 255
IL_0935: and
IL_0936: stloc.s 62 (System.Int32)
IL_0938: ldloc.s 62 (System.Int32)
IL_093A: ldc.i4 189
IL_093F: beq => Label117
IL_0944: ldloc.s 62 (System.Int32)
IL_0946: ldc.i4 217
IL_094B: beq => Label118
IL_0950: ldloc.s 62 (System.Int32)
IL_0952: ldc.i4.s 75
IL_0954: beq => Label119
IL_0959: br => Label120
IL_095E: Label117
IL_095E: ldarg.0
IL_095F: ldfld GenericGuide NetManager::m_roadsNotUsed
IL_0964: ldloc.s 55 (GuideController)
IL_0966: ldfld GuideInfo GuideController::m_roadsNotUsed
IL_096B: callvirt System.Void GenericGuide::Activate(GuideInfo guideInfo)
IL_0970: br => Label121
IL_0975: Label118
IL_0975: ldarg.0
IL_0976: ldfld System.UInt16 NetManager::m_lastVisibleRoadNameSegment
IL_097B: brfalse => Label122
IL_0980: ldarg.0
IL_0981: ldfld NetSegmentInstanceGuide NetManager::m_roadNames
IL_0986: ldloc.s 55 (GuideController)
IL_0988: ldfld GuideInfo GuideController::m_roadNames
IL_098D: ldarg.0
IL_098E: ldfld System.UInt16 NetManager::m_lastVisibleRoadNameSegment
IL_0993: ldc.i4.1
IL_0994: callvirt System.Void NetSegmentInstanceGuide::Activate(GuideInfo
guideInfo, System.UInt16 segmentID, System.Boolean ignoreID)
IL_0999: Label122
IL_0999: br => Label123
IL_099E: Label119
IL_099E: ldarg.0
IL_099F: ldfld System.UInt16 NetManager::m_lastVisibleTrafficLightNode
IL_09A4: brfalse => Label124
IL_09A9: ldarg.0
IL_09AA: ldfld NetNodeInstanceGuide NetManager::m_yieldLights
IL_09AF: ldloc.s 55 (GuideController)
IL_09B1: ldfld GuideInfo GuideController::m_yieldLights
IL_09B6: ldarg.0
IL_09B7: ldfld System.UInt16 NetManager::m_lastVisibleTrafficLightNode
IL_09BC: ldc.i4.0
IL_09BD: conv.i8
IL_09BE: ldc.i4.1
IL_09BF: callvirt System.Void NetNodeInstanceGuide::Activate(GuideInfo guideInfo,
System.UInt16 nodeID, Problem1 problems, System.Boolean ignoreID)
IL_09C4: Label124
IL_09C4: br => Label125
IL_09C9: // end original
IL_09C9: Label115
IL_09C9: Label116
IL_09C9: Label120
IL_09C9: Label121
IL_09C9: Label123
IL_09C9: Label125
IL_09C9: call static System.Void NodeMarkup.Manager.MarkupManager::Update()
IL_09CE: ret
DONE

### Harmony id=NodeMarkup, version=2.0.4.0, location=E:\SteamLibrary\steamapps\


common\data-0000000022595390, env/clr=2.0.50727.1433, platform=Win32NT,
ptrsize:runtime/env=8/Bits64, Windows
### Started from System.Object ModsCommon.BasePatcherMod`1<TypeMod>::get_Harmony(),
location E:\SteamLibrary\steamapps\common\data-0000000023EF7040
### At 2023-02-07 02.24.35
### Patch: virtual System.Void NetManager::EndOverlayImpl(CameraInfo cameraInfo)
### Replacement: static System.Void
NetManager::NetManager.EndOverlayImpl_Patch1(NetManager this, CameraInfo
cameraInfo)
IL_0000: Local var 0: ItemClass/Availability
IL_0000: Local var 1: System.Int32
IL_0000: Local var 2: System.Boolean
IL_0000: ldc.i4 0
IL_0005: stloc 2 (System.Boolean)
IL_0009: ldc.i4.1
IL_000A: stloc 2 (System.Boolean)
IL_000E: ldloc 2 (System.Boolean)
IL_0012: brfalse => Label1
IL_0017: call static System.Boolean NodeMarkup.Mod::NetManagerEndOverlay()
IL_001C: stloc 2 (System.Boolean)
IL_0020: Label1
IL_0020: nop
IL_0021: ldloc 2 (System.Boolean)
IL_0025: brfalse => Label0
IL_002A: // start original
IL_002A: call static ToolManager
ColossalFramework.Singleton`1<ToolManager>::get_instance()
IL_002F: ldfld ToolController SimulationManagerBase`2<ToolManager,
ToolController>::m_properties
IL_0034: ldfld Availability ToolController::m_mode
IL_0039: stloc.0
IL_003A: ldloc.0
IL_003B: ldc.i4.s 19
IL_003D: and
IL_003E: brfalse => Label2
IL_0043: ldarg.0
IL_0044: ldfld System.Single NetManager::m_roadNameAlpha
IL_0049: ldc.r4 0.001
IL_004E: blt.un => Label3
IL_0053: ldarg.0
IL_0054: ldfld System.Boolean NetManager::m_renderDirectionArrows
IL_0059: brtrue => Label4
IL_005E: ldarg.0
IL_005F: ldfld System.Boolean NetManager::m_renderDirectionArrowsInfo
IL_0064: brtrue => Label5
IL_0069: ldarg.0
IL_006A: ldfld System.Boolean NetManager::m_roadNamesVisibleSetting
IL_006F: brfalse => Label6
IL_0074: ldc.i4.0
IL_0075: stloc.1
IL_0076: br => Label7
IL_007B: Label8
IL_007B: ldarg.0
IL_007C: ldarg.1
IL_007D: call static RenderManager
ColossalFramework.Singleton`1<RenderManager>::get_instance()
IL_0082: ldfld Instance[] RenderManager::m_instances
IL_0087: ldarg.0
IL_0088: ldfld FastList`1<System.UInt32> NetManager::m_nameInstanceBuffer
IL_008D: ldfld System.UInt32[] FastList`1<System.UInt32>::m_buffer
IL_0092: ldloc.1
IL_0093: ldelem.u4
IL_0094: conv.u
IL_0095: ldelema RenderManager+Instance
IL_009A: call System.Void NetManager::RenderName(CameraInfo cameraInfo,
Instance& instanceData)
IL_009F: ldloc.1
IL_00A0: ldc.i4.1
IL_00A1: add
IL_00A2: stloc.1
IL_00A3: Label7
IL_00A3: ldloc.1
IL_00A4: ldarg.0
IL_00A5: ldfld FastList`1<System.UInt32> NetManager::m_nameInstanceBuffer
IL_00AA: ldfld System.Int32 FastList`1<System.UInt32>::m_size
IL_00AF: blt => Label8
IL_00B4: Label2
IL_00B4: Label3
IL_00B4: Label4
IL_00B4: Label5
IL_00B4: Label6
IL_00B4: ldarg.0
IL_00B5: ldfld FastList`1<System.UInt32> NetManager::m_nameInstanceBuffer
IL_00BA: callvirt System.Void FastList`1<System.UInt32>::Clear()
IL_00BF: // end original
IL_00BF: Label0
IL_00BF: ret
DONE

### Harmony id=NodeMarkup, version=2.0.4.0, location=E:\SteamLibrary\steamapps\


common\data-0000000022595390, env/clr=2.0.50727.1433, platform=Win32NT,
ptrsize:runtime/env=8/Bits64, Windows
### Started from System.Object ModsCommon.BasePatcherMod`1<TypeMod>::get_Harmony(),
location E:\SteamLibrary\steamapps\common\data-0000000023EF7040
### At 2023-02-07 02.24.35
### Patch: System.Void NetNode::RenderInstance(CameraInfo cameraInfo, System.UInt16
nodeID, NetInfo info, System.Int32 iter, FlagsLong flags, System.UInt32&
instanceIndex, Instance& data)
### Replacement: static System.Void NetNode::NetNode.RenderInstance_Patch1(NetNode&
this, CameraInfo cameraInfo, System.UInt16 nodeID, NetInfo info, System.Int32 iter,
FlagsLong flags, System.UInt32& instanceIndex, Instance& data)
IL_0000: Local var 0: System.UInt16
IL_0000: Local var 1: System.UInt16
IL_0000: Local var 2: NetManager
IL_0000: Local var 3: NetInfo
IL_0000: Local var 4: NetNode/FlagsLong
IL_0000: Local var 5: System.Int32
IL_0000: Local var 6: NetInfo/Node
IL_0000: Local var 7: UnityEngine.Vector4
IL_0000: Local var 8: UnityEngine.Vector4
IL_0000: Local var 9: System.Boolean
IL_0000: Local var 10: System.Boolean
IL_0000: Local var 11: NetInfo/LodValue
IL_0000: Local var 12: System.Int32
IL_0000: Local var 13: System.UInt16
IL_0000: Local var 14: NetManager
IL_0000: Local var 15: NetNode/FlagsLong
IL_0000: Local var 16: System.Int32
IL_0000: Local var 17: System.Boolean
IL_0000: Local var 18: System.Int32
IL_0000: Local var 19: System.UInt16
IL_0000: Local var 20: System.Int32
IL_0000: Local var 21: NetInfo/Node
IL_0000: Local var 22: UnityEngine.Vector4
IL_0000: Local var 23: NetInfo/LodValue
IL_0000: Local var 24: NetManager
IL_0000: Local var 25: System.UInt16
IL_0000: Local var 26: NetNode/FlagsLong
IL_0000: Local var 27: System.Int32
IL_0000: Local var 28: NetInfo/Node
IL_0000: Local var 29: UnityEngine.Vector4
IL_0000: Local var 30: NetInfo/LodValue
IL_0000: Local var 31: NetManager
IL_0000: Local var 32: System.Int32
IL_0000: Local var 33: NetInfo/Segment
IL_0000: Local var 34: System.Boolean
IL_0000: Local var 35: NetSegment/Flags
IL_0000: Local var 36: System.Int32
IL_0000: Local var 37: UnityEngine.Vector4
IL_0000: Local var 38: UnityEngine.Vector4
IL_0000: Local var 39: NetInfo/LodValue
IL_0000: Local var 40: System.Int32
IL_0000: Local var 41: System.UInt16
IL_0000: Local var 42: System.UInt16
IL_0000: Local var 43: NetNode/FlagsLong
IL_0000: Local var 44: NetInfo/Node
IL_0000: Local var 45: UnityEngine.Vector4
IL_0000: Local var 46: UnityEngine.Vector4
IL_0000: Local var 47: System.Boolean
IL_0000: Local var 48: System.Boolean
IL_0000: Local var 49: NetInfo/LodValue
IL_0000: // start original
IL_0000: ldarg.s 7
IL_0002: ldfld System.Boolean Instance::m_dirty
IL_0007: brfalse => Label0
IL_000C: ldarg.s 7
IL_000E: ldc.i4.0
IL_000F: stfld System.Boolean Instance::m_dirty
IL_0014: ldarg.s 4
IL_0016: brtrue => Label1
IL_001B: ldarg.s 5
IL_001D: ldc.i4 128
IL_0022: conv.i8
IL_0023: and
IL_0024: ldc.i4.0
IL_0025: conv.i8
IL_0026: beq => Label2
IL_002B: ldarg.0
IL_002C: ldarg.2
IL_002D: ldarg.3
IL_002E: ldarg.s 6
IL_0030: ldind.u4
IL_0031: call System.Void NetNode::RefreshJunctionData(System.UInt16 nodeID,
NetInfo info, System.UInt32 instanceIndex)
IL_0036: br => Label3
IL_003B: Label2
IL_003B: ldarg.s 5
IL_003D: ldc.i4.s 64
IL_003F: conv.i8
IL_0040: and
IL_0041: ldc.i4.0
IL_0042: conv.i8
IL_0043: beq => Label4
IL_0048: ldarg.0
IL_0049: ldarg.2
IL_004A: ldarg.3
IL_004B: ldarg.s 6
IL_004D: ldind.u4
IL_004E: ldarg.s 7
IL_0050: call System.Void NetNode::RefreshBendData(System.UInt16 nodeID,
NetInfo info, System.UInt32 instanceIndex, Instance& data)
IL_0055: br => Label5
IL_005A: Label4
IL_005A: ldarg.s 5
IL_005C: ldc.i4.s 16
IL_005E: conv.i8
IL_005F: and
IL_0060: ldc.i4.0
IL_0061: conv.i8
IL_0062: beq => Label6
IL_0067: ldarg.0
IL_0068: ldarg.2
IL_0069: ldarg.3
IL_006A: ldarg.s 6
IL_006C: ldind.u4
IL_006D: ldarg.s 7
IL_006F: call System.Void NetNode::RefreshEndData(System.UInt16 nodeID,
NetInfo info, System.UInt32 instanceIndex, Instance& data)
IL_0074: Label0
IL_0074: Label1
IL_0074: Label3
IL_0074: Label5
IL_0074: Label6
IL_0074: ldarg.s 7
IL_0076: ldfld System.Boolean Instance::m_initialized
IL_007B: brfalse => Label7
IL_0080: ldarg.s 5
IL_0082: ldc.i4 128
IL_0087: conv.i8
IL_0088: and
IL_0089: ldc.i4.0
IL_008A: conv.i8
IL_008B: beq => Label8
IL_0090: ldarg.s 7
IL_0092: ldfld System.Int32 Instance::m_dataInt0
IL_0097: ldc.i4.8
IL_0098: and
IL_0099: brfalse => Label9
IL_009E: ldarg.0
IL_009F: ldarg.s 7
IL_00A1: ldfld System.Int32 Instance::m_dataInt0
IL_00A6: ldc.i4.7
IL_00A7: and
IL_00A8: call System.UInt16 NetNode::GetSegment(System.Int32 index)
IL_00AD: stloc.0
IL_00AE: ldarg.0
IL_00AF: ldarg.s 7
IL_00B1: ldfld System.Int32 Instance::m_dataInt0
IL_00B6: ldc.i4.4
IL_00B7: shr
IL_00B8: call System.UInt16 NetNode::GetSegment(System.Int32 index)
IL_00BD: stloc.1
IL_00BE: ldloc.0
IL_00BF: brfalse => Label10
IL_00C4: ldloc.1
IL_00C5: brfalse => Label11
IL_00CA: call static NetManager
ColossalFramework.Singleton`1<NetManager>::get_instance()
IL_00CF: stloc.2
IL_00D0: ldloc.2
IL_00D1: ldfld Array16`1<NetSegment> NetManager::m_segments
IL_00D6: ldfld NetSegment[] Array16`1<NetSegment>::m_buffer
IL_00DB: ldloc.0
IL_00DC: ldelema NetSegment
IL_00E1: call NetInfo NetSegment::get_Info()
IL_00E6: starg.s 3
IL_00E8: ldloc.2
IL_00E9: ldfld Array16`1<NetSegment> NetManager::m_segments
IL_00EE: ldfld NetSegment[] Array16`1<NetSegment>::m_buffer
IL_00F3: ldloc.1
IL_00F4: ldelema NetSegment
IL_00F9: call NetInfo NetSegment::get_Info()
IL_00FE: stloc.3
IL_00FF: ldarg.s 5
IL_0101: stloc.s 4 (NetNode+FlagsLong)
IL_0103: ldloc.2
IL_0104: ldfld Array16`1<NetSegment> NetManager::m_segments
IL_0109: ldfld NetSegment[] Array16`1<NetSegment>::m_buffer
IL_010E: ldloc.0
IL_010F: ldelema NetSegment
IL_0114: ldfld Flags NetSegment::m_flags
IL_0119: ldloc.2
IL_011A: ldfld Array16`1<NetSegment> NetManager::m_segments
IL_011F: ldfld NetSegment[] Array16`1<NetSegment>::m_buffer
IL_0124: ldloc.1
IL_0125: ldelema NetSegment
IL_012A: ldfld Flags NetSegment::m_flags
IL_012F: or
IL_0130: ldc.i4.8
IL_0131: and
IL_0132: brfalse => Label12
IL_0137: ldloc.s 4 (NetNode+FlagsLong)
IL_0139: ldc.i4 134217728
IL_013E: conv.i8
IL_013F: or
IL_0140: stloc.s 4 (NetNode+FlagsLong)
IL_0142: Label12
IL_0142: ldloc.2
IL_0143: ldfld Array16`1<NetSegment> NetManager::m_segments
IL_0148: ldfld NetSegment[] Array16`1<NetSegment>::m_buffer
IL_014D: ldloc.0
IL_014E: ldelema NetSegment
IL_0153: ldfld System.UInt16 NetSegment::m_startNode
IL_0158: ldarg.2
IL_0159: bne.un => Label13
IL_015E: ldloc.2
IL_015F: ldfld Array16`1<NetSegment> NetManager::m_segments
IL_0164: ldfld NetSegment[] Array16`1<NetSegment>::m_buffer
IL_0169: ldloc.0
IL_016A: ldelema NetSegment
IL_016F: ldfld Flags NetSegment::m_flags
IL_0174: ldc.i4.s 16
IL_0176: and
IL_0177: brtrue => Label14
IL_017C: ldloc.s 4 (NetNode+FlagsLong)
IL_017E: ldc.i8 34359738368
IL_0187: or
IL_0188: stloc.s 4 (NetNode+FlagsLong)
IL_018A: br => Label15
IL_018F: Label14
IL_018F: ldloc.s 4 (NetNode+FlagsLong)
IL_0191: ldc.i8 68719476736
IL_019A: or
IL_019B: stloc.s 4 (NetNode+FlagsLong)
IL_019D: Label15
IL_019D: br => Label16
IL_01A2: Label13
IL_01A2: ldloc.2
IL_01A3: ldfld Array16`1<NetSegment> NetManager::m_segments
IL_01A8: ldfld NetSegment[] Array16`1<NetSegment>::m_buffer
IL_01AD: ldloc.0
IL_01AE: ldelema NetSegment
IL_01B3: ldfld System.UInt16 NetSegment::m_endNode
IL_01B8: ldarg.2
IL_01B9: bne.un => Label17
IL_01BE: ldloc.2
IL_01BF: ldfld Array16`1<NetSegment> NetManager::m_segments
IL_01C4: ldfld NetSegment[] Array16`1<NetSegment>::m_buffer
IL_01C9: ldloc.0
IL_01CA: ldelema NetSegment
IL_01CF: ldfld Flags NetSegment::m_flags
IL_01D4: ldc.i4.s 16
IL_01D6: and
IL_01D7: brtrue => Label18
IL_01DC: ldloc.s 4 (NetNode+FlagsLong)
IL_01DE: ldc.i8 68719476736
IL_01E7: or
IL_01E8: stloc.s 4 (NetNode+FlagsLong)
IL_01EA: br => Label19
IL_01EF: Label18
IL_01EF: ldloc.s 4 (NetNode+FlagsLong)
IL_01F1: ldc.i8 34359738368
IL_01FA: or
IL_01FB: stloc.s 4 (NetNode+FlagsLong)
IL_01FD: Label16
IL_01FD: Label17
IL_01FD: Label19
IL_01FD: ldc.i4.0
IL_01FE: stloc.s 5 (System.Int32)
IL_0200: br => Label20
IL_0205: Label51
IL_0205: ldarg.3
IL_0206: ldfld Node[] NetInfo::m_nodes
IL_020B: ldloc.s 5 (System.Int32)
IL_020D: ldelem.ref
IL_020E: stloc.s 6 (NetInfo+Node)
IL_0210: ldloc.s 6 (NetInfo+Node)
IL_0212: ldfld System.Boolean Node::m_directConnect
IL_0217: brtrue => Label21
IL_021C: br => Label22
IL_0221: Label21
IL_0221: ldloc.s 6 (NetInfo+Node)
IL_0223: ldfld ConnectGroup Node::m_connectGroup
IL_0228: brfalse => Label23
IL_022D: ldloc.s 6 (NetInfo+Node)
IL_022F: ldfld ConnectGroup Node::m_connectGroup
IL_0234: ldloc.3
IL_0235: ldfld ConnectGroup NetInfo::m_connectGroup
IL_023A: and
IL_023B: ldc.i4 268374015
IL_0240: and
IL_0241: brtrue => Label24
IL_0246: br => Label25
IL_024B: Label23
IL_024B: Label24
IL_024B: ldloc.s 6 (NetInfo+Node)
IL_024D: ldloc.s 4 (NetNode+FlagsLong)
IL_024F: callvirt System.Boolean Node::CheckFlags(FlagsLong flags)
IL_0254: brtrue => Label26
IL_0259: br => Label27
IL_025E: Label26
IL_025E: ldloc.s 6 (NetInfo+Node)
IL_0260: ldarg.2
IL_0261: ldarg.0
IL_0262: ldloc.2
IL_0263: ldfld Array16`1<NetSegment> NetManager::m_segments
IL_0268: ldfld NetSegment[] Array16`1<NetSegment>::m_buffer
IL_026D: ldloc.1
IL_026E: ldelema NetSegment
IL_0273: call NetInfo NetSegment::get_Info()
IL_0278: callvirt System.Boolean Node::CheckTags(System.UInt16 nodeID, NetNode&
node, NetInfo segmentInfo)
IL_027D: brtrue => Label28
IL_0282: br => Label29
IL_0287: Label28
IL_0287: ldarg.s 7
IL_0289: ldfld UnityEngine.Vector4 Instance::m_dataVector3
IL_028E: stloc.s 7 (UnityEngine.Vector4)
IL_0290: ldarg.s 7
IL_0292: ldfld UnityEngine.Vector4 Instance::m_dataVector0
IL_0297: stloc.s 8 (UnityEngine.Vector4)
IL_0299: ldloc.s 6 (NetInfo+Node)
IL_029B: ldfld System.Boolean Node::m_requireWindSpeed
IL_02A0: brfalse => Label30
IL_02A5: ldloca.s 7 (UnityEngine.Vector4)
IL_02A7: ldarg.s 7
IL_02A9: ldfld System.Single Instance::m_dataFloat0
IL_02AE: stfld System.Single UnityEngine.Vector4::w
IL_02B3: Label30
IL_02B3: ldloc.s 6 (NetInfo+Node)
IL_02B5: ldfld ConnectGroup Node::m_connectGroup
IL_02BA: ldc.i4 12288
IL_02BF: and
IL_02C0: brfalse => Label31
IL_02C5: ldloc.2
IL_02C6: ldfld Array16`1<NetSegment> NetManager::m_segments
IL_02CB: ldfld NetSegment[] Array16`1<NetSegment>::m_buffer
IL_02D0: ldloc.0
IL_02D1: ldelema NetSegment
IL_02D6: ldfld System.UInt16 NetSegment::m_startNode
IL_02DB: ldarg.2
IL_02DC: ceq
IL_02DE: ldloc.2
IL_02DF: ldfld Array16`1<NetSegment> NetManager::m_segments
IL_02E4: ldfld NetSegment[] Array16`1<NetSegment>::m_buffer
IL_02E9: ldloc.0
IL_02EA: ldelema NetSegment
IL_02EF: ldfld Flags NetSegment::m_flags
IL_02F4: ldc.i4.s 16
IL_02F6: and
IL_02F7: ldc.i4.0
IL_02F8: ceq
IL_02FA: ceq
IL_02FC: stloc.s 9 (System.Boolean)
IL_02FE: ldloc.3
IL_02FF: ldfld System.Boolean NetInfo::m_hasBackwardVehicleLanes
IL_0304: ldloc.3
IL_0305: ldfld System.Boolean NetInfo::m_hasForwardVehicleLanes
IL_030A: bne.un => Label32
IL_030F: ldloc.s 6 (NetInfo+Node)
IL_0311: ldfld ConnectGroup Node::m_connectGroup
IL_0316: ldc.i4 16384
IL_031B: and
IL_031C: brfalse => Label33
IL_0321: Label32
IL_0321: ldloc.2
IL_0322: ldfld Array16`1<NetSegment> NetManager::m_segments
IL_0327: ldfld NetSegment[] Array16`1<NetSegment>::m_buffer
IL_032C: ldloc.1
IL_032D: ldelema NetSegment
IL_0332: ldfld System.UInt16 NetSegment::m_startNode
IL_0337: ldarg.2
IL_0338: ceq
IL_033A: ldloc.2
IL_033B: ldfld Array16`1<NetSegment> NetManager::m_segments
IL_0340: ldfld NetSegment[] Array16`1<NetSegment>::m_buffer
IL_0345: ldloc.1
IL_0346: ldelema NetSegment
IL_034B: ldfld Flags NetSegment::m_flags
IL_0350: ldc.i4.s 16
IL_0352: and
IL_0353: ldc.i4.0
IL_0354: ceq
IL_0356: ceq
IL_0358: stloc.s 10 (System.Boolean)
IL_035A: ldloc.s 9 (System.Boolean)
IL_035C: ldloc.s 10 (System.Boolean)
IL_035E: bne.un => Label34
IL_0363: br => Label35
IL_0368: Label33
IL_0368: Label34
IL_0368: ldloc.s 9 (System.Boolean)
IL_036A: brfalse => Label36
IL_036F: ldloc.s 6 (NetInfo+Node)
IL_0371: ldfld ConnectGroup Node::m_connectGroup
IL_0376: ldc.i4 4096
IL_037B: and
IL_037C: brtrue => Label37
IL_0381: br => Label38
IL_0386: Label37
IL_0386: br => Label39
IL_038B: Label36
IL_038B: ldloc.s 6 (NetInfo+Node)
IL_038D: ldfld ConnectGroup Node::m_connectGroup
IL_0392: ldc.i4 8192
IL_0397: and
IL_0398: brtrue => Label40
IL_039D: br => Label41
IL_03A2: Label40
IL_03A2: ldloca.s 8 (UnityEngine.Vector4)
IL_03A4: ldloca.s 8 (UnityEngine.Vector4)
IL_03A6: ldfld System.Single UnityEngine.Vector4::x
IL_03AB: neg
IL_03AC: stfld System.Single UnityEngine.Vector4::x
IL_03B1: ldloca.s 8 (UnityEngine.Vector4)
IL_03B3: ldloca.s 8 (UnityEngine.Vector4)
IL_03B5: ldfld System.Single UnityEngine.Vector4::y
IL_03BA: neg
IL_03BB: stfld System.Single UnityEngine.Vector4::y
IL_03C0: Label31
IL_03C0: Label39
IL_03C0: ldarg.1
IL_03C1: ldarg.s 7
IL_03C3: ldfld UnityEngine.Vector3 Instance::m_position
IL_03C8: ldloc.s 6 (NetInfo+Node)
IL_03CA: ldfld System.Single Node::m_lodRenderDistance
IL_03CF: callvirt System.Boolean
CameraInfo::CheckRenderDistance(UnityEngine.Vector3 point, System.Single
maxDistance)
IL_03D4: brfalse => Label42
IL_03D9: ldloc.2
IL_03DA: ldfld UnityEngine.MaterialPropertyBlock NetManager::m_materialBlock
IL_03DF: callvirt System.Void UnityEngine.MaterialPropertyBlock::Clear()
IL_03E4: ldloc.2
IL_03E5: ldfld UnityEngine.MaterialPropertyBlock NetManager::m_materialBlock
IL_03EA: ldloc.2
IL_03EB: ldfld System.Int32 NetManager::ID_LeftMatrix
IL_03F0: ldarg.s 7
IL_03F2: ldfld UnityEngine.Matrix4x4 Instance::m_dataMatrix0
IL_03F7: callvirt System.Void
UnityEngine.MaterialPropertyBlock::SetMatrix(System.Int32 nameID,
UnityEngine.Matrix4x4 value)
IL_03FC: ldloc.2
IL_03FD: ldfld UnityEngine.MaterialPropertyBlock NetManager::m_materialBlock
IL_0402: ldloc.2
IL_0403: ldfld System.Int32 NetManager::ID_RightMatrix
IL_0408: ldarg.s 7
IL_040A: ldflda RenderInstanceData Instance::m_extraData
IL_040F: ldfld UnityEngine.Matrix4x4 RenderInstanceData::m_dataMatrix2
IL_0414: callvirt System.Void
UnityEngine.MaterialPropertyBlock::SetMatrix(System.Int32 nameID,
UnityEngine.Matrix4x4 value)
IL_0419: ldloc.2
IL_041A: ldfld UnityEngine.MaterialPropertyBlock NetManager::m_materialBlock
IL_041F: ldloc.2
IL_0420: ldfld System.Int32 NetManager::ID_MeshScale
IL_0425: ldloc.s 8 (UnityEngine.Vector4)
IL_0427: callvirt System.Void
UnityEngine.MaterialPropertyBlock::SetVector(System.Int32 nameID,
UnityEngine.Vector4 value)
IL_042C: ldloc.2
IL_042D: ldfld UnityEngine.MaterialPropertyBlock NetManager::m_materialBlock
IL_0432: ldloc.2
IL_0433: ldfld System.Int32 NetManager::ID_ObjectIndex
IL_0438: ldloc.s 7 (UnityEngine.Vector4)
IL_043A: callvirt System.Void
UnityEngine.MaterialPropertyBlock::SetVector(System.Int32 nameID,
UnityEngine.Vector4 value)
IL_043F: ldloc.2
IL_0440: ldfld UnityEngine.MaterialPropertyBlock NetManager::m_materialBlock
IL_0445: ldloc.2
IL_0446: ldfld System.Int32 NetManager::ID_Color
IL_044B: ldarg.s 7
IL_044D: ldfld UnityEngine.Color Instance::m_dataColor0
IL_0452: callvirt System.Void
UnityEngine.MaterialPropertyBlock::SetColor(System.Int32 nameID, UnityEngine.Color
value)
IL_0457: ldloc.s 6 (NetInfo+Node)
IL_0459: ldfld System.Boolean Node::m_requireSurfaceMaps
IL_045E: brfalse => Label43
IL_0463: ldarg.s 7
IL_0465: ldfld UnityEngine.Texture Instance::m_dataTexture1
IL_046A: ldnull
IL_046B: call static System.Boolean
UnityEngine.Object::op_Inequality(UnityEngine.Object x, UnityEngine.Object y)
IL_0470: brfalse => Label44
IL_0475: ldloc.2
IL_0476: ldfld UnityEngine.MaterialPropertyBlock NetManager::m_materialBlock
IL_047B: ldloc.2
IL_047C: ldfld System.Int32 NetManager::ID_SurfaceTexA
IL_0481: ldarg.s 7
IL_0483: ldfld UnityEngine.Texture Instance::m_dataTexture0
IL_0488: callvirt System.Void
UnityEngine.MaterialPropertyBlock::SetTexture(System.Int32 nameID,
UnityEngine.Texture value)
IL_048D: ldloc.2
IL_048E: ldfld UnityEngine.MaterialPropertyBlock NetManager::m_materialBlock
IL_0493: ldloc.2
IL_0494: ldfld System.Int32 NetManager::ID_SurfaceTexB
IL_0499: ldarg.s 7
IL_049B: ldfld UnityEngine.Texture Instance::m_dataTexture1
IL_04A0: callvirt System.Void
UnityEngine.MaterialPropertyBlock::SetTexture(System.Int32 nameID,
UnityEngine.Texture value)
IL_04A5: ldloc.2
IL_04A6: ldfld UnityEngine.MaterialPropertyBlock NetManager::m_materialBlock
IL_04AB: ldloc.2
IL_04AC: ldfld System.Int32 NetManager::ID_SurfaceMapping
IL_04B1: ldarg.s 7
IL_04B3: ldfld UnityEngine.Vector4 Instance::m_dataVector1
IL_04B8: callvirt System.Void
UnityEngine.MaterialPropertyBlock::SetVector(System.Int32 nameID,
UnityEngine.Vector4 value)
IL_04BD: Label43
IL_04BD: Label44
IL_04BD: ldloc.2
IL_04BE: ldflda DrawCallData SimulationManagerBase`2<NetManager,
NetProperties>::m_drawCallData
IL_04C3: dup
IL_04C4: ldfld System.Int32 DrawCallData::m_defaultCalls
IL_04C9: ldc.i4.1
IL_04CA: add
IL_04CB: stfld System.Int32 DrawCallData::m_defaultCalls
IL_04D0: ldloc.s 6 (NetInfo+Node)
IL_04D2: ldfld UnityEngine.Mesh Node::m_nodeMesh
IL_04D7: ldarg.s 7
IL_04D9: ldfld UnityEngine.Vector3 Instance::m_position
IL_04DE: ldarg.s 7
IL_04E0: ldfld UnityEngine.Quaternion Instance::m_rotation
IL_04E5: ldloc.s 6 (NetInfo+Node)
IL_04E7: ldfld UnityEngine.Material Node::m_nodeMaterial
IL_04EC: ldloc.s 6 (NetInfo+Node)
IL_04EE: ldfld System.Int32 Node::m_layer
IL_04F3: ldnull
IL_04F4: ldc.i4.0
IL_04F5: ldloc.2
IL_04F6: ldfld UnityEngine.MaterialPropertyBlock NetManager::m_materialBlock
IL_04FB: call static System.Void
UnityEngine.Graphics::DrawMesh(UnityEngine.Mesh mesh, UnityEngine.Vector3 position,
UnityEngine.Quaternion rotation, UnityEngine.Material material, System.Int32 layer,
UnityEngine.Camera camera, System.Int32 submeshIndex,
UnityEngine.MaterialPropertyBlock properties)
IL_0500: br => Label45
IL_0505: Label42
IL_0505: ldloc.s 6 (NetInfo+Node)
IL_0507: ldfld LodValue Node::m_combinedLod
IL_050C: stloc.s 11 (NetInfo+LodValue)
IL_050E: ldloc.s 11 (NetInfo+LodValue)
IL_0510: brfalse => Label46
IL_0515: ldloc.s 6 (NetInfo+Node)
IL_0517: ldfld System.Boolean Node::m_requireSurfaceMaps
IL_051C: brfalse => Label47
IL_0521: ldarg.s 7
IL_0523: ldfld UnityEngine.Texture Instance::m_dataTexture0
IL_0528: ldloc.s 11 (NetInfo+LodValue)
IL_052A: ldfld UnityEngine.Texture LodValue::m_surfaceTexA
IL_052F: call static System.Boolean
UnityEngine.Object::op_Inequality(UnityEngine.Object x, UnityEngine.Object y)
IL_0534: brfalse => Label48
IL_0539: ldloc.s 11 (NetInfo+LodValue)
IL_053B: ldfld System.Int32 LodValue::m_lodCount
IL_0540: brfalse => Label49
IL_0545: ldarg.1
IL_0546: ldloc.s 11 (NetInfo+LodValue)
IL_0548: call static System.Void NetSegment::RenderLod(CameraInfo cameraInfo,
LodValue lod)
IL_054D: Label49
IL_054D: ldloc.s 11 (NetInfo+LodValue)
IL_054F: ldarg.s 7
IL_0551: ldfld UnityEngine.Texture Instance::m_dataTexture0
IL_0556: stfld UnityEngine.Texture LodValue::m_surfaceTexA
IL_055B: ldloc.s 11 (NetInfo+LodValue)
IL_055D: ldarg.s 7
IL_055F: ldfld UnityEngine.Texture Instance::m_dataTexture1
IL_0564: stfld UnityEngine.Texture LodValue::m_surfaceTexB
IL_0569: ldloc.s 11 (NetInfo+LodValue)
IL_056B: ldarg.s 7
IL_056D: ldfld UnityEngine.Vector4 Instance::m_dataVector1
IL_0572: stfld UnityEngine.Vector4 LodValue::m_surfaceMapping
IL_0577: Label47
IL_0577: Label48
IL_0577: ldloc.s 11 (NetInfo+LodValue)
IL_0579: ldfld UnityEngine.Matrix4x4[] LodValue::m_leftMatrices
IL_057E: ldloc.s 11 (NetInfo+LodValue)
IL_0580: ldfld System.Int32 LodValue::m_lodCount
IL_0585: ldelema UnityEngine.Matrix4x4
IL_058A: ldarg.s 7
IL_058C: ldfld UnityEngine.Matrix4x4 Instance::m_dataMatrix0
IL_0591: stobj UnityEngine.Matrix4x4
IL_0596: ldloc.s 11 (NetInfo+LodValue)
IL_0598: ldfld UnityEngine.Matrix4x4[] LodValue::m_rightMatrices
IL_059D: ldloc.s 11 (NetInfo+LodValue)
IL_059F: ldfld System.Int32 LodValue::m_lodCount
IL_05A4: ldelema UnityEngine.Matrix4x4
IL_05A9: ldarg.s 7
IL_05AB: ldflda RenderInstanceData Instance::m_extraData
IL_05B0: ldfld UnityEngine.Matrix4x4 RenderInstanceData::m_dataMatrix2
IL_05B5: stobj UnityEngine.Matrix4x4
IL_05BA: ldloc.s 11 (NetInfo+LodValue)
IL_05BC: ldfld UnityEngine.Vector4[] LodValue::m_meshScales
IL_05C1: ldloc.s 11 (NetInfo+LodValue)
IL_05C3: ldfld System.Int32 LodValue::m_lodCount
IL_05C8: ldelema UnityEngine.Vector4
IL_05CD: ldloc.s 8 (UnityEngine.Vector4)
IL_05CF: stobj UnityEngine.Vector4
IL_05D4: ldloc.s 11 (NetInfo+LodValue)
IL_05D6: ldfld UnityEngine.Vector4[] LodValue::m_objectIndices
IL_05DB: ldloc.s 11 (NetInfo+LodValue)
IL_05DD: ldfld System.Int32 LodValue::m_lodCount
IL_05E2: ldelema UnityEngine.Vector4
IL_05E7: ldloc.s 7 (UnityEngine.Vector4)
IL_05E9: stobj UnityEngine.Vector4
IL_05EE: ldloc.s 11 (NetInfo+LodValue)
IL_05F0: ldfld UnityEngine.Vector4[] LodValue::m_meshLocations
IL_05F5: ldloc.s 11 (NetInfo+LodValue)
IL_05F7: ldfld System.Int32 LodValue::m_lodCount
IL_05FC: ldelema UnityEngine.Vector4
IL_0601: ldarg.s 7
IL_0603: ldfld UnityEngine.Vector3 Instance::m_position
IL_0608: call static UnityEngine.Vector4
UnityEngine.Vector4::op_Implicit(UnityEngine.Vector3 v)
IL_060D: stobj UnityEngine.Vector4
IL_0612: ldloc.s 11 (NetInfo+LodValue)
IL_0614: ldloc.s 11 (NetInfo+LodValue)
IL_0616: ldfld UnityEngine.Vector3 LodValue::m_lodMin
IL_061B: ldarg.s 7
IL_061D: ldfld UnityEngine.Vector3 Instance::m_position
IL_0622: call static UnityEngine.Vector3
UnityEngine.Vector3::Min(UnityEngine.Vector3 lhs, UnityEngine.Vector3 rhs)
IL_0627: stfld UnityEngine.Vector3 LodValue::m_lodMin
IL_062C: ldloc.s 11 (NetInfo+LodValue)
IL_062E: ldloc.s 11 (NetInfo+LodValue)
IL_0630: ldfld UnityEngine.Vector3 LodValue::m_lodMax
IL_0635: ldarg.s 7
IL_0637: ldfld UnityEngine.Vector3 Instance::m_position
IL_063C: call static UnityEngine.Vector3
UnityEngine.Vector3::Max(UnityEngine.Vector3 lhs, UnityEngine.Vector3 rhs)
IL_0641: stfld UnityEngine.Vector3 LodValue::m_lodMax
IL_0646: ldloc.s 11 (NetInfo+LodValue)
IL_0648: dup
IL_0649: ldfld System.Int32 LodValue::m_lodCount
IL_064E: ldc.i4.1
IL_064F: add
IL_0650: dup
IL_0651: stloc.s 12 (System.Int32)
IL_0653: stfld System.Int32 LodValue::m_lodCount
IL_0658: ldloc.s 12 (System.Int32)
IL_065A: ldloc.s 11 (NetInfo+LodValue)
IL_065C: ldfld UnityEngine.Matrix4x4[] LodValue::m_leftMatrices
IL_0661: ldlen
IL_0662: conv.i4
IL_0663: bne.un => Label50
IL_0668: ldarg.1
IL_0669: ldloc.s 11 (NetInfo+LodValue)
IL_066B: call static System.Void NetSegment::RenderLod(CameraInfo cameraInfo,
LodValue lod)
IL_0670: Label22
IL_0670: Label25
IL_0670: Label27
IL_0670: Label29
IL_0670: Label35
IL_0670: Label38
IL_0670: Label41
IL_0670: Label45
IL_0670: Label46
IL_0670: Label50
IL_0670: ldloc.s 5 (System.Int32)
IL_0672: ldc.i4.1
IL_0673: add
IL_0674: stloc.s 5 (System.Int32)
IL_0676: Label20
IL_0676: ldloc.s 5 (System.Int32)
IL_0678: ldarg.3
IL_0679: ldfld Node[] NetInfo::m_nodes
IL_067E: ldlen
IL_067F: conv.i4
IL_0680: blt => Label51
IL_0685: Label10
IL_0685: Label11
IL_0685: br => Label52
IL_068A: Label9
IL_068A: ldarg.0
IL_068B: ldarg.s 7
IL_068D: ldfld System.Int32 Instance::m_dataInt0
IL_0692: ldc.i4.7
IL_0693: and
IL_0694: call System.UInt16 NetNode::GetSegment(System.Int32 index)
IL_0699: stloc.s 13 (System.UInt16)
IL_069B: ldloc.s 13 (System.UInt16)
IL_069D: brfalse => Label53
IL_06A2: call static NetManager
ColossalFramework.Singleton`1<NetManager>::get_instance()
IL_06A7: stloc.s 14 (NetManager)
IL_06A9: ldloc.s 14 (NetManager)
IL_06AB: ldfld Array16`1<NetSegment> NetManager::m_segments
IL_06B0: ldfld NetSegment[] Array16`1<NetSegment>::m_buffer
IL_06B5: ldloc.s 13 (System.UInt16)
IL_06B7: ldelema NetSegment
IL_06BC: call NetInfo NetSegment::get_Info()
IL_06C1: starg.s 3
IL_06C3: ldarg.s 5
IL_06C5: stloc.s 15 (NetNode+FlagsLong)
IL_06C7: ldloc.s 14 (NetManager)
IL_06C9: ldfld Array16`1<NetSegment> NetManager::m_segments
IL_06CE: ldfld NetSegment[] Array16`1<NetSegment>::m_buffer
IL_06D3: ldloc.s 13 (System.UInt16)
IL_06D5: ldelema NetSegment
IL_06DA: ldfld Flags NetSegment::m_flags
IL_06DF: ldc.i4.8
IL_06E0: and
IL_06E1: brfalse => Label54
IL_06E6: ldloc.s 15 (NetNode+FlagsLong)
IL_06E8: ldc.i4 134217728
IL_06ED: conv.i8
IL_06EE: or
IL_06EF: stloc.s 15 (NetNode+FlagsLong)
IL_06F1: br => Label55
IL_06F6: Label54
IL_06F6: ldarg.0
IL_06F7: call System.Int32 NetNode::CountSegments()
IL_06FC: stloc.s 16 (System.Int32)
IL_06FE: ldc.i4.1
IL_06FF: stloc.s 17 (System.Boolean)
IL_0701: ldc.i4.0
IL_0702: stloc.s 18 (System.Int32)
IL_0704: br => Label56
IL_0709: Label61
IL_0709: ldloc.s 18 (System.Int32)
IL_070B: ldarg.s 7
IL_070D: ldfld System.Int32 Instance::m_dataInt0
IL_0712: ldc.i4.7
IL_0713: and
IL_0714: bne.un => Label57
IL_0719: br => Label58
IL_071E: Label57
IL_071E: ldarg.0
IL_071F: ldloc.s 18 (System.Int32)
IL_0721: call System.UInt16 NetNode::GetSegment(System.Int32 index)
IL_0726: stloc.s 19 (System.UInt16)
IL_0728: ldloc.s 14 (NetManager)
IL_072A: ldfld Array16`1<NetSegment> NetManager::m_segments
IL_072F: ldfld NetSegment[] Array16`1<NetSegment>::m_buffer
IL_0734: ldloc.s 19 (System.UInt16)
IL_0736: ldelema NetSegment
IL_073B: ldfld Flags NetSegment::m_flags
IL_0740: ldc.i4.8
IL_0741: and
IL_0742: brtrue => Label59
IL_0747: ldc.i4.0
IL_0748: stloc.s 17 (System.Boolean)
IL_074A: br => Label60
IL_074F: Label58
IL_074F: Label59
IL_074F: ldloc.s 18 (System.Int32)
IL_0751: ldc.i4.1
IL_0752: add
IL_0753: stloc.s 18 (System.Int32)
IL_0755: Label56
IL_0755: ldloc.s 18 (System.Int32)
IL_0757: ldloc.s 16 (System.Int32)
IL_0759: blt => Label61
IL_075E: Label60
IL_075E: ldloc.s 17 (System.Boolean)
IL_0760: brfalse => Label62
IL_0765: ldloc.s 15 (NetNode+FlagsLong)
IL_0767: ldc.i4 -129
IL_076C: conv.i8
IL_076D: and
IL_076E: ldc.i4.s 16
IL_0770: conv.i8
IL_0771: or
IL_0772: ldc.i4 134217728
IL_0777: conv.i8
IL_0778: or
IL_0779: stloc.s 15 (NetNode+FlagsLong)
IL_077B: Label55
IL_077B: Label62
IL_077B: ldloc.s 14 (NetManager)
IL_077D: ldfld Array16`1<NetSegment> NetManager::m_segments
IL_0782: ldfld NetSegment[] Array16`1<NetSegment>::m_buffer
IL_0787: ldloc.s 13 (System.UInt16)
IL_0789: ldelema NetSegment
IL_078E: ldfld System.UInt16 NetSegment::m_startNode
IL_0793: ldarg.2
IL_0794: bne.un => Label63
IL_0799: ldloc.s 14 (NetManager)
IL_079B: ldfld Array16`1<NetSegment> NetManager::m_segments
IL_07A0: ldfld NetSegment[] Array16`1<NetSegment>::m_buffer
IL_07A5: ldloc.s 13 (System.UInt16)
IL_07A7: ldelema NetSegment
IL_07AC: ldfld Flags NetSegment::m_flags
IL_07B1: ldc.i4.s 16
IL_07B3: and
IL_07B4: brtrue => Label64
IL_07B9: ldloc.s 15 (NetNode+FlagsLong)
IL_07BB: ldc.i8 34359738368
IL_07C4: or
IL_07C5: stloc.s 15 (NetNode+FlagsLong)
IL_07C7: br => Label65
IL_07CC: Label64
IL_07CC: ldloc.s 15 (NetNode+FlagsLong)
IL_07CE: ldc.i8 68719476736
IL_07D7: or
IL_07D8: stloc.s 15 (NetNode+FlagsLong)
IL_07DA: Label65
IL_07DA: br => Label66
IL_07DF: Label63
IL_07DF: ldloc.s 14 (NetManager)
IL_07E1: ldfld Array16`1<NetSegment> NetManager::m_segments
IL_07E6: ldfld NetSegment[] Array16`1<NetSegment>::m_buffer
IL_07EB: ldloc.s 13 (System.UInt16)
IL_07ED: ldelema NetSegment
IL_07F2: ldfld System.UInt16 NetSegment::m_endNode
IL_07F7: ldarg.2
IL_07F8: bne.un => Label67
IL_07FD: ldloc.s 14 (NetManager)
IL_07FF: ldfld Array16`1<NetSegment> NetManager::m_segments
IL_0804: ldfld NetSegment[] Array16`1<NetSegment>::m_buffer
IL_0809: ldloc.s 13 (System.UInt16)
IL_080B: ldelema NetSegment
IL_0810: ldfld Flags NetSegment::m_flags
IL_0815: ldc.i4.s 16
IL_0817: and
IL_0818: brtrue => Label68
IL_081D: ldloc.s 15 (NetNode+FlagsLong)
IL_081F: ldc.i8 68719476736
IL_0828: or
IL_0829: stloc.s 15 (NetNode+FlagsLong)
IL_082B: br => Label69
IL_0830: Label68
IL_0830: ldloc.s 15 (NetNode+FlagsLong)
IL_0832: ldc.i8 34359738368
IL_083B: or
IL_083C: stloc.s 15 (NetNode+FlagsLong)
IL_083E: Label66
IL_083E: Label67
IL_083E: Label69
IL_083E: ldc.i4.0
IL_083F: stloc.s 20 (System.Int32)
IL_0841: br => Label70
IL_0846: Label87
IL_0846: ldarg.3
IL_0847: ldfld Node[] NetInfo::m_nodes
IL_084C: ldloc.s 20 (System.Int32)
IL_084E: ldelem.ref
IL_084F: stloc.s 21 (NetInfo+Node)
IL_0851: ldloc.s 21 (NetInfo+Node)
IL_0853: ldfld System.Boolean Node::m_directConnect
IL_0858: brfalse => Label71
IL_085D: br => Label72
IL_0862: Label71
IL_0862: ldloc.s 21 (NetInfo+Node)
IL_0864: ldloc.s 15 (NetNode+FlagsLong)
IL_0866: callvirt System.Boolean Node::CheckFlags(FlagsLong flags)
IL_086B: brtrue => Label73
IL_0870: br => Label74
IL_0875: Label73
IL_0875: ldloc.s 21 (NetInfo+Node)
IL_0877: ldarg.2
IL_0878: ldarg.0
IL_0879: callvirt System.Boolean Node::CheckTags(System.UInt16 nodeID, NetNode&
node)
IL_087E: brtrue => Label75
IL_0883: br => Label76
IL_0888: Label75
IL_0888: ldarg.s 7
IL_088A: ldflda RenderInstanceData Instance::m_extraData
IL_088F: ldfld UnityEngine.Vector4 RenderInstanceData::m_dataVector4
IL_0894: stloc.s 22 (UnityEngine.Vector4)
IL_0896: ldloc.s 21 (NetInfo+Node)
IL_0898: ldfld System.Boolean Node::m_requireWindSpeed
IL_089D: brfalse => Label77
IL_08A2: ldloca.s 22 (UnityEngine.Vector4)
IL_08A4: ldarg.s 7
IL_08A6: ldfld System.Single Instance::m_dataFloat0
IL_08AB: stfld System.Single UnityEngine.Vector4::w
IL_08B0: Label77
IL_08B0: ldarg.1
IL_08B1: ldarg.s 7
IL_08B3: ldfld UnityEngine.Vector3 Instance::m_position
IL_08B8: ldloc.s 21 (NetInfo+Node)
IL_08BA: ldfld System.Single Node::m_lodRenderDistance
IL_08BF: callvirt System.Boolean
CameraInfo::CheckRenderDistance(UnityEngine.Vector3 point, System.Single
maxDistance)
IL_08C4: brfalse => Label78
IL_08C9: ldloc.s 14 (NetManager)
IL_08CB: ldfld UnityEngine.MaterialPropertyBlock NetManager::m_materialBlock
IL_08D0: callvirt System.Void UnityEngine.MaterialPropertyBlock::Clear()
IL_08D5: ldloc.s 14 (NetManager)
IL_08D7: ldfld UnityEngine.MaterialPropertyBlock NetManager::m_materialBlock
IL_08DC: ldloc.s 14 (NetManager)
IL_08DE: ldfld System.Int32 NetManager::ID_LeftMatrix
IL_08E3: ldarg.s 7
IL_08E5: ldfld UnityEngine.Matrix4x4 Instance::m_dataMatrix0
IL_08EA: callvirt System.Void
UnityEngine.MaterialPropertyBlock::SetMatrix(System.Int32 nameID,
UnityEngine.Matrix4x4 value)
IL_08EF: ldloc.s 14 (NetManager)
IL_08F1: ldfld UnityEngine.MaterialPropertyBlock NetManager::m_materialBlock
IL_08F6: ldloc.s 14 (NetManager)
IL_08F8: ldfld System.Int32 NetManager::ID_RightMatrix
IL_08FD: ldarg.s 7
IL_08FF: ldflda RenderInstanceData Instance::m_extraData
IL_0904: ldfld UnityEngine.Matrix4x4 RenderInstanceData::m_dataMatrix2
IL_0909: callvirt System.Void
UnityEngine.MaterialPropertyBlock::SetMatrix(System.Int32 nameID,
UnityEngine.Matrix4x4 value)
IL_090E: ldloc.s 14 (NetManager)
IL_0910: ldfld UnityEngine.MaterialPropertyBlock NetManager::m_materialBlock
IL_0915: ldloc.s 14 (NetManager)
IL_0917: ldfld System.Int32 NetManager::ID_LeftMatrixB
IL_091C: ldarg.s 7
IL_091E: ldflda RenderInstanceData Instance::m_extraData
IL_0923: ldfld UnityEngine.Matrix4x4 RenderInstanceData::m_dataMatrix3
IL_0928: callvirt System.Void
UnityEngine.MaterialPropertyBlock::SetMatrix(System.Int32 nameID,
UnityEngine.Matrix4x4 value)
IL_092D: ldloc.s 14 (NetManager)
IL_092F: ldfld UnityEngine.MaterialPropertyBlock NetManager::m_materialBlock
IL_0934: ldloc.s 14 (NetManager)
IL_0936: ldfld System.Int32 NetManager::ID_RightMatrixB
IL_093B: ldarg.s 7
IL_093D: ldfld UnityEngine.Matrix4x4 Instance::m_dataMatrix1
IL_0942: callvirt System.Void
UnityEngine.MaterialPropertyBlock::SetMatrix(System.Int32 nameID,
UnityEngine.Matrix4x4 value)
IL_0947: ldloc.s 14 (NetManager)
IL_0949: ldfld UnityEngine.MaterialPropertyBlock NetManager::m_materialBlock
IL_094E: ldloc.s 14 (NetManager)
IL_0950: ldfld System.Int32 NetManager::ID_MeshScale
IL_0955: ldarg.s 7
IL_0957: ldfld UnityEngine.Vector4 Instance::m_dataVector0
IL_095C: callvirt System.Void
UnityEngine.MaterialPropertyBlock::SetVector(System.Int32 nameID,
UnityEngine.Vector4 value)
IL_0961: ldloc.s 14 (NetManager)
IL_0963: ldfld UnityEngine.MaterialPropertyBlock NetManager::m_materialBlock
IL_0968: ldloc.s 14 (NetManager)
IL_096A: ldfld System.Int32 NetManager::ID_CenterPos
IL_096F: ldarg.s 7
IL_0971: ldfld UnityEngine.Vector4 Instance::m_dataVector1
IL_0976: callvirt System.Void
UnityEngine.MaterialPropertyBlock::SetVector(System.Int32 nameID,
UnityEngine.Vector4 value)
IL_097B: ldloc.s 14 (NetManager)
IL_097D: ldfld UnityEngine.MaterialPropertyBlock NetManager::m_materialBlock
IL_0982: ldloc.s 14 (NetManager)
IL_0984: ldfld System.Int32 NetManager::ID_SideScale
IL_0989: ldarg.s 7
IL_098B: ldfld UnityEngine.Vector4 Instance::m_dataVector2
IL_0990: callvirt System.Void
UnityEngine.MaterialPropertyBlock::SetVector(System.Int32 nameID,
UnityEngine.Vector4 value)
IL_0995: ldloc.s 14 (NetManager)
IL_0997: ldfld UnityEngine.MaterialPropertyBlock NetManager::m_materialBlock
IL_099C: ldloc.s 14 (NetManager)
IL_099E: ldfld System.Int32 NetManager::ID_ObjectIndex
IL_09A3: ldloc.s 22 (UnityEngine.Vector4)
IL_09A5: callvirt System.Void
UnityEngine.MaterialPropertyBlock::SetVector(System.Int32 nameID,
UnityEngine.Vector4 value)
IL_09AA: ldloc.s 14 (NetManager)
IL_09AC: ldfld UnityEngine.MaterialPropertyBlock NetManager::m_materialBlock
IL_09B1: ldloc.s 14 (NetManager)
IL_09B3: ldfld System.Int32 NetManager::ID_Color
IL_09B8: ldarg.s 7
IL_09BA: ldfld UnityEngine.Color Instance::m_dataColor0
IL_09BF: callvirt System.Void
UnityEngine.MaterialPropertyBlock::SetColor(System.Int32 nameID, UnityEngine.Color
value)
IL_09C4: ldloc.s 21 (NetInfo+Node)
IL_09C6: ldfld System.Boolean Node::m_requireSurfaceMaps
IL_09CB: brfalse => Label79
IL_09D0: ldarg.s 7
IL_09D2: ldfld UnityEngine.Texture Instance::m_dataTexture1
IL_09D7: ldnull
IL_09D8: call static System.Boolean
UnityEngine.Object::op_Inequality(UnityEngine.Object x, UnityEngine.Object y)
IL_09DD: brfalse => Label80
IL_09E2: ldloc.s 14 (NetManager)
IL_09E4: ldfld UnityEngine.MaterialPropertyBlock NetManager::m_materialBlock
IL_09E9: ldloc.s 14 (NetManager)
IL_09EB: ldfld System.Int32 NetManager::ID_SurfaceTexA
IL_09F0: ldarg.s 7
IL_09F2: ldfld UnityEngine.Texture Instance::m_dataTexture0
IL_09F7: callvirt System.Void
UnityEngine.MaterialPropertyBlock::SetTexture(System.Int32 nameID,
UnityEngine.Texture value)
IL_09FC: ldloc.s 14 (NetManager)
IL_09FE: ldfld UnityEngine.MaterialPropertyBlock NetManager::m_materialBlock
IL_0A03: ldloc.s 14 (NetManager)
IL_0A05: ldfld System.Int32 NetManager::ID_SurfaceTexB
IL_0A0A: ldarg.s 7
IL_0A0C: ldfld UnityEngine.Texture Instance::m_dataTexture1
IL_0A11: callvirt System.Void
UnityEngine.MaterialPropertyBlock::SetTexture(System.Int32 nameID,
UnityEngine.Texture value)
IL_0A16: ldloc.s 14 (NetManager)
IL_0A18: ldfld UnityEngine.MaterialPropertyBlock NetManager::m_materialBlock
IL_0A1D: ldloc.s 14 (NetManager)
IL_0A1F: ldfld System.Int32 NetManager::ID_SurfaceMapping
IL_0A24: ldarg.s 7
IL_0A26: ldfld UnityEngine.Vector4 Instance::m_dataVector3
IL_0A2B: callvirt System.Void
UnityEngine.MaterialPropertyBlock::SetVector(System.Int32 nameID,
UnityEngine.Vector4 value)
IL_0A30: Label79
IL_0A30: Label80
IL_0A30: ldloc.s 14 (NetManager)
IL_0A32: ldflda DrawCallData SimulationManagerBase`2<NetManager,
NetProperties>::m_drawCallData
IL_0A37: dup
IL_0A38: ldfld System.Int32 DrawCallData::m_defaultCalls
IL_0A3D: ldc.i4.1
IL_0A3E: add
IL_0A3F: stfld System.Int32 DrawCallData::m_defaultCalls
IL_0A44: ldloc.s 21 (NetInfo+Node)
IL_0A46: ldfld UnityEngine.Mesh Node::m_nodeMesh
IL_0A4B: ldarg.s 7
IL_0A4D: ldfld UnityEngine.Vector3 Instance::m_position
IL_0A52: ldarg.s 7
IL_0A54: ldfld UnityEngine.Quaternion Instance::m_rotation
IL_0A59: ldloc.s 21 (NetInfo+Node)
IL_0A5B: ldfld UnityEngine.Material Node::m_nodeMaterial
IL_0A60: ldloc.s 21 (NetInfo+Node)
IL_0A62: ldfld System.Int32 Node::m_layer
IL_0A67: ldnull
IL_0A68: ldc.i4.0
IL_0A69: ldloc.s 14 (NetManager)
IL_0A6B: ldfld UnityEngine.MaterialPropertyBlock NetManager::m_materialBlock
IL_0A70: call static System.Void
UnityEngine.Graphics::DrawMesh(UnityEngine.Mesh mesh, UnityEngine.Vector3 position,
UnityEngine.Quaternion rotation, UnityEngine.Material material, System.Int32 layer,
UnityEngine.Camera camera, System.Int32 submeshIndex,
UnityEngine.MaterialPropertyBlock properties)
IL_0A75: br => Label81
IL_0A7A: Label78
IL_0A7A: ldloc.s 21 (NetInfo+Node)
IL_0A7C: ldfld LodValue Node::m_combinedLod
IL_0A81: stloc.s 23 (NetInfo+LodValue)
IL_0A83: ldloc.s 23 (NetInfo+LodValue)
IL_0A85: brfalse => Label82
IL_0A8A: ldloc.s 21 (NetInfo+Node)
IL_0A8C: ldfld System.Boolean Node::m_requireSurfaceMaps
IL_0A91: brfalse => Label83
IL_0A96: ldarg.s 7
IL_0A98: ldfld UnityEngine.Texture Instance::m_dataTexture0
IL_0A9D: ldloc.s 23 (NetInfo+LodValue)
IL_0A9F: ldfld UnityEngine.Texture LodValue::m_surfaceTexA
IL_0AA4: call static System.Boolean
UnityEngine.Object::op_Inequality(UnityEngine.Object x, UnityEngine.Object y)
IL_0AA9: brfalse => Label84
IL_0AAE: ldloc.s 23 (NetInfo+LodValue)
IL_0AB0: ldfld System.Int32 LodValue::m_lodCount
IL_0AB5: brfalse => Label85
IL_0ABA: ldarg.1
IL_0ABB: ldloc.s 23 (NetInfo+LodValue)
IL_0ABD: call static System.Void NetNode::RenderLod(CameraInfo cameraInfo,
LodValue lod)
IL_0AC2: Label85
IL_0AC2: ldloc.s 23 (NetInfo+LodValue)
IL_0AC4: ldarg.s 7
IL_0AC6: ldfld UnityEngine.Texture Instance::m_dataTexture0
IL_0ACB: stfld UnityEngine.Texture LodValue::m_surfaceTexA
IL_0AD0: ldloc.s 23 (NetInfo+LodValue)
IL_0AD2: ldarg.s 7
IL_0AD4: ldfld UnityEngine.Texture Instance::m_dataTexture1
IL_0AD9: stfld UnityEngine.Texture LodValue::m_surfaceTexB
IL_0ADE: ldloc.s 23 (NetInfo+LodValue)
IL_0AE0: ldarg.s 7
IL_0AE2: ldfld UnityEngine.Vector4 Instance::m_dataVector3
IL_0AE7: stfld UnityEngine.Vector4 LodValue::m_surfaceMapping
IL_0AEC: Label83
IL_0AEC: Label84
IL_0AEC: ldloc.s 23 (NetInfo+LodValue)
IL_0AEE: ldfld UnityEngine.Matrix4x4[] LodValue::m_leftMatrices
IL_0AF3: ldloc.s 23 (NetInfo+LodValue)
IL_0AF5: ldfld System.Int32 LodValue::m_lodCount
IL_0AFA: ldelema UnityEngine.Matrix4x4
IL_0AFF: ldarg.s 7
IL_0B01: ldfld UnityEngine.Matrix4x4 Instance::m_dataMatrix0
IL_0B06: stobj UnityEngine.Matrix4x4
IL_0B0B: ldloc.s 23 (NetInfo+LodValue)
IL_0B0D: ldfld UnityEngine.Matrix4x4[] LodValue::m_leftMatricesB
IL_0B12: ldloc.s 23 (NetInfo+LodValue)
IL_0B14: ldfld System.Int32 LodValue::m_lodCount
IL_0B19: ldelema UnityEngine.Matrix4x4
IL_0B1E: ldarg.s 7
IL_0B20: ldflda RenderInstanceData Instance::m_extraData
IL_0B25: ldfld UnityEngine.Matrix4x4 RenderInstanceData::m_dataMatrix3
IL_0B2A: stobj UnityEngine.Matrix4x4
IL_0B2F: ldloc.s 23 (NetInfo+LodValue)
IL_0B31: ldfld UnityEngine.Matrix4x4[] LodValue::m_rightMatrices
IL_0B36: ldloc.s 23 (NetInfo+LodValue)
IL_0B38: ldfld System.Int32 LodValue::m_lodCount
IL_0B3D: ldelema UnityEngine.Matrix4x4
IL_0B42: ldarg.s 7
IL_0B44: ldflda RenderInstanceData Instance::m_extraData
IL_0B49: ldfld UnityEngine.Matrix4x4 RenderInstanceData::m_dataMatrix2
IL_0B4E: stobj UnityEngine.Matrix4x4
IL_0B53: ldloc.s 23 (NetInfo+LodValue)
IL_0B55: ldfld UnityEngine.Matrix4x4[] LodValue::m_rightMatricesB
IL_0B5A: ldloc.s 23 (NetInfo+LodValue)
IL_0B5C: ldfld System.Int32 LodValue::m_lodCount
IL_0B61: ldelema UnityEngine.Matrix4x4
IL_0B66: ldarg.s 7
IL_0B68: ldfld UnityEngine.Matrix4x4 Instance::m_dataMatrix1
IL_0B6D: stobj UnityEngine.Matrix4x4
IL_0B72: ldloc.s 23 (NetInfo+LodValue)
IL_0B74: ldfld UnityEngine.Vector4[] LodValue::m_meshScales
IL_0B79: ldloc.s 23 (NetInfo+LodValue)
IL_0B7B: ldfld System.Int32 LodValue::m_lodCount
IL_0B80: ldelema UnityEngine.Vector4
IL_0B85: ldarg.s 7
IL_0B87: ldfld UnityEngine.Vector4 Instance::m_dataVector0
IL_0B8C: stobj UnityEngine.Vector4
IL_0B91: ldloc.s 23 (NetInfo+LodValue)
IL_0B93: ldfld UnityEngine.Vector4[] LodValue::m_centerPositions
IL_0B98: ldloc.s 23 (NetInfo+LodValue)
IL_0B9A: ldfld System.Int32 LodValue::m_lodCount
IL_0B9F: ldelema UnityEngine.Vector4
IL_0BA4: ldarg.s 7
IL_0BA6: ldfld UnityEngine.Vector4 Instance::m_dataVector1
IL_0BAB: stobj UnityEngine.Vector4
IL_0BB0: ldloc.s 23 (NetInfo+LodValue)
IL_0BB2: ldfld UnityEngine.Vector4[] LodValue::m_sideScales
IL_0BB7: ldloc.s 23 (NetInfo+LodValue)
IL_0BB9: ldfld System.Int32 LodValue::m_lodCount
IL_0BBE: ldelema UnityEngine.Vector4
IL_0BC3: ldarg.s 7
IL_0BC5: ldfld UnityEngine.Vector4 Instance::m_dataVector2
IL_0BCA: stobj UnityEngine.Vector4
IL_0BCF: ldloc.s 23 (NetInfo+LodValue)
IL_0BD1: ldfld UnityEngine.Vector4[] LodValue::m_objectIndices
IL_0BD6: ldloc.s 23 (NetInfo+LodValue)
IL_0BD8: ldfld System.Int32 LodValue::m_lodCount
IL_0BDD: ldelema UnityEngine.Vector4
IL_0BE2: ldloc.s 22 (UnityEngine.Vector4)
IL_0BE4: stobj UnityEngine.Vector4
IL_0BE9: ldloc.s 23 (NetInfo+LodValue)
IL_0BEB: ldfld UnityEngine.Vector4[] LodValue::m_meshLocations
IL_0BF0: ldloc.s 23 (NetInfo+LodValue)
IL_0BF2: ldfld System.Int32 LodValue::m_lodCount
IL_0BF7: ldelema UnityEngine.Vector4
IL_0BFC: ldarg.s 7
IL_0BFE: ldfld UnityEngine.Vector3 Instance::m_position
IL_0C03: call static UnityEngine.Vector4
UnityEngine.Vector4::op_Implicit(UnityEngine.Vector3 v)
IL_0C08: stobj UnityEngine.Vector4
IL_0C0D: ldloc.s 23 (NetInfo+LodValue)
IL_0C0F: ldloc.s 23 (NetInfo+LodValue)
IL_0C11: ldfld UnityEngine.Vector3 LodValue::m_lodMin
IL_0C16: ldarg.s 7
IL_0C18: ldfld UnityEngine.Vector3 Instance::m_position
IL_0C1D: call static UnityEngine.Vector3
UnityEngine.Vector3::Min(UnityEngine.Vector3 lhs, UnityEngine.Vector3 rhs)
IL_0C22: stfld UnityEngine.Vector3 LodValue::m_lodMin
IL_0C27: ldloc.s 23 (NetInfo+LodValue)
IL_0C29: ldloc.s 23 (NetInfo+LodValue)
IL_0C2B: ldfld UnityEngine.Vector3 LodValue::m_lodMax
IL_0C30: ldarg.s 7
IL_0C32: ldfld UnityEngine.Vector3 Instance::m_position
IL_0C37: call static UnityEngine.Vector3
UnityEngine.Vector3::Max(UnityEngine.Vector3 lhs, UnityEngine.Vector3 rhs)
IL_0C3C: stfld UnityEngine.Vector3 LodValue::m_lodMax
IL_0C41: ldloc.s 23 (NetInfo+LodValue)
IL_0C43: dup
IL_0C44: ldfld System.Int32 LodValue::m_lodCount
IL_0C49: ldc.i4.1
IL_0C4A: add
IL_0C4B: dup
IL_0C4C: stloc.s 12 (System.Int32)
IL_0C4E: stfld System.Int32 LodValue::m_lodCount
IL_0C53: ldloc.s 12 (System.Int32)
IL_0C55: ldloc.s 23 (NetInfo+LodValue)
IL_0C57: ldfld UnityEngine.Matrix4x4[] LodValue::m_leftMatrices
IL_0C5C: ldlen
IL_0C5D: conv.i4
IL_0C5E: bne.un => Label86
IL_0C63: ldarg.1
IL_0C64: ldloc.s 23 (NetInfo+LodValue)
IL_0C66: call static System.Void NetNode::RenderLod(CameraInfo cameraInfo,
LodValue lod)
IL_0C6B: Label72
IL_0C6B: Label74
IL_0C6B: Label76
IL_0C6B: Label81
IL_0C6B: Label82
IL_0C6B: Label86
IL_0C6B: ldloc.s 20 (System.Int32)
IL_0C6D: ldc.i4.1
IL_0C6E: add
IL_0C6F: stloc.s 20 (System.Int32)
IL_0C71: Label70
IL_0C71: ldloc.s 20 (System.Int32)
IL_0C73: ldarg.3
IL_0C74: ldfld Node[] NetInfo::m_nodes
IL_0C79: ldlen
IL_0C7A: conv.i4
IL_0C7B: blt => Label87
IL_0C80: Label52
IL_0C80: Label53
IL_0C80: br => Label88
IL_0C85: Label8
IL_0C85: ldarg.s 5
IL_0C87: ldc.i4.s 16
IL_0C89: conv.i8
IL_0C8A: and
IL_0C8B: ldc.i4.0
IL_0C8C: conv.i8
IL_0C8D: beq => Label89
IL_0C92: call static NetManager
ColossalFramework.Singleton`1<NetManager>::get_instance()
IL_0C97: stloc.s 24 (NetManager)
IL_0C99: ldarg.0
IL_0C9A: ldarg.s 7
IL_0C9C: ldfld System.Int32 Instance::m_dataInt0
IL_0CA1: ldc.i4.7
IL_0CA2: and
IL_0CA3: call System.UInt16 NetNode::GetSegment(System.Int32 index)
IL_0CA8: stloc.s 25 (System.UInt16)
IL_0CAA: ldarg.s 5
IL_0CAC: stloc.s 26 (NetNode+FlagsLong)
IL_0CAE: ldloc.s 24 (NetManager)
IL_0CB0: ldfld Array16`1<NetSegment> NetManager::m_segments
IL_0CB5: ldfld NetSegment[] Array16`1<NetSegment>::m_buffer
IL_0CBA: ldloc.s 25 (System.UInt16)
IL_0CBC: ldelema NetSegment
IL_0CC1: ldfld System.UInt16 NetSegment::m_startNode
IL_0CC6: ldarg.2
IL_0CC7: bne.un => Label90
IL_0CCC: ldloc.s 24 (NetManager)
IL_0CCE: ldfld Array16`1<NetSegment> NetManager::m_segments
IL_0CD3: ldfld NetSegment[] Array16`1<NetSegment>::m_buffer
IL_0CD8: ldloc.s 25 (System.UInt16)
IL_0CDA: ldelema NetSegment
IL_0CDF: ldfld Flags NetSegment::m_flags
IL_0CE4: ldc.i4.s 16
IL_0CE6: and
IL_0CE7: brtrue => Label91
IL_0CEC: ldloc.s 26 (NetNode+FlagsLong)
IL_0CEE: ldc.i8 34359738368
IL_0CF7: or
IL_0CF8: stloc.s 26 (NetNode+FlagsLong)
IL_0CFA: br => Label92
IL_0CFF: Label91
IL_0CFF: ldloc.s 26 (NetNode+FlagsLong)
IL_0D01: ldc.i8 68719476736
IL_0D0A: or
IL_0D0B: stloc.s 26 (NetNode+FlagsLong)
IL_0D0D: Label92
IL_0D0D: br => Label93
IL_0D12: Label90
IL_0D12: ldloc.s 24 (NetManager)
IL_0D14: ldfld Array16`1<NetSegment> NetManager::m_segments
IL_0D19: ldfld NetSegment[] Array16`1<NetSegment>::m_buffer
IL_0D1E: ldloc.s 25 (System.UInt16)
IL_0D20: ldelema NetSegment
IL_0D25: ldfld System.UInt16 NetSegment::m_endNode
IL_0D2A: ldarg.2
IL_0D2B: bne.un => Label94
IL_0D30: ldloc.s 24 (NetManager)
IL_0D32: ldfld Array16`1<NetSegment> NetManager::m_segments
IL_0D37: ldfld NetSegment[] Array16`1<NetSegment>::m_buffer
IL_0D3C: ldloc.s 25 (System.UInt16)
IL_0D3E: ldelema NetSegment
IL_0D43: ldfld Flags NetSegment::m_flags
IL_0D48: ldc.i4.s 16
IL_0D4A: and
IL_0D4B: brtrue => Label95
IL_0D50: ldloc.s 26 (NetNode+FlagsLong)
IL_0D52: ldc.i8 68719476736
IL_0D5B: or
IL_0D5C: stloc.s 26 (NetNode+FlagsLong)
IL_0D5E: br => Label96
IL_0D63: Label95
IL_0D63: ldloc.s 26 (NetNode+FlagsLong)
IL_0D65: ldc.i8 34359738368
IL_0D6E: or
IL_0D6F: stloc.s 26 (NetNode+FlagsLong)
IL_0D71: Label93
IL_0D71: Label94
IL_0D71: Label96
IL_0D71: ldc.i4.0
IL_0D72: stloc.s 27 (System.Int32)
IL_0D74: br => Label97
IL_0D79: Label110
IL_0D79: ldarg.3
IL_0D7A: ldfld Node[] NetInfo::m_nodes
IL_0D7F: ldloc.s 27 (System.Int32)
IL_0D81: ldelem.ref
IL_0D82: stloc.s 28 (NetInfo+Node)
IL_0D84: ldloc.s 28 (NetInfo+Node)
IL_0D86: ldarg.s 5
IL_0D88: callvirt System.Boolean Node::CheckFlags(FlagsLong flags)
IL_0D8D: brfalse => Label98
IL_0D92: ldloc.s 28 (NetInfo+Node)
IL_0D94: ldfld System.Boolean Node::m_directConnect
IL_0D99: brtrue => Label99
IL_0D9E: ldarg.s 7
IL_0DA0: ldflda RenderInstanceData Instance::m_extraData
IL_0DA5: ldfld UnityEngine.Vector4 RenderInstanceData::m_dataVector4
IL_0DAA: stloc.s 29 (UnityEngine.Vector4)
IL_0DAC: ldloc.s 28 (NetInfo+Node)
IL_0DAE: ldfld System.Boolean Node::m_requireWindSpeed
IL_0DB3: brfalse => Label100
IL_0DB8: ldloca.s 29 (UnityEngine.Vector4)
IL_0DBA: ldarg.s 7
IL_0DBC: ldfld System.Single Instance::m_dataFloat0
IL_0DC1: stfld System.Single UnityEngine.Vector4::w
IL_0DC6: Label100
IL_0DC6: ldarg.1
IL_0DC7: ldarg.s 7
IL_0DC9: ldfld UnityEngine.Vector3 Instance::m_position
IL_0DCE: ldloc.s 28 (NetInfo+Node)
IL_0DD0: ldfld System.Single Node::m_lodRenderDistance
IL_0DD5: callvirt System.Boolean
CameraInfo::CheckRenderDistance(UnityEngine.Vector3 point, System.Single
maxDistance)
IL_0DDA: brfalse => Label101
IL_0DDF: ldloc.s 24 (NetManager)
IL_0DE1: ldfld UnityEngine.MaterialPropertyBlock NetManager::m_materialBlock
IL_0DE6: callvirt System.Void UnityEngine.MaterialPropertyBlock::Clear()
IL_0DEB: ldloc.s 24 (NetManager)
IL_0DED: ldfld UnityEngine.MaterialPropertyBlock NetManager::m_materialBlock
IL_0DF2: ldloc.s 24 (NetManager)
IL_0DF4: ldfld System.Int32 NetManager::ID_LeftMatrix
IL_0DF9: ldarg.s 7
IL_0DFB: ldfld UnityEngine.Matrix4x4 Instance::m_dataMatrix0
IL_0E00: callvirt System.Void
UnityEngine.MaterialPropertyBlock::SetMatrix(System.Int32 nameID,
UnityEngine.Matrix4x4 value)
IL_0E05: ldloc.s 24 (NetManager)
IL_0E07: ldfld UnityEngine.MaterialPropertyBlock NetManager::m_materialBlock
IL_0E0C: ldloc.s 24 (NetManager)
IL_0E0E: ldfld System.Int32 NetManager::ID_RightMatrix
IL_0E13: ldarg.s 7
IL_0E15: ldflda RenderInstanceData Instance::m_extraData
IL_0E1A: ldfld UnityEngine.Matrix4x4 RenderInstanceData::m_dataMatrix2
IL_0E1F: callvirt System.Void
UnityEngine.MaterialPropertyBlock::SetMatrix(System.Int32 nameID,
UnityEngine.Matrix4x4 value)
IL_0E24: ldloc.s 24 (NetManager)
IL_0E26: ldfld UnityEngine.MaterialPropertyBlock NetManager::m_materialBlock
IL_0E2B: ldloc.s 24 (NetManager)
IL_0E2D: ldfld System.Int32 NetManager::ID_LeftMatrixB
IL_0E32: ldarg.s 7
IL_0E34: ldflda RenderInstanceData Instance::m_extraData
IL_0E39: ldfld UnityEngine.Matrix4x4 RenderInstanceData::m_dataMatrix3
IL_0E3E: callvirt System.Void
UnityEngine.MaterialPropertyBlock::SetMatrix(System.Int32 nameID,
UnityEngine.Matrix4x4 value)
IL_0E43: ldloc.s 24 (NetManager)
IL_0E45: ldfld UnityEngine.MaterialPropertyBlock NetManager::m_materialBlock
IL_0E4A: ldloc.s 24 (NetManager)
IL_0E4C: ldfld System.Int32 NetManager::ID_RightMatrixB
IL_0E51: ldarg.s 7
IL_0E53: ldfld UnityEngine.Matrix4x4 Instance::m_dataMatrix1
IL_0E58: callvirt System.Void
UnityEngine.MaterialPropertyBlock::SetMatrix(System.Int32 nameID,
UnityEngine.Matrix4x4 value)
IL_0E5D: ldloc.s 24 (NetManager)
IL_0E5F: ldfld UnityEngine.MaterialPropertyBlock NetManager::m_materialBlock
IL_0E64: ldloc.s 24 (NetManager)
IL_0E66: ldfld System.Int32 NetManager::ID_MeshScale
IL_0E6B: ldarg.s 7
IL_0E6D: ldfld UnityEngine.Vector4 Instance::m_dataVector0
IL_0E72: callvirt System.Void
UnityEngine.MaterialPropertyBlock::SetVector(System.Int32 nameID,
UnityEngine.Vector4 value)
IL_0E77: ldloc.s 24 (NetManager)
IL_0E79: ldfld UnityEngine.MaterialPropertyBlock NetManager::m_materialBlock
IL_0E7E: ldloc.s 24 (NetManager)
IL_0E80: ldfld System.Int32 NetManager::ID_CenterPos
IL_0E85: ldarg.s 7
IL_0E87: ldfld UnityEngine.Vector4 Instance::m_dataVector1
IL_0E8C: callvirt System.Void
UnityEngine.MaterialPropertyBlock::SetVector(System.Int32 nameID,
UnityEngine.Vector4 value)
IL_0E91: ldloc.s 24 (NetManager)
IL_0E93: ldfld UnityEngine.MaterialPropertyBlock NetManager::m_materialBlock
IL_0E98: ldloc.s 24 (NetManager)
IL_0E9A: ldfld System.Int32 NetManager::ID_SideScale
IL_0E9F: ldarg.s 7
IL_0EA1: ldfld UnityEngine.Vector4 Instance::m_dataVector2
IL_0EA6: callvirt System.Void
UnityEngine.MaterialPropertyBlock::SetVector(System.Int32 nameID,
UnityEngine.Vector4 value)
IL_0EAB: ldloc.s 24 (NetManager)
IL_0EAD: ldfld UnityEngine.MaterialPropertyBlock NetManager::m_materialBlock
IL_0EB2: ldloc.s 24 (NetManager)
IL_0EB4: ldfld System.Int32 NetManager::ID_ObjectIndex
IL_0EB9: ldloc.s 29 (UnityEngine.Vector4)
IL_0EBB: callvirt System.Void
UnityEngine.MaterialPropertyBlock::SetVector(System.Int32 nameID,
UnityEngine.Vector4 value)
IL_0EC0: ldloc.s 24 (NetManager)
IL_0EC2: ldfld UnityEngine.MaterialPropertyBlock NetManager::m_materialBlock
IL_0EC7: ldloc.s 24 (NetManager)
IL_0EC9: ldfld System.Int32 NetManager::ID_Color
IL_0ECE: ldarg.s 7
IL_0ED0: ldfld UnityEngine.Color Instance::m_dataColor0
IL_0ED5: callvirt System.Void
UnityEngine.MaterialPropertyBlock::SetColor(System.Int32 nameID, UnityEngine.Color
value)
IL_0EDA: ldloc.s 28 (NetInfo+Node)
IL_0EDC: ldfld System.Boolean Node::m_requireSurfaceMaps
IL_0EE1: brfalse => Label102
IL_0EE6: ldarg.s 7
IL_0EE8: ldfld UnityEngine.Texture Instance::m_dataTexture1
IL_0EED: ldnull
IL_0EEE: call static System.Boolean
UnityEngine.Object::op_Inequality(UnityEngine.Object x, UnityEngine.Object y)
IL_0EF3: brfalse => Label103
IL_0EF8: ldloc.s 24 (NetManager)
IL_0EFA: ldfld UnityEngine.MaterialPropertyBlock NetManager::m_materialBlock
IL_0EFF: ldloc.s 24 (NetManager)
IL_0F01: ldfld System.Int32 NetManager::ID_SurfaceTexA
IL_0F06: ldarg.s 7
IL_0F08: ldfld UnityEngine.Texture Instance::m_dataTexture0
IL_0F0D: callvirt System.Void
UnityEngine.MaterialPropertyBlock::SetTexture(System.Int32 nameID,
UnityEngine.Texture value)
IL_0F12: ldloc.s 24 (NetManager)
IL_0F14: ldfld UnityEngine.MaterialPropertyBlock NetManager::m_materialBlock
IL_0F19: ldloc.s 24 (NetManager)
IL_0F1B: ldfld System.Int32 NetManager::ID_SurfaceTexB
IL_0F20: ldarg.s 7
IL_0F22: ldfld UnityEngine.Texture Instance::m_dataTexture1
IL_0F27: callvirt System.Void
UnityEngine.MaterialPropertyBlock::SetTexture(System.Int32 nameID,
UnityEngine.Texture value)
IL_0F2C: ldloc.s 24 (NetManager)
IL_0F2E: ldfld UnityEngine.MaterialPropertyBlock NetManager::m_materialBlock
IL_0F33: ldloc.s 24 (NetManager)
IL_0F35: ldfld System.Int32 NetManager::ID_SurfaceMapping
IL_0F3A: ldarg.s 7
IL_0F3C: ldfld UnityEngine.Vector4 Instance::m_dataVector3
IL_0F41: callvirt System.Void
UnityEngine.MaterialPropertyBlock::SetVector(System.Int32 nameID,
UnityEngine.Vector4 value)
IL_0F46: Label102
IL_0F46: Label103
IL_0F46: ldloc.s 24 (NetManager)
IL_0F48: ldflda DrawCallData SimulationManagerBase`2<NetManager,
NetProperties>::m_drawCallData
IL_0F4D: dup
IL_0F4E: ldfld System.Int32 DrawCallData::m_defaultCalls
IL_0F53: ldc.i4.1
IL_0F54: add
IL_0F55: stfld System.Int32 DrawCallData::m_defaultCalls
IL_0F5A: ldloc.s 28 (NetInfo+Node)
IL_0F5C: ldfld UnityEngine.Mesh Node::m_nodeMesh
IL_0F61: ldarg.s 7
IL_0F63: ldfld UnityEngine.Vector3 Instance::m_position
IL_0F68: ldarg.s 7
IL_0F6A: ldfld UnityEngine.Quaternion Instance::m_rotation
IL_0F6F: ldloc.s 28 (NetInfo+Node)
IL_0F71: ldfld UnityEngine.Material Node::m_nodeMaterial
IL_0F76: ldloc.s 28 (NetInfo+Node)
IL_0F78: ldfld System.Int32 Node::m_layer
IL_0F7D: ldnull
IL_0F7E: ldc.i4.0
IL_0F7F: ldloc.s 24 (NetManager)
IL_0F81: ldfld UnityEngine.MaterialPropertyBlock NetManager::m_materialBlock
IL_0F86: call static System.Void
UnityEngine.Graphics::DrawMesh(UnityEngine.Mesh mesh, UnityEngine.Vector3 position,
UnityEngine.Quaternion rotation, UnityEngine.Material material, System.Int32 layer,
UnityEngine.Camera camera, System.Int32 submeshIndex,
UnityEngine.MaterialPropertyBlock properties)
IL_0F8B: br => Label104
IL_0F90: Label101
IL_0F90: ldloc.s 28 (NetInfo+Node)
IL_0F92: ldfld LodValue Node::m_combinedLod
IL_0F97: stloc.s 30 (NetInfo+LodValue)
IL_0F99: ldloc.s 30 (NetInfo+LodValue)
IL_0F9B: brfalse => Label105
IL_0FA0: ldloc.s 28 (NetInfo+Node)
IL_0FA2: ldfld System.Boolean Node::m_requireSurfaceMaps
IL_0FA7: brfalse => Label106
IL_0FAC: ldarg.s 7
IL_0FAE: ldfld UnityEngine.Texture Instance::m_dataTexture0
IL_0FB3: ldloc.s 30 (NetInfo+LodValue)
IL_0FB5: ldfld UnityEngine.Texture LodValue::m_surfaceTexA
IL_0FBA: call static System.Boolean
UnityEngine.Object::op_Inequality(UnityEngine.Object x, UnityEngine.Object y)
IL_0FBF: brfalse => Label107
IL_0FC4: ldloc.s 30 (NetInfo+LodValue)
IL_0FC6: ldfld System.Int32 LodValue::m_lodCount
IL_0FCB: brfalse => Label108
IL_0FD0: ldarg.1
IL_0FD1: ldloc.s 30 (NetInfo+LodValue)
IL_0FD3: call static System.Void NetNode::RenderLod(CameraInfo cameraInfo,
LodValue lod)
IL_0FD8: Label108
IL_0FD8: ldloc.s 30 (NetInfo+LodValue)
IL_0FDA: ldarg.s 7
IL_0FDC: ldfld UnityEngine.Texture Instance::m_dataTexture0
IL_0FE1: stfld UnityEngine.Texture LodValue::m_surfaceTexA
IL_0FE6: ldloc.s 30 (NetInfo+LodValue)
IL_0FE8: ldarg.s 7
IL_0FEA: ldfld UnityEngine.Texture Instance::m_dataTexture1
IL_0FEF: stfld UnityEngine.Texture LodValue::m_surfaceTexB
IL_0FF4: ldloc.s 30 (NetInfo+LodValue)
IL_0FF6: ldarg.s 7
IL_0FF8: ldfld UnityEngine.Vector4 Instance::m_dataVector3
IL_0FFD: stfld UnityEngine.Vector4 LodValue::m_surfaceMapping
IL_1002: Label106
IL_1002: Label107
IL_1002: ldloc.s 30 (NetInfo+LodValue)
IL_1004: ldfld UnityEngine.Matrix4x4[] LodValue::m_leftMatrices
IL_1009: ldloc.s 30 (NetInfo+LodValue)
IL_100B: ldfld System.Int32 LodValue::m_lodCount
IL_1010: ldelema UnityEngine.Matrix4x4
IL_1015: ldarg.s 7
IL_1017: ldfld UnityEngine.Matrix4x4 Instance::m_dataMatrix0
IL_101C: stobj UnityEngine.Matrix4x4
IL_1021: ldloc.s 30 (NetInfo+LodValue)
IL_1023: ldfld UnityEngine.Matrix4x4[] LodValue::m_leftMatricesB
IL_1028: ldloc.s 30 (NetInfo+LodValue)
IL_102A: ldfld System.Int32 LodValue::m_lodCount
IL_102F: ldelema UnityEngine.Matrix4x4
IL_1034: ldarg.s 7
IL_1036: ldflda RenderInstanceData Instance::m_extraData
IL_103B: ldfld UnityEngine.Matrix4x4 RenderInstanceData::m_dataMatrix3
IL_1040: stobj UnityEngine.Matrix4x4
IL_1045: ldloc.s 30 (NetInfo+LodValue)
IL_1047: ldfld UnityEngine.Matrix4x4[] LodValue::m_rightMatrices
IL_104C: ldloc.s 30 (NetInfo+LodValue)
IL_104E: ldfld System.Int32 LodValue::m_lodCount
IL_1053: ldelema UnityEngine.Matrix4x4
IL_1058: ldarg.s 7
IL_105A: ldflda RenderInstanceData Instance::m_extraData
IL_105F: ldfld UnityEngine.Matrix4x4 RenderInstanceData::m_dataMatrix2
IL_1064: stobj UnityEngine.Matrix4x4
IL_1069: ldloc.s 30 (NetInfo+LodValue)
IL_106B: ldfld UnityEngine.Matrix4x4[] LodValue::m_rightMatricesB
IL_1070: ldloc.s 30 (NetInfo+LodValue)
IL_1072: ldfld System.Int32 LodValue::m_lodCount
IL_1077: ldelema UnityEngine.Matrix4x4
IL_107C: ldarg.s 7
IL_107E: ldfld UnityEngine.Matrix4x4 Instance::m_dataMatrix1
IL_1083: stobj UnityEngine.Matrix4x4
IL_1088: ldloc.s 30 (NetInfo+LodValue)
IL_108A: ldfld UnityEngine.Vector4[] LodValue::m_meshScales
IL_108F: ldloc.s 30 (NetInfo+LodValue)
IL_1091: ldfld System.Int32 LodValue::m_lodCount
IL_1096: ldelema UnityEngine.Vector4
IL_109B: ldarg.s 7
IL_109D: ldfld UnityEngine.Vector4 Instance::m_dataVector0
IL_10A2: stobj UnityEngine.Vector4
IL_10A7: ldloc.s 30 (NetInfo+LodValue)
IL_10A9: ldfld UnityEngine.Vector4[] LodValue::m_centerPositions
IL_10AE: ldloc.s 30 (NetInfo+LodValue)
IL_10B0: ldfld System.Int32 LodValue::m_lodCount
IL_10B5: ldelema UnityEngine.Vector4
IL_10BA: ldarg.s 7
IL_10BC: ldfld UnityEngine.Vector4 Instance::m_dataVector1
IL_10C1: stobj UnityEngine.Vector4
IL_10C6: ldloc.s 30 (NetInfo+LodValue)
IL_10C8: ldfld UnityEngine.Vector4[] LodValue::m_sideScales
IL_10CD: ldloc.s 30 (NetInfo+LodValue)
IL_10CF: ldfld System.Int32 LodValue::m_lodCount
IL_10D4: ldelema UnityEngine.Vector4
IL_10D9: ldarg.s 7
IL_10DB: ldfld UnityEngine.Vector4 Instance::m_dataVector2
IL_10E0: stobj UnityEngine.Vector4
IL_10E5: ldloc.s 30 (NetInfo+LodValue)
IL_10E7: ldfld UnityEngine.Vector4[] LodValue::m_objectIndices
IL_10EC: ldloc.s 30 (NetInfo+LodValue)
IL_10EE: ldfld System.Int32 LodValue::m_lodCount
IL_10F3: ldelema UnityEngine.Vector4
IL_10F8: ldloc.s 29 (UnityEngine.Vector4)
IL_10FA: stobj UnityEngine.Vector4
IL_10FF: ldloc.s 30 (NetInfo+LodValue)
IL_1101: ldfld UnityEngine.Vector4[] LodValue::m_meshLocations
IL_1106: ldloc.s 30 (NetInfo+LodValue)
IL_1108: ldfld System.Int32 LodValue::m_lodCount
IL_110D: ldelema UnityEngine.Vector4
IL_1112: ldarg.s 7
IL_1114: ldfld UnityEngine.Vector3 Instance::m_position
IL_1119: call static UnityEngine.Vector4
UnityEngine.Vector4::op_Implicit(UnityEngine.Vector3 v)
IL_111E: stobj UnityEngine.Vector4
IL_1123: ldloc.s 30 (NetInfo+LodValue)
IL_1125: ldloc.s 30 (NetInfo+LodValue)
IL_1127: ldfld UnityEngine.Vector3 LodValue::m_lodMin
IL_112C: ldarg.s 7
IL_112E: ldfld UnityEngine.Vector3 Instance::m_position
IL_1133: call static UnityEngine.Vector3
UnityEngine.Vector3::Min(UnityEngine.Vector3 lhs, UnityEngine.Vector3 rhs)
IL_1138: stfld UnityEngine.Vector3 LodValue::m_lodMin
IL_113D: ldloc.s 30 (NetInfo+LodValue)
IL_113F: ldloc.s 30 (NetInfo+LodValue)
IL_1141: ldfld UnityEngine.Vector3 LodValue::m_lodMax
IL_1146: ldarg.s 7
IL_1148: ldfld UnityEngine.Vector3 Instance::m_position
IL_114D: call static UnityEngine.Vector3
UnityEngine.Vector3::Max(UnityEngine.Vector3 lhs, UnityEngine.Vector3 rhs)
IL_1152: stfld UnityEngine.Vector3 LodValue::m_lodMax
IL_1157: ldloc.s 30 (NetInfo+LodValue)
IL_1159: dup
IL_115A: ldfld System.Int32 LodValue::m_lodCount
IL_115F: ldc.i4.1
IL_1160: add
IL_1161: dup
IL_1162: stloc.s 12 (System.Int32)
IL_1164: stfld System.Int32 LodValue::m_lodCount
IL_1169: ldloc.s 12 (System.Int32)
IL_116B: ldloc.s 30 (NetInfo+LodValue)
IL_116D: ldfld UnityEngine.Matrix4x4[] LodValue::m_leftMatrices
IL_1172: ldlen
IL_1173: conv.i4
IL_1174: bne.un => Label109
IL_1179: ldarg.1
IL_117A: ldloc.s 30 (NetInfo+LodValue)
IL_117C: call static System.Void NetNode::RenderLod(CameraInfo cameraInfo,
LodValue lod)
IL_1181: Label98
IL_1181: Label99
IL_1181: Label104
IL_1181: Label105
IL_1181: Label109
IL_1181: ldloc.s 27 (System.Int32)
IL_1183: ldc.i4.1
IL_1184: add
IL_1185: stloc.s 27 (System.Int32)
IL_1187: Label97
IL_1187: ldloc.s 27 (System.Int32)
IL_1189: ldarg.3
IL_118A: ldfld Node[] NetInfo::m_nodes
IL_118F: ldlen
IL_1190: conv.i4
IL_1191: blt => Label110
IL_1196: br => Label111
IL_119B: Label89
IL_119B: ldarg.s 5
IL_119D: ldc.i4.s 64
IL_119F: conv.i8
IL_11A0: and
IL_11A1: ldc.i4.0
IL_11A2: conv.i8
IL_11A3: beq => Label112
IL_11A8: call static NetManager
ColossalFramework.Singleton`1<NetManager>::get_instance()
IL_11AD: stloc.s 31 (NetManager)
IL_11AF: ldc.i4.0
IL_11B0: stloc.s 32 (System.Int32)
IL_11B2: br => Label113
IL_11B7: Label129
IL_11B7: ldarg.3
IL_11B8: ldfld Segment[] NetInfo::m_segments
IL_11BD: ldloc.s 32 (System.Int32)
IL_11BF: ldelem.ref
IL_11C0: stloc.s 33 (NetInfo+Segment)
IL_11C2: ldarg.3
IL_11C3: ldfld NetAI NetInfo::m_netAI
IL_11C8: ldarg.2
IL_11C9: ldarg.0
IL_11CA: callvirt virtual Flags NetAI::GetBendFlags(System.UInt16 nodeID,
NetNode& nodeData)
IL_11CF: stloc.s 35 (NetSegment+Flags)
IL_11D1: ldc.i4.0
IL_11D2: stloc.s 36 (System.Int32)
IL_11D4: br => Label114
IL_11D9: Label115
IL_11D9: ldloc.s 35 (NetSegment+Flags)
IL_11DB: ldloc.s 31 (NetManager)
IL_11DD: ldfld Array16`1<NetSegment> NetManager::m_segments
IL_11E2: ldfld NetSegment[] Array16`1<NetSegment>::m_buffer
IL_11E7: ldloc.s 31 (NetManager)
IL_11E9: ldfld Array16`1<NetNode> NetManager::m_nodes
IL_11EE: ldfld NetNode[] Array16`1<NetNode>::m_buffer
IL_11F3: ldarg.2
IL_11F4: ldelema NetNode
IL_11F9: ldloc.s 36 (System.Int32)
IL_11FB: call System.UInt16 NetNode::GetSegment(System.Int32 index)
IL_1200: ldelema NetSegment
IL_1205: ldfld Flags NetSegment::m_flags
IL_120A: ldc.i4.8
IL_120B: and
IL_120C: or
IL_120D: stloc.s 35 (NetSegment+Flags)
IL_120F: ldloc.s 36 (System.Int32)
IL_1211: ldc.i4.1
IL_1212: add
IL_1213: stloc.s 36 (System.Int32)
IL_1215: Label114
IL_1215: ldloc.s 36 (System.Int32)
IL_1217: ldloc.s 31 (NetManager)
IL_1219: ldfld Array16`1<NetNode> NetManager::m_nodes
IL_121E: ldfld NetNode[] Array16`1<NetNode>::m_buffer
IL_1223: ldarg.2
IL_1224: ldelema NetNode
IL_1229: call System.Int32 NetNode::CountSegments()
IL_122E: blt => Label115
IL_1233: ldloc.s 33 (NetInfo+Segment)
IL_1235: ldloc.s 35 (NetSegment+Flags)
IL_1237: ldloca.s 34 (System.Boolean)
IL_1239: callvirt System.Boolean Segment::CheckFlags(Flags flags, System.Boolean&
turnAround)
IL_123E: brfalse => Label116
IL_1243: ldloc.s 33 (NetInfo+Segment)
IL_1245: ldfld System.Boolean Segment::m_disableBendNodes
IL_124A: brtrue => Label117
IL_124F: ldarg.s 7
IL_1251: ldfld UnityEngine.Vector4 Instance::m_dataVector3
IL_1256: stloc.s 37 (UnityEngine.Vector4)
IL_1258: ldarg.s 7
IL_125A: ldfld UnityEngine.Vector4 Instance::m_dataVector0
IL_125F: stloc.s 38 (UnityEngine.Vector4)
IL_1261: ldloc.s 33 (NetInfo+Segment)
IL_1263: ldfld System.Boolean Segment::m_requireWindSpeed
IL_1268: brfalse => Label118
IL_126D: ldloca.s 37 (UnityEngine.Vector4)
IL_126F: ldarg.s 7
IL_1271: ldfld System.Single Instance::m_dataFloat0
IL_1276: stfld System.Single UnityEngine.Vector4::w
IL_127B: Label118
IL_127B: ldloc.s 34 (System.Boolean)
IL_127D: brfalse => Label119
IL_1282: ldloca.s 38 (UnityEngine.Vector4)
IL_1284: ldloca.s 38 (UnityEngine.Vector4)
IL_1286: ldfld System.Single UnityEngine.Vector4::x
IL_128B: neg
IL_128C: stfld System.Single UnityEngine.Vector4::x
IL_1291: ldloca.s 38 (UnityEngine.Vector4)
IL_1293: ldloca.s 38 (UnityEngine.Vector4)
IL_1295: ldfld System.Single UnityEngine.Vector4::y
IL_129A: neg
IL_129B: stfld System.Single UnityEngine.Vector4::y
IL_12A0: Label119
IL_12A0: ldarg.1
IL_12A1: ldarg.s 7
IL_12A3: ldfld UnityEngine.Vector3 Instance::m_position
IL_12A8: ldloc.s 33 (NetInfo+Segment)
IL_12AA: ldfld System.Single Segment::m_lodRenderDistance
IL_12AF: callvirt System.Boolean
CameraInfo::CheckRenderDistance(UnityEngine.Vector3 point, System.Single
maxDistance)
IL_12B4: brfalse => Label120
IL_12B9: ldloc.s 31 (NetManager)
IL_12BB: ldfld UnityEngine.MaterialPropertyBlock NetManager::m_materialBlock
IL_12C0: callvirt System.Void UnityEngine.MaterialPropertyBlock::Clear()
IL_12C5: ldloc.s 31 (NetManager)
IL_12C7: ldfld UnityEngine.MaterialPropertyBlock NetManager::m_materialBlock
IL_12CC: ldloc.s 31 (NetManager)
IL_12CE: ldfld System.Int32 NetManager::ID_LeftMatrix
IL_12D3: ldarg.s 7
IL_12D5: ldfld UnityEngine.Matrix4x4 Instance::m_dataMatrix0
IL_12DA: callvirt System.Void
UnityEngine.MaterialPropertyBlock::SetMatrix(System.Int32 nameID,
UnityEngine.Matrix4x4 value)
IL_12DF: ldloc.s 31 (NetManager)
IL_12E1: ldfld UnityEngine.MaterialPropertyBlock NetManager::m_materialBlock
IL_12E6: ldloc.s 31 (NetManager)
IL_12E8: ldfld System.Int32 NetManager::ID_RightMatrix
IL_12ED: ldarg.s 7
IL_12EF: ldflda RenderInstanceData Instance::m_extraData
IL_12F4: ldfld UnityEngine.Matrix4x4 RenderInstanceData::m_dataMatrix2
IL_12F9: callvirt System.Void
UnityEngine.MaterialPropertyBlock::SetMatrix(System.Int32 nameID,
UnityEngine.Matrix4x4 value)
IL_12FE: ldloc.s 31 (NetManager)
IL_1300: ldfld UnityEngine.MaterialPropertyBlock NetManager::m_materialBlock
IL_1305: ldloc.s 31 (NetManager)
IL_1307: ldfld System.Int32 NetManager::ID_MeshScale
IL_130C: ldloc.s 38 (UnityEngine.Vector4)
IL_130E: callvirt System.Void
UnityEngine.MaterialPropertyBlock::SetVector(System.Int32 nameID,
UnityEngine.Vector4 value)
IL_1313: ldloc.s 31 (NetManager)
IL_1315: ldfld UnityEngine.MaterialPropertyBlock NetManager::m_materialBlock
IL_131A: ldloc.s 31 (NetManager)
IL_131C: ldfld System.Int32 NetManager::ID_ObjectIndex
IL_1321: ldloc.s 37 (UnityEngine.Vector4)
IL_1323: callvirt System.Void
UnityEngine.MaterialPropertyBlock::SetVector(System.Int32 nameID,
UnityEngine.Vector4 value)
IL_1328: ldloc.s 31 (NetManager)
IL_132A: ldfld UnityEngine.MaterialPropertyBlock NetManager::m_materialBlock
IL_132F: ldloc.s 31 (NetManager)
IL_1331: ldfld System.Int32 NetManager::ID_Color
IL_1336: ldarg.s 7
IL_1338: ldfld UnityEngine.Color Instance::m_dataColor0
IL_133D: callvirt System.Void
UnityEngine.MaterialPropertyBlock::SetColor(System.Int32 nameID, UnityEngine.Color
value)
IL_1342: ldloc.s 33 (NetInfo+Segment)
IL_1344: ldfld System.Boolean Segment::m_requireSurfaceMaps
IL_1349: brfalse => Label121
IL_134E: ldarg.s 7
IL_1350: ldfld UnityEngine.Texture Instance::m_dataTexture1
IL_1355: ldnull
IL_1356: call static System.Boolean
UnityEngine.Object::op_Inequality(UnityEngine.Object x, UnityEngine.Object y)
IL_135B: brfalse => Label122
IL_1360: ldloc.s 31 (NetManager)
IL_1362: ldfld UnityEngine.MaterialPropertyBlock NetManager::m_materialBlock
IL_1367: ldloc.s 31 (NetManager)
IL_1369: ldfld System.Int32 NetManager::ID_SurfaceTexA
IL_136E: ldarg.s 7
IL_1370: ldfld UnityEngine.Texture Instance::m_dataTexture0
IL_1375: callvirt System.Void
UnityEngine.MaterialPropertyBlock::SetTexture(System.Int32 nameID,
UnityEngine.Texture value)
IL_137A: ldloc.s 31 (NetManager)
IL_137C: ldfld UnityEngine.MaterialPropertyBlock NetManager::m_materialBlock
IL_1381: ldloc.s 31 (NetManager)
IL_1383: ldfld System.Int32 NetManager::ID_SurfaceTexB
IL_1388: ldarg.s 7
IL_138A: ldfld UnityEngine.Texture Instance::m_dataTexture1
IL_138F: callvirt System.Void
UnityEngine.MaterialPropertyBlock::SetTexture(System.Int32 nameID,
UnityEngine.Texture value)
IL_1394: ldloc.s 31 (NetManager)
IL_1396: ldfld UnityEngine.MaterialPropertyBlock NetManager::m_materialBlock
IL_139B: ldloc.s 31 (NetManager)
IL_139D: ldfld System.Int32 NetManager::ID_SurfaceMapping
IL_13A2: ldarg.s 7
IL_13A4: ldfld UnityEngine.Vector4 Instance::m_dataVector1
IL_13A9: callvirt System.Void
UnityEngine.MaterialPropertyBlock::SetVector(System.Int32 nameID,
UnityEngine.Vector4 value)
IL_13AE: Label121
IL_13AE: Label122
IL_13AE: ldloc.s 31 (NetManager)
IL_13B0: ldflda DrawCallData SimulationManagerBase`2<NetManager,
NetProperties>::m_drawCallData
IL_13B5: dup
IL_13B6: ldfld System.Int32 DrawCallData::m_defaultCalls
IL_13BB: ldc.i4.1
IL_13BC: add
IL_13BD: stfld System.Int32 DrawCallData::m_defaultCalls
IL_13C2: ldloc.s 33 (NetInfo+Segment)
IL_13C4: ldfld UnityEngine.Mesh Segment::m_segmentMesh
IL_13C9: ldarg.s 7
IL_13CB: ldfld UnityEngine.Vector3 Instance::m_position
IL_13D0: ldarg.s 7
IL_13D2: ldfld UnityEngine.Quaternion Instance::m_rotation
IL_13D7: ldloc.s 33 (NetInfo+Segment)
IL_13D9: ldfld UnityEngine.Material Segment::m_segmentMaterial
IL_13DE: ldloc.s 33 (NetInfo+Segment)
IL_13E0: ldfld System.Int32 Segment::m_layer
IL_13E5: ldnull
IL_13E6: ldc.i4.0
IL_13E7: ldloc.s 31 (NetManager)
IL_13E9: ldfld UnityEngine.MaterialPropertyBlock NetManager::m_materialBlock
IL_13EE: call static System.Void
UnityEngine.Graphics::DrawMesh(UnityEngine.Mesh mesh, UnityEngine.Vector3 position,
UnityEngine.Quaternion rotation, UnityEngine.Material material, System.Int32 layer,
UnityEngine.Camera camera, System.Int32 submeshIndex,
UnityEngine.MaterialPropertyBlock properties)
IL_13F3: br => Label123
IL_13F8: Label120
IL_13F8: ldloc.s 33 (NetInfo+Segment)
IL_13FA: ldfld LodValue Segment::m_combinedLod
IL_13FF: stloc.s 39 (NetInfo+LodValue)
IL_1401: ldloc.s 39 (NetInfo+LodValue)
IL_1403: brfalse => Label124
IL_1408: ldloc.s 33 (NetInfo+Segment)
IL_140A: ldfld System.Boolean Segment::m_requireSurfaceMaps
IL_140F: brfalse => Label125
IL_1414: ldarg.s 7
IL_1416: ldfld UnityEngine.Texture Instance::m_dataTexture0
IL_141B: ldloc.s 39 (NetInfo+LodValue)
IL_141D: ldfld UnityEngine.Texture LodValue::m_surfaceTexA
IL_1422: call static System.Boolean
UnityEngine.Object::op_Inequality(UnityEngine.Object x, UnityEngine.Object y)
IL_1427: brfalse => Label126
IL_142C: ldloc.s 39 (NetInfo+LodValue)
IL_142E: ldfld System.Int32 LodValue::m_lodCount
IL_1433: brfalse => Label127
IL_1438: ldarg.1
IL_1439: ldloc.s 39 (NetInfo+LodValue)
IL_143B: call static System.Void NetSegment::RenderLod(CameraInfo cameraInfo,
LodValue lod)
IL_1440: Label127
IL_1440: ldloc.s 39 (NetInfo+LodValue)
IL_1442: ldarg.s 7
IL_1444: ldfld UnityEngine.Texture Instance::m_dataTexture0
IL_1449: stfld UnityEngine.Texture LodValue::m_surfaceTexA
IL_144E: ldloc.s 39 (NetInfo+LodValue)
IL_1450: ldarg.s 7
IL_1452: ldfld UnityEngine.Texture Instance::m_dataTexture1
IL_1457: stfld UnityEngine.Texture LodValue::m_surfaceTexB
IL_145C: ldloc.s 39 (NetInfo+LodValue)
IL_145E: ldarg.s 7
IL_1460: ldfld UnityEngine.Vector4 Instance::m_dataVector1
IL_1465: stfld UnityEngine.Vector4 LodValue::m_surfaceMapping
IL_146A: Label125
IL_146A: Label126
IL_146A: ldloc.s 39 (NetInfo+LodValue)
IL_146C: ldfld UnityEngine.Matrix4x4[] LodValue::m_leftMatrices
IL_1471: ldloc.s 39 (NetInfo+LodValue)
IL_1473: ldfld System.Int32 LodValue::m_lodCount
IL_1478: ldelema UnityEngine.Matrix4x4
IL_147D: ldarg.s 7
IL_147F: ldfld UnityEngine.Matrix4x4 Instance::m_dataMatrix0
IL_1484: stobj UnityEngine.Matrix4x4
IL_1489: ldloc.s 39 (NetInfo+LodValue)
IL_148B: ldfld UnityEngine.Matrix4x4[] LodValue::m_rightMatrices
IL_1490: ldloc.s 39 (NetInfo+LodValue)
IL_1492: ldfld System.Int32 LodValue::m_lodCount
IL_1497: ldelema UnityEngine.Matrix4x4
IL_149C: ldarg.s 7
IL_149E: ldflda RenderInstanceData Instance::m_extraData
IL_14A3: ldfld UnityEngine.Matrix4x4 RenderInstanceData::m_dataMatrix2
IL_14A8: stobj UnityEngine.Matrix4x4
IL_14AD: ldloc.s 39 (NetInfo+LodValue)
IL_14AF: ldfld UnityEngine.Vector4[] LodValue::m_meshScales
IL_14B4: ldloc.s 39 (NetInfo+LodValue)
IL_14B6: ldfld System.Int32 LodValue::m_lodCount
IL_14BB: ldelema UnityEngine.Vector4
IL_14C0: ldloc.s 38 (UnityEngine.Vector4)
IL_14C2: stobj UnityEngine.Vector4
IL_14C7: ldloc.s 39 (NetInfo+LodValue)
IL_14C9: ldfld UnityEngine.Vector4[] LodValue::m_objectIndices
IL_14CE: ldloc.s 39 (NetInfo+LodValue)
IL_14D0: ldfld System.Int32 LodValue::m_lodCount
IL_14D5: ldelema UnityEngine.Vector4
IL_14DA: ldloc.s 37 (UnityEngine.Vector4)
IL_14DC: stobj UnityEngine.Vector4
IL_14E1: ldloc.s 39 (NetInfo+LodValue)
IL_14E3: ldfld UnityEngine.Vector4[] LodValue::m_meshLocations
IL_14E8: ldloc.s 39 (NetInfo+LodValue)
IL_14EA: ldfld System.Int32 LodValue::m_lodCount
IL_14EF: ldelema UnityEngine.Vector4
IL_14F4: ldarg.s 7
IL_14F6: ldfld UnityEngine.Vector3 Instance::m_position
IL_14FB: call static UnityEngine.Vector4
UnityEngine.Vector4::op_Implicit(UnityEngine.Vector3 v)
IL_1500: stobj UnityEngine.Vector4
IL_1505: ldloc.s 39 (NetInfo+LodValue)
IL_1507: ldloc.s 39 (NetInfo+LodValue)
IL_1509: ldfld UnityEngine.Vector3 LodValue::m_lodMin
IL_150E: ldarg.s 7
IL_1510: ldfld UnityEngine.Vector3 Instance::m_position
IL_1515: call static UnityEngine.Vector3
UnityEngine.Vector3::Min(UnityEngine.Vector3 lhs, UnityEngine.Vector3 rhs)
IL_151A: stfld UnityEngine.Vector3 LodValue::m_lodMin
IL_151F: ldloc.s 39 (NetInfo+LodValue)
IL_1521: ldloc.s 39 (NetInfo+LodValue)
IL_1523: ldfld UnityEngine.Vector3 LodValue::m_lodMax
IL_1528: ldarg.s 7
IL_152A: ldfld UnityEngine.Vector3 Instance::m_position
IL_152F: call static UnityEngine.Vector3
UnityEngine.Vector3::Max(UnityEngine.Vector3 lhs, UnityEngine.Vector3 rhs)
IL_1534: stfld UnityEngine.Vector3 LodValue::m_lodMax
IL_1539: ldloc.s 39 (NetInfo+LodValue)
IL_153B: dup
IL_153C: ldfld System.Int32 LodValue::m_lodCount
IL_1541: ldc.i4.1
IL_1542: add
IL_1543: dup
IL_1544: stloc.s 12 (System.Int32)
IL_1546: stfld System.Int32 LodValue::m_lodCount
IL_154B: ldloc.s 12 (System.Int32)
IL_154D: ldloc.s 39 (NetInfo+LodValue)
IL_154F: ldfld UnityEngine.Matrix4x4[] LodValue::m_leftMatrices
IL_1554: ldlen
IL_1555: conv.i4
IL_1556: bne.un => Label128
IL_155B: ldarg.1
IL_155C: ldloc.s 39 (NetInfo+LodValue)
IL_155E: call static System.Void NetSegment::RenderLod(CameraInfo cameraInfo,
LodValue lod)
IL_1563: Label116
IL_1563: Label117
IL_1563: Label123
IL_1563: Label124
IL_1563: Label128
IL_1563: ldloc.s 32 (System.Int32)
IL_1565: ldc.i4.1
IL_1566: add
IL_1567: stloc.s 32 (System.Int32)
IL_1569: Label113
IL_1569: ldloc.s 32 (System.Int32)
IL_156B: ldarg.3
IL_156C: ldfld Segment[] NetInfo::m_segments
IL_1571: ldlen
IL_1572: conv.i4
IL_1573: blt => Label129
IL_1578: ldc.i4.0
IL_1579: stloc.s 40 (System.Int32)
IL_157B: br => Label130
IL_1580: Label162
IL_1580: ldarg.0
IL_1581: ldarg.s 7
IL_1583: ldfld System.Int32 Instance::m_dataInt0
IL_1588: ldc.i4.7
IL_1589: and
IL_158A: call System.UInt16 NetNode::GetSegment(System.Int32 index)
IL_158F: stloc.s 41 (System.UInt16)
IL_1591: ldarg.0
IL_1592: ldarg.s 7
IL_1594: ldfld System.Int32 Instance::m_dataInt0
IL_1599: ldc.i4.4
IL_159A: shr
IL_159B: call System.UInt16 NetNode::GetSegment(System.Int32 index)
IL_15A0: stloc.s 42 (System.UInt16)
IL_15A2: ldarg.s 5
IL_15A4: stloc.s 43 (NetNode+FlagsLong)
IL_15A6: ldloc.s 31 (NetManager)
IL_15A8: ldfld Array16`1<NetSegment> NetManager::m_segments
IL_15AD: ldfld NetSegment[] Array16`1<NetSegment>::m_buffer
IL_15B2: ldloc.s 41 (System.UInt16)
IL_15B4: ldelema NetSegment
IL_15B9: ldfld Flags NetSegment::m_flags
IL_15BE: ldloc.s 31 (NetManager)
IL_15C0: ldfld Array16`1<NetSegment> NetManager::m_segments
IL_15C5: ldfld NetSegment[] Array16`1<NetSegment>::m_buffer
IL_15CA: ldloc.s 42 (System.UInt16)
IL_15CC: ldelema NetSegment
IL_15D1: ldfld Flags NetSegment::m_flags
IL_15D6: or
IL_15D7: ldc.i4.8
IL_15D8: and
IL_15D9: brfalse => Label131
IL_15DE: ldloc.s 43 (NetNode+FlagsLong)
IL_15E0: ldc.i4 134217728
IL_15E5: conv.i8
IL_15E6: or
IL_15E7: stloc.s 43 (NetNode+FlagsLong)
IL_15E9: Label131
IL_15E9: ldloc.s 31 (NetManager)
IL_15EB: ldfld Array16`1<NetSegment> NetManager::m_segments
IL_15F0: ldfld NetSegment[] Array16`1<NetSegment>::m_buffer
IL_15F5: ldloc.s 41 (System.UInt16)
IL_15F7: ldelema NetSegment
IL_15FC: ldfld System.UInt16 NetSegment::m_startNode
IL_1601: ldarg.2
IL_1602: bne.un => Label132
IL_1607: ldloc.s 31 (NetManager)
IL_1609: ldfld Array16`1<NetSegment> NetManager::m_segments
IL_160E: ldfld NetSegment[] Array16`1<NetSegment>::m_buffer
IL_1613: ldloc.s 41 (System.UInt16)
IL_1615: ldelema NetSegment
IL_161A: ldfld Flags NetSegment::m_flags
IL_161F: ldc.i4.s 16
IL_1621: and
IL_1622: brtrue => Label133
IL_1627: ldloc.s 43 (NetNode+FlagsLong)
IL_1629: ldc.i8 34359738368
IL_1632: or
IL_1633: stloc.s 43 (NetNode+FlagsLong)
IL_1635: br => Label134
IL_163A: Label133
IL_163A: ldloc.s 43 (NetNode+FlagsLong)
IL_163C: ldc.i8 68719476736
IL_1645: or
IL_1646: stloc.s 43 (NetNode+FlagsLong)
IL_1648: Label134
IL_1648: br => Label135
IL_164D: Label132
IL_164D: ldloc.s 31 (NetManager)
IL_164F: ldfld Array16`1<NetSegment> NetManager::m_segments
IL_1654: ldfld NetSegment[] Array16`1<NetSegment>::m_buffer
IL_1659: ldloc.s 41 (System.UInt16)
IL_165B: ldelema NetSegment
IL_1660: ldfld System.UInt16 NetSegment::m_endNode
IL_1665: ldarg.2
IL_1666: bne.un => Label136
IL_166B: ldloc.s 31 (NetManager)
IL_166D: ldfld Array16`1<NetSegment> NetManager::m_segments
IL_1672: ldfld NetSegment[] Array16`1<NetSegment>::m_buffer
IL_1677: ldloc.s 41 (System.UInt16)
IL_1679: ldelema NetSegment
IL_167E: ldfld Flags NetSegment::m_flags
IL_1683: ldc.i4.s 16
IL_1685: and
IL_1686: brtrue => Label137
IL_168B: ldloc.s 43 (NetNode+FlagsLong)
IL_168D: ldc.i8 68719476736
IL_1696: or
IL_1697: stloc.s 43 (NetNode+FlagsLong)
IL_1699: br => Label138
IL_169E: Label137
IL_169E: ldloc.s 43 (NetNode+FlagsLong)
IL_16A0: ldc.i8 34359738368
IL_16A9: or
IL_16AA: stloc.s 43 (NetNode+FlagsLong)
IL_16AC: Label135
IL_16AC: Label136
IL_16AC: Label138
IL_16AC: ldarg.3
IL_16AD: ldfld Node[] NetInfo::m_nodes
IL_16B2: ldloc.s 40 (System.Int32)
IL_16B4: ldelem.ref
IL_16B5: stloc.s 44 (NetInfo+Node)
IL_16B7: ldloc.s 44 (NetInfo+Node)
IL_16B9: ldloc.s 43 (NetNode+FlagsLong)
IL_16BB: callvirt System.Boolean Node::CheckFlags(FlagsLong flags)
IL_16C0: brfalse => Label139
IL_16C5: ldloc.s 44 (NetInfo+Node)
IL_16C7: ldfld System.Boolean Node::m_directConnect
IL_16CC: brfalse => Label140
IL_16D1: ldloc.s 44 (NetInfo+Node)
IL_16D3: ldfld ConnectGroup Node::m_connectGroup
IL_16D8: brfalse => Label141
IL_16DD: ldloc.s 44 (NetInfo+Node)
IL_16DF: ldfld ConnectGroup Node::m_connectGroup
IL_16E4: ldarg.3
IL_16E5: ldfld ConnectGroup NetInfo::m_connectGroup
IL_16EA: and
IL_16EB: ldc.i4 268374015
IL_16F0: and
IL_16F1: brfalse => Label142
IL_16F6: Label141
IL_16F6: ldarg.s 7
IL_16F8: ldfld UnityEngine.Vector4 Instance::m_dataVector3
IL_16FD: stloc.s 45 (UnityEngine.Vector4)
IL_16FF: ldarg.s 7
IL_1701: ldfld UnityEngine.Vector4 Instance::m_dataVector0
IL_1706: stloc.s 46 (UnityEngine.Vector4)
IL_1708: ldloc.s 44 (NetInfo+Node)
IL_170A: ldfld System.Boolean Node::m_requireWindSpeed
IL_170F: brfalse => Label143
IL_1714: ldloca.s 45 (UnityEngine.Vector4)
IL_1716: ldarg.s 7
IL_1718: ldfld System.Single Instance::m_dataFloat0
IL_171D: stfld System.Single UnityEngine.Vector4::w
IL_1722: Label143
IL_1722: ldloc.s 44 (NetInfo+Node)
IL_1724: ldfld ConnectGroup Node::m_connectGroup
IL_1729: ldc.i4 12288
IL_172E: and
IL_172F: brfalse => Label144
IL_1734: ldloc.s 31 (NetManager)
IL_1736: ldfld Array16`1<NetSegment> NetManager::m_segments
IL_173B: ldfld NetSegment[] Array16`1<NetSegment>::m_buffer
IL_1740: ldloc.s 41 (System.UInt16)
IL_1742: ldelema NetSegment
IL_1747: ldfld System.UInt16 NetSegment::m_startNode
IL_174C: ldarg.2
IL_174D: ceq
IL_174F: ldloc.s 31 (NetManager)
IL_1751: ldfld Array16`1<NetSegment> NetManager::m_segments
IL_1756: ldfld NetSegment[] Array16`1<NetSegment>::m_buffer
IL_175B: ldloc.s 41 (System.UInt16)
IL_175D: ldelema NetSegment
IL_1762: ldfld Flags NetSegment::m_flags
IL_1767: ldc.i4.s 16
IL_1769: and
IL_176A: ldc.i4.0
IL_176B: ceq
IL_176D: ceq
IL_176F: stloc.s 47 (System.Boolean)
IL_1771: ldloc.s 31 (NetManager)
IL_1773: ldfld Array16`1<NetSegment> NetManager::m_segments
IL_1778: ldfld NetSegment[] Array16`1<NetSegment>::m_buffer
IL_177D: ldloc.s 42 (System.UInt16)
IL_177F: ldelema NetSegment
IL_1784: ldfld System.UInt16 NetSegment::m_startNode
IL_1789: ldarg.2
IL_178A: ceq
IL_178C: ldloc.s 31 (NetManager)
IL_178E: ldfld Array16`1<NetSegment> NetManager::m_segments
IL_1793: ldfld NetSegment[] Array16`1<NetSegment>::m_buffer
IL_1798: ldloc.s 42 (System.UInt16)
IL_179A: ldelema NetSegment
IL_179F: ldfld Flags NetSegment::m_flags
IL_17A4: ldc.i4.s 16
IL_17A6: and
IL_17A7: ldc.i4.0
IL_17A8: ceq
IL_17AA: ceq
IL_17AC: stloc.s 48 (System.Boolean)
IL_17AE: ldloc.s 47 (System.Boolean)
IL_17B0: ldloc.s 48 (System.Boolean)
IL_17B2: bne.un => Label145
IL_17B7: br => Label146
IL_17BC: Label145
IL_17BC: ldloc.s 47 (System.Boolean)
IL_17BE: brfalse => Label147
IL_17C3: ldloc.s 44 (NetInfo+Node)
IL_17C5: ldfld ConnectGroup Node::m_connectGroup
IL_17CA: ldc.i4 4096
IL_17CF: and
IL_17D0: brtrue => Label148
IL_17D5: br => Label149
IL_17DA: Label148
IL_17DA: br => Label150
IL_17DF: Label147
IL_17DF: ldloc.s 44 (NetInfo+Node)
IL_17E1: ldfld ConnectGroup Node::m_connectGroup
IL_17E6: ldc.i4 8192
IL_17EB: and
IL_17EC: brtrue => Label151
IL_17F1: br => Label152
IL_17F6: Label151
IL_17F6: ldloca.s 46 (UnityEngine.Vector4)
IL_17F8: ldloca.s 46 (UnityEngine.Vector4)
IL_17FA: ldfld System.Single UnityEngine.Vector4::x
IL_17FF: neg
IL_1800: stfld System.Single UnityEngine.Vector4::x
IL_1805: ldloca.s 46 (UnityEngine.Vector4)
IL_1807: ldloca.s 46 (UnityEngine.Vector4)
IL_1809: ldfld System.Single UnityEngine.Vector4::y
IL_180E: neg
IL_180F: stfld System.Single UnityEngine.Vector4::y
IL_1814: Label144
IL_1814: Label150
IL_1814: ldarg.1
IL_1815: ldarg.s 7
IL_1817: ldfld UnityEngine.Vector3 Instance::m_position
IL_181C: ldloc.s 44 (NetInfo+Node)
IL_181E: ldfld System.Single Node::m_lodRenderDistance
IL_1823: callvirt System.Boolean
CameraInfo::CheckRenderDistance(UnityEngine.Vector3 point, System.Single
maxDistance)
IL_1828: brfalse => Label153
IL_182D: ldloc.s 31 (NetManager)
IL_182F: ldfld UnityEngine.MaterialPropertyBlock NetManager::m_materialBlock
IL_1834: callvirt System.Void UnityEngine.MaterialPropertyBlock::Clear()
IL_1839: ldloc.s 31 (NetManager)
IL_183B: ldfld UnityEngine.MaterialPropertyBlock NetManager::m_materialBlock
IL_1840: ldloc.s 31 (NetManager)
IL_1842: ldfld System.Int32 NetManager::ID_LeftMatrix
IL_1847: ldarg.s 7
IL_1849: ldfld UnityEngine.Matrix4x4 Instance::m_dataMatrix0
IL_184E: callvirt System.Void
UnityEngine.MaterialPropertyBlock::SetMatrix(System.Int32 nameID,
UnityEngine.Matrix4x4 value)
IL_1853: ldloc.s 31 (NetManager)
IL_1855: ldfld UnityEngine.MaterialPropertyBlock NetManager::m_materialBlock
IL_185A: ldloc.s 31 (NetManager)
IL_185C: ldfld System.Int32 NetManager::ID_RightMatrix
IL_1861: ldarg.s 7
IL_1863: ldflda RenderInstanceData Instance::m_extraData
IL_1868: ldfld UnityEngine.Matrix4x4 RenderInstanceData::m_dataMatrix2
IL_186D: callvirt System.Void
UnityEngine.MaterialPropertyBlock::SetMatrix(System.Int32 nameID,
UnityEngine.Matrix4x4 value)
IL_1872: ldloc.s 31 (NetManager)
IL_1874: ldfld UnityEngine.MaterialPropertyBlock NetManager::m_materialBlock
IL_1879: ldloc.s 31 (NetManager)
IL_187B: ldfld System.Int32 NetManager::ID_MeshScale
IL_1880: ldloc.s 46 (UnityEngine.Vector4)
IL_1882: callvirt System.Void
UnityEngine.MaterialPropertyBlock::SetVector(System.Int32 nameID,
UnityEngine.Vector4 value)
IL_1887: ldloc.s 31 (NetManager)
IL_1889: ldfld UnityEngine.MaterialPropertyBlock NetManager::m_materialBlock
IL_188E: ldloc.s 31 (NetManager)
IL_1890: ldfld System.Int32 NetManager::ID_ObjectIndex
IL_1895: ldloc.s 45 (UnityEngine.Vector4)
IL_1897: callvirt System.Void
UnityEngine.MaterialPropertyBlock::SetVector(System.Int32 nameID,
UnityEngine.Vector4 value)
IL_189C: ldloc.s 31 (NetManager)
IL_189E: ldfld UnityEngine.MaterialPropertyBlock NetManager::m_materialBlock
IL_18A3: ldloc.s 31 (NetManager)
IL_18A5: ldfld System.Int32 NetManager::ID_Color
IL_18AA: ldarg.s 7
IL_18AC: ldfld UnityEngine.Color Instance::m_dataColor0
IL_18B1: callvirt System.Void
UnityEngine.MaterialPropertyBlock::SetColor(System.Int32 nameID, UnityEngine.Color
value)
IL_18B6: ldloc.s 44 (NetInfo+Node)
IL_18B8: ldfld System.Boolean Node::m_requireSurfaceMaps
IL_18BD: brfalse => Label154
IL_18C2: ldarg.s 7
IL_18C4: ldfld UnityEngine.Texture Instance::m_dataTexture1
IL_18C9: ldnull
IL_18CA: call static System.Boolean
UnityEngine.Object::op_Inequality(UnityEngine.Object x, UnityEngine.Object y)
IL_18CF: brfalse => Label155
IL_18D4: ldloc.s 31 (NetManager)
IL_18D6: ldfld UnityEngine.MaterialPropertyBlock NetManager::m_materialBlock
IL_18DB: ldloc.s 31 (NetManager)
IL_18DD: ldfld System.Int32 NetManager::ID_SurfaceTexA
IL_18E2: ldarg.s 7
IL_18E4: ldfld UnityEngine.Texture Instance::m_dataTexture0
IL_18E9: callvirt System.Void
UnityEngine.MaterialPropertyBlock::SetTexture(System.Int32 nameID,
UnityEngine.Texture value)
IL_18EE: ldloc.s 31 (NetManager)
IL_18F0: ldfld UnityEngine.MaterialPropertyBlock NetManager::m_materialBlock
IL_18F5: ldloc.s 31 (NetManager)
IL_18F7: ldfld System.Int32 NetManager::ID_SurfaceTexB
IL_18FC: ldarg.s 7
IL_18FE: ldfld UnityEngine.Texture Instance::m_dataTexture1
IL_1903: callvirt System.Void
UnityEngine.MaterialPropertyBlock::SetTexture(System.Int32 nameID,
UnityEngine.Texture value)
IL_1908: ldloc.s 31 (NetManager)
IL_190A: ldfld UnityEngine.MaterialPropertyBlock NetManager::m_materialBlock
IL_190F: ldloc.s 31 (NetManager)
IL_1911: ldfld System.Int32 NetManager::ID_SurfaceMapping
IL_1916: ldarg.s 7
IL_1918: ldfld UnityEngine.Vector4 Instance::m_dataVector1
IL_191D: callvirt System.Void
UnityEngine.MaterialPropertyBlock::SetVector(System.Int32 nameID,
UnityEngine.Vector4 value)
IL_1922: Label154
IL_1922: Label155
IL_1922: ldloc.s 31 (NetManager)
IL_1924: ldflda DrawCallData SimulationManagerBase`2<NetManager,
NetProperties>::m_drawCallData
IL_1929: dup
IL_192A: ldfld System.Int32 DrawCallData::m_defaultCalls
IL_192F: ldc.i4.1
IL_1930: add
IL_1931: stfld System.Int32 DrawCallData::m_defaultCalls
IL_1936: ldloc.s 44 (NetInfo+Node)
IL_1938: ldfld UnityEngine.Mesh Node::m_nodeMesh
IL_193D: ldarg.s 7
IL_193F: ldfld UnityEngine.Vector3 Instance::m_position
IL_1944: ldarg.s 7
IL_1946: ldfld UnityEngine.Quaternion Instance::m_rotation
IL_194B: ldloc.s 44 (NetInfo+Node)
IL_194D: ldfld UnityEngine.Material Node::m_nodeMaterial
IL_1952: ldloc.s 44 (NetInfo+Node)
IL_1954: ldfld System.Int32 Node::m_layer
IL_1959: ldnull
IL_195A: ldc.i4.0
IL_195B: ldloc.s 31 (NetManager)
IL_195D: ldfld UnityEngine.MaterialPropertyBlock NetManager::m_materialBlock
IL_1962: call static System.Void
UnityEngine.Graphics::DrawMesh(UnityEngine.Mesh mesh, UnityEngine.Vector3 position,
UnityEngine.Quaternion rotation, UnityEngine.Material material, System.Int32 layer,
UnityEngine.Camera camera, System.Int32 submeshIndex,
UnityEngine.MaterialPropertyBlock properties)
IL_1967: br => Label156
IL_196C: Label153
IL_196C: ldloc.s 44 (NetInfo+Node)
IL_196E: ldfld LodValue Node::m_combinedLod
IL_1973: stloc.s 49 (NetInfo+LodValue)
IL_1975: ldloc.s 49 (NetInfo+LodValue)
IL_1977: brfalse => Label157
IL_197C: ldloc.s 44 (NetInfo+Node)
IL_197E: ldfld System.Boolean Node::m_requireSurfaceMaps
IL_1983: brfalse => Label158
IL_1988: ldarg.s 7
IL_198A: ldfld UnityEngine.Texture Instance::m_dataTexture0
IL_198F: ldloc.s 49 (NetInfo+LodValue)
IL_1991: ldfld UnityEngine.Texture LodValue::m_surfaceTexA
IL_1996: call static System.Boolean
UnityEngine.Object::op_Inequality(UnityEngine.Object x, UnityEngine.Object y)
IL_199B: brfalse => Label159
IL_19A0: ldloc.s 49 (NetInfo+LodValue)
IL_19A2: ldfld System.Int32 LodValue::m_lodCount
IL_19A7: brfalse => Label160
IL_19AC: ldarg.1
IL_19AD: ldloc.s 49 (NetInfo+LodValue)
IL_19AF: call static System.Void NetSegment::RenderLod(CameraInfo cameraInfo,
LodValue lod)
IL_19B4: Label160
IL_19B4: ldloc.s 49 (NetInfo+LodValue)
IL_19B6: ldarg.s 7
IL_19B8: ldfld UnityEngine.Texture Instance::m_dataTexture0
IL_19BD: stfld UnityEngine.Texture LodValue::m_surfaceTexA
IL_19C2: ldloc.s 49 (NetInfo+LodValue)
IL_19C4: ldarg.s 7
IL_19C6: ldfld UnityEngine.Texture Instance::m_dataTexture1
IL_19CB: stfld UnityEngine.Texture LodValue::m_surfaceTexB
IL_19D0: ldloc.s 49 (NetInfo+LodValue)
IL_19D2: ldarg.s 7
IL_19D4: ldfld UnityEngine.Vector4 Instance::m_dataVector1
IL_19D9: stfld UnityEngine.Vector4 LodValue::m_surfaceMapping
IL_19DE: Label158
IL_19DE: Label159
IL_19DE: ldloc.s 49 (NetInfo+LodValue)
IL_19E0: ldfld UnityEngine.Matrix4x4[] LodValue::m_leftMatrices
IL_19E5: ldloc.s 49 (NetInfo+LodValue)
IL_19E7: ldfld System.Int32 LodValue::m_lodCount
IL_19EC: ldelema UnityEngine.Matrix4x4
IL_19F1: ldarg.s 7
IL_19F3: ldfld UnityEngine.Matrix4x4 Instance::m_dataMatrix0
IL_19F8: stobj UnityEngine.Matrix4x4
IL_19FD: ldloc.s 49 (NetInfo+LodValue)
IL_19FF: ldfld UnityEngine.Matrix4x4[] LodValue::m_rightMatrices
IL_1A04: ldloc.s 49 (NetInfo+LodValue)
IL_1A06: ldfld System.Int32 LodValue::m_lodCount
IL_1A0B: ldelema UnityEngine.Matrix4x4
IL_1A10: ldarg.s 7
IL_1A12: ldflda RenderInstanceData Instance::m_extraData
IL_1A17: ldfld UnityEngine.Matrix4x4 RenderInstanceData::m_dataMatrix2
IL_1A1C: stobj UnityEngine.Matrix4x4
IL_1A21: ldloc.s 49 (NetInfo+LodValue)
IL_1A23: ldfld UnityEngine.Vector4[] LodValue::m_meshScales
IL_1A28: ldloc.s 49 (NetInfo+LodValue)
IL_1A2A: ldfld System.Int32 LodValue::m_lodCount
IL_1A2F: ldelema UnityEngine.Vector4
IL_1A34: ldloc.s 46 (UnityEngine.Vector4)
IL_1A36: stobj UnityEngine.Vector4
IL_1A3B: ldloc.s 49 (NetInfo+LodValue)
IL_1A3D: ldfld UnityEngine.Vector4[] LodValue::m_objectIndices
IL_1A42: ldloc.s 49 (NetInfo+LodValue)
IL_1A44: ldfld System.Int32 LodValue::m_lodCount
IL_1A49: ldelema UnityEngine.Vector4
IL_1A4E: ldloc.s 45 (UnityEngine.Vector4)
IL_1A50: stobj UnityEngine.Vector4
IL_1A55: ldloc.s 49 (NetInfo+LodValue)
IL_1A57: ldfld UnityEngine.Vector4[] LodValue::m_meshLocations
IL_1A5C: ldloc.s 49 (NetInfo+LodValue)
IL_1A5E: ldfld System.Int32 LodValue::m_lodCount
IL_1A63: ldelema UnityEngine.Vector4
IL_1A68: ldarg.s 7
IL_1A6A: ldfld UnityEngine.Vector3 Instance::m_position
IL_1A6F: call static UnityEngine.Vector4
UnityEngine.Vector4::op_Implicit(UnityEngine.Vector3 v)
IL_1A74: stobj UnityEngine.Vector4
IL_1A79: ldloc.s 49 (NetInfo+LodValue)
IL_1A7B: ldloc.s 49 (NetInfo+LodValue)
IL_1A7D: ldfld UnityEngine.Vector3 LodValue::m_lodMin
IL_1A82: ldarg.s 7
IL_1A84: ldfld UnityEngine.Vector3 Instance::m_position
IL_1A89: call static UnityEngine.Vector3
UnityEngine.Vector3::Min(UnityEngine.Vector3 lhs, UnityEngine.Vector3 rhs)
IL_1A8E: stfld UnityEngine.Vector3 LodValue::m_lodMin
IL_1A93: ldloc.s 49 (NetInfo+LodValue)
IL_1A95: ldloc.s 49 (NetInfo+LodValue)
IL_1A97: ldfld UnityEngine.Vector3 LodValue::m_lodMax
IL_1A9C: ldarg.s 7
IL_1A9E: ldfld UnityEngine.Vector3 Instance::m_position
IL_1AA3: call static UnityEngine.Vector3
UnityEngine.Vector3::Max(UnityEngine.Vector3 lhs, UnityEngine.Vector3 rhs)
IL_1AA8: stfld UnityEngine.Vector3 LodValue::m_lodMax
IL_1AAD: ldloc.s 49 (NetInfo+LodValue)
IL_1AAF: dup
IL_1AB0: ldfld System.Int32 LodValue::m_lodCount
IL_1AB5: ldc.i4.1
IL_1AB6: add
IL_1AB7: dup
IL_1AB8: stloc.s 12 (System.Int32)
IL_1ABA: stfld System.Int32 LodValue::m_lodCount
IL_1ABF: ldloc.s 12 (System.Int32)
IL_1AC1: ldloc.s 49 (NetInfo+LodValue)
IL_1AC3: ldfld UnityEngine.Matrix4x4[] LodValue::m_leftMatrices
IL_1AC8: ldlen
IL_1AC9: conv.i4
IL_1ACA: bne.un => Label161
IL_1ACF: ldarg.1
IL_1AD0: ldloc.s 49 (NetInfo+LodValue)
IL_1AD2: call static System.Void NetSegment::RenderLod(CameraInfo cameraInfo,
LodValue lod)
IL_1AD7: Label139
IL_1AD7: Label140
IL_1AD7: Label142
IL_1AD7: Label146
IL_1AD7: Label149
IL_1AD7: Label152
IL_1AD7: Label156
IL_1AD7: Label157
IL_1AD7: Label161
IL_1AD7: ldloc.s 40 (System.Int32)
IL_1AD9: ldc.i4.1
IL_1ADA: add
IL_1ADB: stloc.s 40 (System.Int32)
IL_1ADD: Label130
IL_1ADD: ldloc.s 40 (System.Int32)
IL_1ADF: ldarg.3
IL_1AE0: ldfld Node[] NetInfo::m_nodes
IL_1AE5: ldlen
IL_1AE6: conv.i4
IL_1AE7: blt => Label162
IL_1AEC: Label7
IL_1AEC: Label88
IL_1AEC: Label111
IL_1AEC: Label112
IL_1AEC: ldarg.s 6
IL_1AEE: ldarg.s 7
IL_1AF0: ldfld System.UInt16 Instance::m_nextInstance
IL_1AF5: stind.i4
IL_1AF6: // end original
IL_1AF6: ldarg 1
IL_1AFA: ldarg 2
IL_1AFE: ldarg 7
IL_1B02: call static System.Void
NodeMarkup.Manager.MarkupManager::NetNodeRenderInstancePostfix(CameraInfo
cameraInfo, System.UInt16 nodeID, Instance& data)
IL_1B07: ret
DONE

### Harmony id=NodeMarkup, version=2.0.4.0, location=E:\SteamLibrary\steamapps\


common\data-0000000022595390, env/clr=2.0.50727.1433, platform=Win32NT,
ptrsize:runtime/env=8/Bits64, Windows
### Started from System.Object ModsCommon.BasePatcherMod`1<TypeMod>::get_Harmony(),
location E:\SteamLibrary\steamapps\common\data-0000000023EF7040
### At 2023-02-07 02.24.36
### Patch: System.Void NetNode::CheckHeightOffset(System.UInt16 nodeID)
### Replacement: static System.Void
NetNode::NetNode.CheckHeightOffset_Patch0(NetNode& this, System.UInt16 nodeID)
IL_0000: Local var 0: NetManager
IL_0000: Local var 1: NetInfo
IL_0000: Local var 2: System.Boolean
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.UInt16
IL_0000: Local var 7: UnityEngine.Vector3
IL_0000: Local var 8: UnityEngine.Vector3
IL_0000: Local var 9: System.Byte
IL_0000: Local var 10: BuildingInfo
IL_0000: Local var 11: System.Single
IL_0000: Local var 12: System.Int32
IL_0000: Local var 13: System.UInt16
IL_0000: // start original
IL_0000: call static NetManager
ColossalFramework.Singleton`1<NetManager>::get_instance()
IL_0005: stloc.0
IL_0006: ldarg.0
IL_0007: call NetInfo NetNode::get_Info()
IL_000C: stloc.1
IL_000D: ldloc.1
IL_000E: brtrue => Label0
IL_0013: ldarg.1
IL_0014: call static System.Void
NodeMarkup.Manager.MarkupManager::UpdateNode(System.UInt16 nodeId)
IL_0019: br => Label17
IL_001E: Label0
IL_001E: call static TerrainManager
ColossalFramework.Singleton`1<TerrainManager>::get_instance()
IL_0023: ldarg.0
IL_0024: ldfld UnityEngine.Vector3 NetNode::m_position
IL_0029: callvirt System.Boolean
TerrainManager::HasDetailMapping(UnityEngine.Vector3 worldPos)
IL_002E: stloc.2
IL_002F: ldc.i4.0
IL_0030: stloc.3
IL_0031: br => Label1
IL_0036: Label9
IL_0036: ldarg.0
IL_0037: ldloc.3
IL_0038: call System.UInt16 NetNode::GetSegment(System.Int32 index)
IL_003D: stloc.s 4 (System.UInt16)
IL_003F: ldloc.s 4 (System.UInt16)
IL_0041: brfalse => Label2
IL_0046: ldloc.0
IL_0047: ldfld Array16`1<NetSegment> NetManager::m_segments
IL_004C: ldfld NetSegment[] Array16`1<NetSegment>::m_buffer
IL_0051: ldloc.s 4 (System.UInt16)
IL_0053: ldelema NetSegment
IL_0058: ldfld System.UInt16 NetSegment::m_startNode
IL_005D: stloc.s 5 (System.UInt16)
IL_005F: ldloc.0
IL_0060: ldfld Array16`1<NetSegment> NetManager::m_segments
IL_0065: ldfld NetSegment[] Array16`1<NetSegment>::m_buffer
IL_006A: ldloc.s 4 (System.UInt16)
IL_006C: ldelema NetSegment
IL_0071: ldfld System.UInt16 NetSegment::m_endNode
IL_0076: stloc.s 6 (System.UInt16)
IL_0078: ldloc.s 5 (System.UInt16)
IL_007A: ldarg.1
IL_007B: bne.un => Label3
IL_0080: ldloc.0
IL_0081: ldfld Array16`1<NetNode> NetManager::m_nodes
IL_0086: ldfld NetNode[] Array16`1<NetNode>::m_buffer
IL_008B: ldloc.s 6 (System.UInt16)
IL_008D: ldelema NetNode
IL_0092: ldfld UnityEngine.Vector3 NetNode::m_position
IL_0097: stloc.s 7 (UnityEngine.Vector3)
IL_0099: ldloc.2
IL_009A: brfalse => Label4
IL_009F: call static TerrainManager
ColossalFramework.Singleton`1<TerrainManager>::get_instance()
IL_00A4: ldloc.s 7 (UnityEngine.Vector3)
IL_00A6: callvirt System.Boolean
TerrainManager::HasDetailMapping(UnityEngine.Vector3 worldPos)
IL_00AB: br => Label5
IL_00B0: Label4
IL_00B0: ldc.i4.0
IL_00B1: Label5
IL_00B1: stloc.2
IL_00B2: br => Label6
IL_00B7: Label3
IL_00B7: ldloc.0
IL_00B8: ldfld Array16`1<NetNode> NetManager::m_nodes
IL_00BD: ldfld NetNode[] Array16`1<NetNode>::m_buffer
IL_00C2: ldloc.s 5 (System.UInt16)
IL_00C4: ldelema NetNode
IL_00C9: ldfld UnityEngine.Vector3 NetNode::m_position
IL_00CE: stloc.s 8 (UnityEngine.Vector3)
IL_00D0: ldloc.2
IL_00D1: brfalse => Label7
IL_00D6: call static TerrainManager
ColossalFramework.Singleton`1<TerrainManager>::get_instance()
IL_00DB: ldloc.s 8 (UnityEngine.Vector3)
IL_00DD: callvirt System.Boolean
TerrainManager::HasDetailMapping(UnityEngine.Vector3 worldPos)
IL_00E2: br => Label8
IL_00E7: Label7
IL_00E7: ldc.i4.0
IL_00E8: Label8
IL_00E8: stloc.2
IL_00E9: Label2
IL_00E9: Label6
IL_00E9: ldloc.3
IL_00EA: ldc.i4.1
IL_00EB: add
IL_00EC: stloc.3
IL_00ED: Label1
IL_00ED: ldloc.3
IL_00EE: ldc.i4.8
IL_00EF: blt => Label9
IL_00F4: ldloc.2
IL_00F5: brtrue => Label10
IL_00FA: ldloc.1
IL_00FB: ldfld System.Boolean NetInfo::m_requireSurfaceMaps
IL_0100: brtrue => Label11
IL_0105: Label10
IL_0105: ldc.i4.0
IL_0106: br => Label12
IL_010B: Label11
IL_010B: ldc.i4.s 64
IL_010D: Label12
IL_010D: conv.u1
IL_010E: stloc.s 9 (System.Byte)
IL_0110: ldloc.s 9 (System.Byte)
IL_0112: ldarg.0
IL_0113: ldfld System.Byte NetNode::m_heightOffset
IL_0118: beq => Label13
IL_011D: ldarg.0
IL_011E: ldloc.s 9 (System.Byte)
IL_0120: stfld System.Byte NetNode::m_heightOffset
IL_0125: ldloc.1
IL_0126: ldfld NetAI NetInfo::m_netAI
IL_012B: ldarg.1
IL_012C: ldarg.0
IL_012D: ldloca.s 10 (BuildingInfo)
IL_012F: ldloca.s 11 (System.Single)
IL_0131: callvirt virtual System.Void NetAI::GetNodeBuilding(System.UInt16
nodeID, NetNode& data, BuildingInfo& building, System.Single& heightOffset)
IL_0136: ldarg.0
IL_0137: ldarg.1
IL_0138: ldloc.s 10 (BuildingInfo)
IL_013A: ldloc.s 11 (System.Single)
IL_013C: call System.Void NetNode::UpdateBuilding(System.UInt16 nodeID,
BuildingInfo newBuilding, System.Single heightOffset)
IL_0141: ldloc.0
IL_0142: ldarg.1
IL_0143: callvirt System.Void NetManager::UpdateNodeFlags(System.UInt16 node)
IL_0148: ldloc.0
IL_0149: ldarg.1
IL_014A: ldc.i4.1
IL_014B: callvirt System.Void NetManager::UpdateNodeRenderer(System.UInt16 node,
System.Boolean updateGroup)
IL_0150: ldc.i4.0
IL_0151: stloc.s 12 (System.Int32)
IL_0153: br => Label14
IL_0158: Label16
IL_0158: ldarg.0
IL_0159: ldloc.s 12 (System.Int32)
IL_015B: call System.UInt16 NetNode::GetSegment(System.Int32 index)
IL_0160: stloc.s 13 (System.UInt16)
IL_0162: ldloc.s 13 (System.UInt16)
IL_0164: brfalse => Label15
IL_0169: ldloc.0
IL_016A: ldfld Array16`1<NetSegment> NetManager::m_segments
IL_016F: ldfld NetSegment[] Array16`1<NetSegment>::m_buffer
IL_0174: ldloc.s 13 (System.UInt16)
IL_0176: ldelema NetSegment
IL_017B: ldloc.s 13 (System.UInt16)
IL_017D: ldc.i4.0
IL_017E: call System.Void NetSegment::UpdateLanes(System.UInt16 segmentID,
System.Boolean loading)
IL_0183: ldloc.s 13
IL_0185: call static System.Void
NodeMarkup.Manager.MarkupManager::UpdateSegment(System.UInt16 segmentId)
IL_018A: ldloc.0
IL_018B: ldloc.s 13 (System.UInt16)
IL_018D: callvirt System.Void NetManager::UpdateSegmentFlags(System.UInt16
segment)
IL_0192: ldloc.0
IL_0193: ldloc.s 13 (System.UInt16)
IL_0195: ldc.i4.1
IL_0196: callvirt System.Void NetManager::UpdateSegmentRenderer(System.UInt16
segment, System.Boolean updateGroup)
IL_019B: Label15
IL_019B: ldloc.s 12 (System.Int32)
IL_019D: ldc.i4.1
IL_019E: add
IL_019F: stloc.s 12 (System.Int32)
IL_01A1: Label14
IL_01A1: ldloc.s 12 (System.Int32)
IL_01A3: ldc.i4.8
IL_01A4: blt => Label16
IL_01A9: ldarg.1
IL_01AA: call static System.Void
NodeMarkup.Manager.MarkupManager::UpdateNode(System.UInt16 nodeId)
IL_01AF: // end original
IL_01AF: Label13
IL_01AF: Label17
IL_01AF: ret
DONE

### Harmony id=NodeMarkup, version=2.0.4.0, location=E:\SteamLibrary\steamapps\


common\data-0000000022595390, env/clr=2.0.50727.1433, platform=Win32NT,
ptrsize:runtime/env=8/Bits64, Windows
### Started from System.Object ModsCommon.BasePatcherMod`1<TypeMod>::get_Harmony(),
location E:\SteamLibrary\steamapps\common\data-0000000023EF7040
### At 2023-02-07 02.24.36
### Patch: System.Void NetSegment::RenderInstance(CameraInfo cameraInfo,
System.UInt16 segmentID, System.Int32 layerMask, NetInfo info, Instance& data)
### Replacement: static System.Void
NetSegment::NetSegment.RenderInstance_Patch1(NetSegment& this, CameraInfo
cameraInfo, System.UInt16 segmentID, System.Int32 layerMask, NetInfo info,
Instance& data)
IL_0000: Local var 0: NetManager
IL_0000: Local var 1: UnityEngine.Vector3
IL_0000: Local var 2: UnityEngine.Vector3
IL_0000: Local var 3: UnityEngine.Vector4
IL_0000: Local var 4: UnityEngine.Vector4
IL_0000: Local var 5: NetNode/FlagsLong
IL_0000: Local var 6: NetNode/FlagsLong
IL_0000: Local var 7: UnityEngine.Color
IL_0000: Local var 8: UnityEngine.Color
IL_0000: Local var 9: System.Boolean
IL_0000: Local var 10: NetInfo
IL_0000: Local var 11: NetInfo
IL_0000: Local var 12: NetInfo
IL_0000: Local var 13: NetInfo
IL_0000: Local var 14: System.Single
IL_0000: Local var 15: System.Single
IL_0000: Local var 16: System.Int32
IL_0000: Local var 17: System.UInt32
IL_0000: Local var 18: System.Int32
IL_0000: Local var 19: System.Single
IL_0000: Local var 20: UnityEngine.Vector3
IL_0000: Local var 21: UnityEngine.Vector3
IL_0000: Local var 22: UnityEngine.Vector3
IL_0000: Local var 23: UnityEngine.Vector3
IL_0000: Local var 24: UnityEngine.Vector3
IL_0000: Local var 25: UnityEngine.Vector3
IL_0000: Local var 26: UnityEngine.Vector3
IL_0000: Local var 27: UnityEngine.Vector3
IL_0000: Local var 28: System.Boolean
IL_0000: Local var 29: System.Boolean
IL_0000: Local var 30: UnityEngine.Vector3
IL_0000: Local var 31: UnityEngine.Vector3
IL_0000: Local var 32: UnityEngine.Vector3
IL_0000: Local var 33: UnityEngine.Vector3
IL_0000: Local var 34: System.String
IL_0000: Local var 35: ColossalFramework.UI.UIFont
IL_0000: Local var 36: System.Single
IL_0000: Local var 37: UnityEngine.Vector3
IL_0000: Local var 38: UnityEngine.Vector3
IL_0000: Local var 39: System.Int32
IL_0000: Local var 40: NetInfo/Segment
IL_0000: Local var 41: System.Boolean
IL_0000: Local var 42: UnityEngine.Vector4
IL_0000: Local var 43: UnityEngine.Vector4
IL_0000: Local var 44: NetInfo/LodValue
IL_0000: Local var 45: System.Int32
IL_0000: Local var 46: NetNode/FlagsLong
IL_0000: Local var 47: NetNode/FlagsLong
IL_0000: Local var 48: UnityEngine.Color
IL_0000: Local var 49: UnityEngine.Color
IL_0000: Local var 50: System.Boolean
IL_0000: Local var 51: NetInfo
IL_0000: Local var 52: NetInfo
IL_0000: Local var 53: NetInfo
IL_0000: Local var 54: NetInfo
IL_0000: Local var 55: System.Single
IL_0000: Local var 56: System.Single
IL_0000: Local var 57: UnityEngine.Vector4
IL_0000: Local var 58: UnityEngine.Vector4
IL_0000: Local var 59: InfoManager/InfoMode
IL_0000: Local var 60: System.Int32
IL_0000: Local var 61: System.UInt32
IL_0000: Local var 62: System.Int32
IL_0000: Local var 63: System.Int32
IL_0000: // start original
IL_0000: call static NetManager
ColossalFramework.Singleton`1<NetManager>::get_instance()
IL_0005: stloc.0
IL_0006: ldarg.s 5
IL_0008: ldfld System.Boolean Instance::m_dirty
IL_000D: brfalse => Label0
IL_0012: ldarg.s 5
IL_0014: ldc.i4.0
IL_0015: stfld System.Boolean Instance::m_dirty
IL_001A: ldloc.0
IL_001B: ldfld Array16`1<NetNode> NetManager::m_nodes
IL_0020: ldfld NetNode[] Array16`1<NetNode>::m_buffer
IL_0025: ldarg.0
IL_0026: ldfld System.UInt16 NetSegment::m_startNode
IL_002B: ldelema NetNode
IL_0030: ldfld UnityEngine.Vector3 NetNode::m_position
IL_0035: stloc.1
IL_0036: ldloc.0
IL_0037: ldfld Array16`1<NetNode> NetManager::m_nodes
IL_003C: ldfld NetNode[] Array16`1<NetNode>::m_buffer
IL_0041: ldarg.0
IL_0042: ldfld System.UInt16 NetSegment::m_endNode
IL_0047: ldelema NetNode
IL_004C: ldfld UnityEngine.Vector3 NetNode::m_position
IL_0051: stloc.2
IL_0052: ldarg.s 5
IL_0054: ldloc.1
IL_0055: ldloc.2
IL_0056: call static UnityEngine.Vector3
UnityEngine.Vector3::op_Addition(UnityEngine.Vector3 a, UnityEngine.Vector3 b)
IL_005B: ldc.r4 0.5
IL_0060: call static UnityEngine.Vector3
UnityEngine.Vector3::op_Multiply(UnityEngine.Vector3 a, System.Single d)
IL_0065: stfld UnityEngine.Vector3 Instance::m_position
IL_006A: ldarg.s 5
IL_006C: call static UnityEngine.Quaternion
UnityEngine.Quaternion::get_identity()
IL_0071: stfld UnityEngine.Quaternion Instance::m_rotation
IL_0076: ldarg.s 5
IL_0078: ldarg.s 4
IL_007A: ldfld UnityEngine.Color NetInfo::m_color
IL_007F: stfld UnityEngine.Color Instance::m_dataColor0
IL_0084: ldarg.s 5
IL_0086: ldflda UnityEngine.Color Instance::m_dataColor0
IL_008B: ldc.r4 0
IL_0090: stfld System.Single UnityEngine.Color::a
IL_0095: ldarg.s 5
IL_0097: call static WeatherManager
ColossalFramework.Singleton`1<WeatherManager>::get_instance()
IL_009C: ldarg.s 5
IL_009E: ldfld UnityEngine.Vector3 Instance::m_position
IL_00A3: callvirt System.Single WeatherManager::GetWindSpeed(UnityEngine.Vector3
pos)
IL_00A8: stfld System.Single Instance::m_dataFloat0
IL_00AD: ldarg.s 5
IL_00AF: ldc.r4 0.5
IL_00B4: ldarg.s 4
IL_00B6: ldfld System.Single NetInfo::m_halfWidth
IL_00BB: div
IL_00BC: ldc.r4 1
IL_00C1: ldarg.s 4
IL_00C3: ldfld System.Single NetInfo::m_segmentLength
IL_00C8: div
IL_00C9: ldc.r4 1
IL_00CE: ldc.r4 1
IL_00D3: newobj System.Void UnityEngine.Vector4::.ctor(System.Single x,
System.Single y, System.Single z, System.Single w)
IL_00D8: stfld UnityEngine.Vector4 Instance::m_dataVector0
IL_00DD: ldc.i4 49152
IL_00E2: ldarg.2
IL_00E3: add
IL_00E4: call static UnityEngine.Vector4
RenderManager::GetColorLocation(System.UInt32 instanceHolder)
IL_00E9: stloc.3
IL_00EA: ldloc.3
IL_00EB: stloc.s 4 (UnityEngine.Vector4)
IL_00ED: ldarg.0
IL_00EE: ldfld System.UInt16 NetSegment::m_startNode
IL_00F3: call static System.Boolean NetNode::BlendJunction(System.UInt16
nodeID)
IL_00F8: brfalse => Label1
IL_00FD: ldc.i4 86016
IL_0102: ldarg.0
IL_0103: ldfld System.UInt16 NetSegment::m_startNode
IL_0108: add
IL_0109: call static UnityEngine.Vector4
RenderManager::GetColorLocation(System.UInt32 instanceHolder)
IL_010E: stloc.3
IL_010F: Label1
IL_010F: ldarg.0
IL_0110: ldfld System.UInt16 NetSegment::m_endNode
IL_0115: call static System.Boolean NetNode::BlendJunction(System.UInt16
nodeID)
IL_011A: brfalse => Label2
IL_011F: ldc.i4 86016
IL_0124: ldarg.0
IL_0125: ldfld System.UInt16 NetSegment::m_endNode
IL_012A: add
IL_012B: call static UnityEngine.Vector4
RenderManager::GetColorLocation(System.UInt32 instanceHolder)
IL_0130: stloc.s 4 (UnityEngine.Vector4)
IL_0132: Label2
IL_0132: ldarg.s 5
IL_0134: ldloca.s 3 (UnityEngine.Vector4)
IL_0136: ldfld System.Single UnityEngine.Vector4::x
IL_013B: ldloca.s 3 (UnityEngine.Vector4)
IL_013D: ldfld System.Single UnityEngine.Vector4::y
IL_0142: ldloca.s 4 (UnityEngine.Vector4)
IL_0144: ldfld System.Single UnityEngine.Vector4::x
IL_0149: ldloca.s 4 (UnityEngine.Vector4)
IL_014B: ldfld System.Single UnityEngine.Vector4::y
IL_0150: newobj System.Void UnityEngine.Vector4::.ctor(System.Single x,
System.Single y, System.Single z, System.Single w)
IL_0155: stfld UnityEngine.Vector4 Instance::m_dataVector3
IL_015A: ldarg.s 4
IL_015C: ldfld Segment[] NetInfo::m_segments
IL_0161: brfalse => Label3
IL_0166: ldarg.s 4
IL_0168: ldfld Segment[] NetInfo::m_segments
IL_016D: ldlen
IL_016E: conv.i4
IL_016F: brtrue => Label4
IL_0174: Label3
IL_0174: ldarg.s 4
IL_0176: ldfld Lane[] NetInfo::m_lanes
IL_017B: brfalse => Label5
IL_0180: ldarg.0
IL_0181: ldfld Flags NetSegment::m_flags
IL_0186: ldc.i4.s 16
IL_0188: and
IL_0189: brfalse => Label6
IL_018E: ldc.i4.1
IL_018F: stloc.s 9 (System.Boolean)
IL_0191: ldloc.0
IL_0192: ldfld Array16`1<NetNode> NetManager::m_nodes
IL_0197: ldfld NetNode[] Array16`1<NetNode>::m_buffer
IL_019C: ldarg.0
IL_019D: ldfld System.UInt16 NetSegment::m_endNode
IL_01A2: ldelema NetNode
IL_01A7: call NetInfo NetNode::get_Info()
IL_01AC: stloc.s 10 (NetInfo)
IL_01AE: ldloc.s 10 (NetInfo)
IL_01B0: ldfld NetAI NetInfo::m_netAI
IL_01B5: ldarg.0
IL_01B6: ldfld System.UInt16 NetSegment::m_endNode
IL_01BB: ldloc.0
IL_01BC: ldfld Array16`1<NetNode> NetManager::m_nodes
IL_01C1: ldfld NetNode[] Array16`1<NetNode>::m_buffer
IL_01C6: ldarg.0
IL_01C7: ldfld System.UInt16 NetSegment::m_endNode
IL_01CC: ldelema NetNode
IL_01D1: ldarg.2
IL_01D2: ldarg.0
IL_01D3: ldloca.s 5 (NetNode+FlagsLong)
IL_01D5: ldloca.s 7 (UnityEngine.Color)
IL_01D7: callvirt virtual System.Void NetAI::GetNodeState(System.UInt16 nodeID,
NetNode& nodeData, System.UInt16 segmentID, NetSegment& segmentData, FlagsLong&
flags, UnityEngine.Color& color)
IL_01DC: ldloc.0
IL_01DD: ldfld Array16`1<NetNode> NetManager::m_nodes
IL_01E2: ldfld NetNode[] Array16`1<NetNode>::m_buffer
IL_01E7: ldarg.0
IL_01E8: ldfld System.UInt16 NetSegment::m_startNode
IL_01ED: ldelema NetNode
IL_01F2: call NetInfo NetNode::get_Info()
IL_01F7: stloc.s 11 (NetInfo)
IL_01F9: ldloc.s 11 (NetInfo)
IL_01FB: ldfld NetAI NetInfo::m_netAI
IL_0200: ldarg.0
IL_0201: ldfld System.UInt16 NetSegment::m_startNode
IL_0206: ldloc.0
IL_0207: ldfld Array16`1<NetNode> NetManager::m_nodes
IL_020C: ldfld NetNode[] Array16`1<NetNode>::m_buffer
IL_0211: ldarg.0
IL_0212: ldfld System.UInt16 NetSegment::m_startNode
IL_0217: ldelema NetNode
IL_021C: ldarg.2
IL_021D: ldarg.0
IL_021E: ldloca.s 6 (NetNode+FlagsLong)
IL_0220: ldloca.s 8 (UnityEngine.Color)
IL_0222: callvirt virtual System.Void NetAI::GetNodeState(System.UInt16 nodeID,
NetNode& nodeData, System.UInt16 segmentID, NetSegment& segmentData, FlagsLong&
flags, UnityEngine.Color& color)
IL_0227: br => Label7
IL_022C: Label6
IL_022C: ldc.i4.0
IL_022D: stloc.s 9 (System.Boolean)
IL_022F: ldloc.0
IL_0230: ldfld Array16`1<NetNode> NetManager::m_nodes
IL_0235: ldfld NetNode[] Array16`1<NetNode>::m_buffer
IL_023A: ldarg.0
IL_023B: ldfld System.UInt16 NetSegment::m_startNode
IL_0240: ldelema NetNode
IL_0245: call NetInfo NetNode::get_Info()
IL_024A: stloc.s 12 (NetInfo)
IL_024C: ldloc.s 12 (NetInfo)
IL_024E: ldfld NetAI NetInfo::m_netAI
IL_0253: ldarg.0
IL_0254: ldfld System.UInt16 NetSegment::m_startNode
IL_0259: ldloc.0
IL_025A: ldfld Array16`1<NetNode> NetManager::m_nodes
IL_025F: ldfld NetNode[] Array16`1<NetNode>::m_buffer
IL_0264: ldarg.0
IL_0265: ldfld System.UInt16 NetSegment::m_startNode
IL_026A: ldelema NetNode
IL_026F: ldarg.2
IL_0270: ldarg.0
IL_0271: ldloca.s 5 (NetNode+FlagsLong)
IL_0273: ldloca.s 7 (UnityEngine.Color)
IL_0275: callvirt virtual System.Void NetAI::GetNodeState(System.UInt16 nodeID,
NetNode& nodeData, System.UInt16 segmentID, NetSegment& segmentData, FlagsLong&
flags, UnityEngine.Color& color)
IL_027A: ldloc.0
IL_027B: ldfld Array16`1<NetNode> NetManager::m_nodes
IL_0280: ldfld NetNode[] Array16`1<NetNode>::m_buffer
IL_0285: ldarg.0
IL_0286: ldfld System.UInt16 NetSegment::m_endNode
IL_028B: ldelema NetNode
IL_0290: call NetInfo NetNode::get_Info()
IL_0295: stloc.s 13 (NetInfo)
IL_0297: ldloc.s 13 (NetInfo)
IL_0299: ldfld NetAI NetInfo::m_netAI
IL_029E: ldarg.0
IL_029F: ldfld System.UInt16 NetSegment::m_endNode
IL_02A4: ldloc.0
IL_02A5: ldfld Array16`1<NetNode> NetManager::m_nodes
IL_02AA: ldfld NetNode[] Array16`1<NetNode>::m_buffer
IL_02AF: ldarg.0
IL_02B0: ldfld System.UInt16 NetSegment::m_endNode
IL_02B5: ldelema NetNode
IL_02BA: ldarg.2
IL_02BB: ldarg.0
IL_02BC: ldloca.s 6 (NetNode+FlagsLong)
IL_02BE: ldloca.s 8 (UnityEngine.Color)
IL_02C0: callvirt virtual System.Void NetAI::GetNodeState(System.UInt16 nodeID,
NetNode& nodeData, System.UInt16 segmentID, NetSegment& segmentData, FlagsLong&
flags, UnityEngine.Color& color)
IL_02C5: Label7
IL_02C5: ldarg.0
IL_02C6: ldfld System.Byte NetSegment::m_cornerAngleStart
IL_02CB: conv.r4
IL_02CC: ldc.r4 0.02454369
IL_02D1: mul
IL_02D2: stloc.s 14 (System.Single)
IL_02D4: ldarg.0
IL_02D5: ldfld System.Byte NetSegment::m_cornerAngleEnd
IL_02DA: conv.r4
IL_02DB: ldc.r4 0.02454369
IL_02E0: mul
IL_02E1: stloc.s 15 (System.Single)
IL_02E3: ldc.i4.0
IL_02E4: stloc.s 16 (System.Int32)
IL_02E6: ldarg.0
IL_02E7: ldfld System.UInt32 NetSegment::m_lanes
IL_02EC: stloc.s 17 (System.UInt32)
IL_02EE: ldc.i4.0
IL_02EF: stloc.s 18 (System.Int32)
IL_02F1: br => Label8
IL_02F6: Label10
IL_02F6: ldloc.0
IL_02F7: ldfld Array32`1<NetLane> NetManager::m_lanes
IL_02FC: ldfld NetLane[] Array32`1<NetLane>::m_buffer
IL_0301: ldloc.s 17 (System.UInt32)
IL_0303: conv.u
IL_0304: ldelema NetLane
IL_0309: ldarg.2
IL_030A: ldloc.s 17 (System.UInt32)
IL_030C: ldarg.s 4
IL_030E: ldfld Lane[] NetInfo::m_lanes
IL_0313: ldloc.s 18 (System.Int32)
IL_0315: ldelem.ref
IL_0316: ldloc.s 14 (System.Single)
IL_0318: ldloc.s 15 (System.Single)
IL_031A: ldloc.s 9 (System.Boolean)
IL_031C: ldarg.s 5
IL_031E: ldloca.s 16 (System.Int32)
IL_0320: call System.Void NetLane::RefreshInstance(System.UInt16 segmentID,
System.UInt32 laneID, Lane laneInfo, System.Single startAngle, System.Single
endAngle, System.Boolean invert, Instance& data, System.Int32& propIndex)
IL_0325: ldloc.0
IL_0326: ldfld Array32`1<NetLane> NetManager::m_lanes
IL_032B: ldfld NetLane[] Array32`1<NetLane>::m_buffer
IL_0330: ldloc.s 17 (System.UInt32)
IL_0332: conv.u
IL_0333: ldelema NetLane
IL_0338: ldfld System.UInt32 NetLane::m_nextLane
IL_033D: stloc.s 17 (System.UInt32)
IL_033F: ldloc.s 18 (System.Int32)
IL_0341: ldc.i4.1
IL_0342: add
IL_0343: stloc.s 18 (System.Int32)
IL_0345: Label8
IL_0345: ldloc.s 18 (System.Int32)
IL_0347: ldarg.s 4
IL_0349: ldfld Lane[] NetInfo::m_lanes
IL_034E: ldlen
IL_034F: conv.i4
IL_0350: bge => Label9
IL_0355: ldloc.s 17 (System.UInt32)
IL_0357: brtrue => Label10
IL_035C: Label5
IL_035C: Label9
IL_035C: br => Label11
IL_0361: Label4
IL_0361: ldarg.s 4
IL_0363: ldfld NetAI NetInfo::m_netAI
IL_0368: callvirt virtual System.Single NetAI::GetVScale()
IL_036D: stloc.s 19 (System.Single)
IL_036F: ldarg.0
IL_0370: ldarg.2
IL_0371: ldc.i4.1
IL_0372: ldc.i4.1
IL_0373: ldc.i4.1
IL_0374: ldloca.s 20 (UnityEngine.Vector3)
IL_0376: ldloca.s 24 (UnityEngine.Vector3)
IL_0378: ldloca.s 28 (System.Boolean)
IL_037A: 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_037F: ldarg.0
IL_0380: ldarg.2
IL_0381: ldc.i4.1
IL_0382: ldc.i4.0
IL_0383: ldc.i4.1
IL_0384: ldloca.s 23 (UnityEngine.Vector3)
IL_0386: ldloca.s 27 (UnityEngine.Vector3)
IL_0388: ldloca.s 29 (System.Boolean)
IL_038A: 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_038F: ldarg.0
IL_0390: ldarg.2
IL_0391: ldc.i4.1
IL_0392: ldc.i4.1
IL_0393: ldc.i4.0
IL_0394: ldloca.s 21 (UnityEngine.Vector3)
IL_0396: ldloca.s 25 (UnityEngine.Vector3)
IL_0398: ldloca.s 28 (System.Boolean)
IL_039A: 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_039F: ldarg.0
IL_03A0: ldarg.2
IL_03A1: ldc.i4.1
IL_03A2: ldc.i4.0
IL_03A3: ldc.i4.0
IL_03A4: ldloca.s 22 (UnityEngine.Vector3)
IL_03A6: ldloca.s 26 (UnityEngine.Vector3)
IL_03A8: ldloca.s 29 (System.Boolean)
IL_03AA: 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_03AF: ldloc.s 20 (UnityEngine.Vector3)
IL_03B1: ldloc.s 24 (UnityEngine.Vector3)
IL_03B3: ldloc.s 22 (UnityEngine.Vector3)
IL_03B5: ldloc.s 26 (UnityEngine.Vector3)
IL_03B7: ldloc.s 28 (System.Boolean)
IL_03B9: ldloc.s 29 (System.Boolean)
IL_03BB: ldloca.s 30 (UnityEngine.Vector3)
IL_03BD: ldloca.s 31 (UnityEngine.Vector3)
IL_03BF: 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_03C4: ldloc.s 21 (UnityEngine.Vector3)
IL_03C6: ldloc.s 25 (UnityEngine.Vector3)
IL_03C8: ldloc.s 23 (UnityEngine.Vector3)
IL_03CA: ldloc.s 27 (UnityEngine.Vector3)
IL_03CC: ldloc.s 28 (System.Boolean)
IL_03CE: ldloc.s 29 (System.Boolean)
IL_03D0: ldloca.s 32 (UnityEngine.Vector3)
IL_03D2: ldloca.s 33 (UnityEngine.Vector3)
IL_03D4: 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_03D9: ldarg.s 5
IL_03DB: ldloc.s 20 (UnityEngine.Vector3)
IL_03DD: ldloc.s 30 (UnityEngine.Vector3)
IL_03DF: ldloc.s 31 (UnityEngine.Vector3)
IL_03E1: ldloc.s 22 (UnityEngine.Vector3)
IL_03E3: ldloc.s 21 (UnityEngine.Vector3)
IL_03E5: ldloc.s 32 (UnityEngine.Vector3)
IL_03E7: ldloc.s 33 (UnityEngine.Vector3)
IL_03E9: ldloc.s 23 (UnityEngine.Vector3)
IL_03EB: ldarg.s 5
IL_03ED: ldfld UnityEngine.Vector3 Instance::m_position
IL_03F2: ldloc.s 19 (System.Single)
IL_03F4: call static UnityEngine.Matrix4x4
NetSegment::CalculateControlMatrix(UnityEngine.Vector3 startPos,
UnityEngine.Vector3 middlePos1, UnityEngine.Vector3 middlePos2, UnityEngine.Vector3
endPos, UnityEngine.Vector3 startPosB, UnityEngine.Vector3 middlePosB1,
UnityEngine.Vector3 middlePosB2, UnityEngine.Vector3 endPosB, UnityEngine.Vector3
transform, System.Single vScale)
IL_03F9: stfld UnityEngine.Matrix4x4 Instance::m_dataMatrix0
IL_03FE: ldarg.s 5
IL_0400: ldloc.s 21 (UnityEngine.Vector3)
IL_0402: ldloc.s 32 (UnityEngine.Vector3)
IL_0404: ldloc.s 33 (UnityEngine.Vector3)
IL_0406: ldloc.s 23 (UnityEngine.Vector3)
IL_0408: ldloc.s 20 (UnityEngine.Vector3)
IL_040A: ldloc.s 30 (UnityEngine.Vector3)
IL_040C: ldloc.s 31 (UnityEngine.Vector3)
IL_040E: ldloc.s 22 (UnityEngine.Vector3)
IL_0410: ldarg.s 5
IL_0412: ldfld UnityEngine.Vector3 Instance::m_position
IL_0417: ldloc.s 19 (System.Single)
IL_0419: call static UnityEngine.Matrix4x4
NetSegment::CalculateControlMatrix(UnityEngine.Vector3 startPos,
UnityEngine.Vector3 middlePos1, UnityEngine.Vector3 middlePos2, UnityEngine.Vector3
endPos, UnityEngine.Vector3 startPosB, UnityEngine.Vector3 middlePosB1,
UnityEngine.Vector3 middlePosB2, UnityEngine.Vector3 endPosB, UnityEngine.Vector3
transform, System.Single vScale)
IL_041E: stfld UnityEngine.Matrix4x4 Instance::m_dataMatrix1
IL_0423: Label11
IL_0423: ldarg.0
IL_0424: ldfld Flags NetSegment::m_flags
IL_0429: ldc.i4 536870912
IL_042E: and
IL_042F: brfalse => Label12
IL_0434: ldloc.0
IL_0435: ldarg.2
IL_0436: callvirt System.String NetManager::GetSegmentName(System.UInt16
segmentID)
IL_043B: stloc.s 34 (System.String)
IL_043D: ldloc.0
IL_043E: ldfld NetProperties SimulationManagerBase`2<NetManager,
NetProperties>::m_properties
IL_0443: ldfld ColossalFramework.UI.UIFont NetProperties::m_nameFont
IL_0448: stloc.s 35 (ColossalFramework.UI.UIFont)
IL_044A: ldarg.s 5
IL_044C: call static InstanceManager
ColossalFramework.Singleton`1<InstanceManager>::get_instance()
IL_0451: ldloc.s 34 (System.String)
IL_0453: ldloc.s 35 (ColossalFramework.UI.UIFont)
IL_0455: ldc.i4.1
IL_0456: callvirt NameData InstanceManager::GetNameData(System.String name,
ColossalFramework.UI.UIFont font, System.Boolean canCreate)
IL_045B: stfld NameData Instance::m_nameData
IL_0460: ldarg.s 5
IL_0462: ldfld NameData Instance::m_nameData
IL_0467: brfalse => Label13
IL_046C: ldarg.s 4
IL_046E: ldfld NetAI NetInfo::m_netAI
IL_0473: callvirt virtual System.Single NetAI::GetSnapElevation()
IL_0478: stloc.s 36 (System.Single)
IL_047A: ldloca.s 1 (UnityEngine.Vector3)
IL_047C: dup
IL_047D: ldfld System.Single UnityEngine.Vector3::y
IL_0482: ldloc.s 36 (System.Single)
IL_0484: add
IL_0485: stfld System.Single UnityEngine.Vector3::y
IL_048A: ldloca.s 2 (UnityEngine.Vector3)
IL_048C: dup
IL_048D: ldfld System.Single UnityEngine.Vector3::y
IL_0492: ldloc.s 36 (System.Single)
IL_0494: add
IL_0495: stfld System.Single UnityEngine.Vector3::y
IL_049A: ldloc.1
IL_049B: ldarg.0
IL_049C: ldfld UnityEngine.Vector3 NetSegment::m_startDirection
IL_04A1: ldloc.2
IL_04A2: ldarg.0
IL_04A3: ldfld UnityEngine.Vector3 NetSegment::m_endDirection
IL_04A8: ldc.i4.1
IL_04A9: ldc.i4.1
IL_04AA: ldloca.s 37 (UnityEngine.Vector3)
IL_04AC: ldloca.s 38 (UnityEngine.Vector3)
IL_04AE: 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_04B3: ldarg.s 5
IL_04B5: ldloc.1
IL_04B6: ldloc.s 37 (UnityEngine.Vector3)
IL_04B8: ldloc.s 38 (UnityEngine.Vector3)
IL_04BA: ldloc.2
IL_04BB: ldarg.s 5
IL_04BD: ldfld UnityEngine.Vector3 Instance::m_position
IL_04C2: ldc.r4 1
IL_04C7: call static UnityEngine.Matrix4x4
NetSegment::CalculateControlMatrix(UnityEngine.Vector3 startPos,
UnityEngine.Vector3 middlePos1, UnityEngine.Vector3 middlePos2, UnityEngine.Vector3
endPos, UnityEngine.Vector3 transform, System.Single vScale)
IL_04CC: stfld UnityEngine.Matrix4x4 Instance::m_dataMatrix2
IL_04D1: Label13
IL_04D1: br => Label14
IL_04D6: Label12
IL_04D6: ldarg.s 5
IL_04D8: ldnull
IL_04D9: stfld NameData Instance::m_nameData
IL_04DE: Label14
IL_04DE: ldarg.s 4
IL_04E0: ldfld System.Boolean NetInfo::m_requireSurfaceMaps
IL_04E5: brfalse => Label15
IL_04EA: call static TerrainManager
ColossalFramework.Singleton`1<TerrainManager>::get_instance()
IL_04EF: ldarg.s 5
IL_04F1: ldfld UnityEngine.Vector3 Instance::m_position
IL_04F6: ldarg.s 5
IL_04F8: ldflda UnityEngine.Texture Instance::m_dataTexture0
IL_04FD: ldarg.s 5
IL_04FF: ldflda UnityEngine.Texture Instance::m_dataTexture1
IL_0504: ldarg.s 5
IL_0506: ldflda UnityEngine.Vector4 Instance::m_dataVector1
IL_050B: callvirt System.Void
TerrainManager::GetSurfaceMapping(UnityEngine.Vector3 worldPos,
UnityEngine.Texture& _SurfaceTexA, UnityEngine.Texture& _SurfaceTexB,
UnityEngine.Vector4& _SurfaceMapping)
IL_0510: br => Label16
IL_0515: Label15
IL_0515: ldarg.s 4
IL_0517: ldfld System.Boolean NetInfo::m_requireHeightMap
IL_051C: brfalse => Label17
IL_0521: call static TerrainManager
ColossalFramework.Singleton`1<TerrainManager>::get_instance()
IL_0526: ldarg.s 5
IL_0528: ldfld UnityEngine.Vector3 Instance::m_position
IL_052D: ldarg.s 5
IL_052F: ldflda UnityEngine.Texture Instance::m_dataTexture0
IL_0534: ldarg.s 5
IL_0536: ldflda UnityEngine.Vector4 Instance::m_dataVector1
IL_053B: ldarg.s 5
IL_053D: ldflda UnityEngine.Vector4 Instance::m_dataVector2
IL_0542: callvirt System.Void
TerrainManager::GetHeightMapping(UnityEngine.Vector3 worldPos, UnityEngine.Texture&
_HeightMap, UnityEngine.Vector4& _HeightMapping, UnityEngine.Vector4&
_SurfaceMapping)
IL_0547: Label0
IL_0547: Label16
IL_0547: Label17
IL_0547: ldarg.s 4
IL_0549: ldfld Segment[] NetInfo::m_segments
IL_054E: brfalse => Label18
IL_0553: ldarg.3
IL_0554: ldarg.s 4
IL_0556: ldfld System.Int32 NetInfo::m_netLayers
IL_055B: and
IL_055C: brfalse => Label19
IL_0561: ldc.i4.0
IL_0562: stloc.s 39 (System.Int32)
IL_0564: br => Label20
IL_0569: Label40
IL_0569: ldarg.s 4
IL_056B: ldfld Segment[] NetInfo::m_segments
IL_0570: ldloc.s 39 (System.Int32)
IL_0572: ldelem.ref
IL_0573: stloc.s 40 (NetInfo+Segment)
IL_0575: ldloc.s 40 (NetInfo+Segment)
IL_0577: ldarg.0
IL_0578: ldfld Flags NetSegment::m_flags
IL_057D: ldloca.s 41 (System.Boolean)
IL_057F: callvirt System.Boolean Segment::CheckFlags(Flags flags, System.Boolean&
turnAround)
IL_0584: brfalse => Label21
IL_0589: ldarg.s 5
IL_058B: ldfld UnityEngine.Vector4 Instance::m_dataVector3
IL_0590: stloc.s 42 (UnityEngine.Vector4)
IL_0592: ldarg.s 5
IL_0594: ldfld UnityEngine.Vector4 Instance::m_dataVector0
IL_0599: stloc.s 43 (UnityEngine.Vector4)
IL_059B: ldloc.s 40 (NetInfo+Segment)
IL_059D: ldfld System.Boolean Segment::m_requireWindSpeed
IL_05A2: brfalse => Label22
IL_05A7: ldloca.s 42 (UnityEngine.Vector4)
IL_05A9: ldarg.s 5
IL_05AB: ldfld System.Single Instance::m_dataFloat0
IL_05B0: stfld System.Single UnityEngine.Vector4::w
IL_05B5: Label22
IL_05B5: ldloc.s 41 (System.Boolean)
IL_05B7: brfalse => Label23
IL_05BC: ldloca.s 43 (UnityEngine.Vector4)
IL_05BE: ldloca.s 43 (UnityEngine.Vector4)
IL_05C0: ldfld System.Single UnityEngine.Vector4::x
IL_05C5: neg
IL_05C6: stfld System.Single UnityEngine.Vector4::x
IL_05CB: ldloca.s 43 (UnityEngine.Vector4)
IL_05CD: ldloca.s 43 (UnityEngine.Vector4)
IL_05CF: ldfld System.Single UnityEngine.Vector4::y
IL_05D4: neg
IL_05D5: stfld System.Single UnityEngine.Vector4::y
IL_05DA: Label23
IL_05DA: ldarg.1
IL_05DB: ldarg.s 5
IL_05DD: ldfld UnityEngine.Vector3 Instance::m_position
IL_05E2: ldloc.s 40 (NetInfo+Segment)
IL_05E4: ldfld System.Single Segment::m_lodRenderDistance
IL_05E9: callvirt System.Boolean
CameraInfo::CheckRenderDistance(UnityEngine.Vector3 point, System.Single
maxDistance)
IL_05EE: brfalse => Label24
IL_05F3: ldloc.0
IL_05F4: ldfld UnityEngine.MaterialPropertyBlock NetManager::m_materialBlock
IL_05F9: callvirt System.Void UnityEngine.MaterialPropertyBlock::Clear()
IL_05FE: ldloc.0
IL_05FF: ldfld UnityEngine.MaterialPropertyBlock NetManager::m_materialBlock
IL_0604: ldloc.0
IL_0605: ldfld System.Int32 NetManager::ID_LeftMatrix
IL_060A: ldarg.s 5
IL_060C: ldfld UnityEngine.Matrix4x4 Instance::m_dataMatrix0
IL_0611: callvirt System.Void
UnityEngine.MaterialPropertyBlock::SetMatrix(System.Int32 nameID,
UnityEngine.Matrix4x4 value)
IL_0616: ldloc.0
IL_0617: ldfld UnityEngine.MaterialPropertyBlock NetManager::m_materialBlock
IL_061C: ldloc.0
IL_061D: ldfld System.Int32 NetManager::ID_RightMatrix
IL_0622: ldarg.s 5
IL_0624: ldfld UnityEngine.Matrix4x4 Instance::m_dataMatrix1
IL_0629: callvirt System.Void
UnityEngine.MaterialPropertyBlock::SetMatrix(System.Int32 nameID,
UnityEngine.Matrix4x4 value)
IL_062E: ldloc.0
IL_062F: ldfld UnityEngine.MaterialPropertyBlock NetManager::m_materialBlock
IL_0634: ldloc.0
IL_0635: ldfld System.Int32 NetManager::ID_MeshScale
IL_063A: ldloc.s 43 (UnityEngine.Vector4)
IL_063C: callvirt System.Void
UnityEngine.MaterialPropertyBlock::SetVector(System.Int32 nameID,
UnityEngine.Vector4 value)
IL_0641: ldloc.0
IL_0642: ldfld UnityEngine.MaterialPropertyBlock NetManager::m_materialBlock
IL_0647: ldloc.0
IL_0648: ldfld System.Int32 NetManager::ID_ObjectIndex
IL_064D: ldloc.s 42 (UnityEngine.Vector4)
IL_064F: callvirt System.Void
UnityEngine.MaterialPropertyBlock::SetVector(System.Int32 nameID,
UnityEngine.Vector4 value)
IL_0654: ldloc.0
IL_0655: ldfld UnityEngine.MaterialPropertyBlock NetManager::m_materialBlock
IL_065A: ldloc.0
IL_065B: ldfld System.Int32 NetManager::ID_Color
IL_0660: ldarg.s 5
IL_0662: ldfld UnityEngine.Color Instance::m_dataColor0
IL_0667: callvirt System.Void
UnityEngine.MaterialPropertyBlock::SetColor(System.Int32 nameID, UnityEngine.Color
value)
IL_066C: ldloc.s 40 (NetInfo+Segment)
IL_066E: ldfld System.Boolean Segment::m_requireSurfaceMaps
IL_0673: brfalse => Label25
IL_0678: ldarg.s 5
IL_067A: ldfld UnityEngine.Texture Instance::m_dataTexture0
IL_067F: ldnull
IL_0680: call static System.Boolean
UnityEngine.Object::op_Inequality(UnityEngine.Object x, UnityEngine.Object y)
IL_0685: brfalse => Label26
IL_068A: ldloc.0
IL_068B: ldfld UnityEngine.MaterialPropertyBlock NetManager::m_materialBlock
IL_0690: ldloc.0
IL_0691: ldfld System.Int32 NetManager::ID_SurfaceTexA
IL_0696: ldarg.s 5
IL_0698: ldfld UnityEngine.Texture Instance::m_dataTexture0
IL_069D: callvirt System.Void
UnityEngine.MaterialPropertyBlock::SetTexture(System.Int32 nameID,
UnityEngine.Texture value)
IL_06A2: ldloc.0
IL_06A3: ldfld UnityEngine.MaterialPropertyBlock NetManager::m_materialBlock
IL_06A8: ldloc.0
IL_06A9: ldfld System.Int32 NetManager::ID_SurfaceTexB
IL_06AE: ldarg.s 5
IL_06B0: ldfld UnityEngine.Texture Instance::m_dataTexture1
IL_06B5: callvirt System.Void
UnityEngine.MaterialPropertyBlock::SetTexture(System.Int32 nameID,
UnityEngine.Texture value)
IL_06BA: ldloc.0
IL_06BB: ldfld UnityEngine.MaterialPropertyBlock NetManager::m_materialBlock
IL_06C0: ldloc.0
IL_06C1: ldfld System.Int32 NetManager::ID_SurfaceMapping
IL_06C6: ldarg.s 5
IL_06C8: ldfld UnityEngine.Vector4 Instance::m_dataVector1
IL_06CD: callvirt System.Void
UnityEngine.MaterialPropertyBlock::SetVector(System.Int32 nameID,
UnityEngine.Vector4 value)
IL_06D2: br => Label27
IL_06D7: Label25
IL_06D7: Label26
IL_06D7: ldloc.s 40 (NetInfo+Segment)
IL_06D9: ldfld System.Boolean Segment::m_requireHeightMap
IL_06DE: brfalse => Label28
IL_06E3: ldarg.s 5
IL_06E5: ldfld UnityEngine.Texture Instance::m_dataTexture0
IL_06EA: ldnull
IL_06EB: call static System.Boolean
UnityEngine.Object::op_Inequality(UnityEngine.Object x, UnityEngine.Object y)
IL_06F0: brfalse => Label29
IL_06F5: ldloc.0
IL_06F6: ldfld UnityEngine.MaterialPropertyBlock NetManager::m_materialBlock
IL_06FB: ldloc.0
IL_06FC: ldfld System.Int32 NetManager::ID_HeightMap
IL_0701: ldarg.s 5
IL_0703: ldfld UnityEngine.Texture Instance::m_dataTexture0
IL_0708: callvirt System.Void
UnityEngine.MaterialPropertyBlock::SetTexture(System.Int32 nameID,
UnityEngine.Texture value)
IL_070D: ldloc.0
IL_070E: ldfld UnityEngine.MaterialPropertyBlock NetManager::m_materialBlock
IL_0713: ldloc.0
IL_0714: ldfld System.Int32 NetManager::ID_HeightMapping
IL_0719: ldarg.s 5
IL_071B: ldfld UnityEngine.Vector4 Instance::m_dataVector1
IL_0720: callvirt System.Void
UnityEngine.MaterialPropertyBlock::SetVector(System.Int32 nameID,
UnityEngine.Vector4 value)
IL_0725: ldloc.0
IL_0726: ldfld UnityEngine.MaterialPropertyBlock NetManager::m_materialBlock
IL_072B: ldloc.0
IL_072C: ldfld System.Int32 NetManager::ID_SurfaceMapping
IL_0731: ldarg.s 5
IL_0733: ldfld UnityEngine.Vector4 Instance::m_dataVector2
IL_0738: callvirt System.Void
UnityEngine.MaterialPropertyBlock::SetVector(System.Int32 nameID,
UnityEngine.Vector4 value)
IL_073D: Label27
IL_073D: Label28
IL_073D: Label29
IL_073D: ldloc.0
IL_073E: ldflda DrawCallData SimulationManagerBase`2<NetManager,
NetProperties>::m_drawCallData
IL_0743: dup
IL_0744: ldfld System.Int32 DrawCallData::m_defaultCalls
IL_0749: ldc.i4.1
IL_074A: add
IL_074B: stfld System.Int32 DrawCallData::m_defaultCalls
IL_0750: ldloc.s 40 (NetInfo+Segment)
IL_0752: ldfld UnityEngine.Mesh Segment::m_segmentMesh
IL_0757: ldarg.s 5
IL_0759: ldfld UnityEngine.Vector3 Instance::m_position
IL_075E: ldarg.s 5
IL_0760: ldfld UnityEngine.Quaternion Instance::m_rotation
IL_0765: ldloc.s 40 (NetInfo+Segment)
IL_0767: ldfld UnityEngine.Material Segment::m_segmentMaterial
IL_076C: ldloc.s 40 (NetInfo+Segment)
IL_076E: ldfld System.Int32 Segment::m_layer
IL_0773: ldnull
IL_0774: ldc.i4.0
IL_0775: ldloc.0
IL_0776: ldfld UnityEngine.MaterialPropertyBlock NetManager::m_materialBlock
IL_077B: call static System.Void
UnityEngine.Graphics::DrawMesh(UnityEngine.Mesh mesh, UnityEngine.Vector3 position,
UnityEngine.Quaternion rotation, UnityEngine.Material material, System.Int32 layer,
UnityEngine.Camera camera, System.Int32 submeshIndex,
UnityEngine.MaterialPropertyBlock properties)
IL_0780: br => Label30
IL_0785: Label24
IL_0785: ldloc.s 40 (NetInfo+Segment)
IL_0787: ldfld LodValue Segment::m_combinedLod
IL_078C: stloc.s 44 (NetInfo+LodValue)
IL_078E: ldloc.s 44 (NetInfo+LodValue)
IL_0790: brfalse => Label31
IL_0795: ldloc.s 40 (NetInfo+Segment)
IL_0797: ldfld System.Boolean Segment::m_requireSurfaceMaps
IL_079C: brfalse => Label32
IL_07A1: ldarg.s 5
IL_07A3: ldfld UnityEngine.Texture Instance::m_dataTexture0
IL_07A8: ldloc.s 44 (NetInfo+LodValue)
IL_07AA: ldfld UnityEngine.Texture LodValue::m_surfaceTexA
IL_07AF: call static System.Boolean
UnityEngine.Object::op_Inequality(UnityEngine.Object x, UnityEngine.Object y)
IL_07B4: brfalse => Label33
IL_07B9: ldloc.s 44 (NetInfo+LodValue)
IL_07BB: ldfld System.Int32 LodValue::m_lodCount
IL_07C0: brfalse => Label34
IL_07C5: ldarg.1
IL_07C6: ldloc.s 44 (NetInfo+LodValue)
IL_07C8: call static System.Void NetSegment::RenderLod(CameraInfo cameraInfo,
LodValue lod)
IL_07CD: Label34
IL_07CD: ldloc.s 44 (NetInfo+LodValue)
IL_07CF: ldarg.s 5
IL_07D1: ldfld UnityEngine.Texture Instance::m_dataTexture0
IL_07D6: stfld UnityEngine.Texture LodValue::m_surfaceTexA
IL_07DB: ldloc.s 44 (NetInfo+LodValue)
IL_07DD: ldarg.s 5
IL_07DF: ldfld UnityEngine.Texture Instance::m_dataTexture1
IL_07E4: stfld UnityEngine.Texture LodValue::m_surfaceTexB
IL_07E9: ldloc.s 44 (NetInfo+LodValue)
IL_07EB: ldarg.s 5
IL_07ED: ldfld UnityEngine.Vector4 Instance::m_dataVector1
IL_07F2: stfld UnityEngine.Vector4 LodValue::m_surfaceMapping
IL_07F7: Label33
IL_07F7: br => Label35
IL_07FC: Label32
IL_07FC: ldloc.s 40 (NetInfo+Segment)
IL_07FE: ldfld System.Boolean Segment::m_requireHeightMap
IL_0803: brfalse => Label36
IL_0808: ldarg.s 5
IL_080A: ldfld UnityEngine.Texture Instance::m_dataTexture0
IL_080F: ldloc.s 44 (NetInfo+LodValue)
IL_0811: ldfld UnityEngine.Texture LodValue::m_heightMap
IL_0816: call static System.Boolean
UnityEngine.Object::op_Inequality(UnityEngine.Object x, UnityEngine.Object y)
IL_081B: brfalse => Label37
IL_0820: ldloc.s 44 (NetInfo+LodValue)
IL_0822: ldfld System.Int32 LodValue::m_lodCount
IL_0827: brfalse => Label38
IL_082C: ldarg.1
IL_082D: ldloc.s 44 (NetInfo+LodValue)
IL_082F: call static System.Void NetSegment::RenderLod(CameraInfo cameraInfo,
LodValue lod)
IL_0834: Label38
IL_0834: ldloc.s 44 (NetInfo+LodValue)
IL_0836: ldarg.s 5
IL_0838: ldfld UnityEngine.Texture Instance::m_dataTexture0
IL_083D: stfld UnityEngine.Texture LodValue::m_heightMap
IL_0842: ldloc.s 44 (NetInfo+LodValue)
IL_0844: ldarg.s 5
IL_0846: ldfld UnityEngine.Vector4 Instance::m_dataVector1
IL_084B: stfld UnityEngine.Vector4 LodValue::m_heightMapping
IL_0850: ldloc.s 44 (NetInfo+LodValue)
IL_0852: ldarg.s 5
IL_0854: ldfld UnityEngine.Vector4 Instance::m_dataVector2
IL_0859: stfld UnityEngine.Vector4 LodValue::m_surfaceMapping
IL_085E: Label35
IL_085E: Label36
IL_085E: Label37
IL_085E: ldloc.s 44 (NetInfo+LodValue)
IL_0860: ldfld UnityEngine.Matrix4x4[] LodValue::m_leftMatrices
IL_0865: ldloc.s 44 (NetInfo+LodValue)
IL_0867: ldfld System.Int32 LodValue::m_lodCount
IL_086C: ldelema UnityEngine.Matrix4x4
IL_0871: ldarg.s 5
IL_0873: ldfld UnityEngine.Matrix4x4 Instance::m_dataMatrix0
IL_0878: stobj UnityEngine.Matrix4x4
IL_087D: ldloc.s 44 (NetInfo+LodValue)
IL_087F: ldfld UnityEngine.Matrix4x4[] LodValue::m_rightMatrices
IL_0884: ldloc.s 44 (NetInfo+LodValue)
IL_0886: ldfld System.Int32 LodValue::m_lodCount
IL_088B: ldelema UnityEngine.Matrix4x4
IL_0890: ldarg.s 5
IL_0892: ldfld UnityEngine.Matrix4x4 Instance::m_dataMatrix1
IL_0897: stobj UnityEngine.Matrix4x4
IL_089C: ldloc.s 44 (NetInfo+LodValue)
IL_089E: ldfld UnityEngine.Vector4[] LodValue::m_meshScales
IL_08A3: ldloc.s 44 (NetInfo+LodValue)
IL_08A5: ldfld System.Int32 LodValue::m_lodCount
IL_08AA: ldelema UnityEngine.Vector4
IL_08AF: ldloc.s 43 (UnityEngine.Vector4)
IL_08B1: stobj UnityEngine.Vector4
IL_08B6: ldloc.s 44 (NetInfo+LodValue)
IL_08B8: ldfld UnityEngine.Vector4[] LodValue::m_objectIndices
IL_08BD: ldloc.s 44 (NetInfo+LodValue)
IL_08BF: ldfld System.Int32 LodValue::m_lodCount
IL_08C4: ldelema UnityEngine.Vector4
IL_08C9: ldloc.s 42 (UnityEngine.Vector4)
IL_08CB: stobj UnityEngine.Vector4
IL_08D0: ldloc.s 44 (NetInfo+LodValue)
IL_08D2: ldfld UnityEngine.Vector4[] LodValue::m_meshLocations
IL_08D7: ldloc.s 44 (NetInfo+LodValue)
IL_08D9: ldfld System.Int32 LodValue::m_lodCount
IL_08DE: ldelema UnityEngine.Vector4
IL_08E3: ldarg.s 5
IL_08E5: ldfld UnityEngine.Vector3 Instance::m_position
IL_08EA: call static UnityEngine.Vector4
UnityEngine.Vector4::op_Implicit(UnityEngine.Vector3 v)
IL_08EF: stobj UnityEngine.Vector4
IL_08F4: ldloc.s 44 (NetInfo+LodValue)
IL_08F6: ldloc.s 44 (NetInfo+LodValue)
IL_08F8: ldfld UnityEngine.Vector3 LodValue::m_lodMin
IL_08FD: ldarg.s 5
IL_08FF: ldfld UnityEngine.Vector3 Instance::m_position
IL_0904: call static UnityEngine.Vector3
UnityEngine.Vector3::Min(UnityEngine.Vector3 lhs, UnityEngine.Vector3 rhs)
IL_0909: stfld UnityEngine.Vector3 LodValue::m_lodMin
IL_090E: ldloc.s 44 (NetInfo+LodValue)
IL_0910: ldloc.s 44 (NetInfo+LodValue)
IL_0912: ldfld UnityEngine.Vector3 LodValue::m_lodMax
IL_0917: ldarg.s 5
IL_0919: ldfld UnityEngine.Vector3 Instance::m_position
IL_091E: call static UnityEngine.Vector3
UnityEngine.Vector3::Max(UnityEngine.Vector3 lhs, UnityEngine.Vector3 rhs)
IL_0923: stfld UnityEngine.Vector3 LodValue::m_lodMax
IL_0928: ldloc.s 44 (NetInfo+LodValue)
IL_092A: dup
IL_092B: ldfld System.Int32 LodValue::m_lodCount
IL_0930: ldc.i4.1
IL_0931: add
IL_0932: dup
IL_0933: stloc.s 45 (System.Int32)
IL_0935: stfld System.Int32 LodValue::m_lodCount
IL_093A: ldloc.s 45 (System.Int32)
IL_093C: ldloc.s 44 (NetInfo+LodValue)
IL_093E: ldfld UnityEngine.Matrix4x4[] LodValue::m_leftMatrices
IL_0943: ldlen
IL_0944: conv.i4
IL_0945: bne.un => Label39
IL_094A: ldarg.1
IL_094B: ldloc.s 44 (NetInfo+LodValue)
IL_094D: call static System.Void NetSegment::RenderLod(CameraInfo cameraInfo,
LodValue lod)
IL_0952: Label21
IL_0952: Label30
IL_0952: Label31
IL_0952: Label39
IL_0952: ldloc.s 39 (System.Int32)
IL_0954: ldc.i4.1
IL_0955: add
IL_0956: stloc.s 39 (System.Int32)
IL_0958: Label20
IL_0958: ldloc.s 39 (System.Int32)
IL_095A: ldarg.s 4
IL_095C: ldfld Segment[] NetInfo::m_segments
IL_0961: ldlen
IL_0962: conv.i4
IL_0963: blt => Label40
IL_0968: Label18
IL_0968: Label19
IL_0968: ldarg.s 4
IL_096A: ldfld Lane[] NetInfo::m_lanes
IL_096F: brfalse => Label41
IL_0974: ldarg.3
IL_0975: ldarg.s 4
IL_0977: ldfld System.Int32 NetInfo::m_propLayers
IL_097C: and
IL_097D: brtrue => Label42
IL_0982: ldarg.1
IL_0983: ldarg.s 5
IL_0985: ldfld UnityEngine.Vector3 Instance::m_position
IL_098A: ldarg.s 4
IL_098C: ldfld System.Single NetInfo::m_maxPropDistance
IL_0991: ldc.r4 128
IL_0996: add
IL_0997: callvirt System.Boolean
CameraInfo::CheckRenderDistance(UnityEngine.Vector3 point, System.Single
maxDistance)
IL_099C: brfalse => Label43
IL_09A1: Label42
IL_09A1: ldarg.0
IL_09A2: ldfld Flags NetSegment::m_flags
IL_09A7: ldc.i4.s 16
IL_09A9: and
IL_09AA: brfalse => Label44
IL_09AF: ldc.i4.1
IL_09B0: stloc.s 50 (System.Boolean)
IL_09B2: ldloc.0
IL_09B3: ldfld Array16`1<NetNode> NetManager::m_nodes
IL_09B8: ldfld NetNode[] Array16`1<NetNode>::m_buffer
IL_09BD: ldarg.0
IL_09BE: ldfld System.UInt16 NetSegment::m_endNode
IL_09C3: ldelema NetNode
IL_09C8: call NetInfo NetNode::get_Info()
IL_09CD: stloc.s 51 (NetInfo)
IL_09CF: ldloc.s 51 (NetInfo)
IL_09D1: ldfld NetAI NetInfo::m_netAI
IL_09D6: ldarg.0
IL_09D7: ldfld System.UInt16 NetSegment::m_endNode
IL_09DC: ldloc.0
IL_09DD: ldfld Array16`1<NetNode> NetManager::m_nodes
IL_09E2: ldfld NetNode[] Array16`1<NetNode>::m_buffer
IL_09E7: ldarg.0
IL_09E8: ldfld System.UInt16 NetSegment::m_endNode
IL_09ED: ldelema NetNode
IL_09F2: ldarg.2
IL_09F3: ldarg.0
IL_09F4: ldloca.s 46 (NetNode+FlagsLong)
IL_09F6: ldloca.s 48 (UnityEngine.Color)
IL_09F8: callvirt virtual System.Void NetAI::GetNodeState(System.UInt16 nodeID,
NetNode& nodeData, System.UInt16 segmentID, NetSegment& segmentData, FlagsLong&
flags, UnityEngine.Color& color)
IL_09FD: ldloc.0
IL_09FE: ldfld Array16`1<NetNode> NetManager::m_nodes
IL_0A03: ldfld NetNode[] Array16`1<NetNode>::m_buffer
IL_0A08: ldarg.0
IL_0A09: ldfld System.UInt16 NetSegment::m_startNode
IL_0A0E: ldelema NetNode
IL_0A13: call NetInfo NetNode::get_Info()
IL_0A18: stloc.s 52 (NetInfo)
IL_0A1A: ldloc.s 52 (NetInfo)
IL_0A1C: ldfld NetAI NetInfo::m_netAI
IL_0A21: ldarg.0
IL_0A22: ldfld System.UInt16 NetSegment::m_startNode
IL_0A27: ldloc.0
IL_0A28: ldfld Array16`1<NetNode> NetManager::m_nodes
IL_0A2D: ldfld NetNode[] Array16`1<NetNode>::m_buffer
IL_0A32: ldarg.0
IL_0A33: ldfld System.UInt16 NetSegment::m_startNode
IL_0A38: ldelema NetNode
IL_0A3D: ldarg.2
IL_0A3E: ldarg.0
IL_0A3F: ldloca.s 47 (NetNode+FlagsLong)
IL_0A41: ldloca.s 49 (UnityEngine.Color)
IL_0A43: callvirt virtual System.Void NetAI::GetNodeState(System.UInt16 nodeID,
NetNode& nodeData, System.UInt16 segmentID, NetSegment& segmentData, FlagsLong&
flags, UnityEngine.Color& color)
IL_0A48: br => Label45
IL_0A4D: Label44
IL_0A4D: ldc.i4.0
IL_0A4E: stloc.s 50 (System.Boolean)
IL_0A50: ldloc.0
IL_0A51: ldfld Array16`1<NetNode> NetManager::m_nodes
IL_0A56: ldfld NetNode[] Array16`1<NetNode>::m_buffer
IL_0A5B: ldarg.0
IL_0A5C: ldfld System.UInt16 NetSegment::m_startNode
IL_0A61: ldelema NetNode
IL_0A66: call NetInfo NetNode::get_Info()
IL_0A6B: stloc.s 53 (NetInfo)
IL_0A6D: ldloc.s 53 (NetInfo)
IL_0A6F: ldfld NetAI NetInfo::m_netAI
IL_0A74: ldarg.0
IL_0A75: ldfld System.UInt16 NetSegment::m_startNode
IL_0A7A: ldloc.0
IL_0A7B: ldfld Array16`1<NetNode> NetManager::m_nodes
IL_0A80: ldfld NetNode[] Array16`1<NetNode>::m_buffer
IL_0A85: ldarg.0
IL_0A86: ldfld System.UInt16 NetSegment::m_startNode
IL_0A8B: ldelema NetNode
IL_0A90: ldarg.2
IL_0A91: ldarg.0
IL_0A92: ldloca.s 46 (NetNode+FlagsLong)
IL_0A94: ldloca.s 48 (UnityEngine.Color)
IL_0A96: callvirt virtual System.Void NetAI::GetNodeState(System.UInt16 nodeID,
NetNode& nodeData, System.UInt16 segmentID, NetSegment& segmentData, FlagsLong&
flags, UnityEngine.Color& color)
IL_0A9B: ldloc.0
IL_0A9C: ldfld Array16`1<NetNode> NetManager::m_nodes
IL_0AA1: ldfld NetNode[] Array16`1<NetNode>::m_buffer
IL_0AA6: ldarg.0
IL_0AA7: ldfld System.UInt16 NetSegment::m_endNode
IL_0AAC: ldelema NetNode
IL_0AB1: call NetInfo NetNode::get_Info()
IL_0AB6: stloc.s 54 (NetInfo)
IL_0AB8: ldloc.s 54 (NetInfo)
IL_0ABA: ldfld NetAI NetInfo::m_netAI
IL_0ABF: ldarg.0
IL_0AC0: ldfld System.UInt16 NetSegment::m_endNode
IL_0AC5: ldloc.0
IL_0AC6: ldfld Array16`1<NetNode> NetManager::m_nodes
IL_0ACB: ldfld NetNode[] Array16`1<NetNode>::m_buffer
IL_0AD0: ldarg.0
IL_0AD1: ldfld System.UInt16 NetSegment::m_endNode
IL_0AD6: ldelema NetNode
IL_0ADB: ldarg.2
IL_0ADC: ldarg.0
IL_0ADD: ldloca.s 47 (NetNode+FlagsLong)
IL_0ADF: ldloca.s 49 (UnityEngine.Color)
IL_0AE1: callvirt virtual System.Void NetAI::GetNodeState(System.UInt16 nodeID,
NetNode& nodeData, System.UInt16 segmentID, NetSegment& segmentData, FlagsLong&
flags, UnityEngine.Color& color)
IL_0AE6: Label45
IL_0AE6: ldarg.0
IL_0AE7: ldfld System.Byte NetSegment::m_cornerAngleStart
IL_0AEC: conv.r4
IL_0AED: ldc.r4 0.02454369
IL_0AF2: mul
IL_0AF3: stloc.s 55 (System.Single)
IL_0AF5: ldarg.0
IL_0AF6: ldfld System.Byte NetSegment::m_cornerAngleEnd
IL_0AFB: conv.r4
IL_0AFC: ldc.r4 0.02454369
IL_0B01: mul
IL_0B02: stloc.s 56 (System.Single)
IL_0B04: ldloca.s 57 (UnityEngine.Vector4)
IL_0B06: ldarg.s 5
IL_0B08: ldflda UnityEngine.Vector4 Instance::m_dataVector3
IL_0B0D: ldfld System.Single UnityEngine.Vector4::x
IL_0B12: ldarg.s 5
IL_0B14: ldflda UnityEngine.Vector4 Instance::m_dataVector3
IL_0B19: ldfld System.Single UnityEngine.Vector4::y
IL_0B1E: ldc.r4 1
IL_0B23: ldarg.s 5
IL_0B25: ldfld System.Single Instance::m_dataFloat0
IL_0B2A: call System.Void UnityEngine.Vector4::.ctor(System.Single x,
System.Single y, System.Single z, System.Single w)
IL_0B2F: ldloca.s 58 (UnityEngine.Vector4)
IL_0B31: ldarg.s 5
IL_0B33: ldflda UnityEngine.Vector4 Instance::m_dataVector3
IL_0B38: ldfld System.Single UnityEngine.Vector4::z
IL_0B3D: ldarg.s 5
IL_0B3F: ldflda UnityEngine.Vector4 Instance::m_dataVector3
IL_0B44: ldfld System.Single UnityEngine.Vector4::w
IL_0B49: ldc.r4 1
IL_0B4E: ldarg.s 5
IL_0B50: ldfld System.Single Instance::m_dataFloat0
IL_0B55: call System.Void UnityEngine.Vector4::.ctor(System.Single x,
System.Single y, System.Single z, System.Single w)
IL_0B5A: call static InfoManager
ColossalFramework.Singleton`1<InfoManager>::get_instance()
IL_0B5F: callvirt InfoMode InfoManager::get_CurrentMode()
IL_0B64: stloc.s 59 (InfoManager+InfoMode)
IL_0B66: ldloc.s 59 (InfoManager+InfoMode)
IL_0B68: brfalse => Label46
IL_0B6D: ldarg.s 4
IL_0B6F: ldfld NetAI NetInfo::m_netAI
IL_0B74: ldloc.s 59 (InfoManager+InfoMode)
IL_0B76: callvirt virtual System.Boolean NetAI::ColorizeProps(InfoMode infoMode)
IL_0B7B: brtrue => Label47
IL_0B80: ldloca.s 57 (UnityEngine.Vector4)
IL_0B82: ldc.r4 0
IL_0B87: stfld System.Single UnityEngine.Vector4::z
IL_0B8C: ldloca.s 58 (UnityEngine.Vector4)
IL_0B8E: ldc.r4 0
IL_0B93: stfld System.Single UnityEngine.Vector4::z
IL_0B98: Label46
IL_0B98: Label47
IL_0B98: ldarg.s 4
IL_0B9A: ldfld Segment[] NetInfo::m_segments
IL_0B9F: brfalse => Label48
IL_0BA4: ldarg.s 4
IL_0BA6: ldfld Segment[] NetInfo::m_segments
IL_0BAB: ldlen
IL_0BAC: conv.i4
IL_0BAD: brtrue => Label49
IL_0BB2: Label48
IL_0BB2: ldc.i4.0
IL_0BB3: br => Label50
IL_0BB8: Label49
IL_0BB8: ldc.i4.m1
IL_0BB9: Label50
IL_0BB9: stloc.s 60 (System.Int32)
IL_0BBB: ldarg.0
IL_0BBC: ldfld System.UInt32 NetSegment::m_lanes
IL_0BC1: stloc.s 61 (System.UInt32)
IL_0BC3: ldarg.0
IL_0BC4: ldfld Flags NetSegment::m_flags
IL_0BC9: ldc.i4.8
IL_0BCA: and
IL_0BCB: brfalse => Label51
IL_0BD0: ldarg.s 4
IL_0BD2: ldfld NetAI NetInfo::m_netAI
IL_0BD7: callvirt virtual System.Boolean NetAI::get_isBuilding()
IL_0BDC: brfalse => Label52
IL_0BE1: ldarg.0
IL_0BE2: ldarg.1
IL_0BE3: ldarg.2
IL_0BE4: ldarg.s 4
IL_0BE6: ldarg.s 5
IL_0BE8: call System.Void NetSegment::RenderDestroyedBuilding(CameraInfo
cameraInfo, System.UInt16 segmentID, NetInfo info, Instance& data)
IL_0BED: br => Label53
IL_0BF2: Label52
IL_0BF2: ldc.i4.0
IL_0BF3: stloc.s 62 (System.Int32)
IL_0BF5: br => Label54
IL_0BFA: Label56
IL_0BFA: ldloc.0
IL_0BFB: ldfld Array32`1<NetLane> NetManager::m_lanes
IL_0C00: ldfld NetLane[] Array32`1<NetLane>::m_buffer
IL_0C05: ldloc.s 61 (System.UInt32)
IL_0C07: conv.u
IL_0C08: ldelema NetLane
IL_0C0D: ldarg.1
IL_0C0E: ldarg.2
IL_0C0F: ldloc.s 61 (System.UInt32)
IL_0C11: ldarg.s 4
IL_0C13: ldarg.s 4
IL_0C15: ldfld Lane[] NetInfo::m_lanes
IL_0C1A: ldloc.s 62 (System.Int32)
IL_0C1C: ldelem.ref
IL_0C1D: ldloc.s 46 (NetNode+FlagsLong)
IL_0C1F: ldloc.s 47 (NetNode+FlagsLong)
IL_0C21: ldloc.s 48 (UnityEngine.Color)
IL_0C23: ldloc.s 49 (UnityEngine.Color)
IL_0C25: ldloc.s 55 (System.Single)
IL_0C27: ldloc.s 56 (System.Single)
IL_0C29: ldloc.s 50 (System.Boolean)
IL_0C2B: ldarg.3
IL_0C2C: ldloc.s 57 (UnityEngine.Vector4)
IL_0C2E: ldloc.s 58 (UnityEngine.Vector4)
IL_0C30: ldarg.s 5
IL_0C32: ldloca.s 60 (System.Int32)
IL_0C34: call System.Void NetLane::RenderDestroyedInstance(CameraInfo
cameraInfo, System.UInt16 segmentID, System.UInt32 laneID, NetInfo netInfo, Lane
laneInfo, FlagsLong startFlags, FlagsLong endFlags, UnityEngine.Color startColor,
UnityEngine.Color endColor, System.Single startAngle, System.Single endAngle,
System.Boolean invert, System.Int32 layerMask, UnityEngine.Vector4 objectIndex1,
UnityEngine.Vector4 objectIndex2, Instance& data, System.Int32& propIndex)
IL_0C39: ldloc.0
IL_0C3A: ldfld Array32`1<NetLane> NetManager::m_lanes
IL_0C3F: ldfld NetLane[] Array32`1<NetLane>::m_buffer
IL_0C44: ldloc.s 61 (System.UInt32)
IL_0C46: conv.u
IL_0C47: ldelema NetLane
IL_0C4C: ldfld System.UInt32 NetLane::m_nextLane
IL_0C51: stloc.s 61 (System.UInt32)
IL_0C53: ldloc.s 62 (System.Int32)
IL_0C55: ldc.i4.1
IL_0C56: add
IL_0C57: stloc.s 62 (System.Int32)
IL_0C59: Label54
IL_0C59: ldloc.s 62 (System.Int32)
IL_0C5B: ldarg.s 4
IL_0C5D: ldfld Lane[] NetInfo::m_lanes
IL_0C62: ldlen
IL_0C63: conv.i4
IL_0C64: bge => Label55
IL_0C69: ldloc.s 61 (System.UInt32)
IL_0C6B: brtrue => Label56
IL_0C70: Label53
IL_0C70: Label55
IL_0C70: br => Label57
IL_0C75: Label51
IL_0C75: ldc.i4.0
IL_0C76: stloc.s 63 (System.Int32)
IL_0C78: br => Label58
IL_0C7D: Label60
IL_0C7D: ldloc.0
IL_0C7E: ldfld Array32`1<NetLane> NetManager::m_lanes
IL_0C83: ldfld NetLane[] Array32`1<NetLane>::m_buffer
IL_0C88: ldloc.s 61 (System.UInt32)
IL_0C8A: conv.u
IL_0C8B: ldelema NetLane
IL_0C90: ldarg.1
IL_0C91: ldarg.2
IL_0C92: ldloc.s 61 (System.UInt32)
IL_0C94: ldarg.s 4
IL_0C96: ldfld Lane[] NetInfo::m_lanes
IL_0C9B: ldloc.s 63 (System.Int32)
IL_0C9D: ldelem.ref
IL_0C9E: ldloc.s 46 (NetNode+FlagsLong)
IL_0CA0: ldloc.s 47 (NetNode+FlagsLong)
IL_0CA2: ldloc.s 48 (UnityEngine.Color)
IL_0CA4: ldloc.s 49 (UnityEngine.Color)
IL_0CA6: ldloc.s 55 (System.Single)
IL_0CA8: ldloc.s 56 (System.Single)
IL_0CAA: ldloc.s 50 (System.Boolean)
IL_0CAC: ldarg.3
IL_0CAD: ldloc.s 57 (UnityEngine.Vector4)
IL_0CAF: ldloc.s 58 (UnityEngine.Vector4)
IL_0CB1: ldarg.s 5
IL_0CB3: ldloca.s 60 (System.Int32)
IL_0CB5: call System.Void NetLane::RenderInstance(CameraInfo cameraInfo,
System.UInt16 segmentID, System.UInt32 laneID, Lane laneInfo, FlagsLong startFlags,
FlagsLong endFlags, UnityEngine.Color startColor, UnityEngine.Color endColor,
System.Single startAngle, System.Single endAngle, System.Boolean invert,
System.Int32 layerMask, UnityEngine.Vector4 objectIndex1, UnityEngine.Vector4
objectIndex2, Instance& data, System.Int32& propIndex)
IL_0CBA: ldloc.0
IL_0CBB: ldfld Array32`1<NetLane> NetManager::m_lanes
IL_0CC0: ldfld NetLane[] Array32`1<NetLane>::m_buffer
IL_0CC5: ldloc.s 61 (System.UInt32)
IL_0CC7: conv.u
IL_0CC8: ldelema NetLane
IL_0CCD: ldfld System.UInt32 NetLane::m_nextLane
IL_0CD2: stloc.s 61 (System.UInt32)
IL_0CD4: ldloc.s 63 (System.Int32)
IL_0CD6: ldc.i4.1
IL_0CD7: add
IL_0CD8: stloc.s 63 (System.Int32)
IL_0CDA: Label58
IL_0CDA: ldloc.s 63 (System.Int32)
IL_0CDC: ldarg.s 4
IL_0CDE: ldfld Lane[] NetInfo::m_lanes
IL_0CE3: ldlen
IL_0CE4: conv.i4
IL_0CE5: bge => Label59
IL_0CEA: ldloc.s 61 (System.UInt32)
IL_0CEC: brtrue => Label60
IL_0CF1: // end original
IL_0CF1: Label41
IL_0CF1: Label43
IL_0CF1: Label57
IL_0CF1: Label59
IL_0CF1: ldarg 1
IL_0CF5: ldarg 2
IL_0CF9: ldarg 5
IL_0CFD: call static System.Void
NodeMarkup.Manager.MarkupManager::NetSegmentRenderInstancePostfix(CameraInfo
cameraInfo, System.UInt16 segmentID, Instance& data)
IL_0D02: ret
DONE

### Harmony id=NodeMarkup, version=2.0.4.0, location=E:\SteamLibrary\steamapps\


common\data-0000000022595390, env/clr=2.0.50727.1433, platform=Win32NT,
ptrsize:runtime/env=8/Bits64, Windows
### Started from System.Object ModsCommon.BasePatcherMod`1<TypeMod>::get_Harmony(),
location E:\SteamLibrary\steamapps\common\data-0000000023EF7040
### At 2023-02-07 02.24.36
### Patch: System.Boolean NetInfo::InitNodeInfo(Node info, System.Boolean&
requireSurfaceMaps, System.Boolean& requireSegmentRenderers, System.Boolean&
requireDirectRenderers)
### Replacement: static System.Boolean NetInfo::NetInfo.InitNodeInfo_Patch1(NetInfo
this, Node info, System.Boolean& requireSurfaceMaps, System.Boolean&
requireSegmentRenderers, System.Boolean& requireDirectRenderers)
IL_0000: Local var 0: System.Single
IL_0000: Local var 1: System.Single
IL_0000: Local var 2: System.String
IL_0000: Local var 3: UnityEngine.Color
IL_0000: Local var 4: UnityEngine.Texture2D
IL_0000: Local var 5: System.Boolean
IL_0000: ldc.i4 0
IL_0005: stloc 5 (System.Boolean)
IL_0009: // start original
IL_0009: ldarg.0
IL_000A: ldfld System.Single NetInfo::m_minHeight
IL_000F: ldc.r4 10
IL_0014: sub
IL_0015: stloc.0
IL_0016: ldarg.0
IL_0017: ldfld System.Single NetInfo::m_maxHeight
IL_001C: ldc.r4 10
IL_0021: add
IL_0022: stloc.1
IL_0023: ldarg.1
IL_0024: ldfld UnityEngine.Mesh Node::m_mesh
IL_0029: ldc.r4 0
IL_002E: ldloc.0
IL_002F: ldloc.1
IL_0030: add
IL_0031: ldc.r4 0.5
IL_0036: mul
IL_0037: ldc.r4 0
IL_003C: newobj System.Void UnityEngine.Vector3::.ctor(System.Single x,
System.Single y, System.Single z)
IL_0041: ldc.r4 128
IL_0046: ldloc.1
IL_0047: ldloc.0
IL_0048: sub
IL_0049: ldc.r4 128
IL_004E: newobj System.Void UnityEngine.Vector3::.ctor(System.Single x,
System.Single y, System.Single z)
IL_0053: newobj System.Void UnityEngine.Bounds::.ctor(UnityEngine.Vector3
center, UnityEngine.Vector3 size)
IL_0058: callvirt System.Void UnityEngine.Mesh::set_bounds(UnityEngine.Bounds
value)
IL_005D: ldarg.1
IL_005E: ldarg.1
IL_005F: ldfld UnityEngine.Mesh Node::m_mesh
IL_0064: stfld UnityEngine.Mesh Node::m_nodeMesh
IL_0069: ldarg.1
IL_006A: ldarg.1
IL_006B: ldfld UnityEngine.Material Node::m_material
IL_0070: newobj System.Void UnityEngine.Material::.ctor(UnityEngine.Material
source)
IL_0075: stfld UnityEngine.Material Node::m_nodeMaterial
IL_007A: ldarg.1
IL_007B: ldfld UnityEngine.Material Node::m_material
IL_0080: ldstr "NetType"
IL_0085: ldc.i4.0
IL_0086: callvirt System.String UnityEngine.Material::GetTag(System.String tag,
System.Boolean searchFallbacks)
IL_008B: stloc.2
IL_008C: ldloc.2
IL_008D: ldstr "TerrainSurface"
IL_0092: call static System.Boolean System.String::op_Equality(System.String
a, System.String b)
IL_0097: brfalse => Label0
IL_009C: ldarg.2
IL_009D: ldc.i4.1
IL_009E: stind.i1
IL_009F: ldarg.1
IL_00A0: ldc.i4.1
IL_00A1: stfld System.Boolean Node::m_requireSurfaceMaps
IL_00A6: br => Label1
IL_00AB: Label0
IL_00AB: ldarg.1
IL_00AC: ldc.i4.0
IL_00AD: stfld System.Boolean Node::m_requireSurfaceMaps
IL_00B2: Label1
IL_00B2: ldloc.2
IL_00B3: ldstr "Fence"
IL_00B8: call static System.Boolean System.String::op_Equality(System.String
a, System.String b)
IL_00BD: brfalse => Label2
IL_00C2: ldarg.0
IL_00C3: ldstr "Heightmap not supported for nodes"
IL_00C8: newobj System.Void PrefabException::.ctor(PrefabInfo info,
System.String message)
IL_00CD: throw
IL_00CE: Label2
IL_00CE: ldloc.2
IL_00CF: ldstr "PowerLine"
IL_00D4: call static System.Boolean System.String::op_Equality(System.String
a, System.String b)
IL_00D9: brfalse => Label3
IL_00DE: ldarg.1
IL_00DF: ldc.i4.1
IL_00E0: stfld System.Boolean Node::m_requireWindSpeed
IL_00E5: ldarg.1
IL_00E6: ldc.i4.1
IL_00E7: stfld System.Boolean Node::m_preserveUVs
IL_00EC: ldarg.1
IL_00ED: ldc.i4.0
IL_00EE: stfld System.Boolean Node::m_generateTangents
IL_00F3: ldarg.1
IL_00F4: ldstr "PowerLines"
IL_00F9: call static System.Int32
UnityEngine.LayerMask::NameToLayer(System.String layerName)
IL_00FE: stfld System.Int32 Node::m_layer
IL_0103: br => Label4
IL_0108: Label3
IL_0108: ldloc.2
IL_0109: ldstr "MetroTunnel"
IL_010E: call static System.Boolean System.String::op_Equality(System.String
a, System.String b)
IL_0113: brfalse => Label5
IL_0118: ldarg.1
IL_0119: ldc.i4.0
IL_011A: stfld System.Boolean Node::m_requireWindSpeed
IL_011F: ldarg.1
IL_0120: ldc.i4.0
IL_0121: stfld System.Boolean Node::m_preserveUVs
IL_0126: ldarg.1
IL_0127: ldc.i4.0
IL_0128: stfld System.Boolean Node::m_generateTangents
IL_012D: ldarg.1
IL_012E: ldstr "MetroTunnels"
IL_0133: call static System.Int32
UnityEngine.LayerMask::NameToLayer(System.String layerName)
IL_0138: stfld System.Int32 Node::m_layer
IL_013D: br => Label6
IL_0142: Label5
IL_0142: ldloc.2
IL_0143: ldstr "NetBuilding"
IL_0148: call static System.Boolean System.String::op_Equality(System.String
a, System.String b)
IL_014D: brfalse => Label7
IL_0152: ldarg.1
IL_0153: ldc.i4.0
IL_0154: stfld System.Boolean Node::m_requireWindSpeed
IL_0159: ldarg.1
IL_015A: ldc.i4.0
IL_015B: stfld System.Boolean Node::m_preserveUVs
IL_0160: ldarg.1
IL_0161: ldc.i4.0
IL_0162: stfld System.Boolean Node::m_generateTangents
IL_0167: ldarg.1
IL_0168: ldstr "NetBuildings"
IL_016D: call static System.Int32
UnityEngine.LayerMask::NameToLayer(System.String layerName)
IL_0172: stfld System.Int32 Node::m_layer
IL_0177: br => Label8
IL_017C: Label7
IL_017C: ldarg.1
IL_017D: ldc.i4.0
IL_017E: stfld System.Boolean Node::m_requireWindSpeed
IL_0183: ldarg.1
IL_0184: ldc.i4.0
IL_0185: stfld System.Boolean Node::m_preserveUVs
IL_018A: ldarg.1
IL_018B: ldc.i4.0
IL_018C: stfld System.Boolean Node::m_generateTangents
IL_0191: ldarg.1
IL_0192: ldarg.0
IL_0193: ldfld System.Int32 PrefabInfo::m_prefabDataLayer
IL_0198: stfld System.Int32 Node::m_layer
IL_019D: Label4
IL_019D: Label6
IL_019D: Label8
IL_019D: ldarg.1
IL_019E: ldfld UnityEngine.Material Node::m_material
IL_01A3: callvirt UnityEngine.Color UnityEngine.Material::get_color()
IL_01A8: stloc.3
IL_01A9: ldloca.s 3 (UnityEngine.Color)
IL_01AB: ldc.r4 0
IL_01B0: stfld System.Single UnityEngine.Color::a
IL_01B5: ldarg.1
IL_01B6: ldfld UnityEngine.Material Node::m_nodeMaterial
IL_01BB: ldloc.3
IL_01BC: callvirt System.Void UnityEngine.Material::set_color(UnityEngine.Color
value)
IL_01C1: ldarg.1
IL_01C2: ldfld System.Boolean Node::m_directConnect
IL_01C7: brfalse => Label9
IL_01CC: ldarg.s 4
IL_01CE: ldc.i4.1
IL_01CF: stind.i1
IL_01D0: br => Label10
IL_01D5: Label9
IL_01D5: ldarg.1
IL_01D6: ldfld UnityEngine.Material Node::m_nodeMaterial
IL_01DB: ldstr "NET_NODE"
IL_01E0: callvirt System.Void UnityEngine.Material::EnableKeyword(System.String
keyword)
IL_01E5: ldarg.3
IL_01E6: ldc.i4.1
IL_01E7: stind.i1
IL_01E8: Label10
IL_01E8: ldarg.1
IL_01E9: ldfld UnityEngine.Material Node::m_material
IL_01EE: callvirt UnityEngine.Texture UnityEngine.Material::get_mainTexture()
IL_01F3: isinst UnityEngine.Texture2D
IL_01F8: stloc.s 4 (UnityEngine.Texture2D)
IL_01FA: ldloc.s 4 (UnityEngine.Texture2D)
IL_01FC: ldnull
IL_01FD: call static System.Boolean
UnityEngine.Object::op_Inequality(UnityEngine.Object x, UnityEngine.Object y)
IL_0202: brfalse => Label11
IL_0207: ldloc.s 4 (UnityEngine.Texture2D)
IL_0209: callvirt UnityEngine.TextureFormat UnityEngine.Texture2D::get_format()
IL_020E: ldc.i4.s 12
IL_0210: bne.un => Label12
IL_0215: ldc.i4.1
IL_0216: ldstr "Node diffuse is DXT5: "
IL_021B: ldarg.0
IL_021C: call UnityEngine.GameObject UnityEngine.Component::get_gameObject()
IL_0221: callvirt System.String UnityEngine.Object::get_name()
IL_0226: call static System.String System.String::Concat(System.String str0,
System.String str1)
IL_022B: ldarg.0
IL_022C: call UnityEngine.GameObject UnityEngine.Component::get_gameObject()
IL_0231: call static System.Void
ColossalFramework.CODebugBase`1<LogChannel>::Warn(LogChannel ll, System.String msg,
UnityEngine.Object o)
IL_0236: Label11
IL_0236: Label12
IL_0236: ldarg.1
IL_0237: ldfld UnityEngine.Mesh Node::m_lodMesh
IL_023C: ldnull
IL_023D: call static System.Boolean
UnityEngine.Object::op_Inequality(UnityEngine.Object x, UnityEngine.Object y)
IL_0242: brfalse => Label13
IL_0247: ldc.i4.1
IL_0248: br => Label14
IL_024D: Label13
IL_024D: ldc.i4.0
IL_024E: // end original
IL_024E: Label14
IL_024E: stloc 5 (System.Boolean)
IL_0252: ldarg 1
IL_0256: call static System.Void
NodeMarkup.Manager.MarkupManager::NetInfoInitNodeInfoPostfix_Rail(Node info)
IL_025B: ldloc 5 (System.Boolean)
IL_025F: ret
DONE

### Harmony id=NodeMarkup, version=2.0.4.0, location=E:\SteamLibrary\steamapps\


common\data-0000000022595390, env/clr=2.0.50727.1433, platform=Win32NT,
ptrsize:runtime/env=8/Bits64, Windows
### Started from System.Object ModsCommon.BasePatcherMod`1<TypeMod>::get_Harmony(),
location E:\SteamLibrary\steamapps\common\data-0000000023EF7040
### At 2023-02-07 02.24.36
### Patch: System.Boolean NetInfo::InitSegmentInfo(Segment info, System.Boolean&
requireSurfaceMaps, System.Boolean& requireHeightMap)
### Replacement: static System.Boolean
NetInfo::NetInfo.InitSegmentInfo_Patch1(NetInfo this, Segment info, System.Boolean&
requireSurfaceMaps, System.Boolean& requireHeightMap)
IL_0000: Local var 0: System.Single
IL_0000: Local var 1: System.Single
IL_0000: Local var 2: System.String
IL_0000: Local var 3: UnityEngine.Color
IL_0000: Local var 4: UnityEngine.Texture2D
IL_0000: Local var 5: System.Boolean
IL_0000: ldc.i4 0
IL_0005: stloc 5 (System.Boolean)
IL_0009: // start original
IL_0009: ldarg.0
IL_000A: ldfld System.Single NetInfo::m_minHeight
IL_000F: ldarg.0
IL_0010: ldfld System.Single NetInfo::m_maxSlope
IL_0015: ldc.r4 64
IL_001A: mul
IL_001B: sub
IL_001C: ldc.r4 10
IL_0021: sub
IL_0022: stloc.0
IL_0023: ldarg.0
IL_0024: ldfld System.Single NetInfo::m_maxHeight
IL_0029: ldarg.0
IL_002A: ldfld System.Single NetInfo::m_maxSlope
IL_002F: ldc.r4 64
IL_0034: mul
IL_0035: add
IL_0036: ldc.r4 10
IL_003B: add
IL_003C: stloc.1
IL_003D: ldarg.1
IL_003E: ldfld UnityEngine.Mesh Segment::m_mesh
IL_0043: ldc.r4 0
IL_0048: ldloc.0
IL_0049: ldloc.1
IL_004A: add
IL_004B: ldc.r4 0.5
IL_0050: mul
IL_0051: ldc.r4 0
IL_0056: newobj System.Void UnityEngine.Vector3::.ctor(System.Single x,
System.Single y, System.Single z)
IL_005B: ldc.r4 128
IL_0060: ldloc.1
IL_0061: ldloc.0
IL_0062: sub
IL_0063: ldc.r4 128
IL_0068: newobj System.Void UnityEngine.Vector3::.ctor(System.Single x,
System.Single y, System.Single z)
IL_006D: newobj System.Void UnityEngine.Bounds::.ctor(UnityEngine.Vector3
center, UnityEngine.Vector3 size)
IL_0072: callvirt System.Void UnityEngine.Mesh::set_bounds(UnityEngine.Bounds
value)
IL_0077: ldarg.1
IL_0078: ldarg.1
IL_0079: ldfld UnityEngine.Mesh Segment::m_mesh
IL_007E: stfld UnityEngine.Mesh Segment::m_segmentMesh
IL_0083: ldarg.1
IL_0084: ldarg.1
IL_0085: ldfld UnityEngine.Material Segment::m_material
IL_008A: newobj System.Void UnityEngine.Material::.ctor(UnityEngine.Material
source)
IL_008F: stfld UnityEngine.Material Segment::m_segmentMaterial
IL_0094: ldarg.1
IL_0095: ldfld UnityEngine.Material Segment::m_material
IL_009A: ldstr "NetType"
IL_009F: ldc.i4.0
IL_00A0: callvirt System.String UnityEngine.Material::GetTag(System.String tag,
System.Boolean searchFallbacks)
IL_00A5: stloc.2
IL_00A6: ldloc.2
IL_00A7: ldstr "TerrainSurface"
IL_00AC: call static System.Boolean System.String::op_Equality(System.String
a, System.String b)
IL_00B1: brfalse => Label0
IL_00B6: ldarg.2
IL_00B7: ldc.i4.1
IL_00B8: stind.i1
IL_00B9: ldarg.1
IL_00BA: ldc.i4.1
IL_00BB: stfld System.Boolean Segment::m_requireSurfaceMaps
IL_00C0: br => Label1
IL_00C5: Label0
IL_00C5: ldarg.1
IL_00C6: ldc.i4.0
IL_00C7: stfld System.Boolean Segment::m_requireSurfaceMaps
IL_00CC: Label1
IL_00CC: ldloc.2
IL_00CD: ldstr "Fence"
IL_00D2: call static System.Boolean System.String::op_Equality(System.String
a, System.String b)
IL_00D7: brfalse => Label2
IL_00DC: ldarg.3
IL_00DD: ldc.i4.1
IL_00DE: stind.i1
IL_00DF: ldarg.1
IL_00E0: ldc.i4.1
IL_00E1: stfld System.Boolean Segment::m_requireHeightMap
IL_00E6: br => Label3
IL_00EB: Label2
IL_00EB: ldarg.1
IL_00EC: ldc.i4.0
IL_00ED: stfld System.Boolean Segment::m_requireHeightMap
IL_00F2: Label3
IL_00F2: ldloc.2
IL_00F3: ldstr "PowerLine"
IL_00F8: call static System.Boolean System.String::op_Equality(System.String
a, System.String b)
IL_00FD: brfalse => Label4
IL_0102: ldarg.1
IL_0103: ldc.i4.1
IL_0104: stfld System.Boolean Segment::m_requireWindSpeed
IL_0109: ldarg.1
IL_010A: ldc.i4.1
IL_010B: stfld System.Boolean Segment::m_preserveUVs
IL_0110: ldarg.1
IL_0111: ldc.i4.0
IL_0112: stfld System.Boolean Segment::m_generateTangents
IL_0117: ldarg.1
IL_0118: ldstr "PowerLines"
IL_011D: call static System.Int32
UnityEngine.LayerMask::NameToLayer(System.String layerName)
IL_0122: stfld System.Int32 Segment::m_layer
IL_0127: br => Label5
IL_012C: Label4
IL_012C: ldloc.2
IL_012D: ldstr "MetroTunnel"
IL_0132: call static System.Boolean System.String::op_Equality(System.String
a, System.String b)
IL_0137: brfalse => Label6
IL_013C: ldarg.1
IL_013D: ldc.i4.0
IL_013E: stfld System.Boolean Segment::m_requireWindSpeed
IL_0143: ldarg.1
IL_0144: ldc.i4.0
IL_0145: stfld System.Boolean Segment::m_preserveUVs
IL_014A: ldarg.1
IL_014B: ldc.i4.0
IL_014C: stfld System.Boolean Segment::m_generateTangents
IL_0151: ldarg.1
IL_0152: ldstr "MetroTunnels"
IL_0157: call static System.Int32
UnityEngine.LayerMask::NameToLayer(System.String layerName)
IL_015C: stfld System.Int32 Segment::m_layer
IL_0161: br => Label7
IL_0166: Label6
IL_0166: ldloc.2
IL_0167: ldstr "NetBuilding"
IL_016C: call static System.Boolean System.String::op_Equality(System.String
a, System.String b)
IL_0171: brfalse => Label8
IL_0176: ldarg.1
IL_0177: ldc.i4.0
IL_0178: stfld System.Boolean Segment::m_requireWindSpeed
IL_017D: ldarg.1
IL_017E: ldc.i4.0
IL_017F: stfld System.Boolean Segment::m_preserveUVs
IL_0184: ldarg.1
IL_0185: ldc.i4.0
IL_0186: stfld System.Boolean Segment::m_generateTangents
IL_018B: ldarg.1
IL_018C: ldstr "NetBuildings"
IL_0191: call static System.Int32
UnityEngine.LayerMask::NameToLayer(System.String layerName)
IL_0196: stfld System.Int32 Segment::m_layer
IL_019B: br => Label9
IL_01A0: Label8
IL_01A0: ldarg.1
IL_01A1: ldc.i4.0
IL_01A2: stfld System.Boolean Segment::m_requireWindSpeed
IL_01A7: ldarg.1
IL_01A8: ldc.i4.0
IL_01A9: stfld System.Boolean Segment::m_preserveUVs
IL_01AE: ldarg.1
IL_01AF: ldc.i4.0
IL_01B0: stfld System.Boolean Segment::m_generateTangents
IL_01B5: ldarg.1
IL_01B6: ldarg.0
IL_01B7: ldfld System.Int32 PrefabInfo::m_prefabDataLayer
IL_01BC: stfld System.Int32 Segment::m_layer
IL_01C1: Label5
IL_01C1: Label7
IL_01C1: Label9
IL_01C1: ldarg.1
IL_01C2: ldfld UnityEngine.Material Segment::m_segmentMaterial
IL_01C7: ldstr "NET_SEGMENT"
IL_01CC: callvirt System.Void UnityEngine.Material::EnableKeyword(System.String
keyword)
IL_01D1: ldarg.1
IL_01D2: ldfld UnityEngine.Material Segment::m_material
IL_01D7: callvirt UnityEngine.Color UnityEngine.Material::get_color()
IL_01DC: stloc.3
IL_01DD: ldloca.s 3 (UnityEngine.Color)
IL_01DF: ldc.r4 0
IL_01E4: stfld System.Single UnityEngine.Color::a
IL_01E9: ldarg.1
IL_01EA: ldfld UnityEngine.Material Segment::m_segmentMaterial
IL_01EF: ldloc.3
IL_01F0: callvirt System.Void UnityEngine.Material::set_color(UnityEngine.Color
value)
IL_01F5: ldarg.1
IL_01F6: ldfld UnityEngine.Material Segment::m_material
IL_01FB: callvirt UnityEngine.Texture UnityEngine.Material::get_mainTexture()
IL_0200: isinst UnityEngine.Texture2D
IL_0205: stloc.s 4 (UnityEngine.Texture2D)
IL_0207: ldloc.s 4 (UnityEngine.Texture2D)
IL_0209: ldnull
IL_020A: call static System.Boolean
UnityEngine.Object::op_Inequality(UnityEngine.Object x, UnityEngine.Object y)
IL_020F: brfalse => Label10
IL_0214: ldloc.s 4 (UnityEngine.Texture2D)
IL_0216: callvirt UnityEngine.TextureFormat UnityEngine.Texture2D::get_format()
IL_021B: ldc.i4.s 12
IL_021D: bne.un => Label11
IL_0222: ldc.i4.1
IL_0223: ldstr "Segment diffuse is DXT5: "
IL_0228: ldarg.0
IL_0229: call UnityEngine.GameObject UnityEngine.Component::get_gameObject()
IL_022E: callvirt System.String UnityEngine.Object::get_name()
IL_0233: call static System.String System.String::Concat(System.String str0,
System.String str1)
IL_0238: ldarg.0
IL_0239: call UnityEngine.GameObject UnityEngine.Component::get_gameObject()
IL_023E: call static System.Void
ColossalFramework.CODebugBase`1<LogChannel>::Warn(LogChannel ll, System.String msg,
UnityEngine.Object o)
IL_0243: Label10
IL_0243: Label11
IL_0243: ldarg.1
IL_0244: ldfld UnityEngine.Mesh Segment::m_lodMesh
IL_0249: ldnull
IL_024A: call static System.Boolean
UnityEngine.Object::op_Inequality(UnityEngine.Object x, UnityEngine.Object y)
IL_024F: brfalse => Label12
IL_0254: ldc.i4.1
IL_0255: br => Label13
IL_025A: Label12
IL_025A: ldc.i4.0
IL_025B: // end original
IL_025B: Label13
IL_025B: stloc 5 (System.Boolean)
IL_025F: ldarg 1
IL_0263: call static System.Void
NodeMarkup.Manager.MarkupManager::NetInfoInitSegmentInfoPostfix(Segment info)
IL_0268: ldloc 5 (System.Boolean)
IL_026C: ret
DONE

### Harmony id=NodeMarkup, version=2.0.4.0, location=E:\SteamLibrary\steamapps\


common\data-0000000022595390, env/clr=2.0.50727.1433, platform=Win32NT,
ptrsize:runtime/env=8/Bits64, Windows
### Started from System.Object ModsCommon.BasePatcherMod`1<TypeMod>::get_Harmony(),
location E:\SteamLibrary\steamapps\common\data-0000000023EF7040
### At 2023-02-07 02.24.36
### Patch: System.Boolean NetInfo::InitNodeInfo(Node info, System.Boolean&
requireSurfaceMaps, System.Boolean& requireSegmentRenderers, System.Boolean&
requireDirectRenderers)
### Replacement: static System.Boolean NetInfo::NetInfo.InitNodeInfo_Patch2(NetInfo
this, Node info, System.Boolean& requireSurfaceMaps, System.Boolean&
requireSegmentRenderers, System.Boolean& requireDirectRenderers)
IL_0000: Local var 0: System.Single
IL_0000: Local var 1: System.Single
IL_0000: Local var 2: System.String
IL_0000: Local var 3: UnityEngine.Color
IL_0000: Local var 4: UnityEngine.Texture2D
IL_0000: Local var 5: System.Boolean
IL_0000: ldc.i4 0
IL_0005: stloc 5 (System.Boolean)
IL_0009: // start original
IL_0009: ldarg.0
IL_000A: ldfld System.Single NetInfo::m_minHeight
IL_000F: ldc.r4 10
IL_0014: sub
IL_0015: stloc.0
IL_0016: ldarg.0
IL_0017: ldfld System.Single NetInfo::m_maxHeight
IL_001C: ldc.r4 10
IL_0021: add
IL_0022: stloc.1
IL_0023: ldarg.1
IL_0024: ldfld UnityEngine.Mesh Node::m_mesh
IL_0029: ldc.r4 0
IL_002E: ldloc.0
IL_002F: ldloc.1
IL_0030: add
IL_0031: ldc.r4 0.5
IL_0036: mul
IL_0037: ldc.r4 0
IL_003C: newobj System.Void UnityEngine.Vector3::.ctor(System.Single x,
System.Single y, System.Single z)
IL_0041: ldc.r4 128
IL_0046: ldloc.1
IL_0047: ldloc.0
IL_0048: sub
IL_0049: ldc.r4 128
IL_004E: newobj System.Void UnityEngine.Vector3::.ctor(System.Single x,
System.Single y, System.Single z)
IL_0053: newobj System.Void UnityEngine.Bounds::.ctor(UnityEngine.Vector3
center, UnityEngine.Vector3 size)
IL_0058: callvirt System.Void UnityEngine.Mesh::set_bounds(UnityEngine.Bounds
value)
IL_005D: ldarg.1
IL_005E: ldarg.1
IL_005F: ldfld UnityEngine.Mesh Node::m_mesh
IL_0064: stfld UnityEngine.Mesh Node::m_nodeMesh
IL_0069: ldarg.1
IL_006A: ldarg.1
IL_006B: ldfld UnityEngine.Material Node::m_material
IL_0070: newobj System.Void UnityEngine.Material::.ctor(UnityEngine.Material
source)
IL_0075: stfld UnityEngine.Material Node::m_nodeMaterial
IL_007A: ldarg.1
IL_007B: ldfld UnityEngine.Material Node::m_material
IL_0080: ldstr "NetType"
IL_0085: ldc.i4.0
IL_0086: callvirt System.String UnityEngine.Material::GetTag(System.String tag,
System.Boolean searchFallbacks)
IL_008B: stloc.2
IL_008C: ldloc.2
IL_008D: ldstr "TerrainSurface"
IL_0092: call static System.Boolean System.String::op_Equality(System.String
a, System.String b)
IL_0097: brfalse => Label0
IL_009C: ldarg.2
IL_009D: ldc.i4.1
IL_009E: stind.i1
IL_009F: ldarg.1
IL_00A0: ldc.i4.1
IL_00A1: stfld System.Boolean Node::m_requireSurfaceMaps
IL_00A6: br => Label1
IL_00AB: Label0
IL_00AB: ldarg.1
IL_00AC: ldc.i4.0
IL_00AD: stfld System.Boolean Node::m_requireSurfaceMaps
IL_00B2: Label1
IL_00B2: ldloc.2
IL_00B3: ldstr "Fence"
IL_00B8: call static System.Boolean System.String::op_Equality(System.String
a, System.String b)
IL_00BD: brfalse => Label2
IL_00C2: ldarg.0
IL_00C3: ldstr "Heightmap not supported for nodes"
IL_00C8: newobj System.Void PrefabException::.ctor(PrefabInfo info,
System.String message)
IL_00CD: throw
IL_00CE: Label2
IL_00CE: ldloc.2
IL_00CF: ldstr "PowerLine"
IL_00D4: call static System.Boolean System.String::op_Equality(System.String
a, System.String b)
IL_00D9: brfalse => Label3
IL_00DE: ldarg.1
IL_00DF: ldc.i4.1
IL_00E0: stfld System.Boolean Node::m_requireWindSpeed
IL_00E5: ldarg.1
IL_00E6: ldc.i4.1
IL_00E7: stfld System.Boolean Node::m_preserveUVs
IL_00EC: ldarg.1
IL_00ED: ldc.i4.0
IL_00EE: stfld System.Boolean Node::m_generateTangents
IL_00F3: ldarg.1
IL_00F4: ldstr "PowerLines"
IL_00F9: call static System.Int32
UnityEngine.LayerMask::NameToLayer(System.String layerName)
IL_00FE: stfld System.Int32 Node::m_layer
IL_0103: br => Label4
IL_0108: Label3
IL_0108: ldloc.2
IL_0109: ldstr "MetroTunnel"
IL_010E: call static System.Boolean System.String::op_Equality(System.String
a, System.String b)
IL_0113: brfalse => Label5
IL_0118: ldarg.1
IL_0119: ldc.i4.0
IL_011A: stfld System.Boolean Node::m_requireWindSpeed
IL_011F: ldarg.1
IL_0120: ldc.i4.0
IL_0121: stfld System.Boolean Node::m_preserveUVs
IL_0126: ldarg.1
IL_0127: ldc.i4.0
IL_0128: stfld System.Boolean Node::m_generateTangents
IL_012D: ldarg.1
IL_012E: ldstr "MetroTunnels"
IL_0133: call static System.Int32
UnityEngine.LayerMask::NameToLayer(System.String layerName)
IL_0138: stfld System.Int32 Node::m_layer
IL_013D: br => Label6
IL_0142: Label5
IL_0142: ldloc.2
IL_0143: ldstr "NetBuilding"
IL_0148: call static System.Boolean System.String::op_Equality(System.String
a, System.String b)
IL_014D: brfalse => Label7
IL_0152: ldarg.1
IL_0153: ldc.i4.0
IL_0154: stfld System.Boolean Node::m_requireWindSpeed
IL_0159: ldarg.1
IL_015A: ldc.i4.0
IL_015B: stfld System.Boolean Node::m_preserveUVs
IL_0160: ldarg.1
IL_0161: ldc.i4.0
IL_0162: stfld System.Boolean Node::m_generateTangents
IL_0167: ldarg.1
IL_0168: ldstr "NetBuildings"
IL_016D: call static System.Int32
UnityEngine.LayerMask::NameToLayer(System.String layerName)
IL_0172: stfld System.Int32 Node::m_layer
IL_0177: br => Label8
IL_017C: Label7
IL_017C: ldarg.1
IL_017D: ldc.i4.0
IL_017E: stfld System.Boolean Node::m_requireWindSpeed
IL_0183: ldarg.1
IL_0184: ldc.i4.0
IL_0185: stfld System.Boolean Node::m_preserveUVs
IL_018A: ldarg.1
IL_018B: ldc.i4.0
IL_018C: stfld System.Boolean Node::m_generateTangents
IL_0191: ldarg.1
IL_0192: ldarg.0
IL_0193: ldfld System.Int32 PrefabInfo::m_prefabDataLayer
IL_0198: stfld System.Int32 Node::m_layer
IL_019D: Label4
IL_019D: Label6
IL_019D: Label8
IL_019D: ldarg.1
IL_019E: ldfld UnityEngine.Material Node::m_material
IL_01A3: callvirt UnityEngine.Color UnityEngine.Material::get_color()
IL_01A8: stloc.3
IL_01A9: ldloca.s 3 (UnityEngine.Color)
IL_01AB: ldc.r4 0
IL_01B0: stfld System.Single UnityEngine.Color::a
IL_01B5: ldarg.1
IL_01B6: ldfld UnityEngine.Material Node::m_nodeMaterial
IL_01BB: ldloc.3
IL_01BC: callvirt System.Void UnityEngine.Material::set_color(UnityEngine.Color
value)
IL_01C1: ldarg.1
IL_01C2: ldfld System.Boolean Node::m_directConnect
IL_01C7: brfalse => Label9
IL_01CC: ldarg.s 4
IL_01CE: ldc.i4.1
IL_01CF: stind.i1
IL_01D0: br => Label10
IL_01D5: Label9
IL_01D5: ldarg.1
IL_01D6: ldfld UnityEngine.Material Node::m_nodeMaterial
IL_01DB: ldstr "NET_NODE"
IL_01E0: callvirt System.Void UnityEngine.Material::EnableKeyword(System.String
keyword)
IL_01E5: ldarg.3
IL_01E6: ldc.i4.1
IL_01E7: stind.i1
IL_01E8: Label10
IL_01E8: ldarg.1
IL_01E9: ldfld UnityEngine.Material Node::m_material
IL_01EE: callvirt UnityEngine.Texture UnityEngine.Material::get_mainTexture()
IL_01F3: isinst UnityEngine.Texture2D
IL_01F8: stloc.s 4 (UnityEngine.Texture2D)
IL_01FA: ldloc.s 4 (UnityEngine.Texture2D)
IL_01FC: ldnull
IL_01FD: call static System.Boolean
UnityEngine.Object::op_Inequality(UnityEngine.Object x, UnityEngine.Object y)
IL_0202: brfalse => Label11
IL_0207: ldloc.s 4 (UnityEngine.Texture2D)
IL_0209: callvirt UnityEngine.TextureFormat UnityEngine.Texture2D::get_format()
IL_020E: ldc.i4.s 12
IL_0210: bne.un => Label12
IL_0215: ldc.i4.1
IL_0216: ldstr "Node diffuse is DXT5: "
IL_021B: ldarg.0
IL_021C: call UnityEngine.GameObject UnityEngine.Component::get_gameObject()
IL_0221: callvirt System.String UnityEngine.Object::get_name()
IL_0226: call static System.String System.String::Concat(System.String str0,
System.String str1)
IL_022B: ldarg.0
IL_022C: call UnityEngine.GameObject UnityEngine.Component::get_gameObject()
IL_0231: call static System.Void
ColossalFramework.CODebugBase`1<LogChannel>::Warn(LogChannel ll, System.String msg,
UnityEngine.Object o)
IL_0236: Label11
IL_0236: Label12
IL_0236: ldarg.1
IL_0237: ldfld UnityEngine.Mesh Node::m_lodMesh
IL_023C: ldnull
IL_023D: call static System.Boolean
UnityEngine.Object::op_Inequality(UnityEngine.Object x, UnityEngine.Object y)
IL_0242: brfalse => Label13
IL_0247: ldc.i4.1
IL_0248: br => Label14
IL_024D: Label13
IL_024D: ldc.i4.0
IL_024E: // end original
IL_024E: Label14
IL_024E: stloc 5 (System.Boolean)
IL_0252: ldarg 1
IL_0256: call static System.Void
NodeMarkup.Manager.MarkupManager::NetInfoInitNodeInfoPostfix_Rail(Node info)
IL_025B: ldarg 1
IL_025F: call static System.Void
NodeMarkup.Manager.MarkupManager::NetInfoInitNodeInfoPostfix_LevelCrossing(Node
info)
IL_0264: ldloc 5 (System.Boolean)
IL_0268: ret
DONE

### Harmony id=NodeMarkup, version=2.0.4.0, location=E:\SteamLibrary\steamapps\


common\data-0000000022595390, env/clr=2.0.50727.1433, platform=Win32NT,
ptrsize:runtime/env=8/Bits64, Windows
### Started from System.Object ModsCommon.BasePatcherMod`1<TypeMod>::get_Harmony(),
location E:\SteamLibrary\steamapps\common\data-0000000023EF7040
### At 2023-02-07 02.24.36
### Patch: virtual System.Boolean <LoadCustomContent>c__Iterator5::MoveNext()
### Replacement: static System.Boolean
LoadingManager+<LoadCustomContent>c__Iterator5::LoadingManager+<LoadCustomContent>c
__Iterator5.MoveNext_Patch0(<LoadCustomContent>c__Iterator5 this)
IL_0000: Local var 0: System.UInt32
IL_0000: Local var 1: DistrictStyle
IL_0000: Local var 2: UnityEngine.GameObject
IL_0000: Local var 3: ColossalFramework.Packaging.Package/Asset
IL_0000: Local var 4: DistrictStyle
IL_0000: Local var 5: UnityEngine.GameObject
IL_0000: Local var 6: ColossalFramework.Packaging.Package/Asset
IL_0000: Local var 7: DistrictStyle
IL_0000: Local var 8: UnityEngine.GameObject
IL_0000: Local var 9: ColossalFramework.Packaging.Package/Asset
IL_0000: Local var 10: DistrictStyle
IL_0000: Local var 11: UnityEngine.GameObject
IL_0000: Local var 12: ColossalFramework.Packaging.Package/Asset
IL_0000: Local var 13: DistrictStyle
IL_0000: Local var 14: UnityEngine.GameObject
IL_0000: Local var 15: ColossalFramework.Packaging.Package/Asset
IL_0000: Local var 16: DistrictStyleMetaData
IL_0000: Local var 17: System.String[]
IL_0000: Local var 18: System.Int32
IL_0000: Local var 19: System.Exception
IL_0000: Local var 20: System.Int32
IL_0000: Local var 21: ColossalFramework.Packaging.Package/Asset
IL_0000: Local var 22: CustomAssetMetaData
IL_0000: Local var 23: SteamHelper/ExpansionBitMask
IL_0000: Local var 24: SteamHelper/ModderPackBitMask
IL_0000: Local var 25: System.Exception
IL_0000: Local var 26: UnityEngine.GameObject
IL_0000: Local var 27: PrefabInfo
IL_0000: Local var 28: PropInfo
IL_0000: Local var 29: TreeInfo
IL_0000: Local var 30: BuildingInfo
IL_0000: Local var 31: VehicleInfo
IL_0000: Local var 32: CitizenInfo
IL_0000: Local var 33: NetInfo
IL_0000: Local var 34: System.Boolean
IL_0000: Local var 35: AssetDataWrapper/UserAssetData
IL_0000: Local var 36: System.Exception
IL_0000: Local var 37: DistrictStyleMetaData
IL_0000: Local var 38: DistrictStyle
IL_0000: Local var 39: System.Int32
IL_0000: Local var 40: BuildingInfo
IL_0000: Local var 41: System.Exception
IL_0000: Local var 42: NodeMarkup.Manager.MarkingInfo
IL_0000: // start original
IL_0000: ldarg.0
IL_0001: ldfld System.Int32 <LoadCustomContent>c__Iterator5::$PC
IL_0006: stloc.0
IL_0007: ldarg.0
IL_0008: ldc.i4.m1
IL_0009: stfld System.Int32 <LoadCustomContent>c__Iterator5::$PC
IL_000E: ldloc.0
IL_000F: switch => Labels0,1,2,3
IL_0024: br => Label4
IL_0029: Label0
IL_0029: ldarg.0
IL_002A: ldfld LoadingManager <LoadCustomContent>c__Iterator5::$this
IL_002F: ldfld LoadingProfiler LoadingManager::m_loadingProfilerMain
IL_0034: ldstr "LoadCustomContent"
IL_0039: callvirt System.Void LoadingProfiler::BeginLoading(System.String name)
IL_003E: ldarg.0
IL_003F: ldc.i4.0
IL_0040: stfld System.Int32
<LoadCustomContent>c__Iterator5::<buildingsCount>__0
IL_0045: ldarg.0
IL_0046: ldc.i4.0
IL_0047: stfld System.Int32 <LoadCustomContent>c__Iterator5::<propsCount>__0
IL_004C: ldarg.0
IL_004D: ldc.i4.0
IL_004E: stfld System.Int32 <LoadCustomContent>c__Iterator5::<treeCount>__0
IL_0053: ldarg.0
IL_0054: ldc.i4.0
IL_0055: stfld System.Int32 <LoadCustomContent>c__Iterator5::<vehicleCount>__0
IL_005A: ldarg.0
IL_005B: ldc.i4.0
IL_005C: stfld System.Int32 <LoadCustomContent>c__Iterator5::<citizenCount>__0
IL_0061: ldarg.0
IL_0062: ldc.i4.0
IL_0063: stfld System.Int32 <LoadCustomContent>c__Iterator5::<netCount>__0
IL_0068: ldarg.0
IL_0069: ldfld LoadingManager <LoadCustomContent>c__Iterator5::$this
IL_006E: ldfld LoadingProfiler LoadingManager::m_loadingProfilerCustomContent
IL_0073: callvirt System.Void LoadingProfiler::Reset()
IL_0078: ldarg.0
IL_0079: ldfld LoadingManager <LoadCustomContent>c__Iterator5::$this
IL_007E: ldfld LoadingProfiler LoadingManager::m_loadingProfilerCustomAsset
IL_0083: callvirt System.Void LoadingProfiler::Reset()
IL_0088: ldarg.0
IL_0089: ldfld LoadingManager <LoadCustomContent>c__Iterator5::$this
IL_008E: ldfld LoadingProfiler LoadingManager::m_loadingProfilerCustomContent
IL_0093: ldstr "District Styles"
IL_0098: callvirt System.Void LoadingProfiler::BeginLoading(System.String name)
IL_009D: ldarg.0
IL_009E: ldfld LoadingManager <LoadCustomContent>c__Iterator5::$this
IL_00A3: ldfld LoadingProfiler LoadingManager::m_loadingProfilerCustomAsset
IL_00A8: callvirt System.Void LoadingProfiler::PauseLoading()
IL_00AD: ldarg.0
IL_00AE: newobj System.Void
System.Collections.Generic.List`1<DistrictStyle>::.ctor()
IL_00B3: stfld System.Collections.Generic.List`1<DistrictStyle>
<LoadCustomContent>c__Iterator5::<styles>__0
IL_00B8: ldarg.0
IL_00B9: newobj System.Void
System.Collections.Generic.HashSet`1<System.String>::.ctor()
IL_00BE: stfld System.Collections.Generic.HashSet`1<System.String>
<LoadCustomContent>c__Iterator5::<styleBuildings>__0
IL_00C3: ldarg.0
IL_00C4: newobj System.Void FastList`1<DistrictStyleMetaData>::.ctor()
IL_00C9: stfld FastList`1<DistrictStyleMetaData>
<LoadCustomContent>c__Iterator5::<cachedStyles>__0
IL_00CE: ldarg.0
IL_00CF: newobj System.Void
FastList`1<ColossalFramework.Packaging.Package>::.ctor()
IL_00D4: stfld FastList`1<ColossalFramework.Packaging.Package>
<LoadCustomContent>c__Iterator5::<cachedStylePackages>__0
IL_00D9: ldarg.0
IL_00DA: ldstr "System."
IL_00DF: ldsfld System.String DistrictStyle::kEuropeanStyleName
IL_00E4: call static System.String System.String::Concat(System.String str0,
System.String str1)
IL_00E9: call static ColossalFramework.Packaging.Asset
ColossalFramework.Packaging.PackageManager::FindAssetByName(System.String name)
IL_00EE: stfld ColossalFramework.Packaging.Asset
<LoadCustomContent>c__Iterator5::<europeanStyles>__0
IL_00F3: ldarg.0
IL_00F4: ldfld ColossalFramework.Packaging.Asset
<LoadCustomContent>c__Iterator5::<europeanStyles>__0
IL_00F9: ldnull
IL_00FA: call static System.Boolean
ColossalFramework.Packaging.Asset::op_Inequality(ColossalFramework.Packaging.Asset
a, ColossalFramework.Packaging.Asset b)
IL_00FF: brfalse => Label5
IL_0104: ldarg.0
IL_0105: ldfld ColossalFramework.Packaging.Asset
<LoadCustomContent>c__Iterator5::<europeanStyles>__0
IL_010A: callvirt System.Boolean
ColossalFramework.Packaging.Asset::get_isEnabled()
IL_010F: brfalse => Label6
IL_0114: ldsfld System.String DistrictStyle::kEuropeanStyleName
IL_0119: ldc.i4.1
IL_011A: newobj System.Void DistrictStyle::.ctor(System.String name,
System.Boolean builtIn)
IL_011F: stloc.1
IL_0120: ldstr "European Style new"
IL_0125: call static UnityEngine.GameObject
UnityEngine.GameObject::Find(System.String name)
IL_012A: stloc.2
IL_012B: ldarg.0
IL_012C: ldfld LoadingManager <LoadCustomContent>c__Iterator5::$this
IL_0131: ldloc.2
IL_0132: ldloc.1
IL_0133: ldc.i4.0
IL_0134: call System.Void
LoadingManager::AddChildrenToBuiltinStyle(UnityEngine.GameObject obj, DistrictStyle
style, System.Boolean spawnNormally)
IL_0139: ldstr "European Style others"
IL_013E: call static UnityEngine.GameObject
UnityEngine.GameObject::Find(System.String name)
IL_0143: stloc.2
IL_0144: ldarg.0
IL_0145: ldfld LoadingManager <LoadCustomContent>c__Iterator5::$this
IL_014A: ldloc.2
IL_014B: ldloc.1
IL_014C: ldc.i4.1
IL_014D: call System.Void
LoadingManager::AddChildrenToBuiltinStyle(UnityEngine.GameObject obj, DistrictStyle
style, System.Boolean spawnNormally)
IL_0152: ldarg.0
IL_0153: ldfld System.Collections.Generic.List`1<DistrictStyle>
<LoadCustomContent>c__Iterator5::<styles>__0
IL_0158: ldloc.1
IL_0159: callvirt virtual System.Void
System.Collections.Generic.List`1<DistrictStyle>::Add(DistrictStyle item)
IL_015E: Label5
IL_015E: Label6
IL_015E: ldarg.0
IL_015F: ldfld LoadingManager <LoadCustomContent>c__Iterator5::$this
IL_0164: ldc.i4 715190
IL_0169: call System.Boolean LoadingManager::DLC(System.UInt32 id)
IL_016E: brfalse => Label7
IL_0173: ldstr "System."
IL_0178: ldsfld System.String DistrictStyle::kEuropeanSuburbiaStyleName
IL_017D: call static System.String System.String::Concat(System.String str0,
System.String str1)
IL_0182: call static ColossalFramework.Packaging.Asset
ColossalFramework.Packaging.PackageManager::FindAssetByName(System.String name)
IL_0187: stloc.3
IL_0188: ldloc.3
IL_0189: ldnull
IL_018A: call static System.Boolean
ColossalFramework.Packaging.Asset::op_Inequality(ColossalFramework.Packaging.Asset
a, ColossalFramework.Packaging.Asset b)
IL_018F: brfalse => Label8
IL_0194: ldloc.3
IL_0195: callvirt System.Boolean
ColossalFramework.Packaging.Asset::get_isEnabled()
IL_019A: brfalse => Label9
IL_019F: ldsfld System.String DistrictStyle::kEuropeanSuburbiaStyleName
IL_01A4: ldc.i4.1
IL_01A5: newobj System.Void DistrictStyle::.ctor(System.String name,
System.Boolean builtIn)
IL_01AA: stloc.s 4 (DistrictStyle)
IL_01AC: ldstr "Modder Pack 3"
IL_01B1: call static UnityEngine.GameObject
UnityEngine.GameObject::Find(System.String name)
IL_01B6: stloc.s 5 (UnityEngine.GameObject)
IL_01B8: ldarg.0
IL_01B9: ldfld LoadingManager <LoadCustomContent>c__Iterator5::$this
IL_01BE: ldloc.s 5 (UnityEngine.GameObject)
IL_01C0: ldloc.s 4 (DistrictStyle)
IL_01C2: ldc.i4.0
IL_01C3: call System.Void
LoadingManager::AddChildrenToBuiltinStyle(UnityEngine.GameObject obj, DistrictStyle
style, System.Boolean spawnNormally)
IL_01C8: ldarg.0
IL_01C9: ldfld System.Collections.Generic.List`1<DistrictStyle>
<LoadCustomContent>c__Iterator5::<styles>__0
IL_01CE: ldloc.s 4 (DistrictStyle)
IL_01D0: callvirt virtual System.Void
System.Collections.Generic.List`1<DistrictStyle>::Add(DistrictStyle item)
IL_01D5: Label7
IL_01D5: Label8
IL_01D5: Label9
IL_01D5: ldarg.0
IL_01D6: ldfld LoadingManager <LoadCustomContent>c__Iterator5::$this
IL_01DB: ldc.i4 1148020
IL_01E0: call System.Boolean LoadingManager::DLC(System.UInt32 id)
IL_01E5: brfalse => Label10
IL_01EA: ldstr "System."
IL_01EF: ldsfld System.String DistrictStyle::kModderPack5StyleName
IL_01F4: call static System.String System.String::Concat(System.String str0,
System.String str1)
IL_01F9: call static ColossalFramework.Packaging.Asset
ColossalFramework.Packaging.PackageManager::FindAssetByName(System.String name)
IL_01FE: stloc.s 6 (ColossalFramework.Packaging.Package+Asset)
IL_0200: ldloc.s 6 (ColossalFramework.Packaging.Package+Asset)
IL_0202: ldnull
IL_0203: call static System.Boolean
ColossalFramework.Packaging.Asset::op_Inequality(ColossalFramework.Packaging.Asset
a, ColossalFramework.Packaging.Asset b)
IL_0208: brfalse => Label11
IL_020D: ldloc.s 6 (ColossalFramework.Packaging.Package+Asset)
IL_020F: callvirt System.Boolean
ColossalFramework.Packaging.Asset::get_isEnabled()
IL_0214: brfalse => Label12
IL_0219: ldsfld System.String DistrictStyle::kModderPack5StyleName
IL_021E: ldc.i4.1
IL_021F: newobj System.Void DistrictStyle::.ctor(System.String name,
System.Boolean builtIn)
IL_0224: stloc.s 7 (DistrictStyle)
IL_0226: ldstr "Modder Pack 5"
IL_022B: call static UnityEngine.GameObject
UnityEngine.GameObject::Find(System.String name)
IL_0230: stloc.s 8 (UnityEngine.GameObject)
IL_0232: ldarg.0
IL_0233: ldfld LoadingManager <LoadCustomContent>c__Iterator5::$this
IL_0238: ldloc.s 8 (UnityEngine.GameObject)
IL_023A: ldloc.s 7 (DistrictStyle)
IL_023C: ldc.i4.0
IL_023D: call System.Void
LoadingManager::AddChildrenToBuiltinStyle(UnityEngine.GameObject obj, DistrictStyle
style, System.Boolean spawnNormally)
IL_0242: ldarg.0
IL_0243: ldfld System.Collections.Generic.List`1<DistrictStyle>
<LoadCustomContent>c__Iterator5::<styles>__0
IL_0248: ldloc.s 7 (DistrictStyle)
IL_024A: callvirt virtual System.Void
System.Collections.Generic.List`1<DistrictStyle>::Add(DistrictStyle item)
IL_024F: Label10
IL_024F: Label11
IL_024F: Label12
IL_024F: ldarg.0
IL_0250: ldfld LoadingManager <LoadCustomContent>c__Iterator5::$this
IL_0255: ldc.i4 1992290
IL_025A: call System.Boolean LoadingManager::DLC(System.UInt32 id)
IL_025F: brfalse => Label13
IL_0264: ldstr "System."
IL_0269: ldsfld System.String DistrictStyle::kModderPack11StyleName
IL_026E: call static System.String System.String::Concat(System.String str0,
System.String str1)
IL_0273: call static ColossalFramework.Packaging.Asset
ColossalFramework.Packaging.PackageManager::FindAssetByName(System.String name)
IL_0278: stloc.s 9 (ColossalFramework.Packaging.Package+Asset)
IL_027A: ldloc.s 9 (ColossalFramework.Packaging.Package+Asset)
IL_027C: ldnull
IL_027D: call static System.Boolean
ColossalFramework.Packaging.Asset::op_Inequality(ColossalFramework.Packaging.Asset
a, ColossalFramework.Packaging.Asset b)
IL_0282: brfalse => Label14
IL_0287: ldloc.s 9 (ColossalFramework.Packaging.Package+Asset)
IL_0289: callvirt System.Boolean
ColossalFramework.Packaging.Asset::get_isEnabled()
IL_028E: brfalse => Label15
IL_0293: ldsfld System.String DistrictStyle::kModderPack11StyleName
IL_0298: ldc.i4.1
IL_0299: newobj System.Void DistrictStyle::.ctor(System.String name,
System.Boolean builtIn)
IL_029E: stloc.s 10 (DistrictStyle)
IL_02A0: ldstr "Modder Pack 11"
IL_02A5: call static UnityEngine.GameObject
UnityEngine.GameObject::Find(System.String name)
IL_02AA: stloc.s 11 (UnityEngine.GameObject)
IL_02AC: ldarg.0
IL_02AD: ldfld LoadingManager <LoadCustomContent>c__Iterator5::$this
IL_02B2: ldloc.s 11 (UnityEngine.GameObject)
IL_02B4: ldloc.s 10 (DistrictStyle)
IL_02B6: ldc.i4.0
IL_02B7: call System.Void
LoadingManager::AddChildrenToBuiltinStyle(UnityEngine.GameObject obj, DistrictStyle
style, System.Boolean spawnNormally)
IL_02BC: ldarg.0
IL_02BD: ldfld System.Collections.Generic.List`1<DistrictStyle>
<LoadCustomContent>c__Iterator5::<styles>__0
IL_02C2: ldloc.s 10 (DistrictStyle)
IL_02C4: callvirt virtual System.Void
System.Collections.Generic.List`1<DistrictStyle>::Add(DistrictStyle item)
IL_02C9: Label13
IL_02C9: Label14
IL_02C9: Label15
IL_02C9: ldarg.0
IL_02CA: ldfld LoadingManager <LoadCustomContent>c__Iterator5::$this
IL_02CF: ldc.i4 2144480
IL_02D4: call System.Boolean LoadingManager::DLC(System.UInt32 id)
IL_02D9: brfalse => Label16
IL_02DE: ldstr "System."
IL_02E3: ldsfld System.String DistrictStyle::kModderPack14StyleName
IL_02E8: call static System.String System.String::Concat(System.String str0,
System.String str1)
IL_02ED: call static ColossalFramework.Packaging.Asset
ColossalFramework.Packaging.PackageManager::FindAssetByName(System.String name)
IL_02F2: stloc.s 12 (ColossalFramework.Packaging.Package+Asset)
IL_02F4: ldloc.s 12 (ColossalFramework.Packaging.Package+Asset)
IL_02F6: ldnull
IL_02F7: call static System.Boolean
ColossalFramework.Packaging.Asset::op_Inequality(ColossalFramework.Packaging.Asset
a, ColossalFramework.Packaging.Asset b)
IL_02FC: brfalse => Label17
IL_0301: ldloc.s 12 (ColossalFramework.Packaging.Package+Asset)
IL_0303: callvirt System.Boolean
ColossalFramework.Packaging.Asset::get_isEnabled()
IL_0308: brfalse => Label18
IL_030D: ldsfld System.String DistrictStyle::kModderPack14StyleName
IL_0312: ldc.i4.1
IL_0313: newobj System.Void DistrictStyle::.ctor(System.String name,
System.Boolean builtIn)
IL_0318: stloc.s 13 (DistrictStyle)
IL_031A: ldstr "Modder Pack 14"
IL_031F: call static UnityEngine.GameObject
UnityEngine.GameObject::Find(System.String name)
IL_0324: stloc.s 14 (UnityEngine.GameObject)
IL_0326: ldarg.0
IL_0327: ldfld LoadingManager <LoadCustomContent>c__Iterator5::$this
IL_032C: ldloc.s 14 (UnityEngine.GameObject)
IL_032E: ldloc.s 13 (DistrictStyle)
IL_0330: ldc.i4.0
IL_0331: call System.Void
LoadingManager::AddChildrenToBuiltinStyle(UnityEngine.GameObject obj, DistrictStyle
style, System.Boolean spawnNormally)
IL_0336: ldarg.0
IL_0337: ldfld System.Collections.Generic.List`1<DistrictStyle>
<LoadCustomContent>c__Iterator5::<styles>__0
IL_033C: ldloc.s 13 (DistrictStyle)
IL_033E: callvirt virtual System.Void
System.Collections.Generic.List`1<DistrictStyle>::Add(DistrictStyle item)
IL_0343: Label16
IL_0343: Label17
IL_0343: Label18
IL_0343: ldarg.0
IL_0344: ldc.i4.1
IL_0345: newarr ColossalFramework.Packaging.Package+AssetType
IL_034A: dup
IL_034B: ldc.i4.0
IL_034C: ldsfld ColossalFramework.Packaging.AssetType
UserAssetType::DistrictStyleMetaData
IL_0351: stelem.ref
IL_0352: call static
System.Collections.Generic.IEnumerable`1<ColossalFramework.Packaging.Asset>
ColossalFramework.Packaging.PackageManager::FilterAssets(AssetType[] assetTypes)
IL_0357: callvirt abstract virtual
System.Collections.Generic.IEnumerator`1<ColossalFramework.Packaging.Asset>
System.Collections.Generic.IEnumerable`1<ColossalFramework.Packaging.Asset>::GetEnu
merator()
IL_035C: stfld
System.Collections.Generic.IEnumerator`1<ColossalFramework.Packaging.Asset>
<LoadCustomContent>c__Iterator5::$locvar0
.try
{
IL_0361: br => Label19
IL_0366: Label29
IL_0366: ldarg.0
IL_0367: ldfld
System.Collections.Generic.IEnumerator`1<ColossalFramework.Packaging.Asset>
<LoadCustomContent>c__Iterator5::$locvar0
IL_036C: callvirt abstract virtual ColossalFramework.Packaging.Asset
System.Collections.Generic.IEnumerator`1<ColossalFramework.Packaging.Asset>::get_Cu
rrent()
IL_0371: stloc.s 15 (ColossalFramework.Packaging.Package+Asset)
.try
{
IL_0373: ldloc.s 15 (ColossalFramework.Packaging.Package+Asset)
IL_0375: ldnull
IL_0376: call static System.Boolean
ColossalFramework.Packaging.Asset::op_Inequality(ColossalFramework.Packaging.Asset
a, ColossalFramework.Packaging.Asset b)
IL_037B: brfalse => Label20
IL_0380: ldloc.s 15 (ColossalFramework.Packaging.Package+Asset)
IL_0382: callvirt System.Boolean
ColossalFramework.Packaging.Asset::get_isEnabled()
IL_0387: brfalse => Label21
IL_038C: ldloc.s 15 (ColossalFramework.Packaging.Package+Asset)
IL_038E: callvirt DistrictStyleMetaData
ColossalFramework.Packaging.Asset::Instantiate()
IL_0393: stloc.s 16 (DistrictStyleMetaData)
IL_0395: ldloc.s 16 (DistrictStyleMetaData)
IL_0397: brfalse => Label22
IL_039C: ldloc.s 16 (DistrictStyleMetaData)
IL_039E: ldfld System.Boolean DistrictStyleMetaData::builtin
IL_03A3: brtrue => Label23
IL_03A8: ldarg.0
IL_03A9: ldfld FastList`1<DistrictStyleMetaData>
<LoadCustomContent>c__Iterator5::<cachedStyles>__0
IL_03AE: ldloc.s 16 (DistrictStyleMetaData)
IL_03B0: callvirt System.Void
FastList`1<DistrictStyleMetaData>::Add(DistrictStyleMetaData item)
IL_03B5: ldarg.0
IL_03B6: ldfld FastList`1<ColossalFramework.Packaging.Package>
<LoadCustomContent>c__Iterator5::<cachedStylePackages>__0
IL_03BB: ldloc.s 15 (ColossalFramework.Packaging.Package+Asset)
IL_03BD: callvirt ColossalFramework.Packaging.Package
ColossalFramework.Packaging.Asset::get_package()
IL_03C2: callvirt System.Void
FastList`1<ColossalFramework.Packaging.Package>::Add(ColossalFramework.Packaging.Pa
ckage item)
IL_03C7: ldloc.s 16 (DistrictStyleMetaData)
IL_03C9: ldfld System.String[] DistrictStyleMetaData::assets
IL_03CE: brfalse => Label24
IL_03D3: ldloc.s 16 (DistrictStyleMetaData)
IL_03D5: ldfld System.String[] DistrictStyleMetaData::assets
IL_03DA: stloc.s 17 (System.String[])
IL_03DC: ldc.i4.0
IL_03DD: stloc.s 18 (System.Int32)
IL_03DF: br => Label25
IL_03E4: Label26
IL_03E4: ldarg.0
IL_03E5: ldfld System.Collections.Generic.HashSet`1<System.String>
<LoadCustomContent>c__Iterator5::<styleBuildings>__0
IL_03EA: ldloc.s 17 (System.String[])
IL_03EC: ldloc.s 18 (System.Int32)
IL_03EE: ldelem.ref
IL_03EF: callvirt System.Boolean
System.Collections.Generic.HashSet`1<System.String>::Add(System.String item)
IL_03F4: pop
IL_03F5: ldloc.s 18 (System.Int32)
IL_03F7: ldc.i4.1
IL_03F8: add
IL_03F9: stloc.s 18 (System.Int32)
IL_03FB: Label25
IL_03FB: ldloc.s 18 (System.Int32)
IL_03FD: ldloc.s 17 (System.String[])
IL_03FF: ldlen
IL_0400: conv.i4
IL_0401: blt => Label26
IL_0406: Label20
IL_0406: Label21
IL_0406: Label22
IL_0406: Label23
IL_0406: Label24
IL_0406: leave => Label27
IL_040B: leave => (autogenerated)
} // end try
.catch System.Exception
{
IL_0410: stloc.s 19 (System.Exception)
IL_0412: ldc.i4.s 32
IL_0414: ldc.i4.5
IL_0415: newarr System.Object
IL_041A: dup
IL_041B: ldc.i4.0
IL_041C: ldloc.s 19 (System.Exception)
IL_041E: callvirt virtual System.Type System.Exception::GetType()
IL_0423: stelem.ref
IL_0424: dup
IL_0425: ldc.i4.1
IL_0426: ldstr ": Loading custom district style failed["
IL_042B: stelem.ref
IL_042C: dup
IL_042D: ldc.i4.2
IL_042E: ldloc.s 15 (ColossalFramework.Packaging.Package+Asset)
IL_0430: stelem.ref
IL_0431: dup
IL_0432: ldc.i4.3
IL_0433: ldstr "]\n"
IL_0438: stelem.ref
IL_0439: dup
IL_043A: ldc.i4.4
IL_043B: ldloc.s 19 (System.Exception)
IL_043D: callvirt virtual System.String
System.Exception::get_Message()
IL_0442: stelem.ref
IL_0443: call static System.String
System.String::Concat(System.Object[] args)
IL_0448: call static System.Void
ColossalFramework.CODebugBase`1<LogChannel>::Warn(LogChannel ll, System.String msg)
IL_044D: leave => Label28
IL_0452: leave => (autogenerated)
} // end handler
IL_0457: Label19
IL_0457: Label27
IL_0457: Label28
IL_0457: ldarg.0
IL_0458: ldfld
System.Collections.Generic.IEnumerator`1<ColossalFramework.Packaging.Asset>
<LoadCustomContent>c__Iterator5::$locvar0
IL_045D: callvirt abstract virtual System.Boolean
System.Collections.IEnumerator::MoveNext()
IL_0462: brtrue => Label29
IL_0467: leave => Label30
IL_046C: leave => (autogenerated)
} // end try
.finally
{
IL_0471: ldarg.0
IL_0472: ldfld
System.Collections.Generic.IEnumerator`1<ColossalFramework.Packaging.Asset>
<LoadCustomContent>c__Iterator5::$locvar0
IL_0477: brfalse => Label31
IL_047C: ldarg.0
IL_047D: ldfld
System.Collections.Generic.IEnumerator`1<ColossalFramework.Packaging.Asset>
<LoadCustomContent>c__Iterator5::$locvar0
IL_0482: callvirt abstract virtual System.Void
System.IDisposable::Dispose()
IL_0487: Label31
IL_0487: endfinally
IL_0488: leave => (autogenerated)
} // end handler
IL_0489: Label30
IL_0489: ldarg.0
IL_048A: ldfld LoadingManager <LoadCustomContent>c__Iterator5::$this
IL_048F: ldfld LoadingProfiler LoadingManager::m_loadingProfilerCustomAsset
IL_0494: callvirt System.Void LoadingProfiler::ContinueLoading()
IL_0499: ldarg.0
IL_049A: ldfld LoadingManager <LoadCustomContent>c__Iterator5::$this
IL_049F: ldfld LoadingProfiler LoadingManager::m_loadingProfilerCustomContent
IL_04A4: callvirt System.Void LoadingProfiler::EndLoading()
IL_04A9: ldarg.0
IL_04AA: ldsfld System.Int32 LoadingManager::kCustomAssetLoadOrderLevels
IL_04AF: newarr System.Collections.Generic.List`1[CustomAssetMetaData]
IL_04B4: stfld System.Collections.Generic.List`1[]
<LoadCustomContent>c__Iterator5::<assetLoadQueue>__0
IL_04B9: ldc.i4.0
IL_04BA: stloc.s 20 (System.Int32)
IL_04BC: br => Label32
IL_04C1: Label33
IL_04C1: ldarg.0
IL_04C2: ldfld System.Collections.Generic.List`1[]
<LoadCustomContent>c__Iterator5::<assetLoadQueue>__0
IL_04C7: ldloc.s 20 (System.Int32)
IL_04C9: newobj System.Void
System.Collections.Generic.List`1<CustomAssetMetaData>::.ctor()
IL_04CE: stelem.ref
IL_04CF: ldloc.s 20 (System.Int32)
IL_04D1: ldc.i4.1
IL_04D2: add
IL_04D3: stloc.s 20 (System.Int32)
IL_04D5: Label32
IL_04D5: ldloc.s 20 (System.Int32)
IL_04D7: ldsfld System.Int32 LoadingManager::kCustomAssetLoadOrderLevels
IL_04DC: blt => Label33
IL_04E1: ldarg.0
IL_04E2: call static ExpansionBitMask SteamHelper::GetOwnedExpansionMask()
IL_04E7: stfld ExpansionBitMask
<LoadCustomContent>c__Iterator5::<ownedExpansionMask>__0
IL_04EC: ldarg.0
IL_04ED: call static ModderPackBitMask SteamHelper::GetOwnedModderPackMask()
IL_04F2: stfld ModderPackBitMask
<LoadCustomContent>c__Iterator5::<ownedModderPackMask>__0
IL_04F7: ldarg.0
IL_04F8: ldfld LoadingManager <LoadCustomContent>c__Iterator5::$this
IL_04FD: ldfld LoadingProfiler LoadingManager::m_loadingProfilerCustomContent
IL_0502: ldstr "Calculating asset load order"
IL_0507: callvirt System.Void LoadingProfiler::BeginLoading(System.String name)
IL_050C: ldarg.0
IL_050D: ldc.i4.1
IL_050E: newarr ColossalFramework.Packaging.Package+AssetType
IL_0513: dup
IL_0514: ldc.i4.0
IL_0515: ldsfld ColossalFramework.Packaging.AssetType
UserAssetType::CustomAssetMetaData
IL_051A: stelem.ref
IL_051B: call static
System.Collections.Generic.IEnumerable`1<ColossalFramework.Packaging.Asset>
ColossalFramework.Packaging.PackageManager::FilterAssets(AssetType[] assetTypes)
IL_0520: callvirt abstract virtual
System.Collections.Generic.IEnumerator`1<ColossalFramework.Packaging.Asset>
System.Collections.Generic.IEnumerable`1<ColossalFramework.Packaging.Asset>::GetEnu
merator()
IL_0525: stfld
System.Collections.Generic.IEnumerator`1<ColossalFramework.Packaging.Asset>
<LoadCustomContent>c__Iterator5::$locvar1
.try
{
IL_052A: br => Label34
IL_052F: Label59
IL_052F: ldarg.0
IL_0530: ldfld
System.Collections.Generic.IEnumerator`1<ColossalFramework.Packaging.Asset>
<LoadCustomContent>c__Iterator5::$locvar1
IL_0535: callvirt abstract virtual ColossalFramework.Packaging.Asset
System.Collections.Generic.IEnumerator`1<ColossalFramework.Packaging.Asset>::get_Cu
rrent()
IL_053A: stloc.s 21 (ColossalFramework.Packaging.Package+Asset)
.try
{
IL_053C: ldloc.s 21 (ColossalFramework.Packaging.Package+Asset)
IL_053E: ldnull
IL_053F: call static System.Boolean
ColossalFramework.Packaging.Asset::op_Inequality(ColossalFramework.Packaging.Asset
a, ColossalFramework.Packaging.Asset b)
IL_0544: brfalse => Label35
IL_0549: ldloc.s 21 (ColossalFramework.Packaging.Package+Asset)
IL_054B: callvirt System.Boolean
ColossalFramework.Packaging.Asset::get_isEnabled()
IL_0550: brtrue => Label36
IL_0555: ldarg.0
IL_0556: ldfld System.Collections.Generic.HashSet`1<System.String>
<LoadCustomContent>c__Iterator5::<styleBuildings>__0
IL_055B: ldloc.s 21 (ColossalFramework.Packaging.Package+Asset)
IL_055D: callvirt System.String
ColossalFramework.Packaging.Asset::get_fullName()
IL_0562: callvirt virtual System.Boolean
System.Collections.Generic.HashSet`1<System.String>::Contains(System.String item)
IL_0567: brfalse => Label37
IL_056C: Label36
IL_056C: ldloc.s 21 (ColossalFramework.Packaging.Package+Asset)
IL_056E: callvirt CustomAssetMetaData
ColossalFramework.Packaging.Asset::Instantiate()
IL_0573: stloc.s 22 (CustomAssetMetaData)
IL_0575: ldloc.s 22 (CustomAssetMetaData)
IL_0577: brtrue => Label38
IL_057C: leave => Label39
IL_0581: Label38
IL_0581: ldloc.s 22 (CustomAssetMetaData)
IL_0583: ldloca.s 23 (SteamHelper+ExpansionBitMask)
IL_0585: ldloca.s 24 (SteamHelper+ModderPackBitMask)
IL_0587: call static System.Void
AssetImporterAssetTemplate::GetAssetDLCMask(CustomAssetMetaData meta,
ExpansionBitMask& expansionMask, ModderPackBitMask& modderPackMask)
IL_058C: ldloc.s 23 (SteamHelper+ExpansionBitMask)
IL_058E: ldarg.0
IL_058F: ldfld ExpansionBitMask
<LoadCustomContent>c__Iterator5::<ownedExpansionMask>__0
IL_0594: not
IL_0595: and
IL_0596: brtrue => Label40
IL_059B: ldloc.s 24 (SteamHelper+ModderPackBitMask)
IL_059D: ldarg.0
IL_059E: ldfld ModderPackBitMask
<LoadCustomContent>c__Iterator5::<ownedModderPackMask>__0
IL_05A3: not
IL_05A4: and
IL_05A5: brtrue => Label41
IL_05AA: ldloc.s 22 (CustomAssetMetaData)
IL_05AC: ldfld Type CustomAssetMetaData::type
IL_05B1: ldc.i4.7
IL_05B2: beq => Label42
IL_05B7: ldloc.s 22 (CustomAssetMetaData)
IL_05B9: ldfld Type CustomAssetMetaData::type
IL_05BE: ldc.i4.8
IL_05BF: bne.un => Label43
IL_05C4: Label42
IL_05C4: ldarg.0
IL_05C5: ldfld System.Collections.Generic.List`1[]
<LoadCustomContent>c__Iterator5::<assetLoadQueue>__0
IL_05CA: ldc.i4.0
IL_05CB: ldelem.ref
IL_05CC: ldloc.s 22 (CustomAssetMetaData)
IL_05CE: callvirt virtual System.Void
System.Collections.Generic.List`1<CustomAssetMetaData>::Add(CustomAssetMetaData
item)
IL_05D3: br => Label44
IL_05D8: Label43
IL_05D8: ldloc.s 22 (CustomAssetMetaData)
IL_05DA: ldfld Type CustomAssetMetaData::type
IL_05DF: ldc.i4.1
IL_05E0: beq => Label45
IL_05E5: ldloc.s 22 (CustomAssetMetaData)
IL_05E7: ldfld Type CustomAssetMetaData::type
IL_05EC: ldc.i4.2
IL_05ED: beq => Label46
IL_05F2: ldloc.s 22 (CustomAssetMetaData)
IL_05F4: ldfld Type CustomAssetMetaData::type
IL_05F9: ldc.i4.4
IL_05FA: bne.un => Label47
IL_05FF: Label45
IL_05FF: Label46
IL_05FF: ldarg.0
IL_0600: ldfld System.Collections.Generic.List`1[]
<LoadCustomContent>c__Iterator5::<assetLoadQueue>__0
IL_0605: ldc.i4.1
IL_0606: ldelem.ref
IL_0607: ldloc.s 22 (CustomAssetMetaData)
IL_0609: callvirt virtual System.Void
System.Collections.Generic.List`1<CustomAssetMetaData>::Add(CustomAssetMetaData
item)
IL_060E: br => Label48
IL_0613: Label47
IL_0613: ldloc.s 22 (CustomAssetMetaData)
IL_0615: ldfld Type CustomAssetMetaData::type
IL_061A: ldc.i4.s 11
IL_061C: bne.un => Label49
IL_0621: ldarg.0
IL_0622: ldfld System.Collections.Generic.List`1[]
<LoadCustomContent>c__Iterator5::<assetLoadQueue>__0
IL_0627: ldc.i4.2
IL_0628: ldelem.ref
IL_0629: ldloc.s 22 (CustomAssetMetaData)
IL_062B: callvirt virtual System.Void
System.Collections.Generic.List`1<CustomAssetMetaData>::Add(CustomAssetMetaData
item)
IL_0630: br => Label50
IL_0635: Label49
IL_0635: ldloc.s 22 (CustomAssetMetaData)
IL_0637: ldfld Type CustomAssetMetaData::type
IL_063C: ldc.i4.s 10
IL_063E: bne.un => Label51
IL_0643: ldarg.0
IL_0644: ldfld System.Collections.Generic.List`1[]
<LoadCustomContent>c__Iterator5::<assetLoadQueue>__0
IL_0649: ldc.i4.3
IL_064A: ldelem.ref
IL_064B: ldloc.s 22 (CustomAssetMetaData)
IL_064D: callvirt virtual System.Void
System.Collections.Generic.List`1<CustomAssetMetaData>::Add(CustomAssetMetaData
item)
IL_0652: br => Label52
IL_0657: Label51
IL_0657: ldloc.s 22 (CustomAssetMetaData)
IL_0659: ldfld Type CustomAssetMetaData::type
IL_065E: ldc.i4.s 9
IL_0660: bne.un => Label53
IL_0665: ldarg.0
IL_0666: ldfld System.Collections.Generic.List`1[]
<LoadCustomContent>c__Iterator5::<assetLoadQueue>__0
IL_066B: ldc.i4.4
IL_066C: ldelem.ref
IL_066D: ldloc.s 22 (CustomAssetMetaData)
IL_066F: callvirt virtual System.Void
System.Collections.Generic.List`1<CustomAssetMetaData>::Add(CustomAssetMetaData
item)
IL_0674: br => Label54
IL_0679: Label53
IL_0679: ldloc.s 22 (CustomAssetMetaData)
IL_067B: ldfld Type CustomAssetMetaData::type
IL_0680: ldc.i4.6
IL_0681: bne.un => Label55
IL_0686: ldarg.0
IL_0687: ldfld System.Collections.Generic.List`1[]
<LoadCustomContent>c__Iterator5::<assetLoadQueue>__0
IL_068C: ldc.i4.5
IL_068D: ldelem.ref
IL_068E: ldloc.s 22 (CustomAssetMetaData)
IL_0690: callvirt virtual System.Void
System.Collections.Generic.List`1<CustomAssetMetaData>::Add(CustomAssetMetaData
item)
IL_0695: br => Label56
IL_069A: Label55
IL_069A: ldarg.0
IL_069B: ldfld System.Collections.Generic.List`1[]
<LoadCustomContent>c__Iterator5::<assetLoadQueue>__0
IL_06A0: ldc.i4.6
IL_06A1: ldelem.ref
IL_06A2: ldloc.s 22 (CustomAssetMetaData)
IL_06A4: callvirt virtual System.Void
System.Collections.Generic.List`1<CustomAssetMetaData>::Add(CustomAssetMetaData
item)
IL_06A9: Label35
IL_06A9: Label37
IL_06A9: Label40
IL_06A9: Label41
IL_06A9: Label44
IL_06A9: Label48
IL_06A9: Label50
IL_06A9: Label52
IL_06A9: Label54
IL_06A9: Label56
IL_06A9: leave => Label57
IL_06AE: leave => (autogenerated)
} // end try
.catch System.Exception
{
IL_06B3: stloc.s 25 (System.Exception)
IL_06B5: ldc.i4.s 32
IL_06B7: ldc.i4.5
IL_06B8: newarr System.Object
IL_06BD: dup
IL_06BE: ldc.i4.0
IL_06BF: ldloc.s 25 (System.Exception)
IL_06C1: callvirt virtual System.Type System.Exception::GetType()
IL_06C6: stelem.ref
IL_06C7: dup
IL_06C8: ldc.i4.1
IL_06C9: ldstr ": Loading custom asset failed: ["
IL_06CE: stelem.ref
IL_06CF: dup
IL_06D0: ldc.i4.2
IL_06D1: ldloc.s 21 (ColossalFramework.Packaging.Package+Asset)
IL_06D3: stelem.ref
IL_06D4: dup
IL_06D5: ldc.i4.3
IL_06D6: ldstr "]\n"
IL_06DB: stelem.ref
IL_06DC: dup
IL_06DD: ldc.i4.4
IL_06DE: ldloc.s 25 (System.Exception)
IL_06E0: callvirt virtual System.String
System.Exception::get_Message()
IL_06E5: stelem.ref
IL_06E6: call static System.String
System.String::Concat(System.Object[] args)
IL_06EB: call static System.Void
ColossalFramework.CODebugBase`1<LogChannel>::Warn(LogChannel ll, System.String msg)
IL_06F0: leave => Label58
IL_06F5: leave => (autogenerated)
} // end handler
IL_06FA: Label34
IL_06FA: Label39
IL_06FA: Label57
IL_06FA: Label58
IL_06FA: ldarg.0
IL_06FB: ldfld
System.Collections.Generic.IEnumerator`1<ColossalFramework.Packaging.Asset>
<LoadCustomContent>c__Iterator5::$locvar1
IL_0700: callvirt abstract virtual System.Boolean
System.Collections.IEnumerator::MoveNext()
IL_0705: brtrue => Label59
IL_070A: leave => Label60
IL_070F: leave => (autogenerated)
} // end try
.finally
{
IL_0714: ldarg.0
IL_0715: ldfld
System.Collections.Generic.IEnumerator`1<ColossalFramework.Packaging.Asset>
<LoadCustomContent>c__Iterator5::$locvar1
IL_071A: brfalse => Label61
IL_071F: ldarg.0
IL_0720: ldfld
System.Collections.Generic.IEnumerator`1<ColossalFramework.Packaging.Asset>
<LoadCustomContent>c__Iterator5::$locvar1
IL_0725: callvirt abstract virtual System.Void
System.IDisposable::Dispose()
IL_072A: Label61
IL_072A: endfinally
IL_072B: leave => (autogenerated)
} // end handler
IL_072C: Label60
IL_072C: ldarg.0
IL_072D: ldfld LoadingManager <LoadCustomContent>c__Iterator5::$this
IL_0732: ldfld LoadingProfiler LoadingManager::m_loadingProfilerCustomContent
IL_0737: callvirt System.Void LoadingProfiler::EndLoading()
IL_073C: ldarg.0
IL_073D: ldc.i4.0
IL_073E: stfld System.Int32 <LoadCustomContent>c__Iterator5::<i>__1
IL_0743: br => Label62
IL_0748: Label101
IL_0748: ldarg.0
IL_0749: ldfld LoadingManager <LoadCustomContent>c__Iterator5::$this
IL_074E: ldfld LoadingProfiler LoadingManager::m_loadingProfilerCustomContent
IL_0753: ldstr "Loading Custom Assets Pass "
IL_0758: ldarg.0
IL_0759: ldflda System.Int32 <LoadCustomContent>c__Iterator5::<i>__1
IL_075E: constrained. System.Int32
IL_0764: callvirt virtual System.String System.Object::ToString()
IL_0769: call static System.String System.String::Concat(System.String str0,
System.String str1)
IL_076E: callvirt System.Void LoadingProfiler::BeginLoading(System.String name)
IL_0773: ldarg.0
IL_0774: ldarg.0
IL_0775: ldfld System.Collections.Generic.List`1[]
<LoadCustomContent>c__Iterator5::<assetLoadQueue>__0
IL_077A: ldarg.0
IL_077B: ldfld System.Int32 <LoadCustomContent>c__Iterator5::<i>__1
IL_0780: ldelem.ref
IL_0781: callvirt virtual System.Int32
System.Collections.Generic.List`1<CustomAssetMetaData>::get_Count()
IL_0786: stfld System.Int32 <LoadCustomContent>c__Iterator5::<count>__2
IL_078B: ldarg.0
IL_078C: ldc.i4.0
IL_078D: stfld System.Int32 <LoadCustomContent>c__Iterator5::<j>__3
IL_0792: br => Label63
IL_0797: Label100
IL_0797: ldarg.0
IL_0798: ldfld System.Int32 <LoadCustomContent>c__Iterator5::<j>__3
IL_079D: ldc.i4.s 20
IL_079F: rem
IL_07A0: brtrue => Label64
IL_07A5: ldarg.0
IL_07A6: ldnull
IL_07A7: stfld System.Object <LoadCustomContent>c__Iterator5::$current
IL_07AC: ldarg.0
IL_07AD: ldfld System.Boolean <LoadCustomContent>c__Iterator5::$disposing
IL_07B2: brtrue => Label65
IL_07B7: ldarg.0
IL_07B8: ldc.i4.1
IL_07B9: stfld System.Int32 <LoadCustomContent>c__Iterator5::$PC
IL_07BE: Label65
IL_07BE: br => Label66
IL_07C3: Label1
IL_07C3: Label64
IL_07C3: ldarg.0
IL_07C4: ldarg.0
IL_07C5: ldfld System.Collections.Generic.List`1[]
<LoadCustomContent>c__Iterator5::<assetLoadQueue>__0
IL_07CA: ldarg.0
IL_07CB: ldfld System.Int32 <LoadCustomContent>c__Iterator5::<i>__1
IL_07D0: ldelem.ref
IL_07D1: ldarg.0
IL_07D2: ldfld System.Int32 <LoadCustomContent>c__Iterator5::<j>__3
IL_07D7: callvirt virtual CustomAssetMetaData
System.Collections.Generic.List`1<CustomAssetMetaData>::get_Item(System.Int32
index)
IL_07DC: stfld CustomAssetMetaData
<LoadCustomContent>c__Iterator5::<metaData>__4
.try
{
IL_07E1: ldarg.0
IL_07E2: ldfld LoadingManager <LoadCustomContent>c__Iterator5::$this
IL_07E7: ldfld LoadingProfiler
LoadingManager::m_loadingProfilerCustomAsset
IL_07EC: ldarg.0
IL_07ED: ldfld CustomAssetMetaData
<LoadCustomContent>c__Iterator5::<metaData>__4
IL_07F2: ldfld ColossalFramework.Packaging.Asset MetaData::assetRef
IL_07F7: callvirt System.String
ColossalFramework.Packaging.Asset::get_fullName()
IL_07FC: callvirt System.Void LoadingProfiler::BeginLoading(System.String
name)
IL_0801: ldc.i4.s 32
IL_0803: ldstr "Loading custom asset "
IL_0808: ldarg.0
IL_0809: ldfld CustomAssetMetaData
<LoadCustomContent>c__Iterator5::<metaData>__4
IL_080E: ldfld ColossalFramework.Packaging.Asset MetaData::assetRef
IL_0813: callvirt System.String
ColossalFramework.Packaging.Asset::get_name()
IL_0818: ldstr " from "
IL_081D: ldarg.0
IL_081E: ldfld CustomAssetMetaData
<LoadCustomContent>c__Iterator5::<metaData>__4
IL_0823: ldfld ColossalFramework.Packaging.Asset MetaData::assetRef
IL_0828: callvirt ColossalFramework.Packaging.Package
ColossalFramework.Packaging.Asset::get_package()
IL_082D: callvirt System.String
ColossalFramework.Packaging.Package::get_packageName()
IL_0832: call static System.String System.String::Concat(System.String
str0, System.String str1, System.String str2, System.String str3)
IL_0837: call static System.Void
ColossalFramework.CODebugBase`1<LogChannel>::Log(LogChannel ll, System.String msg)
IL_083C: ldarg.0
IL_083D: ldfld CustomAssetMetaData
<LoadCustomContent>c__Iterator5::<metaData>__4
IL_0842: ldfld ColossalFramework.Packaging.Asset MetaData::assetRef
IL_0847: callvirt UnityEngine.GameObject
ColossalFramework.Packaging.Asset::Instantiate()
IL_084C: stloc.s 26 (UnityEngine.GameObject)
IL_084E: ldarg.0
IL_084F: ldfld CustomAssetMetaData
<LoadCustomContent>c__Iterator5::<metaData>__4
IL_0854: ldfld Type CustomAssetMetaData::type
IL_0859: ldc.i4.s 10
IL_085B: beq => Label67
IL_0860: ldarg.0
IL_0861: ldfld CustomAssetMetaData
<LoadCustomContent>c__Iterator5::<metaData>__4
IL_0866: ldfld Type CustomAssetMetaData::type
IL_086B: ldc.i4.s 11
IL_086D: bne.un => Label68
IL_0872: Label67
IL_0872: ldloc.s 26 (UnityEngine.GameObject)
IL_0874: ldarg.0
IL_0875: ldfld CustomAssetMetaData
<LoadCustomContent>c__Iterator5::<metaData>__4
IL_087A: ldfld ColossalFramework.Packaging.Asset MetaData::assetRef
IL_087F: callvirt ColossalFramework.Packaging.Package
ColossalFramework.Packaging.Asset::get_package()
IL_0884: callvirt System.String
ColossalFramework.Packaging.Package::get_packageName()
IL_0889: ldstr "."
IL_088E: ldloc.s 26 (UnityEngine.GameObject)
IL_0890: callvirt System.String UnityEngine.Object::get_name()
IL_0895: call static System.String
PackageHelper::StripName(System.String name)
IL_089A: call static System.String System.String::Concat(System.String
str0, System.String str1, System.String str2)
IL_089F: callvirt System.Void UnityEngine.Object::set_name(System.String
value)
IL_08A4: br => Label69
IL_08A9: Label68
IL_08A9: ldloc.s 26 (UnityEngine.GameObject)
IL_08AB: ldarg.0
IL_08AC: ldfld CustomAssetMetaData
<LoadCustomContent>c__Iterator5::<metaData>__4
IL_08B1: ldfld ColossalFramework.Packaging.Asset MetaData::assetRef
IL_08B6: callvirt ColossalFramework.Packaging.Package
ColossalFramework.Packaging.Asset::get_package()
IL_08BB: callvirt System.String
ColossalFramework.Packaging.Package::get_packageName()
IL_08C0: ldstr "."
IL_08C5: ldloc.s 26 (UnityEngine.GameObject)
IL_08C7: callvirt System.String UnityEngine.Object::get_name()
IL_08CC: call static System.String System.String::Concat(System.String
str0, System.String str1, System.String str2)
IL_08D1: callvirt System.Void UnityEngine.Object::set_name(System.String
value)
IL_08D6: Label69
IL_08D6: ldloc.s 26 (UnityEngine.GameObject)
IL_08D8: ldc.i4.0
IL_08D9: callvirt System.Void
UnityEngine.GameObject::SetActive(System.Boolean value)
IL_08DE: ldloc.s 26 (UnityEngine.GameObject)
IL_08E0: callvirt PrefabInfo UnityEngine.GameObject::GetComponent()
IL_08E5: stloc.s 27 (PrefabInfo)
IL_08E7: ldloc.s 27 (PrefabInfo)
IL_08E9: ldc.i4.1
IL_08EA: stfld System.Boolean PrefabInfo::m_isCustomContent
IL_08EF: ldloc.s 27 (PrefabInfo)
IL_08F1: ldfld ColossalFramework.UI.UITextureAtlas PrefabInfo::m_Atlas
IL_08F6: ldnull
IL_08F7: call static System.Boolean
UnityEngine.Object::op_Inequality(UnityEngine.Object x, UnityEngine.Object y)
IL_08FC: brfalse => Label70
IL_0901: ldloc.s 27 (PrefabInfo)
IL_0903: ldfld System.String PrefabInfo::m_InfoTooltipThumbnail
IL_0908: brfalse => Label71
IL_090D: ldloc.s 27 (PrefabInfo)
IL_090F: ldfld System.String PrefabInfo::m_InfoTooltipThumbnail
IL_0914: ldsfld System.String System.String::Empty
IL_0919: call static System.Boolean
System.String::op_Inequality(System.String a, System.String b)
IL_091E: brfalse => Label72
IL_0923: ldloc.s 27 (PrefabInfo)
IL_0925: ldfld ColossalFramework.UI.UITextureAtlas PrefabInfo::m_Atlas
IL_092A: ldloc.s 27 (PrefabInfo)
IL_092C: ldfld System.String PrefabInfo::m_InfoTooltipThumbnail
IL_0931: callvirt ColossalFramework.UI.SpriteInfo
ColossalFramework.UI.UITextureAtlas::get_Item(System.String key)
IL_0936: ldnull
IL_0937: call static System.Boolean
ColossalFramework.UI.SpriteInfo::op_Inequality(ColossalFramework.UI.SpriteInfo lhs,
ColossalFramework.UI.SpriteInfo rhs)
IL_093C: brfalse => Label73
IL_0941: ldloc.s 27 (PrefabInfo)
IL_0943: ldloc.s 27 (PrefabInfo)
IL_0945: ldfld ColossalFramework.UI.UITextureAtlas PrefabInfo::m_Atlas
IL_094A: stfld ColossalFramework.UI.UITextureAtlas
PrefabInfo::m_InfoTooltipAtlas
IL_094F: Label70
IL_094F: Label71
IL_094F: Label72
IL_094F: Label73
IL_094F: ldloc.s 26 (UnityEngine.GameObject)
IL_0951: callvirt PropInfo UnityEngine.GameObject::GetComponent()
IL_0956: stloc.s 28 (PropInfo)
IL_0958: ldloc.s 26 (UnityEngine.GameObject)
IL_095A: callvirt TreeInfo UnityEngine.GameObject::GetComponent()
IL_095F: stloc.s 29 (TreeInfo)
IL_0961: ldloc.s 26 (UnityEngine.GameObject)
IL_0963: callvirt BuildingInfo UnityEngine.GameObject::GetComponent()
IL_0968: stloc.s 30 (BuildingInfo)
IL_096A: ldloc.s 26 (UnityEngine.GameObject)
IL_096C: callvirt VehicleInfo UnityEngine.GameObject::GetComponent()
IL_0971: stloc.s 31 (VehicleInfo)
IL_0973: ldloc.s 26 (UnityEngine.GameObject)
IL_0975: callvirt CitizenInfo UnityEngine.GameObject::GetComponent()
IL_097A: stloc.s 32 (CitizenInfo)
IL_097C: ldloc.s 26 (UnityEngine.GameObject)
IL_097E: callvirt NetInfo UnityEngine.GameObject::GetComponent()
IL_0983: stloc.s 33 (NetInfo)
IL_0985: ldloc.s 26
IL_0987: callvirt NodeMarkup.Manager.MarkingInfo
UnityEngine.GameObject::GetComponent()
IL_098C: stloc.s 42 (NodeMarkup.Manager.MarkingInfo)
IL_098E: ldc.i4.1
IL_098F: stloc.s 34 (System.Boolean)
IL_0991: ldloc.s 28 (PropInfo)
IL_0993: ldnull
IL_0994: call static System.Boolean
UnityEngine.Object::op_Inequality(UnityEngine.Object x, UnityEngine.Object y)
IL_0999: brfalse => Label74
IL_099E: ldloc.s 28 (PropInfo)
IL_09A0: ldfld UnityEngine.GameObject PropInfo::m_lodObject
IL_09A5: ldnull
IL_09A6: call static System.Boolean
UnityEngine.Object::op_Inequality(UnityEngine.Object x, UnityEngine.Object y)
IL_09AB: brfalse => Label75
IL_09B0: ldloc.s 28 (PropInfo)
IL_09B2: ldfld UnityEngine.GameObject PropInfo::m_lodObject
IL_09B7: ldc.i4.0
IL_09B8: callvirt System.Void
UnityEngine.GameObject::SetActive(System.Boolean value)
IL_09BD: Label75
IL_09BD: ldstr "Custom Assets"
IL_09C2: ldloc.s 28 (PropInfo)
IL_09C4: ldnull
IL_09C5: call static System.Void
PrefabCollection`1<PropInfo>::InitializePrefabs(System.String collection, PropInfo
prefab, System.String replace)
IL_09CA: ldarg.0
IL_09CB: ldarg.0
IL_09CC: ldfld System.Int32
<LoadCustomContent>c__Iterator5::<propsCount>__0
IL_09D1: ldc.i4.1
IL_09D2: add
IL_09D3: stfld System.Int32
<LoadCustomContent>c__Iterator5::<propsCount>__0
IL_09D8: br => Label76
IL_09DD: Label74
IL_09DD: ldloc.s 29 (TreeInfo)
IL_09DF: ldnull
IL_09E0: call static System.Boolean
UnityEngine.Object::op_Inequality(UnityEngine.Object x, UnityEngine.Object y)
IL_09E5: brfalse => Label77
IL_09EA: ldstr "Custom Assets"
IL_09EF: ldloc.s 29 (TreeInfo)
IL_09F1: ldnull
IL_09F2: call static System.Void
PrefabCollection`1<TreeInfo>::InitializePrefabs(System.String collection, TreeInfo
prefab, System.String replace)
IL_09F7: ldarg.0
IL_09F8: ldarg.0
IL_09F9: ldfld System.Int32
<LoadCustomContent>c__Iterator5::<treeCount>__0
IL_09FE: ldc.i4.1
IL_09FF: add
IL_0A00: stfld System.Int32
<LoadCustomContent>c__Iterator5::<treeCount>__0
IL_0A05: br => Label78
IL_0A0A: Label77
IL_0A0A: ldloc.s 30 (BuildingInfo)
IL_0A0C: ldnull
IL_0A0D: call static System.Boolean
UnityEngine.Object::op_Inequality(UnityEngine.Object x, UnityEngine.Object y)
IL_0A12: brfalse => Label79
IL_0A17: ldloc.s 30 (BuildingInfo)
IL_0A19: ldfld UnityEngine.GameObject BuildingInfoBase::m_lodObject
IL_0A1E: ldnull
IL_0A1F: call static System.Boolean
UnityEngine.Object::op_Inequality(UnityEngine.Object x, UnityEngine.Object y)
IL_0A24: brfalse => Label80
IL_0A29: ldloc.s 30 (BuildingInfo)
IL_0A2B: ldfld UnityEngine.GameObject BuildingInfoBase::m_lodObject
IL_0A30: ldc.i4.0
IL_0A31: callvirt System.Void
UnityEngine.GameObject::SetActive(System.Boolean value)
IL_0A36: Label80
IL_0A36: ldloc.s 30 (BuildingInfo)
IL_0A38: ldarg.0
IL_0A39: ldfld CustomAssetMetaData
<LoadCustomContent>c__Iterator5::<metaData>__4
IL_0A3E: ldfld ColossalFramework.Packaging.Asset MetaData::assetRef
IL_0A43: callvirt System.Boolean
ColossalFramework.Packaging.Asset::get_isEnabled()
IL_0A48: ldc.i4.0
IL_0A49: ceq
IL_0A4B: stfld System.Boolean BuildingInfo::m_dontSpawnNormally
IL_0A50: ldarg.0
IL_0A51: ldfld CustomAssetMetaData
<LoadCustomContent>c__Iterator5::<metaData>__4
IL_0A56: ldfld ColossalFramework.Packaging.Asset MetaData::assetRef
IL_0A5B: callvirt ColossalFramework.Packaging.Package
ColossalFramework.Packaging.Asset::get_package()
IL_0A60: callvirt System.UInt16
ColossalFramework.Packaging.Package::get_version()
IL_0A65: ldc.i4.7
IL_0A66: bge => Label81
IL_0A6B: ldloc.s 30 (BuildingInfo)
IL_0A6D: call static System.Void
LegacyMetroUtils::PatchBuildingPaths(BuildingInfo info)
IL_0A72: Label81
IL_0A72: ldstr "Custom Assets"
IL_0A77: ldloc.s 30 (BuildingInfo)
IL_0A79: ldnull
IL_0A7A: call static System.Void
PrefabCollection`1<BuildingInfo>::InitializePrefabs(System.String collection,
BuildingInfo prefab, System.String replace)
IL_0A7F: ldarg.0
IL_0A80: ldarg.0
IL_0A81: ldfld System.Int32
<LoadCustomContent>c__Iterator5::<buildingsCount>__0
IL_0A86: ldc.i4.1
IL_0A87: add
IL_0A88: stfld System.Int32
<LoadCustomContent>c__Iterator5::<buildingsCount>__0
IL_0A8D: br => Label82
IL_0A92: Label79
IL_0A92: ldloc.s 31 (VehicleInfo)
IL_0A94: ldnull
IL_0A95: call static System.Boolean
UnityEngine.Object::op_Inequality(UnityEngine.Object x, UnityEngine.Object y)
IL_0A9A: brfalse => Label83
IL_0A9F: ldloc.s 31 (VehicleInfo)
IL_0AA1: ldfld UnityEngine.GameObject VehicleInfoBase::m_lodObject
IL_0AA6: ldnull
IL_0AA7: call static System.Boolean
UnityEngine.Object::op_Inequality(UnityEngine.Object x, UnityEngine.Object y)
IL_0AAC: brfalse => Label84
IL_0AB1: ldloc.s 31 (VehicleInfo)
IL_0AB3: ldfld UnityEngine.GameObject VehicleInfoBase::m_lodObject
IL_0AB8: ldc.i4.0
IL_0AB9: callvirt System.Void
UnityEngine.GameObject::SetActive(System.Boolean value)
IL_0ABE: Label84
IL_0ABE: ldstr "Custom Assets"
IL_0AC3: ldloc.s 31 (VehicleInfo)
IL_0AC5: ldnull
IL_0AC6: call static System.Void
PrefabCollection`1<VehicleInfo>::InitializePrefabs(System.String collection,
VehicleInfo prefab, System.String replace)
IL_0ACB: ldarg.0
IL_0ACC: ldarg.0
IL_0ACD: ldfld System.Int32
<LoadCustomContent>c__Iterator5::<vehicleCount>__0
IL_0AD2: ldc.i4.1
IL_0AD3: add
IL_0AD4: stfld System.Int32
<LoadCustomContent>c__Iterator5::<vehicleCount>__0
IL_0AD9: br => Label85
IL_0ADE: Label83
IL_0ADE: ldloc.s 32 (CitizenInfo)
IL_0AE0: ldnull
IL_0AE1: call static System.Boolean
UnityEngine.Object::op_Inequality(UnityEngine.Object x, UnityEngine.Object y)
IL_0AE6: brfalse => Label86
IL_0AEB: ldloc.s 32 (CitizenInfo)
IL_0AED: ldfld UnityEngine.GameObject CitizenInfo::m_lodObject
IL_0AF2: ldnull
IL_0AF3: call static System.Boolean
UnityEngine.Object::op_Inequality(UnityEngine.Object x, UnityEngine.Object y)
IL_0AF8: brfalse => Label87
IL_0AFD: ldloc.s 32 (CitizenInfo)
IL_0AFF: ldfld UnityEngine.GameObject CitizenInfo::m_lodObject
IL_0B04: ldc.i4.0
IL_0B05: callvirt System.Void
UnityEngine.GameObject::SetActive(System.Boolean value)
IL_0B0A: Label87
IL_0B0A: ldloc.s 32 (CitizenInfo)
IL_0B0C: ldarg.0
IL_0B0D: ldfld CustomAssetMetaData
<LoadCustomContent>c__Iterator5::<metaData>__4
IL_0B12: callvirt System.Boolean
CitizenInfo::InitializeCustomPrefab(CustomAssetMetaData meta)
IL_0B17: brfalse => Label88
IL_0B1C: ldloc.s 32 (CitizenInfo)
IL_0B1E: callvirt UnityEngine.GameObject
UnityEngine.Component::get_gameObject()
IL_0B23: ldc.i4.1
IL_0B24: callvirt System.Void
UnityEngine.GameObject::SetActive(System.Boolean value)
IL_0B29: ldstr "Custom Assets"
IL_0B2E: ldloc.s 32 (CitizenInfo)
IL_0B30: ldnull
IL_0B31: call static System.Void
PrefabCollection`1<CitizenInfo>::InitializePrefabs(System.String collection,
CitizenInfo prefab, System.String replace)
IL_0B36: ldarg.0
IL_0B37: ldarg.0
IL_0B38: ldfld System.Int32
<LoadCustomContent>c__Iterator5::<citizenCount>__0
IL_0B3D: ldc.i4.1
IL_0B3E: add
IL_0B3F: stfld System.Int32
<LoadCustomContent>c__Iterator5::<citizenCount>__0
IL_0B44: br => Label89
IL_0B49: Label88
IL_0B49: ldc.i4.s 32
IL_0B4B: ldstr "Custom citizen ["
IL_0B50: ldarg.0
IL_0B51: ldfld CustomAssetMetaData
<LoadCustomContent>c__Iterator5::<metaData>__4
IL_0B56: ldfld ColossalFramework.Packaging.Asset MetaData::assetRef
IL_0B5B: callvirt System.String
ColossalFramework.Packaging.Asset::get_fullName()
IL_0B60: ldstr "] template not available in selected theme. Asset not
added in game."
IL_0B65: call static System.String System.String::Concat(System.String
str0, System.String str1, System.String str2)
IL_0B6A: call static System.Void
ColossalFramework.CODebugBase`1<LogChannel>::Warn(LogChannel ll, System.String msg)
IL_0B6F: ldc.i4.0
IL_0B70: stloc.s 34 (System.Boolean)
IL_0B72: Label89
IL_0B72: br => Label90
IL_0B77: Label86
IL_0B77: ldloc.s 33 (NetInfo)
IL_0B79: ldnull
IL_0B7A: call static System.Boolean
UnityEngine.Object::op_Inequality(UnityEngine.Object x, UnityEngine.Object y)
IL_0B7F: brfalse => Label119
IL_0B84: ldstr "Custom Assets"
IL_0B89: ldloc.s 33 (NetInfo)
IL_0B8B: ldnull
IL_0B8C: call static System.Void
PrefabCollection`1<NetInfo>::InitializePrefabs(System.String collection, NetInfo
prefab, System.String replace)
IL_0B91: ldarg.0
IL_0B92: ldarg.0
IL_0B93: ldfld System.Int32
<LoadCustomContent>c__Iterator5::<netCount>__0
IL_0B98: ldc.i4.1
IL_0B99: add
IL_0B9A: stfld System.Int32
<LoadCustomContent>c__Iterator5::<netCount>__0
IL_0B9F: br => Label92
IL_0BA4: Label119
IL_0BA4: ldloc.s 42 (NodeMarkup.Manager.MarkingInfo)
IL_0BA6: ldnull
IL_0BA7: call static System.Boolean
UnityEngine.Object::op_Inequality(UnityEngine.Object x, UnityEngine.Object y)
IL_0BAC: brfalse => Label91
IL_0BB1: ldloc.s 42 (NodeMarkup.Manager.MarkingInfo)
IL_0BB3: ldarg.0
IL_0BB4: ldfld CustomAssetMetaData
<LoadCustomContent>c__Iterator5::<metaData>__4
IL_0BB9: ldfld ColossalFramework.Packaging.Asset MetaData::assetRef
IL_0BBE: call static System.Void
NodeMarkup.Loader::LoadTemplateAsset(NodeMarkup.Manager.MarkingInfo markingInfo,
ColossalFramework.Packaging.Asset asset)
IL_0BC3: br => Label120
IL_0BC8: Label91
IL_0BC8: ldc.i4.0
IL_0BC9: stloc.s 34 (System.Boolean)
IL_0BCB: Label76
IL_0BCB: Label78
IL_0BCB: Label82
IL_0BCB: Label85
IL_0BCB: Label90
IL_0BCB: Label92
IL_0BCB: Label120
IL_0BCB: ldloc.s 34 (System.Boolean)
IL_0BCD: brfalse => Label93
IL_0BD2: ldarg.0
IL_0BD3: ldfld CustomAssetMetaData
<LoadCustomContent>c__Iterator5::<metaData>__4
IL_0BD8: ldfld ColossalFramework.Packaging.Asset
CustomAssetMetaData::userDataRef
IL_0BDD: ldnull
IL_0BDE: call static System.Boolean
ColossalFramework.Packaging.Asset::op_Inequality(ColossalFramework.Packaging.Asset
a, ColossalFramework.Packaging.Asset b)
IL_0BE3: brfalse => Label94
IL_0BE8: ldarg.0
IL_0BE9: ldfld CustomAssetMetaData
<LoadCustomContent>c__Iterator5::<metaData>__4
IL_0BEE: ldfld ColossalFramework.Packaging.Asset
CustomAssetMetaData::userDataRef
IL_0BF3: callvirt System.Object
ColossalFramework.Packaging.Asset::Instantiate()
IL_0BF8: isinst AssetDataWrapper+UserAssetData
IL_0BFD: stloc.s 35 (AssetDataWrapper+UserAssetData)
IL_0BFF: ldloc.s 35 (AssetDataWrapper+UserAssetData)
IL_0C01: brtrue => Label95
IL_0C06: newobj System.Void UserAssetData::.ctor()
IL_0C0B: stloc.s 35 (AssetDataWrapper+UserAssetData)
IL_0C0D: Label95
IL_0C0D: ldarg.0
IL_0C0E: ldfld LoadingManager <LoadCustomContent>c__Iterator5::$this
IL_0C13: ldfld AssetDataWrapper LoadingManager::m_AssetDataWrapper
IL_0C18: ldarg.0
IL_0C19: ldfld CustomAssetMetaData
<LoadCustomContent>c__Iterator5::<metaData>__4
IL_0C1E: ldfld System.String CustomAssetMetaData::name
IL_0C23: ldloc.s 27 (PrefabInfo)
IL_0C25: ldloc.s 35 (AssetDataWrapper+UserAssetData)
IL_0C27: callvirt System.Void AssetDataWrapper::OnAssetLoaded(System.String
name, PrefabInfo info, UserAssetData data)
IL_0C2C: Label93
IL_0C2C: Label94
IL_0C2C: leave => Label96
IL_0C31: leave => (autogenerated)
} // end try
.catch System.Exception
{
IL_0C36: stloc.s 36 (System.Exception)
IL_0C38: ldc.i4.s 32
IL_0C3A: ldstr "{0}: Loading custom asset failed [{1}]\n{2}"
IL_0C3F: ldc.i4.3
IL_0C40: newarr System.Object
IL_0C45: dup
IL_0C46: ldc.i4.0
IL_0C47: ldloc.s 36 (System.Exception)
IL_0C49: callvirt virtual System.Type System.Exception::GetType()
IL_0C4E: stelem.ref
IL_0C4F: dup
IL_0C50: ldc.i4.1
IL_0C51: ldarg.0
IL_0C52: ldfld CustomAssetMetaData
<LoadCustomContent>c__Iterator5::<metaData>__4
IL_0C57: ldfld ColossalFramework.Packaging.Asset MetaData::assetRef
IL_0C5C: ldnull
IL_0C5D: call static System.Boolean
ColossalFramework.Packaging.Asset::op_Inequality(ColossalFramework.Packaging.Asset
a, ColossalFramework.Packaging.Asset b)
IL_0C62: brfalse => Label97
IL_0C67: ldarg.0
IL_0C68: ldfld CustomAssetMetaData
<LoadCustomContent>c__Iterator5::<metaData>__4
IL_0C6D: ldfld ColossalFramework.Packaging.Asset MetaData::assetRef
IL_0C72: callvirt System.String
ColossalFramework.Packaging.Asset::get_fullName()
IL_0C77: br => Label98
IL_0C7C: Label97
IL_0C7C: ldarg.0
IL_0C7D: ldfld CustomAssetMetaData
<LoadCustomContent>c__Iterator5::<metaData>__4
IL_0C82: ldfld System.String CustomAssetMetaData::name
IL_0C87: Label98
IL_0C87: stelem.ref
IL_0C88: dup
IL_0C89: ldc.i4.2
IL_0C8A: ldloc.s 36 (System.Exception)
IL_0C8C: callvirt virtual System.String System.Exception::get_Message()
IL_0C91: stelem.ref
IL_0C92: call static System.String
StringUtils::SafeFormat(System.String format, System.Object[] args)
IL_0C97: call static System.Void
ColossalFramework.CODebugBase`1<LogChannel>::Warn(LogChannel ll, System.String msg)
IL_0C9C: leave => Label99
IL_0CA1: leave => (autogenerated)
} // end handler
IL_0CA6: Label96
IL_0CA6: Label99
IL_0CA6: ldarg.0
IL_0CA7: ldarg.0
IL_0CA8: ldfld System.Int32 <LoadCustomContent>c__Iterator5::<j>__3
IL_0CAD: ldc.i4.1
IL_0CAE: add
IL_0CAF: stfld System.Int32 <LoadCustomContent>c__Iterator5::<j>__3
IL_0CB4: Label63
IL_0CB4: ldarg.0
IL_0CB5: ldfld System.Int32 <LoadCustomContent>c__Iterator5::<j>__3
IL_0CBA: ldarg.0
IL_0CBB: ldfld System.Int32 <LoadCustomContent>c__Iterator5::<count>__2
IL_0CC0: blt => Label100
IL_0CC5: ldarg.0
IL_0CC6: ldfld LoadingManager <LoadCustomContent>c__Iterator5::$this
IL_0CCB: ldfld LoadingProfiler LoadingManager::m_loadingProfilerCustomContent
IL_0CD0: callvirt System.Void LoadingProfiler::EndLoading()
IL_0CD5: ldarg.0
IL_0CD6: ldarg.0
IL_0CD7: ldfld System.Int32 <LoadCustomContent>c__Iterator5::<i>__1
IL_0CDC: ldc.i4.1
IL_0CDD: add
IL_0CDE: stfld System.Int32 <LoadCustomContent>c__Iterator5::<i>__1
IL_0CE3: Label62
IL_0CE3: ldarg.0
IL_0CE4: ldfld System.Int32 <LoadCustomContent>c__Iterator5::<i>__1
IL_0CE9: ldsfld System.Int32 LoadingManager::kCustomAssetLoadOrderLevels
IL_0CEE: blt => Label101
IL_0CF3: ldarg.0
IL_0CF4: ldfld LoadingManager <LoadCustomContent>c__Iterator5::$this
IL_0CF9: ldfld LoadingProfiler LoadingManager::m_loadingProfilerCustomContent
IL_0CFE: ldstr "Finalizing District Styles"
IL_0D03: callvirt System.Void LoadingProfiler::BeginLoading(System.String name)
IL_0D08: ldarg.0
IL_0D09: ldfld LoadingManager <LoadCustomContent>c__Iterator5::$this
IL_0D0E: ldfld LoadingProfiler LoadingManager::m_loadingProfilerCustomAsset
IL_0D13: callvirt System.Void LoadingProfiler::PauseLoading()
IL_0D18: ldarg.0
IL_0D19: ldc.i4.0
IL_0D1A: stfld System.Int32 <LoadCustomContent>c__Iterator5::<i>__5
IL_0D1F: br => Label102
IL_0D24: Label115
IL_0D24: ldarg.0
IL_0D25: ldfld System.Int32 <LoadCustomContent>c__Iterator5::<i>__5
IL_0D2A: ldc.i4.s 20
IL_0D2C: rem
IL_0D2D: brtrue => Label103
IL_0D32: ldarg.0
IL_0D33: ldnull
IL_0D34: stfld System.Object <LoadCustomContent>c__Iterator5::$current
IL_0D39: ldarg.0
IL_0D3A: ldfld System.Boolean <LoadCustomContent>c__Iterator5::$disposing
IL_0D3F: brtrue => Label104
IL_0D44: ldarg.0
IL_0D45: ldc.i4.2
IL_0D46: stfld System.Int32 <LoadCustomContent>c__Iterator5::$PC
IL_0D4B: Label104
IL_0D4B: br => Label105
IL_0D50: Label2
IL_0D50: Label103
.try
{
IL_0D50: ldarg.0
IL_0D51: ldfld FastList`1<DistrictStyleMetaData>
<LoadCustomContent>c__Iterator5::<cachedStyles>__0
IL_0D56: ldfld DistrictStyleMetaData[]
FastList`1<DistrictStyleMetaData>::m_buffer
IL_0D5B: ldarg.0
IL_0D5C: ldfld System.Int32 <LoadCustomContent>c__Iterator5::<i>__5
IL_0D61: ldelem.ref
IL_0D62: stloc.s 37 (DistrictStyleMetaData)
IL_0D64: ldloc.s 37 (DistrictStyleMetaData)
IL_0D66: ldfld System.String DistrictStyleMetaData::name
IL_0D6B: ldc.i4.0
IL_0D6C: newobj System.Void DistrictStyle::.ctor(System.String name,
System.Boolean builtIn)
IL_0D71: stloc.s 38 (DistrictStyle)
IL_0D73: ldarg.0
IL_0D74: ldfld FastList`1<ColossalFramework.Packaging.Package>
<LoadCustomContent>c__Iterator5::<cachedStylePackages>__0
IL_0D79: ldfld ColossalFramework.Packaging.Package[]
FastList`1<ColossalFramework.Packaging.Package>::m_buffer
IL_0D7E: ldarg.0
IL_0D7F: ldfld System.Int32 <LoadCustomContent>c__Iterator5::<i>__5
IL_0D84: ldelem.ref
IL_0D85: callvirt ColossalFramework.PlatformServices.PublishedFileId
ColossalFramework.Packaging.Package::GetPublishedFileID()
IL_0D8A: ldsfld ColossalFramework.PlatformServices.PublishedFileId
ColossalFramework.PlatformServices.PublishedFileId::invalid
IL_0D8F: call static System.Boolean
ColossalFramework.PlatformServices.PublishedFileId::op_Inequality(ColossalFramework
.PlatformServices.PublishedFileId x,
ColossalFramework.PlatformServices.PublishedFileId y)
IL_0D94: brfalse => Label106
IL_0D99: ldloc.s 38 (DistrictStyle)
IL_0D9B: ldarg.0
IL_0D9C: ldfld FastList`1<ColossalFramework.Packaging.Package>
<LoadCustomContent>c__Iterator5::<cachedStylePackages>__0
IL_0DA1: ldfld ColossalFramework.Packaging.Package[]
FastList`1<ColossalFramework.Packaging.Package>::m_buffer
IL_0DA6: ldarg.0
IL_0DA7: ldfld System.Int32 <LoadCustomContent>c__Iterator5::<i>__5
IL_0DAC: ldelem.ref
IL_0DAD: callvirt System.String
ColossalFramework.Packaging.Package::get_packageName()
IL_0DB2: callvirt System.Void DistrictStyle::set_PackageName(System.String
value)
IL_0DB7: Label106
IL_0DB7: ldloc.s 37 (DistrictStyleMetaData)
IL_0DB9: ldfld System.String[] DistrictStyleMetaData::assets
IL_0DBE: brfalse => Label107
IL_0DC3: ldc.i4.0
IL_0DC4: stloc.s 39 (System.Int32)
IL_0DC6: br => Label108
IL_0DCB: Label112
IL_0DCB: ldloc.s 37 (DistrictStyleMetaData)
IL_0DCD: ldfld System.String[] DistrictStyleMetaData::assets
IL_0DD2: ldloc.s 39 (System.Int32)
IL_0DD4: ldelem.ref
IL_0DD5: ldstr "_Data"
IL_0DDA: call static System.String System.String::Concat(System.String
str0, System.String str1)
IL_0DDF: call static BuildingInfo
PrefabCollection`1<BuildingInfo>::FindLoaded(System.String name)
IL_0DE4: stloc.s 40 (BuildingInfo)
IL_0DE6: ldloc.s 40 (BuildingInfo)
IL_0DE8: ldnull
IL_0DE9: call static System.Boolean
UnityEngine.Object::op_Inequality(UnityEngine.Object x, UnityEngine.Object y)
IL_0DEE: brfalse => Label109
IL_0DF3: ldloc.s 38 (DistrictStyle)
IL_0DF5: ldloc.s 40 (BuildingInfo)
IL_0DF7: callvirt System.Void DistrictStyle::Add(BuildingInfo info)
IL_0DFC: ldloc.s 37 (DistrictStyleMetaData)
IL_0DFE: ldfld System.Boolean DistrictStyleMetaData::builtin
IL_0E03: brfalse => Label110
IL_0E08: ldloc.s 40 (BuildingInfo)
IL_0E0A: ldloc.s 37 (DistrictStyleMetaData)
IL_0E0C: ldfld ColossalFramework.Packaging.Asset MetaData::assetRef
IL_0E11: callvirt System.Boolean
ColossalFramework.Packaging.Asset::get_isEnabled()
IL_0E16: ldc.i4.0
IL_0E17: ceq
IL_0E19: stfld System.Boolean BuildingInfo::m_dontSpawnNormally
IL_0E1E: Label110
IL_0E1E: br => Label111
IL_0E23: Label109
IL_0E23: ldc.i4.s 32
IL_0E25: ldstr "Warning: Missing asset ("
IL_0E2A: ldloc.s 37 (DistrictStyleMetaData)
IL_0E2C: ldfld System.String[] DistrictStyleMetaData::assets
IL_0E31: ldarg.0
IL_0E32: ldfld System.Int32 <LoadCustomContent>c__Iterator5::<i>__5
IL_0E37: ldelem.ref
IL_0E38: ldstr ") in style "
IL_0E3D: ldloc.s 37 (DistrictStyleMetaData)
IL_0E3F: ldfld System.String DistrictStyleMetaData::name
IL_0E44: call static System.String System.String::Concat(System.String
str0, System.String str1, System.String str2, System.String str3)
IL_0E49: call static System.Void
ColossalFramework.CODebugBase`1<LogChannel>::Warn(LogChannel ll, System.String msg)
IL_0E4E: Label111
IL_0E4E: ldloc.s 39 (System.Int32)
IL_0E50: ldc.i4.1
IL_0E51: add
IL_0E52: stloc.s 39 (System.Int32)
IL_0E54: Label108
IL_0E54: ldloc.s 39 (System.Int32)
IL_0E56: ldloc.s 37 (DistrictStyleMetaData)
IL_0E58: ldfld System.String[] DistrictStyleMetaData::assets
IL_0E5D: ldlen
IL_0E5E: conv.i4
IL_0E5F: blt => Label112
IL_0E64: ldarg.0
IL_0E65: ldfld System.Collections.Generic.List`1<DistrictStyle>
<LoadCustomContent>c__Iterator5::<styles>__0
IL_0E6A: ldloc.s 38 (DistrictStyle)
IL_0E6C: callvirt virtual System.Void
System.Collections.Generic.List`1<DistrictStyle>::Add(DistrictStyle item)
IL_0E71: Label107
IL_0E71: leave => Label113
IL_0E76: leave => (autogenerated)
} // end try
.catch System.Exception
{
IL_0E7B: stloc.s 41 (System.Exception)
IL_0E7D: ldc.i4.s 32
IL_0E7F: ldloc.s 41 (System.Exception)
IL_0E81: callvirt virtual System.Type System.Exception::GetType()
IL_0E86: ldstr ": Loading district style failed\n"
IL_0E8B: ldloc.s 41 (System.Exception)
IL_0E8D: callvirt virtual System.String System.Exception::get_Message()
IL_0E92: call static System.String System.String::Concat(System.Object
arg0, System.Object arg1, System.Object arg2)
IL_0E97: call static System.Void
ColossalFramework.CODebugBase`1<LogChannel>::Warn(LogChannel ll, System.String msg)
IL_0E9C: leave => Label114
IL_0EA1: leave => (autogenerated)
} // end handler
IL_0EA6: Label113
IL_0EA6: Label114
IL_0EA6: ldarg.0
IL_0EA7: ldarg.0
IL_0EA8: ldfld System.Int32 <LoadCustomContent>c__Iterator5::<i>__5
IL_0EAD: ldc.i4.1
IL_0EAE: add
IL_0EAF: stfld System.Int32 <LoadCustomContent>c__Iterator5::<i>__5
IL_0EB4: Label102
IL_0EB4: ldarg.0
IL_0EB5: ldfld System.Int32 <LoadCustomContent>c__Iterator5::<i>__5
IL_0EBA: ldarg.0
IL_0EBB: ldfld FastList`1<DistrictStyleMetaData>
<LoadCustomContent>c__Iterator5::<cachedStyles>__0
IL_0EC0: ldfld System.Int32 FastList`1<DistrictStyleMetaData>::m_size
IL_0EC5: blt => Label115
IL_0ECA: call static DistrictManager
ColossalFramework.Singleton`1<DistrictManager>::get_instance()
IL_0ECF: ldarg.0
IL_0ED0: ldfld System.Collections.Generic.List`1<DistrictStyle>
<LoadCustomContent>c__Iterator5::<styles>__0
IL_0ED5: callvirt DistrictStyle[]
System.Collections.Generic.List`1<DistrictStyle>::ToArray()
IL_0EDA: stfld DistrictStyle[] DistrictManager::m_Styles
IL_0EDF: call static System.Boolean
ColossalFramework.Singleton`1<BuildingManager>::get_exists()
IL_0EE4: brfalse => Label116
IL_0EE9: call static BuildingManager
ColossalFramework.Singleton`1<BuildingManager>::get_instance()
IL_0EEE: ldarg.0
IL_0EEF: ldfld System.Collections.Generic.List`1<DistrictStyle>
<LoadCustomContent>c__Iterator5::<styles>__0
IL_0EF4: callvirt virtual System.Int32
System.Collections.Generic.List`1<DistrictStyle>::get_Count()
IL_0EF9: callvirt System.Void BuildingManager::InitializeStyleArray(System.Int32
styleCount)
IL_0EFE: Label116
IL_0EFE: ldarg.0
IL_0EFF: ldfld LoadingManager <LoadCustomContent>c__Iterator5::$this
IL_0F04: ldfld LoadingProfiler LoadingManager::m_loadingProfilerCustomAsset
IL_0F09: callvirt System.Void LoadingProfiler::ContinueLoading()
IL_0F0E: ldarg.0
IL_0F0F: ldfld LoadingManager <LoadCustomContent>c__Iterator5::$this
IL_0F14: ldfld LoadingProfiler LoadingManager::m_loadingProfilerCustomContent
IL_0F19: callvirt System.Void LoadingProfiler::EndLoading()
IL_0F1E: ldarg.0
IL_0F1F: ldfld LoadingManager <LoadCustomContent>c__Iterator5::$this
IL_0F24: ldfld LoadingProfiler LoadingManager::m_loadingProfilerMain
IL_0F29: callvirt System.Void LoadingProfiler::EndLoading()
IL_0F2E: ldarg.0
IL_0F2F: ldc.i4.0
IL_0F30: box System.Int32
IL_0F35: stfld System.Object <LoadCustomContent>c__Iterator5::$current
IL_0F3A: ldarg.0
IL_0F3B: ldfld System.Boolean <LoadCustomContent>c__Iterator5::$disposing
IL_0F40: brtrue => Label117
IL_0F45: ldarg.0
IL_0F46: ldc.i4.3
IL_0F47: stfld System.Int32 <LoadCustomContent>c__Iterator5::$PC
IL_0F4C: Label117
IL_0F4C: br => Label118
IL_0F51: Label3
IL_0F51: ldarg.0
IL_0F52: ldc.i4.m1
IL_0F53: stfld System.Int32 <LoadCustomContent>c__Iterator5::$PC
IL_0F58: Label4
IL_0F58: ldc.i4.0
IL_0F59: br => Label145
IL_0F5E: Label66
IL_0F5E: Label105
IL_0F5E: Label118
IL_0F5E: ldc.i4.1
IL_0F5F: // end original
IL_0F5F: Label145
IL_0F5F: ret
DONE

### Harmony id=NodeMarkup, version=2.0.4.0, location=E:\SteamLibrary\steamapps\


common\data-0000000022595390, env/clr=2.0.50727.1433, platform=Win32NT,
ptrsize:runtime/env=8/Bits64, Windows
### Started from System.Object ModsCommon.BasePatcherMod`1<TypeMod>::get_Harmony(),
location E:\SteamLibrary\steamapps\common\data-0000000023EF7040
### At 2023-02-07 02.24.36
### Patch: System.Void
LoadingScreenMod.AssetLoader::LoadImpl(ColossalFramework.Packaging.Asset assetRef)
### Replacement: static System.Void
LoadingScreenMod.AssetLoader::LoadingScreenMod.AssetLoader.LoadImpl_Patch0(LoadingS
creenMod.AssetLoader this, ColossalFramework.Packaging.Asset assetRef)
IL_0000: Local var 0: System.String
IL_0000: Local var 1: UnityEngine.GameObject
IL_0000: Local var 2: ColossalFramework.Packaging.Package
IL_0000: Local var 3: CustomAssetMetaData/Type
IL_0000: Local var 4: System.Boolean
IL_0000: Local var 5: System.String
IL_0000: Local var 6: PrefabInfo
IL_0000: Local var 7: PropInfo
IL_0000: Local var 8: TreeInfo
IL_0000: Local var 9: BuildingInfo
IL_0000: Local var 10: VehicleInfo
IL_0000: Local var 11: CitizenInfo
IL_0000: Local var 12: NetInfo
IL_0000: Local var 13: CustomAssetMetaData
IL_0000: Local var 14: NodeMarkup.Manager.MarkingInfo
IL_0000: // start original
.try
{
IL_0000: ldarg.0
IL_0001: ldfld
System.Collections.Generic.Stack`1<ColossalFramework.Packaging.Asset>
LoadingScreenMod.AssetLoader::stack
IL_0006: ldarg.1
IL_0007: callvirt System.Void
System.Collections.Generic.Stack`1<ColossalFramework.Packaging.Asset>::Push(Colossa
lFramework.Packaging.Asset t)
IL_000C: ldarg.1
IL_000D: callvirt System.String
ColossalFramework.Packaging.Asset::get_name()
IL_0012: stloc.0
IL_0013: call static LoadingManager
ColossalFramework.Singleton`1<LoadingManager>::get_instance()
IL_0018: ldfld LoadingProfiler
LoadingManager::m_loadingProfilerCustomAsset
IL_001D: ldloc.0
IL_001E: call static System.String
LoadingScreenMod.AssetLoader::ShortName(System.String name_Data)
IL_0023: callvirt System.Void LoadingProfiler::BeginLoading(System.String
name)
IL_0028: ldarg.1
IL_0029: ldc.i4.1
IL_002A: ldc.i4.1
IL_002B: call static System.Object
LoadingScreenMod.AssetDeserializer::Instantiate(ColossalFramework.Packaging.Asset
asset, System.Boolean isMain, System.Boolean isTop)
IL_0030: isinst UnityEngine.GameObject
IL_0035: stloc.1
IL_0036: ldloc.1
IL_0037: ldnull
IL_0038: call static System.Boolean
UnityEngine.Object::op_Equality(UnityEngine.Object x, UnityEngine.Object y)
IL_003D: brfalse => Label0
IL_0042: ldarg.1
IL_0043: callvirt System.String
ColossalFramework.Packaging.Asset::get_fullName()
IL_0048: ldstr ": no GameObject"
IL_004D: call static System.String System.String::Concat(System.String
str0, System.String str1)
IL_0052: newobj System.Void System.Exception::.ctor(System.String
message)
IL_0057: throw
IL_0058: Label0
IL_0058: ldarg.1
IL_0059: callvirt ColossalFramework.Packaging.Package
ColossalFramework.Packaging.Asset::get_package()
IL_005E: stloc.2
IL_005F: ldarg.0
IL_0060: ldfld
System.Collections.Generic.Dictionary`2<ColossalFramework.Packaging.Package, Type>
LoadingScreenMod.AssetLoader::packageTypes
IL_0065: ldloc.2
IL_0066: ldloca.s 3 (CustomAssetMetaData+Type)
IL_0068: callvirt virtual System.Boolean
System.Collections.Generic.Dictionary`2<ColossalFramework.Packaging.Package,
Type>::TryGetValue(ColossalFramework.Packaging.Package key, Type& value)
IL_006D: ldloc.3
IL_006E: ldc.i4.s 9
IL_0070: ceq
IL_0072: stloc.s 4 (System.Boolean)
IL_0074: ldarg.0
IL_0075: ldfld System.Boolean LoadingScreenMod.AssetLoader::checkAssets
IL_007A: brfalse => Label1
IL_007F: ldloc.0
IL_0080: ldloc.1
IL_0081: callvirt System.String UnityEngine.Object::get_name()
IL_0086: call static System.Boolean
System.String::op_Inequality(System.String a, System.String b)
IL_008B: brfalse => Label2
IL_0090: call static LoadingScreenMod.Reports
LoadingScreenMod.Instance`1<LoadingScreenMod.Reports>::get_instance()
IL_0095: ldloc.2
IL_0096: callvirt System.Void
LoadingScreenMod.Reports::AddNamingConflict(ColossalFramework.Packaging.Package p)
IL_009B: Label1
IL_009B: Label2
IL_009B: ldloc.s 4 (System.Boolean)
IL_009D: ldc.i4.0
IL_009E: ceq
IL_00A0: and
IL_00A1: brtrue => Label3
IL_00A6: ldloc.0
IL_00A7: ldstr "."
IL_00AC: callvirt System.Boolean System.String::Contains(System.String
value)
IL_00B1: brfalse => Label4
IL_00B6: ldarg.1
IL_00B7: ldloc.s 4 (System.Boolean)
IL_00B9: call static System.Boolean
LoadingScreenMod.AssetLoader::IsPillarOrElevation(ColossalFramework.Packaging.Asset
assetRef, System.Boolean knownRoad)
IL_00BE: brfalse => Label5
IL_00C3: ldloc.2
IL_00C4: callvirt System.String
ColossalFramework.Packaging.Package::get_packageName()
IL_00C9: ldloc.0
IL_00CA: call static System.String
LoadingScreenMod.AssetLoader::PillarOrElevationName(System.String packageName,
System.String name)
IL_00CF: br => Label6
IL_00D4: Label3
IL_00D4: Label4
IL_00D4: Label5
IL_00D4: ldarg.1
IL_00D5: callvirt System.String
ColossalFramework.Packaging.Asset::get_fullName()
IL_00DA: Label6
IL_00DA: stloc.s 5 (System.String)
IL_00DC: ldloc.1
IL_00DD: ldloc.s 5 (System.String)
IL_00DF: callvirt System.Void UnityEngine.Object::set_name(System.String
value)
IL_00E4: ldloc.1
IL_00E5: ldc.i4.0
IL_00E6: callvirt System.Void
UnityEngine.GameObject::SetActive(System.Boolean value)
IL_00EB: ldloc.1
IL_00EC: callvirt PrefabInfo UnityEngine.GameObject::GetComponent()
IL_00F1: stloc.s 6 (PrefabInfo)
IL_00F3: ldloc.s 6 (PrefabInfo)
IL_00F5: ldc.i4.1
IL_00F6: stfld System.Boolean PrefabInfo::m_isCustomContent
IL_00FB: ldloc.s 6 (PrefabInfo)
IL_00FD: ldfld ColossalFramework.UI.UITextureAtlas PrefabInfo::m_Atlas
IL_0102: ldnull
IL_0103: call static System.Boolean
UnityEngine.Object::op_Inequality(UnityEngine.Object x, UnityEngine.Object y)
IL_0108: brfalse => Label7
IL_010D: ldloc.s 6 (PrefabInfo)
IL_010F: ldfld System.String PrefabInfo::m_InfoTooltipThumbnail
IL_0114: call static System.Boolean
System.String::IsNullOrEmpty(System.String value)
IL_0119: brtrue => Label8
IL_011E: ldloc.s 6 (PrefabInfo)
IL_0120: ldloc.s 6 (PrefabInfo)
IL_0122: ldfld ColossalFramework.UI.UITextureAtlas PrefabInfo::m_Atlas
IL_0127: stfld ColossalFramework.UI.UITextureAtlas
PrefabInfo::m_InfoTooltipAtlas
IL_012C: Label7
IL_012C: Label8
IL_012C: ldloc.1
IL_012D: callvirt PropInfo UnityEngine.GameObject::GetComponent()
IL_0132: dup
IL_0133: stloc.s 7 (PropInfo)
IL_0135: ldnull
IL_0136: call static System.Boolean
UnityEngine.Object::op_Inequality(UnityEngine.Object x, UnityEngine.Object y)
IL_013B: brfalse => Label9
IL_0140: ldloc.s 7 (PropInfo)
IL_0142: ldfld UnityEngine.GameObject PropInfo::m_lodObject
IL_0147: ldnull
IL_0148: call static System.Boolean
UnityEngine.Object::op_Inequality(UnityEngine.Object x, UnityEngine.Object y)
IL_014D: brfalse => Label10
IL_0152: ldloc.s 7 (PropInfo)
IL_0154: ldfld UnityEngine.GameObject PropInfo::m_lodObject
IL_0159: ldc.i4.0
IL_015A: callvirt System.Void
UnityEngine.GameObject::SetActive(System.Boolean value)
IL_015F: Label10
IL_015F: ldarg.0
IL_0160: ldloc.s 7 (PropInfo)
IL_0162: call System.Void
LoadingScreenMod.AssetLoader::Initialize(PropInfo info)
IL_0167: br => Label11
IL_016C: Label9
IL_016C: ldloc.1
IL_016D: callvirt TreeInfo UnityEngine.GameObject::GetComponent()
IL_0172: dup
IL_0173: stloc.s 8 (TreeInfo)
IL_0175: ldnull
IL_0176: call static System.Boolean
UnityEngine.Object::op_Inequality(UnityEngine.Object x, UnityEngine.Object y)
IL_017B: brfalse => Label12
IL_0180: ldarg.0
IL_0181: ldloc.s 8 (TreeInfo)
IL_0183: call System.Void
LoadingScreenMod.AssetLoader::Initialize(TreeInfo info)
IL_0188: br => Label13
IL_018D: Label12
IL_018D: ldloc.1
IL_018E: callvirt BuildingInfo UnityEngine.GameObject::GetComponent()
IL_0193: dup
IL_0194: stloc.s 9 (BuildingInfo)
IL_0196: ldnull
IL_0197: call static System.Boolean
UnityEngine.Object::op_Inequality(UnityEngine.Object x, UnityEngine.Object y)
IL_019C: brfalse => Label14
IL_01A1: ldloc.s 9 (BuildingInfo)
IL_01A3: ldfld UnityEngine.GameObject BuildingInfoBase::m_lodObject
IL_01A8: ldnull
IL_01A9: call static System.Boolean
UnityEngine.Object::op_Inequality(UnityEngine.Object x, UnityEngine.Object y)
IL_01AE: brfalse => Label15
IL_01B3: ldloc.s 9 (BuildingInfo)
IL_01B5: ldfld UnityEngine.GameObject BuildingInfoBase::m_lodObject
IL_01BA: ldc.i4.0
IL_01BB: callvirt System.Void
UnityEngine.GameObject::SetActive(System.Boolean value)
IL_01C0: Label15
IL_01C0: ldloc.2
IL_01C1: callvirt System.UInt16
ColossalFramework.Packaging.Package::get_version()
IL_01C6: ldc.i4.7
IL_01C7: bge => Label16
IL_01CC: ldloc.s 9 (BuildingInfo)
IL_01CE: call static System.Void
LegacyMetroUtils::PatchBuildingPaths(BuildingInfo info)
IL_01D3: Label16
IL_01D3: ldarg.0
IL_01D4: ldloc.s 9 (BuildingInfo)
IL_01D6: call System.Void
LoadingScreenMod.AssetLoader::Initialize(BuildingInfo info)
IL_01DB: ldloc.s 9 (BuildingInfo)
IL_01DD: callvirt virtual PrefabAI PrefabInfo::GetAI()
IL_01E2: isinst IntersectionAI
IL_01E7: brfalse => Label17
IL_01EC: ldarg.0
IL_01ED: ldfld System.Collections.Generic.HashSet`1<System.String>
LoadingScreenMod.AssetLoader::loadedIntersections
IL_01F2: ldloc.s 5 (System.String)
IL_01F4: callvirt System.Boolean
System.Collections.Generic.HashSet`1<System.String>::Add(System.String item)
IL_01F9: pop
IL_01FA: br => Label18
IL_01FF: Label14
IL_01FF: ldloc.1
IL_0200: callvirt VehicleInfo UnityEngine.GameObject::GetComponent()
IL_0205: dup
IL_0206: stloc.s 10 (VehicleInfo)
IL_0208: ldnull
IL_0209: call static System.Boolean
UnityEngine.Object::op_Inequality(UnityEngine.Object x, UnityEngine.Object y)
IL_020E: brfalse => Label19
IL_0213: ldloc.s 10 (VehicleInfo)
IL_0215: ldfld UnityEngine.GameObject VehicleInfoBase::m_lodObject
IL_021A: ldnull
IL_021B: call static System.Boolean
UnityEngine.Object::op_Inequality(UnityEngine.Object x, UnityEngine.Object y)
IL_0220: brfalse => Label20
IL_0225: ldloc.s 10 (VehicleInfo)
IL_0227: ldfld UnityEngine.GameObject VehicleInfoBase::m_lodObject
IL_022C: ldc.i4.0
IL_022D: callvirt System.Void
UnityEngine.GameObject::SetActive(System.Boolean value)
IL_0232: Label20
IL_0232: ldarg.0
IL_0233: ldloc.s 10 (VehicleInfo)
IL_0235: call System.Void
LoadingScreenMod.AssetLoader::Initialize(VehicleInfo info)
IL_023A: br => Label21
IL_023F: Label19
IL_023F: ldloc.1
IL_0240: callvirt CitizenInfo UnityEngine.GameObject::GetComponent()
IL_0245: dup
IL_0246: stloc.s 11 (CitizenInfo)
IL_0248: ldnull
IL_0249: call static System.Boolean
UnityEngine.Object::op_Inequality(UnityEngine.Object x, UnityEngine.Object y)
IL_024E: brfalse => Label22
IL_0253: ldloc.s 11 (CitizenInfo)
IL_0255: ldfld UnityEngine.GameObject CitizenInfo::m_lodObject
IL_025A: ldnull
IL_025B: call static System.Boolean
UnityEngine.Object::op_Inequality(UnityEngine.Object x, UnityEngine.Object y)
IL_0260: brfalse => Label23
IL_0265: ldloc.s 11 (CitizenInfo)
IL_0267: ldfld UnityEngine.GameObject CitizenInfo::m_lodObject
IL_026C: ldc.i4.0
IL_026D: callvirt System.Void
UnityEngine.GameObject::SetActive(System.Boolean value)
IL_0272: Label23
IL_0272: ldarg.0
IL_0273: ldfld System.Collections.Generic.Dictionary`2<System.String,
CustomAssetMetaData> LoadingScreenMod.AssetLoader::citizenMetaDatas
IL_0278: ldloc.s 5 (System.String)
IL_027A: ldloca.s 13 (CustomAssetMetaData)
IL_027C: callvirt virtual System.Boolean
System.Collections.Generic.Dictionary`2<System.String,
CustomAssetMetaData>::TryGetValue(System.String key, CustomAssetMetaData& value)
IL_0281: brfalse => Label24
IL_0286: ldarg.0
IL_0287: ldfld System.Collections.Generic.Dictionary`2<System.String,
CustomAssetMetaData> LoadingScreenMod.AssetLoader::citizenMetaDatas
IL_028C: ldloc.s 5 (System.String)
IL_028E: callvirt virtual System.Boolean
System.Collections.Generic.Dictionary`2<System.String,
CustomAssetMetaData>::Remove(System.String key)
IL_0293: pop
IL_0294: br => Label25
IL_0299: Label24
IL_0299: ldarg.1
IL_029A: call static CustomAssetMetaData
LoadingScreenMod.AssetLoader::GetMetaDataFor(ColossalFramework.Packaging.Asset
assetRef)
IL_029F: stloc.s 13 (CustomAssetMetaData)
IL_02A1: Label25
IL_02A1: ldloc.s 13 (CustomAssetMetaData)
IL_02A3: brfalse => Label35
IL_02A8: ldloc.s 11 (CitizenInfo)
IL_02AA: ldloc.s 13 (CustomAssetMetaData)
IL_02AC: callvirt System.Boolean
CitizenInfo::InitializeCustomPrefab(CustomAssetMetaData meta)
IL_02B1: brfalse => Label27
IL_02B6: ldloc.s 11 (CitizenInfo)
IL_02B8: callvirt UnityEngine.GameObject
UnityEngine.Component::get_gameObject()
IL_02BD: ldc.i4.1
IL_02BE: callvirt System.Void
UnityEngine.GameObject::SetActive(System.Boolean value)
IL_02C3: ldarg.0
IL_02C4: ldloc.s 11 (CitizenInfo)
IL_02C6: call System.Void
LoadingScreenMod.AssetLoader::Initialize(CitizenInfo info)
IL_02CB: br => Label28
IL_02D0: Label35
IL_02D0: ldloc.1
IL_02D1: callvirt NodeMarkup.Manager.MarkingInfo
UnityEngine.GameObject::GetComponent()
IL_02D6: dup
IL_02D7: stloc.s 14 (NodeMarkup.Manager.MarkingInfo)
IL_02D9: ldnull
IL_02DA: call static System.Boolean
UnityEngine.Object::op_Inequality(UnityEngine.Object x, UnityEngine.Object y)
IL_02DF: brfalse => Label26
IL_02E4: ldloc.s 14 (NodeMarkup.Manager.MarkingInfo)
IL_02E6: ldarg.1
IL_02E7: call static System.Void
NodeMarkup.Loader::LoadTemplateAsset(NodeMarkup.Manager.MarkingInfo markingInfo,
ColossalFramework.Packaging.Asset asset)
IL_02EC: br => Label36
IL_02F1: Label26
IL_02F1: Label27
IL_02F1: ldnull
IL_02F2: stloc.s 6 (PrefabInfo)
IL_02F4: ldc.i4.s 32
IL_02F6: ldstr "Custom citizen ["
IL_02FB: ldloc.s 5 (System.String)
IL_02FD: ldstr "] template not available in selected theme. Asset not
added in game."
IL_0302: call static System.String System.String::Concat(System.String
str0, System.String str1, System.String str2)
IL_0307: call static System.Void
ColossalFramework.CODebugBase`1<LogChannel>::Warn(LogChannel ll, System.String msg)
IL_030C: br => Label29
IL_0311: Label22
IL_0311: ldloc.1
IL_0312: callvirt NetInfo UnityEngine.GameObject::GetComponent()
IL_0317: dup
IL_0318: stloc.s 12 (NetInfo)
IL_031A: ldnull
IL_031B: call static System.Boolean
UnityEngine.Object::op_Inequality(UnityEngine.Object x, UnityEngine.Object y)
IL_0320: brfalse => Label30
IL_0325: Label36
IL_0325: ldarg.0
IL_0326: ldloc.s 12 (NetInfo)
IL_0328: call System.Void
LoadingScreenMod.AssetLoader::Initialize(NetInfo info)
IL_032D: br => Label31
IL_0332: Label30
IL_0332: ldnull
IL_0333: stloc.s 6 (PrefabInfo)
IL_0335: Label11
IL_0335: Label13
IL_0335: Label17
IL_0335: Label18
IL_0335: Label21
IL_0335: Label28
IL_0335: Label29
IL_0335: Label31
IL_0335: ldarg.0
IL_0336: ldfld System.Boolean
LoadingScreenMod.AssetLoader::hasAssetDataExtensions
IL_033B: brfalse => Label32
IL_0340: ldloc.s 6 (PrefabInfo)
IL_0342: ldnull
IL_0343: call static System.Boolean
UnityEngine.Object::op_Inequality(UnityEngine.Object x, UnityEngine.Object y)
IL_0348: brfalse => Label33
IL_034D: ldarg.0
IL_034E: ldarg.1
IL_034F: ldloc.s 6 (PrefabInfo)
IL_0351: call System.Void
LoadingScreenMod.AssetLoader::CallExtensions(ColossalFramework.Packaging.Asset
assetRef, PrefabInfo info)
IL_0356: Label32
IL_0356: Label33
IL_0356: leave => Label34
IL_035B: leave => (autogenerated)
} // end try
.finally
{
IL_0360: ldarg.0
IL_0361: ldfld
System.Collections.Generic.Stack`1<ColossalFramework.Packaging.Asset>
LoadingScreenMod.AssetLoader::stack
IL_0366: callvirt ColossalFramework.Packaging.Asset
System.Collections.Generic.Stack`1<ColossalFramework.Packaging.Asset>::Pop()
IL_036B: pop
IL_036C: ldarg.0
IL_036D: ldarg.0
IL_036E: ldfld System.Int32 LoadingScreenMod.AssetLoader::assetCount
IL_0373: ldc.i4.1
IL_0374: add
IL_0375: stfld System.Int32 LoadingScreenMod.AssetLoader::assetCount
IL_037A: call static LoadingManager
ColossalFramework.Singleton`1<LoadingManager>::get_instance()
IL_037F: ldfld LoadingProfiler
LoadingManager::m_loadingProfilerCustomAsset
IL_0384: callvirt System.Void LoadingProfiler::EndLoading()
IL_0389: endfinally
IL_038A: leave => (autogenerated)
} // end handler
IL_038B: // end original
IL_038B: Label34
IL_038B: ret
DONE

AccessTools.TypeByName: Could not find type named LoadingScreenModTest.AssetLoader


AccessTools.TypeByName: Could not find type named
LoadingScreenModRevisited.AssetLoader
### Patch: virtual System.Void ColossalFramework.UI.UIView::Start()
### Replacement: static System.Void
ColossalFramework.UI.UIView::ColossalFramework.UI.UIView.Start_Patch0(ColossalFrame
work.UI.UIView this)
IL_0000: Local var 0:
ColossalFramework.PoolList`1<ColossalFramework.UI.UIComponent>
IL_0000: Local var 1: ColossalFramework.UI.UIComponent
IL_0000: Local var 2:
System.Collections.Generic.IEnumerator`1<ColossalFramework.UI.UIComponent>
IL_0000: // start original
IL_0000: ldarg.0
IL_0001: ldc.i4.0
IL_0002: stfld System.Int32 ColossalFramework.UI.UIView::m_FramesRendered
IL_0007: ldarg.0
IL_0008: call System.Void
ColossalFramework.UI.UIView::InvalidateAllComponents()
IL_000D: ldarg.0
IL_000E: ldfld UnityEngine.MeshRenderer
ColossalFramework.UI.UIView::m_MeshRenderer
IL_0013: ldnull
IL_0014: call static System.Boolean
UnityEngine.Object::op_Inequality(UnityEngine.Object x, UnityEngine.Object y)
IL_0019: brfalse => Label0
IL_001E: ldarg.0
IL_001F: ldfld UnityEngine.MeshRenderer
ColossalFramework.UI.UIView::m_MeshRenderer
IL_0024: ldc.i4.1
IL_0025: callvirt System.Void UnityEngine.Renderer::set_enabled(System.Boolean
value)
IL_002A: Label0
IL_002A: ldarg.0
IL_002B: call ColossalFramework.PoolList`1<ColossalFramework.UI.UIComponent>
ColossalFramework.UI.UIView::GetTopLevelComponents()
IL_0030: stloc.0
.try
{
IL_0031: ldloc.0
IL_0032: callvirt virtual
System.Collections.Generic.IEnumerator`1<ColossalFramework.UI.UIComponent>
ColossalFramework.PoolList`1<ColossalFramework.UI.UIComponent>::GetEnumerator()
IL_0037: stloc.2
.try
{
IL_0038: br => Label1
IL_003D: Label2
IL_003D: ldloc.2
IL_003E: callvirt abstract virtual ColossalFramework.UI.UIComponent
System.Collections.Generic.IEnumerator`1<ColossalFramework.UI.UIComponent>::get_Cur
rent()
IL_0043: stloc.1
IL_0044: ldloc.1
IL_0045: ldc.i4.1
IL_0046: callvirt System.Void
ColossalFramework.UI.UIComponent::InitializeParentVisibilityCache(System.Boolean
parentVisible)
IL_004B: Label1
IL_004B: ldloc.2
IL_004C: callvirt abstract virtual System.Boolean
System.Collections.IEnumerator::MoveNext()
IL_0051: brtrue => Label2
IL_0056: leave => Label3
IL_005B: leave => (autogenerated)
} // end try
.finally
{
IL_0060: ldloc.2
IL_0061: brfalse => Label4
IL_0066: ldloc.2
IL_0067: callvirt abstract virtual System.Void
System.IDisposable::Dispose()
IL_006C: Label4
IL_006C: endfinally
IL_006D: leave => (autogenerated)
} // end handler
IL_006E: Label3
IL_006E: leave => Label5
IL_0073: leave => (autogenerated)
} // end try
.finally
{
IL_0078: ldloc.0
IL_0079: brfalse => Label6
IL_007E: ldloc.0
IL_007F: callvirt abstract virtual System.Void
System.IDisposable::Dispose()
IL_0084: Label6
IL_0084: endfinally
IL_0085: leave => (autogenerated)
} // end handler
IL_0086: Label5
IL_0086: ldarg.0
IL_0087: ldc.i4.1
IL_0088: stfld System.Boolean
ColossalFramework.UI.UIView::m_VisibilityCacheInitialized
IL_008D: // end original
IL_008D: ret
DONE

### Patch: virtual UnityEngine.Color NetAI::GetColor(System.UInt16 nodeID, NetNode&


data, InfoMode infoMode, SubInfoMode subInfoMode)
### Replacement: static UnityEngine.Color NetAI::NetAI.GetColor_Patch0(NetAI this,
System.UInt16 nodeID, NetNode& data, InfoMode infoMode, SubInfoMode subInfoMode)
IL_0000: // start original
IL_0000: ldarg.3
IL_0001: brfalse => Label0
IL_0006: call static InfoManager
ColossalFramework.Singleton`1<InfoManager>::get_instance()
IL_000B: ldfld InfoProperties SimulationManagerBase`2<InfoManager,
InfoProperties>::m_properties
IL_0010: ldfld UnityEngine.Color InfoProperties::m_neutralColor
IL_0015: br => Label1
IL_001A: Label0
IL_001A: ldarg.0
IL_001B: ldfld NetInfo NetAI::m_info
IL_0020: ldfld UnityEngine.Color NetInfo::m_color
IL_0025: // end original
IL_0025: Label1
IL_0025: ret
DONE

### Patch: virtual UnityEngine.Color NetAI::GetColor(System.UInt16 segmentID,


NetSegment& data, InfoMode infoMode, SubInfoMode subInfoMode)
### Replacement: static UnityEngine.Color NetAI::NetAI.GetColor_Patch0(NetAI this,
System.UInt16 segmentID, NetSegment& data, InfoMode infoMode, SubInfoMode
subInfoMode)
IL_0000: // start original
IL_0000: ldarg.3
IL_0001: brfalse => Label0
IL_0006: call static InfoManager
ColossalFramework.Singleton`1<InfoManager>::get_instance()
IL_000B: ldfld InfoProperties SimulationManagerBase`2<InfoManager,
InfoProperties>::m_properties
IL_0010: ldfld UnityEngine.Color InfoProperties::m_neutralColor
IL_0015: br => Label1
IL_001A: Label0
IL_001A: ldarg.0
IL_001B: ldfld NetInfo NetAI::m_info
IL_0020: ldfld UnityEngine.Color NetInfo::m_color
IL_0025: // end original
IL_0025: Label1
IL_0025: ret
DONE

### Patch: System.Void ElectricityManager::UpdateNodeElectricity(System.Int32


nodeID, System.Int32 value)
### Replacement: static System.Void
ElectricityManager::ElectricityManager.UpdateNodeElectricity_Patch0(ElectricityMana
ger this, System.Int32 nodeID, System.Int32 value)
IL_0000: Local var 0: InfoManager/InfoMode
IL_0000: Local var 1: NetManager
IL_0000: Local var 2: System.Boolean
IL_0000: Local var 3: NetNode/Flags
IL_0000: Local var 4: System.UInt16
IL_0000: Local var 5: BuildingManager
IL_0000: Local var 6: NetNode/Flags
IL_0000: Local var 7: System.Int32
IL_0000: Local var 8: System.UInt16
IL_0000: // start original
IL_0000: call static InfoManager
ColossalFramework.Singleton`1<InfoManager>::get_instance()
IL_0005: callvirt InfoMode InfoManager::get_CurrentMode()
IL_000A: stloc.0
IL_000B: call static NetManager
ColossalFramework.Singleton`1<NetManager>::get_instance()
IL_0010: stloc.1
IL_0011: ldc.i4.0
IL_0012: stloc.2
IL_0013: ldloc.1
IL_0014: ldfld Array16`1<NetNode> NetManager::m_nodes
IL_0019: ldfld NetNode[] Array16`1<NetNode>::m_buffer
IL_001E: ldarg.1
IL_001F: ldelema NetNode
IL_0024: ldfld Flags NetNode::m_flags
IL_0029: stloc.3
IL_002A: ldloc.3
IL_002B: ldc.i4 1048576
IL_0030: and
IL_0031: brfalse => Label0
IL_0036: ldloc.1
IL_0037: ldfld Array16`1<NetNode> NetManager::m_nodes
IL_003C: ldfld NetNode[] Array16`1<NetNode>::m_buffer
IL_0041: ldarg.1
IL_0042: ldelema NetNode
IL_0047: dup
IL_0048: ldfld Flags NetNode::m_flags
IL_004D: ldc.i4 -1048577
IL_0052: and
IL_0053: stfld Flags NetNode::m_flags
IL_0058: br => Label10
IL_005D: Label0
IL_005D: ldloc.1
IL_005E: ldfld Array16`1<NetNode> NetManager::m_nodes
IL_0063: ldfld NetNode[] Array16`1<NetNode>::m_buffer
IL_0068: ldarg.1
IL_0069: ldelema NetNode
IL_006E: ldfld System.UInt16 NetNode::m_building
IL_0073: stloc.s 4 (System.UInt16)
IL_0075: ldloc.s 4 (System.UInt16)
IL_0077: brfalse => Label1
IL_007C: call static BuildingManager
ColossalFramework.Singleton`1<BuildingManager>::get_instance()
IL_0081: stloc.s 5 (BuildingManager)
IL_0083: ldloc.s 5 (BuildingManager)
IL_0085: ldfld Array16`1<Building> BuildingManager::m_buildings
IL_008A: ldfld Building[] Array16`1<Building>::m_buffer
IL_008F: ldloc.s 4 (System.UInt16)
IL_0091: ldelema Building
IL_0096: ldfld System.UInt16 Building::m_electricityBuffer
IL_009B: ldarg.2
IL_009C: beq => Label2
IL_00A1: ldloc.s 5 (BuildingManager)
IL_00A3: ldfld Array16`1<Building> BuildingManager::m_buildings
IL_00A8: ldfld Building[] Array16`1<Building>::m_buffer
IL_00AD: ldloc.s 4 (System.UInt16)
IL_00AF: ldelema Building
IL_00B4: ldarg.2
IL_00B5: conv.u2
IL_00B6: stfld System.UInt16 Building::m_electricityBuffer
IL_00BB: ldloc.0
IL_00BC: ldc.i4.1
IL_00BD: ceq
IL_00BF: stloc.2
IL_00C0: Label2
IL_00C0: ldloc.2
IL_00C1: brfalse => Label3
IL_00C6: ldloc.s 5 (BuildingManager)
IL_00C8: ldloc.s 4 (System.UInt16)
IL_00CA: callvirt System.Void BuildingManager::UpdateBuildingColors(System.UInt16
building)
IL_00CF: Label1
IL_00CF: Label3
IL_00CF: ldloc.3
IL_00D0: ldc.i4 -67108865
IL_00D5: and
IL_00D6: stloc.s 6 (NetNode+Flags)
IL_00D8: ldarg.2
IL_00D9: brfalse => Label4
IL_00DE: ldloc.s 6 (NetNode+Flags)
IL_00E0: ldc.i4 67108864
IL_00E5: or
IL_00E6: stloc.s 6 (NetNode+Flags)
IL_00E8: Label4
IL_00E8: ldloc.s 6 (NetNode+Flags)
IL_00EA: ldloc.3
IL_00EB: beq => Label5
IL_00F0: ldloc.1
IL_00F1: ldfld Array16`1<NetNode> NetManager::m_nodes
IL_00F6: ldfld NetNode[] Array16`1<NetNode>::m_buffer
IL_00FB: ldarg.1
IL_00FC: ldelema NetNode
IL_0101: ldloc.s 6 (NetNode+Flags)
IL_0103: stfld Flags NetNode::m_flags
IL_0108: ldloc.0
IL_0109: ldc.i4.1
IL_010A: ceq
IL_010C: stloc.2
IL_010D: Label5
IL_010D: ldloc.2
IL_010E: brfalse => Label6
IL_0113: ldloc.1
IL_0114: ldarg.1
IL_0115: conv.u2
IL_0116: callvirt System.Void NetManager::UpdateNodeColors(System.UInt16 node)
IL_011B: ldc.i4.0
IL_011C: stloc.s 7 (System.Int32)
IL_011E: br => Label7
IL_0123: Label9
IL_0123: ldloc.1
IL_0124: ldfld Array16`1<NetNode> NetManager::m_nodes
IL_0129: ldfld NetNode[] Array16`1<NetNode>::m_buffer
IL_012E: ldarg.1
IL_012F: ldelema NetNode
IL_0134: ldloc.s 7 (System.Int32)
IL_0136: call System.UInt16 NetNode::GetSegment(System.Int32 index)
IL_013B: stloc.s 8 (System.UInt16)
IL_013D: ldloc.s 8 (System.UInt16)
IL_013F: brfalse => Label8
IL_0144: ldloc.1
IL_0145: ldloc.s 8 (System.UInt16)
IL_0147: callvirt System.Void NetManager::UpdateSegmentColors(System.UInt16
segment)
IL_014C: Label8
IL_014C: ldloc.s 7 (System.Int32)
IL_014E: ldc.i4.1
IL_014F: add
IL_0150: stloc.s 7 (System.Int32)
IL_0152: Label7
IL_0152: ldloc.s 7 (System.Int32)
IL_0154: ldc.i4.8
IL_0155: blt => Label9
IL_015A: // end original
IL_015A: Label6
IL_015A: Label10
IL_015A: ret
DONE

### Patch: static System.Void PropInstance::RenderInstance(CameraInfo cameraInfo,


PropInfo info, InstanceID id, UnityEngine.Vector3 position, System.Single scale,
System.Single angle, UnityEngine.Color color, UnityEngine.Vector4 objectIndex,
System.Boolean active, UnityEngine.Texture heightMap, UnityEngine.Vector4
heightMapping, UnityEngine.Vector4 surfaceMapping, UnityEngine.Texture
waterHeightMap, UnityEngine.Vector4 waterHeightMapping, UnityEngine.Vector4
waterSurfaceMapping)
### Replacement: static System.Void
PropInstance::PropInstance.RenderInstance_Patch0(CameraInfo cameraInfo, PropInfo
info, InstanceID id, UnityEngine.Vector3 position, System.Single scale,
System.Single angle, UnityEngine.Color color, UnityEngine.Vector4 objectIndex,
System.Boolean active, UnityEngine.Texture heightMap, UnityEngine.Vector4
heightMapping, UnityEngine.Vector4 surfaceMapping, UnityEngine.Texture
waterHeightMap, UnityEngine.Vector4 waterHeightMapping, UnityEngine.Vector4
waterSurfaceMapping)
IL_0000: Local var 0: UnityEngine.Matrix4x4
IL_0000: Local var 1: System.Single
IL_0000: Local var 2: System.Int32
IL_0000: Local var 3: UnityEngine.Vector3
IL_0000: Local var 4: UnityEngine.Vector3
IL_0000: Local var 5: EffectInfo/SpawnArea
IL_0000: Local var 6: System.Single
IL_0000: Local var 7: LightSystem
IL_0000: Local var 8: ColossalFramework.Math.Randomizer
IL_0000: Local var 9: UnityEngine.Vector4
IL_0000: Local var 10: System.Single
IL_0000: Local var 11: System.Single
IL_0000: Local var 12: System.Single
IL_0000: Local var 13: UnityEngine.Matrix4x4
IL_0000: Local var 14: PropManager
IL_0000: Local var 15: UnityEngine.MaterialPropertyBlock
IL_0000: Local var 16: System.Int32
IL_0000: // start original
IL_0000: ldarg.1
IL_0001: ldfld System.Boolean PrefabInfo::m_prefabInitialized
IL_0006: brfalse => Label0
IL_000B: ldarg.1
IL_000C: ldfld System.Boolean PropInfo::m_hasEffects
IL_0011: brfalse => Label1
IL_0016: ldarg.s 8
IL_0018: brtrue => Label2
IL_001D: ldarg.1
IL_001E: ldfld System.Boolean PropInfo::m_alwaysActive
IL_0023: brfalse => Label3
IL_0028: Label2
IL_0028: ldloca.s 0 (UnityEngine.Matrix4x4)
IL_002A: initobj UnityEngine.Matrix4x4
IL_0030: ldloca.s 0 (UnityEngine.Matrix4x4)
IL_0032: ldarg.3
IL_0033: ldarg.s 5
IL_0035: ldc.r4 57.29578
IL_003A: mul
IL_003B: call static UnityEngine.Vector3 UnityEngine.Vector3::get_down()
IL_0040: call static UnityEngine.Quaternion
UnityEngine.Quaternion::AngleAxis(System.Single angle, UnityEngine.Vector3 axis)
IL_0045: ldarg.s 4
IL_0047: ldarg.s 4
IL_0049: ldarg.s 4
IL_004B: newobj System.Void UnityEngine.Vector3::.ctor(System.Single x,
System.Single y, System.Single z)
IL_0050: call System.Void UnityEngine.Matrix4x4::SetTRS(UnityEngine.Vector3
pos, UnityEngine.Quaternion q, UnityEngine.Vector3 s)
IL_0055: call static SimulationManager
ColossalFramework.Singleton`1<SimulationManager>::get_instance()
IL_005A: ldfld System.Single SimulationManager::m_simulationTimeDelta
IL_005F: stloc.1
IL_0060: ldc.i4.0
IL_0061: stloc.2
IL_0062: br => Label4
IL_0067: Label5
IL_0067: ldloca.s 0 (UnityEngine.Matrix4x4)
IL_0069: ldarg.1
IL_006A: ldfld Effect[] PropInfo::m_effects
IL_006F: ldloc.2
IL_0070: ldelema PropInfo+Effect
IL_0075: ldfld UnityEngine.Vector3 Effect::m_position
IL_007A: call UnityEngine.Vector3
UnityEngine.Matrix4x4::MultiplyPoint(UnityEngine.Vector3 v)
IL_007F: stloc.3
IL_0080: ldloca.s 0 (UnityEngine.Matrix4x4)
IL_0082: ldarg.1
IL_0083: ldfld Effect[] PropInfo::m_effects
IL_0088: ldloc.2
IL_0089: ldelema PropInfo+Effect
IL_008E: ldfld UnityEngine.Vector3 Effect::m_direction
IL_0093: call UnityEngine.Vector3
UnityEngine.Matrix4x4::MultiplyVector(UnityEngine.Vector3 v)
IL_0098: stloc.s 4 (UnityEngine.Vector3)
IL_009A: ldloca.s 5 (EffectInfo+SpawnArea)
IL_009C: ldloc.3
IL_009D: ldloc.s 4 (UnityEngine.Vector3)
IL_009F: ldc.r4 0
IL_00A4: call System.Void SpawnArea::.ctor(UnityEngine.Vector3 position,
UnityEngine.Vector3 direction, System.Single radius)
IL_00A9: ldarg.1
IL_00AA: ldfld Effect[] PropInfo::m_effects
IL_00AF: ldloc.2
IL_00B0: ldelema PropInfo+Effect
IL_00B5: ldfld EffectInfo Effect::m_effect
IL_00BA: ldarg.2
IL_00BB: ldloc.s 5 (EffectInfo+SpawnArea)
IL_00BD: call static UnityEngine.Vector3 UnityEngine.Vector3::get_zero()
IL_00C2: ldc.r4 0
IL_00C7: ldc.r4 1
IL_00CC: ldc.r4 -1
IL_00D1: ldloc.1
IL_00D2: ldarg.0
IL_00D3: callvirt virtual System.Void EffectInfo::RenderEffect(InstanceID id,
SpawnArea area, UnityEngine.Vector3 velocity, System.Single acceleration,
System.Single magnitude, System.Single timeOffset, System.Single timeDelta,
CameraInfo cameraInfo)
IL_00D8: ldloc.2
IL_00D9: ldc.i4.1
IL_00DA: add
IL_00DB: stloc.2
IL_00DC: Label4
IL_00DC: ldloc.2
IL_00DD: ldarg.1
IL_00DE: ldfld Effect[] PropInfo::m_effects
IL_00E3: ldlen
IL_00E4: conv.i4
IL_00E5: blt => Label5
IL_00EA: Label1
IL_00EA: Label3
IL_00EA: ldarg.1
IL_00EB: ldfld System.Boolean PropInfo::m_hasRenderer
IL_00F0: brfalse => Label6
IL_00F5: ldarg.0
IL_00F6: ldfld System.Int32 CameraInfo::m_layerMask
IL_00FB: ldc.i4.1
IL_00FC: ldarg.1
IL_00FD: ldfld System.Int32 PrefabInfo::m_prefabDataLayer
IL_0102: ldc.i4.s 31
IL_0104: and
IL_0105: shl
IL_0106: and
IL_0107: brfalse => Label7
IL_010C: call static InfoManager
ColossalFramework.Singleton`1<InfoManager>::get_instance()
IL_0111: callvirt InfoMode InfoManager::get_CurrentMode()
IL_0116: brtrue => Label8
IL_011B: ldc.r4 0
IL_0120: stloc.s 6 (System.Single)
IL_0122: ldarg.s 8
IL_0124: brtrue => Label9
IL_0129: ldarg.1
IL_012A: ldfld System.Boolean PropInfo::m_alwaysActive
IL_012F: brtrue => Label10
IL_0134: ldarga.s 7
IL_0136: ldc.r4 0
IL_013B: stfld System.Single UnityEngine.Vector4::z
IL_0140: br => Label11
IL_0145: Label9
IL_0145: Label10
IL_0145: ldarg.1
IL_0146: ldflda UnityEngine.Vector2 PropInfo::m_illuminationOffRange
IL_014B: ldfld System.Single UnityEngine.Vector2::x
IL_0150: ldc.r4 1000
IL_0155: blt => Label12
IL_015A: ldarg.1
IL_015B: ldfld BlinkType PropInfo::m_illuminationBlinkType
IL_0160: brfalse => Label13
IL_0165: Label12
IL_0165: call static RenderManager
ColossalFramework.Singleton`1<RenderManager>::get_instance()
IL_016A: callvirt LightSystem RenderManager::get_lightSystem()
IL_016F: stloc.s 7 (LightSystem)
IL_0171: ldloca.s 8 (ColossalFramework.Math.Randomizer)
IL_0173: ldarga.s 2
IL_0175: call System.UInt32 InstanceID::get_Index()
IL_017A: call System.Void
ColossalFramework.Math.Randomizer::.ctor(System.UInt32 _seed)
IL_017F: ldarg.1
IL_0180: ldflda UnityEngine.Vector2 PropInfo::m_illuminationOffRange
IL_0185: ldfld System.Single UnityEngine.Vector2::x
IL_018A: ldloca.s 8 (ColossalFramework.Math.Randomizer)
IL_018C: ldc.i4 100000
IL_0191: call System.Int32
ColossalFramework.Math.Randomizer::Int32(System.UInt32 range)
IL_0196: conv.r4
IL_0197: ldc.r4 1E-05
IL_019C: mul
IL_019D: ldarg.1
IL_019E: ldflda UnityEngine.Vector2 PropInfo::m_illuminationOffRange
IL_01A3: ldfld System.Single UnityEngine.Vector2::y
IL_01A8: ldarg.1
IL_01A9: ldflda UnityEngine.Vector2 PropInfo::m_illuminationOffRange
IL_01AE: ldfld System.Single UnityEngine.Vector2::x
IL_01B3: sub
IL_01B4: mul
IL_01B5: add
IL_01B6: stloc.s 6 (System.Single)
IL_01B8: ldarga.s 7
IL_01BA: ldloc.s 6 (System.Single)
IL_01BC: ldc.r4 0.01
IL_01C1: add
IL_01C2: ldloc.s 6 (System.Single)
IL_01C4: ldc.r4 0.01
IL_01C9: sub
IL_01CA: ldloc.s 7 (LightSystem)
IL_01CC: callvirt System.Single LightSystem::get_DayLightIntensity()
IL_01D1: call static System.Single MathUtils::SmoothStep(System.Single edge0,
System.Single edge1, System.Single x)
IL_01D6: stfld System.Single UnityEngine.Vector4::z
IL_01DB: ldarg.1
IL_01DC: ldfld BlinkType PropInfo::m_illuminationBlinkType
IL_01E1: brfalse => Label14
IL_01E6: ldarg.1
IL_01E7: ldfld BlinkType PropInfo::m_illuminationBlinkType
IL_01EC: call static UnityEngine.Vector4
LightEffect::GetBlinkVector(BlinkType type)
IL_01F1: stloc.s 9 (UnityEngine.Vector4)
IL_01F3: ldloc.s 6 (System.Single)
IL_01F5: ldc.r4 3.71
IL_01FA: mul
IL_01FB: call static SimulationManager
ColossalFramework.Singleton`1<SimulationManager>::get_instance()
IL_0200: ldfld System.Single SimulationManager::m_simulationTimer
IL_0205: ldloca.s 9 (UnityEngine.Vector4)
IL_0207: ldfld System.Single UnityEngine.Vector4::w
IL_020C: div
IL_020D: add
IL_020E: stloc.s 10 (System.Single)
IL_0210: ldloc.s 10 (System.Single)
IL_0212: ldloc.s 10 (System.Single)
IL_0214: call static System.Single UnityEngine.Mathf::Floor(System.Single f)
IL_0219: sub
IL_021A: ldloca.s 9 (UnityEngine.Vector4)
IL_021C: ldfld System.Single UnityEngine.Vector4::w
IL_0221: mul
IL_0222: stloc.s 10 (System.Single)
IL_0224: ldloca.s 9 (UnityEngine.Vector4)
IL_0226: ldfld System.Single UnityEngine.Vector4::x
IL_022B: ldloca.s 9 (UnityEngine.Vector4)
IL_022D: ldfld System.Single UnityEngine.Vector4::y
IL_0232: ldloc.s 10 (System.Single)
IL_0234: call static System.Single MathUtils::SmoothStep(System.Single edge0,
System.Single edge1, System.Single x)
IL_0239: stloc.s 11 (System.Single)
IL_023B: ldloca.s 9 (UnityEngine.Vector4)
IL_023D: ldfld System.Single UnityEngine.Vector4::w
IL_0242: ldloca.s 9 (UnityEngine.Vector4)
IL_0244: ldfld System.Single UnityEngine.Vector4::z
IL_0249: ldloc.s 10 (System.Single)
IL_024B: call static System.Single MathUtils::SmoothStep(System.Single edge0,
System.Single edge1, System.Single x)
IL_0250: stloc.s 12 (System.Single)
IL_0252: ldarga.s 7
IL_0254: dup
IL_0255: ldfld System.Single UnityEngine.Vector4::z
IL_025A: ldc.r4 1
IL_025F: ldloc.s 11 (System.Single)
IL_0261: ldloc.s 12 (System.Single)
IL_0263: mul
IL_0264: sub
IL_0265: mul
IL_0266: stfld System.Single UnityEngine.Vector4::z
IL_026B: Label14
IL_026B: br => Label15
IL_0270: Label13
IL_0270: ldarga.s 7
IL_0272: ldc.r4 1
IL_0277: stfld System.Single UnityEngine.Vector4::z
IL_027C: Label8
IL_027C: Label11
IL_027C: Label15
IL_027C: ldarg.0
IL_027D: brfalse => Label16
IL_0282: ldarg.0
IL_0283: ldarg.3
IL_0284: ldarg.1
IL_0285: ldfld System.Single PropInfo::m_lodRenderDistance
IL_028A: callvirt System.Boolean
CameraInfo::CheckRenderDistance(UnityEngine.Vector3 point, System.Single
maxDistance)
IL_028F: brfalse => Label17
IL_0294: Label16
IL_0294: ldloca.s 13 (UnityEngine.Matrix4x4)
IL_0296: initobj UnityEngine.Matrix4x4
IL_029C: ldloca.s 13 (UnityEngine.Matrix4x4)
IL_029E: ldarg.3
IL_029F: ldarg.s 5
IL_02A1: ldc.r4 57.29578
IL_02A6: mul
IL_02A7: call static UnityEngine.Vector3 UnityEngine.Vector3::get_down()
IL_02AC: call static UnityEngine.Quaternion
UnityEngine.Quaternion::AngleAxis(System.Single angle, UnityEngine.Vector3 axis)
IL_02B1: ldarg.s 4
IL_02B3: ldarg.s 4
IL_02B5: ldarg.s 4
IL_02B7: newobj System.Void UnityEngine.Vector3::.ctor(System.Single x,
System.Single y, System.Single z)
IL_02BC: call System.Void UnityEngine.Matrix4x4::SetTRS(UnityEngine.Vector3
pos, UnityEngine.Quaternion q, UnityEngine.Vector3 s)
IL_02C1: call static PropManager
ColossalFramework.Singleton`1<PropManager>::get_instance()
IL_02C6: stloc.s 14 (PropManager)
IL_02C8: ldloc.s 14 (PropManager)
IL_02CA: ldfld UnityEngine.MaterialPropertyBlock PropManager::m_materialBlock
IL_02CF: stloc.s 15 (UnityEngine.MaterialPropertyBlock)
IL_02D1: ldloc.s 15 (UnityEngine.MaterialPropertyBlock)
IL_02D3: callvirt System.Void UnityEngine.MaterialPropertyBlock::Clear()
IL_02D8: ldloc.s 15 (UnityEngine.MaterialPropertyBlock)
IL_02DA: ldloc.s 14 (PropManager)
IL_02DC: ldfld System.Int32 PropManager::ID_Color
IL_02E1: ldarg.s 6
IL_02E3: callvirt System.Void
UnityEngine.MaterialPropertyBlock::SetColor(System.Int32 nameID, UnityEngine.Color
value)
IL_02E8: ldloc.s 15 (UnityEngine.MaterialPropertyBlock)
IL_02EA: ldloc.s 14 (PropManager)
IL_02EC: ldfld System.Int32 PropManager::ID_HeightMap
IL_02F1: ldarg.s 9
IL_02F3: callvirt System.Void
UnityEngine.MaterialPropertyBlock::SetTexture(System.Int32 nameID,
UnityEngine.Texture value)
IL_02F8: ldloc.s 15 (UnityEngine.MaterialPropertyBlock)
IL_02FA: ldloc.s 14 (PropManager)
IL_02FC: ldfld System.Int32 PropManager::ID_HeightMapping
IL_0301: ldarg.s 10
IL_0303: callvirt System.Void
UnityEngine.MaterialPropertyBlock::SetVector(System.Int32 nameID,
UnityEngine.Vector4 value)
IL_0308: ldloc.s 15 (UnityEngine.MaterialPropertyBlock)
IL_030A: ldloc.s 14 (PropManager)
IL_030C: ldfld System.Int32 PropManager::ID_SurfaceMapping
IL_0311: ldarg.s 11
IL_0313: callvirt System.Void
UnityEngine.MaterialPropertyBlock::SetVector(System.Int32 nameID,
UnityEngine.Vector4 value)
IL_0318: ldloc.s 15 (UnityEngine.MaterialPropertyBlock)
IL_031A: ldloc.s 14 (PropManager)
IL_031C: ldfld System.Int32 PropManager::ID_ObjectIndex
IL_0321: ldarg.s 7
IL_0323: callvirt System.Void
UnityEngine.MaterialPropertyBlock::SetVector(System.Int32 nameID,
UnityEngine.Vector4 value)
IL_0328: ldloc.s 15 (UnityEngine.MaterialPropertyBlock)
IL_032A: ldloc.s 14 (PropManager)
IL_032C: ldfld System.Int32 PropManager::ID_WaterHeightMap
IL_0331: ldarg.s 12
IL_0333: callvirt System.Void
UnityEngine.MaterialPropertyBlock::SetTexture(System.Int32 nameID,
UnityEngine.Texture value)
IL_0338: ldloc.s 15 (UnityEngine.MaterialPropertyBlock)
IL_033A: ldloc.s 14 (PropManager)
IL_033C: ldfld System.Int32 PropManager::ID_WaterHeightMapping
IL_0341: ldarg.s 13
IL_0343: callvirt System.Void
UnityEngine.MaterialPropertyBlock::SetVector(System.Int32 nameID,
UnityEngine.Vector4 value)
IL_0348: ldloc.s 15 (UnityEngine.MaterialPropertyBlock)
IL_034A: ldloc.s 14 (PropManager)
IL_034C: ldfld System.Int32 PropManager::ID_WaterSurfaceMapping
IL_0351: ldarg.s 14
IL_0353: callvirt System.Void
UnityEngine.MaterialPropertyBlock::SetVector(System.Int32 nameID,
UnityEngine.Vector4 value)
IL_0358: ldarg.1
IL_0359: ldfld UnityEngine.Vector4[] PropInfo::m_rollLocation
IL_035E: brfalse => Label18
IL_0363: ldarg.1
IL_0364: ldfld UnityEngine.Material PropInfo::m_material
IL_0369: ldloc.s 14 (PropManager)
IL_036B: ldfld System.Int32 PropManager::ID_RollLocation
IL_0370: ldarg.1
IL_0371: ldfld UnityEngine.Vector4[] PropInfo::m_rollLocation
IL_0376: callvirt System.Void UnityEngine.Material::SetVectorArray(System.Int32
nameID, UnityEngine.Vector4[] values)
IL_037B: ldarg.1
IL_037C: ldfld UnityEngine.Material PropInfo::m_material
IL_0381: ldloc.s 14 (PropManager)
IL_0383: ldfld System.Int32 PropManager::ID_RollParams
IL_0388: ldarg.1
IL_0389: ldfld UnityEngine.Vector4[] PropInfo::m_rollParams
IL_038E: callvirt System.Void UnityEngine.Material::SetVectorArray(System.Int32
nameID, UnityEngine.Vector4[] values)
IL_0393: Label18
IL_0393: ldloc.s 14 (PropManager)
IL_0395: ldflda DrawCallData SimulationManagerBase`2<PropManager,
PropProperties>::m_drawCallData
IL_039A: dup
IL_039B: ldfld System.Int32 DrawCallData::m_defaultCalls
IL_03A0: ldc.i4.1
IL_03A1: add
IL_03A2: stfld System.Int32 DrawCallData::m_defaultCalls
IL_03A7: ldarg.1
IL_03A8: ldfld UnityEngine.Mesh PropInfo::m_mesh
IL_03AD: ldloc.s 13 (UnityEngine.Matrix4x4)
IL_03AF: ldarg.1
IL_03B0: ldfld UnityEngine.Material PropInfo::m_material
IL_03B5: ldarg.1
IL_03B6: ldfld System.Int32 PrefabInfo::m_prefabDataLayer
IL_03BB: ldnull
IL_03BC: ldc.i4.0
IL_03BD: ldloc.s 15 (UnityEngine.MaterialPropertyBlock)
IL_03BF: call static System.Void
UnityEngine.Graphics::DrawMesh(UnityEngine.Mesh mesh, UnityEngine.Matrix4x4 matrix,
UnityEngine.Material material, System.Int32 layer, UnityEngine.Camera camera,
System.Int32 submeshIndex, UnityEngine.MaterialPropertyBlock properties)
IL_03C4: br => Label19
IL_03C9: Label17
IL_03C9: ldarg.s 9
IL_03CB: ldarg.1
IL_03CC: ldfld UnityEngine.Texture PropInfo::m_lodHeightMap
IL_03D1: call static System.Boolean
UnityEngine.Object::op_Inequality(UnityEngine.Object x, UnityEngine.Object y)
IL_03D6: brtrue => Label20
IL_03DB: ldarg.s 12
IL_03DD: ldarg.1
IL_03DE: ldfld UnityEngine.Texture PropInfo::m_lodWaterHeightMap
IL_03E3: call static System.Boolean
UnityEngine.Object::op_Inequality(UnityEngine.Object x, UnityEngine.Object y)
IL_03E8: brfalse => Label21
IL_03ED: Label20
IL_03ED: ldarg.1
IL_03EE: ldfld System.Int32 PropInfo::m_lodCount
IL_03F3: brfalse => Label22
IL_03F8: ldarg.0
IL_03F9: ldarg.1
IL_03FA: call static System.Void PropInstance::RenderLod(CameraInfo
cameraInfo, PropInfo info)
IL_03FF: Label22
IL_03FF: ldarg.1
IL_0400: ldarg.s 9
IL_0402: stfld UnityEngine.Texture PropInfo::m_lodHeightMap
IL_0407: ldarg.1
IL_0408: ldarg.s 10
IL_040A: stfld UnityEngine.Vector4 PropInfo::m_lodHeightMapping
IL_040F: ldarg.1
IL_0410: ldarg.s 11
IL_0412: stfld UnityEngine.Vector4 PropInfo::m_lodSurfaceMapping
IL_0417: ldarg.1
IL_0418: ldarg.s 12
IL_041A: stfld UnityEngine.Texture PropInfo::m_lodWaterHeightMap
IL_041F: ldarg.1
IL_0420: ldarg.s 13
IL_0422: stfld UnityEngine.Vector4 PropInfo::m_lodWaterHeightMapping
IL_0427: ldarg.1
IL_0428: ldarg.s 14
IL_042A: stfld UnityEngine.Vector4 PropInfo::m_lodWaterSurfaceMapping
IL_042F: Label21
IL_042F: ldarga.s 7
IL_0431: ldarg.s 4
IL_0433: stfld System.Single UnityEngine.Vector4::w
IL_0438: ldarg.1
IL_0439: ldfld UnityEngine.Vector4[] PropInfo::m_lodLocations
IL_043E: ldarg.1
IL_043F: ldfld System.Int32 PropInfo::m_lodCount
IL_0444: ldelema UnityEngine.Vector4
IL_0449: ldarga.s 3
IL_044B: ldfld System.Single UnityEngine.Vector3::x
IL_0450: ldarga.s 3
IL_0452: ldfld System.Single UnityEngine.Vector3::y
IL_0457: ldarga.s 3
IL_0459: ldfld System.Single UnityEngine.Vector3::z
IL_045E: ldarg.s 5
IL_0460: newobj System.Void UnityEngine.Vector4::.ctor(System.Single x,
System.Single y, System.Single z, System.Single w)
IL_0465: stobj UnityEngine.Vector4
IL_046A: ldarg.1
IL_046B: ldfld UnityEngine.Vector4[] PropInfo::m_lodObjectIndices
IL_0470: ldarg.1
IL_0471: ldfld System.Int32 PropInfo::m_lodCount
IL_0476: ldelema UnityEngine.Vector4
IL_047B: ldarg.s 7
IL_047D: stobj UnityEngine.Vector4
IL_0482: ldarg.1
IL_0483: ldfld UnityEngine.Vector4[] PropInfo::m_lodColors
IL_0488: ldarg.1
IL_0489: ldfld System.Int32 PropInfo::m_lodCount
IL_048E: ldelema UnityEngine.Vector4
IL_0493: ldarga.s 6
IL_0495: call UnityEngine.Color UnityEngine.Color::get_linear()
IL_049A: call static UnityEngine.Vector4
UnityEngine.Color::op_Implicit(UnityEngine.Color c)
IL_049F: stobj UnityEngine.Vector4
IL_04A4: ldarg.1
IL_04A5: ldarg.1
IL_04A6: ldfld UnityEngine.Vector3 PropInfo::m_lodMin
IL_04AB: ldarg.3
IL_04AC: call static UnityEngine.Vector3
UnityEngine.Vector3::Min(UnityEngine.Vector3 lhs, UnityEngine.Vector3 rhs)
IL_04B1: stfld UnityEngine.Vector3 PropInfo::m_lodMin
IL_04B6: ldarg.1
IL_04B7: ldarg.1
IL_04B8: ldfld UnityEngine.Vector3 PropInfo::m_lodMax
IL_04BD: ldarg.3
IL_04BE: call static UnityEngine.Vector3
UnityEngine.Vector3::Max(UnityEngine.Vector3 lhs, UnityEngine.Vector3 rhs)
IL_04C3: stfld UnityEngine.Vector3 PropInfo::m_lodMax
IL_04C8: ldarg.1
IL_04C9: dup
IL_04CA: ldfld System.Int32 PropInfo::m_lodCount
IL_04CF: ldc.i4.1
IL_04D0: add
IL_04D1: dup
IL_04D2: stloc.s 16 (System.Int32)
IL_04D4: stfld System.Int32 PropInfo::m_lodCount
IL_04D9: ldloc.s 16 (System.Int32)
IL_04DB: ldarg.1
IL_04DC: ldfld UnityEngine.Vector4[] PropInfo::m_lodLocations
IL_04E1: ldlen
IL_04E2: conv.i4
IL_04E3: bne.un => Label23
IL_04E8: ldarg.0
IL_04E9: ldarg.1
IL_04EA: call static System.Void PropInstance::RenderLod(CameraInfo
cameraInfo, PropInfo info)
IL_04EF: // end original
IL_04EF: Label0
IL_04EF: Label6
IL_04EF: Label7
IL_04EF: Label19
IL_04EF: Label23
IL_04EF: ret
DONE

### Patch: static System.Void PropInstance::RenderInstance(CameraInfo cameraInfo,


PropInfo info, InstanceID id, UnityEngine.Vector3 position, System.Single scale,
System.Single angle, UnityEngine.Color color, UnityEngine.Vector4 objectIndex,
System.Boolean active)
### Replacement: static System.Void
PropInstance::PropInstance.RenderInstance_Patch0(CameraInfo cameraInfo, PropInfo
info, InstanceID id, UnityEngine.Vector3 position, System.Single scale,
System.Single angle, UnityEngine.Color color, UnityEngine.Vector4 objectIndex,
System.Boolean active)
IL_0000: Local var 0: UnityEngine.Matrix4x4
IL_0000: Local var 1: System.Single
IL_0000: Local var 2: System.Int32
IL_0000: Local var 3: UnityEngine.Vector3
IL_0000: Local var 4: UnityEngine.Vector3
IL_0000: Local var 5: EffectInfo/SpawnArea
IL_0000: Local var 6: System.Single
IL_0000: Local var 7: LightSystem
IL_0000: Local var 8: ColossalFramework.Math.Randomizer
IL_0000: Local var 9: UnityEngine.Vector4
IL_0000: Local var 10: System.Single
IL_0000: Local var 11: System.Single
IL_0000: Local var 12: System.Single
IL_0000: Local var 13: UnityEngine.Matrix4x4
IL_0000: Local var 14: PropManager
IL_0000: Local var 15: UnityEngine.MaterialPropertyBlock
IL_0000: Local var 16: UnityEngine.Matrix4x4
IL_0000: Local var 17: PropManager
IL_0000: Local var 18: UnityEngine.MaterialPropertyBlock
IL_0000: Local var 19: System.Int32
IL_0000: // start original
IL_0000: ldarg.1
IL_0001: ldfld System.Boolean PrefabInfo::m_prefabInitialized
IL_0006: brfalse => Label0
IL_000B: ldarg.1
IL_000C: ldfld System.Boolean PropInfo::m_hasEffects
IL_0011: brfalse => Label1
IL_0016: ldarg.s 8
IL_0018: brtrue => Label2
IL_001D: ldarg.1
IL_001E: ldfld System.Boolean PropInfo::m_alwaysActive
IL_0023: brfalse => Label3
IL_0028: Label2
IL_0028: ldloca.s 0 (UnityEngine.Matrix4x4)
IL_002A: initobj UnityEngine.Matrix4x4
IL_0030: ldloca.s 0 (UnityEngine.Matrix4x4)
IL_0032: ldarg.3
IL_0033: ldarg.s 5
IL_0035: ldc.r4 57.29578
IL_003A: mul
IL_003B: call static UnityEngine.Vector3 UnityEngine.Vector3::get_down()
IL_0040: call static UnityEngine.Quaternion
UnityEngine.Quaternion::AngleAxis(System.Single angle, UnityEngine.Vector3 axis)
IL_0045: ldarg.s 4
IL_0047: ldarg.s 4
IL_0049: ldarg.s 4
IL_004B: newobj System.Void UnityEngine.Vector3::.ctor(System.Single x,
System.Single y, System.Single z)
IL_0050: call System.Void UnityEngine.Matrix4x4::SetTRS(UnityEngine.Vector3
pos, UnityEngine.Quaternion q, UnityEngine.Vector3 s)
IL_0055: call static SimulationManager
ColossalFramework.Singleton`1<SimulationManager>::get_instance()
IL_005A: ldfld System.Single SimulationManager::m_simulationTimeDelta
IL_005F: stloc.1
IL_0060: ldc.i4.0
IL_0061: stloc.2
IL_0062: br => Label4
IL_0067: Label5
IL_0067: ldloca.s 0 (UnityEngine.Matrix4x4)
IL_0069: ldarg.1
IL_006A: ldfld Effect[] PropInfo::m_effects
IL_006F: ldloc.2
IL_0070: ldelema PropInfo+Effect
IL_0075: ldfld UnityEngine.Vector3 Effect::m_position
IL_007A: call UnityEngine.Vector3
UnityEngine.Matrix4x4::MultiplyPoint(UnityEngine.Vector3 v)
IL_007F: stloc.3
IL_0080: ldloca.s 0 (UnityEngine.Matrix4x4)
IL_0082: ldarg.1
IL_0083: ldfld Effect[] PropInfo::m_effects
IL_0088: ldloc.2
IL_0089: ldelema PropInfo+Effect
IL_008E: ldfld UnityEngine.Vector3 Effect::m_direction
IL_0093: call UnityEngine.Vector3
UnityEngine.Matrix4x4::MultiplyVector(UnityEngine.Vector3 v)
IL_0098: stloc.s 4 (UnityEngine.Vector3)
IL_009A: ldloca.s 5 (EffectInfo+SpawnArea)
IL_009C: ldloc.3
IL_009D: ldloc.s 4 (UnityEngine.Vector3)
IL_009F: ldc.r4 0
IL_00A4: call System.Void SpawnArea::.ctor(UnityEngine.Vector3 position,
UnityEngine.Vector3 direction, System.Single radius)
IL_00A9: ldarg.1
IL_00AA: ldfld Effect[] PropInfo::m_effects
IL_00AF: ldloc.2
IL_00B0: ldelema PropInfo+Effect
IL_00B5: ldfld EffectInfo Effect::m_effect
IL_00BA: ldarg.2
IL_00BB: ldloc.s 5 (EffectInfo+SpawnArea)
IL_00BD: call static UnityEngine.Vector3 UnityEngine.Vector3::get_zero()
IL_00C2: ldc.r4 0
IL_00C7: ldc.r4 1
IL_00CC: ldc.r4 -1
IL_00D1: ldloc.1
IL_00D2: ldarg.0
IL_00D3: callvirt virtual System.Void EffectInfo::RenderEffect(InstanceID id,
SpawnArea area, UnityEngine.Vector3 velocity, System.Single acceleration,
System.Single magnitude, System.Single timeOffset, System.Single timeDelta,
CameraInfo cameraInfo)
IL_00D8: ldloc.2
IL_00D9: ldc.i4.1
IL_00DA: add
IL_00DB: stloc.2
IL_00DC: Label4
IL_00DC: ldloc.2
IL_00DD: ldarg.1
IL_00DE: ldfld Effect[] PropInfo::m_effects
IL_00E3: ldlen
IL_00E4: conv.i4
IL_00E5: blt => Label5
IL_00EA: Label1
IL_00EA: Label3
IL_00EA: ldarg.1
IL_00EB: ldfld System.Boolean PropInfo::m_hasRenderer
IL_00F0: brfalse => Label6
IL_00F5: ldarg.0
IL_00F6: ldfld System.Int32 CameraInfo::m_layerMask
IL_00FB: ldc.i4.1
IL_00FC: ldarg.1
IL_00FD: ldfld System.Int32 PrefabInfo::m_prefabDataLayer
IL_0102: ldc.i4.s 31
IL_0104: and
IL_0105: shl
IL_0106: and
IL_0107: brfalse => Label7
IL_010C: call static InfoManager
ColossalFramework.Singleton`1<InfoManager>::get_instance()
IL_0111: callvirt InfoMode InfoManager::get_CurrentMode()
IL_0116: brtrue => Label8
IL_011B: ldc.r4 0
IL_0120: stloc.s 6 (System.Single)
IL_0122: ldarg.s 8
IL_0124: brtrue => Label9
IL_0129: ldarg.1
IL_012A: ldfld System.Boolean PropInfo::m_alwaysActive
IL_012F: brtrue => Label10
IL_0134: ldarga.s 7
IL_0136: ldc.r4 0
IL_013B: stfld System.Single UnityEngine.Vector4::z
IL_0140: br => Label11
IL_0145: Label9
IL_0145: Label10
IL_0145: ldarg.1
IL_0146: ldflda UnityEngine.Vector2 PropInfo::m_illuminationOffRange
IL_014B: ldfld System.Single UnityEngine.Vector2::x
IL_0150: ldc.r4 1000
IL_0155: blt => Label12
IL_015A: ldarg.1
IL_015B: ldfld BlinkType PropInfo::m_illuminationBlinkType
IL_0160: brfalse => Label13
IL_0165: Label12
IL_0165: call static RenderManager
ColossalFramework.Singleton`1<RenderManager>::get_instance()
IL_016A: callvirt LightSystem RenderManager::get_lightSystem()
IL_016F: stloc.s 7 (LightSystem)
IL_0171: ldloca.s 8 (ColossalFramework.Math.Randomizer)
IL_0173: ldarga.s 2
IL_0175: call System.UInt32 InstanceID::get_Index()
IL_017A: call System.Void
ColossalFramework.Math.Randomizer::.ctor(System.UInt32 _seed)
IL_017F: ldarg.1
IL_0180: ldflda UnityEngine.Vector2 PropInfo::m_illuminationOffRange
IL_0185: ldfld System.Single UnityEngine.Vector2::x
IL_018A: ldloca.s 8 (ColossalFramework.Math.Randomizer)
IL_018C: ldc.i4 100000
IL_0191: call System.Int32
ColossalFramework.Math.Randomizer::Int32(System.UInt32 range)
IL_0196: conv.r4
IL_0197: ldc.r4 1E-05
IL_019C: mul
IL_019D: ldarg.1
IL_019E: ldflda UnityEngine.Vector2 PropInfo::m_illuminationOffRange
IL_01A3: ldfld System.Single UnityEngine.Vector2::y
IL_01A8: ldarg.1
IL_01A9: ldflda UnityEngine.Vector2 PropInfo::m_illuminationOffRange
IL_01AE: ldfld System.Single UnityEngine.Vector2::x
IL_01B3: sub
IL_01B4: mul
IL_01B5: add
IL_01B6: stloc.s 6 (System.Single)
IL_01B8: ldarga.s 7
IL_01BA: ldloc.s 6 (System.Single)
IL_01BC: ldc.r4 0.01
IL_01C1: add
IL_01C2: ldloc.s 6 (System.Single)
IL_01C4: ldc.r4 0.01
IL_01C9: sub
IL_01CA: ldloc.s 7 (LightSystem)
IL_01CC: callvirt System.Single LightSystem::get_DayLightIntensity()
IL_01D1: call static System.Single MathUtils::SmoothStep(System.Single edge0,
System.Single edge1, System.Single x)
IL_01D6: stfld System.Single UnityEngine.Vector4::z
IL_01DB: ldarg.1
IL_01DC: ldfld BlinkType PropInfo::m_illuminationBlinkType
IL_01E1: brfalse => Label14
IL_01E6: ldarg.1
IL_01E7: ldfld BlinkType PropInfo::m_illuminationBlinkType
IL_01EC: call static UnityEngine.Vector4
LightEffect::GetBlinkVector(BlinkType type)
IL_01F1: stloc.s 9 (UnityEngine.Vector4)
IL_01F3: ldloc.s 6 (System.Single)
IL_01F5: ldc.r4 3.71
IL_01FA: mul
IL_01FB: call static SimulationManager
ColossalFramework.Singleton`1<SimulationManager>::get_instance()
IL_0200: ldfld System.Single SimulationManager::m_simulationTimer
IL_0205: ldloca.s 9 (UnityEngine.Vector4)
IL_0207: ldfld System.Single UnityEngine.Vector4::w
IL_020C: div
IL_020D: add
IL_020E: stloc.s 10 (System.Single)
IL_0210: ldloc.s 10 (System.Single)
IL_0212: ldloc.s 10 (System.Single)
IL_0214: call static System.Single UnityEngine.Mathf::Floor(System.Single f)
IL_0219: sub
IL_021A: ldloca.s 9 (UnityEngine.Vector4)
IL_021C: ldfld System.Single UnityEngine.Vector4::w
IL_0221: mul
IL_0222: stloc.s 10 (System.Single)
IL_0224: ldloca.s 9 (UnityEngine.Vector4)
IL_0226: ldfld System.Single UnityEngine.Vector4::x
IL_022B: ldloca.s 9 (UnityEngine.Vector4)
IL_022D: ldfld System.Single UnityEngine.Vector4::y
IL_0232: ldloc.s 10 (System.Single)
IL_0234: call static System.Single MathUtils::SmoothStep(System.Single edge0,
System.Single edge1, System.Single x)
IL_0239: stloc.s 11 (System.Single)
IL_023B: ldloca.s 9 (UnityEngine.Vector4)
IL_023D: ldfld System.Single UnityEngine.Vector4::w
IL_0242: ldloca.s 9 (UnityEngine.Vector4)
IL_0244: ldfld System.Single UnityEngine.Vector4::z
IL_0249: ldloc.s 10 (System.Single)
IL_024B: call static System.Single MathUtils::SmoothStep(System.Single edge0,
System.Single edge1, System.Single x)
IL_0250: stloc.s 12 (System.Single)
IL_0252: ldarga.s 7
IL_0254: dup
IL_0255: ldfld System.Single UnityEngine.Vector4::z
IL_025A: ldc.r4 1
IL_025F: ldloc.s 11 (System.Single)
IL_0261: ldloc.s 12 (System.Single)
IL_0263: mul
IL_0264: sub
IL_0265: mul
IL_0266: stfld System.Single UnityEngine.Vector4::z
IL_026B: Label14
IL_026B: br => Label15
IL_0270: Label13
IL_0270: ldarga.s 7
IL_0272: ldc.r4 1
IL_0277: stfld System.Single UnityEngine.Vector4::z
IL_027C: Label8
IL_027C: Label11
IL_027C: Label15
IL_027C: ldarg.0
IL_027D: brfalse => Label16
IL_0282: ldarg.0
IL_0283: ldarg.3
IL_0284: ldarg.1
IL_0285: ldfld System.Single PropInfo::m_lodRenderDistance
IL_028A: callvirt System.Boolean
CameraInfo::CheckRenderDistance(UnityEngine.Vector3 point, System.Single
maxDistance)
IL_028F: brfalse => Label17
IL_0294: Label16
IL_0294: ldloca.s 13 (UnityEngine.Matrix4x4)
IL_0296: initobj UnityEngine.Matrix4x4
IL_029C: ldloca.s 13 (UnityEngine.Matrix4x4)
IL_029E: ldarg.3
IL_029F: ldarg.s 5
IL_02A1: ldc.r4 57.29578
IL_02A6: mul
IL_02A7: call static UnityEngine.Vector3 UnityEngine.Vector3::get_down()
IL_02AC: call static UnityEngine.Quaternion
UnityEngine.Quaternion::AngleAxis(System.Single angle, UnityEngine.Vector3 axis)
IL_02B1: ldarg.s 4
IL_02B3: ldarg.s 4
IL_02B5: ldarg.s 4
IL_02B7: newobj System.Void UnityEngine.Vector3::.ctor(System.Single x,
System.Single y, System.Single z)
IL_02BC: call System.Void UnityEngine.Matrix4x4::SetTRS(UnityEngine.Vector3
pos, UnityEngine.Quaternion q, UnityEngine.Vector3 s)
IL_02C1: call static PropManager
ColossalFramework.Singleton`1<PropManager>::get_instance()
IL_02C6: stloc.s 14 (PropManager)
IL_02C8: ldloc.s 14 (PropManager)
IL_02CA: ldfld UnityEngine.MaterialPropertyBlock PropManager::m_materialBlock
IL_02CF: stloc.s 15 (UnityEngine.MaterialPropertyBlock)
IL_02D1: ldloc.s 15 (UnityEngine.MaterialPropertyBlock)
IL_02D3: callvirt System.Void UnityEngine.MaterialPropertyBlock::Clear()
IL_02D8: ldloc.s 15 (UnityEngine.MaterialPropertyBlock)
IL_02DA: ldloc.s 14 (PropManager)
IL_02DC: ldfld System.Int32 PropManager::ID_Color
IL_02E1: ldarg.s 6
IL_02E3: callvirt System.Void
UnityEngine.MaterialPropertyBlock::SetColor(System.Int32 nameID, UnityEngine.Color
value)
IL_02E8: ldloc.s 15 (UnityEngine.MaterialPropertyBlock)
IL_02EA: ldloc.s 14 (PropManager)
IL_02EC: ldfld System.Int32 PropManager::ID_ObjectIndex
IL_02F1: ldarg.s 7
IL_02F3: callvirt System.Void
UnityEngine.MaterialPropertyBlock::SetVector(System.Int32 nameID,
UnityEngine.Vector4 value)
IL_02F8: ldarg.1
IL_02F9: ldfld UnityEngine.Vector4[] PropInfo::m_rollLocation
IL_02FE: brfalse => Label18
IL_0303: ldarg.1
IL_0304: ldfld UnityEngine.Material PropInfo::m_material
IL_0309: ldloc.s 14 (PropManager)
IL_030B: ldfld System.Int32 PropManager::ID_RollLocation
IL_0310: ldarg.1
IL_0311: ldfld UnityEngine.Vector4[] PropInfo::m_rollLocation
IL_0316: callvirt System.Void UnityEngine.Material::SetVectorArray(System.Int32
nameID, UnityEngine.Vector4[] values)
IL_031B: ldarg.1
IL_031C: ldfld UnityEngine.Material PropInfo::m_material
IL_0321: ldloc.s 14 (PropManager)
IL_0323: ldfld System.Int32 PropManager::ID_RollParams
IL_0328: ldarg.1
IL_0329: ldfld UnityEngine.Vector4[] PropInfo::m_rollParams
IL_032E: callvirt System.Void UnityEngine.Material::SetVectorArray(System.Int32
nameID, UnityEngine.Vector4[] values)
IL_0333: Label18
IL_0333: ldloc.s 14 (PropManager)
IL_0335: ldflda DrawCallData SimulationManagerBase`2<PropManager,
PropProperties>::m_drawCallData
IL_033A: dup
IL_033B: ldfld System.Int32 DrawCallData::m_defaultCalls
IL_0340: ldc.i4.1
IL_0341: add
IL_0342: stfld System.Int32 DrawCallData::m_defaultCalls
IL_0347: ldarg.1
IL_0348: ldfld UnityEngine.Mesh PropInfo::m_mesh
IL_034D: ldloc.s 13 (UnityEngine.Matrix4x4)
IL_034F: ldarg.1
IL_0350: ldfld UnityEngine.Material PropInfo::m_material
IL_0355: ldarg.1
IL_0356: ldfld System.Int32 PrefabInfo::m_prefabDataLayer
IL_035B: ldnull
IL_035C: ldc.i4.0
IL_035D: ldloc.s 15 (UnityEngine.MaterialPropertyBlock)
IL_035F: call static System.Void
UnityEngine.Graphics::DrawMesh(UnityEngine.Mesh mesh, UnityEngine.Matrix4x4 matrix,
UnityEngine.Material material, System.Int32 layer, UnityEngine.Camera camera,
System.Int32 submeshIndex, UnityEngine.MaterialPropertyBlock properties)
IL_0364: br => Label19
IL_0369: Label17
IL_0369: ldarg.1
IL_036A: ldfld UnityEngine.Material PropInfo::m_lodMaterialCombined
IL_036F: ldnull
IL_0370: call static System.Boolean
UnityEngine.Object::op_Equality(UnityEngine.Object x, UnityEngine.Object y)
IL_0375: brfalse => Label20
IL_037A: ldloca.s 16 (UnityEngine.Matrix4x4)
IL_037C: initobj UnityEngine.Matrix4x4
IL_0382: ldloca.s 16 (UnityEngine.Matrix4x4)
IL_0384: ldarg.3
IL_0385: ldarg.s 5
IL_0387: ldc.r4 57.29578
IL_038C: mul
IL_038D: call static UnityEngine.Vector3 UnityEngine.Vector3::get_down()
IL_0392: call static UnityEngine.Quaternion
UnityEngine.Quaternion::AngleAxis(System.Single angle, UnityEngine.Vector3 axis)
IL_0397: ldarg.s 4
IL_0399: ldarg.s 4
IL_039B: ldarg.s 4
IL_039D: newobj System.Void UnityEngine.Vector3::.ctor(System.Single x,
System.Single y, System.Single z)
IL_03A2: call System.Void UnityEngine.Matrix4x4::SetTRS(UnityEngine.Vector3
pos, UnityEngine.Quaternion q, UnityEngine.Vector3 s)
IL_03A7: call static PropManager
ColossalFramework.Singleton`1<PropManager>::get_instance()
IL_03AC: stloc.s 17 (PropManager)
IL_03AE: ldloc.s 17 (PropManager)
IL_03B0: ldfld UnityEngine.MaterialPropertyBlock PropManager::m_materialBlock
IL_03B5: stloc.s 18 (UnityEngine.MaterialPropertyBlock)
IL_03B7: ldloc.s 18 (UnityEngine.MaterialPropertyBlock)
IL_03B9: callvirt System.Void UnityEngine.MaterialPropertyBlock::Clear()
IL_03BE: ldloc.s 18 (UnityEngine.MaterialPropertyBlock)
IL_03C0: ldloc.s 17 (PropManager)
IL_03C2: ldfld System.Int32 PropManager::ID_Color
IL_03C7: ldarg.s 6
IL_03C9: callvirt System.Void
UnityEngine.MaterialPropertyBlock::SetColor(System.Int32 nameID, UnityEngine.Color
value)
IL_03CE: ldloc.s 18 (UnityEngine.MaterialPropertyBlock)
IL_03D0: ldloc.s 17 (PropManager)
IL_03D2: ldfld System.Int32 PropManager::ID_ObjectIndex
IL_03D7: ldarg.s 7
IL_03D9: callvirt System.Void
UnityEngine.MaterialPropertyBlock::SetVector(System.Int32 nameID,
UnityEngine.Vector4 value)
IL_03DE: ldarg.1
IL_03DF: ldfld UnityEngine.Vector4[] PropInfo::m_rollLocation
IL_03E4: brfalse => Label21
IL_03E9: ldarg.1
IL_03EA: ldfld UnityEngine.Material PropInfo::m_material
IL_03EF: ldloc.s 17 (PropManager)
IL_03F1: ldfld System.Int32 PropManager::ID_RollLocation
IL_03F6: ldarg.1
IL_03F7: ldfld UnityEngine.Vector4[] PropInfo::m_rollLocation
IL_03FC: callvirt System.Void UnityEngine.Material::SetVectorArray(System.Int32
nameID, UnityEngine.Vector4[] values)
IL_0401: ldarg.1
IL_0402: ldfld UnityEngine.Material PropInfo::m_material
IL_0407: ldloc.s 17 (PropManager)
IL_0409: ldfld System.Int32 PropManager::ID_RollParams
IL_040E: ldarg.1
IL_040F: ldfld UnityEngine.Vector4[] PropInfo::m_rollParams
IL_0414: callvirt System.Void UnityEngine.Material::SetVectorArray(System.Int32
nameID, UnityEngine.Vector4[] values)
IL_0419: Label21
IL_0419: ldloc.s 17 (PropManager)
IL_041B: ldflda DrawCallData SimulationManagerBase`2<PropManager,
PropProperties>::m_drawCallData
IL_0420: dup
IL_0421: ldfld System.Int32 DrawCallData::m_defaultCalls
IL_0426: ldc.i4.1
IL_0427: add
IL_0428: stfld System.Int32 DrawCallData::m_defaultCalls
IL_042D: ldarg.1
IL_042E: ldfld UnityEngine.Mesh PropInfo::m_lodMesh
IL_0433: ldloc.s 16 (UnityEngine.Matrix4x4)
IL_0435: ldarg.1
IL_0436: ldfld UnityEngine.Material PropInfo::m_lodMaterial
IL_043B: ldarg.1
IL_043C: ldfld System.Int32 PrefabInfo::m_prefabDataLayer
IL_0441: ldnull
IL_0442: ldc.i4.0
IL_0443: ldloc.s 18 (UnityEngine.MaterialPropertyBlock)
IL_0445: call static System.Void
UnityEngine.Graphics::DrawMesh(UnityEngine.Mesh mesh, UnityEngine.Matrix4x4 matrix,
UnityEngine.Material material, System.Int32 layer, UnityEngine.Camera camera,
System.Int32 submeshIndex, UnityEngine.MaterialPropertyBlock properties)
IL_044A: br => Label22
IL_044F: Label20
IL_044F: ldarga.s 7
IL_0451: ldarg.s 4
IL_0453: stfld System.Single UnityEngine.Vector4::w
IL_0458: ldarg.1
IL_0459: ldfld UnityEngine.Vector4[] PropInfo::m_lodLocations
IL_045E: ldarg.1
IL_045F: ldfld System.Int32 PropInfo::m_lodCount
IL_0464: ldelema UnityEngine.Vector4
IL_0469: ldarga.s 3
IL_046B: ldfld System.Single UnityEngine.Vector3::x
IL_0470: ldarga.s 3
IL_0472: ldfld System.Single UnityEngine.Vector3::y
IL_0477: ldarga.s 3
IL_0479: ldfld System.Single UnityEngine.Vector3::z
IL_047E: ldarg.s 5
IL_0480: newobj System.Void UnityEngine.Vector4::.ctor(System.Single x,
System.Single y, System.Single z, System.Single w)
IL_0485: stobj UnityEngine.Vector4
IL_048A: ldarg.1
IL_048B: ldfld UnityEngine.Vector4[] PropInfo::m_lodObjectIndices
IL_0490: ldarg.1
IL_0491: ldfld System.Int32 PropInfo::m_lodCount
IL_0496: ldelema UnityEngine.Vector4
IL_049B: ldarg.s 7
IL_049D: stobj UnityEngine.Vector4
IL_04A2: ldarg.1
IL_04A3: ldfld UnityEngine.Vector4[] PropInfo::m_lodColors
IL_04A8: ldarg.1
IL_04A9: ldfld System.Int32 PropInfo::m_lodCount
IL_04AE: ldelema UnityEngine.Vector4
IL_04B3: ldarga.s 6
IL_04B5: call UnityEngine.Color UnityEngine.Color::get_linear()
IL_04BA: call static UnityEngine.Vector4
UnityEngine.Color::op_Implicit(UnityEngine.Color c)
IL_04BF: stobj UnityEngine.Vector4
IL_04C4: ldarg.1
IL_04C5: ldarg.1
IL_04C6: ldfld UnityEngine.Vector3 PropInfo::m_lodMin
IL_04CB: ldarg.3
IL_04CC: call static UnityEngine.Vector3
UnityEngine.Vector3::Min(UnityEngine.Vector3 lhs, UnityEngine.Vector3 rhs)
IL_04D1: stfld UnityEngine.Vector3 PropInfo::m_lodMin
IL_04D6: ldarg.1
IL_04D7: ldarg.1
IL_04D8: ldfld UnityEngine.Vector3 PropInfo::m_lodMax
IL_04DD: ldarg.3
IL_04DE: call static UnityEngine.Vector3
UnityEngine.Vector3::Max(UnityEngine.Vector3 lhs, UnityEngine.Vector3 rhs)
IL_04E3: stfld UnityEngine.Vector3 PropInfo::m_lodMax
IL_04E8: ldarg.1
IL_04E9: dup
IL_04EA: ldfld System.Int32 PropInfo::m_lodCount
IL_04EF: ldc.i4.1
IL_04F0: add
IL_04F1: dup
IL_04F2: stloc.s 19 (System.Int32)
IL_04F4: stfld System.Int32 PropInfo::m_lodCount
IL_04F9: ldloc.s 19 (System.Int32)
IL_04FB: ldarg.1
IL_04FC: ldfld UnityEngine.Vector4[] PropInfo::m_lodLocations
IL_0501: ldlen
IL_0502: conv.i4
IL_0503: bne.un => Label23
IL_0508: ldarg.0
IL_0509: ldarg.1
IL_050A: call static System.Void PropInstance::RenderLod(CameraInfo
cameraInfo, PropInfo info)
IL_050F: // end original
IL_050F: Label0
IL_050F: Label6
IL_050F: Label7
IL_050F: Label19
IL_050F: Label22
IL_050F: Label23
IL_050F: ret
DONE

### Patch: virtual System.Void LightEffect::PopulateGroupData(System.Int32 layer,


InstanceID id, UnityEngine.Vector3 pos, UnityEngine.Vector3 dir, 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
LightEffect::LightEffect.PopulateGroupData_Patch0(LightEffect this, System.Int32
layer, InstanceID id, UnityEngine.Vector3 pos, UnityEngine.Vector3 dir,
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.Boolean
IL_0000: Local var 1: UnityEngine.Vector3
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.Quaternion
IL_0000: Local var 7: UnityEngine.Vector4
IL_0000: Local var 8: UnityEngine.Vector2
IL_0000: Local var 9: ColossalFramework.Math.Randomizer
IL_0000: Local var 10: UnityEngine.Vector2
IL_0000: Local var 11: UnityEngine.Vector2
IL_0000: Local var 12: UnityEngine.Vector2
IL_0000: Local var 13: System.UInt16
IL_0000: Local var 14: UnityEngine.Vector3
IL_0000: Local var 15: UnityEngine.Color
IL_0000: Local var 16: UnityEngine.Color
IL_0000: Local var 17: System.Single
IL_0000: Local var 18: System.Single
IL_0000: Local var 19: System.Int32
IL_0000: // start original
IL_0000: ldarg.1
IL_0001: ldarg.0
IL_0002: ldfld System.Int32 LightEffect::m_groupLayer
IL_0007: beq => Label0
IL_000C: ldarg.1
IL_000D: ldarg.0
IL_000E: ldfld System.Int32 LightEffect::m_groupLayerFloating
IL_0013: bne.un => Label1
IL_0018: Label0
IL_0018: ldarg.1
IL_0019: ldarg.0
IL_001A: ldfld System.Int32 LightEffect::m_groupLayerFloating
IL_001F: ceq
IL_0021: stloc.0
IL_0022: ldloca.s 1 (UnityEngine.Vector3)
IL_0024: ldarg.0
IL_0025: ldfld System.Single LightEffect::m_lightRange
IL_002A: ldarg.0
IL_002B: ldfld System.Single LightEffect::m_lightRange
IL_0030: ldarg.0
IL_0031: ldfld System.Single LightEffect::m_lightRange
IL_0036: call System.Void UnityEngine.Vector3::.ctor(System.Single x,
System.Single y, System.Single z)
IL_003B: ldarg.3
IL_003C: ldloc.1
IL_003D: call static UnityEngine.Vector3
UnityEngine.Vector3::op_Subtraction(UnityEngine.Vector3 a, UnityEngine.Vector3 b)
IL_0042: stloc.2
IL_0043: ldarg.3
IL_0044: ldloc.1
IL_0045: call static UnityEngine.Vector3
UnityEngine.Vector3::op_Addition(UnityEngine.Vector3 a, UnityEngine.Vector3 b)
IL_004A: stloc.3
IL_004B: ldarg.s 9
IL_004D: ldarg.s 9
IL_004F: ldobj UnityEngine.Vector3
IL_0054: ldloc.2
IL_0055: call static UnityEngine.Vector3
UnityEngine.Vector3::Min(UnityEngine.Vector3 lhs, UnityEngine.Vector3 rhs)
IL_005A: stobj UnityEngine.Vector3
IL_005F: ldarg.s 10
IL_0061: ldarg.s 10
IL_0063: ldobj UnityEngine.Vector3
IL_0068: ldloc.3
IL_0069: call static UnityEngine.Vector3
UnityEngine.Vector3::Max(UnityEngine.Vector3 lhs, UnityEngine.Vector3 rhs)
IL_006E: stobj UnityEngine.Vector3
IL_0073: ldarg.3
IL_0074: ldarg.s 7
IL_0076: call static UnityEngine.Vector3
UnityEngine.Vector3::op_Subtraction(UnityEngine.Vector3 a, UnityEngine.Vector3 b)
IL_007B: stloc.s 4 (UnityEngine.Vector3)
IL_007D: ldarg.s 11
IL_007F: ldarg.s 11
IL_0081: ldind.r4
IL_0082: ldc.r4 30000
IL_0087: call static System.Single UnityEngine.Mathf::Max(System.Single a,
System.Single b)
IL_008C: stind.r4
IL_008D: ldarg.0
IL_008E: ldfld UnityEngine.LightType LightEffect::m_lightType
IL_0093: brtrue => Label2
IL_0098: ldarg.s 4
IL_009A: call static UnityEngine.Quaternion
UnityEngine.Quaternion::LookRotation(UnityEngine.Vector3 forward)
IL_009F: stloc.s 6 (UnityEngine.Quaternion)
IL_00A1: ldloc.s 6 (UnityEngine.Quaternion)
IL_00A3: ldarg.0
IL_00A4: ldfld UnityEngine.Quaternion LightEffect::m_lightRotation
IL_00A9: call static UnityEngine.Vector3 UnityEngine.Vector3::get_forward()
IL_00AE: call static UnityEngine.Vector3
UnityEngine.Quaternion::op_Multiply(UnityEngine.Quaternion rotation,
UnityEngine.Vector3 point)
IL_00B3: call static UnityEngine.Vector3
UnityEngine.Quaternion::op_Multiply(UnityEngine.Quaternion rotation,
UnityEngine.Vector3 point)
IL_00B8: stloc.s 5 (UnityEngine.Vector3)
IL_00BA: br => Label3
IL_00BF: Label2
IL_00BF: call static UnityEngine.Vector3 UnityEngine.Vector3::get_forward()
IL_00C4: stloc.s 5 (UnityEngine.Vector3)
IL_00C6: Label3
IL_00C6: ldloca.s 7 (UnityEngine.Vector4)
IL_00C8: ldloca.s 5 (UnityEngine.Vector3)
IL_00CA: ldfld System.Single UnityEngine.Vector3::x
IL_00CF: ldloca.s 5 (UnityEngine.Vector3)
IL_00D1: ldfld System.Single UnityEngine.Vector3::y
IL_00D6: ldloca.s 5 (UnityEngine.Vector3)
IL_00D8: ldfld System.Single UnityEngine.Vector3::z
IL_00DD: ldc.r4 100000
IL_00E2: call System.Void UnityEngine.Vector4::.ctor(System.Single x,
System.Single y, System.Single z, System.Single w)
IL_00E7: ldarg.0
IL_00E8: ldfld UnityEngine.LightType LightEffect::m_lightType
IL_00ED: brtrue => Label4
IL_00F2: ldloca.s 7 (UnityEngine.Vector4)
IL_00F4: ldc.r4 0.01745329
IL_00F9: ldarg.0
IL_00FA: ldfld System.Single LightEffect::m_lightSpotAngle
IL_00FF: mul
IL_0100: ldc.r4 0.5
IL_0105: mul
IL_0106: call static System.Single UnityEngine.Mathf::Cos(System.Single f)
IL_010B: neg
IL_010C: stfld System.Single UnityEngine.Vector4::w
IL_0111: Label4
IL_0111: ldloca.s 8 (UnityEngine.Vector2)
IL_0113: ldc.r4 1
IL_0118: ldarg.0
IL_0119: ldfld System.Single LightEffect::m_lightRange
IL_011E: ldarg.0
IL_011F: ldfld System.Single LightEffect::m_lightRange
IL_0124: mul
IL_0125: div
IL_0126: ldarg.0
IL_0127: ldfld System.Single LightEffect::m_lightIntensity
IL_012C: call System.Void UnityEngine.Vector2::.ctor(System.Single x,
System.Single y)
IL_0131: ldloca.s 9 (ColossalFramework.Math.Randomizer)
IL_0133: ldarga.s 2
IL_0135: call System.UInt32 InstanceID::get_Index()
IL_013A: call System.Void
ColossalFramework.Math.Randomizer::.ctor(System.UInt32 _seed)
IL_013F: ldloca.s 10 (UnityEngine.Vector2)
IL_0141: ldarg.0
IL_0142: ldflda UnityEngine.Vector2 LightEffect::m_offRange
IL_0147: ldfld System.Single UnityEngine.Vector2::x
IL_014C: ldloca.s 9 (ColossalFramework.Math.Randomizer)
IL_014E: ldc.i4 100000
IL_0153: call System.Int32
ColossalFramework.Math.Randomizer::Int32(System.UInt32 range)
IL_0158: conv.r4
IL_0159: ldc.r4 1E-05
IL_015E: mul
IL_015F: ldarg.0
IL_0160: ldflda UnityEngine.Vector2 LightEffect::m_offRange
IL_0165: ldfld System.Single UnityEngine.Vector2::y
IL_016A: ldarg.0
IL_016B: ldflda UnityEngine.Vector2 LightEffect::m_offRange
IL_0170: ldfld System.Single UnityEngine.Vector2::x
IL_0175: sub
IL_0176: mul
IL_0177: add
IL_0178: stfld System.Single UnityEngine.Vector2::x
IL_017D: ldloca.s 10 (UnityEngine.Vector2)
IL_017F: ldarg.0
IL_0180: ldfld BlinkType LightEffect::m_blinkType
IL_0185: conv.r4
IL_0186: stfld System.Single UnityEngine.Vector2::y
IL_018B: ldarg.2
IL_018C: call static System.UInt16 EffectInfo::GetBuilding(InstanceID id)
IL_0191: stloc.s 13 (System.UInt16)
IL_0193: ldloc.s 13 (System.UInt16)
IL_0195: brfalse => Label5
IL_019A: ldloc.s 13 (System.UInt16)
IL_019C: call static UnityEngine.Vector4
RenderManager::GetColorLocation(System.UInt32 instanceHolder)
IL_01A1: call static UnityEngine.Vector2
UnityEngine.Vector4::op_Implicit(UnityEngine.Vector4 v)
IL_01A6: stloc.s 11 (UnityEngine.Vector2)
IL_01A8: ldloc.0
IL_01A9: brfalse => Label6
IL_01AE: call static BuildingManager
ColossalFramework.Singleton`1<BuildingManager>::get_instance()
IL_01B3: ldfld Array16`1<Building> BuildingManager::m_buildings
IL_01B8: ldfld Building[] Array16`1<Building>::m_buffer
IL_01BD: ldloc.s 13 (System.UInt16)
IL_01BF: ldelema Building
IL_01C4: call UnityEngine.Vector3 Building::CalculateMeshPosition()
IL_01C9: stloc.s 14 (UnityEngine.Vector3)
IL_01CB: ldloc.s 14 (UnityEngine.Vector3)
IL_01CD: call static UnityEngine.Vector2
ColossalFramework.Math.VectorUtils::XZ(UnityEngine.Vector3 v)
IL_01D2: stloc.s 12 (UnityEngine.Vector2)
IL_01D4: ldarga.s 3
IL_01D6: dup
IL_01D7: ldfld System.Single UnityEngine.Vector3::y
IL_01DC: ldloca.s 14 (UnityEngine.Vector3)
IL_01DE: ldfld System.Single UnityEngine.Vector3::y
IL_01E3: sub
IL_01E4: stfld System.Single UnityEngine.Vector3::y
IL_01E9: ldloca.s 4 (UnityEngine.Vector3)
IL_01EB: dup
IL_01EC: ldfld System.Single UnityEngine.Vector3::y
IL_01F1: ldloca.s 14 (UnityEngine.Vector3)
IL_01F3: ldfld System.Single UnityEngine.Vector3::y
IL_01F8: sub
IL_01F9: stfld System.Single UnityEngine.Vector3::y
IL_01FE: br => Label7
IL_0203: Label6
IL_0203: call static UnityEngine.Vector2 UnityEngine.Vector2::get_zero()
IL_0208: stloc.s 12 (UnityEngine.Vector2)
IL_020A: Label7
IL_020A: br => Label8
IL_020F: Label5
IL_020F: ldsfld UnityEngine.Vector4 RenderManager::DefaultColorLocation
IL_0214: call static UnityEngine.Vector2
UnityEngine.Vector4::op_Implicit(UnityEngine.Vector4 v)
IL_0219: stloc.s 11 (UnityEngine.Vector2)
IL_021B: call static UnityEngine.Vector2 UnityEngine.Vector2::get_zero()
IL_0220: stloc.s 12 (UnityEngine.Vector2)
IL_0222: Label8
IL_0222: ldarg.0
IL_0223: ldfld UnityEngine.Color LightEffect::m_lightColor
IL_0228: stloc.s 15 (UnityEngine.Color)
IL_022A: ldarg.0
IL_022B: ldfld UnityEngine.Color[] LightEffect::m_variationColors
IL_0230: brfalse => Label9
IL_0235: ldarg.0
IL_0236: ldfld UnityEngine.Color[] LightEffect::m_variationColors
IL_023B: ldlen
IL_023C: conv.i4
IL_023D: brfalse => Label10
IL_0242: ldarg.0
IL_0243: ldfld UnityEngine.Color[] LightEffect::m_variationColors
IL_0248: ldloca.s 9 (ColossalFramework.Math.Randomizer)
IL_024A: ldarg.0
IL_024B: ldfld UnityEngine.Color[] LightEffect::m_variationColors
IL_0250: ldlen
IL_0251: conv.i4
IL_0252: call System.Int32
ColossalFramework.Math.Randomizer::Int32(System.UInt32 range)
IL_0257: ldelema UnityEngine.Color
IL_025C: ldobj UnityEngine.Color
IL_0261: stloc.s 16 (UnityEngine.Color)
IL_0263: ldloc.s 15 (UnityEngine.Color)
IL_0265: ldloc.s 16 (UnityEngine.Color)
IL_0267: ldloca.s 9 (ColossalFramework.Math.Randomizer)
IL_0269: ldc.i4 1000
IL_026E: call System.Int32
ColossalFramework.Math.Randomizer::Int32(System.UInt32 range)
IL_0273: conv.r4
IL_0274: ldc.r4 0.001
IL_0279: mul
IL_027A: call static UnityEngine.Color
UnityEngine.Color::Lerp(UnityEngine.Color a, UnityEngine.Color b, System.Single t)
IL_027F: stloc.s 15 (UnityEngine.Color)
IL_0281: Label9
IL_0281: Label10
IL_0281: ldloca.s 15 (UnityEngine.Color)
IL_0283: call UnityEngine.Color UnityEngine.Color::get_linear()
IL_0288: stloc.s 15 (UnityEngine.Color)
IL_028A: ldloca.s 15 (UnityEngine.Color)
IL_028C: ldarg.0
IL_028D: ldfld UnityEngine.LightType LightEffect::m_lightType
IL_0292: brtrue => Label11
IL_0297: ldarg.0
IL_0298: ldfld System.Single LightEffect::m_spotLeaking
IL_029D: br => Label12
IL_02A2: Label11
IL_02A2: ldc.r4 0
IL_02A7: Label12
IL_02A7: stfld System.Single UnityEngine.Color::a
IL_02AC: ldarg.0
IL_02AD: ldfld System.Single LightEffect::m_lightRange
IL_02B2: ldc.r4 0.5235988
IL_02B7: call static System.Single UnityEngine.Mathf::Cos(System.Single f)
IL_02BC: div
IL_02BD: stloc.s 17 (System.Single)
IL_02BF: ldloc.s 17 (System.Single)
IL_02C1: ldc.r4 0.5
IL_02C6: mul
IL_02C7: stloc.s 18 (System.Single)
IL_02C9: ldarg.s 8
IL_02CB: ldfld UnityEngine.Vector3[] MeshData::m_vertices
IL_02D0: ldarg.s 5
IL_02D2: ldind.i4
IL_02D3: ldelema UnityEngine.Vector3
IL_02D8: ldloca.s 4 (UnityEngine.Vector3)
IL_02DA: ldfld System.Single UnityEngine.Vector3::x
IL_02DF: ldloc.s 18 (System.Single)
IL_02E1: sub
IL_02E2: ldloca.s 4 (UnityEngine.Vector3)
IL_02E4: ldfld System.Single UnityEngine.Vector3::y
IL_02E9: ldarg.0
IL_02EA: ldfld System.Single LightEffect::m_lightRange
IL_02EF: add
IL_02F0: ldloca.s 4 (UnityEngine.Vector3)
IL_02F2: ldfld System.Single UnityEngine.Vector3::z
IL_02F7: ldarg.0
IL_02F8: ldfld System.Single LightEffect::m_lightRange
IL_02FD: add
IL_02FE: newobj System.Void UnityEngine.Vector3::.ctor(System.Single x,
System.Single y, System.Single z)
IL_0303: stobj UnityEngine.Vector3
IL_0308: ldarg.s 8
IL_030A: ldfld UnityEngine.Vector3[] MeshData::m_normals
IL_030F: ldarg.s 5
IL_0311: ldind.i4
IL_0312: ldelema UnityEngine.Vector3
IL_0317: ldarg.3
IL_0318: stobj UnityEngine.Vector3
IL_031D: ldarg.s 8
IL_031F: ldfld UnityEngine.Vector4[] MeshData::m_tangents
IL_0324: ldarg.s 5
IL_0326: ldind.i4
IL_0327: ldelema UnityEngine.Vector4
IL_032C: ldloc.s 7 (UnityEngine.Vector4)
IL_032E: stobj UnityEngine.Vector4
IL_0333: ldarg.s 8
IL_0335: ldfld UnityEngine.Vector2[] MeshData::m_uvs
IL_033A: ldarg.s 5
IL_033C: ldind.i4
IL_033D: ldelema UnityEngine.Vector2
IL_0342: ldloc.s 8 (UnityEngine.Vector2)
IL_0344: stobj UnityEngine.Vector2
IL_0349: ldarg.s 8
IL_034B: ldfld UnityEngine.Vector2[] MeshData::m_uvs2
IL_0350: ldarg.s 5
IL_0352: ldind.i4
IL_0353: ldelema UnityEngine.Vector2
IL_0358: ldloc.s 10 (UnityEngine.Vector2)
IL_035A: stobj UnityEngine.Vector2
IL_035F: ldarg.s 8
IL_0361: ldfld UnityEngine.Vector2[] MeshData::m_uvs3
IL_0366: ldarg.s 5
IL_0368: ldind.i4
IL_0369: ldelema UnityEngine.Vector2
IL_036E: ldloc.s 11 (UnityEngine.Vector2)
IL_0370: stobj UnityEngine.Vector2
IL_0375: ldloc.0
IL_0376: brfalse => Label13
IL_037B: ldarg.s 8
IL_037D: ldfld UnityEngine.Vector2[] MeshData::m_uvs4
IL_0382: ldarg.s 5
IL_0384: ldind.i4
IL_0385: ldelema UnityEngine.Vector2
IL_038A: ldloc.s 12 (UnityEngine.Vector2)
IL_038C: stobj UnityEngine.Vector2
IL_0391: Label13
IL_0391: ldarg.s 8
IL_0393: ldfld UnityEngine.Color32[] MeshData::m_colors
IL_0398: ldarg.s 5
IL_039A: ldind.i4
IL_039B: ldelema UnityEngine.Color32
IL_03A0: ldloc.s 15 (UnityEngine.Color)
IL_03A2: call static UnityEngine.Color32
UnityEngine.Color32::op_Implicit(UnityEngine.Color c)
IL_03A7: stobj UnityEngine.Color32
IL_03AC: ldarg.s 5
IL_03AE: ldarg.s 5
IL_03B0: ldind.i4
IL_03B1: ldc.i4.1
IL_03B2: add
IL_03B3: stind.i4
IL_03B4: ldarg.s 8
IL_03B6: ldfld UnityEngine.Vector3[] MeshData::m_vertices
IL_03BB: ldarg.s 5
IL_03BD: ldind.i4
IL_03BE: ldelema UnityEngine.Vector3
IL_03C3: ldloca.s 4 (UnityEngine.Vector3)
IL_03C5: ldfld System.Single UnityEngine.Vector3::x
IL_03CA: ldloc.s 18 (System.Single)
IL_03CC: add
IL_03CD: ldloca.s 4 (UnityEngine.Vector3)
IL_03CF: ldfld System.Single UnityEngine.Vector3::y
IL_03D4: ldarg.0
IL_03D5: ldfld System.Single LightEffect::m_lightRange
IL_03DA: add
IL_03DB: ldloca.s 4 (UnityEngine.Vector3)
IL_03DD: ldfld System.Single UnityEngine.Vector3::z
IL_03E2: ldarg.0
IL_03E3: ldfld System.Single LightEffect::m_lightRange
IL_03E8: add
IL_03E9: newobj System.Void UnityEngine.Vector3::.ctor(System.Single x,
System.Single y, System.Single z)
IL_03EE: stobj UnityEngine.Vector3
IL_03F3: ldarg.s 8
IL_03F5: ldfld UnityEngine.Vector3[] MeshData::m_normals
IL_03FA: ldarg.s 5
IL_03FC: ldind.i4
IL_03FD: ldelema UnityEngine.Vector3
IL_0402: ldarg.3
IL_0403: stobj UnityEngine.Vector3
IL_0408: ldarg.s 8
IL_040A: ldfld UnityEngine.Vector4[] MeshData::m_tangents
IL_040F: ldarg.s 5
IL_0411: ldind.i4
IL_0412: ldelema UnityEngine.Vector4
IL_0417: ldloc.s 7 (UnityEngine.Vector4)
IL_0419: stobj UnityEngine.Vector4
IL_041E: ldarg.s 8
IL_0420: ldfld UnityEngine.Vector2[] MeshData::m_uvs
IL_0425: ldarg.s 5
IL_0427: ldind.i4
IL_0428: ldelema UnityEngine.Vector2
IL_042D: ldloc.s 8 (UnityEngine.Vector2)
IL_042F: stobj UnityEngine.Vector2
IL_0434: ldarg.s 8
IL_0436: ldfld UnityEngine.Vector2[] MeshData::m_uvs2
IL_043B: ldarg.s 5
IL_043D: ldind.i4
IL_043E: ldelema UnityEngine.Vector2
IL_0443: ldloc.s 10 (UnityEngine.Vector2)
IL_0445: stobj UnityEngine.Vector2
IL_044A: ldarg.s 8
IL_044C: ldfld UnityEngine.Vector2[] MeshData::m_uvs3
IL_0451: ldarg.s 5
IL_0453: ldind.i4
IL_0454: ldelema UnityEngine.Vector2
IL_0459: ldloc.s 11 (UnityEngine.Vector2)
IL_045B: stobj UnityEngine.Vector2
IL_0460: ldloc.0
IL_0461: brfalse => Label14
IL_0466: ldarg.s 8
IL_0468: ldfld UnityEngine.Vector2[] MeshData::m_uvs4
IL_046D: ldarg.s 5
IL_046F: ldind.i4
IL_0470: ldelema UnityEngine.Vector2
IL_0475: ldloc.s 12 (UnityEngine.Vector2)
IL_0477: stobj UnityEngine.Vector2
IL_047C: Label14
IL_047C: ldarg.s 8
IL_047E: ldfld UnityEngine.Color32[] MeshData::m_colors
IL_0483: ldarg.s 5
IL_0485: ldind.i4
IL_0486: ldelema UnityEngine.Color32
IL_048B: ldloc.s 15 (UnityEngine.Color)
IL_048D: call static UnityEngine.Color32
UnityEngine.Color32::op_Implicit(UnityEngine.Color c)
IL_0492: stobj UnityEngine.Color32
IL_0497: ldarg.s 5
IL_0499: ldarg.s 5
IL_049B: ldind.i4
IL_049C: ldc.i4.1
IL_049D: add
IL_049E: stind.i4
IL_049F: ldarg.s 8
IL_04A1: ldfld UnityEngine.Vector3[] MeshData::m_vertices
IL_04A6: ldarg.s 5
IL_04A8: ldind.i4
IL_04A9: ldelema UnityEngine.Vector3
IL_04AE: ldloca.s 4 (UnityEngine.Vector3)
IL_04B0: ldfld System.Single UnityEngine.Vector3::x
IL_04B5: ldloc.s 17 (System.Single)
IL_04B7: add
IL_04B8: ldloca.s 4 (UnityEngine.Vector3)
IL_04BA: ldfld System.Single UnityEngine.Vector3::y
IL_04BF: ldloca.s 4 (UnityEngine.Vector3)
IL_04C1: ldfld System.Single UnityEngine.Vector3::z
IL_04C6: ldarg.0
IL_04C7: ldfld System.Single LightEffect::m_lightRange
IL_04CC: add
IL_04CD: newobj System.Void UnityEngine.Vector3::.ctor(System.Single x,
System.Single y, System.Single z)
IL_04D2: stobj UnityEngine.Vector3
IL_04D7: ldarg.s 8
IL_04D9: ldfld UnityEngine.Vector3[] MeshData::m_normals
IL_04DE: ldarg.s 5
IL_04E0: ldind.i4
IL_04E1: ldelema UnityEngine.Vector3
IL_04E6: ldarg.3
IL_04E7: stobj UnityEngine.Vector3
IL_04EC: ldarg.s 8
IL_04EE: ldfld UnityEngine.Vector4[] MeshData::m_tangents
IL_04F3: ldarg.s 5
IL_04F5: ldind.i4
IL_04F6: ldelema UnityEngine.Vector4
IL_04FB: ldloc.s 7 (UnityEngine.Vector4)
IL_04FD: stobj UnityEngine.Vector4
IL_0502: ldarg.s 8
IL_0504: ldfld UnityEngine.Vector2[] MeshData::m_uvs
IL_0509: ldarg.s 5
IL_050B: ldind.i4
IL_050C: ldelema UnityEngine.Vector2
IL_0511: ldloc.s 8 (UnityEngine.Vector2)
IL_0513: stobj UnityEngine.Vector2
IL_0518: ldarg.s 8
IL_051A: ldfld UnityEngine.Vector2[] MeshData::m_uvs2
IL_051F: ldarg.s 5
IL_0521: ldind.i4
IL_0522: ldelema UnityEngine.Vector2
IL_0527: ldloc.s 10 (UnityEngine.Vector2)
IL_0529: stobj UnityEngine.Vector2
IL_052E: ldarg.s 8
IL_0530: ldfld UnityEngine.Vector2[] MeshData::m_uvs3
IL_0535: ldarg.s 5
IL_0537: ldind.i4
IL_0538: ldelema UnityEngine.Vector2
IL_053D: ldloc.s 11 (UnityEngine.Vector2)
IL_053F: stobj UnityEngine.Vector2
IL_0544: ldloc.0
IL_0545: brfalse => Label15
IL_054A: ldarg.s 8
IL_054C: ldfld UnityEngine.Vector2[] MeshData::m_uvs4
IL_0551: ldarg.s 5
IL_0553: ldind.i4
IL_0554: ldelema UnityEngine.Vector2
IL_0559: ldloc.s 12 (UnityEngine.Vector2)
IL_055B: stobj UnityEngine.Vector2
IL_0560: Label15
IL_0560: ldarg.s 8
IL_0562: ldfld UnityEngine.Color32[] MeshData::m_colors
IL_0567: ldarg.s 5
IL_0569: ldind.i4
IL_056A: ldelema UnityEngine.Color32
IL_056F: ldloc.s 15 (UnityEngine.Color)
IL_0571: call static UnityEngine.Color32
UnityEngine.Color32::op_Implicit(UnityEngine.Color c)
IL_0576: stobj UnityEngine.Color32
IL_057B: ldarg.s 5
IL_057D: ldarg.s 5
IL_057F: ldind.i4
IL_0580: ldc.i4.1
IL_0581: add
IL_0582: stind.i4
IL_0583: ldarg.s 8
IL_0585: ldfld UnityEngine.Vector3[] MeshData::m_vertices
IL_058A: ldarg.s 5
IL_058C: ldind.i4
IL_058D: ldelema UnityEngine.Vector3
IL_0592: ldloca.s 4 (UnityEngine.Vector3)
IL_0594: ldfld System.Single UnityEngine.Vector3::x
IL_0599: ldloc.s 18 (System.Single)
IL_059B: add
IL_059C: ldloca.s 4 (UnityEngine.Vector3)
IL_059E: ldfld System.Single UnityEngine.Vector3::y
IL_05A3: ldarg.0
IL_05A4: ldfld System.Single LightEffect::m_lightRange
IL_05A9: sub
IL_05AA: ldloca.s 4 (UnityEngine.Vector3)
IL_05AC: ldfld System.Single UnityEngine.Vector3::z
IL_05B1: ldarg.0
IL_05B2: ldfld System.Single LightEffect::m_lightRange
IL_05B7: add
IL_05B8: newobj System.Void UnityEngine.Vector3::.ctor(System.Single x,
System.Single y, System.Single z)
IL_05BD: stobj UnityEngine.Vector3
IL_05C2: ldarg.s 8
IL_05C4: ldfld UnityEngine.Vector3[] MeshData::m_normals
IL_05C9: ldarg.s 5
IL_05CB: ldind.i4
IL_05CC: ldelema UnityEngine.Vector3
IL_05D1: ldarg.3
IL_05D2: stobj UnityEngine.Vector3
IL_05D7: ldarg.s 8
IL_05D9: ldfld UnityEngine.Vector4[] MeshData::m_tangents
IL_05DE: ldarg.s 5
IL_05E0: ldind.i4
IL_05E1: ldelema UnityEngine.Vector4
IL_05E6: ldloc.s 7 (UnityEngine.Vector4)
IL_05E8: stobj UnityEngine.Vector4
IL_05ED: ldarg.s 8
IL_05EF: ldfld UnityEngine.Vector2[] MeshData::m_uvs
IL_05F4: ldarg.s 5
IL_05F6: ldind.i4
IL_05F7: ldelema UnityEngine.Vector2
IL_05FC: ldloc.s 8 (UnityEngine.Vector2)
IL_05FE: stobj UnityEngine.Vector2
IL_0603: ldarg.s 8
IL_0605: ldfld UnityEngine.Vector2[] MeshData::m_uvs2
IL_060A: ldarg.s 5
IL_060C: ldind.i4
IL_060D: ldelema UnityEngine.Vector2
IL_0612: ldloc.s 10 (UnityEngine.Vector2)
IL_0614: stobj UnityEngine.Vector2
IL_0619: ldarg.s 8
IL_061B: ldfld UnityEngine.Vector2[] MeshData::m_uvs3
IL_0620: ldarg.s 5
IL_0622: ldind.i4
IL_0623: ldelema UnityEngine.Vector2
IL_0628: ldloc.s 11 (UnityEngine.Vector2)
IL_062A: stobj UnityEngine.Vector2
IL_062F: ldloc.0
IL_0630: brfalse => Label16
IL_0635: ldarg.s 8
IL_0637: ldfld UnityEngine.Vector2[] MeshData::m_uvs4
IL_063C: ldarg.s 5
IL_063E: ldind.i4
IL_063F: ldelema UnityEngine.Vector2
IL_0644: ldloc.s 12 (UnityEngine.Vector2)
IL_0646: stobj UnityEngine.Vector2
IL_064B: Label16
IL_064B: ldarg.s 8
IL_064D: ldfld UnityEngine.Color32[] MeshData::m_colors
IL_0652: ldarg.s 5
IL_0654: ldind.i4
IL_0655: ldelema UnityEngine.Color32
IL_065A: ldloc.s 15 (UnityEngine.Color)
IL_065C: call static UnityEngine.Color32
UnityEngine.Color32::op_Implicit(UnityEngine.Color c)
IL_0661: stobj UnityEngine.Color32
IL_0666: ldarg.s 5
IL_0668: ldarg.s 5
IL_066A: ldind.i4
IL_066B: ldc.i4.1
IL_066C: add
IL_066D: stind.i4
IL_066E: ldarg.s 8
IL_0670: ldfld UnityEngine.Vector3[] MeshData::m_vertices
IL_0675: ldarg.s 5
IL_0677: ldind.i4
IL_0678: ldelema UnityEngine.Vector3
IL_067D: ldloca.s 4 (UnityEngine.Vector3)
IL_067F: ldfld System.Single UnityEngine.Vector3::x
IL_0684: ldloc.s 18 (System.Single)
IL_0686: sub
IL_0687: ldloca.s 4 (UnityEngine.Vector3)
IL_0689: ldfld System.Single UnityEngine.Vector3::y
IL_068E: ldarg.0
IL_068F: ldfld System.Single LightEffect::m_lightRange
IL_0694: sub
IL_0695: ldloca.s 4 (UnityEngine.Vector3)
IL_0697: ldfld System.Single UnityEngine.Vector3::z
IL_069C: ldarg.0
IL_069D: ldfld System.Single LightEffect::m_lightRange
IL_06A2: add
IL_06A3: newobj System.Void UnityEngine.Vector3::.ctor(System.Single x,
System.Single y, System.Single z)
IL_06A8: stobj UnityEngine.Vector3
IL_06AD: ldarg.s 8
IL_06AF: ldfld UnityEngine.Vector3[] MeshData::m_normals
IL_06B4: ldarg.s 5
IL_06B6: ldind.i4
IL_06B7: ldelema UnityEngine.Vector3
IL_06BC: ldarg.3
IL_06BD: stobj UnityEngine.Vector3
IL_06C2: ldarg.s 8
IL_06C4: ldfld UnityEngine.Vector4[] MeshData::m_tangents
IL_06C9: ldarg.s 5
IL_06CB: ldind.i4
IL_06CC: ldelema UnityEngine.Vector4
IL_06D1: ldloc.s 7 (UnityEngine.Vector4)
IL_06D3: stobj UnityEngine.Vector4
IL_06D8: ldarg.s 8
IL_06DA: ldfld UnityEngine.Vector2[] MeshData::m_uvs
IL_06DF: ldarg.s 5
IL_06E1: ldind.i4
IL_06E2: ldelema UnityEngine.Vector2
IL_06E7: ldloc.s 8 (UnityEngine.Vector2)
IL_06E9: stobj UnityEngine.Vector2
IL_06EE: ldarg.s 8
IL_06F0: ldfld UnityEngine.Vector2[] MeshData::m_uvs2
IL_06F5: ldarg.s 5
IL_06F7: ldind.i4
IL_06F8: ldelema UnityEngine.Vector2
IL_06FD: ldloc.s 10 (UnityEngine.Vector2)
IL_06FF: stobj UnityEngine.Vector2
IL_0704: ldarg.s 8
IL_0706: ldfld UnityEngine.Vector2[] MeshData::m_uvs3
IL_070B: ldarg.s 5
IL_070D: ldind.i4
IL_070E: ldelema UnityEngine.Vector2
IL_0713: ldloc.s 11 (UnityEngine.Vector2)
IL_0715: stobj UnityEngine.Vector2
IL_071A: ldloc.0
IL_071B: brfalse => Label17
IL_0720: ldarg.s 8
IL_0722: ldfld UnityEngine.Vector2[] MeshData::m_uvs4
IL_0727: ldarg.s 5
IL_0729: ldind.i4
IL_072A: ldelema UnityEngine.Vector2
IL_072F: ldloc.s 12 (UnityEngine.Vector2)
IL_0731: stobj UnityEngine.Vector2
IL_0736: Label17
IL_0736: ldarg.s 8
IL_0738: ldfld UnityEngine.Color32[] MeshData::m_colors
IL_073D: ldarg.s 5
IL_073F: ldind.i4
IL_0740: ldelema UnityEngine.Color32
IL_0745: ldloc.s 15 (UnityEngine.Color)
IL_0747: call static UnityEngine.Color32
UnityEngine.Color32::op_Implicit(UnityEngine.Color c)
IL_074C: stobj UnityEngine.Color32
IL_0751: ldarg.s 5
IL_0753: ldarg.s 5
IL_0755: ldind.i4
IL_0756: ldc.i4.1
IL_0757: add
IL_0758: stind.i4
IL_0759: ldarg.s 8
IL_075B: ldfld UnityEngine.Vector3[] MeshData::m_vertices
IL_0760: ldarg.s 5
IL_0762: ldind.i4
IL_0763: ldelema UnityEngine.Vector3
IL_0768: ldloca.s 4 (UnityEngine.Vector3)
IL_076A: ldfld System.Single UnityEngine.Vector3::x
IL_076F: ldloc.s 17 (System.Single)
IL_0771: sub
IL_0772: ldloca.s 4 (UnityEngine.Vector3)
IL_0774: ldfld System.Single UnityEngine.Vector3::y
IL_0779: ldloca.s 4 (UnityEngine.Vector3)
IL_077B: ldfld System.Single UnityEngine.Vector3::z
IL_0780: ldarg.0
IL_0781: ldfld System.Single LightEffect::m_lightRange
IL_0786: add
IL_0787: newobj System.Void UnityEngine.Vector3::.ctor(System.Single x,
System.Single y, System.Single z)
IL_078C: stobj UnityEngine.Vector3
IL_0791: ldarg.s 8
IL_0793: ldfld UnityEngine.Vector3[] MeshData::m_normals
IL_0798: ldarg.s 5
IL_079A: ldind.i4
IL_079B: ldelema UnityEngine.Vector3
IL_07A0: ldarg.3
IL_07A1: stobj UnityEngine.Vector3
IL_07A6: ldarg.s 8
IL_07A8: ldfld UnityEngine.Vector4[] MeshData::m_tangents
IL_07AD: ldarg.s 5
IL_07AF: ldind.i4
IL_07B0: ldelema UnityEngine.Vector4
IL_07B5: ldloc.s 7 (UnityEngine.Vector4)
IL_07B7: stobj UnityEngine.Vector4
IL_07BC: ldarg.s 8
IL_07BE: ldfld UnityEngine.Vector2[] MeshData::m_uvs
IL_07C3: ldarg.s 5
IL_07C5: ldind.i4
IL_07C6: ldelema UnityEngine.Vector2
IL_07CB: ldloc.s 8 (UnityEngine.Vector2)
IL_07CD: stobj UnityEngine.Vector2
IL_07D2: ldarg.s 8
IL_07D4: ldfld UnityEngine.Vector2[] MeshData::m_uvs2
IL_07D9: ldarg.s 5
IL_07DB: ldind.i4
IL_07DC: ldelema UnityEngine.Vector2
IL_07E1: ldloc.s 10 (UnityEngine.Vector2)
IL_07E3: stobj UnityEngine.Vector2
IL_07E8: ldarg.s 8
IL_07EA: ldfld UnityEngine.Vector2[] MeshData::m_uvs3
IL_07EF: ldarg.s 5
IL_07F1: ldind.i4
IL_07F2: ldelema UnityEngine.Vector2
IL_07F7: ldloc.s 11 (UnityEngine.Vector2)
IL_07F9: stobj UnityEngine.Vector2
IL_07FE: ldloc.0
IL_07FF: brfalse => Label18
IL_0804: ldarg.s 8
IL_0806: ldfld UnityEngine.Vector2[] MeshData::m_uvs4
IL_080B: ldarg.s 5
IL_080D: ldind.i4
IL_080E: ldelema UnityEngine.Vector2
IL_0813: ldloc.s 12 (UnityEngine.Vector2)
IL_0815: stobj UnityEngine.Vector2
IL_081A: Label18
IL_081A: ldarg.s 8
IL_081C: ldfld UnityEngine.Color32[] MeshData::m_colors
IL_0821: ldarg.s 5
IL_0823: ldind.i4
IL_0824: ldelema UnityEngine.Color32
IL_0829: ldloc.s 15 (UnityEngine.Color)
IL_082B: call static UnityEngine.Color32
UnityEngine.Color32::op_Implicit(UnityEngine.Color c)
IL_0830: stobj UnityEngine.Color32
IL_0835: ldarg.s 5
IL_0837: ldarg.s 5
IL_0839: ldind.i4
IL_083A: ldc.i4.1
IL_083B: add
IL_083C: stind.i4
IL_083D: ldarg.s 8
IL_083F: ldfld System.Int32[] MeshData::m_triangles
IL_0844: ldarg.s 6
IL_0846: ldarg.s 6
IL_0848: ldind.i4
IL_0849: dup
IL_084A: stloc.s 19 (System.Int32)
IL_084C: ldc.i4.1
IL_084D: add
IL_084E: stind.i4
IL_084F: ldloc.s 19 (System.Int32)
IL_0851: ldarg.s 5
IL_0853: ldind.i4
IL_0854: ldc.i4.6
IL_0855: sub
IL_0856: stelem.i4
IL_0857: ldarg.s 8
IL_0859: ldfld System.Int32[] MeshData::m_triangles
IL_085E: ldarg.s 6
IL_0860: ldarg.s 6
IL_0862: ldind.i4
IL_0863: dup
IL_0864: stloc.s 19 (System.Int32)
IL_0866: ldc.i4.1
IL_0867: add
IL_0868: stind.i4
IL_0869: ldloc.s 19 (System.Int32)
IL_086B: ldarg.s 5
IL_086D: ldind.i4
IL_086E: ldc.i4.5
IL_086F: sub
IL_0870: stelem.i4
IL_0871: ldarg.s 8
IL_0873: ldfld System.Int32[] MeshData::m_triangles
IL_0878: ldarg.s 6
IL_087A: ldarg.s 6
IL_087C: ldind.i4
IL_087D: dup
IL_087E: stloc.s 19 (System.Int32)
IL_0880: ldc.i4.1
IL_0881: add
IL_0882: stind.i4
IL_0883: ldloc.s 19 (System.Int32)
IL_0885: ldarg.s 5
IL_0887: ldind.i4
IL_0888: ldc.i4.1
IL_0889: sub
IL_088A: stelem.i4
IL_088B: ldarg.s 8
IL_088D: ldfld System.Int32[] MeshData::m_triangles
IL_0892: ldarg.s 6
IL_0894: ldarg.s 6
IL_0896: ldind.i4
IL_0897: dup
IL_0898: stloc.s 19 (System.Int32)
IL_089A: ldc.i4.1
IL_089B: add
IL_089C: stind.i4
IL_089D: ldloc.s 19 (System.Int32)
IL_089F: ldarg.s 5
IL_08A1: ldind.i4
IL_08A2: ldc.i4.1
IL_08A3: sub
IL_08A4: stelem.i4
IL_08A5: ldarg.s 8
IL_08A7: ldfld System.Int32[] MeshData::m_triangles
IL_08AC: ldarg.s 6
IL_08AE: ldarg.s 6
IL_08B0: ldind.i4
IL_08B1: dup
IL_08B2: stloc.s 19 (System.Int32)
IL_08B4: ldc.i4.1
IL_08B5: add
IL_08B6: stind.i4
IL_08B7: ldloc.s 19 (System.Int32)
IL_08B9: ldarg.s 5
IL_08BB: ldind.i4
IL_08BC: ldc.i4.5
IL_08BD: sub
IL_08BE: stelem.i4
IL_08BF: ldarg.s 8
IL_08C1: ldfld System.Int32[] MeshData::m_triangles
IL_08C6: ldarg.s 6
IL_08C8: ldarg.s 6
IL_08CA: ldind.i4
IL_08CB: dup
IL_08CC: stloc.s 19 (System.Int32)
IL_08CE: ldc.i4.1
IL_08CF: add
IL_08D0: stind.i4
IL_08D1: ldloc.s 19 (System.Int32)
IL_08D3: ldarg.s 5
IL_08D5: ldind.i4
IL_08D6: ldc.i4.4
IL_08D7: sub
IL_08D8: stelem.i4
IL_08D9: ldarg.s 8
IL_08DB: ldfld System.Int32[] MeshData::m_triangles
IL_08E0: ldarg.s 6
IL_08E2: ldarg.s 6
IL_08E4: ldind.i4
IL_08E5: dup
IL_08E6: stloc.s 19 (System.Int32)
IL_08E8: ldc.i4.1
IL_08E9: add
IL_08EA: stind.i4
IL_08EB: ldloc.s 19 (System.Int32)
IL_08ED: ldarg.s 5
IL_08EF: ldind.i4
IL_08F0: ldc.i4.1
IL_08F1: sub
IL_08F2: stelem.i4
IL_08F3: ldarg.s 8
IL_08F5: ldfld System.Int32[] MeshData::m_triangles
IL_08FA: ldarg.s 6
IL_08FC: ldarg.s 6
IL_08FE: ldind.i4
IL_08FF: dup
IL_0900: stloc.s 19 (System.Int32)
IL_0902: ldc.i4.1
IL_0903: add
IL_0904: stind.i4
IL_0905: ldloc.s 19 (System.Int32)
IL_0907: ldarg.s 5
IL_0909: ldind.i4
IL_090A: ldc.i4.4
IL_090B: sub
IL_090C: stelem.i4
IL_090D: ldarg.s 8
IL_090F: ldfld System.Int32[] MeshData::m_triangles
IL_0914: ldarg.s 6
IL_0916: ldarg.s 6
IL_0918: ldind.i4
IL_0919: dup
IL_091A: stloc.s 19 (System.Int32)
IL_091C: ldc.i4.1
IL_091D: add
IL_091E: stind.i4
IL_091F: ldloc.s 19 (System.Int32)
IL_0921: ldarg.s 5
IL_0923: ldind.i4
IL_0924: ldc.i4.2
IL_0925: sub
IL_0926: stelem.i4
IL_0927: ldarg.s 8
IL_0929: ldfld System.Int32[] MeshData::m_triangles
IL_092E: ldarg.s 6
IL_0930: ldarg.s 6
IL_0932: ldind.i4
IL_0933: dup
IL_0934: stloc.s 19 (System.Int32)
IL_0936: ldc.i4.1
IL_0937: add
IL_0938: stind.i4
IL_0939: ldloc.s 19 (System.Int32)
IL_093B: ldarg.s 5
IL_093D: ldind.i4
IL_093E: ldc.i4.2
IL_093F: sub
IL_0940: stelem.i4
IL_0941: ldarg.s 8
IL_0943: ldfld System.Int32[] MeshData::m_triangles
IL_0948: ldarg.s 6
IL_094A: ldarg.s 6
IL_094C: ldind.i4
IL_094D: dup
IL_094E: stloc.s 19 (System.Int32)
IL_0950: ldc.i4.1
IL_0951: add
IL_0952: stind.i4
IL_0953: ldloc.s 19 (System.Int32)
IL_0955: ldarg.s 5
IL_0957: ldind.i4
IL_0958: ldc.i4.4
IL_0959: sub
IL_095A: stelem.i4
IL_095B: ldarg.s 8
IL_095D: ldfld System.Int32[] MeshData::m_triangles
IL_0962: ldarg.s 6
IL_0964: ldarg.s 6
IL_0966: ldind.i4
IL_0967: dup
IL_0968: stloc.s 19 (System.Int32)
IL_096A: ldc.i4.1
IL_096B: add
IL_096C: stind.i4
IL_096D: ldloc.s 19 (System.Int32)
IL_096F: ldarg.s 5
IL_0971: ldind.i4
IL_0972: ldc.i4.3
IL_0973: sub
IL_0974: stelem.i4
IL_0975: // end original
IL_0975: Label1
IL_0975: ret
DONE

### Patch: virtual System.Void ElectricityManager::SimulationStepImpl(System.Int32


subStep)
### Replacement: static System.Void
ElectricityManager::ElectricityManager.SimulationStepImpl_Patch0(ElectricityManager
this, System.Int32 subStep)
IL_0000: Local var 0: System.UInt32
IL_0000: Local var 1: System.Int32
IL_0000: Local var 2: NetManager
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: NetInfo
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: ElectricityManager/Cell
IL_0000: Local var 13: ElectricityManager/PulseGroup
IL_0000: Local var 14: ElectricityManager/PulseUnit
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: ElectricityManager/PulseUnit
IL_0000: Local var 19: System.UInt32
IL_0000: Local var 20: System.Int32
IL_0000: Local var 21: ElectricityManager/Cell
IL_0000: Local var 22: System.Int32
IL_0000: Local var 23: System.Int32
IL_0000: Local var 24: NetNode
IL_0000: Local var 25: System.Int32
IL_0000: Local var 26: System.UInt16
IL_0000: Local var 27: System.UInt16
IL_0000: Local var 28: System.UInt16
IL_0000: Local var 29: System.UInt16
IL_0000: Local var 30: System.Int32
IL_0000: Local var 31: ElectricityManager/PulseGroup
IL_0000: Local var 32: ElectricityManager/PulseGroup
IL_0000: Local var 33: System.Int32
IL_0000: Local var 34: ElectricityManager/PulseGroup
IL_0000: Local var 35: System.Int32
IL_0000: Local var 36: ElectricityManager/Cell
IL_0000: // start original
IL_0000: ldarg.1
IL_0001: brfalse => Label0
IL_0006: ldarg.1
IL_0007: ldc.i4 1000
IL_000C: beq => Label1
IL_0011: call static SimulationManager
ColossalFramework.Singleton`1<SimulationManager>::get_instance()
IL_0016: ldfld System.UInt32 SimulationManager::m_currentFrameIndex
IL_001B: stloc.0
IL_001C: ldloc.0
IL_001D: ldc.i4 255
IL_0022: and
IL_0023: stloc.1
IL_0024: ldloc.1
IL_0025: ldc.i4 128
IL_002A: bge => Label2
IL_002F: ldloc.1
IL_0030: brtrue => Label3
IL_0035: ldarg.0
IL_0036: ldc.i4.0
IL_0037: stfld System.Int32 ElectricityManager::m_pulseGroupCount
IL_003C: ldarg.0
IL_003D: ldc.i4.0
IL_003E: stfld System.Int32 ElectricityManager::m_pulseUnitStart
IL_0043: ldarg.0
IL_0044: ldc.i4.0
IL_0045: stfld System.Int32 ElectricityManager::m_pulseUnitEnd
IL_004A: ldarg.0
IL_004B: ldc.i4.0
IL_004C: stfld System.Int32 ElectricityManager::m_processedCells
IL_0051: ldarg.0
IL_0052: ldc.i4.0
IL_0053: stfld System.Int32 ElectricityManager::m_conductiveCells
IL_0058: ldarg.0
IL_0059: ldc.i4.1
IL_005A: stfld System.Boolean ElectricityManager::m_canContinue
IL_005F: Label3
IL_005F: call static NetManager
ColossalFramework.Singleton`1<NetManager>::get_instance()
IL_0064: stloc.2
IL_0065: ldloc.1
IL_0066: ldc.i4 32768
IL_006B: mul
IL_006C: ldc.i4.7
IL_006D: shr
IL_006E: stloc.3
IL_006F: ldloc.1
IL_0070: ldc.i4.1
IL_0071: add
IL_0072: ldc.i4 32768
IL_0077: mul
IL_0078: ldc.i4.7
IL_0079: shr
IL_007A: ldc.i4.1
IL_007B: sub
IL_007C: stloc.s 4 (System.Int32)
IL_007E: ldloc.3
IL_007F: stloc.s 5 (System.Int32)
IL_0081: br => Label4
IL_0086: Label10
IL_0086: ldloc.2
IL_0087: ldfld Array16`1<NetNode> NetManager::m_nodes
IL_008C: ldfld NetNode[] Array16`1<NetNode>::m_buffer
IL_0091: ldloc.s 5 (System.Int32)
IL_0093: ldelema NetNode
IL_0098: ldfld Flags NetNode::m_flags
IL_009D: brfalse => Label5
IL_00A2: ldloc.2
IL_00A3: ldfld Array16`1<NetNode> NetManager::m_nodes
IL_00A8: ldfld NetNode[] Array16`1<NetNode>::m_buffer
IL_00AD: ldloc.s 5 (System.Int32)
IL_00AF: ldelema NetNode
IL_00B4: call NetInfo NetNode::get_Info()
IL_00B9: stloc.s 6 (NetInfo)
IL_00BB: ldloc.s 6 (NetInfo)
IL_00BD: ldfld ItemClass NetInfo::m_class
IL_00C2: ldfld Service ItemClass::m_service
IL_00C7: ldc.i4.s 10
IL_00C9: beq => Label6
IL_00CE: ldloc.s 6 (NetInfo)
IL_00D0: ldfld NetAI NetInfo::m_netAI
IL_00D5: isinst ConcourseAI
IL_00DA: brfalse => Label7
IL_00DF: Label6
IL_00DF: ldarg.0
IL_00E0: ldloc.s 5 (System.Int32)
IL_00E2: ldarg.0
IL_00E3: ldfld System.UInt16[] ElectricityManager::m_nodeGroups
IL_00E8: ldloc.s 5 (System.Int32)
IL_00EA: ldelem.u2
IL_00EB: ldc.i4 65535
IL_00F0: beq => Label8
IL_00F5: ldc.i4.1
IL_00F6: br => Label9
IL_00FB: Label8
IL_00FB: ldc.i4.0
IL_00FC: Label9
IL_00FC: call System.Void
ElectricityManager::UpdateNodeElectricity(System.Int32 nodeID, System.Int32 value)
IL_0101: ldarg.0
IL_0102: dup
IL_0103: ldfld System.Int32 ElectricityManager::m_conductiveCells
IL_0108: ldc.i4.1
IL_0109: add
IL_010A: stfld System.Int32 ElectricityManager::m_conductiveCells
IL_010F: Label5
IL_010F: Label7
IL_010F: ldarg.0
IL_0110: ldfld System.UInt16[] ElectricityManager::m_nodeGroups
IL_0115: ldloc.s 5 (System.Int32)
IL_0117: ldc.i4 65535
IL_011C: stelem.i2
IL_011D: ldloc.s 5 (System.Int32)
IL_011F: ldc.i4.1
IL_0120: add
IL_0121: stloc.s 5 (System.Int32)
IL_0123: Label4
IL_0123: ldloc.s 5 (System.Int32)
IL_0125: ldloc.s 4 (System.Int32)
IL_0127: ble => Label10
IL_012C: ldloc.1
IL_012D: ldc.i4 256
IL_0132: mul
IL_0133: ldc.i4.7
IL_0134: shr
IL_0135: stloc.s 7 (System.Int32)
IL_0137: ldloc.1
IL_0138: ldc.i4.1
IL_0139: add
IL_013A: ldc.i4 256
IL_013F: mul
IL_0140: ldc.i4.7
IL_0141: shr
IL_0142: ldc.i4.1
IL_0143: sub
IL_0144: stloc.s 8 (System.Int32)
IL_0146: ldloc.s 7 (System.Int32)
IL_0148: stloc.s 9 (System.Int32)
IL_014A: br => Label11
IL_014F: Label21
IL_014F: ldloc.s 9 (System.Int32)
IL_0151: ldc.i4 256
IL_0156: mul
IL_0157: stloc.s 10 (System.Int32)
IL_0159: ldc.i4.0
IL_015A: stloc.s 11 (System.Int32)
IL_015C: br => Label12
IL_0161: Label20
IL_0161: ldarg.0
IL_0162: ldfld Cell[] ElectricityManager::m_electricityGrid
IL_0167: ldloc.s 10 (System.Int32)
IL_0169: ldelema ElectricityManager+Cell
IL_016E: ldobj ElectricityManager+Cell
IL_0173: stloc.s 12 (ElectricityManager+Cell)
IL_0175: ldloca.s 12 (ElectricityManager+Cell)
IL_0177: ldfld System.Int16 Cell::m_currentCharge
IL_017C: ldc.i4.0
IL_017D: ble => Label13
IL_0182: ldarg.0
IL_0183: ldfld System.Int32 ElectricityManager::m_pulseGroupCount
IL_0188: ldc.i4 1024
IL_018D: bge => Label14
IL_0192: ldloca.s 13 (ElectricityManager+PulseGroup)
IL_0194: ldloca.s 12 (ElectricityManager+Cell)
IL_0196: ldfld System.Int16 Cell::m_currentCharge
IL_019B: conv.u4
IL_019C: stfld System.UInt32 PulseGroup::m_origCharge
IL_01A1: ldloca.s 13 (ElectricityManager+PulseGroup)
IL_01A3: ldloca.s 12 (ElectricityManager+Cell)
IL_01A5: ldfld System.Int16 Cell::m_currentCharge
IL_01AA: conv.u4
IL_01AB: stfld System.UInt32 PulseGroup::m_curCharge
IL_01B0: ldloca.s 13 (ElectricityManager+PulseGroup)
IL_01B2: ldc.i4.0
IL_01B3: stfld System.UInt16 PulseGroup::m_mergeCount
IL_01B8: ldloca.s 13 (ElectricityManager+PulseGroup)
IL_01BA: ldc.i4 65535
IL_01BF: stfld System.UInt16 PulseGroup::m_mergeIndex
IL_01C4: ldloca.s 13 (ElectricityManager+PulseGroup)
IL_01C6: ldloc.s 11 (System.Int32)
IL_01C8: conv.u1
IL_01C9: stfld System.Byte PulseGroup::m_x
IL_01CE: ldloca.s 13 (ElectricityManager+PulseGroup)
IL_01D0: ldloc.s 9 (System.Int32)
IL_01D2: conv.u1
IL_01D3: stfld System.Byte PulseGroup::m_z
IL_01D8: ldloca.s 14 (ElectricityManager+PulseUnit)
IL_01DA: ldarg.0
IL_01DB: ldfld System.Int32 ElectricityManager::m_pulseGroupCount
IL_01E0: conv.u2
IL_01E1: stfld System.UInt16 PulseUnit::m_group
IL_01E6: ldloca.s 14 (ElectricityManager+PulseUnit)
IL_01E8: ldc.i4.0
IL_01E9: stfld System.UInt16 PulseUnit::m_node
IL_01EE: ldloca.s 14 (ElectricityManager+PulseUnit)
IL_01F0: ldloc.s 11 (System.Int32)
IL_01F2: conv.u1
IL_01F3: stfld System.Byte PulseUnit::m_x
IL_01F8: ldloca.s 14 (ElectricityManager+PulseUnit)
IL_01FA: ldloc.s 9 (System.Int32)
IL_01FC: conv.u1
IL_01FD: stfld System.Byte PulseUnit::m_z
IL_0202: ldloca.s 12 (ElectricityManager+Cell)
IL_0204: ldarg.0
IL_0205: ldfld System.Int32 ElectricityManager::m_pulseGroupCount
IL_020A: conv.u2
IL_020B: stfld System.UInt16 Cell::m_pulseGroup
IL_0210: ldarg.0
IL_0211: ldfld PulseGroup[] ElectricityManager::m_pulseGroups
IL_0216: ldarg.0
IL_0217: dup
IL_0218: ldfld System.Int32 ElectricityManager::m_pulseGroupCount
IL_021D: dup
IL_021E: stloc.s 15 (System.Int32)
IL_0220: ldc.i4.1
IL_0221: add
IL_0222: stfld System.Int32 ElectricityManager::m_pulseGroupCount
IL_0227: ldloc.s 15 (System.Int32)
IL_0229: ldelema ElectricityManager+PulseGroup
IL_022E: ldloc.s 13 (ElectricityManager+PulseGroup)
IL_0230: stobj ElectricityManager+PulseGroup
IL_0235: ldarg.0
IL_0236: ldfld PulseUnit[] ElectricityManager::m_pulseUnits
IL_023B: ldarg.0
IL_023C: ldfld System.Int32 ElectricityManager::m_pulseUnitEnd
IL_0241: ldelema ElectricityManager+PulseUnit
IL_0246: ldloc.s 14 (ElectricityManager+PulseUnit)
IL_0248: stobj ElectricityManager+PulseUnit
IL_024D: ldarg.0
IL_024E: dup
IL_024F: ldfld System.Int32 ElectricityManager::m_pulseUnitEnd
IL_0254: ldc.i4.1
IL_0255: add
IL_0256: dup
IL_0257: stloc.s 15 (System.Int32)
IL_0259: stfld System.Int32 ElectricityManager::m_pulseUnitEnd
IL_025E: ldloc.s 15 (System.Int32)
IL_0260: ldarg.0
IL_0261: ldfld PulseUnit[] ElectricityManager::m_pulseUnits
IL_0266: ldlen
IL_0267: conv.i4
IL_0268: bne.un => Label15
IL_026D: ldarg.0
IL_026E: ldc.i4.0
IL_026F: stfld System.Int32 ElectricityManager::m_pulseUnitEnd
IL_0274: Label15
IL_0274: br => Label16
IL_0279: Label14
IL_0279: ldloca.s 12 (ElectricityManager+Cell)
IL_027B: ldc.i4 65535
IL_0280: stfld System.UInt16 Cell::m_pulseGroup
IL_0285: Label16
IL_0285: ldloca.s 12 (ElectricityManager+Cell)
IL_0287: ldc.i4.0
IL_0288: stfld System.Int16 Cell::m_currentCharge
IL_028D: ldarg.0
IL_028E: dup
IL_028F: ldfld System.Int32 ElectricityManager::m_conductiveCells
IL_0294: ldc.i4.1
IL_0295: add
IL_0296: stfld System.Int32 ElectricityManager::m_conductiveCells
IL_029B: br => Label17
IL_02A0: Label13
IL_02A0: ldloca.s 12 (ElectricityManager+Cell)
IL_02A2: ldc.i4 65535
IL_02A7: stfld System.UInt16 Cell::m_pulseGroup
IL_02AC: ldloca.s 12 (ElectricityManager+Cell)
IL_02AE: ldfld System.Byte Cell::m_conductivity
IL_02B3: ldc.i4.s 64
IL_02B5: blt => Label18
IL_02BA: ldarg.0
IL_02BB: dup
IL_02BC: ldfld System.Int32 ElectricityManager::m_conductiveCells
IL_02C1: ldc.i4.1
IL_02C2: add
IL_02C3: stfld System.Int32 ElectricityManager::m_conductiveCells
IL_02C8: Label17
IL_02C8: Label18
IL_02C8: ldloca.s 12 (ElectricityManager+Cell)
IL_02CA: ldfld System.Boolean Cell::m_tmpElectrified
IL_02CF: ldloca.s 12 (ElectricityManager+Cell)
IL_02D1: ldfld System.Boolean Cell::m_electrified
IL_02D6: beq => Label19
IL_02DB: ldloca.s 12 (ElectricityManager+Cell)
IL_02DD: ldloca.s 12 (ElectricityManager+Cell)
IL_02DF: ldfld System.Boolean Cell::m_tmpElectrified
IL_02E4: stfld System.Boolean Cell::m_electrified
IL_02E9: Label19
IL_02E9: ldloca.s 12 (ElectricityManager+Cell)
IL_02EB: ldloca.s 12 (ElectricityManager+Cell)
IL_02ED: ldfld System.UInt16 Cell::m_pulseGroup
IL_02F2: ldc.i4 65535
IL_02F7: ceq
IL_02F9: ldc.i4.0
IL_02FA: ceq
IL_02FC: stfld System.Boolean Cell::m_tmpElectrified
IL_0301: ldarg.0
IL_0302: ldfld Cell[] ElectricityManager::m_electricityGrid
IL_0307: ldloc.s 10 (System.Int32)
IL_0309: ldelema ElectricityManager+Cell
IL_030E: ldloc.s 12 (ElectricityManager+Cell)
IL_0310: stobj ElectricityManager+Cell
IL_0315: ldloc.s 10 (System.Int32)
IL_0317: ldc.i4.1
IL_0318: add
IL_0319: stloc.s 10 (System.Int32)
IL_031B: ldloc.s 11 (System.Int32)
IL_031D: ldc.i4.1
IL_031E: add
IL_031F: stloc.s 11 (System.Int32)
IL_0321: Label12
IL_0321: ldloc.s 11 (System.Int32)
IL_0323: ldc.i4 256
IL_0328: blt => Label20
IL_032D: ldloc.s 9 (System.Int32)
IL_032F: ldc.i4.1
IL_0330: add
IL_0331: stloc.s 9 (System.Int32)
IL_0333: Label11
IL_0333: ldloc.s 9 (System.Int32)
IL_0335: ldloc.s 8 (System.Int32)
IL_0337: ble => Label21
IL_033C: br => Label22
IL_0341: Label2
IL_0341: ldloc.1
IL_0342: ldc.i4.s 127
IL_0344: sub
IL_0345: ldarg.0
IL_0346: ldfld System.Int32 ElectricityManager::m_conductiveCells
IL_034B: mul
IL_034C: ldc.i4.7
IL_034D: shr
IL_034E: stloc.s 16 (System.Int32)
IL_0350: ldloc.1
IL_0351: ldc.i4 255
IL_0356: bne.un => Label23
IL_035B: ldc.i4 1000000000
IL_0360: stloc.s 16 (System.Int32)
IL_0362: Label23
IL_0362: br => Label24
IL_0367: Label54
IL_0367: ldarg.0
IL_0368: ldc.i4.0
IL_0369: stfld System.Boolean ElectricityManager::m_canContinue
IL_036E: ldarg.0
IL_036F: ldfld System.Int32 ElectricityManager::m_pulseUnitEnd
IL_0374: stloc.s 17 (System.Int32)
IL_0376: br => Label25
IL_037B: Label52
IL_037B: ldarg.0
IL_037C: ldfld PulseUnit[] ElectricityManager::m_pulseUnits
IL_0381: ldarg.0
IL_0382: ldfld System.Int32 ElectricityManager::m_pulseUnitStart
IL_0387: ldelema ElectricityManager+PulseUnit
IL_038C: ldobj ElectricityManager+PulseUnit
IL_0391: stloc.s 18 (ElectricityManager+PulseUnit)
IL_0393: ldarg.0
IL_0394: dup
IL_0395: ldfld System.Int32 ElectricityManager::m_pulseUnitStart
IL_039A: ldc.i4.1
IL_039B: add
IL_039C: dup
IL_039D: stloc.s 15 (System.Int32)
IL_039F: stfld System.Int32 ElectricityManager::m_pulseUnitStart
IL_03A4: ldloc.s 15 (System.Int32)
IL_03A6: ldarg.0
IL_03A7: ldfld PulseUnit[] ElectricityManager::m_pulseUnits
IL_03AC: ldlen
IL_03AD: conv.i4
IL_03AE: bne.un => Label26
IL_03B3: ldarg.0
IL_03B4: ldc.i4.0
IL_03B5: stfld System.Int32 ElectricityManager::m_pulseUnitStart
IL_03BA: Label26
IL_03BA: ldloca.s 18 (ElectricityManager+PulseUnit)
IL_03BC: ldarg.0
IL_03BD: ldloca.s 18 (ElectricityManager+PulseUnit)
IL_03BF: ldfld System.UInt16 PulseUnit::m_group
IL_03C4: call System.UInt16 ElectricityManager::GetRootGroup(System.UInt16
group)
IL_03C9: stfld System.UInt16 PulseUnit::m_group
IL_03CE: ldarg.0
IL_03CF: ldfld PulseGroup[] ElectricityManager::m_pulseGroups
IL_03D4: ldloca.s 18 (ElectricityManager+PulseUnit)
IL_03D6: ldfld System.UInt16 PulseUnit::m_group
IL_03DB: ldelema ElectricityManager+PulseGroup
IL_03E0: ldfld System.UInt32 PulseGroup::m_curCharge
IL_03E5: stloc.s 19 (System.UInt32)
IL_03E7: ldloca.s 18 (ElectricityManager+PulseUnit)
IL_03E9: ldfld System.UInt16 PulseUnit::m_node
IL_03EE: brtrue => Label27
IL_03F3: ldloca.s 18 (ElectricityManager+PulseUnit)
IL_03F5: ldfld System.Byte PulseUnit::m_z
IL_03FA: ldc.i4 256
IL_03FF: mul
IL_0400: ldloca.s 18 (ElectricityManager+PulseUnit)
IL_0402: ldfld System.Byte PulseUnit::m_x
IL_0407: add
IL_0408: stloc.s 20 (System.Int32)
IL_040A: ldarg.0
IL_040B: ldfld Cell[] ElectricityManager::m_electricityGrid
IL_0410: ldloc.s 20 (System.Int32)
IL_0412: ldelema ElectricityManager+Cell
IL_0417: ldobj ElectricityManager+Cell
IL_041C: stloc.s 21 (ElectricityManager+Cell)
IL_041E: ldloca.s 21 (ElectricityManager+Cell)
IL_0420: ldfld System.Byte Cell::m_conductivity
IL_0425: brfalse => Label28
IL_042A: ldloca.s 21 (ElectricityManager+Cell)
IL_042C: ldfld System.Boolean Cell::m_tmpElectrified
IL_0431: brtrue => Label29
IL_0436: ldloc.s 19 (System.UInt32)
IL_0438: brfalse => Label30
IL_043D: ldloca.s 21 (ElectricityManager+Cell)
IL_043F: ldfld System.Int16 Cell::m_currentCharge
IL_0444: neg
IL_0445: ldc.i4.0
IL_0446: ldloc.s 19 (System.UInt32)
IL_0448: call static System.Int32 UnityEngine.Mathf::Clamp(System.Int32
value, System.Int32 min, System.Int32 max)
IL_044D: stloc.s 22 (System.Int32)
IL_044F: ldloc.s 19 (System.UInt32)
IL_0451: ldloc.s 22 (System.Int32)
IL_0453: sub
IL_0454: stloc.s 19 (System.UInt32)
IL_0456: ldloca.s 21 (ElectricityManager+Cell)
IL_0458: dup
IL_0459: ldfld System.Int16 Cell::m_currentCharge
IL_045E: ldloc.s 22 (System.Int32)
IL_0460: conv.i2
IL_0461: add
IL_0462: conv.i2
IL_0463: stfld System.Int16 Cell::m_currentCharge
IL_0468: ldloca.s 21 (ElectricityManager+Cell)
IL_046A: ldfld System.Int16 Cell::m_currentCharge
IL_046F: brtrue => Label31
IL_0474: ldloca.s 21 (ElectricityManager+Cell)
IL_0476: ldc.i4.1
IL_0477: stfld System.Boolean Cell::m_tmpElectrified
IL_047C: Label31
IL_047C: ldarg.0
IL_047D: ldfld Cell[] ElectricityManager::m_electricityGrid
IL_0482: ldloc.s 20 (System.Int32)
IL_0484: ldelema ElectricityManager+Cell
IL_0489: ldloc.s 21 (ElectricityManager+Cell)
IL_048B: stobj ElectricityManager+Cell
IL_0490: ldarg.0
IL_0491: ldfld PulseGroup[] ElectricityManager::m_pulseGroups
IL_0496: ldloca.s 18 (ElectricityManager+PulseUnit)
IL_0498: ldfld System.UInt16 PulseUnit::m_group
IL_049D: ldelema ElectricityManager+PulseGroup
IL_04A2: ldloc.s 19 (System.UInt32)
IL_04A4: stfld System.UInt32 PulseGroup::m_curCharge
IL_04A9: Label28
IL_04A9: Label29
IL_04A9: Label30
IL_04A9: ldloc.s 19 (System.UInt32)
IL_04AB: brfalse => Label32
IL_04B0: ldloca.s 21 (ElectricityManager+Cell)
IL_04B2: ldfld System.Byte Cell::m_conductivity
IL_04B7: ldc.i4.s 64
IL_04B9: blt => Label33
IL_04BE: ldc.i4.1
IL_04BF: br => Label34
IL_04C4: Label33
IL_04C4: ldc.i4.s 64
IL_04C6: Label34
IL_04C6: stloc.s 23 (System.Int32)
IL_04C8: ldarg.0
IL_04C9: dup
IL_04CA: ldfld System.Int32 ElectricityManager::m_processedCells
IL_04CF: ldc.i4.1
IL_04D0: add
IL_04D1: stfld System.Int32 ElectricityManager::m_processedCells
IL_04D6: ldloca.s 18 (ElectricityManager+PulseUnit)
IL_04D8: ldfld System.Byte PulseUnit::m_z
IL_04DD: ldc.i4.0
IL_04DE: ble => Label35
IL_04E3: ldarg.0
IL_04E4: ldarg.0
IL_04E5: ldfld Cell[] ElectricityManager::m_electricityGrid
IL_04EA: ldloc.s 20 (System.Int32)
IL_04EC: ldc.i4 256
IL_04F1: sub
IL_04F2: ldelema ElectricityManager+Cell
IL_04F7: ldloca.s 18 (ElectricityManager+PulseUnit)
IL_04F9: ldfld System.UInt16 PulseUnit::m_group
IL_04FE: ldloca.s 18 (ElectricityManager+PulseUnit)
IL_0500: ldfld System.Byte PulseUnit::m_x
IL_0505: ldloca.s 18 (ElectricityManager+PulseUnit)
IL_0507: ldfld System.Byte PulseUnit::m_z
IL_050C: ldc.i4.1
IL_050D: sub
IL_050E: ldloc.s 23 (System.Int32)
IL_0510: call System.Void ElectricityManager::ConductToCell(Cell& cell,
System.UInt16 group, System.Int32 x, System.Int32 z, System.Int32 limit)
IL_0515: Label35
IL_0515: ldloca.s 18 (ElectricityManager+PulseUnit)
IL_0517: ldfld System.Byte PulseUnit::m_x
IL_051C: ldc.i4.0
IL_051D: ble => Label36
IL_0522: ldarg.0
IL_0523: ldarg.0
IL_0524: ldfld Cell[] ElectricityManager::m_electricityGrid
IL_0529: ldloc.s 20 (System.Int32)
IL_052B: ldc.i4.1
IL_052C: sub
IL_052D: ldelema ElectricityManager+Cell
IL_0532: ldloca.s 18 (ElectricityManager+PulseUnit)
IL_0534: ldfld System.UInt16 PulseUnit::m_group
IL_0539: ldloca.s 18 (ElectricityManager+PulseUnit)
IL_053B: ldfld System.Byte PulseUnit::m_x
IL_0540: ldc.i4.1
IL_0541: sub
IL_0542: ldloca.s 18 (ElectricityManager+PulseUnit)
IL_0544: ldfld System.Byte PulseUnit::m_z
IL_0549: ldloc.s 23 (System.Int32)
IL_054B: call System.Void ElectricityManager::ConductToCell(Cell& cell,
System.UInt16 group, System.Int32 x, System.Int32 z, System.Int32 limit)
IL_0550: Label36
IL_0550: ldloca.s 18 (ElectricityManager+PulseUnit)
IL_0552: ldfld System.Byte PulseUnit::m_z
IL_0557: ldc.i4 255
IL_055C: bge => Label37
IL_0561: ldarg.0
IL_0562: ldarg.0
IL_0563: ldfld Cell[] ElectricityManager::m_electricityGrid
IL_0568: ldloc.s 20 (System.Int32)
IL_056A: ldc.i4 256
IL_056F: add
IL_0570: ldelema ElectricityManager+Cell
IL_0575: ldloca.s 18 (ElectricityManager+PulseUnit)
IL_0577: ldfld System.UInt16 PulseUnit::m_group
IL_057C: ldloca.s 18 (ElectricityManager+PulseUnit)
IL_057E: ldfld System.Byte PulseUnit::m_x
IL_0583: ldloca.s 18 (ElectricityManager+PulseUnit)
IL_0585: ldfld System.Byte PulseUnit::m_z
IL_058A: ldc.i4.1
IL_058B: add
IL_058C: ldloc.s 23 (System.Int32)
IL_058E: call System.Void ElectricityManager::ConductToCell(Cell& cell,
System.UInt16 group, System.Int32 x, System.Int32 z, System.Int32 limit)
IL_0593: Label37
IL_0593: ldloca.s 18 (ElectricityManager+PulseUnit)
IL_0595: ldfld System.Byte PulseUnit::m_x
IL_059A: ldc.i4 255
IL_059F: bge => Label38
IL_05A4: ldarg.0
IL_05A5: ldarg.0
IL_05A6: ldfld Cell[] ElectricityManager::m_electricityGrid
IL_05AB: ldloc.s 20 (System.Int32)
IL_05AD: ldc.i4.1
IL_05AE: add
IL_05AF: ldelema ElectricityManager+Cell
IL_05B4: ldloca.s 18 (ElectricityManager+PulseUnit)
IL_05B6: ldfld System.UInt16 PulseUnit::m_group
IL_05BB: ldloca.s 18 (ElectricityManager+PulseUnit)
IL_05BD: ldfld System.Byte PulseUnit::m_x
IL_05C2: ldc.i4.1
IL_05C3: add
IL_05C4: ldloca.s 18 (ElectricityManager+PulseUnit)
IL_05C6: ldfld System.Byte PulseUnit::m_z
IL_05CB: ldloc.s 23 (System.Int32)
IL_05CD: call System.Void ElectricityManager::ConductToCell(Cell& cell,
System.UInt16 group, System.Int32 x, System.Int32 z, System.Int32 limit)
IL_05D2: Label38
IL_05D2: ldarg.0
IL_05D3: ldloca.s 18 (ElectricityManager+PulseUnit)
IL_05D5: ldfld System.UInt16 PulseUnit::m_group
IL_05DA: ldloca.s 18 (ElectricityManager+PulseUnit)
IL_05DC: ldfld System.Byte PulseUnit::m_x
IL_05E1: ldloca.s 18 (ElectricityManager+PulseUnit)
IL_05E3: ldfld System.Byte PulseUnit::m_z
IL_05E8: call System.Void ElectricityManager::ConductToNodes(System.UInt16
group, System.Int32 cellX, System.Int32 cellZ)
IL_05ED: br => Label39
IL_05F2: Label32
IL_05F2: ldarg.0
IL_05F3: ldfld PulseUnit[] ElectricityManager::m_pulseUnits
IL_05F8: ldarg.0
IL_05F9: ldfld System.Int32 ElectricityManager::m_pulseUnitEnd
IL_05FE: ldelema ElectricityManager+PulseUnit
IL_0603: ldloc.s 18 (ElectricityManager+PulseUnit)
IL_0605: stobj ElectricityManager+PulseUnit
IL_060A: ldarg.0
IL_060B: dup
IL_060C: ldfld System.Int32 ElectricityManager::m_pulseUnitEnd
IL_0611: ldc.i4.1
IL_0612: add
IL_0613: dup
IL_0614: stloc.s 15 (System.Int32)
IL_0616: stfld System.Int32 ElectricityManager::m_pulseUnitEnd
IL_061B: ldloc.s 15 (System.Int32)
IL_061D: ldarg.0
IL_061E: ldfld PulseUnit[] ElectricityManager::m_pulseUnits
IL_0623: ldlen
IL_0624: conv.i4
IL_0625: bne.un => Label40
IL_062A: ldarg.0
IL_062B: ldc.i4.0
IL_062C: stfld System.Int32 ElectricityManager::m_pulseUnitEnd
IL_0631: Label39
IL_0631: Label40
IL_0631: br => Label41
IL_0636: Label27
IL_0636: ldloc.s 19 (System.UInt32)
IL_0638: brfalse => Label42
IL_063D: ldarg.0
IL_063E: dup
IL_063F: ldfld System.Int32 ElectricityManager::m_processedCells
IL_0644: ldc.i4.1
IL_0645: add
IL_0646: stfld System.Int32 ElectricityManager::m_processedCells
IL_064B: call static NetManager
ColossalFramework.Singleton`1<NetManager>::get_instance()
IL_0650: ldfld Array16`1<NetNode> NetManager::m_nodes
IL_0655: ldfld NetNode[] Array16`1<NetNode>::m_buffer
IL_065A: ldloca.s 18 (ElectricityManager+PulseUnit)
IL_065C: ldfld System.UInt16 PulseUnit::m_node
IL_0661: ldelema NetNode
IL_0666: ldobj NetNode
IL_066B: stloc.s 24 (NetNode)
IL_066D: ldloca.s 24 (NetNode)
IL_066F: ldfld Flags NetNode::m_flags
IL_0674: brfalse => Label43
IL_0679: ldloca.s 24 (NetNode)
IL_067B: ldfld System.UInt32 NetNode::m_buildIndex
IL_0680: ldloc.0
IL_0681: ldc.i4.s -128
IL_0683: and
IL_0684: bge.un => Label44
IL_0689: ldarg.0
IL_068A: ldloca.s 18 (ElectricityManager+PulseUnit)
IL_068C: ldfld System.UInt16 PulseUnit::m_group
IL_0691: ldloca.s 24 (NetNode)
IL_0693: ldflda UnityEngine.Vector3 NetNode::m_position
IL_0698: ldfld System.Single UnityEngine.Vector3::x
IL_069D: ldloca.s 24 (NetNode)
IL_069F: ldflda UnityEngine.Vector3 NetNode::m_position
IL_06A4: ldfld System.Single UnityEngine.Vector3::z
IL_06A9: call System.Void ElectricityManager::ConductToCells(System.UInt16
group, System.Single worldX, System.Single worldZ)
IL_06AE: ldc.i4.0
IL_06AF: stloc.s 25 (System.Int32)
IL_06B1: br => Label45
IL_06B6: Label49
IL_06B6: ldloca.s 24 (NetNode)
IL_06B8: ldloc.s 25 (System.Int32)
IL_06BA: call System.UInt16 NetNode::GetSegment(System.Int32 index)
IL_06BF: stloc.s 26 (System.UInt16)
IL_06C1: ldloc.s 26 (System.UInt16)
IL_06C3: brfalse => Label46
IL_06C8: call static NetManager
ColossalFramework.Singleton`1<NetManager>::get_instance()
IL_06CD: ldfld Array16`1<NetSegment> NetManager::m_segments
IL_06D2: ldfld NetSegment[] Array16`1<NetSegment>::m_buffer
IL_06D7: ldloc.s 26 (System.UInt16)
IL_06D9: ldelema NetSegment
IL_06DE: ldfld System.UInt16 NetSegment::m_startNode
IL_06E3: stloc.s 27 (System.UInt16)
IL_06E5: call static NetManager
ColossalFramework.Singleton`1<NetManager>::get_instance()
IL_06EA: ldfld Array16`1<NetSegment> NetManager::m_segments
IL_06EF: ldfld NetSegment[] Array16`1<NetSegment>::m_buffer
IL_06F4: ldloc.s 26 (System.UInt16)
IL_06F6: ldelema NetSegment
IL_06FB: ldfld System.UInt16 NetSegment::m_endNode
IL_0700: stloc.s 28 (System.UInt16)
IL_0702: ldloc.s 27 (System.UInt16)
IL_0704: ldloca.s 18 (ElectricityManager+PulseUnit)
IL_0706: ldfld System.UInt16 PulseUnit::m_node
IL_070B: bne.un => Label47
IL_0710: ldloc.s 28 (System.UInt16)
IL_0712: br => Label48
IL_0717: Label47
IL_0717: ldloc.s 27 (System.UInt16)
IL_0719: Label48
IL_0719: stloc.s 29 (System.UInt16)
IL_071B: ldarg.0
IL_071C: ldloc.s 29 (System.UInt16)
IL_071E: call static NetManager
ColossalFramework.Singleton`1<NetManager>::get_instance()
IL_0723: ldfld Array16`1<NetNode> NetManager::m_nodes
IL_0728: ldfld NetNode[] Array16`1<NetNode>::m_buffer
IL_072D: ldloc.s 29 (System.UInt16)
IL_072F: ldelema NetNode
IL_0734: ldloca.s 18 (ElectricityManager+PulseUnit)
IL_0736: ldfld System.UInt16 PulseUnit::m_group
IL_073B: ldc.r4 -100000
IL_0740: ldc.r4 -100000
IL_0745: ldc.r4 100000
IL_074A: ldc.r4 100000
IL_074F: call System.Void ElectricityManager::ConductToNode(System.UInt16
nodeIndex, NetNode& node, System.UInt16 group, System.Single minX, System.Single
minZ, System.Single maxX, System.Single maxZ)
IL_0754: Label46
IL_0754: ldloc.s 25 (System.Int32)
IL_0756: ldc.i4.1
IL_0757: add
IL_0758: stloc.s 25 (System.Int32)
IL_075A: Label45
IL_075A: ldloc.s 25 (System.Int32)
IL_075C: ldc.i4.8
IL_075D: blt => Label49
IL_0762: Label43
IL_0762: Label44
IL_0762: br => Label50
IL_0767: Label42
IL_0767: ldarg.0
IL_0768: ldfld PulseUnit[] ElectricityManager::m_pulseUnits
IL_076D: ldarg.0
IL_076E: ldfld System.Int32 ElectricityManager::m_pulseUnitEnd
IL_0773: ldelema ElectricityManager+PulseUnit
IL_0778: ldloc.s 18 (ElectricityManager+PulseUnit)
IL_077A: stobj ElectricityManager+PulseUnit
IL_077F: ldarg.0
IL_0780: dup
IL_0781: ldfld System.Int32 ElectricityManager::m_pulseUnitEnd
IL_0786: ldc.i4.1
IL_0787: add
IL_0788: dup
IL_0789: stloc.s 15 (System.Int32)
IL_078B: stfld System.Int32 ElectricityManager::m_pulseUnitEnd
IL_0790: ldloc.s 15 (System.Int32)
IL_0792: ldarg.0
IL_0793: ldfld PulseUnit[] ElectricityManager::m_pulseUnits
IL_0798: ldlen
IL_0799: conv.i4
IL_079A: bne.un => Label51
IL_079F: ldarg.0
IL_07A0: ldc.i4.0
IL_07A1: stfld System.Int32 ElectricityManager::m_pulseUnitEnd
IL_07A6: Label25
IL_07A6: Label41
IL_07A6: Label50
IL_07A6: Label51
IL_07A6: ldarg.0
IL_07A7: ldfld System.Int32 ElectricityManager::m_pulseUnitStart
IL_07AC: ldloc.s 17 (System.Int32)
IL_07AE: bne.un => Label52
IL_07B3: Label24
IL_07B3: ldarg.0
IL_07B4: ldfld System.Boolean ElectricityManager::m_canContinue
IL_07B9: brfalse => Label53
IL_07BE: ldarg.0
IL_07BF: ldfld System.Int32 ElectricityManager::m_processedCells
IL_07C4: ldloc.s 16 (System.Int32)
IL_07C6: blt => Label54
IL_07CB: Label53
IL_07CB: ldloc.1
IL_07CC: ldc.i4 255
IL_07D1: bne.un => Label55
IL_07D6: ldc.i4.0
IL_07D7: stloc.s 30 (System.Int32)
IL_07D9: br => Label56
IL_07DE: Label58
IL_07DE: ldarg.0
IL_07DF: ldfld PulseGroup[] ElectricityManager::m_pulseGroups
IL_07E4: ldloc.s 30 (System.Int32)
IL_07E6: ldelema ElectricityManager+PulseGroup
IL_07EB: ldobj ElectricityManager+PulseGroup
IL_07F0: stloc.s 31 (ElectricityManager+PulseGroup)
IL_07F2: ldloca.s 31 (ElectricityManager+PulseGroup)
IL_07F4: ldfld System.UInt16 PulseGroup::m_mergeIndex
IL_07F9: ldc.i4 65535
IL_07FE: beq => Label57
IL_0803: ldarg.0
IL_0804: ldfld PulseGroup[] ElectricityManager::m_pulseGroups
IL_0809: ldloca.s 31 (ElectricityManager+PulseGroup)
IL_080B: ldfld System.UInt16 PulseGroup::m_mergeIndex
IL_0810: ldelema ElectricityManager+PulseGroup
IL_0815: ldobj ElectricityManager+PulseGroup
IL_081A: stloc.s 32 (ElectricityManager+PulseGroup)
IL_081C: ldloca.s 31 (ElectricityManager+PulseGroup)
IL_081E: ldloca.s 32 (ElectricityManager+PulseGroup)
IL_0820: ldfld System.UInt32 PulseGroup::m_curCharge
IL_0825: conv.u8
IL_0826: ldloca.s 31 (ElectricityManager+PulseGroup)
IL_0828: ldfld System.UInt32 PulseGroup::m_origCharge
IL_082D: conv.u8
IL_082E: mul
IL_082F: ldloca.s 32 (ElectricityManager+PulseGroup)
IL_0831: ldfld System.UInt32 PulseGroup::m_origCharge
IL_0836: conv.u8
IL_0837: div.un
IL_0838: conv.u4
IL_0839: stfld System.UInt32 PulseGroup::m_curCharge
IL_083E: ldloca.s 32 (ElectricityManager+PulseGroup)
IL_0840: dup
IL_0841: ldfld System.UInt32 PulseGroup::m_curCharge
IL_0846: ldloca.s 31 (ElectricityManager+PulseGroup)
IL_0848: ldfld System.UInt32 PulseGroup::m_curCharge
IL_084D: sub
IL_084E: stfld System.UInt32 PulseGroup::m_curCharge
IL_0853: ldloca.s 32 (ElectricityManager+PulseGroup)
IL_0855: dup
IL_0856: ldfld System.UInt32 PulseGroup::m_origCharge
IL_085B: ldloca.s 31 (ElectricityManager+PulseGroup)
IL_085D: ldfld System.UInt32 PulseGroup::m_origCharge
IL_0862: sub
IL_0863: stfld System.UInt32 PulseGroup::m_origCharge
IL_0868: ldarg.0
IL_0869: ldfld PulseGroup[] ElectricityManager::m_pulseGroups
IL_086E: ldloca.s 31 (ElectricityManager+PulseGroup)
IL_0870: ldfld System.UInt16 PulseGroup::m_mergeIndex
IL_0875: ldelema ElectricityManager+PulseGroup
IL_087A: ldloc.s 32 (ElectricityManager+PulseGroup)
IL_087C: stobj ElectricityManager+PulseGroup
IL_0881: ldarg.0
IL_0882: ldfld PulseGroup[] ElectricityManager::m_pulseGroups
IL_0887: ldloc.s 30 (System.Int32)
IL_0889: ldelema ElectricityManager+PulseGroup
IL_088E: ldloc.s 31 (ElectricityManager+PulseGroup)
IL_0890: stobj ElectricityManager+PulseGroup
IL_0895: Label57
IL_0895: ldloc.s 30 (System.Int32)
IL_0897: ldc.i4.1
IL_0898: add
IL_0899: stloc.s 30 (System.Int32)
IL_089B: Label56
IL_089B: ldloc.s 30 (System.Int32)
IL_089D: ldarg.0
IL_089E: ldfld System.Int32 ElectricityManager::m_pulseGroupCount
IL_08A3: blt => Label58
IL_08A8: ldc.i4.0
IL_08A9: stloc.s 33 (System.Int32)
IL_08AB: br => Label59
IL_08B0: Label62
IL_08B0: ldarg.0
IL_08B1: ldfld PulseGroup[] ElectricityManager::m_pulseGroups
IL_08B6: ldloc.s 33 (System.Int32)
IL_08B8: ldelema ElectricityManager+PulseGroup
IL_08BD: ldobj ElectricityManager+PulseGroup
IL_08C2: stloc.s 34 (ElectricityManager+PulseGroup)
IL_08C4: ldloca.s 34 (ElectricityManager+PulseGroup)
IL_08C6: ldfld System.UInt32 PulseGroup::m_curCharge
IL_08CB: brfalse => Label60
IL_08D0: ldloca.s 34 (ElectricityManager+PulseGroup)
IL_08D2: ldfld System.Byte PulseGroup::m_z
IL_08D7: ldc.i4 256
IL_08DC: mul
IL_08DD: ldloca.s 34 (ElectricityManager+PulseGroup)
IL_08DF: ldfld System.Byte PulseGroup::m_x
IL_08E4: add
IL_08E5: stloc.s 35 (System.Int32)
IL_08E7: ldarg.0
IL_08E8: ldfld Cell[] ElectricityManager::m_electricityGrid
IL_08ED: ldloc.s 35 (System.Int32)
IL_08EF: ldelema ElectricityManager+Cell
IL_08F4: ldobj ElectricityManager+Cell
IL_08F9: stloc.s 36 (ElectricityManager+Cell)
IL_08FB: ldloca.s 36 (ElectricityManager+Cell)
IL_08FD: ldfld System.Byte Cell::m_conductivity
IL_0902: brfalse => Label61
IL_0907: ldloca.s 36 (ElectricityManager+Cell)
IL_0909: dup
IL_090A: ldfld System.UInt16 Cell::m_extraCharge
IL_090F: ldloca.s 34 (ElectricityManager+PulseGroup)
IL_0911: ldfld System.UInt32 PulseGroup::m_curCharge
IL_0916: ldc.i4 32767
IL_091B: ldloca.s 36 (ElectricityManager+Cell)
IL_091D: ldfld System.UInt16 Cell::m_extraCharge
IL_0922: sub
IL_0923: call static System.Int32 UnityEngine.Mathf::Min(System.Int32 a,
System.Int32 b)
IL_0928: conv.u2
IL_0929: add
IL_092A: conv.u2
IL_092B: stfld System.UInt16 Cell::m_extraCharge
IL_0930: Label61
IL_0930: ldarg.0
IL_0931: ldfld Cell[] ElectricityManager::m_electricityGrid
IL_0936: ldloc.s 35 (System.Int32)
IL_0938: ldelema ElectricityManager+Cell
IL_093D: ldloc.s 36 (ElectricityManager+Cell)
IL_093F: stobj ElectricityManager+Cell
IL_0944: Label60
IL_0944: ldloc.s 33 (System.Int32)
IL_0946: ldc.i4.1
IL_0947: add
IL_0948: stloc.s 33 (System.Int32)
IL_094A: Label59
IL_094A: ldloc.s 33 (System.Int32)
IL_094C: ldarg.0
IL_094D: ldfld System.Int32 ElectricityManager::m_pulseGroupCount
IL_0952: blt => Label62
IL_0957: // end original
IL_0957: Label0
IL_0957: Label1
IL_0957: Label22
IL_0957: Label55
IL_0957: ret
DONE

### Patch: System.Void ElectricityManager::ConductToNode(System.UInt16 nodeIndex,


NetNode& node, System.UInt16 group, System.Single minX, System.Single minZ,
System.Single maxX, System.Single maxZ)
### Replacement: static System.Void
ElectricityManager::ElectricityManager.ConductToNode_Patch0(ElectricityManager
this, System.UInt16 nodeIndex, NetNode& node, System.UInt16 group, System.Single
minX, System.Single minZ, System.Single maxX, System.Single maxZ)
IL_0000: Local var 0: NetInfo
IL_0000: Local var 1: ElectricityManager/PulseUnit
IL_0000: Local var 2: System.Int32
IL_0000: Local var 3: System.UInt16
IL_0000: // start original
IL_0000: ldarg.2
IL_0001: ldflda UnityEngine.Vector3 NetNode::m_position
IL_0006: ldfld System.Single UnityEngine.Vector3::x
IL_000B: ldarg.s 4
IL_000D: blt.un => Label0
IL_0012: ldarg.2
IL_0013: ldflda UnityEngine.Vector3 NetNode::m_position
IL_0018: ldfld System.Single UnityEngine.Vector3::z
IL_001D: ldarg.s 5
IL_001F: blt.un => Label1
IL_0024: ldarg.2
IL_0025: ldflda UnityEngine.Vector3 NetNode::m_position
IL_002A: ldfld System.Single UnityEngine.Vector3::x
IL_002F: ldarg.s 6
IL_0031: bgt.un => Label2
IL_0036: ldarg.2
IL_0037: ldflda UnityEngine.Vector3 NetNode::m_position
IL_003C: ldfld System.Single UnityEngine.Vector3::z
IL_0041: ldarg.s 7
IL_0043: bgt.un => Label3
IL_0048: ldarg.2
IL_0049: call NetInfo NetNode::get_Info()
IL_004E: stloc.0
IL_004F: ldloc.0
IL_0050: ldfld ItemClass NetInfo::m_class
IL_0055: ldfld Service ItemClass::m_service
IL_005A: ldc.i4.s 10
IL_005C: beq => Label4
IL_0061: ldarg.2
IL_0062: call NetInfo NetNode::get_Info()
IL_0067: ldfld NetAI NetInfo::m_netAI
IL_006C: isinst ConcourseAI
IL_0071: brfalse => Label5
IL_0076: Label4
IL_0076: ldarg.0
IL_0077: ldfld System.UInt16[] ElectricityManager::m_nodeGroups
IL_007C: ldarg.1
IL_007D: ldelem.u2
IL_007E: ldc.i4 65535
IL_0083: bne.un => Label6
IL_0088: ldloca.s 1 (ElectricityManager+PulseUnit)
IL_008A: ldarg.3
IL_008B: stfld System.UInt16 PulseUnit::m_group
IL_0090: ldloca.s 1 (ElectricityManager+PulseUnit)
IL_0092: ldarg.1
IL_0093: stfld System.UInt16 PulseUnit::m_node
IL_0098: ldloca.s 1 (ElectricityManager+PulseUnit)
IL_009A: ldc.i4.0
IL_009B: stfld System.Byte PulseUnit::m_x
IL_00A0: ldloca.s 1 (ElectricityManager+PulseUnit)
IL_00A2: ldc.i4.0
IL_00A3: stfld System.Byte PulseUnit::m_z
IL_00A8: ldarg.0
IL_00A9: ldfld PulseUnit[] ElectricityManager::m_pulseUnits
IL_00AE: ldarg.0
IL_00AF: ldfld System.Int32 ElectricityManager::m_pulseUnitEnd
IL_00B4: ldelema ElectricityManager+PulseUnit
IL_00B9: ldloc.1
IL_00BA: stobj ElectricityManager+PulseUnit
IL_00BF: ldarg.0
IL_00C0: dup
IL_00C1: ldfld System.Int32 ElectricityManager::m_pulseUnitEnd
IL_00C6: ldc.i4.1
IL_00C7: add
IL_00C8: dup
IL_00C9: stloc.2
IL_00CA: stfld System.Int32 ElectricityManager::m_pulseUnitEnd
IL_00CF: ldloc.2
IL_00D0: ldarg.0
IL_00D1: ldfld PulseUnit[] ElectricityManager::m_pulseUnits
IL_00D6: ldlen
IL_00D7: conv.i4
IL_00D8: bne.un => Label7
IL_00DD: ldarg.0
IL_00DE: ldc.i4.0
IL_00DF: stfld System.Int32 ElectricityManager::m_pulseUnitEnd
IL_00E4: Label7
IL_00E4: ldarg.0
IL_00E5: ldfld System.UInt16[] ElectricityManager::m_nodeGroups
IL_00EA: ldarg.1
IL_00EB: ldarg.3
IL_00EC: stelem.i2
IL_00ED: ldarg.0
IL_00EE: ldc.i4.1
IL_00EF: stfld System.Boolean ElectricityManager::m_canContinue
IL_00F4: br => Label8
IL_00F9: Label6
IL_00F9: ldarg.0
IL_00FA: ldarg.0
IL_00FB: ldfld System.UInt16[] ElectricityManager::m_nodeGroups
IL_0100: ldarg.1
IL_0101: ldelem.u2
IL_0102: call System.UInt16 ElectricityManager::GetRootGroup(System.UInt16
group)
IL_0107: stloc.3
IL_0108: ldloc.3
IL_0109: ldarg.3
IL_010A: beq => Label9
IL_010F: ldarg.0
IL_0110: ldarg.3
IL_0111: ldloc.3
IL_0112: call System.Void ElectricityManager::MergeGroups(System.UInt16 root,
System.UInt16 merged)
IL_0117: ldarg.0
IL_0118: ldfld System.UInt16[] ElectricityManager::m_nodeGroups
IL_011D: ldarg.1
IL_011E: ldarg.3
IL_011F: stelem.i2
IL_0120: ldarg.0
IL_0121: ldc.i4.1
IL_0122: stfld System.Boolean ElectricityManager::m_canContinue
IL_0127: // end original
IL_0127: Label0
IL_0127: Label1
IL_0127: Label2
IL_0127: Label3
IL_0127: Label5
IL_0127: Label8
IL_0127: Label9
IL_0127: ret
DONE

### Patch: System.Void ElectricityManager::UpdateNodeElectricity(System.Int32


nodeID, System.Int32 value)
### Replacement: static System.Void
ElectricityManager::ElectricityManager.UpdateNodeElectricity_Patch0(ElectricityMana
ger this, System.Int32 nodeID, System.Int32 value)
IL_0000: Local var 0: InfoManager/InfoMode
IL_0000: Local var 1: NetManager
IL_0000: Local var 2: System.Boolean
IL_0000: Local var 3: NetNode/Flags
IL_0000: Local var 4: System.UInt16
IL_0000: Local var 5: BuildingManager
IL_0000: Local var 6: NetNode/Flags
IL_0000: Local var 7: System.Int32
IL_0000: Local var 8: System.UInt16
IL_0000: // start original
IL_0000: call static InfoManager
ColossalFramework.Singleton`1<InfoManager>::get_instance()
IL_0005: callvirt InfoMode InfoManager::get_CurrentMode()
IL_000A: stloc.0
IL_000B: call static NetManager
ColossalFramework.Singleton`1<NetManager>::get_instance()
IL_0010: stloc.1
IL_0011: ldc.i4.0
IL_0012: stloc.2
IL_0013: ldloc.1
IL_0014: ldfld Array16`1<NetNode> NetManager::m_nodes
IL_0019: ldfld NetNode[] Array16`1<NetNode>::m_buffer
IL_001E: ldarg.1
IL_001F: ldelema NetNode
IL_0024: ldfld Flags NetNode::m_flags
IL_0029: stloc.3
IL_002A: ldloc.3
IL_002B: ldc.i4 1048576
IL_0030: and
IL_0031: brfalse => Label0
IL_0036: ldloc.1
IL_0037: ldfld Array16`1<NetNode> NetManager::m_nodes
IL_003C: ldfld NetNode[] Array16`1<NetNode>::m_buffer
IL_0041: ldarg.1
IL_0042: ldelema NetNode
IL_0047: dup
IL_0048: ldfld Flags NetNode::m_flags
IL_004D: ldc.i4 -1048577
IL_0052: and
IL_0053: stfld Flags NetNode::m_flags
IL_0058: br => Label10
IL_005D: Label0
IL_005D: ldloc.1
IL_005E: ldfld Array16`1<NetNode> NetManager::m_nodes
IL_0063: ldfld NetNode[] Array16`1<NetNode>::m_buffer
IL_0068: ldarg.1
IL_0069: ldelema NetNode
IL_006E: ldfld System.UInt16 NetNode::m_building
IL_0073: stloc.s 4 (System.UInt16)
IL_0075: ldloc.s 4 (System.UInt16)
IL_0077: brfalse => Label1
IL_007C: call static BuildingManager
ColossalFramework.Singleton`1<BuildingManager>::get_instance()
IL_0081: stloc.s 5 (BuildingManager)
IL_0083: ldloc.s 5 (BuildingManager)
IL_0085: ldfld Array16`1<Building> BuildingManager::m_buildings
IL_008A: ldfld Building[] Array16`1<Building>::m_buffer
IL_008F: ldloc.s 4 (System.UInt16)
IL_0091: ldelema Building
IL_0096: ldfld System.UInt16 Building::m_electricityBuffer
IL_009B: ldarg.2
IL_009C: beq => Label2
IL_00A1: ldloc.s 5 (BuildingManager)
IL_00A3: ldfld Array16`1<Building> BuildingManager::m_buildings
IL_00A8: ldfld Building[] Array16`1<Building>::m_buffer
IL_00AD: ldloc.s 4 (System.UInt16)
IL_00AF: ldelema Building
IL_00B4: ldarg.2
IL_00B5: conv.u2
IL_00B6: stfld System.UInt16 Building::m_electricityBuffer
IL_00BB: ldloc.0
IL_00BC: ldc.i4.1
IL_00BD: ceq
IL_00BF: stloc.2
IL_00C0: Label2
IL_00C0: ldloc.2
IL_00C1: brfalse => Label3
IL_00C6: ldloc.s 5 (BuildingManager)
IL_00C8: ldloc.s 4 (System.UInt16)
IL_00CA: callvirt System.Void BuildingManager::UpdateBuildingColors(System.UInt16
building)
IL_00CF: Label1
IL_00CF: Label3
IL_00CF: ldloc.3
IL_00D0: ldc.i4 -67108865
IL_00D5: and
IL_00D6: stloc.s 6 (NetNode+Flags)
IL_00D8: ldarg.2
IL_00D9: brfalse => Label4
IL_00DE: ldloc.s 6 (NetNode+Flags)
IL_00E0: ldc.i4 67108864
IL_00E5: or
IL_00E6: stloc.s 6 (NetNode+Flags)
IL_00E8: Label4
IL_00E8: ldloc.s 6 (NetNode+Flags)
IL_00EA: ldloc.3
IL_00EB: beq => Label5
IL_00F0: ldloc.1
IL_00F1: ldfld Array16`1<NetNode> NetManager::m_nodes
IL_00F6: ldfld NetNode[] Array16`1<NetNode>::m_buffer
IL_00FB: ldarg.1
IL_00FC: ldelema NetNode
IL_0101: ldloc.s 6 (NetNode+Flags)
IL_0103: stfld Flags NetNode::m_flags
IL_0108: ldloc.0
IL_0109: ldc.i4.1
IL_010A: ceq
IL_010C: stloc.2
IL_010D: Label5
IL_010D: ldloc.2
IL_010E: brfalse => Label6
IL_0113: ldloc.1
IL_0114: ldarg.1
IL_0115: conv.u2
IL_0116: callvirt System.Void NetManager::UpdateNodeColors(System.UInt16 node)
IL_011B: ldc.i4.0
IL_011C: stloc.s 7 (System.Int32)
IL_011E: br => Label7
IL_0123: Label9
IL_0123: ldloc.1
IL_0124: ldfld Array16`1<NetNode> NetManager::m_nodes
IL_0129: ldfld NetNode[] Array16`1<NetNode>::m_buffer
IL_012E: ldarg.1
IL_012F: ldelema NetNode
IL_0134: ldloc.s 7 (System.Int32)
IL_0136: call System.UInt16 NetNode::GetSegment(System.Int32 index)
IL_013B: stloc.s 8 (System.UInt16)
IL_013D: ldloc.s 8 (System.UInt16)
IL_013F: brfalse => Label8
IL_0144: ldloc.1
IL_0145: ldloc.s 8 (System.UInt16)
IL_0147: callvirt System.Void NetManager::UpdateSegmentColors(System.UInt16
segment)
IL_014C: Label8
IL_014C: ldloc.s 7 (System.Int32)
IL_014E: ldc.i4.1
IL_014F: add
IL_0150: stloc.s 7 (System.Int32)
IL_0152: Label7
IL_0152: ldloc.s 7 (System.Int32)
IL_0154: ldc.i4.8
IL_0155: blt => Label9
IL_015A: // end original
IL_015A: Label6
IL_015A: Label10
IL_015A: ret
DONE

### Patch: virtual System.Void ColossalFramework.UI.UIView::Start()


### Replacement: static System.Void
ColossalFramework.UI.UIView::ColossalFramework.UI.UIView.Start_Patch1(ColossalFrame
work.UI.UIView this)
IL_0000: Local var 0:
ColossalFramework.PoolList`1<ColossalFramework.UI.UIComponent>
IL_0000: Local var 1: ColossalFramework.UI.UIComponent
IL_0000: Local var 2:
System.Collections.Generic.IEnumerator`1<ColossalFramework.UI.UIComponent>
IL_0000: // start original
IL_0000: ldarg.0
IL_0001: ldc.i4.0
IL_0002: stfld System.Int32 ColossalFramework.UI.UIView::m_FramesRendered
IL_0007: ldarg.0
IL_0008: call System.Void
ColossalFramework.UI.UIView::InvalidateAllComponents()
IL_000D: ldarg.0
IL_000E: ldfld UnityEngine.MeshRenderer
ColossalFramework.UI.UIView::m_MeshRenderer
IL_0013: ldnull
IL_0014: call static System.Boolean
UnityEngine.Object::op_Inequality(UnityEngine.Object x, UnityEngine.Object y)
IL_0019: brfalse => Label0
IL_001E: ldarg.0
IL_001F: ldfld UnityEngine.MeshRenderer
ColossalFramework.UI.UIView::m_MeshRenderer
IL_0024: ldc.i4.1
IL_0025: callvirt System.Void UnityEngine.Renderer::set_enabled(System.Boolean
value)
IL_002A: Label0
IL_002A: ldarg.0
IL_002B: call ColossalFramework.PoolList`1<ColossalFramework.UI.UIComponent>
ColossalFramework.UI.UIView::GetTopLevelComponents()
IL_0030: stloc.0
.try
{
IL_0031: ldloc.0
IL_0032: callvirt virtual
System.Collections.Generic.IEnumerator`1<ColossalFramework.UI.UIComponent>
ColossalFramework.PoolList`1<ColossalFramework.UI.UIComponent>::GetEnumerator()
IL_0037: stloc.2
.try
{
IL_0038: br => Label1
IL_003D: Label2
IL_003D: ldloc.2
IL_003E: callvirt abstract virtual ColossalFramework.UI.UIComponent
System.Collections.Generic.IEnumerator`1<ColossalFramework.UI.UIComponent>::get_Cur
rent()
IL_0043: stloc.1
IL_0044: ldloc.1
IL_0045: ldc.i4.1
IL_0046: callvirt System.Void
ColossalFramework.UI.UIComponent::InitializeParentVisibilityCache(System.Boolean
parentVisible)
IL_004B: Label1
IL_004B: ldloc.2
IL_004C: callvirt abstract virtual System.Boolean
System.Collections.IEnumerator::MoveNext()
IL_0051: brtrue => Label2
IL_0056: leave => Label3
IL_005B: leave => (autogenerated)
} // end try
.finally
{
IL_0060: ldloc.2
IL_0061: brfalse => Label4
IL_0066: ldloc.2
IL_0067: callvirt abstract virtual System.Void
System.IDisposable::Dispose()
IL_006C: Label4
IL_006C: endfinally
IL_006D: leave => (autogenerated)
} // end handler
IL_006E: Label3
IL_006E: leave => Label5
IL_0073: leave => (autogenerated)
} // end try
.finally
{
IL_0078: ldloc.0
IL_0079: brfalse => Label6
IL_007E: ldloc.0
IL_007F: callvirt abstract virtual System.Void
System.IDisposable::Dispose()
IL_0084: Label6
IL_0084: endfinally
IL_0085: leave => (autogenerated)
} // end handler
IL_0086: Label5
IL_0086: ldarg.0
IL_0087: ldc.i4.1
IL_0088: stfld System.Boolean
ColossalFramework.UI.UIView::m_VisibilityCacheInitialized
IL_008D: // end original
IL_008D: call static System.Void
Kwytto.Redirectors.UIViewRedirector::AfterStart()
IL_0092: ret
DONE

### Patch: virtual UnityEngine.Color NetAI::GetColor(System.UInt16 nodeID, NetNode&


data, InfoMode infoMode, SubInfoMode subInfoMode)
### Replacement: static UnityEngine.Color NetAI::NetAI.GetColor_Patch1(NetAI this,
System.UInt16 nodeID, NetNode& data, InfoMode infoMode, SubInfoMode subInfoMode)
IL_0000: Local var 0: UnityEngine.Color
IL_0000: ldloca 0 (UnityEngine.Color)
IL_0004: initobj UnityEngine.Color
IL_000A: // start original
IL_000A: ldarg.3
IL_000B: brfalse => Label0
IL_0010: call static InfoManager
ColossalFramework.Singleton`1<InfoManager>::get_instance()
IL_0015: ldfld InfoProperties SimulationManagerBase`2<InfoManager,
InfoProperties>::m_properties
IL_001A: ldfld UnityEngine.Color InfoProperties::m_neutralColor
IL_001F: br => Label1
IL_0024: Label0
IL_0024: ldarg.0
IL_0025: ldfld NetInfo NetAI::m_info
IL_002A: ldfld UnityEngine.Color NetInfo::m_color
IL_002F: // end original
IL_002F: Label1
IL_002F: stloc 0 (UnityEngine.Color)
IL_0033: ldloca 0 (UnityEngine.Color)
IL_0037: ldarg 1
IL_003B: ldarg 2
IL_003F: ldarg 3
IL_0043: ldarg 4
IL_0047: call static System.Void
ElectricRoads.Overrides.ElectricRoadsOverrides::AfterGetColorNode(UnityEngine.Color
& __result, System.UInt16 nodeID, NetNode& data, InfoMode infoMode, SubInfoMode
subInfoMode)
IL_004C: ldloc 0 (UnityEngine.Color)
IL_0050: ret
DONE

### Patch: virtual UnityEngine.Color NetAI::GetColor(System.UInt16 segmentID,


NetSegment& data, InfoMode infoMode, SubInfoMode subInfoMode)
### Replacement: static UnityEngine.Color NetAI::NetAI.GetColor_Patch1(NetAI this,
System.UInt16 segmentID, NetSegment& data, InfoMode infoMode, SubInfoMode
subInfoMode)
IL_0000: Local var 0: UnityEngine.Color
IL_0000: ldloca 0 (UnityEngine.Color)
IL_0004: initobj UnityEngine.Color
IL_000A: // start original
IL_000A: ldarg.3
IL_000B: brfalse => Label0
IL_0010: call static InfoManager
ColossalFramework.Singleton`1<InfoManager>::get_instance()
IL_0015: ldfld InfoProperties SimulationManagerBase`2<InfoManager,
InfoProperties>::m_properties
IL_001A: ldfld UnityEngine.Color InfoProperties::m_neutralColor
IL_001F: br => Label1
IL_0024: Label0
IL_0024: ldarg.0
IL_0025: ldfld NetInfo NetAI::m_info
IL_002A: ldfld UnityEngine.Color NetInfo::m_color
IL_002F: // end original
IL_002F: Label1
IL_002F: stloc 0 (UnityEngine.Color)
IL_0033: ldloca 0 (UnityEngine.Color)
IL_0037: ldarg 1
IL_003B: ldarg 2
IL_003F: ldarg 3
IL_0043: ldarg 4
IL_0047: call static System.Void
ElectricRoads.Overrides.ElectricRoadsOverrides::AfterGetColorSegment(UnityEngine.Co
lor& __result, System.UInt16 segmentID, NetSegment& data, InfoMode infoMode,
SubInfoMode subInfoMode)
IL_004C: ldloc 0 (UnityEngine.Color)
IL_0050: ret
DONE

### Patch: System.Void ElectricityManager::UpdateNodeElectricity(System.Int32


nodeID, System.Int32 value)
### Replacement: static System.Void
ElectricityManager::ElectricityManager.UpdateNodeElectricity_Patch0(ElectricityMana
ger this, System.Int32 nodeID, System.Int32 value)
IL_0000: Local var 0: InfoManager/InfoMode
IL_0000: Local var 1: NetManager
IL_0000: Local var 2: System.Boolean
IL_0000: Local var 3: NetNode/Flags
IL_0000: Local var 4: System.UInt16
IL_0000: Local var 5: BuildingManager
IL_0000: Local var 6: NetNode/Flags
IL_0000: Local var 7: System.Int32
IL_0000: Local var 8: System.UInt16
IL_0000: // start original
IL_0000: call static InfoManager
ColossalFramework.Singleton`1<InfoManager>::get_instance()
IL_0005: callvirt InfoMode InfoManager::get_CurrentMode()
IL_000A: stloc.0
IL_000B: call static NetManager
ColossalFramework.Singleton`1<NetManager>::get_instance()
IL_0010: stloc.1
IL_0011: ldc.i4.0
IL_0012: stloc.2
IL_0013: ldloc.1
IL_0014: ldfld Array16`1<NetNode> NetManager::m_nodes
IL_0019: ldfld NetNode[] Array16`1<NetNode>::m_buffer
IL_001E: ldarg.1
IL_001F: ldelema NetNode
IL_0024: ldfld Flags NetNode::m_flags
IL_0029: stloc.3
IL_002A: ldarg.1
IL_002B: call static System.Boolean
ElectricRoads.Overrides.ElectricRoadsOverrides::CheckNodeTransition(System.Int32
nodeID)
IL_0030: brfalse => Label0
IL_0035: ldloc.1
IL_0036: ldfld Array16`1<NetNode> NetManager::m_nodes
IL_003B: ldfld NetNode[] Array16`1<NetNode>::m_buffer
IL_0040: ldarg.1
IL_0041: ldelema NetNode
IL_0046: dup
IL_0047: ldfld Flags NetNode::m_flags
IL_004C: ldc.i4 -1048577
IL_0051: and
IL_0052: stfld Flags NetNode::m_flags
IL_0057: br => Label10
IL_005C: Label0
IL_005C: ldloc.1
IL_005D: ldfld Array16`1<NetNode> NetManager::m_nodes
IL_0062: ldfld NetNode[] Array16`1<NetNode>::m_buffer
IL_0067: ldarg.1
IL_0068: ldelema NetNode
IL_006D: ldfld System.UInt16 NetNode::m_building
IL_0072: stloc.s 4 (System.UInt16)
IL_0074: ldloc.s 4 (System.UInt16)
IL_0076: brfalse => Label1
IL_007B: call static BuildingManager
ColossalFramework.Singleton`1<BuildingManager>::get_instance()
IL_0080: stloc.s 5 (BuildingManager)
IL_0082: ldloc.s 5 (BuildingManager)
IL_0084: ldfld Array16`1<Building> BuildingManager::m_buildings
IL_0089: ldfld Building[] Array16`1<Building>::m_buffer
IL_008E: ldloc.s 4 (System.UInt16)
IL_0090: ldelema Building
IL_0095: ldfld System.UInt16 Building::m_electricityBuffer
IL_009A: ldarg.2
IL_009B: beq => Label2
IL_00A0: ldloc.s 5 (BuildingManager)
IL_00A2: ldfld Array16`1<Building> BuildingManager::m_buildings
IL_00A7: ldfld Building[] Array16`1<Building>::m_buffer
IL_00AC: ldloc.s 4 (System.UInt16)
IL_00AE: ldelema Building
IL_00B3: ldarg.2
IL_00B4: conv.u2
IL_00B5: stfld System.UInt16 Building::m_electricityBuffer
IL_00BA: ldloc.0
IL_00BB: ldc.i4.1
IL_00BC: ceq
IL_00BE: stloc.2
IL_00BF: Label2
IL_00BF: ldloc.2
IL_00C0: brfalse => Label3
IL_00C5: ldloc.s 5 (BuildingManager)
IL_00C7: ldloc.s 4 (System.UInt16)
IL_00C9: callvirt System.Void BuildingManager::UpdateBuildingColors(System.UInt16
building)
IL_00CE: Label1
IL_00CE: Label3
IL_00CE: ldloc.3
IL_00CF: ldc.i4 -67108865
IL_00D4: and
IL_00D5: stloc.s 6 (NetNode+Flags)
IL_00D7: ldarg.2
IL_00D8: brfalse => Label4
IL_00DD: ldloc.s 6 (NetNode+Flags)
IL_00DF: ldc.i4 67108864
IL_00E4: or
IL_00E5: stloc.s 6 (NetNode+Flags)
IL_00E7: Label4
IL_00E7: ldloc.s 6 (NetNode+Flags)
IL_00E9: ldloc.3
IL_00EA: beq => Label5
IL_00EF: ldloc.1
IL_00F0: ldfld Array16`1<NetNode> NetManager::m_nodes
IL_00F5: ldfld NetNode[] Array16`1<NetNode>::m_buffer
IL_00FA: ldarg.1
IL_00FB: ldelema NetNode
IL_0100: ldloc.s 6 (NetNode+Flags)
IL_0102: stfld Flags NetNode::m_flags
IL_0107: ldloc.0
IL_0108: ldc.i4.1
IL_0109: ceq
IL_010B: stloc.2
IL_010C: Label5
IL_010C: ldloc.2
IL_010D: brfalse => Label6
IL_0112: ldloc.1
IL_0113: ldarg.1
IL_0114: conv.u2
IL_0115: callvirt System.Void NetManager::UpdateNodeColors(System.UInt16 node)
IL_011A: ldc.i4.0
IL_011B: stloc.s 7 (System.Int32)
IL_011D: br => Label7
IL_0122: Label9
IL_0122: ldloc.1
IL_0123: ldfld Array16`1<NetNode> NetManager::m_nodes
IL_0128: ldfld NetNode[] Array16`1<NetNode>::m_buffer
IL_012D: ldarg.1
IL_012E: ldelema NetNode
IL_0133: ldloc.s 7 (System.Int32)
IL_0135: call System.UInt16 NetNode::GetSegment(System.Int32 index)
IL_013A: stloc.s 8 (System.UInt16)
IL_013C: ldloc.s 8 (System.UInt16)
IL_013E: brfalse => Label8
IL_0143: ldloc.1
IL_0144: ldloc.s 8 (System.UInt16)
IL_0146: callvirt System.Void NetManager::UpdateSegmentColors(System.UInt16
segment)
IL_014B: Label8
IL_014B: ldloc.s 7 (System.Int32)
IL_014D: ldc.i4.1
IL_014E: add
IL_014F: stloc.s 7 (System.Int32)
IL_0151: Label7
IL_0151: ldloc.s 7 (System.Int32)
IL_0153: ldc.i4.8
IL_0154: blt => Label9
IL_0159: // end original
IL_0159: Label6
IL_0159: Label10
IL_0159: ret
DONE

### Patch: static System.Void PropInstance::RenderInstance(CameraInfo cameraInfo,


PropInfo info, InstanceID id, UnityEngine.Vector3 position, System.Single scale,
System.Single angle, UnityEngine.Color color, UnityEngine.Vector4 objectIndex,
System.Boolean active, UnityEngine.Texture heightMap, UnityEngine.Vector4
heightMapping, UnityEngine.Vector4 surfaceMapping, UnityEngine.Texture
waterHeightMap, UnityEngine.Vector4 waterHeightMapping, UnityEngine.Vector4
waterSurfaceMapping)
### Replacement: static System.Void
PropInstance::PropInstance.RenderInstance_Patch0(CameraInfo cameraInfo, PropInfo
info, InstanceID id, UnityEngine.Vector3 position, System.Single scale,
System.Single angle, UnityEngine.Color color, UnityEngine.Vector4 objectIndex,
System.Boolean active, UnityEngine.Texture heightMap, UnityEngine.Vector4
heightMapping, UnityEngine.Vector4 surfaceMapping, UnityEngine.Texture
waterHeightMap, UnityEngine.Vector4 waterHeightMapping, UnityEngine.Vector4
waterSurfaceMapping)
IL_0000: Local var 0: UnityEngine.Matrix4x4
IL_0000: Local var 1: System.Single
IL_0000: Local var 2: System.Int32
IL_0000: Local var 3: UnityEngine.Vector3
IL_0000: Local var 4: UnityEngine.Vector3
IL_0000: Local var 5: EffectInfo/SpawnArea
IL_0000: Local var 6: System.Single
IL_0000: Local var 7: LightSystem
IL_0000: Local var 8: ColossalFramework.Math.Randomizer
IL_0000: Local var 9: UnityEngine.Vector4
IL_0000: Local var 10: System.Single
IL_0000: Local var 11: System.Single
IL_0000: Local var 12: System.Single
IL_0000: Local var 13: UnityEngine.Matrix4x4
IL_0000: Local var 14: PropManager
IL_0000: Local var 15: UnityEngine.MaterialPropertyBlock
IL_0000: Local var 16: System.Int32
IL_0000: // start original
IL_0000: ldarg.1
IL_0001: ldfld System.Boolean PrefabInfo::m_prefabInitialized
IL_0006: brfalse => Label0
IL_000B: ldarg.1
IL_000C: ldfld System.Boolean PropInfo::m_hasEffects
IL_0011: brfalse => Label1
IL_0016: ldarg.s 8
IL_0018: brtrue => Label2
IL_001D: ldarg.1
IL_001E: ldfld System.Boolean PropInfo::m_alwaysActive
IL_0023: brfalse => Label3
IL_0028: Label2
IL_0028: ldloca.s 0 (UnityEngine.Matrix4x4)
IL_002A: initobj UnityEngine.Matrix4x4
IL_0030: ldloca.s 0 (UnityEngine.Matrix4x4)
IL_0032: ldarg.3
IL_0033: ldarg.s 5
IL_0035: ldc.r4 57.29578
IL_003A: mul
IL_003B: call static UnityEngine.Vector3 UnityEngine.Vector3::get_down()
IL_0040: call static UnityEngine.Quaternion
UnityEngine.Quaternion::AngleAxis(System.Single angle, UnityEngine.Vector3 axis)
IL_0045: ldarg.s 4
IL_0047: ldarg.s 4
IL_0049: ldarg.s 4
IL_004B: newobj System.Void UnityEngine.Vector3::.ctor(System.Single x,
System.Single y, System.Single z)
IL_0050: call System.Void UnityEngine.Matrix4x4::SetTRS(UnityEngine.Vector3
pos, UnityEngine.Quaternion q, UnityEngine.Vector3 s)
IL_0055: call static SimulationManager
ColossalFramework.Singleton`1<SimulationManager>::get_instance()
IL_005A: ldfld System.Single SimulationManager::m_simulationTimeDelta
IL_005F: stloc.1
IL_0060: ldc.i4.0
IL_0061: stloc.2
IL_0062: br => Label4
IL_0067: Label5
IL_0067: ldloca.s 0 (UnityEngine.Matrix4x4)
IL_0069: ldarg.1
IL_006A: ldfld Effect[] PropInfo::m_effects
IL_006F: ldloc.2
IL_0070: ldelema PropInfo+Effect
IL_0075: ldfld UnityEngine.Vector3 Effect::m_position
IL_007A: call UnityEngine.Vector3
UnityEngine.Matrix4x4::MultiplyPoint(UnityEngine.Vector3 v)
IL_007F: stloc.3
IL_0080: ldloca.s 0 (UnityEngine.Matrix4x4)
IL_0082: ldarg.1
IL_0083: ldfld Effect[] PropInfo::m_effects
IL_0088: ldloc.2
IL_0089: ldelema PropInfo+Effect
IL_008E: ldfld UnityEngine.Vector3 Effect::m_direction
IL_0093: call UnityEngine.Vector3
UnityEngine.Matrix4x4::MultiplyVector(UnityEngine.Vector3 v)
IL_0098: stloc.s 4 (UnityEngine.Vector3)
IL_009A: ldloca.s 5 (EffectInfo+SpawnArea)
IL_009C: ldloc.3
IL_009D: ldloc.s 4 (UnityEngine.Vector3)
IL_009F: ldc.r4 0
IL_00A4: call System.Void SpawnArea::.ctor(UnityEngine.Vector3 position,
UnityEngine.Vector3 direction, System.Single radius)
IL_00A9: ldarg.1
IL_00AA: ldfld Effect[] PropInfo::m_effects
IL_00AF: ldloc.2
IL_00B0: ldelema PropInfo+Effect
IL_00B5: ldfld EffectInfo Effect::m_effect
IL_00BA: ldarg.2
IL_00BB: ldloc.s 5 (EffectInfo+SpawnArea)
IL_00BD: call static UnityEngine.Vector3 UnityEngine.Vector3::get_zero()
IL_00C2: ldc.r4 0
IL_00C7: ldc.r4 1
IL_00CC: ldc.r4 -1
IL_00D1: ldloc.1
IL_00D2: ldarg.0
IL_00D3: callvirt virtual System.Void EffectInfo::RenderEffect(InstanceID id,
SpawnArea area, UnityEngine.Vector3 velocity, System.Single acceleration,
System.Single magnitude, System.Single timeOffset, System.Single timeDelta,
CameraInfo cameraInfo)
IL_00D8: ldloc.2
IL_00D9: ldc.i4.1
IL_00DA: add
IL_00DB: stloc.2
IL_00DC: Label4
IL_00DC: ldloc.2
IL_00DD: ldarg.1
IL_00DE: ldfld Effect[] PropInfo::m_effects
IL_00E3: ldlen
IL_00E4: conv.i4
IL_00E5: blt => Label5
IL_00EA: Label1
IL_00EA: Label3
IL_00EA: ldarg.1
IL_00EB: ldfld System.Boolean PropInfo::m_hasRenderer
IL_00F0: brfalse => Label6
IL_00F5: ldarg.0
IL_00F6: ldfld System.Int32 CameraInfo::m_layerMask
IL_00FB: ldc.i4.1
IL_00FC: ldarg.1
IL_00FD: ldfld System.Int32 PrefabInfo::m_prefabDataLayer
IL_0102: ldc.i4.s 31
IL_0104: and
IL_0105: shl
IL_0106: and
IL_0107: brfalse => Label7
IL_010C: call static InfoManager
ColossalFramework.Singleton`1<InfoManager>::get_instance()
IL_0111: callvirt InfoMode InfoManager::get_CurrentMode()
IL_0116: brtrue => Label8
IL_011B: ldarg 2
IL_011F: call static System.Boolean
ElectricRoads.Overrides.ElectricRoadsOverrides::CheckElectrityNetForLight(InstanceI
D id)
IL_0124: brfalse => Label24
IL_0129: ldc.r4 0
IL_012E: stloc.s 6 (System.Single)
IL_0130: ldarg.s 8
IL_0132: brtrue => Label9
IL_0137: ldarg.1
IL_0138: ldfld System.Boolean PropInfo::m_alwaysActive
IL_013D: brtrue => Label10
IL_0142: Label24
IL_0142: ldarga.s 7
IL_0144: ldc.r4 0
IL_0149: stfld System.Single UnityEngine.Vector4::z
IL_014E: br => Label11
IL_0153: Label9
IL_0153: Label10
IL_0153: ldarg.1
IL_0154: ldflda UnityEngine.Vector2 PropInfo::m_illuminationOffRange
IL_0159: ldfld System.Single UnityEngine.Vector2::x
IL_015E: ldc.r4 1000
IL_0163: blt => Label12
IL_0168: ldarg.1
IL_0169: ldfld BlinkType PropInfo::m_illuminationBlinkType
IL_016E: brfalse => Label13
IL_0173: Label12
IL_0173: call static RenderManager
ColossalFramework.Singleton`1<RenderManager>::get_instance()
IL_0178: callvirt LightSystem RenderManager::get_lightSystem()
IL_017D: stloc.s 7 (LightSystem)
IL_017F: ldloca.s 8 (ColossalFramework.Math.Randomizer)
IL_0181: ldarga.s 2
IL_0183: call System.UInt32 InstanceID::get_Index()
IL_0188: call System.Void
ColossalFramework.Math.Randomizer::.ctor(System.UInt32 _seed)
IL_018D: ldarg.1
IL_018E: ldflda UnityEngine.Vector2 PropInfo::m_illuminationOffRange
IL_0193: ldfld System.Single UnityEngine.Vector2::x
IL_0198: ldloca.s 8 (ColossalFramework.Math.Randomizer)
IL_019A: ldc.i4 100000
IL_019F: call System.Int32
ColossalFramework.Math.Randomizer::Int32(System.UInt32 range)
IL_01A4: conv.r4
IL_01A5: ldc.r4 1E-05
IL_01AA: mul
IL_01AB: ldarg.1
IL_01AC: ldflda UnityEngine.Vector2 PropInfo::m_illuminationOffRange
IL_01B1: ldfld System.Single UnityEngine.Vector2::y
IL_01B6: ldarg.1
IL_01B7: ldflda UnityEngine.Vector2 PropInfo::m_illuminationOffRange
IL_01BC: ldfld System.Single UnityEngine.Vector2::x
IL_01C1: sub
IL_01C2: mul
IL_01C3: add
IL_01C4: stloc.s 6 (System.Single)
IL_01C6: ldarga.s 7
IL_01C8: ldloc.s 6 (System.Single)
IL_01CA: ldc.r4 0.01
IL_01CF: add
IL_01D0: ldloc.s 6 (System.Single)
IL_01D2: ldc.r4 0.01
IL_01D7: sub
IL_01D8: ldloc.s 7 (LightSystem)
IL_01DA: callvirt System.Single LightSystem::get_DayLightIntensity()
IL_01DF: call static System.Single MathUtils::SmoothStep(System.Single edge0,
System.Single edge1, System.Single x)
IL_01E4: stfld System.Single UnityEngine.Vector4::z
IL_01E9: ldarg.1
IL_01EA: ldfld BlinkType PropInfo::m_illuminationBlinkType
IL_01EF: brfalse => Label14
IL_01F4: ldarg.1
IL_01F5: ldfld BlinkType PropInfo::m_illuminationBlinkType
IL_01FA: call static UnityEngine.Vector4
LightEffect::GetBlinkVector(BlinkType type)
IL_01FF: stloc.s 9 (UnityEngine.Vector4)
IL_0201: ldloc.s 6 (System.Single)
IL_0203: ldc.r4 3.71
IL_0208: mul
IL_0209: call static SimulationManager
ColossalFramework.Singleton`1<SimulationManager>::get_instance()
IL_020E: ldfld System.Single SimulationManager::m_simulationTimer
IL_0213: ldloca.s 9 (UnityEngine.Vector4)
IL_0215: ldfld System.Single UnityEngine.Vector4::w
IL_021A: div
IL_021B: add
IL_021C: stloc.s 10 (System.Single)
IL_021E: ldloc.s 10 (System.Single)
IL_0220: ldloc.s 10 (System.Single)
IL_0222: call static System.Single UnityEngine.Mathf::Floor(System.Single f)
IL_0227: sub
IL_0228: ldloca.s 9 (UnityEngine.Vector4)
IL_022A: ldfld System.Single UnityEngine.Vector4::w
IL_022F: mul
IL_0230: stloc.s 10 (System.Single)
IL_0232: ldloca.s 9 (UnityEngine.Vector4)
IL_0234: ldfld System.Single UnityEngine.Vector4::x
IL_0239: ldloca.s 9 (UnityEngine.Vector4)
IL_023B: ldfld System.Single UnityEngine.Vector4::y
IL_0240: ldloc.s 10 (System.Single)
IL_0242: call static System.Single MathUtils::SmoothStep(System.Single edge0,
System.Single edge1, System.Single x)
IL_0247: stloc.s 11 (System.Single)
IL_0249: ldloca.s 9 (UnityEngine.Vector4)
IL_024B: ldfld System.Single UnityEngine.Vector4::w
IL_0250: ldloca.s 9 (UnityEngine.Vector4)
IL_0252: ldfld System.Single UnityEngine.Vector4::z
IL_0257: ldloc.s 10 (System.Single)
IL_0259: call static System.Single MathUtils::SmoothStep(System.Single edge0,
System.Single edge1, System.Single x)
IL_025E: stloc.s 12 (System.Single)
IL_0260: ldarga.s 7
IL_0262: dup
IL_0263: ldfld System.Single UnityEngine.Vector4::z
IL_0268: ldc.r4 1
IL_026D: ldloc.s 11 (System.Single)
IL_026F: ldloc.s 12 (System.Single)
IL_0271: mul
IL_0272: sub
IL_0273: mul
IL_0274: stfld System.Single UnityEngine.Vector4::z
IL_0279: Label14
IL_0279: br => Label15
IL_027E: Label13
IL_027E: ldarga.s 7
IL_0280: ldc.r4 1
IL_0285: stfld System.Single UnityEngine.Vector4::z
IL_028A: Label8
IL_028A: Label11
IL_028A: Label15
IL_028A: ldarg.0
IL_028B: brfalse => Label16
IL_0290: ldarg.0
IL_0291: ldarg.3
IL_0292: ldarg.1
IL_0293: ldfld System.Single PropInfo::m_lodRenderDistance
IL_0298: callvirt System.Boolean
CameraInfo::CheckRenderDistance(UnityEngine.Vector3 point, System.Single
maxDistance)
IL_029D: brfalse => Label17
IL_02A2: Label16
IL_02A2: ldloca.s 13 (UnityEngine.Matrix4x4)
IL_02A4: initobj UnityEngine.Matrix4x4
IL_02AA: ldloca.s 13 (UnityEngine.Matrix4x4)
IL_02AC: ldarg.3
IL_02AD: ldarg.s 5
IL_02AF: ldc.r4 57.29578
IL_02B4: mul
IL_02B5: call static UnityEngine.Vector3 UnityEngine.Vector3::get_down()
IL_02BA: call static UnityEngine.Quaternion
UnityEngine.Quaternion::AngleAxis(System.Single angle, UnityEngine.Vector3 axis)
IL_02BF: ldarg.s 4
IL_02C1: ldarg.s 4
IL_02C3: ldarg.s 4
IL_02C5: newobj System.Void UnityEngine.Vector3::.ctor(System.Single x,
System.Single y, System.Single z)
IL_02CA: call System.Void UnityEngine.Matrix4x4::SetTRS(UnityEngine.Vector3
pos, UnityEngine.Quaternion q, UnityEngine.Vector3 s)
IL_02CF: call static PropManager
ColossalFramework.Singleton`1<PropManager>::get_instance()
IL_02D4: stloc.s 14 (PropManager)
IL_02D6: ldloc.s 14 (PropManager)
IL_02D8: ldfld UnityEngine.MaterialPropertyBlock PropManager::m_materialBlock
IL_02DD: stloc.s 15 (UnityEngine.MaterialPropertyBlock)
IL_02DF: ldloc.s 15 (UnityEngine.MaterialPropertyBlock)
IL_02E1: callvirt System.Void UnityEngine.MaterialPropertyBlock::Clear()
IL_02E6: ldloc.s 15 (UnityEngine.MaterialPropertyBlock)
IL_02E8: ldloc.s 14 (PropManager)
IL_02EA: ldfld System.Int32 PropManager::ID_Color
IL_02EF: ldarg.s 6
IL_02F1: callvirt System.Void
UnityEngine.MaterialPropertyBlock::SetColor(System.Int32 nameID, UnityEngine.Color
value)
IL_02F6: ldloc.s 15 (UnityEngine.MaterialPropertyBlock)
IL_02F8: ldloc.s 14 (PropManager)
IL_02FA: ldfld System.Int32 PropManager::ID_HeightMap
IL_02FF: ldarg.s 9
IL_0301: callvirt System.Void
UnityEngine.MaterialPropertyBlock::SetTexture(System.Int32 nameID,
UnityEngine.Texture value)
IL_0306: ldloc.s 15 (UnityEngine.MaterialPropertyBlock)
IL_0308: ldloc.s 14 (PropManager)
IL_030A: ldfld System.Int32 PropManager::ID_HeightMapping
IL_030F: ldarg.s 10
IL_0311: callvirt System.Void
UnityEngine.MaterialPropertyBlock::SetVector(System.Int32 nameID,
UnityEngine.Vector4 value)
IL_0316: ldloc.s 15 (UnityEngine.MaterialPropertyBlock)
IL_0318: ldloc.s 14 (PropManager)
IL_031A: ldfld System.Int32 PropManager::ID_SurfaceMapping
IL_031F: ldarg.s 11
IL_0321: callvirt System.Void
UnityEngine.MaterialPropertyBlock::SetVector(System.Int32 nameID,
UnityEngine.Vector4 value)
IL_0326: ldloc.s 15 (UnityEngine.MaterialPropertyBlock)
IL_0328: ldloc.s 14 (PropManager)
IL_032A: ldfld System.Int32 PropManager::ID_ObjectIndex
IL_032F: ldarg.s 7
IL_0331: callvirt System.Void
UnityEngine.MaterialPropertyBlock::SetVector(System.Int32 nameID,
UnityEngine.Vector4 value)
IL_0336: ldloc.s 15 (UnityEngine.MaterialPropertyBlock)
IL_0338: ldloc.s 14 (PropManager)
IL_033A: ldfld System.Int32 PropManager::ID_WaterHeightMap
IL_033F: ldarg.s 12
IL_0341: callvirt System.Void
UnityEngine.MaterialPropertyBlock::SetTexture(System.Int32 nameID,
UnityEngine.Texture value)
IL_0346: ldloc.s 15 (UnityEngine.MaterialPropertyBlock)
IL_0348: ldloc.s 14 (PropManager)
IL_034A: ldfld System.Int32 PropManager::ID_WaterHeightMapping
IL_034F: ldarg.s 13
IL_0351: callvirt System.Void
UnityEngine.MaterialPropertyBlock::SetVector(System.Int32 nameID,
UnityEngine.Vector4 value)
IL_0356: ldloc.s 15 (UnityEngine.MaterialPropertyBlock)
IL_0358: ldloc.s 14 (PropManager)
IL_035A: ldfld System.Int32 PropManager::ID_WaterSurfaceMapping
IL_035F: ldarg.s 14
IL_0361: callvirt System.Void
UnityEngine.MaterialPropertyBlock::SetVector(System.Int32 nameID,
UnityEngine.Vector4 value)
IL_0366: ldarg.1
IL_0367: ldfld UnityEngine.Vector4[] PropInfo::m_rollLocation
IL_036C: brfalse => Label18
IL_0371: ldarg.1
IL_0372: ldfld UnityEngine.Material PropInfo::m_material
IL_0377: ldloc.s 14 (PropManager)
IL_0379: ldfld System.Int32 PropManager::ID_RollLocation
IL_037E: ldarg.1
IL_037F: ldfld UnityEngine.Vector4[] PropInfo::m_rollLocation
IL_0384: callvirt System.Void UnityEngine.Material::SetVectorArray(System.Int32
nameID, UnityEngine.Vector4[] values)
IL_0389: ldarg.1
IL_038A: ldfld UnityEngine.Material PropInfo::m_material
IL_038F: ldloc.s 14 (PropManager)
IL_0391: ldfld System.Int32 PropManager::ID_RollParams
IL_0396: ldarg.1
IL_0397: ldfld UnityEngine.Vector4[] PropInfo::m_rollParams
IL_039C: callvirt System.Void UnityEngine.Material::SetVectorArray(System.Int32
nameID, UnityEngine.Vector4[] values)
IL_03A1: Label18
IL_03A1: ldloc.s 14 (PropManager)
IL_03A3: ldflda DrawCallData SimulationManagerBase`2<PropManager,
PropProperties>::m_drawCallData
IL_03A8: dup
IL_03A9: ldfld System.Int32 DrawCallData::m_defaultCalls
IL_03AE: ldc.i4.1
IL_03AF: add
IL_03B0: stfld System.Int32 DrawCallData::m_defaultCalls
IL_03B5: ldarg.1
IL_03B6: ldfld UnityEngine.Mesh PropInfo::m_mesh
IL_03BB: ldloc.s 13 (UnityEngine.Matrix4x4)
IL_03BD: ldarg.1
IL_03BE: ldfld UnityEngine.Material PropInfo::m_material
IL_03C3: ldarg.1
IL_03C4: ldfld System.Int32 PrefabInfo::m_prefabDataLayer
IL_03C9: ldnull
IL_03CA: ldc.i4.0
IL_03CB: ldloc.s 15 (UnityEngine.MaterialPropertyBlock)
IL_03CD: call static System.Void
UnityEngine.Graphics::DrawMesh(UnityEngine.Mesh mesh, UnityEngine.Matrix4x4 matrix,
UnityEngine.Material material, System.Int32 layer, UnityEngine.Camera camera,
System.Int32 submeshIndex, UnityEngine.MaterialPropertyBlock properties)
IL_03D2: br => Label19
IL_03D7: Label17
IL_03D7: ldarg.s 9
IL_03D9: ldarg.1
IL_03DA: ldfld UnityEngine.Texture PropInfo::m_lodHeightMap
IL_03DF: call static System.Boolean
UnityEngine.Object::op_Inequality(UnityEngine.Object x, UnityEngine.Object y)
IL_03E4: brtrue => Label20
IL_03E9: ldarg.s 12
IL_03EB: ldarg.1
IL_03EC: ldfld UnityEngine.Texture PropInfo::m_lodWaterHeightMap
IL_03F1: call static System.Boolean
UnityEngine.Object::op_Inequality(UnityEngine.Object x, UnityEngine.Object y)
IL_03F6: brfalse => Label21
IL_03FB: Label20
IL_03FB: ldarg.1
IL_03FC: ldfld System.Int32 PropInfo::m_lodCount
IL_0401: brfalse => Label22
IL_0406: ldarg.0
IL_0407: ldarg.1
IL_0408: call static System.Void PropInstance::RenderLod(CameraInfo
cameraInfo, PropInfo info)
IL_040D: Label22
IL_040D: ldarg.1
IL_040E: ldarg.s 9
IL_0410: stfld UnityEngine.Texture PropInfo::m_lodHeightMap
IL_0415: ldarg.1
IL_0416: ldarg.s 10
IL_0418: stfld UnityEngine.Vector4 PropInfo::m_lodHeightMapping
IL_041D: ldarg.1
IL_041E: ldarg.s 11
IL_0420: stfld UnityEngine.Vector4 PropInfo::m_lodSurfaceMapping
IL_0425: ldarg.1
IL_0426: ldarg.s 12
IL_0428: stfld UnityEngine.Texture PropInfo::m_lodWaterHeightMap
IL_042D: ldarg.1
IL_042E: ldarg.s 13
IL_0430: stfld UnityEngine.Vector4 PropInfo::m_lodWaterHeightMapping
IL_0435: ldarg.1
IL_0436: ldarg.s 14
IL_0438: stfld UnityEngine.Vector4 PropInfo::m_lodWaterSurfaceMapping
IL_043D: Label21
IL_043D: ldarga.s 7
IL_043F: ldarg.s 4
IL_0441: stfld System.Single UnityEngine.Vector4::w
IL_0446: ldarg.1
IL_0447: ldfld UnityEngine.Vector4[] PropInfo::m_lodLocations
IL_044C: ldarg.1
IL_044D: ldfld System.Int32 PropInfo::m_lodCount
IL_0452: ldelema UnityEngine.Vector4
IL_0457: ldarga.s 3
IL_0459: ldfld System.Single UnityEngine.Vector3::x
IL_045E: ldarga.s 3
IL_0460: ldfld System.Single UnityEngine.Vector3::y
IL_0465: ldarga.s 3
IL_0467: ldfld System.Single UnityEngine.Vector3::z
IL_046C: ldarg.s 5
IL_046E: newobj System.Void UnityEngine.Vector4::.ctor(System.Single x,
System.Single y, System.Single z, System.Single w)
IL_0473: stobj UnityEngine.Vector4
IL_0478: ldarg.1
IL_0479: ldfld UnityEngine.Vector4[] PropInfo::m_lodObjectIndices
IL_047E: ldarg.1
IL_047F: ldfld System.Int32 PropInfo::m_lodCount
IL_0484: ldelema UnityEngine.Vector4
IL_0489: ldarg.s 7
IL_048B: stobj UnityEngine.Vector4
IL_0490: ldarg.1
IL_0491: ldfld UnityEngine.Vector4[] PropInfo::m_lodColors
IL_0496: ldarg.1
IL_0497: ldfld System.Int32 PropInfo::m_lodCount
IL_049C: ldelema UnityEngine.Vector4
IL_04A1: ldarga.s 6
IL_04A3: call UnityEngine.Color UnityEngine.Color::get_linear()
IL_04A8: call static UnityEngine.Vector4
UnityEngine.Color::op_Implicit(UnityEngine.Color c)
IL_04AD: stobj UnityEngine.Vector4
IL_04B2: ldarg.1
IL_04B3: ldarg.1
IL_04B4: ldfld UnityEngine.Vector3 PropInfo::m_lodMin
IL_04B9: ldarg.3
IL_04BA: call static UnityEngine.Vector3
UnityEngine.Vector3::Min(UnityEngine.Vector3 lhs, UnityEngine.Vector3 rhs)
IL_04BF: stfld UnityEngine.Vector3 PropInfo::m_lodMin
IL_04C4: ldarg.1
IL_04C5: ldarg.1
IL_04C6: ldfld UnityEngine.Vector3 PropInfo::m_lodMax
IL_04CB: ldarg.3
IL_04CC: call static UnityEngine.Vector3
UnityEngine.Vector3::Max(UnityEngine.Vector3 lhs, UnityEngine.Vector3 rhs)
IL_04D1: stfld UnityEngine.Vector3 PropInfo::m_lodMax
IL_04D6: ldarg.1
IL_04D7: dup
IL_04D8: ldfld System.Int32 PropInfo::m_lodCount
IL_04DD: ldc.i4.1
IL_04DE: add
IL_04DF: dup
IL_04E0: stloc.s 16 (System.Int32)
IL_04E2: stfld System.Int32 PropInfo::m_lodCount
IL_04E7: ldloc.s 16 (System.Int32)
IL_04E9: ldarg.1
IL_04EA: ldfld UnityEngine.Vector4[] PropInfo::m_lodLocations
IL_04EF: ldlen
IL_04F0: conv.i4
IL_04F1: bne.un => Label23
IL_04F6: ldarg.0
IL_04F7: ldarg.1
IL_04F8: call static System.Void PropInstance::RenderLod(CameraInfo
cameraInfo, PropInfo info)
IL_04FD: // end original
IL_04FD: Label0
IL_04FD: Label6
IL_04FD: Label7
IL_04FD: Label19
IL_04FD: Label23
IL_04FD: ret
DONE

### Patch: static System.Void PropInstance::RenderInstance(CameraInfo cameraInfo,


PropInfo info, InstanceID id, UnityEngine.Vector3 position, System.Single scale,
System.Single angle, UnityEngine.Color color, UnityEngine.Vector4 objectIndex,
System.Boolean active)
### Replacement: static System.Void
PropInstance::PropInstance.RenderInstance_Patch0(CameraInfo cameraInfo, PropInfo
info, InstanceID id, UnityEngine.Vector3 position, System.Single scale,
System.Single angle, UnityEngine.Color color, UnityEngine.Vector4 objectIndex,
System.Boolean active)
IL_0000: Local var 0: UnityEngine.Matrix4x4
IL_0000: Local var 1: System.Single
IL_0000: Local var 2: System.Int32
IL_0000: Local var 3: UnityEngine.Vector3
IL_0000: Local var 4: UnityEngine.Vector3
IL_0000: Local var 5: EffectInfo/SpawnArea
IL_0000: Local var 6: System.Single
IL_0000: Local var 7: LightSystem
IL_0000: Local var 8: ColossalFramework.Math.Randomizer
IL_0000: Local var 9: UnityEngine.Vector4
IL_0000: Local var 10: System.Single
IL_0000: Local var 11: System.Single
IL_0000: Local var 12: System.Single
IL_0000: Local var 13: UnityEngine.Matrix4x4
IL_0000: Local var 14: PropManager
IL_0000: Local var 15: UnityEngine.MaterialPropertyBlock
IL_0000: Local var 16: UnityEngine.Matrix4x4
IL_0000: Local var 17: PropManager
IL_0000: Local var 18: UnityEngine.MaterialPropertyBlock
IL_0000: Local var 19: System.Int32
IL_0000: // start original
IL_0000: ldarg.1
IL_0001: ldfld System.Boolean PrefabInfo::m_prefabInitialized
IL_0006: brfalse => Label0
IL_000B: ldarg.1
IL_000C: ldfld System.Boolean PropInfo::m_hasEffects
IL_0011: brfalse => Label1
IL_0016: ldarg.s 8
IL_0018: brtrue => Label2
IL_001D: ldarg.1
IL_001E: ldfld System.Boolean PropInfo::m_alwaysActive
IL_0023: brfalse => Label3
IL_0028: Label2
IL_0028: ldloca.s 0 (UnityEngine.Matrix4x4)
IL_002A: initobj UnityEngine.Matrix4x4
IL_0030: ldloca.s 0 (UnityEngine.Matrix4x4)
IL_0032: ldarg.3
IL_0033: ldarg.s 5
IL_0035: ldc.r4 57.29578
IL_003A: mul
IL_003B: call static UnityEngine.Vector3 UnityEngine.Vector3::get_down()
IL_0040: call static UnityEngine.Quaternion
UnityEngine.Quaternion::AngleAxis(System.Single angle, UnityEngine.Vector3 axis)
IL_0045: ldarg.s 4
IL_0047: ldarg.s 4
IL_0049: ldarg.s 4
IL_004B: newobj System.Void UnityEngine.Vector3::.ctor(System.Single x,
System.Single y, System.Single z)
IL_0050: call System.Void UnityEngine.Matrix4x4::SetTRS(UnityEngine.Vector3
pos, UnityEngine.Quaternion q, UnityEngine.Vector3 s)
IL_0055: call static SimulationManager
ColossalFramework.Singleton`1<SimulationManager>::get_instance()
IL_005A: ldfld System.Single SimulationManager::m_simulationTimeDelta
IL_005F: stloc.1
IL_0060: ldc.i4.0
IL_0061: stloc.2
IL_0062: br => Label4
IL_0067: Label5
IL_0067: ldloca.s 0 (UnityEngine.Matrix4x4)
IL_0069: ldarg.1
IL_006A: ldfld Effect[] PropInfo::m_effects
IL_006F: ldloc.2
IL_0070: ldelema PropInfo+Effect
IL_0075: ldfld UnityEngine.Vector3 Effect::m_position
IL_007A: call UnityEngine.Vector3
UnityEngine.Matrix4x4::MultiplyPoint(UnityEngine.Vector3 v)
IL_007F: stloc.3
IL_0080: ldloca.s 0 (UnityEngine.Matrix4x4)
IL_0082: ldarg.1
IL_0083: ldfld Effect[] PropInfo::m_effects
IL_0088: ldloc.2
IL_0089: ldelema PropInfo+Effect
IL_008E: ldfld UnityEngine.Vector3 Effect::m_direction
IL_0093: call UnityEngine.Vector3
UnityEngine.Matrix4x4::MultiplyVector(UnityEngine.Vector3 v)
IL_0098: stloc.s 4 (UnityEngine.Vector3)
IL_009A: ldloca.s 5 (EffectInfo+SpawnArea)
IL_009C: ldloc.3
IL_009D: ldloc.s 4 (UnityEngine.Vector3)
IL_009F: ldc.r4 0
IL_00A4: call System.Void SpawnArea::.ctor(UnityEngine.Vector3 position,
UnityEngine.Vector3 direction, System.Single radius)
IL_00A9: ldarg.1
IL_00AA: ldfld Effect[] PropInfo::m_effects
IL_00AF: ldloc.2
IL_00B0: ldelema PropInfo+Effect
IL_00B5: ldfld EffectInfo Effect::m_effect
IL_00BA: ldarg.2
IL_00BB: ldloc.s 5 (EffectInfo+SpawnArea)
IL_00BD: call static UnityEngine.Vector3 UnityEngine.Vector3::get_zero()
IL_00C2: ldc.r4 0
IL_00C7: ldc.r4 1
IL_00CC: ldc.r4 -1
IL_00D1: ldloc.1
IL_00D2: ldarg.0
IL_00D3: callvirt virtual System.Void EffectInfo::RenderEffect(InstanceID id,
SpawnArea area, UnityEngine.Vector3 velocity, System.Single acceleration,
System.Single magnitude, System.Single timeOffset, System.Single timeDelta,
CameraInfo cameraInfo)
IL_00D8: ldloc.2
IL_00D9: ldc.i4.1
IL_00DA: add
IL_00DB: stloc.2
IL_00DC: Label4
IL_00DC: ldloc.2
IL_00DD: ldarg.1
IL_00DE: ldfld Effect[] PropInfo::m_effects
IL_00E3: ldlen
IL_00E4: conv.i4
IL_00E5: blt => Label5
IL_00EA: Label1
IL_00EA: Label3
IL_00EA: ldarg.1
IL_00EB: ldfld System.Boolean PropInfo::m_hasRenderer
IL_00F0: brfalse => Label6
IL_00F5: ldarg.0
IL_00F6: ldfld System.Int32 CameraInfo::m_layerMask
IL_00FB: ldc.i4.1
IL_00FC: ldarg.1
IL_00FD: ldfld System.Int32 PrefabInfo::m_prefabDataLayer
IL_0102: ldc.i4.s 31
IL_0104: and
IL_0105: shl
IL_0106: and
IL_0107: brfalse => Label7
IL_010C: call static InfoManager
ColossalFramework.Singleton`1<InfoManager>::get_instance()
IL_0111: callvirt InfoMode InfoManager::get_CurrentMode()
IL_0116: brtrue => Label8
IL_011B: ldarg 2
IL_011F: call static System.Boolean
ElectricRoads.Overrides.ElectricRoadsOverrides::CheckElectrityNetForLight(InstanceI
D id)
IL_0124: brfalse => Label24
IL_0129: ldc.r4 0
IL_012E: stloc.s 6 (System.Single)
IL_0130: ldarg.s 8
IL_0132: brtrue => Label9
IL_0137: ldarg.1
IL_0138: ldfld System.Boolean PropInfo::m_alwaysActive
IL_013D: brtrue => Label10
IL_0142: Label24
IL_0142: ldarga.s 7
IL_0144: ldc.r4 0
IL_0149: stfld System.Single UnityEngine.Vector4::z
IL_014E: br => Label11
IL_0153: Label9
IL_0153: Label10
IL_0153: ldarg.1
IL_0154: ldflda UnityEngine.Vector2 PropInfo::m_illuminationOffRange
IL_0159: ldfld System.Single UnityEngine.Vector2::x
IL_015E: ldc.r4 1000
IL_0163: blt => Label12
IL_0168: ldarg.1
IL_0169: ldfld BlinkType PropInfo::m_illuminationBlinkType
IL_016E: brfalse => Label13
IL_0173: Label12
IL_0173: call static RenderManager
ColossalFramework.Singleton`1<RenderManager>::get_instance()
IL_0178: callvirt LightSystem RenderManager::get_lightSystem()
IL_017D: stloc.s 7 (LightSystem)
IL_017F: ldloca.s 8 (ColossalFramework.Math.Randomizer)
IL_0181: ldarga.s 2
IL_0183: call System.UInt32 InstanceID::get_Index()
IL_0188: call System.Void
ColossalFramework.Math.Randomizer::.ctor(System.UInt32 _seed)
IL_018D: ldarg.1
IL_018E: ldflda UnityEngine.Vector2 PropInfo::m_illuminationOffRange
IL_0193: ldfld System.Single UnityEngine.Vector2::x
IL_0198: ldloca.s 8 (ColossalFramework.Math.Randomizer)
IL_019A: ldc.i4 100000
IL_019F: call System.Int32
ColossalFramework.Math.Randomizer::Int32(System.UInt32 range)
IL_01A4: conv.r4
IL_01A5: ldc.r4 1E-05
IL_01AA: mul
IL_01AB: ldarg.1
IL_01AC: ldflda UnityEngine.Vector2 PropInfo::m_illuminationOffRange
IL_01B1: ldfld System.Single UnityEngine.Vector2::y
IL_01B6: ldarg.1
IL_01B7: ldflda UnityEngine.Vector2 PropInfo::m_illuminationOffRange
IL_01BC: ldfld System.Single UnityEngine.Vector2::x
IL_01C1: sub
IL_01C2: mul
IL_01C3: add
IL_01C4: stloc.s 6 (System.Single)
IL_01C6: ldarga.s 7
IL_01C8: ldloc.s 6 (System.Single)
IL_01CA: ldc.r4 0.01
IL_01CF: add
IL_01D0: ldloc.s 6 (System.Single)
IL_01D2: ldc.r4 0.01
IL_01D7: sub
IL_01D8: ldloc.s 7 (LightSystem)
IL_01DA: callvirt System.Single LightSystem::get_DayLightIntensity()
IL_01DF: call static System.Single MathUtils::SmoothStep(System.Single edge0,
System.Single edge1, System.Single x)
IL_01E4: stfld System.Single UnityEngine.Vector4::z
IL_01E9: ldarg.1
IL_01EA: ldfld BlinkType PropInfo::m_illuminationBlinkType
IL_01EF: brfalse => Label14
IL_01F4: ldarg.1
IL_01F5: ldfld BlinkType PropInfo::m_illuminationBlinkType
IL_01FA: call static UnityEngine.Vector4
LightEffect::GetBlinkVector(BlinkType type)
IL_01FF: stloc.s 9 (UnityEngine.Vector4)
IL_0201: ldloc.s 6 (System.Single)
IL_0203: ldc.r4 3.71
IL_0208: mul
IL_0209: call static SimulationManager
ColossalFramework.Singleton`1<SimulationManager>::get_instance()
IL_020E: ldfld System.Single SimulationManager::m_simulationTimer
IL_0213: ldloca.s 9 (UnityEngine.Vector4)
IL_0215: ldfld System.Single UnityEngine.Vector4::w
IL_021A: div
IL_021B: add
IL_021C: stloc.s 10 (System.Single)
IL_021E: ldloc.s 10 (System.Single)
IL_0220: ldloc.s 10 (System.Single)
IL_0222: call static System.Single UnityEngine.Mathf::Floor(System.Single f)
IL_0227: sub
IL_0228: ldloca.s 9 (UnityEngine.Vector4)
IL_022A: ldfld System.Single UnityEngine.Vector4::w
IL_022F: mul
IL_0230: stloc.s 10 (System.Single)
IL_0232: ldloca.s 9 (UnityEngine.Vector4)
IL_0234: ldfld System.Single UnityEngine.Vector4::x
IL_0239: ldloca.s 9 (UnityEngine.Vector4)
IL_023B: ldfld System.Single UnityEngine.Vector4::y
IL_0240: ldloc.s 10 (System.Single)
IL_0242: call static System.Single MathUtils::SmoothStep(System.Single edge0,
System.Single edge1, System.Single x)
IL_0247: stloc.s 11 (System.Single)
IL_0249: ldloca.s 9 (UnityEngine.Vector4)
IL_024B: ldfld System.Single UnityEngine.Vector4::w
IL_0250: ldloca.s 9 (UnityEngine.Vector4)
IL_0252: ldfld System.Single UnityEngine.Vector4::z
IL_0257: ldloc.s 10 (System.Single)
IL_0259: call static System.Single MathUtils::SmoothStep(System.Single edge0,
System.Single edge1, System.Single x)
IL_025E: stloc.s 12 (System.Single)
IL_0260: ldarga.s 7
IL_0262: dup
IL_0263: ldfld System.Single UnityEngine.Vector4::z
IL_0268: ldc.r4 1
IL_026D: ldloc.s 11 (System.Single)
IL_026F: ldloc.s 12 (System.Single)
IL_0271: mul
IL_0272: sub
IL_0273: mul
IL_0274: stfld System.Single UnityEngine.Vector4::z
IL_0279: Label14
IL_0279: br => Label15
IL_027E: Label13
IL_027E: ldarga.s 7
IL_0280: ldc.r4 1
IL_0285: stfld System.Single UnityEngine.Vector4::z
IL_028A: Label8
IL_028A: Label11
IL_028A: Label15
IL_028A: ldarg.0
IL_028B: brfalse => Label16
IL_0290: ldarg.0
IL_0291: ldarg.3
IL_0292: ldarg.1
IL_0293: ldfld System.Single PropInfo::m_lodRenderDistance
IL_0298: callvirt System.Boolean
CameraInfo::CheckRenderDistance(UnityEngine.Vector3 point, System.Single
maxDistance)
IL_029D: brfalse => Label17
IL_02A2: Label16
IL_02A2: ldloca.s 13 (UnityEngine.Matrix4x4)
IL_02A4: initobj UnityEngine.Matrix4x4
IL_02AA: ldloca.s 13 (UnityEngine.Matrix4x4)
IL_02AC: ldarg.3
IL_02AD: ldarg.s 5
IL_02AF: ldc.r4 57.29578
IL_02B4: mul
IL_02B5: call static UnityEngine.Vector3 UnityEngine.Vector3::get_down()
IL_02BA: call static UnityEngine.Quaternion
UnityEngine.Quaternion::AngleAxis(System.Single angle, UnityEngine.Vector3 axis)
IL_02BF: ldarg.s 4
IL_02C1: ldarg.s 4
IL_02C3: ldarg.s 4
IL_02C5: newobj System.Void UnityEngine.Vector3::.ctor(System.Single x,
System.Single y, System.Single z)
IL_02CA: call System.Void UnityEngine.Matrix4x4::SetTRS(UnityEngine.Vector3
pos, UnityEngine.Quaternion q, UnityEngine.Vector3 s)
IL_02CF: call static PropManager
ColossalFramework.Singleton`1<PropManager>::get_instance()
IL_02D4: stloc.s 14 (PropManager)
IL_02D6: ldloc.s 14 (PropManager)
IL_02D8: ldfld UnityEngine.MaterialPropertyBlock PropManager::m_materialBlock
IL_02DD: stloc.s 15 (UnityEngine.MaterialPropertyBlock)
IL_02DF: ldloc.s 15 (UnityEngine.MaterialPropertyBlock)
IL_02E1: callvirt System.Void UnityEngine.MaterialPropertyBlock::Clear()
IL_02E6: ldloc.s 15 (UnityEngine.MaterialPropertyBlock)
IL_02E8: ldloc.s 14 (PropManager)
IL_02EA: ldfld System.Int32 PropManager::ID_Color
IL_02EF: ldarg.s 6
IL_02F1: callvirt System.Void
UnityEngine.MaterialPropertyBlock::SetColor(System.Int32 nameID, UnityEngine.Color
value)
IL_02F6: ldloc.s 15 (UnityEngine.MaterialPropertyBlock)
IL_02F8: ldloc.s 14 (PropManager)
IL_02FA: ldfld System.Int32 PropManager::ID_ObjectIndex
IL_02FF: ldarg.s 7
IL_0301: callvirt System.Void
UnityEngine.MaterialPropertyBlock::SetVector(System.Int32 nameID,
UnityEngine.Vector4 value)
IL_0306: ldarg.1
IL_0307: ldfld UnityEngine.Vector4[] PropInfo::m_rollLocation
IL_030C: brfalse => Label18
IL_0311: ldarg.1
IL_0312: ldfld UnityEngine.Material PropInfo::m_material
IL_0317: ldloc.s 14 (PropManager)
IL_0319: ldfld System.Int32 PropManager::ID_RollLocation
IL_031E: ldarg.1
IL_031F: ldfld UnityEngine.Vector4[] PropInfo::m_rollLocation
IL_0324: callvirt System.Void UnityEngine.Material::SetVectorArray(System.Int32
nameID, UnityEngine.Vector4[] values)
IL_0329: ldarg.1
IL_032A: ldfld UnityEngine.Material PropInfo::m_material
IL_032F: ldloc.s 14 (PropManager)
IL_0331: ldfld System.Int32 PropManager::ID_RollParams
IL_0336: ldarg.1
IL_0337: ldfld UnityEngine.Vector4[] PropInfo::m_rollParams
IL_033C: callvirt System.Void UnityEngine.Material::SetVectorArray(System.Int32
nameID, UnityEngine.Vector4[] values)
IL_0341: Label18
IL_0341: ldloc.s 14 (PropManager)
IL_0343: ldflda DrawCallData SimulationManagerBase`2<PropManager,
PropProperties>::m_drawCallData
IL_0348: dup
IL_0349: ldfld System.Int32 DrawCallData::m_defaultCalls
IL_034E: ldc.i4.1
IL_034F: add
IL_0350: stfld System.Int32 DrawCallData::m_defaultCalls
IL_0355: ldarg.1
IL_0356: ldfld UnityEngine.Mesh PropInfo::m_mesh
IL_035B: ldloc.s 13 (UnityEngine.Matrix4x4)
IL_035D: ldarg.1
IL_035E: ldfld UnityEngine.Material PropInfo::m_material
IL_0363: ldarg.1
IL_0364: ldfld System.Int32 PrefabInfo::m_prefabDataLayer
IL_0369: ldnull
IL_036A: ldc.i4.0
IL_036B: ldloc.s 15 (UnityEngine.MaterialPropertyBlock)
IL_036D: call static System.Void
UnityEngine.Graphics::DrawMesh(UnityEngine.Mesh mesh, UnityEngine.Matrix4x4 matrix,
UnityEngine.Material material, System.Int32 layer, UnityEngine.Camera camera,
System.Int32 submeshIndex, UnityEngine.MaterialPropertyBlock properties)
IL_0372: br => Label19
IL_0377: Label17
IL_0377: ldarg.1
IL_0378: ldfld UnityEngine.Material PropInfo::m_lodMaterialCombined
IL_037D: ldnull
IL_037E: call static System.Boolean
UnityEngine.Object::op_Equality(UnityEngine.Object x, UnityEngine.Object y)
IL_0383: brfalse => Label20
IL_0388: ldloca.s 16 (UnityEngine.Matrix4x4)
IL_038A: initobj UnityEngine.Matrix4x4
IL_0390: ldloca.s 16 (UnityEngine.Matrix4x4)
IL_0392: ldarg.3
IL_0393: ldarg.s 5
IL_0395: ldc.r4 57.29578
IL_039A: mul
IL_039B: call static UnityEngine.Vector3 UnityEngine.Vector3::get_down()
IL_03A0: call static UnityEngine.Quaternion
UnityEngine.Quaternion::AngleAxis(System.Single angle, UnityEngine.Vector3 axis)
IL_03A5: ldarg.s 4
IL_03A7: ldarg.s 4
IL_03A9: ldarg.s 4
IL_03AB: newobj System.Void UnityEngine.Vector3::.ctor(System.Single x,
System.Single y, System.Single z)
IL_03B0: call System.Void UnityEngine.Matrix4x4::SetTRS(UnityEngine.Vector3
pos, UnityEngine.Quaternion q, UnityEngine.Vector3 s)
IL_03B5: call static PropManager
ColossalFramework.Singleton`1<PropManager>::get_instance()
IL_03BA: stloc.s 17 (PropManager)
IL_03BC: ldloc.s 17 (PropManager)
IL_03BE: ldfld UnityEngine.MaterialPropertyBlock PropManager::m_materialBlock
IL_03C3: stloc.s 18 (UnityEngine.MaterialPropertyBlock)
IL_03C5: ldloc.s 18 (UnityEngine.MaterialPropertyBlock)
IL_03C7: callvirt System.Void UnityEngine.MaterialPropertyBlock::Clear()
IL_03CC: ldloc.s 18 (UnityEngine.MaterialPropertyBlock)
IL_03CE: ldloc.s 17 (PropManager)
IL_03D0: ldfld System.Int32 PropManager::ID_Color
IL_03D5: ldarg.s 6
IL_03D7: callvirt System.Void
UnityEngine.MaterialPropertyBlock::SetColor(System.Int32 nameID, UnityEngine.Color
value)
IL_03DC: ldloc.s 18 (UnityEngine.MaterialPropertyBlock)
IL_03DE: ldloc.s 17 (PropManager)
IL_03E0: ldfld System.Int32 PropManager::ID_ObjectIndex
IL_03E5: ldarg.s 7
IL_03E7: callvirt System.Void
UnityEngine.MaterialPropertyBlock::SetVector(System.Int32 nameID,
UnityEngine.Vector4 value)
IL_03EC: ldarg.1
IL_03ED: ldfld UnityEngine.Vector4[] PropInfo::m_rollLocation
IL_03F2: brfalse => Label21
IL_03F7: ldarg.1
IL_03F8: ldfld UnityEngine.Material PropInfo::m_material
IL_03FD: ldloc.s 17 (PropManager)
IL_03FF: ldfld System.Int32 PropManager::ID_RollLocation
IL_0404: ldarg.1
IL_0405: ldfld UnityEngine.Vector4[] PropInfo::m_rollLocation
IL_040A: callvirt System.Void UnityEngine.Material::SetVectorArray(System.Int32
nameID, UnityEngine.Vector4[] values)
IL_040F: ldarg.1
IL_0410: ldfld UnityEngine.Material PropInfo::m_material
IL_0415: ldloc.s 17 (PropManager)
IL_0417: ldfld System.Int32 PropManager::ID_RollParams
IL_041C: ldarg.1
IL_041D: ldfld UnityEngine.Vector4[] PropInfo::m_rollParams
IL_0422: callvirt System.Void UnityEngine.Material::SetVectorArray(System.Int32
nameID, UnityEngine.Vector4[] values)
IL_0427: Label21
IL_0427: ldloc.s 17 (PropManager)
IL_0429: ldflda DrawCallData SimulationManagerBase`2<PropManager,
PropProperties>::m_drawCallData
IL_042E: dup
IL_042F: ldfld System.Int32 DrawCallData::m_defaultCalls
IL_0434: ldc.i4.1
IL_0435: add
IL_0436: stfld System.Int32 DrawCallData::m_defaultCalls
IL_043B: ldarg.1
IL_043C: ldfld UnityEngine.Mesh PropInfo::m_lodMesh
IL_0441: ldloc.s 16 (UnityEngine.Matrix4x4)
IL_0443: ldarg.1
IL_0444: ldfld UnityEngine.Material PropInfo::m_lodMaterial
IL_0449: ldarg.1
IL_044A: ldfld System.Int32 PrefabInfo::m_prefabDataLayer
IL_044F: ldnull
IL_0450: ldc.i4.0
IL_0451: ldloc.s 18 (UnityEngine.MaterialPropertyBlock)
IL_0453: call static System.Void
UnityEngine.Graphics::DrawMesh(UnityEngine.Mesh mesh, UnityEngine.Matrix4x4 matrix,
UnityEngine.Material material, System.Int32 layer, UnityEngine.Camera camera,
System.Int32 submeshIndex, UnityEngine.MaterialPropertyBlock properties)
IL_0458: br => Label22
IL_045D: Label20
IL_045D: ldarga.s 7
IL_045F: ldarg.s 4
IL_0461: stfld System.Single UnityEngine.Vector4::w
IL_0466: ldarg.1
IL_0467: ldfld UnityEngine.Vector4[] PropInfo::m_lodLocations
IL_046C: ldarg.1
IL_046D: ldfld System.Int32 PropInfo::m_lodCount
IL_0472: ldelema UnityEngine.Vector4
IL_0477: ldarga.s 3
IL_0479: ldfld System.Single UnityEngine.Vector3::x
IL_047E: ldarga.s 3
IL_0480: ldfld System.Single UnityEngine.Vector3::y
IL_0485: ldarga.s 3
IL_0487: ldfld System.Single UnityEngine.Vector3::z
IL_048C: ldarg.s 5
IL_048E: newobj System.Void UnityEngine.Vector4::.ctor(System.Single x,
System.Single y, System.Single z, System.Single w)
IL_0493: stobj UnityEngine.Vector4
IL_0498: ldarg.1
IL_0499: ldfld UnityEngine.Vector4[] PropInfo::m_lodObjectIndices
IL_049E: ldarg.1
IL_049F: ldfld System.Int32 PropInfo::m_lodCount
IL_04A4: ldelema UnityEngine.Vector4
IL_04A9: ldarg.s 7
IL_04AB: stobj UnityEngine.Vector4
IL_04B0: ldarg.1
IL_04B1: ldfld UnityEngine.Vector4[] PropInfo::m_lodColors
IL_04B6: ldarg.1
IL_04B7: ldfld System.Int32 PropInfo::m_lodCount
IL_04BC: ldelema UnityEngine.Vector4
IL_04C1: ldarga.s 6
IL_04C3: call UnityEngine.Color UnityEngine.Color::get_linear()
IL_04C8: call static UnityEngine.Vector4
UnityEngine.Color::op_Implicit(UnityEngine.Color c)
IL_04CD: stobj UnityEngine.Vector4
IL_04D2: ldarg.1
IL_04D3: ldarg.1
IL_04D4: ldfld UnityEngine.Vector3 PropInfo::m_lodMin
IL_04D9: ldarg.3
IL_04DA: call static UnityEngine.Vector3
UnityEngine.Vector3::Min(UnityEngine.Vector3 lhs, UnityEngine.Vector3 rhs)
IL_04DF: stfld UnityEngine.Vector3 PropInfo::m_lodMin
IL_04E4: ldarg.1
IL_04E5: ldarg.1
IL_04E6: ldfld UnityEngine.Vector3 PropInfo::m_lodMax
IL_04EB: ldarg.3
IL_04EC: call static UnityEngine.Vector3
UnityEngine.Vector3::Max(UnityEngine.Vector3 lhs, UnityEngine.Vector3 rhs)
IL_04F1: stfld UnityEngine.Vector3 PropInfo::m_lodMax
IL_04F6: ldarg.1
IL_04F7: dup
IL_04F8: ldfld System.Int32 PropInfo::m_lodCount
IL_04FD: ldc.i4.1
IL_04FE: add
IL_04FF: dup
IL_0500: stloc.s 19 (System.Int32)
IL_0502: stfld System.Int32 PropInfo::m_lodCount
IL_0507: ldloc.s 19 (System.Int32)
IL_0509: ldarg.1
IL_050A: ldfld UnityEngine.Vector4[] PropInfo::m_lodLocations
IL_050F: ldlen
IL_0510: conv.i4
IL_0511: bne.un => Label23
IL_0516: ldarg.0
IL_0517: ldarg.1
IL_0518: call static System.Void PropInstance::RenderLod(CameraInfo
cameraInfo, PropInfo info)
IL_051D: // end original
IL_051D: Label0
IL_051D: Label6
IL_051D: Label7
IL_051D: Label19
IL_051D: Label22
IL_051D: Label23
IL_051D: ret
DONE

### Patch: virtual System.Void LightEffect::PopulateGroupData(System.Int32 layer,


InstanceID id, UnityEngine.Vector3 pos, UnityEngine.Vector3 dir, 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
LightEffect::LightEffect.PopulateGroupData_Patch1(LightEffect this, System.Int32
layer, InstanceID id, UnityEngine.Vector3 pos, UnityEngine.Vector3 dir,
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.Boolean
IL_0000: Local var 1: UnityEngine.Vector3
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.Quaternion
IL_0000: Local var 7: UnityEngine.Vector4
IL_0000: Local var 8: UnityEngine.Vector2
IL_0000: Local var 9: ColossalFramework.Math.Randomizer
IL_0000: Local var 10: UnityEngine.Vector2
IL_0000: Local var 11: UnityEngine.Vector2
IL_0000: Local var 12: UnityEngine.Vector2
IL_0000: Local var 13: System.UInt16
IL_0000: Local var 14: UnityEngine.Vector3
IL_0000: Local var 15: UnityEngine.Color
IL_0000: Local var 16: UnityEngine.Color
IL_0000: Local var 17: System.Single
IL_0000: Local var 18: System.Single
IL_0000: Local var 19: System.Int32
IL_0000: Local var 20: System.Boolean
IL_0000: ldc.i4 0
IL_0005: stloc 20 (System.Boolean)
IL_0009: ldc.i4.1
IL_000A: stloc 20 (System.Boolean)
IL_000E: ldloc 20 (System.Boolean)
IL_0012: brfalse => Label1
IL_0017: ldarg 2
IL_001B: call static System.Boolean
ElectricRoads.Overrides.ElectricRoadsOverrides::CheckElectrityNetForLight(InstanceI
D id)
IL_0020: stloc 20 (System.Boolean)
IL_0024: Label1
IL_0024: nop
IL_0025: ldloc 20 (System.Boolean)
IL_0029: brfalse => Label0
IL_002E: // start original
IL_002E: ldarg.1
IL_002F: ldarg.0
IL_0030: ldfld System.Int32 LightEffect::m_groupLayer
IL_0035: beq => Label2
IL_003A: ldarg.1
IL_003B: ldarg.0
IL_003C: ldfld System.Int32 LightEffect::m_groupLayerFloating
IL_0041: bne.un => Label3
IL_0046: Label2
IL_0046: ldarg.1
IL_0047: ldarg.0
IL_0048: ldfld System.Int32 LightEffect::m_groupLayerFloating
IL_004D: ceq
IL_004F: stloc.0
IL_0050: ldloca.s 1 (UnityEngine.Vector3)
IL_0052: ldarg.0
IL_0053: ldfld System.Single LightEffect::m_lightRange
IL_0058: ldarg.0
IL_0059: ldfld System.Single LightEffect::m_lightRange
IL_005E: ldarg.0
IL_005F: ldfld System.Single LightEffect::m_lightRange
IL_0064: call System.Void UnityEngine.Vector3::.ctor(System.Single x,
System.Single y, System.Single z)
IL_0069: ldarg.3
IL_006A: ldloc.1
IL_006B: call static UnityEngine.Vector3
UnityEngine.Vector3::op_Subtraction(UnityEngine.Vector3 a, UnityEngine.Vector3 b)
IL_0070: stloc.2
IL_0071: ldarg.3
IL_0072: ldloc.1
IL_0073: call static UnityEngine.Vector3
UnityEngine.Vector3::op_Addition(UnityEngine.Vector3 a, UnityEngine.Vector3 b)
IL_0078: stloc.3
IL_0079: ldarg.s 9
IL_007B: ldarg.s 9
IL_007D: ldobj UnityEngine.Vector3
IL_0082: ldloc.2
IL_0083: call static UnityEngine.Vector3
UnityEngine.Vector3::Min(UnityEngine.Vector3 lhs, UnityEngine.Vector3 rhs)
IL_0088: stobj UnityEngine.Vector3
IL_008D: ldarg.s 10
IL_008F: ldarg.s 10
IL_0091: ldobj UnityEngine.Vector3
IL_0096: ldloc.3
IL_0097: call static UnityEngine.Vector3
UnityEngine.Vector3::Max(UnityEngine.Vector3 lhs, UnityEngine.Vector3 rhs)
IL_009C: stobj UnityEngine.Vector3
IL_00A1: ldarg.3
IL_00A2: ldarg.s 7
IL_00A4: call static UnityEngine.Vector3
UnityEngine.Vector3::op_Subtraction(UnityEngine.Vector3 a, UnityEngine.Vector3 b)
IL_00A9: stloc.s 4 (UnityEngine.Vector3)
IL_00AB: ldarg.s 11
IL_00AD: ldarg.s 11
IL_00AF: ldind.r4
IL_00B0: ldc.r4 30000
IL_00B5: call static System.Single UnityEngine.Mathf::Max(System.Single a,
System.Single b)
IL_00BA: stind.r4
IL_00BB: ldarg.0
IL_00BC: ldfld UnityEngine.LightType LightEffect::m_lightType
IL_00C1: brtrue => Label4
IL_00C6: ldarg.s 4
IL_00C8: call static UnityEngine.Quaternion
UnityEngine.Quaternion::LookRotation(UnityEngine.Vector3 forward)
IL_00CD: stloc.s 6 (UnityEngine.Quaternion)
IL_00CF: ldloc.s 6 (UnityEngine.Quaternion)
IL_00D1: ldarg.0
IL_00D2: ldfld UnityEngine.Quaternion LightEffect::m_lightRotation
IL_00D7: call static UnityEngine.Vector3 UnityEngine.Vector3::get_forward()
IL_00DC: call static UnityEngine.Vector3
UnityEngine.Quaternion::op_Multiply(UnityEngine.Quaternion rotation,
UnityEngine.Vector3 point)
IL_00E1: call static UnityEngine.Vector3
UnityEngine.Quaternion::op_Multiply(UnityEngine.Quaternion rotation,
UnityEngine.Vector3 point)
IL_00E6: stloc.s 5 (UnityEngine.Vector3)
IL_00E8: br => Label5
IL_00ED: Label4
IL_00ED: call static UnityEngine.Vector3 UnityEngine.Vector3::get_forward()
IL_00F2: stloc.s 5 (UnityEngine.Vector3)
IL_00F4: Label5
IL_00F4: ldloca.s 7 (UnityEngine.Vector4)
IL_00F6: ldloca.s 5 (UnityEngine.Vector3)
IL_00F8: ldfld System.Single UnityEngine.Vector3::x
IL_00FD: ldloca.s 5 (UnityEngine.Vector3)
IL_00FF: ldfld System.Single UnityEngine.Vector3::y
IL_0104: ldloca.s 5 (UnityEngine.Vector3)
IL_0106: ldfld System.Single UnityEngine.Vector3::z
IL_010B: ldc.r4 100000
IL_0110: call System.Void UnityEngine.Vector4::.ctor(System.Single x,
System.Single y, System.Single z, System.Single w)
IL_0115: ldarg.0
IL_0116: ldfld UnityEngine.LightType LightEffect::m_lightType
IL_011B: brtrue => Label6
IL_0120: ldloca.s 7 (UnityEngine.Vector4)
IL_0122: ldc.r4 0.01745329
IL_0127: ldarg.0
IL_0128: ldfld System.Single LightEffect::m_lightSpotAngle
IL_012D: mul
IL_012E: ldc.r4 0.5
IL_0133: mul
IL_0134: call static System.Single UnityEngine.Mathf::Cos(System.Single f)
IL_0139: neg
IL_013A: stfld System.Single UnityEngine.Vector4::w
IL_013F: Label6
IL_013F: ldloca.s 8 (UnityEngine.Vector2)
IL_0141: ldc.r4 1
IL_0146: ldarg.0
IL_0147: ldfld System.Single LightEffect::m_lightRange
IL_014C: ldarg.0
IL_014D: ldfld System.Single LightEffect::m_lightRange
IL_0152: mul
IL_0153: div
IL_0154: ldarg.0
IL_0155: ldfld System.Single LightEffect::m_lightIntensity
IL_015A: call System.Void UnityEngine.Vector2::.ctor(System.Single x,
System.Single y)
IL_015F: ldloca.s 9 (ColossalFramework.Math.Randomizer)
IL_0161: ldarga.s 2
IL_0163: call System.UInt32 InstanceID::get_Index()
IL_0168: call System.Void
ColossalFramework.Math.Randomizer::.ctor(System.UInt32 _seed)
IL_016D: ldloca.s 10 (UnityEngine.Vector2)
IL_016F: ldarg.0
IL_0170: ldflda UnityEngine.Vector2 LightEffect::m_offRange
IL_0175: ldfld System.Single UnityEngine.Vector2::x
IL_017A: ldloca.s 9 (ColossalFramework.Math.Randomizer)
IL_017C: ldc.i4 100000
IL_0181: call System.Int32
ColossalFramework.Math.Randomizer::Int32(System.UInt32 range)
IL_0186: conv.r4
IL_0187: ldc.r4 1E-05
IL_018C: mul
IL_018D: ldarg.0
IL_018E: ldflda UnityEngine.Vector2 LightEffect::m_offRange
IL_0193: ldfld System.Single UnityEngine.Vector2::y
IL_0198: ldarg.0
IL_0199: ldflda UnityEngine.Vector2 LightEffect::m_offRange
IL_019E: ldfld System.Single UnityEngine.Vector2::x
IL_01A3: sub
IL_01A4: mul
IL_01A5: add
IL_01A6: stfld System.Single UnityEngine.Vector2::x
IL_01AB: ldloca.s 10 (UnityEngine.Vector2)
IL_01AD: ldarg.0
IL_01AE: ldfld BlinkType LightEffect::m_blinkType
IL_01B3: conv.r4
IL_01B4: stfld System.Single UnityEngine.Vector2::y
IL_01B9: ldarg.2
IL_01BA: call static System.UInt16 EffectInfo::GetBuilding(InstanceID id)
IL_01BF: stloc.s 13 (System.UInt16)
IL_01C1: ldloc.s 13 (System.UInt16)
IL_01C3: brfalse => Label7
IL_01C8: ldloc.s 13 (System.UInt16)
IL_01CA: call static UnityEngine.Vector4
RenderManager::GetColorLocation(System.UInt32 instanceHolder)
IL_01CF: call static UnityEngine.Vector2
UnityEngine.Vector4::op_Implicit(UnityEngine.Vector4 v)
IL_01D4: stloc.s 11 (UnityEngine.Vector2)
IL_01D6: ldloc.0
IL_01D7: brfalse => Label8
IL_01DC: call static BuildingManager
ColossalFramework.Singleton`1<BuildingManager>::get_instance()
IL_01E1: ldfld Array16`1<Building> BuildingManager::m_buildings
IL_01E6: ldfld Building[] Array16`1<Building>::m_buffer
IL_01EB: ldloc.s 13 (System.UInt16)
IL_01ED: ldelema Building
IL_01F2: call UnityEngine.Vector3 Building::CalculateMeshPosition()
IL_01F7: stloc.s 14 (UnityEngine.Vector3)
IL_01F9: ldloc.s 14 (UnityEngine.Vector3)
IL_01FB: call static UnityEngine.Vector2
ColossalFramework.Math.VectorUtils::XZ(UnityEngine.Vector3 v)
IL_0200: stloc.s 12 (UnityEngine.Vector2)
IL_0202: ldarga.s 3
IL_0204: dup
IL_0205: ldfld System.Single UnityEngine.Vector3::y
IL_020A: ldloca.s 14 (UnityEngine.Vector3)
IL_020C: ldfld System.Single UnityEngine.Vector3::y
IL_0211: sub
IL_0212: stfld System.Single UnityEngine.Vector3::y
IL_0217: ldloca.s 4 (UnityEngine.Vector3)
IL_0219: dup
IL_021A: ldfld System.Single UnityEngine.Vector3::y
IL_021F: ldloca.s 14 (UnityEngine.Vector3)
IL_0221: ldfld System.Single UnityEngine.Vector3::y
IL_0226: sub
IL_0227: stfld System.Single UnityEngine.Vector3::y
IL_022C: br => Label9
IL_0231: Label8
IL_0231: call static UnityEngine.Vector2 UnityEngine.Vector2::get_zero()
IL_0236: stloc.s 12 (UnityEngine.Vector2)
IL_0238: Label9
IL_0238: br => Label10
IL_023D: Label7
IL_023D: ldsfld UnityEngine.Vector4 RenderManager::DefaultColorLocation
IL_0242: call static UnityEngine.Vector2
UnityEngine.Vector4::op_Implicit(UnityEngine.Vector4 v)
IL_0247: stloc.s 11 (UnityEngine.Vector2)
IL_0249: call static UnityEngine.Vector2 UnityEngine.Vector2::get_zero()
IL_024E: stloc.s 12 (UnityEngine.Vector2)
IL_0250: Label10
IL_0250: ldarg.0
IL_0251: ldfld UnityEngine.Color LightEffect::m_lightColor
IL_0256: stloc.s 15 (UnityEngine.Color)
IL_0258: ldarg.0
IL_0259: ldfld UnityEngine.Color[] LightEffect::m_variationColors
IL_025E: brfalse => Label11
IL_0263: ldarg.0
IL_0264: ldfld UnityEngine.Color[] LightEffect::m_variationColors
IL_0269: ldlen
IL_026A: conv.i4
IL_026B: brfalse => Label12
IL_0270: ldarg.0
IL_0271: ldfld UnityEngine.Color[] LightEffect::m_variationColors
IL_0276: ldloca.s 9 (ColossalFramework.Math.Randomizer)
IL_0278: ldarg.0
IL_0279: ldfld UnityEngine.Color[] LightEffect::m_variationColors
IL_027E: ldlen
IL_027F: conv.i4
IL_0280: call System.Int32
ColossalFramework.Math.Randomizer::Int32(System.UInt32 range)
IL_0285: ldelema UnityEngine.Color
IL_028A: ldobj UnityEngine.Color
IL_028F: stloc.s 16 (UnityEngine.Color)
IL_0291: ldloc.s 15 (UnityEngine.Color)
IL_0293: ldloc.s 16 (UnityEngine.Color)
IL_0295: ldloca.s 9 (ColossalFramework.Math.Randomizer)
IL_0297: ldc.i4 1000
IL_029C: call System.Int32
ColossalFramework.Math.Randomizer::Int32(System.UInt32 range)
IL_02A1: conv.r4
IL_02A2: ldc.r4 0.001
IL_02A7: mul
IL_02A8: call static UnityEngine.Color
UnityEngine.Color::Lerp(UnityEngine.Color a, UnityEngine.Color b, System.Single t)
IL_02AD: stloc.s 15 (UnityEngine.Color)
IL_02AF: Label11
IL_02AF: Label12
IL_02AF: ldloca.s 15 (UnityEngine.Color)
IL_02B1: call UnityEngine.Color UnityEngine.Color::get_linear()
IL_02B6: stloc.s 15 (UnityEngine.Color)
IL_02B8: ldloca.s 15 (UnityEngine.Color)
IL_02BA: ldarg.0
IL_02BB: ldfld UnityEngine.LightType LightEffect::m_lightType
IL_02C0: brtrue => Label13
IL_02C5: ldarg.0
IL_02C6: ldfld System.Single LightEffect::m_spotLeaking
IL_02CB: br => Label14
IL_02D0: Label13
IL_02D0: ldc.r4 0
IL_02D5: Label14
IL_02D5: stfld System.Single UnityEngine.Color::a
IL_02DA: ldarg.0
IL_02DB: ldfld System.Single LightEffect::m_lightRange
IL_02E0: ldc.r4 0.5235988
IL_02E5: call static System.Single UnityEngine.Mathf::Cos(System.Single f)
IL_02EA: div
IL_02EB: stloc.s 17 (System.Single)
IL_02ED: ldloc.s 17 (System.Single)
IL_02EF: ldc.r4 0.5
IL_02F4: mul
IL_02F5: stloc.s 18 (System.Single)
IL_02F7: ldarg.s 8
IL_02F9: ldfld UnityEngine.Vector3[] MeshData::m_vertices
IL_02FE: ldarg.s 5
IL_0300: ldind.i4
IL_0301: ldelema UnityEngine.Vector3
IL_0306: ldloca.s 4 (UnityEngine.Vector3)
IL_0308: ldfld System.Single UnityEngine.Vector3::x
IL_030D: ldloc.s 18 (System.Single)
IL_030F: sub
IL_0310: ldloca.s 4 (UnityEngine.Vector3)
IL_0312: ldfld System.Single UnityEngine.Vector3::y
IL_0317: ldarg.0
IL_0318: ldfld System.Single LightEffect::m_lightRange
IL_031D: add
IL_031E: ldloca.s 4 (UnityEngine.Vector3)
IL_0320: ldfld System.Single UnityEngine.Vector3::z
IL_0325: ldarg.0
IL_0326: ldfld System.Single LightEffect::m_lightRange
IL_032B: add
IL_032C: newobj System.Void UnityEngine.Vector3::.ctor(System.Single x,
System.Single y, System.Single z)
IL_0331: stobj UnityEngine.Vector3
IL_0336: ldarg.s 8
IL_0338: ldfld UnityEngine.Vector3[] MeshData::m_normals
IL_033D: ldarg.s 5
IL_033F: ldind.i4
IL_0340: ldelema UnityEngine.Vector3
IL_0345: ldarg.3
IL_0346: stobj UnityEngine.Vector3
IL_034B: ldarg.s 8
IL_034D: ldfld UnityEngine.Vector4[] MeshData::m_tangents
IL_0352: ldarg.s 5
IL_0354: ldind.i4
IL_0355: ldelema UnityEngine.Vector4
IL_035A: ldloc.s 7 (UnityEngine.Vector4)
IL_035C: stobj UnityEngine.Vector4
IL_0361: ldarg.s 8
IL_0363: ldfld UnityEngine.Vector2[] MeshData::m_uvs
IL_0368: ldarg.s 5
IL_036A: ldind.i4
IL_036B: ldelema UnityEngine.Vector2
IL_0370: ldloc.s 8 (UnityEngine.Vector2)
IL_0372: stobj UnityEngine.Vector2
IL_0377: ldarg.s 8
IL_0379: ldfld UnityEngine.Vector2[] MeshData::m_uvs2
IL_037E: ldarg.s 5
IL_0380: ldind.i4
IL_0381: ldelema UnityEngine.Vector2
IL_0386: ldloc.s 10 (UnityEngine.Vector2)
IL_0388: stobj UnityEngine.Vector2
IL_038D: ldarg.s 8
IL_038F: ldfld UnityEngine.Vector2[] MeshData::m_uvs3
IL_0394: ldarg.s 5
IL_0396: ldind.i4
IL_0397: ldelema UnityEngine.Vector2
IL_039C: ldloc.s 11 (UnityEngine.Vector2)
IL_039E: stobj UnityEngine.Vector2
IL_03A3: ldloc.0
IL_03A4: brfalse => Label15
IL_03A9: ldarg.s 8
IL_03AB: ldfld UnityEngine.Vector2[] MeshData::m_uvs4
IL_03B0: ldarg.s 5
IL_03B2: ldind.i4
IL_03B3: ldelema UnityEngine.Vector2
IL_03B8: ldloc.s 12 (UnityEngine.Vector2)
IL_03BA: stobj UnityEngine.Vector2
IL_03BF: Label15
IL_03BF: ldarg.s 8
IL_03C1: ldfld UnityEngine.Color32[] MeshData::m_colors
IL_03C6: ldarg.s 5
IL_03C8: ldind.i4
IL_03C9: ldelema UnityEngine.Color32
IL_03CE: ldloc.s 15 (UnityEngine.Color)
IL_03D0: call static UnityEngine.Color32
UnityEngine.Color32::op_Implicit(UnityEngine.Color c)
IL_03D5: stobj UnityEngine.Color32
IL_03DA: ldarg.s 5
IL_03DC: ldarg.s 5
IL_03DE: ldind.i4
IL_03DF: ldc.i4.1
IL_03E0: add
IL_03E1: stind.i4
IL_03E2: ldarg.s 8
IL_03E4: ldfld UnityEngine.Vector3[] MeshData::m_vertices
IL_03E9: ldarg.s 5
IL_03EB: ldind.i4
IL_03EC: ldelema UnityEngine.Vector3
IL_03F1: ldloca.s 4 (UnityEngine.Vector3)
IL_03F3: ldfld System.Single UnityEngine.Vector3::x
IL_03F8: ldloc.s 18 (System.Single)
IL_03FA: add
IL_03FB: ldloca.s 4 (UnityEngine.Vector3)
IL_03FD: ldfld System.Single UnityEngine.Vector3::y
IL_0402: ldarg.0
IL_0403: ldfld System.Single LightEffect::m_lightRange
IL_0408: add
IL_0409: ldloca.s 4 (UnityEngine.Vector3)
IL_040B: ldfld System.Single UnityEngine.Vector3::z
IL_0410: ldarg.0
IL_0411: ldfld System.Single LightEffect::m_lightRange
IL_0416: add
IL_0417: newobj System.Void UnityEngine.Vector3::.ctor(System.Single x,
System.Single y, System.Single z)
IL_041C: stobj UnityEngine.Vector3
IL_0421: ldarg.s 8
IL_0423: ldfld UnityEngine.Vector3[] MeshData::m_normals
IL_0428: ldarg.s 5
IL_042A: ldind.i4
IL_042B: ldelema UnityEngine.Vector3
IL_0430: ldarg.3
IL_0431: stobj UnityEngine.Vector3
IL_0436: ldarg.s 8
IL_0438: ldfld UnityEngine.Vector4[] MeshData::m_tangents
IL_043D: ldarg.s 5
IL_043F: ldind.i4
IL_0440: ldelema UnityEngine.Vector4
IL_0445: ldloc.s 7 (UnityEngine.Vector4)
IL_0447: stobj UnityEngine.Vector4
IL_044C: ldarg.s 8
IL_044E: ldfld UnityEngine.Vector2[] MeshData::m_uvs
IL_0453: ldarg.s 5
IL_0455: ldind.i4
IL_0456: ldelema UnityEngine.Vector2
IL_045B: ldloc.s 8 (UnityEngine.Vector2)
IL_045D: stobj UnityEngine.Vector2
IL_0462: ldarg.s 8
IL_0464: ldfld UnityEngine.Vector2[] MeshData::m_uvs2
IL_0469: ldarg.s 5
IL_046B: ldind.i4
IL_046C: ldelema UnityEngine.Vector2
IL_0471: ldloc.s 10 (UnityEngine.Vector2)
IL_0473: stobj UnityEngine.Vector2
IL_0478: ldarg.s 8
IL_047A: ldfld UnityEngine.Vector2[] MeshData::m_uvs3
IL_047F: ldarg.s 5
IL_0481: ldind.i4
IL_0482: ldelema UnityEngine.Vector2
IL_0487: ldloc.s 11 (UnityEngine.Vector2)
IL_0489: stobj UnityEngine.Vector2
IL_048E: ldloc.0
IL_048F: brfalse => Label16
IL_0494: ldarg.s 8
IL_0496: ldfld UnityEngine.Vector2[] MeshData::m_uvs4
IL_049B: ldarg.s 5
IL_049D: ldind.i4
IL_049E: ldelema UnityEngine.Vector2
IL_04A3: ldloc.s 12 (UnityEngine.Vector2)
IL_04A5: stobj UnityEngine.Vector2
IL_04AA: Label16
IL_04AA: ldarg.s 8
IL_04AC: ldfld UnityEngine.Color32[] MeshData::m_colors
IL_04B1: ldarg.s 5
IL_04B3: ldind.i4
IL_04B4: ldelema UnityEngine.Color32
IL_04B9: ldloc.s 15 (UnityEngine.Color)
IL_04BB: call static UnityEngine.Color32
UnityEngine.Color32::op_Implicit(UnityEngine.Color c)
IL_04C0: stobj UnityEngine.Color32
IL_04C5: ldarg.s 5
IL_04C7: ldarg.s 5
IL_04C9: ldind.i4
IL_04CA: ldc.i4.1
IL_04CB: add
IL_04CC: stind.i4
IL_04CD: ldarg.s 8
IL_04CF: ldfld UnityEngine.Vector3[] MeshData::m_vertices
IL_04D4: ldarg.s 5
IL_04D6: ldind.i4
IL_04D7: ldelema UnityEngine.Vector3
IL_04DC: ldloca.s 4 (UnityEngine.Vector3)
IL_04DE: ldfld System.Single UnityEngine.Vector3::x
IL_04E3: ldloc.s 17 (System.Single)
IL_04E5: add
IL_04E6: ldloca.s 4 (UnityEngine.Vector3)
IL_04E8: ldfld System.Single UnityEngine.Vector3::y
IL_04ED: ldloca.s 4 (UnityEngine.Vector3)
IL_04EF: ldfld System.Single UnityEngine.Vector3::z
IL_04F4: ldarg.0
IL_04F5: ldfld System.Single LightEffect::m_lightRange
IL_04FA: add
IL_04FB: newobj System.Void UnityEngine.Vector3::.ctor(System.Single x,
System.Single y, System.Single z)
IL_0500: stobj UnityEngine.Vector3
IL_0505: ldarg.s 8
IL_0507: ldfld UnityEngine.Vector3[] MeshData::m_normals
IL_050C: ldarg.s 5
IL_050E: ldind.i4
IL_050F: ldelema UnityEngine.Vector3
IL_0514: ldarg.3
IL_0515: stobj UnityEngine.Vector3
IL_051A: ldarg.s 8
IL_051C: ldfld UnityEngine.Vector4[] MeshData::m_tangents
IL_0521: ldarg.s 5
IL_0523: ldind.i4
IL_0524: ldelema UnityEngine.Vector4
IL_0529: ldloc.s 7 (UnityEngine.Vector4)
IL_052B: stobj UnityEngine.Vector4
IL_0530: ldarg.s 8
IL_0532: ldfld UnityEngine.Vector2[] MeshData::m_uvs
IL_0537: ldarg.s 5
IL_0539: ldind.i4
IL_053A: ldelema UnityEngine.Vector2
IL_053F: ldloc.s 8 (UnityEngine.Vector2)
IL_0541: stobj UnityEngine.Vector2
IL_0546: ldarg.s 8
IL_0548: ldfld UnityEngine.Vector2[] MeshData::m_uvs2
IL_054D: ldarg.s 5
IL_054F: ldind.i4
IL_0550: ldelema UnityEngine.Vector2
IL_0555: ldloc.s 10 (UnityEngine.Vector2)
IL_0557: stobj UnityEngine.Vector2
IL_055C: ldarg.s 8
IL_055E: ldfld UnityEngine.Vector2[] MeshData::m_uvs3
IL_0563: ldarg.s 5
IL_0565: ldind.i4
IL_0566: ldelema UnityEngine.Vector2
IL_056B: ldloc.s 11 (UnityEngine.Vector2)
IL_056D: stobj UnityEngine.Vector2
IL_0572: ldloc.0
IL_0573: brfalse => Label17
IL_0578: ldarg.s 8
IL_057A: ldfld UnityEngine.Vector2[] MeshData::m_uvs4
IL_057F: ldarg.s 5
IL_0581: ldind.i4
IL_0582: ldelema UnityEngine.Vector2
IL_0587: ldloc.s 12 (UnityEngine.Vector2)
IL_0589: stobj UnityEngine.Vector2
IL_058E: Label17
IL_058E: ldarg.s 8
IL_0590: ldfld UnityEngine.Color32[] MeshData::m_colors
IL_0595: ldarg.s 5
IL_0597: ldind.i4
IL_0598: ldelema UnityEngine.Color32
IL_059D: ldloc.s 15 (UnityEngine.Color)
IL_059F: call static UnityEngine.Color32
UnityEngine.Color32::op_Implicit(UnityEngine.Color c)
IL_05A4: stobj UnityEngine.Color32
IL_05A9: ldarg.s 5
IL_05AB: ldarg.s 5
IL_05AD: ldind.i4
IL_05AE: ldc.i4.1
IL_05AF: add
IL_05B0: stind.i4
IL_05B1: ldarg.s 8
IL_05B3: ldfld UnityEngine.Vector3[] MeshData::m_vertices
IL_05B8: ldarg.s 5
IL_05BA: ldind.i4
IL_05BB: ldelema UnityEngine.Vector3
IL_05C0: ldloca.s 4 (UnityEngine.Vector3)
IL_05C2: ldfld System.Single UnityEngine.Vector3::x
IL_05C7: ldloc.s 18 (System.Single)
IL_05C9: add
IL_05CA: ldloca.s 4 (UnityEngine.Vector3)
IL_05CC: ldfld System.Single UnityEngine.Vector3::y
IL_05D1: ldarg.0
IL_05D2: ldfld System.Single LightEffect::m_lightRange
IL_05D7: sub
IL_05D8: ldloca.s 4 (UnityEngine.Vector3)
IL_05DA: ldfld System.Single UnityEngine.Vector3::z
IL_05DF: ldarg.0
IL_05E0: ldfld System.Single LightEffect::m_lightRange
IL_05E5: add
IL_05E6: newobj System.Void UnityEngine.Vector3::.ctor(System.Single x,
System.Single y, System.Single z)
IL_05EB: stobj UnityEngine.Vector3
IL_05F0: ldarg.s 8
IL_05F2: ldfld UnityEngine.Vector3[] MeshData::m_normals
IL_05F7: ldarg.s 5
IL_05F9: ldind.i4
IL_05FA: ldelema UnityEngine.Vector3
IL_05FF: ldarg.3
IL_0600: stobj UnityEngine.Vector3
IL_0605: ldarg.s 8
IL_0607: ldfld UnityEngine.Vector4[] MeshData::m_tangents
IL_060C: ldarg.s 5
IL_060E: ldind.i4
IL_060F: ldelema UnityEngine.Vector4
IL_0614: ldloc.s 7 (UnityEngine.Vector4)
IL_0616: stobj UnityEngine.Vector4
IL_061B: ldarg.s 8
IL_061D: ldfld UnityEngine.Vector2[] MeshData::m_uvs
IL_0622: ldarg.s 5
IL_0624: ldind.i4
IL_0625: ldelema UnityEngine.Vector2
IL_062A: ldloc.s 8 (UnityEngine.Vector2)
IL_062C: stobj UnityEngine.Vector2
IL_0631: ldarg.s 8
IL_0633: ldfld UnityEngine.Vector2[] MeshData::m_uvs2
IL_0638: ldarg.s 5
IL_063A: ldind.i4
IL_063B: ldelema UnityEngine.Vector2
IL_0640: ldloc.s 10 (UnityEngine.Vector2)
IL_0642: stobj UnityEngine.Vector2
IL_0647: ldarg.s 8
IL_0649: ldfld UnityEngine.Vector2[] MeshData::m_uvs3
IL_064E: ldarg.s 5
IL_0650: ldind.i4
IL_0651: ldelema UnityEngine.Vector2
IL_0656: ldloc.s 11 (UnityEngine.Vector2)
IL_0658: stobj UnityEngine.Vector2
IL_065D: ldloc.0
IL_065E: brfalse => Label18
IL_0663: ldarg.s 8
IL_0665: ldfld UnityEngine.Vector2[] MeshData::m_uvs4
IL_066A: ldarg.s 5
IL_066C: ldind.i4
IL_066D: ldelema UnityEngine.Vector2
IL_0672: ldloc.s 12 (UnityEngine.Vector2)
IL_0674: stobj UnityEngine.Vector2
IL_0679: Label18
IL_0679: ldarg.s 8
IL_067B: ldfld UnityEngine.Color32[] MeshData::m_colors
IL_0680: ldarg.s 5
IL_0682: ldind.i4
IL_0683: ldelema UnityEngine.Color32
IL_0688: ldloc.s 15 (UnityEngine.Color)
IL_068A: call static UnityEngine.Color32
UnityEngine.Color32::op_Implicit(UnityEngine.Color c)
IL_068F: stobj UnityEngine.Color32
IL_0694: ldarg.s 5
IL_0696: ldarg.s 5
IL_0698: ldind.i4
IL_0699: ldc.i4.1
IL_069A: add
IL_069B: stind.i4
IL_069C: ldarg.s 8
IL_069E: ldfld UnityEngine.Vector3[] MeshData::m_vertices
IL_06A3: ldarg.s 5
IL_06A5: ldind.i4
IL_06A6: ldelema UnityEngine.Vector3
IL_06AB: ldloca.s 4 (UnityEngine.Vector3)
IL_06AD: ldfld System.Single UnityEngine.Vector3::x
IL_06B2: ldloc.s 18 (System.Single)
IL_06B4: sub
IL_06B5: ldloca.s 4 (UnityEngine.Vector3)
IL_06B7: ldfld System.Single UnityEngine.Vector3::y
IL_06BC: ldarg.0
IL_06BD: ldfld System.Single LightEffect::m_lightRange
IL_06C2: sub
IL_06C3: ldloca.s 4 (UnityEngine.Vector3)
IL_06C5: ldfld System.Single UnityEngine.Vector3::z
IL_06CA: ldarg.0
IL_06CB: ldfld System.Single LightEffect::m_lightRange
IL_06D0: add
IL_06D1: newobj System.Void UnityEngine.Vector3::.ctor(System.Single x,
System.Single y, System.Single z)
IL_06D6: stobj UnityEngine.Vector3
IL_06DB: ldarg.s 8
IL_06DD: ldfld UnityEngine.Vector3[] MeshData::m_normals
IL_06E2: ldarg.s 5
IL_06E4: ldind.i4
IL_06E5: ldelema UnityEngine.Vector3
IL_06EA: ldarg.3
IL_06EB: stobj UnityEngine.Vector3
IL_06F0: ldarg.s 8
IL_06F2: ldfld UnityEngine.Vector4[] MeshData::m_tangents
IL_06F7: ldarg.s 5
IL_06F9: ldind.i4
IL_06FA: ldelema UnityEngine.Vector4
IL_06FF: ldloc.s 7 (UnityEngine.Vector4)
IL_0701: stobj UnityEngine.Vector4
IL_0706: ldarg.s 8
IL_0708: ldfld UnityEngine.Vector2[] MeshData::m_uvs
IL_070D: ldarg.s 5
IL_070F: ldind.i4
IL_0710: ldelema UnityEngine.Vector2
IL_0715: ldloc.s 8 (UnityEngine.Vector2)
IL_0717: stobj UnityEngine.Vector2
IL_071C: ldarg.s 8
IL_071E: ldfld UnityEngine.Vector2[] MeshData::m_uvs2
IL_0723: ldarg.s 5
IL_0725: ldind.i4
IL_0726: ldelema UnityEngine.Vector2
IL_072B: ldloc.s 10 (UnityEngine.Vector2)
IL_072D: stobj UnityEngine.Vector2
IL_0732: ldarg.s 8
IL_0734: ldfld UnityEngine.Vector2[] MeshData::m_uvs3
IL_0739: ldarg.s 5
IL_073B: ldind.i4
IL_073C: ldelema UnityEngine.Vector2
IL_0741: ldloc.s 11 (UnityEngine.Vector2)
IL_0743: stobj UnityEngine.Vector2
IL_0748: ldloc.0
IL_0749: brfalse => Label19
IL_074E: ldarg.s 8
IL_0750: ldfld UnityEngine.Vector2[] MeshData::m_uvs4
IL_0755: ldarg.s 5
IL_0757: ldind.i4
IL_0758: ldelema UnityEngine.Vector2
IL_075D: ldloc.s 12 (UnityEngine.Vector2)
IL_075F: stobj UnityEngine.Vector2
IL_0764: Label19
IL_0764: ldarg.s 8
IL_0766: ldfld UnityEngine.Color32[] MeshData::m_colors
IL_076B: ldarg.s 5
IL_076D: ldind.i4
IL_076E: ldelema UnityEngine.Color32
IL_0773: ldloc.s 15 (UnityEngine.Color)
IL_0775: call static UnityEngine.Color32
UnityEngine.Color32::op_Implicit(UnityEngine.Color c)
IL_077A: stobj UnityEngine.Color32
IL_077F: ldarg.s 5
IL_0781: ldarg.s 5
IL_0783: ldind.i4
IL_0784: ldc.i4.1
IL_0785: add
IL_0786: stind.i4
IL_0787: ldarg.s 8
IL_0789: ldfld UnityEngine.Vector3[] MeshData::m_vertices
IL_078E: ldarg.s 5
IL_0790: ldind.i4
IL_0791: ldelema UnityEngine.Vector3
IL_0796: ldloca.s 4 (UnityEngine.Vector3)
IL_0798: ldfld System.Single UnityEngine.Vector3::x
IL_079D: ldloc.s 17 (System.Single)
IL_079F: sub
IL_07A0: ldloca.s 4 (UnityEngine.Vector3)
IL_07A2: ldfld System.Single UnityEngine.Vector3::y
IL_07A7: ldloca.s 4 (UnityEngine.Vector3)
IL_07A9: ldfld System.Single UnityEngine.Vector3::z
IL_07AE: ldarg.0
IL_07AF: ldfld System.Single LightEffect::m_lightRange
IL_07B4: add
IL_07B5: newobj System.Void UnityEngine.Vector3::.ctor(System.Single x,
System.Single y, System.Single z)
IL_07BA: stobj UnityEngine.Vector3
IL_07BF: ldarg.s 8
IL_07C1: ldfld UnityEngine.Vector3[] MeshData::m_normals
IL_07C6: ldarg.s 5
IL_07C8: ldind.i4
IL_07C9: ldelema UnityEngine.Vector3
IL_07CE: ldarg.3
IL_07CF: stobj UnityEngine.Vector3
IL_07D4: ldarg.s 8
IL_07D6: ldfld UnityEngine.Vector4[] MeshData::m_tangents
IL_07DB: ldarg.s 5
IL_07DD: ldind.i4
IL_07DE: ldelema UnityEngine.Vector4
IL_07E3: ldloc.s 7 (UnityEngine.Vector4)
IL_07E5: stobj UnityEngine.Vector4
IL_07EA: ldarg.s 8
IL_07EC: ldfld UnityEngine.Vector2[] MeshData::m_uvs
IL_07F1: ldarg.s 5
IL_07F3: ldind.i4
IL_07F4: ldelema UnityEngine.Vector2
IL_07F9: ldloc.s 8 (UnityEngine.Vector2)
IL_07FB: stobj UnityEngine.Vector2
IL_0800: ldarg.s 8
IL_0802: ldfld UnityEngine.Vector2[] MeshData::m_uvs2
IL_0807: ldarg.s 5
IL_0809: ldind.i4
IL_080A: ldelema UnityEngine.Vector2
IL_080F: ldloc.s 10 (UnityEngine.Vector2)
IL_0811: stobj UnityEngine.Vector2
IL_0816: ldarg.s 8
IL_0818: ldfld UnityEngine.Vector2[] MeshData::m_uvs3
IL_081D: ldarg.s 5
IL_081F: ldind.i4
IL_0820: ldelema UnityEngine.Vector2
IL_0825: ldloc.s 11 (UnityEngine.Vector2)
IL_0827: stobj UnityEngine.Vector2
IL_082C: ldloc.0
IL_082D: brfalse => Label20
IL_0832: ldarg.s 8
IL_0834: ldfld UnityEngine.Vector2[] MeshData::m_uvs4
IL_0839: ldarg.s 5
IL_083B: ldind.i4
IL_083C: ldelema UnityEngine.Vector2
IL_0841: ldloc.s 12 (UnityEngine.Vector2)
IL_0843: stobj UnityEngine.Vector2
IL_0848: Label20
IL_0848: ldarg.s 8
IL_084A: ldfld UnityEngine.Color32[] MeshData::m_colors
IL_084F: ldarg.s 5
IL_0851: ldind.i4
IL_0852: ldelema UnityEngine.Color32
IL_0857: ldloc.s 15 (UnityEngine.Color)
IL_0859: call static UnityEngine.Color32
UnityEngine.Color32::op_Implicit(UnityEngine.Color c)
IL_085E: stobj UnityEngine.Color32
IL_0863: ldarg.s 5
IL_0865: ldarg.s 5
IL_0867: ldind.i4
IL_0868: ldc.i4.1
IL_0869: add
IL_086A: stind.i4
IL_086B: ldarg.s 8
IL_086D: ldfld System.Int32[] MeshData::m_triangles
IL_0872: ldarg.s 6
IL_0874: ldarg.s 6
IL_0876: ldind.i4
IL_0877: dup
IL_0878: stloc.s 19 (System.Int32)
IL_087A: ldc.i4.1
IL_087B: add
IL_087C: stind.i4
IL_087D: ldloc.s 19 (System.Int32)
IL_087F: ldarg.s 5
IL_0881: ldind.i4
IL_0882: ldc.i4.6
IL_0883: sub
IL_0884: stelem.i4
IL_0885: ldarg.s 8
IL_0887: ldfld System.Int32[] MeshData::m_triangles
IL_088C: ldarg.s 6
IL_088E: ldarg.s 6
IL_0890: ldind.i4
IL_0891: dup
IL_0892: stloc.s 19 (System.Int32)
IL_0894: ldc.i4.1
IL_0895: add
IL_0896: stind.i4
IL_0897: ldloc.s 19 (System.Int32)
IL_0899: ldarg.s 5
IL_089B: ldind.i4
IL_089C: ldc.i4.5
IL_089D: sub
IL_089E: stelem.i4
IL_089F: ldarg.s 8
IL_08A1: ldfld System.Int32[] MeshData::m_triangles
IL_08A6: ldarg.s 6
IL_08A8: ldarg.s 6
IL_08AA: ldind.i4
IL_08AB: dup
IL_08AC: stloc.s 19 (System.Int32)
IL_08AE: ldc.i4.1
IL_08AF: add
IL_08B0: stind.i4
IL_08B1: ldloc.s 19 (System.Int32)
IL_08B3: ldarg.s 5
IL_08B5: ldind.i4
IL_08B6: ldc.i4.1
IL_08B7: sub
IL_08B8: stelem.i4
IL_08B9: ldarg.s 8
IL_08BB: ldfld System.Int32[] MeshData::m_triangles
IL_08C0: ldarg.s 6
IL_08C2: ldarg.s 6
IL_08C4: ldind.i4
IL_08C5: dup
IL_08C6: stloc.s 19 (System.Int32)
IL_08C8: ldc.i4.1
IL_08C9: add
IL_08CA: stind.i4
IL_08CB: ldloc.s 19 (System.Int32)
IL_08CD: ldarg.s 5
IL_08CF: ldind.i4
IL_08D0: ldc.i4.1
IL_08D1: sub
IL_08D2: stelem.i4
IL_08D3: ldarg.s 8
IL_08D5: ldfld System.Int32[] MeshData::m_triangles
IL_08DA: ldarg.s 6
IL_08DC: ldarg.s 6
IL_08DE: ldind.i4
IL_08DF: dup
IL_08E0: stloc.s 19 (System.Int32)
IL_08E2: ldc.i4.1
IL_08E3: add
IL_08E4: stind.i4
IL_08E5: ldloc.s 19 (System.Int32)
IL_08E7: ldarg.s 5
IL_08E9: ldind.i4
IL_08EA: ldc.i4.5
IL_08EB: sub
IL_08EC: stelem.i4
IL_08ED: ldarg.s 8
IL_08EF: ldfld System.Int32[] MeshData::m_triangles
IL_08F4: ldarg.s 6
IL_08F6: ldarg.s 6
IL_08F8: ldind.i4
IL_08F9: dup
IL_08FA: stloc.s 19 (System.Int32)
IL_08FC: ldc.i4.1
IL_08FD: add
IL_08FE: stind.i4
IL_08FF: ldloc.s 19 (System.Int32)
IL_0901: ldarg.s 5
IL_0903: ldind.i4
IL_0904: ldc.i4.4
IL_0905: sub
IL_0906: stelem.i4
IL_0907: ldarg.s 8
IL_0909: ldfld System.Int32[] MeshData::m_triangles
IL_090E: ldarg.s 6
IL_0910: ldarg.s 6
IL_0912: ldind.i4
IL_0913: dup
IL_0914: stloc.s 19 (System.Int32)
IL_0916: ldc.i4.1
IL_0917: add
IL_0918: stind.i4
IL_0919: ldloc.s 19 (System.Int32)
IL_091B: ldarg.s 5
IL_091D: ldind.i4
IL_091E: ldc.i4.1
IL_091F: sub
IL_0920: stelem.i4
IL_0921: ldarg.s 8
IL_0923: ldfld System.Int32[] MeshData::m_triangles
IL_0928: ldarg.s 6
IL_092A: ldarg.s 6
IL_092C: ldind.i4
IL_092D: dup
IL_092E: stloc.s 19 (System.Int32)
IL_0930: ldc.i4.1
IL_0931: add
IL_0932: stind.i4
IL_0933: ldloc.s 19 (System.Int32)
IL_0935: ldarg.s 5
IL_0937: ldind.i4
IL_0938: ldc.i4.4
IL_0939: sub
IL_093A: stelem.i4
IL_093B: ldarg.s 8
IL_093D: ldfld System.Int32[] MeshData::m_triangles
IL_0942: ldarg.s 6
IL_0944: ldarg.s 6
IL_0946: ldind.i4
IL_0947: dup
IL_0948: stloc.s 19 (System.Int32)
IL_094A: ldc.i4.1
IL_094B: add
IL_094C: stind.i4
IL_094D: ldloc.s 19 (System.Int32)
IL_094F: ldarg.s 5
IL_0951: ldind.i4
IL_0952: ldc.i4.2
IL_0953: sub
IL_0954: stelem.i4
IL_0955: ldarg.s 8
IL_0957: ldfld System.Int32[] MeshData::m_triangles
IL_095C: ldarg.s 6
IL_095E: ldarg.s 6
IL_0960: ldind.i4
IL_0961: dup
IL_0962: stloc.s 19 (System.Int32)
IL_0964: ldc.i4.1
IL_0965: add
IL_0966: stind.i4
IL_0967: ldloc.s 19 (System.Int32)
IL_0969: ldarg.s 5
IL_096B: ldind.i4
IL_096C: ldc.i4.2
IL_096D: sub
IL_096E: stelem.i4
IL_096F: ldarg.s 8
IL_0971: ldfld System.Int32[] MeshData::m_triangles
IL_0976: ldarg.s 6
IL_0978: ldarg.s 6
IL_097A: ldind.i4
IL_097B: dup
IL_097C: stloc.s 19 (System.Int32)
IL_097E: ldc.i4.1
IL_097F: add
IL_0980: stind.i4
IL_0981: ldloc.s 19 (System.Int32)
IL_0983: ldarg.s 5
IL_0985: ldind.i4
IL_0986: ldc.i4.4
IL_0987: sub
IL_0988: stelem.i4
IL_0989: ldarg.s 8
IL_098B: ldfld System.Int32[] MeshData::m_triangles
IL_0990: ldarg.s 6
IL_0992: ldarg.s 6
IL_0994: ldind.i4
IL_0995: dup
IL_0996: stloc.s 19 (System.Int32)
IL_0998: ldc.i4.1
IL_0999: add
IL_099A: stind.i4
IL_099B: ldloc.s 19 (System.Int32)
IL_099D: ldarg.s 5
IL_099F: ldind.i4
IL_09A0: ldc.i4.3
IL_09A1: sub
IL_09A2: stelem.i4
IL_09A3: // end original
IL_09A3: Label3
IL_09A3: Label0
IL_09A3: ret
DONE

### Patch: virtual System.Void ElectricityManager::SimulationStepImpl(System.Int32


subStep)
### Replacement: static System.Void
ElectricityManager::ElectricityManager.SimulationStepImpl_Patch0(ElectricityManager
this, System.Int32 subStep)
IL_0000: Local var 0: System.UInt32
IL_0000: Local var 1: System.Int32
IL_0000: Local var 2: NetManager
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: NetInfo
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: ElectricityManager/Cell
IL_0000: Local var 13: ElectricityManager/PulseGroup
IL_0000: Local var 14: ElectricityManager/PulseUnit
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: ElectricityManager/PulseUnit
IL_0000: Local var 19: System.UInt32
IL_0000: Local var 20: System.Int32
IL_0000: Local var 21: ElectricityManager/Cell
IL_0000: Local var 22: System.Int32
IL_0000: Local var 23: System.Int32
IL_0000: Local var 24: NetNode
IL_0000: Local var 25: System.Int32
IL_0000: Local var 26: System.UInt16
IL_0000: Local var 27: System.UInt16
IL_0000: Local var 28: System.UInt16
IL_0000: Local var 29: System.UInt16
IL_0000: Local var 30: System.Int32
IL_0000: Local var 31: ElectricityManager/PulseGroup
IL_0000: Local var 32: ElectricityManager/PulseGroup
IL_0000: Local var 33: System.Int32
IL_0000: Local var 34: ElectricityManager/PulseGroup
IL_0000: Local var 35: System.Int32
IL_0000: Local var 36: ElectricityManager/Cell
IL_0000: // start original
IL_0000: ldarg.1
IL_0001: brfalse => Label0
IL_0006: ldarg.1
IL_0007: ldc.i4 1000
IL_000C: beq => Label1
IL_0011: call static SimulationManager
ColossalFramework.Singleton`1<SimulationManager>::get_instance()
IL_0016: ldfld System.UInt32 SimulationManager::m_currentFrameIndex
IL_001B: stloc.0
IL_001C: ldloc.0
IL_001D: ldc.i4 255
IL_0022: and
IL_0023: stloc.1
IL_0024: ldloc.1
IL_0025: ldc.i4 128
IL_002A: bge => Label2
IL_002F: ldloc.1
IL_0030: brtrue => Label3
IL_0035: ldarg.0
IL_0036: ldc.i4.0
IL_0037: stfld System.Int32 ElectricityManager::m_pulseGroupCount
IL_003C: ldarg.0
IL_003D: ldc.i4.0
IL_003E: stfld System.Int32 ElectricityManager::m_pulseUnitStart
IL_0043: ldarg.0
IL_0044: ldc.i4.0
IL_0045: stfld System.Int32 ElectricityManager::m_pulseUnitEnd
IL_004A: ldarg.0
IL_004B: ldc.i4.0
IL_004C: stfld System.Int32 ElectricityManager::m_processedCells
IL_0051: ldarg.0
IL_0052: ldc.i4.0
IL_0053: stfld System.Int32 ElectricityManager::m_conductiveCells
IL_0058: ldarg.0
IL_0059: ldc.i4.1
IL_005A: stfld System.Boolean ElectricityManager::m_canContinue
IL_005F: Label3
IL_005F: call static NetManager
ColossalFramework.Singleton`1<NetManager>::get_instance()
IL_0064: stloc.2
IL_0065: ldloc.1
IL_0066: ldc.i4 32768
IL_006B: mul
IL_006C: ldc.i4.7
IL_006D: shr
IL_006E: stloc.3
IL_006F: ldloc.1
IL_0070: ldc.i4.1
IL_0071: add
IL_0072: ldc.i4 32768
IL_0077: mul
IL_0078: ldc.i4.7
IL_0079: shr
IL_007A: ldc.i4.1
IL_007B: sub
IL_007C: stloc.s 4 (System.Int32)
IL_007E: ldloc.3
IL_007F: stloc.s 5 (System.Int32)
IL_0081: br => Label4
IL_0086: Label10
IL_0086: ldloc.2
IL_0087: ldfld Array16`1<NetNode> NetManager::m_nodes
IL_008C: ldfld NetNode[] Array16`1<NetNode>::m_buffer
IL_0091: ldloc.s 5 (System.Int32)
IL_0093: ldelema NetNode
IL_0098: ldfld Flags NetNode::m_flags
IL_009D: brfalse => Label5
IL_00A2: ldloc.2
IL_00A3: ldfld Array16`1<NetNode> NetManager::m_nodes
IL_00A8: ldfld NetNode[] Array16`1<NetNode>::m_buffer
IL_00AD: ldloc.s 5 (System.Int32)
IL_00AF: ldelema NetNode
IL_00B4: call static System.Boolean
ElectricRoads.Overrides.ElectricRoadsOverrides::CheckElectricConductibility(NetNode
& node)
IL_00B9: brfalse => Label7
IL_00BE: Label6
IL_00BE: ldarg.0
IL_00BF: ldloc.s 5 (System.Int32)
IL_00C1: ldarg.0
IL_00C2: ldfld System.UInt16[] ElectricityManager::m_nodeGroups
IL_00C7: ldloc.s 5 (System.Int32)
IL_00C9: ldelem.u2
IL_00CA: ldc.i4 65535
IL_00CF: beq => Label8
IL_00D4: ldc.i4.1
IL_00D5: br => Label9
IL_00DA: Label8
IL_00DA: ldc.i4.0
IL_00DB: Label9
IL_00DB: call System.Void
ElectricityManager::UpdateNodeElectricity(System.Int32 nodeID, System.Int32 value)
IL_00E0: ldarg.0
IL_00E1: dup
IL_00E2: ldfld System.Int32 ElectricityManager::m_conductiveCells
IL_00E7: ldc.i4.1
IL_00E8: add
IL_00E9: stfld System.Int32 ElectricityManager::m_conductiveCells
IL_00EE: Label5
IL_00EE: Label7
IL_00EE: ldarg.0
IL_00EF: ldfld System.UInt16[] ElectricityManager::m_nodeGroups
IL_00F4: ldloc.s 5 (System.Int32)
IL_00F6: ldc.i4 65535
IL_00FB: stelem.i2
IL_00FC: ldloc.s 5 (System.Int32)
IL_00FE: ldc.i4.1
IL_00FF: add
IL_0100: stloc.s 5 (System.Int32)
IL_0102: Label4
IL_0102: ldloc.s 5 (System.Int32)
IL_0104: ldloc.s 4 (System.Int32)
IL_0106: ble => Label10
IL_010B: ldloc.1
IL_010C: ldc.i4 256
IL_0111: mul
IL_0112: ldc.i4.7
IL_0113: shr
IL_0114: stloc.s 7 (System.Int32)
IL_0116: ldloc.1
IL_0117: ldc.i4.1
IL_0118: add
IL_0119: ldc.i4 256
IL_011E: mul
IL_011F: ldc.i4.7
IL_0120: shr
IL_0121: ldc.i4.1
IL_0122: sub
IL_0123: stloc.s 8 (System.Int32)
IL_0125: ldloc.s 7 (System.Int32)
IL_0127: stloc.s 9 (System.Int32)
IL_0129: br => Label11
IL_012E: Label21
IL_012E: ldloc.s 9 (System.Int32)
IL_0130: ldc.i4 256
IL_0135: mul
IL_0136: stloc.s 10 (System.Int32)
IL_0138: ldc.i4.0
IL_0139: stloc.s 11 (System.Int32)
IL_013B: br => Label12
IL_0140: Label20
IL_0140: ldarg.0
IL_0141: ldfld Cell[] ElectricityManager::m_electricityGrid
IL_0146: ldloc.s 10 (System.Int32)
IL_0148: ldelema ElectricityManager+Cell
IL_014D: ldobj ElectricityManager+Cell
IL_0152: stloc.s 12 (ElectricityManager+Cell)
IL_0154: ldloca.s 12 (ElectricityManager+Cell)
IL_0156: ldfld System.Int16 Cell::m_currentCharge
IL_015B: ldc.i4.0
IL_015C: ble => Label13
IL_0161: ldarg.0
IL_0162: ldfld System.Int32 ElectricityManager::m_pulseGroupCount
IL_0167: ldc.i4 1024
IL_016C: bge => Label14
IL_0171: ldloca.s 13 (ElectricityManager+PulseGroup)
IL_0173: ldloca.s 12 (ElectricityManager+Cell)
IL_0175: ldfld System.Int16 Cell::m_currentCharge
IL_017A: conv.u4
IL_017B: stfld System.UInt32 PulseGroup::m_origCharge
IL_0180: ldloca.s 13 (ElectricityManager+PulseGroup)
IL_0182: ldloca.s 12 (ElectricityManager+Cell)
IL_0184: ldfld System.Int16 Cell::m_currentCharge
IL_0189: conv.u4
IL_018A: stfld System.UInt32 PulseGroup::m_curCharge
IL_018F: ldloca.s 13 (ElectricityManager+PulseGroup)
IL_0191: ldc.i4.0
IL_0192: stfld System.UInt16 PulseGroup::m_mergeCount
IL_0197: ldloca.s 13 (ElectricityManager+PulseGroup)
IL_0199: ldc.i4 65535
IL_019E: stfld System.UInt16 PulseGroup::m_mergeIndex
IL_01A3: ldloca.s 13 (ElectricityManager+PulseGroup)
IL_01A5: ldloc.s 11 (System.Int32)
IL_01A7: conv.u1
IL_01A8: stfld System.Byte PulseGroup::m_x
IL_01AD: ldloca.s 13 (ElectricityManager+PulseGroup)
IL_01AF: ldloc.s 9 (System.Int32)
IL_01B1: conv.u1
IL_01B2: stfld System.Byte PulseGroup::m_z
IL_01B7: ldloca.s 14 (ElectricityManager+PulseUnit)
IL_01B9: ldarg.0
IL_01BA: ldfld System.Int32 ElectricityManager::m_pulseGroupCount
IL_01BF: conv.u2
IL_01C0: stfld System.UInt16 PulseUnit::m_group
IL_01C5: ldloca.s 14 (ElectricityManager+PulseUnit)
IL_01C7: ldc.i4.0
IL_01C8: stfld System.UInt16 PulseUnit::m_node
IL_01CD: ldloca.s 14 (ElectricityManager+PulseUnit)
IL_01CF: ldloc.s 11 (System.Int32)
IL_01D1: conv.u1
IL_01D2: stfld System.Byte PulseUnit::m_x
IL_01D7: ldloca.s 14 (ElectricityManager+PulseUnit)
IL_01D9: ldloc.s 9 (System.Int32)
IL_01DB: conv.u1
IL_01DC: stfld System.Byte PulseUnit::m_z
IL_01E1: ldloca.s 12 (ElectricityManager+Cell)
IL_01E3: ldarg.0
IL_01E4: ldfld System.Int32 ElectricityManager::m_pulseGroupCount
IL_01E9: conv.u2
IL_01EA: stfld System.UInt16 Cell::m_pulseGroup
IL_01EF: ldarg.0
IL_01F0: ldfld PulseGroup[] ElectricityManager::m_pulseGroups
IL_01F5: ldarg.0
IL_01F6: dup
IL_01F7: ldfld System.Int32 ElectricityManager::m_pulseGroupCount
IL_01FC: dup
IL_01FD: stloc.s 15 (System.Int32)
IL_01FF: ldc.i4.1
IL_0200: add
IL_0201: stfld System.Int32 ElectricityManager::m_pulseGroupCount
IL_0206: ldloc.s 15 (System.Int32)
IL_0208: ldelema ElectricityManager+PulseGroup
IL_020D: ldloc.s 13 (ElectricityManager+PulseGroup)
IL_020F: stobj ElectricityManager+PulseGroup
IL_0214: ldarg.0
IL_0215: ldfld PulseUnit[] ElectricityManager::m_pulseUnits
IL_021A: ldarg.0
IL_021B: ldfld System.Int32 ElectricityManager::m_pulseUnitEnd
IL_0220: ldelema ElectricityManager+PulseUnit
IL_0225: ldloc.s 14 (ElectricityManager+PulseUnit)
IL_0227: stobj ElectricityManager+PulseUnit
IL_022C: ldarg.0
IL_022D: dup
IL_022E: ldfld System.Int32 ElectricityManager::m_pulseUnitEnd
IL_0233: ldc.i4.1
IL_0234: add
IL_0235: dup
IL_0236: stloc.s 15 (System.Int32)
IL_0238: stfld System.Int32 ElectricityManager::m_pulseUnitEnd
IL_023D: ldloc.s 15 (System.Int32)
IL_023F: ldarg.0
IL_0240: ldfld PulseUnit[] ElectricityManager::m_pulseUnits
IL_0245: ldlen
IL_0246: conv.i4
IL_0247: bne.un => Label15
IL_024C: ldarg.0
IL_024D: ldc.i4.0
IL_024E: stfld System.Int32 ElectricityManager::m_pulseUnitEnd
IL_0253: Label15
IL_0253: br => Label16
IL_0258: Label14
IL_0258: ldloca.s 12 (ElectricityManager+Cell)
IL_025A: ldc.i4 65535
IL_025F: stfld System.UInt16 Cell::m_pulseGroup
IL_0264: Label16
IL_0264: ldloca.s 12 (ElectricityManager+Cell)
IL_0266: ldc.i4.0
IL_0267: stfld System.Int16 Cell::m_currentCharge
IL_026C: ldarg.0
IL_026D: dup
IL_026E: ldfld System.Int32 ElectricityManager::m_conductiveCells
IL_0273: ldc.i4.1
IL_0274: add
IL_0275: stfld System.Int32 ElectricityManager::m_conductiveCells
IL_027A: br => Label17
IL_027F: Label13
IL_027F: ldloca.s 12 (ElectricityManager+Cell)
IL_0281: ldc.i4 65535
IL_0286: stfld System.UInt16 Cell::m_pulseGroup
IL_028B: ldloca.s 12 (ElectricityManager+Cell)
IL_028D: ldfld System.Byte Cell::m_conductivity
IL_0292: ldc.i4.s 64
IL_0294: blt => Label18
IL_0299: ldarg.0
IL_029A: dup
IL_029B: ldfld System.Int32 ElectricityManager::m_conductiveCells
IL_02A0: ldc.i4.1
IL_02A1: add
IL_02A2: stfld System.Int32 ElectricityManager::m_conductiveCells
IL_02A7: Label17
IL_02A7: Label18
IL_02A7: ldloca.s 12 (ElectricityManager+Cell)
IL_02A9: ldfld System.Boolean Cell::m_tmpElectrified
IL_02AE: ldloca.s 12 (ElectricityManager+Cell)
IL_02B0: ldfld System.Boolean Cell::m_electrified
IL_02B5: beq => Label19
IL_02BA: ldloca.s 12 (ElectricityManager+Cell)
IL_02BC: ldloca.s 12 (ElectricityManager+Cell)
IL_02BE: ldfld System.Boolean Cell::m_tmpElectrified
IL_02C3: stfld System.Boolean Cell::m_electrified
IL_02C8: Label19
IL_02C8: ldloca.s 12 (ElectricityManager+Cell)
IL_02CA: ldloca.s 12 (ElectricityManager+Cell)
IL_02CC: ldfld System.UInt16 Cell::m_pulseGroup
IL_02D1: ldc.i4 65535
IL_02D6: ceq
IL_02D8: ldc.i4.0
IL_02D9: ceq
IL_02DB: stfld System.Boolean Cell::m_tmpElectrified
IL_02E0: ldarg.0
IL_02E1: ldfld Cell[] ElectricityManager::m_electricityGrid
IL_02E6: ldloc.s 10 (System.Int32)
IL_02E8: ldelema ElectricityManager+Cell
IL_02ED: ldloc.s 12 (ElectricityManager+Cell)
IL_02EF: stobj ElectricityManager+Cell
IL_02F4: ldloc.s 10 (System.Int32)
IL_02F6: ldc.i4.1
IL_02F7: add
IL_02F8: stloc.s 10 (System.Int32)
IL_02FA: ldloc.s 11 (System.Int32)
IL_02FC: ldc.i4.1
IL_02FD: add
IL_02FE: stloc.s 11 (System.Int32)
IL_0300: Label12
IL_0300: ldloc.s 11 (System.Int32)
IL_0302: ldc.i4 256
IL_0307: blt => Label20
IL_030C: ldloc.s 9 (System.Int32)
IL_030E: ldc.i4.1
IL_030F: add
IL_0310: stloc.s 9 (System.Int32)
IL_0312: Label11
IL_0312: ldloc.s 9 (System.Int32)
IL_0314: ldloc.s 8 (System.Int32)
IL_0316: ble => Label21
IL_031B: br => Label22
IL_0320: Label2
IL_0320: ldloc.1
IL_0321: ldc.i4.s 127
IL_0323: sub
IL_0324: ldarg.0
IL_0325: ldfld System.Int32 ElectricityManager::m_conductiveCells
IL_032A: mul
IL_032B: ldc.i4.7
IL_032C: shr
IL_032D: stloc.s 16 (System.Int32)
IL_032F: ldloc.1
IL_0330: ldc.i4 255
IL_0335: bne.un => Label23
IL_033A: ldc.i4 1000000000
IL_033F: stloc.s 16 (System.Int32)
IL_0341: Label23
IL_0341: br => Label24
IL_0346: Label54
IL_0346: ldarg.0
IL_0347: ldc.i4.0
IL_0348: stfld System.Boolean ElectricityManager::m_canContinue
IL_034D: ldarg.0
IL_034E: ldfld System.Int32 ElectricityManager::m_pulseUnitEnd
IL_0353: stloc.s 17 (System.Int32)
IL_0355: br => Label25
IL_035A: Label52
IL_035A: ldarg.0
IL_035B: ldfld PulseUnit[] ElectricityManager::m_pulseUnits
IL_0360: ldarg.0
IL_0361: ldfld System.Int32 ElectricityManager::m_pulseUnitStart
IL_0366: ldelema ElectricityManager+PulseUnit
IL_036B: ldobj ElectricityManager+PulseUnit
IL_0370: stloc.s 18 (ElectricityManager+PulseUnit)
IL_0372: ldarg.0
IL_0373: dup
IL_0374: ldfld System.Int32 ElectricityManager::m_pulseUnitStart
IL_0379: ldc.i4.1
IL_037A: add
IL_037B: dup
IL_037C: stloc.s 15 (System.Int32)
IL_037E: stfld System.Int32 ElectricityManager::m_pulseUnitStart
IL_0383: ldloc.s 15 (System.Int32)
IL_0385: ldarg.0
IL_0386: ldfld PulseUnit[] ElectricityManager::m_pulseUnits
IL_038B: ldlen
IL_038C: conv.i4
IL_038D: bne.un => Label26
IL_0392: ldarg.0
IL_0393: ldc.i4.0
IL_0394: stfld System.Int32 ElectricityManager::m_pulseUnitStart
IL_0399: Label26
IL_0399: ldloca.s 18 (ElectricityManager+PulseUnit)
IL_039B: ldarg.0
IL_039C: ldloca.s 18 (ElectricityManager+PulseUnit)
IL_039E: ldfld System.UInt16 PulseUnit::m_group
IL_03A3: call System.UInt16 ElectricityManager::GetRootGroup(System.UInt16
group)
IL_03A8: stfld System.UInt16 PulseUnit::m_group
IL_03AD: ldarg.0
IL_03AE: ldfld PulseGroup[] ElectricityManager::m_pulseGroups
IL_03B3: ldloca.s 18 (ElectricityManager+PulseUnit)
IL_03B5: ldfld System.UInt16 PulseUnit::m_group
IL_03BA: ldelema ElectricityManager+PulseGroup
IL_03BF: ldfld System.UInt32 PulseGroup::m_curCharge
IL_03C4: stloc.s 19 (System.UInt32)
IL_03C6: ldloca.s 18 (ElectricityManager+PulseUnit)
IL_03C8: ldfld System.UInt16 PulseUnit::m_node
IL_03CD: brtrue => Label27
IL_03D2: ldloca.s 18 (ElectricityManager+PulseUnit)
IL_03D4: ldfld System.Byte PulseUnit::m_z
IL_03D9: ldc.i4 256
IL_03DE: mul
IL_03DF: ldloca.s 18 (ElectricityManager+PulseUnit)
IL_03E1: ldfld System.Byte PulseUnit::m_x
IL_03E6: add
IL_03E7: stloc.s 20 (System.Int32)
IL_03E9: ldarg.0
IL_03EA: ldfld Cell[] ElectricityManager::m_electricityGrid
IL_03EF: ldloc.s 20 (System.Int32)
IL_03F1: ldelema ElectricityManager+Cell
IL_03F6: ldobj ElectricityManager+Cell
IL_03FB: stloc.s 21 (ElectricityManager+Cell)
IL_03FD: ldloca.s 21 (ElectricityManager+Cell)
IL_03FF: ldfld System.Byte Cell::m_conductivity
IL_0404: brfalse => Label28
IL_0409: ldloca.s 21 (ElectricityManager+Cell)
IL_040B: ldfld System.Boolean Cell::m_tmpElectrified
IL_0410: brtrue => Label29
IL_0415: ldloc.s 19 (System.UInt32)
IL_0417: brfalse => Label30
IL_041C: ldloca.s 21 (ElectricityManager+Cell)
IL_041E: ldfld System.Int16 Cell::m_currentCharge
IL_0423: neg
IL_0424: ldc.i4.0
IL_0425: ldloc.s 19 (System.UInt32)
IL_0427: call static System.Int32 UnityEngine.Mathf::Clamp(System.Int32
value, System.Int32 min, System.Int32 max)
IL_042C: stloc.s 22 (System.Int32)
IL_042E: ldloc.s 19 (System.UInt32)
IL_0430: ldloc.s 22 (System.Int32)
IL_0432: sub
IL_0433: stloc.s 19 (System.UInt32)
IL_0435: ldloca.s 21 (ElectricityManager+Cell)
IL_0437: dup
IL_0438: ldfld System.Int16 Cell::m_currentCharge
IL_043D: ldloc.s 22 (System.Int32)
IL_043F: conv.i2
IL_0440: add
IL_0441: conv.i2
IL_0442: stfld System.Int16 Cell::m_currentCharge
IL_0447: ldloca.s 21 (ElectricityManager+Cell)
IL_0449: ldfld System.Int16 Cell::m_currentCharge
IL_044E: brtrue => Label31
IL_0453: ldloca.s 21 (ElectricityManager+Cell)
IL_0455: ldc.i4.1
IL_0456: stfld System.Boolean Cell::m_tmpElectrified
IL_045B: Label31
IL_045B: ldarg.0
IL_045C: ldfld Cell[] ElectricityManager::m_electricityGrid
IL_0461: ldloc.s 20 (System.Int32)
IL_0463: ldelema ElectricityManager+Cell
IL_0468: ldloc.s 21 (ElectricityManager+Cell)
IL_046A: stobj ElectricityManager+Cell
IL_046F: ldarg.0
IL_0470: ldfld PulseGroup[] ElectricityManager::m_pulseGroups
IL_0475: ldloca.s 18 (ElectricityManager+PulseUnit)
IL_0477: ldfld System.UInt16 PulseUnit::m_group
IL_047C: ldelema ElectricityManager+PulseGroup
IL_0481: ldloc.s 19 (System.UInt32)
IL_0483: stfld System.UInt32 PulseGroup::m_curCharge
IL_0488: Label28
IL_0488: Label29
IL_0488: Label30
IL_0488: ldloc.s 19 (System.UInt32)
IL_048A: brfalse => Label32
IL_048F: ldloca.s 21 (ElectricityManager+Cell)
IL_0491: ldfld System.Byte Cell::m_conductivity
IL_0496: ldc.i4.s 64
IL_0498: blt => Label33
IL_049D: ldc.i4.1
IL_049E: br => Label34
IL_04A3: Label33
IL_04A3: ldc.i4.s 64
IL_04A5: Label34
IL_04A5: stloc.s 23 (System.Int32)
IL_04A7: ldarg.0
IL_04A8: dup
IL_04A9: ldfld System.Int32 ElectricityManager::m_processedCells
IL_04AE: ldc.i4.1
IL_04AF: add
IL_04B0: stfld System.Int32 ElectricityManager::m_processedCells
IL_04B5: ldloca.s 18 (ElectricityManager+PulseUnit)
IL_04B7: ldfld System.Byte PulseUnit::m_z
IL_04BC: ldc.i4.0
IL_04BD: ble => Label35
IL_04C2: ldarg.0
IL_04C3: ldarg.0
IL_04C4: ldfld Cell[] ElectricityManager::m_electricityGrid
IL_04C9: ldloc.s 20 (System.Int32)
IL_04CB: ldc.i4 256
IL_04D0: sub
IL_04D1: ldelema ElectricityManager+Cell
IL_04D6: ldloca.s 18 (ElectricityManager+PulseUnit)
IL_04D8: ldfld System.UInt16 PulseUnit::m_group
IL_04DD: ldloca.s 18 (ElectricityManager+PulseUnit)
IL_04DF: ldfld System.Byte PulseUnit::m_x
IL_04E4: ldloca.s 18 (ElectricityManager+PulseUnit)
IL_04E6: ldfld System.Byte PulseUnit::m_z
IL_04EB: ldc.i4.1
IL_04EC: sub
IL_04ED: ldloc.s 23 (System.Int32)
IL_04EF: call System.Void ElectricityManager::ConductToCell(Cell& cell,
System.UInt16 group, System.Int32 x, System.Int32 z, System.Int32 limit)
IL_04F4: Label35
IL_04F4: ldloca.s 18 (ElectricityManager+PulseUnit)
IL_04F6: ldfld System.Byte PulseUnit::m_x
IL_04FB: ldc.i4.0
IL_04FC: ble => Label36
IL_0501: ldarg.0
IL_0502: ldarg.0
IL_0503: ldfld Cell[] ElectricityManager::m_electricityGrid
IL_0508: ldloc.s 20 (System.Int32)
IL_050A: ldc.i4.1
IL_050B: sub
IL_050C: ldelema ElectricityManager+Cell
IL_0511: ldloca.s 18 (ElectricityManager+PulseUnit)
IL_0513: ldfld System.UInt16 PulseUnit::m_group
IL_0518: ldloca.s 18 (ElectricityManager+PulseUnit)
IL_051A: ldfld System.Byte PulseUnit::m_x
IL_051F: ldc.i4.1
IL_0520: sub
IL_0521: ldloca.s 18 (ElectricityManager+PulseUnit)
IL_0523: ldfld System.Byte PulseUnit::m_z
IL_0528: ldloc.s 23 (System.Int32)
IL_052A: call System.Void ElectricityManager::ConductToCell(Cell& cell,
System.UInt16 group, System.Int32 x, System.Int32 z, System.Int32 limit)
IL_052F: Label36
IL_052F: ldloca.s 18 (ElectricityManager+PulseUnit)
IL_0531: ldfld System.Byte PulseUnit::m_z
IL_0536: ldc.i4 255
IL_053B: bge => Label37
IL_0540: ldarg.0
IL_0541: ldarg.0
IL_0542: ldfld Cell[] ElectricityManager::m_electricityGrid
IL_0547: ldloc.s 20 (System.Int32)
IL_0549: ldc.i4 256
IL_054E: add
IL_054F: ldelema ElectricityManager+Cell
IL_0554: ldloca.s 18 (ElectricityManager+PulseUnit)
IL_0556: ldfld System.UInt16 PulseUnit::m_group
IL_055B: ldloca.s 18 (ElectricityManager+PulseUnit)
IL_055D: ldfld System.Byte PulseUnit::m_x
IL_0562: ldloca.s 18 (ElectricityManager+PulseUnit)
IL_0564: ldfld System.Byte PulseUnit::m_z
IL_0569: ldc.i4.1
IL_056A: add
IL_056B: ldloc.s 23 (System.Int32)
IL_056D: call System.Void ElectricityManager::ConductToCell(Cell& cell,
System.UInt16 group, System.Int32 x, System.Int32 z, System.Int32 limit)
IL_0572: Label37
IL_0572: ldloca.s 18 (ElectricityManager+PulseUnit)
IL_0574: ldfld System.Byte PulseUnit::m_x
IL_0579: ldc.i4 255
IL_057E: bge => Label38
IL_0583: ldarg.0
IL_0584: ldarg.0
IL_0585: ldfld Cell[] ElectricityManager::m_electricityGrid
IL_058A: ldloc.s 20 (System.Int32)
IL_058C: ldc.i4.1
IL_058D: add
IL_058E: ldelema ElectricityManager+Cell
IL_0593: ldloca.s 18 (ElectricityManager+PulseUnit)
IL_0595: ldfld System.UInt16 PulseUnit::m_group
IL_059A: ldloca.s 18 (ElectricityManager+PulseUnit)
IL_059C: ldfld System.Byte PulseUnit::m_x
IL_05A1: ldc.i4.1
IL_05A2: add
IL_05A3: ldloca.s 18 (ElectricityManager+PulseUnit)
IL_05A5: ldfld System.Byte PulseUnit::m_z
IL_05AA: ldloc.s 23 (System.Int32)
IL_05AC: call System.Void ElectricityManager::ConductToCell(Cell& cell,
System.UInt16 group, System.Int32 x, System.Int32 z, System.Int32 limit)
IL_05B1: Label38
IL_05B1: ldarg.0
IL_05B2: ldloca.s 18 (ElectricityManager+PulseUnit)
IL_05B4: ldfld System.UInt16 PulseUnit::m_group
IL_05B9: ldloca.s 18 (ElectricityManager+PulseUnit)
IL_05BB: ldfld System.Byte PulseUnit::m_x
IL_05C0: ldloca.s 18 (ElectricityManager+PulseUnit)
IL_05C2: ldfld System.Byte PulseUnit::m_z
IL_05C7: call System.Void ElectricityManager::ConductToNodes(System.UInt16
group, System.Int32 cellX, System.Int32 cellZ)
IL_05CC: br => Label39
IL_05D1: Label32
IL_05D1: ldarg.0
IL_05D2: ldfld PulseUnit[] ElectricityManager::m_pulseUnits
IL_05D7: ldarg.0
IL_05D8: ldfld System.Int32 ElectricityManager::m_pulseUnitEnd
IL_05DD: ldelema ElectricityManager+PulseUnit
IL_05E2: ldloc.s 18 (ElectricityManager+PulseUnit)
IL_05E4: stobj ElectricityManager+PulseUnit
IL_05E9: ldarg.0
IL_05EA: dup
IL_05EB: ldfld System.Int32 ElectricityManager::m_pulseUnitEnd
IL_05F0: ldc.i4.1
IL_05F1: add
IL_05F2: dup
IL_05F3: stloc.s 15 (System.Int32)
IL_05F5: stfld System.Int32 ElectricityManager::m_pulseUnitEnd
IL_05FA: ldloc.s 15 (System.Int32)
IL_05FC: ldarg.0
IL_05FD: ldfld PulseUnit[] ElectricityManager::m_pulseUnits
IL_0602: ldlen
IL_0603: conv.i4
IL_0604: bne.un => Label40
IL_0609: ldarg.0
IL_060A: ldc.i4.0
IL_060B: stfld System.Int32 ElectricityManager::m_pulseUnitEnd
IL_0610: Label39
IL_0610: Label40
IL_0610: br => Label41
IL_0615: Label27
IL_0615: ldloc.s 19 (System.UInt32)
IL_0617: brfalse => Label42
IL_061C: ldarg.0
IL_061D: dup
IL_061E: ldfld System.Int32 ElectricityManager::m_processedCells
IL_0623: ldc.i4.1
IL_0624: add
IL_0625: stfld System.Int32 ElectricityManager::m_processedCells
IL_062A: call static NetManager
ColossalFramework.Singleton`1<NetManager>::get_instance()
IL_062F: ldfld Array16`1<NetNode> NetManager::m_nodes
IL_0634: ldfld NetNode[] Array16`1<NetNode>::m_buffer
IL_0639: ldloca.s 18 (ElectricityManager+PulseUnit)
IL_063B: ldfld System.UInt16 PulseUnit::m_node
IL_0640: ldelema NetNode
IL_0645: ldobj NetNode
IL_064A: stloc.s 24 (NetNode)
IL_064C: ldloca.s 24 (NetNode)
IL_064E: ldfld Flags NetNode::m_flags
IL_0653: brfalse => Label43
IL_0658: ldloca.s 24 (NetNode)
IL_065A: ldfld System.UInt32 NetNode::m_buildIndex
IL_065F: ldloc.0
IL_0660: ldc.i4.s -128
IL_0662: and
IL_0663: bge.un => Label44
IL_0668: ldarg.0
IL_0669: ldloca.s 18 (ElectricityManager+PulseUnit)
IL_066B: ldfld System.UInt16 PulseUnit::m_group
IL_0670: ldloca.s 24 (NetNode)
IL_0672: ldflda UnityEngine.Vector3 NetNode::m_position
IL_0677: ldfld System.Single UnityEngine.Vector3::x
IL_067C: ldloca.s 24 (NetNode)
IL_067E: ldflda UnityEngine.Vector3 NetNode::m_position
IL_0683: ldfld System.Single UnityEngine.Vector3::z
IL_0688: call System.Void ElectricityManager::ConductToCells(System.UInt16
group, System.Single worldX, System.Single worldZ)
IL_068D: ldc.i4.0
IL_068E: stloc.s 25 (System.Int32)
IL_0690: br => Label45
IL_0695: Label49
IL_0695: ldloca.s 24 (NetNode)
IL_0697: ldloc.s 25 (System.Int32)
IL_0699: call System.UInt16 NetNode::GetSegment(System.Int32 index)
IL_069E: stloc.s 26 (System.UInt16)
IL_06A0: ldloc.s 26 (System.UInt16)
IL_06A2: brfalse => Label46
IL_06A7: call static NetManager
ColossalFramework.Singleton`1<NetManager>::get_instance()
IL_06AC: ldfld Array16`1<NetSegment> NetManager::m_segments
IL_06B1: ldfld NetSegment[] Array16`1<NetSegment>::m_buffer
IL_06B6: ldloc.s 26 (System.UInt16)
IL_06B8: ldelema NetSegment
IL_06BD: ldfld System.UInt16 NetSegment::m_startNode
IL_06C2: stloc.s 27 (System.UInt16)
IL_06C4: call static NetManager
ColossalFramework.Singleton`1<NetManager>::get_instance()
IL_06C9: ldfld Array16`1<NetSegment> NetManager::m_segments
IL_06CE: ldfld NetSegment[] Array16`1<NetSegment>::m_buffer
IL_06D3: ldloc.s 26 (System.UInt16)
IL_06D5: ldelema NetSegment
IL_06DA: ldfld System.UInt16 NetSegment::m_endNode
IL_06DF: stloc.s 28 (System.UInt16)
IL_06E1: ldloc.s 27 (System.UInt16)
IL_06E3: ldloca.s 18 (ElectricityManager+PulseUnit)
IL_06E5: ldfld System.UInt16 PulseUnit::m_node
IL_06EA: bne.un => Label47
IL_06EF: ldloc.s 28 (System.UInt16)
IL_06F1: br => Label48
IL_06F6: Label47
IL_06F6: ldloc.s 27 (System.UInt16)
IL_06F8: Label48
IL_06F8: stloc.s 29 (System.UInt16)
IL_06FA: ldarg.0
IL_06FB: ldloc.s 29 (System.UInt16)
IL_06FD: call static NetManager
ColossalFramework.Singleton`1<NetManager>::get_instance()
IL_0702: ldfld Array16`1<NetNode> NetManager::m_nodes
IL_0707: ldfld NetNode[] Array16`1<NetNode>::m_buffer
IL_070C: ldloc.s 29 (System.UInt16)
IL_070E: ldelema NetNode
IL_0713: ldloca.s 18 (ElectricityManager+PulseUnit)
IL_0715: ldfld System.UInt16 PulseUnit::m_group
IL_071A: ldc.r4 -100000
IL_071F: ldc.r4 -100000
IL_0724: ldc.r4 100000
IL_0729: ldc.r4 100000
IL_072E: call System.Void ElectricityManager::ConductToNode(System.UInt16
nodeIndex, NetNode& node, System.UInt16 group, System.Single minX, System.Single
minZ, System.Single maxX, System.Single maxZ)
IL_0733: Label46
IL_0733: ldloc.s 25 (System.Int32)
IL_0735: ldc.i4.1
IL_0736: add
IL_0737: stloc.s 25 (System.Int32)
IL_0739: Label45
IL_0739: ldloc.s 25 (System.Int32)
IL_073B: ldc.i4.8
IL_073C: blt => Label49
IL_0741: Label43
IL_0741: Label44
IL_0741: br => Label50
IL_0746: Label42
IL_0746: ldarg.0
IL_0747: ldfld PulseUnit[] ElectricityManager::m_pulseUnits
IL_074C: ldarg.0
IL_074D: ldfld System.Int32 ElectricityManager::m_pulseUnitEnd
IL_0752: ldelema ElectricityManager+PulseUnit
IL_0757: ldloc.s 18 (ElectricityManager+PulseUnit)
IL_0759: stobj ElectricityManager+PulseUnit
IL_075E: ldarg.0
IL_075F: dup
IL_0760: ldfld System.Int32 ElectricityManager::m_pulseUnitEnd
IL_0765: ldc.i4.1
IL_0766: add
IL_0767: dup
IL_0768: stloc.s 15 (System.Int32)
IL_076A: stfld System.Int32 ElectricityManager::m_pulseUnitEnd
IL_076F: ldloc.s 15 (System.Int32)
IL_0771: ldarg.0
IL_0772: ldfld PulseUnit[] ElectricityManager::m_pulseUnits
IL_0777: ldlen
IL_0778: conv.i4
IL_0779: bne.un => Label51
IL_077E: ldarg.0
IL_077F: ldc.i4.0
IL_0780: stfld System.Int32 ElectricityManager::m_pulseUnitEnd
IL_0785: Label25
IL_0785: Label41
IL_0785: Label50
IL_0785: Label51
IL_0785: ldarg.0
IL_0786: ldfld System.Int32 ElectricityManager::m_pulseUnitStart
IL_078B: ldloc.s 17 (System.Int32)
IL_078D: bne.un => Label52
IL_0792: Label24
IL_0792: ldarg.0
IL_0793: ldfld System.Boolean ElectricityManager::m_canContinue
IL_0798: brfalse => Label53
IL_079D: ldarg.0
IL_079E: ldfld System.Int32 ElectricityManager::m_processedCells
IL_07A3: ldloc.s 16 (System.Int32)
IL_07A5: blt => Label54
IL_07AA: Label53
IL_07AA: ldloc.1
IL_07AB: ldc.i4 255
IL_07B0: bne.un => Label55
IL_07B5: ldc.i4.0
IL_07B6: stloc.s 30 (System.Int32)
IL_07B8: br => Label56
IL_07BD: Label58
IL_07BD: ldarg.0
IL_07BE: ldfld PulseGroup[] ElectricityManager::m_pulseGroups
IL_07C3: ldloc.s 30 (System.Int32)
IL_07C5: ldelema ElectricityManager+PulseGroup
IL_07CA: ldobj ElectricityManager+PulseGroup
IL_07CF: stloc.s 31 (ElectricityManager+PulseGroup)
IL_07D1: ldloca.s 31 (ElectricityManager+PulseGroup)
IL_07D3: ldfld System.UInt16 PulseGroup::m_mergeIndex
IL_07D8: ldc.i4 65535
IL_07DD: beq => Label57
IL_07E2: ldarg.0
IL_07E3: ldfld PulseGroup[] ElectricityManager::m_pulseGroups
IL_07E8: ldloca.s 31 (ElectricityManager+PulseGroup)
IL_07EA: ldfld System.UInt16 PulseGroup::m_mergeIndex
IL_07EF: ldelema ElectricityManager+PulseGroup
IL_07F4: ldobj ElectricityManager+PulseGroup
IL_07F9: stloc.s 32 (ElectricityManager+PulseGroup)
IL_07FB: ldloca.s 31 (ElectricityManager+PulseGroup)
IL_07FD: ldloca.s 32 (ElectricityManager+PulseGroup)
IL_07FF: ldfld System.UInt32 PulseGroup::m_curCharge
IL_0804: conv.u8
IL_0805: ldloca.s 31 (ElectricityManager+PulseGroup)
IL_0807: ldfld System.UInt32 PulseGroup::m_origCharge
IL_080C: conv.u8
IL_080D: mul
IL_080E: ldloca.s 32 (ElectricityManager+PulseGroup)
IL_0810: ldfld System.UInt32 PulseGroup::m_origCharge
IL_0815: conv.u8
IL_0816: div.un
IL_0817: conv.u4
IL_0818: stfld System.UInt32 PulseGroup::m_curCharge
IL_081D: ldloca.s 32 (ElectricityManager+PulseGroup)
IL_081F: dup
IL_0820: ldfld System.UInt32 PulseGroup::m_curCharge
IL_0825: ldloca.s 31 (ElectricityManager+PulseGroup)
IL_0827: ldfld System.UInt32 PulseGroup::m_curCharge
IL_082C: sub
IL_082D: stfld System.UInt32 PulseGroup::m_curCharge
IL_0832: ldloca.s 32 (ElectricityManager+PulseGroup)
IL_0834: dup
IL_0835: ldfld System.UInt32 PulseGroup::m_origCharge
IL_083A: ldloca.s 31 (ElectricityManager+PulseGroup)
IL_083C: ldfld System.UInt32 PulseGroup::m_origCharge
IL_0841: sub
IL_0842: stfld System.UInt32 PulseGroup::m_origCharge
IL_0847: ldarg.0
IL_0848: ldfld PulseGroup[] ElectricityManager::m_pulseGroups
IL_084D: ldloca.s 31 (ElectricityManager+PulseGroup)
IL_084F: ldfld System.UInt16 PulseGroup::m_mergeIndex
IL_0854: ldelema ElectricityManager+PulseGroup
IL_0859: ldloc.s 32 (ElectricityManager+PulseGroup)
IL_085B: stobj ElectricityManager+PulseGroup
IL_0860: ldarg.0
IL_0861: ldfld PulseGroup[] ElectricityManager::m_pulseGroups
IL_0866: ldloc.s 30 (System.Int32)
IL_0868: ldelema ElectricityManager+PulseGroup
IL_086D: ldloc.s 31 (ElectricityManager+PulseGroup)
IL_086F: stobj ElectricityManager+PulseGroup
IL_0874: Label57
IL_0874: ldloc.s 30 (System.Int32)
IL_0876: ldc.i4.1
IL_0877: add
IL_0878: stloc.s 30 (System.Int32)
IL_087A: Label56
IL_087A: ldloc.s 30 (System.Int32)
IL_087C: ldarg.0
IL_087D: ldfld System.Int32 ElectricityManager::m_pulseGroupCount
IL_0882: blt => Label58
IL_0887: ldc.i4.0
IL_0888: stloc.s 33 (System.Int32)
IL_088A: br => Label59
IL_088F: Label62
IL_088F: ldarg.0
IL_0890: ldfld PulseGroup[] ElectricityManager::m_pulseGroups
IL_0895: ldloc.s 33 (System.Int32)
IL_0897: ldelema ElectricityManager+PulseGroup
IL_089C: ldobj ElectricityManager+PulseGroup
IL_08A1: stloc.s 34 (ElectricityManager+PulseGroup)
IL_08A3: ldloca.s 34 (ElectricityManager+PulseGroup)
IL_08A5: ldfld System.UInt32 PulseGroup::m_curCharge
IL_08AA: brfalse => Label60
IL_08AF: ldloca.s 34 (ElectricityManager+PulseGroup)
IL_08B1: ldfld System.Byte PulseGroup::m_z
IL_08B6: ldc.i4 256
IL_08BB: mul
IL_08BC: ldloca.s 34 (ElectricityManager+PulseGroup)
IL_08BE: ldfld System.Byte PulseGroup::m_x
IL_08C3: add
IL_08C4: stloc.s 35 (System.Int32)
IL_08C6: ldarg.0
IL_08C7: ldfld Cell[] ElectricityManager::m_electricityGrid
IL_08CC: ldloc.s 35 (System.Int32)
IL_08CE: ldelema ElectricityManager+Cell
IL_08D3: ldobj ElectricityManager+Cell
IL_08D8: stloc.s 36 (ElectricityManager+Cell)
IL_08DA: ldloca.s 36 (ElectricityManager+Cell)
IL_08DC: ldfld System.Byte Cell::m_conductivity
IL_08E1: brfalse => Label61
IL_08E6: ldloca.s 36 (ElectricityManager+Cell)
IL_08E8: dup
IL_08E9: ldfld System.UInt16 Cell::m_extraCharge
IL_08EE: ldloca.s 34 (ElectricityManager+PulseGroup)
IL_08F0: ldfld System.UInt32 PulseGroup::m_curCharge
IL_08F5: ldc.i4 32767
IL_08FA: ldloca.s 36 (ElectricityManager+Cell)
IL_08FC: ldfld System.UInt16 Cell::m_extraCharge
IL_0901: sub
IL_0902: call static System.Int32 UnityEngine.Mathf::Min(System.Int32 a,
System.Int32 b)
IL_0907: conv.u2
IL_0908: add
IL_0909: conv.u2
IL_090A: stfld System.UInt16 Cell::m_extraCharge
IL_090F: Label61
IL_090F: ldarg.0
IL_0910: ldfld Cell[] ElectricityManager::m_electricityGrid
IL_0915: ldloc.s 35 (System.Int32)
IL_0917: ldelema ElectricityManager+Cell
IL_091C: ldloc.s 36 (ElectricityManager+Cell)
IL_091E: stobj ElectricityManager+Cell
IL_0923: Label60
IL_0923: ldloc.s 33 (System.Int32)
IL_0925: ldc.i4.1
IL_0926: add
IL_0927: stloc.s 33 (System.Int32)
IL_0929: Label59
IL_0929: ldloc.s 33 (System.Int32)
IL_092B: ldarg.0
IL_092C: ldfld System.Int32 ElectricityManager::m_pulseGroupCount
IL_0931: blt => Label62
IL_0936: // end original
IL_0936: Label0
IL_0936: Label1
IL_0936: Label22
IL_0936: Label55
IL_0936: ret
DONE

### Patch: System.Void ElectricityManager::ConductToNode(System.UInt16 nodeIndex,


NetNode& node, System.UInt16 group, System.Single minX, System.Single minZ,
System.Single maxX, System.Single maxZ)
### Replacement: static System.Void
ElectricityManager::ElectricityManager.ConductToNode_Patch0(ElectricityManager
this, System.UInt16 nodeIndex, NetNode& node, System.UInt16 group, System.Single
minX, System.Single minZ, System.Single maxX, System.Single maxZ)
IL_0000: Local var 0: NetInfo
IL_0000: Local var 1: ElectricityManager/PulseUnit
IL_0000: Local var 2: System.Int32
IL_0000: Local var 3: System.UInt16
IL_0000: // start original
IL_0000: ldarg.2
IL_0001: ldflda UnityEngine.Vector3 NetNode::m_position
IL_0006: ldfld System.Single UnityEngine.Vector3::x
IL_000B: ldarg.s 4
IL_000D: blt.un => Label0
IL_0012: ldarg.2
IL_0013: ldflda UnityEngine.Vector3 NetNode::m_position
IL_0018: ldfld System.Single UnityEngine.Vector3::z
IL_001D: ldarg.s 5
IL_001F: blt.un => Label1
IL_0024: ldarg.2
IL_0025: ldflda UnityEngine.Vector3 NetNode::m_position
IL_002A: ldfld System.Single UnityEngine.Vector3::x
IL_002F: ldarg.s 6
IL_0031: bgt.un => Label2
IL_0036: ldarg.2
IL_0037: ldflda UnityEngine.Vector3 NetNode::m_position
IL_003C: ldfld System.Single UnityEngine.Vector3::z
IL_0041: ldarg.s 7
IL_0043: bgt.un => Label3
IL_0048: ldarg.2
IL_0049: call static System.Boolean
ElectricRoads.Overrides.ElectricRoadsOverrides::CheckElectricConductibility(NetNode
& node)
IL_004E: brfalse => Label5
IL_0053: Label4
IL_0053: ldarg.0
IL_0054: ldfld System.UInt16[] ElectricityManager::m_nodeGroups
IL_0059: ldarg.1
IL_005A: ldelem.u2
IL_005B: ldc.i4 65535
IL_0060: bne.un => Label6
IL_0065: ldloca.s 1 (ElectricityManager+PulseUnit)
IL_0067: ldarg.3
IL_0068: stfld System.UInt16 PulseUnit::m_group
IL_006D: ldloca.s 1 (ElectricityManager+PulseUnit)
IL_006F: ldarg.1
IL_0070: stfld System.UInt16 PulseUnit::m_node
IL_0075: ldloca.s 1 (ElectricityManager+PulseUnit)
IL_0077: ldc.i4.0
IL_0078: stfld System.Byte PulseUnit::m_x
IL_007D: ldloca.s 1 (ElectricityManager+PulseUnit)
IL_007F: ldc.i4.0
IL_0080: stfld System.Byte PulseUnit::m_z
IL_0085: ldarg.0
IL_0086: ldfld PulseUnit[] ElectricityManager::m_pulseUnits
IL_008B: ldarg.0
IL_008C: ldfld System.Int32 ElectricityManager::m_pulseUnitEnd
IL_0091: ldelema ElectricityManager+PulseUnit
IL_0096: ldloc.1
IL_0097: stobj ElectricityManager+PulseUnit
IL_009C: ldarg.0
IL_009D: dup
IL_009E: ldfld System.Int32 ElectricityManager::m_pulseUnitEnd
IL_00A3: ldc.i4.1
IL_00A4: add
IL_00A5: dup
IL_00A6: stloc.2
IL_00A7: stfld System.Int32 ElectricityManager::m_pulseUnitEnd
IL_00AC: ldloc.2
IL_00AD: ldarg.0
IL_00AE: ldfld PulseUnit[] ElectricityManager::m_pulseUnits
IL_00B3: ldlen
IL_00B4: conv.i4
IL_00B5: bne.un => Label7
IL_00BA: ldarg.0
IL_00BB: ldc.i4.0
IL_00BC: stfld System.Int32 ElectricityManager::m_pulseUnitEnd
IL_00C1: Label7
IL_00C1: ldarg.0
IL_00C2: ldfld System.UInt16[] ElectricityManager::m_nodeGroups
IL_00C7: ldarg.1
IL_00C8: ldarg.3
IL_00C9: stelem.i2
IL_00CA: ldarg.0
IL_00CB: ldc.i4.1
IL_00CC: stfld System.Boolean ElectricityManager::m_canContinue
IL_00D1: br => Label8
IL_00D6: Label6
IL_00D6: ldarg.0
IL_00D7: ldarg.0
IL_00D8: ldfld System.UInt16[] ElectricityManager::m_nodeGroups
IL_00DD: ldarg.1
IL_00DE: ldelem.u2
IL_00DF: call System.UInt16 ElectricityManager::GetRootGroup(System.UInt16
group)
IL_00E4: stloc.3
IL_00E5: ldloc.3
IL_00E6: ldarg.3
IL_00E7: beq => Label9
IL_00EC: ldarg.0
IL_00ED: ldarg.3
IL_00EE: ldloc.3
IL_00EF: call System.Void ElectricityManager::MergeGroups(System.UInt16 root,
System.UInt16 merged)
IL_00F4: ldarg.0
IL_00F5: ldfld System.UInt16[] ElectricityManager::m_nodeGroups
IL_00FA: ldarg.1
IL_00FB: ldarg.3
IL_00FC: stelem.i2
IL_00FD: ldarg.0
IL_00FE: ldc.i4.1
IL_00FF: stfld System.Boolean ElectricityManager::m_canContinue
IL_0104: // end original
IL_0104: Label0
IL_0104: Label1
IL_0104: Label2
IL_0104: Label3
IL_0104: Label5
IL_0104: Label8
IL_0104: Label9
IL_0104: ret
DONE

### Patch: System.Void ElectricityManager::UpdateNodeElectricity(System.Int32


nodeID, System.Int32 value)
### Replacement: static System.Void
ElectricityManager::ElectricityManager.UpdateNodeElectricity_Patch2(ElectricityMana
ger this, System.Int32 nodeID, System.Int32 value)
IL_0000: Local var 0: InfoManager/InfoMode
IL_0000: Local var 1: NetManager
IL_0000: Local var 2: System.Boolean
IL_0000: Local var 3: NetNode/Flags
IL_0000: Local var 4: System.UInt16
IL_0000: Local var 5: BuildingManager
IL_0000: Local var 6: NetNode/Flags
IL_0000: Local var 7: System.Int32
IL_0000: Local var 8: System.UInt16
IL_0000: Local var 9: System.Boolean
IL_0000: Local var 10: System.Boolean
IL_0000: ldc.i4 0
IL_0005: stloc 9 (System.Boolean)
IL_0009: ldc.i4.1
IL_000A: stloc 9 (System.Boolean)
IL_000E: ldc.i4 0
IL_0013: stloc 10 (System.Boolean)
IL_0017: ldloc 9 (System.Boolean)
IL_001B: brfalse => Label1
IL_0020: ldarga 1
IL_0024: ldloca 10 (System.Boolean)
IL_0028: call static System.Void
ElectricRoads.Overrides.ElectricRoadsOverrides::PreConduct(System.Int32& nodeID,
System.Boolean& __state)
IL_002D: Label1
IL_002D: nop
IL_002E: ldloc 9 (System.Boolean)
IL_0032: brfalse => Label0
IL_0037: // start original
IL_0037: call static InfoManager
ColossalFramework.Singleton`1<InfoManager>::get_instance()
IL_003C: callvirt InfoMode InfoManager::get_CurrentMode()
IL_0041: stloc.0
IL_0042: call static NetManager
ColossalFramework.Singleton`1<NetManager>::get_instance()
IL_0047: stloc.1
IL_0048: ldc.i4.0
IL_0049: stloc.2
IL_004A: ldloc.1
IL_004B: ldfld Array16`1<NetNode> NetManager::m_nodes
IL_0050: ldfld NetNode[] Array16`1<NetNode>::m_buffer
IL_0055: ldarg.1
IL_0056: ldelema NetNode
IL_005B: ldfld Flags NetNode::m_flags
IL_0060: stloc.3
IL_0061: ldarg.1
IL_0062: call static System.Boolean
ElectricRoads.Overrides.ElectricRoadsOverrides::CheckNodeTransition(System.Int32
nodeID)
IL_0067: brfalse => Label2
IL_006C: ldloc.1
IL_006D: ldfld Array16`1<NetNode> NetManager::m_nodes
IL_0072: ldfld NetNode[] Array16`1<NetNode>::m_buffer
IL_0077: ldarg.1
IL_0078: ldelema NetNode
IL_007D: dup
IL_007E: ldfld Flags NetNode::m_flags
IL_0083: ldc.i4 -1048577
IL_0088: and
IL_0089: stfld Flags NetNode::m_flags
IL_008E: br => Label12
IL_0093: Label2
IL_0093: ldloc.1
IL_0094: ldfld Array16`1<NetNode> NetManager::m_nodes
IL_0099: ldfld NetNode[] Array16`1<NetNode>::m_buffer
IL_009E: ldarg.1
IL_009F: ldelema NetNode
IL_00A4: ldfld System.UInt16 NetNode::m_building
IL_00A9: stloc.s 4 (System.UInt16)
IL_00AB: ldloc.s 4 (System.UInt16)
IL_00AD: brfalse => Label3
IL_00B2: call static BuildingManager
ColossalFramework.Singleton`1<BuildingManager>::get_instance()
IL_00B7: stloc.s 5 (BuildingManager)
IL_00B9: ldloc.s 5 (BuildingManager)
IL_00BB: ldfld Array16`1<Building> BuildingManager::m_buildings
IL_00C0: ldfld Building[] Array16`1<Building>::m_buffer
IL_00C5: ldloc.s 4 (System.UInt16)
IL_00C7: ldelema Building
IL_00CC: ldfld System.UInt16 Building::m_electricityBuffer
IL_00D1: ldarg.2
IL_00D2: beq => Label4
IL_00D7: ldloc.s 5 (BuildingManager)
IL_00D9: ldfld Array16`1<Building> BuildingManager::m_buildings
IL_00DE: ldfld Building[] Array16`1<Building>::m_buffer
IL_00E3: ldloc.s 4 (System.UInt16)
IL_00E5: ldelema Building
IL_00EA: ldarg.2
IL_00EB: conv.u2
IL_00EC: stfld System.UInt16 Building::m_electricityBuffer
IL_00F1: ldloc.0
IL_00F2: ldc.i4.1
IL_00F3: ceq
IL_00F5: stloc.2
IL_00F6: Label4
IL_00F6: ldloc.2
IL_00F7: brfalse => Label5
IL_00FC: ldloc.s 5 (BuildingManager)
IL_00FE: ldloc.s 4 (System.UInt16)
IL_0100: callvirt System.Void BuildingManager::UpdateBuildingColors(System.UInt16
building)
IL_0105: Label3
IL_0105: Label5
IL_0105: ldloc.3
IL_0106: ldc.i4 -67108865
IL_010B: and
IL_010C: stloc.s 6 (NetNode+Flags)
IL_010E: ldarg.2
IL_010F: brfalse => Label6
IL_0114: ldloc.s 6 (NetNode+Flags)
IL_0116: ldc.i4 67108864
IL_011B: or
IL_011C: stloc.s 6 (NetNode+Flags)
IL_011E: Label6
IL_011E: ldloc.s 6 (NetNode+Flags)
IL_0120: ldloc.3
IL_0121: beq => Label7
IL_0126: ldloc.1
IL_0127: ldfld Array16`1<NetNode> NetManager::m_nodes
IL_012C: ldfld NetNode[] Array16`1<NetNode>::m_buffer
IL_0131: ldarg.1
IL_0132: ldelema NetNode
IL_0137: ldloc.s 6 (NetNode+Flags)
IL_0139: stfld Flags NetNode::m_flags
IL_013E: ldloc.0
IL_013F: ldc.i4.1
IL_0140: ceq
IL_0142: stloc.2
IL_0143: Label7
IL_0143: ldloc.2
IL_0144: brfalse => Label8
IL_0149: ldloc.1
IL_014A: ldarg.1
IL_014B: conv.u2
IL_014C: callvirt System.Void NetManager::UpdateNodeColors(System.UInt16 node)
IL_0151: ldc.i4.0
IL_0152: stloc.s 7 (System.Int32)
IL_0154: br => Label9
IL_0159: Label11
IL_0159: ldloc.1
IL_015A: ldfld Array16`1<NetNode> NetManager::m_nodes
IL_015F: ldfld NetNode[] Array16`1<NetNode>::m_buffer
IL_0164: ldarg.1
IL_0165: ldelema NetNode
IL_016A: ldloc.s 7 (System.Int32)
IL_016C: call System.UInt16 NetNode::GetSegment(System.Int32 index)
IL_0171: stloc.s 8 (System.UInt16)
IL_0173: ldloc.s 8 (System.UInt16)
IL_0175: brfalse => Label10
IL_017A: ldloc.1
IL_017B: ldloc.s 8 (System.UInt16)
IL_017D: callvirt System.Void NetManager::UpdateSegmentColors(System.UInt16
segment)
IL_0182: Label10
IL_0182: ldloc.s 7 (System.Int32)
IL_0184: ldc.i4.1
IL_0185: add
IL_0186: stloc.s 7 (System.Int32)
IL_0188: Label9
IL_0188: ldloc.s 7 (System.Int32)
IL_018A: ldc.i4.8
IL_018B: blt => Label11
IL_0190: // end original
IL_0190: Label8
IL_0190: Label12
IL_0190: Label0
IL_0190: ldarg 1
IL_0194: ldloc 10 (System.Boolean)
IL_0198: call static System.Void
ElectricRoads.Overrides.ElectricRoadsOverrides::PostConduct(System.Int32 nodeID,
System.Boolean __state)
IL_019D: ret
DONE
### Harmony id=com.github.algernon-A.csl.lifecyclerebalancerevisited,
version=2.0.4.0, location=E:\SteamLibrary\steamapps\common\data-0000000022595390,
env/clr=2.0.50727.1433, platform=Win32NT, ptrsize:runtime/env=8/Bits64, Windows
### Started from virtual System.Void
AlgernonCommons.Patching.PatcherBase::PatchAll(), location E:\SteamLibrary\
steamapps\common\data-00000000227D2C60
### At 2023-02-07 02.24.37
### Patch: virtual System.Void CitizenManager::SimulationStepImpl(System.Int32
subStep)
### Replacement: static System.Void
CitizenManager::CitizenManager.SimulationStepImpl_Patch1(CitizenManager this,
System.Int32 subStep)
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: CitizenInfo
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: SimulationManager
IL_0000: Local var 10: UnityEngine.Vector3
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: CitizenInfo
IL_0000: ldarg.0
IL_0001: ldarg 1
IL_0005: call static System.Void
LifecycleRebalance.CitizenManagerPatches::Prefix(CitizenManager __instance,
System.Int32 subStep)
IL_000A: // start original
IL_000A: ldarg.1
IL_000B: brfalse => Label0
IL_0010: call static SimulationManager
ColossalFramework.Singleton`1<SimulationManager>::get_instance()
IL_0015: ldfld System.UInt32 SimulationManager::m_currentFrameIndex
IL_001A: ldc.i4 4095
IL_001F: and
IL_0020: stloc.0
IL_0021: ldloc.0
IL_0022: ldc.i4 256
IL_0027: mul
IL_0028: stloc.1
IL_0029: ldloc.0
IL_002A: ldc.i4.1
IL_002B: add
IL_002C: ldc.i4 256
IL_0031: mul
IL_0032: ldc.i4.1
IL_0033: sub
IL_0034: stloc.2
IL_0035: ldloc.1
IL_0036: stloc.3
IL_0037: br => Label1
IL_003C: Label5
IL_003C: ldarg.0
IL_003D: ldfld Array32`1<Citizen> CitizenManager::m_citizens
IL_0042: ldfld Citizen[] Array32`1<Citizen>::m_buffer
IL_0047: ldloc.3
IL_0048: ldelema Citizen
IL_004D: ldfld Flags Citizen::m_flags
IL_0052: ldc.i4.1
IL_0053: and
IL_0054: brfalse => Label2
IL_0059: ldarg.0
IL_005A: ldfld Array32`1<Citizen> CitizenManager::m_citizens
IL_005F: ldfld Citizen[] Array32`1<Citizen>::m_buffer
IL_0064: ldloc.3
IL_0065: ldelema Citizen
IL_006A: ldloc.3
IL_006B: call CitizenInfo Citizen::GetCitizenInfo(System.UInt32 citizenID)
IL_0070: stloc.s 4 (CitizenInfo)
IL_0072: ldloc.s 4 (CitizenInfo)
IL_0074: brtrue => Label3
IL_0079: ldarg.0
IL_007A: ldloc.3
IL_007B: call System.Void CitizenManager::ReleaseCitizen(System.UInt32
citizen)
IL_0080: br => Label4
IL_0085: Label3
IL_0085: ldloc.s 4 (CitizenInfo)
IL_0087: ldfld CitizenAI CitizenInfo::m_citizenAI
IL_008C: ldloc.3
IL_008D: ldarg.0
IL_008E: ldfld Array32`1<Citizen> CitizenManager::m_citizens
IL_0093: ldfld Citizen[] Array32`1<Citizen>::m_buffer
IL_0098: ldloc.3
IL_0099: ldelema Citizen
IL_009E: callvirt virtual System.Void CitizenAI::SimulationStep(System.UInt32
citizenID, Citizen& data)
IL_00A3: Label2
IL_00A3: Label4
IL_00A3: ldloc.3
IL_00A4: ldc.i4.1
IL_00A5: add
IL_00A6: stloc.3
IL_00A7: Label1
IL_00A7: ldloc.3
IL_00A8: ldloc.2
IL_00A9: ble => Label5
IL_00AE: ldloc.0
IL_00AF: ldc.i4 4095
IL_00B4: bne.un => Label6
IL_00B9: ldarg.0
IL_00BA: ldarg.0
IL_00BB: ldfld System.Int32 CitizenManager::m_tempOldestOriginalResident
IL_00C0: stfld System.Int32 CitizenManager::m_finalOldestOriginalResident
IL_00C5: ldarg.0
IL_00C6: ldc.i4.0
IL_00C7: stfld System.Int32 CitizenManager::m_tempOldestOriginalResident
IL_00CC: Label0
IL_00CC: Label6
IL_00CC: ldarg.1
IL_00CD: brfalse => Label7
IL_00D2: call static SimulationManager
ColossalFramework.Singleton`1<SimulationManager>::get_instance()
IL_00D7: ldfld System.UInt32 SimulationManager::m_currentFrameIndex
IL_00DC: ldc.i4 4095
IL_00E1: and
IL_00E2: stloc.s 5 (System.Int32)
IL_00E4: ldloc.s 5 (System.Int32)
IL_00E6: ldc.i4 128
IL_00EB: mul
IL_00EC: stloc.s 6 (System.Int32)
IL_00EE: ldloc.s 5 (System.Int32)
IL_00F0: ldc.i4.1
IL_00F1: add
IL_00F2: ldc.i4 128
IL_00F7: mul
IL_00F8: ldc.i4.1
IL_00F9: sub
IL_00FA: stloc.s 7 (System.Int32)
IL_00FC: ldloc.s 6 (System.Int32)
IL_00FE: stloc.s 8 (System.Int32)
IL_0100: br => Label8
IL_0105: Label10
IL_0105: ldarg.0
IL_0106: ldfld Array32`1<CitizenUnit> CitizenManager::m_units
IL_010B: ldfld CitizenUnit[] Array32`1<CitizenUnit>::m_buffer
IL_0110: ldloc.s 8 (System.Int32)
IL_0112: ldelema CitizenUnit
IL_0117: ldfld Flags CitizenUnit::m_flags
IL_011C: ldc.i4.1
IL_011D: and
IL_011E: conv.u2
IL_011F: brfalse => Label9
IL_0124: ldarg.0
IL_0125: ldfld Array32`1<CitizenUnit> CitizenManager::m_units
IL_012A: ldfld CitizenUnit[] Array32`1<CitizenUnit>::m_buffer
IL_012F: ldloc.s 8 (System.Int32)
IL_0131: ldelema CitizenUnit
IL_0136: ldloc.s 8 (System.Int32)
IL_0138: call System.Void CitizenUnit::SimulationStep(System.UInt32 unitID)
IL_013D: Label9
IL_013D: ldloc.s 8 (System.Int32)
IL_013F: ldc.i4.1
IL_0140: add
IL_0141: stloc.s 8 (System.Int32)
IL_0143: Label8
IL_0143: ldloc.s 8 (System.Int32)
IL_0145: ldloc.s 7 (System.Int32)
IL_0147: ble => Label10
IL_014C: Label7
IL_014C: ldarg.1
IL_014D: brfalse => Label11
IL_0152: call static SimulationManager
ColossalFramework.Singleton`1<SimulationManager>::get_instance()
IL_0157: stloc.s 9 (SimulationManager)
IL_0159: ldloc.s 9 (SimulationManager)
IL_015B: ldflda ViewData SimulationManager::m_simulationView
IL_0160: ldfld UnityEngine.Vector3 ViewData::m_position
IL_0165: ldloc.s 9 (SimulationManager)
IL_0167: ldflda ViewData SimulationManager::m_simulationView
IL_016C: ldfld UnityEngine.Vector3 ViewData::m_direction
IL_0171: ldc.r4 200
IL_0176: call static UnityEngine.Vector3
UnityEngine.Vector3::op_Multiply(UnityEngine.Vector3 a, System.Single d)
IL_017B: call static UnityEngine.Vector3
UnityEngine.Vector3::op_Addition(UnityEngine.Vector3 a, UnityEngine.Vector3 b)
IL_0180: stloc.s 10 (UnityEngine.Vector3)
IL_0182: call static SimulationManager
ColossalFramework.Singleton`1<SimulationManager>::get_instance()
IL_0187: ldfld System.UInt32 SimulationManager::m_currentFrameIndex
IL_018C: ldc.i4.s 15
IL_018E: and
IL_018F: stloc.s 11 (System.Int32)
IL_0191: ldloc.s 11 (System.Int32)
IL_0193: ldc.i4 4096
IL_0198: mul
IL_0199: stloc.s 12 (System.Int32)
IL_019B: ldloc.s 11 (System.Int32)
IL_019D: ldc.i4.1
IL_019E: add
IL_019F: ldc.i4 4096
IL_01A4: mul
IL_01A5: ldc.i4.1
IL_01A6: sub
IL_01A7: stloc.s 13 (System.Int32)
IL_01A9: ldloc.s 12 (System.Int32)
IL_01AB: stloc.s 14 (System.Int32)
IL_01AD: br => Label12
IL_01B2: Label14
IL_01B2: ldarg.0
IL_01B3: ldfld Array16`1<CitizenInstance> CitizenManager::m_instances
IL_01B8: ldfld CitizenInstance[] Array16`1<CitizenInstance>::m_buffer
IL_01BD: ldloc.s 14 (System.Int32)
IL_01BF: ldelema CitizenInstance
IL_01C4: ldfld Flags CitizenInstance::m_flags
IL_01C9: ldc.i4.1
IL_01CA: and
IL_01CB: brfalse => Label13
IL_01D0: ldarg.0
IL_01D1: ldfld Array16`1<CitizenInstance> CitizenManager::m_instances
IL_01D6: ldfld CitizenInstance[] Array16`1<CitizenInstance>::m_buffer
IL_01DB: ldloc.s 14 (System.Int32)
IL_01DD: ldelema CitizenInstance
IL_01E2: call CitizenInfo CitizenInstance::get_Info()
IL_01E7: stloc.s 15 (CitizenInfo)
IL_01E9: ldloc.s 15 (CitizenInfo)
IL_01EB: ldfld CitizenAI CitizenInfo::m_citizenAI
IL_01F0: ldloc.s 14 (System.Int32)
IL_01F2: conv.u2
IL_01F3: ldarg.0
IL_01F4: ldfld Array16`1<CitizenInstance> CitizenManager::m_instances
IL_01F9: ldfld CitizenInstance[] Array16`1<CitizenInstance>::m_buffer
IL_01FE: ldloc.s 14 (System.Int32)
IL_0200: ldelema CitizenInstance
IL_0205: ldloc.s 10 (UnityEngine.Vector3)
IL_0207: callvirt virtual System.Void CitizenAI::SimulationStep(System.UInt16
instanceID, CitizenInstance& data, UnityEngine.Vector3 physicsLodRefPos)
IL_020C: Label13
IL_020C: ldloc.s 14 (System.Int32)
IL_020E: ldc.i4.1
IL_020F: add
IL_0210: stloc.s 14 (System.Int32)
IL_0212: Label12
IL_0212: ldloc.s 14 (System.Int32)
IL_0214: ldloc.s 13 (System.Int32)
IL_0216: ble => Label14
IL_021B: // end original
IL_021B: Label11
IL_021B: ret
DONE

### Patch: static AgeGroup Citizen::GetAgeGroup(System.Int32 age)


### Replacement: static AgeGroup Citizen::Citizen.GetAgeGroup_Patch1(System.Int32
age)
IL_0000: Local var 0: System.Int32
IL_0000: Local var 1: System.Boolean
IL_0000: ldc.i4 0
IL_0005: stloc 0 (System.Int32)
IL_0009: ldc.i4 0
IL_000E: stloc 1 (System.Boolean)
IL_0012: ldc.i4.1
IL_0013: stloc 1 (System.Boolean)
IL_0017: ldloc 1 (System.Boolean)
IL_001B: brfalse => Label1
IL_0020: ldloca 0 (System.Int32)
IL_0024: ldarg 0
IL_0028: call static System.Boolean
LifecycleRebalance.CitizenPatches::GetAgeGroup(AgeGroup& __result, System.Int32
age)
IL_002D: stloc 1 (System.Boolean)
IL_0031: Label1
IL_0031: nop
IL_0032: ldloc 1 (System.Boolean)
IL_0036: brfalse => Label0
IL_003B: // start original
IL_003B: ldarg.0
IL_003C: ldc.i4.s 15
IL_003E: bge => Label2
IL_0043: ldc.i4.0
IL_0044: br => Label6
IL_0049: Label2
IL_0049: ldarg.0
IL_004A: ldc.i4.s 45
IL_004C: bge => Label3
IL_0051: ldc.i4.1
IL_0052: br => Label7
IL_0057: Label3
IL_0057: ldarg.0
IL_0058: ldc.i4.s 90
IL_005A: bge => Label4
IL_005F: ldc.i4.2
IL_0060: br => Label8
IL_0065: Label4
IL_0065: ldarg.0
IL_0066: ldc.i4 180
IL_006B: bge => Label5
IL_0070: ldc.i4.3
IL_0071: br => Label9
IL_0076: Label5
IL_0076: ldc.i4.4
IL_0077: // end original
IL_0077: Label6
IL_0077: Label7
IL_0077: Label8
IL_0077: Label9
IL_0077: stloc 0 (System.Int32)
IL_007B: Label0
IL_007B: ldloc 0 (System.Int32)
IL_007F: ret
DONE

### Patch: static AgePhase Citizen::GetAgePhase(Education education, System.Int32


age)
### Replacement: static AgePhase Citizen::Citizen.GetAgePhase_Patch1(Education
education, System.Int32 age)
IL_0000: Local var 0: System.Int32
IL_0000: Local var 1: System.Boolean
IL_0000: ldc.i4 0
IL_0005: stloc 0 (System.Int32)
IL_0009: ldc.i4 0
IL_000E: stloc 1 (System.Boolean)
IL_0012: ldc.i4.1
IL_0013: stloc 1 (System.Boolean)
IL_0017: ldloc 1 (System.Boolean)
IL_001B: brfalse => Label1
IL_0020: ldloca 0 (System.Int32)
IL_0024: ldarg 0
IL_0028: ldarg 1
IL_002C: call static System.Boolean
LifecycleRebalance.CitizenPatches::GetAgePhase(AgePhase& __result, Education
education, System.Int32 age)
IL_0031: stloc 1 (System.Boolean)
IL_0035: Label1
IL_0035: nop
IL_0036: ldloc 1 (System.Boolean)
IL_003A: brfalse => Label0
IL_003F: // start original
IL_003F: ldarg.1
IL_0040: ldc.i4.s 15
IL_0042: bge => Label2
IL_0047: ldc.i4.0
IL_0048: br => Label6
IL_004D: Label2
IL_004D: ldarg.1
IL_004E: ldc.i4.s 45
IL_0050: bge => Label3
IL_0055: ldc.i4.1
IL_0056: ldarg.0
IL_0057: add
IL_0058: br => Label7
IL_005D: Label3
IL_005D: ldarg.1
IL_005E: ldc.i4.s 90
IL_0060: bge => Label4
IL_0065: ldc.i4.3
IL_0066: ldarg.0
IL_0067: add
IL_0068: br => Label8
IL_006D: Label4
IL_006D: ldarg.1
IL_006E: ldc.i4 180
IL_0073: bge => Label5
IL_0078: ldc.i4.6
IL_0079: ldarg.0
IL_007A: add
IL_007B: br => Label9
IL_0080: Label5
IL_0080: ldc.i4.s 10
IL_0082: ldarg.0
IL_0083: add
IL_0084: // end original
IL_0084: Label6
IL_0084: Label7
IL_0084: Label8
IL_0084: Label9
IL_0084: stloc 0 (System.Int32)
IL_0088: Label0
IL_0088: ldloc 0 (System.Int32)
IL_008C: ret
DONE

### Patch: System.Void Citizen::GetCitizenHomeBehaviour(BehaviourData& behaviour,


System.Int32& aliveCount, System.Int32& totalCount)
### Replacement: static System.Void
Citizen::Citizen.GetCitizenHomeBehaviour_Patch1(Citizen& this, BehaviourData&
behaviour, System.Int32& aliveCount, System.Int32& totalCount)
IL_0000: Local var 0: System.Int32
IL_0000: Local var 1: Citizen/Education
IL_0000: Local var 2: Citizen/AgePhase
IL_0000: Local var 3: Citizen/AgeGroup
IL_0000: Local var 4: System.Int32
IL_0000: Local var 5: System.Int32
IL_0000: // start original
IL_0000: ldarg.0
IL_0001: ldfld Flags Citizen::m_flags
IL_0006: ldc.i4.s 32
IL_0008: and
IL_0009: brtrue => Label0
IL_000E: ldarg.0
IL_000F: call System.Boolean Citizen::get_Dead()
IL_0014: brfalse => Label1
IL_0019: ldarg.0
IL_001A: call Location Citizen::get_CurrentLocation()
IL_001F: brtrue => Label2
IL_0024: ldarg.1
IL_0025: dup
IL_0026: ldfld System.Int32 BehaviourData::m_deadCount
IL_002B: ldc.i4.1
IL_002C: add
IL_002D: stfld System.Int32 BehaviourData::m_deadCount
IL_0032: Label2
IL_0032: br => Label3
IL_0037: Label1
IL_0037: ldarg.0
IL_0038: call System.Boolean Citizen::get_Sick()
IL_003D: brfalse => Label4
IL_0042: ldarg.1
IL_0043: dup
IL_0044: ldfld System.Int32 BehaviourData::m_totalSickCount
IL_0049: ldc.i4.1
IL_004A: add
IL_004B: stfld System.Int32 BehaviourData::m_totalSickCount
IL_0050: ldarg.0
IL_0051: call Location Citizen::get_CurrentLocation()
IL_0056: brtrue => Label5
IL_005B: ldarg.1
IL_005C: dup
IL_005D: ldfld System.Int32 BehaviourData::m_sickCount
IL_0062: ldc.i4.1
IL_0063: add
IL_0064: stfld System.Int32 BehaviourData::m_sickCount
IL_0069: Label4
IL_0069: Label5
IL_0069: ldarg.0
IL_006A: call System.Int32 Citizen::get_Age()
IL_006F: stloc.0
IL_0070: ldarg.0
IL_0071: call Education Citizen::get_EducationLevel()
IL_0076: stloc.1
IL_0077: ldloc.1
IL_0078: ldloc.0
IL_0079: call static AgePhase Citizen::GetAgePhase(Education education,
System.Int32 age)
IL_007E: stloc.2
IL_007F: ldloc.0
IL_0080: call static AgeGroup Citizen::GetAgeGroup(System.Int32 age)
IL_0085: stloc.3
IL_0086: ldarg.0
IL_0087: call System.Int32 Citizen::get_Unemployed()
IL_008C: stloc.s 4 (System.Int32)
IL_008E: ldloc.1
IL_008F: ldarg.0
IL_0090: ldfld System.Byte Citizen::m_wellbeing
IL_0095: call static Wellbeing Citizen::GetWellbeingLevel(Education
education, System.Int32 wellbeing)
IL_009A: ldloc.s 4 (System.Int32)
IL_009C: ldarg.0
IL_009D: call System.Boolean Citizen::get_Criminal()
IL_00A2: call static System.Int32 Citizen::GetCrimeRate(Wellbeing
happinessLevel, System.Int32 unemploymentLength, System.Boolean isCriminal)
IL_00A7: stloc.s 5 (System.Int32)
IL_00A9: ldarg.1
IL_00AA: dup
IL_00AB: ldfld System.Int32 BehaviourData::m_electricityConsumption
IL_00B0: ldloc.1
IL_00B1: call static System.Int32
Citizen::GetElectricityConsumption(Education educationLevel)
IL_00B6: add
IL_00B7: stfld System.Int32 BehaviourData::m_electricityConsumption
IL_00BC: ldarg.1
IL_00BD: dup
IL_00BE: ldfld System.Int32 BehaviourData::m_waterConsumption
IL_00C3: ldloc.1
IL_00C4: call static System.Int32 Citizen::GetWaterConsumption(Education
educationLevel)
IL_00C9: add
IL_00CA: stfld System.Int32 BehaviourData::m_waterConsumption
IL_00CF: ldarg.1
IL_00D0: dup
IL_00D1: ldfld System.Int32 BehaviourData::m_sewageAccumulation
IL_00D6: ldloc.1
IL_00D7: call static System.Int32 Citizen::GetSewageAccumulation(Education
educationLevel)
IL_00DC: add
IL_00DD: stfld System.Int32 BehaviourData::m_sewageAccumulation
IL_00E2: ldarg.1
IL_00E3: dup
IL_00E4: ldfld System.Int32 BehaviourData::m_garbageAccumulation
IL_00E9: ldloc.1
IL_00EA: call static System.Int32 Citizen::GetGarbageAccumulation(Education
educationLevel)
IL_00EF: add
IL_00F0: stfld System.Int32 BehaviourData::m_garbageAccumulation
IL_00F5: ldarg.1
IL_00F6: dup
IL_00F7: ldfld System.Int32 BehaviourData::m_mailAccumulation
IL_00FC: ldloc.1
IL_00FD: call static System.Int32 Citizen::GetMailAccumulation(Education
educationLevel)
IL_0102: add
IL_0103: stfld System.Int32 BehaviourData::m_mailAccumulation
IL_0108: ldarg.1
IL_0109: dup
IL_010A: ldfld System.Int32 BehaviourData::m_incomeAccumulation
IL_010F: ldloc.2
IL_0110: ldloc.s 4 (System.Int32)
IL_0112: call static System.Int32 Citizen::GetIncomeRate(AgePhase agePhase,
System.Int32 unemploymentLength)
IL_0117: add
IL_0118: stfld System.Int32 BehaviourData::m_incomeAccumulation
IL_011D: ldarg.0
IL_011E: call System.Boolean Citizen::get_Arrested()
IL_0123: brtrue => Label6
IL_0128: ldarg.1
IL_0129: dup
IL_012A: ldfld System.Int32 BehaviourData::m_crimeAccumulation
IL_012F: ldloc.s 5 (System.Int32)
IL_0131: add
IL_0132: stfld System.Int32 BehaviourData::m_crimeAccumulation
IL_0137: Label6
IL_0137: ldarg.1
IL_0138: dup
IL_0139: ldfld System.Int32 BehaviourData::m_healthAccumulation
IL_013E: ldarg.0
IL_013F: ldfld System.Byte Citizen::m_health
IL_0144: add
IL_0145: stfld System.Int32 BehaviourData::m_healthAccumulation
IL_014A: ldarg.1
IL_014B: dup
IL_014C: ldfld System.Int32 BehaviourData::m_wellbeingAccumulation
IL_0151: ldarg.0
IL_0152: ldfld System.Byte Citizen::m_wellbeing
IL_0157: add
IL_0158: stfld System.Int32 BehaviourData::m_wellbeingAccumulation
IL_015D: ldloc.3
IL_015E: switch => Labels7,8,9,10,11
IL_0177: br => Label12
IL_017C: Label7
IL_017C: ldarg.0
IL_017D: call System.Boolean Citizen::get_Education1()
IL_0182: brtrue => Label13
IL_0187: ldarg.1
IL_0188: dup
IL_0189: ldfld System.Int32 BehaviourData::m_elementaryEligibleCount
IL_018E: ldc.i4.1
IL_018F: add
IL_0190: stfld System.Int32 BehaviourData::m_elementaryEligibleCount
IL_0195: Label13
IL_0195: ldarg.1
IL_0196: dup
IL_0197: ldfld System.Int32 BehaviourData::m_childCount
IL_019C: ldc.i4.1
IL_019D: add
IL_019E: stfld System.Int32 BehaviourData::m_childCount
IL_01A3: ldarg.1
IL_01A4: dup
IL_01A5: ldfld System.Int32 BehaviourData::m_childHealthAccumulation
IL_01AA: ldarg.0
IL_01AB: ldfld System.Byte Citizen::m_health
IL_01B0: add
IL_01B1: stfld System.Int32 BehaviourData::m_childHealthAccumulation
IL_01B6: ldarg.0
IL_01B7: call System.Boolean Citizen::get_Sick()
IL_01BC: brfalse => Label14
IL_01C1: ldarg.1
IL_01C2: dup
IL_01C3: ldfld System.Int32 BehaviourData::m_sickChildCount
IL_01C8: ldc.i4.1
IL_01C9: add
IL_01CA: stfld System.Int32 BehaviourData::m_sickChildCount
IL_01CF: Label14
IL_01CF: br => Label15
IL_01D4: Label8
IL_01D4: ldarg.0
IL_01D5: call System.Boolean Citizen::get_Education1()
IL_01DA: brfalse => Label16
IL_01DF: ldarg.0
IL_01E0: call System.Boolean Citizen::get_Education2()
IL_01E5: brtrue => Label17
IL_01EA: ldarg.1
IL_01EB: dup
IL_01EC: ldfld System.Int32 BehaviourData::m_highschoolEligibleCount
IL_01F1: ldc.i4.1
IL_01F2: add
IL_01F3: stfld System.Int32 BehaviourData::m_highschoolEligibleCount
IL_01F8: Label16
IL_01F8: Label17
IL_01F8: ldarg.1
IL_01F9: dup
IL_01FA: ldfld System.Int32 BehaviourData::m_teenCount
IL_01FF: ldc.i4.1
IL_0200: add
IL_0201: stfld System.Int32 BehaviourData::m_teenCount
IL_0206: ldarg.1
IL_0207: dup
IL_0208: ldfld System.Int32 BehaviourData::m_childHealthAccumulation
IL_020D: ldarg.0
IL_020E: ldfld System.Byte Citizen::m_health
IL_0213: add
IL_0214: stfld System.Int32 BehaviourData::m_childHealthAccumulation
IL_0219: ldarg.0
IL_021A: call System.Boolean Citizen::get_Sick()
IL_021F: brfalse => Label18
IL_0224: ldarg.1
IL_0225: dup
IL_0226: ldfld System.Int32 BehaviourData::m_sickChildCount
IL_022B: ldc.i4.1
IL_022C: add
IL_022D: stfld System.Int32 BehaviourData::m_sickChildCount
IL_0232: Label18
IL_0232: br => Label19
IL_0237: Label9
IL_0237: ldarg.0
IL_0238: call System.Boolean Citizen::get_Education1()
IL_023D: brfalse => Label20
IL_0242: ldarg.0
IL_0243: call System.Boolean Citizen::get_Education2()
IL_0248: brfalse => Label21
IL_024D: ldarg.0
IL_024E: call System.Boolean Citizen::get_Education3()
IL_0253: brtrue => Label22
IL_0258: ldarg.1
IL_0259: dup
IL_025A: ldfld System.Int32 BehaviourData::m_universityEligibleCount
IL_025F: ldc.i4.1
IL_0260: add
IL_0261: stfld System.Int32 BehaviourData::m_universityEligibleCount
IL_0266: Label20
IL_0266: Label21
IL_0266: Label22
IL_0266: ldarg.1
IL_0267: dup
IL_0268: ldfld System.Int32 BehaviourData::m_youngCount
IL_026D: ldc.i4.1
IL_026E: add
IL_026F: stfld System.Int32 BehaviourData::m_youngCount
IL_0274: br => Label23
IL_0279: Label10
IL_0279: ldarg.0
IL_027A: call System.Boolean Citizen::get_Education1()
IL_027F: brfalse => Label24
IL_0284: ldarg.0
IL_0285: call System.Boolean Citizen::get_Education2()
IL_028A: brfalse => Label25
IL_028F: ldarg.0
IL_0290: call System.Boolean Citizen::get_Education3()
IL_0295: brtrue => Label26
IL_029A: ldarg.1
IL_029B: dup
IL_029C: ldfld System.Int32 BehaviourData::m_universityEligibleCount
IL_02A1: ldc.i4.1
IL_02A2: add
IL_02A3: stfld System.Int32 BehaviourData::m_universityEligibleCount
IL_02A8: Label24
IL_02A8: Label25
IL_02A8: Label26
IL_02A8: ldarg.1
IL_02A9: dup
IL_02AA: ldfld System.Int32 BehaviourData::m_adultCount
IL_02AF: ldc.i4.1
IL_02B0: add
IL_02B1: stfld System.Int32 BehaviourData::m_adultCount
IL_02B6: br => Label27
IL_02BB: Label11
IL_02BB: ldarg.1
IL_02BC: dup
IL_02BD: ldfld System.Int32 BehaviourData::m_seniorCount
IL_02C2: ldc.i4.1
IL_02C3: add
IL_02C4: stfld System.Int32 BehaviourData::m_seniorCount
IL_02C9: ldarg.1
IL_02CA: dup
IL_02CB: ldfld System.Int32 BehaviourData::m_seniorHealthAccumulation
IL_02D0: ldarg.0
IL_02D1: ldfld System.Byte Citizen::m_health
IL_02D6: add
IL_02D7: stfld System.Int32 BehaviourData::m_seniorHealthAccumulation
IL_02DC: ldarg.0
IL_02DD: call System.Boolean Citizen::get_Sick()
IL_02E2: brfalse => Label28
IL_02E7: ldarg.1
IL_02E8: dup
IL_02E9: ldfld System.Int32 BehaviourData::m_sickSeniorCount
IL_02EE: ldc.i4.1
IL_02EF: add
IL_02F0: stfld System.Int32 BehaviourData::m_sickSeniorCount
IL_02F5: Label28
IL_02F5: br => Label29
IL_02FA: Label12
IL_02FA: Label15
IL_02FA: Label19
IL_02FA: Label23
IL_02FA: Label27
IL_02FA: Label29
IL_02FA: ldarg.0
IL_02FB: call System.Boolean Citizen::get_Education1()
IL_0300: brfalse => Label30
IL_0305: ldarg.1
IL_0306: dup
IL_0307: ldfld System.Int32 BehaviourData::m_education1Count
IL_030C: ldc.i4.1
IL_030D: add
IL_030E: stfld System.Int32 BehaviourData::m_education1Count
IL_0313: Label30
IL_0313: ldarg.0
IL_0314: call System.Boolean Citizen::get_Education2()
IL_0319: brfalse => Label31
IL_031E: ldarg.1
IL_031F: dup
IL_0320: ldfld System.Int32 BehaviourData::m_education2Count
IL_0325: ldc.i4.1
IL_0326: add
IL_0327: stfld System.Int32 BehaviourData::m_education2Count
IL_032C: Label31
IL_032C: ldarg.0
IL_032D: call System.Boolean Citizen::get_Education3()
IL_0332: brfalse => Label32
IL_0337: ldarg.1
IL_0338: dup
IL_0339: ldfld System.Int32 BehaviourData::m_education3Count
IL_033E: ldc.i4.1
IL_033F: add
IL_0340: stfld System.Int32 BehaviourData::m_education3Count
IL_0345: Label32
IL_0345: ldloc.1
IL_0346: switch => Labels33,34,35,36
IL_035B: br => Label37
IL_0360: Label33
IL_0360: ldarg.1
IL_0361: dup
IL_0362: ldfld System.Int32 BehaviourData::m_educated0Count
IL_0367: ldc.i4.1
IL_0368: add
IL_0369: stfld System.Int32 BehaviourData::m_educated0Count
IL_036E: br => Label38
IL_0373: Label34
IL_0373: ldarg.1
IL_0374: dup
IL_0375: ldfld System.Int32 BehaviourData::m_educated1Count
IL_037A: ldc.i4.1
IL_037B: add
IL_037C: stfld System.Int32 BehaviourData::m_educated1Count
IL_0381: br => Label39
IL_0386: Label35
IL_0386: ldarg.1
IL_0387: dup
IL_0388: ldfld System.Int32 BehaviourData::m_educated2Count
IL_038D: ldc.i4.1
IL_038E: add
IL_038F: stfld System.Int32 BehaviourData::m_educated2Count
IL_0394: br => Label40
IL_0399: Label36
IL_0399: ldarg.1
IL_039A: dup
IL_039B: ldfld System.Int32 BehaviourData::m_educated3Count
IL_03A0: ldc.i4.1
IL_03A1: add
IL_03A2: stfld System.Int32 BehaviourData::m_educated3Count
IL_03A7: br => Label41
IL_03AC: Label37
IL_03AC: Label38
IL_03AC: Label39
IL_03AC: Label40
IL_03AC: Label41
IL_03AC: ldloc.s 4 (System.Int32)
IL_03AE: brfalse => Label42
IL_03B3: ldloc.1
IL_03B4: switch => Labels43,44,45,46
IL_03C9: br => Label47
IL_03CE: Label43
IL_03CE: ldarg.1
IL_03CF: dup
IL_03D0: ldfld System.Int32 BehaviourData::m_educated0Unemployed
IL_03D5: ldc.i4.1
IL_03D6: add
IL_03D7: stfld System.Int32 BehaviourData::m_educated0Unemployed
IL_03DC: br => Label48
IL_03E1: Label44
IL_03E1: ldarg.1
IL_03E2: dup
IL_03E3: ldfld System.Int32 BehaviourData::m_educated1Unemployed
IL_03E8: ldc.i4.1
IL_03E9: add
IL_03EA: stfld System.Int32 BehaviourData::m_educated1Unemployed
IL_03EF: br => Label49
IL_03F4: Label45
IL_03F4: ldarg.1
IL_03F5: dup
IL_03F6: ldfld System.Int32 BehaviourData::m_educated2Unemployed
IL_03FB: ldc.i4.1
IL_03FC: add
IL_03FD: stfld System.Int32 BehaviourData::m_educated2Unemployed
IL_0402: br => Label50
IL_0407: Label46
IL_0407: ldarg.1
IL_0408: dup
IL_0409: ldfld System.Int32 BehaviourData::m_educated3Unemployed
IL_040E: ldc.i4.1
IL_040F: add
IL_0410: stfld System.Int32 BehaviourData::m_educated3Unemployed
IL_0415: br => Label51
IL_041A: Label42
IL_041A: Label47
IL_041A: Label48
IL_041A: Label49
IL_041A: Label50
IL_041A: Label51
IL_041A: ldloc.3
IL_041B: ldc.i4.2
IL_041C: beq => Label52
IL_0421: ldloc.3
IL_0422: ldc.i4.3
IL_0423: bne.un => Label53
IL_0428: Label52
IL_0428: ldloc.1
IL_0429: switch => Labels54,55,56,57
IL_043E: br => Label58
IL_0443: Label54
IL_0443: ldarg.1
IL_0444: dup
IL_0445: ldfld System.Int32 BehaviourData::m_educated0EligibleWorkers
IL_044A: ldc.i4.1
IL_044B: add
IL_044C: stfld System.Int32 BehaviourData::m_educated0EligibleWorkers
IL_0451: br => Label59
IL_0456: Label55
IL_0456: ldarg.1
IL_0457: dup
IL_0458: ldfld System.Int32 BehaviourData::m_educated1EligibleWorkers
IL_045D: ldc.i4.1
IL_045E: add
IL_045F: stfld System.Int32 BehaviourData::m_educated1EligibleWorkers
IL_0464: br => Label60
IL_0469: Label56
IL_0469: ldarg.1
IL_046A: dup
IL_046B: ldfld System.Int32 BehaviourData::m_educated2EligibleWorkers
IL_0470: ldc.i4.1
IL_0471: add
IL_0472: stfld System.Int32 BehaviourData::m_educated2EligibleWorkers
IL_0477: br => Label61
IL_047C: Label57
IL_047C: ldarg.1
IL_047D: dup
IL_047E: ldfld System.Int32 BehaviourData::m_educated3EligibleWorkers
IL_0483: ldc.i4.1
IL_0484: add
IL_0485: stfld System.Int32 BehaviourData::m_educated3EligibleWorkers
IL_048A: br => Label62
IL_048F: Label53
IL_048F: Label58
IL_048F: Label59
IL_048F: Label60
IL_048F: Label61
IL_048F: Label62
IL_048F: ldarg.2
IL_0490: ldarg.2
IL_0491: ldind.i4
IL_0492: ldc.i4.1
IL_0493: add
IL_0494: stind.i4
IL_0495: Label0
IL_0495: Label3
IL_0495: ldarg.3
IL_0496: ldarg.3
IL_0497: ldind.i4
IL_0498: ldc.i4.1
IL_0499: add
IL_049A: stind.i4
IL_049B: // end original
IL_049B: ldarg.0
IL_049C: ldobj Citizen
IL_04A1: ldarg 1
IL_04A5: call static System.Void
LifecycleRebalance.CitizenPatches::GetCitizenHomeBehaviour(Citizen __instance,
BehaviourData& behaviour)
IL_04AA: ret
DONE

### Patch: static System.Boolean


OutsideConnectionAI::StartConnectionTransferImpl(System.UInt16 buildingID,
Building& data, TransferReason material, TransferOffer offer, System.Int32
touristFactor0, System.Int32 touristFactor1, System.Int32 touristFactor2)
### Replacement: static System.Boolean
OutsideConnectionAI::OutsideConnectionAI.StartConnectionTransferImpl_Patch0(System.
UInt16 buildingID, Building& data, TransferReason material, TransferOffer offer,
System.Int32 touristFactor0, System.Int32 touristFactor1, System.Int32
touristFactor2)
IL_0000: Local var 0: BuildingManager
IL_0000: Local var 1: VehicleInfo
IL_0000: Local var 2: Citizen/Education
IL_0000: Local var 3: System.Int32
IL_0000: Local var 4: System.Boolean
IL_0000: Local var 5: System.Boolean
IL_0000: Local var 6: System.Boolean
IL_0000: Local var 7: System.UInt16
IL_0000: Local var 8: UnityEngine.Vector3
IL_0000: Local var 9: System.Int32
IL_0000: Local var 10: System.Int32
IL_0000: Local var 11: CitizenManager
IL_0000: Local var 12: System.UInt16
IL_0000: Local var 13: System.UInt32
IL_0000: Local var 14: System.Int32
IL_0000: Local var 15: System.UInt16
IL_0000: Local var 16: Citizen/Gender
IL_0000: Local var 17: System.Int32
IL_0000: Local var 18: System.UInt32
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: Citizen/Education
IL_0000: Local var 23: System.Boolean
IL_0000: Local var 24: System.Boolean
IL_0000: Local var 25: Citizen/Gender
IL_0000: Local var 26: CitizenInfo
IL_0000: Local var 27: System.UInt16
IL_0000: Local var 28: CitizenManager
IL_0000: Local var 29: System.UInt16
IL_0000: Local var 30: System.UInt16
IL_0000: Local var 31: System.Int32
IL_0000: Local var 32: System.UInt32
IL_0000: Local var 33: System.UInt32
IL_0000: Local var 34: System.Int32
IL_0000: Local var 35: Citizen/Wealth
IL_0000: Local var 36: System.Int32
IL_0000: Local var 37: System.Int32
IL_0000: Local var 38: CitizenInfo
IL_0000: Local var 39: System.UInt16
IL_0000: Local var 40: StatisticBase
IL_0000: Local var 41: TransportManager
IL_0000: Local var 42: System.Int32
IL_0000: Local var 43: System.Int32
IL_0000: Local var 44: System.UInt16
IL_0000: Local var 45: System.Int32
IL_0000: Local var 46: System.Int32
IL_0000: Local var 47: Citizen/Wealth
IL_0000: Local var 48: System.Int32
IL_0000: Local var 49: System.Int32
IL_0000: Local var 50: System.UInt32
IL_0000: Local var 51: CitizenInfo
IL_0000: Local var 52: System.UInt16
IL_0000: Local var 53: StatisticBase
IL_0000: Local var 54: System.UInt16
IL_0000: Local var 55: Array16`1<Vehicle>
IL_0000: Local var 56: System.UInt16
IL_0000: Local var 57: System.UInt16
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: // start original
IL_0000: call static BuildingManager
ColossalFramework.Singleton`1<BuildingManager>::get_instance()
IL_0005: stloc.0
IL_0006: ldnull
IL_0007: stloc.1
IL_0008: ldc.i4.0
IL_0009: stloc.2
IL_000A: ldc.i4.0
IL_000B: stloc.3
IL_000C: ldc.i4.0
IL_000D: stloc.s 4 (System.Boolean)
IL_000F: ldc.i4.0
IL_0010: stloc.s 5 (System.Boolean)
IL_0012: ldc.i4.0
IL_0013: stloc.s 6 (System.Boolean)
IL_0015: ldarg.2
IL_0016: ldc.i4.s 43
IL_0018: bne.un => Label0
IL_001D: ldarga.s 3
IL_001F: call System.UInt16 TransferOffer::get_Building()
IL_0024: stloc.s 7 (System.UInt16)
IL_0026: ldloc.s 7 (System.UInt16)
IL_0028: brfalse => Label1
IL_002D: ldloc.0
IL_002E: ldfld Array16`1<Building> BuildingManager::m_buildings
IL_0033: ldfld Building[] Array16`1<Building>::m_buffer
IL_0038: ldloc.s 7 (System.UInt16)
IL_003A: ldelema Building
IL_003F: ldfld UnityEngine.Vector3 Building::m_position
IL_0044: stloc.s 8 (UnityEngine.Vector3)
IL_0046: ldloc.s 8 (UnityEngine.Vector3)
IL_0048: ldarg.1
IL_0049: ldfld UnityEngine.Vector3 Building::m_position
IL_004E: call static UnityEngine.Vector3
UnityEngine.Vector3::op_Subtraction(UnityEngine.Vector3 a, UnityEngine.Vector3 b)
IL_0053: call static System.Single
UnityEngine.Vector3::SqrMagnitude(UnityEngine.Vector3 a)
IL_0058: ldc.r4 40000
IL_005D: ble.un => Label2
IL_0062: ldc.i4.1
IL_0063: stloc.s 5 (System.Boolean)
IL_0065: call static SimulationManager
ColossalFramework.Singleton`1<SimulationManager>::get_instance()
IL_006A: ldflda ColossalFramework.Math.Randomizer
SimulationManager::m_randomizer
IL_006F: ldc.i4.s 39
IL_0071: call System.Int32
ColossalFramework.Math.Randomizer::Int32(System.UInt32 range)
IL_0076: stloc.s 9 (System.Int32)
IL_0078: ldloc.s 9 (System.Int32)
IL_007A: switch =>
Labels3,4,5,6,7,8,9,10,11,12,13,14,15,16,17,18,19,20,21,22,23,24,25,26,27,28,29,30,
31,32,33,34,35,36,37,38,39,40,41
IL_011B: br => Label42
IL_0120: Label3
IL_0120: ldc.i4.s 14
IL_0122: starg.s 2
IL_0124: br => Label43
IL_0129: Label4
IL_0129: ldc.i4.s 19
IL_012B: starg.s 2
IL_012D: br => Label44
IL_0132: Label5
IL_0132: ldc.i4.s 13
IL_0134: starg.s 2
IL_0136: br => Label45
IL_013B: Label6
IL_013B: ldc.i4.s 31
IL_013D: starg.s 2
IL_013F: br => Label46
IL_0144: Label7
IL_0144: ldc.i4.s 16
IL_0146: starg.s 2
IL_0148: br => Label47
IL_014D: Label8
IL_014D: ldc.i4.s 32
IL_014F: starg.s 2
IL_0151: br => Label48
IL_0156: Label9
IL_0156: ldc.i4.s 15
IL_0158: starg.s 2
IL_015A: br => Label49
IL_015F: Label10
IL_015F: ldc.i4.s 37
IL_0161: starg.s 2
IL_0163: br => Label50
IL_0168: Label11
IL_0168: ldc.i4.s 17
IL_016A: starg.s 2
IL_016C: br => Label51
IL_0171: Label12
IL_0171: ldc.i4.s 17
IL_0173: starg.s 2
IL_0175: br => Label52
IL_017A: Label13
IL_017A: ldc.i4.s 24
IL_017C: starg.s 2
IL_017E: br => Label53
IL_0183: Label14
IL_0183: ldc.i4.s 25
IL_0185: starg.s 2
IL_0187: br => Label54
IL_018C: Label15
IL_018C: ldc.i4.s 26
IL_018E: starg.s 2
IL_0190: br => Label55
IL_0195: Label16
IL_0195: ldc.i4.s 27
IL_0197: starg.s 2
IL_0199: br => Label56
IL_019E: Label17
IL_019E: ldc.i4.s 47
IL_01A0: starg.s 2
IL_01A2: br => Label57
IL_01A7: Label18
IL_01A7: ldc.i4.s 48
IL_01A9: starg.s 2
IL_01AB: br => Label58
IL_01B0: Label19
IL_01B0: ldc.i4.s 49
IL_01B2: starg.s 2
IL_01B4: br => Label59
IL_01B9: Label20
IL_01B9: ldc.i4.s 50
IL_01BB: starg.s 2
IL_01BD: br => Label60
IL_01C2: Label21
IL_01C2: ldc.i4.s 43
IL_01C4: starg.s 2
IL_01C6: br => Label61
IL_01CB: Label22
IL_01CB: ldc.i4.s 20
IL_01CD: starg.s 2
IL_01CF: br => Label62
IL_01D4: Label23
IL_01D4: ldc.i4.s 21
IL_01D6: starg.s 2
IL_01D8: br => Label63
IL_01DD: Label24
IL_01DD: ldc.i4.s 22
IL_01DF: starg.s 2
IL_01E1: br => Label64
IL_01E6: Label25
IL_01E6: ldc.i4.s 23
IL_01E8: starg.s 2
IL_01EA: br => Label65
IL_01EF: Label26
IL_01EF: ldc.i4.s 30
IL_01F1: starg.s 2
IL_01F3: br => Label66
IL_01F8: Label27
IL_01F8: ldc.i4.s 51
IL_01FA: starg.s 2
IL_01FC: br => Label67
IL_0201: Label28
IL_0201: ldc.i4.s 52
IL_0203: starg.s 2
IL_0205: br => Label68
IL_020A: Label29
IL_020A: ldc.i4.s 53
IL_020C: starg.s 2
IL_020E: br => Label69
IL_0213: Label30
IL_0213: ldc.i4.s 54
IL_0215: starg.s 2
IL_0217: br => Label70
IL_021C: Label31
IL_021C: ldc.i4.s 55
IL_021E: starg.s 2
IL_0220: br => Label71
IL_0225: Label32
IL_0225: ldc.i4.s 56
IL_0227: starg.s 2
IL_0229: br => Label72
IL_022E: Label33
IL_022E: ldc.i4.s 57
IL_0230: starg.s 2
IL_0232: br => Label73
IL_0237: Label34
IL_0237: ldc.i4.s 36
IL_0239: starg.s 2
IL_023B: br => Label74
IL_0240: Label35
IL_0240: ldc.i4.s 58
IL_0242: starg.s 2
IL_0244: br => Label75
IL_0249: Label36
IL_0249: ldc.i4.s 59
IL_024B: starg.s 2
IL_024D: br => Label76
IL_0252: Label37
IL_0252: ldc.i4.s 60
IL_0254: starg.s 2
IL_0256: br => Label77
IL_025B: Label38
IL_025B: ldc.i4.s 88
IL_025D: starg.s 2
IL_025F: br => Label78
IL_0264: Label39
IL_0264: ldc.i4.s 89
IL_0266: starg.s 2
IL_0268: br => Label79
IL_026D: Label40
IL_026D: ldc.i4.s 90
IL_026F: starg.s 2
IL_0271: br => Label80
IL_0276: Label41
IL_0276: ldc.i4.s 91
IL_0278: starg.s 2
IL_027A: br => Label81
IL_027F: Label0
IL_027F: Label1
IL_027F: Label2
IL_027F: Label42
IL_027F: Label43
IL_027F: Label44
IL_027F: Label45
IL_027F: Label46
IL_027F: Label47
IL_027F: Label48
IL_027F: Label49
IL_027F: Label50
IL_027F: Label51
IL_027F: Label52
IL_027F: Label53
IL_027F: Label54
IL_027F: Label55
IL_027F: Label56
IL_027F: Label57
IL_027F: Label58
IL_027F: Label59
IL_027F: Label60
IL_027F: Label61
IL_027F: Label62
IL_027F: Label63
IL_027F: Label64
IL_027F: Label65
IL_027F: Label66
IL_027F: Label67
IL_027F: Label68
IL_027F: Label69
IL_027F: Label70
IL_027F: Label71
IL_027F: Label72
IL_027F: Label73
IL_027F: Label74
IL_027F: Label75
IL_027F: Label76
IL_027F: Label77
IL_027F: Label78
IL_027F: Label79
IL_027F: Label80
IL_027F: Label81
IL_027F: ldarg.2
IL_0280: ldc.i4.s 13
IL_0282: sub
IL_0283: switch =>
Labels82,83,84,85,86,87,88,89,90,91,92,93,94,95,96,97,98,99,100,101,102,103,104,105
,106,107,108,109,110,111,112,113,114,115,116,117,118,119,120,121,122,123,124,125,12
6,127,128,129,130,131,132,133,134,135,136,137,138,139,140,141,142,143,144,145,146,1
47,148,149,150,151,152,153,154,155,156,157,158,159,160,161,162,163,164,165
IL_03D8: br => Label166
IL_03DD: Label83
IL_03DD: call static VehicleManager
ColossalFramework.Singleton`1<VehicleManager>::get_instance()
IL_03E2: call static SimulationManager
ColossalFramework.Singleton`1<SimulationManager>::get_instance()
IL_03E7: ldflda ColossalFramework.Math.Randomizer
SimulationManager::m_randomizer
IL_03EC: ldc.i4.3
IL_03ED: ldc.i4.s 9
IL_03EF: ldc.i4.1
IL_03F0: callvirt VehicleInfo
VehicleManager::GetRandomVehicleInfo(ColossalFramework.Math.Randomizer& r, Service
service, SubService subService, Level level)
IL_03F5: stloc.1
IL_03F6: br => Label167
IL_03FB: Label88
IL_03FB: call static VehicleManager
ColossalFramework.Singleton`1<VehicleManager>::get_instance()
IL_0400: call static SimulationManager
ColossalFramework.Singleton`1<SimulationManager>::get_instance()
IL_0405: ldflda ColossalFramework.Math.Randomizer
SimulationManager::m_randomizer
IL_040A: ldc.i4.3
IL_040B: ldc.i4.s 9
IL_040D: ldc.i4.0
IL_040E: callvirt VehicleInfo
VehicleManager::GetRandomVehicleInfo(ColossalFramework.Math.Randomizer& r, Service
service, SubService subService, Level level)
IL_0413: stloc.1
IL_0414: br => Label168
IL_0419: Label82
IL_0419: call static VehicleManager
ColossalFramework.Singleton`1<VehicleManager>::get_instance()
IL_041E: call static SimulationManager
ColossalFramework.Singleton`1<SimulationManager>::get_instance()
IL_0423: ldflda ColossalFramework.Math.Randomizer
SimulationManager::m_randomizer
IL_0428: ldc.i4.3
IL_0429: ldc.i4.8
IL_042A: ldc.i4.1
IL_042B: callvirt VehicleInfo
VehicleManager::GetRandomVehicleInfo(ColossalFramework.Math.Randomizer& r, Service
service, SubService subService, Level level)
IL_0430: stloc.1
IL_0431: br => Label169
IL_0436: Label100
IL_0436: call static VehicleManager
ColossalFramework.Singleton`1<VehicleManager>::get_instance()
IL_043B: call static SimulationManager
ColossalFramework.Singleton`1<SimulationManager>::get_instance()
IL_0440: ldflda ColossalFramework.Math.Randomizer
SimulationManager::m_randomizer
IL_0445: ldc.i4.3
IL_0446: ldc.i4.8
IL_0447: ldc.i4.0
IL_0448: callvirt VehicleInfo
VehicleManager::GetRandomVehicleInfo(ColossalFramework.Math.Randomizer& r, Service
service, SubService subService, Level level)
IL_044D: stloc.1
IL_044E: br => Label170
IL_0453: Label85
IL_0453: call static VehicleManager
ColossalFramework.Singleton`1<VehicleManager>::get_instance()
IL_0458: call static SimulationManager
ColossalFramework.Singleton`1<SimulationManager>::get_instance()
IL_045D: ldflda ColossalFramework.Math.Randomizer
SimulationManager::m_randomizer
IL_0462: ldc.i4.3
IL_0463: ldc.i4.7
IL_0464: ldc.i4.1
IL_0465: callvirt VehicleInfo
VehicleManager::GetRandomVehicleInfo(ColossalFramework.Math.Randomizer& r, Service
service, SubService subService, Level level)
IL_046A: stloc.1
IL_046B: br => Label171
IL_0470: Label101
IL_0470: call static VehicleManager
ColossalFramework.Singleton`1<VehicleManager>::get_instance()
IL_0475: call static SimulationManager
ColossalFramework.Singleton`1<SimulationManager>::get_instance()
IL_047A: ldflda ColossalFramework.Math.Randomizer
SimulationManager::m_randomizer
IL_047F: ldc.i4.3
IL_0480: ldc.i4.7
IL_0481: ldc.i4.0
IL_0482: callvirt VehicleInfo
VehicleManager::GetRandomVehicleInfo(ColossalFramework.Math.Randomizer& r, Service
service, SubService subService, Level level)
IL_0487: stloc.1
IL_0488: br => Label172
IL_048D: Label84
IL_048D: call static VehicleManager
ColossalFramework.Singleton`1<VehicleManager>::get_instance()
IL_0492: call static SimulationManager
ColossalFramework.Singleton`1<SimulationManager>::get_instance()
IL_0497: ldflda ColossalFramework.Math.Randomizer
SimulationManager::m_randomizer
IL_049C: ldc.i4.3
IL_049D: ldc.i4.6
IL_049E: ldc.i4.1
IL_049F: callvirt VehicleInfo
VehicleManager::GetRandomVehicleInfo(ColossalFramework.Math.Randomizer& r, Service
service, SubService subService, Level level)
IL_04A4: stloc.1
IL_04A5: br => Label173
IL_04AA: Label106
IL_04AA: call static VehicleManager
ColossalFramework.Singleton`1<VehicleManager>::get_instance()
IL_04AF: call static SimulationManager
ColossalFramework.Singleton`1<SimulationManager>::get_instance()
IL_04B4: ldflda ColossalFramework.Math.Randomizer
SimulationManager::m_randomizer
IL_04B9: ldc.i4.3
IL_04BA: ldc.i4.6
IL_04BB: ldc.i4.0
IL_04BC: callvirt VehicleInfo
VehicleManager::GetRandomVehicleInfo(ColossalFramework.Math.Randomizer& r, Service
service, SubService subService, Level level)
IL_04C1: stloc.1
IL_04C2: br => Label174
IL_04C7: Label86
IL_04C7: call static VehicleManager
ColossalFramework.Singleton`1<VehicleManager>::get_instance()
IL_04CC: call static SimulationManager
ColossalFramework.Singleton`1<SimulationManager>::get_instance()
IL_04D1: ldflda ColossalFramework.Math.Randomizer
SimulationManager::m_randomizer
IL_04D6: ldc.i4.3
IL_04D7: ldc.i4.5
IL_04D8: ldc.i4.0
IL_04D9: callvirt VehicleInfo
VehicleManager::GetRandomVehicleInfo(ColossalFramework.Math.Randomizer& r, Service
service, SubService subService, Level level)
IL_04DE: stloc.1
IL_04DF: br => Label175
IL_04E4: Label163
IL_04E4: Label165
IL_04E4: call static VehicleManager
ColossalFramework.Singleton`1<VehicleManager>::get_instance()
IL_04E9: call static SimulationManager
ColossalFramework.Singleton`1<SimulationManager>::get_instance()
IL_04EE: ldflda ColossalFramework.Math.Randomizer
SimulationManager::m_randomizer
IL_04F3: ldc.i4.s 19
IL_04F5: ldc.i4.s 28
IL_04F7: ldc.i4.4
IL_04F8: callvirt VehicleInfo
VehicleManager::GetRandomVehicleInfo(ColossalFramework.Math.Randomizer& r, Service
service, SubService subService, Level level)
IL_04FD: stloc.1
IL_04FE: br => Label176
IL_0503: Label162
IL_0503: Label164
IL_0503: ldc.i4.1
IL_0504: stloc.s 6 (System.Boolean)
IL_0506: call static VehicleManager
ColossalFramework.Singleton`1<VehicleManager>::get_instance()
IL_050B: call static SimulationManager
ColossalFramework.Singleton`1<SimulationManager>::get_instance()
IL_0510: ldflda ColossalFramework.Math.Randomizer
SimulationManager::m_randomizer
IL_0515: ldc.i4.s 19
IL_0517: ldc.i4.s 28
IL_0519: ldc.i4.4
IL_051A: callvirt VehicleInfo
VehicleManager::GetRandomVehicleInfo(ColossalFramework.Math.Randomizer& r, Service
service, SubService subService, Level level)
IL_051F: stloc.1
IL_0520: br => Label177
IL_0525: Label93
IL_0525: Label116
IL_0525: ldc.i4.0
IL_0526: stloc.2
IL_0527: ldc.i4.1
IL_0528: stloc.3
IL_0529: br => Label178
IL_052E: Label94
IL_052E: Label117
IL_052E: ldc.i4.1
IL_052F: stloc.2
IL_0530: ldc.i4.1
IL_0531: stloc.3
IL_0532: br => Label179
IL_0537: Label95
IL_0537: Label118
IL_0537: ldc.i4.2
IL_0538: stloc.2
IL_0539: ldc.i4.1
IL_053A: stloc.3
IL_053B: br => Label180
IL_0540: Label96
IL_0540: Label119
IL_0540: ldc.i4.3
IL_0541: stloc.2
IL_0542: ldc.i4.1
IL_0543: stloc.3
IL_0544: br => Label181
IL_0549: Label89
IL_0549: ldc.i4.0
IL_054A: stloc.2
IL_054B: call static SimulationManager
ColossalFramework.Singleton`1<SimulationManager>::get_instance()
IL_0550: ldflda ColossalFramework.Math.Randomizer
SimulationManager::m_randomizer
IL_0555: ldc.i4.2
IL_0556: ldc.i4.5
IL_0557: call System.Int32
ColossalFramework.Math.Randomizer::Int32(System.Int32 min, System.Int32 max)
IL_055C: stloc.3
IL_055D: br => Label182
IL_0562: Label90
IL_0562: ldc.i4.1
IL_0563: stloc.2
IL_0564: call static SimulationManager
ColossalFramework.Singleton`1<SimulationManager>::get_instance()
IL_0569: ldflda ColossalFramework.Math.Randomizer
SimulationManager::m_randomizer
IL_056E: ldc.i4.2
IL_056F: ldc.i4.5
IL_0570: call System.Int32
ColossalFramework.Math.Randomizer::Int32(System.Int32 min, System.Int32 max)
IL_0575: stloc.3
IL_0576: br => Label183
IL_057B: Label91
IL_057B: ldc.i4.2
IL_057C: stloc.2
IL_057D: call static SimulationManager
ColossalFramework.Singleton`1<SimulationManager>::get_instance()
IL_0582: ldflda ColossalFramework.Math.Randomizer
SimulationManager::m_randomizer
IL_0587: ldc.i4.2
IL_0588: ldc.i4.5
IL_0589: call System.Int32
ColossalFramework.Math.Randomizer::Int32(System.Int32 min, System.Int32 max)
IL_058E: stloc.3
IL_058F: br => Label184
IL_0594: Label92
IL_0594: ldc.i4.3
IL_0595: stloc.2
IL_0596: call static SimulationManager
ColossalFramework.Singleton`1<SimulationManager>::get_instance()
IL_059B: ldflda ColossalFramework.Math.Randomizer
SimulationManager::m_randomizer
IL_05A0: ldc.i4.2
IL_05A1: ldc.i4.5
IL_05A2: call System.Int32
ColossalFramework.Math.Randomizer::Int32(System.Int32 min, System.Int32 max)
IL_05A7: stloc.3
IL_05A8: br => Label185
IL_05AD: Label99
IL_05AD: Label105
IL_05AD: Label120
IL_05AD: Label121
IL_05AD: Label122
IL_05AD: Label123
IL_05AD: Label124
IL_05AD: Label125
IL_05AD: Label126
IL_05AD: Label127
IL_05AD: Label128
IL_05AD: Label129
IL_05AD: Label157
IL_05AD: Label158
IL_05AD: Label159
IL_05AD: Label160
IL_05AD: ldc.i4.1
IL_05AE: stloc.s 4 (System.Boolean)
IL_05B0: br => Label186
IL_05B5: Label113
IL_05B5: ldarga.s 3
IL_05B7: call System.UInt16 TransferOffer::get_Building()
IL_05BC: ldarg.0
IL_05BD: beq => Label187
IL_05C2: ldc.i4.1
IL_05C3: stloc.s 5 (System.Boolean)
IL_05C5: call static SimulationManager
ColossalFramework.Singleton`1<SimulationManager>::get_instance()
IL_05CA: ldflda ColossalFramework.Math.Randomizer
SimulationManager::m_randomizer
IL_05CF: ldc.i4.2
IL_05D0: call System.Int32
ColossalFramework.Math.Randomizer::Int32(System.UInt32 range)
IL_05D5: brtrue => Label188
IL_05DA: call static VehicleManager
ColossalFramework.Singleton`1<VehicleManager>::get_instance()
IL_05DF: call static SimulationManager
ColossalFramework.Singleton`1<SimulationManager>::get_instance()
IL_05E4: ldflda ColossalFramework.Math.Randomizer
SimulationManager::m_randomizer
IL_05E9: ldc.i4.s 19
IL_05EB: ldc.i4.s 12
IL_05ED: ldc.i4.3
IL_05EE: callvirt VehicleInfo
VehicleManager::GetRandomVehicleInfo(ColossalFramework.Math.Randomizer& r, Service
service, SubService subService, Level level)
IL_05F3: stloc.1
IL_05F4: br => Label189
IL_05F9: Label188
IL_05F9: call static VehicleManager
ColossalFramework.Singleton`1<VehicleManager>::get_instance()
IL_05FE: call static SimulationManager
ColossalFramework.Singleton`1<SimulationManager>::get_instance()
IL_0603: ldflda ColossalFramework.Math.Randomizer
SimulationManager::m_randomizer
IL_0608: ldc.i4.s 19
IL_060A: ldc.i4.s 12
IL_060C: ldc.i4.0
IL_060D: callvirt VehicleInfo
VehicleManager::GetRandomVehicleInfo(ColossalFramework.Math.Randomizer& r, Service
service, SubService subService, Level level)
IL_0612: stloc.1
IL_0613: Label187
IL_0613: Label189
IL_0613: br => Label190
IL_0618: Label114
IL_0618: ldarga.s 3
IL_061A: call System.UInt16 TransferOffer::get_Building()
IL_061F: ldarg.0
IL_0620: beq => Label191
IL_0625: ldc.i4.1
IL_0626: stloc.s 5 (System.Boolean)
IL_0628: call static SimulationManager
ColossalFramework.Singleton`1<SimulationManager>::get_instance()
IL_062D: ldflda ColossalFramework.Math.Randomizer
SimulationManager::m_randomizer
IL_0632: ldc.i4.2
IL_0633: call System.Int32
ColossalFramework.Math.Randomizer::Int32(System.UInt32 range)
IL_0638: brtrue => Label192
IL_063D: call static VehicleManager
ColossalFramework.Singleton`1<VehicleManager>::get_instance()
IL_0642: call static SimulationManager
ColossalFramework.Singleton`1<SimulationManager>::get_instance()
IL_0647: ldflda ColossalFramework.Math.Randomizer
SimulationManager::m_randomizer
IL_064C: ldc.i4.s 19
IL_064E: ldc.i4.s 13
IL_0650: ldc.i4.3
IL_0651: callvirt VehicleInfo
VehicleManager::GetRandomVehicleInfo(ColossalFramework.Math.Randomizer& r, Service
service, SubService subService, Level level)
IL_0656: stloc.1
IL_0657: br => Label193
IL_065C: Label192
IL_065C: call static VehicleManager
ColossalFramework.Singleton`1<VehicleManager>::get_instance()
IL_0661: call static SimulationManager
ColossalFramework.Singleton`1<SimulationManager>::get_instance()
IL_0666: ldflda ColossalFramework.Math.Randomizer
SimulationManager::m_randomizer
IL_066B: ldc.i4.s 19
IL_066D: ldc.i4.s 13
IL_066F: ldc.i4.0
IL_0670: callvirt VehicleInfo
VehicleManager::GetRandomVehicleInfo(ColossalFramework.Math.Randomizer& r, Service
service, SubService subService, Level level)
IL_0675: stloc.1
IL_0676: Label191
IL_0676: Label193
IL_0676: br => Label194
IL_067B: Label115
IL_067B: ldarga.s 3
IL_067D: call System.UInt16 TransferOffer::get_Building()
IL_0682: ldarg.0
IL_0683: beq => Label195
IL_0688: ldc.i4.1
IL_0689: stloc.s 5 (System.Boolean)
IL_068B: call static SimulationManager
ColossalFramework.Singleton`1<SimulationManager>::get_instance()
IL_0690: ldflda ColossalFramework.Math.Randomizer
SimulationManager::m_randomizer
IL_0695: ldc.i4.3
IL_0696: call System.Int32
ColossalFramework.Math.Randomizer::Int32(System.UInt32 range)
IL_069B: stloc.s 10 (System.Int32)
IL_069D: ldloc.s 10 (System.Int32)
IL_069F: brfalse => Label196
IL_06A4: ldloc.s 10 (System.Int32)
IL_06A6: ldc.i4.1
IL_06A7: beq => Label197
IL_06AC: br => Label198
IL_06B1: Label196
IL_06B1: call static VehicleManager
ColossalFramework.Singleton`1<VehicleManager>::get_instance()
IL_06B6: call static SimulationManager
ColossalFramework.Singleton`1<SimulationManager>::get_instance()
IL_06BB: ldflda ColossalFramework.Math.Randomizer
SimulationManager::m_randomizer
IL_06C0: ldc.i4.s 19
IL_06C2: ldc.i4.s 14
IL_06C4: ldc.i4.0
IL_06C5: callvirt VehicleInfo
VehicleManager::GetRandomVehicleInfo(ColossalFramework.Math.Randomizer& r, Service
service, SubService subService, Level level)
IL_06CA: stloc.1
IL_06CB: br => Label199
IL_06D0: Label197
IL_06D0: call static VehicleManager
ColossalFramework.Singleton`1<VehicleManager>::get_instance()
IL_06D5: call static SimulationManager
ColossalFramework.Singleton`1<SimulationManager>::get_instance()
IL_06DA: ldflda ColossalFramework.Math.Randomizer
SimulationManager::m_randomizer
IL_06DF: ldc.i4.s 19
IL_06E1: ldc.i4.s 14
IL_06E3: ldc.i4.1
IL_06E4: callvirt VehicleInfo
VehicleManager::GetRandomVehicleInfo(ColossalFramework.Math.Randomizer& r, Service
service, SubService subService, Level level)
IL_06E9: stloc.1
IL_06EA: br => Label200
IL_06EF: Label198
IL_06EF: call static VehicleManager
ColossalFramework.Singleton`1<VehicleManager>::get_instance()
IL_06F4: call static SimulationManager
ColossalFramework.Singleton`1<SimulationManager>::get_instance()
IL_06F9: ldflda ColossalFramework.Math.Randomizer
SimulationManager::m_randomizer
IL_06FE: ldc.i4.s 19
IL_0700: ldc.i4.s 14
IL_0702: ldc.i4.2
IL_0703: callvirt VehicleInfo
VehicleManager::GetRandomVehicleInfo(ColossalFramework.Math.Randomizer& r, Service
service, SubService subService, Level level)
IL_0708: stloc.1
IL_0709: br => Label201
IL_070E: Label195
IL_070E: Label199
IL_070E: Label200
IL_070E: Label201
IL_070E: br => Label202
IL_0713: Label112
IL_0713: call static TransportManager
ColossalFramework.Singleton`1<TransportManager>::get_instance()
IL_0718: ldc.i4.s 14
IL_071A: callvirt System.Boolean
TransportManager::TransportTypeLoaded(TransportType type)
IL_071F: brfalse => Label203
IL_0724: ldarga.s 3
IL_0726: call System.UInt16 TransferOffer::get_Building()
IL_072B: ldarg.0
IL_072C: beq => Label204
IL_0731: call static SimulationManager
ColossalFramework.Singleton`1<SimulationManager>::get_instance()
IL_0736: ldflda ColossalFramework.Math.Randomizer
SimulationManager::m_randomizer
IL_073B: ldc.i4.2
IL_073C: call System.Int32
ColossalFramework.Math.Randomizer::Int32(System.UInt32 range)
IL_0741: brtrue => Label205
IL_0746: call static VehicleManager
ColossalFramework.Singleton`1<VehicleManager>::get_instance()
IL_074B: call static SimulationManager
ColossalFramework.Singleton`1<SimulationManager>::get_instance()
IL_0750: ldflda ColossalFramework.Math.Randomizer
SimulationManager::m_randomizer
IL_0755: ldc.i4.s 19
IL_0757: ldc.i4.s 10
IL_0759: ldc.i4.2
IL_075A: callvirt VehicleInfo
VehicleManager::GetRandomVehicleInfo(ColossalFramework.Math.Randomizer& r, Service
service, SubService subService, Level level)
IL_075F: stloc.1
IL_0760: Label203
IL_0760: Label204
IL_0760: Label205
IL_0760: br => Label206
IL_0765: Label87
IL_0765: Label97
IL_0765: Label98
IL_0765: Label102
IL_0765: Label103
IL_0765: Label104
IL_0765: Label107
IL_0765: Label108
IL_0765: Label109
IL_0765: Label110
IL_0765: Label111
IL_0765: Label130
IL_0765: Label131
IL_0765: Label132
IL_0765: Label133
IL_0765: Label134
IL_0765: Label135
IL_0765: Label136
IL_0765: Label137
IL_0765: Label138
IL_0765: Label139
IL_0765: Label140
IL_0765: Label141
IL_0765: Label142
IL_0765: Label143
IL_0765: Label144
IL_0765: Label145
IL_0765: Label146
IL_0765: Label147
IL_0765: Label148
IL_0765: Label149
IL_0765: Label150
IL_0765: Label151
IL_0765: Label152
IL_0765: Label153
IL_0765: Label154
IL_0765: Label155
IL_0765: Label156
IL_0765: Label161
IL_0765: Label166
IL_0765: ldc.i4.0
IL_0766: br => Label278
IL_076B: Label167
IL_076B: Label168
IL_076B: Label169
IL_076B: Label170
IL_076B: Label171
IL_076B: Label172
IL_076B: Label173
IL_076B: Label174
IL_076B: Label175
IL_076B: Label176
IL_076B: Label177
IL_076B: Label178
IL_076B: Label179
IL_076B: Label180
IL_076B: Label181
IL_076B: Label182
IL_076B: Label183
IL_076B: Label184
IL_076B: Label185
IL_076B: Label186
IL_076B: Label190
IL_076B: Label194
IL_076B: Label202
IL_076B: Label206
IL_076B: ldloc.3
IL_076C: brfalse => Label207
IL_0771: call static CitizenManager
ColossalFramework.Singleton`1<CitizenManager>::get_instance()
IL_0776: stloc.s 11 (CitizenManager)
IL_0778: ldarga.s 3
IL_077A: call System.UInt16 TransferOffer::get_Building()
IL_077F: stloc.s 12 (System.UInt16)
IL_0781: ldloc.s 12 (System.UInt16)
IL_0783: brfalse => Label208
IL_0788: ldc.i4.0
IL_0789: stloc.s 13 (System.UInt32)
IL_078B: ldloc.s 5 (System.Boolean)
IL_078D: brtrue => Label209
IL_0792: ldloc.0
IL_0793: ldfld Array16`1<Building> BuildingManager::m_buildings
IL_0798: ldfld Building[] Array16`1<Building>::m_buffer
IL_079D: ldloc.s 12 (System.UInt16)
IL_079F: ldelema Building
IL_07A4: ldc.i4.s 16
IL_07A6: call System.UInt32 Building::GetEmptyCitizenUnit(Flags flag)
IL_07AB: stloc.s 13 (System.UInt32)
IL_07AD: Label209
IL_07AD: ldloc.s 13 (System.UInt32)
IL_07AF: brtrue => Label210
IL_07B4: ldloc.s 5 (System.Boolean)
IL_07B6: brfalse => Label211
IL_07BB: Label210
IL_07BB: call static SimulationManager
ColossalFramework.Singleton`1<SimulationManager>::get_instance()
IL_07C0: ldflda ColossalFramework.Math.Randomizer
SimulationManager::m_randomizer
IL_07C5: ldc.i4 256
IL_07CA: call System.Int32
ColossalFramework.Math.Randomizer::Int32(System.UInt32 range)
IL_07CF: stloc.s 14 (System.Int32)
IL_07D1: ldc.i4.0
IL_07D2: stloc.s 15 (System.UInt16)
IL_07D4: ldc.i4.0
IL_07D5: stloc.s 16 (Citizen+Gender)
IL_07D7: ldc.i4.0
IL_07D8: stloc.s 17 (System.Int32)
IL_07DA: ldc.i4.0
IL_07DB: stloc.s 61
IL_07DD: ldc.i4.0
IL_07DE: stloc.s 62
IL_07E0: ldc.i4.0
IL_07E1: stloc.s 63
IL_07E3: ldloc.s 3
IL_07E5: call static System.Int32[]
LifecycleRebalance.OutsideConnectionAIPatches::GetAgeArray(System.Int32 num)
IL_07EA: stloc.s 60
IL_07EC: br => Label212
IL_07F1: Label241
IL_07F1: ldloc.s 17
IL_07F3: ldloc.s 2
IL_07F5: ldloc.s 60
IL_07F7: ldloca.s 61
IL_07F9: ldloca.s 62
IL_07FB: ldloca.s 63
IL_07FD: ldloca.s 22
IL_07FF: ldloca.s 21
IL_0801: call static System.Void
LifecycleRebalance.OutsideConnectionAIPatches::RandomizeImmigrants(System.Int32 i,
Education education, System.Int32[] ageArray, System.Int32& childrenAgeMax,
System.Int32& childrenAgeMin, System.Int32& minAdultAge, Education&
resultEducation, System.Int32& resultAge)
IL_0806: ldc.i4.0
IL_0807: stloc.s 23 (System.Boolean)
IL_0809: ldloc.s 17 (System.Int32)
IL_080B: ldc.i4.1
IL_080C: bne.un => Label222
IL_0811: call static SimulationManager
ColossalFramework.Singleton`1<SimulationManager>::get_instance()
IL_0816: ldflda ColossalFramework.Math.Randomizer
SimulationManager::m_randomizer
IL_081B: ldc.i4.s 100
IL_081D: call System.Int32
ColossalFramework.Math.Randomizer::Int32(System.UInt32 range)
IL_0822: ldc.i4.5
IL_0823: clt
IL_0825: stloc.s 24 (System.Boolean)
IL_0827: ldloc.s 24 (System.Boolean)
IL_0829: brfalse => Label223
IL_082E: ldloc.s 16 (Citizen+Gender)
IL_0830: stloc.s 25 (Citizen+Gender)
IL_0832: br => Label224
IL_0837: Label223
IL_0837: ldloc.s 16 (Citizen+Gender)
IL_0839: brtrue => Label225
IL_083E: ldc.i4.1
IL_083F: br => Label226
IL_0844: Label225
IL_0844: ldc.i4.0
IL_0845: Label226
IL_0845: stloc.s 25 (Citizen+Gender)
IL_0847: Label224
IL_0847: ldloc.s 11 (CitizenManager)
IL_0849: ldloca.s 18 (System.UInt32)
IL_084B: ldloc.s 21 (System.Int32)
IL_084D: ldloc.s 14 (System.Int32)
IL_084F: call static SimulationManager
ColossalFramework.Singleton`1<SimulationManager>::get_instance()
IL_0854: ldflda ColossalFramework.Math.Randomizer
SimulationManager::m_randomizer
IL_0859: ldloc.s 25 (Citizen+Gender)
IL_085B: callvirt System.Boolean CitizenManager::CreateCitizen(System.UInt32&
citizen, System.Int32 age, System.Int32 family, ColossalFramework.Math.Randomizer&
r, Gender gender)
IL_0860: stloc.s 23 (System.Boolean)
IL_0862: br => Label227
IL_0867: Label222
IL_0867: ldloc.s 11 (CitizenManager)
IL_0869: ldloca.s 18 (System.UInt32)
IL_086B: ldloc.s 21 (System.Int32)
IL_086D: ldloc.s 14 (System.Int32)
IL_086F: call static SimulationManager
ColossalFramework.Singleton`1<SimulationManager>::get_instance()
IL_0874: ldflda ColossalFramework.Math.Randomizer
SimulationManager::m_randomizer
IL_0879: callvirt System.Boolean CitizenManager::CreateCitizen(System.UInt32&
citizen, System.Int32 age, System.Int32 family, ColossalFramework.Math.Randomizer&
r)
IL_087E: stloc.s 23 (System.Boolean)
IL_0880: Label227
IL_0880: ldloc.s 23 (System.Boolean)
IL_0882: brfalse => Label228
IL_0887: ldloc.s 17 (System.Int32)
IL_0889: brtrue => Label229
IL_088E: ldloc.s 18 (System.UInt32)
IL_0890: call static Gender Citizen::GetGender(System.UInt32 citizenID)
IL_0895: stloc.s 16 (Citizen+Gender)
IL_0897: Label229
IL_0897: ldloc.s 22 (Citizen+Education)
IL_0899: ldc.i4.1
IL_089A: blt => Label230
IL_089F: ldloc.s 11 (CitizenManager)
IL_08A1: ldfld Array32`1<Citizen> CitizenManager::m_citizens
IL_08A6: ldfld Citizen[] Array32`1<Citizen>::m_buffer
IL_08AB: ldloc.s 18 (System.UInt32)
IL_08AD: conv.u
IL_08AE: ldelema Citizen
IL_08B3: ldc.i4.1
IL_08B4: call System.Void Citizen::set_Education1(System.Boolean value)
IL_08B9: Label230
IL_08B9: ldloc.s 22 (Citizen+Education)
IL_08BB: ldc.i4.2
IL_08BC: blt => Label231
IL_08C1: ldloc.s 11 (CitizenManager)
IL_08C3: ldfld Array32`1<Citizen> CitizenManager::m_citizens
IL_08C8: ldfld Citizen[] Array32`1<Citizen>::m_buffer
IL_08CD: ldloc.s 18 (System.UInt32)
IL_08CF: conv.u
IL_08D0: ldelema Citizen
IL_08D5: ldc.i4.1
IL_08D6: call System.Void Citizen::set_Education1(System.Boolean value)
IL_08DB: ldloc.s 11 (CitizenManager)
IL_08DD: ldfld Array32`1<Citizen> CitizenManager::m_citizens
IL_08E2: ldfld Citizen[] Array32`1<Citizen>::m_buffer
IL_08E7: ldloc.s 18 (System.UInt32)
IL_08E9: conv.u
IL_08EA: ldelema Citizen
IL_08EF: ldc.i4.1
IL_08F0: call System.Void Citizen::set_Education2(System.Boolean value)
IL_08F5: Label231
IL_08F5: ldloc.s 22 (Citizen+Education)
IL_08F7: ldc.i4.3
IL_08F8: blt => Label232
IL_08FD: ldloc.s 11 (CitizenManager)
IL_08FF: ldfld Array32`1<Citizen> CitizenManager::m_citizens
IL_0904: ldfld Citizen[] Array32`1<Citizen>::m_buffer
IL_0909: ldloc.s 18 (System.UInt32)
IL_090B: conv.u
IL_090C: ldelema Citizen
IL_0911: ldc.i4.1
IL_0912: call System.Void Citizen::set_Education1(System.Boolean value)
IL_0917: ldloc.s 11 (CitizenManager)
IL_0919: ldfld Array32`1<Citizen> CitizenManager::m_citizens
IL_091E: ldfld Citizen[] Array32`1<Citizen>::m_buffer
IL_0923: ldloc.s 18 (System.UInt32)
IL_0925: conv.u
IL_0926: ldelema Citizen
IL_092B: ldc.i4.1
IL_092C: call System.Void Citizen::set_Education2(System.Boolean value)
IL_0931: ldloc.s 11 (CitizenManager)
IL_0933: ldfld Array32`1<Citizen> CitizenManager::m_citizens
IL_0938: ldfld Citizen[] Array32`1<Citizen>::m_buffer
IL_093D: ldloc.s 18 (System.UInt32)
IL_093F: conv.u
IL_0940: ldelema Citizen
IL_0945: ldc.i4.1
IL_0946: call System.Void Citizen::set_Education3(System.Boolean value)
IL_094B: Label232
IL_094B: ldloc.s 5 (System.Boolean)
IL_094D: brfalse => Label233
IL_0952: ldloc.s 11 (CitizenManager)
IL_0954: ldfld Array32`1<Citizen> CitizenManager::m_citizens
IL_0959: ldfld Citizen[] Array32`1<Citizen>::m_buffer
IL_095E: ldloc.s 18 (System.UInt32)
IL_0960: conv.u
IL_0961: ldelema Citizen
IL_0966: dup
IL_0967: ldfld Flags Citizen::m_flags
IL_096C: ldc.i4.s 64
IL_096E: or
IL_096F: stfld Flags Citizen::m_flags
IL_0974: br => Label234
IL_0979: Label233
IL_0979: ldloc.s 11 (CitizenManager)
IL_097B: ldfld Array32`1<Citizen> CitizenManager::m_citizens
IL_0980: ldfld Citizen[] Array32`1<Citizen>::m_buffer
IL_0985: ldloc.s 18 (System.UInt32)
IL_0987: conv.u
IL_0988: ldelema Citizen
IL_098D: ldloc.s 18 (System.UInt32)
IL_098F: ldc.i4.0
IL_0990: ldloc.s 13 (System.UInt32)
IL_0992: call System.Void Citizen::SetHome(System.UInt32 citizenID,
System.UInt16 buildingID, System.UInt32 unitID)
IL_0997: Label234
IL_0997: ldloc.s 11 (CitizenManager)
IL_0999: ldfld Array32`1<Citizen> CitizenManager::m_citizens
IL_099E: ldfld Citizen[] Array32`1<Citizen>::m_buffer
IL_09A3: ldloc.s 18 (System.UInt32)
IL_09A5: conv.u
IL_09A6: ldelema Citizen
IL_09AB: dup
IL_09AC: ldfld Flags Citizen::m_flags
IL_09B1: ldc.i4.s 32
IL_09B3: or
IL_09B4: stfld Flags Citizen::m_flags
IL_09B9: ldloc.s 11 (CitizenManager)
IL_09BB: ldfld Array32`1<Citizen> CitizenManager::m_citizens
IL_09C0: ldfld Citizen[] Array32`1<Citizen>::m_buffer
IL_09C5: ldloc.s 18 (System.UInt32)
IL_09C7: conv.u
IL_09C8: ldelema Citizen
IL_09CD: ldloc.s 18 (System.UInt32)
IL_09CF: call CitizenInfo Citizen::GetCitizenInfo(System.UInt32 citizenID)
IL_09D4: stloc.s 26 (CitizenInfo)
IL_09D6: ldloc.s 26 (CitizenInfo)
IL_09D8: brfalse => Label235
IL_09DD: ldloc.s 11 (CitizenManager)
IL_09DF: ldloca.s 27 (System.UInt16)
IL_09E1: call static SimulationManager
ColossalFramework.Singleton`1<SimulationManager>::get_instance()
IL_09E6: ldflda ColossalFramework.Math.Randomizer
SimulationManager::m_randomizer
IL_09EB: ldloc.s 26 (CitizenInfo)
IL_09ED: ldloc.s 18 (System.UInt32)
IL_09EF: callvirt System.Boolean
CitizenManager::CreateCitizenInstance(System.UInt16& instance,
ColossalFramework.Math.Randomizer& randomizer, CitizenInfo info, System.UInt32
citizen)
IL_09F4: brfalse => Label236
IL_09F9: ldloc.s 15 (System.UInt16)
IL_09FB: brtrue => Label237
IL_0A00: ldloc.s 26 (CitizenInfo)
IL_0A02: ldfld CitizenAI CitizenInfo::m_citizenAI
IL_0A07: ldloc.s 27 (System.UInt16)
IL_0A09: ldloc.s 11 (CitizenManager)
IL_0A0B: ldfld Array16`1<CitizenInstance> CitizenManager::m_instances
IL_0A10: ldfld CitizenInstance[] Array16`1<CitizenInstance>::m_buffer
IL_0A15: ldloc.s 27 (System.UInt16)
IL_0A17: ldelema CitizenInstance
IL_0A1C: ldarg.0
IL_0A1D: callvirt virtual System.Void CitizenAI::SetSource(System.UInt16
instanceID, CitizenInstance& data, System.UInt16 sourceBuilding)
IL_0A22: ldloc.s 26 (CitizenInfo)
IL_0A24: ldfld CitizenAI CitizenInfo::m_citizenAI
IL_0A29: ldloc.s 27 (System.UInt16)
IL_0A2B: ldloc.s 11 (CitizenManager)
IL_0A2D: ldfld Array16`1<CitizenInstance> CitizenManager::m_instances
IL_0A32: ldfld CitizenInstance[] Array16`1<CitizenInstance>::m_buffer
IL_0A37: ldloc.s 27 (System.UInt16)
IL_0A39: ldelema CitizenInstance
IL_0A3E: ldloc.s 12 (System.UInt16)
IL_0A40: callvirt System.Void CitizenAI::SetTarget(System.UInt16 instanceID,
CitizenInstance& data, System.UInt16 targetBuilding)
IL_0A45: ldloc.s 27 (System.UInt16)
IL_0A47: stloc.s 15 (System.UInt16)
IL_0A49: br => Label238
IL_0A4E: Label237
IL_0A4E: ldloc.s 26 (CitizenInfo)
IL_0A50: ldfld CitizenAI CitizenInfo::m_citizenAI
IL_0A55: ldloc.s 27 (System.UInt16)
IL_0A57: ldloc.s 11 (CitizenManager)
IL_0A59: ldfld Array16`1<CitizenInstance> CitizenManager::m_instances
IL_0A5E: ldfld CitizenInstance[] Array16`1<CitizenInstance>::m_buffer
IL_0A63: ldloc.s 27 (System.UInt16)
IL_0A65: ldelema CitizenInstance
IL_0A6A: ldarg.0
IL_0A6B: callvirt virtual System.Void CitizenAI::SetSource(System.UInt16
instanceID, CitizenInstance& data, System.UInt16 sourceBuilding)
IL_0A70: ldloc.s 26 (CitizenInfo)
IL_0A72: ldfld CitizenAI CitizenInfo::m_citizenAI
IL_0A77: ldloc.s 27 (System.UInt16)
IL_0A79: ldloc.s 11 (CitizenManager)
IL_0A7B: ldfld Array16`1<CitizenInstance> CitizenManager::m_instances
IL_0A80: ldfld CitizenInstance[] Array16`1<CitizenInstance>::m_buffer
IL_0A85: ldloc.s 27 (System.UInt16)
IL_0A87: ldelema CitizenInstance
IL_0A8C: ldloc.s 15 (System.UInt16)
IL_0A8E: callvirt virtual System.Void CitizenAI::JoinTarget(System.UInt16
instanceID, CitizenInstance& data, System.UInt16 otherInstance)
IL_0A93: Label238
IL_0A93: ldloc.s 11 (CitizenManager)
IL_0A95: ldfld Array32`1<Citizen> CitizenManager::m_citizens
IL_0A9A: ldfld Citizen[] Array32`1<Citizen>::m_buffer
IL_0A9F: ldloc.s 18 (System.UInt32)
IL_0AA1: conv.u
IL_0AA2: ldelema Citizen
IL_0AA7: ldc.i4.3
IL_0AA8: call System.Void Citizen::set_CurrentLocation(Location value)
IL_0AAD: Label235
IL_0AAD: Label236
IL_0AAD: br => Label239
IL_0AB2: Label228
IL_0AB2: br => Label240
IL_0AB7: Label239
IL_0AB7: ldloc.s 17 (System.Int32)
IL_0AB9: ldc.i4.1
IL_0ABA: add
IL_0ABB: stloc.s 17 (System.Int32)
IL_0ABD: Label212
IL_0ABD: ldloc.s 17 (System.Int32)
IL_0ABF: ldloc.3
IL_0AC0: blt => Label241
IL_0AC5: Label207
IL_0AC5: Label208
IL_0AC5: Label211
IL_0AC5: Label240
IL_0AC5: ldloc.s 4 (System.Boolean)
IL_0AC7: brfalse => Label242
IL_0ACC: call static CitizenManager
ColossalFramework.Singleton`1<CitizenManager>::get_instance()
IL_0AD1: stloc.s 28 (CitizenManager)
IL_0AD3: ldarga.s 3
IL_0AD5: call System.UInt16 TransferOffer::get_Building()
IL_0ADA: stloc.s 29 (System.UInt16)
IL_0ADC: ldarga.s 3
IL_0ADE: call System.UInt16 TransferOffer::get_TransportLine()
IL_0AE3: stloc.s 30 (System.UInt16)
IL_0AE5: ldloc.s 29 (System.UInt16)
IL_0AE7: brfalse => Label243
IL_0AEC: call static SimulationManager
ColossalFramework.Singleton`1<SimulationManager>::get_instance()
IL_0AF1: ldflda ColossalFramework.Math.Randomizer
SimulationManager::m_randomizer
IL_0AF6: ldc.i4 256
IL_0AFB: call System.Int32
ColossalFramework.Math.Randomizer::Int32(System.UInt32 range)
IL_0B00: stloc.s 31 (System.Int32)
IL_0B02: ldc.i4.0
IL_0B03: stloc.s 32 (System.UInt32)
IL_0B05: ldloc.s 5 (System.Boolean)
IL_0B07: brtrue => Label244
IL_0B0C: ldloc.0
IL_0B0D: ldfld Array16`1<Building> BuildingManager::m_buildings
IL_0B12: ldfld Building[] Array16`1<Building>::m_buffer
IL_0B17: ldloc.s 29 (System.UInt16)
IL_0B19: ldelema Building
IL_0B1E: ldc.i4.s 64
IL_0B20: call System.UInt32 Building::GetEmptyCitizenUnit(Flags flag)
IL_0B25: stloc.s 32 (System.UInt32)
IL_0B27: Label244
IL_0B27: ldloc.s 32 (System.UInt32)
IL_0B29: brtrue => Label245
IL_0B2E: ldloc.s 5 (System.Boolean)
IL_0B30: brfalse => Label246
IL_0B35: Label245
IL_0B35: call static SimulationManager
ColossalFramework.Singleton`1<SimulationManager>::get_instance()
IL_0B3A: ldflda ColossalFramework.Math.Randomizer
SimulationManager::m_randomizer
IL_0B3F: ldc.i4.0
IL_0B40: ldc.i4 240
IL_0B45: call System.Int32
ColossalFramework.Math.Randomizer::Int32(System.Int32 min, System.Int32 max)
IL_0B4A: stloc.s 34 (System.Int32)
IL_0B4C: ldc.i4.2
IL_0B4D: stloc.s 35 (Citizen+Wealth)
IL_0B4F: ldarg.s 4
IL_0B51: ldarg.s 5
IL_0B53: add
IL_0B54: ldarg.s 6
IL_0B56: add
IL_0B57: stloc.s 36 (System.Int32)
IL_0B59: ldloc.s 36 (System.Int32)
IL_0B5B: brfalse => Label247
IL_0B60: call static SimulationManager
ColossalFramework.Singleton`1<SimulationManager>::get_instance()
IL_0B65: ldflda ColossalFramework.Math.Randomizer
SimulationManager::m_randomizer
IL_0B6A: ldloc.s 36 (System.Int32)
IL_0B6C: call System.Int32
ColossalFramework.Math.Randomizer::Int32(System.UInt32 range)
IL_0B71: stloc.s 37 (System.Int32)
IL_0B73: ldloc.s 37 (System.Int32)
IL_0B75: ldarg.s 4
IL_0B77: bge => Label248
IL_0B7C: ldc.i4.0
IL_0B7D: stloc.s 35 (Citizen+Wealth)
IL_0B7F: br => Label249
IL_0B84: Label248
IL_0B84: ldloc.s 37 (System.Int32)
IL_0B86: ldarg.s 4
IL_0B88: ldarg.s 5
IL_0B8A: add
IL_0B8B: bge => Label250
IL_0B90: ldc.i4.1
IL_0B91: stloc.s 35 (Citizen+Wealth)
IL_0B93: Label247
IL_0B93: Label249
IL_0B93: Label250
IL_0B93: ldloc.s 28 (CitizenManager)
IL_0B95: ldloca.s 33 (System.UInt32)
IL_0B97: ldloc.s 34 (System.Int32)
IL_0B99: ldloc.s 31 (System.Int32)
IL_0B9B: call static SimulationManager
ColossalFramework.Singleton`1<SimulationManager>::get_instance()
IL_0BA0: ldflda ColossalFramework.Math.Randomizer
SimulationManager::m_randomizer
IL_0BA5: callvirt System.Boolean CitizenManager::CreateCitizen(System.UInt32&
citizen, System.Int32 age, System.Int32 family, ColossalFramework.Math.Randomizer&
r)
IL_0BAA: brfalse => Label251
IL_0BAF: ldloc.s 28 (CitizenManager)
IL_0BB1: ldfld Array32`1<Citizen> CitizenManager::m_citizens
IL_0BB6: ldfld Citizen[] Array32`1<Citizen>::m_buffer
IL_0BBB: ldloc.s 33 (System.UInt32)
IL_0BBD: conv.u
IL_0BBE: ldelema Citizen
IL_0BC3: dup
IL_0BC4: ldfld Flags Citizen::m_flags
IL_0BC9: ldc.i4.2
IL_0BCA: or
IL_0BCB: stfld Flags Citizen::m_flags
IL_0BD0: ldloc.s 28 (CitizenManager)
IL_0BD2: ldfld Array32`1<Citizen> CitizenManager::m_citizens
IL_0BD7: ldfld Citizen[] Array32`1<Citizen>::m_buffer
IL_0BDC: ldloc.s 33 (System.UInt32)
IL_0BDE: conv.u
IL_0BDF: ldelema Citizen
IL_0BE4: dup
IL_0BE5: ldfld Flags Citizen::m_flags
IL_0BEA: ldc.i4.s 32
IL_0BEC: or
IL_0BED: stfld Flags Citizen::m_flags
IL_0BF2: ldloc.s 28 (CitizenManager)
IL_0BF4: ldfld Array32`1<Citizen> CitizenManager::m_citizens
IL_0BF9: ldfld Citizen[] Array32`1<Citizen>::m_buffer
IL_0BFE: ldloc.s 33 (System.UInt32)
IL_0C00: conv.u
IL_0C01: ldelema Citizen
IL_0C06: ldloc.s 35 (Citizen+Wealth)
IL_0C08: call System.Void Citizen::set_WealthLevel(Wealth value)
IL_0C0D: ldloc.s 5 (System.Boolean)
IL_0C0F: brfalse => Label252
IL_0C14: ldloc.s 28 (CitizenManager)
IL_0C16: ldfld Array32`1<Citizen> CitizenManager::m_citizens
IL_0C1B: ldfld Citizen[] Array32`1<Citizen>::m_buffer
IL_0C20: ldloc.s 33 (System.UInt32)
IL_0C22: conv.u
IL_0C23: ldelema Citizen
IL_0C28: dup
IL_0C29: ldfld Flags Citizen::m_flags
IL_0C2E: ldc.i4.s 64
IL_0C30: or
IL_0C31: stfld Flags Citizen::m_flags
IL_0C36: br => Label253
IL_0C3B: Label252
IL_0C3B: ldloc.s 28 (CitizenManager)
IL_0C3D: ldfld Array32`1<Citizen> CitizenManager::m_citizens
IL_0C42: ldfld Citizen[] Array32`1<Citizen>::m_buffer
IL_0C47: ldloc.s 33 (System.UInt32)
IL_0C49: conv.u
IL_0C4A: ldelema Citizen
IL_0C4F: ldloc.s 33 (System.UInt32)
IL_0C51: ldc.i4.0
IL_0C52: ldloc.s 32 (System.UInt32)
IL_0C54: call System.Void Citizen::SetVisitplace(System.UInt32 citizenID,
System.UInt16 buildingID, System.UInt32 unitID)
IL_0C59: Label253
IL_0C59: ldloc.s 28 (CitizenManager)
IL_0C5B: ldfld Array32`1<Citizen> CitizenManager::m_citizens
IL_0C60: ldfld Citizen[] Array32`1<Citizen>::m_buffer
IL_0C65: ldloc.s 33 (System.UInt32)
IL_0C67: conv.u
IL_0C68: ldelema Citizen
IL_0C6D: ldloc.s 33 (System.UInt32)
IL_0C6F: call CitizenInfo Citizen::GetCitizenInfo(System.UInt32 citizenID)
IL_0C74: stloc.s 38 (CitizenInfo)
IL_0C76: ldloc.s 38 (CitizenInfo)
IL_0C78: brfalse => Label254
IL_0C7D: ldloc.s 28 (CitizenManager)
IL_0C7F: ldloca.s 39 (System.UInt16)
IL_0C81: call static SimulationManager
ColossalFramework.Singleton`1<SimulationManager>::get_instance()
IL_0C86: ldflda ColossalFramework.Math.Randomizer
SimulationManager::m_randomizer
IL_0C8B: ldloc.s 38 (CitizenInfo)
IL_0C8D: ldloc.s 33 (System.UInt32)
IL_0C8F: callvirt System.Boolean
CitizenManager::CreateCitizenInstance(System.UInt16& instance,
ColossalFramework.Math.Randomizer& randomizer, CitizenInfo info, System.UInt32
citizen)
IL_0C94: brfalse => Label255
IL_0C99: ldloc.s 38 (CitizenInfo)
IL_0C9B: ldfld CitizenAI CitizenInfo::m_citizenAI
IL_0CA0: ldloc.s 39 (System.UInt16)
IL_0CA2: ldloc.s 28 (CitizenManager)
IL_0CA4: ldfld Array16`1<CitizenInstance> CitizenManager::m_instances
IL_0CA9: ldfld CitizenInstance[] Array16`1<CitizenInstance>::m_buffer
IL_0CAE: ldloc.s 39 (System.UInt16)
IL_0CB0: ldelema CitizenInstance
IL_0CB5: ldarg.0
IL_0CB6: callvirt virtual System.Void CitizenAI::SetSource(System.UInt16
instanceID, CitizenInstance& data, System.UInt16 sourceBuilding)
IL_0CBB: ldloc.s 38 (CitizenInfo)
IL_0CBD: ldfld CitizenAI CitizenInfo::m_citizenAI
IL_0CC2: ldloc.s 39 (System.UInt16)
IL_0CC4: ldloc.s 28 (CitizenManager)
IL_0CC6: ldfld Array16`1<CitizenInstance> CitizenManager::m_instances
IL_0CCB: ldfld CitizenInstance[] Array16`1<CitizenInstance>::m_buffer
IL_0CD0: ldloc.s 39 (System.UInt16)
IL_0CD2: ldelema CitizenInstance
IL_0CD7: ldloc.s 29 (System.UInt16)
IL_0CD9: callvirt System.Void CitizenAI::SetTarget(System.UInt16 instanceID,
CitizenInstance& data, System.UInt16 targetBuilding)
IL_0CDE: ldloc.s 28 (CitizenManager)
IL_0CE0: ldfld Array32`1<Citizen> CitizenManager::m_citizens
IL_0CE5: ldfld Citizen[] Array32`1<Citizen>::m_buffer
IL_0CEA: ldloc.s 33 (System.UInt32)
IL_0CEC: conv.u
IL_0CED: ldelema Citizen
IL_0CF2: ldc.i4.3
IL_0CF3: call System.Void Citizen::set_CurrentLocation(Location value)
IL_0CF8: Label254
IL_0CF8: Label255
IL_0CF8: ldloc.s 5 (System.Boolean)
IL_0CFA: brtrue => Label256
IL_0CFF: call static StatisticsManager
ColossalFramework.Singleton`1<StatisticsManager>::get_instance()
IL_0D04: ldc.i4.0
IL_0D05: callvirt StatisticBase StatisticsManager::Acquire(StatisticType type)
IL_0D0A: stloc.s 40 (StatisticBase)
IL_0D0C: ldloc.s 40 (StatisticBase)
IL_0D0E: ldloc.s 35 (Citizen+Wealth)
IL_0D10: ldc.i4.3
IL_0D11: callvirt abstract virtual StatisticBase
StatisticBase::Acquire(System.Int32 index, System.Int32 count)
IL_0D16: stloc.s 40 (StatisticBase)
IL_0D18: ldloc.s 40 (StatisticBase)
IL_0D1A: ldc.i4.1
IL_0D1B: callvirt abstract virtual System.Void StatisticBase::Add(System.Int32
delta)
IL_0D20: Label246
IL_0D20: Label251
IL_0D20: Label256
IL_0D20: br => Label257
IL_0D25: Label243
IL_0D25: ldloc.s 30 (System.UInt16)
IL_0D27: brfalse => Label258
IL_0D2C: call static TransportManager
ColossalFramework.Singleton`1<TransportManager>::get_instance()
IL_0D31: stloc.s 41 (TransportManager)
IL_0D33: ldloc.s 41 (TransportManager)
IL_0D35: ldfld Array16`1<TransportLine> TransportManager::m_lines
IL_0D3A: ldfld TransportLine[] Array16`1<TransportLine>::m_buffer
IL_0D3F: ldloc.s 30 (System.UInt16)
IL_0D41: ldelema TransportLine
IL_0D46: ldloc.s 30 (System.UInt16)
IL_0D48: call System.Int32 TransportLine::CountStops(System.UInt16 lineID)
IL_0D4D: stloc.s 42 (System.Int32)
IL_0D4F: ldloc.s 42 (System.Int32)
IL_0D51: ldc.i4.0
IL_0D52: ble => Label259
IL_0D57: call static SimulationManager
ColossalFramework.Singleton`1<SimulationManager>::get_instance()
IL_0D5C: ldflda ColossalFramework.Math.Randomizer
SimulationManager::m_randomizer
IL_0D61: ldloc.s 42 (System.Int32)
IL_0D63: call System.Int32
ColossalFramework.Math.Randomizer::Int32(System.UInt32 range)
IL_0D68: stloc.s 43 (System.Int32)
IL_0D6A: ldloc.s 41 (TransportManager)
IL_0D6C: ldfld Array16`1<TransportLine> TransportManager::m_lines
IL_0D71: ldfld TransportLine[] Array16`1<TransportLine>::m_buffer
IL_0D76: ldloc.s 30 (System.UInt16)
IL_0D78: ldelema TransportLine
IL_0D7D: ldloc.s 43 (System.Int32)
IL_0D7F: call System.UInt16 TransportLine::GetStop(System.Int32 index)
IL_0D84: stloc.s 44 (System.UInt16)
IL_0D86: ldloc.s 44 (System.UInt16)
IL_0D88: brfalse => Label260
IL_0D8D: call static SimulationManager
ColossalFramework.Singleton`1<SimulationManager>::get_instance()
IL_0D92: ldflda ColossalFramework.Math.Randomizer
SimulationManager::m_randomizer
IL_0D97: ldc.i4 256
IL_0D9C: call System.Int32
ColossalFramework.Math.Randomizer::Int32(System.UInt32 range)
IL_0DA1: stloc.s 45 (System.Int32)
IL_0DA3: call static SimulationManager
ColossalFramework.Singleton`1<SimulationManager>::get_instance()
IL_0DA8: ldflda ColossalFramework.Math.Randomizer
SimulationManager::m_randomizer
IL_0DAD: ldc.i4.0
IL_0DAE: ldc.i4 240
IL_0DB3: call System.Int32
ColossalFramework.Math.Randomizer::Int32(System.Int32 min, System.Int32 max)
IL_0DB8: stloc.s 46 (System.Int32)
IL_0DBA: ldc.i4.2
IL_0DBB: stloc.s 47 (Citizen+Wealth)
IL_0DBD: ldarg.s 4
IL_0DBF: ldarg.s 5
IL_0DC1: add
IL_0DC2: ldarg.s 6
IL_0DC4: add
IL_0DC5: stloc.s 48 (System.Int32)
IL_0DC7: ldloc.s 48 (System.Int32)
IL_0DC9: brfalse => Label261
IL_0DCE: call static SimulationManager
ColossalFramework.Singleton`1<SimulationManager>::get_instance()
IL_0DD3: ldflda ColossalFramework.Math.Randomizer
SimulationManager::m_randomizer
IL_0DD8: ldloc.s 48 (System.Int32)
IL_0DDA: call System.Int32
ColossalFramework.Math.Randomizer::Int32(System.UInt32 range)
IL_0DDF: stloc.s 49 (System.Int32)
IL_0DE1: ldloc.s 49 (System.Int32)
IL_0DE3: ldarg.s 4
IL_0DE5: bge => Label262
IL_0DEA: ldc.i4.0
IL_0DEB: stloc.s 47 (Citizen+Wealth)
IL_0DED: br => Label263
IL_0DF2: Label262
IL_0DF2: ldloc.s 49 (System.Int32)
IL_0DF4: ldarg.s 4
IL_0DF6: ldarg.s 5
IL_0DF8: add
IL_0DF9: bge => Label264
IL_0DFE: ldc.i4.1
IL_0DFF: stloc.s 47 (Citizen+Wealth)
IL_0E01: Label261
IL_0E01: Label263
IL_0E01: Label264
IL_0E01: ldloc.s 28 (CitizenManager)
IL_0E03: ldloca.s 50 (System.UInt32)
IL_0E05: ldloc.s 46 (System.Int32)
IL_0E07: ldloc.s 45 (System.Int32)
IL_0E09: call static SimulationManager
ColossalFramework.Singleton`1<SimulationManager>::get_instance()
IL_0E0E: ldflda ColossalFramework.Math.Randomizer
SimulationManager::m_randomizer
IL_0E13: callvirt System.Boolean CitizenManager::CreateCitizen(System.UInt32&
citizen, System.Int32 age, System.Int32 family, ColossalFramework.Math.Randomizer&
r)
IL_0E18: brfalse => Label265
IL_0E1D: ldloc.s 28 (CitizenManager)
IL_0E1F: ldfld Array32`1<Citizen> CitizenManager::m_citizens
IL_0E24: ldfld Citizen[] Array32`1<Citizen>::m_buffer
IL_0E29: ldloc.s 50 (System.UInt32)
IL_0E2B: conv.u
IL_0E2C: ldelema Citizen
IL_0E31: dup
IL_0E32: ldfld Flags Citizen::m_flags
IL_0E37: ldc.i4.2
IL_0E38: or
IL_0E39: stfld Flags Citizen::m_flags
IL_0E3E: ldloc.s 28 (CitizenManager)
IL_0E40: ldfld Array32`1<Citizen> CitizenManager::m_citizens
IL_0E45: ldfld Citizen[] Array32`1<Citizen>::m_buffer
IL_0E4A: ldloc.s 50 (System.UInt32)
IL_0E4C: conv.u
IL_0E4D: ldelema Citizen
IL_0E52: dup
IL_0E53: ldfld Flags Citizen::m_flags
IL_0E58: ldc.i4.s 32
IL_0E5A: or
IL_0E5B: stfld Flags Citizen::m_flags
IL_0E60: ldloc.s 28 (CitizenManager)
IL_0E62: ldfld Array32`1<Citizen> CitizenManager::m_citizens
IL_0E67: ldfld Citizen[] Array32`1<Citizen>::m_buffer
IL_0E6C: ldloc.s 50 (System.UInt32)
IL_0E6E: conv.u
IL_0E6F: ldelema Citizen
IL_0E74: ldloc.s 47 (Citizen+Wealth)
IL_0E76: call System.Void Citizen::set_WealthLevel(Wealth value)
IL_0E7B: ldloc.s 28 (CitizenManager)
IL_0E7D: ldfld Array32`1<Citizen> CitizenManager::m_citizens
IL_0E82: ldfld Citizen[] Array32`1<Citizen>::m_buffer
IL_0E87: ldloc.s 50 (System.UInt32)
IL_0E89: conv.u
IL_0E8A: ldelema Citizen
IL_0E8F: ldloc.s 50 (System.UInt32)
IL_0E91: call CitizenInfo Citizen::GetCitizenInfo(System.UInt32 citizenID)
IL_0E96: stloc.s 51 (CitizenInfo)
IL_0E98: ldloc.s 51 (CitizenInfo)
IL_0E9A: brfalse => Label266
IL_0E9F: ldloc.s 28 (CitizenManager)
IL_0EA1: ldloca.s 52 (System.UInt16)
IL_0EA3: call static SimulationManager
ColossalFramework.Singleton`1<SimulationManager>::get_instance()
IL_0EA8: ldflda ColossalFramework.Math.Randomizer
SimulationManager::m_randomizer
IL_0EAD: ldloc.s 51 (CitizenInfo)
IL_0EAF: ldloc.s 50 (System.UInt32)
IL_0EB1: callvirt System.Boolean
CitizenManager::CreateCitizenInstance(System.UInt16& instance,
ColossalFramework.Math.Randomizer& randomizer, CitizenInfo info, System.UInt32
citizen)
IL_0EB6: brfalse => Label267
IL_0EBB: ldloc.s 51 (CitizenInfo)
IL_0EBD: ldfld CitizenAI CitizenInfo::m_citizenAI
IL_0EC2: ldloc.s 52 (System.UInt16)
IL_0EC4: ldloc.s 28 (CitizenManager)
IL_0EC6: ldfld Array16`1<CitizenInstance> CitizenManager::m_instances
IL_0ECB: ldfld CitizenInstance[] Array16`1<CitizenInstance>::m_buffer
IL_0ED0: ldloc.s 52 (System.UInt16)
IL_0ED2: ldelema CitizenInstance
IL_0ED7: ldarg.0
IL_0ED8: callvirt virtual System.Void CitizenAI::SetSource(System.UInt16
instanceID, CitizenInstance& data, System.UInt16 sourceBuilding)
IL_0EDD: ldloc.s 51 (CitizenInfo)
IL_0EDF: ldfld CitizenAI CitizenInfo::m_citizenAI
IL_0EE4: ldloc.s 52 (System.UInt16)
IL_0EE6: ldloc.s 28 (CitizenManager)
IL_0EE8: ldfld Array16`1<CitizenInstance> CitizenManager::m_instances
IL_0EED: ldfld CitizenInstance[] Array16`1<CitizenInstance>::m_buffer
IL_0EF2: ldloc.s 52 (System.UInt16)
IL_0EF4: ldelema CitizenInstance
IL_0EF9: ldloc.s 44 (System.UInt16)
IL_0EFB: ldc.i4.1
IL_0EFC: callvirt virtual System.Void CitizenAI::SetTarget(System.UInt16
instanceID, CitizenInstance& data, System.UInt16 targetIndex, System.Boolean
targetIsNode)
IL_0F01: ldloc.s 28 (CitizenManager)
IL_0F03: ldfld Array32`1<Citizen> CitizenManager::m_citizens
IL_0F08: ldfld Citizen[] Array32`1<Citizen>::m_buffer
IL_0F0D: ldloc.s 50 (System.UInt32)
IL_0F0F: conv.u
IL_0F10: ldelema Citizen
IL_0F15: ldc.i4.3
IL_0F16: call System.Void Citizen::set_CurrentLocation(Location value)
IL_0F1B: call static StatisticsManager
ColossalFramework.Singleton`1<StatisticsManager>::get_instance()
IL_0F20: ldc.i4.0
IL_0F21: callvirt StatisticBase StatisticsManager::Acquire(StatisticType type)
IL_0F26: stloc.s 53 (StatisticBase)
IL_0F28: ldloc.s 53 (StatisticBase)
IL_0F2A: ldloc.s 47 (Citizen+Wealth)
IL_0F2C: ldc.i4.3
IL_0F2D: callvirt abstract virtual StatisticBase
StatisticBase::Acquire(System.Int32 index, System.Int32 count)
IL_0F32: stloc.s 53 (StatisticBase)
IL_0F34: ldloc.s 53 (StatisticBase)
IL_0F36: ldc.i4.1
IL_0F37: callvirt abstract virtual System.Void StatisticBase::Add(System.Int32
delta)
IL_0F3C: br => Label268
IL_0F41: Label266
IL_0F41: Label267
IL_0F41: ldloc.s 28 (CitizenManager)
IL_0F43: ldloc.s 50 (System.UInt32)
IL_0F45: callvirt System.Void CitizenManager::ReleaseCitizen(System.UInt32
citizen)
IL_0F4A: Label242
IL_0F4A: Label257
IL_0F4A: Label258
IL_0F4A: Label259
IL_0F4A: Label260
IL_0F4A: Label265
IL_0F4A: Label268
IL_0F4A: ldloc.1
IL_0F4B: brfalse => Label269
IL_0F50: call static VehicleManager
ColossalFramework.Singleton`1<VehicleManager>::get_instance()
IL_0F55: ldfld Array16`1<Vehicle> VehicleManager::m_vehicles
IL_0F5A: stloc.s 55 (Array16`1[Vehicle])
IL_0F5C: call static VehicleManager
ColossalFramework.Singleton`1<VehicleManager>::get_instance()
IL_0F61: ldloca.s 54 (System.UInt16)
IL_0F63: call static SimulationManager
ColossalFramework.Singleton`1<SimulationManager>::get_instance()
IL_0F68: ldflda ColossalFramework.Math.Randomizer
SimulationManager::m_randomizer
IL_0F6D: ldloc.1
IL_0F6E: ldarg.1
IL_0F6F: ldfld UnityEngine.Vector3 Building::m_position
IL_0F74: ldarg.2
IL_0F75: ldloc.s 6 (System.Boolean)
IL_0F77: ldloc.s 6 (System.Boolean)
IL_0F79: ldc.i4.0
IL_0F7A: ceq
IL_0F7C: callvirt System.Boolean VehicleManager::CreateVehicle(System.UInt16&
vehicle, ColossalFramework.Math.Randomizer& r, VehicleInfo info,
UnityEngine.Vector3 position, TransferReason type, System.Boolean transferToSource,
System.Boolean transferToTarget)
IL_0F81: brfalse => Label270
IL_0F86: ldloc.s 5 (System.Boolean)
IL_0F88: brfalse => Label271
IL_0F8D: ldloc.s 55 (Array16`1[Vehicle])
IL_0F8F: ldfld Vehicle[] Array16`1<Vehicle>::m_buffer
IL_0F94: ldloc.s 54 (System.UInt16)
IL_0F96: ldelema Vehicle
IL_0F9B: dup
IL_0F9C: ldfld Flags Vehicle::m_flags
IL_0FA1: ldc.i4 134217728
IL_0FA6: or
IL_0FA7: stfld Flags Vehicle::m_flags
IL_0FAC: ldloc.s 55 (Array16`1[Vehicle])
IL_0FAE: ldfld Vehicle[] Array16`1<Vehicle>::m_buffer
IL_0FB3: ldloc.s 54 (System.UInt16)
IL_0FB5: ldelema Vehicle
IL_0FBA: dup
IL_0FBB: ldfld Flags Vehicle::m_flags
IL_0FC0: ldc.i4 -131073
IL_0FC5: and
IL_0FC6: stfld Flags Vehicle::m_flags
IL_0FCB: ldarg.2
IL_0FCC: ldc.i4.s 46
IL_0FCE: bne.un => Label272
IL_0FD3: call static SimulationManager
ColossalFramework.Singleton`1<SimulationManager>::get_instance()
IL_0FD8: ldflda ColossalFramework.Math.Randomizer
SimulationManager::m_randomizer
IL_0FDD: ldc.i4.2
IL_0FDE: call System.Int32
ColossalFramework.Math.Randomizer::Int32(System.UInt32 range)
IL_0FE3: brtrue => Label273
IL_0FE8: call static DistrictManager
ColossalFramework.Singleton`1<DistrictManager>::get_instance()
IL_0FED: ldloc.s 54 (System.UInt16)
IL_0FEF: callvirt System.UInt16
DistrictManager::GetRandomAircraftStand(System.UInt16 airplane)
IL_0FF4: stloc.s 56 (System.UInt16)
IL_0FF6: ldloc.s 56 (System.UInt16)
IL_0FF8: brfalse => Label274
IL_0FFD: ldarga.s 3
IL_0FFF: ldloc.s 56 (System.UInt16)
IL_1001: call System.Void TransferOffer::set_Building(System.UInt16 value)
IL_1006: Label271
IL_1006: Label272
IL_1006: Label273
IL_1006: Label274
IL_1006: ldloc.1
IL_1007: ldfld VehicleAI VehicleInfo::m_vehicleAI
IL_100C: ldloc.s 54 (System.UInt16)
IL_100E: ldloc.s 55 (Array16`1[Vehicle])
IL_1010: ldfld Vehicle[] Array16`1<Vehicle>::m_buffer
IL_1015: ldloc.s 54 (System.UInt16)
IL_1017: ldelema Vehicle
IL_101C: ldarg.0
IL_101D: callvirt virtual System.Void VehicleAI::SetSource(System.UInt16
vehicleID, Vehicle& data, System.UInt16 sourceBuilding)
IL_1022: ldloc.1
IL_1023: ldfld VehicleAI VehicleInfo::m_vehicleAI
IL_1028: ldloc.s 54 (System.UInt16)
IL_102A: ldloc.s 55 (Array16`1[Vehicle])
IL_102C: ldfld Vehicle[] Array16`1<Vehicle>::m_buffer
IL_1031: ldloc.s 54 (System.UInt16)
IL_1033: ldelema Vehicle
IL_1038: ldarg.2
IL_1039: ldarg.3
IL_103A: callvirt virtual System.Void VehicleAI::StartTransfer(System.UInt16
vehicleID, Vehicle& data, TransferReason material, TransferOffer offer)
IL_103F: ldloc.s 5 (System.Boolean)
IL_1041: brtrue => Label275
IL_1046: ldarga.s 3
IL_1048: call System.UInt16 TransferOffer::get_Building()
IL_104D: stloc.s 57 (System.UInt16)
IL_104F: ldloc.s 57 (System.UInt16)
IL_1051: brfalse => Label276
IL_1056: ldloc.1
IL_1057: ldfld VehicleAI VehicleInfo::m_vehicleAI
IL_105C: ldloc.s 54 (System.UInt16)
IL_105E: ldloc.s 55 (Array16`1[Vehicle])
IL_1060: ldfld Vehicle[] Array16`1<Vehicle>::m_buffer
IL_1065: ldloc.s 54 (System.UInt16)
IL_1067: ldelema Vehicle
IL_106C: ldloca.s 58 (System.Int32)
IL_106E: ldloca.s 59 (System.Int32)
IL_1070: callvirt virtual System.Void VehicleAI::GetSize(System.UInt16 vehicleID,
Vehicle& data, System.Int32& size, System.Int32& max)
IL_1075: ldloc.s 6 (System.Boolean)
IL_1077: brtrue => Label277
IL_107C: ldloc.s 57 (System.UInt16)
IL_107E: call static BuildingManager
ColossalFramework.Singleton`1<BuildingManager>::get_instance()
IL_1083: ldfld Array16`1<Building> BuildingManager::m_buildings
IL_1088: ldfld Building[] Array16`1<Building>::m_buffer
IL_108D: ldloc.s 57 (System.UInt16)
IL_108F: ldelema Building
IL_1094: ldarg.2
IL_1095: ldloc.s 58 (System.Int32)
IL_1097: call static System.Void
OutsideConnectionAI::ImportResource(System.UInt16 buildingID, Building& data,
TransferReason resource, System.Int32 amount)
IL_109C: Label269
IL_109C: Label270
IL_109C: Label275
IL_109C: Label276
IL_109C: Label277
IL_109C: ldc.i4.1
IL_109D: // end original
IL_109D: Label278
IL_109D: ret
DONE
### Patch: System.Void HumanAI::FindVisitPlace(System.UInt32 citizenID,
System.UInt16 sourceBuilding, TransferReason reason)
### Replacement: static System.Void HumanAI::HumanAI.FindVisitPlace_Patch1(HumanAI
this, System.UInt32 citizenID, System.UInt16 sourceBuilding, TransferReason reason)
IL_0000: Local var 0: TransferManager/TransferOffer
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 1
IL_001B: ldarg 3
IL_001F: call static System.Boolean
LifecycleRebalance.RealTimePatch::Prefix(System.UInt32 citizenID, TransferReason
reason)
IL_0024: stloc 1 (System.Boolean)
IL_0028: Label1
IL_0028: nop
IL_0029: ldloc 1 (System.Boolean)
IL_002D: brfalse => Label0
IL_0032: // start original
IL_0032: ldloca.s 0 (TransferManager+TransferOffer)
IL_0034: initobj TransferManager+TransferOffer
IL_003A: ldloca.s 0 (TransferManager+TransferOffer)
IL_003C: call static SimulationManager
ColossalFramework.Singleton`1<SimulationManager>::get_instance()
IL_0041: ldflda ColossalFramework.Math.Randomizer
SimulationManager::m_randomizer
IL_0046: ldc.i4.8
IL_0047: call System.Int32
ColossalFramework.Math.Randomizer::Int32(System.UInt32 range)
IL_004C: call System.Void TransferOffer::set_Priority(System.Int32 value)
IL_0051: ldloca.s 0 (TransferManager+TransferOffer)
IL_0053: ldarg.1
IL_0054: call System.Void TransferOffer::set_Citizen(System.UInt32 value)
IL_0059: ldloca.s 0 (TransferManager+TransferOffer)
IL_005B: call static BuildingManager
ColossalFramework.Singleton`1<BuildingManager>::get_instance()
IL_0060: ldfld Array16`1<Building> BuildingManager::m_buildings
IL_0065: ldfld Building[] Array16`1<Building>::m_buffer
IL_006A: ldarg.2
IL_006B: ldelema Building
IL_0070: ldfld UnityEngine.Vector3 Building::m_position
IL_0075: call System.Void TransferOffer::set_Position(UnityEngine.Vector3
value)
IL_007A: ldloca.s 0 (TransferManager+TransferOffer)
IL_007C: ldc.i4.1
IL_007D: call System.Void TransferOffer::set_Amount(System.Int32 value)
IL_0082: ldloca.s 0 (TransferManager+TransferOffer)
IL_0084: ldc.i4.1
IL_0085: call System.Void TransferOffer::set_Active(System.Boolean value)
IL_008A: call static TransferManager
ColossalFramework.Singleton`1<TransferManager>::get_instance()
IL_008F: ldarg.3
IL_0090: ldloc.0
IL_0091: callvirt System.Void TransferManager::AddIncomingOffer(TransferReason
material, TransferOffer offer)
IL_0096: // end original
IL_0096: Label0
IL_0096: ret
DONE

### Patch: static System.Void


LifecycleRebalance.ResidentAIPatches::FinishSchoolOrWorkRev(System.Object instance,
System.UInt32 citizenID, Citizen& data)
### Replacement: static System.Void
LifecycleRebalance.ResidentAIPatches::LifecycleRebalance.ResidentAIPatches.FinishSc
hoolOrWorkRev_Patch0(System.Object instance, System.UInt32 citizenID, Citizen&
data)
IL_0000: Local var 0: BuildingManager
IL_0000: Local var 1: CitizenManager
IL_0000: Local var 2: System.UInt32
IL_0000: Local var 3: System.Int32
IL_0000: Local var 4: System.UInt32
IL_0000: Local var 5: CitizenUnit/Flags
IL_0000: Local var 6: BuildingInfo
IL_0000: Local var 7: System.Int32
IL_0000: // start original
IL_0000: ldarg.2
IL_0001: ldfld System.UInt16 Citizen::m_workBuilding
IL_0006: brfalse => Label0
IL_000B: ldarg.2
IL_000C: call Location Citizen::get_CurrentLocation()
IL_0011: ldc.i4.1
IL_0012: bne.un => Label1
IL_0017: ldarg.2
IL_0018: ldfld System.UInt16 Citizen::m_homeBuilding
IL_001D: brfalse => Label2
IL_0022: ldarg.2
IL_0023: dup
IL_0024: ldfld Flags Citizen::m_flags
IL_0029: ldc.i4 -513
IL_002E: and
IL_002F: stfld Flags Citizen::m_flags
IL_0034: ldarg.0
IL_0035: ldarg.1
IL_0036: ldarg.2
IL_0037: ldarg.2
IL_0038: ldfld System.UInt16 Citizen::m_workBuilding
IL_003D: ldarg.2
IL_003E: ldfld System.UInt16 Citizen::m_homeBuilding
IL_0043: call System.Boolean HumanAI::StartMoving(System.UInt32 citizenID,
Citizen& data, System.UInt16 sourceBuilding, System.UInt16 targetBuilding)
IL_0048: pop
IL_0049: Label1
IL_0049: Label2
IL_0049: call static BuildingManager
ColossalFramework.Singleton`1<BuildingManager>::get_instance()
IL_004E: stloc.0
IL_004F: call static CitizenManager
ColossalFramework.Singleton`1<CitizenManager>::get_instance()
IL_0054: stloc.1
IL_0055: ldloc.0
IL_0056: ldfld Array16`1<Building> BuildingManager::m_buildings
IL_005B: ldfld Building[] Array16`1<Building>::m_buffer
IL_0060: ldarg.2
IL_0061: ldfld System.UInt16 Citizen::m_workBuilding
IL_0066: ldelema Building
IL_006B: ldfld System.UInt32 Building::m_citizenUnits
IL_0070: stloc.2
IL_0071: ldc.i4.0
IL_0072: stloc.3
IL_0073: br => Label3
IL_0078: Label25
IL_0078: ldloc.1
IL_0079: ldfld Array32`1<CitizenUnit> CitizenManager::m_units
IL_007E: ldfld CitizenUnit[] Array32`1<CitizenUnit>::m_buffer
IL_0083: ldloc.2
IL_0084: conv.u
IL_0085: ldelema CitizenUnit
IL_008A: ldfld System.UInt32 CitizenUnit::m_nextUnit
IL_008F: stloc.s 4 (System.UInt32)
IL_0091: ldloc.1
IL_0092: ldfld Array32`1<CitizenUnit> CitizenManager::m_units
IL_0097: ldfld CitizenUnit[] Array32`1<CitizenUnit>::m_buffer
IL_009C: ldloc.2
IL_009D: conv.u
IL_009E: ldelema CitizenUnit
IL_00A3: ldfld Flags CitizenUnit::m_flags
IL_00A8: stloc.s 5 (CitizenUnit+Flags)
IL_00AA: ldloc.s 5 (CitizenUnit+Flags)
IL_00AC: ldc.i4 288
IL_00B1: and
IL_00B2: conv.u2
IL_00B3: brfalse => Label4
IL_00B8: ldloc.s 5 (CitizenUnit+Flags)
IL_00BA: ldc.i4 256
IL_00BF: and
IL_00C0: conv.u2
IL_00C1: brfalse => Label5
IL_00C6: ldarg.2
IL_00C7: ldarg.1
IL_00C8: ldloc.1
IL_00C9: ldfld Array32`1<CitizenUnit> CitizenManager::m_units
IL_00CE: ldfld CitizenUnit[] Array32`1<CitizenUnit>::m_buffer
IL_00D3: ldloc.2
IL_00D4: conv.u
IL_00D5: ldelema CitizenUnit
IL_00DA: call System.Boolean Citizen::RemoveFromUnit(System.UInt32 citizenID,
CitizenUnit& data)
IL_00DF: brfalse => Label6
IL_00E4: ldloc.0
IL_00E5: ldfld Array16`1<Building> BuildingManager::m_buildings
IL_00EA: ldfld Building[] Array16`1<Building>::m_buffer
IL_00EF: ldarg.2
IL_00F0: ldfld System.UInt16 Citizen::m_workBuilding
IL_00F5: ldelema Building
IL_00FA: call BuildingInfo Building::get_Info()
IL_00FF: stloc.s 6 (BuildingInfo)
IL_0101: ldloc.s 6 (BuildingInfo)
IL_0103: ldfld BuildingAI BuildingInfo::m_buildingAI
IL_0108: callvirt virtual System.Boolean BuildingAI::GetEducationLevel1()
IL_010D: brfalse => Label7
IL_0112: ldarg.2
IL_0113: ldc.i4.1
IL_0114: call System.Void Citizen::set_Education1(System.Boolean value)
IL_0119: Label7
IL_0119: ldloc.s 6 (BuildingInfo)
IL_011B: ldfld BuildingAI BuildingInfo::m_buildingAI
IL_0120: callvirt virtual System.Boolean BuildingAI::GetEducationLevel2()
IL_0125: brfalse => Label8
IL_012A: ldarg.2
IL_012B: call System.Boolean Citizen::get_Education1()
IL_0130: brtrue => Label9
IL_0135: ldarg.2
IL_0136: ldc.i4.1
IL_0137: call System.Void Citizen::set_Education1(System.Boolean value)
IL_013C: br => Label10
IL_0141: Label9
IL_0141: ldarg.2
IL_0142: ldc.i4.1
IL_0143: call System.Void Citizen::set_Education2(System.Boolean value)
IL_0148: Label8
IL_0148: Label10
IL_0148: ldloc.s 6 (BuildingInfo)
IL_014A: ldfld BuildingAI BuildingInfo::m_buildingAI
IL_014F: callvirt virtual System.Boolean BuildingAI::GetEducationLevel3()
IL_0154: brfalse => Label11
IL_0159: ldarg.2
IL_015A: call System.Boolean Citizen::get_Education1()
IL_015F: brtrue => Label12
IL_0164: ldarg.2
IL_0165: ldc.i4.1
IL_0166: call System.Void Citizen::set_Education1(System.Boolean value)
IL_016B: br => Label13
IL_0170: Label12
IL_0170: ldarg.2
IL_0171: call System.Boolean Citizen::get_Education2()
IL_0176: brtrue => Label14
IL_017B: ldarg.2
IL_017C: ldc.i4.1
IL_017D: call System.Void Citizen::set_Education2(System.Boolean value)
IL_0182: br => Label15
IL_0187: Label14
IL_0187: ldarg.2
IL_0188: ldc.i4.1
IL_0189: call System.Void Citizen::set_Education3(System.Boolean value)
IL_018E: Label11
IL_018E: Label13
IL_018E: Label15
IL_018E: ldarg.2
IL_018F: ldc.i4.0
IL_0190: stfld System.UInt16 Citizen::m_workBuilding
IL_0195: ldarg.2
IL_0196: dup
IL_0197: ldfld Flags Citizen::m_flags
IL_019C: ldc.i4.s -17
IL_019E: and
IL_019F: stfld Flags Citizen::m_flags
IL_01A4: ldarg.2
IL_01A5: ldfld Flags Citizen::m_flags
IL_01AA: ldc.i4 32768
IL_01AF: and
IL_01B0: brfalse => Label16
IL_01B5: ldarg.2
IL_01B6: call Education Citizen::get_EducationLevel()
IL_01BB: ldc.i4.3
IL_01BC: bne.un => Label17
IL_01C1: ldloc.1
IL_01C2: dup
IL_01C3: ldfld System.Int32 CitizenManager::m_fullyEducatedOriginalResidents
IL_01C8: dup
IL_01C9: stloc.s 7 (System.Int32)
IL_01CB: ldc.i4.1
IL_01CC: add
IL_01CD: stfld System.Int32 CitizenManager::m_fullyEducatedOriginalResidents
IL_01D2: ldloc.s 7 (System.Int32)
IL_01D4: brtrue => Label18
IL_01D9: call static SimulationManager
ColossalFramework.Singleton`1<SimulationManager>::get_instance()
IL_01DE: ldfld SimulationMetaData SimulationManager::m_metaData
IL_01E3: ldfld MetaBool SimulationMetaData::m_disableAchievements
IL_01E8: ldc.i4.2
IL_01E9: beq => Label19
IL_01EE: call static ColossalFramework.Threading.Dispatcher
ColossalFramework.Threading.ThreadHelper::get_dispatcher()
IL_01F3: ldsfld System.Action ResidentAI::<>f__am$cache0
IL_01F8: brtrue => Label20
IL_01FD: ldnull
IL_01FE: ldftn static System.Void ResidentAI::<FinishSchoolOrWork>m__0()
IL_0204: newobj System.Void System.Action::.ctor(System.Object object,
System.IntPtr method)
IL_0209: stsfld System.Action ResidentAI::<>f__am$cache0
IL_020E: Label20
IL_020E: ldsfld System.Action ResidentAI::<>f__am$cache0
IL_0213: callvirt ColossalFramework.Threading.Task
ColossalFramework.Threading.DispatcherBase::Dispatch(System.Action action)
IL_0218: pop
IL_0219: Label16
IL_0219: Label17
IL_0219: Label18
IL_0219: Label19
IL_0219: br => Label26
IL_021E: Label6
IL_021E: br => Label21
IL_0223: Label5
IL_0223: ldarg.2
IL_0224: ldarg.1
IL_0225: ldloc.1
IL_0226: ldfld Array32`1<CitizenUnit> CitizenManager::m_units
IL_022B: ldfld CitizenUnit[] Array32`1<CitizenUnit>::m_buffer
IL_0230: ldloc.2
IL_0231: conv.u
IL_0232: ldelema CitizenUnit
IL_0237: call System.Boolean Citizen::RemoveFromUnit(System.UInt32 citizenID,
CitizenUnit& data)
IL_023C: brfalse => Label22
IL_0241: ldarg.2
IL_0242: ldc.i4.0
IL_0243: stfld System.UInt16 Citizen::m_workBuilding
IL_0248: ldarg.2
IL_0249: dup
IL_024A: ldfld Flags Citizen::m_flags
IL_024F: ldc.i4.s -17
IL_0251: and
IL_0252: stfld Flags Citizen::m_flags
IL_0257: br => Label27
IL_025C: Label4
IL_025C: Label21
IL_025C: Label22
IL_025C: ldloc.s 4 (System.UInt32)
IL_025E: stloc.2
IL_025F: ldloc.3
IL_0260: ldc.i4.1
IL_0261: add
IL_0262: dup
IL_0263: stloc.3
IL_0264: ldc.i4 524288
IL_0269: ble => Label23
IL_026E: ldc.i4.1
IL_026F: ldstr "Invalid list detected!\n"
IL_0274: call static System.String System.Environment::get_StackTrace()
IL_0279: call static System.String System.String::Concat(System.String str0,
System.String str1)
IL_027E: call static System.Void
ColossalFramework.CODebugBase`1<LogChannel>::Error(LogChannel ll, System.String
msg)
IL_0283: br => Label24
IL_0288: Label3
IL_0288: Label23
IL_0288: ldloc.2
IL_0289: brtrue => Label25
IL_028E: // end original
IL_028E: Label0
IL_028E: Label24
IL_028E: Label26
IL_028E: Label27
IL_028E: ret
DONE

### Patch: static System.Void


LifecycleRebalance.ResidentAIPatches::DieRev(System.Object instance, System.UInt32
citizenID, Citizen& data)
### Replacement: static System.Void
LifecycleRebalance.ResidentAIPatches::LifecycleRebalance.ResidentAIPatches.DieRev_P
atch0(System.Object instance, System.UInt32 citizenID, Citizen& data)
IL_0000: Local var 0: System.UInt16
IL_0000: Local var 1: DistrictManager
IL_0000: Local var 2: UnityEngine.Vector3
IL_0000: Local var 3: System.Byte
IL_0000: // start original
IL_0000: ldarg.2
IL_0001: ldc.i4.0
IL_0002: call System.Void Citizen::set_Sick(System.Boolean value)
IL_0007: ldarg.2
IL_0008: ldc.i4.1
IL_0009: call System.Void Citizen::set_Dead(System.Boolean value)
IL_000E: ldarg.2
IL_000F: ldarg.1
IL_0010: ldc.i4.0
IL_0011: call System.Void Citizen::SetParkedVehicle(System.UInt32 citizenID,
System.UInt16 parkedVehicleID)
IL_0016: ldarg.2
IL_0017: ldfld Flags Citizen::m_flags
IL_001C: ldc.i4.s 32
IL_001E: and
IL_001F: brtrue => Label0
IL_0024: ldarg.2
IL_0025: call System.UInt16 Citizen::GetBuildingByLocation()
IL_002A: stloc.0
IL_002B: ldloc.0
IL_002C: brtrue => Label1
IL_0031: ldarg.2
IL_0032: ldfld System.UInt16 Citizen::m_homeBuilding
IL_0037: stloc.0
IL_0038: Label1
IL_0038: ldloc.0
IL_0039: brfalse => Label2
IL_003E: call static DistrictManager
ColossalFramework.Singleton`1<DistrictManager>::get_instance()
IL_0043: stloc.1
IL_0044: call static BuildingManager
ColossalFramework.Singleton`1<BuildingManager>::get_instance()
IL_0049: ldfld Array16`1<Building> BuildingManager::m_buildings
IL_004E: ldfld Building[] Array16`1<Building>::m_buffer
IL_0053: ldloc.0
IL_0054: ldelema Building
IL_0059: ldfld UnityEngine.Vector3 Building::m_position
IL_005E: stloc.2
IL_005F: ldloc.1
IL_0060: ldloc.2
IL_0061: callvirt System.Byte DistrictManager::GetDistrict(UnityEngine.Vector3
worldPos)
IL_0066: stloc.3
IL_0067: ldloc.1
IL_0068: ldfld Array8`1<District> DistrictManager::m_districts
IL_006D: ldfld District[] Array8`1<District>::m_buffer
IL_0072: ldloc.3
IL_0073: ldelema District
IL_0078: ldflda DistrictAgeData District::m_deathData
IL_007D: dup
IL_007E: ldfld System.UInt32 DistrictAgeData::m_tempCount
IL_0083: ldc.i4.1
IL_0084: add
IL_0085: stfld System.UInt32 DistrictAgeData::m_tempCount
IL_008A: ldarg.0
IL_008B: ldarg.1
IL_008C: call System.Boolean ResidentAI::IsSenior(System.UInt32 citizenID)
IL_0091: brfalse => Label3
IL_0096: ldloc.1
IL_0097: ldfld Array8`1<District> DistrictManager::m_districts
IL_009C: ldfld District[] Array8`1<District>::m_buffer
IL_00A1: ldloc.3
IL_00A2: ldelema District
IL_00A7: ldflda DistrictAgeData District::m_deadSeniorsData
IL_00AC: dup
IL_00AD: ldfld System.UInt32 DistrictAgeData::m_tempCount
IL_00B2: ldc.i4.1
IL_00B3: add
IL_00B4: stfld System.UInt32 DistrictAgeData::m_tempCount
IL_00B9: ldloc.1
IL_00BA: ldfld Array8`1<District> DistrictManager::m_districts
IL_00BF: ldfld District[] Array8`1<District>::m_buffer
IL_00C4: ldloc.3
IL_00C5: ldelema District
IL_00CA: ldflda DistrictAgeData District::m_ageAtDeathData
IL_00CF: dup
IL_00D0: ldfld System.UInt32 DistrictAgeData::m_tempCount
IL_00D5: ldarg.2
IL_00D6: call System.Int32 Citizen::get_Age()
IL_00DB: add
IL_00DC: stfld System.UInt32 DistrictAgeData::m_tempCount
IL_00E1: // end original
IL_00E1: Label0
IL_00E1: Label2
IL_00E1: Label3
IL_00E1: ret
DONE

### Patch: System.Boolean ResidentAI::CanMakeBabies(System.UInt32 citizenID,


Citizen& data)
### Replacement: static System.Boolean
ResidentAI::ResidentAI.CanMakeBabies_Patch1(ResidentAI this, System.UInt32
citizenID, Citizen& data)
IL_0000: Local var 0: System.Boolean
IL_0000: Local var 1: System.Boolean
IL_0000: ldc.i4 0
IL_0005: stloc 0 (System.Boolean)
IL_0009: ldc.i4 0
IL_000E: stloc 1 (System.Boolean)
IL_0012: ldc.i4.1
IL_0013: stloc 1 (System.Boolean)
IL_0017: ldloc 1 (System.Boolean)
IL_001B: brfalse => Label1
IL_0020: ldloca 0 (System.Boolean)
IL_0024: ldarg 1
IL_0028: ldarg 2
IL_002C: call static System.Boolean
LifecycleRebalance.ResidentAIPatches::CanMakeBabies(System.Boolean& __result,
System.UInt32 citizenID, Citizen& data)
IL_0031: stloc 1 (System.Boolean)
IL_0035: Label1
IL_0035: nop
IL_0036: ldloc 1 (System.Boolean)
IL_003A: brfalse => Label0
IL_003F: // start original
IL_003F: ldarg.2
IL_0040: call System.Boolean Citizen::get_Dead()
IL_0045: brfalse => Label2
IL_004A: ldc.i4.0
IL_004B: br => Label5
IL_0050: Label2
IL_0050: ldarg.2
IL_0051: call System.Int32 Citizen::get_Age()
IL_0056: call static AgeGroup Citizen::GetAgeGroup(System.Int32 age)
IL_005B: ldc.i4.3
IL_005C: beq => Label3
IL_0061: ldc.i4.0
IL_0062: br => Label6
IL_0067: Label3
IL_0067: ldarg.2
IL_0068: ldfld Flags Citizen::m_flags
IL_006D: ldc.i4.s 32
IL_006F: and
IL_0070: brfalse => Label4
IL_0075: ldc.i4.0
IL_0076: br => Label7
IL_007B: Label4
IL_007B: ldc.i4.1
IL_007C: // end original
IL_007C: Label5
IL_007C: Label6
IL_007C: Label7
IL_007C: stloc 0 (System.Boolean)
IL_0080: Label0
IL_0080: ldloc 0 (System.Boolean)
IL_0084: ret
DONE

### Patch: System.Boolean ResidentAI::UpdateAge(System.UInt32 citizenID, Citizen&


data)
### Replacement: static System.Boolean
ResidentAI::ResidentAI.UpdateAge_Patch1(ResidentAI this, System.UInt32 citizenID,
Citizen& data)
IL_0000: Local var 0: System.Int32
IL_0000: Local var 1: CitizenManager
IL_0000: Local var 2: System.Boolean
IL_0000: Local var 3: System.UInt32
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.Boolean
IL_0000: Local var 8: System.Byte
IL_0000: Local var 9: System.Byte
IL_0000: Local var 10: System.Boolean
IL_0000: Local var 11: System.Boolean
IL_0000: ldc.i4 0
IL_0005: stloc 10 (System.Boolean)
IL_0009: ldc.i4 0
IL_000E: stloc 11 (System.Boolean)
IL_0012: ldc.i4.1
IL_0013: stloc 11 (System.Boolean)
IL_0017: ldloc 11 (System.Boolean)
IL_001B: brfalse => Label1
IL_0020: ldloca 10 (System.Boolean)
IL_0024: ldarg.0
IL_0025: ldarg 1
IL_0029: ldarg 2
IL_002D: call static System.Boolean
LifecycleRebalance.ResidentAIPatches::UpdateAge(System.Boolean& __result,
ResidentAI __instance, System.UInt32 citizenID, Citizen& data)
IL_0032: stloc 11 (System.Boolean)
IL_0036: Label1
IL_0036: nop
IL_0037: ldloc 11 (System.Boolean)
IL_003B: brfalse => Label0
IL_0040: // start original
IL_0040: ldarg.2
IL_0041: call System.Int32 Citizen::get_Age()
IL_0046: ldc.i4.1
IL_0047: add
IL_0048: stloc.0
IL_0049: ldloc.0
IL_004A: ldc.i4.s 45
IL_004C: bgt => Label2
IL_0051: ldloc.0
IL_0052: ldc.i4.s 15
IL_0054: beq => Label3
IL_0059: ldloc.0
IL_005A: ldc.i4.s 45
IL_005C: bne.un => Label4
IL_0061: Label3
IL_0061: ldarg.0
IL_0062: ldarg.1
IL_0063: ldarg.2
IL_0064: call System.Void ResidentAI::FinishSchoolOrWork(System.UInt32
citizenID, Citizen& data)
IL_0069: Label4
IL_0069: br => Label5
IL_006E: Label2
IL_006E: ldloc.0
IL_006F: ldc.i4.s 90
IL_0071: beq => Label6
IL_0076: ldloc.0
IL_0077: ldc.i4 180
IL_007C: bne.un => Label7
IL_0081: Label6
IL_0081: ldarg.0
IL_0082: ldarg.1
IL_0083: ldarg.2
IL_0084: call System.Void ResidentAI::FinishSchoolOrWork(System.UInt32
citizenID, Citizen& data)
IL_0089: br => Label8
IL_008E: Label7
IL_008E: ldarg.2
IL_008F: ldfld Flags Citizen::m_flags
IL_0094: ldc.i4.s 16
IL_0096: and
IL_0097: brfalse => Label9
IL_009C: ldloc.0
IL_009D: ldc.i4.s 15
IL_009F: rem
IL_00A0: brtrue => Label10
IL_00A5: ldarg.0
IL_00A6: ldarg.1
IL_00A7: ldarg.2
IL_00A8: call System.Void ResidentAI::FinishSchoolOrWork(System.UInt32
citizenID, Citizen& data)
IL_00AD: Label5
IL_00AD: Label8
IL_00AD: Label9
IL_00AD: Label10
IL_00AD: ldarg.2
IL_00AE: ldfld Flags Citizen::m_flags
IL_00B3: ldc.i4 32768
IL_00B8: and
IL_00B9: brfalse => Label11
IL_00BE: call static CitizenManager
ColossalFramework.Singleton`1<CitizenManager>::get_instance()
IL_00C3: stloc.1
IL_00C4: ldloc.1
IL_00C5: ldfld System.Int32 CitizenManager::m_tempOldestOriginalResident
IL_00CA: ldloc.0
IL_00CB: bge => Label12
IL_00D0: ldloc.1
IL_00D1: ldloc.0
IL_00D2: stfld System.Int32 CitizenManager::m_tempOldestOriginalResident
IL_00D7: Label12
IL_00D7: ldloc.0
IL_00D8: ldc.i4 240
IL_00DD: bne.un => Label13
IL_00E2: call static StatisticsManager
ColossalFramework.Singleton`1<StatisticsManager>::get_instance()
IL_00E7: ldc.i4.s 27
IL_00E9: callvirt StatisticBase StatisticsManager::Acquire(StatisticType type)
IL_00EE: ldc.i4.1
IL_00EF: callvirt abstract virtual System.Void StatisticBase::Add(System.Int32
delta)
IL_00F4: Label11
IL_00F4: Label13
IL_00F4: ldarg.2
IL_00F5: call Location Citizen::get_CurrentLocation()
IL_00FA: ldc.i4.3
IL_00FB: beq => Label14
IL_0100: ldarg.2
IL_0101: ldfld System.UInt16 Citizen::m_vehicle
IL_0106: brtrue => Label15
IL_010B: ldarg.2
IL_010C: ldloc.0
IL_010D: call System.Void Citizen::set_Age(System.Int32 value)
IL_0112: ldc.i4.0
IL_0113: stloc.2
IL_0114: ldc.i4 2000
IL_0119: ldc.i4.4
IL_011A: ldarg.2
IL_011B: call System.Int32 Citizen::get_Age()
IL_0120: call static AgeGroup Citizen::GetAgeGroup(System.Int32 age)
IL_0125: sub
IL_0126: ldc.i4.s 31
IL_0128: and
IL_0129: shl
IL_012A: stloc.3
IL_012B: call static SimulationManager
ColossalFramework.Singleton`1<SimulationManager>::get_instance()
IL_0130: ldflda ColossalFramework.Math.Randomizer
SimulationManager::m_randomizer
IL_0135: ldloc.3
IL_0136: call System.Int32
ColossalFramework.Math.Randomizer::Int32(System.UInt32 range)
IL_013B: ldc.i4.3
IL_013C: bge => Label16
IL_0141: ldc.i4.1
IL_0142: stloc.2
IL_0143: Label16
IL_0143: ldloc.2
IL_0144: brtrue => Label17
IL_0149: ldc.i4 240
IL_014E: stloc.s 4 (System.Int32)
IL_0150: ldc.i4 255
IL_0155: stloc.s 5 (System.Int32)
IL_0157: ldc.i4.0
IL_0158: ldc.i4 145
IL_015D: ldc.i4.s 100
IL_015F: ldarg.2
IL_0160: ldfld System.Byte Citizen::m_health
IL_0165: sub
IL_0166: ldc.i4.3
IL_0167: mul
IL_0168: sub
IL_0169: call static System.Int32 UnityEngine.Mathf::Max(System.Int32 a,
System.Int32 b)
IL_016E: stloc.s 6 (System.Int32)
IL_0170: ldloc.s 6 (System.Int32)
IL_0172: brfalse => Label18
IL_0177: ldloc.s 4 (System.Int32)
IL_0179: ldloc.s 6 (System.Int32)
IL_017B: ldc.i4.3
IL_017C: div
IL_017D: add
IL_017E: stloc.s 4 (System.Int32)
IL_0180: ldloc.s 5 (System.Int32)
IL_0182: ldloc.s 6 (System.Int32)
IL_0184: add
IL_0185: stloc.s 5 (System.Int32)
IL_0187: br => Label19
IL_018C: Label18
IL_018C: ldc.i4.0
IL_018D: stloc.s 7 (System.Boolean)
IL_018F: ldarg.2
IL_0190: ldfld System.UInt16 Citizen::m_homeBuilding
IL_0195: brfalse => Label20
IL_019A: call static DistrictManager
ColossalFramework.Singleton`1<DistrictManager>::get_instance()
IL_019F: call static BuildingManager
ColossalFramework.Singleton`1<BuildingManager>::get_instance()
IL_01A4: ldfld Array16`1<Building> BuildingManager::m_buildings
IL_01A9: ldfld Building[] Array16`1<Building>::m_buffer
IL_01AE: ldarg.2
IL_01AF: ldfld System.UInt16 Citizen::m_homeBuilding
IL_01B4: ldelema Building
IL_01B9: ldfld UnityEngine.Vector3 Building::m_position
IL_01BE: callvirt System.Byte DistrictManager::GetPark(UnityEngine.Vector3
worldPos)
IL_01C3: stloc.s 8 (System.Byte)
IL_01C5: ldloc.s 8 (System.Byte)
IL_01C7: brfalse => Label21
IL_01CC: call static DistrictManager
ColossalFramework.Singleton`1<DistrictManager>::get_instance()
IL_01D1: ldfld Array8`1<DistrictPark> DistrictManager::m_parks
IL_01D6: ldfld DistrictPark[] Array8`1<DistrictPark>::m_buffer
IL_01DB: ldloc.s 8 (System.Byte)
IL_01DD: ldelema DistrictPark
IL_01E2: ldfld Park DistrictPark::m_parkPolicies
IL_01E7: ldc.i4 4194304
IL_01EC: and
IL_01ED: brfalse => Label22
IL_01F2: ldc.i4.1
IL_01F3: stloc.s 7 (System.Boolean)
IL_01F5: Label20
IL_01F5: Label21
IL_01F5: Label22
IL_01F5: ldloc.s 7 (System.Boolean)
IL_01F7: brtrue => Label23
IL_01FC: ldarg.2
IL_01FD: ldfld System.UInt16 Citizen::m_workBuilding
IL_0202: brfalse => Label24
IL_0207: call static DistrictManager
ColossalFramework.Singleton`1<DistrictManager>::get_instance()
IL_020C: call static BuildingManager
ColossalFramework.Singleton`1<BuildingManager>::get_instance()
IL_0211: ldfld Array16`1<Building> BuildingManager::m_buildings
IL_0216: ldfld Building[] Array16`1<Building>::m_buffer
IL_021B: ldarg.2
IL_021C: ldfld System.UInt16 Citizen::m_workBuilding
IL_0221: ldelema Building
IL_0226: ldfld UnityEngine.Vector3 Building::m_position
IL_022B: callvirt System.Byte DistrictManager::GetPark(UnityEngine.Vector3
worldPos)
IL_0230: stloc.s 9 (System.Byte)
IL_0232: ldloc.s 9 (System.Byte)
IL_0234: brfalse => Label25
IL_0239: call static DistrictManager
ColossalFramework.Singleton`1<DistrictManager>::get_instance()
IL_023E: ldfld Array8`1<DistrictPark> DistrictManager::m_parks
IL_0243: ldfld DistrictPark[] Array8`1<DistrictPark>::m_buffer
IL_0248: ldloc.s 9 (System.Byte)
IL_024A: ldelema DistrictPark
IL_024F: ldfld Park DistrictPark::m_parkPolicies
IL_0254: ldc.i4 4194304
IL_0259: and
IL_025A: brfalse => Label26
IL_025F: ldc.i4.1
IL_0260: stloc.s 7 (System.Boolean)
IL_0262: Label23
IL_0262: Label24
IL_0262: Label25
IL_0262: Label26
IL_0262: ldloc.s 7 (System.Boolean)
IL_0264: brfalse => Label27
IL_0269: ldloc.s 4 (System.Int32)
IL_026B: conv.r4
IL_026C: ldc.r4 1.2
IL_0271: mul
IL_0272: conv.i4
IL_0273: stloc.s 4 (System.Int32)
IL_0275: ldloc.s 5 (System.Int32)
IL_0277: conv.r4
IL_0278: ldc.r4 1.2
IL_027D: mul
IL_027E: conv.i4
IL_027F: stloc.s 5 (System.Int32)
IL_0281: Label19
IL_0281: Label27
IL_0281: ldloc.0
IL_0282: ldloc.s 4 (System.Int32)
IL_0284: blt => Label28
IL_0289: call static SimulationManager
ColossalFramework.Singleton`1<SimulationManager>::get_instance()
IL_028E: ldflda ColossalFramework.Math.Randomizer
SimulationManager::m_randomizer
IL_0293: ldloc.s 4 (System.Int32)
IL_0295: ldc.i4.s 100
IL_0297: mul
IL_0298: ldloc.s 5 (System.Int32)
IL_029A: ldc.i4.s 100
IL_029C: mul
IL_029D: call System.Int32
ColossalFramework.Math.Randomizer::Int32(System.Int32 min, System.Int32 max)
IL_02A2: ldc.i4.s 100
IL_02A4: div
IL_02A5: ldloc.0
IL_02A6: bgt => Label29
IL_02AB: ldc.i4.1
IL_02AC: stloc.2
IL_02AD: Label17
IL_02AD: Label28
IL_02AD: Label29
IL_02AD: ldloc.2
IL_02AE: brfalse => Label30
IL_02B3: ldarg.0
IL_02B4: ldarg.1
IL_02B5: ldarg.2
IL_02B6: call System.Void ResidentAI::Die(System.UInt32 citizenID, Citizen&
data)
IL_02BB: call static SimulationManager
ColossalFramework.Singleton`1<SimulationManager>::get_instance()
IL_02C0: ldflda ColossalFramework.Math.Randomizer
SimulationManager::m_randomizer
IL_02C5: ldc.i4.2
IL_02C6: call System.Int32
ColossalFramework.Math.Randomizer::Int32(System.UInt32 range)
IL_02CB: brtrue => Label31
IL_02D0: call static CitizenManager
ColossalFramework.Singleton`1<CitizenManager>::get_instance()
IL_02D5: ldarg.1
IL_02D6: callvirt System.Void CitizenManager::ReleaseCitizen(System.UInt32
citizen)
IL_02DB: ldc.i4.1
IL_02DC: br => Label32
IL_02E1: Label14
IL_02E1: Label15
IL_02E1: Label30
IL_02E1: Label31
IL_02E1: ldc.i4.0
IL_02E2: // end original
IL_02E2: Label32
IL_02E2: stloc 10 (System.Boolean)
IL_02E6: Label0
IL_02E6: ldloc 10 (System.Boolean)
IL_02EA: ret
DONE

### Patch: System.Void ResidentAI::UpdateWorkplace(System.UInt32 citizenID,


Citizen& data)
### Replacement: static System.Void
ResidentAI::ResidentAI.UpdateWorkplace_Patch1(ResidentAI this, System.UInt32
citizenID, Citizen& data)
IL_0000: Local var 0: BuildingManager
IL_0000: Local var 1: UnityEngine.Vector3
IL_0000: Local var 2: DistrictManager
IL_0000: Local var 3: System.Byte
IL_0000: Local var 4: DistrictPolicies/Services
IL_0000: Local var 5: System.Int32
IL_0000: Local var 6: TransferManager/TransferReason
IL_0000: Local var 7: Citizen/AgeGroup
IL_0000: Local var 8: TransferManager/TransferOffer
IL_0000: Local var 9: Citizen/Education
IL_0000: Local var 10: TransferManager/TransferOffer
IL_0000: Local var 11: System.Boolean
IL_0000: ldc.i4 0
IL_0005: stloc 11 (System.Boolean)
IL_0009: ldc.i4.1
IL_000A: stloc 11 (System.Boolean)
IL_000E: ldloc 11 (System.Boolean)
IL_0012: brfalse => Label1
IL_0017: ldarg 1
IL_001B: ldarg 2
IL_001F: call static System.Boolean
LifecycleRebalance.ResidentAIPatches::UpdateWorkplace(System.UInt32 citizenID,
Citizen& data)
IL_0024: stloc 11 (System.Boolean)
IL_0028: Label1
IL_0028: nop
IL_0029: ldloc 11 (System.Boolean)
IL_002D: brfalse => Label0
IL_0032: // start original
IL_0032: ldarg.2
IL_0033: ldfld System.UInt16 Citizen::m_workBuilding
IL_0038: brtrue => Label2
IL_003D: ldarg.2
IL_003E: ldfld System.UInt16 Citizen::m_homeBuilding
IL_0043: brfalse => Label3
IL_0048: call static BuildingManager
ColossalFramework.Singleton`1<BuildingManager>::get_instance()
IL_004D: stloc.0
IL_004E: ldloc.0
IL_004F: ldfld Array16`1<Building> BuildingManager::m_buildings
IL_0054: ldfld Building[] Array16`1<Building>::m_buffer
IL_0059: ldarg.2
IL_005A: ldfld System.UInt16 Citizen::m_homeBuilding
IL_005F: ldelema Building
IL_0064: ldfld UnityEngine.Vector3 Building::m_position
IL_0069: stloc.1
IL_006A: call static DistrictManager
ColossalFramework.Singleton`1<DistrictManager>::get_instance()
IL_006F: stloc.2
IL_0070: ldloc.2
IL_0071: ldloc.1
IL_0072: callvirt System.Byte DistrictManager::GetDistrict(UnityEngine.Vector3
worldPos)
IL_0077: stloc.3
IL_0078: ldloc.2
IL_0079: ldfld Array8`1<District> DistrictManager::m_districts
IL_007E: ldfld District[] Array8`1<District>::m_buffer
IL_0083: ldloc.3
IL_0084: ldelema District
IL_0089: ldfld Services District::m_servicePolicies
IL_008E: stloc.s 4 (DistrictPolicies+Services)
IL_0090: ldarg.2
IL_0091: call System.Int32 Citizen::get_Age()
IL_0096: stloc.s 5 (System.Int32)
IL_0098: ldc.i4 255
IL_009D: stloc.s 6 (TransferManager+TransferReason)
IL_009F: ldloc.s 5 (System.Int32)
IL_00A1: call static AgeGroup Citizen::GetAgeGroup(System.Int32 age)
IL_00A6: stloc.s 7 (Citizen+AgeGroup)
IL_00A8: ldloc.s 7 (Citizen+AgeGroup)
IL_00AA: switch => Labels4,5,6,7
IL_00BF: br => Label8
IL_00C4: Label4
IL_00C4: ldarg.2
IL_00C5: call System.Boolean Citizen::get_Education1()
IL_00CA: brtrue => Label9
IL_00CF: ldc.i4.8
IL_00D0: stloc.s 6 (TransferManager+TransferReason)
IL_00D2: Label9
IL_00D2: br => Label10
IL_00D7: Label5
IL_00D7: ldarg.2
IL_00D8: call System.Boolean Citizen::get_Education1()
IL_00DD: brfalse => Label11
IL_00E2: ldarg.2
IL_00E3: call System.Boolean Citizen::get_Education2()
IL_00E8: brtrue => Label12
IL_00ED: ldc.i4.s 9
IL_00EF: stloc.s 6 (TransferManager+TransferReason)
IL_00F1: Label11
IL_00F1: Label12
IL_00F1: br => Label13
IL_00F6: Label6
IL_00F6: Label7
IL_00F6: ldarg.2
IL_00F7: call System.Boolean Citizen::get_Education1()
IL_00FC: brfalse => Label14
IL_0101: ldarg.2
IL_0102: call System.Boolean Citizen::get_Education2()
IL_0107: brfalse => Label15
IL_010C: ldarg.2
IL_010D: call System.Boolean Citizen::get_Education3()
IL_0112: brtrue => Label16
IL_0117: ldc.i4.s 10
IL_0119: stloc.s 6 (TransferManager+TransferReason)
IL_011B: Label14
IL_011B: Label15
IL_011B: Label16
IL_011B: br => Label17
IL_0120: Label8
IL_0120: Label10
IL_0120: Label13
IL_0120: Label17
IL_0120: ldarg.2
IL_0121: call System.Int32 Citizen::get_Unemployed()
IL_0126: brfalse => Label18
IL_012B: ldloc.s 4 (DistrictPolicies+Services)
IL_012D: ldc.i4 128
IL_0132: and
IL_0133: brfalse => Label19
IL_0138: ldloc.s 6 (TransferManager+TransferReason)
IL_013A: ldc.i4.s 10
IL_013C: bne.un => Label20
IL_0141: ldloc.s 5 (System.Int32)
IL_0143: ldc.i4.5
IL_0144: rem
IL_0145: ldc.i4.2
IL_0146: ble => Label21
IL_014B: Label19
IL_014B: Label20
IL_014B: ldloca.s 8 (TransferManager+TransferOffer)
IL_014D: initobj TransferManager+TransferOffer
IL_0153: ldloca.s 8 (TransferManager+TransferOffer)
IL_0155: call static SimulationManager
ColossalFramework.Singleton`1<SimulationManager>::get_instance()
IL_015A: ldflda ColossalFramework.Math.Randomizer
SimulationManager::m_randomizer
IL_015F: ldc.i4.8
IL_0160: call System.Int32
ColossalFramework.Math.Randomizer::Int32(System.UInt32 range)
IL_0165: call System.Void TransferOffer::set_Priority(System.Int32 value)
IL_016A: ldloca.s 8 (TransferManager+TransferOffer)
IL_016C: ldarg.1
IL_016D: call System.Void TransferOffer::set_Citizen(System.UInt32 value)
IL_0172: ldloca.s 8 (TransferManager+TransferOffer)
IL_0174: ldloc.1
IL_0175: call System.Void TransferOffer::set_Position(UnityEngine.Vector3
value)
IL_017A: ldloca.s 8 (TransferManager+TransferOffer)
IL_017C: ldc.i4.1
IL_017D: call System.Void TransferOffer::set_Amount(System.Int32 value)
IL_0182: ldloca.s 8 (TransferManager+TransferOffer)
IL_0184: ldc.i4.1
IL_0185: call System.Void TransferOffer::set_Active(System.Boolean value)
IL_018A: ldarg.2
IL_018B: call Education Citizen::get_EducationLevel()
IL_0190: stloc.s 9 (Citizen+Education)
IL_0192: ldloc.s 9 (Citizen+Education)
IL_0194: switch => Labels22,23,24,25
IL_01A9: br => Label26
IL_01AE: Label22
IL_01AE: call static TransferManager
ColossalFramework.Singleton`1<TransferManager>::get_instance()
IL_01B3: ldc.i4.4
IL_01B4: ldloc.s 8 (TransferManager+TransferOffer)
IL_01B6: callvirt System.Void TransferManager::AddOutgoingOffer(TransferReason
material, TransferOffer offer)
IL_01BB: br => Label27
IL_01C0: Label23
IL_01C0: call static TransferManager
ColossalFramework.Singleton`1<TransferManager>::get_instance()
IL_01C5: ldc.i4.5
IL_01C6: ldloc.s 8 (TransferManager+TransferOffer)
IL_01C8: callvirt System.Void TransferManager::AddOutgoingOffer(TransferReason
material, TransferOffer offer)
IL_01CD: br => Label28
IL_01D2: Label24
IL_01D2: call static TransferManager
ColossalFramework.Singleton`1<TransferManager>::get_instance()
IL_01D7: ldc.i4.6
IL_01D8: ldloc.s 8 (TransferManager+TransferOffer)
IL_01DA: callvirt System.Void TransferManager::AddOutgoingOffer(TransferReason
material, TransferOffer offer)
IL_01DF: br => Label29
IL_01E4: Label25
IL_01E4: call static TransferManager
ColossalFramework.Singleton`1<TransferManager>::get_instance()
IL_01E9: ldc.i4.7
IL_01EA: ldloc.s 8 (TransferManager+TransferOffer)
IL_01EC: callvirt System.Void TransferManager::AddOutgoingOffer(TransferReason
material, TransferOffer offer)
IL_01F1: br => Label30
IL_01F6: Label18
IL_01F6: Label21
IL_01F6: Label26
IL_01F6: Label27
IL_01F6: Label28
IL_01F6: Label29
IL_01F6: Label30
IL_01F6: ldloc.s 6 (TransferManager+TransferReason)
IL_01F8: ldc.i4 255
IL_01FD: beq => Label31
IL_0202: ldloc.s 6 (TransferManager+TransferReason)
IL_0204: ldc.i4.s 10
IL_0206: bne.un => Label32
IL_020B: ldloc.s 4 (DistrictPolicies+Services)
IL_020D: ldc.i4 1024
IL_0212: and
IL_0213: brfalse => Label33
IL_0218: ldloc.s 5 (System.Int32)
IL_021A: ldc.i4.5
IL_021B: rem
IL_021C: ldc.i4.1
IL_021D: ble => Label34
IL_0222: Label32
IL_0222: Label33
IL_0222: ldloca.s 10 (TransferManager+TransferOffer)
IL_0224: initobj TransferManager+TransferOffer
IL_022A: ldloca.s 10 (TransferManager+TransferOffer)
IL_022C: call static SimulationManager
ColossalFramework.Singleton`1<SimulationManager>::get_instance()
IL_0231: ldflda ColossalFramework.Math.Randomizer
SimulationManager::m_randomizer
IL_0236: ldc.i4.8
IL_0237: call System.Int32
ColossalFramework.Math.Randomizer::Int32(System.UInt32 range)
IL_023C: call System.Void TransferOffer::set_Priority(System.Int32 value)
IL_0241: ldloca.s 10 (TransferManager+TransferOffer)
IL_0243: ldarg.1
IL_0244: call System.Void TransferOffer::set_Citizen(System.UInt32 value)
IL_0249: ldloca.s 10 (TransferManager+TransferOffer)
IL_024B: ldloc.1
IL_024C: call System.Void TransferOffer::set_Position(UnityEngine.Vector3
value)
IL_0251: ldloca.s 10 (TransferManager+TransferOffer)
IL_0253: ldc.i4.1
IL_0254: call System.Void TransferOffer::set_Amount(System.Int32 value)
IL_0259: ldloca.s 10 (TransferManager+TransferOffer)
IL_025B: ldc.i4.1
IL_025C: call System.Void TransferOffer::set_Active(System.Boolean value)
IL_0261: call static TransferManager
ColossalFramework.Singleton`1<TransferManager>::get_instance()
IL_0266: ldloc.s 6 (TransferManager+TransferReason)
IL_0268: ldloc.s 10 (TransferManager+TransferOffer)
IL_026A: callvirt System.Void TransferManager::AddOutgoingOffer(TransferReason
material, TransferOffer offer)
IL_026F: // end original
IL_026F: Label2
IL_026F: Label3
IL_026F: Label31
IL_026F: Label34
IL_026F: Label0
IL_026F: ret
DONE

### Patch: System.Boolean ResidentAI::UpdateHealth(System.UInt32 citizenID,


Citizen& data)
### Replacement: static System.Boolean
ResidentAI::ResidentAI.UpdateHealth_Patch0(ResidentAI this, System.UInt32
citizenID, Citizen& data)
IL_0000: Local var 0: System.Int32
IL_0000: Local var 1: BuildingManager
IL_0000: Local var 2: BuildingInfo
IL_0000: Local var 3: UnityEngine.Vector3
IL_0000: Local var 4: DistrictManager
IL_0000: Local var 5: System.Byte
IL_0000: Local var 6: DistrictPolicies/Services
IL_0000: Local var 7: DistrictPolicies/CityPlanning
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: CitizenManager
IL_0000: Local var 18: System.UInt32
IL_0000: Local var 19: System.Int32
IL_0000: Local var 20: System.Int32
IL_0000: Local var 21: System.Int32
IL_0000: Local var 22: System.Int32
IL_0000: Local var 23: System.Boolean
IL_0000: Local var 24: System.Boolean
IL_0000: Local var 25: System.Byte
IL_0000: Local var 26: System.Int32
IL_0000: Local var 27: System.Int32
IL_0000: Local var 28: System.Byte
IL_0000: Local var 29: System.Byte
IL_0000: Local var 30: DistrictPolicies/Park
IL_0000: Local var 31: System.Int32
IL_0000: Local var 32: System.Int32
IL_0000: Local var 33: Citizen/Location
IL_0000: // start original
IL_0000: ldarg.2
IL_0001: ldfld System.UInt16 Citizen::m_homeBuilding
IL_0006: brtrue => Label0
IL_000B: ldc.i4.0
IL_000C: br => Label81
IL_0011: Label0
IL_0011: ldc.i4.s 20
IL_0013: stloc.0
IL_0014: call static BuildingManager
ColossalFramework.Singleton`1<BuildingManager>::get_instance()
IL_0019: stloc.1
IL_001A: ldloc.1
IL_001B: ldfld Array16`1<Building> BuildingManager::m_buildings
IL_0020: ldfld Building[] Array16`1<Building>::m_buffer
IL_0025: ldarg.2
IL_0026: ldfld System.UInt16 Citizen::m_homeBuilding
IL_002B: ldelema Building
IL_0030: call BuildingInfo Building::get_Info()
IL_0035: stloc.2
IL_0036: ldloc.1
IL_0037: ldfld Array16`1<Building> BuildingManager::m_buildings
IL_003C: ldfld Building[] Array16`1<Building>::m_buffer
IL_0041: ldarg.2
IL_0042: ldfld System.UInt16 Citizen::m_homeBuilding
IL_0047: ldelema Building
IL_004C: ldfld UnityEngine.Vector3 Building::m_position
IL_0051: stloc.3
IL_0052: call static DistrictManager
ColossalFramework.Singleton`1<DistrictManager>::get_instance()
IL_0057: stloc.s 4 (DistrictManager)
IL_0059: ldloc.s 4 (DistrictManager)
IL_005B: ldloc.3
IL_005C: callvirt System.Byte DistrictManager::GetDistrict(UnityEngine.Vector3
worldPos)
IL_0061: stloc.s 5 (System.Byte)
IL_0063: ldloc.s 4 (DistrictManager)
IL_0065: ldfld Array8`1<District> DistrictManager::m_districts
IL_006A: ldfld District[] Array8`1<District>::m_buffer
IL_006F: ldloc.s 5 (System.Byte)
IL_0071: ldelema District
IL_0076: ldfld Services District::m_servicePolicies
IL_007B: stloc.s 6 (DistrictPolicies+Services)
IL_007D: ldloc.s 4 (DistrictManager)
IL_007F: ldfld Array8`1<District> DistrictManager::m_districts
IL_0084: ldfld District[] Array8`1<District>::m_buffer
IL_0089: ldloc.s 5 (System.Byte)
IL_008B: ldelema District
IL_0090: ldfld CityPlanning District::m_cityPlanningPolicies
IL_0095: stloc.s 7 (DistrictPolicies+CityPlanning)
IL_0097: ldloc.s 6 (DistrictPolicies+Services)
IL_0099: ldc.i4.s 64
IL_009B: and
IL_009C: brfalse => Label1
IL_00A1: ldloc.0
IL_00A2: ldc.i4.s 10
IL_00A4: add
IL_00A5: stloc.0
IL_00A6: Label1
IL_00A6: ldarg.2
IL_00A7: call System.Int32 Citizen::get_Age()
IL_00AC: ldc.i4 180
IL_00B1: blt => Label2
IL_00B6: ldloc.s 7 (DistrictPolicies+CityPlanning)
IL_00B8: ldc.i4 2048
IL_00BD: and
IL_00BE: brfalse => Label3
IL_00C3: ldloc.0
IL_00C4: ldc.i4.s 10
IL_00C6: add
IL_00C7: stloc.0
IL_00C8: Label2
IL_00C8: Label3
IL_00C8: ldloc.2
IL_00C9: ldfld BuildingAI BuildingInfo::m_buildingAI
IL_00CE: ldarg.2
IL_00CF: ldfld System.UInt16 Citizen::m_homeBuilding
IL_00D4: ldloc.1
IL_00D5: ldfld Array16`1<Building> BuildingManager::m_buildings
IL_00DA: ldfld Building[] Array16`1<Building>::m_buffer
IL_00DF: ldarg.2
IL_00E0: ldfld System.UInt16 Citizen::m_homeBuilding
IL_00E5: ldelema Building
IL_00EA: ldc.i4.0
IL_00EB: ldloca.s 8 (System.Int32)
IL_00ED: ldloca.s 9 (System.Int32)
IL_00EF: callvirt virtual System.Void BuildingAI::GetMaterialAmount(System.UInt16
buildingID, Building& data, TransferReason material, System.Int32& amount,
System.Int32& max)
IL_00F4: ldloc.s 8 (System.Int32)
IL_00F6: ldc.i4 1000
IL_00FB: div
IL_00FC: stloc.s 8 (System.Int32)
IL_00FE: ldloc.s 8 (System.Int32)
IL_0100: ldc.i4.2
IL_0101: bgt => Label4
IL_0106: ldloc.0
IL_0107: ldc.i4.s 12
IL_0109: add
IL_010A: stloc.0
IL_010B: br => Label5
IL_0110: Label4
IL_0110: ldloc.s 8 (System.Int32)
IL_0112: ldc.i4.4
IL_0113: blt => Label6
IL_0118: ldloc.0
IL_0119: ldloc.s 8 (System.Int32)
IL_011B: ldc.i4.3
IL_011C: sub
IL_011D: sub
IL_011E: stloc.0
IL_011F: Label5
IL_011F: Label6
IL_011F: ldarg.2
IL_0120: call Education Citizen::get_EducationLevel()
IL_0125: ldarg.2
IL_0126: call System.Int32 Citizen::get_Age()
IL_012B: call static AgePhase Citizen::GetAgePhase(Education education,
System.Int32 age)
IL_0130: call static System.Int32 Citizen::GetHealthCareRequirement(AgePhase
agePhase)
IL_0135: stloc.s 10 (System.Int32)
IL_0137: call static ImmaterialResourceManager
ColossalFramework.Singleton`1<ImmaterialResourceManager>::get_instance()
IL_013C: ldc.i4.0
IL_013D: ldloc.3
IL_013E: ldloca.s 11 (System.Int32)
IL_0140: ldloca.s 12 (System.Int32)
IL_0142: callvirt System.Void ImmaterialResourceManager::CheckResource(Resource
resource, UnityEngine.Vector3 position, System.Int32& local, System.Int32& total)
IL_0147: call static ImmaterialResourceManager
ColossalFramework.Singleton`1<ImmaterialResourceManager>::get_instance()
IL_014C: ldc.i4.s 28
IL_014E: ldloc.3
IL_014F: ldloca.s 13 (System.Int32)
IL_0151: ldloca.s 14 (System.Int32)
IL_0153: callvirt System.Void ImmaterialResourceManager::CheckResource(Resource
resource, UnityEngine.Vector3 position, System.Int32& local, System.Int32& total)
IL_0158: call static ImmaterialResourceManager
ColossalFramework.Singleton`1<ImmaterialResourceManager>::get_instance()
IL_015D: ldc.i4.s 27
IL_015F: ldloc.3
IL_0160: ldloca.s 15 (System.Int32)
IL_0162: ldloca.s 16 (System.Int32)
IL_0164: callvirt System.Void ImmaterialResourceManager::CheckResource(Resource
resource, UnityEngine.Vector3 position, System.Int32& local, System.Int32& total)
IL_0169: ldloc.s 10 (System.Int32)
IL_016B: brfalse => Label7
IL_0170: ldloc.s 11 (System.Int32)
IL_0172: brfalse => Label8
IL_0177: ldloc.0
IL_0178: ldloc.s 11 (System.Int32)
IL_017A: ldloc.s 10 (System.Int32)
IL_017C: ldc.i4 500
IL_0181: ldc.i4.s 20
IL_0183: ldc.i4.s 40
IL_0185: call static System.Int32
ImmaterialResourceManager::CalculateResourceEffect(System.Int32 resourceRate,
System.Int32 middleRate, System.Int32 maxRate, System.Int32 middleEffect,
System.Int32 maxEffect)
IL_018A: add
IL_018B: stloc.0
IL_018C: Label8
IL_018C: ldloc.s 12 (System.Int32)
IL_018E: brfalse => Label9
IL_0193: ldloc.0
IL_0194: ldloc.s 12 (System.Int32)
IL_0196: ldloc.s 10 (System.Int32)
IL_0198: ldc.i4.1
IL_0199: shr
IL_019A: ldc.i4 250
IL_019F: ldc.i4.5
IL_01A0: ldc.i4.s 20
IL_01A2: call static System.Int32
ImmaterialResourceManager::CalculateResourceEffect(System.Int32 resourceRate,
System.Int32 middleRate, System.Int32 maxRate, System.Int32 middleEffect,
System.Int32 maxEffect)
IL_01A7: add
IL_01A8: stloc.0
IL_01A9: Label9
IL_01A9: call static CitizenManager
ColossalFramework.Singleton`1<CitizenManager>::get_instance()
IL_01AE: stloc.s 17 (CitizenManager)
IL_01B0: ldarg.2
IL_01B1: ldarg.1
IL_01B2: ldloc.1
IL_01B3: ldfld Array16`1<Building> BuildingManager::m_buildings
IL_01B8: ldfld Building[] Array16`1<Building>::m_buffer
IL_01BD: ldarg.2
IL_01BE: ldfld System.UInt16 Citizen::m_homeBuilding
IL_01C3: ldelema Building
IL_01C8: ldfld System.UInt32 Building::m_citizenUnits
IL_01CD: ldc.i4.s 16
IL_01CF: call System.UInt32 Citizen::GetContainingUnit(System.UInt32
citizenID, System.UInt32 units, Flags flag)
IL_01D4: stloc.s 18 (System.UInt32)
IL_01D6: ldarg.0
IL_01D7: ldloc.s 18 (System.UInt32)
IL_01D9: call System.Boolean ResidentAI::UnitHasChild(System.UInt32 unitID)
IL_01DE: brfalse => Label10
IL_01E3: ldloc.s 15 (System.Int32)
IL_01E5: brfalse => Label11
IL_01EA: ldloc.s 15 (System.Int32)
IL_01EC: ldloc.s 10 (System.Int32)
IL_01EE: ldc.i4 500
IL_01F3: ldc.i4.s 20
IL_01F5: ldc.i4.s 40
IL_01F7: call static System.Int32
ImmaterialResourceManager::CalculateResourceEffect(System.Int32 resourceRate,
System.Int32 middleRate, System.Int32 maxRate, System.Int32 middleEffect,
System.Int32 maxEffect)
IL_01FC: stloc.s 19 (System.Int32)
IL_01FE: ldloc.0
IL_01FF: ldarg.0
IL_0200: ldarg.1
IL_0201: call System.Boolean ResidentAI::IsChild(System.UInt32 citizenID)
IL_0206: brfalse => Label12
IL_020B: ldloc.s 19 (System.Int32)
IL_020D: br => Label13
IL_0212: Label12
IL_0212: ldloc.s 19 (System.Int32)
IL_0214: ldc.i4.s 10
IL_0216: div
IL_0217: Label13
IL_0217: add
IL_0218: stloc.0
IL_0219: Label11
IL_0219: ldloc.s 16 (System.Int32)
IL_021B: brfalse => Label14
IL_0220: ldloc.s 16 (System.Int32)
IL_0222: ldloc.s 10 (System.Int32)
IL_0224: ldc.i4.1
IL_0225: shr
IL_0226: ldc.i4 250
IL_022B: ldc.i4.5
IL_022C: ldc.i4.s 20
IL_022E: call static System.Int32
ImmaterialResourceManager::CalculateResourceEffect(System.Int32 resourceRate,
System.Int32 middleRate, System.Int32 maxRate, System.Int32 middleEffect,
System.Int32 maxEffect)
IL_0233: stloc.s 20 (System.Int32)
IL_0235: ldloc.0
IL_0236: ldarg.0
IL_0237: ldarg.1
IL_0238: call System.Boolean ResidentAI::IsChild(System.UInt32 citizenID)
IL_023D: brfalse => Label15
IL_0242: ldloc.s 20 (System.Int32)
IL_0244: br => Label16
IL_0249: Label15
IL_0249: ldloc.s 20 (System.Int32)
IL_024B: ldc.i4.s 10
IL_024D: div
IL_024E: Label16
IL_024E: add
IL_024F: stloc.0
IL_0250: Label10
IL_0250: Label14
IL_0250: ldarg.0
IL_0251: ldarg.1
IL_0252: call System.Boolean ResidentAI::IsSenior(System.UInt32 citizenID)
IL_0257: brfalse => Label17
IL_025C: ldloc.s 13 (System.Int32)
IL_025E: brfalse => Label18
IL_0263: ldloc.0
IL_0264: ldloc.s 13 (System.Int32)
IL_0266: ldloc.s 10 (System.Int32)
IL_0268: ldc.i4 500
IL_026D: ldc.i4.s 30
IL_026F: ldc.i4.s 60
IL_0271: call static System.Int32
ImmaterialResourceManager::CalculateResourceEffect(System.Int32 resourceRate,
System.Int32 middleRate, System.Int32 maxRate, System.Int32 middleEffect,
System.Int32 maxEffect)
IL_0276: add
IL_0277: stloc.0
IL_0278: Label18
IL_0278: ldloc.s 14 (System.Int32)
IL_027A: brfalse => Label19
IL_027F: ldloc.0
IL_0280: ldloc.s 14 (System.Int32)
IL_0282: ldloc.s 10 (System.Int32)
IL_0284: ldc.i4.1
IL_0285: shr
IL_0286: ldc.i4 250
IL_028B: ldc.i4.s 10
IL_028D: ldc.i4.s 40
IL_028F: call static System.Int32
ImmaterialResourceManager::CalculateResourceEffect(System.Int32 resourceRate,
System.Int32 middleRate, System.Int32 maxRate, System.Int32 middleEffect,
System.Int32 maxEffect)
IL_0294: add
IL_0295: stloc.0
IL_0296: Label7
IL_0296: Label17
IL_0296: Label19
IL_0296: call static ImmaterialResourceManager
ColossalFramework.Singleton`1<ImmaterialResourceManager>::get_instance()
IL_029B: ldc.i4.8
IL_029C: ldloc.3
IL_029D: ldloca.s 21 (System.Int32)
IL_029F: callvirt System.Void
ImmaterialResourceManager::CheckLocalResource(Resource resource,
UnityEngine.Vector3 position, System.Int32& local)
IL_02A4: ldloc.s 21 (System.Int32)
IL_02A6: brfalse => Label20
IL_02AB: ldloc.2
IL_02AC: ldfld ItemClass BuildingInfo::m_class
IL_02B1: ldfld SubService ItemClass::m_subService
IL_02B6: ldc.i4.s 25
IL_02B8: beq => Label21
IL_02BD: ldloc.2
IL_02BE: ldfld ItemClass BuildingInfo::m_class
IL_02C3: ldfld SubService ItemClass::m_subService
IL_02C8: ldc.i4.s 26
IL_02CA: bne.un => Label22
IL_02CF: Label21
IL_02CF: ldloc.0
IL_02D0: ldloc.s 21 (System.Int32)
IL_02D2: ldc.i4 150
IL_02D7: mul
IL_02D8: ldc.i4 255
IL_02DD: div
IL_02DE: sub
IL_02DF: stloc.0
IL_02E0: br => Label23
IL_02E5: Label22
IL_02E5: ldloc.0
IL_02E6: ldloc.s 21 (System.Int32)
IL_02E8: ldc.i4.s 100
IL_02EA: mul
IL_02EB: ldc.i4 255
IL_02F0: div
IL_02F1: sub
IL_02F2: stloc.0
IL_02F3: Label20
IL_02F3: Label23
IL_02F3: call static ImmaterialResourceManager
ColossalFramework.Singleton`1<ImmaterialResourceManager>::get_instance()
IL_02F8: ldc.i4.s 9
IL_02FA: ldloc.3
IL_02FB: ldloca.s 22 (System.Int32)
IL_02FD: callvirt System.Void
ImmaterialResourceManager::CheckLocalResource(Resource resource,
UnityEngine.Vector3 position, System.Int32& local)
IL_0302: ldloc.s 22 (System.Int32)
IL_0304: ldc.i4.3
IL_0305: ble => Label24
IL_030A: ldloc.s 22 (System.Int32)
IL_030C: ldc.i4.s 30
IL_030E: bgt => Label25
IL_0313: ldloc.0
IL_0314: ldc.i4.2
IL_0315: sub
IL_0316: stloc.0
IL_0317: br => Label26
IL_031C: Label25
IL_031C: ldloc.s 22 (System.Int32)
IL_031E: ldc.i4.s 70
IL_0320: bgt => Label27
IL_0325: ldloc.0
IL_0326: ldc.i4.5
IL_0327: sub
IL_0328: stloc.0
IL_0329: br => Label28
IL_032E: Label27
IL_032E: ldloc.0
IL_032F: ldc.i4.s 15
IL_0331: sub
IL_0332: stloc.0
IL_0333: Label24
IL_0333: Label26
IL_0333: Label28
IL_0333: call static WaterManager
ColossalFramework.Singleton`1<WaterManager>::get_instance()
IL_0338: ldloc.3
IL_0339: ldloca.s 23 (System.Boolean)
IL_033B: ldloca.s 24 (System.Boolean)
IL_033D: ldloca.s 25 (System.Byte)
IL_033F: callvirt System.Void WaterManager::CheckWater(UnityEngine.Vector3 pos,
System.Boolean& water, System.Boolean& sewage, System.Byte& waterPollution)
IL_0344: ldloc.s 23 (System.Boolean)
IL_0346: brfalse => Label29
IL_034B: ldloc.0
IL_034C: ldc.i4.s 12
IL_034E: add
IL_034F: stloc.0
IL_0350: ldarg.2
IL_0351: ldc.i4.0
IL_0352: call System.Void Citizen::set_NoWater(System.Int32 value)
IL_0357: br => Label30
IL_035C: Label29
IL_035C: ldarg.2
IL_035D: call System.Int32 Citizen::get_NoWater()
IL_0362: stloc.s 26 (System.Int32)
IL_0364: ldloc.s 26 (System.Int32)
IL_0366: ldc.i4.2
IL_0367: bge => Label31
IL_036C: ldarg.2
IL_036D: ldloc.s 26 (System.Int32)
IL_036F: ldc.i4.1
IL_0370: add
IL_0371: call System.Void Citizen::set_NoWater(System.Int32 value)
IL_0376: br => Label32
IL_037B: Label31
IL_037B: ldloc.0
IL_037C: ldc.i4.5
IL_037D: sub
IL_037E: stloc.0
IL_037F: Label30
IL_037F: Label32
IL_037F: ldloc.s 24 (System.Boolean)
IL_0381: brfalse => Label33
IL_0386: ldloc.0
IL_0387: ldc.i4.s 12
IL_0389: add
IL_038A: stloc.0
IL_038B: ldarg.2
IL_038C: ldc.i4.0
IL_038D: call System.Void Citizen::set_NoSewage(System.Int32 value)
IL_0392: br => Label34
IL_0397: Label33
IL_0397: ldarg.2
IL_0398: call System.Int32 Citizen::get_NoSewage()
IL_039D: stloc.s 27 (System.Int32)
IL_039F: ldloc.s 27 (System.Int32)
IL_03A1: ldc.i4.2
IL_03A2: bge => Label35
IL_03A7: ldarg.2
IL_03A8: ldloc.s 27 (System.Int32)
IL_03AA: ldc.i4.1
IL_03AB: add
IL_03AC: call System.Void Citizen::set_NoSewage(System.Int32 value)
IL_03B1: br => Label36
IL_03B6: Label35
IL_03B6: ldloc.0
IL_03B7: ldc.i4.5
IL_03B8: sub
IL_03B9: stloc.0
IL_03BA: Label34
IL_03BA: Label36
IL_03BA: ldloc.s 25 (System.Byte)
IL_03BC: ldc.i4.s 35
IL_03BE: bge => Label37
IL_03C3: ldloc.0
IL_03C4: ldloc.s 25 (System.Byte)
IL_03C6: sub
IL_03C7: stloc.0
IL_03C8: br => Label38
IL_03CD: Label37
IL_03CD: ldloc.0
IL_03CE: ldloc.s 25 (System.Byte)
IL_03D0: ldc.i4.2
IL_03D1: mul
IL_03D2: ldc.i4.s 35
IL_03D4: sub
IL_03D5: sub
IL_03D6: stloc.0
IL_03D7: Label38
IL_03D7: call static NaturalResourceManager
ColossalFramework.Singleton`1<NaturalResourceManager>::get_instance()
IL_03DC: ldloc.3
IL_03DD: ldloca.s 28 (System.Byte)
IL_03DF: callvirt System.Void
NaturalResourceManager::CheckPollution(UnityEngine.Vector3 pos, System.Byte&
groundPollution)
IL_03E4: ldloc.s 28 (System.Byte)
IL_03E6: brfalse => Label39
IL_03EB: ldloc.2
IL_03EC: ldfld ItemClass BuildingInfo::m_class
IL_03F1: ldfld SubService ItemClass::m_subService
IL_03F6: ldc.i4.s 25
IL_03F8: beq => Label40
IL_03FD: ldloc.2
IL_03FE: ldfld ItemClass BuildingInfo::m_class
IL_0403: ldfld SubService ItemClass::m_subService
IL_0408: ldc.i4.s 26
IL_040A: bne.un => Label41
IL_040F: Label40
IL_040F: ldloc.0
IL_0410: ldloc.s 28 (System.Byte)
IL_0412: ldc.i4 200
IL_0417: mul
IL_0418: ldc.i4 255
IL_041D: div
IL_041E: sub
IL_041F: stloc.0
IL_0420: br => Label42
IL_0425: Label41
IL_0425: ldloc.0
IL_0426: ldloc.s 28 (System.Byte)
IL_0428: ldc.i4.s 100
IL_042A: mul
IL_042B: ldc.i4 255
IL_0430: div
IL_0431: sub
IL_0432: stloc.0
IL_0433: Label39
IL_0433: Label42
IL_0433: ldarg.2
IL_0434: ldfld System.UInt16 Citizen::m_workBuilding
IL_0439: brfalse => Label43
IL_043E: ldloc.s 4 (DistrictManager)
IL_0440: ldloc.1
IL_0441: ldfld Array16`1<Building> BuildingManager::m_buildings
IL_0446: ldfld Building[] Array16`1<Building>::m_buffer
IL_044B: ldarg.2
IL_044C: ldfld System.UInt16 Citizen::m_workBuilding
IL_0451: ldelema Building
IL_0456: ldfld UnityEngine.Vector3 Building::m_position
IL_045B: callvirt System.Byte DistrictManager::GetPark(UnityEngine.Vector3
worldPos)
IL_0460: stloc.s 29 (System.Byte)
IL_0462: ldloc.s 4 (DistrictManager)
IL_0464: ldfld Array8`1<DistrictPark> DistrictManager::m_parks
IL_0469: ldfld DistrictPark[] Array8`1<DistrictPark>::m_buffer
IL_046E: ldloc.s 29 (System.Byte)
IL_0470: ldelema DistrictPark
IL_0475: ldfld Park DistrictPark::m_parkPolicies
IL_047A: stloc.s 30 (DistrictPolicies+Park)
IL_047C: ldloc.s 30 (DistrictPolicies+Park)
IL_047E: ldc.i4 512
IL_0483: and
IL_0484: brfalse => Label44
IL_0489: ldloc.1
IL_048A: ldfld Array16`1<Building> BuildingManager::m_buildings
IL_048F: ldfld Building[] Array16`1<Building>::m_buffer
IL_0494: ldarg.2
IL_0495: ldfld System.UInt16 Citizen::m_workBuilding
IL_049A: ldelema Building
IL_049F: call BuildingInfo Building::get_Info()
IL_04A4: ldfld ItemClass BuildingInfo::m_class
IL_04A9: ldfld Service ItemClass::m_service
IL_04AE: ldc.i4.s 21
IL_04B0: bne.un => Label45
IL_04B5: ldloc.0
IL_04B6: ldc.i4.s 10
IL_04B8: add
IL_04B9: stloc.0
IL_04BA: Label44
IL_04BA: Label45
IL_04BA: ldloc.s 30 (DistrictPolicies+Park)
IL_04BC: ldc.i4 2048
IL_04C1: and
IL_04C2: brfalse => Label46
IL_04C7: ldloc.1
IL_04C8: ldfld Array16`1<Building> BuildingManager::m_buildings
IL_04CD: ldfld Building[] Array16`1<Building>::m_buffer
IL_04D2: ldarg.2
IL_04D3: ldfld System.UInt16 Citizen::m_workBuilding
IL_04D8: ldelema Building
IL_04DD: call BuildingInfo Building::get_Info()
IL_04E2: ldfld ItemClass BuildingInfo::m_class
IL_04E7: ldfld Service ItemClass::m_service
IL_04EC: ldc.i4.s 22
IL_04EE: bne.un => Label47
IL_04F3: ldloc.0
IL_04F4: ldc.i4.s 10
IL_04F6: add
IL_04F7: stloc.0
IL_04F8: Label43
IL_04F8: Label46
IL_04F8: Label47
IL_04F8: ldloc.0
IL_04F9: ldc.i4.0
IL_04FA: ldc.i4.s 100
IL_04FC: call static System.Int32 UnityEngine.Mathf::Clamp(System.Int32
value, System.Int32 min, System.Int32 max)
IL_0501: stloc.0
IL_0502: ldarg.2
IL_0503: ldloc.0
IL_0504: conv.u1
IL_0505: stfld System.Byte Citizen::m_health
IL_050A: ldc.i4.0
IL_050B: stloc.s 31 (System.Int32)
IL_050D: ldloc.0
IL_050E: ldc.i4.s 10
IL_0510: bgt => Label48
IL_0515: ldarg.2
IL_0516: call System.Int32 Citizen::get_BadHealth()
IL_051B: stloc.s 32 (System.Int32)
IL_051D: ldloc.s 32 (System.Int32)
IL_051F: ldc.i4.3
IL_0520: bge => Label49
IL_0525: ldc.i4.s 15
IL_0527: stloc.s 31 (System.Int32)
IL_0529: ldarg.2
IL_052A: ldloc.s 32 (System.Int32)
IL_052C: ldc.i4.1
IL_052D: add
IL_052E: call System.Void Citizen::set_BadHealth(System.Int32 value)
IL_0533: br => Label50
IL_0538: Label49
IL_0538: ldarg.0
IL_0539: ldarg.1
IL_053A: call System.Boolean ResidentAI::IsSenior(System.UInt32 citizenID)
IL_053F: brtrue => Label51
IL_0544: ldarg.0
IL_0545: ldarg.1
IL_0546: call System.Boolean ResidentAI::IsChild(System.UInt32 citizenID)
IL_054B: brtrue => Label52
IL_0550: ldloc.s 12 (System.Int32)
IL_0552: brfalse => Label53
IL_0557: Label51
IL_0557: Label52
IL_0557: ldarg.0
IL_0558: ldarg.1
IL_0559: call System.Boolean ResidentAI::IsSenior(System.UInt32 citizenID)
IL_055E: brfalse => Label54
IL_0563: ldloc.s 14 (System.Int32)
IL_0565: brtrue => Label55
IL_056A: ldloc.s 12 (System.Int32)
IL_056C: brfalse => Label56
IL_0571: Label54
IL_0571: Label55
IL_0571: ldarg.0
IL_0572: ldarg.1
IL_0573: call System.Boolean ResidentAI::IsChild(System.UInt32 citizenID)
IL_0578: brfalse => Label57
IL_057D: ldloc.s 16 (System.Int32)
IL_057F: brtrue => Label58
IL_0584: ldloc.s 12 (System.Int32)
IL_0586: brtrue => Label59
IL_058B: Label53
IL_058B: Label56
IL_058B: ldc.i4.s 75
IL_058D: stloc.s 31 (System.Int32)
IL_058F: br => Label60
IL_0594: Label57
IL_0594: Label58
IL_0594: Label59
IL_0594: ldc.i4.s 50
IL_0596: stloc.s 31 (System.Int32)
IL_0598: Label50
IL_0598: Label60
IL_0598: br => Label61
IL_059D: Label48
IL_059D: ldloc.0
IL_059E: ldc.i4.s 25
IL_05A0: bgt => Label62
IL_05A5: ldarg.2
IL_05A6: ldc.i4.0
IL_05A7: call System.Void Citizen::set_BadHealth(System.Int32 value)
IL_05AC: ldloc.s 31 (System.Int32)
IL_05AE: ldc.i4.s 10
IL_05B0: add
IL_05B1: stloc.s 31 (System.Int32)
IL_05B3: br => Label63
IL_05B8: Label62
IL_05B8: ldloc.0
IL_05B9: ldc.i4.s 50
IL_05BB: bgt => Label64
IL_05C0: ldarg.2
IL_05C1: ldc.i4.0
IL_05C2: call System.Void Citizen::set_BadHealth(System.Int32 value)
IL_05C7: ldloc.s 31 (System.Int32)
IL_05C9: ldc.i4.3
IL_05CA: add
IL_05CB: stloc.s 31 (System.Int32)
IL_05CD: br => Label65
IL_05D2: Label64
IL_05D2: ldarg.2
IL_05D3: ldc.i4.0
IL_05D4: call System.Void Citizen::set_BadHealth(System.Int32 value)
IL_05D9: Label61
IL_05D9: Label63
IL_05D9: Label65
IL_05D9: ldarg.2
IL_05DA: call System.Boolean Citizen::get_Sick()
IL_05DF: brfalse => Label66
IL_05E4: ldarg.0
IL_05E5: ldarg.1
IL_05E6: call System.Boolean ResidentAI::IsChild(System.UInt32 citizenID)
IL_05EB: brfalse => Label67
IL_05F0: ldloc.s 15 (System.Int32)
IL_05F2: brfalse => Label68
IL_05F7: call static SimulationManager
ColossalFramework.Singleton`1<SimulationManager>::get_instance()
IL_05FC: ldflda ColossalFramework.Math.Randomizer
SimulationManager::m_randomizer
IL_0601: ldc.i4 1000
IL_0606: call System.Int32
ColossalFramework.Math.Randomizer::Int32(System.UInt32 range)
IL_060B: ldloc.0
IL_060C: bge => Label69
IL_0611: ldarg.2
IL_0612: ldc.i4.0
IL_0613: call System.Void Citizen::set_Sick(System.Boolean value)
IL_0618: Label66
IL_0618: Label67
IL_0618: Label68
IL_0618: Label69
IL_0618: ldarg.2
IL_0619: call System.Boolean Citizen::get_Sick()
IL_061E: brfalse => Label70
IL_0623: ldarg.0
IL_0624: ldarg.1
IL_0625: call System.Boolean ResidentAI::IsSenior(System.UInt32 citizenID)
IL_062A: brfalse => Label71
IL_062F: ldloc.s 13 (System.Int32)
IL_0631: brfalse => Label72
IL_0636: call static SimulationManager
ColossalFramework.Singleton`1<SimulationManager>::get_instance()
IL_063B: ldflda ColossalFramework.Math.Randomizer
SimulationManager::m_randomizer
IL_0640: ldc.i4 1000
IL_0645: call System.Int32
ColossalFramework.Math.Randomizer::Int32(System.UInt32 range)
IL_064A: ldloc.0
IL_064B: bge => Label73
IL_0650: ldarg.2
IL_0651: ldc.i4.0
IL_0652: call System.Void Citizen::set_Sick(System.Boolean value)
IL_0657: Label70
IL_0657: Label71
IL_0657: Label72
IL_0657: Label73
IL_0657: ldarg.2
IL_0658: call Location Citizen::get_CurrentLocation()
IL_065D: stloc.s 33 (Citizen+Location)
IL_065F: ldloc.s 33 (Citizen+Location)
IL_0661: ldc.i4.3
IL_0662: beq => Label74
IL_0667: ldarg.2
IL_0668: ldfld System.UInt16 Citizen::m_vehicle
IL_066D: brtrue => Label75
IL_0672: ldloc.s 31 (System.Int32)
IL_0674: brfalse => Label76
IL_0679: call static SimulationManager
ColossalFramework.Singleton`1<SimulationManager>::get_instance()
IL_067E: ldflda ColossalFramework.Math.Randomizer
SimulationManager::m_randomizer
IL_0683: ldc.i4.s 100
IL_0685: call System.Int32
ColossalFramework.Math.Randomizer::Int32(System.UInt32 range)
IL_068A: ldloc.s 31 (System.Int32)
IL_068C: bge => Label77
IL_0691: call static SimulationManager
ColossalFramework.Singleton`1<SimulationManager>::get_instance()
IL_0696: ldflda ColossalFramework.Math.Randomizer
SimulationManager::m_randomizer
IL_069B: ldc.i4.3
IL_069C: call System.Int32
ColossalFramework.Math.Randomizer::Int32(System.UInt32 range)
IL_06A1: brtrue => Label78
IL_06A6: ldarg.0
IL_06A7: ldarg.1
IL_06A8: ldarg.2
IL_06A9: call System.Void ResidentAI::Die(System.UInt32 citizenID, Citizen&
data)
IL_06AE: call static System.Boolean
LifecycleRebalance.ResidentAIPatches::KeepCorpse()
IL_06B3: brtrue => Label79
IL_06B8: call static CitizenManager
ColossalFramework.Singleton`1<CitizenManager>::get_instance()
IL_06BD: ldarg.1
IL_06BE: callvirt System.Void CitizenManager::ReleaseCitizen(System.UInt32
citizen)
IL_06C3: ldc.i4.1
IL_06C4: br => Label82
IL_06C9: Label79
IL_06C9: br => Label80
IL_06CE: Label78
IL_06CE: ldarg.2
IL_06CF: ldc.i4.1
IL_06D0: call System.Void Citizen::set_Sick(System.Boolean value)
IL_06D5: Label74
IL_06D5: Label75
IL_06D5: Label76
IL_06D5: Label77
IL_06D5: Label80
IL_06D5: ldc.i4.0
IL_06D6: // end original
IL_06D6: Label81
IL_06D6: Label82
IL_06D6: ret
DONE

### Patch: virtual System.Void ColossalFramework.UI.UIView::Start()


### Replacement: static System.Void
ColossalFramework.UI.UIView::ColossalFramework.UI.UIView.Start_Patch0(ColossalFrame
work.UI.UIView this)
IL_0000: Local var 0:
ColossalFramework.PoolList`1<ColossalFramework.UI.UIComponent>
IL_0000: Local var 1: ColossalFramework.UI.UIComponent
IL_0000: Local var 2:
System.Collections.Generic.IEnumerator`1<ColossalFramework.UI.UIComponent>
IL_0000: // start original
IL_0000: ldarg.0
IL_0001: ldc.i4.0
IL_0002: stfld System.Int32 ColossalFramework.UI.UIView::m_FramesRendered
IL_0007: ldarg.0
IL_0008: call System.Void
ColossalFramework.UI.UIView::InvalidateAllComponents()
IL_000D: ldarg.0
IL_000E: ldfld UnityEngine.MeshRenderer
ColossalFramework.UI.UIView::m_MeshRenderer
IL_0013: ldnull
IL_0014: call static System.Boolean
UnityEngine.Object::op_Inequality(UnityEngine.Object x, UnityEngine.Object y)
IL_0019: brfalse => Label0
IL_001E: ldarg.0
IL_001F: ldfld UnityEngine.MeshRenderer
ColossalFramework.UI.UIView::m_MeshRenderer
IL_0024: ldc.i4.1
IL_0025: callvirt System.Void UnityEngine.Renderer::set_enabled(System.Boolean
value)
IL_002A: Label0
IL_002A: ldarg.0
IL_002B: call ColossalFramework.PoolList`1<ColossalFramework.UI.UIComponent>
ColossalFramework.UI.UIView::GetTopLevelComponents()
IL_0030: stloc.0
.try
{
IL_0031: ldloc.0
IL_0032: callvirt virtual
System.Collections.Generic.IEnumerator`1<ColossalFramework.UI.UIComponent>
ColossalFramework.PoolList`1<ColossalFramework.UI.UIComponent>::GetEnumerator()
IL_0037: stloc.2
.try
{
IL_0038: br => Label1
IL_003D: Label2
IL_003D: ldloc.2
IL_003E: callvirt abstract virtual ColossalFramework.UI.UIComponent
System.Collections.Generic.IEnumerator`1<ColossalFramework.UI.UIComponent>::get_Cur
rent()
IL_0043: stloc.1
IL_0044: ldloc.1
IL_0045: ldc.i4.1
IL_0046: callvirt System.Void
ColossalFramework.UI.UIComponent::InitializeParentVisibilityCache(System.Boolean
parentVisible)
IL_004B: Label1
IL_004B: ldloc.2
IL_004C: callvirt abstract virtual System.Boolean
System.Collections.IEnumerator::MoveNext()
IL_0051: brtrue => Label2
IL_0056: leave => Label3
IL_005B: leave => (autogenerated)
} // end try
.finally
{
IL_0060: ldloc.2
IL_0061: brfalse => Label4
IL_0066: ldloc.2
IL_0067: callvirt abstract virtual System.Void
System.IDisposable::Dispose()
IL_006C: Label4
IL_006C: endfinally
IL_006D: leave => (autogenerated)
} // end handler
IL_006E: Label3
IL_006E: leave => Label5
IL_0073: leave => (autogenerated)
} // end try
.finally
{
IL_0078: ldloc.0
IL_0079: brfalse => Label6
IL_007E: ldloc.0
IL_007F: callvirt abstract virtual System.Void
System.IDisposable::Dispose()
IL_0084: Label6
IL_0084: endfinally
IL_0085: leave => (autogenerated)
} // end handler
IL_0086: Label5
IL_0086: ldarg.0
IL_0087: ldc.i4.1
IL_0088: stfld System.Boolean
ColossalFramework.UI.UIView::m_VisibilityCacheInitialized
IL_008D: // end original
IL_008D: ret
DONE

### Patch: virtual UnityEngine.Color NetAI::GetColor(System.UInt16 nodeID, NetNode&


data, InfoMode infoMode, SubInfoMode subInfoMode)
### Replacement: static UnityEngine.Color NetAI::NetAI.GetColor_Patch0(NetAI this,
System.UInt16 nodeID, NetNode& data, InfoMode infoMode, SubInfoMode subInfoMode)
IL_0000: // start original
IL_0000: ldarg.3
IL_0001: brfalse => Label0
IL_0006: call static InfoManager
ColossalFramework.Singleton`1<InfoManager>::get_instance()
IL_000B: ldfld InfoProperties SimulationManagerBase`2<InfoManager,
InfoProperties>::m_properties
IL_0010: ldfld UnityEngine.Color InfoProperties::m_neutralColor
IL_0015: br => Label1
IL_001A: Label0
IL_001A: ldarg.0
IL_001B: ldfld NetInfo NetAI::m_info
IL_0020: ldfld UnityEngine.Color NetInfo::m_color
IL_0025: // end original
IL_0025: Label1
IL_0025: ret
DONE

### Patch: virtual UnityEngine.Color NetAI::GetColor(System.UInt16 segmentID,


NetSegment& data, InfoMode infoMode, SubInfoMode subInfoMode)
### Replacement: static UnityEngine.Color NetAI::NetAI.GetColor_Patch0(NetAI this,
System.UInt16 segmentID, NetSegment& data, InfoMode infoMode, SubInfoMode
subInfoMode)
IL_0000: // start original
IL_0000: ldarg.3
IL_0001: brfalse => Label0
IL_0006: call static InfoManager
ColossalFramework.Singleton`1<InfoManager>::get_instance()
IL_000B: ldfld InfoProperties SimulationManagerBase`2<InfoManager,
InfoProperties>::m_properties
IL_0010: ldfld UnityEngine.Color InfoProperties::m_neutralColor
IL_0015: br => Label1
IL_001A: Label0
IL_001A: ldarg.0
IL_001B: ldfld NetInfo NetAI::m_info
IL_0020: ldfld UnityEngine.Color NetInfo::m_color
IL_0025: // end original
IL_0025: Label1
IL_0025: ret
DONE

### Patch: System.Void ElectricityManager::UpdateNodeElectricity(System.Int32


nodeID, System.Int32 value)
### Replacement: static System.Void
ElectricityManager::ElectricityManager.UpdateNodeElectricity_Patch0(ElectricityMana
ger this, System.Int32 nodeID, System.Int32 value)
IL_0000: Local var 0: InfoManager/InfoMode
IL_0000: Local var 1: NetManager
IL_0000: Local var 2: System.Boolean
IL_0000: Local var 3: NetNode/Flags
IL_0000: Local var 4: System.UInt16
IL_0000: Local var 5: BuildingManager
IL_0000: Local var 6: NetNode/Flags
IL_0000: Local var 7: System.Int32
IL_0000: Local var 8: System.UInt16
IL_0000: // start original
IL_0000: call static InfoManager
ColossalFramework.Singleton`1<InfoManager>::get_instance()
IL_0005: callvirt InfoMode InfoManager::get_CurrentMode()
IL_000A: stloc.0
IL_000B: call static NetManager
ColossalFramework.Singleton`1<NetManager>::get_instance()
IL_0010: stloc.1
IL_0011: ldc.i4.0
IL_0012: stloc.2
IL_0013: ldloc.1
IL_0014: ldfld Array16`1<NetNode> NetManager::m_nodes
IL_0019: ldfld NetNode[] Array16`1<NetNode>::m_buffer
IL_001E: ldarg.1
IL_001F: ldelema NetNode
IL_0024: ldfld Flags NetNode::m_flags
IL_0029: stloc.3
IL_002A: ldloc.3
IL_002B: ldc.i4 1048576
IL_0030: and
IL_0031: brfalse => Label0
IL_0036: ldloc.1
IL_0037: ldfld Array16`1<NetNode> NetManager::m_nodes
IL_003C: ldfld NetNode[] Array16`1<NetNode>::m_buffer
IL_0041: ldarg.1
IL_0042: ldelema NetNode
IL_0047: dup
IL_0048: ldfld Flags NetNode::m_flags
IL_004D: ldc.i4 -1048577
IL_0052: and
IL_0053: stfld Flags NetNode::m_flags
IL_0058: br => Label10
IL_005D: Label0
IL_005D: ldloc.1
IL_005E: ldfld Array16`1<NetNode> NetManager::m_nodes
IL_0063: ldfld NetNode[] Array16`1<NetNode>::m_buffer
IL_0068: ldarg.1
IL_0069: ldelema NetNode
IL_006E: ldfld System.UInt16 NetNode::m_building
IL_0073: stloc.s 4 (System.UInt16)
IL_0075: ldloc.s 4 (System.UInt16)
IL_0077: brfalse => Label1
IL_007C: call static BuildingManager
ColossalFramework.Singleton`1<BuildingManager>::get_instance()
IL_0081: stloc.s 5 (BuildingManager)
IL_0083: ldloc.s 5 (BuildingManager)
IL_0085: ldfld Array16`1<Building> BuildingManager::m_buildings
IL_008A: ldfld Building[] Array16`1<Building>::m_buffer
IL_008F: ldloc.s 4 (System.UInt16)
IL_0091: ldelema Building
IL_0096: ldfld System.UInt16 Building::m_electricityBuffer
IL_009B: ldarg.2
IL_009C: beq => Label2
IL_00A1: ldloc.s 5 (BuildingManager)
IL_00A3: ldfld Array16`1<Building> BuildingManager::m_buildings
IL_00A8: ldfld Building[] Array16`1<Building>::m_buffer
IL_00AD: ldloc.s 4 (System.UInt16)
IL_00AF: ldelema Building
IL_00B4: ldarg.2
IL_00B5: conv.u2
IL_00B6: stfld System.UInt16 Building::m_electricityBuffer
IL_00BB: ldloc.0
IL_00BC: ldc.i4.1
IL_00BD: ceq
IL_00BF: stloc.2
IL_00C0: Label2
IL_00C0: ldloc.2
IL_00C1: brfalse => Label3
IL_00C6: ldloc.s 5 (BuildingManager)
IL_00C8: ldloc.s 4 (System.UInt16)
IL_00CA: callvirt System.Void BuildingManager::UpdateBuildingColors(System.UInt16
building)
IL_00CF: Label1
IL_00CF: Label3
IL_00CF: ldloc.3
IL_00D0: ldc.i4 -67108865
IL_00D5: and
IL_00D6: stloc.s 6 (NetNode+Flags)
IL_00D8: ldarg.2
IL_00D9: brfalse => Label4
IL_00DE: ldloc.s 6 (NetNode+Flags)
IL_00E0: ldc.i4 67108864
IL_00E5: or
IL_00E6: stloc.s 6 (NetNode+Flags)
IL_00E8: Label4
IL_00E8: ldloc.s 6 (NetNode+Flags)
IL_00EA: ldloc.3
IL_00EB: beq => Label5
IL_00F0: ldloc.1
IL_00F1: ldfld Array16`1<NetNode> NetManager::m_nodes
IL_00F6: ldfld NetNode[] Array16`1<NetNode>::m_buffer
IL_00FB: ldarg.1
IL_00FC: ldelema NetNode
IL_0101: ldloc.s 6 (NetNode+Flags)
IL_0103: stfld Flags NetNode::m_flags
IL_0108: ldloc.0
IL_0109: ldc.i4.1
IL_010A: ceq
IL_010C: stloc.2
IL_010D: Label5
IL_010D: ldloc.2
IL_010E: brfalse => Label6
IL_0113: ldloc.1
IL_0114: ldarg.1
IL_0115: conv.u2
IL_0116: callvirt System.Void NetManager::UpdateNodeColors(System.UInt16 node)
IL_011B: ldc.i4.0
IL_011C: stloc.s 7 (System.Int32)
IL_011E: br => Label7
IL_0123: Label9
IL_0123: ldloc.1
IL_0124: ldfld Array16`1<NetNode> NetManager::m_nodes
IL_0129: ldfld NetNode[] Array16`1<NetNode>::m_buffer
IL_012E: ldarg.1
IL_012F: ldelema NetNode
IL_0134: ldloc.s 7 (System.Int32)
IL_0136: call System.UInt16 NetNode::GetSegment(System.Int32 index)
IL_013B: stloc.s 8 (System.UInt16)
IL_013D: ldloc.s 8 (System.UInt16)
IL_013F: brfalse => Label8
IL_0144: ldloc.1
IL_0145: ldloc.s 8 (System.UInt16)
IL_0147: callvirt System.Void NetManager::UpdateSegmentColors(System.UInt16
segment)
IL_014C: Label8
IL_014C: ldloc.s 7 (System.Int32)
IL_014E: ldc.i4.1
IL_014F: add
IL_0150: stloc.s 7 (System.Int32)
IL_0152: Label7
IL_0152: ldloc.s 7 (System.Int32)
IL_0154: ldc.i4.8
IL_0155: blt => Label9
IL_015A: // end original
IL_015A: Label6
IL_015A: Label10
IL_015A: ret
DONE

### Patch: static System.Void PropInstance::RenderInstance(CameraInfo cameraInfo,


PropInfo info, InstanceID id, UnityEngine.Vector3 position, System.Single scale,
System.Single angle, UnityEngine.Color color, UnityEngine.Vector4 objectIndex,
System.Boolean active, UnityEngine.Texture heightMap, UnityEngine.Vector4
heightMapping, UnityEngine.Vector4 surfaceMapping, UnityEngine.Texture
waterHeightMap, UnityEngine.Vector4 waterHeightMapping, UnityEngine.Vector4
waterSurfaceMapping)
### Replacement: static System.Void
PropInstance::PropInstance.RenderInstance_Patch0(CameraInfo cameraInfo, PropInfo
info, InstanceID id, UnityEngine.Vector3 position, System.Single scale,
System.Single angle, UnityEngine.Color color, UnityEngine.Vector4 objectIndex,
System.Boolean active, UnityEngine.Texture heightMap, UnityEngine.Vector4
heightMapping, UnityEngine.Vector4 surfaceMapping, UnityEngine.Texture
waterHeightMap, UnityEngine.Vector4 waterHeightMapping, UnityEngine.Vector4
waterSurfaceMapping)
IL_0000: Local var 0: UnityEngine.Matrix4x4
IL_0000: Local var 1: System.Single
IL_0000: Local var 2: System.Int32
IL_0000: Local var 3: UnityEngine.Vector3
IL_0000: Local var 4: UnityEngine.Vector3
IL_0000: Local var 5: EffectInfo/SpawnArea
IL_0000: Local var 6: System.Single
IL_0000: Local var 7: LightSystem
IL_0000: Local var 8: ColossalFramework.Math.Randomizer
IL_0000: Local var 9: UnityEngine.Vector4
IL_0000: Local var 10: System.Single
IL_0000: Local var 11: System.Single
IL_0000: Local var 12: System.Single
IL_0000: Local var 13: UnityEngine.Matrix4x4
IL_0000: Local var 14: PropManager
IL_0000: Local var 15: UnityEngine.MaterialPropertyBlock
IL_0000: Local var 16: System.Int32
IL_0000: // start original
IL_0000: ldarg.1
IL_0001: ldfld System.Boolean PrefabInfo::m_prefabInitialized
IL_0006: brfalse => Label0
IL_000B: ldarg.1
IL_000C: ldfld System.Boolean PropInfo::m_hasEffects
IL_0011: brfalse => Label1
IL_0016: ldarg.s 8
IL_0018: brtrue => Label2
IL_001D: ldarg.1
IL_001E: ldfld System.Boolean PropInfo::m_alwaysActive
IL_0023: brfalse => Label3
IL_0028: Label2
IL_0028: ldloca.s 0 (UnityEngine.Matrix4x4)
IL_002A: initobj UnityEngine.Matrix4x4
IL_0030: ldloca.s 0 (UnityEngine.Matrix4x4)
IL_0032: ldarg.3
IL_0033: ldarg.s 5
IL_0035: ldc.r4 57.29578
IL_003A: mul
IL_003B: call static UnityEngine.Vector3 UnityEngine.Vector3::get_down()
IL_0040: call static UnityEngine.Quaternion
UnityEngine.Quaternion::AngleAxis(System.Single angle, UnityEngine.Vector3 axis)
IL_0045: ldarg.s 4
IL_0047: ldarg.s 4
IL_0049: ldarg.s 4
IL_004B: newobj System.Void UnityEngine.Vector3::.ctor(System.Single x,
System.Single y, System.Single z)
IL_0050: call System.Void UnityEngine.Matrix4x4::SetTRS(UnityEngine.Vector3
pos, UnityEngine.Quaternion q, UnityEngine.Vector3 s)
IL_0055: call static SimulationManager
ColossalFramework.Singleton`1<SimulationManager>::get_instance()
IL_005A: ldfld System.Single SimulationManager::m_simulationTimeDelta
IL_005F: stloc.1
IL_0060: ldc.i4.0
IL_0061: stloc.2
IL_0062: br => Label4
IL_0067: Label5
IL_0067: ldloca.s 0 (UnityEngine.Matrix4x4)
IL_0069: ldarg.1
IL_006A: ldfld Effect[] PropInfo::m_effects
IL_006F: ldloc.2
IL_0070: ldelema PropInfo+Effect
IL_0075: ldfld UnityEngine.Vector3 Effect::m_position
IL_007A: call UnityEngine.Vector3
UnityEngine.Matrix4x4::MultiplyPoint(UnityEngine.Vector3 v)
IL_007F: stloc.3
IL_0080: ldloca.s 0 (UnityEngine.Matrix4x4)
IL_0082: ldarg.1
IL_0083: ldfld Effect[] PropInfo::m_effects
IL_0088: ldloc.2
IL_0089: ldelema PropInfo+Effect
IL_008E: ldfld UnityEngine.Vector3 Effect::m_direction
IL_0093: call UnityEngine.Vector3
UnityEngine.Matrix4x4::MultiplyVector(UnityEngine.Vector3 v)
IL_0098: stloc.s 4 (UnityEngine.Vector3)
IL_009A: ldloca.s 5 (EffectInfo+SpawnArea)
IL_009C: ldloc.3
IL_009D: ldloc.s 4 (UnityEngine.Vector3)
IL_009F: ldc.r4 0
IL_00A4: call System.Void SpawnArea::.ctor(UnityEngine.Vector3 position,
UnityEngine.Vector3 direction, System.Single radius)
IL_00A9: ldarg.1
IL_00AA: ldfld Effect[] PropInfo::m_effects
IL_00AF: ldloc.2
IL_00B0: ldelema PropInfo+Effect
IL_00B5: ldfld EffectInfo Effect::m_effect
IL_00BA: ldarg.2
IL_00BB: ldloc.s 5 (EffectInfo+SpawnArea)
IL_00BD: call static UnityEngine.Vector3 UnityEngine.Vector3::get_zero()
IL_00C2: ldc.r4 0
IL_00C7: ldc.r4 1
IL_00CC: ldc.r4 -1
IL_00D1: ldloc.1
IL_00D2: ldarg.0
IL_00D3: callvirt virtual System.Void EffectInfo::RenderEffect(InstanceID id,
SpawnArea area, UnityEngine.Vector3 velocity, System.Single acceleration,
System.Single magnitude, System.Single timeOffset, System.Single timeDelta,
CameraInfo cameraInfo)
IL_00D8: ldloc.2
IL_00D9: ldc.i4.1
IL_00DA: add
IL_00DB: stloc.2
IL_00DC: Label4
IL_00DC: ldloc.2
IL_00DD: ldarg.1
IL_00DE: ldfld Effect[] PropInfo::m_effects
IL_00E3: ldlen
IL_00E4: conv.i4
IL_00E5: blt => Label5
IL_00EA: Label1
IL_00EA: Label3
IL_00EA: ldarg.1
IL_00EB: ldfld System.Boolean PropInfo::m_hasRenderer
IL_00F0: brfalse => Label6
IL_00F5: ldarg.0
IL_00F6: ldfld System.Int32 CameraInfo::m_layerMask
IL_00FB: ldc.i4.1
IL_00FC: ldarg.1
IL_00FD: ldfld System.Int32 PrefabInfo::m_prefabDataLayer
IL_0102: ldc.i4.s 31
IL_0104: and
IL_0105: shl
IL_0106: and
IL_0107: brfalse => Label7
IL_010C: call static InfoManager
ColossalFramework.Singleton`1<InfoManager>::get_instance()
IL_0111: callvirt InfoMode InfoManager::get_CurrentMode()
IL_0116: brtrue => Label8
IL_011B: ldc.r4 0
IL_0120: stloc.s 6 (System.Single)
IL_0122: ldarg.s 8
IL_0124: brtrue => Label9
IL_0129: ldarg.1
IL_012A: ldfld System.Boolean PropInfo::m_alwaysActive
IL_012F: brtrue => Label10
IL_0134: ldarga.s 7
IL_0136: ldc.r4 0
IL_013B: stfld System.Single UnityEngine.Vector4::z
IL_0140: br => Label11
IL_0145: Label9
IL_0145: Label10
IL_0145: ldarg.1
IL_0146: ldflda UnityEngine.Vector2 PropInfo::m_illuminationOffRange
IL_014B: ldfld System.Single UnityEngine.Vector2::x
IL_0150: ldc.r4 1000
IL_0155: blt => Label12
IL_015A: ldarg.1
IL_015B: ldfld BlinkType PropInfo::m_illuminationBlinkType
IL_0160: brfalse => Label13
IL_0165: Label12
IL_0165: call static RenderManager
ColossalFramework.Singleton`1<RenderManager>::get_instance()
IL_016A: callvirt LightSystem RenderManager::get_lightSystem()
IL_016F: stloc.s 7 (LightSystem)
IL_0171: ldloca.s 8 (ColossalFramework.Math.Randomizer)
IL_0173: ldarga.s 2
IL_0175: call System.UInt32 InstanceID::get_Index()
IL_017A: call System.Void
ColossalFramework.Math.Randomizer::.ctor(System.UInt32 _seed)
IL_017F: ldarg.1
IL_0180: ldflda UnityEngine.Vector2 PropInfo::m_illuminationOffRange
IL_0185: ldfld System.Single UnityEngine.Vector2::x
IL_018A: ldloca.s 8 (ColossalFramework.Math.Randomizer)
IL_018C: ldc.i4 100000
IL_0191: call System.Int32
ColossalFramework.Math.Randomizer::Int32(System.UInt32 range)
IL_0196: conv.r4
IL_0197: ldc.r4 1E-05
IL_019C: mul
IL_019D: ldarg.1
IL_019E: ldflda UnityEngine.Vector2 PropInfo::m_illuminationOffRange
IL_01A3: ldfld System.Single UnityEngine.Vector2::y
IL_01A8: ldarg.1
IL_01A9: ldflda UnityEngine.Vector2 PropInfo::m_illuminationOffRange
IL_01AE: ldfld System.Single UnityEngine.Vector2::x
IL_01B3: sub
IL_01B4: mul
IL_01B5: add
IL_01B6: stloc.s 6 (System.Single)
IL_01B8: ldarga.s 7
IL_01BA: ldloc.s 6 (System.Single)
IL_01BC: ldc.r4 0.01
IL_01C1: add
IL_01C2: ldloc.s 6 (System.Single)
IL_01C4: ldc.r4 0.01
IL_01C9: sub
IL_01CA: ldloc.s 7 (LightSystem)
IL_01CC: callvirt System.Single LightSystem::get_DayLightIntensity()
IL_01D1: call static System.Single MathUtils::SmoothStep(System.Single edge0,
System.Single edge1, System.Single x)
IL_01D6: stfld System.Single UnityEngine.Vector4::z
IL_01DB: ldarg.1
IL_01DC: ldfld BlinkType PropInfo::m_illuminationBlinkType
IL_01E1: brfalse => Label14
IL_01E6: ldarg.1
IL_01E7: ldfld BlinkType PropInfo::m_illuminationBlinkType
IL_01EC: call static UnityEngine.Vector4
LightEffect::GetBlinkVector(BlinkType type)
IL_01F1: stloc.s 9 (UnityEngine.Vector4)
IL_01F3: ldloc.s 6 (System.Single)
IL_01F5: ldc.r4 3.71
IL_01FA: mul
IL_01FB: call static SimulationManager
ColossalFramework.Singleton`1<SimulationManager>::get_instance()
IL_0200: ldfld System.Single SimulationManager::m_simulationTimer
IL_0205: ldloca.s 9 (UnityEngine.Vector4)
IL_0207: ldfld System.Single UnityEngine.Vector4::w
IL_020C: div
IL_020D: add
IL_020E: stloc.s 10 (System.Single)
IL_0210: ldloc.s 10 (System.Single)
IL_0212: ldloc.s 10 (System.Single)
IL_0214: call static System.Single UnityEngine.Mathf::Floor(System.Single f)
IL_0219: sub
IL_021A: ldloca.s 9 (UnityEngine.Vector4)
IL_021C: ldfld System.Single UnityEngine.Vector4::w
IL_0221: mul
IL_0222: stloc.s 10 (System.Single)
IL_0224: ldloca.s 9 (UnityEngine.Vector4)
IL_0226: ldfld System.Single UnityEngine.Vector4::x
IL_022B: ldloca.s 9 (UnityEngine.Vector4)
IL_022D: ldfld System.Single UnityEngine.Vector4::y
IL_0232: ldloc.s 10 (System.Single)
IL_0234: call static System.Single MathUtils::SmoothStep(System.Single edge0,
System.Single edge1, System.Single x)
IL_0239: stloc.s 11 (System.Single)
IL_023B: ldloca.s 9 (UnityEngine.Vector4)
IL_023D: ldfld System.Single UnityEngine.Vector4::w
IL_0242: ldloca.s 9 (UnityEngine.Vector4)
IL_0244: ldfld System.Single UnityEngine.Vector4::z
IL_0249: ldloc.s 10 (System.Single)
IL_024B: call static System.Single MathUtils::SmoothStep(System.Single edge0,
System.Single edge1, System.Single x)
IL_0250: stloc.s 12 (System.Single)
IL_0252: ldarga.s 7
IL_0254: dup
IL_0255: ldfld System.Single UnityEngine.Vector4::z
IL_025A: ldc.r4 1
IL_025F: ldloc.s 11 (System.Single)
IL_0261: ldloc.s 12 (System.Single)
IL_0263: mul
IL_0264: sub
IL_0265: mul
IL_0266: stfld System.Single UnityEngine.Vector4::z
IL_026B: Label14
IL_026B: br => Label15
IL_0270: Label13
IL_0270: ldarga.s 7
IL_0272: ldc.r4 1
IL_0277: stfld System.Single UnityEngine.Vector4::z
IL_027C: Label8
IL_027C: Label11
IL_027C: Label15
IL_027C: ldarg.0
IL_027D: brfalse => Label16
IL_0282: ldarg.0
IL_0283: ldarg.3
IL_0284: ldarg.1
IL_0285: ldfld System.Single PropInfo::m_lodRenderDistance
IL_028A: callvirt System.Boolean
CameraInfo::CheckRenderDistance(UnityEngine.Vector3 point, System.Single
maxDistance)
IL_028F: brfalse => Label17
IL_0294: Label16
IL_0294: ldloca.s 13 (UnityEngine.Matrix4x4)
IL_0296: initobj UnityEngine.Matrix4x4
IL_029C: ldloca.s 13 (UnityEngine.Matrix4x4)
IL_029E: ldarg.3
IL_029F: ldarg.s 5
IL_02A1: ldc.r4 57.29578
IL_02A6: mul
IL_02A7: call static UnityEngine.Vector3 UnityEngine.Vector3::get_down()
IL_02AC: call static UnityEngine.Quaternion
UnityEngine.Quaternion::AngleAxis(System.Single angle, UnityEngine.Vector3 axis)
IL_02B1: ldarg.s 4
IL_02B3: ldarg.s 4
IL_02B5: ldarg.s 4
IL_02B7: newobj System.Void UnityEngine.Vector3::.ctor(System.Single x,
System.Single y, System.Single z)
IL_02BC: call System.Void UnityEngine.Matrix4x4::SetTRS(UnityEngine.Vector3
pos, UnityEngine.Quaternion q, UnityEngine.Vector3 s)
IL_02C1: call static PropManager
ColossalFramework.Singleton`1<PropManager>::get_instance()
IL_02C6: stloc.s 14 (PropManager)
IL_02C8: ldloc.s 14 (PropManager)
IL_02CA: ldfld UnityEngine.MaterialPropertyBlock PropManager::m_materialBlock
IL_02CF: stloc.s 15 (UnityEngine.MaterialPropertyBlock)
IL_02D1: ldloc.s 15 (UnityEngine.MaterialPropertyBlock)
IL_02D3: callvirt System.Void UnityEngine.MaterialPropertyBlock::Clear()
IL_02D8: ldloc.s 15 (UnityEngine.MaterialPropertyBlock)
IL_02DA: ldloc.s 14 (PropManager)
IL_02DC: ldfld System.Int32 PropManager::ID_Color
IL_02E1: ldarg.s 6
IL_02E3: callvirt System.Void
UnityEngine.MaterialPropertyBlock::SetColor(System.Int32 nameID, UnityEngine.Color
value)
IL_02E8: ldloc.s 15 (UnityEngine.MaterialPropertyBlock)
IL_02EA: ldloc.s 14 (PropManager)
IL_02EC: ldfld System.Int32 PropManager::ID_HeightMap
IL_02F1: ldarg.s 9
IL_02F3: callvirt System.Void
UnityEngine.MaterialPropertyBlock::SetTexture(System.Int32 nameID,
UnityEngine.Texture value)
IL_02F8: ldloc.s 15 (UnityEngine.MaterialPropertyBlock)
IL_02FA: ldloc.s 14 (PropManager)
IL_02FC: ldfld System.Int32 PropManager::ID_HeightMapping
IL_0301: ldarg.s 10
IL_0303: callvirt System.Void
UnityEngine.MaterialPropertyBlock::SetVector(System.Int32 nameID,
UnityEngine.Vector4 value)
IL_0308: ldloc.s 15 (UnityEngine.MaterialPropertyBlock)
IL_030A: ldloc.s 14 (PropManager)
IL_030C: ldfld System.Int32 PropManager::ID_SurfaceMapping
IL_0311: ldarg.s 11
IL_0313: callvirt System.Void
UnityEngine.MaterialPropertyBlock::SetVector(System.Int32 nameID,
UnityEngine.Vector4 value)
IL_0318: ldloc.s 15 (UnityEngine.MaterialPropertyBlock)
IL_031A: ldloc.s 14 (PropManager)
IL_031C: ldfld System.Int32 PropManager::ID_ObjectIndex
IL_0321: ldarg.s 7
IL_0323: callvirt System.Void
UnityEngine.MaterialPropertyBlock::SetVector(System.Int32 nameID,
UnityEngine.Vector4 value)
IL_0328: ldloc.s 15 (UnityEngine.MaterialPropertyBlock)
IL_032A: ldloc.s 14 (PropManager)
IL_032C: ldfld System.Int32 PropManager::ID_WaterHeightMap
IL_0331: ldarg.s 12
IL_0333: callvirt System.Void
UnityEngine.MaterialPropertyBlock::SetTexture(System.Int32 nameID,
UnityEngine.Texture value)
IL_0338: ldloc.s 15 (UnityEngine.MaterialPropertyBlock)
IL_033A: ldloc.s 14 (PropManager)
IL_033C: ldfld System.Int32 PropManager::ID_WaterHeightMapping
IL_0341: ldarg.s 13
IL_0343: callvirt System.Void
UnityEngine.MaterialPropertyBlock::SetVector(System.Int32 nameID,
UnityEngine.Vector4 value)
IL_0348: ldloc.s 15 (UnityEngine.MaterialPropertyBlock)
IL_034A: ldloc.s 14 (PropManager)
IL_034C: ldfld System.Int32 PropManager::ID_WaterSurfaceMapping
IL_0351: ldarg.s 14
IL_0353: callvirt System.Void
UnityEngine.MaterialPropertyBlock::SetVector(System.Int32 nameID,
UnityEngine.Vector4 value)
IL_0358: ldarg.1
IL_0359: ldfld UnityEngine.Vector4[] PropInfo::m_rollLocation
IL_035E: brfalse => Label18
IL_0363: ldarg.1
IL_0364: ldfld UnityEngine.Material PropInfo::m_material
IL_0369: ldloc.s 14 (PropManager)
IL_036B: ldfld System.Int32 PropManager::ID_RollLocation
IL_0370: ldarg.1
IL_0371: ldfld UnityEngine.Vector4[] PropInfo::m_rollLocation
IL_0376: callvirt System.Void UnityEngine.Material::SetVectorArray(System.Int32
nameID, UnityEngine.Vector4[] values)
IL_037B: ldarg.1
IL_037C: ldfld UnityEngine.Material PropInfo::m_material
IL_0381: ldloc.s 14 (PropManager)
IL_0383: ldfld System.Int32 PropManager::ID_RollParams
IL_0388: ldarg.1
IL_0389: ldfld UnityEngine.Vector4[] PropInfo::m_rollParams
IL_038E: callvirt System.Void UnityEngine.Material::SetVectorArray(System.Int32
nameID, UnityEngine.Vector4[] values)
IL_0393: Label18
IL_0393: ldloc.s 14 (PropManager)
IL_0395: ldflda DrawCallData SimulationManagerBase`2<PropManager,
PropProperties>::m_drawCallData
IL_039A: dup
IL_039B: ldfld System.Int32 DrawCallData::m_defaultCalls
IL_03A0: ldc.i4.1
IL_03A1: add
IL_03A2: stfld System.Int32 DrawCallData::m_defaultCalls
IL_03A7: ldarg.1
IL_03A8: ldfld UnityEngine.Mesh PropInfo::m_mesh
IL_03AD: ldloc.s 13 (UnityEngine.Matrix4x4)
IL_03AF: ldarg.1
IL_03B0: ldfld UnityEngine.Material PropInfo::m_material
IL_03B5: ldarg.1
IL_03B6: ldfld System.Int32 PrefabInfo::m_prefabDataLayer
IL_03BB: ldnull
IL_03BC: ldc.i4.0
IL_03BD: ldloc.s 15 (UnityEngine.MaterialPropertyBlock)
IL_03BF: call static System.Void
UnityEngine.Graphics::DrawMesh(UnityEngine.Mesh mesh, UnityEngine.Matrix4x4 matrix,
UnityEngine.Material material, System.Int32 layer, UnityEngine.Camera camera,
System.Int32 submeshIndex, UnityEngine.MaterialPropertyBlock properties)
IL_03C4: br => Label19
IL_03C9: Label17
IL_03C9: ldarg.s 9
IL_03CB: ldarg.1
IL_03CC: ldfld UnityEngine.Texture PropInfo::m_lodHeightMap
IL_03D1: call static System.Boolean
UnityEngine.Object::op_Inequality(UnityEngine.Object x, UnityEngine.Object y)
IL_03D6: brtrue => Label20
IL_03DB: ldarg.s 12
IL_03DD: ldarg.1
IL_03DE: ldfld UnityEngine.Texture PropInfo::m_lodWaterHeightMap
IL_03E3: call static System.Boolean
UnityEngine.Object::op_Inequality(UnityEngine.Object x, UnityEngine.Object y)
IL_03E8: brfalse => Label21
IL_03ED: Label20
IL_03ED: ldarg.1
IL_03EE: ldfld System.Int32 PropInfo::m_lodCount
IL_03F3: brfalse => Label22
IL_03F8: ldarg.0
IL_03F9: ldarg.1
IL_03FA: call static System.Void PropInstance::RenderLod(CameraInfo
cameraInfo, PropInfo info)
IL_03FF: Label22
IL_03FF: ldarg.1
IL_0400: ldarg.s 9
IL_0402: stfld UnityEngine.Texture PropInfo::m_lodHeightMap
IL_0407: ldarg.1
IL_0408: ldarg.s 10
IL_040A: stfld UnityEngine.Vector4 PropInfo::m_lodHeightMapping
IL_040F: ldarg.1
IL_0410: ldarg.s 11
IL_0412: stfld UnityEngine.Vector4 PropInfo::m_lodSurfaceMapping
IL_0417: ldarg.1
IL_0418: ldarg.s 12
IL_041A: stfld UnityEngine.Texture PropInfo::m_lodWaterHeightMap
IL_041F: ldarg.1
IL_0420: ldarg.s 13
IL_0422: stfld UnityEngine.Vector4 PropInfo::m_lodWaterHeightMapping
IL_0427: ldarg.1
IL_0428: ldarg.s 14
IL_042A: stfld UnityEngine.Vector4 PropInfo::m_lodWaterSurfaceMapping
IL_042F: Label21
IL_042F: ldarga.s 7
IL_0431: ldarg.s 4
IL_0433: stfld System.Single UnityEngine.Vector4::w
IL_0438: ldarg.1
IL_0439: ldfld UnityEngine.Vector4[] PropInfo::m_lodLocations
IL_043E: ldarg.1
IL_043F: ldfld System.Int32 PropInfo::m_lodCount
IL_0444: ldelema UnityEngine.Vector4
IL_0449: ldarga.s 3
IL_044B: ldfld System.Single UnityEngine.Vector3::x
IL_0450: ldarga.s 3
IL_0452: ldfld System.Single UnityEngine.Vector3::y
IL_0457: ldarga.s 3
IL_0459: ldfld System.Single UnityEngine.Vector3::z
IL_045E: ldarg.s 5
IL_0460: newobj System.Void UnityEngine.Vector4::.ctor(System.Single x,
System.Single y, System.Single z, System.Single w)
IL_0465: stobj UnityEngine.Vector4
IL_046A: ldarg.1
IL_046B: ldfld UnityEngine.Vector4[] PropInfo::m_lodObjectIndices
IL_0470: ldarg.1
IL_0471: ldfld System.Int32 PropInfo::m_lodCount
IL_0476: ldelema UnityEngine.Vector4
IL_047B: ldarg.s 7
IL_047D: stobj UnityEngine.Vector4
IL_0482: ldarg.1
IL_0483: ldfld UnityEngine.Vector4[] PropInfo::m_lodColors
IL_0488: ldarg.1
IL_0489: ldfld System.Int32 PropInfo::m_lodCount
IL_048E: ldelema UnityEngine.Vector4
IL_0493: ldarga.s 6
IL_0495: call UnityEngine.Color UnityEngine.Color::get_linear()
IL_049A: call static UnityEngine.Vector4
UnityEngine.Color::op_Implicit(UnityEngine.Color c)
IL_049F: stobj UnityEngine.Vector4
IL_04A4: ldarg.1
IL_04A5: ldarg.1
IL_04A6: ldfld UnityEngine.Vector3 PropInfo::m_lodMin
IL_04AB: ldarg.3
IL_04AC: call static UnityEngine.Vector3
UnityEngine.Vector3::Min(UnityEngine.Vector3 lhs, UnityEngine.Vector3 rhs)
IL_04B1: stfld UnityEngine.Vector3 PropInfo::m_lodMin
IL_04B6: ldarg.1
IL_04B7: ldarg.1
IL_04B8: ldfld UnityEngine.Vector3 PropInfo::m_lodMax
IL_04BD: ldarg.3
IL_04BE: call static UnityEngine.Vector3
UnityEngine.Vector3::Max(UnityEngine.Vector3 lhs, UnityEngine.Vector3 rhs)
IL_04C3: stfld UnityEngine.Vector3 PropInfo::m_lodMax
IL_04C8: ldarg.1
IL_04C9: dup
IL_04CA: ldfld System.Int32 PropInfo::m_lodCount
IL_04CF: ldc.i4.1
IL_04D0: add
IL_04D1: dup
IL_04D2: stloc.s 16 (System.Int32)
IL_04D4: stfld System.Int32 PropInfo::m_lodCount
IL_04D9: ldloc.s 16 (System.Int32)
IL_04DB: ldarg.1
IL_04DC: ldfld UnityEngine.Vector4[] PropInfo::m_lodLocations
IL_04E1: ldlen
IL_04E2: conv.i4
IL_04E3: bne.un => Label23
IL_04E8: ldarg.0
IL_04E9: ldarg.1
IL_04EA: call static System.Void PropInstance::RenderLod(CameraInfo
cameraInfo, PropInfo info)
IL_04EF: // end original
IL_04EF: Label0
IL_04EF: Label6
IL_04EF: Label7
IL_04EF: Label19
IL_04EF: Label23
IL_04EF: ret
DONE
### Patch: static System.Void PropInstance::RenderInstance(CameraInfo cameraInfo,
PropInfo info, InstanceID id, UnityEngine.Vector3 position, System.Single scale,
System.Single angle, UnityEngine.Color color, UnityEngine.Vector4 objectIndex,
System.Boolean active)
### Replacement: static System.Void
PropInstance::PropInstance.RenderInstance_Patch0(CameraInfo cameraInfo, PropInfo
info, InstanceID id, UnityEngine.Vector3 position, System.Single scale,
System.Single angle, UnityEngine.Color color, UnityEngine.Vector4 objectIndex,
System.Boolean active)
IL_0000: Local var 0: UnityEngine.Matrix4x4
IL_0000: Local var 1: System.Single
IL_0000: Local var 2: System.Int32
IL_0000: Local var 3: UnityEngine.Vector3
IL_0000: Local var 4: UnityEngine.Vector3
IL_0000: Local var 5: EffectInfo/SpawnArea
IL_0000: Local var 6: System.Single
IL_0000: Local var 7: LightSystem
IL_0000: Local var 8: ColossalFramework.Math.Randomizer
IL_0000: Local var 9: UnityEngine.Vector4
IL_0000: Local var 10: System.Single
IL_0000: Local var 11: System.Single
IL_0000: Local var 12: System.Single
IL_0000: Local var 13: UnityEngine.Matrix4x4
IL_0000: Local var 14: PropManager
IL_0000: Local var 15: UnityEngine.MaterialPropertyBlock
IL_0000: Local var 16: UnityEngine.Matrix4x4
IL_0000: Local var 17: PropManager
IL_0000: Local var 18: UnityEngine.MaterialPropertyBlock
IL_0000: Local var 19: System.Int32
IL_0000: // start original
IL_0000: ldarg.1
IL_0001: ldfld System.Boolean PrefabInfo::m_prefabInitialized
IL_0006: brfalse => Label0
IL_000B: ldarg.1
IL_000C: ldfld System.Boolean PropInfo::m_hasEffects
IL_0011: brfalse => Label1
IL_0016: ldarg.s 8
IL_0018: brtrue => Label2
IL_001D: ldarg.1
IL_001E: ldfld System.Boolean PropInfo::m_alwaysActive
IL_0023: brfalse => Label3
IL_0028: Label2
IL_0028: ldloca.s 0 (UnityEngine.Matrix4x4)
IL_002A: initobj UnityEngine.Matrix4x4
IL_0030: ldloca.s 0 (UnityEngine.Matrix4x4)
IL_0032: ldarg.3
IL_0033: ldarg.s 5
IL_0035: ldc.r4 57.29578
IL_003A: mul
IL_003B: call static UnityEngine.Vector3 UnityEngine.Vector3::get_down()
IL_0040: call static UnityEngine.Quaternion
UnityEngine.Quaternion::AngleAxis(System.Single angle, UnityEngine.Vector3 axis)
IL_0045: ldarg.s 4
IL_0047: ldarg.s 4
IL_0049: ldarg.s 4
IL_004B: newobj System.Void UnityEngine.Vector3::.ctor(System.Single x,
System.Single y, System.Single z)
IL_0050: call System.Void UnityEngine.Matrix4x4::SetTRS(UnityEngine.Vector3
pos, UnityEngine.Quaternion q, UnityEngine.Vector3 s)
IL_0055: call static SimulationManager
ColossalFramework.Singleton`1<SimulationManager>::get_instance()
IL_005A: ldfld System.Single SimulationManager::m_simulationTimeDelta
IL_005F: stloc.1
IL_0060: ldc.i4.0
IL_0061: stloc.2
IL_0062: br => Label4
IL_0067: Label5
IL_0067: ldloca.s 0 (UnityEngine.Matrix4x4)
IL_0069: ldarg.1
IL_006A: ldfld Effect[] PropInfo::m_effects
IL_006F: ldloc.2
IL_0070: ldelema PropInfo+Effect
IL_0075: ldfld UnityEngine.Vector3 Effect::m_position
IL_007A: call UnityEngine.Vector3
UnityEngine.Matrix4x4::MultiplyPoint(UnityEngine.Vector3 v)
IL_007F: stloc.3
IL_0080: ldloca.s 0 (UnityEngine.Matrix4x4)
IL_0082: ldarg.1
IL_0083: ldfld Effect[] PropInfo::m_effects
IL_0088: ldloc.2
IL_0089: ldelema PropInfo+Effect
IL_008E: ldfld UnityEngine.Vector3 Effect::m_direction
IL_0093: call UnityEngine.Vector3
UnityEngine.Matrix4x4::MultiplyVector(UnityEngine.Vector3 v)
IL_0098: stloc.s 4 (UnityEngine.Vector3)
IL_009A: ldloca.s 5 (EffectInfo+SpawnArea)
IL_009C: ldloc.3
IL_009D: ldloc.s 4 (UnityEngine.Vector3)
IL_009F: ldc.r4 0
IL_00A4: call System.Void SpawnArea::.ctor(UnityEngine.Vector3 position,
UnityEngine.Vector3 direction, System.Single radius)
IL_00A9: ldarg.1
IL_00AA: ldfld Effect[] PropInfo::m_effects
IL_00AF: ldloc.2
IL_00B0: ldelema PropInfo+Effect
IL_00B5: ldfld EffectInfo Effect::m_effect
IL_00BA: ldarg.2
IL_00BB: ldloc.s 5 (EffectInfo+SpawnArea)
IL_00BD: call static UnityEngine.Vector3 UnityEngine.Vector3::get_zero()
IL_00C2: ldc.r4 0
IL_00C7: ldc.r4 1
IL_00CC: ldc.r4 -1
IL_00D1: ldloc.1
IL_00D2: ldarg.0
IL_00D3: callvirt virtual System.Void EffectInfo::RenderEffect(InstanceID id,
SpawnArea area, UnityEngine.Vector3 velocity, System.Single acceleration,
System.Single magnitude, System.Single timeOffset, System.Single timeDelta,
CameraInfo cameraInfo)
IL_00D8: ldloc.2
IL_00D9: ldc.i4.1
IL_00DA: add
IL_00DB: stloc.2
IL_00DC: Label4
IL_00DC: ldloc.2
IL_00DD: ldarg.1
IL_00DE: ldfld Effect[] PropInfo::m_effects
IL_00E3: ldlen
IL_00E4: conv.i4
IL_00E5: blt => Label5
IL_00EA: Label1
IL_00EA: Label3
IL_00EA: ldarg.1
IL_00EB: ldfld System.Boolean PropInfo::m_hasRenderer
IL_00F0: brfalse => Label6
IL_00F5: ldarg.0
IL_00F6: ldfld System.Int32 CameraInfo::m_layerMask
IL_00FB: ldc.i4.1
IL_00FC: ldarg.1
IL_00FD: ldfld System.Int32 PrefabInfo::m_prefabDataLayer
IL_0102: ldc.i4.s 31
IL_0104: and
IL_0105: shl
IL_0106: and
IL_0107: brfalse => Label7
IL_010C: call static InfoManager
ColossalFramework.Singleton`1<InfoManager>::get_instance()
IL_0111: callvirt InfoMode InfoManager::get_CurrentMode()
IL_0116: brtrue => Label8
IL_011B: ldc.r4 0
IL_0120: stloc.s 6 (System.Single)
IL_0122: ldarg.s 8
IL_0124: brtrue => Label9
IL_0129: ldarg.1
IL_012A: ldfld System.Boolean PropInfo::m_alwaysActive
IL_012F: brtrue => Label10
IL_0134: ldarga.s 7
IL_0136: ldc.r4 0
IL_013B: stfld System.Single UnityEngine.Vector4::z
IL_0140: br => Label11
IL_0145: Label9
IL_0145: Label10
IL_0145: ldarg.1
IL_0146: ldflda UnityEngine.Vector2 PropInfo::m_illuminationOffRange
IL_014B: ldfld System.Single UnityEngine.Vector2::x
IL_0150: ldc.r4 1000
IL_0155: blt => Label12
IL_015A: ldarg.1
IL_015B: ldfld BlinkType PropInfo::m_illuminationBlinkType
IL_0160: brfalse => Label13
IL_0165: Label12
IL_0165: call static RenderManager
ColossalFramework.Singleton`1<RenderManager>::get_instance()
IL_016A: callvirt LightSystem RenderManager::get_lightSystem()
IL_016F: stloc.s 7 (LightSystem)
IL_0171: ldloca.s 8 (ColossalFramework.Math.Randomizer)
IL_0173: ldarga.s 2
IL_0175: call System.UInt32 InstanceID::get_Index()
IL_017A: call System.Void
ColossalFramework.Math.Randomizer::.ctor(System.UInt32 _seed)
IL_017F: ldarg.1
IL_0180: ldflda UnityEngine.Vector2 PropInfo::m_illuminationOffRange
IL_0185: ldfld System.Single UnityEngine.Vector2::x
IL_018A: ldloca.s 8 (ColossalFramework.Math.Randomizer)
IL_018C: ldc.i4 100000
IL_0191: call System.Int32
ColossalFramework.Math.Randomizer::Int32(System.UInt32 range)
IL_0196: conv.r4
IL_0197: ldc.r4 1E-05
IL_019C: mul
IL_019D: ldarg.1
IL_019E: ldflda UnityEngine.Vector2 PropInfo::m_illuminationOffRange
IL_01A3: ldfld System.Single UnityEngine.Vector2::y
IL_01A8: ldarg.1
IL_01A9: ldflda UnityEngine.Vector2 PropInfo::m_illuminationOffRange
IL_01AE: ldfld System.Single UnityEngine.Vector2::x
IL_01B3: sub
IL_01B4: mul
IL_01B5: add
IL_01B6: stloc.s 6 (System.Single)
IL_01B8: ldarga.s 7
IL_01BA: ldloc.s 6 (System.Single)
IL_01BC: ldc.r4 0.01
IL_01C1: add
IL_01C2: ldloc.s 6 (System.Single)
IL_01C4: ldc.r4 0.01
IL_01C9: sub
IL_01CA: ldloc.s 7 (LightSystem)
IL_01CC: callvirt System.Single LightSystem::get_DayLightIntensity()
IL_01D1: call static System.Single MathUtils::SmoothStep(System.Single edge0,
System.Single edge1, System.Single x)
IL_01D6: stfld System.Single UnityEngine.Vector4::z
IL_01DB: ldarg.1
IL_01DC: ldfld BlinkType PropInfo::m_illuminationBlinkType
IL_01E1: brfalse => Label14
IL_01E6: ldarg.1
IL_01E7: ldfld BlinkType PropInfo::m_illuminationBlinkType
IL_01EC: call static UnityEngine.Vector4
LightEffect::GetBlinkVector(BlinkType type)
IL_01F1: stloc.s 9 (UnityEngine.Vector4)
IL_01F3: ldloc.s 6 (System.Single)
IL_01F5: ldc.r4 3.71
IL_01FA: mul
IL_01FB: call static SimulationManager
ColossalFramework.Singleton`1<SimulationManager>::get_instance()
IL_0200: ldfld System.Single SimulationManager::m_simulationTimer
IL_0205: ldloca.s 9 (UnityEngine.Vector4)
IL_0207: ldfld System.Single UnityEngine.Vector4::w
IL_020C: div
IL_020D: add
IL_020E: stloc.s 10 (System.Single)
IL_0210: ldloc.s 10 (System.Single)
IL_0212: ldloc.s 10 (System.Single)
IL_0214: call static System.Single UnityEngine.Mathf::Floor(System.Single f)
IL_0219: sub
IL_021A: ldloca.s 9 (UnityEngine.Vector4)
IL_021C: ldfld System.Single UnityEngine.Vector4::w
IL_0221: mul
IL_0222: stloc.s 10 (System.Single)
IL_0224: ldloca.s 9 (UnityEngine.Vector4)
IL_0226: ldfld System.Single UnityEngine.Vector4::x
IL_022B: ldloca.s 9 (UnityEngine.Vector4)
IL_022D: ldfld System.Single UnityEngine.Vector4::y
IL_0232: ldloc.s 10 (System.Single)
IL_0234: call static System.Single MathUtils::SmoothStep(System.Single edge0,
System.Single edge1, System.Single x)
IL_0239: stloc.s 11 (System.Single)
IL_023B: ldloca.s 9 (UnityEngine.Vector4)
IL_023D: ldfld System.Single UnityEngine.Vector4::w
IL_0242: ldloca.s 9 (UnityEngine.Vector4)
IL_0244: ldfld System.Single UnityEngine.Vector4::z
IL_0249: ldloc.s 10 (System.Single)
IL_024B: call static System.Single MathUtils::SmoothStep(System.Single edge0,
System.Single edge1, System.Single x)
IL_0250: stloc.s 12 (System.Single)
IL_0252: ldarga.s 7
IL_0254: dup
IL_0255: ldfld System.Single UnityEngine.Vector4::z
IL_025A: ldc.r4 1
IL_025F: ldloc.s 11 (System.Single)
IL_0261: ldloc.s 12 (System.Single)
IL_0263: mul
IL_0264: sub
IL_0265: mul
IL_0266: stfld System.Single UnityEngine.Vector4::z
IL_026B: Label14
IL_026B: br => Label15
IL_0270: Label13
IL_0270: ldarga.s 7
IL_0272: ldc.r4 1
IL_0277: stfld System.Single UnityEngine.Vector4::z
IL_027C: Label8
IL_027C: Label11
IL_027C: Label15
IL_027C: ldarg.0
IL_027D: brfalse => Label16
IL_0282: ldarg.0
IL_0283: ldarg.3
IL_0284: ldarg.1
IL_0285: ldfld System.Single PropInfo::m_lodRenderDistance
IL_028A: callvirt System.Boolean
CameraInfo::CheckRenderDistance(UnityEngine.Vector3 point, System.Single
maxDistance)
IL_028F: brfalse => Label17
IL_0294: Label16
IL_0294: ldloca.s 13 (UnityEngine.Matrix4x4)
IL_0296: initobj UnityEngine.Matrix4x4
IL_029C: ldloca.s 13 (UnityEngine.Matrix4x4)
IL_029E: ldarg.3
IL_029F: ldarg.s 5
IL_02A1: ldc.r4 57.29578
IL_02A6: mul
IL_02A7: call static UnityEngine.Vector3 UnityEngine.Vector3::get_down()
IL_02AC: call static UnityEngine.Quaternion
UnityEngine.Quaternion::AngleAxis(System.Single angle, UnityEngine.Vector3 axis)
IL_02B1: ldarg.s 4
IL_02B3: ldarg.s 4
IL_02B5: ldarg.s 4
IL_02B7: newobj System.Void UnityEngine.Vector3::.ctor(System.Single x,
System.Single y, System.Single z)
IL_02BC: call System.Void UnityEngine.Matrix4x4::SetTRS(UnityEngine.Vector3
pos, UnityEngine.Quaternion q, UnityEngine.Vector3 s)
IL_02C1: call static PropManager
ColossalFramework.Singleton`1<PropManager>::get_instance()
IL_02C6: stloc.s 14 (PropManager)
IL_02C8: ldloc.s 14 (PropManager)
IL_02CA: ldfld UnityEngine.MaterialPropertyBlock PropManager::m_materialBlock
IL_02CF: stloc.s 15 (UnityEngine.MaterialPropertyBlock)
IL_02D1: ldloc.s 15 (UnityEngine.MaterialPropertyBlock)
IL_02D3: callvirt System.Void UnityEngine.MaterialPropertyBlock::Clear()
IL_02D8: ldloc.s 15 (UnityEngine.MaterialPropertyBlock)
IL_02DA: ldloc.s 14 (PropManager)
IL_02DC: ldfld System.Int32 PropManager::ID_Color
IL_02E1: ldarg.s 6
IL_02E3: callvirt System.Void
UnityEngine.MaterialPropertyBlock::SetColor(System.Int32 nameID, UnityEngine.Color
value)
IL_02E8: ldloc.s 15 (UnityEngine.MaterialPropertyBlock)
IL_02EA: ldloc.s 14 (PropManager)
IL_02EC: ldfld System.Int32 PropManager::ID_ObjectIndex
IL_02F1: ldarg.s 7
IL_02F3: callvirt System.Void
UnityEngine.MaterialPropertyBlock::SetVector(System.Int32 nameID,
UnityEngine.Vector4 value)
IL_02F8: ldarg.1
IL_02F9: ldfld UnityEngine.Vector4[] PropInfo::m_rollLocation
IL_02FE: brfalse => Label18
IL_0303: ldarg.1
IL_0304: ldfld UnityEngine.Material PropInfo::m_material
IL_0309: ldloc.s 14 (PropManager)
IL_030B: ldfld System.Int32 PropManager::ID_RollLocation
IL_0310: ldarg.1
IL_0311: ldfld UnityEngine.Vector4[] PropInfo::m_rollLocation
IL_0316: callvirt System.Void UnityEngine.Material::SetVectorArray(System.Int32
nameID, UnityEngine.Vector4[] values)
IL_031B: ldarg.1
IL_031C: ldfld UnityEngine.Material PropInfo::m_material
IL_0321: ldloc.s 14 (PropManager)
IL_0323: ldfld System.Int32 PropManager::ID_RollParams
IL_0328: ldarg.1
IL_0329: ldfld UnityEngine.Vector4[] PropInfo::m_rollParams
IL_032E: callvirt System.Void UnityEngine.Material::SetVectorArray(System.Int32
nameID, UnityEngine.Vector4[] values)
IL_0333: Label18
IL_0333: ldloc.s 14 (PropManager)
IL_0335: ldflda DrawCallData SimulationManagerBase`2<PropManager,
PropProperties>::m_drawCallData
IL_033A: dup
IL_033B: ldfld System.Int32 DrawCallData::m_defaultCalls
IL_0340: ldc.i4.1
IL_0341: add
IL_0342: stfld System.Int32 DrawCallData::m_defaultCalls
IL_0347: ldarg.1
IL_0348: ldfld UnityEngine.Mesh PropInfo::m_mesh
IL_034D: ldloc.s 13 (UnityEngine.Matrix4x4)
IL_034F: ldarg.1
IL_0350: ldfld UnityEngine.Material PropInfo::m_material
IL_0355: ldarg.1
IL_0356: ldfld System.Int32 PrefabInfo::m_prefabDataLayer
IL_035B: ldnull
IL_035C: ldc.i4.0
IL_035D: ldloc.s 15 (UnityEngine.MaterialPropertyBlock)
IL_035F: call static System.Void
UnityEngine.Graphics::DrawMesh(UnityEngine.Mesh mesh, UnityEngine.Matrix4x4 matrix,
UnityEngine.Material material, System.Int32 layer, UnityEngine.Camera camera,
System.Int32 submeshIndex, UnityEngine.MaterialPropertyBlock properties)
IL_0364: br => Label19
IL_0369: Label17
IL_0369: ldarg.1
IL_036A: ldfld UnityEngine.Material PropInfo::m_lodMaterialCombined
IL_036F: ldnull
IL_0370: call static System.Boolean
UnityEngine.Object::op_Equality(UnityEngine.Object x, UnityEngine.Object y)
IL_0375: brfalse => Label20
IL_037A: ldloca.s 16 (UnityEngine.Matrix4x4)
IL_037C: initobj UnityEngine.Matrix4x4
IL_0382: ldloca.s 16 (UnityEngine.Matrix4x4)
IL_0384: ldarg.3
IL_0385: ldarg.s 5
IL_0387: ldc.r4 57.29578
IL_038C: mul
IL_038D: call static UnityEngine.Vector3 UnityEngine.Vector3::get_down()
IL_0392: call static UnityEngine.Quaternion
UnityEngine.Quaternion::AngleAxis(System.Single angle, UnityEngine.Vector3 axis)
IL_0397: ldarg.s 4
IL_0399: ldarg.s 4
IL_039B: ldarg.s 4
IL_039D: newobj System.Void UnityEngine.Vector3::.ctor(System.Single x,
System.Single y, System.Single z)
IL_03A2: call System.Void UnityEngine.Matrix4x4::SetTRS(UnityEngine.Vector3
pos, UnityEngine.Quaternion q, UnityEngine.Vector3 s)
IL_03A7: call static PropManager
ColossalFramework.Singleton`1<PropManager>::get_instance()
IL_03AC: stloc.s 17 (PropManager)
IL_03AE: ldloc.s 17 (PropManager)
IL_03B0: ldfld UnityEngine.MaterialPropertyBlock PropManager::m_materialBlock
IL_03B5: stloc.s 18 (UnityEngine.MaterialPropertyBlock)
IL_03B7: ldloc.s 18 (UnityEngine.MaterialPropertyBlock)
IL_03B9: callvirt System.Void UnityEngine.MaterialPropertyBlock::Clear()
IL_03BE: ldloc.s 18 (UnityEngine.MaterialPropertyBlock)
IL_03C0: ldloc.s 17 (PropManager)
IL_03C2: ldfld System.Int32 PropManager::ID_Color
IL_03C7: ldarg.s 6
IL_03C9: callvirt System.Void
UnityEngine.MaterialPropertyBlock::SetColor(System.Int32 nameID, UnityEngine.Color
value)
IL_03CE: ldloc.s 18 (UnityEngine.MaterialPropertyBlock)
IL_03D0: ldloc.s 17 (PropManager)
IL_03D2: ldfld System.Int32 PropManager::ID_ObjectIndex
IL_03D7: ldarg.s 7
IL_03D9: callvirt System.Void
UnityEngine.MaterialPropertyBlock::SetVector(System.Int32 nameID,
UnityEngine.Vector4 value)
IL_03DE: ldarg.1
IL_03DF: ldfld UnityEngine.Vector4[] PropInfo::m_rollLocation
IL_03E4: brfalse => Label21
IL_03E9: ldarg.1
IL_03EA: ldfld UnityEngine.Material PropInfo::m_material
IL_03EF: ldloc.s 17 (PropManager)
IL_03F1: ldfld System.Int32 PropManager::ID_RollLocation
IL_03F6: ldarg.1
IL_03F7: ldfld UnityEngine.Vector4[] PropInfo::m_rollLocation
IL_03FC: callvirt System.Void UnityEngine.Material::SetVectorArray(System.Int32
nameID, UnityEngine.Vector4[] values)
IL_0401: ldarg.1
IL_0402: ldfld UnityEngine.Material PropInfo::m_material
IL_0407: ldloc.s 17 (PropManager)
IL_0409: ldfld System.Int32 PropManager::ID_RollParams
IL_040E: ldarg.1
IL_040F: ldfld UnityEngine.Vector4[] PropInfo::m_rollParams
IL_0414: callvirt System.Void UnityEngine.Material::SetVectorArray(System.Int32
nameID, UnityEngine.Vector4[] values)
IL_0419: Label21
IL_0419: ldloc.s 17 (PropManager)
IL_041B: ldflda DrawCallData SimulationManagerBase`2<PropManager,
PropProperties>::m_drawCallData
IL_0420: dup
IL_0421: ldfld System.Int32 DrawCallData::m_defaultCalls
IL_0426: ldc.i4.1
IL_0427: add
IL_0428: stfld System.Int32 DrawCallData::m_defaultCalls
IL_042D: ldarg.1
IL_042E: ldfld UnityEngine.Mesh PropInfo::m_lodMesh
IL_0433: ldloc.s 16 (UnityEngine.Matrix4x4)
IL_0435: ldarg.1
IL_0436: ldfld UnityEngine.Material PropInfo::m_lodMaterial
IL_043B: ldarg.1
IL_043C: ldfld System.Int32 PrefabInfo::m_prefabDataLayer
IL_0441: ldnull
IL_0442: ldc.i4.0
IL_0443: ldloc.s 18 (UnityEngine.MaterialPropertyBlock)
IL_0445: call static System.Void
UnityEngine.Graphics::DrawMesh(UnityEngine.Mesh mesh, UnityEngine.Matrix4x4 matrix,
UnityEngine.Material material, System.Int32 layer, UnityEngine.Camera camera,
System.Int32 submeshIndex, UnityEngine.MaterialPropertyBlock properties)
IL_044A: br => Label22
IL_044F: Label20
IL_044F: ldarga.s 7
IL_0451: ldarg.s 4
IL_0453: stfld System.Single UnityEngine.Vector4::w
IL_0458: ldarg.1
IL_0459: ldfld UnityEngine.Vector4[] PropInfo::m_lodLocations
IL_045E: ldarg.1
IL_045F: ldfld System.Int32 PropInfo::m_lodCount
IL_0464: ldelema UnityEngine.Vector4
IL_0469: ldarga.s 3
IL_046B: ldfld System.Single UnityEngine.Vector3::x
IL_0470: ldarga.s 3
IL_0472: ldfld System.Single UnityEngine.Vector3::y
IL_0477: ldarga.s 3
IL_0479: ldfld System.Single UnityEngine.Vector3::z
IL_047E: ldarg.s 5
IL_0480: newobj System.Void UnityEngine.Vector4::.ctor(System.Single x,
System.Single y, System.Single z, System.Single w)
IL_0485: stobj UnityEngine.Vector4
IL_048A: ldarg.1
IL_048B: ldfld UnityEngine.Vector4[] PropInfo::m_lodObjectIndices
IL_0490: ldarg.1
IL_0491: ldfld System.Int32 PropInfo::m_lodCount
IL_0496: ldelema UnityEngine.Vector4
IL_049B: ldarg.s 7
IL_049D: stobj UnityEngine.Vector4
IL_04A2: ldarg.1
IL_04A3: ldfld UnityEngine.Vector4[] PropInfo::m_lodColors
IL_04A8: ldarg.1
IL_04A9: ldfld System.Int32 PropInfo::m_lodCount
IL_04AE: ldelema UnityEngine.Vector4
IL_04B3: ldarga.s 6
IL_04B5: call UnityEngine.Color UnityEngine.Color::get_linear()
IL_04BA: call static UnityEngine.Vector4
UnityEngine.Color::op_Implicit(UnityEngine.Color c)
IL_04BF: stobj UnityEngine.Vector4
IL_04C4: ldarg.1
IL_04C5: ldarg.1
IL_04C6: ldfld UnityEngine.Vector3 PropInfo::m_lodMin
IL_04CB: ldarg.3
IL_04CC: call static UnityEngine.Vector3
UnityEngine.Vector3::Min(UnityEngine.Vector3 lhs, UnityEngine.Vector3 rhs)
IL_04D1: stfld UnityEngine.Vector3 PropInfo::m_lodMin
IL_04D6: ldarg.1
IL_04D7: ldarg.1
IL_04D8: ldfld UnityEngine.Vector3 PropInfo::m_lodMax
IL_04DD: ldarg.3
IL_04DE: call static UnityEngine.Vector3
UnityEngine.Vector3::Max(UnityEngine.Vector3 lhs, UnityEngine.Vector3 rhs)
IL_04E3: stfld UnityEngine.Vector3 PropInfo::m_lodMax
IL_04E8: ldarg.1
IL_04E9: dup
IL_04EA: ldfld System.Int32 PropInfo::m_lodCount
IL_04EF: ldc.i4.1
IL_04F0: add
IL_04F1: dup
IL_04F2: stloc.s 19 (System.Int32)
IL_04F4: stfld System.Int32 PropInfo::m_lodCount
IL_04F9: ldloc.s 19 (System.Int32)
IL_04FB: ldarg.1
IL_04FC: ldfld UnityEngine.Vector4[] PropInfo::m_lodLocations
IL_0501: ldlen
IL_0502: conv.i4
IL_0503: bne.un => Label23
IL_0508: ldarg.0
IL_0509: ldarg.1
IL_050A: call static System.Void PropInstance::RenderLod(CameraInfo
cameraInfo, PropInfo info)
IL_050F: // end original
IL_050F: Label0
IL_050F: Label6
IL_050F: Label7
IL_050F: Label19
IL_050F: Label22
IL_050F: Label23
IL_050F: ret
DONE

### Patch: virtual System.Void LightEffect::PopulateGroupData(System.Int32 layer,


InstanceID id, UnityEngine.Vector3 pos, UnityEngine.Vector3 dir, 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
LightEffect::LightEffect.PopulateGroupData_Patch0(LightEffect this, System.Int32
layer, InstanceID id, UnityEngine.Vector3 pos, UnityEngine.Vector3 dir,
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.Boolean
IL_0000: Local var 1: UnityEngine.Vector3
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.Quaternion
IL_0000: Local var 7: UnityEngine.Vector4
IL_0000: Local var 8: UnityEngine.Vector2
IL_0000: Local var 9: ColossalFramework.Math.Randomizer
IL_0000: Local var 10: UnityEngine.Vector2
IL_0000: Local var 11: UnityEngine.Vector2
IL_0000: Local var 12: UnityEngine.Vector2
IL_0000: Local var 13: System.UInt16
IL_0000: Local var 14: UnityEngine.Vector3
IL_0000: Local var 15: UnityEngine.Color
IL_0000: Local var 16: UnityEngine.Color
IL_0000: Local var 17: System.Single
IL_0000: Local var 18: System.Single
IL_0000: Local var 19: System.Int32
IL_0000: // start original
IL_0000: ldarg.1
IL_0001: ldarg.0
IL_0002: ldfld System.Int32 LightEffect::m_groupLayer
IL_0007: beq => Label0
IL_000C: ldarg.1
IL_000D: ldarg.0
IL_000E: ldfld System.Int32 LightEffect::m_groupLayerFloating
IL_0013: bne.un => Label1
IL_0018: Label0
IL_0018: ldarg.1
IL_0019: ldarg.0
IL_001A: ldfld System.Int32 LightEffect::m_groupLayerFloating
IL_001F: ceq
IL_0021: stloc.0
IL_0022: ldloca.s 1 (UnityEngine.Vector3)
IL_0024: ldarg.0
IL_0025: ldfld System.Single LightEffect::m_lightRange
IL_002A: ldarg.0
IL_002B: ldfld System.Single LightEffect::m_lightRange
IL_0030: ldarg.0
IL_0031: ldfld System.Single LightEffect::m_lightRange
IL_0036: call System.Void UnityEngine.Vector3::.ctor(System.Single x,
System.Single y, System.Single z)
IL_003B: ldarg.3
IL_003C: ldloc.1
IL_003D: call static UnityEngine.Vector3
UnityEngine.Vector3::op_Subtraction(UnityEngine.Vector3 a, UnityEngine.Vector3 b)
IL_0042: stloc.2
IL_0043: ldarg.3
IL_0044: ldloc.1
IL_0045: call static UnityEngine.Vector3
UnityEngine.Vector3::op_Addition(UnityEngine.Vector3 a, UnityEngine.Vector3 b)
IL_004A: stloc.3
IL_004B: ldarg.s 9
IL_004D: ldarg.s 9
IL_004F: ldobj UnityEngine.Vector3
IL_0054: ldloc.2
IL_0055: call static UnityEngine.Vector3
UnityEngine.Vector3::Min(UnityEngine.Vector3 lhs, UnityEngine.Vector3 rhs)
IL_005A: stobj UnityEngine.Vector3
IL_005F: ldarg.s 10
IL_0061: ldarg.s 10
IL_0063: ldobj UnityEngine.Vector3
IL_0068: ldloc.3
IL_0069: call static UnityEngine.Vector3
UnityEngine.Vector3::Max(UnityEngine.Vector3 lhs, UnityEngine.Vector3 rhs)
IL_006E: stobj UnityEngine.Vector3
IL_0073: ldarg.3
IL_0074: ldarg.s 7
IL_0076: call static UnityEngine.Vector3
UnityEngine.Vector3::op_Subtraction(UnityEngine.Vector3 a, UnityEngine.Vector3 b)
IL_007B: stloc.s 4 (UnityEngine.Vector3)
IL_007D: ldarg.s 11
IL_007F: ldarg.s 11
IL_0081: ldind.r4
IL_0082: ldc.r4 30000
IL_0087: call static System.Single UnityEngine.Mathf::Max(System.Single a,
System.Single b)
IL_008C: stind.r4
IL_008D: ldarg.0
IL_008E: ldfld UnityEngine.LightType LightEffect::m_lightType
IL_0093: brtrue => Label2
IL_0098: ldarg.s 4
IL_009A: call static UnityEngine.Quaternion
UnityEngine.Quaternion::LookRotation(UnityEngine.Vector3 forward)
IL_009F: stloc.s 6 (UnityEngine.Quaternion)
IL_00A1: ldloc.s 6 (UnityEngine.Quaternion)
IL_00A3: ldarg.0
IL_00A4: ldfld UnityEngine.Quaternion LightEffect::m_lightRotation
IL_00A9: call static UnityEngine.Vector3 UnityEngine.Vector3::get_forward()
IL_00AE: call static UnityEngine.Vector3
UnityEngine.Quaternion::op_Multiply(UnityEngine.Quaternion rotation,
UnityEngine.Vector3 point)
IL_00B3: call static UnityEngine.Vector3
UnityEngine.Quaternion::op_Multiply(UnityEngine.Quaternion rotation,
UnityEngine.Vector3 point)
IL_00B8: stloc.s 5 (UnityEngine.Vector3)
IL_00BA: br => Label3
IL_00BF: Label2
IL_00BF: call static UnityEngine.Vector3 UnityEngine.Vector3::get_forward()
IL_00C4: stloc.s 5 (UnityEngine.Vector3)
IL_00C6: Label3
IL_00C6: ldloca.s 7 (UnityEngine.Vector4)
IL_00C8: ldloca.s 5 (UnityEngine.Vector3)
IL_00CA: ldfld System.Single UnityEngine.Vector3::x
IL_00CF: ldloca.s 5 (UnityEngine.Vector3)
IL_00D1: ldfld System.Single UnityEngine.Vector3::y
IL_00D6: ldloca.s 5 (UnityEngine.Vector3)
IL_00D8: ldfld System.Single UnityEngine.Vector3::z
IL_00DD: ldc.r4 100000
IL_00E2: call System.Void UnityEngine.Vector4::.ctor(System.Single x,
System.Single y, System.Single z, System.Single w)
IL_00E7: ldarg.0
IL_00E8: ldfld UnityEngine.LightType LightEffect::m_lightType
IL_00ED: brtrue => Label4
IL_00F2: ldloca.s 7 (UnityEngine.Vector4)
IL_00F4: ldc.r4 0.01745329
IL_00F9: ldarg.0
IL_00FA: ldfld System.Single LightEffect::m_lightSpotAngle
IL_00FF: mul
IL_0100: ldc.r4 0.5
IL_0105: mul
IL_0106: call static System.Single UnityEngine.Mathf::Cos(System.Single f)
IL_010B: neg
IL_010C: stfld System.Single UnityEngine.Vector4::w
IL_0111: Label4
IL_0111: ldloca.s 8 (UnityEngine.Vector2)
IL_0113: ldc.r4 1
IL_0118: ldarg.0
IL_0119: ldfld System.Single LightEffect::m_lightRange
IL_011E: ldarg.0
IL_011F: ldfld System.Single LightEffect::m_lightRange
IL_0124: mul
IL_0125: div
IL_0126: ldarg.0
IL_0127: ldfld System.Single LightEffect::m_lightIntensity
IL_012C: call System.Void UnityEngine.Vector2::.ctor(System.Single x,
System.Single y)
IL_0131: ldloca.s 9 (ColossalFramework.Math.Randomizer)
IL_0133: ldarga.s 2
IL_0135: call System.UInt32 InstanceID::get_Index()
IL_013A: call System.Void
ColossalFramework.Math.Randomizer::.ctor(System.UInt32 _seed)
IL_013F: ldloca.s 10 (UnityEngine.Vector2)
IL_0141: ldarg.0
IL_0142: ldflda UnityEngine.Vector2 LightEffect::m_offRange
IL_0147: ldfld System.Single UnityEngine.Vector2::x
IL_014C: ldloca.s 9 (ColossalFramework.Math.Randomizer)
IL_014E: ldc.i4 100000
IL_0153: call System.Int32
ColossalFramework.Math.Randomizer::Int32(System.UInt32 range)
IL_0158: conv.r4
IL_0159: ldc.r4 1E-05
IL_015E: mul
IL_015F: ldarg.0
IL_0160: ldflda UnityEngine.Vector2 LightEffect::m_offRange
IL_0165: ldfld System.Single UnityEngine.Vector2::y
IL_016A: ldarg.0
IL_016B: ldflda UnityEngine.Vector2 LightEffect::m_offRange
IL_0170: ldfld System.Single UnityEngine.Vector2::x
IL_0175: sub
IL_0176: mul
IL_0177: add
IL_0178: stfld System.Single UnityEngine.Vector2::x
IL_017D: ldloca.s 10 (UnityEngine.Vector2)
IL_017F: ldarg.0
IL_0180: ldfld BlinkType LightEffect::m_blinkType
IL_0185: conv.r4
IL_0186: stfld System.Single UnityEngine.Vector2::y
IL_018B: ldarg.2
IL_018C: call static System.UInt16 EffectInfo::GetBuilding(InstanceID id)
IL_0191: stloc.s 13 (System.UInt16)
IL_0193: ldloc.s 13 (System.UInt16)
IL_0195: brfalse => Label5
IL_019A: ldloc.s 13 (System.UInt16)
IL_019C: call static UnityEngine.Vector4
RenderManager::GetColorLocation(System.UInt32 instanceHolder)
IL_01A1: call static UnityEngine.Vector2
UnityEngine.Vector4::op_Implicit(UnityEngine.Vector4 v)
IL_01A6: stloc.s 11 (UnityEngine.Vector2)
IL_01A8: ldloc.0
IL_01A9: brfalse => Label6
IL_01AE: call static BuildingManager
ColossalFramework.Singleton`1<BuildingManager>::get_instance()
IL_01B3: ldfld Array16`1<Building> BuildingManager::m_buildings
IL_01B8: ldfld Building[] Array16`1<Building>::m_buffer
IL_01BD: ldloc.s 13 (System.UInt16)
IL_01BF: ldelema Building
IL_01C4: call UnityEngine.Vector3 Building::CalculateMeshPosition()
IL_01C9: stloc.s 14 (UnityEngine.Vector3)
IL_01CB: ldloc.s 14 (UnityEngine.Vector3)
IL_01CD: call static UnityEngine.Vector2
ColossalFramework.Math.VectorUtils::XZ(UnityEngine.Vector3 v)
IL_01D2: stloc.s 12 (UnityEngine.Vector2)
IL_01D4: ldarga.s 3
IL_01D6: dup
IL_01D7: ldfld System.Single UnityEngine.Vector3::y
IL_01DC: ldloca.s 14 (UnityEngine.Vector3)
IL_01DE: ldfld System.Single UnityEngine.Vector3::y
IL_01E3: sub
IL_01E4: stfld System.Single UnityEngine.Vector3::y
IL_01E9: ldloca.s 4 (UnityEngine.Vector3)
IL_01EB: dup
IL_01EC: ldfld System.Single UnityEngine.Vector3::y
IL_01F1: ldloca.s 14 (UnityEngine.Vector3)
IL_01F3: ldfld System.Single UnityEngine.Vector3::y
IL_01F8: sub
IL_01F9: stfld System.Single UnityEngine.Vector3::y
IL_01FE: br => Label7
IL_0203: Label6
IL_0203: call static UnityEngine.Vector2 UnityEngine.Vector2::get_zero()
IL_0208: stloc.s 12 (UnityEngine.Vector2)
IL_020A: Label7
IL_020A: br => Label8
IL_020F: Label5
IL_020F: ldsfld UnityEngine.Vector4 RenderManager::DefaultColorLocation
IL_0214: call static UnityEngine.Vector2
UnityEngine.Vector4::op_Implicit(UnityEngine.Vector4 v)
IL_0219: stloc.s 11 (UnityEngine.Vector2)
IL_021B: call static UnityEngine.Vector2 UnityEngine.Vector2::get_zero()
IL_0220: stloc.s 12 (UnityEngine.Vector2)
IL_0222: Label8
IL_0222: ldarg.0
IL_0223: ldfld UnityEngine.Color LightEffect::m_lightColor
IL_0228: stloc.s 15 (UnityEngine.Color)
IL_022A: ldarg.0
IL_022B: ldfld UnityEngine.Color[] LightEffect::m_variationColors
IL_0230: brfalse => Label9
IL_0235: ldarg.0
IL_0236: ldfld UnityEngine.Color[] LightEffect::m_variationColors
IL_023B: ldlen
IL_023C: conv.i4
IL_023D: brfalse => Label10
IL_0242: ldarg.0
IL_0243: ldfld UnityEngine.Color[] LightEffect::m_variationColors
IL_0248: ldloca.s 9 (ColossalFramework.Math.Randomizer)
IL_024A: ldarg.0
IL_024B: ldfld UnityEngine.Color[] LightEffect::m_variationColors
IL_0250: ldlen
IL_0251: conv.i4
IL_0252: call System.Int32
ColossalFramework.Math.Randomizer::Int32(System.UInt32 range)
IL_0257: ldelema UnityEngine.Color
IL_025C: ldobj UnityEngine.Color
IL_0261: stloc.s 16 (UnityEngine.Color)
IL_0263: ldloc.s 15 (UnityEngine.Color)
IL_0265: ldloc.s 16 (UnityEngine.Color)
IL_0267: ldloca.s 9 (ColossalFramework.Math.Randomizer)
IL_0269: ldc.i4 1000
IL_026E: call System.Int32
ColossalFramework.Math.Randomizer::Int32(System.UInt32 range)
IL_0273: conv.r4
IL_0274: ldc.r4 0.001
IL_0279: mul
IL_027A: call static UnityEngine.Color
UnityEngine.Color::Lerp(UnityEngine.Color a, UnityEngine.Color b, System.Single t)
IL_027F: stloc.s 15 (UnityEngine.Color)
IL_0281: Label9
IL_0281: Label10
IL_0281: ldloca.s 15 (UnityEngine.Color)
IL_0283: call UnityEngine.Color UnityEngine.Color::get_linear()
IL_0288: stloc.s 15 (UnityEngine.Color)
IL_028A: ldloca.s 15 (UnityEngine.Color)
IL_028C: ldarg.0
IL_028D: ldfld UnityEngine.LightType LightEffect::m_lightType
IL_0292: brtrue => Label11
IL_0297: ldarg.0
IL_0298: ldfld System.Single LightEffect::m_spotLeaking
IL_029D: br => Label12
IL_02A2: Label11
IL_02A2: ldc.r4 0
IL_02A7: Label12
IL_02A7: stfld System.Single UnityEngine.Color::a
IL_02AC: ldarg.0
IL_02AD: ldfld System.Single LightEffect::m_lightRange
IL_02B2: ldc.r4 0.5235988
IL_02B7: call static System.Single UnityEngine.Mathf::Cos(System.Single f)
IL_02BC: div
IL_02BD: stloc.s 17 (System.Single)
IL_02BF: ldloc.s 17 (System.Single)
IL_02C1: ldc.r4 0.5
IL_02C6: mul
IL_02C7: stloc.s 18 (System.Single)
IL_02C9: ldarg.s 8
IL_02CB: ldfld UnityEngine.Vector3[] MeshData::m_vertices
IL_02D0: ldarg.s 5
IL_02D2: ldind.i4
IL_02D3: ldelema UnityEngine.Vector3
IL_02D8: ldloca.s 4 (UnityEngine.Vector3)
IL_02DA: ldfld System.Single UnityEngine.Vector3::x
IL_02DF: ldloc.s 18 (System.Single)
IL_02E1: sub
IL_02E2: ldloca.s 4 (UnityEngine.Vector3)
IL_02E4: ldfld System.Single UnityEngine.Vector3::y
IL_02E9: ldarg.0
IL_02EA: ldfld System.Single LightEffect::m_lightRange
IL_02EF: add
IL_02F0: ldloca.s 4 (UnityEngine.Vector3)
IL_02F2: ldfld System.Single UnityEngine.Vector3::z
IL_02F7: ldarg.0
IL_02F8: ldfld System.Single LightEffect::m_lightRange
IL_02FD: add
IL_02FE: newobj System.Void UnityEngine.Vector3::.ctor(System.Single x,
System.Single y, System.Single z)
IL_0303: stobj UnityEngine.Vector3
IL_0308: ldarg.s 8
IL_030A: ldfld UnityEngine.Vector3[] MeshData::m_normals
IL_030F: ldarg.s 5
IL_0311: ldind.i4
IL_0312: ldelema UnityEngine.Vector3
IL_0317: ldarg.3
IL_0318: stobj UnityEngine.Vector3
IL_031D: ldarg.s 8
IL_031F: ldfld UnityEngine.Vector4[] MeshData::m_tangents
IL_0324: ldarg.s 5
IL_0326: ldind.i4
IL_0327: ldelema UnityEngine.Vector4
IL_032C: ldloc.s 7 (UnityEngine.Vector4)
IL_032E: stobj UnityEngine.Vector4
IL_0333: ldarg.s 8
IL_0335: ldfld UnityEngine.Vector2[] MeshData::m_uvs
IL_033A: ldarg.s 5
IL_033C: ldind.i4
IL_033D: ldelema UnityEngine.Vector2
IL_0342: ldloc.s 8 (UnityEngine.Vector2)
IL_0344: stobj UnityEngine.Vector2
IL_0349: ldarg.s 8
IL_034B: ldfld UnityEngine.Vector2[] MeshData::m_uvs2
IL_0350: ldarg.s 5
IL_0352: ldind.i4
IL_0353: ldelema UnityEngine.Vector2
IL_0358: ldloc.s 10 (UnityEngine.Vector2)
IL_035A: stobj UnityEngine.Vector2
IL_035F: ldarg.s 8
IL_0361: ldfld UnityEngine.Vector2[] MeshData::m_uvs3
IL_0366: ldarg.s 5
IL_0368: ldind.i4
IL_0369: ldelema UnityEngine.Vector2
IL_036E: ldloc.s 11 (UnityEngine.Vector2)
IL_0370: stobj UnityEngine.Vector2
IL_0375: ldloc.0
IL_0376: brfalse => Label13
IL_037B: ldarg.s 8
IL_037D: ldfld UnityEngine.Vector2[] MeshData::m_uvs4
IL_0382: ldarg.s 5
IL_0384: ldind.i4
IL_0385: ldelema UnityEngine.Vector2
IL_038A: ldloc.s 12 (UnityEngine.Vector2)
IL_038C: stobj UnityEngine.Vector2
IL_0391: Label13
IL_0391: ldarg.s 8
IL_0393: ldfld UnityEngine.Color32[] MeshData::m_colors
IL_0398: ldarg.s 5
IL_039A: ldind.i4
IL_039B: ldelema UnityEngine.Color32
IL_03A0: ldloc.s 15 (UnityEngine.Color)
IL_03A2: call static UnityEngine.Color32
UnityEngine.Color32::op_Implicit(UnityEngine.Color c)
IL_03A7: stobj UnityEngine.Color32
IL_03AC: ldarg.s 5
IL_03AE: ldarg.s 5
IL_03B0: ldind.i4
IL_03B1: ldc.i4.1
IL_03B2: add
IL_03B3: stind.i4
IL_03B4: ldarg.s 8
IL_03B6: ldfld UnityEngine.Vector3[] MeshData::m_vertices
IL_03BB: ldarg.s 5
IL_03BD: ldind.i4
IL_03BE: ldelema UnityEngine.Vector3
IL_03C3: ldloca.s 4 (UnityEngine.Vector3)
IL_03C5: ldfld System.Single UnityEngine.Vector3::x
IL_03CA: ldloc.s 18 (System.Single)
IL_03CC: add
IL_03CD: ldloca.s 4 (UnityEngine.Vector3)
IL_03CF: ldfld System.Single UnityEngine.Vector3::y
IL_03D4: ldarg.0
IL_03D5: ldfld System.Single LightEffect::m_lightRange
IL_03DA: add
IL_03DB: ldloca.s 4 (UnityEngine.Vector3)
IL_03DD: ldfld System.Single UnityEngine.Vector3::z
IL_03E2: ldarg.0
IL_03E3: ldfld System.Single LightEffect::m_lightRange
IL_03E8: add
IL_03E9: newobj System.Void UnityEngine.Vector3::.ctor(System.Single x,
System.Single y, System.Single z)
IL_03EE: stobj UnityEngine.Vector3
IL_03F3: ldarg.s 8
IL_03F5: ldfld UnityEngine.Vector3[] MeshData::m_normals
IL_03FA: ldarg.s 5
IL_03FC: ldind.i4
IL_03FD: ldelema UnityEngine.Vector3
IL_0402: ldarg.3
IL_0403: stobj UnityEngine.Vector3
IL_0408: ldarg.s 8
IL_040A: ldfld UnityEngine.Vector4[] MeshData::m_tangents
IL_040F: ldarg.s 5
IL_0411: ldind.i4
IL_0412: ldelema UnityEngine.Vector4
IL_0417: ldloc.s 7 (UnityEngine.Vector4)
IL_0419: stobj UnityEngine.Vector4
IL_041E: ldarg.s 8
IL_0420: ldfld UnityEngine.Vector2[] MeshData::m_uvs
IL_0425: ldarg.s 5
IL_0427: ldind.i4
IL_0428: ldelema UnityEngine.Vector2
IL_042D: ldloc.s 8 (UnityEngine.Vector2)
IL_042F: stobj UnityEngine.Vector2
IL_0434: ldarg.s 8
IL_0436: ldfld UnityEngine.Vector2[] MeshData::m_uvs2
IL_043B: ldarg.s 5
IL_043D: ldind.i4
IL_043E: ldelema UnityEngine.Vector2
IL_0443: ldloc.s 10 (UnityEngine.Vector2)
IL_0445: stobj UnityEngine.Vector2
IL_044A: ldarg.s 8
IL_044C: ldfld UnityEngine.Vector2[] MeshData::m_uvs3
IL_0451: ldarg.s 5
IL_0453: ldind.i4
IL_0454: ldelema UnityEngine.Vector2
IL_0459: ldloc.s 11 (UnityEngine.Vector2)
IL_045B: stobj UnityEngine.Vector2
IL_0460: ldloc.0
IL_0461: brfalse => Label14
IL_0466: ldarg.s 8
IL_0468: ldfld UnityEngine.Vector2[] MeshData::m_uvs4
IL_046D: ldarg.s 5
IL_046F: ldind.i4
IL_0470: ldelema UnityEngine.Vector2
IL_0475: ldloc.s 12 (UnityEngine.Vector2)
IL_0477: stobj UnityEngine.Vector2
IL_047C: Label14
IL_047C: ldarg.s 8
IL_047E: ldfld UnityEngine.Color32[] MeshData::m_colors
IL_0483: ldarg.s 5
IL_0485: ldind.i4
IL_0486: ldelema UnityEngine.Color32
IL_048B: ldloc.s 15 (UnityEngine.Color)
IL_048D: call static UnityEngine.Color32
UnityEngine.Color32::op_Implicit(UnityEngine.Color c)
IL_0492: stobj UnityEngine.Color32
IL_0497: ldarg.s 5
IL_0499: ldarg.s 5
IL_049B: ldind.i4
IL_049C: ldc.i4.1
IL_049D: add
IL_049E: stind.i4
IL_049F: ldarg.s 8
IL_04A1: ldfld UnityEngine.Vector3[] MeshData::m_vertices
IL_04A6: ldarg.s 5
IL_04A8: ldind.i4
IL_04A9: ldelema UnityEngine.Vector3
IL_04AE: ldloca.s 4 (UnityEngine.Vector3)
IL_04B0: ldfld System.Single UnityEngine.Vector3::x
IL_04B5: ldloc.s 17 (System.Single)
IL_04B7: add
IL_04B8: ldloca.s 4 (UnityEngine.Vector3)
IL_04BA: ldfld System.Single UnityEngine.Vector3::y
IL_04BF: ldloca.s 4 (UnityEngine.Vector3)
IL_04C1: ldfld System.Single UnityEngine.Vector3::z
IL_04C6: ldarg.0
IL_04C7: ldfld System.Single LightEffect::m_lightRange
IL_04CC: add
IL_04CD: newobj System.Void UnityEngine.Vector3::.ctor(System.Single x,
System.Single y, System.Single z)
IL_04D2: stobj UnityEngine.Vector3
IL_04D7: ldarg.s 8
IL_04D9: ldfld UnityEngine.Vector3[] MeshData::m_normals
IL_04DE: ldarg.s 5
IL_04E0: ldind.i4
IL_04E1: ldelema UnityEngine.Vector3
IL_04E6: ldarg.3
IL_04E7: stobj UnityEngine.Vector3
IL_04EC: ldarg.s 8
IL_04EE: ldfld UnityEngine.Vector4[] MeshData::m_tangents
IL_04F3: ldarg.s 5
IL_04F5: ldind.i4
IL_04F6: ldelema UnityEngine.Vector4
IL_04FB: ldloc.s 7 (UnityEngine.Vector4)
IL_04FD: stobj UnityEngine.Vector4
IL_0502: ldarg.s 8
IL_0504: ldfld UnityEngine.Vector2[] MeshData::m_uvs
IL_0509: ldarg.s 5
IL_050B: ldind.i4
IL_050C: ldelema UnityEngine.Vector2
IL_0511: ldloc.s 8 (UnityEngine.Vector2)
IL_0513: stobj UnityEngine.Vector2
IL_0518: ldarg.s 8
IL_051A: ldfld UnityEngine.Vector2[] MeshData::m_uvs2
IL_051F: ldarg.s 5
IL_0521: ldind.i4
IL_0522: ldelema UnityEngine.Vector2
IL_0527: ldloc.s 10 (UnityEngine.Vector2)
IL_0529: stobj UnityEngine.Vector2
IL_052E: ldarg.s 8
IL_0530: ldfld UnityEngine.Vector2[] MeshData::m_uvs3
IL_0535: ldarg.s 5
IL_0537: ldind.i4
IL_0538: ldelema UnityEngine.Vector2
IL_053D: ldloc.s 11 (UnityEngine.Vector2)
IL_053F: stobj UnityEngine.Vector2
IL_0544: ldloc.0
IL_0545: brfalse => Label15
IL_054A: ldarg.s 8
IL_054C: ldfld UnityEngine.Vector2[] MeshData::m_uvs4
IL_0551: ldarg.s 5
IL_0553: ldind.i4
IL_0554: ldelema UnityEngine.Vector2
IL_0559: ldloc.s 12 (UnityEngine.Vector2)
IL_055B: stobj UnityEngine.Vector2
IL_0560: Label15
IL_0560: ldarg.s 8
IL_0562: ldfld UnityEngine.Color32[] MeshData::m_colors
IL_0567: ldarg.s 5
IL_0569: ldind.i4
IL_056A: ldelema UnityEngine.Color32
IL_056F: ldloc.s 15 (UnityEngine.Color)
IL_0571: call static UnityEngine.Color32
UnityEngine.Color32::op_Implicit(UnityEngine.Color c)
IL_0576: stobj UnityEngine.Color32
IL_057B: ldarg.s 5
IL_057D: ldarg.s 5
IL_057F: ldind.i4
IL_0580: ldc.i4.1
IL_0581: add
IL_0582: stind.i4
IL_0583: ldarg.s 8
IL_0585: ldfld UnityEngine.Vector3[] MeshData::m_vertices
IL_058A: ldarg.s 5
IL_058C: ldind.i4
IL_058D: ldelema UnityEngine.Vector3
IL_0592: ldloca.s 4 (UnityEngine.Vector3)
IL_0594: ldfld System.Single UnityEngine.Vector3::x
IL_0599: ldloc.s 18 (System.Single)
IL_059B: add
IL_059C: ldloca.s 4 (UnityEngine.Vector3)
IL_059E: ldfld System.Single UnityEngine.Vector3::y
IL_05A3: ldarg.0
IL_05A4: ldfld System.Single LightEffect::m_lightRange
IL_05A9: sub
IL_05AA: ldloca.s 4 (UnityEngine.Vector3)
IL_05AC: ldfld System.Single UnityEngine.Vector3::z
IL_05B1: ldarg.0
IL_05B2: ldfld System.Single LightEffect::m_lightRange
IL_05B7: add
IL_05B8: newobj System.Void UnityEngine.Vector3::.ctor(System.Single x,
System.Single y, System.Single z)
IL_05BD: stobj UnityEngine.Vector3
IL_05C2: ldarg.s 8
IL_05C4: ldfld UnityEngine.Vector3[] MeshData::m_normals
IL_05C9: ldarg.s 5
IL_05CB: ldind.i4
IL_05CC: ldelema UnityEngine.Vector3
IL_05D1: ldarg.3
IL_05D2: stobj UnityEngine.Vector3
IL_05D7: ldarg.s 8
IL_05D9: ldfld UnityEngine.Vector4[] MeshData::m_tangents
IL_05DE: ldarg.s 5
IL_05E0: ldind.i4
IL_05E1: ldelema UnityEngine.Vector4
IL_05E6: ldloc.s 7 (UnityEngine.Vector4)
IL_05E8: stobj UnityEngine.Vector4
IL_05ED: ldarg.s 8
IL_05EF: ldfld UnityEngine.Vector2[] MeshData::m_uvs
IL_05F4: ldarg.s 5
IL_05F6: ldind.i4
IL_05F7: ldelema UnityEngine.Vector2
IL_05FC: ldloc.s 8 (UnityEngine.Vector2)
IL_05FE: stobj UnityEngine.Vector2
IL_0603: ldarg.s 8
IL_0605: ldfld UnityEngine.Vector2[] MeshData::m_uvs2
IL_060A: ldarg.s 5
IL_060C: ldind.i4
IL_060D: ldelema UnityEngine.Vector2
IL_0612: ldloc.s 10 (UnityEngine.Vector2)
IL_0614: stobj UnityEngine.Vector2
IL_0619: ldarg.s 8
IL_061B: ldfld UnityEngine.Vector2[] MeshData::m_uvs3
IL_0620: ldarg.s 5
IL_0622: ldind.i4
IL_0623: ldelema UnityEngine.Vector2
IL_0628: ldloc.s 11 (UnityEngine.Vector2)
IL_062A: stobj UnityEngine.Vector2
IL_062F: ldloc.0
IL_0630: brfalse => Label16
IL_0635: ldarg.s 8
IL_0637: ldfld UnityEngine.Vector2[] MeshData::m_uvs4
IL_063C: ldarg.s 5
IL_063E: ldind.i4
IL_063F: ldelema UnityEngine.Vector2
IL_0644: ldloc.s 12 (UnityEngine.Vector2)
IL_0646: stobj UnityEngine.Vector2
IL_064B: Label16
IL_064B: ldarg.s 8
IL_064D: ldfld UnityEngine.Color32[] MeshData::m_colors
IL_0652: ldarg.s 5
IL_0654: ldind.i4
IL_0655: ldelema UnityEngine.Color32
IL_065A: ldloc.s 15 (UnityEngine.Color)
IL_065C: call static UnityEngine.Color32
UnityEngine.Color32::op_Implicit(UnityEngine.Color c)
IL_0661: stobj UnityEngine.Color32
IL_0666: ldarg.s 5
IL_0668: ldarg.s 5
IL_066A: ldind.i4
IL_066B: ldc.i4.1
IL_066C: add
IL_066D: stind.i4
IL_066E: ldarg.s 8
IL_0670: ldfld UnityEngine.Vector3[] MeshData::m_vertices
IL_0675: ldarg.s 5
IL_0677: ldind.i4
IL_0678: ldelema UnityEngine.Vector3
IL_067D: ldloca.s 4 (UnityEngine.Vector3)
IL_067F: ldfld System.Single UnityEngine.Vector3::x
IL_0684: ldloc.s 18 (System.Single)
IL_0686: sub
IL_0687: ldloca.s 4 (UnityEngine.Vector3)
IL_0689: ldfld System.Single UnityEngine.Vector3::y
IL_068E: ldarg.0
IL_068F: ldfld System.Single LightEffect::m_lightRange
IL_0694: sub
IL_0695: ldloca.s 4 (UnityEngine.Vector3)
IL_0697: ldfld System.Single UnityEngine.Vector3::z
IL_069C: ldarg.0
IL_069D: ldfld System.Single LightEffect::m_lightRange
IL_06A2: add
IL_06A3: newobj System.Void UnityEngine.Vector3::.ctor(System.Single x,
System.Single y, System.Single z)
IL_06A8: stobj UnityEngine.Vector3
IL_06AD: ldarg.s 8
IL_06AF: ldfld UnityEngine.Vector3[] MeshData::m_normals
IL_06B4: ldarg.s 5
IL_06B6: ldind.i4
IL_06B7: ldelema UnityEngine.Vector3
IL_06BC: ldarg.3
IL_06BD: stobj UnityEngine.Vector3
IL_06C2: ldarg.s 8
IL_06C4: ldfld UnityEngine.Vector4[] MeshData::m_tangents
IL_06C9: ldarg.s 5
IL_06CB: ldind.i4
IL_06CC: ldelema UnityEngine.Vector4
IL_06D1: ldloc.s 7 (UnityEngine.Vector4)
IL_06D3: stobj UnityEngine.Vector4
IL_06D8: ldarg.s 8
IL_06DA: ldfld UnityEngine.Vector2[] MeshData::m_uvs
IL_06DF: ldarg.s 5
IL_06E1: ldind.i4
IL_06E2: ldelema UnityEngine.Vector2
IL_06E7: ldloc.s 8 (UnityEngine.Vector2)
IL_06E9: stobj UnityEngine.Vector2
IL_06EE: ldarg.s 8
IL_06F0: ldfld UnityEngine.Vector2[] MeshData::m_uvs2
IL_06F5: ldarg.s 5
IL_06F7: ldind.i4
IL_06F8: ldelema UnityEngine.Vector2
IL_06FD: ldloc.s 10 (UnityEngine.Vector2)
IL_06FF: stobj UnityEngine.Vector2
IL_0704: ldarg.s 8
IL_0706: ldfld UnityEngine.Vector2[] MeshData::m_uvs3
IL_070B: ldarg.s 5
IL_070D: ldind.i4
IL_070E: ldelema UnityEngine.Vector2
IL_0713: ldloc.s 11 (UnityEngine.Vector2)
IL_0715: stobj UnityEngine.Vector2
IL_071A: ldloc.0
IL_071B: brfalse => Label17
IL_0720: ldarg.s 8
IL_0722: ldfld UnityEngine.Vector2[] MeshData::m_uvs4
IL_0727: ldarg.s 5
IL_0729: ldind.i4
IL_072A: ldelema UnityEngine.Vector2
IL_072F: ldloc.s 12 (UnityEngine.Vector2)
IL_0731: stobj UnityEngine.Vector2
IL_0736: Label17
IL_0736: ldarg.s 8
IL_0738: ldfld UnityEngine.Color32[] MeshData::m_colors
IL_073D: ldarg.s 5
IL_073F: ldind.i4
IL_0740: ldelema UnityEngine.Color32
IL_0745: ldloc.s 15 (UnityEngine.Color)
IL_0747: call static UnityEngine.Color32
UnityEngine.Color32::op_Implicit(UnityEngine.Color c)
IL_074C: stobj UnityEngine.Color32
IL_0751: ldarg.s 5
IL_0753: ldarg.s 5
IL_0755: ldind.i4
IL_0756: ldc.i4.1
IL_0757: add
IL_0758: stind.i4
IL_0759: ldarg.s 8
IL_075B: ldfld UnityEngine.Vector3[] MeshData::m_vertices
IL_0760: ldarg.s 5
IL_0762: ldind.i4
IL_0763: ldelema UnityEngine.Vector3
IL_0768: ldloca.s 4 (UnityEngine.Vector3)
IL_076A: ldfld System.Single UnityEngine.Vector3::x
IL_076F: ldloc.s 17 (System.Single)
IL_0771: sub
IL_0772: ldloca.s 4 (UnityEngine.Vector3)
IL_0774: ldfld System.Single UnityEngine.Vector3::y
IL_0779: ldloca.s 4 (UnityEngine.Vector3)
IL_077B: ldfld System.Single UnityEngine.Vector3::z
IL_0780: ldarg.0
IL_0781: ldfld System.Single LightEffect::m_lightRange
IL_0786: add
IL_0787: newobj System.Void UnityEngine.Vector3::.ctor(System.Single x,
System.Single y, System.Single z)
IL_078C: stobj UnityEngine.Vector3
IL_0791: ldarg.s 8
IL_0793: ldfld UnityEngine.Vector3[] MeshData::m_normals
IL_0798: ldarg.s 5
IL_079A: ldind.i4
IL_079B: ldelema UnityEngine.Vector3
IL_07A0: ldarg.3
IL_07A1: stobj UnityEngine.Vector3
IL_07A6: ldarg.s 8
IL_07A8: ldfld UnityEngine.Vector4[] MeshData::m_tangents
IL_07AD: ldarg.s 5
IL_07AF: ldind.i4
IL_07B0: ldelema UnityEngine.Vector4
IL_07B5: ldloc.s 7 (UnityEngine.Vector4)
IL_07B7: stobj UnityEngine.Vector4
IL_07BC: ldarg.s 8
IL_07BE: ldfld UnityEngine.Vector2[] MeshData::m_uvs
IL_07C3: ldarg.s 5
IL_07C5: ldind.i4
IL_07C6: ldelema UnityEngine.Vector2
IL_07CB: ldloc.s 8 (UnityEngine.Vector2)
IL_07CD: stobj UnityEngine.Vector2
IL_07D2: ldarg.s 8
IL_07D4: ldfld UnityEngine.Vector2[] MeshData::m_uvs2
IL_07D9: ldarg.s 5
IL_07DB: ldind.i4
IL_07DC: ldelema UnityEngine.Vector2
IL_07E1: ldloc.s 10 (UnityEngine.Vector2)
IL_07E3: stobj UnityEngine.Vector2
IL_07E8: ldarg.s 8
IL_07EA: ldfld UnityEngine.Vector2[] MeshData::m_uvs3
IL_07EF: ldarg.s 5
IL_07F1: ldind.i4
IL_07F2: ldelema UnityEngine.Vector2
IL_07F7: ldloc.s 11 (UnityEngine.Vector2)
IL_07F9: stobj UnityEngine.Vector2
IL_07FE: ldloc.0
IL_07FF: brfalse => Label18
IL_0804: ldarg.s 8
IL_0806: ldfld UnityEngine.Vector2[] MeshData::m_uvs4
IL_080B: ldarg.s 5
IL_080D: ldind.i4
IL_080E: ldelema UnityEngine.Vector2
IL_0813: ldloc.s 12 (UnityEngine.Vector2)
IL_0815: stobj UnityEngine.Vector2
IL_081A: Label18
IL_081A: ldarg.s 8
IL_081C: ldfld UnityEngine.Color32[] MeshData::m_colors
IL_0821: ldarg.s 5
IL_0823: ldind.i4
IL_0824: ldelema UnityEngine.Color32
IL_0829: ldloc.s 15 (UnityEngine.Color)
IL_082B: call static UnityEngine.Color32
UnityEngine.Color32::op_Implicit(UnityEngine.Color c)
IL_0830: stobj UnityEngine.Color32
IL_0835: ldarg.s 5
IL_0837: ldarg.s 5
IL_0839: ldind.i4
IL_083A: ldc.i4.1
IL_083B: add
IL_083C: stind.i4
IL_083D: ldarg.s 8
IL_083F: ldfld System.Int32[] MeshData::m_triangles
IL_0844: ldarg.s 6
IL_0846: ldarg.s 6
IL_0848: ldind.i4
IL_0849: dup
IL_084A: stloc.s 19 (System.Int32)
IL_084C: ldc.i4.1
IL_084D: add
IL_084E: stind.i4
IL_084F: ldloc.s 19 (System.Int32)
IL_0851: ldarg.s 5
IL_0853: ldind.i4
IL_0854: ldc.i4.6
IL_0855: sub
IL_0856: stelem.i4
IL_0857: ldarg.s 8
IL_0859: ldfld System.Int32[] MeshData::m_triangles
IL_085E: ldarg.s 6
IL_0860: ldarg.s 6
IL_0862: ldind.i4
IL_0863: dup
IL_0864: stloc.s 19 (System.Int32)
IL_0866: ldc.i4.1
IL_0867: add
IL_0868: stind.i4
IL_0869: ldloc.s 19 (System.Int32)
IL_086B: ldarg.s 5
IL_086D: ldind.i4
IL_086E: ldc.i4.5
IL_086F: sub
IL_0870: stelem.i4
IL_0871: ldarg.s 8
IL_0873: ldfld System.Int32[] MeshData::m_triangles
IL_0878: ldarg.s 6
IL_087A: ldarg.s 6
IL_087C: ldind.i4
IL_087D: dup
IL_087E: stloc.s 19 (System.Int32)
IL_0880: ldc.i4.1
IL_0881: add
IL_0882: stind.i4
IL_0883: ldloc.s 19 (System.Int32)
IL_0885: ldarg.s 5
IL_0887: ldind.i4
IL_0888: ldc.i4.1
IL_0889: sub
IL_088A: stelem.i4
IL_088B: ldarg.s 8
IL_088D: ldfld System.Int32[] MeshData::m_triangles
IL_0892: ldarg.s 6
IL_0894: ldarg.s 6
IL_0896: ldind.i4
IL_0897: dup
IL_0898: stloc.s 19 (System.Int32)
IL_089A: ldc.i4.1
IL_089B: add
IL_089C: stind.i4
IL_089D: ldloc.s 19 (System.Int32)
IL_089F: ldarg.s 5
IL_08A1: ldind.i4
IL_08A2: ldc.i4.1
IL_08A3: sub
IL_08A4: stelem.i4
IL_08A5: ldarg.s 8
IL_08A7: ldfld System.Int32[] MeshData::m_triangles
IL_08AC: ldarg.s 6
IL_08AE: ldarg.s 6
IL_08B0: ldind.i4
IL_08B1: dup
IL_08B2: stloc.s 19 (System.Int32)
IL_08B4: ldc.i4.1
IL_08B5: add
IL_08B6: stind.i4
IL_08B7: ldloc.s 19 (System.Int32)
IL_08B9: ldarg.s 5
IL_08BB: ldind.i4
IL_08BC: ldc.i4.5
IL_08BD: sub
IL_08BE: stelem.i4
IL_08BF: ldarg.s 8
IL_08C1: ldfld System.Int32[] MeshData::m_triangles
IL_08C6: ldarg.s 6
IL_08C8: ldarg.s 6
IL_08CA: ldind.i4
IL_08CB: dup
IL_08CC: stloc.s 19 (System.Int32)
IL_08CE: ldc.i4.1
IL_08CF: add
IL_08D0: stind.i4
IL_08D1: ldloc.s 19 (System.Int32)
IL_08D3: ldarg.s 5
IL_08D5: ldind.i4
IL_08D6: ldc.i4.4
IL_08D7: sub
IL_08D8: stelem.i4
IL_08D9: ldarg.s 8
IL_08DB: ldfld System.Int32[] MeshData::m_triangles
IL_08E0: ldarg.s 6
IL_08E2: ldarg.s 6
IL_08E4: ldind.i4
IL_08E5: dup
IL_08E6: stloc.s 19 (System.Int32)
IL_08E8: ldc.i4.1
IL_08E9: add
IL_08EA: stind.i4
IL_08EB: ldloc.s 19 (System.Int32)
IL_08ED: ldarg.s 5
IL_08EF: ldind.i4
IL_08F0: ldc.i4.1
IL_08F1: sub
IL_08F2: stelem.i4
IL_08F3: ldarg.s 8
IL_08F5: ldfld System.Int32[] MeshData::m_triangles
IL_08FA: ldarg.s 6
IL_08FC: ldarg.s 6
IL_08FE: ldind.i4
IL_08FF: dup
IL_0900: stloc.s 19 (System.Int32)
IL_0902: ldc.i4.1
IL_0903: add
IL_0904: stind.i4
IL_0905: ldloc.s 19 (System.Int32)
IL_0907: ldarg.s 5
IL_0909: ldind.i4
IL_090A: ldc.i4.4
IL_090B: sub
IL_090C: stelem.i4
IL_090D: ldarg.s 8
IL_090F: ldfld System.Int32[] MeshData::m_triangles
IL_0914: ldarg.s 6
IL_0916: ldarg.s 6
IL_0918: ldind.i4
IL_0919: dup
IL_091A: stloc.s 19 (System.Int32)
IL_091C: ldc.i4.1
IL_091D: add
IL_091E: stind.i4
IL_091F: ldloc.s 19 (System.Int32)
IL_0921: ldarg.s 5
IL_0923: ldind.i4
IL_0924: ldc.i4.2
IL_0925: sub
IL_0926: stelem.i4
IL_0927: ldarg.s 8
IL_0929: ldfld System.Int32[] MeshData::m_triangles
IL_092E: ldarg.s 6
IL_0930: ldarg.s 6
IL_0932: ldind.i4
IL_0933: dup
IL_0934: stloc.s 19 (System.Int32)
IL_0936: ldc.i4.1
IL_0937: add
IL_0938: stind.i4
IL_0939: ldloc.s 19 (System.Int32)
IL_093B: ldarg.s 5
IL_093D: ldind.i4
IL_093E: ldc.i4.2
IL_093F: sub
IL_0940: stelem.i4
IL_0941: ldarg.s 8
IL_0943: ldfld System.Int32[] MeshData::m_triangles
IL_0948: ldarg.s 6
IL_094A: ldarg.s 6
IL_094C: ldind.i4
IL_094D: dup
IL_094E: stloc.s 19 (System.Int32)
IL_0950: ldc.i4.1
IL_0951: add
IL_0952: stind.i4
IL_0953: ldloc.s 19 (System.Int32)
IL_0955: ldarg.s 5
IL_0957: ldind.i4
IL_0958: ldc.i4.4
IL_0959: sub
IL_095A: stelem.i4
IL_095B: ldarg.s 8
IL_095D: ldfld System.Int32[] MeshData::m_triangles
IL_0962: ldarg.s 6
IL_0964: ldarg.s 6
IL_0966: ldind.i4
IL_0967: dup
IL_0968: stloc.s 19 (System.Int32)
IL_096A: ldc.i4.1
IL_096B: add
IL_096C: stind.i4
IL_096D: ldloc.s 19 (System.Int32)
IL_096F: ldarg.s 5
IL_0971: ldind.i4
IL_0972: ldc.i4.3
IL_0973: sub
IL_0974: stelem.i4
IL_0975: // end original
IL_0975: Label1
IL_0975: ret
DONE

### Patch: virtual System.Void ElectricityManager::SimulationStepImpl(System.Int32


subStep)
### Replacement: static System.Void
ElectricityManager::ElectricityManager.SimulationStepImpl_Patch0(ElectricityManager
this, System.Int32 subStep)
IL_0000: Local var 0: System.UInt32
IL_0000: Local var 1: System.Int32
IL_0000: Local var 2: NetManager
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: NetInfo
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: ElectricityManager/Cell
IL_0000: Local var 13: ElectricityManager/PulseGroup
IL_0000: Local var 14: ElectricityManager/PulseUnit
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: ElectricityManager/PulseUnit
IL_0000: Local var 19: System.UInt32
IL_0000: Local var 20: System.Int32
IL_0000: Local var 21: ElectricityManager/Cell
IL_0000: Local var 22: System.Int32
IL_0000: Local var 23: System.Int32
IL_0000: Local var 24: NetNode
IL_0000: Local var 25: System.Int32
IL_0000: Local var 26: System.UInt16
IL_0000: Local var 27: System.UInt16
IL_0000: Local var 28: System.UInt16
IL_0000: Local var 29: System.UInt16
IL_0000: Local var 30: System.Int32
IL_0000: Local var 31: ElectricityManager/PulseGroup
IL_0000: Local var 32: ElectricityManager/PulseGroup
IL_0000: Local var 33: System.Int32
IL_0000: Local var 34: ElectricityManager/PulseGroup
IL_0000: Local var 35: System.Int32
IL_0000: Local var 36: ElectricityManager/Cell
IL_0000: // start original
IL_0000: ldarg.1
IL_0001: brfalse => Label0
IL_0006: ldarg.1
IL_0007: ldc.i4 1000
IL_000C: beq => Label1
IL_0011: call static SimulationManager
ColossalFramework.Singleton`1<SimulationManager>::get_instance()
IL_0016: ldfld System.UInt32 SimulationManager::m_currentFrameIndex
IL_001B: stloc.0
IL_001C: ldloc.0
IL_001D: ldc.i4 255
IL_0022: and
IL_0023: stloc.1
IL_0024: ldloc.1
IL_0025: ldc.i4 128
IL_002A: bge => Label2
IL_002F: ldloc.1
IL_0030: brtrue => Label3
IL_0035: ldarg.0
IL_0036: ldc.i4.0
IL_0037: stfld System.Int32 ElectricityManager::m_pulseGroupCount
IL_003C: ldarg.0
IL_003D: ldc.i4.0
IL_003E: stfld System.Int32 ElectricityManager::m_pulseUnitStart
IL_0043: ldarg.0
IL_0044: ldc.i4.0
IL_0045: stfld System.Int32 ElectricityManager::m_pulseUnitEnd
IL_004A: ldarg.0
IL_004B: ldc.i4.0
IL_004C: stfld System.Int32 ElectricityManager::m_processedCells
IL_0051: ldarg.0
IL_0052: ldc.i4.0
IL_0053: stfld System.Int32 ElectricityManager::m_conductiveCells
IL_0058: ldarg.0
IL_0059: ldc.i4.1
IL_005A: stfld System.Boolean ElectricityManager::m_canContinue
IL_005F: Label3
IL_005F: call static NetManager
ColossalFramework.Singleton`1<NetManager>::get_instance()
IL_0064: stloc.2
IL_0065: ldloc.1
IL_0066: ldc.i4 32768
IL_006B: mul
IL_006C: ldc.i4.7
IL_006D: shr
IL_006E: stloc.3
IL_006F: ldloc.1
IL_0070: ldc.i4.1
IL_0071: add
IL_0072: ldc.i4 32768
IL_0077: mul
IL_0078: ldc.i4.7
IL_0079: shr
IL_007A: ldc.i4.1
IL_007B: sub
IL_007C: stloc.s 4 (System.Int32)
IL_007E: ldloc.3
IL_007F: stloc.s 5 (System.Int32)
IL_0081: br => Label4
IL_0086: Label10
IL_0086: ldloc.2
IL_0087: ldfld Array16`1<NetNode> NetManager::m_nodes
IL_008C: ldfld NetNode[] Array16`1<NetNode>::m_buffer
IL_0091: ldloc.s 5 (System.Int32)
IL_0093: ldelema NetNode
IL_0098: ldfld Flags NetNode::m_flags
IL_009D: brfalse => Label5
IL_00A2: ldloc.2
IL_00A3: ldfld Array16`1<NetNode> NetManager::m_nodes
IL_00A8: ldfld NetNode[] Array16`1<NetNode>::m_buffer
IL_00AD: ldloc.s 5 (System.Int32)
IL_00AF: ldelema NetNode
IL_00B4: call NetInfo NetNode::get_Info()
IL_00B9: stloc.s 6 (NetInfo)
IL_00BB: ldloc.s 6 (NetInfo)
IL_00BD: ldfld ItemClass NetInfo::m_class
IL_00C2: ldfld Service ItemClass::m_service
IL_00C7: ldc.i4.s 10
IL_00C9: beq => Label6
IL_00CE: ldloc.s 6 (NetInfo)
IL_00D0: ldfld NetAI NetInfo::m_netAI
IL_00D5: isinst ConcourseAI
IL_00DA: brfalse => Label7
IL_00DF: Label6
IL_00DF: ldarg.0
IL_00E0: ldloc.s 5 (System.Int32)
IL_00E2: ldarg.0
IL_00E3: ldfld System.UInt16[] ElectricityManager::m_nodeGroups
IL_00E8: ldloc.s 5 (System.Int32)
IL_00EA: ldelem.u2
IL_00EB: ldc.i4 65535
IL_00F0: beq => Label8
IL_00F5: ldc.i4.1
IL_00F6: br => Label9
IL_00FB: Label8
IL_00FB: ldc.i4.0
IL_00FC: Label9
IL_00FC: call System.Void
ElectricityManager::UpdateNodeElectricity(System.Int32 nodeID, System.Int32 value)
IL_0101: ldarg.0
IL_0102: dup
IL_0103: ldfld System.Int32 ElectricityManager::m_conductiveCells
IL_0108: ldc.i4.1
IL_0109: add
IL_010A: stfld System.Int32 ElectricityManager::m_conductiveCells
IL_010F: Label5
IL_010F: Label7
IL_010F: ldarg.0
IL_0110: ldfld System.UInt16[] ElectricityManager::m_nodeGroups
IL_0115: ldloc.s 5 (System.Int32)
IL_0117: ldc.i4 65535
IL_011C: stelem.i2
IL_011D: ldloc.s 5 (System.Int32)
IL_011F: ldc.i4.1
IL_0120: add
IL_0121: stloc.s 5 (System.Int32)
IL_0123: Label4
IL_0123: ldloc.s 5 (System.Int32)
IL_0125: ldloc.s 4 (System.Int32)
IL_0127: ble => Label10
IL_012C: ldloc.1
IL_012D: ldc.i4 256
IL_0132: mul
IL_0133: ldc.i4.7
IL_0134: shr
IL_0135: stloc.s 7 (System.Int32)
IL_0137: ldloc.1
IL_0138: ldc.i4.1
IL_0139: add
IL_013A: ldc.i4 256
IL_013F: mul
IL_0140: ldc.i4.7
IL_0141: shr
IL_0142: ldc.i4.1
IL_0143: sub
IL_0144: stloc.s 8 (System.Int32)
IL_0146: ldloc.s 7 (System.Int32)
IL_0148: stloc.s 9 (System.Int32)
IL_014A: br => Label11
IL_014F: Label21
IL_014F: ldloc.s 9 (System.Int32)
IL_0151: ldc.i4 256
IL_0156: mul
IL_0157: stloc.s 10 (System.Int32)
IL_0159: ldc.i4.0
IL_015A: stloc.s 11 (System.Int32)
IL_015C: br => Label12
IL_0161: Label20
IL_0161: ldarg.0
IL_0162: ldfld Cell[] ElectricityManager::m_electricityGrid
IL_0167: ldloc.s 10 (System.Int32)
IL_0169: ldelema ElectricityManager+Cell
IL_016E: ldobj ElectricityManager+Cell
IL_0173: stloc.s 12 (ElectricityManager+Cell)
IL_0175: ldloca.s 12 (ElectricityManager+Cell)
IL_0177: ldfld System.Int16 Cell::m_currentCharge
IL_017C: ldc.i4.0
IL_017D: ble => Label13
IL_0182: ldarg.0
IL_0183: ldfld System.Int32 ElectricityManager::m_pulseGroupCount
IL_0188: ldc.i4 1024
IL_018D: bge => Label14
IL_0192: ldloca.s 13 (ElectricityManager+PulseGroup)
IL_0194: ldloca.s 12 (ElectricityManager+Cell)
IL_0196: ldfld System.Int16 Cell::m_currentCharge
IL_019B: conv.u4
IL_019C: stfld System.UInt32 PulseGroup::m_origCharge
IL_01A1: ldloca.s 13 (ElectricityManager+PulseGroup)
IL_01A3: ldloca.s 12 (ElectricityManager+Cell)
IL_01A5: ldfld System.Int16 Cell::m_currentCharge
IL_01AA: conv.u4
IL_01AB: stfld System.UInt32 PulseGroup::m_curCharge
IL_01B0: ldloca.s 13 (ElectricityManager+PulseGroup)
IL_01B2: ldc.i4.0
IL_01B3: stfld System.UInt16 PulseGroup::m_mergeCount
IL_01B8: ldloca.s 13 (ElectricityManager+PulseGroup)
IL_01BA: ldc.i4 65535
IL_01BF: stfld System.UInt16 PulseGroup::m_mergeIndex
IL_01C4: ldloca.s 13 (ElectricityManager+PulseGroup)
IL_01C6: ldloc.s 11 (System.Int32)
IL_01C8: conv.u1
IL_01C9: stfld System.Byte PulseGroup::m_x
IL_01CE: ldloca.s 13 (ElectricityManager+PulseGroup)
IL_01D0: ldloc.s 9 (System.Int32)
IL_01D2: conv.u1
IL_01D3: stfld System.Byte PulseGroup::m_z
IL_01D8: ldloca.s 14 (ElectricityManager+PulseUnit)
IL_01DA: ldarg.0
IL_01DB: ldfld System.Int32 ElectricityManager::m_pulseGroupCount
IL_01E0: conv.u2
IL_01E1: stfld System.UInt16 PulseUnit::m_group
IL_01E6: ldloca.s 14 (ElectricityManager+PulseUnit)
IL_01E8: ldc.i4.0
IL_01E9: stfld System.UInt16 PulseUnit::m_node
IL_01EE: ldloca.s 14 (ElectricityManager+PulseUnit)
IL_01F0: ldloc.s 11 (System.Int32)
IL_01F2: conv.u1
IL_01F3: stfld System.Byte PulseUnit::m_x
IL_01F8: ldloca.s 14 (ElectricityManager+PulseUnit)
IL_01FA: ldloc.s 9 (System.Int32)
IL_01FC: conv.u1
IL_01FD: stfld System.Byte PulseUnit::m_z
IL_0202: ldloca.s 12 (ElectricityManager+Cell)
IL_0204: ldarg.0
IL_0205: ldfld System.Int32 ElectricityManager::m_pulseGroupCount
IL_020A: conv.u2
IL_020B: stfld System.UInt16 Cell::m_pulseGroup
IL_0210: ldarg.0
IL_0211: ldfld PulseGroup[] ElectricityManager::m_pulseGroups
IL_0216: ldarg.0
IL_0217: dup
IL_0218: ldfld System.Int32 ElectricityManager::m_pulseGroupCount
IL_021D: dup
IL_021E: stloc.s 15 (System.Int32)
IL_0220: ldc.i4.1
IL_0221: add
IL_0222: stfld System.Int32 ElectricityManager::m_pulseGroupCount
IL_0227: ldloc.s 15 (System.Int32)
IL_0229: ldelema ElectricityManager+PulseGroup
IL_022E: ldloc.s 13 (ElectricityManager+PulseGroup)
IL_0230: stobj ElectricityManager+PulseGroup
IL_0235: ldarg.0
IL_0236: ldfld PulseUnit[] ElectricityManager::m_pulseUnits
IL_023B: ldarg.0
IL_023C: ldfld System.Int32 ElectricityManager::m_pulseUnitEnd
IL_0241: ldelema ElectricityManager+PulseUnit
IL_0246: ldloc.s 14 (ElectricityManager+PulseUnit)
IL_0248: stobj ElectricityManager+PulseUnit
IL_024D: ldarg.0
IL_024E: dup
IL_024F: ldfld System.Int32 ElectricityManager::m_pulseUnitEnd
IL_0254: ldc.i4.1
IL_0255: add
IL_0256: dup
IL_0257: stloc.s 15 (System.Int32)
IL_0259: stfld System.Int32 ElectricityManager::m_pulseUnitEnd
IL_025E: ldloc.s 15 (System.Int32)
IL_0260: ldarg.0
IL_0261: ldfld PulseUnit[] ElectricityManager::m_pulseUnits
IL_0266: ldlen
IL_0267: conv.i4
IL_0268: bne.un => Label15
IL_026D: ldarg.0
IL_026E: ldc.i4.0
IL_026F: stfld System.Int32 ElectricityManager::m_pulseUnitEnd
IL_0274: Label15
IL_0274: br => Label16
IL_0279: Label14
IL_0279: ldloca.s 12 (ElectricityManager+Cell)
IL_027B: ldc.i4 65535
IL_0280: stfld System.UInt16 Cell::m_pulseGroup
IL_0285: Label16
IL_0285: ldloca.s 12 (ElectricityManager+Cell)
IL_0287: ldc.i4.0
IL_0288: stfld System.Int16 Cell::m_currentCharge
IL_028D: ldarg.0
IL_028E: dup
IL_028F: ldfld System.Int32 ElectricityManager::m_conductiveCells
IL_0294: ldc.i4.1
IL_0295: add
IL_0296: stfld System.Int32 ElectricityManager::m_conductiveCells
IL_029B: br => Label17
IL_02A0: Label13
IL_02A0: ldloca.s 12 (ElectricityManager+Cell)
IL_02A2: ldc.i4 65535
IL_02A7: stfld System.UInt16 Cell::m_pulseGroup
IL_02AC: ldloca.s 12 (ElectricityManager+Cell)
IL_02AE: ldfld System.Byte Cell::m_conductivity
IL_02B3: ldc.i4.s 64
IL_02B5: blt => Label18
IL_02BA: ldarg.0
IL_02BB: dup
IL_02BC: ldfld System.Int32 ElectricityManager::m_conductiveCells
IL_02C1: ldc.i4.1
IL_02C2: add
IL_02C3: stfld System.Int32 ElectricityManager::m_conductiveCells
IL_02C8: Label17
IL_02C8: Label18
IL_02C8: ldloca.s 12 (ElectricityManager+Cell)
IL_02CA: ldfld System.Boolean Cell::m_tmpElectrified
IL_02CF: ldloca.s 12 (ElectricityManager+Cell)
IL_02D1: ldfld System.Boolean Cell::m_electrified
IL_02D6: beq => Label19
IL_02DB: ldloca.s 12 (ElectricityManager+Cell)
IL_02DD: ldloca.s 12 (ElectricityManager+Cell)
IL_02DF: ldfld System.Boolean Cell::m_tmpElectrified
IL_02E4: stfld System.Boolean Cell::m_electrified
IL_02E9: Label19
IL_02E9: ldloca.s 12 (ElectricityManager+Cell)
IL_02EB: ldloca.s 12 (ElectricityManager+Cell)
IL_02ED: ldfld System.UInt16 Cell::m_pulseGroup
IL_02F2: ldc.i4 65535
IL_02F7: ceq
IL_02F9: ldc.i4.0
IL_02FA: ceq
IL_02FC: stfld System.Boolean Cell::m_tmpElectrified
IL_0301: ldarg.0
IL_0302: ldfld Cell[] ElectricityManager::m_electricityGrid
IL_0307: ldloc.s 10 (System.Int32)
IL_0309: ldelema ElectricityManager+Cell
IL_030E: ldloc.s 12 (ElectricityManager+Cell)
IL_0310: stobj ElectricityManager+Cell
IL_0315: ldloc.s 10 (System.Int32)
IL_0317: ldc.i4.1
IL_0318: add
IL_0319: stloc.s 10 (System.Int32)
IL_031B: ldloc.s 11 (System.Int32)
IL_031D: ldc.i4.1
IL_031E: add
IL_031F: stloc.s 11 (System.Int32)
IL_0321: Label12
IL_0321: ldloc.s 11 (System.Int32)
IL_0323: ldc.i4 256
IL_0328: blt => Label20
IL_032D: ldloc.s 9 (System.Int32)
IL_032F: ldc.i4.1
IL_0330: add
IL_0331: stloc.s 9 (System.Int32)
IL_0333: Label11
IL_0333: ldloc.s 9 (System.Int32)
IL_0335: ldloc.s 8 (System.Int32)
IL_0337: ble => Label21
IL_033C: br => Label22
IL_0341: Label2
IL_0341: ldloc.1
IL_0342: ldc.i4.s 127
IL_0344: sub
IL_0345: ldarg.0
IL_0346: ldfld System.Int32 ElectricityManager::m_conductiveCells
IL_034B: mul
IL_034C: ldc.i4.7
IL_034D: shr
IL_034E: stloc.s 16 (System.Int32)
IL_0350: ldloc.1
IL_0351: ldc.i4 255
IL_0356: bne.un => Label23
IL_035B: ldc.i4 1000000000
IL_0360: stloc.s 16 (System.Int32)
IL_0362: Label23
IL_0362: br => Label24
IL_0367: Label54
IL_0367: ldarg.0
IL_0368: ldc.i4.0
IL_0369: stfld System.Boolean ElectricityManager::m_canContinue
IL_036E: ldarg.0
IL_036F: ldfld System.Int32 ElectricityManager::m_pulseUnitEnd
IL_0374: stloc.s 17 (System.Int32)
IL_0376: br => Label25
IL_037B: Label52
IL_037B: ldarg.0
IL_037C: ldfld PulseUnit[] ElectricityManager::m_pulseUnits
IL_0381: ldarg.0
IL_0382: ldfld System.Int32 ElectricityManager::m_pulseUnitStart
IL_0387: ldelema ElectricityManager+PulseUnit
IL_038C: ldobj ElectricityManager+PulseUnit
IL_0391: stloc.s 18 (ElectricityManager+PulseUnit)
IL_0393: ldarg.0
IL_0394: dup
IL_0395: ldfld System.Int32 ElectricityManager::m_pulseUnitStart
IL_039A: ldc.i4.1
IL_039B: add
IL_039C: dup
IL_039D: stloc.s 15 (System.Int32)
IL_039F: stfld System.Int32 ElectricityManager::m_pulseUnitStart
IL_03A4: ldloc.s 15 (System.Int32)
IL_03A6: ldarg.0
IL_03A7: ldfld PulseUnit[] ElectricityManager::m_pulseUnits
IL_03AC: ldlen
IL_03AD: conv.i4
IL_03AE: bne.un => Label26
IL_03B3: ldarg.0
IL_03B4: ldc.i4.0
IL_03B5: stfld System.Int32 ElectricityManager::m_pulseUnitStart
IL_03BA: Label26
IL_03BA: ldloca.s 18 (ElectricityManager+PulseUnit)
IL_03BC: ldarg.0
IL_03BD: ldloca.s 18 (ElectricityManager+PulseUnit)
IL_03BF: ldfld System.UInt16 PulseUnit::m_group
IL_03C4: call System.UInt16 ElectricityManager::GetRootGroup(System.UInt16
group)
IL_03C9: stfld System.UInt16 PulseUnit::m_group
IL_03CE: ldarg.0
IL_03CF: ldfld PulseGroup[] ElectricityManager::m_pulseGroups
IL_03D4: ldloca.s 18 (ElectricityManager+PulseUnit)
IL_03D6: ldfld System.UInt16 PulseUnit::m_group
IL_03DB: ldelema ElectricityManager+PulseGroup
IL_03E0: ldfld System.UInt32 PulseGroup::m_curCharge
IL_03E5: stloc.s 19 (System.UInt32)
IL_03E7: ldloca.s 18 (ElectricityManager+PulseUnit)
IL_03E9: ldfld System.UInt16 PulseUnit::m_node
IL_03EE: brtrue => Label27
IL_03F3: ldloca.s 18 (ElectricityManager+PulseUnit)
IL_03F5: ldfld System.Byte PulseUnit::m_z
IL_03FA: ldc.i4 256
IL_03FF: mul
IL_0400: ldloca.s 18 (ElectricityManager+PulseUnit)
IL_0402: ldfld System.Byte PulseUnit::m_x
IL_0407: add
IL_0408: stloc.s 20 (System.Int32)
IL_040A: ldarg.0
IL_040B: ldfld Cell[] ElectricityManager::m_electricityGrid
IL_0410: ldloc.s 20 (System.Int32)
IL_0412: ldelema ElectricityManager+Cell
IL_0417: ldobj ElectricityManager+Cell
IL_041C: stloc.s 21 (ElectricityManager+Cell)
IL_041E: ldloca.s 21 (ElectricityManager+Cell)
IL_0420: ldfld System.Byte Cell::m_conductivity
IL_0425: brfalse => Label28
IL_042A: ldloca.s 21 (ElectricityManager+Cell)
IL_042C: ldfld System.Boolean Cell::m_tmpElectrified
IL_0431: brtrue => Label29
IL_0436: ldloc.s 19 (System.UInt32)
IL_0438: brfalse => Label30
IL_043D: ldloca.s 21 (ElectricityManager+Cell)
IL_043F: ldfld System.Int16 Cell::m_currentCharge
IL_0444: neg
IL_0445: ldc.i4.0
IL_0446: ldloc.s 19 (System.UInt32)
IL_0448: call static System.Int32 UnityEngine.Mathf::Clamp(System.Int32
value, System.Int32 min, System.Int32 max)
IL_044D: stloc.s 22 (System.Int32)
IL_044F: ldloc.s 19 (System.UInt32)
IL_0451: ldloc.s 22 (System.Int32)
IL_0453: sub
IL_0454: stloc.s 19 (System.UInt32)
IL_0456: ldloca.s 21 (ElectricityManager+Cell)
IL_0458: dup
IL_0459: ldfld System.Int16 Cell::m_currentCharge
IL_045E: ldloc.s 22 (System.Int32)
IL_0460: conv.i2
IL_0461: add
IL_0462: conv.i2
IL_0463: stfld System.Int16 Cell::m_currentCharge
IL_0468: ldloca.s 21 (ElectricityManager+Cell)
IL_046A: ldfld System.Int16 Cell::m_currentCharge
IL_046F: brtrue => Label31
IL_0474: ldloca.s 21 (ElectricityManager+Cell)
IL_0476: ldc.i4.1
IL_0477: stfld System.Boolean Cell::m_tmpElectrified
IL_047C: Label31
IL_047C: ldarg.0
IL_047D: ldfld Cell[] ElectricityManager::m_electricityGrid
IL_0482: ldloc.s 20 (System.Int32)
IL_0484: ldelema ElectricityManager+Cell
IL_0489: ldloc.s 21 (ElectricityManager+Cell)
IL_048B: stobj ElectricityManager+Cell
IL_0490: ldarg.0
IL_0491: ldfld PulseGroup[] ElectricityManager::m_pulseGroups
IL_0496: ldloca.s 18 (ElectricityManager+PulseUnit)
IL_0498: ldfld System.UInt16 PulseUnit::m_group
IL_049D: ldelema ElectricityManager+PulseGroup
IL_04A2: ldloc.s 19 (System.UInt32)
IL_04A4: stfld System.UInt32 PulseGroup::m_curCharge
IL_04A9: Label28
IL_04A9: Label29
IL_04A9: Label30
IL_04A9: ldloc.s 19 (System.UInt32)
IL_04AB: brfalse => Label32
IL_04B0: ldloca.s 21 (ElectricityManager+Cell)
IL_04B2: ldfld System.Byte Cell::m_conductivity
IL_04B7: ldc.i4.s 64
IL_04B9: blt => Label33
IL_04BE: ldc.i4.1
IL_04BF: br => Label34
IL_04C4: Label33
IL_04C4: ldc.i4.s 64
IL_04C6: Label34
IL_04C6: stloc.s 23 (System.Int32)
IL_04C8: ldarg.0
IL_04C9: dup
IL_04CA: ldfld System.Int32 ElectricityManager::m_processedCells
IL_04CF: ldc.i4.1
IL_04D0: add
IL_04D1: stfld System.Int32 ElectricityManager::m_processedCells
IL_04D6: ldloca.s 18 (ElectricityManager+PulseUnit)
IL_04D8: ldfld System.Byte PulseUnit::m_z
IL_04DD: ldc.i4.0
IL_04DE: ble => Label35
IL_04E3: ldarg.0
IL_04E4: ldarg.0
IL_04E5: ldfld Cell[] ElectricityManager::m_electricityGrid
IL_04EA: ldloc.s 20 (System.Int32)
IL_04EC: ldc.i4 256
IL_04F1: sub
IL_04F2: ldelema ElectricityManager+Cell
IL_04F7: ldloca.s 18 (ElectricityManager+PulseUnit)
IL_04F9: ldfld System.UInt16 PulseUnit::m_group
IL_04FE: ldloca.s 18 (ElectricityManager+PulseUnit)
IL_0500: ldfld System.Byte PulseUnit::m_x
IL_0505: ldloca.s 18 (ElectricityManager+PulseUnit)
IL_0507: ldfld System.Byte PulseUnit::m_z
IL_050C: ldc.i4.1
IL_050D: sub
IL_050E: ldloc.s 23 (System.Int32)
IL_0510: call System.Void ElectricityManager::ConductToCell(Cell& cell,
System.UInt16 group, System.Int32 x, System.Int32 z, System.Int32 limit)
IL_0515: Label35
IL_0515: ldloca.s 18 (ElectricityManager+PulseUnit)
IL_0517: ldfld System.Byte PulseUnit::m_x
IL_051C: ldc.i4.0
IL_051D: ble => Label36
IL_0522: ldarg.0
IL_0523: ldarg.0
IL_0524: ldfld Cell[] ElectricityManager::m_electricityGrid
IL_0529: ldloc.s 20 (System.Int32)
IL_052B: ldc.i4.1
IL_052C: sub
IL_052D: ldelema ElectricityManager+Cell
IL_0532: ldloca.s 18 (ElectricityManager+PulseUnit)
IL_0534: ldfld System.UInt16 PulseUnit::m_group
IL_0539: ldloca.s 18 (ElectricityManager+PulseUnit)
IL_053B: ldfld System.Byte PulseUnit::m_x
IL_0540: ldc.i4.1
IL_0541: sub
IL_0542: ldloca.s 18 (ElectricityManager+PulseUnit)
IL_0544: ldfld System.Byte PulseUnit::m_z
IL_0549: ldloc.s 23 (System.Int32)
IL_054B: call System.Void ElectricityManager::ConductToCell(Cell& cell,
System.UInt16 group, System.Int32 x, System.Int32 z, System.Int32 limit)
IL_0550: Label36
IL_0550: ldloca.s 18 (ElectricityManager+PulseUnit)
IL_0552: ldfld System.Byte PulseUnit::m_z
IL_0557: ldc.i4 255
IL_055C: bge => Label37
IL_0561: ldarg.0
IL_0562: ldarg.0
IL_0563: ldfld Cell[] ElectricityManager::m_electricityGrid
IL_0568: ldloc.s 20 (System.Int32)
IL_056A: ldc.i4 256
IL_056F: add
IL_0570: ldelema ElectricityManager+Cell
IL_0575: ldloca.s 18 (ElectricityManager+PulseUnit)
IL_0577: ldfld System.UInt16 PulseUnit::m_group
IL_057C: ldloca.s 18 (ElectricityManager+PulseUnit)
IL_057E: ldfld System.Byte PulseUnit::m_x
IL_0583: ldloca.s 18 (ElectricityManager+PulseUnit)
IL_0585: ldfld System.Byte PulseUnit::m_z
IL_058A: ldc.i4.1
IL_058B: add
IL_058C: ldloc.s 23 (System.Int32)
IL_058E: call System.Void ElectricityManager::ConductToCell(Cell& cell,
System.UInt16 group, System.Int32 x, System.Int32 z, System.Int32 limit)
IL_0593: Label37
IL_0593: ldloca.s 18 (ElectricityManager+PulseUnit)
IL_0595: ldfld System.Byte PulseUnit::m_x
IL_059A: ldc.i4 255
IL_059F: bge => Label38
IL_05A4: ldarg.0
IL_05A5: ldarg.0
IL_05A6: ldfld Cell[] ElectricityManager::m_electricityGrid
IL_05AB: ldloc.s 20 (System.Int32)
IL_05AD: ldc.i4.1
IL_05AE: add
IL_05AF: ldelema ElectricityManager+Cell
IL_05B4: ldloca.s 18 (ElectricityManager+PulseUnit)
IL_05B6: ldfld System.UInt16 PulseUnit::m_group
IL_05BB: ldloca.s 18 (ElectricityManager+PulseUnit)
IL_05BD: ldfld System.Byte PulseUnit::m_x
IL_05C2: ldc.i4.1
IL_05C3: add
IL_05C4: ldloca.s 18 (ElectricityManager+PulseUnit)
IL_05C6: ldfld System.Byte PulseUnit::m_z
IL_05CB: ldloc.s 23 (System.Int32)
IL_05CD: call System.Void ElectricityManager::ConductToCell(Cell& cell,
System.UInt16 group, System.Int32 x, System.Int32 z, System.Int32 limit)
IL_05D2: Label38
IL_05D2: ldarg.0
IL_05D3: ldloca.s 18 (ElectricityManager+PulseUnit)
IL_05D5: ldfld System.UInt16 PulseUnit::m_group
IL_05DA: ldloca.s 18 (ElectricityManager+PulseUnit)
IL_05DC: ldfld System.Byte PulseUnit::m_x
IL_05E1: ldloca.s 18 (ElectricityManager+PulseUnit)
IL_05E3: ldfld System.Byte PulseUnit::m_z
IL_05E8: call System.Void ElectricityManager::ConductToNodes(System.UInt16
group, System.Int32 cellX, System.Int32 cellZ)
IL_05ED: br => Label39
IL_05F2: Label32
IL_05F2: ldarg.0
IL_05F3: ldfld PulseUnit[] ElectricityManager::m_pulseUnits
IL_05F8: ldarg.0
IL_05F9: ldfld System.Int32 ElectricityManager::m_pulseUnitEnd
IL_05FE: ldelema ElectricityManager+PulseUnit
IL_0603: ldloc.s 18 (ElectricityManager+PulseUnit)
IL_0605: stobj ElectricityManager+PulseUnit
IL_060A: ldarg.0
IL_060B: dup
IL_060C: ldfld System.Int32 ElectricityManager::m_pulseUnitEnd
IL_0611: ldc.i4.1
IL_0612: add
IL_0613: dup
IL_0614: stloc.s 15 (System.Int32)
IL_0616: stfld System.Int32 ElectricityManager::m_pulseUnitEnd
IL_061B: ldloc.s 15 (System.Int32)
IL_061D: ldarg.0
IL_061E: ldfld PulseUnit[] ElectricityManager::m_pulseUnits
IL_0623: ldlen
IL_0624: conv.i4
IL_0625: bne.un => Label40
IL_062A: ldarg.0
IL_062B: ldc.i4.0
IL_062C: stfld System.Int32 ElectricityManager::m_pulseUnitEnd
IL_0631: Label39
IL_0631: Label40
IL_0631: br => Label41
IL_0636: Label27
IL_0636: ldloc.s 19 (System.UInt32)
IL_0638: brfalse => Label42
IL_063D: ldarg.0
IL_063E: dup
IL_063F: ldfld System.Int32 ElectricityManager::m_processedCells
IL_0644: ldc.i4.1
IL_0645: add
IL_0646: stfld System.Int32 ElectricityManager::m_processedCells
IL_064B: call static NetManager
ColossalFramework.Singleton`1<NetManager>::get_instance()
IL_0650: ldfld Array16`1<NetNode> NetManager::m_nodes
IL_0655: ldfld NetNode[] Array16`1<NetNode>::m_buffer
IL_065A: ldloca.s 18 (ElectricityManager+PulseUnit)
IL_065C: ldfld System.UInt16 PulseUnit::m_node
IL_0661: ldelema NetNode
IL_0666: ldobj NetNode
IL_066B: stloc.s 24 (NetNode)
IL_066D: ldloca.s 24 (NetNode)
IL_066F: ldfld Flags NetNode::m_flags
IL_0674: brfalse => Label43
IL_0679: ldloca.s 24 (NetNode)
IL_067B: ldfld System.UInt32 NetNode::m_buildIndex
IL_0680: ldloc.0
IL_0681: ldc.i4.s -128
IL_0683: and
IL_0684: bge.un => Label44
IL_0689: ldarg.0
IL_068A: ldloca.s 18 (ElectricityManager+PulseUnit)
IL_068C: ldfld System.UInt16 PulseUnit::m_group
IL_0691: ldloca.s 24 (NetNode)
IL_0693: ldflda UnityEngine.Vector3 NetNode::m_position
IL_0698: ldfld System.Single UnityEngine.Vector3::x
IL_069D: ldloca.s 24 (NetNode)
IL_069F: ldflda UnityEngine.Vector3 NetNode::m_position
IL_06A4: ldfld System.Single UnityEngine.Vector3::z
IL_06A9: call System.Void ElectricityManager::ConductToCells(System.UInt16
group, System.Single worldX, System.Single worldZ)
IL_06AE: ldc.i4.0
IL_06AF: stloc.s 25 (System.Int32)
IL_06B1: br => Label45
IL_06B6: Label49
IL_06B6: ldloca.s 24 (NetNode)
IL_06B8: ldloc.s 25 (System.Int32)
IL_06BA: call System.UInt16 NetNode::GetSegment(System.Int32 index)
IL_06BF: stloc.s 26 (System.UInt16)
IL_06C1: ldloc.s 26 (System.UInt16)
IL_06C3: brfalse => Label46
IL_06C8: call static NetManager
ColossalFramework.Singleton`1<NetManager>::get_instance()
IL_06CD: ldfld Array16`1<NetSegment> NetManager::m_segments
IL_06D2: ldfld NetSegment[] Array16`1<NetSegment>::m_buffer
IL_06D7: ldloc.s 26 (System.UInt16)
IL_06D9: ldelema NetSegment
IL_06DE: ldfld System.UInt16 NetSegment::m_startNode
IL_06E3: stloc.s 27 (System.UInt16)
IL_06E5: call static NetManager
ColossalFramework.Singleton`1<NetManager>::get_instance()
IL_06EA: ldfld Array16`1<NetSegment> NetManager::m_segments
IL_06EF: ldfld NetSegment[] Array16`1<NetSegment>::m_buffer
IL_06F4: ldloc.s 26 (System.UInt16)
IL_06F6: ldelema NetSegment
IL_06FB: ldfld System.UInt16 NetSegment::m_endNode
IL_0700: stloc.s 28 (System.UInt16)
IL_0702: ldloc.s 27 (System.UInt16)
IL_0704: ldloca.s 18 (ElectricityManager+PulseUnit)
IL_0706: ldfld System.UInt16 PulseUnit::m_node
IL_070B: bne.un => Label47
IL_0710: ldloc.s 28 (System.UInt16)
IL_0712: br => Label48
IL_0717: Label47
IL_0717: ldloc.s 27 (System.UInt16)
IL_0719: Label48
IL_0719: stloc.s 29 (System.UInt16)
IL_071B: ldarg.0
IL_071C: ldloc.s 29 (System.UInt16)
IL_071E: call static NetManager
ColossalFramework.Singleton`1<NetManager>::get_instance()
IL_0723: ldfld Array16`1<NetNode> NetManager::m_nodes
IL_0728: ldfld NetNode[] Array16`1<NetNode>::m_buffer
IL_072D: ldloc.s 29 (System.UInt16)
IL_072F: ldelema NetNode
IL_0734: ldloca.s 18 (ElectricityManager+PulseUnit)
IL_0736: ldfld System.UInt16 PulseUnit::m_group
IL_073B: ldc.r4 -100000
IL_0740: ldc.r4 -100000
IL_0745: ldc.r4 100000
IL_074A: ldc.r4 100000
IL_074F: call System.Void ElectricityManager::ConductToNode(System.UInt16
nodeIndex, NetNode& node, System.UInt16 group, System.Single minX, System.Single
minZ, System.Single maxX, System.Single maxZ)
IL_0754: Label46
IL_0754: ldloc.s 25 (System.Int32)
IL_0756: ldc.i4.1
IL_0757: add
IL_0758: stloc.s 25 (System.Int32)
IL_075A: Label45
IL_075A: ldloc.s 25 (System.Int32)
IL_075C: ldc.i4.8
IL_075D: blt => Label49
IL_0762: Label43
IL_0762: Label44
IL_0762: br => Label50
IL_0767: Label42
IL_0767: ldarg.0
IL_0768: ldfld PulseUnit[] ElectricityManager::m_pulseUnits
IL_076D: ldarg.0
IL_076E: ldfld System.Int32 ElectricityManager::m_pulseUnitEnd
IL_0773: ldelema ElectricityManager+PulseUnit
IL_0778: ldloc.s 18 (ElectricityManager+PulseUnit)
IL_077A: stobj ElectricityManager+PulseUnit
IL_077F: ldarg.0
IL_0780: dup
IL_0781: ldfld System.Int32 ElectricityManager::m_pulseUnitEnd
IL_0786: ldc.i4.1
IL_0787: add
IL_0788: dup
IL_0789: stloc.s 15 (System.Int32)
IL_078B: stfld System.Int32 ElectricityManager::m_pulseUnitEnd
IL_0790: ldloc.s 15 (System.Int32)
IL_0792: ldarg.0
IL_0793: ldfld PulseUnit[] ElectricityManager::m_pulseUnits
IL_0798: ldlen
IL_0799: conv.i4
IL_079A: bne.un => Label51
IL_079F: ldarg.0
IL_07A0: ldc.i4.0
IL_07A1: stfld System.Int32 ElectricityManager::m_pulseUnitEnd
IL_07A6: Label25
IL_07A6: Label41
IL_07A6: Label50
IL_07A6: Label51
IL_07A6: ldarg.0
IL_07A7: ldfld System.Int32 ElectricityManager::m_pulseUnitStart
IL_07AC: ldloc.s 17 (System.Int32)
IL_07AE: bne.un => Label52
IL_07B3: Label24
IL_07B3: ldarg.0
IL_07B4: ldfld System.Boolean ElectricityManager::m_canContinue
IL_07B9: brfalse => Label53
IL_07BE: ldarg.0
IL_07BF: ldfld System.Int32 ElectricityManager::m_processedCells
IL_07C4: ldloc.s 16 (System.Int32)
IL_07C6: blt => Label54
IL_07CB: Label53
IL_07CB: ldloc.1
IL_07CC: ldc.i4 255
IL_07D1: bne.un => Label55
IL_07D6: ldc.i4.0
IL_07D7: stloc.s 30 (System.Int32)
IL_07D9: br => Label56
IL_07DE: Label58
IL_07DE: ldarg.0
IL_07DF: ldfld PulseGroup[] ElectricityManager::m_pulseGroups
IL_07E4: ldloc.s 30 (System.Int32)
IL_07E6: ldelema ElectricityManager+PulseGroup
IL_07EB: ldobj ElectricityManager+PulseGroup
IL_07F0: stloc.s 31 (ElectricityManager+PulseGroup)
IL_07F2: ldloca.s 31 (ElectricityManager+PulseGroup)
IL_07F4: ldfld System.UInt16 PulseGroup::m_mergeIndex
IL_07F9: ldc.i4 65535
IL_07FE: beq => Label57
IL_0803: ldarg.0
IL_0804: ldfld PulseGroup[] ElectricityManager::m_pulseGroups
IL_0809: ldloca.s 31 (ElectricityManager+PulseGroup)
IL_080B: ldfld System.UInt16 PulseGroup::m_mergeIndex
IL_0810: ldelema ElectricityManager+PulseGroup
IL_0815: ldobj ElectricityManager+PulseGroup
IL_081A: stloc.s 32 (ElectricityManager+PulseGroup)
IL_081C: ldloca.s 31 (ElectricityManager+PulseGroup)
IL_081E: ldloca.s 32 (ElectricityManager+PulseGroup)
IL_0820: ldfld System.UInt32 PulseGroup::m_curCharge
IL_0825: conv.u8
IL_0826: ldloca.s 31 (ElectricityManager+PulseGroup)
IL_0828: ldfld System.UInt32 PulseGroup::m_origCharge
IL_082D: conv.u8
IL_082E: mul
IL_082F: ldloca.s 32 (ElectricityManager+PulseGroup)
IL_0831: ldfld System.UInt32 PulseGroup::m_origCharge
IL_0836: conv.u8
IL_0837: div.un
IL_0838: conv.u4
IL_0839: stfld System.UInt32 PulseGroup::m_curCharge
IL_083E: ldloca.s 32 (ElectricityManager+PulseGroup)
IL_0840: dup
IL_0841: ldfld System.UInt32 PulseGroup::m_curCharge
IL_0846: ldloca.s 31 (ElectricityManager+PulseGroup)
IL_0848: ldfld System.UInt32 PulseGroup::m_curCharge
IL_084D: sub
IL_084E: stfld System.UInt32 PulseGroup::m_curCharge
IL_0853: ldloca.s 32 (ElectricityManager+PulseGroup)
IL_0855: dup
IL_0856: ldfld System.UInt32 PulseGroup::m_origCharge
IL_085B: ldloca.s 31 (ElectricityManager+PulseGroup)
IL_085D: ldfld System.UInt32 PulseGroup::m_origCharge
IL_0862: sub
IL_0863: stfld System.UInt32 PulseGroup::m_origCharge
IL_0868: ldarg.0
IL_0869: ldfld PulseGroup[] ElectricityManager::m_pulseGroups
IL_086E: ldloca.s 31 (ElectricityManager+PulseGroup)
IL_0870: ldfld System.UInt16 PulseGroup::m_mergeIndex
IL_0875: ldelema ElectricityManager+PulseGroup
IL_087A: ldloc.s 32 (ElectricityManager+PulseGroup)
IL_087C: stobj ElectricityManager+PulseGroup
IL_0881: ldarg.0
IL_0882: ldfld PulseGroup[] ElectricityManager::m_pulseGroups
IL_0887: ldloc.s 30 (System.Int32)
IL_0889: ldelema ElectricityManager+PulseGroup
IL_088E: ldloc.s 31 (ElectricityManager+PulseGroup)
IL_0890: stobj ElectricityManager+PulseGroup
IL_0895: Label57
IL_0895: ldloc.s 30 (System.Int32)
IL_0897: ldc.i4.1
IL_0898: add
IL_0899: stloc.s 30 (System.Int32)
IL_089B: Label56
IL_089B: ldloc.s 30 (System.Int32)
IL_089D: ldarg.0
IL_089E: ldfld System.Int32 ElectricityManager::m_pulseGroupCount
IL_08A3: blt => Label58
IL_08A8: ldc.i4.0
IL_08A9: stloc.s 33 (System.Int32)
IL_08AB: br => Label59
IL_08B0: Label62
IL_08B0: ldarg.0
IL_08B1: ldfld PulseGroup[] ElectricityManager::m_pulseGroups
IL_08B6: ldloc.s 33 (System.Int32)
IL_08B8: ldelema ElectricityManager+PulseGroup
IL_08BD: ldobj ElectricityManager+PulseGroup
IL_08C2: stloc.s 34 (ElectricityManager+PulseGroup)
IL_08C4: ldloca.s 34 (ElectricityManager+PulseGroup)
IL_08C6: ldfld System.UInt32 PulseGroup::m_curCharge
IL_08CB: brfalse => Label60
IL_08D0: ldloca.s 34 (ElectricityManager+PulseGroup)
IL_08D2: ldfld System.Byte PulseGroup::m_z
IL_08D7: ldc.i4 256
IL_08DC: mul
IL_08DD: ldloca.s 34 (ElectricityManager+PulseGroup)
IL_08DF: ldfld System.Byte PulseGroup::m_x
IL_08E4: add
IL_08E5: stloc.s 35 (System.Int32)
IL_08E7: ldarg.0
IL_08E8: ldfld Cell[] ElectricityManager::m_electricityGrid
IL_08ED: ldloc.s 35 (System.Int32)
IL_08EF: ldelema ElectricityManager+Cell
IL_08F4: ldobj ElectricityManager+Cell
IL_08F9: stloc.s 36 (ElectricityManager+Cell)
IL_08FB: ldloca.s 36 (ElectricityManager+Cell)
IL_08FD: ldfld System.Byte Cell::m_conductivity
IL_0902: brfalse => Label61
IL_0907: ldloca.s 36 (ElectricityManager+Cell)
IL_0909: dup
IL_090A: ldfld System.UInt16 Cell::m_extraCharge
IL_090F: ldloca.s 34 (ElectricityManager+PulseGroup)
IL_0911: ldfld System.UInt32 PulseGroup::m_curCharge
IL_0916: ldc.i4 32767
IL_091B: ldloca.s 36 (ElectricityManager+Cell)
IL_091D: ldfld System.UInt16 Cell::m_extraCharge
IL_0922: sub
IL_0923: call static System.Int32 UnityEngine.Mathf::Min(System.Int32 a,
System.Int32 b)
IL_0928: conv.u2
IL_0929: add
IL_092A: conv.u2
IL_092B: stfld System.UInt16 Cell::m_extraCharge
IL_0930: Label61
IL_0930: ldarg.0
IL_0931: ldfld Cell[] ElectricityManager::m_electricityGrid
IL_0936: ldloc.s 35 (System.Int32)
IL_0938: ldelema ElectricityManager+Cell
IL_093D: ldloc.s 36 (ElectricityManager+Cell)
IL_093F: stobj ElectricityManager+Cell
IL_0944: Label60
IL_0944: ldloc.s 33 (System.Int32)
IL_0946: ldc.i4.1
IL_0947: add
IL_0948: stloc.s 33 (System.Int32)
IL_094A: Label59
IL_094A: ldloc.s 33 (System.Int32)
IL_094C: ldarg.0
IL_094D: ldfld System.Int32 ElectricityManager::m_pulseGroupCount
IL_0952: blt => Label62
IL_0957: // end original
IL_0957: Label0
IL_0957: Label1
IL_0957: Label22
IL_0957: Label55
IL_0957: ret
DONE

### Patch: System.Void ElectricityManager::ConductToNode(System.UInt16 nodeIndex,


NetNode& node, System.UInt16 group, System.Single minX, System.Single minZ,
System.Single maxX, System.Single maxZ)
### Replacement: static System.Void
ElectricityManager::ElectricityManager.ConductToNode_Patch0(ElectricityManager
this, System.UInt16 nodeIndex, NetNode& node, System.UInt16 group, System.Single
minX, System.Single minZ, System.Single maxX, System.Single maxZ)
IL_0000: Local var 0: NetInfo
IL_0000: Local var 1: ElectricityManager/PulseUnit
IL_0000: Local var 2: System.Int32
IL_0000: Local var 3: System.UInt16
IL_0000: // start original
IL_0000: ldarg.2
IL_0001: ldflda UnityEngine.Vector3 NetNode::m_position
IL_0006: ldfld System.Single UnityEngine.Vector3::x
IL_000B: ldarg.s 4
IL_000D: blt.un => Label0
IL_0012: ldarg.2
IL_0013: ldflda UnityEngine.Vector3 NetNode::m_position
IL_0018: ldfld System.Single UnityEngine.Vector3::z
IL_001D: ldarg.s 5
IL_001F: blt.un => Label1
IL_0024: ldarg.2
IL_0025: ldflda UnityEngine.Vector3 NetNode::m_position
IL_002A: ldfld System.Single UnityEngine.Vector3::x
IL_002F: ldarg.s 6
IL_0031: bgt.un => Label2
IL_0036: ldarg.2
IL_0037: ldflda UnityEngine.Vector3 NetNode::m_position
IL_003C: ldfld System.Single UnityEngine.Vector3::z
IL_0041: ldarg.s 7
IL_0043: bgt.un => Label3
IL_0048: ldarg.2
IL_0049: call NetInfo NetNode::get_Info()
IL_004E: stloc.0
IL_004F: ldloc.0
IL_0050: ldfld ItemClass NetInfo::m_class
IL_0055: ldfld Service ItemClass::m_service
IL_005A: ldc.i4.s 10
IL_005C: beq => Label4
IL_0061: ldarg.2
IL_0062: call NetInfo NetNode::get_Info()
IL_0067: ldfld NetAI NetInfo::m_netAI
IL_006C: isinst ConcourseAI
IL_0071: brfalse => Label5
IL_0076: Label4
IL_0076: ldarg.0
IL_0077: ldfld System.UInt16[] ElectricityManager::m_nodeGroups
IL_007C: ldarg.1
IL_007D: ldelem.u2
IL_007E: ldc.i4 65535
IL_0083: bne.un => Label6
IL_0088: ldloca.s 1 (ElectricityManager+PulseUnit)
IL_008A: ldarg.3
IL_008B: stfld System.UInt16 PulseUnit::m_group
IL_0090: ldloca.s 1 (ElectricityManager+PulseUnit)
IL_0092: ldarg.1
IL_0093: stfld System.UInt16 PulseUnit::m_node
IL_0098: ldloca.s 1 (ElectricityManager+PulseUnit)
IL_009A: ldc.i4.0
IL_009B: stfld System.Byte PulseUnit::m_x
IL_00A0: ldloca.s 1 (ElectricityManager+PulseUnit)
IL_00A2: ldc.i4.0
IL_00A3: stfld System.Byte PulseUnit::m_z
IL_00A8: ldarg.0
IL_00A9: ldfld PulseUnit[] ElectricityManager::m_pulseUnits
IL_00AE: ldarg.0
IL_00AF: ldfld System.Int32 ElectricityManager::m_pulseUnitEnd
IL_00B4: ldelema ElectricityManager+PulseUnit
IL_00B9: ldloc.1
IL_00BA: stobj ElectricityManager+PulseUnit
IL_00BF: ldarg.0
IL_00C0: dup
IL_00C1: ldfld System.Int32 ElectricityManager::m_pulseUnitEnd
IL_00C6: ldc.i4.1
IL_00C7: add
IL_00C8: dup
IL_00C9: stloc.2
IL_00CA: stfld System.Int32 ElectricityManager::m_pulseUnitEnd
IL_00CF: ldloc.2
IL_00D0: ldarg.0
IL_00D1: ldfld PulseUnit[] ElectricityManager::m_pulseUnits
IL_00D6: ldlen
IL_00D7: conv.i4
IL_00D8: bne.un => Label7
IL_00DD: ldarg.0
IL_00DE: ldc.i4.0
IL_00DF: stfld System.Int32 ElectricityManager::m_pulseUnitEnd
IL_00E4: Label7
IL_00E4: ldarg.0
IL_00E5: ldfld System.UInt16[] ElectricityManager::m_nodeGroups
IL_00EA: ldarg.1
IL_00EB: ldarg.3
IL_00EC: stelem.i2
IL_00ED: ldarg.0
IL_00EE: ldc.i4.1
IL_00EF: stfld System.Boolean ElectricityManager::m_canContinue
IL_00F4: br => Label8
IL_00F9: Label6
IL_00F9: ldarg.0
IL_00FA: ldarg.0
IL_00FB: ldfld System.UInt16[] ElectricityManager::m_nodeGroups
IL_0100: ldarg.1
IL_0101: ldelem.u2
IL_0102: call System.UInt16 ElectricityManager::GetRootGroup(System.UInt16
group)
IL_0107: stloc.3
IL_0108: ldloc.3
IL_0109: ldarg.3
IL_010A: beq => Label9
IL_010F: ldarg.0
IL_0110: ldarg.3
IL_0111: ldloc.3
IL_0112: call System.Void ElectricityManager::MergeGroups(System.UInt16 root,
System.UInt16 merged)
IL_0117: ldarg.0
IL_0118: ldfld System.UInt16[] ElectricityManager::m_nodeGroups
IL_011D: ldarg.1
IL_011E: ldarg.3
IL_011F: stelem.i2
IL_0120: ldarg.0
IL_0121: ldc.i4.1
IL_0122: stfld System.Boolean ElectricityManager::m_canContinue
IL_0127: // end original
IL_0127: Label0
IL_0127: Label1
IL_0127: Label2
IL_0127: Label3
IL_0127: Label5
IL_0127: Label8
IL_0127: Label9
IL_0127: ret
DONE

### Patch: System.Void ElectricityManager::UpdateNodeElectricity(System.Int32


nodeID, System.Int32 value)
### Replacement: static System.Void
ElectricityManager::ElectricityManager.UpdateNodeElectricity_Patch0(ElectricityMana
ger this, System.Int32 nodeID, System.Int32 value)
IL_0000: Local var 0: InfoManager/InfoMode
IL_0000: Local var 1: NetManager
IL_0000: Local var 2: System.Boolean
IL_0000: Local var 3: NetNode/Flags
IL_0000: Local var 4: System.UInt16
IL_0000: Local var 5: BuildingManager
IL_0000: Local var 6: NetNode/Flags
IL_0000: Local var 7: System.Int32
IL_0000: Local var 8: System.UInt16
IL_0000: // start original
IL_0000: call static InfoManager
ColossalFramework.Singleton`1<InfoManager>::get_instance()
IL_0005: callvirt InfoMode InfoManager::get_CurrentMode()
IL_000A: stloc.0
IL_000B: call static NetManager
ColossalFramework.Singleton`1<NetManager>::get_instance()
IL_0010: stloc.1
IL_0011: ldc.i4.0
IL_0012: stloc.2
IL_0013: ldloc.1
IL_0014: ldfld Array16`1<NetNode> NetManager::m_nodes
IL_0019: ldfld NetNode[] Array16`1<NetNode>::m_buffer
IL_001E: ldarg.1
IL_001F: ldelema NetNode
IL_0024: ldfld Flags NetNode::m_flags
IL_0029: stloc.3
IL_002A: ldloc.3
IL_002B: ldc.i4 1048576
IL_0030: and
IL_0031: brfalse => Label0
IL_0036: ldloc.1
IL_0037: ldfld Array16`1<NetNode> NetManager::m_nodes
IL_003C: ldfld NetNode[] Array16`1<NetNode>::m_buffer
IL_0041: ldarg.1
IL_0042: ldelema NetNode
IL_0047: dup
IL_0048: ldfld Flags NetNode::m_flags
IL_004D: ldc.i4 -1048577
IL_0052: and
IL_0053: stfld Flags NetNode::m_flags
IL_0058: br => Label10
IL_005D: Label0
IL_005D: ldloc.1
IL_005E: ldfld Array16`1<NetNode> NetManager::m_nodes
IL_0063: ldfld NetNode[] Array16`1<NetNode>::m_buffer
IL_0068: ldarg.1
IL_0069: ldelema NetNode
IL_006E: ldfld System.UInt16 NetNode::m_building
IL_0073: stloc.s 4 (System.UInt16)
IL_0075: ldloc.s 4 (System.UInt16)
IL_0077: brfalse => Label1
IL_007C: call static BuildingManager
ColossalFramework.Singleton`1<BuildingManager>::get_instance()
IL_0081: stloc.s 5 (BuildingManager)
IL_0083: ldloc.s 5 (BuildingManager)
IL_0085: ldfld Array16`1<Building> BuildingManager::m_buildings
IL_008A: ldfld Building[] Array16`1<Building>::m_buffer
IL_008F: ldloc.s 4 (System.UInt16)
IL_0091: ldelema Building
IL_0096: ldfld System.UInt16 Building::m_electricityBuffer
IL_009B: ldarg.2
IL_009C: beq => Label2
IL_00A1: ldloc.s 5 (BuildingManager)
IL_00A3: ldfld Array16`1<Building> BuildingManager::m_buildings
IL_00A8: ldfld Building[] Array16`1<Building>::m_buffer
IL_00AD: ldloc.s 4 (System.UInt16)
IL_00AF: ldelema Building
IL_00B4: ldarg.2
IL_00B5: conv.u2
IL_00B6: stfld System.UInt16 Building::m_electricityBuffer
IL_00BB: ldloc.0
IL_00BC: ldc.i4.1
IL_00BD: ceq
IL_00BF: stloc.2
IL_00C0: Label2
IL_00C0: ldloc.2
IL_00C1: brfalse => Label3
IL_00C6: ldloc.s 5 (BuildingManager)
IL_00C8: ldloc.s 4 (System.UInt16)
IL_00CA: callvirt System.Void BuildingManager::UpdateBuildingColors(System.UInt16
building)
IL_00CF: Label1
IL_00CF: Label3
IL_00CF: ldloc.3
IL_00D0: ldc.i4 -67108865
IL_00D5: and
IL_00D6: stloc.s 6 (NetNode+Flags)
IL_00D8: ldarg.2
IL_00D9: brfalse => Label4
IL_00DE: ldloc.s 6 (NetNode+Flags)
IL_00E0: ldc.i4 67108864
IL_00E5: or
IL_00E6: stloc.s 6 (NetNode+Flags)
IL_00E8: Label4
IL_00E8: ldloc.s 6 (NetNode+Flags)
IL_00EA: ldloc.3
IL_00EB: beq => Label5
IL_00F0: ldloc.1
IL_00F1: ldfld Array16`1<NetNode> NetManager::m_nodes
IL_00F6: ldfld NetNode[] Array16`1<NetNode>::m_buffer
IL_00FB: ldarg.1
IL_00FC: ldelema NetNode
IL_0101: ldloc.s 6 (NetNode+Flags)
IL_0103: stfld Flags NetNode::m_flags
IL_0108: ldloc.0
IL_0109: ldc.i4.1
IL_010A: ceq
IL_010C: stloc.2
IL_010D: Label5
IL_010D: ldloc.2
IL_010E: brfalse => Label6
IL_0113: ldloc.1
IL_0114: ldarg.1
IL_0115: conv.u2
IL_0116: callvirt System.Void NetManager::UpdateNodeColors(System.UInt16 node)
IL_011B: ldc.i4.0
IL_011C: stloc.s 7 (System.Int32)
IL_011E: br => Label7
IL_0123: Label9
IL_0123: ldloc.1
IL_0124: ldfld Array16`1<NetNode> NetManager::m_nodes
IL_0129: ldfld NetNode[] Array16`1<NetNode>::m_buffer
IL_012E: ldarg.1
IL_012F: ldelema NetNode
IL_0134: ldloc.s 7 (System.Int32)
IL_0136: call System.UInt16 NetNode::GetSegment(System.Int32 index)
IL_013B: stloc.s 8 (System.UInt16)
IL_013D: ldloc.s 8 (System.UInt16)
IL_013F: brfalse => Label8
IL_0144: ldloc.1
IL_0145: ldloc.s 8 (System.UInt16)
IL_0147: callvirt System.Void NetManager::UpdateSegmentColors(System.UInt16
segment)
IL_014C: Label8
IL_014C: ldloc.s 7 (System.Int32)
IL_014E: ldc.i4.1
IL_014F: add
IL_0150: stloc.s 7 (System.Int32)
IL_0152: Label7
IL_0152: ldloc.s 7 (System.Int32)
IL_0154: ldc.i4.8
IL_0155: blt => Label9
IL_015A: // end original
IL_015A: Label6
IL_015A: Label10
IL_015A: ret
DONE

### Patch: virtual System.Void ColossalFramework.UI.UIView::Start()


### Replacement: static System.Void
ColossalFramework.UI.UIView::ColossalFramework.UI.UIView.Start_Patch1(ColossalFrame
work.UI.UIView this)
IL_0000: Local var 0:
ColossalFramework.PoolList`1<ColossalFramework.UI.UIComponent>
IL_0000: Local var 1: ColossalFramework.UI.UIComponent
IL_0000: Local var 2:
System.Collections.Generic.IEnumerator`1<ColossalFramework.UI.UIComponent>
IL_0000: // start original
IL_0000: ldarg.0
IL_0001: ldc.i4.0
IL_0002: stfld System.Int32 ColossalFramework.UI.UIView::m_FramesRendered
IL_0007: ldarg.0
IL_0008: call System.Void
ColossalFramework.UI.UIView::InvalidateAllComponents()
IL_000D: ldarg.0
IL_000E: ldfld UnityEngine.MeshRenderer
ColossalFramework.UI.UIView::m_MeshRenderer
IL_0013: ldnull
IL_0014: call static System.Boolean
UnityEngine.Object::op_Inequality(UnityEngine.Object x, UnityEngine.Object y)
IL_0019: brfalse => Label0
IL_001E: ldarg.0
IL_001F: ldfld UnityEngine.MeshRenderer
ColossalFramework.UI.UIView::m_MeshRenderer
IL_0024: ldc.i4.1
IL_0025: callvirt System.Void UnityEngine.Renderer::set_enabled(System.Boolean
value)
IL_002A: Label0
IL_002A: ldarg.0
IL_002B: call ColossalFramework.PoolList`1<ColossalFramework.UI.UIComponent>
ColossalFramework.UI.UIView::GetTopLevelComponents()
IL_0030: stloc.0
.try
{
IL_0031: ldloc.0
IL_0032: callvirt virtual
System.Collections.Generic.IEnumerator`1<ColossalFramework.UI.UIComponent>
ColossalFramework.PoolList`1<ColossalFramework.UI.UIComponent>::GetEnumerator()
IL_0037: stloc.2
.try
{
IL_0038: br => Label1
IL_003D: Label2
IL_003D: ldloc.2
IL_003E: callvirt abstract virtual ColossalFramework.UI.UIComponent
System.Collections.Generic.IEnumerator`1<ColossalFramework.UI.UIComponent>::get_Cur
rent()
IL_0043: stloc.1
IL_0044: ldloc.1
IL_0045: ldc.i4.1
IL_0046: callvirt System.Void
ColossalFramework.UI.UIComponent::InitializeParentVisibilityCache(System.Boolean
parentVisible)
IL_004B: Label1
IL_004B: ldloc.2
IL_004C: callvirt abstract virtual System.Boolean
System.Collections.IEnumerator::MoveNext()
IL_0051: brtrue => Label2
IL_0056: leave => Label3
IL_005B: leave => (autogenerated)
} // end try
.finally
{
IL_0060: ldloc.2
IL_0061: brfalse => Label4
IL_0066: ldloc.2
IL_0067: callvirt abstract virtual System.Void
System.IDisposable::Dispose()
IL_006C: Label4
IL_006C: endfinally
IL_006D: leave => (autogenerated)
} // end handler
IL_006E: Label3
IL_006E: leave => Label5
IL_0073: leave => (autogenerated)
} // end try
.finally
{
IL_0078: ldloc.0
IL_0079: brfalse => Label6
IL_007E: ldloc.0
IL_007F: callvirt abstract virtual System.Void
System.IDisposable::Dispose()
IL_0084: Label6
IL_0084: endfinally
IL_0085: leave => (autogenerated)
} // end handler
IL_0086: Label5
IL_0086: ldarg.0
IL_0087: ldc.i4.1
IL_0088: stfld System.Boolean
ColossalFramework.UI.UIView::m_VisibilityCacheInitialized
IL_008D: // end original
IL_008D: call static System.Void
Kwytto.Redirectors.UIViewRedirector::AfterStart()
IL_0092: ret
DONE

### Patch: virtual UnityEngine.Color NetAI::GetColor(System.UInt16 nodeID, NetNode&


data, InfoMode infoMode, SubInfoMode subInfoMode)
### Replacement: static UnityEngine.Color NetAI::NetAI.GetColor_Patch1(NetAI this,
System.UInt16 nodeID, NetNode& data, InfoMode infoMode, SubInfoMode subInfoMode)
IL_0000: Local var 0: UnityEngine.Color
IL_0000: ldloca 0 (UnityEngine.Color)
IL_0004: initobj UnityEngine.Color
IL_000A: // start original
IL_000A: ldarg.3
IL_000B: brfalse => Label0
IL_0010: call static InfoManager
ColossalFramework.Singleton`1<InfoManager>::get_instance()
IL_0015: ldfld InfoProperties SimulationManagerBase`2<InfoManager,
InfoProperties>::m_properties
IL_001A: ldfld UnityEngine.Color InfoProperties::m_neutralColor
IL_001F: br => Label1
IL_0024: Label0
IL_0024: ldarg.0
IL_0025: ldfld NetInfo NetAI::m_info
IL_002A: ldfld UnityEngine.Color NetInfo::m_color
IL_002F: // end original
IL_002F: Label1
IL_002F: stloc 0 (UnityEngine.Color)
IL_0033: ldloca 0 (UnityEngine.Color)
IL_0037: ldarg 1
IL_003B: ldarg 2
IL_003F: ldarg 3
IL_0043: ldarg 4
IL_0047: call static System.Void
ElectricRoads.Overrides.ElectricRoadsOverrides::AfterGetColorNode(UnityEngine.Color
& __result, System.UInt16 nodeID, NetNode& data, InfoMode infoMode, SubInfoMode
subInfoMode)
IL_004C: ldloc 0 (UnityEngine.Color)
IL_0050: ret
DONE

### Patch: virtual UnityEngine.Color NetAI::GetColor(System.UInt16 segmentID,


NetSegment& data, InfoMode infoMode, SubInfoMode subInfoMode)
### Replacement: static UnityEngine.Color NetAI::NetAI.GetColor_Patch1(NetAI this,
System.UInt16 segmentID, NetSegment& data, InfoMode infoMode, SubInfoMode
subInfoMode)
IL_0000: Local var 0: UnityEngine.Color
IL_0000: ldloca 0 (UnityEngine.Color)
IL_0004: initobj UnityEngine.Color
IL_000A: // start original
IL_000A: ldarg.3
IL_000B: brfalse => Label0
IL_0010: call static InfoManager
ColossalFramework.Singleton`1<InfoManager>::get_instance()
IL_0015: ldfld InfoProperties SimulationManagerBase`2<InfoManager,
InfoProperties>::m_properties
IL_001A: ldfld UnityEngine.Color InfoProperties::m_neutralColor
IL_001F: br => Label1
IL_0024: Label0
IL_0024: ldarg.0
IL_0025: ldfld NetInfo NetAI::m_info
IL_002A: ldfld UnityEngine.Color NetInfo::m_color
IL_002F: // end original
IL_002F: Label1
IL_002F: stloc 0 (UnityEngine.Color)
IL_0033: ldloca 0 (UnityEngine.Color)
IL_0037: ldarg 1
IL_003B: ldarg 2
IL_003F: ldarg 3
IL_0043: ldarg 4
IL_0047: call static System.Void
ElectricRoads.Overrides.ElectricRoadsOverrides::AfterGetColorSegment(UnityEngine.Co
lor& __result, System.UInt16 segmentID, NetSegment& data, InfoMode infoMode,
SubInfoMode subInfoMode)
IL_004C: ldloc 0 (UnityEngine.Color)
IL_0050: ret
DONE

### Patch: System.Void ElectricityManager::UpdateNodeElectricity(System.Int32


nodeID, System.Int32 value)
### Replacement: static System.Void
ElectricityManager::ElectricityManager.UpdateNodeElectricity_Patch0(ElectricityMana
ger this, System.Int32 nodeID, System.Int32 value)
IL_0000: Local var 0: InfoManager/InfoMode
IL_0000: Local var 1: NetManager
IL_0000: Local var 2: System.Boolean
IL_0000: Local var 3: NetNode/Flags
IL_0000: Local var 4: System.UInt16
IL_0000: Local var 5: BuildingManager
IL_0000: Local var 6: NetNode/Flags
IL_0000: Local var 7: System.Int32
IL_0000: Local var 8: System.UInt16
IL_0000: // start original
IL_0000: call static InfoManager
ColossalFramework.Singleton`1<InfoManager>::get_instance()
IL_0005: callvirt InfoMode InfoManager::get_CurrentMode()
IL_000A: stloc.0
IL_000B: call static NetManager
ColossalFramework.Singleton`1<NetManager>::get_instance()
IL_0010: stloc.1
IL_0011: ldc.i4.0
IL_0012: stloc.2
IL_0013: ldloc.1
IL_0014: ldfld Array16`1<NetNode> NetManager::m_nodes
IL_0019: ldfld NetNode[] Array16`1<NetNode>::m_buffer
IL_001E: ldarg.1
IL_001F: ldelema NetNode
IL_0024: ldfld Flags NetNode::m_flags
IL_0029: stloc.3
IL_002A: ldarg.1
IL_002B: call static System.Boolean
ElectricRoads.Overrides.ElectricRoadsOverrides::CheckNodeTransition(System.Int32
nodeID)
IL_0030: brfalse => Label0
IL_0035: ldloc.1
IL_0036: ldfld Array16`1<NetNode> NetManager::m_nodes
IL_003B: ldfld NetNode[] Array16`1<NetNode>::m_buffer
IL_0040: ldarg.1
IL_0041: ldelema NetNode
IL_0046: dup
IL_0047: ldfld Flags NetNode::m_flags
IL_004C: ldc.i4 -1048577
IL_0051: and
IL_0052: stfld Flags NetNode::m_flags
IL_0057: br => Label10
IL_005C: Label0
IL_005C: ldloc.1
IL_005D: ldfld Array16`1<NetNode> NetManager::m_nodes
IL_0062: ldfld NetNode[] Array16`1<NetNode>::m_buffer
IL_0067: ldarg.1
IL_0068: ldelema NetNode
IL_006D: ldfld System.UInt16 NetNode::m_building
IL_0072: stloc.s 4 (System.UInt16)
IL_0074: ldloc.s 4 (System.UInt16)
IL_0076: brfalse => Label1
IL_007B: call static BuildingManager
ColossalFramework.Singleton`1<BuildingManager>::get_instance()
IL_0080: stloc.s 5 (BuildingManager)
IL_0082: ldloc.s 5 (BuildingManager)
IL_0084: ldfld Array16`1<Building> BuildingManager::m_buildings
IL_0089: ldfld Building[] Array16`1<Building>::m_buffer
IL_008E: ldloc.s 4 (System.UInt16)
IL_0090: ldelema Building
IL_0095: ldfld System.UInt16 Building::m_electricityBuffer
IL_009A: ldarg.2
IL_009B: beq => Label2
IL_00A0: ldloc.s 5 (BuildingManager)
IL_00A2: ldfld Array16`1<Building> BuildingManager::m_buildings
IL_00A7: ldfld Building[] Array16`1<Building>::m_buffer
IL_00AC: ldloc.s 4 (System.UInt16)
IL_00AE: ldelema Building
IL_00B3: ldarg.2
IL_00B4: conv.u2
IL_00B5: stfld System.UInt16 Building::m_electricityBuffer
IL_00BA: ldloc.0
IL_00BB: ldc.i4.1
IL_00BC: ceq
IL_00BE: stloc.2
IL_00BF: Label2
IL_00BF: ldloc.2
IL_00C0: brfalse => Label3
IL_00C5: ldloc.s 5 (BuildingManager)
IL_00C7: ldloc.s 4 (System.UInt16)
IL_00C9: callvirt System.Void BuildingManager::UpdateBuildingColors(System.UInt16
building)
IL_00CE: Label1
IL_00CE: Label3
IL_00CE: ldloc.3
IL_00CF: ldc.i4 -67108865
IL_00D4: and
IL_00D5: stloc.s 6 (NetNode+Flags)
IL_00D7: ldarg.2
IL_00D8: brfalse => Label4
IL_00DD: ldloc.s 6 (NetNode+Flags)
IL_00DF: ldc.i4 67108864
IL_00E4: or
IL_00E5: stloc.s 6 (NetNode+Flags)
IL_00E7: Label4
IL_00E7: ldloc.s 6 (NetNode+Flags)
IL_00E9: ldloc.3
IL_00EA: beq => Label5
IL_00EF: ldloc.1
IL_00F0: ldfld Array16`1<NetNode> NetManager::m_nodes
IL_00F5: ldfld NetNode[] Array16`1<NetNode>::m_buffer
IL_00FA: ldarg.1
IL_00FB: ldelema NetNode
IL_0100: ldloc.s 6 (NetNode+Flags)
IL_0102: stfld Flags NetNode::m_flags
IL_0107: ldloc.0
IL_0108: ldc.i4.1
IL_0109: ceq
IL_010B: stloc.2
IL_010C: Label5
IL_010C: ldloc.2
IL_010D: brfalse => Label6
IL_0112: ldloc.1
IL_0113: ldarg.1
IL_0114: conv.u2
IL_0115: callvirt System.Void NetManager::UpdateNodeColors(System.UInt16 node)
IL_011A: ldc.i4.0
IL_011B: stloc.s 7 (System.Int32)
IL_011D: br => Label7
IL_0122: Label9
IL_0122: ldloc.1
IL_0123: ldfld Array16`1<NetNode> NetManager::m_nodes
IL_0128: ldfld NetNode[] Array16`1<NetNode>::m_buffer
IL_012D: ldarg.1
IL_012E: ldelema NetNode
IL_0133: ldloc.s 7 (System.Int32)
IL_0135: call System.UInt16 NetNode::GetSegment(System.Int32 index)
IL_013A: stloc.s 8 (System.UInt16)
IL_013C: ldloc.s 8 (System.UInt16)
IL_013E: brfalse => Label8
IL_0143: ldloc.1
IL_0144: ldloc.s 8 (System.UInt16)
IL_0146: callvirt System.Void NetManager::UpdateSegmentColors(System.UInt16
segment)
IL_014B: Label8
IL_014B: ldloc.s 7 (System.Int32)
IL_014D: ldc.i4.1
IL_014E: add
IL_014F: stloc.s 7 (System.Int32)
IL_0151: Label7
IL_0151: ldloc.s 7 (System.Int32)
IL_0153: ldc.i4.8
IL_0154: blt => Label9
IL_0159: // end original
IL_0159: Label6
IL_0159: Label10
IL_0159: ret
DONE

### Patch: static System.Void PropInstance::RenderInstance(CameraInfo cameraInfo,


PropInfo info, InstanceID id, UnityEngine.Vector3 position, System.Single scale,
System.Single angle, UnityEngine.Color color, UnityEngine.Vector4 objectIndex,
System.Boolean active, UnityEngine.Texture heightMap, UnityEngine.Vector4
heightMapping, UnityEngine.Vector4 surfaceMapping, UnityEngine.Texture
waterHeightMap, UnityEngine.Vector4 waterHeightMapping, UnityEngine.Vector4
waterSurfaceMapping)
### Replacement: static System.Void
PropInstance::PropInstance.RenderInstance_Patch0(CameraInfo cameraInfo, PropInfo
info, InstanceID id, UnityEngine.Vector3 position, System.Single scale,
System.Single angle, UnityEngine.Color color, UnityEngine.Vector4 objectIndex,
System.Boolean active, UnityEngine.Texture heightMap, UnityEngine.Vector4
heightMapping, UnityEngine.Vector4 surfaceMapping, UnityEngine.Texture
waterHeightMap, UnityEngine.Vector4 waterHeightMapping, UnityEngine.Vector4
waterSurfaceMapping)
IL_0000: Local var 0: UnityEngine.Matrix4x4
IL_0000: Local var 1: System.Single
IL_0000: Local var 2: System.Int32
IL_0000: Local var 3: UnityEngine.Vector3
IL_0000: Local var 4: UnityEngine.Vector3
IL_0000: Local var 5: EffectInfo/SpawnArea
IL_0000: Local var 6: System.Single
IL_0000: Local var 7: LightSystem
IL_0000: Local var 8: ColossalFramework.Math.Randomizer
IL_0000: Local var 9: UnityEngine.Vector4
IL_0000: Local var 10: System.Single
IL_0000: Local var 11: System.Single
IL_0000: Local var 12: System.Single
IL_0000: Local var 13: UnityEngine.Matrix4x4
IL_0000: Local var 14: PropManager
IL_0000: Local var 15: UnityEngine.MaterialPropertyBlock
IL_0000: Local var 16: System.Int32
IL_0000: // start original
IL_0000: ldarg.1
IL_0001: ldfld System.Boolean PrefabInfo::m_prefabInitialized
IL_0006: brfalse => Label0
IL_000B: ldarg.1
IL_000C: ldfld System.Boolean PropInfo::m_hasEffects
IL_0011: brfalse => Label1
IL_0016: ldarg.s 8
IL_0018: brtrue => Label2
IL_001D: ldarg.1
IL_001E: ldfld System.Boolean PropInfo::m_alwaysActive
IL_0023: brfalse => Label3
IL_0028: Label2
IL_0028: ldloca.s 0 (UnityEngine.Matrix4x4)
IL_002A: initobj UnityEngine.Matrix4x4
IL_0030: ldloca.s 0 (UnityEngine.Matrix4x4)
IL_0032: ldarg.3
IL_0033: ldarg.s 5
IL_0035: ldc.r4 57.29578
IL_003A: mul
IL_003B: call static UnityEngine.Vector3 UnityEngine.Vector3::get_down()
IL_0040: call static UnityEngine.Quaternion
UnityEngine.Quaternion::AngleAxis(System.Single angle, UnityEngine.Vector3 axis)
IL_0045: ldarg.s 4
IL_0047: ldarg.s 4
IL_0049: ldarg.s 4
IL_004B: newobj System.Void UnityEngine.Vector3::.ctor(System.Single x,
System.Single y, System.Single z)
IL_0050: call System.Void UnityEngine.Matrix4x4::SetTRS(UnityEngine.Vector3
pos, UnityEngine.Quaternion q, UnityEngine.Vector3 s)
IL_0055: call static SimulationManager
ColossalFramework.Singleton`1<SimulationManager>::get_instance()
IL_005A: ldfld System.Single SimulationManager::m_simulationTimeDelta
IL_005F: stloc.1
IL_0060: ldc.i4.0
IL_0061: stloc.2
IL_0062: br => Label4
IL_0067: Label5
IL_0067: ldloca.s 0 (UnityEngine.Matrix4x4)
IL_0069: ldarg.1
IL_006A: ldfld Effect[] PropInfo::m_effects
IL_006F: ldloc.2
IL_0070: ldelema PropInfo+Effect
IL_0075: ldfld UnityEngine.Vector3 Effect::m_position
IL_007A: call UnityEngine.Vector3
UnityEngine.Matrix4x4::MultiplyPoint(UnityEngine.Vector3 v)
IL_007F: stloc.3
IL_0080: ldloca.s 0 (UnityEngine.Matrix4x4)
IL_0082: ldarg.1
IL_0083: ldfld Effect[] PropInfo::m_effects
IL_0088: ldloc.2
IL_0089: ldelema PropInfo+Effect
IL_008E: ldfld UnityEngine.Vector3 Effect::m_direction
IL_0093: call UnityEngine.Vector3
UnityEngine.Matrix4x4::MultiplyVector(UnityEngine.Vector3 v)
IL_0098: stloc.s 4 (UnityEngine.Vector3)
IL_009A: ldloca.s 5 (EffectInfo+SpawnArea)
IL_009C: ldloc.3
IL_009D: ldloc.s 4 (UnityEngine.Vector3)
IL_009F: ldc.r4 0
IL_00A4: call System.Void SpawnArea::.ctor(UnityEngine.Vector3 position,
UnityEngine.Vector3 direction, System.Single radius)
IL_00A9: ldarg.1
IL_00AA: ldfld Effect[] PropInfo::m_effects
IL_00AF: ldloc.2
IL_00B0: ldelema PropInfo+Effect
IL_00B5: ldfld EffectInfo Effect::m_effect
IL_00BA: ldarg.2
IL_00BB: ldloc.s 5 (EffectInfo+SpawnArea)
IL_00BD: call static UnityEngine.Vector3 UnityEngine.Vector3::get_zero()
IL_00C2: ldc.r4 0
IL_00C7: ldc.r4 1
IL_00CC: ldc.r4 -1
IL_00D1: ldloc.1
IL_00D2: ldarg.0
IL_00D3: callvirt virtual System.Void EffectInfo::RenderEffect(InstanceID id,
SpawnArea area, UnityEngine.Vector3 velocity, System.Single acceleration,
System.Single magnitude, System.Single timeOffset, System.Single timeDelta,
CameraInfo cameraInfo)
IL_00D8: ldloc.2
IL_00D9: ldc.i4.1
IL_00DA: add
IL_00DB: stloc.2
IL_00DC: Label4
IL_00DC: ldloc.2
IL_00DD: ldarg.1
IL_00DE: ldfld Effect[] PropInfo::m_effects
IL_00E3: ldlen
IL_00E4: conv.i4
IL_00E5: blt => Label5
IL_00EA: Label1
IL_00EA: Label3
IL_00EA: ldarg.1
IL_00EB: ldfld System.Boolean PropInfo::m_hasRenderer
IL_00F0: brfalse => Label6
IL_00F5: ldarg.0
IL_00F6: ldfld System.Int32 CameraInfo::m_layerMask
IL_00FB: ldc.i4.1
IL_00FC: ldarg.1
IL_00FD: ldfld System.Int32 PrefabInfo::m_prefabDataLayer
IL_0102: ldc.i4.s 31
IL_0104: and
IL_0105: shl
IL_0106: and
IL_0107: brfalse => Label7
IL_010C: call static InfoManager
ColossalFramework.Singleton`1<InfoManager>::get_instance()
IL_0111: callvirt InfoMode InfoManager::get_CurrentMode()
IL_0116: brtrue => Label8
IL_011B: ldarg 2
IL_011F: call static System.Boolean
ElectricRoads.Overrides.ElectricRoadsOverrides::CheckElectrityNetForLight(InstanceI
D id)
IL_0124: brfalse => Label24
IL_0129: ldc.r4 0
IL_012E: stloc.s 6 (System.Single)
IL_0130: ldarg.s 8
IL_0132: brtrue => Label9
IL_0137: ldarg.1
IL_0138: ldfld System.Boolean PropInfo::m_alwaysActive
IL_013D: brtrue => Label10
IL_0142: Label24
IL_0142: ldarga.s 7
IL_0144: ldc.r4 0
IL_0149: stfld System.Single UnityEngine.Vector4::z
IL_014E: br => Label11
IL_0153: Label9
IL_0153: Label10
IL_0153: ldarg.1
IL_0154: ldflda UnityEngine.Vector2 PropInfo::m_illuminationOffRange
IL_0159: ldfld System.Single UnityEngine.Vector2::x
IL_015E: ldc.r4 1000
IL_0163: blt => Label12
IL_0168: ldarg.1
IL_0169: ldfld BlinkType PropInfo::m_illuminationBlinkType
IL_016E: brfalse => Label13
IL_0173: Label12
IL_0173: call static RenderManager
ColossalFramework.Singleton`1<RenderManager>::get_instance()
IL_0178: callvirt LightSystem RenderManager::get_lightSystem()
IL_017D: stloc.s 7 (LightSystem)
IL_017F: ldloca.s 8 (ColossalFramework.Math.Randomizer)
IL_0181: ldarga.s 2
IL_0183: call System.UInt32 InstanceID::get_Index()
IL_0188: call System.Void
ColossalFramework.Math.Randomizer::.ctor(System.UInt32 _seed)
IL_018D: ldarg.1
IL_018E: ldflda UnityEngine.Vector2 PropInfo::m_illuminationOffRange
IL_0193: ldfld System.Single UnityEngine.Vector2::x
IL_0198: ldloca.s 8 (ColossalFramework.Math.Randomizer)
IL_019A: ldc.i4 100000
IL_019F: call System.Int32
ColossalFramework.Math.Randomizer::Int32(System.UInt32 range)
IL_01A4: conv.r4
IL_01A5: ldc.r4 1E-05
IL_01AA: mul
IL_01AB: ldarg.1
IL_01AC: ldflda UnityEngine.Vector2 PropInfo::m_illuminationOffRange
IL_01B1: ldfld System.Single UnityEngine.Vector2::y
IL_01B6: ldarg.1
IL_01B7: ldflda UnityEngine.Vector2 PropInfo::m_illuminationOffRange
IL_01BC: ldfld System.Single UnityEngine.Vector2::x
IL_01C1: sub
IL_01C2: mul
IL_01C3: add
IL_01C4: stloc.s 6 (System.Single)
IL_01C6: ldarga.s 7
IL_01C8: ldloc.s 6 (System.Single)
IL_01CA: ldc.r4 0.01
IL_01CF: add
IL_01D0: ldloc.s 6 (System.Single)
IL_01D2: ldc.r4 0.01
IL_01D7: sub
IL_01D8: ldloc.s 7 (LightSystem)
IL_01DA: callvirt System.Single LightSystem::get_DayLightIntensity()
IL_01DF: call static System.Single MathUtils::SmoothStep(System.Single edge0,
System.Single edge1, System.Single x)
IL_01E4: stfld System.Single UnityEngine.Vector4::z
IL_01E9: ldarg.1
IL_01EA: ldfld BlinkType PropInfo::m_illuminationBlinkType
IL_01EF: brfalse => Label14
IL_01F4: ldarg.1
IL_01F5: ldfld BlinkType PropInfo::m_illuminationBlinkType
IL_01FA: call static UnityEngine.Vector4
LightEffect::GetBlinkVector(BlinkType type)
IL_01FF: stloc.s 9 (UnityEngine.Vector4)
IL_0201: ldloc.s 6 (System.Single)
IL_0203: ldc.r4 3.71
IL_0208: mul
IL_0209: call static SimulationManager
ColossalFramework.Singleton`1<SimulationManager>::get_instance()
IL_020E: ldfld System.Single SimulationManager::m_simulationTimer
IL_0213: ldloca.s 9 (UnityEngine.Vector4)
IL_0215: ldfld System.Single UnityEngine.Vector4::w
IL_021A: div
IL_021B: add
IL_021C: stloc.s 10 (System.Single)
IL_021E: ldloc.s 10 (System.Single)
IL_0220: ldloc.s 10 (System.Single)
IL_0222: call static System.Single UnityEngine.Mathf::Floor(System.Single f)
IL_0227: sub
IL_0228: ldloca.s 9 (UnityEngine.Vector4)
IL_022A: ldfld System.Single UnityEngine.Vector4::w
IL_022F: mul
IL_0230: stloc.s 10 (System.Single)
IL_0232: ldloca.s 9 (UnityEngine.Vector4)
IL_0234: ldfld System.Single UnityEngine.Vector4::x
IL_0239: ldloca.s 9 (UnityEngine.Vector4)
IL_023B: ldfld System.Single UnityEngine.Vector4::y
IL_0240: ldloc.s 10 (System.Single)
IL_0242: call static System.Single MathUtils::SmoothStep(System.Single edge0,
System.Single edge1, System.Single x)
IL_0247: stloc.s 11 (System.Single)
IL_0249: ldloca.s 9 (UnityEngine.Vector4)
IL_024B: ldfld System.Single UnityEngine.Vector4::w
IL_0250: ldloca.s 9 (UnityEngine.Vector4)
IL_0252: ldfld System.Single UnityEngine.Vector4::z
IL_0257: ldloc.s 10 (System.Single)
IL_0259: call static System.Single MathUtils::SmoothStep(System.Single edge0,
System.Single edge1, System.Single x)
IL_025E: stloc.s 12 (System.Single)
IL_0260: ldarga.s 7
IL_0262: dup
IL_0263: ldfld System.Single UnityEngine.Vector4::z
IL_0268: ldc.r4 1
IL_026D: ldloc.s 11 (System.Single)
IL_026F: ldloc.s 12 (System.Single)
IL_0271: mul
IL_0272: sub
IL_0273: mul
IL_0274: stfld System.Single UnityEngine.Vector4::z
IL_0279: Label14
IL_0279: br => Label15
IL_027E: Label13
IL_027E: ldarga.s 7
IL_0280: ldc.r4 1
IL_0285: stfld System.Single UnityEngine.Vector4::z
IL_028A: Label8
IL_028A: Label11
IL_028A: Label15
IL_028A: ldarg.0
IL_028B: brfalse => Label16
IL_0290: ldarg.0
IL_0291: ldarg.3
IL_0292: ldarg.1
IL_0293: ldfld System.Single PropInfo::m_lodRenderDistance
IL_0298: callvirt System.Boolean
CameraInfo::CheckRenderDistance(UnityEngine.Vector3 point, System.Single
maxDistance)
IL_029D: brfalse => Label17
IL_02A2: Label16
IL_02A2: ldloca.s 13 (UnityEngine.Matrix4x4)
IL_02A4: initobj UnityEngine.Matrix4x4
IL_02AA: ldloca.s 13 (UnityEngine.Matrix4x4)
IL_02AC: ldarg.3
IL_02AD: ldarg.s 5
IL_02AF: ldc.r4 57.29578
IL_02B4: mul
IL_02B5: call static UnityEngine.Vector3 UnityEngine.Vector3::get_down()
IL_02BA: call static UnityEngine.Quaternion
UnityEngine.Quaternion::AngleAxis(System.Single angle, UnityEngine.Vector3 axis)
IL_02BF: ldarg.s 4
IL_02C1: ldarg.s 4
IL_02C3: ldarg.s 4
IL_02C5: newobj System.Void UnityEngine.Vector3::.ctor(System.Single x,
System.Single y, System.Single z)
IL_02CA: call System.Void UnityEngine.Matrix4x4::SetTRS(UnityEngine.Vector3
pos, UnityEngine.Quaternion q, UnityEngine.Vector3 s)
IL_02CF: call static PropManager
ColossalFramework.Singleton`1<PropManager>::get_instance()
IL_02D4: stloc.s 14 (PropManager)
IL_02D6: ldloc.s 14 (PropManager)
IL_02D8: ldfld UnityEngine.MaterialPropertyBlock PropManager::m_materialBlock
IL_02DD: stloc.s 15 (UnityEngine.MaterialPropertyBlock)
IL_02DF: ldloc.s 15 (UnityEngine.MaterialPropertyBlock)
IL_02E1: callvirt System.Void UnityEngine.MaterialPropertyBlock::Clear()
IL_02E6: ldloc.s 15 (UnityEngine.MaterialPropertyBlock)
IL_02E8: ldloc.s 14 (PropManager)
IL_02EA: ldfld System.Int32 PropManager::ID_Color
IL_02EF: ldarg.s 6
IL_02F1: callvirt System.Void
UnityEngine.MaterialPropertyBlock::SetColor(System.Int32 nameID, UnityEngine.Color
value)
IL_02F6: ldloc.s 15 (UnityEngine.MaterialPropertyBlock)
IL_02F8: ldloc.s 14 (PropManager)
IL_02FA: ldfld System.Int32 PropManager::ID_HeightMap
IL_02FF: ldarg.s 9
IL_0301: callvirt System.Void
UnityEngine.MaterialPropertyBlock::SetTexture(System.Int32 nameID,
UnityEngine.Texture value)
IL_0306: ldloc.s 15 (UnityEngine.MaterialPropertyBlock)
IL_0308: ldloc.s 14 (PropManager)
IL_030A: ldfld System.Int32 PropManager::ID_HeightMapping
IL_030F: ldarg.s 10
IL_0311: callvirt System.Void
UnityEngine.MaterialPropertyBlock::SetVector(System.Int32 nameID,
UnityEngine.Vector4 value)
IL_0316: ldloc.s 15 (UnityEngine.MaterialPropertyBlock)
IL_0318: ldloc.s 14 (PropManager)
IL_031A: ldfld System.Int32 PropManager::ID_SurfaceMapping
IL_031F: ldarg.s 11
IL_0321: callvirt System.Void
UnityEngine.MaterialPropertyBlock::SetVector(System.Int32 nameID,
UnityEngine.Vector4 value)
IL_0326: ldloc.s 15 (UnityEngine.MaterialPropertyBlock)
IL_0328: ldloc.s 14 (PropManager)
IL_032A: ldfld System.Int32 PropManager::ID_ObjectIndex
IL_032F: ldarg.s 7
IL_0331: callvirt System.Void
UnityEngine.MaterialPropertyBlock::SetVector(System.Int32 nameID,
UnityEngine.Vector4 value)
IL_0336: ldloc.s 15 (UnityEngine.MaterialPropertyBlock)
IL_0338: ldloc.s 14 (PropManager)
IL_033A: ldfld System.Int32 PropManager::ID_WaterHeightMap
IL_033F: ldarg.s 12
IL_0341: callvirt System.Void
UnityEngine.MaterialPropertyBlock::SetTexture(System.Int32 nameID,
UnityEngine.Texture value)
IL_0346: ldloc.s 15 (UnityEngine.MaterialPropertyBlock)
IL_0348: ldloc.s 14 (PropManager)
IL_034A: ldfld System.Int32 PropManager::ID_WaterHeightMapping
IL_034F: ldarg.s 13
IL_0351: callvirt System.Void
UnityEngine.MaterialPropertyBlock::SetVector(System.Int32 nameID,
UnityEngine.Vector4 value)
IL_0356: ldloc.s 15 (UnityEngine.MaterialPropertyBlock)
IL_0358: ldloc.s 14 (PropManager)
IL_035A: ldfld System.Int32 PropManager::ID_WaterSurfaceMapping
IL_035F: ldarg.s 14
IL_0361: callvirt System.Void
UnityEngine.MaterialPropertyBlock::SetVector(System.Int32 nameID,
UnityEngine.Vector4 value)
IL_0366: ldarg.1
IL_0367: ldfld UnityEngine.Vector4[] PropInfo::m_rollLocation
IL_036C: brfalse => Label18
IL_0371: ldarg.1
IL_0372: ldfld UnityEngine.Material PropInfo::m_material
IL_0377: ldloc.s 14 (PropManager)
IL_0379: ldfld System.Int32 PropManager::ID_RollLocation
IL_037E: ldarg.1
IL_037F: ldfld UnityEngine.Vector4[] PropInfo::m_rollLocation
IL_0384: callvirt System.Void UnityEngine.Material::SetVectorArray(System.Int32
nameID, UnityEngine.Vector4[] values)
IL_0389: ldarg.1
IL_038A: ldfld UnityEngine.Material PropInfo::m_material
IL_038F: ldloc.s 14 (PropManager)
IL_0391: ldfld System.Int32 PropManager::ID_RollParams
IL_0396: ldarg.1
IL_0397: ldfld UnityEngine.Vector4[] PropInfo::m_rollParams
IL_039C: callvirt System.Void UnityEngine.Material::SetVectorArray(System.Int32
nameID, UnityEngine.Vector4[] values)
IL_03A1: Label18
IL_03A1: ldloc.s 14 (PropManager)
IL_03A3: ldflda DrawCallData SimulationManagerBase`2<PropManager,
PropProperties>::m_drawCallData
IL_03A8: dup
IL_03A9: ldfld System.Int32 DrawCallData::m_defaultCalls
IL_03AE: ldc.i4.1
IL_03AF: add
IL_03B0: stfld System.Int32 DrawCallData::m_defaultCalls
IL_03B5: ldarg.1
IL_03B6: ldfld UnityEngine.Mesh PropInfo::m_mesh
IL_03BB: ldloc.s 13 (UnityEngine.Matrix4x4)
IL_03BD: ldarg.1
IL_03BE: ldfld UnityEngine.Material PropInfo::m_material
IL_03C3: ldarg.1
IL_03C4: ldfld System.Int32 PrefabInfo::m_prefabDataLayer
IL_03C9: ldnull
IL_03CA: ldc.i4.0
IL_03CB: ldloc.s 15 (UnityEngine.MaterialPropertyBlock)
IL_03CD: call static System.Void
UnityEngine.Graphics::DrawMesh(UnityEngine.Mesh mesh, UnityEngine.Matrix4x4 matrix,
UnityEngine.Material material, System.Int32 layer, UnityEngine.Camera camera,
System.Int32 submeshIndex, UnityEngine.MaterialPropertyBlock properties)
IL_03D2: br => Label19
IL_03D7: Label17
IL_03D7: ldarg.s 9
IL_03D9: ldarg.1
IL_03DA: ldfld UnityEngine.Texture PropInfo::m_lodHeightMap
IL_03DF: call static System.Boolean
UnityEngine.Object::op_Inequality(UnityEngine.Object x, UnityEngine.Object y)
IL_03E4: brtrue => Label20
IL_03E9: ldarg.s 12
IL_03EB: ldarg.1
IL_03EC: ldfld UnityEngine.Texture PropInfo::m_lodWaterHeightMap
IL_03F1: call static System.Boolean
UnityEngine.Object::op_Inequality(UnityEngine.Object x, UnityEngine.Object y)
IL_03F6: brfalse => Label21
IL_03FB: Label20
IL_03FB: ldarg.1
IL_03FC: ldfld System.Int32 PropInfo::m_lodCount
IL_0401: brfalse => Label22
IL_0406: ldarg.0
IL_0407: ldarg.1
IL_0408: call static System.Void PropInstance::RenderLod(CameraInfo
cameraInfo, PropInfo info)
IL_040D: Label22
IL_040D: ldarg.1
IL_040E: ldarg.s 9
IL_0410: stfld UnityEngine.Texture PropInfo::m_lodHeightMap
IL_0415: ldarg.1
IL_0416: ldarg.s 10
IL_0418: stfld UnityEngine.Vector4 PropInfo::m_lodHeightMapping
IL_041D: ldarg.1
IL_041E: ldarg.s 11
IL_0420: stfld UnityEngine.Vector4 PropInfo::m_lodSurfaceMapping
IL_0425: ldarg.1
IL_0426: ldarg.s 12
IL_0428: stfld UnityEngine.Texture PropInfo::m_lodWaterHeightMap
IL_042D: ldarg.1
IL_042E: ldarg.s 13
IL_0430: stfld UnityEngine.Vector4 PropInfo::m_lodWaterHeightMapping
IL_0435: ldarg.1
IL_0436: ldarg.s 14
IL_0438: stfld UnityEngine.Vector4 PropInfo::m_lodWaterSurfaceMapping
IL_043D: Label21
IL_043D: ldarga.s 7
IL_043F: ldarg.s 4
IL_0441: stfld System.Single UnityEngine.Vector4::w
IL_0446: ldarg.1
IL_0447: ldfld UnityEngine.Vector4[] PropInfo::m_lodLocations
IL_044C: ldarg.1
IL_044D: ldfld System.Int32 PropInfo::m_lodCount
IL_0452: ldelema UnityEngine.Vector4
IL_0457: ldarga.s 3
IL_0459: ldfld System.Single UnityEngine.Vector3::x
IL_045E: ldarga.s 3
IL_0460: ldfld System.Single UnityEngine.Vector3::y
IL_0465: ldarga.s 3
IL_0467: ldfld System.Single UnityEngine.Vector3::z
IL_046C: ldarg.s 5
IL_046E: newobj System.Void UnityEngine.Vector4::.ctor(System.Single x,
System.Single y, System.Single z, System.Single w)
IL_0473: stobj UnityEngine.Vector4
IL_0478: ldarg.1
IL_0479: ldfld UnityEngine.Vector4[] PropInfo::m_lodObjectIndices
IL_047E: ldarg.1
IL_047F: ldfld System.Int32 PropInfo::m_lodCount
IL_0484: ldelema UnityEngine.Vector4
IL_0489: ldarg.s 7
IL_048B: stobj UnityEngine.Vector4
IL_0490: ldarg.1
IL_0491: ldfld UnityEngine.Vector4[] PropInfo::m_lodColors
IL_0496: ldarg.1
IL_0497: ldfld System.Int32 PropInfo::m_lodCount
IL_049C: ldelema UnityEngine.Vector4
IL_04A1: ldarga.s 6
IL_04A3: call UnityEngine.Color UnityEngine.Color::get_linear()
IL_04A8: call static UnityEngine.Vector4
UnityEngine.Color::op_Implicit(UnityEngine.Color c)
IL_04AD: stobj UnityEngine.Vector4
IL_04B2: ldarg.1
IL_04B3: ldarg.1
IL_04B4: ldfld UnityEngine.Vector3 PropInfo::m_lodMin
IL_04B9: ldarg.3
IL_04BA: call static UnityEngine.Vector3
UnityEngine.Vector3::Min(UnityEngine.Vector3 lhs, UnityEngine.Vector3 rhs)
IL_04BF: stfld UnityEngine.Vector3 PropInfo::m_lodMin
IL_04C4: ldarg.1
IL_04C5: ldarg.1
IL_04C6: ldfld UnityEngine.Vector3 PropInfo::m_lodMax
IL_04CB: ldarg.3
IL_04CC: call static UnityEngine.Vector3
UnityEngine.Vector3::Max(UnityEngine.Vector3 lhs, UnityEngine.Vector3 rhs)
IL_04D1: stfld UnityEngine.Vector3 PropInfo::m_lodMax
IL_04D6: ldarg.1
IL_04D7: dup
IL_04D8: ldfld System.Int32 PropInfo::m_lodCount
IL_04DD: ldc.i4.1
IL_04DE: add
IL_04DF: dup
IL_04E0: stloc.s 16 (System.Int32)
IL_04E2: stfld System.Int32 PropInfo::m_lodCount
IL_04E7: ldloc.s 16 (System.Int32)
IL_04E9: ldarg.1
IL_04EA: ldfld UnityEngine.Vector4[] PropInfo::m_lodLocations
IL_04EF: ldlen
IL_04F0: conv.i4
IL_04F1: bne.un => Label23
IL_04F6: ldarg.0
IL_04F7: ldarg.1
IL_04F8: call static System.Void PropInstance::RenderLod(CameraInfo
cameraInfo, PropInfo info)
IL_04FD: // end original
IL_04FD: Label0
IL_04FD: Label6
IL_04FD: Label7
IL_04FD: Label19
IL_04FD: Label23
IL_04FD: ret
DONE

### Patch: static System.Void PropInstance::RenderInstance(CameraInfo cameraInfo,


PropInfo info, InstanceID id, UnityEngine.Vector3 position, System.Single scale,
System.Single angle, UnityEngine.Color color, UnityEngine.Vector4 objectIndex,
System.Boolean active)
### Replacement: static System.Void
PropInstance::PropInstance.RenderInstance_Patch0(CameraInfo cameraInfo, PropInfo
info, InstanceID id, UnityEngine.Vector3 position, System.Single scale,
System.Single angle, UnityEngine.Color color, UnityEngine.Vector4 objectIndex,
System.Boolean active)
IL_0000: Local var 0: UnityEngine.Matrix4x4
IL_0000: Local var 1: System.Single
IL_0000: Local var 2: System.Int32
IL_0000: Local var 3: UnityEngine.Vector3
IL_0000: Local var 4: UnityEngine.Vector3
IL_0000: Local var 5: EffectInfo/SpawnArea
IL_0000: Local var 6: System.Single
IL_0000: Local var 7: LightSystem
IL_0000: Local var 8: ColossalFramework.Math.Randomizer
IL_0000: Local var 9: UnityEngine.Vector4
IL_0000: Local var 10: System.Single
IL_0000: Local var 11: System.Single
IL_0000: Local var 12: System.Single
IL_0000: Local var 13: UnityEngine.Matrix4x4
IL_0000: Local var 14: PropManager
IL_0000: Local var 15: UnityEngine.MaterialPropertyBlock
IL_0000: Local var 16: UnityEngine.Matrix4x4
IL_0000: Local var 17: PropManager
IL_0000: Local var 18: UnityEngine.MaterialPropertyBlock
IL_0000: Local var 19: System.Int32
IL_0000: // start original
IL_0000: ldarg.1
IL_0001: ldfld System.Boolean PrefabInfo::m_prefabInitialized
IL_0006: brfalse => Label0
IL_000B: ldarg.1
IL_000C: ldfld System.Boolean PropInfo::m_hasEffects
IL_0011: brfalse => Label1
IL_0016: ldarg.s 8
IL_0018: brtrue => Label2
IL_001D: ldarg.1
IL_001E: ldfld System.Boolean PropInfo::m_alwaysActive
IL_0023: brfalse => Label3
IL_0028: Label2
IL_0028: ldloca.s 0 (UnityEngine.Matrix4x4)
IL_002A: initobj UnityEngine.Matrix4x4
IL_0030: ldloca.s 0 (UnityEngine.Matrix4x4)
IL_0032: ldarg.3
IL_0033: ldarg.s 5
IL_0035: ldc.r4 57.29578
IL_003A: mul
IL_003B: call static UnityEngine.Vector3 UnityEngine.Vector3::get_down()
IL_0040: call static UnityEngine.Quaternion
UnityEngine.Quaternion::AngleAxis(System.Single angle, UnityEngine.Vector3 axis)
IL_0045: ldarg.s 4
IL_0047: ldarg.s 4
IL_0049: ldarg.s 4
IL_004B: newobj System.Void UnityEngine.Vector3::.ctor(System.Single x,
System.Single y, System.Single z)
IL_0050: call System.Void UnityEngine.Matrix4x4::SetTRS(UnityEngine.Vector3
pos, UnityEngine.Quaternion q, UnityEngine.Vector3 s)
IL_0055: call static SimulationManager
ColossalFramework.Singleton`1<SimulationManager>::get_instance()
IL_005A: ldfld System.Single SimulationManager::m_simulationTimeDelta
IL_005F: stloc.1
IL_0060: ldc.i4.0
IL_0061: stloc.2
IL_0062: br => Label4
IL_0067: Label5
IL_0067: ldloca.s 0 (UnityEngine.Matrix4x4)
IL_0069: ldarg.1
IL_006A: ldfld Effect[] PropInfo::m_effects
IL_006F: ldloc.2
IL_0070: ldelema PropInfo+Effect
IL_0075: ldfld UnityEngine.Vector3 Effect::m_position
IL_007A: call UnityEngine.Vector3
UnityEngine.Matrix4x4::MultiplyPoint(UnityEngine.Vector3 v)
IL_007F: stloc.3
IL_0080: ldloca.s 0 (UnityEngine.Matrix4x4)
IL_0082: ldarg.1
IL_0083: ldfld Effect[] PropInfo::m_effects
IL_0088: ldloc.2
IL_0089: ldelema PropInfo+Effect
IL_008E: ldfld UnityEngine.Vector3 Effect::m_direction
IL_0093: call UnityEngine.Vector3
UnityEngine.Matrix4x4::MultiplyVector(UnityEngine.Vector3 v)
IL_0098: stloc.s 4 (UnityEngine.Vector3)
IL_009A: ldloca.s 5 (EffectInfo+SpawnArea)
IL_009C: ldloc.3
IL_009D: ldloc.s 4 (UnityEngine.Vector3)
IL_009F: ldc.r4 0
IL_00A4: call System.Void SpawnArea::.ctor(UnityEngine.Vector3 position,
UnityEngine.Vector3 direction, System.Single radius)
IL_00A9: ldarg.1
IL_00AA: ldfld Effect[] PropInfo::m_effects
IL_00AF: ldloc.2
IL_00B0: ldelema PropInfo+Effect
IL_00B5: ldfld EffectInfo Effect::m_effect
IL_00BA: ldarg.2
IL_00BB: ldloc.s 5 (EffectInfo+SpawnArea)
IL_00BD: call static UnityEngine.Vector3 UnityEngine.Vector3::get_zero()
IL_00C2: ldc.r4 0
IL_00C7: ldc.r4 1
IL_00CC: ldc.r4 -1
IL_00D1: ldloc.1
IL_00D2: ldarg.0
IL_00D3: callvirt virtual System.Void EffectInfo::RenderEffect(InstanceID id,
SpawnArea area, UnityEngine.Vector3 velocity, System.Single acceleration,
System.Single magnitude, System.Single timeOffset, System.Single timeDelta,
CameraInfo cameraInfo)
IL_00D8: ldloc.2
IL_00D9: ldc.i4.1
IL_00DA: add
IL_00DB: stloc.2
IL_00DC: Label4
IL_00DC: ldloc.2
IL_00DD: ldarg.1
IL_00DE: ldfld Effect[] PropInfo::m_effects
IL_00E3: ldlen
IL_00E4: conv.i4
IL_00E5: blt => Label5
IL_00EA: Label1
IL_00EA: Label3
IL_00EA: ldarg.1
IL_00EB: ldfld System.Boolean PropInfo::m_hasRenderer
IL_00F0: brfalse => Label6
IL_00F5: ldarg.0
IL_00F6: ldfld System.Int32 CameraInfo::m_layerMask
IL_00FB: ldc.i4.1
IL_00FC: ldarg.1
IL_00FD: ldfld System.Int32 PrefabInfo::m_prefabDataLayer
IL_0102: ldc.i4.s 31
IL_0104: and
IL_0105: shl
IL_0106: and
IL_0107: brfalse => Label7
IL_010C: call static InfoManager
ColossalFramework.Singleton`1<InfoManager>::get_instance()
IL_0111: callvirt InfoMode InfoManager::get_CurrentMode()
IL_0116: brtrue => Label8
IL_011B: ldarg 2
IL_011F: call static System.Boolean
ElectricRoads.Overrides.ElectricRoadsOverrides::CheckElectrityNetForLight(InstanceI
D id)
IL_0124: brfalse => Label24
IL_0129: ldc.r4 0
IL_012E: stloc.s 6 (System.Single)
IL_0130: ldarg.s 8
IL_0132: brtrue => Label9
IL_0137: ldarg.1
IL_0138: ldfld System.Boolean PropInfo::m_alwaysActive
IL_013D: brtrue => Label10
IL_0142: Label24
IL_0142: ldarga.s 7
IL_0144: ldc.r4 0
IL_0149: stfld System.Single UnityEngine.Vector4::z
IL_014E: br => Label11
IL_0153: Label9
IL_0153: Label10
IL_0153: ldarg.1
IL_0154: ldflda UnityEngine.Vector2 PropInfo::m_illuminationOffRange
IL_0159: ldfld System.Single UnityEngine.Vector2::x
IL_015E: ldc.r4 1000
IL_0163: blt => Label12
IL_0168: ldarg.1
IL_0169: ldfld BlinkType PropInfo::m_illuminationBlinkType
IL_016E: brfalse => Label13
IL_0173: Label12
IL_0173: call static RenderManager
ColossalFramework.Singleton`1<RenderManager>::get_instance()
IL_0178: callvirt LightSystem RenderManager::get_lightSystem()
IL_017D: stloc.s 7 (LightSystem)
IL_017F: ldloca.s 8 (ColossalFramework.Math.Randomizer)
IL_0181: ldarga.s 2
IL_0183: call System.UInt32 InstanceID::get_Index()
IL_0188: call System.Void
ColossalFramework.Math.Randomizer::.ctor(System.UInt32 _seed)
IL_018D: ldarg.1
IL_018E: ldflda UnityEngine.Vector2 PropInfo::m_illuminationOffRange
IL_0193: ldfld System.Single UnityEngine.Vector2::x
IL_0198: ldloca.s 8 (ColossalFramework.Math.Randomizer)
IL_019A: ldc.i4 100000
IL_019F: call System.Int32
ColossalFramework.Math.Randomizer::Int32(System.UInt32 range)
IL_01A4: conv.r4
IL_01A5: ldc.r4 1E-05
IL_01AA: mul
IL_01AB: ldarg.1
IL_01AC: ldflda UnityEngine.Vector2 PropInfo::m_illuminationOffRange
IL_01B1: ldfld System.Single UnityEngine.Vector2::y
IL_01B6: ldarg.1
IL_01B7: ldflda UnityEngine.Vector2 PropInfo::m_illuminationOffRange
IL_01BC: ldfld System.Single UnityEngine.Vector2::x
IL_01C1: sub
IL_01C2: mul
IL_01C3: add
IL_01C4: stloc.s 6 (System.Single)
IL_01C6: ldarga.s 7
IL_01C8: ldloc.s 6 (System.Single)
IL_01CA: ldc.r4 0.01
IL_01CF: add
IL_01D0: ldloc.s 6 (System.Single)
IL_01D2: ldc.r4 0.01
IL_01D7: sub
IL_01D8: ldloc.s 7 (LightSystem)
IL_01DA: callvirt System.Single LightSystem::get_DayLightIntensity()
IL_01DF: call static System.Single MathUtils::SmoothStep(System.Single edge0,
System.Single edge1, System.Single x)
IL_01E4: stfld System.Single UnityEngine.Vector4::z
IL_01E9: ldarg.1
IL_01EA: ldfld BlinkType PropInfo::m_illuminationBlinkType
IL_01EF: brfalse => Label14
IL_01F4: ldarg.1
IL_01F5: ldfld BlinkType PropInfo::m_illuminationBlinkType
IL_01FA: call static UnityEngine.Vector4
LightEffect::GetBlinkVector(BlinkType type)
IL_01FF: stloc.s 9 (UnityEngine.Vector4)
IL_0201: ldloc.s 6 (System.Single)
IL_0203: ldc.r4 3.71
IL_0208: mul
IL_0209: call static SimulationManager
ColossalFramework.Singleton`1<SimulationManager>::get_instance()
IL_020E: ldfld System.Single SimulationManager::m_simulationTimer
IL_0213: ldloca.s 9 (UnityEngine.Vector4)
IL_0215: ldfld System.Single UnityEngine.Vector4::w
IL_021A: div
IL_021B: add
IL_021C: stloc.s 10 (System.Single)
IL_021E: ldloc.s 10 (System.Single)
IL_0220: ldloc.s 10 (System.Single)
IL_0222: call static System.Single UnityEngine.Mathf::Floor(System.Single f)
IL_0227: sub
IL_0228: ldloca.s 9 (UnityEngine.Vector4)
IL_022A: ldfld System.Single UnityEngine.Vector4::w
IL_022F: mul
IL_0230: stloc.s 10 (System.Single)
IL_0232: ldloca.s 9 (UnityEngine.Vector4)
IL_0234: ldfld System.Single UnityEngine.Vector4::x
IL_0239: ldloca.s 9 (UnityEngine.Vector4)
IL_023B: ldfld System.Single UnityEngine.Vector4::y
IL_0240: ldloc.s 10 (System.Single)
IL_0242: call static System.Single MathUtils::SmoothStep(System.Single edge0,
System.Single edge1, System.Single x)
IL_0247: stloc.s 11 (System.Single)
IL_0249: ldloca.s 9 (UnityEngine.Vector4)
IL_024B: ldfld System.Single UnityEngine.Vector4::w
IL_0250: ldloca.s 9 (UnityEngine.Vector4)
IL_0252: ldfld System.Single UnityEngine.Vector4::z
IL_0257: ldloc.s 10 (System.Single)
IL_0259: call static System.Single MathUtils::SmoothStep(System.Single edge0,
System.Single edge1, System.Single x)
IL_025E: stloc.s 12 (System.Single)
IL_0260: ldarga.s 7
IL_0262: dup
IL_0263: ldfld System.Single UnityEngine.Vector4::z
IL_0268: ldc.r4 1
IL_026D: ldloc.s 11 (System.Single)
IL_026F: ldloc.s 12 (System.Single)
IL_0271: mul
IL_0272: sub
IL_0273: mul
IL_0274: stfld System.Single UnityEngine.Vector4::z
IL_0279: Label14
IL_0279: br => Label15
IL_027E: Label13
IL_027E: ldarga.s 7
IL_0280: ldc.r4 1
IL_0285: stfld System.Single UnityEngine.Vector4::z
IL_028A: Label8
IL_028A: Label11
IL_028A: Label15
IL_028A: ldarg.0
IL_028B: brfalse => Label16
IL_0290: ldarg.0
IL_0291: ldarg.3
IL_0292: ldarg.1
IL_0293: ldfld System.Single PropInfo::m_lodRenderDistance
IL_0298: callvirt System.Boolean
CameraInfo::CheckRenderDistance(UnityEngine.Vector3 point, System.Single
maxDistance)
IL_029D: brfalse => Label17
IL_02A2: Label16
IL_02A2: ldloca.s 13 (UnityEngine.Matrix4x4)
IL_02A4: initobj UnityEngine.Matrix4x4
IL_02AA: ldloca.s 13 (UnityEngine.Matrix4x4)
IL_02AC: ldarg.3
IL_02AD: ldarg.s 5
IL_02AF: ldc.r4 57.29578
IL_02B4: mul
IL_02B5: call static UnityEngine.Vector3 UnityEngine.Vector3::get_down()
IL_02BA: call static UnityEngine.Quaternion
UnityEngine.Quaternion::AngleAxis(System.Single angle, UnityEngine.Vector3 axis)
IL_02BF: ldarg.s 4
IL_02C1: ldarg.s 4
IL_02C3: ldarg.s 4
IL_02C5: newobj System.Void UnityEngine.Vector3::.ctor(System.Single x,
System.Single y, System.Single z)
IL_02CA: call System.Void UnityEngine.Matrix4x4::SetTRS(UnityEngine.Vector3
pos, UnityEngine.Quaternion q, UnityEngine.Vector3 s)
IL_02CF: call static PropManager
ColossalFramework.Singleton`1<PropManager>::get_instance()
IL_02D4: stloc.s 14 (PropManager)
IL_02D6: ldloc.s 14 (PropManager)
IL_02D8: ldfld UnityEngine.MaterialPropertyBlock PropManager::m_materialBlock
IL_02DD: stloc.s 15 (UnityEngine.MaterialPropertyBlock)
IL_02DF: ldloc.s 15 (UnityEngine.MaterialPropertyBlock)
IL_02E1: callvirt System.Void UnityEngine.MaterialPropertyBlock::Clear()
IL_02E6: ldloc.s 15 (UnityEngine.MaterialPropertyBlock)
IL_02E8: ldloc.s 14 (PropManager)
IL_02EA: ldfld System.Int32 PropManager::ID_Color
IL_02EF: ldarg.s 6
IL_02F1: callvirt System.Void
UnityEngine.MaterialPropertyBlock::SetColor(System.Int32 nameID, UnityEngine.Color
value)
IL_02F6: ldloc.s 15 (UnityEngine.MaterialPropertyBlock)
IL_02F8: ldloc.s 14 (PropManager)
IL_02FA: ldfld System.Int32 PropManager::ID_ObjectIndex
IL_02FF: ldarg.s 7
IL_0301: callvirt System.Void
UnityEngine.MaterialPropertyBlock::SetVector(System.Int32 nameID,
UnityEngine.Vector4 value)
IL_0306: ldarg.1
IL_0307: ldfld UnityEngine.Vector4[] PropInfo::m_rollLocation
IL_030C: brfalse => Label18
IL_0311: ldarg.1
IL_0312: ldfld UnityEngine.Material PropInfo::m_material
IL_0317: ldloc.s 14 (PropManager)
IL_0319: ldfld System.Int32 PropManager::ID_RollLocation
IL_031E: ldarg.1
IL_031F: ldfld UnityEngine.Vector4[] PropInfo::m_rollLocation
IL_0324: callvirt System.Void UnityEngine.Material::SetVectorArray(System.Int32
nameID, UnityEngine.Vector4[] values)
IL_0329: ldarg.1
IL_032A: ldfld UnityEngine.Material PropInfo::m_material
IL_032F: ldloc.s 14 (PropManager)
IL_0331: ldfld System.Int32 PropManager::ID_RollParams
IL_0336: ldarg.1
IL_0337: ldfld UnityEngine.Vector4[] PropInfo::m_rollParams
IL_033C: callvirt System.Void UnityEngine.Material::SetVectorArray(System.Int32
nameID, UnityEngine.Vector4[] values)
IL_0341: Label18
IL_0341: ldloc.s 14 (PropManager)
IL_0343: ldflda DrawCallData SimulationManagerBase`2<PropManager,
PropProperties>::m_drawCallData
IL_0348: dup
IL_0349: ldfld System.Int32 DrawCallData::m_defaultCalls
IL_034E: ldc.i4.1
IL_034F: add
IL_0350: stfld System.Int32 DrawCallData::m_defaultCalls
IL_0355: ldarg.1
IL_0356: ldfld UnityEngine.Mesh PropInfo::m_mesh
IL_035B: ldloc.s 13 (UnityEngine.Matrix4x4)
IL_035D: ldarg.1
IL_035E: ldfld UnityEngine.Material PropInfo::m_material
IL_0363: ldarg.1
IL_0364: ldfld System.Int32 PrefabInfo::m_prefabDataLayer
IL_0369: ldnull
IL_036A: ldc.i4.0
IL_036B: ldloc.s 15 (UnityEngine.MaterialPropertyBlock)
IL_036D: call static System.Void
UnityEngine.Graphics::DrawMesh(UnityEngine.Mesh mesh, UnityEngine.Matrix4x4 matrix,
UnityEngine.Material material, System.Int32 layer, UnityEngine.Camera camera,
System.Int32 submeshIndex, UnityEngine.MaterialPropertyBlock properties)
IL_0372: br => Label19
IL_0377: Label17
IL_0377: ldarg.1
IL_0378: ldfld UnityEngine.Material PropInfo::m_lodMaterialCombined
IL_037D: ldnull
IL_037E: call static System.Boolean
UnityEngine.Object::op_Equality(UnityEngine.Object x, UnityEngine.Object y)
IL_0383: brfalse => Label20
IL_0388: ldloca.s 16 (UnityEngine.Matrix4x4)
IL_038A: initobj UnityEngine.Matrix4x4
IL_0390: ldloca.s 16 (UnityEngine.Matrix4x4)
IL_0392: ldarg.3
IL_0393: ldarg.s 5
IL_0395: ldc.r4 57.29578
IL_039A: mul
IL_039B: call static UnityEngine.Vector3 UnityEngine.Vector3::get_down()
IL_03A0: call static UnityEngine.Quaternion
UnityEngine.Quaternion::AngleAxis(System.Single angle, UnityEngine.Vector3 axis)
IL_03A5: ldarg.s 4
IL_03A7: ldarg.s 4
IL_03A9: ldarg.s 4
IL_03AB: newobj System.Void UnityEngine.Vector3::.ctor(System.Single x,
System.Single y, System.Single z)
IL_03B0: call System.Void UnityEngine.Matrix4x4::SetTRS(UnityEngine.Vector3
pos, UnityEngine.Quaternion q, UnityEngine.Vector3 s)
IL_03B5: call static PropManager
ColossalFramework.Singleton`1<PropManager>::get_instance()
IL_03BA: stloc.s 17 (PropManager)
IL_03BC: ldloc.s 17 (PropManager)
IL_03BE: ldfld UnityEngine.MaterialPropertyBlock PropManager::m_materialBlock
IL_03C3: stloc.s 18 (UnityEngine.MaterialPropertyBlock)
IL_03C5: ldloc.s 18 (UnityEngine.MaterialPropertyBlock)
IL_03C7: callvirt System.Void UnityEngine.MaterialPropertyBlock::Clear()
IL_03CC: ldloc.s 18 (UnityEngine.MaterialPropertyBlock)
IL_03CE: ldloc.s 17 (PropManager)
IL_03D0: ldfld System.Int32 PropManager::ID_Color
IL_03D5: ldarg.s 6
IL_03D7: callvirt System.Void
UnityEngine.MaterialPropertyBlock::SetColor(System.Int32 nameID, UnityEngine.Color
value)
IL_03DC: ldloc.s 18 (UnityEngine.MaterialPropertyBlock)
IL_03DE: ldloc.s 17 (PropManager)
IL_03E0: ldfld System.Int32 PropManager::ID_ObjectIndex
IL_03E5: ldarg.s 7
IL_03E7: callvirt System.Void
UnityEngine.MaterialPropertyBlock::SetVector(System.Int32 nameID,
UnityEngine.Vector4 value)
IL_03EC: ldarg.1
IL_03ED: ldfld UnityEngine.Vector4[] PropInfo::m_rollLocation
IL_03F2: brfalse => Label21
IL_03F7: ldarg.1
IL_03F8: ldfld UnityEngine.Material PropInfo::m_material
IL_03FD: ldloc.s 17 (PropManager)
IL_03FF: ldfld System.Int32 PropManager::ID_RollLocation
IL_0404: ldarg.1
IL_0405: ldfld UnityEngine.Vector4[] PropInfo::m_rollLocation
IL_040A: callvirt System.Void UnityEngine.Material::SetVectorArray(System.Int32
nameID, UnityEngine.Vector4[] values)
IL_040F: ldarg.1
IL_0410: ldfld UnityEngine.Material PropInfo::m_material
IL_0415: ldloc.s 17 (PropManager)
IL_0417: ldfld System.Int32 PropManager::ID_RollParams
IL_041C: ldarg.1
IL_041D: ldfld UnityEngine.Vector4[] PropInfo::m_rollParams
IL_0422: callvirt System.Void UnityEngine.Material::SetVectorArray(System.Int32
nameID, UnityEngine.Vector4[] values)
IL_0427: Label21
IL_0427: ldloc.s 17 (PropManager)
IL_0429: ldflda DrawCallData SimulationManagerBase`2<PropManager,
PropProperties>::m_drawCallData
IL_042E: dup
IL_042F: ldfld System.Int32 DrawCallData::m_defaultCalls
IL_0434: ldc.i4.1
IL_0435: add
IL_0436: stfld System.Int32 DrawCallData::m_defaultCalls
IL_043B: ldarg.1
IL_043C: ldfld UnityEngine.Mesh PropInfo::m_lodMesh
IL_0441: ldloc.s 16 (UnityEngine.Matrix4x4)
IL_0443: ldarg.1
IL_0444: ldfld UnityEngine.Material PropInfo::m_lodMaterial
IL_0449: ldarg.1
IL_044A: ldfld System.Int32 PrefabInfo::m_prefabDataLayer
IL_044F: ldnull
IL_0450: ldc.i4.0
IL_0451: ldloc.s 18 (UnityEngine.MaterialPropertyBlock)
IL_0453: call static System.Void
UnityEngine.Graphics::DrawMesh(UnityEngine.Mesh mesh, UnityEngine.Matrix4x4 matrix,
UnityEngine.Material material, System.Int32 layer, UnityEngine.Camera camera,
System.Int32 submeshIndex, UnityEngine.MaterialPropertyBlock properties)
IL_0458: br => Label22
IL_045D: Label20
IL_045D: ldarga.s 7
IL_045F: ldarg.s 4
IL_0461: stfld System.Single UnityEngine.Vector4::w
IL_0466: ldarg.1
IL_0467: ldfld UnityEngine.Vector4[] PropInfo::m_lodLocations
IL_046C: ldarg.1
IL_046D: ldfld System.Int32 PropInfo::m_lodCount
IL_0472: ldelema UnityEngine.Vector4
IL_0477: ldarga.s 3
IL_0479: ldfld System.Single UnityEngine.Vector3::x
IL_047E: ldarga.s 3
IL_0480: ldfld System.Single UnityEngine.Vector3::y
IL_0485: ldarga.s 3
IL_0487: ldfld System.Single UnityEngine.Vector3::z
IL_048C: ldarg.s 5
IL_048E: newobj System.Void UnityEngine.Vector4::.ctor(System.Single x,
System.Single y, System.Single z, System.Single w)
IL_0493: stobj UnityEngine.Vector4
IL_0498: ldarg.1
IL_0499: ldfld UnityEngine.Vector4[] PropInfo::m_lodObjectIndices
IL_049E: ldarg.1
IL_049F: ldfld System.Int32 PropInfo::m_lodCount
IL_04A4: ldelema UnityEngine.Vector4
IL_04A9: ldarg.s 7
IL_04AB: stobj UnityEngine.Vector4
IL_04B0: ldarg.1
IL_04B1: ldfld UnityEngine.Vector4[] PropInfo::m_lodColors
IL_04B6: ldarg.1
IL_04B7: ldfld System.Int32 PropInfo::m_lodCount
IL_04BC: ldelema UnityEngine.Vector4
IL_04C1: ldarga.s 6
IL_04C3: call UnityEngine.Color UnityEngine.Color::get_linear()
IL_04C8: call static UnityEngine.Vector4
UnityEngine.Color::op_Implicit(UnityEngine.Color c)
IL_04CD: stobj UnityEngine.Vector4
IL_04D2: ldarg.1
IL_04D3: ldarg.1
IL_04D4: ldfld UnityEngine.Vector3 PropInfo::m_lodMin
IL_04D9: ldarg.3
IL_04DA: call static UnityEngine.Vector3
UnityEngine.Vector3::Min(UnityEngine.Vector3 lhs, UnityEngine.Vector3 rhs)
IL_04DF: stfld UnityEngine.Vector3 PropInfo::m_lodMin
IL_04E4: ldarg.1
IL_04E5: ldarg.1
IL_04E6: ldfld UnityEngine.Vector3 PropInfo::m_lodMax
IL_04EB: ldarg.3
IL_04EC: call static UnityEngine.Vector3
UnityEngine.Vector3::Max(UnityEngine.Vector3 lhs, UnityEngine.Vector3 rhs)
IL_04F1: stfld UnityEngine.Vector3 PropInfo::m_lodMax
IL_04F6: ldarg.1
IL_04F7: dup
IL_04F8: ldfld System.Int32 PropInfo::m_lodCount
IL_04FD: ldc.i4.1
IL_04FE: add
IL_04FF: dup
IL_0500: stloc.s 19 (System.Int32)
IL_0502: stfld System.Int32 PropInfo::m_lodCount
IL_0507: ldloc.s 19 (System.Int32)
IL_0509: ldarg.1
IL_050A: ldfld UnityEngine.Vector4[] PropInfo::m_lodLocations
IL_050F: ldlen
IL_0510: conv.i4
IL_0511: bne.un => Label23
IL_0516: ldarg.0
IL_0517: ldarg.1
IL_0518: call static System.Void PropInstance::RenderLod(CameraInfo
cameraInfo, PropInfo info)
IL_051D: // end original
IL_051D: Label0
IL_051D: Label6
IL_051D: Label7
IL_051D: Label19
IL_051D: Label22
IL_051D: Label23
IL_051D: ret
DONE

### Patch: virtual System.Void LightEffect::PopulateGroupData(System.Int32 layer,


InstanceID id, UnityEngine.Vector3 pos, UnityEngine.Vector3 dir, 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
LightEffect::LightEffect.PopulateGroupData_Patch1(LightEffect this, System.Int32
layer, InstanceID id, UnityEngine.Vector3 pos, UnityEngine.Vector3 dir,
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.Boolean
IL_0000: Local var 1: UnityEngine.Vector3
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.Quaternion
IL_0000: Local var 7: UnityEngine.Vector4
IL_0000: Local var 8: UnityEngine.Vector2
IL_0000: Local var 9: ColossalFramework.Math.Randomizer
IL_0000: Local var 10: UnityEngine.Vector2
IL_0000: Local var 11: UnityEngine.Vector2
IL_0000: Local var 12: UnityEngine.Vector2
IL_0000: Local var 13: System.UInt16
IL_0000: Local var 14: UnityEngine.Vector3
IL_0000: Local var 15: UnityEngine.Color
IL_0000: Local var 16: UnityEngine.Color
IL_0000: Local var 17: System.Single
IL_0000: Local var 18: System.Single
IL_0000: Local var 19: System.Int32
IL_0000: Local var 20: System.Boolean
IL_0000: ldc.i4 0
IL_0005: stloc 20 (System.Boolean)
IL_0009: ldc.i4.1
IL_000A: stloc 20 (System.Boolean)
IL_000E: ldloc 20 (System.Boolean)
IL_0012: brfalse => Label1
IL_0017: ldarg 2
IL_001B: call static System.Boolean
ElectricRoads.Overrides.ElectricRoadsOverrides::CheckElectrityNetForLight(InstanceI
D id)
IL_0020: stloc 20 (System.Boolean)
IL_0024: Label1
IL_0024: nop
IL_0025: ldloc 20 (System.Boolean)
IL_0029: brfalse => Label0
IL_002E: // start original
IL_002E: ldarg.1
IL_002F: ldarg.0
IL_0030: ldfld System.Int32 LightEffect::m_groupLayer
IL_0035: beq => Label2
IL_003A: ldarg.1
IL_003B: ldarg.0
IL_003C: ldfld System.Int32 LightEffect::m_groupLayerFloating
IL_0041: bne.un => Label3
IL_0046: Label2
IL_0046: ldarg.1
IL_0047: ldarg.0
IL_0048: ldfld System.Int32 LightEffect::m_groupLayerFloating
IL_004D: ceq
IL_004F: stloc.0
IL_0050: ldloca.s 1 (UnityEngine.Vector3)
IL_0052: ldarg.0
IL_0053: ldfld System.Single LightEffect::m_lightRange
IL_0058: ldarg.0
IL_0059: ldfld System.Single LightEffect::m_lightRange
IL_005E: ldarg.0
IL_005F: ldfld System.Single LightEffect::m_lightRange
IL_0064: call System.Void UnityEngine.Vector3::.ctor(System.Single x,
System.Single y, System.Single z)
IL_0069: ldarg.3
IL_006A: ldloc.1
IL_006B: call static UnityEngine.Vector3
UnityEngine.Vector3::op_Subtraction(UnityEngine.Vector3 a, UnityEngine.Vector3 b)
IL_0070: stloc.2
IL_0071: ldarg.3
IL_0072: ldloc.1
IL_0073: call static UnityEngine.Vector3
UnityEngine.Vector3::op_Addition(UnityEngine.Vector3 a, UnityEngine.Vector3 b)
IL_0078: stloc.3
IL_0079: ldarg.s 9
IL_007B: ldarg.s 9
IL_007D: ldobj UnityEngine.Vector3
IL_0082: ldloc.2
IL_0083: call static UnityEngine.Vector3
UnityEngine.Vector3::Min(UnityEngine.Vector3 lhs, UnityEngine.Vector3 rhs)
IL_0088: stobj UnityEngine.Vector3
IL_008D: ldarg.s 10
IL_008F: ldarg.s 10
IL_0091: ldobj UnityEngine.Vector3
IL_0096: ldloc.3
IL_0097: call static UnityEngine.Vector3
UnityEngine.Vector3::Max(UnityEngine.Vector3 lhs, UnityEngine.Vector3 rhs)
IL_009C: stobj UnityEngine.Vector3
IL_00A1: ldarg.3
IL_00A2: ldarg.s 7
IL_00A4: call static UnityEngine.Vector3
UnityEngine.Vector3::op_Subtraction(UnityEngine.Vector3 a, UnityEngine.Vector3 b)
IL_00A9: stloc.s 4 (UnityEngine.Vector3)
IL_00AB: ldarg.s 11
IL_00AD: ldarg.s 11
IL_00AF: ldind.r4
IL_00B0: ldc.r4 30000
IL_00B5: call static System.Single UnityEngine.Mathf::Max(System.Single a,
System.Single b)
IL_00BA: stind.r4
IL_00BB: ldarg.0
IL_00BC: ldfld UnityEngine.LightType LightEffect::m_lightType
IL_00C1: brtrue => Label4
IL_00C6: ldarg.s 4
IL_00C8: call static UnityEngine.Quaternion
UnityEngine.Quaternion::LookRotation(UnityEngine.Vector3 forward)
IL_00CD: stloc.s 6 (UnityEngine.Quaternion)
IL_00CF: ldloc.s 6 (UnityEngine.Quaternion)
IL_00D1: ldarg.0
IL_00D2: ldfld UnityEngine.Quaternion LightEffect::m_lightRotation
IL_00D7: call static UnityEngine.Vector3 UnityEngine.Vector3::get_forward()
IL_00DC: call static UnityEngine.Vector3
UnityEngine.Quaternion::op_Multiply(UnityEngine.Quaternion rotation,
UnityEngine.Vector3 point)
IL_00E1: call static UnityEngine.Vector3
UnityEngine.Quaternion::op_Multiply(UnityEngine.Quaternion rotation,
UnityEngine.Vector3 point)
IL_00E6: stloc.s 5 (UnityEngine.Vector3)
IL_00E8: br => Label5
IL_00ED: Label4
IL_00ED: call static UnityEngine.Vector3 UnityEngine.Vector3::get_forward()
IL_00F2: stloc.s 5 (UnityEngine.Vector3)
IL_00F4: Label5
IL_00F4: ldloca.s 7 (UnityEngine.Vector4)
IL_00F6: ldloca.s 5 (UnityEngine.Vector3)
IL_00F8: ldfld System.Single UnityEngine.Vector3::x
IL_00FD: ldloca.s 5 (UnityEngine.Vector3)
IL_00FF: ldfld System.Single UnityEngine.Vector3::y
IL_0104: ldloca.s 5 (UnityEngine.Vector3)
IL_0106: ldfld System.Single UnityEngine.Vector3::z
IL_010B: ldc.r4 100000
IL_0110: call System.Void UnityEngine.Vector4::.ctor(System.Single x,
System.Single y, System.Single z, System.Single w)
IL_0115: ldarg.0
IL_0116: ldfld UnityEngine.LightType LightEffect::m_lightType
IL_011B: brtrue => Label6
IL_0120: ldloca.s 7 (UnityEngine.Vector4)
IL_0122: ldc.r4 0.01745329
IL_0127: ldarg.0
IL_0128: ldfld System.Single LightEffect::m_lightSpotAngle
IL_012D: mul
IL_012E: ldc.r4 0.5
IL_0133: mul
IL_0134: call static System.Single UnityEngine.Mathf::Cos(System.Single f)
IL_0139: neg
IL_013A: stfld System.Single UnityEngine.Vector4::w
IL_013F: Label6
IL_013F: ldloca.s 8 (UnityEngine.Vector2)
IL_0141: ldc.r4 1
IL_0146: ldarg.0
IL_0147: ldfld System.Single LightEffect::m_lightRange
IL_014C: ldarg.0
IL_014D: ldfld System.Single LightEffect::m_lightRange
IL_0152: mul
IL_0153: div
IL_0154: ldarg.0
IL_0155: ldfld System.Single LightEffect::m_lightIntensity
IL_015A: call System.Void UnityEngine.Vector2::.ctor(System.Single x,
System.Single y)
IL_015F: ldloca.s 9 (ColossalFramework.Math.Randomizer)
IL_0161: ldarga.s 2
IL_0163: call System.UInt32 InstanceID::get_Index()
IL_0168: call System.Void
ColossalFramework.Math.Randomizer::.ctor(System.UInt32 _seed)
IL_016D: ldloca.s 10 (UnityEngine.Vector2)
IL_016F: ldarg.0
IL_0170: ldflda UnityEngine.Vector2 LightEffect::m_offRange
IL_0175: ldfld System.Single UnityEngine.Vector2::x
IL_017A: ldloca.s 9 (ColossalFramework.Math.Randomizer)
IL_017C: ldc.i4 100000
IL_0181: call System.Int32
ColossalFramework.Math.Randomizer::Int32(System.UInt32 range)
IL_0186: conv.r4
IL_0187: ldc.r4 1E-05
IL_018C: mul
IL_018D: ldarg.0
IL_018E: ldflda UnityEngine.Vector2 LightEffect::m_offRange
IL_0193: ldfld System.Single UnityEngine.Vector2::y
IL_0198: ldarg.0
IL_0199: ldflda UnityEngine.Vector2 LightEffect::m_offRange
IL_019E: ldfld System.Single UnityEngine.Vector2::x
IL_01A3: sub
IL_01A4: mul
IL_01A5: add
IL_01A6: stfld System.Single UnityEngine.Vector2::x
IL_01AB: ldloca.s 10 (UnityEngine.Vector2)
IL_01AD: ldarg.0
IL_01AE: ldfld BlinkType LightEffect::m_blinkType
IL_01B3: conv.r4
IL_01B4: stfld System.Single UnityEngine.Vector2::y
IL_01B9: ldarg.2
IL_01BA: call static System.UInt16 EffectInfo::GetBuilding(InstanceID id)
IL_01BF: stloc.s 13 (System.UInt16)
IL_01C1: ldloc.s 13 (System.UInt16)
IL_01C3: brfalse => Label7
IL_01C8: ldloc.s 13 (System.UInt16)
IL_01CA: call static UnityEngine.Vector4
RenderManager::GetColorLocation(System.UInt32 instanceHolder)
IL_01CF: call static UnityEngine.Vector2
UnityEngine.Vector4::op_Implicit(UnityEngine.Vector4 v)
IL_01D4: stloc.s 11 (UnityEngine.Vector2)
IL_01D6: ldloc.0
IL_01D7: brfalse => Label8
IL_01DC: call static BuildingManager
ColossalFramework.Singleton`1<BuildingManager>::get_instance()
IL_01E1: ldfld Array16`1<Building> BuildingManager::m_buildings
IL_01E6: ldfld Building[] Array16`1<Building>::m_buffer
IL_01EB: ldloc.s 13 (System.UInt16)
IL_01ED: ldelema Building
IL_01F2: call UnityEngine.Vector3 Building::CalculateMeshPosition()
IL_01F7: stloc.s 14 (UnityEngine.Vector3)
IL_01F9: ldloc.s 14 (UnityEngine.Vector3)
IL_01FB: call static UnityEngine.Vector2
ColossalFramework.Math.VectorUtils::XZ(UnityEngine.Vector3 v)
IL_0200: stloc.s 12 (UnityEngine.Vector2)
IL_0202: ldarga.s 3
IL_0204: dup
IL_0205: ldfld System.Single UnityEngine.Vector3::y
IL_020A: ldloca.s 14 (UnityEngine.Vector3)
IL_020C: ldfld System.Single UnityEngine.Vector3::y
IL_0211: sub
IL_0212: stfld System.Single UnityEngine.Vector3::y
IL_0217: ldloca.s 4 (UnityEngine.Vector3)
IL_0219: dup
IL_021A: ldfld System.Single UnityEngine.Vector3::y
IL_021F: ldloca.s 14 (UnityEngine.Vector3)
IL_0221: ldfld System.Single UnityEngine.Vector3::y
IL_0226: sub
IL_0227: stfld System.Single UnityEngine.Vector3::y
IL_022C: br => Label9
IL_0231: Label8
IL_0231: call static UnityEngine.Vector2 UnityEngine.Vector2::get_zero()
IL_0236: stloc.s 12 (UnityEngine.Vector2)
IL_0238: Label9
IL_0238: br => Label10
IL_023D: Label7
IL_023D: ldsfld UnityEngine.Vector4 RenderManager::DefaultColorLocation
IL_0242: call static UnityEngine.Vector2
UnityEngine.Vector4::op_Implicit(UnityEngine.Vector4 v)
IL_0247: stloc.s 11 (UnityEngine.Vector2)
IL_0249: call static UnityEngine.Vector2 UnityEngine.Vector2::get_zero()
IL_024E: stloc.s 12 (UnityEngine.Vector2)
IL_0250: Label10
IL_0250: ldarg.0
IL_0251: ldfld UnityEngine.Color LightEffect::m_lightColor
IL_0256: stloc.s 15 (UnityEngine.Color)
IL_0258: ldarg.0
IL_0259: ldfld UnityEngine.Color[] LightEffect::m_variationColors
IL_025E: brfalse => Label11
IL_0263: ldarg.0
IL_0264: ldfld UnityEngine.Color[] LightEffect::m_variationColors
IL_0269: ldlen
IL_026A: conv.i4
IL_026B: brfalse => Label12
IL_0270: ldarg.0
IL_0271: ldfld UnityEngine.Color[] LightEffect::m_variationColors
IL_0276: ldloca.s 9 (ColossalFramework.Math.Randomizer)
IL_0278: ldarg.0
IL_0279: ldfld UnityEngine.Color[] LightEffect::m_variationColors
IL_027E: ldlen
IL_027F: conv.i4
IL_0280: call System.Int32
ColossalFramework.Math.Randomizer::Int32(System.UInt32 range)
IL_0285: ldelema UnityEngine.Color
IL_028A: ldobj UnityEngine.Color
IL_028F: stloc.s 16 (UnityEngine.Color)
IL_0291: ldloc.s 15 (UnityEngine.Color)
IL_0293: ldloc.s 16 (UnityEngine.Color)
IL_0295: ldloca.s 9 (ColossalFramework.Math.Randomizer)
IL_0297: ldc.i4 1000
IL_029C: call System.Int32
ColossalFramework.Math.Randomizer::Int32(System.UInt32 range)
IL_02A1: conv.r4
IL_02A2: ldc.r4 0.001
IL_02A7: mul
IL_02A8: call static UnityEngine.Color
UnityEngine.Color::Lerp(UnityEngine.Color a, UnityEngine.Color b, System.Single t)
IL_02AD: stloc.s 15 (UnityEngine.Color)
IL_02AF: Label11
IL_02AF: Label12
IL_02AF: ldloca.s 15 (UnityEngine.Color)
IL_02B1: call UnityEngine.Color UnityEngine.Color::get_linear()
IL_02B6: stloc.s 15 (UnityEngine.Color)
IL_02B8: ldloca.s 15 (UnityEngine.Color)
IL_02BA: ldarg.0
IL_02BB: ldfld UnityEngine.LightType LightEffect::m_lightType
IL_02C0: brtrue => Label13
IL_02C5: ldarg.0
IL_02C6: ldfld System.Single LightEffect::m_spotLeaking
IL_02CB: br => Label14
IL_02D0: Label13
IL_02D0: ldc.r4 0
IL_02D5: Label14
IL_02D5: stfld System.Single UnityEngine.Color::a
IL_02DA: ldarg.0
IL_02DB: ldfld System.Single LightEffect::m_lightRange
IL_02E0: ldc.r4 0.5235988
IL_02E5: call static System.Single UnityEngine.Mathf::Cos(System.Single f)
IL_02EA: div
IL_02EB: stloc.s 17 (System.Single)
IL_02ED: ldloc.s 17 (System.Single)
IL_02EF: ldc.r4 0.5
IL_02F4: mul
IL_02F5: stloc.s 18 (System.Single)
IL_02F7: ldarg.s 8
IL_02F9: ldfld UnityEngine.Vector3[] MeshData::m_vertices
IL_02FE: ldarg.s 5
IL_0300: ldind.i4
IL_0301: ldelema UnityEngine.Vector3
IL_0306: ldloca.s 4 (UnityEngine.Vector3)
IL_0308: ldfld System.Single UnityEngine.Vector3::x
IL_030D: ldloc.s 18 (System.Single)
IL_030F: sub
IL_0310: ldloca.s 4 (UnityEngine.Vector3)
IL_0312: ldfld System.Single UnityEngine.Vector3::y
IL_0317: ldarg.0
IL_0318: ldfld System.Single LightEffect::m_lightRange
IL_031D: add
IL_031E: ldloca.s 4 (UnityEngine.Vector3)
IL_0320: ldfld System.Single UnityEngine.Vector3::z
IL_0325: ldarg.0
IL_0326: ldfld System.Single LightEffect::m_lightRange
IL_032B: add
IL_032C: newobj System.Void UnityEngine.Vector3::.ctor(System.Single x,
System.Single y, System.Single z)
IL_0331: stobj UnityEngine.Vector3
IL_0336: ldarg.s 8
IL_0338: ldfld UnityEngine.Vector3[] MeshData::m_normals
IL_033D: ldarg.s 5
IL_033F: ldind.i4
IL_0340: ldelema UnityEngine.Vector3
IL_0345: ldarg.3
IL_0346: stobj UnityEngine.Vector3
IL_034B: ldarg.s 8
IL_034D: ldfld UnityEngine.Vector4[] MeshData::m_tangents
IL_0352: ldarg.s 5
IL_0354: ldind.i4
IL_0355: ldelema UnityEngine.Vector4
IL_035A: ldloc.s 7 (UnityEngine.Vector4)
IL_035C: stobj UnityEngine.Vector4
IL_0361: ldarg.s 8
IL_0363: ldfld UnityEngine.Vector2[] MeshData::m_uvs
IL_0368: ldarg.s 5
IL_036A: ldind.i4
IL_036B: ldelema UnityEngine.Vector2
IL_0370: ldloc.s 8 (UnityEngine.Vector2)
IL_0372: stobj UnityEngine.Vector2
IL_0377: ldarg.s 8
IL_0379: ldfld UnityEngine.Vector2[] MeshData::m_uvs2
IL_037E: ldarg.s 5
IL_0380: ldind.i4
IL_0381: ldelema UnityEngine.Vector2
IL_0386: ldloc.s 10 (UnityEngine.Vector2)
IL_0388: stobj UnityEngine.Vector2
IL_038D: ldarg.s 8
IL_038F: ldfld UnityEngine.Vector2[] MeshData::m_uvs3
IL_0394: ldarg.s 5
IL_0396: ldind.i4
IL_0397: ldelema UnityEngine.Vector2
IL_039C: ldloc.s 11 (UnityEngine.Vector2)
IL_039E: stobj UnityEngine.Vector2
IL_03A3: ldloc.0
IL_03A4: brfalse => Label15
IL_03A9: ldarg.s 8
IL_03AB: ldfld UnityEngine.Vector2[] MeshData::m_uvs4
IL_03B0: ldarg.s 5
IL_03B2: ldind.i4
IL_03B3: ldelema UnityEngine.Vector2
IL_03B8: ldloc.s 12 (UnityEngine.Vector2)
IL_03BA: stobj UnityEngine.Vector2
IL_03BF: Label15
IL_03BF: ldarg.s 8
IL_03C1: ldfld UnityEngine.Color32[] MeshData::m_colors
IL_03C6: ldarg.s 5
IL_03C8: ldind.i4
IL_03C9: ldelema UnityEngine.Color32
IL_03CE: ldloc.s 15 (UnityEngine.Color)
IL_03D0: call static UnityEngine.Color32
UnityEngine.Color32::op_Implicit(UnityEngine.Color c)
IL_03D5: stobj UnityEngine.Color32
IL_03DA: ldarg.s 5
IL_03DC: ldarg.s 5
IL_03DE: ldind.i4
IL_03DF: ldc.i4.1
IL_03E0: add
IL_03E1: stind.i4
IL_03E2: ldarg.s 8
IL_03E4: ldfld UnityEngine.Vector3[] MeshData::m_vertices
IL_03E9: ldarg.s 5
IL_03EB: ldind.i4
IL_03EC: ldelema UnityEngine.Vector3
IL_03F1: ldloca.s 4 (UnityEngine.Vector3)
IL_03F3: ldfld System.Single UnityEngine.Vector3::x
IL_03F8: ldloc.s 18 (System.Single)
IL_03FA: add
IL_03FB: ldloca.s 4 (UnityEngine.Vector3)
IL_03FD: ldfld System.Single UnityEngine.Vector3::y
IL_0402: ldarg.0
IL_0403: ldfld System.Single LightEffect::m_lightRange
IL_0408: add
IL_0409: ldloca.s 4 (UnityEngine.Vector3)
IL_040B: ldfld System.Single UnityEngine.Vector3::z
IL_0410: ldarg.0
IL_0411: ldfld System.Single LightEffect::m_lightRange
IL_0416: add
IL_0417: newobj System.Void UnityEngine.Vector3::.ctor(System.Single x,
System.Single y, System.Single z)
IL_041C: stobj UnityEngine.Vector3
IL_0421: ldarg.s 8
IL_0423: ldfld UnityEngine.Vector3[] MeshData::m_normals
IL_0428: ldarg.s 5
IL_042A: ldind.i4
IL_042B: ldelema UnityEngine.Vector3
IL_0430: ldarg.3
IL_0431: stobj UnityEngine.Vector3
IL_0436: ldarg.s 8
IL_0438: ldfld UnityEngine.Vector4[] MeshData::m_tangents
IL_043D: ldarg.s 5
IL_043F: ldind.i4
IL_0440: ldelema UnityEngine.Vector4
IL_0445: ldloc.s 7 (UnityEngine.Vector4)
IL_0447: stobj UnityEngine.Vector4
IL_044C: ldarg.s 8
IL_044E: ldfld UnityEngine.Vector2[] MeshData::m_uvs
IL_0453: ldarg.s 5
IL_0455: ldind.i4
IL_0456: ldelema UnityEngine.Vector2
IL_045B: ldloc.s 8 (UnityEngine.Vector2)
IL_045D: stobj UnityEngine.Vector2
IL_0462: ldarg.s 8
IL_0464: ldfld UnityEngine.Vector2[] MeshData::m_uvs2
IL_0469: ldarg.s 5
IL_046B: ldind.i4
IL_046C: ldelema UnityEngine.Vector2
IL_0471: ldloc.s 10 (UnityEngine.Vector2)
IL_0473: stobj UnityEngine.Vector2
IL_0478: ldarg.s 8
IL_047A: ldfld UnityEngine.Vector2[] MeshData::m_uvs3
IL_047F: ldarg.s 5
IL_0481: ldind.i4
IL_0482: ldelema UnityEngine.Vector2
IL_0487: ldloc.s 11 (UnityEngine.Vector2)
IL_0489: stobj UnityEngine.Vector2
IL_048E: ldloc.0
IL_048F: brfalse => Label16
IL_0494: ldarg.s 8
IL_0496: ldfld UnityEngine.Vector2[] MeshData::m_uvs4
IL_049B: ldarg.s 5
IL_049D: ldind.i4
IL_049E: ldelema UnityEngine.Vector2
IL_04A3: ldloc.s 12 (UnityEngine.Vector2)
IL_04A5: stobj UnityEngine.Vector2
IL_04AA: Label16
IL_04AA: ldarg.s 8
IL_04AC: ldfld UnityEngine.Color32[] MeshData::m_colors
IL_04B1: ldarg.s 5
IL_04B3: ldind.i4
IL_04B4: ldelema UnityEngine.Color32
IL_04B9: ldloc.s 15 (UnityEngine.Color)
IL_04BB: call static UnityEngine.Color32
UnityEngine.Color32::op_Implicit(UnityEngine.Color c)
IL_04C0: stobj UnityEngine.Color32
IL_04C5: ldarg.s 5
IL_04C7: ldarg.s 5
IL_04C9: ldind.i4
IL_04CA: ldc.i4.1
IL_04CB: add
IL_04CC: stind.i4
IL_04CD: ldarg.s 8
IL_04CF: ldfld UnityEngine.Vector3[] MeshData::m_vertices
IL_04D4: ldarg.s 5
IL_04D6: ldind.i4
IL_04D7: ldelema UnityEngine.Vector3
IL_04DC: ldloca.s 4 (UnityEngine.Vector3)
IL_04DE: ldfld System.Single UnityEngine.Vector3::x
IL_04E3: ldloc.s 17 (System.Single)
IL_04E5: add
IL_04E6: ldloca.s 4 (UnityEngine.Vector3)
IL_04E8: ldfld System.Single UnityEngine.Vector3::y
IL_04ED: ldloca.s 4 (UnityEngine.Vector3)
IL_04EF: ldfld System.Single UnityEngine.Vector3::z
IL_04F4: ldarg.0
IL_04F5: ldfld System.Single LightEffect::m_lightRange
IL_04FA: add
IL_04FB: newobj System.Void UnityEngine.Vector3::.ctor(System.Single x,
System.Single y, System.Single z)
IL_0500: stobj UnityEngine.Vector3
IL_0505: ldarg.s 8
IL_0507: ldfld UnityEngine.Vector3[] MeshData::m_normals
IL_050C: ldarg.s 5
IL_050E: ldind.i4
IL_050F: ldelema UnityEngine.Vector3
IL_0514: ldarg.3
IL_0515: stobj UnityEngine.Vector3
IL_051A: ldarg.s 8
IL_051C: ldfld UnityEngine.Vector4[] MeshData::m_tangents
IL_0521: ldarg.s 5
IL_0523: ldind.i4
IL_0524: ldelema UnityEngine.Vector4
IL_0529: ldloc.s 7 (UnityEngine.Vector4)
IL_052B: stobj UnityEngine.Vector4
IL_0530: ldarg.s 8
IL_0532: ldfld UnityEngine.Vector2[] MeshData::m_uvs
IL_0537: ldarg.s 5
IL_0539: ldind.i4
IL_053A: ldelema UnityEngine.Vector2
IL_053F: ldloc.s 8 (UnityEngine.Vector2)
IL_0541: stobj UnityEngine.Vector2
IL_0546: ldarg.s 8
IL_0548: ldfld UnityEngine.Vector2[] MeshData::m_uvs2
IL_054D: ldarg.s 5
IL_054F: ldind.i4
IL_0550: ldelema UnityEngine.Vector2
IL_0555: ldloc.s 10 (UnityEngine.Vector2)
IL_0557: stobj UnityEngine.Vector2
IL_055C: ldarg.s 8
IL_055E: ldfld UnityEngine.Vector2[] MeshData::m_uvs3
IL_0563: ldarg.s 5
IL_0565: ldind.i4
IL_0566: ldelema UnityEngine.Vector2
IL_056B: ldloc.s 11 (UnityEngine.Vector2)
IL_056D: stobj UnityEngine.Vector2
IL_0572: ldloc.0
IL_0573: brfalse => Label17
IL_0578: ldarg.s 8
IL_057A: ldfld UnityEngine.Vector2[] MeshData::m_uvs4
IL_057F: ldarg.s 5
IL_0581: ldind.i4
IL_0582: ldelema UnityEngine.Vector2
IL_0587: ldloc.s 12 (UnityEngine.Vector2)
IL_0589: stobj UnityEngine.Vector2
IL_058E: Label17
IL_058E: ldarg.s 8
IL_0590: ldfld UnityEngine.Color32[] MeshData::m_colors
IL_0595: ldarg.s 5
IL_0597: ldind.i4
IL_0598: ldelema UnityEngine.Color32
IL_059D: ldloc.s 15 (UnityEngine.Color)
IL_059F: call static UnityEngine.Color32
UnityEngine.Color32::op_Implicit(UnityEngine.Color c)
IL_05A4: stobj UnityEngine.Color32
IL_05A9: ldarg.s 5
IL_05AB: ldarg.s 5
IL_05AD: ldind.i4
IL_05AE: ldc.i4.1
IL_05AF: add
IL_05B0: stind.i4
IL_05B1: ldarg.s 8
IL_05B3: ldfld UnityEngine.Vector3[] MeshData::m_vertices
IL_05B8: ldarg.s 5
IL_05BA: ldind.i4
IL_05BB: ldelema UnityEngine.Vector3
IL_05C0: ldloca.s 4 (UnityEngine.Vector3)
IL_05C2: ldfld System.Single UnityEngine.Vector3::x
IL_05C7: ldloc.s 18 (System.Single)
IL_05C9: add
IL_05CA: ldloca.s 4 (UnityEngine.Vector3)
IL_05CC: ldfld System.Single UnityEngine.Vector3::y
IL_05D1: ldarg.0
IL_05D2: ldfld System.Single LightEffect::m_lightRange
IL_05D7: sub
IL_05D8: ldloca.s 4 (UnityEngine.Vector3)
IL_05DA: ldfld System.Single UnityEngine.Vector3::z
IL_05DF: ldarg.0
IL_05E0: ldfld System.Single LightEffect::m_lightRange
IL_05E5: add
IL_05E6: newobj System.Void UnityEngine.Vector3::.ctor(System.Single x,
System.Single y, System.Single z)
IL_05EB: stobj UnityEngine.Vector3
IL_05F0: ldarg.s 8
IL_05F2: ldfld UnityEngine.Vector3[] MeshData::m_normals
IL_05F7: ldarg.s 5
IL_05F9: ldind.i4
IL_05FA: ldelema UnityEngine.Vector3
IL_05FF: ldarg.3
IL_0600: stobj UnityEngine.Vector3
IL_0605: ldarg.s 8
IL_0607: ldfld UnityEngine.Vector4[] MeshData::m_tangents
IL_060C: ldarg.s 5
IL_060E: ldind.i4
IL_060F: ldelema UnityEngine.Vector4
IL_0614: ldloc.s 7 (UnityEngine.Vector4)
IL_0616: stobj UnityEngine.Vector4
IL_061B: ldarg.s 8
IL_061D: ldfld UnityEngine.Vector2[] MeshData::m_uvs
IL_0622: ldarg.s 5
IL_0624: ldind.i4
IL_0625: ldelema UnityEngine.Vector2
IL_062A: ldloc.s 8 (UnityEngine.Vector2)
IL_062C: stobj UnityEngine.Vector2
IL_0631: ldarg.s 8
IL_0633: ldfld UnityEngine.Vector2[] MeshData::m_uvs2
IL_0638: ldarg.s 5
IL_063A: ldind.i4
IL_063B: ldelema UnityEngine.Vector2
IL_0640: ldloc.s 10 (UnityEngine.Vector2)
IL_0642: stobj UnityEngine.Vector2
IL_0647: ldarg.s 8
IL_0649: ldfld UnityEngine.Vector2[] MeshData::m_uvs3
IL_064E: ldarg.s 5
IL_0650: ldind.i4
IL_0651: ldelema UnityEngine.Vector2
IL_0656: ldloc.s 11 (UnityEngine.Vector2)
IL_0658: stobj UnityEngine.Vector2
IL_065D: ldloc.0
IL_065E: brfalse => Label18
IL_0663: ldarg.s 8
IL_0665: ldfld UnityEngine.Vector2[] MeshData::m_uvs4
IL_066A: ldarg.s 5
IL_066C: ldind.i4
IL_066D: ldelema UnityEngine.Vector2
IL_0672: ldloc.s 12 (UnityEngine.Vector2)
IL_0674: stobj UnityEngine.Vector2
IL_0679: Label18
IL_0679: ldarg.s 8
IL_067B: ldfld UnityEngine.Color32[] MeshData::m_colors
IL_0680: ldarg.s 5
IL_0682: ldind.i4
IL_0683: ldelema UnityEngine.Color32
IL_0688: ldloc.s 15 (UnityEngine.Color)
IL_068A: call static UnityEngine.Color32
UnityEngine.Color32::op_Implicit(UnityEngine.Color c)
IL_068F: stobj UnityEngine.Color32
IL_0694: ldarg.s 5
IL_0696: ldarg.s 5
IL_0698: ldind.i4
IL_0699: ldc.i4.1
IL_069A: add
IL_069B: stind.i4
IL_069C: ldarg.s 8
IL_069E: ldfld UnityEngine.Vector3[] MeshData::m_vertices
IL_06A3: ldarg.s 5
IL_06A5: ldind.i4
IL_06A6: ldelema UnityEngine.Vector3
IL_06AB: ldloca.s 4 (UnityEngine.Vector3)
IL_06AD: ldfld System.Single UnityEngine.Vector3::x
IL_06B2: ldloc.s 18 (System.Single)
IL_06B4: sub
IL_06B5: ldloca.s 4 (UnityEngine.Vector3)
IL_06B7: ldfld System.Single UnityEngine.Vector3::y
IL_06BC: ldarg.0
IL_06BD: ldfld System.Single LightEffect::m_lightRange
IL_06C2: sub
IL_06C3: ldloca.s 4 (UnityEngine.Vector3)
IL_06C5: ldfld System.Single UnityEngine.Vector3::z
IL_06CA: ldarg.0
IL_06CB: ldfld System.Single LightEffect::m_lightRange
IL_06D0: add
IL_06D1: newobj System.Void UnityEngine.Vector3::.ctor(System.Single x,
System.Single y, System.Single z)
IL_06D6: stobj UnityEngine.Vector3
IL_06DB: ldarg.s 8
IL_06DD: ldfld UnityEngine.Vector3[] MeshData::m_normals
IL_06E2: ldarg.s 5
IL_06E4: ldind.i4
IL_06E5: ldelema UnityEngine.Vector3
IL_06EA: ldarg.3
IL_06EB: stobj UnityEngine.Vector3
IL_06F0: ldarg.s 8
IL_06F2: ldfld UnityEngine.Vector4[] MeshData::m_tangents
IL_06F7: ldarg.s 5
IL_06F9: ldind.i4
IL_06FA: ldelema UnityEngine.Vector4
IL_06FF: ldloc.s 7 (UnityEngine.Vector4)
IL_0701: stobj UnityEngine.Vector4
IL_0706: ldarg.s 8
IL_0708: ldfld UnityEngine.Vector2[] MeshData::m_uvs
IL_070D: ldarg.s 5
IL_070F: ldind.i4
IL_0710: ldelema UnityEngine.Vector2
IL_0715: ldloc.s 8 (UnityEngine.Vector2)
IL_0717: stobj UnityEngine.Vector2
IL_071C: ldarg.s 8
IL_071E: ldfld UnityEngine.Vector2[] MeshData::m_uvs2
IL_0723: ldarg.s 5
IL_0725: ldind.i4
IL_0726: ldelema UnityEngine.Vector2
IL_072B: ldloc.s 10 (UnityEngine.Vector2)
IL_072D: stobj UnityEngine.Vector2
IL_0732: ldarg.s 8
IL_0734: ldfld UnityEngine.Vector2[] MeshData::m_uvs3
IL_0739: ldarg.s 5
IL_073B: ldind.i4
IL_073C: ldelema UnityEngine.Vector2
IL_0741: ldloc.s 11 (UnityEngine.Vector2)
IL_0743: stobj UnityEngine.Vector2
IL_0748: ldloc.0
IL_0749: brfalse => Label19
IL_074E: ldarg.s 8
IL_0750: ldfld UnityEngine.Vector2[] MeshData::m_uvs4
IL_0755: ldarg.s 5
IL_0757: ldind.i4
IL_0758: ldelema UnityEngine.Vector2
IL_075D: ldloc.s 12 (UnityEngine.Vector2)
IL_075F: stobj UnityEngine.Vector2
IL_0764: Label19
IL_0764: ldarg.s 8
IL_0766: ldfld UnityEngine.Color32[] MeshData::m_colors
IL_076B: ldarg.s 5
IL_076D: ldind.i4
IL_076E: ldelema UnityEngine.Color32
IL_0773: ldloc.s 15 (UnityEngine.Color)
IL_0775: call static UnityEngine.Color32
UnityEngine.Color32::op_Implicit(UnityEngine.Color c)
IL_077A: stobj UnityEngine.Color32
IL_077F: ldarg.s 5
IL_0781: ldarg.s 5
IL_0783: ldind.i4
IL_0784: ldc.i4.1
IL_0785: add
IL_0786: stind.i4
IL_0787: ldarg.s 8
IL_0789: ldfld UnityEngine.Vector3[] MeshData::m_vertices
IL_078E: ldarg.s 5
IL_0790: ldind.i4
IL_0791: ldelema UnityEngine.Vector3
IL_0796: ldloca.s 4 (UnityEngine.Vector3)
IL_0798: ldfld System.Single UnityEngine.Vector3::x
IL_079D: ldloc.s 17 (System.Single)
IL_079F: sub
IL_07A0: ldloca.s 4 (UnityEngine.Vector3)
IL_07A2: ldfld System.Single UnityEngine.Vector3::y
IL_07A7: ldloca.s 4 (UnityEngine.Vector3)
IL_07A9: ldfld System.Single UnityEngine.Vector3::z
IL_07AE: ldarg.0
IL_07AF: ldfld System.Single LightEffect::m_lightRange
IL_07B4: add
IL_07B5: newobj System.Void UnityEngine.Vector3::.ctor(System.Single x,
System.Single y, System.Single z)
IL_07BA: stobj UnityEngine.Vector3
IL_07BF: ldarg.s 8
IL_07C1: ldfld UnityEngine.Vector3[] MeshData::m_normals
IL_07C6: ldarg.s 5
IL_07C8: ldind.i4
IL_07C9: ldelema UnityEngine.Vector3
IL_07CE: ldarg.3
IL_07CF: stobj UnityEngine.Vector3
IL_07D4: ldarg.s 8
IL_07D6: ldfld UnityEngine.Vector4[] MeshData::m_tangents
IL_07DB: ldarg.s 5
IL_07DD: ldind.i4
IL_07DE: ldelema UnityEngine.Vector4
IL_07E3: ldloc.s 7 (UnityEngine.Vector4)
IL_07E5: stobj UnityEngine.Vector4
IL_07EA: ldarg.s 8
IL_07EC: ldfld UnityEngine.Vector2[] MeshData::m_uvs
IL_07F1: ldarg.s 5
IL_07F3: ldind.i4
IL_07F4: ldelema UnityEngine.Vector2
IL_07F9: ldloc.s 8 (UnityEngine.Vector2)
IL_07FB: stobj UnityEngine.Vector2
IL_0800: ldarg.s 8
IL_0802: ldfld UnityEngine.Vector2[] MeshData::m_uvs2
IL_0807: ldarg.s 5
IL_0809: ldind.i4
IL_080A: ldelema UnityEngine.Vector2
IL_080F: ldloc.s 10 (UnityEngine.Vector2)
IL_0811: stobj UnityEngine.Vector2
IL_0816: ldarg.s 8
IL_0818: ldfld UnityEngine.Vector2[] MeshData::m_uvs3
IL_081D: ldarg.s 5
IL_081F: ldind.i4
IL_0820: ldelema UnityEngine.Vector2
IL_0825: ldloc.s 11 (UnityEngine.Vector2)
IL_0827: stobj UnityEngine.Vector2
IL_082C: ldloc.0
IL_082D: brfalse => Label20
IL_0832: ldarg.s 8
IL_0834: ldfld UnityEngine.Vector2[] MeshData::m_uvs4
IL_0839: ldarg.s 5
IL_083B: ldind.i4
IL_083C: ldelema UnityEngine.Vector2
IL_0841: ldloc.s 12 (UnityEngine.Vector2)
IL_0843: stobj UnityEngine.Vector2
IL_0848: Label20
IL_0848: ldarg.s 8
IL_084A: ldfld UnityEngine.Color32[] MeshData::m_colors
IL_084F: ldarg.s 5
IL_0851: ldind.i4
IL_0852: ldelema UnityEngine.Color32
IL_0857: ldloc.s 15 (UnityEngine.Color)
IL_0859: call static UnityEngine.Color32
UnityEngine.Color32::op_Implicit(UnityEngine.Color c)
IL_085E: stobj UnityEngine.Color32
IL_0863: ldarg.s 5
IL_0865: ldarg.s 5
IL_0867: ldind.i4
IL_0868: ldc.i4.1
IL_0869: add
IL_086A: stind.i4
IL_086B: ldarg.s 8
IL_086D: ldfld System.Int32[] MeshData::m_triangles
IL_0872: ldarg.s 6
IL_0874: ldarg.s 6
IL_0876: ldind.i4
IL_0877: dup
IL_0878: stloc.s 19 (System.Int32)
IL_087A: ldc.i4.1
IL_087B: add
IL_087C: stind.i4
IL_087D: ldloc.s 19 (System.Int32)
IL_087F: ldarg.s 5
IL_0881: ldind.i4
IL_0882: ldc.i4.6
IL_0883: sub
IL_0884: stelem.i4
IL_0885: ldarg.s 8
IL_0887: ldfld System.Int32[] MeshData::m_triangles
IL_088C: ldarg.s 6
IL_088E: ldarg.s 6
IL_0890: ldind.i4
IL_0891: dup
IL_0892: stloc.s 19 (System.Int32)
IL_0894: ldc.i4.1
IL_0895: add
IL_0896: stind.i4
IL_0897: ldloc.s 19 (System.Int32)
IL_0899: ldarg.s 5
IL_089B: ldind.i4
IL_089C: ldc.i4.5
IL_089D: sub
IL_089E: stelem.i4
IL_089F: ldarg.s 8
IL_08A1: ldfld System.Int32[] MeshData::m_triangles
IL_08A6: ldarg.s 6
IL_08A8: ldarg.s 6
IL_08AA: ldind.i4
IL_08AB: dup
IL_08AC: stloc.s 19 (System.Int32)
IL_08AE: ldc.i4.1
IL_08AF: add
IL_08B0: stind.i4
IL_08B1: ldloc.s 19 (System.Int32)
IL_08B3: ldarg.s 5
IL_08B5: ldind.i4
IL_08B6: ldc.i4.1
IL_08B7: sub
IL_08B8: stelem.i4
IL_08B9: ldarg.s 8
IL_08BB: ldfld System.Int32[] MeshData::m_triangles
IL_08C0: ldarg.s 6
IL_08C2: ldarg.s 6
IL_08C4: ldind.i4
IL_08C5: dup
IL_08C6: stloc.s 19 (System.Int32)
IL_08C8: ldc.i4.1
IL_08C9: add
IL_08CA: stind.i4
IL_08CB: ldloc.s 19 (System.Int32)
IL_08CD: ldarg.s 5
IL_08CF: ldind.i4
IL_08D0: ldc.i4.1
IL_08D1: sub
IL_08D2: stelem.i4
IL_08D3: ldarg.s 8
IL_08D5: ldfld System.Int32[] MeshData::m_triangles
IL_08DA: ldarg.s 6
IL_08DC: ldarg.s 6
IL_08DE: ldind.i4
IL_08DF: dup
IL_08E0: stloc.s 19 (System.Int32)
IL_08E2: ldc.i4.1
IL_08E3: add
IL_08E4: stind.i4
IL_08E5: ldloc.s 19 (System.Int32)
IL_08E7: ldarg.s 5
IL_08E9: ldind.i4
IL_08EA: ldc.i4.5
IL_08EB: sub
IL_08EC: stelem.i4
IL_08ED: ldarg.s 8
IL_08EF: ldfld System.Int32[] MeshData::m_triangles
IL_08F4: ldarg.s 6
IL_08F6: ldarg.s 6
IL_08F8: ldind.i4
IL_08F9: dup
IL_08FA: stloc.s 19 (System.Int32)
IL_08FC: ldc.i4.1
IL_08FD: add
IL_08FE: stind.i4
IL_08FF: ldloc.s 19 (System.Int32)
IL_0901: ldarg.s 5
IL_0903: ldind.i4
IL_0904: ldc.i4.4
IL_0905: sub
IL_0906: stelem.i4
IL_0907: ldarg.s 8
IL_0909: ldfld System.Int32[] MeshData::m_triangles
IL_090E: ldarg.s 6
IL_0910: ldarg.s 6
IL_0912: ldind.i4
IL_0913: dup
IL_0914: stloc.s 19 (System.Int32)
IL_0916: ldc.i4.1
IL_0917: add
IL_0918: stind.i4
IL_0919: ldloc.s 19 (System.Int32)
IL_091B: ldarg.s 5
IL_091D: ldind.i4
IL_091E: ldc.i4.1
IL_091F: sub
IL_0920: stelem.i4
IL_0921: ldarg.s 8
IL_0923: ldfld System.Int32[] MeshData::m_triangles
IL_0928: ldarg.s 6
IL_092A: ldarg.s 6
IL_092C: ldind.i4
IL_092D: dup
IL_092E: stloc.s 19 (System.Int32)
IL_0930: ldc.i4.1
IL_0931: add
IL_0932: stind.i4
IL_0933: ldloc.s 19 (System.Int32)
IL_0935: ldarg.s 5
IL_0937: ldind.i4
IL_0938: ldc.i4.4
IL_0939: sub
IL_093A: stelem.i4
IL_093B: ldarg.s 8
IL_093D: ldfld System.Int32[] MeshData::m_triangles
IL_0942: ldarg.s 6
IL_0944: ldarg.s 6
IL_0946: ldind.i4
IL_0947: dup
IL_0948: stloc.s 19 (System.Int32)
IL_094A: ldc.i4.1
IL_094B: add
IL_094C: stind.i4
IL_094D: ldloc.s 19 (System.Int32)
IL_094F: ldarg.s 5
IL_0951: ldind.i4
IL_0952: ldc.i4.2
IL_0953: sub
IL_0954: stelem.i4
IL_0955: ldarg.s 8
IL_0957: ldfld System.Int32[] MeshData::m_triangles
IL_095C: ldarg.s 6
IL_095E: ldarg.s 6
IL_0960: ldind.i4
IL_0961: dup
IL_0962: stloc.s 19 (System.Int32)
IL_0964: ldc.i4.1
IL_0965: add
IL_0966: stind.i4
IL_0967: ldloc.s 19 (System.Int32)
IL_0969: ldarg.s 5
IL_096B: ldind.i4
IL_096C: ldc.i4.2
IL_096D: sub
IL_096E: stelem.i4
IL_096F: ldarg.s 8
IL_0971: ldfld System.Int32[] MeshData::m_triangles
IL_0976: ldarg.s 6
IL_0978: ldarg.s 6
IL_097A: ldind.i4
IL_097B: dup
IL_097C: stloc.s 19 (System.Int32)
IL_097E: ldc.i4.1
IL_097F: add
IL_0980: stind.i4
IL_0981: ldloc.s 19 (System.Int32)
IL_0983: ldarg.s 5
IL_0985: ldind.i4
IL_0986: ldc.i4.4
IL_0987: sub
IL_0988: stelem.i4
IL_0989: ldarg.s 8
IL_098B: ldfld System.Int32[] MeshData::m_triangles
IL_0990: ldarg.s 6
IL_0992: ldarg.s 6
IL_0994: ldind.i4
IL_0995: dup
IL_0996: stloc.s 19 (System.Int32)
IL_0998: ldc.i4.1
IL_0999: add
IL_099A: stind.i4
IL_099B: ldloc.s 19 (System.Int32)
IL_099D: ldarg.s 5
IL_099F: ldind.i4
IL_09A0: ldc.i4.3
IL_09A1: sub
IL_09A2: stelem.i4
IL_09A3: // end original
IL_09A3: Label3
IL_09A3: Label0
IL_09A3: ret
DONE

### Patch: virtual System.Void ElectricityManager::SimulationStepImpl(System.Int32


subStep)
### Replacement: static System.Void
ElectricityManager::ElectricityManager.SimulationStepImpl_Patch0(ElectricityManager
this, System.Int32 subStep)
IL_0000: Local var 0: System.UInt32
IL_0000: Local var 1: System.Int32
IL_0000: Local var 2: NetManager
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: NetInfo
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: ElectricityManager/Cell
IL_0000: Local var 13: ElectricityManager/PulseGroup
IL_0000: Local var 14: ElectricityManager/PulseUnit
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: ElectricityManager/PulseUnit
IL_0000: Local var 19: System.UInt32
IL_0000: Local var 20: System.Int32
IL_0000: Local var 21: ElectricityManager/Cell
IL_0000: Local var 22: System.Int32
IL_0000: Local var 23: System.Int32
IL_0000: Local var 24: NetNode
IL_0000: Local var 25: System.Int32
IL_0000: Local var 26: System.UInt16
IL_0000: Local var 27: System.UInt16
IL_0000: Local var 28: System.UInt16
IL_0000: Local var 29: System.UInt16
IL_0000: Local var 30: System.Int32
IL_0000: Local var 31: ElectricityManager/PulseGroup
IL_0000: Local var 32: ElectricityManager/PulseGroup
IL_0000: Local var 33: System.Int32
IL_0000: Local var 34: ElectricityManager/PulseGroup
IL_0000: Local var 35: System.Int32
IL_0000: Local var 36: ElectricityManager/Cell
IL_0000: // start original
IL_0000: ldarg.1
IL_0001: brfalse => Label0
IL_0006: ldarg.1
IL_0007: ldc.i4 1000
IL_000C: beq => Label1
IL_0011: call static SimulationManager
ColossalFramework.Singleton`1<SimulationManager>::get_instance()
IL_0016: ldfld System.UInt32 SimulationManager::m_currentFrameIndex
IL_001B: stloc.0
IL_001C: ldloc.0
IL_001D: ldc.i4 255
IL_0022: and
IL_0023: stloc.1
IL_0024: ldloc.1
IL_0025: ldc.i4 128
IL_002A: bge => Label2
IL_002F: ldloc.1
IL_0030: brtrue => Label3
IL_0035: ldarg.0
IL_0036: ldc.i4.0
IL_0037: stfld System.Int32 ElectricityManager::m_pulseGroupCount
IL_003C: ldarg.0
IL_003D: ldc.i4.0
IL_003E: stfld System.Int32 ElectricityManager::m_pulseUnitStart
IL_0043: ldarg.0
IL_0044: ldc.i4.0
IL_0045: stfld System.Int32 ElectricityManager::m_pulseUnitEnd
IL_004A: ldarg.0
IL_004B: ldc.i4.0
IL_004C: stfld System.Int32 ElectricityManager::m_processedCells
IL_0051: ldarg.0
IL_0052: ldc.i4.0
IL_0053: stfld System.Int32 ElectricityManager::m_conductiveCells
IL_0058: ldarg.0
IL_0059: ldc.i4.1
IL_005A: stfld System.Boolean ElectricityManager::m_canContinue
IL_005F: Label3
IL_005F: call static NetManager
ColossalFramework.Singleton`1<NetManager>::get_instance()
IL_0064: stloc.2
IL_0065: ldloc.1
IL_0066: ldc.i4 32768
IL_006B: mul
IL_006C: ldc.i4.7
IL_006D: shr
IL_006E: stloc.3
IL_006F: ldloc.1
IL_0070: ldc.i4.1
IL_0071: add
IL_0072: ldc.i4 32768
IL_0077: mul
IL_0078: ldc.i4.7
IL_0079: shr
IL_007A: ldc.i4.1
IL_007B: sub
IL_007C: stloc.s 4 (System.Int32)
IL_007E: ldloc.3
IL_007F: stloc.s 5 (System.Int32)
IL_0081: br => Label4
IL_0086: Label10
IL_0086: ldloc.2
IL_0087: ldfld Array16`1<NetNode> NetManager::m_nodes
IL_008C: ldfld NetNode[] Array16`1<NetNode>::m_buffer
IL_0091: ldloc.s 5 (System.Int32)
IL_0093: ldelema NetNode
IL_0098: ldfld Flags NetNode::m_flags
IL_009D: brfalse => Label5
IL_00A2: ldloc.2
IL_00A3: ldfld Array16`1<NetNode> NetManager::m_nodes
IL_00A8: ldfld NetNode[] Array16`1<NetNode>::m_buffer
IL_00AD: ldloc.s 5 (System.Int32)
IL_00AF: ldelema NetNode
IL_00B4: call static System.Boolean
ElectricRoads.Overrides.ElectricRoadsOverrides::CheckElectricConductibility(NetNode
& node)
IL_00B9: brfalse => Label7
IL_00BE: Label6
IL_00BE: ldarg.0
IL_00BF: ldloc.s 5 (System.Int32)
IL_00C1: ldarg.0
IL_00C2: ldfld System.UInt16[] ElectricityManager::m_nodeGroups
IL_00C7: ldloc.s 5 (System.Int32)
IL_00C9: ldelem.u2
IL_00CA: ldc.i4 65535
IL_00CF: beq => Label8
IL_00D4: ldc.i4.1
IL_00D5: br => Label9
IL_00DA: Label8
IL_00DA: ldc.i4.0
IL_00DB: Label9
IL_00DB: call System.Void
ElectricityManager::UpdateNodeElectricity(System.Int32 nodeID, System.Int32 value)
IL_00E0: ldarg.0
IL_00E1: dup
IL_00E2: ldfld System.Int32 ElectricityManager::m_conductiveCells
IL_00E7: ldc.i4.1
IL_00E8: add
IL_00E9: stfld System.Int32 ElectricityManager::m_conductiveCells
IL_00EE: Label5
IL_00EE: Label7
IL_00EE: ldarg.0
IL_00EF: ldfld System.UInt16[] ElectricityManager::m_nodeGroups
IL_00F4: ldloc.s 5 (System.Int32)
IL_00F6: ldc.i4 65535
IL_00FB: stelem.i2
IL_00FC: ldloc.s 5 (System.Int32)
IL_00FE: ldc.i4.1
IL_00FF: add
IL_0100: stloc.s 5 (System.Int32)
IL_0102: Label4
IL_0102: ldloc.s 5 (System.Int32)
IL_0104: ldloc.s 4 (System.Int32)
IL_0106: ble => Label10
IL_010B: ldloc.1
IL_010C: ldc.i4 256
IL_0111: mul
IL_0112: ldc.i4.7
IL_0113: shr
IL_0114: stloc.s 7 (System.Int32)
IL_0116: ldloc.1
IL_0117: ldc.i4.1
IL_0118: add
IL_0119: ldc.i4 256
IL_011E: mul
IL_011F: ldc.i4.7
IL_0120: shr
IL_0121: ldc.i4.1
IL_0122: sub
IL_0123: stloc.s 8 (System.Int32)
IL_0125: ldloc.s 7 (System.Int32)
IL_0127: stloc.s 9 (System.Int32)
IL_0129: br => Label11
IL_012E: Label21
IL_012E: ldloc.s 9 (System.Int32)
IL_0130: ldc.i4 256
IL_0135: mul
IL_0136: stloc.s 10 (System.Int32)
IL_0138: ldc.i4.0
IL_0139: stloc.s 11 (System.Int32)
IL_013B: br => Label12
IL_0140: Label20
IL_0140: ldarg.0
IL_0141: ldfld Cell[] ElectricityManager::m_electricityGrid
IL_0146: ldloc.s 10 (System.Int32)
IL_0148: ldelema ElectricityManager+Cell
IL_014D: ldobj ElectricityManager+Cell
IL_0152: stloc.s 12 (ElectricityManager+Cell)
IL_0154: ldloca.s 12 (ElectricityManager+Cell)
IL_0156: ldfld System.Int16 Cell::m_currentCharge
IL_015B: ldc.i4.0
IL_015C: ble => Label13
IL_0161: ldarg.0
IL_0162: ldfld System.Int32 ElectricityManager::m_pulseGroupCount
IL_0167: ldc.i4 1024
IL_016C: bge => Label14
IL_0171: ldloca.s 13 (ElectricityManager+PulseGroup)
IL_0173: ldloca.s 12 (ElectricityManager+Cell)
IL_0175: ldfld System.Int16 Cell::m_currentCharge
IL_017A: conv.u4
IL_017B: stfld System.UInt32 PulseGroup::m_origCharge
IL_0180: ldloca.s 13 (ElectricityManager+PulseGroup)
IL_0182: ldloca.s 12 (ElectricityManager+Cell)
IL_0184: ldfld System.Int16 Cell::m_currentCharge
IL_0189: conv.u4
IL_018A: stfld System.UInt32 PulseGroup::m_curCharge
IL_018F: ldloca.s 13 (ElectricityManager+PulseGroup)
IL_0191: ldc.i4.0
IL_0192: stfld System.UInt16 PulseGroup::m_mergeCount
IL_0197: ldloca.s 13 (ElectricityManager+PulseGroup)
IL_0199: ldc.i4 65535
IL_019E: stfld System.UInt16 PulseGroup::m_mergeIndex
IL_01A3: ldloca.s 13 (ElectricityManager+PulseGroup)
IL_01A5: ldloc.s 11 (System.Int32)
IL_01A7: conv.u1
IL_01A8: stfld System.Byte PulseGroup::m_x
IL_01AD: ldloca.s 13 (ElectricityManager+PulseGroup)
IL_01AF: ldloc.s 9 (System.Int32)
IL_01B1: conv.u1
IL_01B2: stfld System.Byte PulseGroup::m_z
IL_01B7: ldloca.s 14 (ElectricityManager+PulseUnit)
IL_01B9: ldarg.0
IL_01BA: ldfld System.Int32 ElectricityManager::m_pulseGroupCount
IL_01BF: conv.u2
IL_01C0: stfld System.UInt16 PulseUnit::m_group
IL_01C5: ldloca.s 14 (ElectricityManager+PulseUnit)
IL_01C7: ldc.i4.0
IL_01C8: stfld System.UInt16 PulseUnit::m_node
IL_01CD: ldloca.s 14 (ElectricityManager+PulseUnit)
IL_01CF: ldloc.s 11 (System.Int32)
IL_01D1: conv.u1
IL_01D2: stfld System.Byte PulseUnit::m_x
IL_01D7: ldloca.s 14 (ElectricityManager+PulseUnit)
IL_01D9: ldloc.s 9 (System.Int32)
IL_01DB: conv.u1
IL_01DC: stfld System.Byte PulseUnit::m_z
IL_01E1: ldloca.s 12 (ElectricityManager+Cell)
IL_01E3: ldarg.0
IL_01E4: ldfld System.Int32 ElectricityManager::m_pulseGroupCount
IL_01E9: conv.u2
IL_01EA: stfld System.UInt16 Cell::m_pulseGroup
IL_01EF: ldarg.0
IL_01F0: ldfld PulseGroup[] ElectricityManager::m_pulseGroups
IL_01F5: ldarg.0
IL_01F6: dup
IL_01F7: ldfld System.Int32 ElectricityManager::m_pulseGroupCount
IL_01FC: dup
IL_01FD: stloc.s 15 (System.Int32)
IL_01FF: ldc.i4.1
IL_0200: add
IL_0201: stfld System.Int32 ElectricityManager::m_pulseGroupCount
IL_0206: ldloc.s 15 (System.Int32)
IL_0208: ldelema ElectricityManager+PulseGroup
IL_020D: ldloc.s 13 (ElectricityManager+PulseGroup)
IL_020F: stobj ElectricityManager+PulseGroup
IL_0214: ldarg.0
IL_0215: ldfld PulseUnit[] ElectricityManager::m_pulseUnits
IL_021A: ldarg.0
IL_021B: ldfld System.Int32 ElectricityManager::m_pulseUnitEnd
IL_0220: ldelema ElectricityManager+PulseUnit
IL_0225: ldloc.s 14 (ElectricityManager+PulseUnit)
IL_0227: stobj ElectricityManager+PulseUnit
IL_022C: ldarg.0
IL_022D: dup
IL_022E: ldfld System.Int32 ElectricityManager::m_pulseUnitEnd
IL_0233: ldc.i4.1
IL_0234: add
IL_0235: dup
IL_0236: stloc.s 15 (System.Int32)
IL_0238: stfld System.Int32 ElectricityManager::m_pulseUnitEnd
IL_023D: ldloc.s 15 (System.Int32)
IL_023F: ldarg.0
IL_0240: ldfld PulseUnit[] ElectricityManager::m_pulseUnits
IL_0245: ldlen
IL_0246: conv.i4
IL_0247: bne.un => Label15
IL_024C: ldarg.0
IL_024D: ldc.i4.0
IL_024E: stfld System.Int32 ElectricityManager::m_pulseUnitEnd
IL_0253: Label15
IL_0253: br => Label16
IL_0258: Label14
IL_0258: ldloca.s 12 (ElectricityManager+Cell)
IL_025A: ldc.i4 65535
IL_025F: stfld System.UInt16 Cell::m_pulseGroup
IL_0264: Label16
IL_0264: ldloca.s 12 (ElectricityManager+Cell)
IL_0266: ldc.i4.0
IL_0267: stfld System.Int16 Cell::m_currentCharge
IL_026C: ldarg.0
IL_026D: dup
IL_026E: ldfld System.Int32 ElectricityManager::m_conductiveCells
IL_0273: ldc.i4.1
IL_0274: add
IL_0275: stfld System.Int32 ElectricityManager::m_conductiveCells
IL_027A: br => Label17
IL_027F: Label13
IL_027F: ldloca.s 12 (ElectricityManager+Cell)
IL_0281: ldc.i4 65535
IL_0286: stfld System.UInt16 Cell::m_pulseGroup
IL_028B: ldloca.s 12 (ElectricityManager+Cell)
IL_028D: ldfld System.Byte Cell::m_conductivity
IL_0292: ldc.i4.s 64
IL_0294: blt => Label18
IL_0299: ldarg.0
IL_029A: dup
IL_029B: ldfld System.Int32 ElectricityManager::m_conductiveCells
IL_02A0: ldc.i4.1
IL_02A1: add
IL_02A2: stfld System.Int32 ElectricityManager::m_conductiveCells
IL_02A7: Label17
IL_02A7: Label18
IL_02A7: ldloca.s 12 (ElectricityManager+Cell)
IL_02A9: ldfld System.Boolean Cell::m_tmpElectrified
IL_02AE: ldloca.s 12 (ElectricityManager+Cell)
IL_02B0: ldfld System.Boolean Cell::m_electrified
IL_02B5: beq => Label19
IL_02BA: ldloca.s 12 (ElectricityManager+Cell)
IL_02BC: ldloca.s 12 (ElectricityManager+Cell)
IL_02BE: ldfld System.Boolean Cell::m_tmpElectrified
IL_02C3: stfld System.Boolean Cell::m_electrified
IL_02C8: Label19
IL_02C8: ldloca.s 12 (ElectricityManager+Cell)
IL_02CA: ldloca.s 12 (ElectricityManager+Cell)
IL_02CC: ldfld System.UInt16 Cell::m_pulseGroup
IL_02D1: ldc.i4 65535
IL_02D6: ceq
IL_02D8: ldc.i4.0
IL_02D9: ceq
IL_02DB: stfld System.Boolean Cell::m_tmpElectrified
IL_02E0: ldarg.0
IL_02E1: ldfld Cell[] ElectricityManager::m_electricityGrid
IL_02E6: ldloc.s 10 (System.Int32)
IL_02E8: ldelema ElectricityManager+Cell
IL_02ED: ldloc.s 12 (ElectricityManager+Cell)
IL_02EF: stobj ElectricityManager+Cell
IL_02F4: ldloc.s 10 (System.Int32)
IL_02F6: ldc.i4.1
IL_02F7: add
IL_02F8: stloc.s 10 (System.Int32)
IL_02FA: ldloc.s 11 (System.Int32)
IL_02FC: ldc.i4.1
IL_02FD: add
IL_02FE: stloc.s 11 (System.Int32)
IL_0300: Label12
IL_0300: ldloc.s 11 (System.Int32)
IL_0302: ldc.i4 256
IL_0307: blt => Label20
IL_030C: ldloc.s 9 (System.Int32)
IL_030E: ldc.i4.1
IL_030F: add
IL_0310: stloc.s 9 (System.Int32)
IL_0312: Label11
IL_0312: ldloc.s 9 (System.Int32)
IL_0314: ldloc.s 8 (System.Int32)
IL_0316: ble => Label21
IL_031B: br => Label22
IL_0320: Label2
IL_0320: ldloc.1
IL_0321: ldc.i4.s 127
IL_0323: sub
IL_0324: ldarg.0
IL_0325: ldfld System.Int32 ElectricityManager::m_conductiveCells
IL_032A: mul
IL_032B: ldc.i4.7
IL_032C: shr
IL_032D: stloc.s 16 (System.Int32)
IL_032F: ldloc.1
IL_0330: ldc.i4 255
IL_0335: bne.un => Label23
IL_033A: ldc.i4 1000000000
IL_033F: stloc.s 16 (System.Int32)
IL_0341: Label23
IL_0341: br => Label24
IL_0346: Label54
IL_0346: ldarg.0
IL_0347: ldc.i4.0
IL_0348: stfld System.Boolean ElectricityManager::m_canContinue
IL_034D: ldarg.0
IL_034E: ldfld System.Int32 ElectricityManager::m_pulseUnitEnd
IL_0353: stloc.s 17 (System.Int32)
IL_0355: br => Label25
IL_035A: Label52
IL_035A: ldarg.0
IL_035B: ldfld PulseUnit[] ElectricityManager::m_pulseUnits
IL_0360: ldarg.0
IL_0361: ldfld System.Int32 ElectricityManager::m_pulseUnitStart
IL_0366: ldelema ElectricityManager+PulseUnit
IL_036B: ldobj ElectricityManager+PulseUnit
IL_0370: stloc.s 18 (ElectricityManager+PulseUnit)
IL_0372: ldarg.0
IL_0373: dup
IL_0374: ldfld System.Int32 ElectricityManager::m_pulseUnitStart
IL_0379: ldc.i4.1
IL_037A: add
IL_037B: dup
IL_037C: stloc.s 15 (System.Int32)
IL_037E: stfld System.Int32 ElectricityManager::m_pulseUnitStart
IL_0383: ldloc.s 15 (System.Int32)
IL_0385: ldarg.0
IL_0386: ldfld PulseUnit[] ElectricityManager::m_pulseUnits
IL_038B: ldlen
IL_038C: conv.i4
IL_038D: bne.un => Label26
IL_0392: ldarg.0
IL_0393: ldc.i4.0
IL_0394: stfld System.Int32 ElectricityManager::m_pulseUnitStart
IL_0399: Label26
IL_0399: ldloca.s 18 (ElectricityManager+PulseUnit)
IL_039B: ldarg.0
IL_039C: ldloca.s 18 (ElectricityManager+PulseUnit)
IL_039E: ldfld System.UInt16 PulseUnit::m_group
IL_03A3: call System.UInt16 ElectricityManager::GetRootGroup(System.UInt16
group)
IL_03A8: stfld System.UInt16 PulseUnit::m_group
IL_03AD: ldarg.0
IL_03AE: ldfld PulseGroup[] ElectricityManager::m_pulseGroups
IL_03B3: ldloca.s 18 (ElectricityManager+PulseUnit)
IL_03B5: ldfld System.UInt16 PulseUnit::m_group
IL_03BA: ldelema ElectricityManager+PulseGroup
IL_03BF: ldfld System.UInt32 PulseGroup::m_curCharge
IL_03C4: stloc.s 19 (System.UInt32)
IL_03C6: ldloca.s 18 (ElectricityManager+PulseUnit)
IL_03C8: ldfld System.UInt16 PulseUnit::m_node
IL_03CD: brtrue => Label27
IL_03D2: ldloca.s 18 (ElectricityManager+PulseUnit)
IL_03D4: ldfld System.Byte PulseUnit::m_z
IL_03D9: ldc.i4 256
IL_03DE: mul
IL_03DF: ldloca.s 18 (ElectricityManager+PulseUnit)
IL_03E1: ldfld System.Byte PulseUnit::m_x
IL_03E6: add
IL_03E7: stloc.s 20 (System.Int32)
IL_03E9: ldarg.0
IL_03EA: ldfld Cell[] ElectricityManager::m_electricityGrid
IL_03EF: ldloc.s 20 (System.Int32)
IL_03F1: ldelema ElectricityManager+Cell
IL_03F6: ldobj ElectricityManager+Cell
IL_03FB: stloc.s 21 (ElectricityManager+Cell)
IL_03FD: ldloca.s 21 (ElectricityManager+Cell)
IL_03FF: ldfld System.Byte Cell::m_conductivity
IL_0404: brfalse => Label28
IL_0409: ldloca.s 21 (ElectricityManager+Cell)
IL_040B: ldfld System.Boolean Cell::m_tmpElectrified
IL_0410: brtrue => Label29
IL_0415: ldloc.s 19 (System.UInt32)
IL_0417: brfalse => Label30
IL_041C: ldloca.s 21 (ElectricityManager+Cell)
IL_041E: ldfld System.Int16 Cell::m_currentCharge
IL_0423: neg
IL_0424: ldc.i4.0
IL_0425: ldloc.s 19 (System.UInt32)
IL_0427: call static System.Int32 UnityEngine.Mathf::Clamp(System.Int32
value, System.Int32 min, System.Int32 max)
IL_042C: stloc.s 22 (System.Int32)
IL_042E: ldloc.s 19 (System.UInt32)
IL_0430: ldloc.s 22 (System.Int32)
IL_0432: sub
IL_0433: stloc.s 19 (System.UInt32)
IL_0435: ldloca.s 21 (ElectricityManager+Cell)
IL_0437: dup
IL_0438: ldfld System.Int16 Cell::m_currentCharge
IL_043D: ldloc.s 22 (System.Int32)
IL_043F: conv.i2
IL_0440: add
IL_0441: conv.i2
IL_0442: stfld System.Int16 Cell::m_currentCharge
IL_0447: ldloca.s 21 (ElectricityManager+Cell)
IL_0449: ldfld System.Int16 Cell::m_currentCharge
IL_044E: brtrue => Label31
IL_0453: ldloca.s 21 (ElectricityManager+Cell)
IL_0455: ldc.i4.1
IL_0456: stfld System.Boolean Cell::m_tmpElectrified
IL_045B: Label31
IL_045B: ldarg.0
IL_045C: ldfld Cell[] ElectricityManager::m_electricityGrid
IL_0461: ldloc.s 20 (System.Int32)
IL_0463: ldelema ElectricityManager+Cell
IL_0468: ldloc.s 21 (ElectricityManager+Cell)
IL_046A: stobj ElectricityManager+Cell
IL_046F: ldarg.0
IL_0470: ldfld PulseGroup[] ElectricityManager::m_pulseGroups
IL_0475: ldloca.s 18 (ElectricityManager+PulseUnit)
IL_0477: ldfld System.UInt16 PulseUnit::m_group
IL_047C: ldelema ElectricityManager+PulseGroup
IL_0481: ldloc.s 19 (System.UInt32)
IL_0483: stfld System.UInt32 PulseGroup::m_curCharge
IL_0488: Label28
IL_0488: Label29
IL_0488: Label30
IL_0488: ldloc.s 19 (System.UInt32)
IL_048A: brfalse => Label32
IL_048F: ldloca.s 21 (ElectricityManager+Cell)
IL_0491: ldfld System.Byte Cell::m_conductivity
IL_0496: ldc.i4.s 64
IL_0498: blt => Label33
IL_049D: ldc.i4.1
IL_049E: br => Label34
IL_04A3: Label33
IL_04A3: ldc.i4.s 64
IL_04A5: Label34
IL_04A5: stloc.s 23 (System.Int32)
IL_04A7: ldarg.0
IL_04A8: dup
IL_04A9: ldfld System.Int32 ElectricityManager::m_processedCells
IL_04AE: ldc.i4.1
IL_04AF: add
IL_04B0: stfld System.Int32 ElectricityManager::m_processedCells
IL_04B5: ldloca.s 18 (ElectricityManager+PulseUnit)
IL_04B7: ldfld System.Byte PulseUnit::m_z
IL_04BC: ldc.i4.0
IL_04BD: ble => Label35
IL_04C2: ldarg.0
IL_04C3: ldarg.0
IL_04C4: ldfld Cell[] ElectricityManager::m_electricityGrid
IL_04C9: ldloc.s 20 (System.Int32)
IL_04CB: ldc.i4 256
IL_04D0: sub
IL_04D1: ldelema ElectricityManager+Cell
IL_04D6: ldloca.s 18 (ElectricityManager+PulseUnit)
IL_04D8: ldfld System.UInt16 PulseUnit::m_group
IL_04DD: ldloca.s 18 (ElectricityManager+PulseUnit)
IL_04DF: ldfld System.Byte PulseUnit::m_x
IL_04E4: ldloca.s 18 (ElectricityManager+PulseUnit)
IL_04E6: ldfld System.Byte PulseUnit::m_z
IL_04EB: ldc.i4.1
IL_04EC: sub
IL_04ED: ldloc.s 23 (System.Int32)
IL_04EF: call System.Void ElectricityManager::ConductToCell(Cell& cell,
System.UInt16 group, System.Int32 x, System.Int32 z, System.Int32 limit)
IL_04F4: Label35
IL_04F4: ldloca.s 18 (ElectricityManager+PulseUnit)
IL_04F6: ldfld System.Byte PulseUnit::m_x
IL_04FB: ldc.i4.0
IL_04FC: ble => Label36
IL_0501: ldarg.0
IL_0502: ldarg.0
IL_0503: ldfld Cell[] ElectricityManager::m_electricityGrid
IL_0508: ldloc.s 20 (System.Int32)
IL_050A: ldc.i4.1
IL_050B: sub
IL_050C: ldelema ElectricityManager+Cell
IL_0511: ldloca.s 18 (ElectricityManager+PulseUnit)
IL_0513: ldfld System.UInt16 PulseUnit::m_group
IL_0518: ldloca.s 18 (ElectricityManager+PulseUnit)
IL_051A: ldfld System.Byte PulseUnit::m_x
IL_051F: ldc.i4.1
IL_0520: sub
IL_0521: ldloca.s 18 (ElectricityManager+PulseUnit)
IL_0523: ldfld System.Byte PulseUnit::m_z
IL_0528: ldloc.s 23 (System.Int32)
IL_052A: call System.Void ElectricityManager::ConductToCell(Cell& cell,
System.UInt16 group, System.Int32 x, System.Int32 z, System.Int32 limit)
IL_052F: Label36
IL_052F: ldloca.s 18 (ElectricityManager+PulseUnit)
IL_0531: ldfld System.Byte PulseUnit::m_z
IL_0536: ldc.i4 255
IL_053B: bge => Label37
IL_0540: ldarg.0
IL_0541: ldarg.0
IL_0542: ldfld Cell[] ElectricityManager::m_electricityGrid
IL_0547: ldloc.s 20 (System.Int32)
IL_0549: ldc.i4 256
IL_054E: add
IL_054F: ldelema ElectricityManager+Cell
IL_0554: ldloca.s 18 (ElectricityManager+PulseUnit)
IL_0556: ldfld System.UInt16 PulseUnit::m_group
IL_055B: ldloca.s 18 (ElectricityManager+PulseUnit)
IL_055D: ldfld System.Byte PulseUnit::m_x
IL_0562: ldloca.s 18 (ElectricityManager+PulseUnit)
IL_0564: ldfld System.Byte PulseUnit::m_z
IL_0569: ldc.i4.1
IL_056A: add
IL_056B: ldloc.s 23 (System.Int32)
IL_056D: call System.Void ElectricityManager::ConductToCell(Cell& cell,
System.UInt16 group, System.Int32 x, System.Int32 z, System.Int32 limit)
IL_0572: Label37
IL_0572: ldloca.s 18 (ElectricityManager+PulseUnit)
IL_0574: ldfld System.Byte PulseUnit::m_x
IL_0579: ldc.i4 255
IL_057E: bge => Label38
IL_0583: ldarg.0
IL_0584: ldarg.0
IL_0585: ldfld Cell[] ElectricityManager::m_electricityGrid
IL_058A: ldloc.s 20 (System.Int32)
IL_058C: ldc.i4.1
IL_058D: add
IL_058E: ldelema ElectricityManager+Cell
IL_0593: ldloca.s 18 (ElectricityManager+PulseUnit)
IL_0595: ldfld System.UInt16 PulseUnit::m_group
IL_059A: ldloca.s 18 (ElectricityManager+PulseUnit)
IL_059C: ldfld System.Byte PulseUnit::m_x
IL_05A1: ldc.i4.1
IL_05A2: add
IL_05A3: ldloca.s 18 (ElectricityManager+PulseUnit)
IL_05A5: ldfld System.Byte PulseUnit::m_z
IL_05AA: ldloc.s 23 (System.Int32)
IL_05AC: call System.Void ElectricityManager::ConductToCell(Cell& cell,
System.UInt16 group, System.Int32 x, System.Int32 z, System.Int32 limit)
IL_05B1: Label38
IL_05B1: ldarg.0
IL_05B2: ldloca.s 18 (ElectricityManager+PulseUnit)
IL_05B4: ldfld System.UInt16 PulseUnit::m_group
IL_05B9: ldloca.s 18 (ElectricityManager+PulseUnit)
IL_05BB: ldfld System.Byte PulseUnit::m_x
IL_05C0: ldloca.s 18 (ElectricityManager+PulseUnit)
IL_05C2: ldfld System.Byte PulseUnit::m_z
IL_05C7: call System.Void ElectricityManager::ConductToNodes(System.UInt16
group, System.Int32 cellX, System.Int32 cellZ)
IL_05CC: br => Label39
IL_05D1: Label32
IL_05D1: ldarg.0
IL_05D2: ldfld PulseUnit[] ElectricityManager::m_pulseUnits
IL_05D7: ldarg.0
IL_05D8: ldfld System.Int32 ElectricityManager::m_pulseUnitEnd
IL_05DD: ldelema ElectricityManager+PulseUnit
IL_05E2: ldloc.s 18 (ElectricityManager+PulseUnit)
IL_05E4: stobj ElectricityManager+PulseUnit
IL_05E9: ldarg.0
IL_05EA: dup
IL_05EB: ldfld System.Int32 ElectricityManager::m_pulseUnitEnd
IL_05F0: ldc.i4.1
IL_05F1: add
IL_05F2: dup
IL_05F3: stloc.s 15 (System.Int32)
IL_05F5: stfld System.Int32 ElectricityManager::m_pulseUnitEnd
IL_05FA: ldloc.s 15 (System.Int32)
IL_05FC: ldarg.0
IL_05FD: ldfld PulseUnit[] ElectricityManager::m_pulseUnits
IL_0602: ldlen
IL_0603: conv.i4
IL_0604: bne.un => Label40
IL_0609: ldarg.0
IL_060A: ldc.i4.0
IL_060B: stfld System.Int32 ElectricityManager::m_pulseUnitEnd
IL_0610: Label39
IL_0610: Label40
IL_0610: br => Label41
IL_0615: Label27
IL_0615: ldloc.s 19 (System.UInt32)
IL_0617: brfalse => Label42
IL_061C: ldarg.0
IL_061D: dup
IL_061E: ldfld System.Int32 ElectricityManager::m_processedCells
IL_0623: ldc.i4.1
IL_0624: add
IL_0625: stfld System.Int32 ElectricityManager::m_processedCells
IL_062A: call static NetManager
ColossalFramework.Singleton`1<NetManager>::get_instance()
IL_062F: ldfld Array16`1<NetNode> NetManager::m_nodes
IL_0634: ldfld NetNode[] Array16`1<NetNode>::m_buffer
IL_0639: ldloca.s 18 (ElectricityManager+PulseUnit)
IL_063B: ldfld System.UInt16 PulseUnit::m_node
IL_0640: ldelema NetNode
IL_0645: ldobj NetNode
IL_064A: stloc.s 24 (NetNode)
IL_064C: ldloca.s 24 (NetNode)
IL_064E: ldfld Flags NetNode::m_flags
IL_0653: brfalse => Label43
IL_0658: ldloca.s 24 (NetNode)
IL_065A: ldfld System.UInt32 NetNode::m_buildIndex
IL_065F: ldloc.0
IL_0660: ldc.i4.s -128
IL_0662: and
IL_0663: bge.un => Label44
IL_0668: ldarg.0
IL_0669: ldloca.s 18 (ElectricityManager+PulseUnit)
IL_066B: ldfld System.UInt16 PulseUnit::m_group
IL_0670: ldloca.s 24 (NetNode)
IL_0672: ldflda UnityEngine.Vector3 NetNode::m_position
IL_0677: ldfld System.Single UnityEngine.Vector3::x
IL_067C: ldloca.s 24 (NetNode)
IL_067E: ldflda UnityEngine.Vector3 NetNode::m_position
IL_0683: ldfld System.Single UnityEngine.Vector3::z
IL_0688: call System.Void ElectricityManager::ConductToCells(System.UInt16
group, System.Single worldX, System.Single worldZ)
IL_068D: ldc.i4.0
IL_068E: stloc.s 25 (System.Int32)
IL_0690: br => Label45
IL_0695: Label49
IL_0695: ldloca.s 24 (NetNode)
IL_0697: ldloc.s 25 (System.Int32)
IL_0699: call System.UInt16 NetNode::GetSegment(System.Int32 index)
IL_069E: stloc.s 26 (System.UInt16)
IL_06A0: ldloc.s 26 (System.UInt16)
IL_06A2: brfalse => Label46
IL_06A7: call static NetManager
ColossalFramework.Singleton`1<NetManager>::get_instance()
IL_06AC: ldfld Array16`1<NetSegment> NetManager::m_segments
IL_06B1: ldfld NetSegment[] Array16`1<NetSegment>::m_buffer
IL_06B6: ldloc.s 26 (System.UInt16)
IL_06B8: ldelema NetSegment
IL_06BD: ldfld System.UInt16 NetSegment::m_startNode
IL_06C2: stloc.s 27 (System.UInt16)
IL_06C4: call static NetManager
ColossalFramework.Singleton`1<NetManager>::get_instance()
IL_06C9: ldfld Array16`1<NetSegment> NetManager::m_segments
IL_06CE: ldfld NetSegment[] Array16`1<NetSegment>::m_buffer
IL_06D3: ldloc.s 26 (System.UInt16)
IL_06D5: ldelema NetSegment
IL_06DA: ldfld System.UInt16 NetSegment::m_endNode
IL_06DF: stloc.s 28 (System.UInt16)
IL_06E1: ldloc.s 27 (System.UInt16)
IL_06E3: ldloca.s 18 (ElectricityManager+PulseUnit)
IL_06E5: ldfld System.UInt16 PulseUnit::m_node
IL_06EA: bne.un => Label47
IL_06EF: ldloc.s 28 (System.UInt16)
IL_06F1: br => Label48
IL_06F6: Label47
IL_06F6: ldloc.s 27 (System.UInt16)
IL_06F8: Label48
IL_06F8: stloc.s 29 (System.UInt16)
IL_06FA: ldarg.0
IL_06FB: ldloc.s 29 (System.UInt16)
IL_06FD: call static NetManager
ColossalFramework.Singleton`1<NetManager>::get_instance()
IL_0702: ldfld Array16`1<NetNode> NetManager::m_nodes
IL_0707: ldfld NetNode[] Array16`1<NetNode>::m_buffer
IL_070C: ldloc.s 29 (System.UInt16)
IL_070E: ldelema NetNode
IL_0713: ldloca.s 18 (ElectricityManager+PulseUnit)
IL_0715: ldfld System.UInt16 PulseUnit::m_group
IL_071A: ldc.r4 -100000
IL_071F: ldc.r4 -100000
IL_0724: ldc.r4 100000
IL_0729: ldc.r4 100000
IL_072E: call System.Void ElectricityManager::ConductToNode(System.UInt16
nodeIndex, NetNode& node, System.UInt16 group, System.Single minX, System.Single
minZ, System.Single maxX, System.Single maxZ)
IL_0733: Label46
IL_0733: ldloc.s 25 (System.Int32)
IL_0735: ldc.i4.1
IL_0736: add
IL_0737: stloc.s 25 (System.Int32)
IL_0739: Label45
IL_0739: ldloc.s 25 (System.Int32)
IL_073B: ldc.i4.8
IL_073C: blt => Label49
IL_0741: Label43
IL_0741: Label44
IL_0741: br => Label50
IL_0746: Label42
IL_0746: ldarg.0
IL_0747: ldfld PulseUnit[] ElectricityManager::m_pulseUnits
IL_074C: ldarg.0
IL_074D: ldfld System.Int32 ElectricityManager::m_pulseUnitEnd
IL_0752: ldelema ElectricityManager+PulseUnit
IL_0757: ldloc.s 18 (ElectricityManager+PulseUnit)
IL_0759: stobj ElectricityManager+PulseUnit
IL_075E: ldarg.0
IL_075F: dup
IL_0760: ldfld System.Int32 ElectricityManager::m_pulseUnitEnd
IL_0765: ldc.i4.1
IL_0766: add
IL_0767: dup
IL_0768: stloc.s 15 (System.Int32)
IL_076A: stfld System.Int32 ElectricityManager::m_pulseUnitEnd
IL_076F: ldloc.s 15 (System.Int32)
IL_0771: ldarg.0
IL_0772: ldfld PulseUnit[] ElectricityManager::m_pulseUnits
IL_0777: ldlen
IL_0778: conv.i4
IL_0779: bne.un => Label51
IL_077E: ldarg.0
IL_077F: ldc.i4.0
IL_0780: stfld System.Int32 ElectricityManager::m_pulseUnitEnd
IL_0785: Label25
IL_0785: Label41
IL_0785: Label50
IL_0785: Label51
IL_0785: ldarg.0
IL_0786: ldfld System.Int32 ElectricityManager::m_pulseUnitStart
IL_078B: ldloc.s 17 (System.Int32)
IL_078D: bne.un => Label52
IL_0792: Label24
IL_0792: ldarg.0
IL_0793: ldfld System.Boolean ElectricityManager::m_canContinue
IL_0798: brfalse => Label53
IL_079D: ldarg.0
IL_079E: ldfld System.Int32 ElectricityManager::m_processedCells
IL_07A3: ldloc.s 16 (System.Int32)
IL_07A5: blt => Label54
IL_07AA: Label53
IL_07AA: ldloc.1
IL_07AB: ldc.i4 255
IL_07B0: bne.un => Label55
IL_07B5: ldc.i4.0
IL_07B6: stloc.s 30 (System.Int32)
IL_07B8: br => Label56
IL_07BD: Label58
IL_07BD: ldarg.0
IL_07BE: ldfld PulseGroup[] ElectricityManager::m_pulseGroups
IL_07C3: ldloc.s 30 (System.Int32)
IL_07C5: ldelema ElectricityManager+PulseGroup
IL_07CA: ldobj ElectricityManager+PulseGroup
IL_07CF: stloc.s 31 (ElectricityManager+PulseGroup)
IL_07D1: ldloca.s 31 (ElectricityManager+PulseGroup)
IL_07D3: ldfld System.UInt16 PulseGroup::m_mergeIndex
IL_07D8: ldc.i4 65535
IL_07DD: beq => Label57
IL_07E2: ldarg.0
IL_07E3: ldfld PulseGroup[] ElectricityManager::m_pulseGroups
IL_07E8: ldloca.s 31 (ElectricityManager+PulseGroup)
IL_07EA: ldfld System.UInt16 PulseGroup::m_mergeIndex
IL_07EF: ldelema ElectricityManager+PulseGroup
IL_07F4: ldobj ElectricityManager+PulseGroup
IL_07F9: stloc.s 32 (ElectricityManager+PulseGroup)
IL_07FB: ldloca.s 31 (ElectricityManager+PulseGroup)
IL_07FD: ldloca.s 32 (ElectricityManager+PulseGroup)
IL_07FF: ldfld System.UInt32 PulseGroup::m_curCharge
IL_0804: conv.u8
IL_0805: ldloca.s 31 (ElectricityManager+PulseGroup)
IL_0807: ldfld System.UInt32 PulseGroup::m_origCharge
IL_080C: conv.u8
IL_080D: mul
IL_080E: ldloca.s 32 (ElectricityManager+PulseGroup)
IL_0810: ldfld System.UInt32 PulseGroup::m_origCharge
IL_0815: conv.u8
IL_0816: div.un
IL_0817: conv.u4
IL_0818: stfld System.UInt32 PulseGroup::m_curCharge
IL_081D: ldloca.s 32 (ElectricityManager+PulseGroup)
IL_081F: dup
IL_0820: ldfld System.UInt32 PulseGroup::m_curCharge
IL_0825: ldloca.s 31 (ElectricityManager+PulseGroup)
IL_0827: ldfld System.UInt32 PulseGroup::m_curCharge
IL_082C: sub
IL_082D: stfld System.UInt32 PulseGroup::m_curCharge
IL_0832: ldloca.s 32 (ElectricityManager+PulseGroup)
IL_0834: dup
IL_0835: ldfld System.UInt32 PulseGroup::m_origCharge
IL_083A: ldloca.s 31 (ElectricityManager+PulseGroup)
IL_083C: ldfld System.UInt32 PulseGroup::m_origCharge
IL_0841: sub
IL_0842: stfld System.UInt32 PulseGroup::m_origCharge
IL_0847: ldarg.0
IL_0848: ldfld PulseGroup[] ElectricityManager::m_pulseGroups
IL_084D: ldloca.s 31 (ElectricityManager+PulseGroup)
IL_084F: ldfld System.UInt16 PulseGroup::m_mergeIndex
IL_0854: ldelema ElectricityManager+PulseGroup
IL_0859: ldloc.s 32 (ElectricityManager+PulseGroup)
IL_085B: stobj ElectricityManager+PulseGroup
IL_0860: ldarg.0
IL_0861: ldfld PulseGroup[] ElectricityManager::m_pulseGroups
IL_0866: ldloc.s 30 (System.Int32)
IL_0868: ldelema ElectricityManager+PulseGroup
IL_086D: ldloc.s 31 (ElectricityManager+PulseGroup)
IL_086F: stobj ElectricityManager+PulseGroup
IL_0874: Label57
IL_0874: ldloc.s 30 (System.Int32)
IL_0876: ldc.i4.1
IL_0877: add
IL_0878: stloc.s 30 (System.Int32)
IL_087A: Label56
IL_087A: ldloc.s 30 (System.Int32)
IL_087C: ldarg.0
IL_087D: ldfld System.Int32 ElectricityManager::m_pulseGroupCount
IL_0882: blt => Label58
IL_0887: ldc.i4.0
IL_0888: stloc.s 33 (System.Int32)
IL_088A: br => Label59
IL_088F: Label62
IL_088F: ldarg.0
IL_0890: ldfld PulseGroup[] ElectricityManager::m_pulseGroups
IL_0895: ldloc.s 33 (System.Int32)
IL_0897: ldelema ElectricityManager+PulseGroup
IL_089C: ldobj ElectricityManager+PulseGroup
IL_08A1: stloc.s 34 (ElectricityManager+PulseGroup)
IL_08A3: ldloca.s 34 (ElectricityManager+PulseGroup)
IL_08A5: ldfld System.UInt32 PulseGroup::m_curCharge
IL_08AA: brfalse => Label60
IL_08AF: ldloca.s 34 (ElectricityManager+PulseGroup)
IL_08B1: ldfld System.Byte PulseGroup::m_z
IL_08B6: ldc.i4 256
IL_08BB: mul
IL_08BC: ldloca.s 34 (ElectricityManager+PulseGroup)
IL_08BE: ldfld System.Byte PulseGroup::m_x
IL_08C3: add
IL_08C4: stloc.s 35 (System.Int32)
IL_08C6: ldarg.0
IL_08C7: ldfld Cell[] ElectricityManager::m_electricityGrid
IL_08CC: ldloc.s 35 (System.Int32)
IL_08CE: ldelema ElectricityManager+Cell
IL_08D3: ldobj ElectricityManager+Cell
IL_08D8: stloc.s 36 (ElectricityManager+Cell)
IL_08DA: ldloca.s 36 (ElectricityManager+Cell)
IL_08DC: ldfld System.Byte Cell::m_conductivity
IL_08E1: brfalse => Label61
IL_08E6: ldloca.s 36 (ElectricityManager+Cell)
IL_08E8: dup
IL_08E9: ldfld System.UInt16 Cell::m_extraCharge
IL_08EE: ldloca.s 34 (ElectricityManager+PulseGroup)
IL_08F0: ldfld System.UInt32 PulseGroup::m_curCharge
IL_08F5: ldc.i4 32767
IL_08FA: ldloca.s 36 (ElectricityManager+Cell)
IL_08FC: ldfld System.UInt16 Cell::m_extraCharge
IL_0901: sub
IL_0902: call static System.Int32 UnityEngine.Mathf::Min(System.Int32 a,
System.Int32 b)
IL_0907: conv.u2
IL_0908: add
IL_0909: conv.u2
IL_090A: stfld System.UInt16 Cell::m_extraCharge
IL_090F: Label61
IL_090F: ldarg.0
IL_0910: ldfld Cell[] ElectricityManager::m_electricityGrid
IL_0915: ldloc.s 35 (System.Int32)
IL_0917: ldelema ElectricityManager+Cell
IL_091C: ldloc.s 36 (ElectricityManager+Cell)
IL_091E: stobj ElectricityManager+Cell
IL_0923: Label60
IL_0923: ldloc.s 33 (System.Int32)
IL_0925: ldc.i4.1
IL_0926: add
IL_0927: stloc.s 33 (System.Int32)
IL_0929: Label59
IL_0929: ldloc.s 33 (System.Int32)
IL_092B: ldarg.0
IL_092C: ldfld System.Int32 ElectricityManager::m_pulseGroupCount
IL_0931: blt => Label62
IL_0936: // end original
IL_0936: Label0
IL_0936: Label1
IL_0936: Label22
IL_0936: Label55
IL_0936: ret
DONE

### Patch: System.Void ElectricityManager::ConductToNode(System.UInt16 nodeIndex,


NetNode& node, System.UInt16 group, System.Single minX, System.Single minZ,
System.Single maxX, System.Single maxZ)
### Replacement: static System.Void
ElectricityManager::ElectricityManager.ConductToNode_Patch0(ElectricityManager
this, System.UInt16 nodeIndex, NetNode& node, System.UInt16 group, System.Single
minX, System.Single minZ, System.Single maxX, System.Single maxZ)
IL_0000: Local var 0: NetInfo
IL_0000: Local var 1: ElectricityManager/PulseUnit
IL_0000: Local var 2: System.Int32
IL_0000: Local var 3: System.UInt16
IL_0000: // start original
IL_0000: ldarg.2
IL_0001: ldflda UnityEngine.Vector3 NetNode::m_position
IL_0006: ldfld System.Single UnityEngine.Vector3::x
IL_000B: ldarg.s 4
IL_000D: blt.un => Label0
IL_0012: ldarg.2
IL_0013: ldflda UnityEngine.Vector3 NetNode::m_position
IL_0018: ldfld System.Single UnityEngine.Vector3::z
IL_001D: ldarg.s 5
IL_001F: blt.un => Label1
IL_0024: ldarg.2
IL_0025: ldflda UnityEngine.Vector3 NetNode::m_position
IL_002A: ldfld System.Single UnityEngine.Vector3::x
IL_002F: ldarg.s 6
IL_0031: bgt.un => Label2
IL_0036: ldarg.2
IL_0037: ldflda UnityEngine.Vector3 NetNode::m_position
IL_003C: ldfld System.Single UnityEngine.Vector3::z
IL_0041: ldarg.s 7
IL_0043: bgt.un => Label3
IL_0048: ldarg.2
IL_0049: call static System.Boolean
ElectricRoads.Overrides.ElectricRoadsOverrides::CheckElectricConductibility(NetNode
& node)
IL_004E: brfalse => Label5
IL_0053: Label4
IL_0053: ldarg.0
IL_0054: ldfld System.UInt16[] ElectricityManager::m_nodeGroups
IL_0059: ldarg.1
IL_005A: ldelem.u2
IL_005B: ldc.i4 65535
IL_0060: bne.un => Label6
IL_0065: ldloca.s 1 (ElectricityManager+PulseUnit)
IL_0067: ldarg.3
IL_0068: stfld System.UInt16 PulseUnit::m_group
IL_006D: ldloca.s 1 (ElectricityManager+PulseUnit)
IL_006F: ldarg.1
IL_0070: stfld System.UInt16 PulseUnit::m_node
IL_0075: ldloca.s 1 (ElectricityManager+PulseUnit)
IL_0077: ldc.i4.0
IL_0078: stfld System.Byte PulseUnit::m_x
IL_007D: ldloca.s 1 (ElectricityManager+PulseUnit)
IL_007F: ldc.i4.0
IL_0080: stfld System.Byte PulseUnit::m_z
IL_0085: ldarg.0
IL_0086: ldfld PulseUnit[] ElectricityManager::m_pulseUnits
IL_008B: ldarg.0
IL_008C: ldfld System.Int32 ElectricityManager::m_pulseUnitEnd
IL_0091: ldelema ElectricityManager+PulseUnit
IL_0096: ldloc.1
IL_0097: stobj ElectricityManager+PulseUnit
IL_009C: ldarg.0
IL_009D: dup
IL_009E: ldfld System.Int32 ElectricityManager::m_pulseUnitEnd
IL_00A3: ldc.i4.1
IL_00A4: add
IL_00A5: dup
IL_00A6: stloc.2
IL_00A7: stfld System.Int32 ElectricityManager::m_pulseUnitEnd
IL_00AC: ldloc.2
IL_00AD: ldarg.0
IL_00AE: ldfld PulseUnit[] ElectricityManager::m_pulseUnits
IL_00B3: ldlen
IL_00B4: conv.i4
IL_00B5: bne.un => Label7
IL_00BA: ldarg.0
IL_00BB: ldc.i4.0
IL_00BC: stfld System.Int32 ElectricityManager::m_pulseUnitEnd
IL_00C1: Label7
IL_00C1: ldarg.0
IL_00C2: ldfld System.UInt16[] ElectricityManager::m_nodeGroups
IL_00C7: ldarg.1
IL_00C8: ldarg.3
IL_00C9: stelem.i2
IL_00CA: ldarg.0
IL_00CB: ldc.i4.1
IL_00CC: stfld System.Boolean ElectricityManager::m_canContinue
IL_00D1: br => Label8
IL_00D6: Label6
IL_00D6: ldarg.0
IL_00D7: ldarg.0
IL_00D8: ldfld System.UInt16[] ElectricityManager::m_nodeGroups
IL_00DD: ldarg.1
IL_00DE: ldelem.u2
IL_00DF: call System.UInt16 ElectricityManager::GetRootGroup(System.UInt16
group)
IL_00E4: stloc.3
IL_00E5: ldloc.3
IL_00E6: ldarg.3
IL_00E7: beq => Label9
IL_00EC: ldarg.0
IL_00ED: ldarg.3
IL_00EE: ldloc.3
IL_00EF: call System.Void ElectricityManager::MergeGroups(System.UInt16 root,
System.UInt16 merged)
IL_00F4: ldarg.0
IL_00F5: ldfld System.UInt16[] ElectricityManager::m_nodeGroups
IL_00FA: ldarg.1
IL_00FB: ldarg.3
IL_00FC: stelem.i2
IL_00FD: ldarg.0
IL_00FE: ldc.i4.1
IL_00FF: stfld System.Boolean ElectricityManager::m_canContinue
IL_0104: // end original
IL_0104: Label0
IL_0104: Label1
IL_0104: Label2
IL_0104: Label3
IL_0104: Label5
IL_0104: Label8
IL_0104: Label9
IL_0104: ret
DONE

### Patch: System.Void ElectricityManager::UpdateNodeElectricity(System.Int32


nodeID, System.Int32 value)
### Replacement: static System.Void
ElectricityManager::ElectricityManager.UpdateNodeElectricity_Patch2(ElectricityMana
ger this, System.Int32 nodeID, System.Int32 value)
IL_0000: Local var 0: InfoManager/InfoMode
IL_0000: Local var 1: NetManager
IL_0000: Local var 2: System.Boolean
IL_0000: Local var 3: NetNode/Flags
IL_0000: Local var 4: System.UInt16
IL_0000: Local var 5: BuildingManager
IL_0000: Local var 6: NetNode/Flags
IL_0000: Local var 7: System.Int32
IL_0000: Local var 8: System.UInt16
IL_0000: Local var 9: System.Boolean
IL_0000: Local var 10: System.Boolean
IL_0000: ldc.i4 0
IL_0005: stloc 9 (System.Boolean)
IL_0009: ldc.i4.1
IL_000A: stloc 9 (System.Boolean)
IL_000E: ldc.i4 0
IL_0013: stloc 10 (System.Boolean)
IL_0017: ldloc 9 (System.Boolean)
IL_001B: brfalse => Label1
IL_0020: ldarga 1
IL_0024: ldloca 10 (System.Boolean)
IL_0028: call static System.Void
ElectricRoads.Overrides.ElectricRoadsOverrides::PreConduct(System.Int32& nodeID,
System.Boolean& __state)
IL_002D: Label1
IL_002D: nop
IL_002E: ldloc 9 (System.Boolean)
IL_0032: brfalse => Label0
IL_0037: // start original
IL_0037: call static InfoManager
ColossalFramework.Singleton`1<InfoManager>::get_instance()
IL_003C: callvirt InfoMode InfoManager::get_CurrentMode()
IL_0041: stloc.0
IL_0042: call static NetManager
ColossalFramework.Singleton`1<NetManager>::get_instance()
IL_0047: stloc.1
IL_0048: ldc.i4.0
IL_0049: stloc.2
IL_004A: ldloc.1
IL_004B: ldfld Array16`1<NetNode> NetManager::m_nodes
IL_0050: ldfld NetNode[] Array16`1<NetNode>::m_buffer
IL_0055: ldarg.1
IL_0056: ldelema NetNode
IL_005B: ldfld Flags NetNode::m_flags
IL_0060: stloc.3
IL_0061: ldarg.1
IL_0062: call static System.Boolean
ElectricRoads.Overrides.ElectricRoadsOverrides::CheckNodeTransition(System.Int32
nodeID)
IL_0067: brfalse => Label2
IL_006C: ldloc.1
IL_006D: ldfld Array16`1<NetNode> NetManager::m_nodes
IL_0072: ldfld NetNode[] Array16`1<NetNode>::m_buffer
IL_0077: ldarg.1
IL_0078: ldelema NetNode
IL_007D: dup
IL_007E: ldfld Flags NetNode::m_flags
IL_0083: ldc.i4 -1048577
IL_0088: and
IL_0089: stfld Flags NetNode::m_flags
IL_008E: br => Label12
IL_0093: Label2
IL_0093: ldloc.1
IL_0094: ldfld Array16`1<NetNode> NetManager::m_nodes
IL_0099: ldfld NetNode[] Array16`1<NetNode>::m_buffer
IL_009E: ldarg.1
IL_009F: ldelema NetNode
IL_00A4: ldfld System.UInt16 NetNode::m_building
IL_00A9: stloc.s 4 (System.UInt16)
IL_00AB: ldloc.s 4 (System.UInt16)
IL_00AD: brfalse => Label3
IL_00B2: call static BuildingManager
ColossalFramework.Singleton`1<BuildingManager>::get_instance()
IL_00B7: stloc.s 5 (BuildingManager)
IL_00B9: ldloc.s 5 (BuildingManager)
IL_00BB: ldfld Array16`1<Building> BuildingManager::m_buildings
IL_00C0: ldfld Building[] Array16`1<Building>::m_buffer
IL_00C5: ldloc.s 4 (System.UInt16)
IL_00C7: ldelema Building
IL_00CC: ldfld System.UInt16 Building::m_electricityBuffer
IL_00D1: ldarg.2
IL_00D2: beq => Label4
IL_00D7: ldloc.s 5 (BuildingManager)
IL_00D9: ldfld Array16`1<Building> BuildingManager::m_buildings
IL_00DE: ldfld Building[] Array16`1<Building>::m_buffer
IL_00E3: ldloc.s 4 (System.UInt16)
IL_00E5: ldelema Building
IL_00EA: ldarg.2
IL_00EB: conv.u2
IL_00EC: stfld System.UInt16 Building::m_electricityBuffer
IL_00F1: ldloc.0
IL_00F2: ldc.i4.1
IL_00F3: ceq
IL_00F5: stloc.2
IL_00F6: Label4
IL_00F6: ldloc.2
IL_00F7: brfalse => Label5
IL_00FC: ldloc.s 5 (BuildingManager)
IL_00FE: ldloc.s 4 (System.UInt16)
IL_0100: callvirt System.Void BuildingManager::UpdateBuildingColors(System.UInt16
building)
IL_0105: Label3
IL_0105: Label5
IL_0105: ldloc.3
IL_0106: ldc.i4 -67108865
IL_010B: and
IL_010C: stloc.s 6 (NetNode+Flags)
IL_010E: ldarg.2
IL_010F: brfalse => Label6
IL_0114: ldloc.s 6 (NetNode+Flags)
IL_0116: ldc.i4 67108864
IL_011B: or
IL_011C: stloc.s 6 (NetNode+Flags)
IL_011E: Label6
IL_011E: ldloc.s 6 (NetNode+Flags)
IL_0120: ldloc.3
IL_0121: beq => Label7
IL_0126: ldloc.1
IL_0127: ldfld Array16`1<NetNode> NetManager::m_nodes
IL_012C: ldfld NetNode[] Array16`1<NetNode>::m_buffer
IL_0131: ldarg.1
IL_0132: ldelema NetNode
IL_0137: ldloc.s 6 (NetNode+Flags)
IL_0139: stfld Flags NetNode::m_flags
IL_013E: ldloc.0
IL_013F: ldc.i4.1
IL_0140: ceq
IL_0142: stloc.2
IL_0143: Label7
IL_0143: ldloc.2
IL_0144: brfalse => Label8
IL_0149: ldloc.1
IL_014A: ldarg.1
IL_014B: conv.u2
IL_014C: callvirt System.Void NetManager::UpdateNodeColors(System.UInt16 node)
IL_0151: ldc.i4.0
IL_0152: stloc.s 7 (System.Int32)
IL_0154: br => Label9
IL_0159: Label11
IL_0159: ldloc.1
IL_015A: ldfld Array16`1<NetNode> NetManager::m_nodes
IL_015F: ldfld NetNode[] Array16`1<NetNode>::m_buffer
IL_0164: ldarg.1
IL_0165: ldelema NetNode
IL_016A: ldloc.s 7 (System.Int32)
IL_016C: call System.UInt16 NetNode::GetSegment(System.Int32 index)
IL_0171: stloc.s 8 (System.UInt16)
IL_0173: ldloc.s 8 (System.UInt16)
IL_0175: brfalse => Label10
IL_017A: ldloc.1
IL_017B: ldloc.s 8 (System.UInt16)
IL_017D: callvirt System.Void NetManager::UpdateSegmentColors(System.UInt16
segment)
IL_0182: Label10
IL_0182: ldloc.s 7 (System.Int32)
IL_0184: ldc.i4.1
IL_0185: add
IL_0186: stloc.s 7 (System.Int32)
IL_0188: Label9
IL_0188: ldloc.s 7 (System.Int32)
IL_018A: ldc.i4.8
IL_018B: blt => Label11
IL_0190: // end original
IL_0190: Label8
IL_0190: Label12
IL_0190: Label0
IL_0190: ldarg 1
IL_0194: ldloc 10 (System.Boolean)
IL_0198: call static System.Void
ElectricRoads.Overrides.ElectricRoadsOverrides::PostConduct(System.Int32 nodeID,
System.Boolean __state)
IL_019D: ret
DONE

### Patch: virtual System.Void ColossalFramework.UI.UIView::Start()


### Replacement: static System.Void
ColossalFramework.UI.UIView::ColossalFramework.UI.UIView.Start_Patch0(ColossalFrame
work.UI.UIView this)
IL_0000: Local var 0:
ColossalFramework.PoolList`1<ColossalFramework.UI.UIComponent>
IL_0000: Local var 1: ColossalFramework.UI.UIComponent
IL_0000: Local var 2:
System.Collections.Generic.IEnumerator`1<ColossalFramework.UI.UIComponent>
IL_0000: // start original
IL_0000: ldarg.0
IL_0001: ldc.i4.0
IL_0002: stfld System.Int32 ColossalFramework.UI.UIView::m_FramesRendered
IL_0007: ldarg.0
IL_0008: call System.Void
ColossalFramework.UI.UIView::InvalidateAllComponents()
IL_000D: ldarg.0
IL_000E: ldfld UnityEngine.MeshRenderer
ColossalFramework.UI.UIView::m_MeshRenderer
IL_0013: ldnull
IL_0014: call static System.Boolean
UnityEngine.Object::op_Inequality(UnityEngine.Object x, UnityEngine.Object y)
IL_0019: brfalse => Label0
IL_001E: ldarg.0
IL_001F: ldfld UnityEngine.MeshRenderer
ColossalFramework.UI.UIView::m_MeshRenderer
IL_0024: ldc.i4.1
IL_0025: callvirt System.Void UnityEngine.Renderer::set_enabled(System.Boolean
value)
IL_002A: Label0
IL_002A: ldarg.0
IL_002B: call ColossalFramework.PoolList`1<ColossalFramework.UI.UIComponent>
ColossalFramework.UI.UIView::GetTopLevelComponents()
IL_0030: stloc.0
.try
{
IL_0031: ldloc.0
IL_0032: callvirt virtual
System.Collections.Generic.IEnumerator`1<ColossalFramework.UI.UIComponent>
ColossalFramework.PoolList`1<ColossalFramework.UI.UIComponent>::GetEnumerator()
IL_0037: stloc.2
.try
{
IL_0038: br => Label1
IL_003D: Label2
IL_003D: ldloc.2
IL_003E: callvirt abstract virtual ColossalFramework.UI.UIComponent
System.Collections.Generic.IEnumerator`1<ColossalFramework.UI.UIComponent>::get_Cur
rent()
IL_0043: stloc.1
IL_0044: ldloc.1
IL_0045: ldc.i4.1
IL_0046: callvirt System.Void
ColossalFramework.UI.UIComponent::InitializeParentVisibilityCache(System.Boolean
parentVisible)
IL_004B: Label1
IL_004B: ldloc.2
IL_004C: callvirt abstract virtual System.Boolean
System.Collections.IEnumerator::MoveNext()
IL_0051: brtrue => Label2
IL_0056: leave => Label3
IL_005B: leave => (autogenerated)
} // end try
.finally
{
IL_0060: ldloc.2
IL_0061: brfalse => Label4
IL_0066: ldloc.2
IL_0067: callvirt abstract virtual System.Void
System.IDisposable::Dispose()
IL_006C: Label4
IL_006C: endfinally
IL_006D: leave => (autogenerated)
} // end handler
IL_006E: Label3
IL_006E: leave => Label5
IL_0073: leave => (autogenerated)
} // end try
.finally
{
IL_0078: ldloc.0
IL_0079: brfalse => Label6
IL_007E: ldloc.0
IL_007F: callvirt abstract virtual System.Void
System.IDisposable::Dispose()
IL_0084: Label6
IL_0084: endfinally
IL_0085: leave => (autogenerated)
} // end handler
IL_0086: Label5
IL_0086: ldarg.0
IL_0087: ldc.i4.1
IL_0088: stfld System.Boolean
ColossalFramework.UI.UIView::m_VisibilityCacheInitialized
IL_008D: // end original
IL_008D: ret
DONE

### Patch: virtual UnityEngine.Color NetAI::GetColor(System.UInt16 nodeID, NetNode&


data, InfoMode infoMode, SubInfoMode subInfoMode)
### Replacement: static UnityEngine.Color NetAI::NetAI.GetColor_Patch0(NetAI this,
System.UInt16 nodeID, NetNode& data, InfoMode infoMode, SubInfoMode subInfoMode)
IL_0000: // start original
IL_0000: ldarg.3
IL_0001: brfalse => Label0
IL_0006: call static InfoManager
ColossalFramework.Singleton`1<InfoManager>::get_instance()
IL_000B: ldfld InfoProperties SimulationManagerBase`2<InfoManager,
InfoProperties>::m_properties
IL_0010: ldfld UnityEngine.Color InfoProperties::m_neutralColor
IL_0015: br => Label1
IL_001A: Label0
IL_001A: ldarg.0
IL_001B: ldfld NetInfo NetAI::m_info
IL_0020: ldfld UnityEngine.Color NetInfo::m_color
IL_0025: // end original
IL_0025: Label1
IL_0025: ret
DONE

### Patch: virtual UnityEngine.Color NetAI::GetColor(System.UInt16 segmentID,


NetSegment& data, InfoMode infoMode, SubInfoMode subInfoMode)
### Replacement: static UnityEngine.Color NetAI::NetAI.GetColor_Patch0(NetAI this,
System.UInt16 segmentID, NetSegment& data, InfoMode infoMode, SubInfoMode
subInfoMode)
IL_0000: // start original
IL_0000: ldarg.3
IL_0001: brfalse => Label0
IL_0006: call static InfoManager
ColossalFramework.Singleton`1<InfoManager>::get_instance()
IL_000B: ldfld InfoProperties SimulationManagerBase`2<InfoManager,
InfoProperties>::m_properties
IL_0010: ldfld UnityEngine.Color InfoProperties::m_neutralColor
IL_0015: br => Label1
IL_001A: Label0
IL_001A: ldarg.0
IL_001B: ldfld NetInfo NetAI::m_info
IL_0020: ldfld UnityEngine.Color NetInfo::m_color
IL_0025: // end original
IL_0025: Label1
IL_0025: ret
DONE

### Patch: System.Void ElectricityManager::UpdateNodeElectricity(System.Int32


nodeID, System.Int32 value)
### Replacement: static System.Void
ElectricityManager::ElectricityManager.UpdateNodeElectricity_Patch0(ElectricityMana
ger this, System.Int32 nodeID, System.Int32 value)
IL_0000: Local var 0: InfoManager/InfoMode
IL_0000: Local var 1: NetManager
IL_0000: Local var 2: System.Boolean
IL_0000: Local var 3: NetNode/Flags
IL_0000: Local var 4: System.UInt16
IL_0000: Local var 5: BuildingManager
IL_0000: Local var 6: NetNode/Flags
IL_0000: Local var 7: System.Int32
IL_0000: Local var 8: System.UInt16
IL_0000: // start original
IL_0000: call static InfoManager
ColossalFramework.Singleton`1<InfoManager>::get_instance()
IL_0005: callvirt InfoMode InfoManager::get_CurrentMode()
IL_000A: stloc.0
IL_000B: call static NetManager
ColossalFramework.Singleton`1<NetManager>::get_instance()
IL_0010: stloc.1
IL_0011: ldc.i4.0
IL_0012: stloc.2
IL_0013: ldloc.1
IL_0014: ldfld Array16`1<NetNode> NetManager::m_nodes
IL_0019: ldfld NetNode[] Array16`1<NetNode>::m_buffer
IL_001E: ldarg.1
IL_001F: ldelema NetNode
IL_0024: ldfld Flags NetNode::m_flags
IL_0029: stloc.3
IL_002A: ldloc.3
IL_002B: ldc.i4 1048576
IL_0030: and
IL_0031: brfalse => Label0
IL_0036: ldloc.1
IL_0037: ldfld Array16`1<NetNode> NetManager::m_nodes
IL_003C: ldfld NetNode[] Array16`1<NetNode>::m_buffer
IL_0041: ldarg.1
IL_0042: ldelema NetNode
IL_0047: dup
IL_0048: ldfld Flags NetNode::m_flags
IL_004D: ldc.i4 -1048577
IL_0052: and
IL_0053: stfld Flags NetNode::m_flags
IL_0058: br => Label10
IL_005D: Label0
IL_005D: ldloc.1
IL_005E: ldfld Array16`1<NetNode> NetManager::m_nodes
IL_0063: ldfld NetNode[] Array16`1<NetNode>::m_buffer
IL_0068: ldarg.1
IL_0069: ldelema NetNode
IL_006E: ldfld System.UInt16 NetNode::m_building
IL_0073: stloc.s 4 (System.UInt16)
IL_0075: ldloc.s 4 (System.UInt16)
IL_0077: brfalse => Label1
IL_007C: call static BuildingManager
ColossalFramework.Singleton`1<BuildingManager>::get_instance()
IL_0081: stloc.s 5 (BuildingManager)
IL_0083: ldloc.s 5 (BuildingManager)
IL_0085: ldfld Array16`1<Building> BuildingManager::m_buildings
IL_008A: ldfld Building[] Array16`1<Building>::m_buffer
IL_008F: ldloc.s 4 (System.UInt16)
IL_0091: ldelema Building
IL_0096: ldfld System.UInt16 Building::m_electricityBuffer
IL_009B: ldarg.2
IL_009C: beq => Label2
IL_00A1: ldloc.s 5 (BuildingManager)
IL_00A3: ldfld Array16`1<Building> BuildingManager::m_buildings
IL_00A8: ldfld Building[] Array16`1<Building>::m_buffer
IL_00AD: ldloc.s 4 (System.UInt16)
IL_00AF: ldelema Building
IL_00B4: ldarg.2
IL_00B5: conv.u2
IL_00B6: stfld System.UInt16 Building::m_electricityBuffer
IL_00BB: ldloc.0
IL_00BC: ldc.i4.1
IL_00BD: ceq
IL_00BF: stloc.2
IL_00C0: Label2
IL_00C0: ldloc.2
IL_00C1: brfalse => Label3
IL_00C6: ldloc.s 5 (BuildingManager)
IL_00C8: ldloc.s 4 (System.UInt16)
IL_00CA: callvirt System.Void BuildingManager::UpdateBuildingColors(System.UInt16
building)
IL_00CF: Label1
IL_00CF: Label3
IL_00CF: ldloc.3
IL_00D0: ldc.i4 -67108865
IL_00D5: and
IL_00D6: stloc.s 6 (NetNode+Flags)
IL_00D8: ldarg.2
IL_00D9: brfalse => Label4
IL_00DE: ldloc.s 6 (NetNode+Flags)
IL_00E0: ldc.i4 67108864
IL_00E5: or
IL_00E6: stloc.s 6 (NetNode+Flags)
IL_00E8: Label4
IL_00E8: ldloc.s 6 (NetNode+Flags)
IL_00EA: ldloc.3
IL_00EB: beq => Label5
IL_00F0: ldloc.1
IL_00F1: ldfld Array16`1<NetNode> NetManager::m_nodes
IL_00F6: ldfld NetNode[] Array16`1<NetNode>::m_buffer
IL_00FB: ldarg.1
IL_00FC: ldelema NetNode
IL_0101: ldloc.s 6 (NetNode+Flags)
IL_0103: stfld Flags NetNode::m_flags
IL_0108: ldloc.0
IL_0109: ldc.i4.1
IL_010A: ceq
IL_010C: stloc.2
IL_010D: Label5
IL_010D: ldloc.2
IL_010E: brfalse => Label6
IL_0113: ldloc.1
IL_0114: ldarg.1
IL_0115: conv.u2
IL_0116: callvirt System.Void NetManager::UpdateNodeColors(System.UInt16 node)
IL_011B: ldc.i4.0
IL_011C: stloc.s 7 (System.Int32)
IL_011E: br => Label7
IL_0123: Label9
IL_0123: ldloc.1
IL_0124: ldfld Array16`1<NetNode> NetManager::m_nodes
IL_0129: ldfld NetNode[] Array16`1<NetNode>::m_buffer
IL_012E: ldarg.1
IL_012F: ldelema NetNode
IL_0134: ldloc.s 7 (System.Int32)
IL_0136: call System.UInt16 NetNode::GetSegment(System.Int32 index)
IL_013B: stloc.s 8 (System.UInt16)
IL_013D: ldloc.s 8 (System.UInt16)
IL_013F: brfalse => Label8
IL_0144: ldloc.1
IL_0145: ldloc.s 8 (System.UInt16)
IL_0147: callvirt System.Void NetManager::UpdateSegmentColors(System.UInt16
segment)
IL_014C: Label8
IL_014C: ldloc.s 7 (System.Int32)
IL_014E: ldc.i4.1
IL_014F: add
IL_0150: stloc.s 7 (System.Int32)
IL_0152: Label7
IL_0152: ldloc.s 7 (System.Int32)
IL_0154: ldc.i4.8
IL_0155: blt => Label9
IL_015A: // end original
IL_015A: Label6
IL_015A: Label10
IL_015A: ret
DONE

### Patch: static System.Void PropInstance::RenderInstance(CameraInfo cameraInfo,


PropInfo info, InstanceID id, UnityEngine.Vector3 position, System.Single scale,
System.Single angle, UnityEngine.Color color, UnityEngine.Vector4 objectIndex,
System.Boolean active, UnityEngine.Texture heightMap, UnityEngine.Vector4
heightMapping, UnityEngine.Vector4 surfaceMapping, UnityEngine.Texture
waterHeightMap, UnityEngine.Vector4 waterHeightMapping, UnityEngine.Vector4
waterSurfaceMapping)
### Replacement: static System.Void
PropInstance::PropInstance.RenderInstance_Patch0(CameraInfo cameraInfo, PropInfo
info, InstanceID id, UnityEngine.Vector3 position, System.Single scale,
System.Single angle, UnityEngine.Color color, UnityEngine.Vector4 objectIndex,
System.Boolean active, UnityEngine.Texture heightMap, UnityEngine.Vector4
heightMapping, UnityEngine.Vector4 surfaceMapping, UnityEngine.Texture
waterHeightMap, UnityEngine.Vector4 waterHeightMapping, UnityEngine.Vector4
waterSurfaceMapping)
IL_0000: Local var 0: UnityEngine.Matrix4x4
IL_0000: Local var 1: System.Single
IL_0000: Local var 2: System.Int32
IL_0000: Local var 3: UnityEngine.Vector3
IL_0000: Local var 4: UnityEngine.Vector3
IL_0000: Local var 5: EffectInfo/SpawnArea
IL_0000: Local var 6: System.Single
IL_0000: Local var 7: LightSystem
IL_0000: Local var 8: ColossalFramework.Math.Randomizer
IL_0000: Local var 9: UnityEngine.Vector4
IL_0000: Local var 10: System.Single
IL_0000: Local var 11: System.Single
IL_0000: Local var 12: System.Single
IL_0000: Local var 13: UnityEngine.Matrix4x4
IL_0000: Local var 14: PropManager
IL_0000: Local var 15: UnityEngine.MaterialPropertyBlock
IL_0000: Local var 16: System.Int32
IL_0000: // start original
IL_0000: ldarg.1
IL_0001: ldfld System.Boolean PrefabInfo::m_prefabInitialized
IL_0006: brfalse => Label0
IL_000B: ldarg.1
IL_000C: ldfld System.Boolean PropInfo::m_hasEffects
IL_0011: brfalse => Label1
IL_0016: ldarg.s 8
IL_0018: brtrue => Label2
IL_001D: ldarg.1
IL_001E: ldfld System.Boolean PropInfo::m_alwaysActive
IL_0023: brfalse => Label3
IL_0028: Label2
IL_0028: ldloca.s 0 (UnityEngine.Matrix4x4)
IL_002A: initobj UnityEngine.Matrix4x4
IL_0030: ldloca.s 0 (UnityEngine.Matrix4x4)
IL_0032: ldarg.3
IL_0033: ldarg.s 5
IL_0035: ldc.r4 57.29578
IL_003A: mul
IL_003B: call static UnityEngine.Vector3 UnityEngine.Vector3::get_down()
IL_0040: call static UnityEngine.Quaternion
UnityEngine.Quaternion::AngleAxis(System.Single angle, UnityEngine.Vector3 axis)
IL_0045: ldarg.s 4
IL_0047: ldarg.s 4
IL_0049: ldarg.s 4
IL_004B: newobj System.Void UnityEngine.Vector3::.ctor(System.Single x,
System.Single y, System.Single z)
IL_0050: call System.Void UnityEngine.Matrix4x4::SetTRS(UnityEngine.Vector3
pos, UnityEngine.Quaternion q, UnityEngine.Vector3 s)
IL_0055: call static SimulationManager
ColossalFramework.Singleton`1<SimulationManager>::get_instance()
IL_005A: ldfld System.Single SimulationManager::m_simulationTimeDelta
IL_005F: stloc.1
IL_0060: ldc.i4.0
IL_0061: stloc.2
IL_0062: br => Label4
IL_0067: Label5
IL_0067: ldloca.s 0 (UnityEngine.Matrix4x4)
IL_0069: ldarg.1
IL_006A: ldfld Effect[] PropInfo::m_effects
IL_006F: ldloc.2
IL_0070: ldelema PropInfo+Effect
IL_0075: ldfld UnityEngine.Vector3 Effect::m_position
IL_007A: call UnityEngine.Vector3
UnityEngine.Matrix4x4::MultiplyPoint(UnityEngine.Vector3 v)
IL_007F: stloc.3
IL_0080: ldloca.s 0 (UnityEngine.Matrix4x4)
IL_0082: ldarg.1
IL_0083: ldfld Effect[] PropInfo::m_effects
IL_0088: ldloc.2
IL_0089: ldelema PropInfo+Effect
IL_008E: ldfld UnityEngine.Vector3 Effect::m_direction
IL_0093: call UnityEngine.Vector3
UnityEngine.Matrix4x4::MultiplyVector(UnityEngine.Vector3 v)
IL_0098: stloc.s 4 (UnityEngine.Vector3)
IL_009A: ldloca.s 5 (EffectInfo+SpawnArea)
IL_009C: ldloc.3
IL_009D: ldloc.s 4 (UnityEngine.Vector3)
IL_009F: ldc.r4 0
IL_00A4: call System.Void SpawnArea::.ctor(UnityEngine.Vector3 position,
UnityEngine.Vector3 direction, System.Single radius)
IL_00A9: ldarg.1
IL_00AA: ldfld Effect[] PropInfo::m_effects
IL_00AF: ldloc.2
IL_00B0: ldelema PropInfo+Effect
IL_00B5: ldfld EffectInfo Effect::m_effect
IL_00BA: ldarg.2
IL_00BB: ldloc.s 5 (EffectInfo+SpawnArea)
IL_00BD: call static UnityEngine.Vector3 UnityEngine.Vector3::get_zero()
IL_00C2: ldc.r4 0
IL_00C7: ldc.r4 1
IL_00CC: ldc.r4 -1
IL_00D1: ldloc.1
IL_00D2: ldarg.0
IL_00D3: callvirt virtual System.Void EffectInfo::RenderEffect(InstanceID id,
SpawnArea area, UnityEngine.Vector3 velocity, System.Single acceleration,
System.Single magnitude, System.Single timeOffset, System.Single timeDelta,
CameraInfo cameraInfo)
IL_00D8: ldloc.2
IL_00D9: ldc.i4.1
IL_00DA: add
IL_00DB: stloc.2
IL_00DC: Label4
IL_00DC: ldloc.2
IL_00DD: ldarg.1
IL_00DE: ldfld Effect[] PropInfo::m_effects
IL_00E3: ldlen
IL_00E4: conv.i4
IL_00E5: blt => Label5
IL_00EA: Label1
IL_00EA: Label3
IL_00EA: ldarg.1
IL_00EB: ldfld System.Boolean PropInfo::m_hasRenderer
IL_00F0: brfalse => Label6
IL_00F5: ldarg.0
IL_00F6: ldfld System.Int32 CameraInfo::m_layerMask
IL_00FB: ldc.i4.1
IL_00FC: ldarg.1
IL_00FD: ldfld System.Int32 PrefabInfo::m_prefabDataLayer
IL_0102: ldc.i4.s 31
IL_0104: and
IL_0105: shl
IL_0106: and
IL_0107: brfalse => Label7
IL_010C: call static InfoManager
ColossalFramework.Singleton`1<InfoManager>::get_instance()
IL_0111: callvirt InfoMode InfoManager::get_CurrentMode()
IL_0116: brtrue => Label8
IL_011B: ldc.r4 0
IL_0120: stloc.s 6 (System.Single)
IL_0122: ldarg.s 8
IL_0124: brtrue => Label9
IL_0129: ldarg.1
IL_012A: ldfld System.Boolean PropInfo::m_alwaysActive
IL_012F: brtrue => Label10
IL_0134: ldarga.s 7
IL_0136: ldc.r4 0
IL_013B: stfld System.Single UnityEngine.Vector4::z
IL_0140: br => Label11
IL_0145: Label9
IL_0145: Label10
IL_0145: ldarg.1
IL_0146: ldflda UnityEngine.Vector2 PropInfo::m_illuminationOffRange
IL_014B: ldfld System.Single UnityEngine.Vector2::x
IL_0150: ldc.r4 1000
IL_0155: blt => Label12
IL_015A: ldarg.1
IL_015B: ldfld BlinkType PropInfo::m_illuminationBlinkType
IL_0160: brfalse => Label13
IL_0165: Label12
IL_0165: call static RenderManager
ColossalFramework.Singleton`1<RenderManager>::get_instance()
IL_016A: callvirt LightSystem RenderManager::get_lightSystem()
IL_016F: stloc.s 7 (LightSystem)
IL_0171: ldloca.s 8 (ColossalFramework.Math.Randomizer)
IL_0173: ldarga.s 2
IL_0175: call System.UInt32 InstanceID::get_Index()
IL_017A: call System.Void
ColossalFramework.Math.Randomizer::.ctor(System.UInt32 _seed)
IL_017F: ldarg.1
IL_0180: ldflda UnityEngine.Vector2 PropInfo::m_illuminationOffRange
IL_0185: ldfld System.Single UnityEngine.Vector2::x
IL_018A: ldloca.s 8 (ColossalFramework.Math.Randomizer)
IL_018C: ldc.i4 100000
IL_0191: call System.Int32
ColossalFramework.Math.Randomizer::Int32(System.UInt32 range)
IL_0196: conv.r4
IL_0197: ldc.r4 1E-05
IL_019C: mul
IL_019D: ldarg.1
IL_019E: ldflda UnityEngine.Vector2 PropInfo::m_illuminationOffRange
IL_01A3: ldfld System.Single UnityEngine.Vector2::y
IL_01A8: ldarg.1
IL_01A9: ldflda UnityEngine.Vector2 PropInfo::m_illuminationOffRange
IL_01AE: ldfld System.Single UnityEngine.Vector2::x
IL_01B3: sub
IL_01B4: mul
IL_01B5: add
IL_01B6: stloc.s 6 (System.Single)
IL_01B8: ldarga.s 7
IL_01BA: ldloc.s 6 (System.Single)
IL_01BC: ldc.r4 0.01
IL_01C1: add
IL_01C2: ldloc.s 6 (System.Single)
IL_01C4: ldc.r4 0.01
IL_01C9: sub
IL_01CA: ldloc.s 7 (LightSystem)
IL_01CC: callvirt System.Single LightSystem::get_DayLightIntensity()
IL_01D1: call static System.Single MathUtils::SmoothStep(System.Single edge0,
System.Single edge1, System.Single x)
IL_01D6: stfld System.Single UnityEngine.Vector4::z
IL_01DB: ldarg.1
IL_01DC: ldfld BlinkType PropInfo::m_illuminationBlinkType
IL_01E1: brfalse => Label14
IL_01E6: ldarg.1
IL_01E7: ldfld BlinkType PropInfo::m_illuminationBlinkType
IL_01EC: call static UnityEngine.Vector4
LightEffect::GetBlinkVector(BlinkType type)
IL_01F1: stloc.s 9 (UnityEngine.Vector4)
IL_01F3: ldloc.s 6 (System.Single)
IL_01F5: ldc.r4 3.71
IL_01FA: mul
IL_01FB: call static SimulationManager
ColossalFramework.Singleton`1<SimulationManager>::get_instance()
IL_0200: ldfld System.Single SimulationManager::m_simulationTimer
IL_0205: ldloca.s 9 (UnityEngine.Vector4)
IL_0207: ldfld System.Single UnityEngine.Vector4::w
IL_020C: div
IL_020D: add
IL_020E: stloc.s 10 (System.Single)
IL_0210: ldloc.s 10 (System.Single)
IL_0212: ldloc.s 10 (System.Single)
IL_0214: call static System.Single UnityEngine.Mathf::Floor(System.Single f)
IL_0219: sub
IL_021A: ldloca.s 9 (UnityEngine.Vector4)
IL_021C: ldfld System.Single UnityEngine.Vector4::w
IL_0221: mul
IL_0222: stloc.s 10 (System.Single)
IL_0224: ldloca.s 9 (UnityEngine.Vector4)
IL_0226: ldfld System.Single UnityEngine.Vector4::x
IL_022B: ldloca.s 9 (UnityEngine.Vector4)
IL_022D: ldfld System.Single UnityEngine.Vector4::y
IL_0232: ldloc.s 10 (System.Single)
IL_0234: call static System.Single MathUtils::SmoothStep(System.Single edge0,
System.Single edge1, System.Single x)
IL_0239: stloc.s 11 (System.Single)
IL_023B: ldloca.s 9 (UnityEngine.Vector4)
IL_023D: ldfld System.Single UnityEngine.Vector4::w
IL_0242: ldloca.s 9 (UnityEngine.Vector4)
IL_0244: ldfld System.Single UnityEngine.Vector4::z
IL_0249: ldloc.s 10 (System.Single)
IL_024B: call static System.Single MathUtils::SmoothStep(System.Single edge0,
System.Single edge1, System.Single x)
IL_0250: stloc.s 12 (System.Single)
IL_0252: ldarga.s 7
IL_0254: dup
IL_0255: ldfld System.Single UnityEngine.Vector4::z
IL_025A: ldc.r4 1
IL_025F: ldloc.s 11 (System.Single)
IL_0261: ldloc.s 12 (System.Single)
IL_0263: mul
IL_0264: sub
IL_0265: mul
IL_0266: stfld System.Single UnityEngine.Vector4::z
IL_026B: Label14
IL_026B: br => Label15
IL_0270: Label13
IL_0270: ldarga.s 7
IL_0272: ldc.r4 1
IL_0277: stfld System.Single UnityEngine.Vector4::z
IL_027C: Label8
IL_027C: Label11
IL_027C: Label15
IL_027C: ldarg.0
IL_027D: brfalse => Label16
IL_0282: ldarg.0
IL_0283: ldarg.3
IL_0284: ldarg.1
IL_0285: ldfld System.Single PropInfo::m_lodRenderDistance
IL_028A: callvirt System.Boolean
CameraInfo::CheckRenderDistance(UnityEngine.Vector3 point, System.Single
maxDistance)
IL_028F: brfalse => Label17
IL_0294: Label16
IL_0294: ldloca.s 13 (UnityEngine.Matrix4x4)
IL_0296: initobj UnityEngine.Matrix4x4
IL_029C: ldloca.s 13 (UnityEngine.Matrix4x4)
IL_029E: ldarg.3
IL_029F: ldarg.s 5
IL_02A1: ldc.r4 57.29578
IL_02A6: mul
IL_02A7: call static UnityEngine.Vector3 UnityEngine.Vector3::get_down()
IL_02AC: call static UnityEngine.Quaternion
UnityEngine.Quaternion::AngleAxis(System.Single angle, UnityEngine.Vector3 axis)
IL_02B1: ldarg.s 4
IL_02B3: ldarg.s 4
IL_02B5: ldarg.s 4
IL_02B7: newobj System.Void UnityEngine.Vector3::.ctor(System.Single x,
System.Single y, System.Single z)
IL_02BC: call System.Void UnityEngine.Matrix4x4::SetTRS(UnityEngine.Vector3
pos, UnityEngine.Quaternion q, UnityEngine.Vector3 s)
IL_02C1: call static PropManager
ColossalFramework.Singleton`1<PropManager>::get_instance()
IL_02C6: stloc.s 14 (PropManager)
IL_02C8: ldloc.s 14 (PropManager)
IL_02CA: ldfld UnityEngine.MaterialPropertyBlock PropManager::m_materialBlock
IL_02CF: stloc.s 15 (UnityEngine.MaterialPropertyBlock)
IL_02D1: ldloc.s 15 (UnityEngine.MaterialPropertyBlock)
IL_02D3: callvirt System.Void UnityEngine.MaterialPropertyBlock::Clear()
IL_02D8: ldloc.s 15 (UnityEngine.MaterialPropertyBlock)
IL_02DA: ldloc.s 14 (PropManager)
IL_02DC: ldfld System.Int32 PropManager::ID_Color
IL_02E1: ldarg.s 6
IL_02E3: callvirt System.Void
UnityEngine.MaterialPropertyBlock::SetColor(System.Int32 nameID, UnityEngine.Color
value)
IL_02E8: ldloc.s 15 (UnityEngine.MaterialPropertyBlock)
IL_02EA: ldloc.s 14 (PropManager)
IL_02EC: ldfld System.Int32 PropManager::ID_HeightMap
IL_02F1: ldarg.s 9
IL_02F3: callvirt System.Void
UnityEngine.MaterialPropertyBlock::SetTexture(System.Int32 nameID,
UnityEngine.Texture value)
IL_02F8: ldloc.s 15 (UnityEngine.MaterialPropertyBlock)
IL_02FA: ldloc.s 14 (PropManager)
IL_02FC: ldfld System.Int32 PropManager::ID_HeightMapping
IL_0301: ldarg.s 10
IL_0303: callvirt System.Void
UnityEngine.MaterialPropertyBlock::SetVector(System.Int32 nameID,
UnityEngine.Vector4 value)
IL_0308: ldloc.s 15 (UnityEngine.MaterialPropertyBlock)
IL_030A: ldloc.s 14 (PropManager)
IL_030C: ldfld System.Int32 PropManager::ID_SurfaceMapping
IL_0311: ldarg.s 11
IL_0313: callvirt System.Void
UnityEngine.MaterialPropertyBlock::SetVector(System.Int32 nameID,
UnityEngine.Vector4 value)
IL_0318: ldloc.s 15 (UnityEngine.MaterialPropertyBlock)
IL_031A: ldloc.s 14 (PropManager)
IL_031C: ldfld System.Int32 PropManager::ID_ObjectIndex
IL_0321: ldarg.s 7
IL_0323: callvirt System.Void
UnityEngine.MaterialPropertyBlock::SetVector(System.Int32 nameID,
UnityEngine.Vector4 value)
IL_0328: ldloc.s 15 (UnityEngine.MaterialPropertyBlock)
IL_032A: ldloc.s 14 (PropManager)
IL_032C: ldfld System.Int32 PropManager::ID_WaterHeightMap
IL_0331: ldarg.s 12
IL_0333: callvirt System.Void
UnityEngine.MaterialPropertyBlock::SetTexture(System.Int32 nameID,
UnityEngine.Texture value)
IL_0338: ldloc.s 15 (UnityEngine.MaterialPropertyBlock)
IL_033A: ldloc.s 14 (PropManager)
IL_033C: ldfld System.Int32 PropManager::ID_WaterHeightMapping
IL_0341: ldarg.s 13
IL_0343: callvirt System.Void
UnityEngine.MaterialPropertyBlock::SetVector(System.Int32 nameID,
UnityEngine.Vector4 value)
IL_0348: ldloc.s 15 (UnityEngine.MaterialPropertyBlock)
IL_034A: ldloc.s 14 (PropManager)
IL_034C: ldfld System.Int32 PropManager::ID_WaterSurfaceMapping
IL_0351: ldarg.s 14
IL_0353: callvirt System.Void
UnityEngine.MaterialPropertyBlock::SetVector(System.Int32 nameID,
UnityEngine.Vector4 value)
IL_0358: ldarg.1
IL_0359: ldfld UnityEngine.Vector4[] PropInfo::m_rollLocation
IL_035E: brfalse => Label18
IL_0363: ldarg.1
IL_0364: ldfld UnityEngine.Material PropInfo::m_material
IL_0369: ldloc.s 14 (PropManager)
IL_036B: ldfld System.Int32 PropManager::ID_RollLocation
IL_0370: ldarg.1
IL_0371: ldfld UnityEngine.Vector4[] PropInfo::m_rollLocation
IL_0376: callvirt System.Void UnityEngine.Material::SetVectorArray(System.Int32
nameID, UnityEngine.Vector4[] values)
IL_037B: ldarg.1
IL_037C: ldfld UnityEngine.Material PropInfo::m_material
IL_0381: ldloc.s 14 (PropManager)
IL_0383: ldfld System.Int32 PropManager::ID_RollParams
IL_0388: ldarg.1
IL_0389: ldfld UnityEngine.Vector4[] PropInfo::m_rollParams
IL_038E: callvirt System.Void UnityEngine.Material::SetVectorArray(System.Int32
nameID, UnityEngine.Vector4[] values)
IL_0393: Label18
IL_0393: ldloc.s 14 (PropManager)
IL_0395: ldflda DrawCallData SimulationManagerBase`2<PropManager,
PropProperties>::m_drawCallData
IL_039A: dup
IL_039B: ldfld System.Int32 DrawCallData::m_defaultCalls
IL_03A0: ldc.i4.1
IL_03A1: add
IL_03A2: stfld System.Int32 DrawCallData::m_defaultCalls
IL_03A7: ldarg.1
IL_03A8: ldfld UnityEngine.Mesh PropInfo::m_mesh
IL_03AD: ldloc.s 13 (UnityEngine.Matrix4x4)
IL_03AF: ldarg.1
IL_03B0: ldfld UnityEngine.Material PropInfo::m_material
IL_03B5: ldarg.1
IL_03B6: ldfld System.Int32 PrefabInfo::m_prefabDataLayer
IL_03BB: ldnull
IL_03BC: ldc.i4.0
IL_03BD: ldloc.s 15 (UnityEngine.MaterialPropertyBlock)
IL_03BF: call static System.Void
UnityEngine.Graphics::DrawMesh(UnityEngine.Mesh mesh, UnityEngine.Matrix4x4 matrix,
UnityEngine.Material material, System.Int32 layer, UnityEngine.Camera camera,
System.Int32 submeshIndex, UnityEngine.MaterialPropertyBlock properties)
IL_03C4: br => Label19
IL_03C9: Label17
IL_03C9: ldarg.s 9
IL_03CB: ldarg.1
IL_03CC: ldfld UnityEngine.Texture PropInfo::m_lodHeightMap
IL_03D1: call static System.Boolean
UnityEngine.Object::op_Inequality(UnityEngine.Object x, UnityEngine.Object y)
IL_03D6: brtrue => Label20
IL_03DB: ldarg.s 12
IL_03DD: ldarg.1
IL_03DE: ldfld UnityEngine.Texture PropInfo::m_lodWaterHeightMap
IL_03E3: call static System.Boolean
UnityEngine.Object::op_Inequality(UnityEngine.Object x, UnityEngine.Object y)
IL_03E8: brfalse => Label21
IL_03ED: Label20
IL_03ED: ldarg.1
IL_03EE: ldfld System.Int32 PropInfo::m_lodCount
IL_03F3: brfalse => Label22
IL_03F8: ldarg.0
IL_03F9: ldarg.1
IL_03FA: call static System.Void PropInstance::RenderLod(CameraInfo
cameraInfo, PropInfo info)
IL_03FF: Label22
IL_03FF: ldarg.1
IL_0400: ldarg.s 9
IL_0402: stfld UnityEngine.Texture PropInfo::m_lodHeightMap
IL_0407: ldarg.1
IL_0408: ldarg.s 10
IL_040A: stfld UnityEngine.Vector4 PropInfo::m_lodHeightMapping
IL_040F: ldarg.1
IL_0410: ldarg.s 11
IL_0412: stfld UnityEngine.Vector4 PropInfo::m_lodSurfaceMapping
IL_0417: ldarg.1
IL_0418: ldarg.s 12
IL_041A: stfld UnityEngine.Texture PropInfo::m_lodWaterHeightMap
IL_041F: ldarg.1
IL_0420: ldarg.s 13
IL_0422: stfld UnityEngine.Vector4 PropInfo::m_lodWaterHeightMapping
IL_0427: ldarg.1
IL_0428: ldarg.s 14
IL_042A: stfld UnityEngine.Vector4 PropInfo::m_lodWaterSurfaceMapping
IL_042F: Label21
IL_042F: ldarga.s 7
IL_0431: ldarg.s 4
IL_0433: stfld System.Single UnityEngine.Vector4::w
IL_0438: ldarg.1
IL_0439: ldfld UnityEngine.Vector4[] PropInfo::m_lodLocations
IL_043E: ldarg.1
IL_043F: ldfld System.Int32 PropInfo::m_lodCount
IL_0444: ldelema UnityEngine.Vector4
IL_0449: ldarga.s 3
IL_044B: ldfld System.Single UnityEngine.Vector3::x
IL_0450: ldarga.s 3
IL_0452: ldfld System.Single UnityEngine.Vector3::y
IL_0457: ldarga.s 3
IL_0459: ldfld System.Single UnityEngine.Vector3::z
IL_045E: ldarg.s 5
IL_0460: newobj System.Void UnityEngine.Vector4::.ctor(System.Single x,
System.Single y, System.Single z, System.Single w)
IL_0465: stobj UnityEngine.Vector4
IL_046A: ldarg.1
IL_046B: ldfld UnityEngine.Vector4[] PropInfo::m_lodObjectIndices
IL_0470: ldarg.1
IL_0471: ldfld System.Int32 PropInfo::m_lodCount
IL_0476: ldelema UnityEngine.Vector4
IL_047B: ldarg.s 7
IL_047D: stobj UnityEngine.Vector4
IL_0482: ldarg.1
IL_0483: ldfld UnityEngine.Vector4[] PropInfo::m_lodColors
IL_0488: ldarg.1
IL_0489: ldfld System.Int32 PropInfo::m_lodCount
IL_048E: ldelema UnityEngine.Vector4
IL_0493: ldarga.s 6
IL_0495: call UnityEngine.Color UnityEngine.Color::get_linear()
IL_049A: call static UnityEngine.Vector4
UnityEngine.Color::op_Implicit(UnityEngine.Color c)
IL_049F: stobj UnityEngine.Vector4
IL_04A4: ldarg.1
IL_04A5: ldarg.1
IL_04A6: ldfld UnityEngine.Vector3 PropInfo::m_lodMin
IL_04AB: ldarg.3
IL_04AC: call static UnityEngine.Vector3
UnityEngine.Vector3::Min(UnityEngine.Vector3 lhs, UnityEngine.Vector3 rhs)
IL_04B1: stfld UnityEngine.Vector3 PropInfo::m_lodMin
IL_04B6: ldarg.1
IL_04B7: ldarg.1
IL_04B8: ldfld UnityEngine.Vector3 PropInfo::m_lodMax
IL_04BD: ldarg.3
IL_04BE: call static UnityEngine.Vector3
UnityEngine.Vector3::Max(UnityEngine.Vector3 lhs, UnityEngine.Vector3 rhs)
IL_04C3: stfld UnityEngine.Vector3 PropInfo::m_lodMax
IL_04C8: ldarg.1
IL_04C9: dup
IL_04CA: ldfld System.Int32 PropInfo::m_lodCount
IL_04CF: ldc.i4.1
IL_04D0: add
IL_04D1: dup
IL_04D2: stloc.s 16 (System.Int32)
IL_04D4: stfld System.Int32 PropInfo::m_lodCount
IL_04D9: ldloc.s 16 (System.Int32)
IL_04DB: ldarg.1
IL_04DC: ldfld UnityEngine.Vector4[] PropInfo::m_lodLocations
IL_04E1: ldlen
IL_04E2: conv.i4
IL_04E3: bne.un => Label23
IL_04E8: ldarg.0
IL_04E9: ldarg.1
IL_04EA: call static System.Void PropInstance::RenderLod(CameraInfo
cameraInfo, PropInfo info)
IL_04EF: // end original
IL_04EF: Label0
IL_04EF: Label6
IL_04EF: Label7
IL_04EF: Label19
IL_04EF: Label23
IL_04EF: ret
DONE

### Patch: static System.Void PropInstance::RenderInstance(CameraInfo cameraInfo,


PropInfo info, InstanceID id, UnityEngine.Vector3 position, System.Single scale,
System.Single angle, UnityEngine.Color color, UnityEngine.Vector4 objectIndex,
System.Boolean active)
### Replacement: static System.Void
PropInstance::PropInstance.RenderInstance_Patch0(CameraInfo cameraInfo, PropInfo
info, InstanceID id, UnityEngine.Vector3 position, System.Single scale,
System.Single angle, UnityEngine.Color color, UnityEngine.Vector4 objectIndex,
System.Boolean active)
IL_0000: Local var 0: UnityEngine.Matrix4x4
IL_0000: Local var 1: System.Single
IL_0000: Local var 2: System.Int32
IL_0000: Local var 3: UnityEngine.Vector3
IL_0000: Local var 4: UnityEngine.Vector3
IL_0000: Local var 5: EffectInfo/SpawnArea
IL_0000: Local var 6: System.Single
IL_0000: Local var 7: LightSystem
IL_0000: Local var 8: ColossalFramework.Math.Randomizer
IL_0000: Local var 9: UnityEngine.Vector4
IL_0000: Local var 10: System.Single
IL_0000: Local var 11: System.Single
IL_0000: Local var 12: System.Single
IL_0000: Local var 13: UnityEngine.Matrix4x4
IL_0000: Local var 14: PropManager
IL_0000: Local var 15: UnityEngine.MaterialPropertyBlock
IL_0000: Local var 16: UnityEngine.Matrix4x4
IL_0000: Local var 17: PropManager
IL_0000: Local var 18: UnityEngine.MaterialPropertyBlock
IL_0000: Local var 19: System.Int32
IL_0000: // start original
IL_0000: ldarg.1
IL_0001: ldfld System.Boolean PrefabInfo::m_prefabInitialized
IL_0006: brfalse => Label0
IL_000B: ldarg.1
IL_000C: ldfld System.Boolean PropInfo::m_hasEffects
IL_0011: brfalse => Label1
IL_0016: ldarg.s 8
IL_0018: brtrue => Label2
IL_001D: ldarg.1
IL_001E: ldfld System.Boolean PropInfo::m_alwaysActive
IL_0023: brfalse => Label3
IL_0028: Label2
IL_0028: ldloca.s 0 (UnityEngine.Matrix4x4)
IL_002A: initobj UnityEngine.Matrix4x4
IL_0030: ldloca.s 0 (UnityEngine.Matrix4x4)
IL_0032: ldarg.3
IL_0033: ldarg.s 5
IL_0035: ldc.r4 57.29578
IL_003A: mul
IL_003B: call static UnityEngine.Vector3 UnityEngine.Vector3::get_down()
IL_0040: call static UnityEngine.Quaternion
UnityEngine.Quaternion::AngleAxis(System.Single angle, UnityEngine.Vector3 axis)
IL_0045: ldarg.s 4
IL_0047: ldarg.s 4
IL_0049: ldarg.s 4
IL_004B: newobj System.Void UnityEngine.Vector3::.ctor(System.Single x,
System.Single y, System.Single z)
IL_0050: call System.Void UnityEngine.Matrix4x4::SetTRS(UnityEngine.Vector3
pos, UnityEngine.Quaternion q, UnityEngine.Vector3 s)
IL_0055: call static SimulationManager
ColossalFramework.Singleton`1<SimulationManager>::get_instance()
IL_005A: ldfld System.Single SimulationManager::m_simulationTimeDelta
IL_005F: stloc.1
IL_0060: ldc.i4.0
IL_0061: stloc.2
IL_0062: br => Label4
IL_0067: Label5
IL_0067: ldloca.s 0 (UnityEngine.Matrix4x4)
IL_0069: ldarg.1
IL_006A: ldfld Effect[] PropInfo::m_effects
IL_006F: ldloc.2
IL_0070: ldelema PropInfo+Effect
IL_0075: ldfld UnityEngine.Vector3 Effect::m_position
IL_007A: call UnityEngine.Vector3
UnityEngine.Matrix4x4::MultiplyPoint(UnityEngine.Vector3 v)
IL_007F: stloc.3
IL_0080: ldloca.s 0 (UnityEngine.Matrix4x4)
IL_0082: ldarg.1
IL_0083: ldfld Effect[] PropInfo::m_effects
IL_0088: ldloc.2
IL_0089: ldelema PropInfo+Effect
IL_008E: ldfld UnityEngine.Vector3 Effect::m_direction
IL_0093: call UnityEngine.Vector3
UnityEngine.Matrix4x4::MultiplyVector(UnityEngine.Vector3 v)
IL_0098: stloc.s 4 (UnityEngine.Vector3)
IL_009A: ldloca.s 5 (EffectInfo+SpawnArea)
IL_009C: ldloc.3
IL_009D: ldloc.s 4 (UnityEngine.Vector3)
IL_009F: ldc.r4 0
IL_00A4: call System.Void SpawnArea::.ctor(UnityEngine.Vector3 position,
UnityEngine.Vector3 direction, System.Single radius)
IL_00A9: ldarg.1
IL_00AA: ldfld Effect[] PropInfo::m_effects
IL_00AF: ldloc.2
IL_00B0: ldelema PropInfo+Effect
IL_00B5: ldfld EffectInfo Effect::m_effect
IL_00BA: ldarg.2
IL_00BB: ldloc.s 5 (EffectInfo+SpawnArea)
IL_00BD: call static UnityEngine.Vector3 UnityEngine.Vector3::get_zero()
IL_00C2: ldc.r4 0
IL_00C7: ldc.r4 1
IL_00CC: ldc.r4 -1
IL_00D1: ldloc.1
IL_00D2: ldarg.0
IL_00D3: callvirt virtual System.Void EffectInfo::RenderEffect(InstanceID id,
SpawnArea area, UnityEngine.Vector3 velocity, System.Single acceleration,
System.Single magnitude, System.Single timeOffset, System.Single timeDelta,
CameraInfo cameraInfo)
IL_00D8: ldloc.2
IL_00D9: ldc.i4.1
IL_00DA: add
IL_00DB: stloc.2
IL_00DC: Label4
IL_00DC: ldloc.2
IL_00DD: ldarg.1
IL_00DE: ldfld Effect[] PropInfo::m_effects
IL_00E3: ldlen
IL_00E4: conv.i4
IL_00E5: blt => Label5
IL_00EA: Label1
IL_00EA: Label3
IL_00EA: ldarg.1
IL_00EB: ldfld System.Boolean PropInfo::m_hasRenderer
IL_00F0: brfalse => Label6
IL_00F5: ldarg.0
IL_00F6: ldfld System.Int32 CameraInfo::m_layerMask
IL_00FB: ldc.i4.1
IL_00FC: ldarg.1
IL_00FD: ldfld System.Int32 PrefabInfo::m_prefabDataLayer
IL_0102: ldc.i4.s 31
IL_0104: and
IL_0105: shl
IL_0106: and
IL_0107: brfalse => Label7
IL_010C: call static InfoManager
ColossalFramework.Singleton`1<InfoManager>::get_instance()
IL_0111: callvirt InfoMode InfoManager::get_CurrentMode()
IL_0116: brtrue => Label8
IL_011B: ldc.r4 0
IL_0120: stloc.s 6 (System.Single)
IL_0122: ldarg.s 8
IL_0124: brtrue => Label9
IL_0129: ldarg.1
IL_012A: ldfld System.Boolean PropInfo::m_alwaysActive
IL_012F: brtrue => Label10
IL_0134: ldarga.s 7
IL_0136: ldc.r4 0
IL_013B: stfld System.Single UnityEngine.Vector4::z
IL_0140: br => Label11
IL_0145: Label9
IL_0145: Label10
IL_0145: ldarg.1
IL_0146: ldflda UnityEngine.Vector2 PropInfo::m_illuminationOffRange
IL_014B: ldfld System.Single UnityEngine.Vector2::x
IL_0150: ldc.r4 1000
IL_0155: blt => Label12
IL_015A: ldarg.1
IL_015B: ldfld BlinkType PropInfo::m_illuminationBlinkType
IL_0160: brfalse => Label13
IL_0165: Label12
IL_0165: call static RenderManager
ColossalFramework.Singleton`1<RenderManager>::get_instance()
IL_016A: callvirt LightSystem RenderManager::get_lightSystem()
IL_016F: stloc.s 7 (LightSystem)
IL_0171: ldloca.s 8 (ColossalFramework.Math.Randomizer)
IL_0173: ldarga.s 2
IL_0175: call System.UInt32 InstanceID::get_Index()
IL_017A: call System.Void
ColossalFramework.Math.Randomizer::.ctor(System.UInt32 _seed)
IL_017F: ldarg.1
IL_0180: ldflda UnityEngine.Vector2 PropInfo::m_illuminationOffRange
IL_0185: ldfld System.Single UnityEngine.Vector2::x
IL_018A: ldloca.s 8 (ColossalFramework.Math.Randomizer)
IL_018C: ldc.i4 100000
IL_0191: call System.Int32
ColossalFramework.Math.Randomizer::Int32(System.UInt32 range)
IL_0196: conv.r4
IL_0197: ldc.r4 1E-05
IL_019C: mul
IL_019D: ldarg.1
IL_019E: ldflda UnityEngine.Vector2 PropInfo::m_illuminationOffRange
IL_01A3: ldfld System.Single UnityEngine.Vector2::y
IL_01A8: ldarg.1
IL_01A9: ldflda UnityEngine.Vector2 PropInfo::m_illuminationOffRange
IL_01AE: ldfld System.Single UnityEngine.Vector2::x
IL_01B3: sub
IL_01B4: mul
IL_01B5: add
IL_01B6: stloc.s 6 (System.Single)
IL_01B8: ldarga.s 7
IL_01BA: ldloc.s 6 (System.Single)
IL_01BC: ldc.r4 0.01
IL_01C1: add
IL_01C2: ldloc.s 6 (System.Single)
IL_01C4: ldc.r4 0.01
IL_01C9: sub
IL_01CA: ldloc.s 7 (LightSystem)
IL_01CC: callvirt System.Single LightSystem::get_DayLightIntensity()
IL_01D1: call static System.Single MathUtils::SmoothStep(System.Single edge0,
System.Single edge1, System.Single x)
IL_01D6: stfld System.Single UnityEngine.Vector4::z
IL_01DB: ldarg.1
IL_01DC: ldfld BlinkType PropInfo::m_illuminationBlinkType
IL_01E1: brfalse => Label14
IL_01E6: ldarg.1
IL_01E7: ldfld BlinkType PropInfo::m_illuminationBlinkType
IL_01EC: call static UnityEngine.Vector4
LightEffect::GetBlinkVector(BlinkType type)
IL_01F1: stloc.s 9 (UnityEngine.Vector4)
IL_01F3: ldloc.s 6 (System.Single)
IL_01F5: ldc.r4 3.71
IL_01FA: mul
IL_01FB: call static SimulationManager
ColossalFramework.Singleton`1<SimulationManager>::get_instance()
IL_0200: ldfld System.Single SimulationManager::m_simulationTimer
IL_0205: ldloca.s 9 (UnityEngine.Vector4)
IL_0207: ldfld System.Single UnityEngine.Vector4::w
IL_020C: div
IL_020D: add
IL_020E: stloc.s 10 (System.Single)
IL_0210: ldloc.s 10 (System.Single)
IL_0212: ldloc.s 10 (System.Single)
IL_0214: call static System.Single UnityEngine.Mathf::Floor(System.Single f)
IL_0219: sub
IL_021A: ldloca.s 9 (UnityEngine.Vector4)
IL_021C: ldfld System.Single UnityEngine.Vector4::w
IL_0221: mul
IL_0222: stloc.s 10 (System.Single)
IL_0224: ldloca.s 9 (UnityEngine.Vector4)
IL_0226: ldfld System.Single UnityEngine.Vector4::x
IL_022B: ldloca.s 9 (UnityEngine.Vector4)
IL_022D: ldfld System.Single UnityEngine.Vector4::y
IL_0232: ldloc.s 10 (System.Single)
IL_0234: call static System.Single MathUtils::SmoothStep(System.Single edge0,
System.Single edge1, System.Single x)
IL_0239: stloc.s 11 (System.Single)
IL_023B: ldloca.s 9 (UnityEngine.Vector4)
IL_023D: ldfld System.Single UnityEngine.Vector4::w
IL_0242: ldloca.s 9 (UnityEngine.Vector4)
IL_0244: ldfld System.Single UnityEngine.Vector4::z
IL_0249: ldloc.s 10 (System.Single)
IL_024B: call static System.Single MathUtils::SmoothStep(System.Single edge0,
System.Single edge1, System.Single x)
IL_0250: stloc.s 12 (System.Single)
IL_0252: ldarga.s 7
IL_0254: dup
IL_0255: ldfld System.Single UnityEngine.Vector4::z
IL_025A: ldc.r4 1
IL_025F: ldloc.s 11 (System.Single)
IL_0261: ldloc.s 12 (System.Single)
IL_0263: mul
IL_0264: sub
IL_0265: mul
IL_0266: stfld System.Single UnityEngine.Vector4::z
IL_026B: Label14
IL_026B: br => Label15
IL_0270: Label13
IL_0270: ldarga.s 7
IL_0272: ldc.r4 1
IL_0277: stfld System.Single UnityEngine.Vector4::z
IL_027C: Label8
IL_027C: Label11
IL_027C: Label15
IL_027C: ldarg.0
IL_027D: brfalse => Label16
IL_0282: ldarg.0
IL_0283: ldarg.3
IL_0284: ldarg.1
IL_0285: ldfld System.Single PropInfo::m_lodRenderDistance
IL_028A: callvirt System.Boolean
CameraInfo::CheckRenderDistance(UnityEngine.Vector3 point, System.Single
maxDistance)
IL_028F: brfalse => Label17
IL_0294: Label16
IL_0294: ldloca.s 13 (UnityEngine.Matrix4x4)
IL_0296: initobj UnityEngine.Matrix4x4
IL_029C: ldloca.s 13 (UnityEngine.Matrix4x4)
IL_029E: ldarg.3
IL_029F: ldarg.s 5
IL_02A1: ldc.r4 57.29578
IL_02A6: mul
IL_02A7: call static UnityEngine.Vector3 UnityEngine.Vector3::get_down()
IL_02AC: call static UnityEngine.Quaternion
UnityEngine.Quaternion::AngleAxis(System.Single angle, UnityEngine.Vector3 axis)
IL_02B1: ldarg.s 4
IL_02B3: ldarg.s 4
IL_02B5: ldarg.s 4
IL_02B7: newobj System.Void UnityEngine.Vector3::.ctor(System.Single x,
System.Single y, System.Single z)
IL_02BC: call System.Void UnityEngine.Matrix4x4::SetTRS(UnityEngine.Vector3
pos, UnityEngine.Quaternion q, UnityEngine.Vector3 s)
IL_02C1: call static PropManager
ColossalFramework.Singleton`1<PropManager>::get_instance()
IL_02C6: stloc.s 14 (PropManager)
IL_02C8: ldloc.s 14 (PropManager)
IL_02CA: ldfld UnityEngine.MaterialPropertyBlock PropManager::m_materialBlock
IL_02CF: stloc.s 15 (UnityEngine.MaterialPropertyBlock)
IL_02D1: ldloc.s 15 (UnityEngine.MaterialPropertyBlock)
IL_02D3: callvirt System.Void UnityEngine.MaterialPropertyBlock::Clear()
IL_02D8: ldloc.s 15 (UnityEngine.MaterialPropertyBlock)
IL_02DA: ldloc.s 14 (PropManager)
IL_02DC: ldfld System.Int32 PropManager::ID_Color
IL_02E1: ldarg.s 6
IL_02E3: callvirt System.Void
UnityEngine.MaterialPropertyBlock::SetColor(System.Int32 nameID, UnityEngine.Color
value)
IL_02E8: ldloc.s 15 (UnityEngine.MaterialPropertyBlock)
IL_02EA: ldloc.s 14 (PropManager)
IL_02EC: ldfld System.Int32 PropManager::ID_ObjectIndex
IL_02F1: ldarg.s 7
IL_02F3: callvirt System.Void
UnityEngine.MaterialPropertyBlock::SetVector(System.Int32 nameID,
UnityEngine.Vector4 value)
IL_02F8: ldarg.1
IL_02F9: ldfld UnityEngine.Vector4[] PropInfo::m_rollLocation
IL_02FE: brfalse => Label18
IL_0303: ldarg.1
IL_0304: ldfld UnityEngine.Material PropInfo::m_material
IL_0309: ldloc.s 14 (PropManager)
IL_030B: ldfld System.Int32 PropManager::ID_RollLocation
IL_0310: ldarg.1
IL_0311: ldfld UnityEngine.Vector4[] PropInfo::m_rollLocation
IL_0316: callvirt System.Void UnityEngine.Material::SetVectorArray(System.Int32
nameID, UnityEngine.Vector4[] values)
IL_031B: ldarg.1
IL_031C: ldfld UnityEngine.Material PropInfo::m_material
IL_0321: ldloc.s 14 (PropManager)
IL_0323: ldfld System.Int32 PropManager::ID_RollParams
IL_0328: ldarg.1
IL_0329: ldfld UnityEngine.Vector4[] PropInfo::m_rollParams
IL_032E: callvirt System.Void UnityEngine.Material::SetVectorArray(System.Int32
nameID, UnityEngine.Vector4[] values)
IL_0333: Label18
IL_0333: ldloc.s 14 (PropManager)
IL_0335: ldflda DrawCallData SimulationManagerBase`2<PropManager,
PropProperties>::m_drawCallData
IL_033A: dup
IL_033B: ldfld System.Int32 DrawCallData::m_defaultCalls
IL_0340: ldc.i4.1
IL_0341: add
IL_0342: stfld System.Int32 DrawCallData::m_defaultCalls
IL_0347: ldarg.1
IL_0348: ldfld UnityEngine.Mesh PropInfo::m_mesh
IL_034D: ldloc.s 13 (UnityEngine.Matrix4x4)
IL_034F: ldarg.1
IL_0350: ldfld UnityEngine.Material PropInfo::m_material
IL_0355: ldarg.1
IL_0356: ldfld System.Int32 PrefabInfo::m_prefabDataLayer
IL_035B: ldnull
IL_035C: ldc.i4.0
IL_035D: ldloc.s 15 (UnityEngine.MaterialPropertyBlock)
IL_035F: call static System.Void
UnityEngine.Graphics::DrawMesh(UnityEngine.Mesh mesh, UnityEngine.Matrix4x4 matrix,
UnityEngine.Material material, System.Int32 layer, UnityEngine.Camera camera,
System.Int32 submeshIndex, UnityEngine.MaterialPropertyBlock properties)
IL_0364: br => Label19
IL_0369: Label17
IL_0369: ldarg.1
IL_036A: ldfld UnityEngine.Material PropInfo::m_lodMaterialCombined
IL_036F: ldnull
IL_0370: call static System.Boolean
UnityEngine.Object::op_Equality(UnityEngine.Object x, UnityEngine.Object y)
IL_0375: brfalse => Label20
IL_037A: ldloca.s 16 (UnityEngine.Matrix4x4)
IL_037C: initobj UnityEngine.Matrix4x4
IL_0382: ldloca.s 16 (UnityEngine.Matrix4x4)
IL_0384: ldarg.3
IL_0385: ldarg.s 5
IL_0387: ldc.r4 57.29578
IL_038C: mul
IL_038D: call static UnityEngine.Vector3 UnityEngine.Vector3::get_down()
IL_0392: call static UnityEngine.Quaternion
UnityEngine.Quaternion::AngleAxis(System.Single angle, UnityEngine.Vector3 axis)
IL_0397: ldarg.s 4
IL_0399: ldarg.s 4
IL_039B: ldarg.s 4
IL_039D: newobj System.Void UnityEngine.Vector3::.ctor(System.Single x,
System.Single y, System.Single z)
IL_03A2: call System.Void UnityEngine.Matrix4x4::SetTRS(UnityEngine.Vector3
pos, UnityEngine.Quaternion q, UnityEngine.Vector3 s)
IL_03A7: call static PropManager
ColossalFramework.Singleton`1<PropManager>::get_instance()
IL_03AC: stloc.s 17 (PropManager)
IL_03AE: ldloc.s 17 (PropManager)
IL_03B0: ldfld UnityEngine.MaterialPropertyBlock PropManager::m_materialBlock
IL_03B5: stloc.s 18 (UnityEngine.MaterialPropertyBlock)
IL_03B7: ldloc.s 18 (UnityEngine.MaterialPropertyBlock)
IL_03B9: callvirt System.Void UnityEngine.MaterialPropertyBlock::Clear()
IL_03BE: ldloc.s 18 (UnityEngine.MaterialPropertyBlock)
IL_03C0: ldloc.s 17 (PropManager)
IL_03C2: ldfld System.Int32 PropManager::ID_Color
IL_03C7: ldarg.s 6
IL_03C9: callvirt System.Void
UnityEngine.MaterialPropertyBlock::SetColor(System.Int32 nameID, UnityEngine.Color
value)
IL_03CE: ldloc.s 18 (UnityEngine.MaterialPropertyBlock)
IL_03D0: ldloc.s 17 (PropManager)
IL_03D2: ldfld System.Int32 PropManager::ID_ObjectIndex
IL_03D7: ldarg.s 7
IL_03D9: callvirt System.Void
UnityEngine.MaterialPropertyBlock::SetVector(System.Int32 nameID,
UnityEngine.Vector4 value)
IL_03DE: ldarg.1
IL_03DF: ldfld UnityEngine.Vector4[] PropInfo::m_rollLocation
IL_03E4: brfalse => Label21
IL_03E9: ldarg.1
IL_03EA: ldfld UnityEngine.Material PropInfo::m_material
IL_03EF: ldloc.s 17 (PropManager)
IL_03F1: ldfld System.Int32 PropManager::ID_RollLocation
IL_03F6: ldarg.1
IL_03F7: ldfld UnityEngine.Vector4[] PropInfo::m_rollLocation
IL_03FC: callvirt System.Void UnityEngine.Material::SetVectorArray(System.Int32
nameID, UnityEngine.Vector4[] values)
IL_0401: ldarg.1
IL_0402: ldfld UnityEngine.Material PropInfo::m_material
IL_0407: ldloc.s 17 (PropManager)
IL_0409: ldfld System.Int32 PropManager::ID_RollParams
IL_040E: ldarg.1
IL_040F: ldfld UnityEngine.Vector4[] PropInfo::m_rollParams
IL_0414: callvirt System.Void UnityEngine.Material::SetVectorArray(System.Int32
nameID, UnityEngine.Vector4[] values)
IL_0419: Label21
IL_0419: ldloc.s 17 (PropManager)
IL_041B: ldflda DrawCallData SimulationManagerBase`2<PropManager,
PropProperties>::m_drawCallData
IL_0420: dup
IL_0421: ldfld System.Int32 DrawCallData::m_defaultCalls
IL_0426: ldc.i4.1
IL_0427: add
IL_0428: stfld System.Int32 DrawCallData::m_defaultCalls
IL_042D: ldarg.1
IL_042E: ldfld UnityEngine.Mesh PropInfo::m_lodMesh
IL_0433: ldloc.s 16 (UnityEngine.Matrix4x4)
IL_0435: ldarg.1
IL_0436: ldfld UnityEngine.Material PropInfo::m_lodMaterial
IL_043B: ldarg.1
IL_043C: ldfld System.Int32 PrefabInfo::m_prefabDataLayer
IL_0441: ldnull
IL_0442: ldc.i4.0
IL_0443: ldloc.s 18 (UnityEngine.MaterialPropertyBlock)
IL_0445: call static System.Void
UnityEngine.Graphics::DrawMesh(UnityEngine.Mesh mesh, UnityEngine.Matrix4x4 matrix,
UnityEngine.Material material, System.Int32 layer, UnityEngine.Camera camera,
System.Int32 submeshIndex, UnityEngine.MaterialPropertyBlock properties)
IL_044A: br => Label22
IL_044F: Label20
IL_044F: ldarga.s 7
IL_0451: ldarg.s 4
IL_0453: stfld System.Single UnityEngine.Vector4::w
IL_0458: ldarg.1
IL_0459: ldfld UnityEngine.Vector4[] PropInfo::m_lodLocations
IL_045E: ldarg.1
IL_045F: ldfld System.Int32 PropInfo::m_lodCount
IL_0464: ldelema UnityEngine.Vector4
IL_0469: ldarga.s 3
IL_046B: ldfld System.Single UnityEngine.Vector3::x
IL_0470: ldarga.s 3
IL_0472: ldfld System.Single UnityEngine.Vector3::y
IL_0477: ldarga.s 3
IL_0479: ldfld System.Single UnityEngine.Vector3::z
IL_047E: ldarg.s 5
IL_0480: newobj System.Void UnityEngine.Vector4::.ctor(System.Single x,
System.Single y, System.Single z, System.Single w)
IL_0485: stobj UnityEngine.Vector4
IL_048A: ldarg.1
IL_048B: ldfld UnityEngine.Vector4[] PropInfo::m_lodObjectIndices
IL_0490: ldarg.1
IL_0491: ldfld System.Int32 PropInfo::m_lodCount
IL_0496: ldelema UnityEngine.Vector4
IL_049B: ldarg.s 7
IL_049D: stobj UnityEngine.Vector4
IL_04A2: ldarg.1
IL_04A3: ldfld UnityEngine.Vector4[] PropInfo::m_lodColors
IL_04A8: ldarg.1
IL_04A9: ldfld System.Int32 PropInfo::m_lodCount
IL_04AE: ldelema UnityEngine.Vector4
IL_04B3: ldarga.s 6
IL_04B5: call UnityEngine.Color UnityEngine.Color::get_linear()
IL_04BA: call static UnityEngine.Vector4
UnityEngine.Color::op_Implicit(UnityEngine.Color c)
IL_04BF: stobj UnityEngine.Vector4
IL_04C4: ldarg.1
IL_04C5: ldarg.1
IL_04C6: ldfld UnityEngine.Vector3 PropInfo::m_lodMin
IL_04CB: ldarg.3
IL_04CC: call static UnityEngine.Vector3
UnityEngine.Vector3::Min(UnityEngine.Vector3 lhs, UnityEngine.Vector3 rhs)
IL_04D1: stfld UnityEngine.Vector3 PropInfo::m_lodMin
IL_04D6: ldarg.1
IL_04D7: ldarg.1
IL_04D8: ldfld UnityEngine.Vector3 PropInfo::m_lodMax
IL_04DD: ldarg.3
IL_04DE: call static UnityEngine.Vector3
UnityEngine.Vector3::Max(UnityEngine.Vector3 lhs, UnityEngine.Vector3 rhs)
IL_04E3: stfld UnityEngine.Vector3 PropInfo::m_lodMax
IL_04E8: ldarg.1
IL_04E9: dup
IL_04EA: ldfld System.Int32 PropInfo::m_lodCount
IL_04EF: ldc.i4.1
IL_04F0: add
IL_04F1: dup
IL_04F2: stloc.s 19 (System.Int32)
IL_04F4: stfld System.Int32 PropInfo::m_lodCount
IL_04F9: ldloc.s 19 (System.Int32)
IL_04FB: ldarg.1
IL_04FC: ldfld UnityEngine.Vector4[] PropInfo::m_lodLocations
IL_0501: ldlen
IL_0502: conv.i4
IL_0503: bne.un => Label23
IL_0508: ldarg.0
IL_0509: ldarg.1
IL_050A: call static System.Void PropInstance::RenderLod(CameraInfo
cameraInfo, PropInfo info)
IL_050F: // end original
IL_050F: Label0
IL_050F: Label6
IL_050F: Label7
IL_050F: Label19
IL_050F: Label22
IL_050F: Label23
IL_050F: ret
DONE

### Patch: virtual System.Void LightEffect::PopulateGroupData(System.Int32 layer,


InstanceID id, UnityEngine.Vector3 pos, UnityEngine.Vector3 dir, 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
LightEffect::LightEffect.PopulateGroupData_Patch0(LightEffect this, System.Int32
layer, InstanceID id, UnityEngine.Vector3 pos, UnityEngine.Vector3 dir,
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.Boolean
IL_0000: Local var 1: UnityEngine.Vector3
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.Quaternion
IL_0000: Local var 7: UnityEngine.Vector4
IL_0000: Local var 8: UnityEngine.Vector2
IL_0000: Local var 9: ColossalFramework.Math.Randomizer
IL_0000: Local var 10: UnityEngine.Vector2
IL_0000: Local var 11: UnityEngine.Vector2
IL_0000: Local var 12: UnityEngine.Vector2
IL_0000: Local var 13: System.UInt16
IL_0000: Local var 14: UnityEngine.Vector3
IL_0000: Local var 15: UnityEngine.Color
IL_0000: Local var 16: UnityEngine.Color
IL_0000: Local var 17: System.Single
IL_0000: Local var 18: System.Single
IL_0000: Local var 19: System.Int32
IL_0000: // start original
IL_0000: ldarg.1
IL_0001: ldarg.0
IL_0002: ldfld System.Int32 LightEffect::m_groupLayer
IL_0007: beq => Label0
IL_000C: ldarg.1
IL_000D: ldarg.0
IL_000E: ldfld System.Int32 LightEffect::m_groupLayerFloating
IL_0013: bne.un => Label1
IL_0018: Label0
IL_0018: ldarg.1
IL_0019: ldarg.0
IL_001A: ldfld System.Int32 LightEffect::m_groupLayerFloating
IL_001F: ceq
IL_0021: stloc.0
IL_0022: ldloca.s 1 (UnityEngine.Vector3)
IL_0024: ldarg.0
IL_0025: ldfld System.Single LightEffect::m_lightRange
IL_002A: ldarg.0
IL_002B: ldfld System.Single LightEffect::m_lightRange
IL_0030: ldarg.0
IL_0031: ldfld System.Single LightEffect::m_lightRange
IL_0036: call System.Void UnityEngine.Vector3::.ctor(System.Single x,
System.Single y, System.Single z)
IL_003B: ldarg.3
IL_003C: ldloc.1
IL_003D: call static UnityEngine.Vector3
UnityEngine.Vector3::op_Subtraction(UnityEngine.Vector3 a, UnityEngine.Vector3 b)
IL_0042: stloc.2
IL_0043: ldarg.3
IL_0044: ldloc.1
IL_0045: call static UnityEngine.Vector3
UnityEngine.Vector3::op_Addition(UnityEngine.Vector3 a, UnityEngine.Vector3 b)
IL_004A: stloc.3
IL_004B: ldarg.s 9
IL_004D: ldarg.s 9
IL_004F: ldobj UnityEngine.Vector3
IL_0054: ldloc.2
IL_0055: call static UnityEngine.Vector3
UnityEngine.Vector3::Min(UnityEngine.Vector3 lhs, UnityEngine.Vector3 rhs)
IL_005A: stobj UnityEngine.Vector3
IL_005F: ldarg.s 10
IL_0061: ldarg.s 10
IL_0063: ldobj UnityEngine.Vector3
IL_0068: ldloc.3
IL_0069: call static UnityEngine.Vector3
UnityEngine.Vector3::Max(UnityEngine.Vector3 lhs, UnityEngine.Vector3 rhs)
IL_006E: stobj UnityEngine.Vector3
IL_0073: ldarg.3
IL_0074: ldarg.s 7
IL_0076: call static UnityEngine.Vector3
UnityEngine.Vector3::op_Subtraction(UnityEngine.Vector3 a, UnityEngine.Vector3 b)
IL_007B: stloc.s 4 (UnityEngine.Vector3)
IL_007D: ldarg.s 11
IL_007F: ldarg.s 11
IL_0081: ldind.r4
IL_0082: ldc.r4 30000
IL_0087: call static System.Single UnityEngine.Mathf::Max(System.Single a,
System.Single b)
IL_008C: stind.r4
IL_008D: ldarg.0
IL_008E: ldfld UnityEngine.LightType LightEffect::m_lightType
IL_0093: brtrue => Label2
IL_0098: ldarg.s 4
IL_009A: call static UnityEngine.Quaternion
UnityEngine.Quaternion::LookRotation(UnityEngine.Vector3 forward)
IL_009F: stloc.s 6 (UnityEngine.Quaternion)
IL_00A1: ldloc.s 6 (UnityEngine.Quaternion)
IL_00A3: ldarg.0
IL_00A4: ldfld UnityEngine.Quaternion LightEffect::m_lightRotation
IL_00A9: call static UnityEngine.Vector3 UnityEngine.Vector3::get_forward()
IL_00AE: call static UnityEngine.Vector3
UnityEngine.Quaternion::op_Multiply(UnityEngine.Quaternion rotation,
UnityEngine.Vector3 point)
IL_00B3: call static UnityEngine.Vector3
UnityEngine.Quaternion::op_Multiply(UnityEngine.Quaternion rotation,
UnityEngine.Vector3 point)
IL_00B8: stloc.s 5 (UnityEngine.Vector3)
IL_00BA: br => Label3
IL_00BF: Label2
IL_00BF: call static UnityEngine.Vector3 UnityEngine.Vector3::get_forward()
IL_00C4: stloc.s 5 (UnityEngine.Vector3)
IL_00C6: Label3
IL_00C6: ldloca.s 7 (UnityEngine.Vector4)
IL_00C8: ldloca.s 5 (UnityEngine.Vector3)
IL_00CA: ldfld System.Single UnityEngine.Vector3::x
IL_00CF: ldloca.s 5 (UnityEngine.Vector3)
IL_00D1: ldfld System.Single UnityEngine.Vector3::y
IL_00D6: ldloca.s 5 (UnityEngine.Vector3)
IL_00D8: ldfld System.Single UnityEngine.Vector3::z
IL_00DD: ldc.r4 100000
IL_00E2: call System.Void UnityEngine.Vector4::.ctor(System.Single x,
System.Single y, System.Single z, System.Single w)
IL_00E7: ldarg.0
IL_00E8: ldfld UnityEngine.LightType LightEffect::m_lightType
IL_00ED: brtrue => Label4
IL_00F2: ldloca.s 7 (UnityEngine.Vector4)
IL_00F4: ldc.r4 0.01745329
IL_00F9: ldarg.0
IL_00FA: ldfld System.Single LightEffect::m_lightSpotAngle
IL_00FF: mul
IL_0100: ldc.r4 0.5
IL_0105: mul
IL_0106: call static System.Single UnityEngine.Mathf::Cos(System.Single f)
IL_010B: neg
IL_010C: stfld System.Single UnityEngine.Vector4::w
IL_0111: Label4
IL_0111: ldloca.s 8 (UnityEngine.Vector2)
IL_0113: ldc.r4 1
IL_0118: ldarg.0
IL_0119: ldfld System.Single LightEffect::m_lightRange
IL_011E: ldarg.0
IL_011F: ldfld System.Single LightEffect::m_lightRange
IL_0124: mul
IL_0125: div
IL_0126: ldarg.0
IL_0127: ldfld System.Single LightEffect::m_lightIntensity
IL_012C: call System.Void UnityEngine.Vector2::.ctor(System.Single x,
System.Single y)
IL_0131: ldloca.s 9 (ColossalFramework.Math.Randomizer)
IL_0133: ldarga.s 2
IL_0135: call System.UInt32 InstanceID::get_Index()
IL_013A: call System.Void
ColossalFramework.Math.Randomizer::.ctor(System.UInt32 _seed)
IL_013F: ldloca.s 10 (UnityEngine.Vector2)
IL_0141: ldarg.0
IL_0142: ldflda UnityEngine.Vector2 LightEffect::m_offRange
IL_0147: ldfld System.Single UnityEngine.Vector2::x
IL_014C: ldloca.s 9 (ColossalFramework.Math.Randomizer)
IL_014E: ldc.i4 100000
IL_0153: call System.Int32
ColossalFramework.Math.Randomizer::Int32(System.UInt32 range)
IL_0158: conv.r4
IL_0159: ldc.r4 1E-05
IL_015E: mul
IL_015F: ldarg.0
IL_0160: ldflda UnityEngine.Vector2 LightEffect::m_offRange
IL_0165: ldfld System.Single UnityEngine.Vector2::y
IL_016A: ldarg.0
IL_016B: ldflda UnityEngine.Vector2 LightEffect::m_offRange
IL_0170: ldfld System.Single UnityEngine.Vector2::x
IL_0175: sub
IL_0176: mul
IL_0177: add
IL_0178: stfld System.Single UnityEngine.Vector2::x
IL_017D: ldloca.s 10 (UnityEngine.Vector2)
IL_017F: ldarg.0
IL_0180: ldfld BlinkType LightEffect::m_blinkType
IL_0185: conv.r4
IL_0186: stfld System.Single UnityEngine.Vector2::y
IL_018B: ldarg.2
IL_018C: call static System.UInt16 EffectInfo::GetBuilding(InstanceID id)
IL_0191: stloc.s 13 (System.UInt16)
IL_0193: ldloc.s 13 (System.UInt16)
IL_0195: brfalse => Label5
IL_019A: ldloc.s 13 (System.UInt16)
IL_019C: call static UnityEngine.Vector4
RenderManager::GetColorLocation(System.UInt32 instanceHolder)
IL_01A1: call static UnityEngine.Vector2
UnityEngine.Vector4::op_Implicit(UnityEngine.Vector4 v)
IL_01A6: stloc.s 11 (UnityEngine.Vector2)
IL_01A8: ldloc.0
IL_01A9: brfalse => Label6
IL_01AE: call static BuildingManager
ColossalFramework.Singleton`1<BuildingManager>::get_instance()
IL_01B3: ldfld Array16`1<Building> BuildingManager::m_buildings
IL_01B8: ldfld Building[] Array16`1<Building>::m_buffer
IL_01BD: ldloc.s 13 (System.UInt16)
IL_01BF: ldelema Building
IL_01C4: call UnityEngine.Vector3 Building::CalculateMeshPosition()
IL_01C9: stloc.s 14 (UnityEngine.Vector3)
IL_01CB: ldloc.s 14 (UnityEngine.Vector3)
IL_01CD: call static UnityEngine.Vector2
ColossalFramework.Math.VectorUtils::XZ(UnityEngine.Vector3 v)
IL_01D2: stloc.s 12 (UnityEngine.Vector2)
IL_01D4: ldarga.s 3
IL_01D6: dup
IL_01D7: ldfld System.Single UnityEngine.Vector3::y
IL_01DC: ldloca.s 14 (UnityEngine.Vector3)
IL_01DE: ldfld System.Single UnityEngine.Vector3::y
IL_01E3: sub
IL_01E4: stfld System.Single UnityEngine.Vector3::y
IL_01E9: ldloca.s 4 (UnityEngine.Vector3)
IL_01EB: dup
IL_01EC: ldfld System.Single UnityEngine.Vector3::y
IL_01F1: ldloca.s 14 (UnityEngine.Vector3)
IL_01F3: ldfld System.Single UnityEngine.Vector3::y
IL_01F8: sub
IL_01F9: stfld System.Single UnityEngine.Vector3::y
IL_01FE: br => Label7
IL_0203: Label6
IL_0203: call static UnityEngine.Vector2 UnityEngine.Vector2::get_zero()
IL_0208: stloc.s 12 (UnityEngine.Vector2)
IL_020A: Label7
IL_020A: br => Label8
IL_020F: Label5
IL_020F: ldsfld UnityEngine.Vector4 RenderManager::DefaultColorLocation
IL_0214: call static UnityEngine.Vector2
UnityEngine.Vector4::op_Implicit(UnityEngine.Vector4 v)
IL_0219: stloc.s 11 (UnityEngine.Vector2)
IL_021B: call static UnityEngine.Vector2 UnityEngine.Vector2::get_zero()
IL_0220: stloc.s 12 (UnityEngine.Vector2)
IL_0222: Label8
IL_0222: ldarg.0
IL_0223: ldfld UnityEngine.Color LightEffect::m_lightColor
IL_0228: stloc.s 15 (UnityEngine.Color)
IL_022A: ldarg.0
IL_022B: ldfld UnityEngine.Color[] LightEffect::m_variationColors
IL_0230: brfalse => Label9
IL_0235: ldarg.0
IL_0236: ldfld UnityEngine.Color[] LightEffect::m_variationColors
IL_023B: ldlen
IL_023C: conv.i4
IL_023D: brfalse => Label10
IL_0242: ldarg.0
IL_0243: ldfld UnityEngine.Color[] LightEffect::m_variationColors
IL_0248: ldloca.s 9 (ColossalFramework.Math.Randomizer)
IL_024A: ldarg.0
IL_024B: ldfld UnityEngine.Color[] LightEffect::m_variationColors
IL_0250: ldlen
IL_0251: conv.i4
IL_0252: call System.Int32
ColossalFramework.Math.Randomizer::Int32(System.UInt32 range)
IL_0257: ldelema UnityEngine.Color
IL_025C: ldobj UnityEngine.Color
IL_0261: stloc.s 16 (UnityEngine.Color)
IL_0263: ldloc.s 15 (UnityEngine.Color)
IL_0265: ldloc.s 16 (UnityEngine.Color)
IL_0267: ldloca.s 9 (ColossalFramework.Math.Randomizer)
IL_0269: ldc.i4 1000
IL_026E: call System.Int32
ColossalFramework.Math.Randomizer::Int32(System.UInt32 range)
IL_0273: conv.r4
IL_0274: ldc.r4 0.001
IL_0279: mul
IL_027A: call static UnityEngine.Color
UnityEngine.Color::Lerp(UnityEngine.Color a, UnityEngine.Color b, System.Single t)
IL_027F: stloc.s 15 (UnityEngine.Color)
IL_0281: Label9
IL_0281: Label10
IL_0281: ldloca.s 15 (UnityEngine.Color)
IL_0283: call UnityEngine.Color UnityEngine.Color::get_linear()
IL_0288: stloc.s 15 (UnityEngine.Color)
IL_028A: ldloca.s 15 (UnityEngine.Color)
IL_028C: ldarg.0
IL_028D: ldfld UnityEngine.LightType LightEffect::m_lightType
IL_0292: brtrue => Label11
IL_0297: ldarg.0
IL_0298: ldfld System.Single LightEffect::m_spotLeaking
IL_029D: br => Label12
IL_02A2: Label11
IL_02A2: ldc.r4 0
IL_02A7: Label12
IL_02A7: stfld System.Single UnityEngine.Color::a
IL_02AC: ldarg.0
IL_02AD: ldfld System.Single LightEffect::m_lightRange
IL_02B2: ldc.r4 0.5235988
IL_02B7: call static System.Single UnityEngine.Mathf::Cos(System.Single f)
IL_02BC: div
IL_02BD: stloc.s 17 (System.Single)
IL_02BF: ldloc.s 17 (System.Single)
IL_02C1: ldc.r4 0.5
IL_02C6: mul
IL_02C7: stloc.s 18 (System.Single)
IL_02C9: ldarg.s 8
IL_02CB: ldfld UnityEngine.Vector3[] MeshData::m_vertices
IL_02D0: ldarg.s 5
IL_02D2: ldind.i4
IL_02D3: ldelema UnityEngine.Vector3
IL_02D8: ldloca.s 4 (UnityEngine.Vector3)
IL_02DA: ldfld System.Single UnityEngine.Vector3::x
IL_02DF: ldloc.s 18 (System.Single)
IL_02E1: sub
IL_02E2: ldloca.s 4 (UnityEngine.Vector3)
IL_02E4: ldfld System.Single UnityEngine.Vector3::y
IL_02E9: ldarg.0
IL_02EA: ldfld System.Single LightEffect::m_lightRange
IL_02EF: add
IL_02F0: ldloca.s 4 (UnityEngine.Vector3)
IL_02F2: ldfld System.Single UnityEngine.Vector3::z
IL_02F7: ldarg.0
IL_02F8: ldfld System.Single LightEffect::m_lightRange
IL_02FD: add
IL_02FE: newobj System.Void UnityEngine.Vector3::.ctor(System.Single x,
System.Single y, System.Single z)
IL_0303: stobj UnityEngine.Vector3
IL_0308: ldarg.s 8
IL_030A: ldfld UnityEngine.Vector3[] MeshData::m_normals
IL_030F: ldarg.s 5
IL_0311: ldind.i4
IL_0312: ldelema UnityEngine.Vector3
IL_0317: ldarg.3
IL_0318: stobj UnityEngine.Vector3
IL_031D: ldarg.s 8
IL_031F: ldfld UnityEngine.Vector4[] MeshData::m_tangents
IL_0324: ldarg.s 5
IL_0326: ldind.i4
IL_0327: ldelema UnityEngine.Vector4
IL_032C: ldloc.s 7 (UnityEngine.Vector4)
IL_032E: stobj UnityEngine.Vector4
IL_0333: ldarg.s 8
IL_0335: ldfld UnityEngine.Vector2[] MeshData::m_uvs
IL_033A: ldarg.s 5
IL_033C: ldind.i4
IL_033D: ldelema UnityEngine.Vector2
IL_0342: ldloc.s 8 (UnityEngine.Vector2)
IL_0344: stobj UnityEngine.Vector2
IL_0349: ldarg.s 8
IL_034B: ldfld UnityEngine.Vector2[] MeshData::m_uvs2
IL_0350: ldarg.s 5
IL_0352: ldind.i4
IL_0353: ldelema UnityEngine.Vector2
IL_0358: ldloc.s 10 (UnityEngine.Vector2)
IL_035A: stobj UnityEngine.Vector2
IL_035F: ldarg.s 8
IL_0361: ldfld UnityEngine.Vector2[] MeshData::m_uvs3
IL_0366: ldarg.s 5
IL_0368: ldind.i4
IL_0369: ldelema UnityEngine.Vector2
IL_036E: ldloc.s 11 (UnityEngine.Vector2)
IL_0370: stobj UnityEngine.Vector2
IL_0375: ldloc.0
IL_0376: brfalse => Label13
IL_037B: ldarg.s 8
IL_037D: ldfld UnityEngine.Vector2[] MeshData::m_uvs4
IL_0382: ldarg.s 5
IL_0384: ldind.i4
IL_0385: ldelema UnityEngine.Vector2
IL_038A: ldloc.s 12 (UnityEngine.Vector2)
IL_038C: stobj UnityEngine.Vector2
IL_0391: Label13
IL_0391: ldarg.s 8
IL_0393: ldfld UnityEngine.Color32[] MeshData::m_colors
IL_0398: ldarg.s 5
IL_039A: ldind.i4
IL_039B: ldelema UnityEngine.Color32
IL_03A0: ldloc.s 15 (UnityEngine.Color)
IL_03A2: call static UnityEngine.Color32
UnityEngine.Color32::op_Implicit(UnityEngine.Color c)
IL_03A7: stobj UnityEngine.Color32
IL_03AC: ldarg.s 5
IL_03AE: ldarg.s 5
IL_03B0: ldind.i4
IL_03B1: ldc.i4.1
IL_03B2: add
IL_03B3: stind.i4
IL_03B4: ldarg.s 8
IL_03B6: ldfld UnityEngine.Vector3[] MeshData::m_vertices
IL_03BB: ldarg.s 5
IL_03BD: ldind.i4
IL_03BE: ldelema UnityEngine.Vector3
IL_03C3: ldloca.s 4 (UnityEngine.Vector3)
IL_03C5: ldfld System.Single UnityEngine.Vector3::x
IL_03CA: ldloc.s 18 (System.Single)
IL_03CC: add
IL_03CD: ldloca.s 4 (UnityEngine.Vector3)
IL_03CF: ldfld System.Single UnityEngine.Vector3::y
IL_03D4: ldarg.0
IL_03D5: ldfld System.Single LightEffect::m_lightRange
IL_03DA: add
IL_03DB: ldloca.s 4 (UnityEngine.Vector3)
IL_03DD: ldfld System.Single UnityEngine.Vector3::z
IL_03E2: ldarg.0
IL_03E3: ldfld System.Single LightEffect::m_lightRange
IL_03E8: add
IL_03E9: newobj System.Void UnityEngine.Vector3::.ctor(System.Single x,
System.Single y, System.Single z)
IL_03EE: stobj UnityEngine.Vector3
IL_03F3: ldarg.s 8
IL_03F5: ldfld UnityEngine.Vector3[] MeshData::m_normals
IL_03FA: ldarg.s 5
IL_03FC: ldind.i4
IL_03FD: ldelema UnityEngine.Vector3
IL_0402: ldarg.3
IL_0403: stobj UnityEngine.Vector3
IL_0408: ldarg.s 8
IL_040A: ldfld UnityEngine.Vector4[] MeshData::m_tangents
IL_040F: ldarg.s 5
IL_0411: ldind.i4
IL_0412: ldelema UnityEngine.Vector4
IL_0417: ldloc.s 7 (UnityEngine.Vector4)
IL_0419: stobj UnityEngine.Vector4
IL_041E: ldarg.s 8
IL_0420: ldfld UnityEngine.Vector2[] MeshData::m_uvs
IL_0425: ldarg.s 5
IL_0427: ldind.i4
IL_0428: ldelema UnityEngine.Vector2
IL_042D: ldloc.s 8 (UnityEngine.Vector2)
IL_042F: stobj UnityEngine.Vector2
IL_0434: ldarg.s 8
IL_0436: ldfld UnityEngine.Vector2[] MeshData::m_uvs2
IL_043B: ldarg.s 5
IL_043D: ldind.i4
IL_043E: ldelema UnityEngine.Vector2
IL_0443: ldloc.s 10 (UnityEngine.Vector2)
IL_0445: stobj UnityEngine.Vector2
IL_044A: ldarg.s 8
IL_044C: ldfld UnityEngine.Vector2[] MeshData::m_uvs3
IL_0451: ldarg.s 5
IL_0453: ldind.i4
IL_0454: ldelema UnityEngine.Vector2
IL_0459: ldloc.s 11 (UnityEngine.Vector2)
IL_045B: stobj UnityEngine.Vector2
IL_0460: ldloc.0
IL_0461: brfalse => Label14
IL_0466: ldarg.s 8
IL_0468: ldfld UnityEngine.Vector2[] MeshData::m_uvs4
IL_046D: ldarg.s 5
IL_046F: ldind.i4
IL_0470: ldelema UnityEngine.Vector2
IL_0475: ldloc.s 12 (UnityEngine.Vector2)
IL_0477: stobj UnityEngine.Vector2
IL_047C: Label14
IL_047C: ldarg.s 8
IL_047E: ldfld UnityEngine.Color32[] MeshData::m_colors
IL_0483: ldarg.s 5
IL_0485: ldind.i4
IL_0486: ldelema UnityEngine.Color32
IL_048B: ldloc.s 15 (UnityEngine.Color)
IL_048D: call static UnityEngine.Color32
UnityEngine.Color32::op_Implicit(UnityEngine.Color c)
IL_0492: stobj UnityEngine.Color32
IL_0497: ldarg.s 5
IL_0499: ldarg.s 5
IL_049B: ldind.i4
IL_049C: ldc.i4.1
IL_049D: add
IL_049E: stind.i4
IL_049F: ldarg.s 8
IL_04A1: ldfld UnityEngine.Vector3[] MeshData::m_vertices
IL_04A6: ldarg.s 5
IL_04A8: ldind.i4
IL_04A9: ldelema UnityEngine.Vector3
IL_04AE: ldloca.s 4 (UnityEngine.Vector3)
IL_04B0: ldfld System.Single UnityEngine.Vector3::x
IL_04B5: ldloc.s 17 (System.Single)
IL_04B7: add
IL_04B8: ldloca.s 4 (UnityEngine.Vector3)
IL_04BA: ldfld System.Single UnityEngine.Vector3::y
IL_04BF: ldloca.s 4 (UnityEngine.Vector3)
IL_04C1: ldfld System.Single UnityEngine.Vector3::z
IL_04C6: ldarg.0
IL_04C7: ldfld System.Single LightEffect::m_lightRange
IL_04CC: add
IL_04CD: newobj System.Void UnityEngine.Vector3::.ctor(System.Single x,
System.Single y, System.Single z)
IL_04D2: stobj UnityEngine.Vector3
IL_04D7: ldarg.s 8
IL_04D9: ldfld UnityEngine.Vector3[] MeshData::m_normals
IL_04DE: ldarg.s 5
IL_04E0: ldind.i4
IL_04E1: ldelema UnityEngine.Vector3
IL_04E6: ldarg.3
IL_04E7: stobj UnityEngine.Vector3
IL_04EC: ldarg.s 8
IL_04EE: ldfld UnityEngine.Vector4[] MeshData::m_tangents
IL_04F3: ldarg.s 5
IL_04F5: ldind.i4
IL_04F6: ldelema UnityEngine.Vector4
IL_04FB: ldloc.s 7 (UnityEngine.Vector4)
IL_04FD: stobj UnityEngine.Vector4
IL_0502: ldarg.s 8
IL_0504: ldfld UnityEngine.Vector2[] MeshData::m_uvs
IL_0509: ldarg.s 5
IL_050B: ldind.i4
IL_050C: ldelema UnityEngine.Vector2
IL_0511: ldloc.s 8 (UnityEngine.Vector2)
IL_0513: stobj UnityEngine.Vector2
IL_0518: ldarg.s 8
IL_051A: ldfld UnityEngine.Vector2[] MeshData::m_uvs2
IL_051F: ldarg.s 5
IL_0521: ldind.i4
IL_0522: ldelema UnityEngine.Vector2
IL_0527: ldloc.s 10 (UnityEngine.Vector2)
IL_0529: stobj UnityEngine.Vector2
IL_052E: ldarg.s 8
IL_0530: ldfld UnityEngine.Vector2[] MeshData::m_uvs3
IL_0535: ldarg.s 5
IL_0537: ldind.i4
IL_0538: ldelema UnityEngine.Vector2
IL_053D: ldloc.s 11 (UnityEngine.Vector2)
IL_053F: stobj UnityEngine.Vector2
IL_0544: ldloc.0
IL_0545: brfalse => Label15
IL_054A: ldarg.s 8
IL_054C: ldfld UnityEngine.Vector2[] MeshData::m_uvs4
IL_0551: ldarg.s 5
IL_0553: ldind.i4
IL_0554: ldelema UnityEngine.Vector2
IL_0559: ldloc.s 12 (UnityEngine.Vector2)
IL_055B: stobj UnityEngine.Vector2
IL_0560: Label15
IL_0560: ldarg.s 8
IL_0562: ldfld UnityEngine.Color32[] MeshData::m_colors
IL_0567: ldarg.s 5
IL_0569: ldind.i4
IL_056A: ldelema UnityEngine.Color32
IL_056F: ldloc.s 15 (UnityEngine.Color)
IL_0571: call static UnityEngine.Color32
UnityEngine.Color32::op_Implicit(UnityEngine.Color c)
IL_0576: stobj UnityEngine.Color32
IL_057B: ldarg.s 5
IL_057D: ldarg.s 5
IL_057F: ldind.i4
IL_0580: ldc.i4.1
IL_0581: add
IL_0582: stind.i4
IL_0583: ldarg.s 8
IL_0585: ldfld UnityEngine.Vector3[] MeshData::m_vertices
IL_058A: ldarg.s 5
IL_058C: ldind.i4
IL_058D: ldelema UnityEngine.Vector3
IL_0592: ldloca.s 4 (UnityEngine.Vector3)
IL_0594: ldfld System.Single UnityEngine.Vector3::x
IL_0599: ldloc.s 18 (System.Single)
IL_059B: add
IL_059C: ldloca.s 4 (UnityEngine.Vector3)
IL_059E: ldfld System.Single UnityEngine.Vector3::y
IL_05A3: ldarg.0
IL_05A4: ldfld System.Single LightEffect::m_lightRange
IL_05A9: sub
IL_05AA: ldloca.s 4 (UnityEngine.Vector3)
IL_05AC: ldfld System.Single UnityEngine.Vector3::z
IL_05B1: ldarg.0
IL_05B2: ldfld System.Single LightEffect::m_lightRange
IL_05B7: add
IL_05B8: newobj System.Void UnityEngine.Vector3::.ctor(System.Single x,
System.Single y, System.Single z)
IL_05BD: stobj UnityEngine.Vector3
IL_05C2: ldarg.s 8
IL_05C4: ldfld UnityEngine.Vector3[] MeshData::m_normals
IL_05C9: ldarg.s 5
IL_05CB: ldind.i4
IL_05CC: ldelema UnityEngine.Vector3
IL_05D1: ldarg.3
IL_05D2: stobj UnityEngine.Vector3
IL_05D7: ldarg.s 8
IL_05D9: ldfld UnityEngine.Vector4[] MeshData::m_tangents
IL_05DE: ldarg.s 5
IL_05E0: ldind.i4
IL_05E1: ldelema UnityEngine.Vector4
IL_05E6: ldloc.s 7 (UnityEngine.Vector4)
IL_05E8: stobj UnityEngine.Vector4
IL_05ED: ldarg.s 8
IL_05EF: ldfld UnityEngine.Vector2[] MeshData::m_uvs
IL_05F4: ldarg.s 5
IL_05F6: ldind.i4
IL_05F7: ldelema UnityEngine.Vector2
IL_05FC: ldloc.s 8 (UnityEngine.Vector2)
IL_05FE: stobj UnityEngine.Vector2
IL_0603: ldarg.s 8
IL_0605: ldfld UnityEngine.Vector2[] MeshData::m_uvs2
IL_060A: ldarg.s 5
IL_060C: ldind.i4
IL_060D: ldelema UnityEngine.Vector2
IL_0612: ldloc.s 10 (UnityEngine.Vector2)
IL_0614: stobj UnityEngine.Vector2
IL_0619: ldarg.s 8
IL_061B: ldfld UnityEngine.Vector2[] MeshData::m_uvs3
IL_0620: ldarg.s 5
IL_0622: ldind.i4
IL_0623: ldelema UnityEngine.Vector2
IL_0628: ldloc.s 11 (UnityEngine.Vector2)
IL_062A: stobj UnityEngine.Vector2
IL_062F: ldloc.0
IL_0630: brfalse => Label16
IL_0635: ldarg.s 8
IL_0637: ldfld UnityEngine.Vector2[] MeshData::m_uvs4
IL_063C: ldarg.s 5
IL_063E: ldind.i4
IL_063F: ldelema UnityEngine.Vector2
IL_0644: ldloc.s 12 (UnityEngine.Vector2)
IL_0646: stobj UnityEngine.Vector2
IL_064B: Label16
IL_064B: ldarg.s 8
IL_064D: ldfld UnityEngine.Color32[] MeshData::m_colors
IL_0652: ldarg.s 5
IL_0654: ldind.i4
IL_0655: ldelema UnityEngine.Color32
IL_065A: ldloc.s 15 (UnityEngine.Color)
IL_065C: call static UnityEngine.Color32
UnityEngine.Color32::op_Implicit(UnityEngine.Color c)
IL_0661: stobj UnityEngine.Color32
IL_0666: ldarg.s 5
IL_0668: ldarg.s 5
IL_066A: ldind.i4
IL_066B: ldc.i4.1
IL_066C: add
IL_066D: stind.i4
IL_066E: ldarg.s 8
IL_0670: ldfld UnityEngine.Vector3[] MeshData::m_vertices
IL_0675: ldarg.s 5
IL_0677: ldind.i4
IL_0678: ldelema UnityEngine.Vector3
IL_067D: ldloca.s 4 (UnityEngine.Vector3)
IL_067F: ldfld System.Single UnityEngine.Vector3::x
IL_0684: ldloc.s 18 (System.Single)
IL_0686: sub
IL_0687: ldloca.s 4 (UnityEngine.Vector3)
IL_0689: ldfld System.Single UnityEngine.Vector3::y
IL_068E: ldarg.0
IL_068F: ldfld System.Single LightEffect::m_lightRange
IL_0694: sub
IL_0695: ldloca.s 4 (UnityEngine.Vector3)
IL_0697: ldfld System.Single UnityEngine.Vector3::z
IL_069C: ldarg.0
IL_069D: ldfld System.Single LightEffect::m_lightRange
IL_06A2: add
IL_06A3: newobj System.Void UnityEngine.Vector3::.ctor(System.Single x,
System.Single y, System.Single z)
IL_06A8: stobj UnityEngine.Vector3
IL_06AD: ldarg.s 8
IL_06AF: ldfld UnityEngine.Vector3[] MeshData::m_normals
IL_06B4: ldarg.s 5
IL_06B6: ldind.i4
IL_06B7: ldelema UnityEngine.Vector3
IL_06BC: ldarg.3
IL_06BD: stobj UnityEngine.Vector3
IL_06C2: ldarg.s 8
IL_06C4: ldfld UnityEngine.Vector4[] MeshData::m_tangents
IL_06C9: ldarg.s 5
IL_06CB: ldind.i4
IL_06CC: ldelema UnityEngine.Vector4
IL_06D1: ldloc.s 7 (UnityEngine.Vector4)
IL_06D3: stobj UnityEngine.Vector4
IL_06D8: ldarg.s 8
IL_06DA: ldfld UnityEngine.Vector2[] MeshData::m_uvs
IL_06DF: ldarg.s 5
IL_06E1: ldind.i4
IL_06E2: ldelema UnityEngine.Vector2
IL_06E7: ldloc.s 8 (UnityEngine.Vector2)
IL_06E9: stobj UnityEngine.Vector2
IL_06EE: ldarg.s 8
IL_06F0: ldfld UnityEngine.Vector2[] MeshData::m_uvs2
IL_06F5: ldarg.s 5
IL_06F7: ldind.i4
IL_06F8: ldelema UnityEngine.Vector2
IL_06FD: ldloc.s 10 (UnityEngine.Vector2)
IL_06FF: stobj UnityEngine.Vector2
IL_0704: ldarg.s 8
IL_0706: ldfld UnityEngine.Vector2[] MeshData::m_uvs3
IL_070B: ldarg.s 5
IL_070D: ldind.i4
IL_070E: ldelema UnityEngine.Vector2
IL_0713: ldloc.s 11 (UnityEngine.Vector2)
IL_0715: stobj UnityEngine.Vector2
IL_071A: ldloc.0
IL_071B: brfalse => Label17
IL_0720: ldarg.s 8
IL_0722: ldfld UnityEngine.Vector2[] MeshData::m_uvs4
IL_0727: ldarg.s 5
IL_0729: ldind.i4
IL_072A: ldelema UnityEngine.Vector2
IL_072F: ldloc.s 12 (UnityEngine.Vector2)
IL_0731: stobj UnityEngine.Vector2
IL_0736: Label17
IL_0736: ldarg.s 8
IL_0738: ldfld UnityEngine.Color32[] MeshData::m_colors
IL_073D: ldarg.s 5
IL_073F: ldind.i4
IL_0740: ldelema UnityEngine.Color32
IL_0745: ldloc.s 15 (UnityEngine.Color)
IL_0747: call static UnityEngine.Color32
UnityEngine.Color32::op_Implicit(UnityEngine.Color c)
IL_074C: stobj UnityEngine.Color32
IL_0751: ldarg.s 5
IL_0753: ldarg.s 5
IL_0755: ldind.i4
IL_0756: ldc.i4.1
IL_0757: add
IL_0758: stind.i4
IL_0759: ldarg.s 8
IL_075B: ldfld UnityEngine.Vector3[] MeshData::m_vertices
IL_0760: ldarg.s 5
IL_0762: ldind.i4
IL_0763: ldelema UnityEngine.Vector3
IL_0768: ldloca.s 4 (UnityEngine.Vector3)
IL_076A: ldfld System.Single UnityEngine.Vector3::x
IL_076F: ldloc.s 17 (System.Single)
IL_0771: sub
IL_0772: ldloca.s 4 (UnityEngine.Vector3)
IL_0774: ldfld System.Single UnityEngine.Vector3::y
IL_0779: ldloca.s 4 (UnityEngine.Vector3)
IL_077B: ldfld System.Single UnityEngine.Vector3::z
IL_0780: ldarg.0
IL_0781: ldfld System.Single LightEffect::m_lightRange
IL_0786: add
IL_0787: newobj System.Void UnityEngine.Vector3::.ctor(System.Single x,
System.Single y, System.Single z)
IL_078C: stobj UnityEngine.Vector3
IL_0791: ldarg.s 8
IL_0793: ldfld UnityEngine.Vector3[] MeshData::m_normals
IL_0798: ldarg.s 5
IL_079A: ldind.i4
IL_079B: ldelema UnityEngine.Vector3
IL_07A0: ldarg.3
IL_07A1: stobj UnityEngine.Vector3
IL_07A6: ldarg.s 8
IL_07A8: ldfld UnityEngine.Vector4[] MeshData::m_tangents
IL_07AD: ldarg.s 5
IL_07AF: ldind.i4
IL_07B0: ldelema UnityEngine.Vector4
IL_07B5: ldloc.s 7 (UnityEngine.Vector4)
IL_07B7: stobj UnityEngine.Vector4
IL_07BC: ldarg.s 8
IL_07BE: ldfld UnityEngine.Vector2[] MeshData::m_uvs
IL_07C3: ldarg.s 5
IL_07C5: ldind.i4
IL_07C6: ldelema UnityEngine.Vector2
IL_07CB: ldloc.s 8 (UnityEngine.Vector2)
IL_07CD: stobj UnityEngine.Vector2
IL_07D2: ldarg.s 8
IL_07D4: ldfld UnityEngine.Vector2[] MeshData::m_uvs2
IL_07D9: ldarg.s 5
IL_07DB: ldind.i4
IL_07DC: ldelema UnityEngine.Vector2
IL_07E1: ldloc.s 10 (UnityEngine.Vector2)
IL_07E3: stobj UnityEngine.Vector2
IL_07E8: ldarg.s 8
IL_07EA: ldfld UnityEngine.Vector2[] MeshData::m_uvs3
IL_07EF: ldarg.s 5
IL_07F1: ldind.i4
IL_07F2: ldelema UnityEngine.Vector2
IL_07F7: ldloc.s 11 (UnityEngine.Vector2)
IL_07F9: stobj UnityEngine.Vector2
IL_07FE: ldloc.0
IL_07FF: brfalse => Label18
IL_0804: ldarg.s 8
IL_0806: ldfld UnityEngine.Vector2[] MeshData::m_uvs4
IL_080B: ldarg.s 5
IL_080D: ldind.i4
IL_080E: ldelema UnityEngine.Vector2
IL_0813: ldloc.s 12 (UnityEngine.Vector2)
IL_0815: stobj UnityEngine.Vector2
IL_081A: Label18
IL_081A: ldarg.s 8
IL_081C: ldfld UnityEngine.Color32[] MeshData::m_colors
IL_0821: ldarg.s 5
IL_0823: ldind.i4
IL_0824: ldelema UnityEngine.Color32
IL_0829: ldloc.s 15 (UnityEngine.Color)
IL_082B: call static UnityEngine.Color32
UnityEngine.Color32::op_Implicit(UnityEngine.Color c)
IL_0830: stobj UnityEngine.Color32
IL_0835: ldarg.s 5
IL_0837: ldarg.s 5
IL_0839: ldind.i4
IL_083A: ldc.i4.1
IL_083B: add
IL_083C: stind.i4
IL_083D: ldarg.s 8
IL_083F: ldfld System.Int32[] MeshData::m_triangles
IL_0844: ldarg.s 6
IL_0846: ldarg.s 6
IL_0848: ldind.i4
IL_0849: dup
IL_084A: stloc.s 19 (System.Int32)
IL_084C: ldc.i4.1
IL_084D: add
IL_084E: stind.i4
IL_084F: ldloc.s 19 (System.Int32)
IL_0851: ldarg.s 5
IL_0853: ldind.i4
IL_0854: ldc.i4.6
IL_0855: sub
IL_0856: stelem.i4
IL_0857: ldarg.s 8
IL_0859: ldfld System.Int32[] MeshData::m_triangles
IL_085E: ldarg.s 6
IL_0860: ldarg.s 6
IL_0862: ldind.i4
IL_0863: dup
IL_0864: stloc.s 19 (System.Int32)
IL_0866: ldc.i4.1
IL_0867: add
IL_0868: stind.i4
IL_0869: ldloc.s 19 (System.Int32)
IL_086B: ldarg.s 5
IL_086D: ldind.i4
IL_086E: ldc.i4.5
IL_086F: sub
IL_0870: stelem.i4
IL_0871: ldarg.s 8
IL_0873: ldfld System.Int32[] MeshData::m_triangles
IL_0878: ldarg.s 6
IL_087A: ldarg.s 6
IL_087C: ldind.i4
IL_087D: dup
IL_087E: stloc.s 19 (System.Int32)
IL_0880: ldc.i4.1
IL_0881: add
IL_0882: stind.i4
IL_0883: ldloc.s 19 (System.Int32)
IL_0885: ldarg.s 5
IL_0887: ldind.i4
IL_0888: ldc.i4.1
IL_0889: sub
IL_088A: stelem.i4
IL_088B: ldarg.s 8
IL_088D: ldfld System.Int32[] MeshData::m_triangles
IL_0892: ldarg.s 6
IL_0894: ldarg.s 6
IL_0896: ldind.i4
IL_0897: dup
IL_0898: stloc.s 19 (System.Int32)
IL_089A: ldc.i4.1
IL_089B: add
IL_089C: stind.i4
IL_089D: ldloc.s 19 (System.Int32)
IL_089F: ldarg.s 5
IL_08A1: ldind.i4
IL_08A2: ldc.i4.1
IL_08A3: sub
IL_08A4: stelem.i4
IL_08A5: ldarg.s 8
IL_08A7: ldfld System.Int32[] MeshData::m_triangles
IL_08AC: ldarg.s 6
IL_08AE: ldarg.s 6
IL_08B0: ldind.i4
IL_08B1: dup
IL_08B2: stloc.s 19 (System.Int32)
IL_08B4: ldc.i4.1
IL_08B5: add
IL_08B6: stind.i4
IL_08B7: ldloc.s 19 (System.Int32)
IL_08B9: ldarg.s 5
IL_08BB: ldind.i4
IL_08BC: ldc.i4.5
IL_08BD: sub
IL_08BE: stelem.i4
IL_08BF: ldarg.s 8
IL_08C1: ldfld System.Int32[] MeshData::m_triangles
IL_08C6: ldarg.s 6
IL_08C8: ldarg.s 6
IL_08CA: ldind.i4
IL_08CB: dup
IL_08CC: stloc.s 19 (System.Int32)
IL_08CE: ldc.i4.1
IL_08CF: add
IL_08D0: stind.i4
IL_08D1: ldloc.s 19 (System.Int32)
IL_08D3: ldarg.s 5
IL_08D5: ldind.i4
IL_08D6: ldc.i4.4
IL_08D7: sub
IL_08D8: stelem.i4
IL_08D9: ldarg.s 8
IL_08DB: ldfld System.Int32[] MeshData::m_triangles
IL_08E0: ldarg.s 6
IL_08E2: ldarg.s 6
IL_08E4: ldind.i4
IL_08E5: dup
IL_08E6: stloc.s 19 (System.Int32)
IL_08E8: ldc.i4.1
IL_08E9: add
IL_08EA: stind.i4
IL_08EB: ldloc.s 19 (System.Int32)
IL_08ED: ldarg.s 5
IL_08EF: ldind.i4
IL_08F0: ldc.i4.1
IL_08F1: sub
IL_08F2: stelem.i4
IL_08F3: ldarg.s 8
IL_08F5: ldfld System.Int32[] MeshData::m_triangles
IL_08FA: ldarg.s 6
IL_08FC: ldarg.s 6
IL_08FE: ldind.i4
IL_08FF: dup
IL_0900: stloc.s 19 (System.Int32)
IL_0902: ldc.i4.1
IL_0903: add
IL_0904: stind.i4
IL_0905: ldloc.s 19 (System.Int32)
IL_0907: ldarg.s 5
IL_0909: ldind.i4
IL_090A: ldc.i4.4
IL_090B: sub
IL_090C: stelem.i4
IL_090D: ldarg.s 8
IL_090F: ldfld System.Int32[] MeshData::m_triangles
IL_0914: ldarg.s 6
IL_0916: ldarg.s 6
IL_0918: ldind.i4
IL_0919: dup
IL_091A: stloc.s 19 (System.Int32)
IL_091C: ldc.i4.1
IL_091D: add
IL_091E: stind.i4
IL_091F: ldloc.s 19 (System.Int32)
IL_0921: ldarg.s 5
IL_0923: ldind.i4
IL_0924: ldc.i4.2
IL_0925: sub
IL_0926: stelem.i4
IL_0927: ldarg.s 8
IL_0929: ldfld System.Int32[] MeshData::m_triangles
IL_092E: ldarg.s 6
IL_0930: ldarg.s 6
IL_0932: ldind.i4
IL_0933: dup
IL_0934: stloc.s 19 (System.Int32)
IL_0936: ldc.i4.1
IL_0937: add
IL_0938: stind.i4
IL_0939: ldloc.s 19 (System.Int32)
IL_093B: ldarg.s 5
IL_093D: ldind.i4
IL_093E: ldc.i4.2
IL_093F: sub
IL_0940: stelem.i4
IL_0941: ldarg.s 8
IL_0943: ldfld System.Int32[] MeshData::m_triangles
IL_0948: ldarg.s 6
IL_094A: ldarg.s 6
IL_094C: ldind.i4
IL_094D: dup
IL_094E: stloc.s 19 (System.Int32)
IL_0950: ldc.i4.1
IL_0951: add
IL_0952: stind.i4
IL_0953: ldloc.s 19 (System.Int32)
IL_0955: ldarg.s 5
IL_0957: ldind.i4
IL_0958: ldc.i4.4
IL_0959: sub
IL_095A: stelem.i4
IL_095B: ldarg.s 8
IL_095D: ldfld System.Int32[] MeshData::m_triangles
IL_0962: ldarg.s 6
IL_0964: ldarg.s 6
IL_0966: ldind.i4
IL_0967: dup
IL_0968: stloc.s 19 (System.Int32)
IL_096A: ldc.i4.1
IL_096B: add
IL_096C: stind.i4
IL_096D: ldloc.s 19 (System.Int32)
IL_096F: ldarg.s 5
IL_0971: ldind.i4
IL_0972: ldc.i4.3
IL_0973: sub
IL_0974: stelem.i4
IL_0975: // end original
IL_0975: Label1
IL_0975: ret
DONE

### Patch: virtual System.Void ElectricityManager::SimulationStepImpl(System.Int32


subStep)
### Replacement: static System.Void
ElectricityManager::ElectricityManager.SimulationStepImpl_Patch0(ElectricityManager
this, System.Int32 subStep)
IL_0000: Local var 0: System.UInt32
IL_0000: Local var 1: System.Int32
IL_0000: Local var 2: NetManager
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: NetInfo
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: ElectricityManager/Cell
IL_0000: Local var 13: ElectricityManager/PulseGroup
IL_0000: Local var 14: ElectricityManager/PulseUnit
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: ElectricityManager/PulseUnit
IL_0000: Local var 19: System.UInt32
IL_0000: Local var 20: System.Int32
IL_0000: Local var 21: ElectricityManager/Cell
IL_0000: Local var 22: System.Int32
IL_0000: Local var 23: System.Int32
IL_0000: Local var 24: NetNode
IL_0000: Local var 25: System.Int32
IL_0000: Local var 26: System.UInt16
IL_0000: Local var 27: System.UInt16
IL_0000: Local var 28: System.UInt16
IL_0000: Local var 29: System.UInt16
IL_0000: Local var 30: System.Int32
IL_0000: Local var 31: ElectricityManager/PulseGroup
IL_0000: Local var 32: ElectricityManager/PulseGroup
IL_0000: Local var 33: System.Int32
IL_0000: Local var 34: ElectricityManager/PulseGroup
IL_0000: Local var 35: System.Int32
IL_0000: Local var 36: ElectricityManager/Cell
IL_0000: // start original
IL_0000: ldarg.1
IL_0001: brfalse => Label0
IL_0006: ldarg.1
IL_0007: ldc.i4 1000
IL_000C: beq => Label1
IL_0011: call static SimulationManager
ColossalFramework.Singleton`1<SimulationManager>::get_instance()
IL_0016: ldfld System.UInt32 SimulationManager::m_currentFrameIndex
IL_001B: stloc.0
IL_001C: ldloc.0
IL_001D: ldc.i4 255
IL_0022: and
IL_0023: stloc.1
IL_0024: ldloc.1
IL_0025: ldc.i4 128
IL_002A: bge => Label2
IL_002F: ldloc.1
IL_0030: brtrue => Label3
IL_0035: ldarg.0
IL_0036: ldc.i4.0
IL_0037: stfld System.Int32 ElectricityManager::m_pulseGroupCount
IL_003C: ldarg.0
IL_003D: ldc.i4.0
IL_003E: stfld System.Int32 ElectricityManager::m_pulseUnitStart
IL_0043: ldarg.0
IL_0044: ldc.i4.0
IL_0045: stfld System.Int32 ElectricityManager::m_pulseUnitEnd
IL_004A: ldarg.0
IL_004B: ldc.i4.0
IL_004C: stfld System.Int32 ElectricityManager::m_processedCells
IL_0051: ldarg.0
IL_0052: ldc.i4.0
IL_0053: stfld System.Int32 ElectricityManager::m_conductiveCells
IL_0058: ldarg.0
IL_0059: ldc.i4.1
IL_005A: stfld System.Boolean ElectricityManager::m_canContinue
IL_005F: Label3
IL_005F: call static NetManager
ColossalFramework.Singleton`1<NetManager>::get_instance()
IL_0064: stloc.2
IL_0065: ldloc.1
IL_0066: ldc.i4 32768
IL_006B: mul
IL_006C: ldc.i4.7
IL_006D: shr
IL_006E: stloc.3
IL_006F: ldloc.1
IL_0070: ldc.i4.1
IL_0071: add
IL_0072: ldc.i4 32768
IL_0077: mul
IL_0078: ldc.i4.7
IL_0079: shr
IL_007A: ldc.i4.1
IL_007B: sub
IL_007C: stloc.s 4 (System.Int32)
IL_007E: ldloc.3
IL_007F: stloc.s 5 (System.Int32)
IL_0081: br => Label4
IL_0086: Label10
IL_0086: ldloc.2
IL_0087: ldfld Array16`1<NetNode> NetManager::m_nodes
IL_008C: ldfld NetNode[] Array16`1<NetNode>::m_buffer
IL_0091: ldloc.s 5 (System.Int32)
IL_0093: ldelema NetNode
IL_0098: ldfld Flags NetNode::m_flags
IL_009D: brfalse => Label5
IL_00A2: ldloc.2
IL_00A3: ldfld Array16`1<NetNode> NetManager::m_nodes
IL_00A8: ldfld NetNode[] Array16`1<NetNode>::m_buffer
IL_00AD: ldloc.s 5 (System.Int32)
IL_00AF: ldelema NetNode
IL_00B4: call NetInfo NetNode::get_Info()
IL_00B9: stloc.s 6 (NetInfo)
IL_00BB: ldloc.s 6 (NetInfo)
IL_00BD: ldfld ItemClass NetInfo::m_class
IL_00C2: ldfld Service ItemClass::m_service
IL_00C7: ldc.i4.s 10
IL_00C9: beq => Label6
IL_00CE: ldloc.s 6 (NetInfo)
IL_00D0: ldfld NetAI NetInfo::m_netAI
IL_00D5: isinst ConcourseAI
IL_00DA: brfalse => Label7
IL_00DF: Label6
IL_00DF: ldarg.0
IL_00E0: ldloc.s 5 (System.Int32)
IL_00E2: ldarg.0
IL_00E3: ldfld System.UInt16[] ElectricityManager::m_nodeGroups
IL_00E8: ldloc.s 5 (System.Int32)
IL_00EA: ldelem.u2
IL_00EB: ldc.i4 65535
IL_00F0: beq => Label8
IL_00F5: ldc.i4.1
IL_00F6: br => Label9
IL_00FB: Label8
IL_00FB: ldc.i4.0
IL_00FC: Label9
IL_00FC: call System.Void
ElectricityManager::UpdateNodeElectricity(System.Int32 nodeID, System.Int32 value)
IL_0101: ldarg.0
IL_0102: dup
IL_0103: ldfld System.Int32 ElectricityManager::m_conductiveCells
IL_0108: ldc.i4.1
IL_0109: add
IL_010A: stfld System.Int32 ElectricityManager::m_conductiveCells
IL_010F: Label5
IL_010F: Label7
IL_010F: ldarg.0
IL_0110: ldfld System.UInt16[] ElectricityManager::m_nodeGroups
IL_0115: ldloc.s 5 (System.Int32)
IL_0117: ldc.i4 65535
IL_011C: stelem.i2
IL_011D: ldloc.s 5 (System.Int32)
IL_011F: ldc.i4.1
IL_0120: add
IL_0121: stloc.s 5 (System.Int32)
IL_0123: Label4
IL_0123: ldloc.s 5 (System.Int32)
IL_0125: ldloc.s 4 (System.Int32)
IL_0127: ble => Label10
IL_012C: ldloc.1
IL_012D: ldc.i4 256
IL_0132: mul
IL_0133: ldc.i4.7
IL_0134: shr
IL_0135: stloc.s 7 (System.Int32)
IL_0137: ldloc.1
IL_0138: ldc.i4.1
IL_0139: add
IL_013A: ldc.i4 256
IL_013F: mul
IL_0140: ldc.i4.7
IL_0141: shr
IL_0142: ldc.i4.1
IL_0143: sub
IL_0144: stloc.s 8 (System.Int32)
IL_0146: ldloc.s 7 (System.Int32)
IL_0148: stloc.s 9 (System.Int32)
IL_014A: br => Label11
IL_014F: Label21
IL_014F: ldloc.s 9 (System.Int32)
IL_0151: ldc.i4 256
IL_0156: mul
IL_0157: stloc.s 10 (System.Int32)
IL_0159: ldc.i4.0
IL_015A: stloc.s 11 (System.Int32)
IL_015C: br => Label12
IL_0161: Label20
IL_0161: ldarg.0
IL_0162: ldfld Cell[] ElectricityManager::m_electricityGrid
IL_0167: ldloc.s 10 (System.Int32)
IL_0169: ldelema ElectricityManager+Cell
IL_016E: ldobj ElectricityManager+Cell
IL_0173: stloc.s 12 (ElectricityManager+Cell)
IL_0175: ldloca.s 12 (ElectricityManager+Cell)
IL_0177: ldfld System.Int16 Cell::m_currentCharge
IL_017C: ldc.i4.0
IL_017D: ble => Label13
IL_0182: ldarg.0
IL_0183: ldfld System.Int32 ElectricityManager::m_pulseGroupCount
IL_0188: ldc.i4 1024
IL_018D: bge => Label14
IL_0192: ldloca.s 13 (ElectricityManager+PulseGroup)
IL_0194: ldloca.s 12 (ElectricityManager+Cell)
IL_0196: ldfld System.Int16 Cell::m_currentCharge
IL_019B: conv.u4
IL_019C: stfld System.UInt32 PulseGroup::m_origCharge
IL_01A1: ldloca.s 13 (ElectricityManager+PulseGroup)
IL_01A3: ldloca.s 12 (ElectricityManager+Cell)
IL_01A5: ldfld System.Int16 Cell::m_currentCharge
IL_01AA: conv.u4
IL_01AB: stfld System.UInt32 PulseGroup::m_curCharge
IL_01B0: ldloca.s 13 (ElectricityManager+PulseGroup)
IL_01B2: ldc.i4.0
IL_01B3: stfld System.UInt16 PulseGroup::m_mergeCount
IL_01B8: ldloca.s 13 (ElectricityManager+PulseGroup)
IL_01BA: ldc.i4 65535
IL_01BF: stfld System.UInt16 PulseGroup::m_mergeIndex
IL_01C4: ldloca.s 13 (ElectricityManager+PulseGroup)
IL_01C6: ldloc.s 11 (System.Int32)
IL_01C8: conv.u1
IL_01C9: stfld System.Byte PulseGroup::m_x
IL_01CE: ldloca.s 13 (ElectricityManager+PulseGroup)
IL_01D0: ldloc.s 9 (System.Int32)
IL_01D2: conv.u1
IL_01D3: stfld System.Byte PulseGroup::m_z
IL_01D8: ldloca.s 14 (ElectricityManager+PulseUnit)
IL_01DA: ldarg.0
IL_01DB: ldfld System.Int32 ElectricityManager::m_pulseGroupCount
IL_01E0: conv.u2
IL_01E1: stfld System.UInt16 PulseUnit::m_group
IL_01E6: ldloca.s 14 (ElectricityManager+PulseUnit)
IL_01E8: ldc.i4.0
IL_01E9: stfld System.UInt16 PulseUnit::m_node
IL_01EE: ldloca.s 14 (ElectricityManager+PulseUnit)
IL_01F0: ldloc.s 11 (System.Int32)
IL_01F2: conv.u1
IL_01F3: stfld System.Byte PulseUnit::m_x
IL_01F8: ldloca.s 14 (ElectricityManager+PulseUnit)
IL_01FA: ldloc.s 9 (System.Int32)
IL_01FC: conv.u1
IL_01FD: stfld System.Byte PulseUnit::m_z
IL_0202: ldloca.s 12 (ElectricityManager+Cell)
IL_0204: ldarg.0
IL_0205: ldfld System.Int32 ElectricityManager::m_pulseGroupCount
IL_020A: conv.u2
IL_020B: stfld System.UInt16 Cell::m_pulseGroup
IL_0210: ldarg.0
IL_0211: ldfld PulseGroup[] ElectricityManager::m_pulseGroups
IL_0216: ldarg.0
IL_0217: dup
IL_0218: ldfld System.Int32 ElectricityManager::m_pulseGroupCount
IL_021D: dup
IL_021E: stloc.s 15 (System.Int32)
IL_0220: ldc.i4.1
IL_0221: add
IL_0222: stfld System.Int32 ElectricityManager::m_pulseGroupCount
IL_0227: ldloc.s 15 (System.Int32)
IL_0229: ldelema ElectricityManager+PulseGroup
IL_022E: ldloc.s 13 (ElectricityManager+PulseGroup)
IL_0230: stobj ElectricityManager+PulseGroup
IL_0235: ldarg.0
IL_0236: ldfld PulseUnit[] ElectricityManager::m_pulseUnits
IL_023B: ldarg.0
IL_023C: ldfld System.Int32 ElectricityManager::m_pulseUnitEnd
IL_0241: ldelema ElectricityManager+PulseUnit
IL_0246: ldloc.s 14 (ElectricityManager+PulseUnit)
IL_0248: stobj ElectricityManager+PulseUnit
IL_024D: ldarg.0
IL_024E: dup
IL_024F: ldfld System.Int32 ElectricityManager::m_pulseUnitEnd
IL_0254: ldc.i4.1
IL_0255: add
IL_0256: dup
IL_0257: stloc.s 15 (System.Int32)
IL_0259: stfld System.Int32 ElectricityManager::m_pulseUnitEnd
IL_025E: ldloc.s 15 (System.Int32)
IL_0260: ldarg.0
IL_0261: ldfld PulseUnit[] ElectricityManager::m_pulseUnits
IL_0266: ldlen
IL_0267: conv.i4
IL_0268: bne.un => Label15
IL_026D: ldarg.0
IL_026E: ldc.i4.0
IL_026F: stfld System.Int32 ElectricityManager::m_pulseUnitEnd
IL_0274: Label15
IL_0274: br => Label16
IL_0279: Label14
IL_0279: ldloca.s 12 (ElectricityManager+Cell)
IL_027B: ldc.i4 65535
IL_0280: stfld System.UInt16 Cell::m_pulseGroup
IL_0285: Label16
IL_0285: ldloca.s 12 (ElectricityManager+Cell)
IL_0287: ldc.i4.0
IL_0288: stfld System.Int16 Cell::m_currentCharge
IL_028D: ldarg.0
IL_028E: dup
IL_028F: ldfld System.Int32 ElectricityManager::m_conductiveCells
IL_0294: ldc.i4.1
IL_0295: add
IL_0296: stfld System.Int32 ElectricityManager::m_conductiveCells
IL_029B: br => Label17
IL_02A0: Label13
IL_02A0: ldloca.s 12 (ElectricityManager+Cell)
IL_02A2: ldc.i4 65535
IL_02A7: stfld System.UInt16 Cell::m_pulseGroup
IL_02AC: ldloca.s 12 (ElectricityManager+Cell)
IL_02AE: ldfld System.Byte Cell::m_conductivity
IL_02B3: ldc.i4.s 64
IL_02B5: blt => Label18
IL_02BA: ldarg.0
IL_02BB: dup
IL_02BC: ldfld System.Int32 ElectricityManager::m_conductiveCells
IL_02C1: ldc.i4.1
IL_02C2: add
IL_02C3: stfld System.Int32 ElectricityManager::m_conductiveCells
IL_02C8: Label17
IL_02C8: Label18
IL_02C8: ldloca.s 12 (ElectricityManager+Cell)
IL_02CA: ldfld System.Boolean Cell::m_tmpElectrified
IL_02CF: ldloca.s 12 (ElectricityManager+Cell)
IL_02D1: ldfld System.Boolean Cell::m_electrified
IL_02D6: beq => Label19
IL_02DB: ldloca.s 12 (ElectricityManager+Cell)
IL_02DD: ldloca.s 12 (ElectricityManager+Cell)
IL_02DF: ldfld System.Boolean Cell::m_tmpElectrified
IL_02E4: stfld System.Boolean Cell::m_electrified
IL_02E9: Label19
IL_02E9: ldloca.s 12 (ElectricityManager+Cell)
IL_02EB: ldloca.s 12 (ElectricityManager+Cell)
IL_02ED: ldfld System.UInt16 Cell::m_pulseGroup
IL_02F2: ldc.i4 65535
IL_02F7: ceq
IL_02F9: ldc.i4.0
IL_02FA: ceq
IL_02FC: stfld System.Boolean Cell::m_tmpElectrified
IL_0301: ldarg.0
IL_0302: ldfld Cell[] ElectricityManager::m_electricityGrid
IL_0307: ldloc.s 10 (System.Int32)
IL_0309: ldelema ElectricityManager+Cell
IL_030E: ldloc.s 12 (ElectricityManager+Cell)
IL_0310: stobj ElectricityManager+Cell
IL_0315: ldloc.s 10 (System.Int32)
IL_0317: ldc.i4.1
IL_0318: add
IL_0319: stloc.s 10 (System.Int32)
IL_031B: ldloc.s 11 (System.Int32)
IL_031D: ldc.i4.1
IL_031E: add
IL_031F: stloc.s 11 (System.Int32)
IL_0321: Label12
IL_0321: ldloc.s 11 (System.Int32)
IL_0323: ldc.i4 256
IL_0328: blt => Label20
IL_032D: ldloc.s 9 (System.Int32)
IL_032F: ldc.i4.1
IL_0330: add
IL_0331: stloc.s 9 (System.Int32)
IL_0333: Label11
IL_0333: ldloc.s 9 (System.Int32)
IL_0335: ldloc.s 8 (System.Int32)
IL_0337: ble => Label21
IL_033C: br => Label22
IL_0341: Label2
IL_0341: ldloc.1
IL_0342: ldc.i4.s 127
IL_0344: sub
IL_0345: ldarg.0
IL_0346: ldfld System.Int32 ElectricityManager::m_conductiveCells
IL_034B: mul
IL_034C: ldc.i4.7
IL_034D: shr
IL_034E: stloc.s 16 (System.Int32)
IL_0350: ldloc.1
IL_0351: ldc.i4 255
IL_0356: bne.un => Label23
IL_035B: ldc.i4 1000000000
IL_0360: stloc.s 16 (System.Int32)
IL_0362: Label23
IL_0362: br => Label24
IL_0367: Label54
IL_0367: ldarg.0
IL_0368: ldc.i4.0
IL_0369: stfld System.Boolean ElectricityManager::m_canContinue
IL_036E: ldarg.0
IL_036F: ldfld System.Int32 ElectricityManager::m_pulseUnitEnd
IL_0374: stloc.s 17 (System.Int32)
IL_0376: br => Label25
IL_037B: Label52
IL_037B: ldarg.0
IL_037C: ldfld PulseUnit[] ElectricityManager::m_pulseUnits
IL_0381: ldarg.0
IL_0382: ldfld System.Int32 ElectricityManager::m_pulseUnitStart
IL_0387: ldelema ElectricityManager+PulseUnit
IL_038C: ldobj ElectricityManager+PulseUnit
IL_0391: stloc.s 18 (ElectricityManager+PulseUnit)
IL_0393: ldarg.0
IL_0394: dup
IL_0395: ldfld System.Int32 ElectricityManager::m_pulseUnitStart
IL_039A: ldc.i4.1
IL_039B: add
IL_039C: dup
IL_039D: stloc.s 15 (System.Int32)
IL_039F: stfld System.Int32 ElectricityManager::m_pulseUnitStart
IL_03A4: ldloc.s 15 (System.Int32)
IL_03A6: ldarg.0
IL_03A7: ldfld PulseUnit[] ElectricityManager::m_pulseUnits
IL_03AC: ldlen
IL_03AD: conv.i4
IL_03AE: bne.un => Label26
IL_03B3: ldarg.0
IL_03B4: ldc.i4.0
IL_03B5: stfld System.Int32 ElectricityManager::m_pulseUnitStart
IL_03BA: Label26
IL_03BA: ldloca.s 18 (ElectricityManager+PulseUnit)
IL_03BC: ldarg.0
IL_03BD: ldloca.s 18 (ElectricityManager+PulseUnit)
IL_03BF: ldfld System.UInt16 PulseUnit::m_group
IL_03C4: call System.UInt16 ElectricityManager::GetRootGroup(System.UInt16
group)
IL_03C9: stfld System.UInt16 PulseUnit::m_group
IL_03CE: ldarg.0
IL_03CF: ldfld PulseGroup[] ElectricityManager::m_pulseGroups
IL_03D4: ldloca.s 18 (ElectricityManager+PulseUnit)
IL_03D6: ldfld System.UInt16 PulseUnit::m_group
IL_03DB: ldelema ElectricityManager+PulseGroup
IL_03E0: ldfld System.UInt32 PulseGroup::m_curCharge
IL_03E5: stloc.s 19 (System.UInt32)
IL_03E7: ldloca.s 18 (ElectricityManager+PulseUnit)
IL_03E9: ldfld System.UInt16 PulseUnit::m_node
IL_03EE: brtrue => Label27
IL_03F3: ldloca.s 18 (ElectricityManager+PulseUnit)
IL_03F5: ldfld System.Byte PulseUnit::m_z
IL_03FA: ldc.i4 256
IL_03FF: mul
IL_0400: ldloca.s 18 (ElectricityManager+PulseUnit)
IL_0402: ldfld System.Byte PulseUnit::m_x
IL_0407: add
IL_0408: stloc.s 20 (System.Int32)
IL_040A: ldarg.0
IL_040B: ldfld Cell[] ElectricityManager::m_electricityGrid
IL_0410: ldloc.s 20 (System.Int32)
IL_0412: ldelema ElectricityManager+Cell
IL_0417: ldobj ElectricityManager+Cell
IL_041C: stloc.s 21 (ElectricityManager+Cell)
IL_041E: ldloca.s 21 (ElectricityManager+Cell)
IL_0420: ldfld System.Byte Cell::m_conductivity
IL_0425: brfalse => Label28
IL_042A: ldloca.s 21 (ElectricityManager+Cell)
IL_042C: ldfld System.Boolean Cell::m_tmpElectrified
IL_0431: brtrue => Label29
IL_0436: ldloc.s 19 (System.UInt32)
IL_0438: brfalse => Label30
IL_043D: ldloca.s 21 (ElectricityManager+Cell)
IL_043F: ldfld System.Int16 Cell::m_currentCharge
IL_0444: neg
IL_0445: ldc.i4.0
IL_0446: ldloc.s 19 (System.UInt32)
IL_0448: call static System.Int32 UnityEngine.Mathf::Clamp(System.Int32
value, System.Int32 min, System.Int32 max)
IL_044D: stloc.s 22 (System.Int32)
IL_044F: ldloc.s 19 (System.UInt32)
IL_0451: ldloc.s 22 (System.Int32)
IL_0453: sub
IL_0454: stloc.s 19 (System.UInt32)
IL_0456: ldloca.s 21 (ElectricityManager+Cell)
IL_0458: dup
IL_0459: ldfld System.Int16 Cell::m_currentCharge
IL_045E: ldloc.s 22 (System.Int32)
IL_0460: conv.i2
IL_0461: add
IL_0462: conv.i2
IL_0463: stfld System.Int16 Cell::m_currentCharge
IL_0468: ldloca.s 21 (ElectricityManager+Cell)
IL_046A: ldfld System.Int16 Cell::m_currentCharge
IL_046F: brtrue => Label31
IL_0474: ldloca.s 21 (ElectricityManager+Cell)
IL_0476: ldc.i4.1
IL_0477: stfld System.Boolean Cell::m_tmpElectrified
IL_047C: Label31
IL_047C: ldarg.0
IL_047D: ldfld Cell[] ElectricityManager::m_electricityGrid
IL_0482: ldloc.s 20 (System.Int32)
IL_0484: ldelema ElectricityManager+Cell
IL_0489: ldloc.s 21 (ElectricityManager+Cell)
IL_048B: stobj ElectricityManager+Cell
IL_0490: ldarg.0
IL_0491: ldfld PulseGroup[] ElectricityManager::m_pulseGroups
IL_0496: ldloca.s 18 (ElectricityManager+PulseUnit)
IL_0498: ldfld System.UInt16 PulseUnit::m_group
IL_049D: ldelema ElectricityManager+PulseGroup
IL_04A2: ldloc.s 19 (System.UInt32)
IL_04A4: stfld System.UInt32 PulseGroup::m_curCharge
IL_04A9: Label28
IL_04A9: Label29
IL_04A9: Label30
IL_04A9: ldloc.s 19 (System.UInt32)
IL_04AB: brfalse => Label32
IL_04B0: ldloca.s 21 (ElectricityManager+Cell)
IL_04B2: ldfld System.Byte Cell::m_conductivity
IL_04B7: ldc.i4.s 64
IL_04B9: blt => Label33
IL_04BE: ldc.i4.1
IL_04BF: br => Label34
IL_04C4: Label33
IL_04C4: ldc.i4.s 64
IL_04C6: Label34
IL_04C6: stloc.s 23 (System.Int32)
IL_04C8: ldarg.0
IL_04C9: dup
IL_04CA: ldfld System.Int32 ElectricityManager::m_processedCells
IL_04CF: ldc.i4.1
IL_04D0: add
IL_04D1: stfld System.Int32 ElectricityManager::m_processedCells
IL_04D6: ldloca.s 18 (ElectricityManager+PulseUnit)
IL_04D8: ldfld System.Byte PulseUnit::m_z
IL_04DD: ldc.i4.0
IL_04DE: ble => Label35
IL_04E3: ldarg.0
IL_04E4: ldarg.0
IL_04E5: ldfld Cell[] ElectricityManager::m_electricityGrid
IL_04EA: ldloc.s 20 (System.Int32)
IL_04EC: ldc.i4 256
IL_04F1: sub
IL_04F2: ldelema ElectricityManager+Cell
IL_04F7: ldloca.s 18 (ElectricityManager+PulseUnit)
IL_04F9: ldfld System.UInt16 PulseUnit::m_group
IL_04FE: ldloca.s 18 (ElectricityManager+PulseUnit)
IL_0500: ldfld System.Byte PulseUnit::m_x
IL_0505: ldloca.s 18 (ElectricityManager+PulseUnit)
IL_0507: ldfld System.Byte PulseUnit::m_z
IL_050C: ldc.i4.1
IL_050D: sub
IL_050E: ldloc.s 23 (System.Int32)
IL_0510: call System.Void ElectricityManager::ConductToCell(Cell& cell,
System.UInt16 group, System.Int32 x, System.Int32 z, System.Int32 limit)
IL_0515: Label35
IL_0515: ldloca.s 18 (ElectricityManager+PulseUnit)
IL_0517: ldfld System.Byte PulseUnit::m_x
IL_051C: ldc.i4.0
IL_051D: ble => Label36
IL_0522: ldarg.0
IL_0523: ldarg.0
IL_0524: ldfld Cell[] ElectricityManager::m_electricityGrid
IL_0529: ldloc.s 20 (System.Int32)
IL_052B: ldc.i4.1
IL_052C: sub
IL_052D: ldelema ElectricityManager+Cell
IL_0532: ldloca.s 18 (ElectricityManager+PulseUnit)
IL_0534: ldfld System.UInt16 PulseUnit::m_group
IL_0539: ldloca.s 18 (ElectricityManager+PulseUnit)
IL_053B: ldfld System.Byte PulseUnit::m_x
IL_0540: ldc.i4.1
IL_0541: sub
IL_0542: ldloca.s 18 (ElectricityManager+PulseUnit)
IL_0544: ldfld System.Byte PulseUnit::m_z
IL_0549: ldloc.s 23 (System.Int32)
IL_054B: call System.Void ElectricityManager::ConductToCell(Cell& cell,
System.UInt16 group, System.Int32 x, System.Int32 z, System.Int32 limit)
IL_0550: Label36
IL_0550: ldloca.s 18 (ElectricityManager+PulseUnit)
IL_0552: ldfld System.Byte PulseUnit::m_z
IL_0557: ldc.i4 255
IL_055C: bge => Label37
IL_0561: ldarg.0
IL_0562: ldarg.0
IL_0563: ldfld Cell[] ElectricityManager::m_electricityGrid
IL_0568: ldloc.s 20 (System.Int32)
IL_056A: ldc.i4 256
IL_056F: add
IL_0570: ldelema ElectricityManager+Cell
IL_0575: ldloca.s 18 (ElectricityManager+PulseUnit)
IL_0577: ldfld System.UInt16 PulseUnit::m_group
IL_057C: ldloca.s 18 (ElectricityManager+PulseUnit)
IL_057E: ldfld System.Byte PulseUnit::m_x
IL_0583: ldloca.s 18 (ElectricityManager+PulseUnit)
IL_0585: ldfld System.Byte PulseUnit::m_z
IL_058A: ldc.i4.1
IL_058B: add
IL_058C: ldloc.s 23 (System.Int32)
IL_058E: call System.Void ElectricityManager::ConductToCell(Cell& cell,
System.UInt16 group, System.Int32 x, System.Int32 z, System.Int32 limit)
IL_0593: Label37
IL_0593: ldloca.s 18 (ElectricityManager+PulseUnit)
IL_0595: ldfld System.Byte PulseUnit::m_x
IL_059A: ldc.i4 255
IL_059F: bge => Label38
IL_05A4: ldarg.0
IL_05A5: ldarg.0
IL_05A6: ldfld Cell[] ElectricityManager::m_electricityGrid
IL_05AB: ldloc.s 20 (System.Int32)
IL_05AD: ldc.i4.1
IL_05AE: add
IL_05AF: ldelema ElectricityManager+Cell
IL_05B4: ldloca.s 18 (ElectricityManager+PulseUnit)
IL_05B6: ldfld System.UInt16 PulseUnit::m_group
IL_05BB: ldloca.s 18 (ElectricityManager+PulseUnit)
IL_05BD: ldfld System.Byte PulseUnit::m_x
IL_05C2: ldc.i4.1
IL_05C3: add
IL_05C4: ldloca.s 18 (ElectricityManager+PulseUnit)
IL_05C6: ldfld System.Byte PulseUnit::m_z
IL_05CB: ldloc.s 23 (System.Int32)
IL_05CD: call System.Void ElectricityManager::ConductToCell(Cell& cell,
System.UInt16 group, System.Int32 x, System.Int32 z, System.Int32 limit)
IL_05D2: Label38
IL_05D2: ldarg.0
IL_05D3: ldloca.s 18 (ElectricityManager+PulseUnit)
IL_05D5: ldfld System.UInt16 PulseUnit::m_group
IL_05DA: ldloca.s 18 (ElectricityManager+PulseUnit)
IL_05DC: ldfld System.Byte PulseUnit::m_x
IL_05E1: ldloca.s 18 (ElectricityManager+PulseUnit)
IL_05E3: ldfld System.Byte PulseUnit::m_z
IL_05E8: call System.Void ElectricityManager::ConductToNodes(System.UInt16
group, System.Int32 cellX, System.Int32 cellZ)
IL_05ED: br => Label39
IL_05F2: Label32
IL_05F2: ldarg.0
IL_05F3: ldfld PulseUnit[] ElectricityManager::m_pulseUnits
IL_05F8: ldarg.0
IL_05F9: ldfld System.Int32 ElectricityManager::m_pulseUnitEnd
IL_05FE: ldelema ElectricityManager+PulseUnit
IL_0603: ldloc.s 18 (ElectricityManager+PulseUnit)
IL_0605: stobj ElectricityManager+PulseUnit
IL_060A: ldarg.0
IL_060B: dup
IL_060C: ldfld System.Int32 ElectricityManager::m_pulseUnitEnd
IL_0611: ldc.i4.1
IL_0612: add
IL_0613: dup
IL_0614: stloc.s 15 (System.Int32)
IL_0616: stfld System.Int32 ElectricityManager::m_pulseUnitEnd
IL_061B: ldloc.s 15 (System.Int32)
IL_061D: ldarg.0
IL_061E: ldfld PulseUnit[] ElectricityManager::m_pulseUnits
IL_0623: ldlen
IL_0624: conv.i4
IL_0625: bne.un => Label40
IL_062A: ldarg.0
IL_062B: ldc.i4.0
IL_062C: stfld System.Int32 ElectricityManager::m_pulseUnitEnd
IL_0631: Label39
IL_0631: Label40
IL_0631: br => Label41
IL_0636: Label27
IL_0636: ldloc.s 19 (System.UInt32)
IL_0638: brfalse => Label42
IL_063D: ldarg.0
IL_063E: dup
IL_063F: ldfld System.Int32 ElectricityManager::m_processedCells
IL_0644: ldc.i4.1
IL_0645: add
IL_0646: stfld System.Int32 ElectricityManager::m_processedCells
IL_064B: call static NetManager
ColossalFramework.Singleton`1<NetManager>::get_instance()
IL_0650: ldfld Array16`1<NetNode> NetManager::m_nodes
IL_0655: ldfld NetNode[] Array16`1<NetNode>::m_buffer
IL_065A: ldloca.s 18 (ElectricityManager+PulseUnit)
IL_065C: ldfld System.UInt16 PulseUnit::m_node
IL_0661: ldelema NetNode
IL_0666: ldobj NetNode
IL_066B: stloc.s 24 (NetNode)
IL_066D: ldloca.s 24 (NetNode)
IL_066F: ldfld Flags NetNode::m_flags
IL_0674: brfalse => Label43
IL_0679: ldloca.s 24 (NetNode)
IL_067B: ldfld System.UInt32 NetNode::m_buildIndex
IL_0680: ldloc.0
IL_0681: ldc.i4.s -128
IL_0683: and
IL_0684: bge.un => Label44
IL_0689: ldarg.0
IL_068A: ldloca.s 18 (ElectricityManager+PulseUnit)
IL_068C: ldfld System.UInt16 PulseUnit::m_group
IL_0691: ldloca.s 24 (NetNode)
IL_0693: ldflda UnityEngine.Vector3 NetNode::m_position
IL_0698: ldfld System.Single UnityEngine.Vector3::x
IL_069D: ldloca.s 24 (NetNode)
IL_069F: ldflda UnityEngine.Vector3 NetNode::m_position
IL_06A4: ldfld System.Single UnityEngine.Vector3::z
IL_06A9: call System.Void ElectricityManager::ConductToCells(System.UInt16
group, System.Single worldX, System.Single worldZ)
IL_06AE: ldc.i4.0
IL_06AF: stloc.s 25 (System.Int32)
IL_06B1: br => Label45
IL_06B6: Label49
IL_06B6: ldloca.s 24 (NetNode)
IL_06B8: ldloc.s 25 (System.Int32)
IL_06BA: call System.UInt16 NetNode::GetSegment(System.Int32 index)
IL_06BF: stloc.s 26 (System.UInt16)
IL_06C1: ldloc.s 26 (System.UInt16)
IL_06C3: brfalse => Label46
IL_06C8: call static NetManager
ColossalFramework.Singleton`1<NetManager>::get_instance()
IL_06CD: ldfld Array16`1<NetSegment> NetManager::m_segments
IL_06D2: ldfld NetSegment[] Array16`1<NetSegment>::m_buffer
IL_06D7: ldloc.s 26 (System.UInt16)
IL_06D9: ldelema NetSegment
IL_06DE: ldfld System.UInt16 NetSegment::m_startNode
IL_06E3: stloc.s 27 (System.UInt16)
IL_06E5: call static NetManager
ColossalFramework.Singleton`1<NetManager>::get_instance()
IL_06EA: ldfld Array16`1<NetSegment> NetManager::m_segments
IL_06EF: ldfld NetSegment[] Array16`1<NetSegment>::m_buffer
IL_06F4: ldloc.s 26 (System.UInt16)
IL_06F6: ldelema NetSegment
IL_06FB: ldfld System.UInt16 NetSegment::m_endNode
IL_0700: stloc.s 28 (System.UInt16)
IL_0702: ldloc.s 27 (System.UInt16)
IL_0704: ldloca.s 18 (ElectricityManager+PulseUnit)
IL_0706: ldfld System.UInt16 PulseUnit::m_node
IL_070B: bne.un => Label47
IL_0710: ldloc.s 28 (System.UInt16)
IL_0712: br => Label48
IL_0717: Label47
IL_0717: ldloc.s 27 (System.UInt16)
IL_0719: Label48
IL_0719: stloc.s 29 (System.UInt16)
IL_071B: ldarg.0
IL_071C: ldloc.s 29 (System.UInt16)
IL_071E: call static NetManager
ColossalFramework.Singleton`1<NetManager>::get_instance()
IL_0723: ldfld Array16`1<NetNode> NetManager::m_nodes
IL_0728: ldfld NetNode[] Array16`1<NetNode>::m_buffer
IL_072D: ldloc.s 29 (System.UInt16)
IL_072F: ldelema NetNode
IL_0734: ldloca.s 18 (ElectricityManager+PulseUnit)
IL_0736: ldfld System.UInt16 PulseUnit::m_group
IL_073B: ldc.r4 -100000
IL_0740: ldc.r4 -100000
IL_0745: ldc.r4 100000
IL_074A: ldc.r4 100000
IL_074F: call System.Void ElectricityManager::ConductToNode(System.UInt16
nodeIndex, NetNode& node, System.UInt16 group, System.Single minX, System.Single
minZ, System.Single maxX, System.Single maxZ)
IL_0754: Label46
IL_0754: ldloc.s 25 (System.Int32)
IL_0756: ldc.i4.1
IL_0757: add
IL_0758: stloc.s 25 (System.Int32)
IL_075A: Label45
IL_075A: ldloc.s 25 (System.Int32)
IL_075C: ldc.i4.8
IL_075D: blt => Label49
IL_0762: Label43
IL_0762: Label44
IL_0762: br => Label50
IL_0767: Label42
IL_0767: ldarg.0
IL_0768: ldfld PulseUnit[] ElectricityManager::m_pulseUnits
IL_076D: ldarg.0
IL_076E: ldfld System.Int32 ElectricityManager::m_pulseUnitEnd
IL_0773: ldelema ElectricityManager+PulseUnit
IL_0778: ldloc.s 18 (ElectricityManager+PulseUnit)
IL_077A: stobj ElectricityManager+PulseUnit
IL_077F: ldarg.0
IL_0780: dup
IL_0781: ldfld System.Int32 ElectricityManager::m_pulseUnitEnd
IL_0786: ldc.i4.1
IL_0787: add
IL_0788: dup
IL_0789: stloc.s 15 (System.Int32)
IL_078B: stfld System.Int32 ElectricityManager::m_pulseUnitEnd
IL_0790: ldloc.s 15 (System.Int32)
IL_0792: ldarg.0
IL_0793: ldfld PulseUnit[] ElectricityManager::m_pulseUnits
IL_0798: ldlen
IL_0799: conv.i4
IL_079A: bne.un => Label51
IL_079F: ldarg.0
IL_07A0: ldc.i4.0
IL_07A1: stfld System.Int32 ElectricityManager::m_pulseUnitEnd
IL_07A6: Label25
IL_07A6: Label41
IL_07A6: Label50
IL_07A6: Label51
IL_07A6: ldarg.0
IL_07A7: ldfld System.Int32 ElectricityManager::m_pulseUnitStart
IL_07AC: ldloc.s 17 (System.Int32)
IL_07AE: bne.un => Label52
IL_07B3: Label24
IL_07B3: ldarg.0
IL_07B4: ldfld System.Boolean ElectricityManager::m_canContinue
IL_07B9: brfalse => Label53
IL_07BE: ldarg.0
IL_07BF: ldfld System.Int32 ElectricityManager::m_processedCells
IL_07C4: ldloc.s 16 (System.Int32)
IL_07C6: blt => Label54
IL_07CB: Label53
IL_07CB: ldloc.1
IL_07CC: ldc.i4 255
IL_07D1: bne.un => Label55
IL_07D6: ldc.i4.0
IL_07D7: stloc.s 30 (System.Int32)
IL_07D9: br => Label56
IL_07DE: Label58
IL_07DE: ldarg.0
IL_07DF: ldfld PulseGroup[] ElectricityManager::m_pulseGroups
IL_07E4: ldloc.s 30 (System.Int32)
IL_07E6: ldelema ElectricityManager+PulseGroup
IL_07EB: ldobj ElectricityManager+PulseGroup
IL_07F0: stloc.s 31 (ElectricityManager+PulseGroup)
IL_07F2: ldloca.s 31 (ElectricityManager+PulseGroup)
IL_07F4: ldfld System.UInt16 PulseGroup::m_mergeIndex
IL_07F9: ldc.i4 65535
IL_07FE: beq => Label57
IL_0803: ldarg.0
IL_0804: ldfld PulseGroup[] ElectricityManager::m_pulseGroups
IL_0809: ldloca.s 31 (ElectricityManager+PulseGroup)
IL_080B: ldfld System.UInt16 PulseGroup::m_mergeIndex
IL_0810: ldelema ElectricityManager+PulseGroup
IL_0815: ldobj ElectricityManager+PulseGroup
IL_081A: stloc.s 32 (ElectricityManager+PulseGroup)
IL_081C: ldloca.s 31 (ElectricityManager+PulseGroup)
IL_081E: ldloca.s 32 (ElectricityManager+PulseGroup)
IL_0820: ldfld System.UInt32 PulseGroup::m_curCharge
IL_0825: conv.u8
IL_0826: ldloca.s 31 (ElectricityManager+PulseGroup)
IL_0828: ldfld System.UInt32 PulseGroup::m_origCharge
IL_082D: conv.u8
IL_082E: mul
IL_082F: ldloca.s 32 (ElectricityManager+PulseGroup)
IL_0831: ldfld System.UInt32 PulseGroup::m_origCharge
IL_0836: conv.u8
IL_0837: div.un
IL_0838: conv.u4
IL_0839: stfld System.UInt32 PulseGroup::m_curCharge
IL_083E: ldloca.s 32 (ElectricityManager+PulseGroup)
IL_0840: dup
IL_0841: ldfld System.UInt32 PulseGroup::m_curCharge
IL_0846: ldloca.s 31 (ElectricityManager+PulseGroup)
IL_0848: ldfld System.UInt32 PulseGroup::m_curCharge
IL_084D: sub
IL_084E: stfld System.UInt32 PulseGroup::m_curCharge
IL_0853: ldloca.s 32 (ElectricityManager+PulseGroup)
IL_0855: dup
IL_0856: ldfld System.UInt32 PulseGroup::m_origCharge
IL_085B: ldloca.s 31 (ElectricityManager+PulseGroup)
IL_085D: ldfld System.UInt32 PulseGroup::m_origCharge
IL_0862: sub
IL_0863: stfld System.UInt32 PulseGroup::m_origCharge
IL_0868: ldarg.0
IL_0869: ldfld PulseGroup[] ElectricityManager::m_pulseGroups
IL_086E: ldloca.s 31 (ElectricityManager+PulseGroup)
IL_0870: ldfld System.UInt16 PulseGroup::m_mergeIndex
IL_0875: ldelema ElectricityManager+PulseGroup
IL_087A: ldloc.s 32 (ElectricityManager+PulseGroup)
IL_087C: stobj ElectricityManager+PulseGroup
IL_0881: ldarg.0
IL_0882: ldfld PulseGroup[] ElectricityManager::m_pulseGroups
IL_0887: ldloc.s 30 (System.Int32)
IL_0889: ldelema ElectricityManager+PulseGroup
IL_088E: ldloc.s 31 (ElectricityManager+PulseGroup)
IL_0890: stobj ElectricityManager+PulseGroup
IL_0895: Label57
IL_0895: ldloc.s 30 (System.Int32)
IL_0897: ldc.i4.1
IL_0898: add
IL_0899: stloc.s 30 (System.Int32)
IL_089B: Label56
IL_089B: ldloc.s 30 (System.Int32)
IL_089D: ldarg.0
IL_089E: ldfld System.Int32 ElectricityManager::m_pulseGroupCount
IL_08A3: blt => Label58
IL_08A8: ldc.i4.0
IL_08A9: stloc.s 33 (System.Int32)
IL_08AB: br => Label59
IL_08B0: Label62
IL_08B0: ldarg.0
IL_08B1: ldfld PulseGroup[] ElectricityManager::m_pulseGroups
IL_08B6: ldloc.s 33 (System.Int32)
IL_08B8: ldelema ElectricityManager+PulseGroup
IL_08BD: ldobj ElectricityManager+PulseGroup
IL_08C2: stloc.s 34 (ElectricityManager+PulseGroup)
IL_08C4: ldloca.s 34 (ElectricityManager+PulseGroup)
IL_08C6: ldfld System.UInt32 PulseGroup::m_curCharge
IL_08CB: brfalse => Label60
IL_08D0: ldloca.s 34 (ElectricityManager+PulseGroup)
IL_08D2: ldfld System.Byte PulseGroup::m_z
IL_08D7: ldc.i4 256
IL_08DC: mul
IL_08DD: ldloca.s 34 (ElectricityManager+PulseGroup)
IL_08DF: ldfld System.Byte PulseGroup::m_x
IL_08E4: add
IL_08E5: stloc.s 35 (System.Int32)
IL_08E7: ldarg.0
IL_08E8: ldfld Cell[] ElectricityManager::m_electricityGrid
IL_08ED: ldloc.s 35 (System.Int32)
IL_08EF: ldelema ElectricityManager+Cell
IL_08F4: ldobj ElectricityManager+Cell
IL_08F9: stloc.s 36 (ElectricityManager+Cell)
IL_08FB: ldloca.s 36 (ElectricityManager+Cell)
IL_08FD: ldfld System.Byte Cell::m_conductivity
IL_0902: brfalse => Label61
IL_0907: ldloca.s 36 (ElectricityManager+Cell)
IL_0909: dup
IL_090A: ldfld System.UInt16 Cell::m_extraCharge
IL_090F: ldloca.s 34 (ElectricityManager+PulseGroup)
IL_0911: ldfld System.UInt32 PulseGroup::m_curCharge
IL_0916: ldc.i4 32767
IL_091B: ldloca.s 36 (ElectricityManager+Cell)
IL_091D: ldfld System.UInt16 Cell::m_extraCharge
IL_0922: sub
IL_0923: call static System.Int32 UnityEngine.Mathf::Min(System.Int32 a,
System.Int32 b)
IL_0928: conv.u2
IL_0929: add
IL_092A: conv.u2
IL_092B: stfld System.UInt16 Cell::m_extraCharge
IL_0930: Label61
IL_0930: ldarg.0
IL_0931: ldfld Cell[] ElectricityManager::m_electricityGrid
IL_0936: ldloc.s 35 (System.Int32)
IL_0938: ldelema ElectricityManager+Cell
IL_093D: ldloc.s 36 (ElectricityManager+Cell)
IL_093F: stobj ElectricityManager+Cell
IL_0944: Label60
IL_0944: ldloc.s 33 (System.Int32)
IL_0946: ldc.i4.1
IL_0947: add
IL_0948: stloc.s 33 (System.Int32)
IL_094A: Label59
IL_094A: ldloc.s 33 (System.Int32)
IL_094C: ldarg.0
IL_094D: ldfld System.Int32 ElectricityManager::m_pulseGroupCount
IL_0952: blt => Label62
IL_0957: // end original
IL_0957: Label0
IL_0957: Label1
IL_0957: Label22
IL_0957: Label55
IL_0957: ret
DONE

### Patch: System.Void ElectricityManager::ConductToNode(System.UInt16 nodeIndex,


NetNode& node, System.UInt16 group, System.Single minX, System.Single minZ,
System.Single maxX, System.Single maxZ)
### Replacement: static System.Void
ElectricityManager::ElectricityManager.ConductToNode_Patch0(ElectricityManager
this, System.UInt16 nodeIndex, NetNode& node, System.UInt16 group, System.Single
minX, System.Single minZ, System.Single maxX, System.Single maxZ)
IL_0000: Local var 0: NetInfo
IL_0000: Local var 1: ElectricityManager/PulseUnit
IL_0000: Local var 2: System.Int32
IL_0000: Local var 3: System.UInt16
IL_0000: // start original
IL_0000: ldarg.2
IL_0001: ldflda UnityEngine.Vector3 NetNode::m_position
IL_0006: ldfld System.Single UnityEngine.Vector3::x
IL_000B: ldarg.s 4
IL_000D: blt.un => Label0
IL_0012: ldarg.2
IL_0013: ldflda UnityEngine.Vector3 NetNode::m_position
IL_0018: ldfld System.Single UnityEngine.Vector3::z
IL_001D: ldarg.s 5
IL_001F: blt.un => Label1
IL_0024: ldarg.2
IL_0025: ldflda UnityEngine.Vector3 NetNode::m_position
IL_002A: ldfld System.Single UnityEngine.Vector3::x
IL_002F: ldarg.s 6
IL_0031: bgt.un => Label2
IL_0036: ldarg.2
IL_0037: ldflda UnityEngine.Vector3 NetNode::m_position
IL_003C: ldfld System.Single UnityEngine.Vector3::z
IL_0041: ldarg.s 7
IL_0043: bgt.un => Label3
IL_0048: ldarg.2
IL_0049: call NetInfo NetNode::get_Info()
IL_004E: stloc.0
IL_004F: ldloc.0
IL_0050: ldfld ItemClass NetInfo::m_class
IL_0055: ldfld Service ItemClass::m_service
IL_005A: ldc.i4.s 10
IL_005C: beq => Label4
IL_0061: ldarg.2
IL_0062: call NetInfo NetNode::get_Info()
IL_0067: ldfld NetAI NetInfo::m_netAI
IL_006C: isinst ConcourseAI
IL_0071: brfalse => Label5
IL_0076: Label4
IL_0076: ldarg.0
IL_0077: ldfld System.UInt16[] ElectricityManager::m_nodeGroups
IL_007C: ldarg.1
IL_007D: ldelem.u2
IL_007E: ldc.i4 65535
IL_0083: bne.un => Label6
IL_0088: ldloca.s 1 (ElectricityManager+PulseUnit)
IL_008A: ldarg.3
IL_008B: stfld System.UInt16 PulseUnit::m_group
IL_0090: ldloca.s 1 (ElectricityManager+PulseUnit)
IL_0092: ldarg.1
IL_0093: stfld System.UInt16 PulseUnit::m_node
IL_0098: ldloca.s 1 (ElectricityManager+PulseUnit)
IL_009A: ldc.i4.0
IL_009B: stfld System.Byte PulseUnit::m_x
IL_00A0: ldloca.s 1 (ElectricityManager+PulseUnit)
IL_00A2: ldc.i4.0
IL_00A3: stfld System.Byte PulseUnit::m_z
IL_00A8: ldarg.0
IL_00A9: ldfld PulseUnit[] ElectricityManager::m_pulseUnits
IL_00AE: ldarg.0
IL_00AF: ldfld System.Int32 ElectricityManager::m_pulseUnitEnd
IL_00B4: ldelema ElectricityManager+PulseUnit
IL_00B9: ldloc.1
IL_00BA: stobj ElectricityManager+PulseUnit
IL_00BF: ldarg.0
IL_00C0: dup
IL_00C1: ldfld System.Int32 ElectricityManager::m_pulseUnitEnd
IL_00C6: ldc.i4.1
IL_00C7: add
IL_00C8: dup
IL_00C9: stloc.2
IL_00CA: stfld System.Int32 ElectricityManager::m_pulseUnitEnd
IL_00CF: ldloc.2
IL_00D0: ldarg.0
IL_00D1: ldfld PulseUnit[] ElectricityManager::m_pulseUnits
IL_00D6: ldlen
IL_00D7: conv.i4
IL_00D8: bne.un => Label7
IL_00DD: ldarg.0
IL_00DE: ldc.i4.0
IL_00DF: stfld System.Int32 ElectricityManager::m_pulseUnitEnd
IL_00E4: Label7
IL_00E4: ldarg.0
IL_00E5: ldfld System.UInt16[] ElectricityManager::m_nodeGroups
IL_00EA: ldarg.1
IL_00EB: ldarg.3
IL_00EC: stelem.i2
IL_00ED: ldarg.0
IL_00EE: ldc.i4.1
IL_00EF: stfld System.Boolean ElectricityManager::m_canContinue
IL_00F4: br => Label8
IL_00F9: Label6
IL_00F9: ldarg.0
IL_00FA: ldarg.0
IL_00FB: ldfld System.UInt16[] ElectricityManager::m_nodeGroups
IL_0100: ldarg.1
IL_0101: ldelem.u2
IL_0102: call System.UInt16 ElectricityManager::GetRootGroup(System.UInt16
group)
IL_0107: stloc.3
IL_0108: ldloc.3
IL_0109: ldarg.3
IL_010A: beq => Label9
IL_010F: ldarg.0
IL_0110: ldarg.3
IL_0111: ldloc.3
IL_0112: call System.Void ElectricityManager::MergeGroups(System.UInt16 root,
System.UInt16 merged)
IL_0117: ldarg.0
IL_0118: ldfld System.UInt16[] ElectricityManager::m_nodeGroups
IL_011D: ldarg.1
IL_011E: ldarg.3
IL_011F: stelem.i2
IL_0120: ldarg.0
IL_0121: ldc.i4.1
IL_0122: stfld System.Boolean ElectricityManager::m_canContinue
IL_0127: // end original
IL_0127: Label0
IL_0127: Label1
IL_0127: Label2
IL_0127: Label3
IL_0127: Label5
IL_0127: Label8
IL_0127: Label9
IL_0127: ret
DONE

### Patch: System.Void ElectricityManager::UpdateNodeElectricity(System.Int32


nodeID, System.Int32 value)
### Replacement: static System.Void
ElectricityManager::ElectricityManager.UpdateNodeElectricity_Patch0(ElectricityMana
ger this, System.Int32 nodeID, System.Int32 value)
IL_0000: Local var 0: InfoManager/InfoMode
IL_0000: Local var 1: NetManager
IL_0000: Local var 2: System.Boolean
IL_0000: Local var 3: NetNode/Flags
IL_0000: Local var 4: System.UInt16
IL_0000: Local var 5: BuildingManager
IL_0000: Local var 6: NetNode/Flags
IL_0000: Local var 7: System.Int32
IL_0000: Local var 8: System.UInt16
IL_0000: // start original
IL_0000: call static InfoManager
ColossalFramework.Singleton`1<InfoManager>::get_instance()
IL_0005: callvirt InfoMode InfoManager::get_CurrentMode()
IL_000A: stloc.0
IL_000B: call static NetManager
ColossalFramework.Singleton`1<NetManager>::get_instance()
IL_0010: stloc.1
IL_0011: ldc.i4.0
IL_0012: stloc.2
IL_0013: ldloc.1
IL_0014: ldfld Array16`1<NetNode> NetManager::m_nodes
IL_0019: ldfld NetNode[] Array16`1<NetNode>::m_buffer
IL_001E: ldarg.1
IL_001F: ldelema NetNode
IL_0024: ldfld Flags NetNode::m_flags
IL_0029: stloc.3
IL_002A: ldloc.3
IL_002B: ldc.i4 1048576
IL_0030: and
IL_0031: brfalse => Label0
IL_0036: ldloc.1
IL_0037: ldfld Array16`1<NetNode> NetManager::m_nodes
IL_003C: ldfld NetNode[] Array16`1<NetNode>::m_buffer
IL_0041: ldarg.1
IL_0042: ldelema NetNode
IL_0047: dup
IL_0048: ldfld Flags NetNode::m_flags
IL_004D: ldc.i4 -1048577
IL_0052: and
IL_0053: stfld Flags NetNode::m_flags
IL_0058: br => Label10
IL_005D: Label0
IL_005D: ldloc.1
IL_005E: ldfld Array16`1<NetNode> NetManager::m_nodes
IL_0063: ldfld NetNode[] Array16`1<NetNode>::m_buffer
IL_0068: ldarg.1
IL_0069: ldelema NetNode
IL_006E: ldfld System.UInt16 NetNode::m_building
IL_0073: stloc.s 4 (System.UInt16)
IL_0075: ldloc.s 4 (System.UInt16)
IL_0077: brfalse => Label1
IL_007C: call static BuildingManager
ColossalFramework.Singleton`1<BuildingManager>::get_instance()
IL_0081: stloc.s 5 (BuildingManager)
IL_0083: ldloc.s 5 (BuildingManager)
IL_0085: ldfld Array16`1<Building> BuildingManager::m_buildings
IL_008A: ldfld Building[] Array16`1<Building>::m_buffer
IL_008F: ldloc.s 4 (System.UInt16)
IL_0091: ldelema Building
IL_0096: ldfld System.UInt16 Building::m_electricityBuffer
IL_009B: ldarg.2
IL_009C: beq => Label2
IL_00A1: ldloc.s 5 (BuildingManager)
IL_00A3: ldfld Array16`1<Building> BuildingManager::m_buildings
IL_00A8: ldfld Building[] Array16`1<Building>::m_buffer
IL_00AD: ldloc.s 4 (System.UInt16)
IL_00AF: ldelema Building
IL_00B4: ldarg.2
IL_00B5: conv.u2
IL_00B6: stfld System.UInt16 Building::m_electricityBuffer
IL_00BB: ldloc.0
IL_00BC: ldc.i4.1
IL_00BD: ceq
IL_00BF: stloc.2
IL_00C0: Label2
IL_00C0: ldloc.2
IL_00C1: brfalse => Label3
IL_00C6: ldloc.s 5 (BuildingManager)
IL_00C8: ldloc.s 4 (System.UInt16)
IL_00CA: callvirt System.Void BuildingManager::UpdateBuildingColors(System.UInt16
building)
IL_00CF: Label1
IL_00CF: Label3
IL_00CF: ldloc.3
IL_00D0: ldc.i4 -67108865
IL_00D5: and
IL_00D6: stloc.s 6 (NetNode+Flags)
IL_00D8: ldarg.2
IL_00D9: brfalse => Label4
IL_00DE: ldloc.s 6 (NetNode+Flags)
IL_00E0: ldc.i4 67108864
IL_00E5: or
IL_00E6: stloc.s 6 (NetNode+Flags)
IL_00E8: Label4
IL_00E8: ldloc.s 6 (NetNode+Flags)
IL_00EA: ldloc.3
IL_00EB: beq => Label5
IL_00F0: ldloc.1
IL_00F1: ldfld Array16`1<NetNode> NetManager::m_nodes
IL_00F6: ldfld NetNode[] Array16`1<NetNode>::m_buffer
IL_00FB: ldarg.1
IL_00FC: ldelema NetNode
IL_0101: ldloc.s 6 (NetNode+Flags)
IL_0103: stfld Flags NetNode::m_flags
IL_0108: ldloc.0
IL_0109: ldc.i4.1
IL_010A: ceq
IL_010C: stloc.2
IL_010D: Label5
IL_010D: ldloc.2
IL_010E: brfalse => Label6
IL_0113: ldloc.1
IL_0114: ldarg.1
IL_0115: conv.u2
IL_0116: callvirt System.Void NetManager::UpdateNodeColors(System.UInt16 node)
IL_011B: ldc.i4.0
IL_011C: stloc.s 7 (System.Int32)
IL_011E: br => Label7
IL_0123: Label9
IL_0123: ldloc.1
IL_0124: ldfld Array16`1<NetNode> NetManager::m_nodes
IL_0129: ldfld NetNode[] Array16`1<NetNode>::m_buffer
IL_012E: ldarg.1
IL_012F: ldelema NetNode
IL_0134: ldloc.s 7 (System.Int32)
IL_0136: call System.UInt16 NetNode::GetSegment(System.Int32 index)
IL_013B: stloc.s 8 (System.UInt16)
IL_013D: ldloc.s 8 (System.UInt16)
IL_013F: brfalse => Label8
IL_0144: ldloc.1
IL_0145: ldloc.s 8 (System.UInt16)
IL_0147: callvirt System.Void NetManager::UpdateSegmentColors(System.UInt16
segment)
IL_014C: Label8
IL_014C: ldloc.s 7 (System.Int32)
IL_014E: ldc.i4.1
IL_014F: add
IL_0150: stloc.s 7 (System.Int32)
IL_0152: Label7
IL_0152: ldloc.s 7 (System.Int32)
IL_0154: ldc.i4.8
IL_0155: blt => Label9
IL_015A: // end original
IL_015A: Label6
IL_015A: Label10
IL_015A: ret
DONE

### Patch: virtual System.Void ColossalFramework.UI.UIView::Start()


### Replacement: static System.Void
ColossalFramework.UI.UIView::ColossalFramework.UI.UIView.Start_Patch1(ColossalFrame
work.UI.UIView this)
IL_0000: Local var 0:
ColossalFramework.PoolList`1<ColossalFramework.UI.UIComponent>
IL_0000: Local var 1: ColossalFramework.UI.UIComponent
IL_0000: Local var 2:
System.Collections.Generic.IEnumerator`1<ColossalFramework.UI.UIComponent>
IL_0000: // start original
IL_0000: ldarg.0
IL_0001: ldc.i4.0
IL_0002: stfld System.Int32 ColossalFramework.UI.UIView::m_FramesRendered
IL_0007: ldarg.0
IL_0008: call System.Void
ColossalFramework.UI.UIView::InvalidateAllComponents()
IL_000D: ldarg.0
IL_000E: ldfld UnityEngine.MeshRenderer
ColossalFramework.UI.UIView::m_MeshRenderer
IL_0013: ldnull
IL_0014: call static System.Boolean
UnityEngine.Object::op_Inequality(UnityEngine.Object x, UnityEngine.Object y)
IL_0019: brfalse => Label0
IL_001E: ldarg.0
IL_001F: ldfld UnityEngine.MeshRenderer
ColossalFramework.UI.UIView::m_MeshRenderer
IL_0024: ldc.i4.1
IL_0025: callvirt System.Void UnityEngine.Renderer::set_enabled(System.Boolean
value)
IL_002A: Label0
IL_002A: ldarg.0
IL_002B: call ColossalFramework.PoolList`1<ColossalFramework.UI.UIComponent>
ColossalFramework.UI.UIView::GetTopLevelComponents()
IL_0030: stloc.0
.try
{
IL_0031: ldloc.0
IL_0032: callvirt virtual
System.Collections.Generic.IEnumerator`1<ColossalFramework.UI.UIComponent>
ColossalFramework.PoolList`1<ColossalFramework.UI.UIComponent>::GetEnumerator()
IL_0037: stloc.2
.try
{
IL_0038: br => Label1
IL_003D: Label2
IL_003D: ldloc.2
IL_003E: callvirt abstract virtual ColossalFramework.UI.UIComponent
System.Collections.Generic.IEnumerator`1<ColossalFramework.UI.UIComponent>::get_Cur
rent()
IL_0043: stloc.1
IL_0044: ldloc.1
IL_0045: ldc.i4.1
IL_0046: callvirt System.Void
ColossalFramework.UI.UIComponent::InitializeParentVisibilityCache(System.Boolean
parentVisible)
IL_004B: Label1
IL_004B: ldloc.2
IL_004C: callvirt abstract virtual System.Boolean
System.Collections.IEnumerator::MoveNext()
IL_0051: brtrue => Label2
IL_0056: leave => Label3
IL_005B: leave => (autogenerated)
} // end try
.finally
{
IL_0060: ldloc.2
IL_0061: brfalse => Label4
IL_0066: ldloc.2
IL_0067: callvirt abstract virtual System.Void
System.IDisposable::Dispose()
IL_006C: Label4
IL_006C: endfinally
IL_006D: leave => (autogenerated)
} // end handler
IL_006E: Label3
IL_006E: leave => Label5
IL_0073: leave => (autogenerated)
} // end try
.finally
{
IL_0078: ldloc.0
IL_0079: brfalse => Label6
IL_007E: ldloc.0
IL_007F: callvirt abstract virtual System.Void
System.IDisposable::Dispose()
IL_0084: Label6
IL_0084: endfinally
IL_0085: leave => (autogenerated)
} // end handler
IL_0086: Label5
IL_0086: ldarg.0
IL_0087: ldc.i4.1
IL_0088: stfld System.Boolean
ColossalFramework.UI.UIView::m_VisibilityCacheInitialized
IL_008D: // end original
IL_008D: call static System.Void
Kwytto.Redirectors.UIViewRedirector::AfterStart()
IL_0092: ret
DONE

### Patch: virtual UnityEngine.Color NetAI::GetColor(System.UInt16 nodeID, NetNode&


data, InfoMode infoMode, SubInfoMode subInfoMode)
### Replacement: static UnityEngine.Color NetAI::NetAI.GetColor_Patch1(NetAI this,
System.UInt16 nodeID, NetNode& data, InfoMode infoMode, SubInfoMode subInfoMode)
IL_0000: Local var 0: UnityEngine.Color
IL_0000: ldloca 0 (UnityEngine.Color)
IL_0004: initobj UnityEngine.Color
IL_000A: // start original
IL_000A: ldarg.3
IL_000B: brfalse => Label0
IL_0010: call static InfoManager
ColossalFramework.Singleton`1<InfoManager>::get_instance()
IL_0015: ldfld InfoProperties SimulationManagerBase`2<InfoManager,
InfoProperties>::m_properties
IL_001A: ldfld UnityEngine.Color InfoProperties::m_neutralColor
IL_001F: br => Label1
IL_0024: Label0
IL_0024: ldarg.0
IL_0025: ldfld NetInfo NetAI::m_info
IL_002A: ldfld UnityEngine.Color NetInfo::m_color
IL_002F: // end original
IL_002F: Label1
IL_002F: stloc 0 (UnityEngine.Color)
IL_0033: ldloca 0 (UnityEngine.Color)
IL_0037: ldarg 1
IL_003B: ldarg 2
IL_003F: ldarg 3
IL_0043: ldarg 4
IL_0047: call static System.Void
ElectricRoads.Overrides.ElectricRoadsOverrides::AfterGetColorNode(UnityEngine.Color
& __result, System.UInt16 nodeID, NetNode& data, InfoMode infoMode, SubInfoMode
subInfoMode)
IL_004C: ldloc 0 (UnityEngine.Color)
IL_0050: ret
DONE

### Patch: virtual UnityEngine.Color NetAI::GetColor(System.UInt16 segmentID,


NetSegment& data, InfoMode infoMode, SubInfoMode subInfoMode)
### Replacement: static UnityEngine.Color NetAI::NetAI.GetColor_Patch1(NetAI this,
System.UInt16 segmentID, NetSegment& data, InfoMode infoMode, SubInfoMode
subInfoMode)
IL_0000: Local var 0: UnityEngine.Color
IL_0000: ldloca 0 (UnityEngine.Color)
IL_0004: initobj UnityEngine.Color
IL_000A: // start original
IL_000A: ldarg.3
IL_000B: brfalse => Label0
IL_0010: call static InfoManager
ColossalFramework.Singleton`1<InfoManager>::get_instance()
IL_0015: ldfld InfoProperties SimulationManagerBase`2<InfoManager,
InfoProperties>::m_properties
IL_001A: ldfld UnityEngine.Color InfoProperties::m_neutralColor
IL_001F: br => Label1
IL_0024: Label0
IL_0024: ldarg.0
IL_0025: ldfld NetInfo NetAI::m_info
IL_002A: ldfld UnityEngine.Color NetInfo::m_color
IL_002F: // end original
IL_002F: Label1
IL_002F: stloc 0 (UnityEngine.Color)
IL_0033: ldloca 0 (UnityEngine.Color)
IL_0037: ldarg 1
IL_003B: ldarg 2
IL_003F: ldarg 3
IL_0043: ldarg 4
IL_0047: call static System.Void
ElectricRoads.Overrides.ElectricRoadsOverrides::AfterGetColorSegment(UnityEngine.Co
lor& __result, System.UInt16 segmentID, NetSegment& data, InfoMode infoMode,
SubInfoMode subInfoMode)
IL_004C: ldloc 0 (UnityEngine.Color)
IL_0050: ret
DONE

### Patch: System.Void ElectricityManager::UpdateNodeElectricity(System.Int32


nodeID, System.Int32 value)
### Replacement: static System.Void
ElectricityManager::ElectricityManager.UpdateNodeElectricity_Patch0(ElectricityMana
ger this, System.Int32 nodeID, System.Int32 value)
IL_0000: Local var 0: InfoManager/InfoMode
IL_0000: Local var 1: NetManager
IL_0000: Local var 2: System.Boolean
IL_0000: Local var 3: NetNode/Flags
IL_0000: Local var 4: System.UInt16
IL_0000: Local var 5: BuildingManager
IL_0000: Local var 6: NetNode/Flags
IL_0000: Local var 7: System.Int32
IL_0000: Local var 8: System.UInt16
IL_0000: // start original
IL_0000: call static InfoManager
ColossalFramework.Singleton`1<InfoManager>::get_instance()
IL_0005: callvirt InfoMode InfoManager::get_CurrentMode()
IL_000A: stloc.0
IL_000B: call static NetManager
ColossalFramework.Singleton`1<NetManager>::get_instance()
IL_0010: stloc.1
IL_0011: ldc.i4.0
IL_0012: stloc.2
IL_0013: ldloc.1
IL_0014: ldfld Array16`1<NetNode> NetManager::m_nodes
IL_0019: ldfld NetNode[] Array16`1<NetNode>::m_buffer
IL_001E: ldarg.1
IL_001F: ldelema NetNode
IL_0024: ldfld Flags NetNode::m_flags
IL_0029: stloc.3
IL_002A: ldarg.1
IL_002B: call static System.Boolean
ElectricRoads.Overrides.ElectricRoadsOverrides::CheckNodeTransition(System.Int32
nodeID)
IL_0030: brfalse => Label0
IL_0035: ldloc.1
IL_0036: ldfld Array16`1<NetNode> NetManager::m_nodes
IL_003B: ldfld NetNode[] Array16`1<NetNode>::m_buffer
IL_0040: ldarg.1
IL_0041: ldelema NetNode
IL_0046: dup
IL_0047: ldfld Flags NetNode::m_flags
IL_004C: ldc.i4 -1048577
IL_0051: and
IL_0052: stfld Flags NetNode::m_flags
IL_0057: br => Label10
IL_005C: Label0
IL_005C: ldloc.1
IL_005D: ldfld Array16`1<NetNode> NetManager::m_nodes
IL_0062: ldfld NetNode[] Array16`1<NetNode>::m_buffer
IL_0067: ldarg.1
IL_0068: ldelema NetNode
IL_006D: ldfld System.UInt16 NetNode::m_building
IL_0072: stloc.s 4 (System.UInt16)
IL_0074: ldloc.s 4 (System.UInt16)
IL_0076: brfalse => Label1
IL_007B: call static BuildingManager
ColossalFramework.Singleton`1<BuildingManager>::get_instance()
IL_0080: stloc.s 5 (BuildingManager)
IL_0082: ldloc.s 5 (BuildingManager)
IL_0084: ldfld Array16`1<Building> BuildingManager::m_buildings
IL_0089: ldfld Building[] Array16`1<Building>::m_buffer
IL_008E: ldloc.s 4 (System.UInt16)
IL_0090: ldelema Building
IL_0095: ldfld System.UInt16 Building::m_electricityBuffer
IL_009A: ldarg.2
IL_009B: beq => Label2
IL_00A0: ldloc.s 5 (BuildingManager)
IL_00A2: ldfld Array16`1<Building> BuildingManager::m_buildings
IL_00A7: ldfld Building[] Array16`1<Building>::m_buffer
IL_00AC: ldloc.s 4 (System.UInt16)
IL_00AE: ldelema Building
IL_00B3: ldarg.2
IL_00B4: conv.u2
IL_00B5: stfld System.UInt16 Building::m_electricityBuffer
IL_00BA: ldloc.0
IL_00BB: ldc.i4.1
IL_00BC: ceq
IL_00BE: stloc.2
IL_00BF: Label2
IL_00BF: ldloc.2
IL_00C0: brfalse => Label3
IL_00C5: ldloc.s 5 (BuildingManager)
IL_00C7: ldloc.s 4 (System.UInt16)
IL_00C9: callvirt System.Void BuildingManager::UpdateBuildingColors(System.UInt16
building)
IL_00CE: Label1
IL_00CE: Label3
IL_00CE: ldloc.3
IL_00CF: ldc.i4 -67108865
IL_00D4: and
IL_00D5: stloc.s 6 (NetNode+Flags)
IL_00D7: ldarg.2
IL_00D8: brfalse => Label4
IL_00DD: ldloc.s 6 (NetNode+Flags)
IL_00DF: ldc.i4 67108864
IL_00E4: or
IL_00E5: stloc.s 6 (NetNode+Flags)
IL_00E7: Label4
IL_00E7: ldloc.s 6 (NetNode+Flags)
IL_00E9: ldloc.3
IL_00EA: beq => Label5
IL_00EF: ldloc.1
IL_00F0: ldfld Array16`1<NetNode> NetManager::m_nodes
IL_00F5: ldfld NetNode[] Array16`1<NetNode>::m_buffer
IL_00FA: ldarg.1
IL_00FB: ldelema NetNode
IL_0100: ldloc.s 6 (NetNode+Flags)
IL_0102: stfld Flags NetNode::m_flags
IL_0107: ldloc.0
IL_0108: ldc.i4.1
IL_0109: ceq
IL_010B: stloc.2
IL_010C: Label5
IL_010C: ldloc.2
IL_010D: brfalse => Label6
IL_0112: ldloc.1
IL_0113: ldarg.1
IL_0114: conv.u2
IL_0115: callvirt System.Void NetManager::UpdateNodeColors(System.UInt16 node)
IL_011A: ldc.i4.0
IL_011B: stloc.s 7 (System.Int32)
IL_011D: br => Label7
IL_0122: Label9
IL_0122: ldloc.1
IL_0123: ldfld Array16`1<NetNode> NetManager::m_nodes
IL_0128: ldfld NetNode[] Array16`1<NetNode>::m_buffer
IL_012D: ldarg.1
IL_012E: ldelema NetNode
IL_0133: ldloc.s 7 (System.Int32)
IL_0135: call System.UInt16 NetNode::GetSegment(System.Int32 index)
IL_013A: stloc.s 8 (System.UInt16)
IL_013C: ldloc.s 8 (System.UInt16)
IL_013E: brfalse => Label8
IL_0143: ldloc.1
IL_0144: ldloc.s 8 (System.UInt16)
IL_0146: callvirt System.Void NetManager::UpdateSegmentColors(System.UInt16
segment)
IL_014B: Label8
IL_014B: ldloc.s 7 (System.Int32)
IL_014D: ldc.i4.1
IL_014E: add
IL_014F: stloc.s 7 (System.Int32)
IL_0151: Label7
IL_0151: ldloc.s 7 (System.Int32)
IL_0153: ldc.i4.8
IL_0154: blt => Label9
IL_0159: // end original
IL_0159: Label6
IL_0159: Label10
IL_0159: ret
DONE

### Patch: static System.Void PropInstance::RenderInstance(CameraInfo cameraInfo,


PropInfo info, InstanceID id, UnityEngine.Vector3 position, System.Single scale,
System.Single angle, UnityEngine.Color color, UnityEngine.Vector4 objectIndex,
System.Boolean active, UnityEngine.Texture heightMap, UnityEngine.Vector4
heightMapping, UnityEngine.Vector4 surfaceMapping, UnityEngine.Texture
waterHeightMap, UnityEngine.Vector4 waterHeightMapping, UnityEngine.Vector4
waterSurfaceMapping)
### Replacement: static System.Void
PropInstance::PropInstance.RenderInstance_Patch0(CameraInfo cameraInfo, PropInfo
info, InstanceID id, UnityEngine.Vector3 position, System.Single scale,
System.Single angle, UnityEngine.Color color, UnityEngine.Vector4 objectIndex,
System.Boolean active, UnityEngine.Texture heightMap, UnityEngine.Vector4
heightMapping, UnityEngine.Vector4 surfaceMapping, UnityEngine.Texture
waterHeightMap, UnityEngine.Vector4 waterHeightMapping, UnityEngine.Vector4
waterSurfaceMapping)
IL_0000: Local var 0: UnityEngine.Matrix4x4
IL_0000: Local var 1: System.Single
IL_0000: Local var 2: System.Int32
IL_0000: Local var 3: UnityEngine.Vector3
IL_0000: Local var 4: UnityEngine.Vector3
IL_0000: Local var 5: EffectInfo/SpawnArea
IL_0000: Local var 6: System.Single
IL_0000: Local var 7: LightSystem
IL_0000: Local var 8: ColossalFramework.Math.Randomizer
IL_0000: Local var 9: UnityEngine.Vector4
IL_0000: Local var 10: System.Single
IL_0000: Local var 11: System.Single
IL_0000: Local var 12: System.Single
IL_0000: Local var 13: UnityEngine.Matrix4x4
IL_0000: Local var 14: PropManager
IL_0000: Local var 15: UnityEngine.MaterialPropertyBlock
IL_0000: Local var 16: System.Int32
IL_0000: // start original
IL_0000: ldarg.1
IL_0001: ldfld System.Boolean PrefabInfo::m_prefabInitialized
IL_0006: brfalse => Label0
IL_000B: ldarg.1
IL_000C: ldfld System.Boolean PropInfo::m_hasEffects
IL_0011: brfalse => Label1
IL_0016: ldarg.s 8
IL_0018: brtrue => Label2
IL_001D: ldarg.1
IL_001E: ldfld System.Boolean PropInfo::m_alwaysActive
IL_0023: brfalse => Label3
IL_0028: Label2
IL_0028: ldloca.s 0 (UnityEngine.Matrix4x4)
IL_002A: initobj UnityEngine.Matrix4x4
IL_0030: ldloca.s 0 (UnityEngine.Matrix4x4)
IL_0032: ldarg.3
IL_0033: ldarg.s 5
IL_0035: ldc.r4 57.29578
IL_003A: mul
IL_003B: call static UnityEngine.Vector3 UnityEngine.Vector3::get_down()
IL_0040: call static UnityEngine.Quaternion
UnityEngine.Quaternion::AngleAxis(System.Single angle, UnityEngine.Vector3 axis)
IL_0045: ldarg.s 4
IL_0047: ldarg.s 4
IL_0049: ldarg.s 4
IL_004B: newobj System.Void UnityEngine.Vector3::.ctor(System.Single x,
System.Single y, System.Single z)
IL_0050: call System.Void UnityEngine.Matrix4x4::SetTRS(UnityEngine.Vector3
pos, UnityEngine.Quaternion q, UnityEngine.Vector3 s)
IL_0055: call static SimulationManager
ColossalFramework.Singleton`1<SimulationManager>::get_instance()
IL_005A: ldfld System.Single SimulationManager::m_simulationTimeDelta
IL_005F: stloc.1
IL_0060: ldc.i4.0
IL_0061: stloc.2
IL_0062: br => Label4
IL_0067: Label5
IL_0067: ldloca.s 0 (UnityEngine.Matrix4x4)
IL_0069: ldarg.1
IL_006A: ldfld Effect[] PropInfo::m_effects
IL_006F: ldloc.2
IL_0070: ldelema PropInfo+Effect
IL_0075: ldfld UnityEngine.Vector3 Effect::m_position
IL_007A: call UnityEngine.Vector3
UnityEngine.Matrix4x4::MultiplyPoint(UnityEngine.Vector3 v)
IL_007F: stloc.3
IL_0080: ldloca.s 0 (UnityEngine.Matrix4x4)
IL_0082: ldarg.1
IL_0083: ldfld Effect[] PropInfo::m_effects
IL_0088: ldloc.2
IL_0089: ldelema PropInfo+Effect
IL_008E: ldfld UnityEngine.Vector3 Effect::m_direction
IL_0093: call UnityEngine.Vector3
UnityEngine.Matrix4x4::MultiplyVector(UnityEngine.Vector3 v)
IL_0098: stloc.s 4 (UnityEngine.Vector3)
IL_009A: ldloca.s 5 (EffectInfo+SpawnArea)
IL_009C: ldloc.3
IL_009D: ldloc.s 4 (UnityEngine.Vector3)
IL_009F: ldc.r4 0
IL_00A4: call System.Void SpawnArea::.ctor(UnityEngine.Vector3 position,
UnityEngine.Vector3 direction, System.Single radius)
IL_00A9: ldarg.1
IL_00AA: ldfld Effect[] PropInfo::m_effects
IL_00AF: ldloc.2
IL_00B0: ldelema PropInfo+Effect
IL_00B5: ldfld EffectInfo Effect::m_effect
IL_00BA: ldarg.2
IL_00BB: ldloc.s 5 (EffectInfo+SpawnArea)
IL_00BD: call static UnityEngine.Vector3 UnityEngine.Vector3::get_zero()
IL_00C2: ldc.r4 0
IL_00C7: ldc.r4 1
IL_00CC: ldc.r4 -1
IL_00D1: ldloc.1
IL_00D2: ldarg.0
IL_00D3: callvirt virtual System.Void EffectInfo::RenderEffect(InstanceID id,
SpawnArea area, UnityEngine.Vector3 velocity, System.Single acceleration,
System.Single magnitude, System.Single timeOffset, System.Single timeDelta,
CameraInfo cameraInfo)
IL_00D8: ldloc.2
IL_00D9: ldc.i4.1
IL_00DA: add
IL_00DB: stloc.2
IL_00DC: Label4
IL_00DC: ldloc.2
IL_00DD: ldarg.1
IL_00DE: ldfld Effect[] PropInfo::m_effects
IL_00E3: ldlen
IL_00E4: conv.i4
IL_00E5: blt => Label5
IL_00EA: Label1
IL_00EA: Label3
IL_00EA: ldarg.1
IL_00EB: ldfld System.Boolean PropInfo::m_hasRenderer
IL_00F0: brfalse => Label6
IL_00F5: ldarg.0
IL_00F6: ldfld System.Int32 CameraInfo::m_layerMask
IL_00FB: ldc.i4.1
IL_00FC: ldarg.1
IL_00FD: ldfld System.Int32 PrefabInfo::m_prefabDataLayer
IL_0102: ldc.i4.s 31
IL_0104: and
IL_0105: shl
IL_0106: and
IL_0107: brfalse => Label7
IL_010C: call static InfoManager
ColossalFramework.Singleton`1<InfoManager>::get_instance()
IL_0111: callvirt InfoMode InfoManager::get_CurrentMode()
IL_0116: brtrue => Label8
IL_011B: ldarg 2
IL_011F: call static System.Boolean
ElectricRoads.Overrides.ElectricRoadsOverrides::CheckElectrityNetForLight(InstanceI
D id)
IL_0124: brfalse => Label24
IL_0129: ldc.r4 0
IL_012E: stloc.s 6 (System.Single)
IL_0130: ldarg.s 8
IL_0132: brtrue => Label9
IL_0137: ldarg.1
IL_0138: ldfld System.Boolean PropInfo::m_alwaysActive
IL_013D: brtrue => Label10
IL_0142: Label24
IL_0142: ldarga.s 7
IL_0144: ldc.r4 0
IL_0149: stfld System.Single UnityEngine.Vector4::z
IL_014E: br => Label11
IL_0153: Label9
IL_0153: Label10
IL_0153: ldarg.1
IL_0154: ldflda UnityEngine.Vector2 PropInfo::m_illuminationOffRange
IL_0159: ldfld System.Single UnityEngine.Vector2::x
IL_015E: ldc.r4 1000
IL_0163: blt => Label12
IL_0168: ldarg.1
IL_0169: ldfld BlinkType PropInfo::m_illuminationBlinkType
IL_016E: brfalse => Label13
IL_0173: Label12
IL_0173: call static RenderManager
ColossalFramework.Singleton`1<RenderManager>::get_instance()
IL_0178: callvirt LightSystem RenderManager::get_lightSystem()
IL_017D: stloc.s 7 (LightSystem)
IL_017F: ldloca.s 8 (ColossalFramework.Math.Randomizer)
IL_0181: ldarga.s 2
IL_0183: call System.UInt32 InstanceID::get_Index()
IL_0188: call System.Void
ColossalFramework.Math.Randomizer::.ctor(System.UInt32 _seed)
IL_018D: ldarg.1
IL_018E: ldflda UnityEngine.Vector2 PropInfo::m_illuminationOffRange
IL_0193: ldfld System.Single UnityEngine.Vector2::x
IL_0198: ldloca.s 8 (ColossalFramework.Math.Randomizer)
IL_019A: ldc.i4 100000
IL_019F: call System.Int32
ColossalFramework.Math.Randomizer::Int32(System.UInt32 range)
IL_01A4: conv.r4
IL_01A5: ldc.r4 1E-05
IL_01AA: mul
IL_01AB: ldarg.1
IL_01AC: ldflda UnityEngine.Vector2 PropInfo::m_illuminationOffRange
IL_01B1: ldfld System.Single UnityEngine.Vector2::y
IL_01B6: ldarg.1
IL_01B7: ldflda UnityEngine.Vector2 PropInfo::m_illuminationOffRange
IL_01BC: ldfld System.Single UnityEngine.Vector2::x
IL_01C1: sub
IL_01C2: mul
IL_01C3: add
IL_01C4: stloc.s 6 (System.Single)
IL_01C6: ldarga.s 7
IL_01C8: ldloc.s 6 (System.Single)
IL_01CA: ldc.r4 0.01
IL_01CF: add
IL_01D0: ldloc.s 6 (System.Single)
IL_01D2: ldc.r4 0.01
IL_01D7: sub
IL_01D8: ldloc.s 7 (LightSystem)
IL_01DA: callvirt System.Single LightSystem::get_DayLightIntensity()
IL_01DF: call static System.Single MathUtils::SmoothStep(System.Single edge0,
System.Single edge1, System.Single x)
IL_01E4: stfld System.Single UnityEngine.Vector4::z
IL_01E9: ldarg.1
IL_01EA: ldfld BlinkType PropInfo::m_illuminationBlinkType
IL_01EF: brfalse => Label14
IL_01F4: ldarg.1
IL_01F5: ldfld BlinkType PropInfo::m_illuminationBlinkType
IL_01FA: call static UnityEngine.Vector4
LightEffect::GetBlinkVector(BlinkType type)
IL_01FF: stloc.s 9 (UnityEngine.Vector4)
IL_0201: ldloc.s 6 (System.Single)
IL_0203: ldc.r4 3.71
IL_0208: mul
IL_0209: call static SimulationManager
ColossalFramework.Singleton`1<SimulationManager>::get_instance()
IL_020E: ldfld System.Single SimulationManager::m_simulationTimer
IL_0213: ldloca.s 9 (UnityEngine.Vector4)
IL_0215: ldfld System.Single UnityEngine.Vector4::w
IL_021A: div
IL_021B: add
IL_021C: stloc.s 10 (System.Single)
IL_021E: ldloc.s 10 (System.Single)
IL_0220: ldloc.s 10 (System.Single)
IL_0222: call static System.Single UnityEngine.Mathf::Floor(System.Single f)
IL_0227: sub
IL_0228: ldloca.s 9 (UnityEngine.Vector4)
IL_022A: ldfld System.Single UnityEngine.Vector4::w
IL_022F: mul
IL_0230: stloc.s 10 (System.Single)
IL_0232: ldloca.s 9 (UnityEngine.Vector4)
IL_0234: ldfld System.Single UnityEngine.Vector4::x
IL_0239: ldloca.s 9 (UnityEngine.Vector4)
IL_023B: ldfld System.Single UnityEngine.Vector4::y
IL_0240: ldloc.s 10 (System.Single)
IL_0242: call static System.Single MathUtils::SmoothStep(System.Single edge0,
System.Single edge1, System.Single x)
IL_0247: stloc.s 11 (System.Single)
IL_0249: ldloca.s 9 (UnityEngine.Vector4)
IL_024B: ldfld System.Single UnityEngine.Vector4::w
IL_0250: ldloca.s 9 (UnityEngine.Vector4)
IL_0252: ldfld System.Single UnityEngine.Vector4::z
IL_0257: ldloc.s 10 (System.Single)
IL_0259: call static System.Single MathUtils::SmoothStep(System.Single edge0,
System.Single edge1, System.Single x)
IL_025E: stloc.s 12 (System.Single)
IL_0260: ldarga.s 7
IL_0262: dup
IL_0263: ldfld System.Single UnityEngine.Vector4::z
IL_0268: ldc.r4 1
IL_026D: ldloc.s 11 (System.Single)
IL_026F: ldloc.s 12 (System.Single)
IL_0271: mul
IL_0272: sub
IL_0273: mul
IL_0274: stfld System.Single UnityEngine.Vector4::z
IL_0279: Label14
IL_0279: br => Label15
IL_027E: Label13
IL_027E: ldarga.s 7
IL_0280: ldc.r4 1
IL_0285: stfld System.Single UnityEngine.Vector4::z
IL_028A: Label8
IL_028A: Label11
IL_028A: Label15
IL_028A: ldarg.0
IL_028B: brfalse => Label16
IL_0290: ldarg.0
IL_0291: ldarg.3
IL_0292: ldarg.1
IL_0293: ldfld System.Single PropInfo::m_lodRenderDistance
IL_0298: callvirt System.Boolean
CameraInfo::CheckRenderDistance(UnityEngine.Vector3 point, System.Single
maxDistance)
IL_029D: brfalse => Label17
IL_02A2: Label16
IL_02A2: ldloca.s 13 (UnityEngine.Matrix4x4)
IL_02A4: initobj UnityEngine.Matrix4x4
IL_02AA: ldloca.s 13 (UnityEngine.Matrix4x4)
IL_02AC: ldarg.3
IL_02AD: ldarg.s 5
IL_02AF: ldc.r4 57.29578
IL_02B4: mul
IL_02B5: call static UnityEngine.Vector3 UnityEngine.Vector3::get_down()
IL_02BA: call static UnityEngine.Quaternion
UnityEngine.Quaternion::AngleAxis(System.Single angle, UnityEngine.Vector3 axis)
IL_02BF: ldarg.s 4
IL_02C1: ldarg.s 4
IL_02C3: ldarg.s 4
IL_02C5: newobj System.Void UnityEngine.Vector3::.ctor(System.Single x,
System.Single y, System.Single z)
IL_02CA: call System.Void UnityEngine.Matrix4x4::SetTRS(UnityEngine.Vector3
pos, UnityEngine.Quaternion q, UnityEngine.Vector3 s)
IL_02CF: call static PropManager
ColossalFramework.Singleton`1<PropManager>::get_instance()
IL_02D4: stloc.s 14 (PropManager)
IL_02D6: ldloc.s 14 (PropManager)
IL_02D8: ldfld UnityEngine.MaterialPropertyBlock PropManager::m_materialBlock
IL_02DD: stloc.s 15 (UnityEngine.MaterialPropertyBlock)
IL_02DF: ldloc.s 15 (UnityEngine.MaterialPropertyBlock)
IL_02E1: callvirt System.Void UnityEngine.MaterialPropertyBlock::Clear()
IL_02E6: ldloc.s 15 (UnityEngine.MaterialPropertyBlock)
IL_02E8: ldloc.s 14 (PropManager)
IL_02EA: ldfld System.Int32 PropManager::ID_Color
IL_02EF: ldarg.s 6
IL_02F1: callvirt System.Void
UnityEngine.MaterialPropertyBlock::SetColor(System.Int32 nameID, UnityEngine.Color
value)
IL_02F6: ldloc.s 15 (UnityEngine.MaterialPropertyBlock)
IL_02F8: ldloc.s 14 (PropManager)
IL_02FA: ldfld System.Int32 PropManager::ID_HeightMap
IL_02FF: ldarg.s 9
IL_0301: callvirt System.Void
UnityEngine.MaterialPropertyBlock::SetTexture(System.Int32 nameID,
UnityEngine.Texture value)
IL_0306: ldloc.s 15 (UnityEngine.MaterialPropertyBlock)
IL_0308: ldloc.s 14 (PropManager)
IL_030A: ldfld System.Int32 PropManager::ID_HeightMapping
IL_030F: ldarg.s 10
IL_0311: callvirt System.Void
UnityEngine.MaterialPropertyBlock::SetVector(System.Int32 nameID,
UnityEngine.Vector4 value)
IL_0316: ldloc.s 15 (UnityEngine.MaterialPropertyBlock)
IL_0318: ldloc.s 14 (PropManager)
IL_031A: ldfld System.Int32 PropManager::ID_SurfaceMapping
IL_031F: ldarg.s 11
IL_0321: callvirt System.Void
UnityEngine.MaterialPropertyBlock::SetVector(System.Int32 nameID,
UnityEngine.Vector4 value)
IL_0326: ldloc.s 15 (UnityEngine.MaterialPropertyBlock)
IL_0328: ldloc.s 14 (PropManager)
IL_032A: ldfld System.Int32 PropManager::ID_ObjectIndex
IL_032F: ldarg.s 7
IL_0331: callvirt System.Void
UnityEngine.MaterialPropertyBlock::SetVector(System.Int32 nameID,
UnityEngine.Vector4 value)
IL_0336: ldloc.s 15 (UnityEngine.MaterialPropertyBlock)
IL_0338: ldloc.s 14 (PropManager)
IL_033A: ldfld System.Int32 PropManager::ID_WaterHeightMap
IL_033F: ldarg.s 12
IL_0341: callvirt System.Void
UnityEngine.MaterialPropertyBlock::SetTexture(System.Int32 nameID,
UnityEngine.Texture value)
IL_0346: ldloc.s 15 (UnityEngine.MaterialPropertyBlock)
IL_0348: ldloc.s 14 (PropManager)
IL_034A: ldfld System.Int32 PropManager::ID_WaterHeightMapping
IL_034F: ldarg.s 13
IL_0351: callvirt System.Void
UnityEngine.MaterialPropertyBlock::SetVector(System.Int32 nameID,
UnityEngine.Vector4 value)
IL_0356: ldloc.s 15 (UnityEngine.MaterialPropertyBlock)
IL_0358: ldloc.s 14 (PropManager)
IL_035A: ldfld System.Int32 PropManager::ID_WaterSurfaceMapping
IL_035F: ldarg.s 14
IL_0361: callvirt System.Void
UnityEngine.MaterialPropertyBlock::SetVector(System.Int32 nameID,
UnityEngine.Vector4 value)
IL_0366: ldarg.1
IL_0367: ldfld UnityEngine.Vector4[] PropInfo::m_rollLocation
IL_036C: brfalse => Label18
IL_0371: ldarg.1
IL_0372: ldfld UnityEngine.Material PropInfo::m_material
IL_0377: ldloc.s 14 (PropManager)
IL_0379: ldfld System.Int32 PropManager::ID_RollLocation
IL_037E: ldarg.1
IL_037F: ldfld UnityEngine.Vector4[] PropInfo::m_rollLocation
IL_0384: callvirt System.Void UnityEngine.Material::SetVectorArray(System.Int32
nameID, UnityEngine.Vector4[] values)
IL_0389: ldarg.1
IL_038A: ldfld UnityEngine.Material PropInfo::m_material
IL_038F: ldloc.s 14 (PropManager)
IL_0391: ldfld System.Int32 PropManager::ID_RollParams
IL_0396: ldarg.1
IL_0397: ldfld UnityEngine.Vector4[] PropInfo::m_rollParams
IL_039C: callvirt System.Void UnityEngine.Material::SetVectorArray(System.Int32
nameID, UnityEngine.Vector4[] values)
IL_03A1: Label18
IL_03A1: ldloc.s 14 (PropManager)
IL_03A3: ldflda DrawCallData SimulationManagerBase`2<PropManager,
PropProperties>::m_drawCallData
IL_03A8: dup
IL_03A9: ldfld System.Int32 DrawCallData::m_defaultCalls
IL_03AE: ldc.i4.1
IL_03AF: add
IL_03B0: stfld System.Int32 DrawCallData::m_defaultCalls
IL_03B5: ldarg.1
IL_03B6: ldfld UnityEngine.Mesh PropInfo::m_mesh
IL_03BB: ldloc.s 13 (UnityEngine.Matrix4x4)
IL_03BD: ldarg.1
IL_03BE: ldfld UnityEngine.Material PropInfo::m_material
IL_03C3: ldarg.1
IL_03C4: ldfld System.Int32 PrefabInfo::m_prefabDataLayer
IL_03C9: ldnull
IL_03CA: ldc.i4.0
IL_03CB: ldloc.s 15 (UnityEngine.MaterialPropertyBlock)
IL_03CD: call static System.Void
UnityEngine.Graphics::DrawMesh(UnityEngine.Mesh mesh, UnityEngine.Matrix4x4 matrix,
UnityEngine.Material material, System.Int32 layer, UnityEngine.Camera camera,
System.Int32 submeshIndex, UnityEngine.MaterialPropertyBlock properties)
IL_03D2: br => Label19
IL_03D7: Label17
IL_03D7: ldarg.s 9
IL_03D9: ldarg.1
IL_03DA: ldfld UnityEngine.Texture PropInfo::m_lodHeightMap
IL_03DF: call static System.Boolean
UnityEngine.Object::op_Inequality(UnityEngine.Object x, UnityEngine.Object y)
IL_03E4: brtrue => Label20
IL_03E9: ldarg.s 12
IL_03EB: ldarg.1
IL_03EC: ldfld UnityEngine.Texture PropInfo::m_lodWaterHeightMap
IL_03F1: call static System.Boolean
UnityEngine.Object::op_Inequality(UnityEngine.Object x, UnityEngine.Object y)
IL_03F6: brfalse => Label21
IL_03FB: Label20
IL_03FB: ldarg.1
IL_03FC: ldfld System.Int32 PropInfo::m_lodCount
IL_0401: brfalse => Label22
IL_0406: ldarg.0
IL_0407: ldarg.1
IL_0408: call static System.Void PropInstance::RenderLod(CameraInfo
cameraInfo, PropInfo info)
IL_040D: Label22
IL_040D: ldarg.1
IL_040E: ldarg.s 9
IL_0410: stfld UnityEngine.Texture PropInfo::m_lodHeightMap
IL_0415: ldarg.1
IL_0416: ldarg.s 10
IL_0418: stfld UnityEngine.Vector4 PropInfo::m_lodHeightMapping
IL_041D: ldarg.1
IL_041E: ldarg.s 11
IL_0420: stfld UnityEngine.Vector4 PropInfo::m_lodSurfaceMapping
IL_0425: ldarg.1
IL_0426: ldarg.s 12
IL_0428: stfld UnityEngine.Texture PropInfo::m_lodWaterHeightMap
IL_042D: ldarg.1
IL_042E: ldarg.s 13
IL_0430: stfld UnityEngine.Vector4 PropInfo::m_lodWaterHeightMapping
IL_0435: ldarg.1
IL_0436: ldarg.s 14
IL_0438: stfld UnityEngine.Vector4 PropInfo::m_lodWaterSurfaceMapping
IL_043D: Label21
IL_043D: ldarga.s 7
IL_043F: ldarg.s 4
IL_0441: stfld System.Single UnityEngine.Vector4::w
IL_0446: ldarg.1
IL_0447: ldfld UnityEngine.Vector4[] PropInfo::m_lodLocations
IL_044C: ldarg.1
IL_044D: ldfld System.Int32 PropInfo::m_lodCount
IL_0452: ldelema UnityEngine.Vector4
IL_0457: ldarga.s 3
IL_0459: ldfld System.Single UnityEngine.Vector3::x
IL_045E: ldarga.s 3
IL_0460: ldfld System.Single UnityEngine.Vector3::y
IL_0465: ldarga.s 3
IL_0467: ldfld System.Single UnityEngine.Vector3::z
IL_046C: ldarg.s 5
IL_046E: newobj System.Void UnityEngine.Vector4::.ctor(System.Single x,
System.Single y, System.Single z, System.Single w)
IL_0473: stobj UnityEngine.Vector4
IL_0478: ldarg.1
IL_0479: ldfld UnityEngine.Vector4[] PropInfo::m_lodObjectIndices
IL_047E: ldarg.1
IL_047F: ldfld System.Int32 PropInfo::m_lodCount
IL_0484: ldelema UnityEngine.Vector4
IL_0489: ldarg.s 7
IL_048B: stobj UnityEngine.Vector4
IL_0490: ldarg.1
IL_0491: ldfld UnityEngine.Vector4[] PropInfo::m_lodColors
IL_0496: ldarg.1
IL_0497: ldfld System.Int32 PropInfo::m_lodCount
IL_049C: ldelema UnityEngine.Vector4
IL_04A1: ldarga.s 6
IL_04A3: call UnityEngine.Color UnityEngine.Color::get_linear()
IL_04A8: call static UnityEngine.Vector4
UnityEngine.Color::op_Implicit(UnityEngine.Color c)
IL_04AD: stobj UnityEngine.Vector4
IL_04B2: ldarg.1
IL_04B3: ldarg.1
IL_04B4: ldfld UnityEngine.Vector3 PropInfo::m_lodMin
IL_04B9: ldarg.3
IL_04BA: call static UnityEngine.Vector3
UnityEngine.Vector3::Min(UnityEngine.Vector3 lhs, UnityEngine.Vector3 rhs)
IL_04BF: stfld UnityEngine.Vector3 PropInfo::m_lodMin
IL_04C4: ldarg.1
IL_04C5: ldarg.1
IL_04C6: ldfld UnityEngine.Vector3 PropInfo::m_lodMax
IL_04CB: ldarg.3
IL_04CC: call static UnityEngine.Vector3
UnityEngine.Vector3::Max(UnityEngine.Vector3 lhs, UnityEngine.Vector3 rhs)
IL_04D1: stfld UnityEngine.Vector3 PropInfo::m_lodMax
IL_04D6: ldarg.1
IL_04D7: dup
IL_04D8: ldfld System.Int32 PropInfo::m_lodCount
IL_04DD: ldc.i4.1
IL_04DE: add
IL_04DF: dup
IL_04E0: stloc.s 16 (System.Int32)
IL_04E2: stfld System.Int32 PropInfo::m_lodCount
IL_04E7: ldloc.s 16 (System.Int32)
IL_04E9: ldarg.1
IL_04EA: ldfld UnityEngine.Vector4[] PropInfo::m_lodLocations
IL_04EF: ldlen
IL_04F0: conv.i4
IL_04F1: bne.un => Label23
IL_04F6: ldarg.0
IL_04F7: ldarg.1
IL_04F8: call static System.Void PropInstance::RenderLod(CameraInfo
cameraInfo, PropInfo info)
IL_04FD: // end original
IL_04FD: Label0
IL_04FD: Label6
IL_04FD: Label7
IL_04FD: Label19
IL_04FD: Label23
IL_04FD: ret
DONE

### Patch: static System.Void PropInstance::RenderInstance(CameraInfo cameraInfo,


PropInfo info, InstanceID id, UnityEngine.Vector3 position, System.Single scale,
System.Single angle, UnityEngine.Color color, UnityEngine.Vector4 objectIndex,
System.Boolean active)
### Replacement: static System.Void
PropInstance::PropInstance.RenderInstance_Patch0(CameraInfo cameraInfo, PropInfo
info, InstanceID id, UnityEngine.Vector3 position, System.Single scale,
System.Single angle, UnityEngine.Color color, UnityEngine.Vector4 objectIndex,
System.Boolean active)
IL_0000: Local var 0: UnityEngine.Matrix4x4
IL_0000: Local var 1: System.Single
IL_0000: Local var 2: System.Int32
IL_0000: Local var 3: UnityEngine.Vector3
IL_0000: Local var 4: UnityEngine.Vector3
IL_0000: Local var 5: EffectInfo/SpawnArea
IL_0000: Local var 6: System.Single
IL_0000: Local var 7: LightSystem
IL_0000: Local var 8: ColossalFramework.Math.Randomizer
IL_0000: Local var 9: UnityEngine.Vector4
IL_0000: Local var 10: System.Single
IL_0000: Local var 11: System.Single
IL_0000: Local var 12: System.Single
IL_0000: Local var 13: UnityEngine.Matrix4x4
IL_0000: Local var 14: PropManager
IL_0000: Local var 15: UnityEngine.MaterialPropertyBlock
IL_0000: Local var 16: UnityEngine.Matrix4x4
IL_0000: Local var 17: PropManager
IL_0000: Local var 18: UnityEngine.MaterialPropertyBlock
IL_0000: Local var 19: System.Int32
IL_0000: // start original
IL_0000: ldarg.1
IL_0001: ldfld System.Boolean PrefabInfo::m_prefabInitialized
IL_0006: brfalse => Label0
IL_000B: ldarg.1
IL_000C: ldfld System.Boolean PropInfo::m_hasEffects
IL_0011: brfalse => Label1
IL_0016: ldarg.s 8
IL_0018: brtrue => Label2
IL_001D: ldarg.1
IL_001E: ldfld System.Boolean PropInfo::m_alwaysActive
IL_0023: brfalse => Label3
IL_0028: Label2
IL_0028: ldloca.s 0 (UnityEngine.Matrix4x4)
IL_002A: initobj UnityEngine.Matrix4x4
IL_0030: ldloca.s 0 (UnityEngine.Matrix4x4)
IL_0032: ldarg.3
IL_0033: ldarg.s 5
IL_0035: ldc.r4 57.29578
IL_003A: mul
IL_003B: call static UnityEngine.Vector3 UnityEngine.Vector3::get_down()
IL_0040: call static UnityEngine.Quaternion
UnityEngine.Quaternion::AngleAxis(System.Single angle, UnityEngine.Vector3 axis)
IL_0045: ldarg.s 4
IL_0047: ldarg.s 4
IL_0049: ldarg.s 4
IL_004B: newobj System.Void UnityEngine.Vector3::.ctor(System.Single x,
System.Single y, System.Single z)
IL_0050: call System.Void UnityEngine.Matrix4x4::SetTRS(UnityEngine.Vector3
pos, UnityEngine.Quaternion q, UnityEngine.Vector3 s)
IL_0055: call static SimulationManager
ColossalFramework.Singleton`1<SimulationManager>::get_instance()
IL_005A: ldfld System.Single SimulationManager::m_simulationTimeDelta
IL_005F: stloc.1
IL_0060: ldc.i4.0
IL_0061: stloc.2
IL_0062: br => Label4
IL_0067: Label5
IL_0067: ldloca.s 0 (UnityEngine.Matrix4x4)
IL_0069: ldarg.1
IL_006A: ldfld Effect[] PropInfo::m_effects
IL_006F: ldloc.2
IL_0070: ldelema PropInfo+Effect
IL_0075: ldfld UnityEngine.Vector3 Effect::m_position
IL_007A: call UnityEngine.Vector3
UnityEngine.Matrix4x4::MultiplyPoint(UnityEngine.Vector3 v)
IL_007F: stloc.3
IL_0080: ldloca.s 0 (UnityEngine.Matrix4x4)
IL_0082: ldarg.1
IL_0083: ldfld Effect[] PropInfo::m_effects
IL_0088: ldloc.2
IL_0089: ldelema PropInfo+Effect
IL_008E: ldfld UnityEngine.Vector3 Effect::m_direction
IL_0093: call UnityEngine.Vector3
UnityEngine.Matrix4x4::MultiplyVector(UnityEngine.Vector3 v)
IL_0098: stloc.s 4 (UnityEngine.Vector3)
IL_009A: ldloca.s 5 (EffectInfo+SpawnArea)
IL_009C: ldloc.3
IL_009D: ldloc.s 4 (UnityEngine.Vector3)
IL_009F: ldc.r4 0
IL_00A4: call System.Void SpawnArea::.ctor(UnityEngine.Vector3 position,
UnityEngine.Vector3 direction, System.Single radius)
IL_00A9: ldarg.1
IL_00AA: ldfld Effect[] PropInfo::m_effects
IL_00AF: ldloc.2
IL_00B0: ldelema PropInfo+Effect
IL_00B5: ldfld EffectInfo Effect::m_effect
IL_00BA: ldarg.2
IL_00BB: ldloc.s 5 (EffectInfo+SpawnArea)
IL_00BD: call static UnityEngine.Vector3 UnityEngine.Vector3::get_zero()
IL_00C2: ldc.r4 0
IL_00C7: ldc.r4 1
IL_00CC: ldc.r4 -1
IL_00D1: ldloc.1
IL_00D2: ldarg.0
IL_00D3: callvirt virtual System.Void EffectInfo::RenderEffect(InstanceID id,
SpawnArea area, UnityEngine.Vector3 velocity, System.Single acceleration,
System.Single magnitude, System.Single timeOffset, System.Single timeDelta,
CameraInfo cameraInfo)
IL_00D8: ldloc.2
IL_00D9: ldc.i4.1
IL_00DA: add
IL_00DB: stloc.2
IL_00DC: Label4
IL_00DC: ldloc.2
IL_00DD: ldarg.1
IL_00DE: ldfld Effect[] PropInfo::m_effects
IL_00E3: ldlen
IL_00E4: conv.i4
IL_00E5: blt => Label5
IL_00EA: Label1
IL_00EA: Label3
IL_00EA: ldarg.1
IL_00EB: ldfld System.Boolean PropInfo::m_hasRenderer
IL_00F0: brfalse => Label6
IL_00F5: ldarg.0
IL_00F6: ldfld System.Int32 CameraInfo::m_layerMask
IL_00FB: ldc.i4.1
IL_00FC: ldarg.1
IL_00FD: ldfld System.Int32 PrefabInfo::m_prefabDataLayer
IL_0102: ldc.i4.s 31
IL_0104: and
IL_0105: shl
IL_0106: and
IL_0107: brfalse => Label7
IL_010C: call static InfoManager
ColossalFramework.Singleton`1<InfoManager>::get_instance()
IL_0111: callvirt InfoMode InfoManager::get_CurrentMode()
IL_0116: brtrue => Label8
IL_011B: ldarg 2
IL_011F: call static System.Boolean
ElectricRoads.Overrides.ElectricRoadsOverrides::CheckElectrityNetForLight(InstanceI
D id)
IL_0124: brfalse => Label24
IL_0129: ldc.r4 0
IL_012E: stloc.s 6 (System.Single)
IL_0130: ldarg.s 8
IL_0132: brtrue => Label9
IL_0137: ldarg.1
IL_0138: ldfld System.Boolean PropInfo::m_alwaysActive
IL_013D: brtrue => Label10
IL_0142: Label24
IL_0142: ldarga.s 7
IL_0144: ldc.r4 0
IL_0149: stfld System.Single UnityEngine.Vector4::z
IL_014E: br => Label11
IL_0153: Label9
IL_0153: Label10
IL_0153: ldarg.1
IL_0154: ldflda UnityEngine.Vector2 PropInfo::m_illuminationOffRange
IL_0159: ldfld System.Single UnityEngine.Vector2::x
IL_015E: ldc.r4 1000
IL_0163: blt => Label12
IL_0168: ldarg.1
IL_0169: ldfld BlinkType PropInfo::m_illuminationBlinkType
IL_016E: brfalse => Label13
IL_0173: Label12
IL_0173: call static RenderManager
ColossalFramework.Singleton`1<RenderManager>::get_instance()
IL_0178: callvirt LightSystem RenderManager::get_lightSystem()
IL_017D: stloc.s 7 (LightSystem)
IL_017F: ldloca.s 8 (ColossalFramework.Math.Randomizer)
IL_0181: ldarga.s 2
IL_0183: call System.UInt32 InstanceID::get_Index()
IL_0188: call System.Void
ColossalFramework.Math.Randomizer::.ctor(System.UInt32 _seed)
IL_018D: ldarg.1
IL_018E: ldflda UnityEngine.Vector2 PropInfo::m_illuminationOffRange
IL_0193: ldfld System.Single UnityEngine.Vector2::x
IL_0198: ldloca.s 8 (ColossalFramework.Math.Randomizer)
IL_019A: ldc.i4 100000
IL_019F: call System.Int32
ColossalFramework.Math.Randomizer::Int32(System.UInt32 range)
IL_01A4: conv.r4
IL_01A5: ldc.r4 1E-05
IL_01AA: mul
IL_01AB: ldarg.1
IL_01AC: ldflda UnityEngine.Vector2 PropInfo::m_illuminationOffRange
IL_01B1: ldfld System.Single UnityEngine.Vector2::y
IL_01B6: ldarg.1
IL_01B7: ldflda UnityEngine.Vector2 PropInfo::m_illuminationOffRange
IL_01BC: ldfld System.Single UnityEngine.Vector2::x
IL_01C1: sub
IL_01C2: mul
IL_01C3: add
IL_01C4: stloc.s 6 (System.Single)
IL_01C6: ldarga.s 7
IL_01C8: ldloc.s 6 (System.Single)
IL_01CA: ldc.r4 0.01
IL_01CF: add
IL_01D0: ldloc.s 6 (System.Single)
IL_01D2: ldc.r4 0.01
IL_01D7: sub
IL_01D8: ldloc.s 7 (LightSystem)
IL_01DA: callvirt System.Single LightSystem::get_DayLightIntensity()
IL_01DF: call static System.Single MathUtils::SmoothStep(System.Single edge0,
System.Single edge1, System.Single x)
IL_01E4: stfld System.Single UnityEngine.Vector4::z
IL_01E9: ldarg.1
IL_01EA: ldfld BlinkType PropInfo::m_illuminationBlinkType
IL_01EF: brfalse => Label14
IL_01F4: ldarg.1
IL_01F5: ldfld BlinkType PropInfo::m_illuminationBlinkType
IL_01FA: call static UnityEngine.Vector4
LightEffect::GetBlinkVector(BlinkType type)
IL_01FF: stloc.s 9 (UnityEngine.Vector4)
IL_0201: ldloc.s 6 (System.Single)
IL_0203: ldc.r4 3.71
IL_0208: mul
IL_0209: call static SimulationManager
ColossalFramework.Singleton`1<SimulationManager>::get_instance()
IL_020E: ldfld System.Single SimulationManager::m_simulationTimer
IL_0213: ldloca.s 9 (UnityEngine.Vector4)
IL_0215: ldfld System.Single UnityEngine.Vector4::w
IL_021A: div
IL_021B: add
IL_021C: stloc.s 10 (System.Single)
IL_021E: ldloc.s 10 (System.Single)
IL_0220: ldloc.s 10 (System.Single)
IL_0222: call static System.Single UnityEngine.Mathf::Floor(System.Single f)
IL_0227: sub
IL_0228: ldloca.s 9 (UnityEngine.Vector4)
IL_022A: ldfld System.Single UnityEngine.Vector4::w
IL_022F: mul
IL_0230: stloc.s 10 (System.Single)
IL_0232: ldloca.s 9 (UnityEngine.Vector4)
IL_0234: ldfld System.Single UnityEngine.Vector4::x
IL_0239: ldloca.s 9 (UnityEngine.Vector4)
IL_023B: ldfld System.Single UnityEngine.Vector4::y
IL_0240: ldloc.s 10 (System.Single)
IL_0242: call static System.Single MathUtils::SmoothStep(System.Single edge0,
System.Single edge1, System.Single x)
IL_0247: stloc.s 11 (System.Single)
IL_0249: ldloca.s 9 (UnityEngine.Vector4)
IL_024B: ldfld System.Single UnityEngine.Vector4::w
IL_0250: ldloca.s 9 (UnityEngine.Vector4)
IL_0252: ldfld System.Single UnityEngine.Vector4::z
IL_0257: ldloc.s 10 (System.Single)
IL_0259: call static System.Single MathUtils::SmoothStep(System.Single edge0,
System.Single edge1, System.Single x)
IL_025E: stloc.s 12 (System.Single)
IL_0260: ldarga.s 7
IL_0262: dup
IL_0263: ldfld System.Single UnityEngine.Vector4::z
IL_0268: ldc.r4 1
IL_026D: ldloc.s 11 (System.Single)
IL_026F: ldloc.s 12 (System.Single)
IL_0271: mul
IL_0272: sub
IL_0273: mul
IL_0274: stfld System.Single UnityEngine.Vector4::z
IL_0279: Label14
IL_0279: br => Label15
IL_027E: Label13
IL_027E: ldarga.s 7
IL_0280: ldc.r4 1
IL_0285: stfld System.Single UnityEngine.Vector4::z
IL_028A: Label8
IL_028A: Label11
IL_028A: Label15
IL_028A: ldarg.0
IL_028B: brfalse => Label16
IL_0290: ldarg.0
IL_0291: ldarg.3
IL_0292: ldarg.1
IL_0293: ldfld System.Single PropInfo::m_lodRenderDistance
IL_0298: callvirt System.Boolean
CameraInfo::CheckRenderDistance(UnityEngine.Vector3 point, System.Single
maxDistance)
IL_029D: brfalse => Label17
IL_02A2: Label16
IL_02A2: ldloca.s 13 (UnityEngine.Matrix4x4)
IL_02A4: initobj UnityEngine.Matrix4x4
IL_02AA: ldloca.s 13 (UnityEngine.Matrix4x4)
IL_02AC: ldarg.3
IL_02AD: ldarg.s 5
IL_02AF: ldc.r4 57.29578
IL_02B4: mul
IL_02B5: call static UnityEngine.Vector3 UnityEngine.Vector3::get_down()
IL_02BA: call static UnityEngine.Quaternion
UnityEngine.Quaternion::AngleAxis(System.Single angle, UnityEngine.Vector3 axis)
IL_02BF: ldarg.s 4
IL_02C1: ldarg.s 4
IL_02C3: ldarg.s 4
IL_02C5: newobj System.Void UnityEngine.Vector3::.ctor(System.Single x,
System.Single y, System.Single z)
IL_02CA: call System.Void UnityEngine.Matrix4x4::SetTRS(UnityEngine.Vector3
pos, UnityEngine.Quaternion q, UnityEngine.Vector3 s)
IL_02CF: call static PropManager
ColossalFramework.Singleton`1<PropManager>::get_instance()
IL_02D4: stloc.s 14 (PropManager)
IL_02D6: ldloc.s 14 (PropManager)
IL_02D8: ldfld UnityEngine.MaterialPropertyBlock PropManager::m_materialBlock
IL_02DD: stloc.s 15 (UnityEngine.MaterialPropertyBlock)
IL_02DF: ldloc.s 15 (UnityEngine.MaterialPropertyBlock)
IL_02E1: callvirt System.Void UnityEngine.MaterialPropertyBlock::Clear()
IL_02E6: ldloc.s 15 (UnityEngine.MaterialPropertyBlock)
IL_02E8: ldloc.s 14 (PropManager)
IL_02EA: ldfld System.Int32 PropManager::ID_Color
IL_02EF: ldarg.s 6
IL_02F1: callvirt System.Void
UnityEngine.MaterialPropertyBlock::SetColor(System.Int32 nameID, UnityEngine.Color
value)
IL_02F6: ldloc.s 15 (UnityEngine.MaterialPropertyBlock)
IL_02F8: ldloc.s 14 (PropManager)
IL_02FA: ldfld System.Int32 PropManager::ID_ObjectIndex
IL_02FF: ldarg.s 7
IL_0301: callvirt System.Void
UnityEngine.MaterialPropertyBlock::SetVector(System.Int32 nameID,
UnityEngine.Vector4 value)
IL_0306: ldarg.1
IL_0307: ldfld UnityEngine.Vector4[] PropInfo::m_rollLocation
IL_030C: brfalse => Label18
IL_0311: ldarg.1
IL_0312: ldfld UnityEngine.Material PropInfo::m_material
IL_0317: ldloc.s 14 (PropManager)
IL_0319: ldfld System.Int32 PropManager::ID_RollLocation
IL_031E: ldarg.1
IL_031F: ldfld UnityEngine.Vector4[] PropInfo::m_rollLocation
IL_0324: callvirt System.Void UnityEngine.Material::SetVectorArray(System.Int32
nameID, UnityEngine.Vector4[] values)
IL_0329: ldarg.1
IL_032A: ldfld UnityEngine.Material PropInfo::m_material
IL_032F: ldloc.s 14 (PropManager)
IL_0331: ldfld System.Int32 PropManager::ID_RollParams
IL_0336: ldarg.1
IL_0337: ldfld UnityEngine.Vector4[] PropInfo::m_rollParams
IL_033C: callvirt System.Void UnityEngine.Material::SetVectorArray(System.Int32
nameID, UnityEngine.Vector4[] values)
IL_0341: Label18
IL_0341: ldloc.s 14 (PropManager)
IL_0343: ldflda DrawCallData SimulationManagerBase`2<PropManager,
PropProperties>::m_drawCallData
IL_0348: dup
IL_0349: ldfld System.Int32 DrawCallData::m_defaultCalls
IL_034E: ldc.i4.1
IL_034F: add
IL_0350: stfld System.Int32 DrawCallData::m_defaultCalls
IL_0355: ldarg.1
IL_0356: ldfld UnityEngine.Mesh PropInfo::m_mesh
IL_035B: ldloc.s 13 (UnityEngine.Matrix4x4)
IL_035D: ldarg.1
IL_035E: ldfld UnityEngine.Material PropInfo::m_material
IL_0363: ldarg.1
IL_0364: ldfld System.Int32 PrefabInfo::m_prefabDataLayer
IL_0369: ldnull
IL_036A: ldc.i4.0
IL_036B: ldloc.s 15 (UnityEngine.MaterialPropertyBlock)
IL_036D: call static System.Void
UnityEngine.Graphics::DrawMesh(UnityEngine.Mesh mesh, UnityEngine.Matrix4x4 matrix,
UnityEngine.Material material, System.Int32 layer, UnityEngine.Camera camera,
System.Int32 submeshIndex, UnityEngine.MaterialPropertyBlock properties)
IL_0372: br => Label19
IL_0377: Label17
IL_0377: ldarg.1
IL_0378: ldfld UnityEngine.Material PropInfo::m_lodMaterialCombined
IL_037D: ldnull
IL_037E: call static System.Boolean
UnityEngine.Object::op_Equality(UnityEngine.Object x, UnityEngine.Object y)
IL_0383: brfalse => Label20
IL_0388: ldloca.s 16 (UnityEngine.Matrix4x4)
IL_038A: initobj UnityEngine.Matrix4x4
IL_0390: ldloca.s 16 (UnityEngine.Matrix4x4)
IL_0392: ldarg.3
IL_0393: ldarg.s 5
IL_0395: ldc.r4 57.29578
IL_039A: mul
IL_039B: call static UnityEngine.Vector3 UnityEngine.Vector3::get_down()
IL_03A0: call static UnityEngine.Quaternion
UnityEngine.Quaternion::AngleAxis(System.Single angle, UnityEngine.Vector3 axis)
IL_03A5: ldarg.s 4
IL_03A7: ldarg.s 4
IL_03A9: ldarg.s 4
IL_03AB: newobj System.Void UnityEngine.Vector3::.ctor(System.Single x,
System.Single y, System.Single z)
IL_03B0: call System.Void UnityEngine.Matrix4x4::SetTRS(UnityEngine.Vector3
pos, UnityEngine.Quaternion q, UnityEngine.Vector3 s)
IL_03B5: call static PropManager
ColossalFramework.Singleton`1<PropManager>::get_instance()
IL_03BA: stloc.s 17 (PropManager)
IL_03BC: ldloc.s 17 (PropManager)
IL_03BE: ldfld UnityEngine.MaterialPropertyBlock PropManager::m_materialBlock
IL_03C3: stloc.s 18 (UnityEngine.MaterialPropertyBlock)
IL_03C5: ldloc.s 18 (UnityEngine.MaterialPropertyBlock)
IL_03C7: callvirt System.Void UnityEngine.MaterialPropertyBlock::Clear()
IL_03CC: ldloc.s 18 (UnityEngine.MaterialPropertyBlock)
IL_03CE: ldloc.s 17 (PropManager)
IL_03D0: ldfld System.Int32 PropManager::ID_Color
IL_03D5: ldarg.s 6
IL_03D7: callvirt System.Void
UnityEngine.MaterialPropertyBlock::SetColor(System.Int32 nameID, UnityEngine.Color
value)
IL_03DC: ldloc.s 18 (UnityEngine.MaterialPropertyBlock)
IL_03DE: ldloc.s 17 (PropManager)
IL_03E0: ldfld System.Int32 PropManager::ID_ObjectIndex
IL_03E5: ldarg.s 7
IL_03E7: callvirt System.Void
UnityEngine.MaterialPropertyBlock::SetVector(System.Int32 nameID,
UnityEngine.Vector4 value)
IL_03EC: ldarg.1
IL_03ED: ldfld UnityEngine.Vector4[] PropInfo::m_rollLocation
IL_03F2: brfalse => Label21
IL_03F7: ldarg.1
IL_03F8: ldfld UnityEngine.Material PropInfo::m_material
IL_03FD: ldloc.s 17 (PropManager)
IL_03FF: ldfld System.Int32 PropManager::ID_RollLocation
IL_0404: ldarg.1
IL_0405: ldfld UnityEngine.Vector4[] PropInfo::m_rollLocation
IL_040A: callvirt System.Void UnityEngine.Material::SetVectorArray(System.Int32
nameID, UnityEngine.Vector4[] values)
IL_040F: ldarg.1
IL_0410: ldfld UnityEngine.Material PropInfo::m_material
IL_0415: ldloc.s 17 (PropManager)
IL_0417: ldfld System.Int32 PropManager::ID_RollParams
IL_041C: ldarg.1
IL_041D: ldfld UnityEngine.Vector4[] PropInfo::m_rollParams
IL_0422: callvirt System.Void UnityEngine.Material::SetVectorArray(System.Int32
nameID, UnityEngine.Vector4[] values)
IL_0427: Label21
IL_0427: ldloc.s 17 (PropManager)
IL_0429: ldflda DrawCallData SimulationManagerBase`2<PropManager,
PropProperties>::m_drawCallData
IL_042E: dup
IL_042F: ldfld System.Int32 DrawCallData::m_defaultCalls
IL_0434: ldc.i4.1
IL_0435: add
IL_0436: stfld System.Int32 DrawCallData::m_defaultCalls
IL_043B: ldarg.1
IL_043C: ldfld UnityEngine.Mesh PropInfo::m_lodMesh
IL_0441: ldloc.s 16 (UnityEngine.Matrix4x4)
IL_0443: ldarg.1
IL_0444: ldfld UnityEngine.Material PropInfo::m_lodMaterial
IL_0449: ldarg.1
IL_044A: ldfld System.Int32 PrefabInfo::m_prefabDataLayer
IL_044F: ldnull
IL_0450: ldc.i4.0
IL_0451: ldloc.s 18 (UnityEngine.MaterialPropertyBlock)
IL_0453: call static System.Void
UnityEngine.Graphics::DrawMesh(UnityEngine.Mesh mesh, UnityEngine.Matrix4x4 matrix,
UnityEngine.Material material, System.Int32 layer, UnityEngine.Camera camera,
System.Int32 submeshIndex, UnityEngine.MaterialPropertyBlock properties)
IL_0458: br => Label22
IL_045D: Label20
IL_045D: ldarga.s 7
IL_045F: ldarg.s 4
IL_0461: stfld System.Single UnityEngine.Vector4::w
IL_0466: ldarg.1
IL_0467: ldfld UnityEngine.Vector4[] PropInfo::m_lodLocations
IL_046C: ldarg.1
IL_046D: ldfld System.Int32 PropInfo::m_lodCount
IL_0472: ldelema UnityEngine.Vector4
IL_0477: ldarga.s 3
IL_0479: ldfld System.Single UnityEngine.Vector3::x
IL_047E: ldarga.s 3
IL_0480: ldfld System.Single UnityEngine.Vector3::y
IL_0485: ldarga.s 3
IL_0487: ldfld System.Single UnityEngine.Vector3::z
IL_048C: ldarg.s 5
IL_048E: newobj System.Void UnityEngine.Vector4::.ctor(System.Single x,
System.Single y, System.Single z, System.Single w)
IL_0493: stobj UnityEngine.Vector4
IL_0498: ldarg.1
IL_0499: ldfld UnityEngine.Vector4[] PropInfo::m_lodObjectIndices
IL_049E: ldarg.1
IL_049F: ldfld System.Int32 PropInfo::m_lodCount
IL_04A4: ldelema UnityEngine.Vector4
IL_04A9: ldarg.s 7
IL_04AB: stobj UnityEngine.Vector4
IL_04B0: ldarg.1
IL_04B1: ldfld UnityEngine.Vector4[] PropInfo::m_lodColors
IL_04B6: ldarg.1
IL_04B7: ldfld System.Int32 PropInfo::m_lodCount
IL_04BC: ldelema UnityEngine.Vector4
IL_04C1: ldarga.s 6
IL_04C3: call UnityEngine.Color UnityEngine.Color::get_linear()
IL_04C8: call static UnityEngine.Vector4
UnityEngine.Color::op_Implicit(UnityEngine.Color c)
IL_04CD: stobj UnityEngine.Vector4
IL_04D2: ldarg.1
IL_04D3: ldarg.1
IL_04D4: ldfld UnityEngine.Vector3 PropInfo::m_lodMin
IL_04D9: ldarg.3
IL_04DA: call static UnityEngine.Vector3
UnityEngine.Vector3::Min(UnityEngine.Vector3 lhs, UnityEngine.Vector3 rhs)
IL_04DF: stfld UnityEngine.Vector3 PropInfo::m_lodMin
IL_04E4: ldarg.1
IL_04E5: ldarg.1
IL_04E6: ldfld UnityEngine.Vector3 PropInfo::m_lodMax
IL_04EB: ldarg.3
IL_04EC: call static UnityEngine.Vector3
UnityEngine.Vector3::Max(UnityEngine.Vector3 lhs, UnityEngine.Vector3 rhs)
IL_04F1: stfld UnityEngine.Vector3 PropInfo::m_lodMax
IL_04F6: ldarg.1
IL_04F7: dup
IL_04F8: ldfld System.Int32 PropInfo::m_lodCount
IL_04FD: ldc.i4.1
IL_04FE: add
IL_04FF: dup
IL_0500: stloc.s 19 (System.Int32)
IL_0502: stfld System.Int32 PropInfo::m_lodCount
IL_0507: ldloc.s 19 (System.Int32)
IL_0509: ldarg.1
IL_050A: ldfld UnityEngine.Vector4[] PropInfo::m_lodLocations
IL_050F: ldlen
IL_0510: conv.i4
IL_0511: bne.un => Label23
IL_0516: ldarg.0
IL_0517: ldarg.1
IL_0518: call static System.Void PropInstance::RenderLod(CameraInfo
cameraInfo, PropInfo info)
IL_051D: // end original
IL_051D: Label0
IL_051D: Label6
IL_051D: Label7
IL_051D: Label19
IL_051D: Label22
IL_051D: Label23
IL_051D: ret
DONE

### Patch: virtual System.Void LightEffect::PopulateGroupData(System.Int32 layer,


InstanceID id, UnityEngine.Vector3 pos, UnityEngine.Vector3 dir, 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
LightEffect::LightEffect.PopulateGroupData_Patch1(LightEffect this, System.Int32
layer, InstanceID id, UnityEngine.Vector3 pos, UnityEngine.Vector3 dir,
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.Boolean
IL_0000: Local var 1: UnityEngine.Vector3
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.Quaternion
IL_0000: Local var 7: UnityEngine.Vector4
IL_0000: Local var 8: UnityEngine.Vector2
IL_0000: Local var 9: ColossalFramework.Math.Randomizer
IL_0000: Local var 10: UnityEngine.Vector2
IL_0000: Local var 11: UnityEngine.Vector2
IL_0000: Local var 12: UnityEngine.Vector2
IL_0000: Local var 13: System.UInt16
IL_0000: Local var 14: UnityEngine.Vector3
IL_0000: Local var 15: UnityEngine.Color
IL_0000: Local var 16: UnityEngine.Color
IL_0000: Local var 17: System.Single
IL_0000: Local var 18: System.Single
IL_0000: Local var 19: System.Int32
IL_0000: Local var 20: System.Boolean
IL_0000: ldc.i4 0
IL_0005: stloc 20 (System.Boolean)
IL_0009: ldc.i4.1
IL_000A: stloc 20 (System.Boolean)
IL_000E: ldloc 20 (System.Boolean)
IL_0012: brfalse => Label1
IL_0017: ldarg 2
IL_001B: call static System.Boolean
ElectricRoads.Overrides.ElectricRoadsOverrides::CheckElectrityNetForLight(InstanceI
D id)
IL_0020: stloc 20 (System.Boolean)
IL_0024: Label1
IL_0024: nop
IL_0025: ldloc 20 (System.Boolean)
IL_0029: brfalse => Label0
IL_002E: // start original
IL_002E: ldarg.1
IL_002F: ldarg.0
IL_0030: ldfld System.Int32 LightEffect::m_groupLayer
IL_0035: beq => Label2
IL_003A: ldarg.1
IL_003B: ldarg.0
IL_003C: ldfld System.Int32 LightEffect::m_groupLayerFloating
IL_0041: bne.un => Label3
IL_0046: Label2
IL_0046: ldarg.1
IL_0047: ldarg.0
IL_0048: ldfld System.Int32 LightEffect::m_groupLayerFloating
IL_004D: ceq
IL_004F: stloc.0
IL_0050: ldloca.s 1 (UnityEngine.Vector3)
IL_0052: ldarg.0
IL_0053: ldfld System.Single LightEffect::m_lightRange
IL_0058: ldarg.0
IL_0059: ldfld System.Single LightEffect::m_lightRange
IL_005E: ldarg.0
IL_005F: ldfld System.Single LightEffect::m_lightRange
IL_0064: call System.Void UnityEngine.Vector3::.ctor(System.Single x,
System.Single y, System.Single z)
IL_0069: ldarg.3
IL_006A: ldloc.1
IL_006B: call static UnityEngine.Vector3
UnityEngine.Vector3::op_Subtraction(UnityEngine.Vector3 a, UnityEngine.Vector3 b)
IL_0070: stloc.2
IL_0071: ldarg.3
IL_0072: ldloc.1
IL_0073: call static UnityEngine.Vector3
UnityEngine.Vector3::op_Addition(UnityEngine.Vector3 a, UnityEngine.Vector3 b)
IL_0078: stloc.3
IL_0079: ldarg.s 9
IL_007B: ldarg.s 9
IL_007D: ldobj UnityEngine.Vector3
IL_0082: ldloc.2
IL_0083: call static UnityEngine.Vector3
UnityEngine.Vector3::Min(UnityEngine.Vector3 lhs, UnityEngine.Vector3 rhs)
IL_0088: stobj UnityEngine.Vector3
IL_008D: ldarg.s 10
IL_008F: ldarg.s 10
IL_0091: ldobj UnityEngine.Vector3
IL_0096: ldloc.3
IL_0097: call static UnityEngine.Vector3
UnityEngine.Vector3::Max(UnityEngine.Vector3 lhs, UnityEngine.Vector3 rhs)
IL_009C: stobj UnityEngine.Vector3
IL_00A1: ldarg.3
IL_00A2: ldarg.s 7
IL_00A4: call static UnityEngine.Vector3
UnityEngine.Vector3::op_Subtraction(UnityEngine.Vector3 a, UnityEngine.Vector3 b)
IL_00A9: stloc.s 4 (UnityEngine.Vector3)
IL_00AB: ldarg.s 11
IL_00AD: ldarg.s 11
IL_00AF: ldind.r4
IL_00B0: ldc.r4 30000
IL_00B5: call static System.Single UnityEngine.Mathf::Max(System.Single a,
System.Single b)
IL_00BA: stind.r4
IL_00BB: ldarg.0
IL_00BC: ldfld UnityEngine.LightType LightEffect::m_lightType
IL_00C1: brtrue => Label4
IL_00C6: ldarg.s 4
IL_00C8: call static UnityEngine.Quaternion
UnityEngine.Quaternion::LookRotation(UnityEngine.Vector3 forward)
IL_00CD: stloc.s 6 (UnityEngine.Quaternion)
IL_00CF: ldloc.s 6 (UnityEngine.Quaternion)
IL_00D1: ldarg.0
IL_00D2: ldfld UnityEngine.Quaternion LightEffect::m_lightRotation
IL_00D7: call static UnityEngine.Vector3 UnityEngine.Vector3::get_forward()
IL_00DC: call static UnityEngine.Vector3
UnityEngine.Quaternion::op_Multiply(UnityEngine.Quaternion rotation,
UnityEngine.Vector3 point)
IL_00E1: call static UnityEngine.Vector3
UnityEngine.Quaternion::op_Multiply(UnityEngine.Quaternion rotation,
UnityEngine.Vector3 point)
IL_00E6: stloc.s 5 (UnityEngine.Vector3)
IL_00E8: br => Label5
IL_00ED: Label4
IL_00ED: call static UnityEngine.Vector3 UnityEngine.Vector3::get_forward()
IL_00F2: stloc.s 5 (UnityEngine.Vector3)
IL_00F4: Label5
IL_00F4: ldloca.s 7 (UnityEngine.Vector4)
IL_00F6: ldloca.s 5 (UnityEngine.Vector3)
IL_00F8: ldfld System.Single UnityEngine.Vector3::x
IL_00FD: ldloca.s 5 (UnityEngine.Vector3)
IL_00FF: ldfld System.Single UnityEngine.Vector3::y
IL_0104: ldloca.s 5 (UnityEngine.Vector3)
IL_0106: ldfld System.Single UnityEngine.Vector3::z
IL_010B: ldc.r4 100000
IL_0110: call System.Void UnityEngine.Vector4::.ctor(System.Single x,
System.Single y, System.Single z, System.Single w)
IL_0115: ldarg.0
IL_0116: ldfld UnityEngine.LightType LightEffect::m_lightType
IL_011B: brtrue => Label6
IL_0120: ldloca.s 7 (UnityEngine.Vector4)
IL_0122: ldc.r4 0.01745329
IL_0127: ldarg.0
IL_0128: ldfld System.Single LightEffect::m_lightSpotAngle
IL_012D: mul
IL_012E: ldc.r4 0.5
IL_0133: mul
IL_0134: call static System.Single UnityEngine.Mathf::Cos(System.Single f)
IL_0139: neg
IL_013A: stfld System.Single UnityEngine.Vector4::w
IL_013F: Label6
IL_013F: ldloca.s 8 (UnityEngine.Vector2)
IL_0141: ldc.r4 1
IL_0146: ldarg.0
IL_0147: ldfld System.Single LightEffect::m_lightRange
IL_014C: ldarg.0
IL_014D: ldfld System.Single LightEffect::m_lightRange
IL_0152: mul
IL_0153: div
IL_0154: ldarg.0
IL_0155: ldfld System.Single LightEffect::m_lightIntensity
IL_015A: call System.Void UnityEngine.Vector2::.ctor(System.Single x,
System.Single y)
IL_015F: ldloca.s 9 (ColossalFramework.Math.Randomizer)
IL_0161: ldarga.s 2
IL_0163: call System.UInt32 InstanceID::get_Index()
IL_0168: call System.Void
ColossalFramework.Math.Randomizer::.ctor(System.UInt32 _seed)
IL_016D: ldloca.s 10 (UnityEngine.Vector2)
IL_016F: ldarg.0
IL_0170: ldflda UnityEngine.Vector2 LightEffect::m_offRange
IL_0175: ldfld System.Single UnityEngine.Vector2::x
IL_017A: ldloca.s 9 (ColossalFramework.Math.Randomizer)
IL_017C: ldc.i4 100000
IL_0181: call System.Int32
ColossalFramework.Math.Randomizer::Int32(System.UInt32 range)
IL_0186: conv.r4
IL_0187: ldc.r4 1E-05
IL_018C: mul
IL_018D: ldarg.0
IL_018E: ldflda UnityEngine.Vector2 LightEffect::m_offRange
IL_0193: ldfld System.Single UnityEngine.Vector2::y
IL_0198: ldarg.0
IL_0199: ldflda UnityEngine.Vector2 LightEffect::m_offRange
IL_019E: ldfld System.Single UnityEngine.Vector2::x
IL_01A3: sub
IL_01A4: mul
IL_01A5: add
IL_01A6: stfld System.Single UnityEngine.Vector2::x
IL_01AB: ldloca.s 10 (UnityEngine.Vector2)
IL_01AD: ldarg.0
IL_01AE: ldfld BlinkType LightEffect::m_blinkType
IL_01B3: conv.r4
IL_01B4: stfld System.Single UnityEngine.Vector2::y
IL_01B9: ldarg.2
IL_01BA: call static System.UInt16 EffectInfo::GetBuilding(InstanceID id)
IL_01BF: stloc.s 13 (System.UInt16)
IL_01C1: ldloc.s 13 (System.UInt16)
IL_01C3: brfalse => Label7
IL_01C8: ldloc.s 13 (System.UInt16)
IL_01CA: call static UnityEngine.Vector4
RenderManager::GetColorLocation(System.UInt32 instanceHolder)
IL_01CF: call static UnityEngine.Vector2
UnityEngine.Vector4::op_Implicit(UnityEngine.Vector4 v)
IL_01D4: stloc.s 11 (UnityEngine.Vector2)
IL_01D6: ldloc.0
IL_01D7: brfalse => Label8
IL_01DC: call static BuildingManager
ColossalFramework.Singleton`1<BuildingManager>::get_instance()
IL_01E1: ldfld Array16`1<Building> BuildingManager::m_buildings
IL_01E6: ldfld Building[] Array16`1<Building>::m_buffer
IL_01EB: ldloc.s 13 (System.UInt16)
IL_01ED: ldelema Building
IL_01F2: call UnityEngine.Vector3 Building::CalculateMeshPosition()
IL_01F7: stloc.s 14 (UnityEngine.Vector3)
IL_01F9: ldloc.s 14 (UnityEngine.Vector3)
IL_01FB: call static UnityEngine.Vector2
ColossalFramework.Math.VectorUtils::XZ(UnityEngine.Vector3 v)
IL_0200: stloc.s 12 (UnityEngine.Vector2)
IL_0202: ldarga.s 3
IL_0204: dup
IL_0205: ldfld System.Single UnityEngine.Vector3::y
IL_020A: ldloca.s 14 (UnityEngine.Vector3)
IL_020C: ldfld System.Single UnityEngine.Vector3::y
IL_0211: sub
IL_0212: stfld System.Single UnityEngine.Vector3::y
IL_0217: ldloca.s 4 (UnityEngine.Vector3)
IL_0219: dup
IL_021A: ldfld System.Single UnityEngine.Vector3::y
IL_021F: ldloca.s 14 (UnityEngine.Vector3)
IL_0221: ldfld System.Single UnityEngine.Vector3::y
IL_0226: sub
IL_0227: stfld System.Single UnityEngine.Vector3::y
IL_022C: br => Label9
IL_0231: Label8
IL_0231: call static UnityEngine.Vector2 UnityEngine.Vector2::get_zero()
IL_0236: stloc.s 12 (UnityEngine.Vector2)
IL_0238: Label9
IL_0238: br => Label10
IL_023D: Label7
IL_023D: ldsfld UnityEngine.Vector4 RenderManager::DefaultColorLocation
IL_0242: call static UnityEngine.Vector2
UnityEngine.Vector4::op_Implicit(UnityEngine.Vector4 v)
IL_0247: stloc.s 11 (UnityEngine.Vector2)
IL_0249: call static UnityEngine.Vector2 UnityEngine.Vector2::get_zero()
IL_024E: stloc.s 12 (UnityEngine.Vector2)
IL_0250: Label10
IL_0250: ldarg.0
IL_0251: ldfld UnityEngine.Color LightEffect::m_lightColor
IL_0256: stloc.s 15 (UnityEngine.Color)
IL_0258: ldarg.0
IL_0259: ldfld UnityEngine.Color[] LightEffect::m_variationColors
IL_025E: brfalse => Label11
IL_0263: ldarg.0
IL_0264: ldfld UnityEngine.Color[] LightEffect::m_variationColors
IL_0269: ldlen
IL_026A: conv.i4
IL_026B: brfalse => Label12
IL_0270: ldarg.0
IL_0271: ldfld UnityEngine.Color[] LightEffect::m_variationColors
IL_0276: ldloca.s 9 (ColossalFramework.Math.Randomizer)
IL_0278: ldarg.0
IL_0279: ldfld UnityEngine.Color[] LightEffect::m_variationColors
IL_027E: ldlen
IL_027F: conv.i4
IL_0280: call System.Int32
ColossalFramework.Math.Randomizer::Int32(System.UInt32 range)
IL_0285: ldelema UnityEngine.Color
IL_028A: ldobj UnityEngine.Color
IL_028F: stloc.s 16 (UnityEngine.Color)
IL_0291: ldloc.s 15 (UnityEngine.Color)
IL_0293: ldloc.s 16 (UnityEngine.Color)
IL_0295: ldloca.s 9 (ColossalFramework.Math.Randomizer)
IL_0297: ldc.i4 1000
IL_029C: call System.Int32
ColossalFramework.Math.Randomizer::Int32(System.UInt32 range)
IL_02A1: conv.r4
IL_02A2: ldc.r4 0.001
IL_02A7: mul
IL_02A8: call static UnityEngine.Color
UnityEngine.Color::Lerp(UnityEngine.Color a, UnityEngine.Color b, System.Single t)
IL_02AD: stloc.s 15 (UnityEngine.Color)
IL_02AF: Label11
IL_02AF: Label12
IL_02AF: ldloca.s 15 (UnityEngine.Color)
IL_02B1: call UnityEngine.Color UnityEngine.Color::get_linear()
IL_02B6: stloc.s 15 (UnityEngine.Color)
IL_02B8: ldloca.s 15 (UnityEngine.Color)
IL_02BA: ldarg.0
IL_02BB: ldfld UnityEngine.LightType LightEffect::m_lightType
IL_02C0: brtrue => Label13
IL_02C5: ldarg.0
IL_02C6: ldfld System.Single LightEffect::m_spotLeaking
IL_02CB: br => Label14
IL_02D0: Label13
IL_02D0: ldc.r4 0
IL_02D5: Label14
IL_02D5: stfld System.Single UnityEngine.Color::a
IL_02DA: ldarg.0
IL_02DB: ldfld System.Single LightEffect::m_lightRange
IL_02E0: ldc.r4 0.5235988
IL_02E5: call static System.Single UnityEngine.Mathf::Cos(System.Single f)
IL_02EA: div
IL_02EB: stloc.s 17 (System.Single)
IL_02ED: ldloc.s 17 (System.Single)
IL_02EF: ldc.r4 0.5
IL_02F4: mul
IL_02F5: stloc.s 18 (System.Single)
IL_02F7: ldarg.s 8
IL_02F9: ldfld UnityEngine.Vector3[] MeshData::m_vertices
IL_02FE: ldarg.s 5
IL_0300: ldind.i4
IL_0301: ldelema UnityEngine.Vector3
IL_0306: ldloca.s 4 (UnityEngine.Vector3)
IL_0308: ldfld System.Single UnityEngine.Vector3::x
IL_030D: ldloc.s 18 (System.Single)
IL_030F: sub
IL_0310: ldloca.s 4 (UnityEngine.Vector3)
IL_0312: ldfld System.Single UnityEngine.Vector3::y
IL_0317: ldarg.0
IL_0318: ldfld System.Single LightEffect::m_lightRange
IL_031D: add
IL_031E: ldloca.s 4 (UnityEngine.Vector3)
IL_0320: ldfld System.Single UnityEngine.Vector3::z
IL_0325: ldarg.0
IL_0326: ldfld System.Single LightEffect::m_lightRange
IL_032B: add
IL_032C: newobj System.Void UnityEngine.Vector3::.ctor(System.Single x,
System.Single y, System.Single z)
IL_0331: stobj UnityEngine.Vector3
IL_0336: ldarg.s 8
IL_0338: ldfld UnityEngine.Vector3[] MeshData::m_normals
IL_033D: ldarg.s 5
IL_033F: ldind.i4
IL_0340: ldelema UnityEngine.Vector3
IL_0345: ldarg.3
IL_0346: stobj UnityEngine.Vector3
IL_034B: ldarg.s 8
IL_034D: ldfld UnityEngine.Vector4[] MeshData::m_tangents
IL_0352: ldarg.s 5
IL_0354: ldind.i4
IL_0355: ldelema UnityEngine.Vector4
IL_035A: ldloc.s 7 (UnityEngine.Vector4)
IL_035C: stobj UnityEngine.Vector4
IL_0361: ldarg.s 8
IL_0363: ldfld UnityEngine.Vector2[] MeshData::m_uvs
IL_0368: ldarg.s 5
IL_036A: ldind.i4
IL_036B: ldelema UnityEngine.Vector2
IL_0370: ldloc.s 8 (UnityEngine.Vector2)
IL_0372: stobj UnityEngine.Vector2
IL_0377: ldarg.s 8
IL_0379: ldfld UnityEngine.Vector2[] MeshData::m_uvs2
IL_037E: ldarg.s 5
IL_0380: ldind.i4
IL_0381: ldelema UnityEngine.Vector2
IL_0386: ldloc.s 10 (UnityEngine.Vector2)
IL_0388: stobj UnityEngine.Vector2
IL_038D: ldarg.s 8
IL_038F: ldfld UnityEngine.Vector2[] MeshData::m_uvs3
IL_0394: ldarg.s 5
IL_0396: ldind.i4
IL_0397: ldelema UnityEngine.Vector2
IL_039C: ldloc.s 11 (UnityEngine.Vector2)
IL_039E: stobj UnityEngine.Vector2
IL_03A3: ldloc.0
IL_03A4: brfalse => Label15
IL_03A9: ldarg.s 8
IL_03AB: ldfld UnityEngine.Vector2[] MeshData::m_uvs4
IL_03B0: ldarg.s 5
IL_03B2: ldind.i4
IL_03B3: ldelema UnityEngine.Vector2
IL_03B8: ldloc.s 12 (UnityEngine.Vector2)
IL_03BA: stobj UnityEngine.Vector2
IL_03BF: Label15
IL_03BF: ldarg.s 8
IL_03C1: ldfld UnityEngine.Color32[] MeshData::m_colors
IL_03C6: ldarg.s 5
IL_03C8: ldind.i4
IL_03C9: ldelema UnityEngine.Color32
IL_03CE: ldloc.s 15 (UnityEngine.Color)
IL_03D0: call static UnityEngine.Color32
UnityEngine.Color32::op_Implicit(UnityEngine.Color c)
IL_03D5: stobj UnityEngine.Color32
IL_03DA: ldarg.s 5
IL_03DC: ldarg.s 5
IL_03DE: ldind.i4
IL_03DF: ldc.i4.1
IL_03E0: add
IL_03E1: stind.i4
IL_03E2: ldarg.s 8
IL_03E4: ldfld UnityEngine.Vector3[] MeshData::m_vertices
IL_03E9: ldarg.s 5
IL_03EB: ldind.i4
IL_03EC: ldelema UnityEngine.Vector3
IL_03F1: ldloca.s 4 (UnityEngine.Vector3)
IL_03F3: ldfld System.Single UnityEngine.Vector3::x
IL_03F8: ldloc.s 18 (System.Single)
IL_03FA: add
IL_03FB: ldloca.s 4 (UnityEngine.Vector3)
IL_03FD: ldfld System.Single UnityEngine.Vector3::y
IL_0402: ldarg.0
IL_0403: ldfld System.Single LightEffect::m_lightRange
IL_0408: add
IL_0409: ldloca.s 4 (UnityEngine.Vector3)
IL_040B: ldfld System.Single UnityEngine.Vector3::z
IL_0410: ldarg.0
IL_0411: ldfld System.Single LightEffect::m_lightRange
IL_0416: add
IL_0417: newobj System.Void UnityEngine.Vector3::.ctor(System.Single x,
System.Single y, System.Single z)
IL_041C: stobj UnityEngine.Vector3
IL_0421: ldarg.s 8
IL_0423: ldfld UnityEngine.Vector3[] MeshData::m_normals
IL_0428: ldarg.s 5
IL_042A: ldind.i4
IL_042B: ldelema UnityEngine.Vector3
IL_0430: ldarg.3
IL_0431: stobj UnityEngine.Vector3
IL_0436: ldarg.s 8
IL_0438: ldfld UnityEngine.Vector4[] MeshData::m_tangents
IL_043D: ldarg.s 5
IL_043F: ldind.i4
IL_0440: ldelema UnityEngine.Vector4
IL_0445: ldloc.s 7 (UnityEngine.Vector4)
IL_0447: stobj UnityEngine.Vector4
IL_044C: ldarg.s 8
IL_044E: ldfld UnityEngine.Vector2[] MeshData::m_uvs
IL_0453: ldarg.s 5
IL_0455: ldind.i4
IL_0456: ldelema UnityEngine.Vector2
IL_045B: ldloc.s 8 (UnityEngine.Vector2)
IL_045D: stobj UnityEngine.Vector2
IL_0462: ldarg.s 8
IL_0464: ldfld UnityEngine.Vector2[] MeshData::m_uvs2
IL_0469: ldarg.s 5
IL_046B: ldind.i4
IL_046C: ldelema UnityEngine.Vector2
IL_0471: ldloc.s 10 (UnityEngine.Vector2)
IL_0473: stobj UnityEngine.Vector2
IL_0478: ldarg.s 8
IL_047A: ldfld UnityEngine.Vector2[] MeshData::m_uvs3
IL_047F: ldarg.s 5
IL_0481: ldind.i4
IL_0482: ldelema UnityEngine.Vector2
IL_0487: ldloc.s 11 (UnityEngine.Vector2)
IL_0489: stobj UnityEngine.Vector2
IL_048E: ldloc.0
IL_048F: brfalse => Label16
IL_0494: ldarg.s 8
IL_0496: ldfld UnityEngine.Vector2[] MeshData::m_uvs4
IL_049B: ldarg.s 5
IL_049D: ldind.i4
IL_049E: ldelema UnityEngine.Vector2
IL_04A3: ldloc.s 12 (UnityEngine.Vector2)
IL_04A5: stobj UnityEngine.Vector2
IL_04AA: Label16
IL_04AA: ldarg.s 8
IL_04AC: ldfld UnityEngine.Color32[] MeshData::m_colors
IL_04B1: ldarg.s 5
IL_04B3: ldind.i4
IL_04B4: ldelema UnityEngine.Color32
IL_04B9: ldloc.s 15 (UnityEngine.Color)
IL_04BB: call static UnityEngine.Color32
UnityEngine.Color32::op_Implicit(UnityEngine.Color c)
IL_04C0: stobj UnityEngine.Color32
IL_04C5: ldarg.s 5
IL_04C7: ldarg.s 5
IL_04C9: ldind.i4
IL_04CA: ldc.i4.1
IL_04CB: add
IL_04CC: stind.i4
IL_04CD: ldarg.s 8
IL_04CF: ldfld UnityEngine.Vector3[] MeshData::m_vertices
IL_04D4: ldarg.s 5
IL_04D6: ldind.i4
IL_04D7: ldelema UnityEngine.Vector3
IL_04DC: ldloca.s 4 (UnityEngine.Vector3)
IL_04DE: ldfld System.Single UnityEngine.Vector3::x
IL_04E3: ldloc.s 17 (System.Single)
IL_04E5: add
IL_04E6: ldloca.s 4 (UnityEngine.Vector3)
IL_04E8: ldfld System.Single UnityEngine.Vector3::y
IL_04ED: ldloca.s 4 (UnityEngine.Vector3)
IL_04EF: ldfld System.Single UnityEngine.Vector3::z
IL_04F4: ldarg.0
IL_04F5: ldfld System.Single LightEffect::m_lightRange
IL_04FA: add
IL_04FB: newobj System.Void UnityEngine.Vector3::.ctor(System.Single x,
System.Single y, System.Single z)
IL_0500: stobj UnityEngine.Vector3
IL_0505: ldarg.s 8
IL_0507: ldfld UnityEngine.Vector3[] MeshData::m_normals
IL_050C: ldarg.s 5
IL_050E: ldind.i4
IL_050F: ldelema UnityEngine.Vector3
IL_0514: ldarg.3
IL_0515: stobj UnityEngine.Vector3
IL_051A: ldarg.s 8
IL_051C: ldfld UnityEngine.Vector4[] MeshData::m_tangents
IL_0521: ldarg.s 5
IL_0523: ldind.i4
IL_0524: ldelema UnityEngine.Vector4
IL_0529: ldloc.s 7 (UnityEngine.Vector4)
IL_052B: stobj UnityEngine.Vector4
IL_0530: ldarg.s 8
IL_0532: ldfld UnityEngine.Vector2[] MeshData::m_uvs
IL_0537: ldarg.s 5
IL_0539: ldind.i4
IL_053A: ldelema UnityEngine.Vector2
IL_053F: ldloc.s 8 (UnityEngine.Vector2)
IL_0541: stobj UnityEngine.Vector2
IL_0546: ldarg.s 8
IL_0548: ldfld UnityEngine.Vector2[] MeshData::m_uvs2
IL_054D: ldarg.s 5
IL_054F: ldind.i4
IL_0550: ldelema UnityEngine.Vector2
IL_0555: ldloc.s 10 (UnityEngine.Vector2)
IL_0557: stobj UnityEngine.Vector2
IL_055C: ldarg.s 8
IL_055E: ldfld UnityEngine.Vector2[] MeshData::m_uvs3
IL_0563: ldarg.s 5
IL_0565: ldind.i4
IL_0566: ldelema UnityEngine.Vector2
IL_056B: ldloc.s 11 (UnityEngine.Vector2)
IL_056D: stobj UnityEngine.Vector2
IL_0572: ldloc.0
IL_0573: brfalse => Label17
IL_0578: ldarg.s 8
IL_057A: ldfld UnityEngine.Vector2[] MeshData::m_uvs4
IL_057F: ldarg.s 5
IL_0581: ldind.i4
IL_0582: ldelema UnityEngine.Vector2
IL_0587: ldloc.s 12 (UnityEngine.Vector2)
IL_0589: stobj UnityEngine.Vector2
IL_058E: Label17
IL_058E: ldarg.s 8
IL_0590: ldfld UnityEngine.Color32[] MeshData::m_colors
IL_0595: ldarg.s 5
IL_0597: ldind.i4
IL_0598: ldelema UnityEngine.Color32
IL_059D: ldloc.s 15 (UnityEngine.Color)
IL_059F: call static UnityEngine.Color32
UnityEngine.Color32::op_Implicit(UnityEngine.Color c)
IL_05A4: stobj UnityEngine.Color32
IL_05A9: ldarg.s 5
IL_05AB: ldarg.s 5
IL_05AD: ldind.i4
IL_05AE: ldc.i4.1
IL_05AF: add
IL_05B0: stind.i4
IL_05B1: ldarg.s 8
IL_05B3: ldfld UnityEngine.Vector3[] MeshData::m_vertices
IL_05B8: ldarg.s 5
IL_05BA: ldind.i4
IL_05BB: ldelema UnityEngine.Vector3
IL_05C0: ldloca.s 4 (UnityEngine.Vector3)
IL_05C2: ldfld System.Single UnityEngine.Vector3::x
IL_05C7: ldloc.s 18 (System.Single)
IL_05C9: add
IL_05CA: ldloca.s 4 (UnityEngine.Vector3)
IL_05CC: ldfld System.Single UnityEngine.Vector3::y
IL_05D1: ldarg.0
IL_05D2: ldfld System.Single LightEffect::m_lightRange
IL_05D7: sub
IL_05D8: ldloca.s 4 (UnityEngine.Vector3)
IL_05DA: ldfld System.Single UnityEngine.Vector3::z
IL_05DF: ldarg.0
IL_05E0: ldfld System.Single LightEffect::m_lightRange
IL_05E5: add
IL_05E6: newobj System.Void UnityEngine.Vector3::.ctor(System.Single x,
System.Single y, System.Single z)
IL_05EB: stobj UnityEngine.Vector3
IL_05F0: ldarg.s 8
IL_05F2: ldfld UnityEngine.Vector3[] MeshData::m_normals
IL_05F7: ldarg.s 5
IL_05F9: ldind.i4
IL_05FA: ldelema UnityEngine.Vector3
IL_05FF: ldarg.3
IL_0600: stobj UnityEngine.Vector3
IL_0605: ldarg.s 8
IL_0607: ldfld UnityEngine.Vector4[] MeshData::m_tangents
IL_060C: ldarg.s 5
IL_060E: ldind.i4
IL_060F: ldelema UnityEngine.Vector4
IL_0614: ldloc.s 7 (UnityEngine.Vector4)
IL_0616: stobj UnityEngine.Vector4
IL_061B: ldarg.s 8
IL_061D: ldfld UnityEngine.Vector2[] MeshData::m_uvs
IL_0622: ldarg.s 5
IL_0624: ldind.i4
IL_0625: ldelema UnityEngine.Vector2
IL_062A: ldloc.s 8 (UnityEngine.Vector2)
IL_062C: stobj UnityEngine.Vector2
IL_0631: ldarg.s 8
IL_0633: ldfld UnityEngine.Vector2[] MeshData::m_uvs2
IL_0638: ldarg.s 5
IL_063A: ldind.i4
IL_063B: ldelema UnityEngine.Vector2
IL_0640: ldloc.s 10 (UnityEngine.Vector2)
IL_0642: stobj UnityEngine.Vector2
IL_0647: ldarg.s 8
IL_0649: ldfld UnityEngine.Vector2[] MeshData::m_uvs3
IL_064E: ldarg.s 5
IL_0650: ldind.i4
IL_0651: ldelema UnityEngine.Vector2
IL_0656: ldloc.s 11 (UnityEngine.Vector2)
IL_0658: stobj UnityEngine.Vector2
IL_065D: ldloc.0
IL_065E: brfalse => Label18
IL_0663: ldarg.s 8
IL_0665: ldfld UnityEngine.Vector2[] MeshData::m_uvs4
IL_066A: ldarg.s 5
IL_066C: ldind.i4
IL_066D: ldelema UnityEngine.Vector2
IL_0672: ldloc.s 12 (UnityEngine.Vector2)
IL_0674: stobj UnityEngine.Vector2
IL_0679: Label18
IL_0679: ldarg.s 8
IL_067B: ldfld UnityEngine.Color32[] MeshData::m_colors
IL_0680: ldarg.s 5
IL_0682: ldind.i4
IL_0683: ldelema UnityEngine.Color32
IL_0688: ldloc.s 15 (UnityEngine.Color)
IL_068A: call static UnityEngine.Color32
UnityEngine.Color32::op_Implicit(UnityEngine.Color c)
IL_068F: stobj UnityEngine.Color32
IL_0694: ldarg.s 5
IL_0696: ldarg.s 5
IL_0698: ldind.i4
IL_0699: ldc.i4.1
IL_069A: add
IL_069B: stind.i4
IL_069C: ldarg.s 8
IL_069E: ldfld UnityEngine.Vector3[] MeshData::m_vertices
IL_06A3: ldarg.s 5
IL_06A5: ldind.i4
IL_06A6: ldelema UnityEngine.Vector3
IL_06AB: ldloca.s 4 (UnityEngine.Vector3)
IL_06AD: ldfld System.Single UnityEngine.Vector3::x
IL_06B2: ldloc.s 18 (System.Single)
IL_06B4: sub
IL_06B5: ldloca.s 4 (UnityEngine.Vector3)
IL_06B7: ldfld System.Single UnityEngine.Vector3::y
IL_06BC: ldarg.0
IL_06BD: ldfld System.Single LightEffect::m_lightRange
IL_06C2: sub
IL_06C3: ldloca.s 4 (UnityEngine.Vector3)
IL_06C5: ldfld System.Single UnityEngine.Vector3::z
IL_06CA: ldarg.0
IL_06CB: ldfld System.Single LightEffect::m_lightRange
IL_06D0: add
IL_06D1: newobj System.Void UnityEngine.Vector3::.ctor(System.Single x,
System.Single y, System.Single z)
IL_06D6: stobj UnityEngine.Vector3
IL_06DB: ldarg.s 8
IL_06DD: ldfld UnityEngine.Vector3[] MeshData::m_normals
IL_06E2: ldarg.s 5
IL_06E4: ldind.i4
IL_06E5: ldelema UnityEngine.Vector3
IL_06EA: ldarg.3
IL_06EB: stobj UnityEngine.Vector3
IL_06F0: ldarg.s 8
IL_06F2: ldfld UnityEngine.Vector4[] MeshData::m_tangents
IL_06F7: ldarg.s 5
IL_06F9: ldind.i4
IL_06FA: ldelema UnityEngine.Vector4
IL_06FF: ldloc.s 7 (UnityEngine.Vector4)
IL_0701: stobj UnityEngine.Vector4
IL_0706: ldarg.s 8
IL_0708: ldfld UnityEngine.Vector2[] MeshData::m_uvs
IL_070D: ldarg.s 5
IL_070F: ldind.i4
IL_0710: ldelema UnityEngine.Vector2
IL_0715: ldloc.s 8 (UnityEngine.Vector2)
IL_0717: stobj UnityEngine.Vector2
IL_071C: ldarg.s 8
IL_071E: ldfld UnityEngine.Vector2[] MeshData::m_uvs2
IL_0723: ldarg.s 5
IL_0725: ldind.i4
IL_0726: ldelema UnityEngine.Vector2
IL_072B: ldloc.s 10 (UnityEngine.Vector2)
IL_072D: stobj UnityEngine.Vector2
IL_0732: ldarg.s 8
IL_0734: ldfld UnityEngine.Vector2[] MeshData::m_uvs3
IL_0739: ldarg.s 5
IL_073B: ldind.i4
IL_073C: ldelema UnityEngine.Vector2
IL_0741: ldloc.s 11 (UnityEngine.Vector2)
IL_0743: stobj UnityEngine.Vector2
IL_0748: ldloc.0
IL_0749: brfalse => Label19
IL_074E: ldarg.s 8
IL_0750: ldfld UnityEngine.Vector2[] MeshData::m_uvs4
IL_0755: ldarg.s 5
IL_0757: ldind.i4
IL_0758: ldelema UnityEngine.Vector2
IL_075D: ldloc.s 12 (UnityEngine.Vector2)
IL_075F: stobj UnityEngine.Vector2
IL_0764: Label19
IL_0764: ldarg.s 8
IL_0766: ldfld UnityEngine.Color32[] MeshData::m_colors
IL_076B: ldarg.s 5
IL_076D: ldind.i4
IL_076E: ldelema UnityEngine.Color32
IL_0773: ldloc.s 15 (UnityEngine.Color)
IL_0775: call static UnityEngine.Color32
UnityEngine.Color32::op_Implicit(UnityEngine.Color c)
IL_077A: stobj UnityEngine.Color32
IL_077F: ldarg.s 5
IL_0781: ldarg.s 5
IL_0783: ldind.i4
IL_0784: ldc.i4.1
IL_0785: add
IL_0786: stind.i4
IL_0787: ldarg.s 8
IL_0789: ldfld UnityEngine.Vector3[] MeshData::m_vertices
IL_078E: ldarg.s 5
IL_0790: ldind.i4
IL_0791: ldelema UnityEngine.Vector3
IL_0796: ldloca.s 4 (UnityEngine.Vector3)
IL_0798: ldfld System.Single UnityEngine.Vector3::x
IL_079D: ldloc.s 17 (System.Single)
IL_079F: sub
IL_07A0: ldloca.s 4 (UnityEngine.Vector3)
IL_07A2: ldfld System.Single UnityEngine.Vector3::y
IL_07A7: ldloca.s 4 (UnityEngine.Vector3)
IL_07A9: ldfld System.Single UnityEngine.Vector3::z
IL_07AE: ldarg.0
IL_07AF: ldfld System.Single LightEffect::m_lightRange
IL_07B4: add
IL_07B5: newobj System.Void UnityEngine.Vector3::.ctor(System.Single x,
System.Single y, System.Single z)
IL_07BA: stobj UnityEngine.Vector3
IL_07BF: ldarg.s 8
IL_07C1: ldfld UnityEngine.Vector3[] MeshData::m_normals
IL_07C6: ldarg.s 5
IL_07C8: ldind.i4
IL_07C9: ldelema UnityEngine.Vector3
IL_07CE: ldarg.3
IL_07CF: stobj UnityEngine.Vector3
IL_07D4: ldarg.s 8
IL_07D6: ldfld UnityEngine.Vector4[] MeshData::m_tangents
IL_07DB: ldarg.s 5
IL_07DD: ldind.i4
IL_07DE: ldelema UnityEngine.Vector4
IL_07E3: ldloc.s 7 (UnityEngine.Vector4)
IL_07E5: stobj UnityEngine.Vector4
IL_07EA: ldarg.s 8
IL_07EC: ldfld UnityEngine.Vector2[] MeshData::m_uvs
IL_07F1: ldarg.s 5
IL_07F3: ldind.i4
IL_07F4: ldelema UnityEngine.Vector2
IL_07F9: ldloc.s 8 (UnityEngine.Vector2)
IL_07FB: stobj UnityEngine.Vector2
IL_0800: ldarg.s 8
IL_0802: ldfld UnityEngine.Vector2[] MeshData::m_uvs2
IL_0807: ldarg.s 5
IL_0809: ldind.i4
IL_080A: ldelema UnityEngine.Vector2
IL_080F: ldloc.s 10 (UnityEngine.Vector2)
IL_0811: stobj UnityEngine.Vector2
IL_0816: ldarg.s 8
IL_0818: ldfld UnityEngine.Vector2[] MeshData::m_uvs3
IL_081D: ldarg.s 5
IL_081F: ldind.i4
IL_0820: ldelema UnityEngine.Vector2
IL_0825: ldloc.s 11 (UnityEngine.Vector2)
IL_0827: stobj UnityEngine.Vector2
IL_082C: ldloc.0
IL_082D: brfalse => Label20
IL_0832: ldarg.s 8
IL_0834: ldfld UnityEngine.Vector2[] MeshData::m_uvs4
IL_0839: ldarg.s 5
IL_083B: ldind.i4
IL_083C: ldelema UnityEngine.Vector2
IL_0841: ldloc.s 12 (UnityEngine.Vector2)
IL_0843: stobj UnityEngine.Vector2
IL_0848: Label20
IL_0848: ldarg.s 8
IL_084A: ldfld UnityEngine.Color32[] MeshData::m_colors
IL_084F: ldarg.s 5
IL_0851: ldind.i4
IL_0852: ldelema UnityEngine.Color32
IL_0857: ldloc.s 15 (UnityEngine.Color)
IL_0859: call static UnityEngine.Color32
UnityEngine.Color32::op_Implicit(UnityEngine.Color c)
IL_085E: stobj UnityEngine.Color32
IL_0863: ldarg.s 5
IL_0865: ldarg.s 5
IL_0867: ldind.i4
IL_0868: ldc.i4.1
IL_0869: add
IL_086A: stind.i4
IL_086B: ldarg.s 8
IL_086D: ldfld System.Int32[] MeshData::m_triangles
IL_0872: ldarg.s 6
IL_0874: ldarg.s 6
IL_0876: ldind.i4
IL_0877: dup
IL_0878: stloc.s 19 (System.Int32)
IL_087A: ldc.i4.1
IL_087B: add
IL_087C: stind.i4
IL_087D: ldloc.s 19 (System.Int32)
IL_087F: ldarg.s 5
IL_0881: ldind.i4
IL_0882: ldc.i4.6
IL_0883: sub
IL_0884: stelem.i4
IL_0885: ldarg.s 8
IL_0887: ldfld System.Int32[] MeshData::m_triangles
IL_088C: ldarg.s 6
IL_088E: ldarg.s 6
IL_0890: ldind.i4
IL_0891: dup
IL_0892: stloc.s 19 (System.Int32)
IL_0894: ldc.i4.1
IL_0895: add
IL_0896: stind.i4
IL_0897: ldloc.s 19 (System.Int32)
IL_0899: ldarg.s 5
IL_089B: ldind.i4
IL_089C: ldc.i4.5
IL_089D: sub
IL_089E: stelem.i4
IL_089F: ldarg.s 8
IL_08A1: ldfld System.Int32[] MeshData::m_triangles
IL_08A6: ldarg.s 6
IL_08A8: ldarg.s 6
IL_08AA: ldind.i4
IL_08AB: dup
IL_08AC: stloc.s 19 (System.Int32)
IL_08AE: ldc.i4.1
IL_08AF: add
IL_08B0: stind.i4
IL_08B1: ldloc.s 19 (System.Int32)
IL_08B3: ldarg.s 5
IL_08B5: ldind.i4
IL_08B6: ldc.i4.1
IL_08B7: sub
IL_08B8: stelem.i4
IL_08B9: ldarg.s 8
IL_08BB: ldfld System.Int32[] MeshData::m_triangles
IL_08C0: ldarg.s 6
IL_08C2: ldarg.s 6
IL_08C4: ldind.i4
IL_08C5: dup
IL_08C6: stloc.s 19 (System.Int32)
IL_08C8: ldc.i4.1
IL_08C9: add
IL_08CA: stind.i4
IL_08CB: ldloc.s 19 (System.Int32)
IL_08CD: ldarg.s 5
IL_08CF: ldind.i4
IL_08D0: ldc.i4.1
IL_08D1: sub
IL_08D2: stelem.i4
IL_08D3: ldarg.s 8
IL_08D5: ldfld System.Int32[] MeshData::m_triangles
IL_08DA: ldarg.s 6
IL_08DC: ldarg.s 6
IL_08DE: ldind.i4
IL_08DF: dup
IL_08E0: stloc.s 19 (System.Int32)
IL_08E2: ldc.i4.1
IL_08E3: add
IL_08E4: stind.i4
IL_08E5: ldloc.s 19 (System.Int32)
IL_08E7: ldarg.s 5
IL_08E9: ldind.i4
IL_08EA: ldc.i4.5
IL_08EB: sub
IL_08EC: stelem.i4
IL_08ED: ldarg.s 8
IL_08EF: ldfld System.Int32[] MeshData::m_triangles
IL_08F4: ldarg.s 6
IL_08F6: ldarg.s 6
IL_08F8: ldind.i4
IL_08F9: dup
IL_08FA: stloc.s 19 (System.Int32)
IL_08FC: ldc.i4.1
IL_08FD: add
IL_08FE: stind.i4
IL_08FF: ldloc.s 19 (System.Int32)
IL_0901: ldarg.s 5
IL_0903: ldind.i4
IL_0904: ldc.i4.4
IL_0905: sub
IL_0906: stelem.i4
IL_0907: ldarg.s 8
IL_0909: ldfld System.Int32[] MeshData::m_triangles
IL_090E: ldarg.s 6
IL_0910: ldarg.s 6
IL_0912: ldind.i4
IL_0913: dup
IL_0914: stloc.s 19 (System.Int32)
IL_0916: ldc.i4.1
IL_0917: add
IL_0918: stind.i4
IL_0919: ldloc.s 19 (System.Int32)
IL_091B: ldarg.s 5
IL_091D: ldind.i4
IL_091E: ldc.i4.1
IL_091F: sub
IL_0920: stelem.i4
IL_0921: ldarg.s 8
IL_0923: ldfld System.Int32[] MeshData::m_triangles
IL_0928: ldarg.s 6
IL_092A: ldarg.s 6
IL_092C: ldind.i4
IL_092D: dup
IL_092E: stloc.s 19 (System.Int32)
IL_0930: ldc.i4.1
IL_0931: add
IL_0932: stind.i4
IL_0933: ldloc.s 19 (System.Int32)
IL_0935: ldarg.s 5
IL_0937: ldind.i4
IL_0938: ldc.i4.4
IL_0939: sub
IL_093A: stelem.i4
IL_093B: ldarg.s 8
IL_093D: ldfld System.Int32[] MeshData::m_triangles
IL_0942: ldarg.s 6
IL_0944: ldarg.s 6
IL_0946: ldind.i4
IL_0947: dup
IL_0948: stloc.s 19 (System.Int32)
IL_094A: ldc.i4.1
IL_094B: add
IL_094C: stind.i4
IL_094D: ldloc.s 19 (System.Int32)
IL_094F: ldarg.s 5
IL_0951: ldind.i4
IL_0952: ldc.i4.2
IL_0953: sub
IL_0954: stelem.i4
IL_0955: ldarg.s 8
IL_0957: ldfld System.Int32[] MeshData::m_triangles
IL_095C: ldarg.s 6
IL_095E: ldarg.s 6
IL_0960: ldind.i4
IL_0961: dup
IL_0962: stloc.s 19 (System.Int32)
IL_0964: ldc.i4.1
IL_0965: add
IL_0966: stind.i4
IL_0967: ldloc.s 19 (System.Int32)
IL_0969: ldarg.s 5
IL_096B: ldind.i4
IL_096C: ldc.i4.2
IL_096D: sub
IL_096E: stelem.i4
IL_096F: ldarg.s 8
IL_0971: ldfld System.Int32[] MeshData::m_triangles
IL_0976: ldarg.s 6
IL_0978: ldarg.s 6
IL_097A: ldind.i4
IL_097B: dup
IL_097C: stloc.s 19 (System.Int32)
IL_097E: ldc.i4.1
IL_097F: add
IL_0980: stind.i4
IL_0981: ldloc.s 19 (System.Int32)
IL_0983: ldarg.s 5
IL_0985: ldind.i4
IL_0986: ldc.i4.4
IL_0987: sub
IL_0988: stelem.i4
IL_0989: ldarg.s 8
IL_098B: ldfld System.Int32[] MeshData::m_triangles
IL_0990: ldarg.s 6
IL_0992: ldarg.s 6
IL_0994: ldind.i4
IL_0995: dup
IL_0996: stloc.s 19 (System.Int32)
IL_0998: ldc.i4.1
IL_0999: add
IL_099A: stind.i4
IL_099B: ldloc.s 19 (System.Int32)
IL_099D: ldarg.s 5
IL_099F: ldind.i4
IL_09A0: ldc.i4.3
IL_09A1: sub
IL_09A2: stelem.i4
IL_09A3: // end original
IL_09A3: Label3
IL_09A3: Label0
IL_09A3: ret
DONE

### Patch: virtual System.Void ElectricityManager::SimulationStepImpl(System.Int32


subStep)
### Replacement: static System.Void
ElectricityManager::ElectricityManager.SimulationStepImpl_Patch0(ElectricityManager
this, System.Int32 subStep)
IL_0000: Local var 0: System.UInt32
IL_0000: Local var 1: System.Int32
IL_0000: Local var 2: NetManager
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: NetInfo
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: ElectricityManager/Cell
IL_0000: Local var 13: ElectricityManager/PulseGroup
IL_0000: Local var 14: ElectricityManager/PulseUnit
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: ElectricityManager/PulseUnit
IL_0000: Local var 19: System.UInt32
IL_0000: Local var 20: System.Int32
IL_0000: Local var 21: ElectricityManager/Cell
IL_0000: Local var 22: System.Int32
IL_0000: Local var 23: System.Int32
IL_0000: Local var 24: NetNode
IL_0000: Local var 25: System.Int32
IL_0000: Local var 26: System.UInt16
IL_0000: Local var 27: System.UInt16
IL_0000: Local var 28: System.UInt16
IL_0000: Local var 29: System.UInt16
IL_0000: Local var 30: System.Int32
IL_0000: Local var 31: ElectricityManager/PulseGroup
IL_0000: Local var 32: ElectricityManager/PulseGroup
IL_0000: Local var 33: System.Int32
IL_0000: Local var 34: ElectricityManager/PulseGroup
IL_0000: Local var 35: System.Int32
IL_0000: Local var 36: ElectricityManager/Cell
IL_0000: // start original
IL_0000: ldarg.1
IL_0001: brfalse => Label0
IL_0006: ldarg.1
IL_0007: ldc.i4 1000
IL_000C: beq => Label1
IL_0011: call static SimulationManager
ColossalFramework.Singleton`1<SimulationManager>::get_instance()
IL_0016: ldfld System.UInt32 SimulationManager::m_currentFrameIndex
IL_001B: stloc.0
IL_001C: ldloc.0
IL_001D: ldc.i4 255
IL_0022: and
IL_0023: stloc.1
IL_0024: ldloc.1
IL_0025: ldc.i4 128
IL_002A: bge => Label2
IL_002F: ldloc.1
IL_0030: brtrue => Label3
IL_0035: ldarg.0
IL_0036: ldc.i4.0
IL_0037: stfld System.Int32 ElectricityManager::m_pulseGroupCount
IL_003C: ldarg.0
IL_003D: ldc.i4.0
IL_003E: stfld System.Int32 ElectricityManager::m_pulseUnitStart
IL_0043: ldarg.0
IL_0044: ldc.i4.0
IL_0045: stfld System.Int32 ElectricityManager::m_pulseUnitEnd
IL_004A: ldarg.0
IL_004B: ldc.i4.0
IL_004C: stfld System.Int32 ElectricityManager::m_processedCells
IL_0051: ldarg.0
IL_0052: ldc.i4.0
IL_0053: stfld System.Int32 ElectricityManager::m_conductiveCells
IL_0058: ldarg.0
IL_0059: ldc.i4.1
IL_005A: stfld System.Boolean ElectricityManager::m_canContinue
IL_005F: Label3
IL_005F: call static NetManager
ColossalFramework.Singleton`1<NetManager>::get_instance()
IL_0064: stloc.2
IL_0065: ldloc.1
IL_0066: ldc.i4 32768
IL_006B: mul
IL_006C: ldc.i4.7
IL_006D: shr
IL_006E: stloc.3
IL_006F: ldloc.1
IL_0070: ldc.i4.1
IL_0071: add
IL_0072: ldc.i4 32768
IL_0077: mul
IL_0078: ldc.i4.7
IL_0079: shr
IL_007A: ldc.i4.1
IL_007B: sub
IL_007C: stloc.s 4 (System.Int32)
IL_007E: ldloc.3
IL_007F: stloc.s 5 (System.Int32)
IL_0081: br => Label4
IL_0086: Label10
IL_0086: ldloc.2
IL_0087: ldfld Array16`1<NetNode> NetManager::m_nodes
IL_008C: ldfld NetNode[] Array16`1<NetNode>::m_buffer
IL_0091: ldloc.s 5 (System.Int32)
IL_0093: ldelema NetNode
IL_0098: ldfld Flags NetNode::m_flags
IL_009D: brfalse => Label5
IL_00A2: ldloc.2
IL_00A3: ldfld Array16`1<NetNode> NetManager::m_nodes
IL_00A8: ldfld NetNode[] Array16`1<NetNode>::m_buffer
IL_00AD: ldloc.s 5 (System.Int32)
IL_00AF: ldelema NetNode
IL_00B4: call static System.Boolean
ElectricRoads.Overrides.ElectricRoadsOverrides::CheckElectricConductibility(NetNode
& node)
IL_00B9: brfalse => Label7
IL_00BE: Label6
IL_00BE: ldarg.0
IL_00BF: ldloc.s 5 (System.Int32)
IL_00C1: ldarg.0
IL_00C2: ldfld System.UInt16[] ElectricityManager::m_nodeGroups
IL_00C7: ldloc.s 5 (System.Int32)
IL_00C9: ldelem.u2
IL_00CA: ldc.i4 65535
IL_00CF: beq => Label8
IL_00D4: ldc.i4.1
IL_00D5: br => Label9
IL_00DA: Label8
IL_00DA: ldc.i4.0
IL_00DB: Label9
IL_00DB: call System.Void
ElectricityManager::UpdateNodeElectricity(System.Int32 nodeID, System.Int32 value)
IL_00E0: ldarg.0
IL_00E1: dup
IL_00E2: ldfld System.Int32 ElectricityManager::m_conductiveCells
IL_00E7: ldc.i4.1
IL_00E8: add
IL_00E9: stfld System.Int32 ElectricityManager::m_conductiveCells
IL_00EE: Label5
IL_00EE: Label7
IL_00EE: ldarg.0
IL_00EF: ldfld System.UInt16[] ElectricityManager::m_nodeGroups
IL_00F4: ldloc.s 5 (System.Int32)
IL_00F6: ldc.i4 65535
IL_00FB: stelem.i2
IL_00FC: ldloc.s 5 (System.Int32)
IL_00FE: ldc.i4.1
IL_00FF: add
IL_0100: stloc.s 5 (System.Int32)
IL_0102: Label4
IL_0102: ldloc.s 5 (System.Int32)
IL_0104: ldloc.s 4 (System.Int32)
IL_0106: ble => Label10
IL_010B: ldloc.1
IL_010C: ldc.i4 256
IL_0111: mul
IL_0112: ldc.i4.7
IL_0113: shr
IL_0114: stloc.s 7 (System.Int32)
IL_0116: ldloc.1
IL_0117: ldc.i4.1
IL_0118: add
IL_0119: ldc.i4 256
IL_011E: mul
IL_011F: ldc.i4.7
IL_0120: shr
IL_0121: ldc.i4.1
IL_0122: sub
IL_0123: stloc.s 8 (System.Int32)
IL_0125: ldloc.s 7 (System.Int32)
IL_0127: stloc.s 9 (System.Int32)
IL_0129: br => Label11
IL_012E: Label21
IL_012E: ldloc.s 9 (System.Int32)
IL_0130: ldc.i4 256
IL_0135: mul
IL_0136: stloc.s 10 (System.Int32)
IL_0138: ldc.i4.0
IL_0139: stloc.s 11 (System.Int32)
IL_013B: br => Label12
IL_0140: Label20
IL_0140: ldarg.0
IL_0141: ldfld Cell[] ElectricityManager::m_electricityGrid
IL_0146: ldloc.s 10 (System.Int32)
IL_0148: ldelema ElectricityManager+Cell
IL_014D: ldobj ElectricityManager+Cell
IL_0152: stloc.s 12 (ElectricityManager+Cell)
IL_0154: ldloca.s 12 (ElectricityManager+Cell)
IL_0156: ldfld System.Int16 Cell::m_currentCharge
IL_015B: ldc.i4.0
IL_015C: ble => Label13
IL_0161: ldarg.0
IL_0162: ldfld System.Int32 ElectricityManager::m_pulseGroupCount
IL_0167: ldc.i4 1024
IL_016C: bge => Label14
IL_0171: ldloca.s 13 (ElectricityManager+PulseGroup)
IL_0173: ldloca.s 12 (ElectricityManager+Cell)
IL_0175: ldfld System.Int16 Cell::m_currentCharge
IL_017A: conv.u4
IL_017B: stfld System.UInt32 PulseGroup::m_origCharge
IL_0180: ldloca.s 13 (ElectricityManager+PulseGroup)
IL_0182: ldloca.s 12 (ElectricityManager+Cell)
IL_0184: ldfld System.Int16 Cell::m_currentCharge
IL_0189: conv.u4
IL_018A: stfld System.UInt32 PulseGroup::m_curCharge
IL_018F: ldloca.s 13 (ElectricityManager+PulseGroup)
IL_0191: ldc.i4.0
IL_0192: stfld System.UInt16 PulseGroup::m_mergeCount
IL_0197: ldloca.s 13 (ElectricityManager+PulseGroup)
IL_0199: ldc.i4 65535
IL_019E: stfld System.UInt16 PulseGroup::m_mergeIndex
IL_01A3: ldloca.s 13 (ElectricityManager+PulseGroup)
IL_01A5: ldloc.s 11 (System.Int32)
IL_01A7: conv.u1
IL_01A8: stfld System.Byte PulseGroup::m_x
IL_01AD: ldloca.s 13 (ElectricityManager+PulseGroup)
IL_01AF: ldloc.s 9 (System.Int32)
IL_01B1: conv.u1
IL_01B2: stfld System.Byte PulseGroup::m_z
IL_01B7: ldloca.s 14 (ElectricityManager+PulseUnit)
IL_01B9: ldarg.0
IL_01BA: ldfld System.Int32 ElectricityManager::m_pulseGroupCount
IL_01BF: conv.u2
IL_01C0: stfld System.UInt16 PulseUnit::m_group
IL_01C5: ldloca.s 14 (ElectricityManager+PulseUnit)
IL_01C7: ldc.i4.0
IL_01C8: stfld System.UInt16 PulseUnit::m_node
IL_01CD: ldloca.s 14 (ElectricityManager+PulseUnit)
IL_01CF: ldloc.s 11 (System.Int32)
IL_01D1: conv.u1
IL_01D2: stfld System.Byte PulseUnit::m_x
IL_01D7: ldloca.s 14 (ElectricityManager+PulseUnit)
IL_01D9: ldloc.s 9 (System.Int32)
IL_01DB: conv.u1
IL_01DC: stfld System.Byte PulseUnit::m_z
IL_01E1: ldloca.s 12 (ElectricityManager+Cell)
IL_01E3: ldarg.0
IL_01E4: ldfld System.Int32 ElectricityManager::m_pulseGroupCount
IL_01E9: conv.u2
IL_01EA: stfld System.UInt16 Cell::m_pulseGroup
IL_01EF: ldarg.0
IL_01F0: ldfld PulseGroup[] ElectricityManager::m_pulseGroups
IL_01F5: ldarg.0
IL_01F6: dup
IL_01F7: ldfld System.Int32 ElectricityManager::m_pulseGroupCount
IL_01FC: dup
IL_01FD: stloc.s 15 (System.Int32)
IL_01FF: ldc.i4.1
IL_0200: add
IL_0201: stfld System.Int32 ElectricityManager::m_pulseGroupCount
IL_0206: ldloc.s 15 (System.Int32)
IL_0208: ldelema ElectricityManager+PulseGroup
IL_020D: ldloc.s 13 (ElectricityManager+PulseGroup)
IL_020F: stobj ElectricityManager+PulseGroup
IL_0214: ldarg.0
IL_0215: ldfld PulseUnit[] ElectricityManager::m_pulseUnits
IL_021A: ldarg.0
IL_021B: ldfld System.Int32 ElectricityManager::m_pulseUnitEnd
IL_0220: ldelema ElectricityManager+PulseUnit
IL_0225: ldloc.s 14 (ElectricityManager+PulseUnit)
IL_0227: stobj ElectricityManager+PulseUnit
IL_022C: ldarg.0
IL_022D: dup
IL_022E: ldfld System.Int32 ElectricityManager::m_pulseUnitEnd
IL_0233: ldc.i4.1
IL_0234: add
IL_0235: dup
IL_0236: stloc.s 15 (System.Int32)
IL_0238: stfld System.Int32 ElectricityManager::m_pulseUnitEnd
IL_023D: ldloc.s 15 (System.Int32)
IL_023F: ldarg.0
IL_0240: ldfld PulseUnit[] ElectricityManager::m_pulseUnits
IL_0245: ldlen
IL_0246: conv.i4
IL_0247: bne.un => Label15
IL_024C: ldarg.0
IL_024D: ldc.i4.0
IL_024E: stfld System.Int32 ElectricityManager::m_pulseUnitEnd
IL_0253: Label15
IL_0253: br => Label16
IL_0258: Label14
IL_0258: ldloca.s 12 (ElectricityManager+Cell)
IL_025A: ldc.i4 65535
IL_025F: stfld System.UInt16 Cell::m_pulseGroup
IL_0264: Label16
IL_0264: ldloca.s 12 (ElectricityManager+Cell)
IL_0266: ldc.i4.0
IL_0267: stfld System.Int16 Cell::m_currentCharge
IL_026C: ldarg.0
IL_026D: dup
IL_026E: ldfld System.Int32 ElectricityManager::m_conductiveCells
IL_0273: ldc.i4.1
IL_0274: add
IL_0275: stfld System.Int32 ElectricityManager::m_conductiveCells
IL_027A: br => Label17
IL_027F: Label13
IL_027F: ldloca.s 12 (ElectricityManager+Cell)
IL_0281: ldc.i4 65535
IL_0286: stfld System.UInt16 Cell::m_pulseGroup
IL_028B: ldloca.s 12 (ElectricityManager+Cell)
IL_028D: ldfld System.Byte Cell::m_conductivity
IL_0292: ldc.i4.s 64
IL_0294: blt => Label18
IL_0299: ldarg.0
IL_029A: dup
IL_029B: ldfld System.Int32 ElectricityManager::m_conductiveCells
IL_02A0: ldc.i4.1
IL_02A1: add
IL_02A2: stfld System.Int32 ElectricityManager::m_conductiveCells
IL_02A7: Label17
IL_02A7: Label18
IL_02A7: ldloca.s 12 (ElectricityManager+Cell)
IL_02A9: ldfld System.Boolean Cell::m_tmpElectrified
IL_02AE: ldloca.s 12 (ElectricityManager+Cell)
IL_02B0: ldfld System.Boolean Cell::m_electrified
IL_02B5: beq => Label19
IL_02BA: ldloca.s 12 (ElectricityManager+Cell)
IL_02BC: ldloca.s 12 (ElectricityManager+Cell)
IL_02BE: ldfld System.Boolean Cell::m_tmpElectrified
IL_02C3: stfld System.Boolean Cell::m_electrified
IL_02C8: Label19
IL_02C8: ldloca.s 12 (ElectricityManager+Cell)
IL_02CA: ldloca.s 12 (ElectricityManager+Cell)
IL_02CC: ldfld System.UInt16 Cell::m_pulseGroup
IL_02D1: ldc.i4 65535
IL_02D6: ceq
IL_02D8: ldc.i4.0
IL_02D9: ceq
IL_02DB: stfld System.Boolean Cell::m_tmpElectrified
IL_02E0: ldarg.0
IL_02E1: ldfld Cell[] ElectricityManager::m_electricityGrid
IL_02E6: ldloc.s 10 (System.Int32)
IL_02E8: ldelema ElectricityManager+Cell
IL_02ED: ldloc.s 12 (ElectricityManager+Cell)
IL_02EF: stobj ElectricityManager+Cell
IL_02F4: ldloc.s 10 (System.Int32)
IL_02F6: ldc.i4.1
IL_02F7: add
IL_02F8: stloc.s 10 (System.Int32)
IL_02FA: ldloc.s 11 (System.Int32)
IL_02FC: ldc.i4.1
IL_02FD: add
IL_02FE: stloc.s 11 (System.Int32)
IL_0300: Label12
IL_0300: ldloc.s 11 (System.Int32)
IL_0302: ldc.i4 256
IL_0307: blt => Label20
IL_030C: ldloc.s 9 (System.Int32)
IL_030E: ldc.i4.1
IL_030F: add
IL_0310: stloc.s 9 (System.Int32)
IL_0312: Label11
IL_0312: ldloc.s 9 (System.Int32)
IL_0314: ldloc.s 8 (System.Int32)
IL_0316: ble => Label21
IL_031B: br => Label22
IL_0320: Label2
IL_0320: ldloc.1
IL_0321: ldc.i4.s 127
IL_0323: sub
IL_0324: ldarg.0
IL_0325: ldfld System.Int32 ElectricityManager::m_conductiveCells
IL_032A: mul
IL_032B: ldc.i4.7
IL_032C: shr
IL_032D: stloc.s 16 (System.Int32)
IL_032F: ldloc.1
IL_0330: ldc.i4 255
IL_0335: bne.un => Label23
IL_033A: ldc.i4 1000000000
IL_033F: stloc.s 16 (System.Int32)
IL_0341: Label23
IL_0341: br => Label24
IL_0346: Label54
IL_0346: ldarg.0
IL_0347: ldc.i4.0
IL_0348: stfld System.Boolean ElectricityManager::m_canContinue
IL_034D: ldarg.0
IL_034E: ldfld System.Int32 ElectricityManager::m_pulseUnitEnd
IL_0353: stloc.s 17 (System.Int32)
IL_0355: br => Label25
IL_035A: Label52
IL_035A: ldarg.0
IL_035B: ldfld PulseUnit[] ElectricityManager::m_pulseUnits
IL_0360: ldarg.0
IL_0361: ldfld System.Int32 ElectricityManager::m_pulseUnitStart
IL_0366: ldelema ElectricityManager+PulseUnit
IL_036B: ldobj ElectricityManager+PulseUnit
IL_0370: stloc.s 18 (ElectricityManager+PulseUnit)
IL_0372: ldarg.0
IL_0373: dup
IL_0374: ldfld System.Int32 ElectricityManager::m_pulseUnitStart
IL_0379: ldc.i4.1
IL_037A: add
IL_037B: dup
IL_037C: stloc.s 15 (System.Int32)
IL_037E: stfld System.Int32 ElectricityManager::m_pulseUnitStart
IL_0383: ldloc.s 15 (System.Int32)
IL_0385: ldarg.0
IL_0386: ldfld PulseUnit[] ElectricityManager::m_pulseUnits
IL_038B: ldlen
IL_038C: conv.i4
IL_038D: bne.un => Label26
IL_0392: ldarg.0
IL_0393: ldc.i4.0
IL_0394: stfld System.Int32 ElectricityManager::m_pulseUnitStart
IL_0399: Label26
IL_0399: ldloca.s 18 (ElectricityManager+PulseUnit)
IL_039B: ldarg.0
IL_039C: ldloca.s 18 (ElectricityManager+PulseUnit)
IL_039E: ldfld System.UInt16 PulseUnit::m_group
IL_03A3: call System.UInt16 ElectricityManager::GetRootGroup(System.UInt16
group)
IL_03A8: stfld System.UInt16 PulseUnit::m_group
IL_03AD: ldarg.0
IL_03AE: ldfld PulseGroup[] ElectricityManager::m_pulseGroups
IL_03B3: ldloca.s 18 (ElectricityManager+PulseUnit)
IL_03B5: ldfld System.UInt16 PulseUnit::m_group
IL_03BA: ldelema ElectricityManager+PulseGroup
IL_03BF: ldfld System.UInt32 PulseGroup::m_curCharge
IL_03C4: stloc.s 19 (System.UInt32)
IL_03C6: ldloca.s 18 (ElectricityManager+PulseUnit)
IL_03C8: ldfld System.UInt16 PulseUnit::m_node
IL_03CD: brtrue => Label27
IL_03D2: ldloca.s 18 (ElectricityManager+PulseUnit)
IL_03D4: ldfld System.Byte PulseUnit::m_z
IL_03D9: ldc.i4 256
IL_03DE: mul
IL_03DF: ldloca.s 18 (ElectricityManager+PulseUnit)
IL_03E1: ldfld System.Byte PulseUnit::m_x
IL_03E6: add
IL_03E7: stloc.s 20 (System.Int32)
IL_03E9: ldarg.0
IL_03EA: ldfld Cell[] ElectricityManager::m_electricityGrid
IL_03EF: ldloc.s 20 (System.Int32)
IL_03F1: ldelema ElectricityManager+Cell
IL_03F6: ldobj ElectricityManager+Cell
IL_03FB: stloc.s 21 (ElectricityManager+Cell)
IL_03FD: ldloca.s 21 (ElectricityManager+Cell)
IL_03FF: ldfld System.Byte Cell::m_conductivity
IL_0404: brfalse => Label28
IL_0409: ldloca.s 21 (ElectricityManager+Cell)
IL_040B: ldfld System.Boolean Cell::m_tmpElectrified
IL_0410: brtrue => Label29
IL_0415: ldloc.s 19 (System.UInt32)
IL_0417: brfalse => Label30
IL_041C: ldloca.s 21 (ElectricityManager+Cell)
IL_041E: ldfld System.Int16 Cell::m_currentCharge
IL_0423: neg
IL_0424: ldc.i4.0
IL_0425: ldloc.s 19 (System.UInt32)
IL_0427: call static System.Int32 UnityEngine.Mathf::Clamp(System.Int32
value, System.Int32 min, System.Int32 max)
IL_042C: stloc.s 22 (System.Int32)
IL_042E: ldloc.s 19 (System.UInt32)
IL_0430: ldloc.s 22 (System.Int32)
IL_0432: sub
IL_0433: stloc.s 19 (System.UInt32)
IL_0435: ldloca.s 21 (ElectricityManager+Cell)
IL_0437: dup
IL_0438: ldfld System.Int16 Cell::m_currentCharge
IL_043D: ldloc.s 22 (System.Int32)
IL_043F: conv.i2
IL_0440: add
IL_0441: conv.i2
IL_0442: stfld System.Int16 Cell::m_currentCharge
IL_0447: ldloca.s 21 (ElectricityManager+Cell)
IL_0449: ldfld System.Int16 Cell::m_currentCharge
IL_044E: brtrue => Label31
IL_0453: ldloca.s 21 (ElectricityManager+Cell)
IL_0455: ldc.i4.1
IL_0456: stfld System.Boolean Cell::m_tmpElectrified
IL_045B: Label31
IL_045B: ldarg.0
IL_045C: ldfld Cell[] ElectricityManager::m_electricityGrid
IL_0461: ldloc.s 20 (System.Int32)
IL_0463: ldelema ElectricityManager+Cell
IL_0468: ldloc.s 21 (ElectricityManager+Cell)
IL_046A: stobj ElectricityManager+Cell
IL_046F: ldarg.0
IL_0470: ldfld PulseGroup[] ElectricityManager::m_pulseGroups
IL_0475: ldloca.s 18 (ElectricityManager+PulseUnit)
IL_0477: ldfld System.UInt16 PulseUnit::m_group
IL_047C: ldelema ElectricityManager+PulseGroup
IL_0481: ldloc.s 19 (System.UInt32)
IL_0483: stfld System.UInt32 PulseGroup::m_curCharge
IL_0488: Label28
IL_0488: Label29
IL_0488: Label30
IL_0488: ldloc.s 19 (System.UInt32)
IL_048A: brfalse => Label32
IL_048F: ldloca.s 21 (ElectricityManager+Cell)
IL_0491: ldfld System.Byte Cell::m_conductivity
IL_0496: ldc.i4.s 64
IL_0498: blt => Label33
IL_049D: ldc.i4.1
IL_049E: br => Label34
IL_04A3: Label33
IL_04A3: ldc.i4.s 64
IL_04A5: Label34
IL_04A5: stloc.s 23 (System.Int32)
IL_04A7: ldarg.0
IL_04A8: dup
IL_04A9: ldfld System.Int32 ElectricityManager::m_processedCells
IL_04AE: ldc.i4.1
IL_04AF: add
IL_04B0: stfld System.Int32 ElectricityManager::m_processedCells
IL_04B5: ldloca.s 18 (ElectricityManager+PulseUnit)
IL_04B7: ldfld System.Byte PulseUnit::m_z
IL_04BC: ldc.i4.0
IL_04BD: ble => Label35
IL_04C2: ldarg.0
IL_04C3: ldarg.0
IL_04C4: ldfld Cell[] ElectricityManager::m_electricityGrid
IL_04C9: ldloc.s 20 (System.Int32)
IL_04CB: ldc.i4 256
IL_04D0: sub
IL_04D1: ldelema ElectricityManager+Cell
IL_04D6: ldloca.s 18 (ElectricityManager+PulseUnit)
IL_04D8: ldfld System.UInt16 PulseUnit::m_group
IL_04DD: ldloca.s 18 (ElectricityManager+PulseUnit)
IL_04DF: ldfld System.Byte PulseUnit::m_x
IL_04E4: ldloca.s 18 (ElectricityManager+PulseUnit)
IL_04E6: ldfld System.Byte PulseUnit::m_z
IL_04EB: ldc.i4.1
IL_04EC: sub
IL_04ED: ldloc.s 23 (System.Int32)
IL_04EF: call System.Void ElectricityManager::ConductToCell(Cell& cell,
System.UInt16 group, System.Int32 x, System.Int32 z, System.Int32 limit)
IL_04F4: Label35
IL_04F4: ldloca.s 18 (ElectricityManager+PulseUnit)
IL_04F6: ldfld System.Byte PulseUnit::m_x
IL_04FB: ldc.i4.0
IL_04FC: ble => Label36
IL_0501: ldarg.0
IL_0502: ldarg.0
IL_0503: ldfld Cell[] ElectricityManager::m_electricityGrid
IL_0508: ldloc.s 20 (System.Int32)
IL_050A: ldc.i4.1
IL_050B: sub
IL_050C: ldelema ElectricityManager+Cell
IL_0511: ldloca.s 18 (ElectricityManager+PulseUnit)
IL_0513: ldfld System.UInt16 PulseUnit::m_group
IL_0518: ldloca.s 18 (ElectricityManager+PulseUnit)
IL_051A: ldfld System.Byte PulseUnit::m_x
IL_051F: ldc.i4.1
IL_0520: sub
IL_0521: ldloca.s 18 (ElectricityManager+PulseUnit)
IL_0523: ldfld System.Byte PulseUnit::m_z
IL_0528: ldloc.s 23 (System.Int32)
IL_052A: call System.Void ElectricityManager::ConductToCell(Cell& cell,
System.UInt16 group, System.Int32 x, System.Int32 z, System.Int32 limit)
IL_052F: Label36
IL_052F: ldloca.s 18 (ElectricityManager+PulseUnit)
IL_0531: ldfld System.Byte PulseUnit::m_z
IL_0536: ldc.i4 255
IL_053B: bge => Label37
IL_0540: ldarg.0
IL_0541: ldarg.0
IL_0542: ldfld Cell[] ElectricityManager::m_electricityGrid
IL_0547: ldloc.s 20 (System.Int32)
IL_0549: ldc.i4 256
IL_054E: add
IL_054F: ldelema ElectricityManager+Cell
IL_0554: ldloca.s 18 (ElectricityManager+PulseUnit)
IL_0556: ldfld System.UInt16 PulseUnit::m_group
IL_055B: ldloca.s 18 (ElectricityManager+PulseUnit)
IL_055D: ldfld System.Byte PulseUnit::m_x
IL_0562: ldloca.s 18 (ElectricityManager+PulseUnit)
IL_0564: ldfld System.Byte PulseUnit::m_z
IL_0569: ldc.i4.1
IL_056A: add
IL_056B: ldloc.s 23 (System.Int32)
IL_056D: call System.Void ElectricityManager::ConductToCell(Cell& cell,
System.UInt16 group, System.Int32 x, System.Int32 z, System.Int32 limit)
IL_0572: Label37
IL_0572: ldloca.s 18 (ElectricityManager+PulseUnit)
IL_0574: ldfld System.Byte PulseUnit::m_x
IL_0579: ldc.i4 255
IL_057E: bge => Label38
IL_0583: ldarg.0
IL_0584: ldarg.0
IL_0585: ldfld Cell[] ElectricityManager::m_electricityGrid
IL_058A: ldloc.s 20 (System.Int32)
IL_058C: ldc.i4.1
IL_058D: add
IL_058E: ldelema ElectricityManager+Cell
IL_0593: ldloca.s 18 (ElectricityManager+PulseUnit)
IL_0595: ldfld System.UInt16 PulseUnit::m_group
IL_059A: ldloca.s 18 (ElectricityManager+PulseUnit)
IL_059C: ldfld System.Byte PulseUnit::m_x
IL_05A1: ldc.i4.1
IL_05A2: add
IL_05A3: ldloca.s 18 (ElectricityManager+PulseUnit)
IL_05A5: ldfld System.Byte PulseUnit::m_z
IL_05AA: ldloc.s 23 (System.Int32)
IL_05AC: call System.Void ElectricityManager::ConductToCell(Cell& cell,
System.UInt16 group, System.Int32 x, System.Int32 z, System.Int32 limit)
IL_05B1: Label38
IL_05B1: ldarg.0
IL_05B2: ldloca.s 18 (ElectricityManager+PulseUnit)
IL_05B4: ldfld System.UInt16 PulseUnit::m_group
IL_05B9: ldloca.s 18 (ElectricityManager+PulseUnit)
IL_05BB: ldfld System.Byte PulseUnit::m_x
IL_05C0: ldloca.s 18 (ElectricityManager+PulseUnit)
IL_05C2: ldfld System.Byte PulseUnit::m_z
IL_05C7: call System.Void ElectricityManager::ConductToNodes(System.UInt16
group, System.Int32 cellX, System.Int32 cellZ)
IL_05CC: br => Label39
IL_05D1: Label32
IL_05D1: ldarg.0
IL_05D2: ldfld PulseUnit[] ElectricityManager::m_pulseUnits
IL_05D7: ldarg.0
IL_05D8: ldfld System.Int32 ElectricityManager::m_pulseUnitEnd
IL_05DD: ldelema ElectricityManager+PulseUnit
IL_05E2: ldloc.s 18 (ElectricityManager+PulseUnit)
IL_05E4: stobj ElectricityManager+PulseUnit
IL_05E9: ldarg.0
IL_05EA: dup
IL_05EB: ldfld System.Int32 ElectricityManager::m_pulseUnitEnd
IL_05F0: ldc.i4.1
IL_05F1: add
IL_05F2: dup
IL_05F3: stloc.s 15 (System.Int32)
IL_05F5: stfld System.Int32 ElectricityManager::m_pulseUnitEnd
IL_05FA: ldloc.s 15 (System.Int32)
IL_05FC: ldarg.0
IL_05FD: ldfld PulseUnit[] ElectricityManager::m_pulseUnits
IL_0602: ldlen
IL_0603: conv.i4
IL_0604: bne.un => Label40
IL_0609: ldarg.0
IL_060A: ldc.i4.0
IL_060B: stfld System.Int32 ElectricityManager::m_pulseUnitEnd
IL_0610: Label39
IL_0610: Label40
IL_0610: br => Label41
IL_0615: Label27
IL_0615: ldloc.s 19 (System.UInt32)
IL_0617: brfalse => Label42
IL_061C: ldarg.0
IL_061D: dup
IL_061E: ldfld System.Int32 ElectricityManager::m_processedCells
IL_0623: ldc.i4.1
IL_0624: add
IL_0625: stfld System.Int32 ElectricityManager::m_processedCells
IL_062A: call static NetManager
ColossalFramework.Singleton`1<NetManager>::get_instance()
IL_062F: ldfld Array16`1<NetNode> NetManager::m_nodes
IL_0634: ldfld NetNode[] Array16`1<NetNode>::m_buffer
IL_0639: ldloca.s 18 (ElectricityManager+PulseUnit)
IL_063B: ldfld System.UInt16 PulseUnit::m_node
IL_0640: ldelema NetNode
IL_0645: ldobj NetNode
IL_064A: stloc.s 24 (NetNode)
IL_064C: ldloca.s 24 (NetNode)
IL_064E: ldfld Flags NetNode::m_flags
IL_0653: brfalse => Label43
IL_0658: ldloca.s 24 (NetNode)
IL_065A: ldfld System.UInt32 NetNode::m_buildIndex
IL_065F: ldloc.0
IL_0660: ldc.i4.s -128
IL_0662: and
IL_0663: bge.un => Label44
IL_0668: ldarg.0
IL_0669: ldloca.s 18 (ElectricityManager+PulseUnit)
IL_066B: ldfld System.UInt16 PulseUnit::m_group
IL_0670: ldloca.s 24 (NetNode)
IL_0672: ldflda UnityEngine.Vector3 NetNode::m_position
IL_0677: ldfld System.Single UnityEngine.Vector3::x
IL_067C: ldloca.s 24 (NetNode)
IL_067E: ldflda UnityEngine.Vector3 NetNode::m_position
IL_0683: ldfld System.Single UnityEngine.Vector3::z
IL_0688: call System.Void ElectricityManager::ConductToCells(System.UInt16
group, System.Single worldX, System.Single worldZ)
IL_068D: ldc.i4.0
IL_068E: stloc.s 25 (System.Int32)
IL_0690: br => Label45
IL_0695: Label49
IL_0695: ldloca.s 24 (NetNode)
IL_0697: ldloc.s 25 (System.Int32)
IL_0699: call System.UInt16 NetNode::GetSegment(System.Int32 index)
IL_069E: stloc.s 26 (System.UInt16)
IL_06A0: ldloc.s 26 (System.UInt16)
IL_06A2: brfalse => Label46
IL_06A7: call static NetManager
ColossalFramework.Singleton`1<NetManager>::get_instance()
IL_06AC: ldfld Array16`1<NetSegment> NetManager::m_segments
IL_06B1: ldfld NetSegment[] Array16`1<NetSegment>::m_buffer
IL_06B6: ldloc.s 26 (System.UInt16)
IL_06B8: ldelema NetSegment
IL_06BD: ldfld System.UInt16 NetSegment::m_startNode
IL_06C2: stloc.s 27 (System.UInt16)
IL_06C4: call static NetManager
ColossalFramework.Singleton`1<NetManager>::get_instance()
IL_06C9: ldfld Array16`1<NetSegment> NetManager::m_segments
IL_06CE: ldfld NetSegment[] Array16`1<NetSegment>::m_buffer
IL_06D3: ldloc.s 26 (System.UInt16)
IL_06D5: ldelema NetSegment
IL_06DA: ldfld System.UInt16 NetSegment::m_endNode
IL_06DF: stloc.s 28 (System.UInt16)
IL_06E1: ldloc.s 27 (System.UInt16)
IL_06E3: ldloca.s 18 (ElectricityManager+PulseUnit)
IL_06E5: ldfld System.UInt16 PulseUnit::m_node
IL_06EA: bne.un => Label47
IL_06EF: ldloc.s 28 (System.UInt16)
IL_06F1: br => Label48
IL_06F6: Label47
IL_06F6: ldloc.s 27 (System.UInt16)
IL_06F8: Label48
IL_06F8: stloc.s 29 (System.UInt16)
IL_06FA: ldarg.0
IL_06FB: ldloc.s 29 (System.UInt16)
IL_06FD: call static NetManager
ColossalFramework.Singleton`1<NetManager>::get_instance()
IL_0702: ldfld Array16`1<NetNode> NetManager::m_nodes
IL_0707: ldfld NetNode[] Array16`1<NetNode>::m_buffer
IL_070C: ldloc.s 29 (System.UInt16)
IL_070E: ldelema NetNode
IL_0713: ldloca.s 18 (ElectricityManager+PulseUnit)
IL_0715: ldfld System.UInt16 PulseUnit::m_group
IL_071A: ldc.r4 -100000
IL_071F: ldc.r4 -100000
IL_0724: ldc.r4 100000
IL_0729: ldc.r4 100000
IL_072E: call System.Void ElectricityManager::ConductToNode(System.UInt16
nodeIndex, NetNode& node, System.UInt16 group, System.Single minX, System.Single
minZ, System.Single maxX, System.Single maxZ)
IL_0733: Label46
IL_0733: ldloc.s 25 (System.Int32)
IL_0735: ldc.i4.1
IL_0736: add
IL_0737: stloc.s 25 (System.Int32)
IL_0739: Label45
IL_0739: ldloc.s 25 (System.Int32)
IL_073B: ldc.i4.8
IL_073C: blt => Label49
IL_0741: Label43
IL_0741: Label44
IL_0741: br => Label50
IL_0746: Label42
IL_0746: ldarg.0
IL_0747: ldfld PulseUnit[] ElectricityManager::m_pulseUnits
IL_074C: ldarg.0
IL_074D: ldfld System.Int32 ElectricityManager::m_pulseUnitEnd
IL_0752: ldelema ElectricityManager+PulseUnit
IL_0757: ldloc.s 18 (ElectricityManager+PulseUnit)
IL_0759: stobj ElectricityManager+PulseUnit
IL_075E: ldarg.0
IL_075F: dup
IL_0760: ldfld System.Int32 ElectricityManager::m_pulseUnitEnd
IL_0765: ldc.i4.1
IL_0766: add
IL_0767: dup
IL_0768: stloc.s 15 (System.Int32)
IL_076A: stfld System.Int32 ElectricityManager::m_pulseUnitEnd
IL_076F: ldloc.s 15 (System.Int32)
IL_0771: ldarg.0
IL_0772: ldfld PulseUnit[] ElectricityManager::m_pulseUnits
IL_0777: ldlen
IL_0778: conv.i4
IL_0779: bne.un => Label51
IL_077E: ldarg.0
IL_077F: ldc.i4.0
IL_0780: stfld System.Int32 ElectricityManager::m_pulseUnitEnd
IL_0785: Label25
IL_0785: Label41
IL_0785: Label50
IL_0785: Label51
IL_0785: ldarg.0
IL_0786: ldfld System.Int32 ElectricityManager::m_pulseUnitStart
IL_078B: ldloc.s 17 (System.Int32)
IL_078D: bne.un => Label52
IL_0792: Label24
IL_0792: ldarg.0
IL_0793: ldfld System.Boolean ElectricityManager::m_canContinue
IL_0798: brfalse => Label53
IL_079D: ldarg.0
IL_079E: ldfld System.Int32 ElectricityManager::m_processedCells
IL_07A3: ldloc.s 16 (System.Int32)
IL_07A5: blt => Label54
IL_07AA: Label53
IL_07AA: ldloc.1
IL_07AB: ldc.i4 255
IL_07B0: bne.un => Label55
IL_07B5: ldc.i4.0
IL_07B6: stloc.s 30 (System.Int32)
IL_07B8: br => Label56
IL_07BD: Label58
IL_07BD: ldarg.0
IL_07BE: ldfld PulseGroup[] ElectricityManager::m_pulseGroups
IL_07C3: ldloc.s 30 (System.Int32)
IL_07C5: ldelema ElectricityManager+PulseGroup
IL_07CA: ldobj ElectricityManager+PulseGroup
IL_07CF: stloc.s 31 (ElectricityManager+PulseGroup)
IL_07D1: ldloca.s 31 (ElectricityManager+PulseGroup)
IL_07D3: ldfld System.UInt16 PulseGroup::m_mergeIndex
IL_07D8: ldc.i4 65535
IL_07DD: beq => Label57
IL_07E2: ldarg.0
IL_07E3: ldfld PulseGroup[] ElectricityManager::m_pulseGroups
IL_07E8: ldloca.s 31 (ElectricityManager+PulseGroup)
IL_07EA: ldfld System.UInt16 PulseGroup::m_mergeIndex
IL_07EF: ldelema ElectricityManager+PulseGroup
IL_07F4: ldobj ElectricityManager+PulseGroup
IL_07F9: stloc.s 32 (ElectricityManager+PulseGroup)
IL_07FB: ldloca.s 31 (ElectricityManager+PulseGroup)
IL_07FD: ldloca.s 32 (ElectricityManager+PulseGroup)
IL_07FF: ldfld System.UInt32 PulseGroup::m_curCharge
IL_0804: conv.u8
IL_0805: ldloca.s 31 (ElectricityManager+PulseGroup)
IL_0807: ldfld System.UInt32 PulseGroup::m_origCharge
IL_080C: conv.u8
IL_080D: mul
IL_080E: ldloca.s 32 (ElectricityManager+PulseGroup)
IL_0810: ldfld System.UInt32 PulseGroup::m_origCharge
IL_0815: conv.u8
IL_0816: div.un
IL_0817: conv.u4
IL_0818: stfld System.UInt32 PulseGroup::m_curCharge
IL_081D: ldloca.s 32 (ElectricityManager+PulseGroup)
IL_081F: dup
IL_0820: ldfld System.UInt32 PulseGroup::m_curCharge
IL_0825: ldloca.s 31 (ElectricityManager+PulseGroup)
IL_0827: ldfld System.UInt32 PulseGroup::m_curCharge
IL_082C: sub
IL_082D: stfld System.UInt32 PulseGroup::m_curCharge
IL_0832: ldloca.s 32 (ElectricityManager+PulseGroup)
IL_0834: dup
IL_0835: ldfld System.UInt32 PulseGroup::m_origCharge
IL_083A: ldloca.s 31 (ElectricityManager+PulseGroup)
IL_083C: ldfld System.UInt32 PulseGroup::m_origCharge
IL_0841: sub
IL_0842: stfld System.UInt32 PulseGroup::m_origCharge
IL_0847: ldarg.0
IL_0848: ldfld PulseGroup[] ElectricityManager::m_pulseGroups
IL_084D: ldloca.s 31 (ElectricityManager+PulseGroup)
IL_084F: ldfld System.UInt16 PulseGroup::m_mergeIndex
IL_0854: ldelema ElectricityManager+PulseGroup
IL_0859: ldloc.s 32 (ElectricityManager+PulseGroup)
IL_085B: stobj ElectricityManager+PulseGroup
IL_0860: ldarg.0
IL_0861: ldfld PulseGroup[] ElectricityManager::m_pulseGroups
IL_0866: ldloc.s 30 (System.Int32)
IL_0868: ldelema ElectricityManager+PulseGroup
IL_086D: ldloc.s 31 (ElectricityManager+PulseGroup)
IL_086F: stobj ElectricityManager+PulseGroup
IL_0874: Label57
IL_0874: ldloc.s 30 (System.Int32)
IL_0876: ldc.i4.1
IL_0877: add
IL_0878: stloc.s 30 (System.Int32)
IL_087A: Label56
IL_087A: ldloc.s 30 (System.Int32)
IL_087C: ldarg.0
IL_087D: ldfld System.Int32 ElectricityManager::m_pulseGroupCount
IL_0882: blt => Label58
IL_0887: ldc.i4.0
IL_0888: stloc.s 33 (System.Int32)
IL_088A: br => Label59
IL_088F: Label62
IL_088F: ldarg.0
IL_0890: ldfld PulseGroup[] ElectricityManager::m_pulseGroups
IL_0895: ldloc.s 33 (System.Int32)
IL_0897: ldelema ElectricityManager+PulseGroup
IL_089C: ldobj ElectricityManager+PulseGroup
IL_08A1: stloc.s 34 (ElectricityManager+PulseGroup)
IL_08A3: ldloca.s 34 (ElectricityManager+PulseGroup)
IL_08A5: ldfld System.UInt32 PulseGroup::m_curCharge
IL_08AA: brfalse => Label60
IL_08AF: ldloca.s 34 (ElectricityManager+PulseGroup)
IL_08B1: ldfld System.Byte PulseGroup::m_z
IL_08B6: ldc.i4 256
IL_08BB: mul
IL_08BC: ldloca.s 34 (ElectricityManager+PulseGroup)
IL_08BE: ldfld System.Byte PulseGroup::m_x
IL_08C3: add
IL_08C4: stloc.s 35 (System.Int32)
IL_08C6: ldarg.0
IL_08C7: ldfld Cell[] ElectricityManager::m_electricityGrid
IL_08CC: ldloc.s 35 (System.Int32)
IL_08CE: ldelema ElectricityManager+Cell
IL_08D3: ldobj ElectricityManager+Cell
IL_08D8: stloc.s 36 (ElectricityManager+Cell)
IL_08DA: ldloca.s 36 (ElectricityManager+Cell)
IL_08DC: ldfld System.Byte Cell::m_conductivity
IL_08E1: brfalse => Label61
IL_08E6: ldloca.s 36 (ElectricityManager+Cell)
IL_08E8: dup
IL_08E9: ldfld System.UInt16 Cell::m_extraCharge
IL_08EE: ldloca.s 34 (ElectricityManager+PulseGroup)
IL_08F0: ldfld System.UInt32 PulseGroup::m_curCharge
IL_08F5: ldc.i4 32767
IL_08FA: ldloca.s 36 (ElectricityManager+Cell)
IL_08FC: ldfld System.UInt16 Cell::m_extraCharge
IL_0901: sub
IL_0902: call static System.Int32 UnityEngine.Mathf::Min(System.Int32 a,
System.Int32 b)
IL_0907: conv.u2
IL_0908: add
IL_0909: conv.u2
IL_090A: stfld System.UInt16 Cell::m_extraCharge
IL_090F: Label61
IL_090F: ldarg.0
IL_0910: ldfld Cell[] ElectricityManager::m_electricityGrid
IL_0915: ldloc.s 35 (System.Int32)
IL_0917: ldelema ElectricityManager+Cell
IL_091C: ldloc.s 36 (ElectricityManager+Cell)
IL_091E: stobj ElectricityManager+Cell
IL_0923: Label60
IL_0923: ldloc.s 33 (System.Int32)
IL_0925: ldc.i4.1
IL_0926: add
IL_0927: stloc.s 33 (System.Int32)
IL_0929: Label59
IL_0929: ldloc.s 33 (System.Int32)
IL_092B: ldarg.0
IL_092C: ldfld System.Int32 ElectricityManager::m_pulseGroupCount
IL_0931: blt => Label62
IL_0936: // end original
IL_0936: Label0
IL_0936: Label1
IL_0936: Label22
IL_0936: Label55
IL_0936: ret
DONE

### Patch: System.Void ElectricityManager::ConductToNode(System.UInt16 nodeIndex,


NetNode& node, System.UInt16 group, System.Single minX, System.Single minZ,
System.Single maxX, System.Single maxZ)
### Replacement: static System.Void
ElectricityManager::ElectricityManager.ConductToNode_Patch0(ElectricityManager
this, System.UInt16 nodeIndex, NetNode& node, System.UInt16 group, System.Single
minX, System.Single minZ, System.Single maxX, System.Single maxZ)
IL_0000: Local var 0: NetInfo
IL_0000: Local var 1: ElectricityManager/PulseUnit
IL_0000: Local var 2: System.Int32
IL_0000: Local var 3: System.UInt16
IL_0000: // start original
IL_0000: ldarg.2
IL_0001: ldflda UnityEngine.Vector3 NetNode::m_position
IL_0006: ldfld System.Single UnityEngine.Vector3::x
IL_000B: ldarg.s 4
IL_000D: blt.un => Label0
IL_0012: ldarg.2
IL_0013: ldflda UnityEngine.Vector3 NetNode::m_position
IL_0018: ldfld System.Single UnityEngine.Vector3::z
IL_001D: ldarg.s 5
IL_001F: blt.un => Label1
IL_0024: ldarg.2
IL_0025: ldflda UnityEngine.Vector3 NetNode::m_position
IL_002A: ldfld System.Single UnityEngine.Vector3::x
IL_002F: ldarg.s 6
IL_0031: bgt.un => Label2
IL_0036: ldarg.2
IL_0037: ldflda UnityEngine.Vector3 NetNode::m_position
IL_003C: ldfld System.Single UnityEngine.Vector3::z
IL_0041: ldarg.s 7
IL_0043: bgt.un => Label3
IL_0048: ldarg.2
IL_0049: call static System.Boolean
ElectricRoads.Overrides.ElectricRoadsOverrides::CheckElectricConductibility(NetNode
& node)
IL_004E: brfalse => Label5
IL_0053: Label4
IL_0053: ldarg.0
IL_0054: ldfld System.UInt16[] ElectricityManager::m_nodeGroups
IL_0059: ldarg.1
IL_005A: ldelem.u2
IL_005B: ldc.i4 65535
IL_0060: bne.un => Label6
IL_0065: ldloca.s 1 (ElectricityManager+PulseUnit)
IL_0067: ldarg.3
IL_0068: stfld System.UInt16 PulseUnit::m_group
IL_006D: ldloca.s 1 (ElectricityManager+PulseUnit)
IL_006F: ldarg.1
IL_0070: stfld System.UInt16 PulseUnit::m_node
IL_0075: ldloca.s 1 (ElectricityManager+PulseUnit)
IL_0077: ldc.i4.0
IL_0078: stfld System.Byte PulseUnit::m_x
IL_007D: ldloca.s 1 (ElectricityManager+PulseUnit)
IL_007F: ldc.i4.0
IL_0080: stfld System.Byte PulseUnit::m_z
IL_0085: ldarg.0
IL_0086: ldfld PulseUnit[] ElectricityManager::m_pulseUnits
IL_008B: ldarg.0
IL_008C: ldfld System.Int32 ElectricityManager::m_pulseUnitEnd
IL_0091: ldelema ElectricityManager+PulseUnit
IL_0096: ldloc.1
IL_0097: stobj ElectricityManager+PulseUnit
IL_009C: ldarg.0
IL_009D: dup
IL_009E: ldfld System.Int32 ElectricityManager::m_pulseUnitEnd
IL_00A3: ldc.i4.1
IL_00A4: add
IL_00A5: dup
IL_00A6: stloc.2
IL_00A7: stfld System.Int32 ElectricityManager::m_pulseUnitEnd
IL_00AC: ldloc.2
IL_00AD: ldarg.0
IL_00AE: ldfld PulseUnit[] ElectricityManager::m_pulseUnits
IL_00B3: ldlen
IL_00B4: conv.i4
IL_00B5: bne.un => Label7
IL_00BA: ldarg.0
IL_00BB: ldc.i4.0
IL_00BC: stfld System.Int32 ElectricityManager::m_pulseUnitEnd
IL_00C1: Label7
IL_00C1: ldarg.0
IL_00C2: ldfld System.UInt16[] ElectricityManager::m_nodeGroups
IL_00C7: ldarg.1
IL_00C8: ldarg.3
IL_00C9: stelem.i2
IL_00CA: ldarg.0
IL_00CB: ldc.i4.1
IL_00CC: stfld System.Boolean ElectricityManager::m_canContinue
IL_00D1: br => Label8
IL_00D6: Label6
IL_00D6: ldarg.0
IL_00D7: ldarg.0
IL_00D8: ldfld System.UInt16[] ElectricityManager::m_nodeGroups
IL_00DD: ldarg.1
IL_00DE: ldelem.u2
IL_00DF: call System.UInt16 ElectricityManager::GetRootGroup(System.UInt16
group)
IL_00E4: stloc.3
IL_00E5: ldloc.3
IL_00E6: ldarg.3
IL_00E7: beq => Label9
IL_00EC: ldarg.0
IL_00ED: ldarg.3
IL_00EE: ldloc.3
IL_00EF: call System.Void ElectricityManager::MergeGroups(System.UInt16 root,
System.UInt16 merged)
IL_00F4: ldarg.0
IL_00F5: ldfld System.UInt16[] ElectricityManager::m_nodeGroups
IL_00FA: ldarg.1
IL_00FB: ldarg.3
IL_00FC: stelem.i2
IL_00FD: ldarg.0
IL_00FE: ldc.i4.1
IL_00FF: stfld System.Boolean ElectricityManager::m_canContinue
IL_0104: // end original
IL_0104: Label0
IL_0104: Label1
IL_0104: Label2
IL_0104: Label3
IL_0104: Label5
IL_0104: Label8
IL_0104: Label9
IL_0104: ret
DONE

### Patch: System.Void ElectricityManager::UpdateNodeElectricity(System.Int32


nodeID, System.Int32 value)
### Replacement: static System.Void
ElectricityManager::ElectricityManager.UpdateNodeElectricity_Patch2(ElectricityMana
ger this, System.Int32 nodeID, System.Int32 value)
IL_0000: Local var 0: InfoManager/InfoMode
IL_0000: Local var 1: NetManager
IL_0000: Local var 2: System.Boolean
IL_0000: Local var 3: NetNode/Flags
IL_0000: Local var 4: System.UInt16
IL_0000: Local var 5: BuildingManager
IL_0000: Local var 6: NetNode/Flags
IL_0000: Local var 7: System.Int32
IL_0000: Local var 8: System.UInt16
IL_0000: Local var 9: System.Boolean
IL_0000: Local var 10: System.Boolean
IL_0000: ldc.i4 0
IL_0005: stloc 9 (System.Boolean)
IL_0009: ldc.i4.1
IL_000A: stloc 9 (System.Boolean)
IL_000E: ldc.i4 0
IL_0013: stloc 10 (System.Boolean)
IL_0017: ldloc 9 (System.Boolean)
IL_001B: brfalse => Label1
IL_0020: ldarga 1
IL_0024: ldloca 10 (System.Boolean)
IL_0028: call static System.Void
ElectricRoads.Overrides.ElectricRoadsOverrides::PreConduct(System.Int32& nodeID,
System.Boolean& __state)
IL_002D: Label1
IL_002D: nop
IL_002E: ldloc 9 (System.Boolean)
IL_0032: brfalse => Label0
IL_0037: // start original
IL_0037: call static InfoManager
ColossalFramework.Singleton`1<InfoManager>::get_instance()
IL_003C: callvirt InfoMode InfoManager::get_CurrentMode()
IL_0041: stloc.0
IL_0042: call static NetManager
ColossalFramework.Singleton`1<NetManager>::get_instance()
IL_0047: stloc.1
IL_0048: ldc.i4.0
IL_0049: stloc.2
IL_004A: ldloc.1
IL_004B: ldfld Array16`1<NetNode> NetManager::m_nodes
IL_0050: ldfld NetNode[] Array16`1<NetNode>::m_buffer
IL_0055: ldarg.1
IL_0056: ldelema NetNode
IL_005B: ldfld Flags NetNode::m_flags
IL_0060: stloc.3
IL_0061: ldarg.1
IL_0062: call static System.Boolean
ElectricRoads.Overrides.ElectricRoadsOverrides::CheckNodeTransition(System.Int32
nodeID)
IL_0067: brfalse => Label2
IL_006C: ldloc.1
IL_006D: ldfld Array16`1<NetNode> NetManager::m_nodes
IL_0072: ldfld NetNode[] Array16`1<NetNode>::m_buffer
IL_0077: ldarg.1
IL_0078: ldelema NetNode
IL_007D: dup
IL_007E: ldfld Flags NetNode::m_flags
IL_0083: ldc.i4 -1048577
IL_0088: and
IL_0089: stfld Flags NetNode::m_flags
IL_008E: br => Label12
IL_0093: Label2
IL_0093: ldloc.1
IL_0094: ldfld Array16`1<NetNode> NetManager::m_nodes
IL_0099: ldfld NetNode[] Array16`1<NetNode>::m_buffer
IL_009E: ldarg.1
IL_009F: ldelema NetNode
IL_00A4: ldfld System.UInt16 NetNode::m_building
IL_00A9: stloc.s 4 (System.UInt16)
IL_00AB: ldloc.s 4 (System.UInt16)
IL_00AD: brfalse => Label3
IL_00B2: call static BuildingManager
ColossalFramework.Singleton`1<BuildingManager>::get_instance()
IL_00B7: stloc.s 5 (BuildingManager)
IL_00B9: ldloc.s 5 (BuildingManager)
IL_00BB: ldfld Array16`1<Building> BuildingManager::m_buildings
IL_00C0: ldfld Building[] Array16`1<Building>::m_buffer
IL_00C5: ldloc.s 4 (System.UInt16)
IL_00C7: ldelema Building
IL_00CC: ldfld System.UInt16 Building::m_electricityBuffer
IL_00D1: ldarg.2
IL_00D2: beq => Label4
IL_00D7: ldloc.s 5 (BuildingManager)
IL_00D9: ldfld Array16`1<Building> BuildingManager::m_buildings
IL_00DE: ldfld Building[] Array16`1<Building>::m_buffer
IL_00E3: ldloc.s 4 (System.UInt16)
IL_00E5: ldelema Building
IL_00EA: ldarg.2
IL_00EB: conv.u2
IL_00EC: stfld System.UInt16 Building::m_electricityBuffer
IL_00F1: ldloc.0
IL_00F2: ldc.i4.1
IL_00F3: ceq
IL_00F5: stloc.2
IL_00F6: Label4
IL_00F6: ldloc.2
IL_00F7: brfalse => Label5
IL_00FC: ldloc.s 5 (BuildingManager)
IL_00FE: ldloc.s 4 (System.UInt16)
IL_0100: callvirt System.Void BuildingManager::UpdateBuildingColors(System.UInt16
building)
IL_0105: Label3
IL_0105: Label5
IL_0105: ldloc.3
IL_0106: ldc.i4 -67108865
IL_010B: and
IL_010C: stloc.s 6 (NetNode+Flags)
IL_010E: ldarg.2
IL_010F: brfalse => Label6
IL_0114: ldloc.s 6 (NetNode+Flags)
IL_0116: ldc.i4 67108864
IL_011B: or
IL_011C: stloc.s 6 (NetNode+Flags)
IL_011E: Label6
IL_011E: ldloc.s 6 (NetNode+Flags)
IL_0120: ldloc.3
IL_0121: beq => Label7
IL_0126: ldloc.1
IL_0127: ldfld Array16`1<NetNode> NetManager::m_nodes
IL_012C: ldfld NetNode[] Array16`1<NetNode>::m_buffer
IL_0131: ldarg.1
IL_0132: ldelema NetNode
IL_0137: ldloc.s 6 (NetNode+Flags)
IL_0139: stfld Flags NetNode::m_flags
IL_013E: ldloc.0
IL_013F: ldc.i4.1
IL_0140: ceq
IL_0142: stloc.2
IL_0143: Label7
IL_0143: ldloc.2
IL_0144: brfalse => Label8
IL_0149: ldloc.1
IL_014A: ldarg.1
IL_014B: conv.u2
IL_014C: callvirt System.Void NetManager::UpdateNodeColors(System.UInt16 node)
IL_0151: ldc.i4.0
IL_0152: stloc.s 7 (System.Int32)
IL_0154: br => Label9
IL_0159: Label11
IL_0159: ldloc.1
IL_015A: ldfld Array16`1<NetNode> NetManager::m_nodes
IL_015F: ldfld NetNode[] Array16`1<NetNode>::m_buffer
IL_0164: ldarg.1
IL_0165: ldelema NetNode
IL_016A: ldloc.s 7 (System.Int32)
IL_016C: call System.UInt16 NetNode::GetSegment(System.Int32 index)
IL_0171: stloc.s 8 (System.UInt16)
IL_0173: ldloc.s 8 (System.UInt16)
IL_0175: brfalse => Label10
IL_017A: ldloc.1
IL_017B: ldloc.s 8 (System.UInt16)
IL_017D: callvirt System.Void NetManager::UpdateSegmentColors(System.UInt16
segment)
IL_0182: Label10
IL_0182: ldloc.s 7 (System.Int32)
IL_0184: ldc.i4.1
IL_0185: add
IL_0186: stloc.s 7 (System.Int32)
IL_0188: Label9
IL_0188: ldloc.s 7 (System.Int32)
IL_018A: ldc.i4.8
IL_018B: blt => Label11
IL_0190: // end original
IL_0190: Label8
IL_0190: Label12
IL_0190: Label0
IL_0190: ldarg 1
IL_0194: ldloc 10 (System.Boolean)
IL_0198: call static System.Void
ElectricRoads.Overrides.ElectricRoadsOverrides::PostConduct(System.Int32 nodeID,
System.Boolean __state)
IL_019D: ret
DONE

### Patch: virtual System.Void ColossalFramework.UI.UIView::Start()


### Replacement: static System.Void
ColossalFramework.UI.UIView::ColossalFramework.UI.UIView.Start_Patch0(ColossalFrame
work.UI.UIView this)
IL_0000: Local var 0:
ColossalFramework.PoolList`1<ColossalFramework.UI.UIComponent>
IL_0000: Local var 1: ColossalFramework.UI.UIComponent
IL_0000: Local var 2:
System.Collections.Generic.IEnumerator`1<ColossalFramework.UI.UIComponent>
IL_0000: // start original
IL_0000: ldarg.0
IL_0001: ldc.i4.0
IL_0002: stfld System.Int32 ColossalFramework.UI.UIView::m_FramesRendered
IL_0007: ldarg.0
IL_0008: call System.Void
ColossalFramework.UI.UIView::InvalidateAllComponents()
IL_000D: ldarg.0
IL_000E: ldfld UnityEngine.MeshRenderer
ColossalFramework.UI.UIView::m_MeshRenderer
IL_0013: ldnull
IL_0014: call static System.Boolean
UnityEngine.Object::op_Inequality(UnityEngine.Object x, UnityEngine.Object y)
IL_0019: brfalse => Label0
IL_001E: ldarg.0
IL_001F: ldfld UnityEngine.MeshRenderer
ColossalFramework.UI.UIView::m_MeshRenderer
IL_0024: ldc.i4.1
IL_0025: callvirt System.Void UnityEngine.Renderer::set_enabled(System.Boolean
value)
IL_002A: Label0
IL_002A: ldarg.0
IL_002B: call ColossalFramework.PoolList`1<ColossalFramework.UI.UIComponent>
ColossalFramework.UI.UIView::GetTopLevelComponents()
IL_0030: stloc.0
.try
{
IL_0031: ldloc.0
IL_0032: callvirt virtual
System.Collections.Generic.IEnumerator`1<ColossalFramework.UI.UIComponent>
ColossalFramework.PoolList`1<ColossalFramework.UI.UIComponent>::GetEnumerator()
IL_0037: stloc.2
.try
{
IL_0038: br => Label1
IL_003D: Label2
IL_003D: ldloc.2
IL_003E: callvirt abstract virtual ColossalFramework.UI.UIComponent
System.Collections.Generic.IEnumerator`1<ColossalFramework.UI.UIComponent>::get_Cur
rent()
IL_0043: stloc.1
IL_0044: ldloc.1
IL_0045: ldc.i4.1
IL_0046: callvirt System.Void
ColossalFramework.UI.UIComponent::InitializeParentVisibilityCache(System.Boolean
parentVisible)
IL_004B: Label1
IL_004B: ldloc.2
IL_004C: callvirt abstract virtual System.Boolean
System.Collections.IEnumerator::MoveNext()
IL_0051: brtrue => Label2
IL_0056: leave => Label3
IL_005B: leave => (autogenerated)
} // end try
.finally
{
IL_0060: ldloc.2
IL_0061: brfalse => Label4
IL_0066: ldloc.2
IL_0067: callvirt abstract virtual System.Void
System.IDisposable::Dispose()
IL_006C: Label4
IL_006C: endfinally
IL_006D: leave => (autogenerated)
} // end handler
IL_006E: Label3
IL_006E: leave => Label5
IL_0073: leave => (autogenerated)
} // end try
.finally
{
IL_0078: ldloc.0
IL_0079: brfalse => Label6
IL_007E: ldloc.0
IL_007F: callvirt abstract virtual System.Void
System.IDisposable::Dispose()
IL_0084: Label6
IL_0084: endfinally
IL_0085: leave => (autogenerated)
} // end handler
IL_0086: Label5
IL_0086: ldarg.0
IL_0087: ldc.i4.1
IL_0088: stfld System.Boolean
ColossalFramework.UI.UIView::m_VisibilityCacheInitialized
IL_008D: // end original
IL_008D: ret
DONE

### Patch: virtual UnityEngine.Color NetAI::GetColor(System.UInt16 nodeID, NetNode&


data, InfoMode infoMode, SubInfoMode subInfoMode)
### Replacement: static UnityEngine.Color NetAI::NetAI.GetColor_Patch0(NetAI this,
System.UInt16 nodeID, NetNode& data, InfoMode infoMode, SubInfoMode subInfoMode)
IL_0000: // start original
IL_0000: ldarg.3
IL_0001: brfalse => Label0
IL_0006: call static InfoManager
ColossalFramework.Singleton`1<InfoManager>::get_instance()
IL_000B: ldfld InfoProperties SimulationManagerBase`2<InfoManager,
InfoProperties>::m_properties
IL_0010: ldfld UnityEngine.Color InfoProperties::m_neutralColor
IL_0015: br => Label1
IL_001A: Label0
IL_001A: ldarg.0
IL_001B: ldfld NetInfo NetAI::m_info
IL_0020: ldfld UnityEngine.Color NetInfo::m_color
IL_0025: // end original
IL_0025: Label1
IL_0025: ret
DONE

### Patch: virtual UnityEngine.Color NetAI::GetColor(System.UInt16 segmentID,


NetSegment& data, InfoMode infoMode, SubInfoMode subInfoMode)
### Replacement: static UnityEngine.Color NetAI::NetAI.GetColor_Patch0(NetAI this,
System.UInt16 segmentID, NetSegment& data, InfoMode infoMode, SubInfoMode
subInfoMode)
IL_0000: // start original
IL_0000: ldarg.3
IL_0001: brfalse => Label0
IL_0006: call static InfoManager
ColossalFramework.Singleton`1<InfoManager>::get_instance()
IL_000B: ldfld InfoProperties SimulationManagerBase`2<InfoManager,
InfoProperties>::m_properties
IL_0010: ldfld UnityEngine.Color InfoProperties::m_neutralColor
IL_0015: br => Label1
IL_001A: Label0
IL_001A: ldarg.0
IL_001B: ldfld NetInfo NetAI::m_info
IL_0020: ldfld UnityEngine.Color NetInfo::m_color
IL_0025: // end original
IL_0025: Label1
IL_0025: ret
DONE

### Patch: System.Void ElectricityManager::UpdateNodeElectricity(System.Int32


nodeID, System.Int32 value)
### Replacement: static System.Void
ElectricityManager::ElectricityManager.UpdateNodeElectricity_Patch0(ElectricityMana
ger this, System.Int32 nodeID, System.Int32 value)
IL_0000: Local var 0: InfoManager/InfoMode
IL_0000: Local var 1: NetManager
IL_0000: Local var 2: System.Boolean
IL_0000: Local var 3: NetNode/Flags
IL_0000: Local var 4: System.UInt16
IL_0000: Local var 5: BuildingManager
IL_0000: Local var 6: NetNode/Flags
IL_0000: Local var 7: System.Int32
IL_0000: Local var 8: System.UInt16
IL_0000: // start original
IL_0000: call static InfoManager
ColossalFramework.Singleton`1<InfoManager>::get_instance()
IL_0005: callvirt InfoMode InfoManager::get_CurrentMode()
IL_000A: stloc.0
IL_000B: call static NetManager
ColossalFramework.Singleton`1<NetManager>::get_instance()
IL_0010: stloc.1
IL_0011: ldc.i4.0
IL_0012: stloc.2
IL_0013: ldloc.1
IL_0014: ldfld Array16`1<NetNode> NetManager::m_nodes
IL_0019: ldfld NetNode[] Array16`1<NetNode>::m_buffer
IL_001E: ldarg.1
IL_001F: ldelema NetNode
IL_0024: ldfld Flags NetNode::m_flags
IL_0029: stloc.3
IL_002A: ldloc.3
IL_002B: ldc.i4 1048576
IL_0030: and
IL_0031: brfalse => Label0
IL_0036: ldloc.1
IL_0037: ldfld Array16`1<NetNode> NetManager::m_nodes
IL_003C: ldfld NetNode[] Array16`1<NetNode>::m_buffer
IL_0041: ldarg.1
IL_0042: ldelema NetNode
IL_0047: dup
IL_0048: ldfld Flags NetNode::m_flags
IL_004D: ldc.i4 -1048577
IL_0052: and
IL_0053: stfld Flags NetNode::m_flags
IL_0058: br => Label10
IL_005D: Label0
IL_005D: ldloc.1
IL_005E: ldfld Array16`1<NetNode> NetManager::m_nodes
IL_0063: ldfld NetNode[] Array16`1<NetNode>::m_buffer
IL_0068: ldarg.1
IL_0069: ldelema NetNode
IL_006E: ldfld System.UInt16 NetNode::m_building
IL_0073: stloc.s 4 (System.UInt16)
IL_0075: ldloc.s 4 (System.UInt16)
IL_0077: brfalse => Label1
IL_007C: call static BuildingManager
ColossalFramework.Singleton`1<BuildingManager>::get_instance()
IL_0081: stloc.s 5 (BuildingManager)
IL_0083: ldloc.s 5 (BuildingManager)
IL_0085: ldfld Array16`1<Building> BuildingManager::m_buildings
IL_008A: ldfld Building[] Array16`1<Building>::m_buffer
IL_008F: ldloc.s 4 (System.UInt16)
IL_0091: ldelema Building
IL_0096: ldfld System.UInt16 Building::m_electricityBuffer
IL_009B: ldarg.2
IL_009C: beq => Label2
IL_00A1: ldloc.s 5 (BuildingManager)
IL_00A3: ldfld Array16`1<Building> BuildingManager::m_buildings
IL_00A8: ldfld Building[] Array16`1<Building>::m_buffer
IL_00AD: ldloc.s 4 (System.UInt16)
IL_00AF: ldelema Building
IL_00B4: ldarg.2
IL_00B5: conv.u2
IL_00B6: stfld System.UInt16 Building::m_electricityBuffer
IL_00BB: ldloc.0
IL_00BC: ldc.i4.1
IL_00BD: ceq
IL_00BF: stloc.2
IL_00C0: Label2
IL_00C0: ldloc.2
IL_00C1: brfalse => Label3
IL_00C6: ldloc.s 5 (BuildingManager)
IL_00C8: ldloc.s 4 (System.UInt16)
IL_00CA: callvirt System.Void BuildingManager::UpdateBuildingColors(System.UInt16
building)
IL_00CF: Label1
IL_00CF: Label3
IL_00CF: ldloc.3
IL_00D0: ldc.i4 -67108865
IL_00D5: and
IL_00D6: stloc.s 6 (NetNode+Flags)
IL_00D8: ldarg.2
IL_00D9: brfalse => Label4
IL_00DE: ldloc.s 6 (NetNode+Flags)
IL_00E0: ldc.i4 67108864
IL_00E5: or
IL_00E6: stloc.s 6 (NetNode+Flags)
IL_00E8: Label4
IL_00E8: ldloc.s 6 (NetNode+Flags)
IL_00EA: ldloc.3
IL_00EB: beq => Label5
IL_00F0: ldloc.1
IL_00F1: ldfld Array16`1<NetNode> NetManager::m_nodes
IL_00F6: ldfld NetNode[] Array16`1<NetNode>::m_buffer
IL_00FB: ldarg.1
IL_00FC: ldelema NetNode
IL_0101: ldloc.s 6 (NetNode+Flags)
IL_0103: stfld Flags NetNode::m_flags
IL_0108: ldloc.0
IL_0109: ldc.i4.1
IL_010A: ceq
IL_010C: stloc.2
IL_010D: Label5
IL_010D: ldloc.2
IL_010E: brfalse => Label6
IL_0113: ldloc.1
IL_0114: ldarg.1
IL_0115: conv.u2
IL_0116: callvirt System.Void NetManager::UpdateNodeColors(System.UInt16 node)
IL_011B: ldc.i4.0
IL_011C: stloc.s 7 (System.Int32)
IL_011E: br => Label7
IL_0123: Label9
IL_0123: ldloc.1
IL_0124: ldfld Array16`1<NetNode> NetManager::m_nodes
IL_0129: ldfld NetNode[] Array16`1<NetNode>::m_buffer
IL_012E: ldarg.1
IL_012F: ldelema NetNode
IL_0134: ldloc.s 7 (System.Int32)
IL_0136: call System.UInt16 NetNode::GetSegment(System.Int32 index)
IL_013B: stloc.s 8 (System.UInt16)
IL_013D: ldloc.s 8 (System.UInt16)
IL_013F: brfalse => Label8
IL_0144: ldloc.1
IL_0145: ldloc.s 8 (System.UInt16)
IL_0147: callvirt System.Void NetManager::UpdateSegmentColors(System.UInt16
segment)
IL_014C: Label8
IL_014C: ldloc.s 7 (System.Int32)
IL_014E: ldc.i4.1
IL_014F: add
IL_0150: stloc.s 7 (System.Int32)
IL_0152: Label7
IL_0152: ldloc.s 7 (System.Int32)
IL_0154: ldc.i4.8
IL_0155: blt => Label9
IL_015A: // end original
IL_015A: Label6
IL_015A: Label10
IL_015A: ret
DONE

### Patch: static System.Void PropInstance::RenderInstance(CameraInfo cameraInfo,


PropInfo info, InstanceID id, UnityEngine.Vector3 position, System.Single scale,
System.Single angle, UnityEngine.Color color, UnityEngine.Vector4 objectIndex,
System.Boolean active, UnityEngine.Texture heightMap, UnityEngine.Vector4
heightMapping, UnityEngine.Vector4 surfaceMapping, UnityEngine.Texture
waterHeightMap, UnityEngine.Vector4 waterHeightMapping, UnityEngine.Vector4
waterSurfaceMapping)
### Replacement: static System.Void
PropInstance::PropInstance.RenderInstance_Patch0(CameraInfo cameraInfo, PropInfo
info, InstanceID id, UnityEngine.Vector3 position, System.Single scale,
System.Single angle, UnityEngine.Color color, UnityEngine.Vector4 objectIndex,
System.Boolean active, UnityEngine.Texture heightMap, UnityEngine.Vector4
heightMapping, UnityEngine.Vector4 surfaceMapping, UnityEngine.Texture
waterHeightMap, UnityEngine.Vector4 waterHeightMapping, UnityEngine.Vector4
waterSurfaceMapping)
IL_0000: Local var 0: UnityEngine.Matrix4x4
IL_0000: Local var 1: System.Single
IL_0000: Local var 2: System.Int32
IL_0000: Local var 3: UnityEngine.Vector3
IL_0000: Local var 4: UnityEngine.Vector3
IL_0000: Local var 5: EffectInfo/SpawnArea
IL_0000: Local var 6: System.Single
IL_0000: Local var 7: LightSystem
IL_0000: Local var 8: ColossalFramework.Math.Randomizer
IL_0000: Local var 9: UnityEngine.Vector4
IL_0000: Local var 10: System.Single
IL_0000: Local var 11: System.Single
IL_0000: Local var 12: System.Single
IL_0000: Local var 13: UnityEngine.Matrix4x4
IL_0000: Local var 14: PropManager
IL_0000: Local var 15: UnityEngine.MaterialPropertyBlock
IL_0000: Local var 16: System.Int32
IL_0000: // start original
IL_0000: ldarg.1
IL_0001: ldfld System.Boolean PrefabInfo::m_prefabInitialized
IL_0006: brfalse => Label0
IL_000B: ldarg.1
IL_000C: ldfld System.Boolean PropInfo::m_hasEffects
IL_0011: brfalse => Label1
IL_0016: ldarg.s 8
IL_0018: brtrue => Label2
IL_001D: ldarg.1
IL_001E: ldfld System.Boolean PropInfo::m_alwaysActive
IL_0023: brfalse => Label3
IL_0028: Label2
IL_0028: ldloca.s 0 (UnityEngine.Matrix4x4)
IL_002A: initobj UnityEngine.Matrix4x4
IL_0030: ldloca.s 0 (UnityEngine.Matrix4x4)
IL_0032: ldarg.3
IL_0033: ldarg.s 5
IL_0035: ldc.r4 57.29578
IL_003A: mul
IL_003B: call static UnityEngine.Vector3 UnityEngine.Vector3::get_down()
IL_0040: call static UnityEngine.Quaternion
UnityEngine.Quaternion::AngleAxis(System.Single angle, UnityEngine.Vector3 axis)
IL_0045: ldarg.s 4
IL_0047: ldarg.s 4
IL_0049: ldarg.s 4
IL_004B: newobj System.Void UnityEngine.Vector3::.ctor(System.Single x,
System.Single y, System.Single z)
IL_0050: call System.Void UnityEngine.Matrix4x4::SetTRS(UnityEngine.Vector3
pos, UnityEngine.Quaternion q, UnityEngine.Vector3 s)
IL_0055: call static SimulationManager
ColossalFramework.Singleton`1<SimulationManager>::get_instance()
IL_005A: ldfld System.Single SimulationManager::m_simulationTimeDelta
IL_005F: stloc.1
IL_0060: ldc.i4.0
IL_0061: stloc.2
IL_0062: br => Label4
IL_0067: Label5
IL_0067: ldloca.s 0 (UnityEngine.Matrix4x4)
IL_0069: ldarg.1
IL_006A: ldfld Effect[] PropInfo::m_effects
IL_006F: ldloc.2
IL_0070: ldelema PropInfo+Effect
IL_0075: ldfld UnityEngine.Vector3 Effect::m_position
IL_007A: call UnityEngine.Vector3
UnityEngine.Matrix4x4::MultiplyPoint(UnityEngine.Vector3 v)
IL_007F: stloc.3
IL_0080: ldloca.s 0 (UnityEngine.Matrix4x4)
IL_0082: ldarg.1
IL_0083: ldfld Effect[] PropInfo::m_effects
IL_0088: ldloc.2
IL_0089: ldelema PropInfo+Effect
IL_008E: ldfld UnityEngine.Vector3 Effect::m_direction
IL_0093: call UnityEngine.Vector3
UnityEngine.Matrix4x4::MultiplyVector(UnityEngine.Vector3 v)
IL_0098: stloc.s 4 (UnityEngine.Vector3)
IL_009A: ldloca.s 5 (EffectInfo+SpawnArea)
IL_009C: ldloc.3
IL_009D: ldloc.s 4 (UnityEngine.Vector3)
IL_009F: ldc.r4 0
IL_00A4: call System.Void SpawnArea::.ctor(UnityEngine.Vector3 position,
UnityEngine.Vector3 direction, System.Single radius)
IL_00A9: ldarg.1
IL_00AA: ldfld Effect[] PropInfo::m_effects
IL_00AF: ldloc.2
IL_00B0: ldelema PropInfo+Effect
IL_00B5: ldfld EffectInfo Effect::m_effect
IL_00BA: ldarg.2
IL_00BB: ldloc.s 5 (EffectInfo+SpawnArea)
IL_00BD: call static UnityEngine.Vector3 UnityEngine.Vector3::get_zero()
IL_00C2: ldc.r4 0
IL_00C7: ldc.r4 1
IL_00CC: ldc.r4 -1
IL_00D1: ldloc.1
IL_00D2: ldarg.0
IL_00D3: callvirt virtual System.Void EffectInfo::RenderEffect(InstanceID id,
SpawnArea area, UnityEngine.Vector3 velocity, System.Single acceleration,
System.Single magnitude, System.Single timeOffset, System.Single timeDelta,
CameraInfo cameraInfo)
IL_00D8: ldloc.2
IL_00D9: ldc.i4.1
IL_00DA: add
IL_00DB: stloc.2
IL_00DC: Label4
IL_00DC: ldloc.2
IL_00DD: ldarg.1
IL_00DE: ldfld Effect[] PropInfo::m_effects
IL_00E3: ldlen
IL_00E4: conv.i4
IL_00E5: blt => Label5
IL_00EA: Label1
IL_00EA: Label3
IL_00EA: ldarg.1
IL_00EB: ldfld System.Boolean PropInfo::m_hasRenderer
IL_00F0: brfalse => Label6
IL_00F5: ldarg.0
IL_00F6: ldfld System.Int32 CameraInfo::m_layerMask
IL_00FB: ldc.i4.1
IL_00FC: ldarg.1
IL_00FD: ldfld System.Int32 PrefabInfo::m_prefabDataLayer
IL_0102: ldc.i4.s 31
IL_0104: and
IL_0105: shl
IL_0106: and
IL_0107: brfalse => Label7
IL_010C: call static InfoManager
ColossalFramework.Singleton`1<InfoManager>::get_instance()
IL_0111: callvirt InfoMode InfoManager::get_CurrentMode()
IL_0116: brtrue => Label8
IL_011B: ldc.r4 0
IL_0120: stloc.s 6 (System.Single)
IL_0122: ldarg.s 8
IL_0124: brtrue => Label9
IL_0129: ldarg.1
IL_012A: ldfld System.Boolean PropInfo::m_alwaysActive
IL_012F: brtrue => Label10
IL_0134: ldarga.s 7
IL_0136: ldc.r4 0
IL_013B: stfld System.Single UnityEngine.Vector4::z
IL_0140: br => Label11
IL_0145: Label9
IL_0145: Label10
IL_0145: ldarg.1
IL_0146: ldflda UnityEngine.Vector2 PropInfo::m_illuminationOffRange
IL_014B: ldfld System.Single UnityEngine.Vector2::x
IL_0150: ldc.r4 1000
IL_0155: blt => Label12
IL_015A: ldarg.1
IL_015B: ldfld BlinkType PropInfo::m_illuminationBlinkType
IL_0160: brfalse => Label13
IL_0165: Label12
IL_0165: call static RenderManager
ColossalFramework.Singleton`1<RenderManager>::get_instance()
IL_016A: callvirt LightSystem RenderManager::get_lightSystem()
IL_016F: stloc.s 7 (LightSystem)
IL_0171: ldloca.s 8 (ColossalFramework.Math.Randomizer)
IL_0173: ldarga.s 2
IL_0175: call System.UInt32 InstanceID::get_Index()
IL_017A: call System.Void
ColossalFramework.Math.Randomizer::.ctor(System.UInt32 _seed)
IL_017F: ldarg.1
IL_0180: ldflda UnityEngine.Vector2 PropInfo::m_illuminationOffRange
IL_0185: ldfld System.Single UnityEngine.Vector2::x
IL_018A: ldloca.s 8 (ColossalFramework.Math.Randomizer)
IL_018C: ldc.i4 100000
IL_0191: call System.Int32
ColossalFramework.Math.Randomizer::Int32(System.UInt32 range)
IL_0196: conv.r4
IL_0197: ldc.r4 1E-05
IL_019C: mul
IL_019D: ldarg.1
IL_019E: ldflda UnityEngine.Vector2 PropInfo::m_illuminationOffRange
IL_01A3: ldfld System.Single UnityEngine.Vector2::y
IL_01A8: ldarg.1
IL_01A9: ldflda UnityEngine.Vector2 PropInfo::m_illuminationOffRange
IL_01AE: ldfld System.Single UnityEngine.Vector2::x
IL_01B3: sub
IL_01B4: mul
IL_01B5: add
IL_01B6: stloc.s 6 (System.Single)
IL_01B8: ldarga.s 7
IL_01BA: ldloc.s 6 (System.Single)
IL_01BC: ldc.r4 0.01
IL_01C1: add
IL_01C2: ldloc.s 6 (System.Single)
IL_01C4: ldc.r4 0.01
IL_01C9: sub
IL_01CA: ldloc.s 7 (LightSystem)
IL_01CC: callvirt System.Single LightSystem::get_DayLightIntensity()
IL_01D1: call static System.Single MathUtils::SmoothStep(System.Single edge0,
System.Single edge1, System.Single x)
IL_01D6: stfld System.Single UnityEngine.Vector4::z
IL_01DB: ldarg.1
IL_01DC: ldfld BlinkType PropInfo::m_illuminationBlinkType
IL_01E1: brfalse => Label14
IL_01E6: ldarg.1
IL_01E7: ldfld BlinkType PropInfo::m_illuminationBlinkType
IL_01EC: call static UnityEngine.Vector4
LightEffect::GetBlinkVector(BlinkType type)
IL_01F1: stloc.s 9 (UnityEngine.Vector4)
IL_01F3: ldloc.s 6 (System.Single)
IL_01F5: ldc.r4 3.71
IL_01FA: mul
IL_01FB: call static SimulationManager
ColossalFramework.Singleton`1<SimulationManager>::get_instance()
IL_0200: ldfld System.Single SimulationManager::m_simulationTimer
IL_0205: ldloca.s 9 (UnityEngine.Vector4)
IL_0207: ldfld System.Single UnityEngine.Vector4::w
IL_020C: div
IL_020D: add
IL_020E: stloc.s 10 (System.Single)
IL_0210: ldloc.s 10 (System.Single)
IL_0212: ldloc.s 10 (System.Single)
IL_0214: call static System.Single UnityEngine.Mathf::Floor(System.Single f)
IL_0219: sub
IL_021A: ldloca.s 9 (UnityEngine.Vector4)
IL_021C: ldfld System.Single UnityEngine.Vector4::w
IL_0221: mul
IL_0222: stloc.s 10 (System.Single)
IL_0224: ldloca.s 9 (UnityEngine.Vector4)
IL_0226: ldfld System.Single UnityEngine.Vector4::x
IL_022B: ldloca.s 9 (UnityEngine.Vector4)
IL_022D: ldfld System.Single UnityEngine.Vector4::y
IL_0232: ldloc.s 10 (System.Single)
IL_0234: call static System.Single MathUtils::SmoothStep(System.Single edge0,
System.Single edge1, System.Single x)
IL_0239: stloc.s 11 (System.Single)
IL_023B: ldloca.s 9 (UnityEngine.Vector4)
IL_023D: ldfld System.Single UnityEngine.Vector4::w
IL_0242: ldloca.s 9 (UnityEngine.Vector4)
IL_0244: ldfld System.Single UnityEngine.Vector4::z
IL_0249: ldloc.s 10 (System.Single)
IL_024B: call static System.Single MathUtils::SmoothStep(System.Single edge0,
System.Single edge1, System.Single x)
IL_0250: stloc.s 12 (System.Single)
IL_0252: ldarga.s 7
IL_0254: dup
IL_0255: ldfld System.Single UnityEngine.Vector4::z
IL_025A: ldc.r4 1
IL_025F: ldloc.s 11 (System.Single)
IL_0261: ldloc.s 12 (System.Single)
IL_0263: mul
IL_0264: sub
IL_0265: mul
IL_0266: stfld System.Single UnityEngine.Vector4::z
IL_026B: Label14
IL_026B: br => Label15
IL_0270: Label13
IL_0270: ldarga.s 7
IL_0272: ldc.r4 1
IL_0277: stfld System.Single UnityEngine.Vector4::z
IL_027C: Label8
IL_027C: Label11
IL_027C: Label15
IL_027C: ldarg.0
IL_027D: brfalse => Label16
IL_0282: ldarg.0
IL_0283: ldarg.3
IL_0284: ldarg.1
IL_0285: ldfld System.Single PropInfo::m_lodRenderDistance
IL_028A: callvirt System.Boolean
CameraInfo::CheckRenderDistance(UnityEngine.Vector3 point, System.Single
maxDistance)
IL_028F: brfalse => Label17
IL_0294: Label16
IL_0294: ldloca.s 13 (UnityEngine.Matrix4x4)
IL_0296: initobj UnityEngine.Matrix4x4
IL_029C: ldloca.s 13 (UnityEngine.Matrix4x4)
IL_029E: ldarg.3
IL_029F: ldarg.s 5
IL_02A1: ldc.r4 57.29578
IL_02A6: mul
IL_02A7: call static UnityEngine.Vector3 UnityEngine.Vector3::get_down()
IL_02AC: call static UnityEngine.Quaternion
UnityEngine.Quaternion::AngleAxis(System.Single angle, UnityEngine.Vector3 axis)
IL_02B1: ldarg.s 4
IL_02B3: ldarg.s 4
IL_02B5: ldarg.s 4
IL_02B7: newobj System.Void UnityEngine.Vector3::.ctor(System.Single x,
System.Single y, System.Single z)
IL_02BC: call System.Void UnityEngine.Matrix4x4::SetTRS(UnityEngine.Vector3
pos, UnityEngine.Quaternion q, UnityEngine.Vector3 s)
IL_02C1: call static PropManager
ColossalFramework.Singleton`1<PropManager>::get_instance()
IL_02C6: stloc.s 14 (PropManager)
IL_02C8: ldloc.s 14 (PropManager)
IL_02CA: ldfld UnityEngine.MaterialPropertyBlock PropManager::m_materialBlock
IL_02CF: stloc.s 15 (UnityEngine.MaterialPropertyBlock)
IL_02D1: ldloc.s 15 (UnityEngine.MaterialPropertyBlock)
IL_02D3: callvirt System.Void UnityEngine.MaterialPropertyBlock::Clear()
IL_02D8: ldloc.s 15 (UnityEngine.MaterialPropertyBlock)
IL_02DA: ldloc.s 14 (PropManager)
IL_02DC: ldfld System.Int32 PropManager::ID_Color
IL_02E1: ldarg.s 6
IL_02E3: callvirt System.Void
UnityEngine.MaterialPropertyBlock::SetColor(System.Int32 nameID, UnityEngine.Color
value)
IL_02E8: ldloc.s 15 (UnityEngine.MaterialPropertyBlock)
IL_02EA: ldloc.s 14 (PropManager)
IL_02EC: ldfld System.Int32 PropManager::ID_HeightMap
IL_02F1: ldarg.s 9
IL_02F3: callvirt System.Void
UnityEngine.MaterialPropertyBlock::SetTexture(System.Int32 nameID,
UnityEngine.Texture value)
IL_02F8: ldloc.s 15 (UnityEngine.MaterialPropertyBlock)
IL_02FA: ldloc.s 14 (PropManager)
IL_02FC: ldfld System.Int32 PropManager::ID_HeightMapping
IL_0301: ldarg.s 10
IL_0303: callvirt System.Void
UnityEngine.MaterialPropertyBlock::SetVector(System.Int32 nameID,
UnityEngine.Vector4 value)
IL_0308: ldloc.s 15 (UnityEngine.MaterialPropertyBlock)
IL_030A: ldloc.s 14 (PropManager)
IL_030C: ldfld System.Int32 PropManager::ID_SurfaceMapping
IL_0311: ldarg.s 11
IL_0313: callvirt System.Void
UnityEngine.MaterialPropertyBlock::SetVector(System.Int32 nameID,
UnityEngine.Vector4 value)
IL_0318: ldloc.s 15 (UnityEngine.MaterialPropertyBlock)
IL_031A: ldloc.s 14 (PropManager)
IL_031C: ldfld System.Int32 PropManager::ID_ObjectIndex
IL_0321: ldarg.s 7
IL_0323: callvirt System.Void
UnityEngine.MaterialPropertyBlock::SetVector(System.Int32 nameID,
UnityEngine.Vector4 value)
IL_0328: ldloc.s 15 (UnityEngine.MaterialPropertyBlock)
IL_032A: ldloc.s 14 (PropManager)
IL_032C: ldfld System.Int32 PropManager::ID_WaterHeightMap
IL_0331: ldarg.s 12
IL_0333: callvirt System.Void
UnityEngine.MaterialPropertyBlock::SetTexture(System.Int32 nameID,
UnityEngine.Texture value)
IL_0338: ldloc.s 15 (UnityEngine.MaterialPropertyBlock)
IL_033A: ldloc.s 14 (PropManager)
IL_033C: ldfld System.Int32 PropManager::ID_WaterHeightMapping
IL_0341: ldarg.s 13
IL_0343: callvirt System.Void
UnityEngine.MaterialPropertyBlock::SetVector(System.Int32 nameID,
UnityEngine.Vector4 value)
IL_0348: ldloc.s 15 (UnityEngine.MaterialPropertyBlock)
IL_034A: ldloc.s 14 (PropManager)
IL_034C: ldfld System.Int32 PropManager::ID_WaterSurfaceMapping
IL_0351: ldarg.s 14
IL_0353: callvirt System.Void
UnityEngine.MaterialPropertyBlock::SetVector(System.Int32 nameID,
UnityEngine.Vector4 value)
IL_0358: ldarg.1
IL_0359: ldfld UnityEngine.Vector4[] PropInfo::m_rollLocation
IL_035E: brfalse => Label18
IL_0363: ldarg.1
IL_0364: ldfld UnityEngine.Material PropInfo::m_material
IL_0369: ldloc.s 14 (PropManager)
IL_036B: ldfld System.Int32 PropManager::ID_RollLocation
IL_0370: ldarg.1
IL_0371: ldfld UnityEngine.Vector4[] PropInfo::m_rollLocation
IL_0376: callvirt System.Void UnityEngine.Material::SetVectorArray(System.Int32
nameID, UnityEngine.Vector4[] values)
IL_037B: ldarg.1
IL_037C: ldfld UnityEngine.Material PropInfo::m_material
IL_0381: ldloc.s 14 (PropManager)
IL_0383: ldfld System.Int32 PropManager::ID_RollParams
IL_0388: ldarg.1
IL_0389: ldfld UnityEngine.Vector4[] PropInfo::m_rollParams
IL_038E: callvirt System.Void UnityEngine.Material::SetVectorArray(System.Int32
nameID, UnityEngine.Vector4[] values)
IL_0393: Label18
IL_0393: ldloc.s 14 (PropManager)
IL_0395: ldflda DrawCallData SimulationManagerBase`2<PropManager,
PropProperties>::m_drawCallData
IL_039A: dup
IL_039B: ldfld System.Int32 DrawCallData::m_defaultCalls
IL_03A0: ldc.i4.1
IL_03A1: add
IL_03A2: stfld System.Int32 DrawCallData::m_defaultCalls
IL_03A7: ldarg.1
IL_03A8: ldfld UnityEngine.Mesh PropInfo::m_mesh
IL_03AD: ldloc.s 13 (UnityEngine.Matrix4x4)
IL_03AF: ldarg.1
IL_03B0: ldfld UnityEngine.Material PropInfo::m_material
IL_03B5: ldarg.1
IL_03B6: ldfld System.Int32 PrefabInfo::m_prefabDataLayer
IL_03BB: ldnull
IL_03BC: ldc.i4.0
IL_03BD: ldloc.s 15 (UnityEngine.MaterialPropertyBlock)
IL_03BF: call static System.Void
UnityEngine.Graphics::DrawMesh(UnityEngine.Mesh mesh, UnityEngine.Matrix4x4 matrix,
UnityEngine.Material material, System.Int32 layer, UnityEngine.Camera camera,
System.Int32 submeshIndex, UnityEngine.MaterialPropertyBlock properties)
IL_03C4: br => Label19
IL_03C9: Label17
IL_03C9: ldarg.s 9
IL_03CB: ldarg.1
IL_03CC: ldfld UnityEngine.Texture PropInfo::m_lodHeightMap
IL_03D1: call static System.Boolean
UnityEngine.Object::op_Inequality(UnityEngine.Object x, UnityEngine.Object y)
IL_03D6: brtrue => Label20
IL_03DB: ldarg.s 12
IL_03DD: ldarg.1
IL_03DE: ldfld UnityEngine.Texture PropInfo::m_lodWaterHeightMap
IL_03E3: call static System.Boolean
UnityEngine.Object::op_Inequality(UnityEngine.Object x, UnityEngine.Object y)
IL_03E8: brfalse => Label21
IL_03ED: Label20
IL_03ED: ldarg.1
IL_03EE: ldfld System.Int32 PropInfo::m_lodCount
IL_03F3: brfalse => Label22
IL_03F8: ldarg.0
IL_03F9: ldarg.1
IL_03FA: call static System.Void PropInstance::RenderLod(CameraInfo
cameraInfo, PropInfo info)
IL_03FF: Label22
IL_03FF: ldarg.1
IL_0400: ldarg.s 9
IL_0402: stfld UnityEngine.Texture PropInfo::m_lodHeightMap
IL_0407: ldarg.1
IL_0408: ldarg.s 10
IL_040A: stfld UnityEngine.Vector4 PropInfo::m_lodHeightMapping
IL_040F: ldarg.1
IL_0410: ldarg.s 11
IL_0412: stfld UnityEngine.Vector4 PropInfo::m_lodSurfaceMapping
IL_0417: ldarg.1
IL_0418: ldarg.s 12
IL_041A: stfld UnityEngine.Texture PropInfo::m_lodWaterHeightMap
IL_041F: ldarg.1
IL_0420: ldarg.s 13
IL_0422: stfld UnityEngine.Vector4 PropInfo::m_lodWaterHeightMapping
IL_0427: ldarg.1
IL_0428: ldarg.s 14
IL_042A: stfld UnityEngine.Vector4 PropInfo::m_lodWaterSurfaceMapping
IL_042F: Label21
IL_042F: ldarga.s 7
IL_0431: ldarg.s 4
IL_0433: stfld System.Single UnityEngine.Vector4::w
IL_0438: ldarg.1
IL_0439: ldfld UnityEngine.Vector4[] PropInfo::m_lodLocations
IL_043E: ldarg.1
IL_043F: ldfld System.Int32 PropInfo::m_lodCount
IL_0444: ldelema UnityEngine.Vector4
IL_0449: ldarga.s 3
IL_044B: ldfld System.Single UnityEngine.Vector3::x
IL_0450: ldarga.s 3
IL_0452: ldfld System.Single UnityEngine.Vector3::y
IL_0457: ldarga.s 3
IL_0459: ldfld System.Single UnityEngine.Vector3::z
IL_045E: ldarg.s 5
IL_0460: newobj System.Void UnityEngine.Vector4::.ctor(System.Single x,
System.Single y, System.Single z, System.Single w)
IL_0465: stobj UnityEngine.Vector4
IL_046A: ldarg.1
IL_046B: ldfld UnityEngine.Vector4[] PropInfo::m_lodObjectIndices
IL_0470: ldarg.1
IL_0471: ldfld System.Int32 PropInfo::m_lodCount
IL_0476: ldelema UnityEngine.Vector4
IL_047B: ldarg.s 7
IL_047D: stobj UnityEngine.Vector4
IL_0482: ldarg.1
IL_0483: ldfld UnityEngine.Vector4[] PropInfo::m_lodColors
IL_0488: ldarg.1
IL_0489: ldfld System.Int32 PropInfo::m_lodCount
IL_048E: ldelema UnityEngine.Vector4
IL_0493: ldarga.s 6
IL_0495: call UnityEngine.Color UnityEngine.Color::get_linear()
IL_049A: call static UnityEngine.Vector4
UnityEngine.Color::op_Implicit(UnityEngine.Color c)
IL_049F: stobj UnityEngine.Vector4
IL_04A4: ldarg.1
IL_04A5: ldarg.1
IL_04A6: ldfld UnityEngine.Vector3 PropInfo::m_lodMin
IL_04AB: ldarg.3
IL_04AC: call static UnityEngine.Vector3
UnityEngine.Vector3::Min(UnityEngine.Vector3 lhs, UnityEngine.Vector3 rhs)
IL_04B1: stfld UnityEngine.Vector3 PropInfo::m_lodMin
IL_04B6: ldarg.1
IL_04B7: ldarg.1
IL_04B8: ldfld UnityEngine.Vector3 PropInfo::m_lodMax
IL_04BD: ldarg.3
IL_04BE: call static UnityEngine.Vector3
UnityEngine.Vector3::Max(UnityEngine.Vector3 lhs, UnityEngine.Vector3 rhs)
IL_04C3: stfld UnityEngine.Vector3 PropInfo::m_lodMax
IL_04C8: ldarg.1
IL_04C9: dup
IL_04CA: ldfld System.Int32 PropInfo::m_lodCount
IL_04CF: ldc.i4.1
IL_04D0: add
IL_04D1: dup
IL_04D2: stloc.s 16 (System.Int32)
IL_04D4: stfld System.Int32 PropInfo::m_lodCount
IL_04D9: ldloc.s 16 (System.Int32)
IL_04DB: ldarg.1
IL_04DC: ldfld UnityEngine.Vector4[] PropInfo::m_lodLocations
IL_04E1: ldlen
IL_04E2: conv.i4
IL_04E3: bne.un => Label23
IL_04E8: ldarg.0
IL_04E9: ldarg.1
IL_04EA: call static System.Void PropInstance::RenderLod(CameraInfo
cameraInfo, PropInfo info)
IL_04EF: // end original
IL_04EF: Label0
IL_04EF: Label6
IL_04EF: Label7
IL_04EF: Label19
IL_04EF: Label23
IL_04EF: ret
DONE

### Patch: static System.Void PropInstance::RenderInstance(CameraInfo cameraInfo,


PropInfo info, InstanceID id, UnityEngine.Vector3 position, System.Single scale,
System.Single angle, UnityEngine.Color color, UnityEngine.Vector4 objectIndex,
System.Boolean active)
### Replacement: static System.Void
PropInstance::PropInstance.RenderInstance_Patch0(CameraInfo cameraInfo, PropInfo
info, InstanceID id, UnityEngine.Vector3 position, System.Single scale,
System.Single angle, UnityEngine.Color color, UnityEngine.Vector4 objectIndex,
System.Boolean active)
IL_0000: Local var 0: UnityEngine.Matrix4x4
IL_0000: Local var 1: System.Single
IL_0000: Local var 2: System.Int32
IL_0000: Local var 3: UnityEngine.Vector3
IL_0000: Local var 4: UnityEngine.Vector3
IL_0000: Local var 5: EffectInfo/SpawnArea
IL_0000: Local var 6: System.Single
IL_0000: Local var 7: LightSystem
IL_0000: Local var 8: ColossalFramework.Math.Randomizer
IL_0000: Local var 9: UnityEngine.Vector4
IL_0000: Local var 10: System.Single
IL_0000: Local var 11: System.Single
IL_0000: Local var 12: System.Single
IL_0000: Local var 13: UnityEngine.Matrix4x4
IL_0000: Local var 14: PropManager
IL_0000: Local var 15: UnityEngine.MaterialPropertyBlock
IL_0000: Local var 16: UnityEngine.Matrix4x4
IL_0000: Local var 17: PropManager
IL_0000: Local var 18: UnityEngine.MaterialPropertyBlock
IL_0000: Local var 19: System.Int32
IL_0000: // start original
IL_0000: ldarg.1
IL_0001: ldfld System.Boolean PrefabInfo::m_prefabInitialized
IL_0006: brfalse => Label0
IL_000B: ldarg.1
IL_000C: ldfld System.Boolean PropInfo::m_hasEffects
IL_0011: brfalse => Label1
IL_0016: ldarg.s 8
IL_0018: brtrue => Label2
IL_001D: ldarg.1
IL_001E: ldfld System.Boolean PropInfo::m_alwaysActive
IL_0023: brfalse => Label3
IL_0028: Label2
IL_0028: ldloca.s 0 (UnityEngine.Matrix4x4)
IL_002A: initobj UnityEngine.Matrix4x4
IL_0030: ldloca.s 0 (UnityEngine.Matrix4x4)
IL_0032: ldarg.3
IL_0033: ldarg.s 5
IL_0035: ldc.r4 57.29578
IL_003A: mul
IL_003B: call static UnityEngine.Vector3 UnityEngine.Vector3::get_down()
IL_0040: call static UnityEngine.Quaternion
UnityEngine.Quaternion::AngleAxis(System.Single angle, UnityEngine.Vector3 axis)
IL_0045: ldarg.s 4
IL_0047: ldarg.s 4
IL_0049: ldarg.s 4
IL_004B: newobj System.Void UnityEngine.Vector3::.ctor(System.Single x,
System.Single y, System.Single z)
IL_0050: call System.Void UnityEngine.Matrix4x4::SetTRS(UnityEngine.Vector3
pos, UnityEngine.Quaternion q, UnityEngine.Vector3 s)
IL_0055: call static SimulationManager
ColossalFramework.Singleton`1<SimulationManager>::get_instance()
IL_005A: ldfld System.Single SimulationManager::m_simulationTimeDelta
IL_005F: stloc.1
IL_0060: ldc.i4.0
IL_0061: stloc.2
IL_0062: br => Label4
IL_0067: Label5
IL_0067: ldloca.s 0 (UnityEngine.Matrix4x4)
IL_0069: ldarg.1
IL_006A: ldfld Effect[] PropInfo::m_effects
IL_006F: ldloc.2
IL_0070: ldelema PropInfo+Effect
IL_0075: ldfld UnityEngine.Vector3 Effect::m_position
IL_007A: call UnityEngine.Vector3
UnityEngine.Matrix4x4::MultiplyPoint(UnityEngine.Vector3 v)
IL_007F: stloc.3
IL_0080: ldloca.s 0 (UnityEngine.Matrix4x4)
IL_0082: ldarg.1
IL_0083: ldfld Effect[] PropInfo::m_effects
IL_0088: ldloc.2
IL_0089: ldelema PropInfo+Effect
IL_008E: ldfld UnityEngine.Vector3 Effect::m_direction
IL_0093: call UnityEngine.Vector3
UnityEngine.Matrix4x4::MultiplyVector(UnityEngine.Vector3 v)
IL_0098: stloc.s 4 (UnityEngine.Vector3)
IL_009A: ldloca.s 5 (EffectInfo+SpawnArea)
IL_009C: ldloc.3
IL_009D: ldloc.s 4 (UnityEngine.Vector3)
IL_009F: ldc.r4 0
IL_00A4: call System.Void SpawnArea::.ctor(UnityEngine.Vector3 position,
UnityEngine.Vector3 direction, System.Single radius)
IL_00A9: ldarg.1
IL_00AA: ldfld Effect[] PropInfo::m_effects
IL_00AF: ldloc.2
IL_00B0: ldelema PropInfo+Effect
IL_00B5: ldfld EffectInfo Effect::m_effect
IL_00BA: ldarg.2
IL_00BB: ldloc.s 5 (EffectInfo+SpawnArea)
IL_00BD: call static UnityEngine.Vector3 UnityEngine.Vector3::get_zero()
IL_00C2: ldc.r4 0
IL_00C7: ldc.r4 1
IL_00CC: ldc.r4 -1
IL_00D1: ldloc.1
IL_00D2: ldarg.0
IL_00D3: callvirt virtual System.Void EffectInfo::RenderEffect(InstanceID id,
SpawnArea area, UnityEngine.Vector3 velocity, System.Single acceleration,
System.Single magnitude, System.Single timeOffset, System.Single timeDelta,
CameraInfo cameraInfo)
IL_00D8: ldloc.2
IL_00D9: ldc.i4.1
IL_00DA: add
IL_00DB: stloc.2
IL_00DC: Label4
IL_00DC: ldloc.2
IL_00DD: ldarg.1
IL_00DE: ldfld Effect[] PropInfo::m_effects
IL_00E3: ldlen
IL_00E4: conv.i4
IL_00E5: blt => Label5
IL_00EA: Label1
IL_00EA: Label3
IL_00EA: ldarg.1
IL_00EB: ldfld System.Boolean PropInfo::m_hasRenderer
IL_00F0: brfalse => Label6
IL_00F5: ldarg.0
IL_00F6: ldfld System.Int32 CameraInfo::m_layerMask
IL_00FB: ldc.i4.1
IL_00FC: ldarg.1
IL_00FD: ldfld System.Int32 PrefabInfo::m_prefabDataLayer
IL_0102: ldc.i4.s 31
IL_0104: and
IL_0105: shl
IL_0106: and
IL_0107: brfalse => Label7
IL_010C: call static InfoManager
ColossalFramework.Singleton`1<InfoManager>::get_instance()
IL_0111: callvirt InfoMode InfoManager::get_CurrentMode()
IL_0116: brtrue => Label8
IL_011B: ldc.r4 0
IL_0120: stloc.s 6 (System.Single)
IL_0122: ldarg.s 8
IL_0124: brtrue => Label9
IL_0129: ldarg.1
IL_012A: ldfld System.Boolean PropInfo::m_alwaysActive
IL_012F: brtrue => Label10
IL_0134: ldarga.s 7
IL_0136: ldc.r4 0
IL_013B: stfld System.Single UnityEngine.Vector4::z
IL_0140: br => Label11
IL_0145: Label9
IL_0145: Label10
IL_0145: ldarg.1
IL_0146: ldflda UnityEngine.Vector2 PropInfo::m_illuminationOffRange
IL_014B: ldfld System.Single UnityEngine.Vector2::x
IL_0150: ldc.r4 1000
IL_0155: blt => Label12
IL_015A: ldarg.1
IL_015B: ldfld BlinkType PropInfo::m_illuminationBlinkType
IL_0160: brfalse => Label13
IL_0165: Label12
IL_0165: call static RenderManager
ColossalFramework.Singleton`1<RenderManager>::get_instance()
IL_016A: callvirt LightSystem RenderManager::get_lightSystem()
IL_016F: stloc.s 7 (LightSystem)
IL_0171: ldloca.s 8 (ColossalFramework.Math.Randomizer)
IL_0173: ldarga.s 2
IL_0175: call System.UInt32 InstanceID::get_Index()
IL_017A: call System.Void
ColossalFramework.Math.Randomizer::.ctor(System.UInt32 _seed)
IL_017F: ldarg.1
IL_0180: ldflda UnityEngine.Vector2 PropInfo::m_illuminationOffRange
IL_0185: ldfld System.Single UnityEngine.Vector2::x
IL_018A: ldloca.s 8 (ColossalFramework.Math.Randomizer)
IL_018C: ldc.i4 100000
IL_0191: call System.Int32
ColossalFramework.Math.Randomizer::Int32(System.UInt32 range)
IL_0196: conv.r4
IL_0197: ldc.r4 1E-05
IL_019C: mul
IL_019D: ldarg.1
IL_019E: ldflda UnityEngine.Vector2 PropInfo::m_illuminationOffRange
IL_01A3: ldfld System.Single UnityEngine.Vector2::y
IL_01A8: ldarg.1
IL_01A9: ldflda UnityEngine.Vector2 PropInfo::m_illuminationOffRange
IL_01AE: ldfld System.Single UnityEngine.Vector2::x
IL_01B3: sub
IL_01B4: mul
IL_01B5: add
IL_01B6: stloc.s 6 (System.Single)
IL_01B8: ldarga.s 7
IL_01BA: ldloc.s 6 (System.Single)
IL_01BC: ldc.r4 0.01
IL_01C1: add
IL_01C2: ldloc.s 6 (System.Single)
IL_01C4: ldc.r4 0.01
IL_01C9: sub
IL_01CA: ldloc.s 7 (LightSystem)
IL_01CC: callvirt System.Single LightSystem::get_DayLightIntensity()
IL_01D1: call static System.Single MathUtils::SmoothStep(System.Single edge0,
System.Single edge1, System.Single x)
IL_01D6: stfld System.Single UnityEngine.Vector4::z
IL_01DB: ldarg.1
IL_01DC: ldfld BlinkType PropInfo::m_illuminationBlinkType
IL_01E1: brfalse => Label14
IL_01E6: ldarg.1
IL_01E7: ldfld BlinkType PropInfo::m_illuminationBlinkType
IL_01EC: call static UnityEngine.Vector4
LightEffect::GetBlinkVector(BlinkType type)
IL_01F1: stloc.s 9 (UnityEngine.Vector4)
IL_01F3: ldloc.s 6 (System.Single)
IL_01F5: ldc.r4 3.71
IL_01FA: mul
IL_01FB: call static SimulationManager
ColossalFramework.Singleton`1<SimulationManager>::get_instance()
IL_0200: ldfld System.Single SimulationManager::m_simulationTimer
IL_0205: ldloca.s 9 (UnityEngine.Vector4)
IL_0207: ldfld System.Single UnityEngine.Vector4::w
IL_020C: div
IL_020D: add
IL_020E: stloc.s 10 (System.Single)
IL_0210: ldloc.s 10 (System.Single)
IL_0212: ldloc.s 10 (System.Single)
IL_0214: call static System.Single UnityEngine.Mathf::Floor(System.Single f)
IL_0219: sub
IL_021A: ldloca.s 9 (UnityEngine.Vector4)
IL_021C: ldfld System.Single UnityEngine.Vector4::w
IL_0221: mul
IL_0222: stloc.s 10 (System.Single)
IL_0224: ldloca.s 9 (UnityEngine.Vector4)
IL_0226: ldfld System.Single UnityEngine.Vector4::x
IL_022B: ldloca.s 9 (UnityEngine.Vector4)
IL_022D: ldfld System.Single UnityEngine.Vector4::y
IL_0232: ldloc.s 10 (System.Single)
IL_0234: call static System.Single MathUtils::SmoothStep(System.Single edge0,
System.Single edge1, System.Single x)
IL_0239: stloc.s 11 (System.Single)
IL_023B: ldloca.s 9 (UnityEngine.Vector4)
IL_023D: ldfld System.Single UnityEngine.Vector4::w
IL_0242: ldloca.s 9 (UnityEngine.Vector4)
IL_0244: ldfld System.Single UnityEngine.Vector4::z
IL_0249: ldloc.s 10 (System.Single)
IL_024B: call static System.Single MathUtils::SmoothStep(System.Single edge0,
System.Single edge1, System.Single x)
IL_0250: stloc.s 12 (System.Single)
IL_0252: ldarga.s 7
IL_0254: dup
IL_0255: ldfld System.Single UnityEngine.Vector4::z
IL_025A: ldc.r4 1
IL_025F: ldloc.s 11 (System.Single)
IL_0261: ldloc.s 12 (System.Single)
IL_0263: mul
IL_0264: sub
IL_0265: mul
IL_0266: stfld System.Single UnityEngine.Vector4::z
IL_026B: Label14
IL_026B: br => Label15
IL_0270: Label13
IL_0270: ldarga.s 7
IL_0272: ldc.r4 1
IL_0277: stfld System.Single UnityEngine.Vector4::z
IL_027C: Label8
IL_027C: Label11
IL_027C: Label15
IL_027C: ldarg.0
IL_027D: brfalse => Label16
IL_0282: ldarg.0
IL_0283: ldarg.3
IL_0284: ldarg.1
IL_0285: ldfld System.Single PropInfo::m_lodRenderDistance
IL_028A: callvirt System.Boolean
CameraInfo::CheckRenderDistance(UnityEngine.Vector3 point, System.Single
maxDistance)
IL_028F: brfalse => Label17
IL_0294: Label16
IL_0294: ldloca.s 13 (UnityEngine.Matrix4x4)
IL_0296: initobj UnityEngine.Matrix4x4
IL_029C: ldloca.s 13 (UnityEngine.Matrix4x4)
IL_029E: ldarg.3
IL_029F: ldarg.s 5
IL_02A1: ldc.r4 57.29578
IL_02A6: mul
IL_02A7: call static UnityEngine.Vector3 UnityEngine.Vector3::get_down()
IL_02AC: call static UnityEngine.Quaternion
UnityEngine.Quaternion::AngleAxis(System.Single angle, UnityEngine.Vector3 axis)
IL_02B1: ldarg.s 4
IL_02B3: ldarg.s 4
IL_02B5: ldarg.s 4
IL_02B7: newobj System.Void UnityEngine.Vector3::.ctor(System.Single x,
System.Single y, System.Single z)
IL_02BC: call System.Void UnityEngine.Matrix4x4::SetTRS(UnityEngine.Vector3
pos, UnityEngine.Quaternion q, UnityEngine.Vector3 s)
IL_02C1: call static PropManager
ColossalFramework.Singleton`1<PropManager>::get_instance()
IL_02C6: stloc.s 14 (PropManager)
IL_02C8: ldloc.s 14 (PropManager)
IL_02CA: ldfld UnityEngine.MaterialPropertyBlock PropManager::m_materialBlock
IL_02CF: stloc.s 15 (UnityEngine.MaterialPropertyBlock)
IL_02D1: ldloc.s 15 (UnityEngine.MaterialPropertyBlock)
IL_02D3: callvirt System.Void UnityEngine.MaterialPropertyBlock::Clear()
IL_02D8: ldloc.s 15 (UnityEngine.MaterialPropertyBlock)
IL_02DA: ldloc.s 14 (PropManager)
IL_02DC: ldfld System.Int32 PropManager::ID_Color
IL_02E1: ldarg.s 6
IL_02E3: callvirt System.Void
UnityEngine.MaterialPropertyBlock::SetColor(System.Int32 nameID, UnityEngine.Color
value)
IL_02E8: ldloc.s 15 (UnityEngine.MaterialPropertyBlock)
IL_02EA: ldloc.s 14 (PropManager)
IL_02EC: ldfld System.Int32 PropManager::ID_ObjectIndex
IL_02F1: ldarg.s 7
IL_02F3: callvirt System.Void
UnityEngine.MaterialPropertyBlock::SetVector(System.Int32 nameID,
UnityEngine.Vector4 value)
IL_02F8: ldarg.1
IL_02F9: ldfld UnityEngine.Vector4[] PropInfo::m_rollLocation
IL_02FE: brfalse => Label18
IL_0303: ldarg.1
IL_0304: ldfld UnityEngine.Material PropInfo::m_material
IL_0309: ldloc.s 14 (PropManager)
IL_030B: ldfld System.Int32 PropManager::ID_RollLocation
IL_0310: ldarg.1
IL_0311: ldfld UnityEngine.Vector4[] PropInfo::m_rollLocation
IL_0316: callvirt System.Void UnityEngine.Material::SetVectorArray(System.Int32
nameID, UnityEngine.Vector4[] values)
IL_031B: ldarg.1
IL_031C: ldfld UnityEngine.Material PropInfo::m_material
IL_0321: ldloc.s 14 (PropManager)
IL_0323: ldfld System.Int32 PropManager::ID_RollParams
IL_0328: ldarg.1
IL_0329: ldfld UnityEngine.Vector4[] PropInfo::m_rollParams
IL_032E: callvirt System.Void UnityEngine.Material::SetVectorArray(System.Int32
nameID, UnityEngine.Vector4[] values)
IL_0333: Label18
IL_0333: ldloc.s 14 (PropManager)
IL_0335: ldflda DrawCallData SimulationManagerBase`2<PropManager,
PropProperties>::m_drawCallData
IL_033A: dup
IL_033B: ldfld System.Int32 DrawCallData::m_defaultCalls
IL_0340: ldc.i4.1
IL_0341: add
IL_0342: stfld System.Int32 DrawCallData::m_defaultCalls
IL_0347: ldarg.1
IL_0348: ldfld UnityEngine.Mesh PropInfo::m_mesh
IL_034D: ldloc.s 13 (UnityEngine.Matrix4x4)
IL_034F: ldarg.1
IL_0350: ldfld UnityEngine.Material PropInfo::m_material
IL_0355: ldarg.1
IL_0356: ldfld System.Int32 PrefabInfo::m_prefabDataLayer
IL_035B: ldnull
IL_035C: ldc.i4.0
IL_035D: ldloc.s 15 (UnityEngine.MaterialPropertyBlock)
IL_035F: call static System.Void
UnityEngine.Graphics::DrawMesh(UnityEngine.Mesh mesh, UnityEngine.Matrix4x4 matrix,
UnityEngine.Material material, System.Int32 layer, UnityEngine.Camera camera,
System.Int32 submeshIndex, UnityEngine.MaterialPropertyBlock properties)
IL_0364: br => Label19
IL_0369: Label17
IL_0369: ldarg.1
IL_036A: ldfld UnityEngine.Material PropInfo::m_lodMaterialCombined
IL_036F: ldnull
IL_0370: call static System.Boolean
UnityEngine.Object::op_Equality(UnityEngine.Object x, UnityEngine.Object y)
IL_0375: brfalse => Label20
IL_037A: ldloca.s 16 (UnityEngine.Matrix4x4)
IL_037C: initobj UnityEngine.Matrix4x4
IL_0382: ldloca.s 16 (UnityEngine.Matrix4x4)
IL_0384: ldarg.3
IL_0385: ldarg.s 5
IL_0387: ldc.r4 57.29578
IL_038C: mul
IL_038D: call static UnityEngine.Vector3 UnityEngine.Vector3::get_down()
IL_0392: call static UnityEngine.Quaternion
UnityEngine.Quaternion::AngleAxis(System.Single angle, UnityEngine.Vector3 axis)
IL_0397: ldarg.s 4
IL_0399: ldarg.s 4
IL_039B: ldarg.s 4
IL_039D: newobj System.Void UnityEngine.Vector3::.ctor(System.Single x,
System.Single y, System.Single z)
IL_03A2: call System.Void UnityEngine.Matrix4x4::SetTRS(UnityEngine.Vector3
pos, UnityEngine.Quaternion q, UnityEngine.Vector3 s)
IL_03A7: call static PropManager
ColossalFramework.Singleton`1<PropManager>::get_instance()
IL_03AC: stloc.s 17 (PropManager)
IL_03AE: ldloc.s 17 (PropManager)
IL_03B0: ldfld UnityEngine.MaterialPropertyBlock PropManager::m_materialBlock
IL_03B5: stloc.s 18 (UnityEngine.MaterialPropertyBlock)
IL_03B7: ldloc.s 18 (UnityEngine.MaterialPropertyBlock)
IL_03B9: callvirt System.Void UnityEngine.MaterialPropertyBlock::Clear()
IL_03BE: ldloc.s 18 (UnityEngine.MaterialPropertyBlock)
IL_03C0: ldloc.s 17 (PropManager)
IL_03C2: ldfld System.Int32 PropManager::ID_Color
IL_03C7: ldarg.s 6
IL_03C9: callvirt System.Void
UnityEngine.MaterialPropertyBlock::SetColor(System.Int32 nameID, UnityEngine.Color
value)
IL_03CE: ldloc.s 18 (UnityEngine.MaterialPropertyBlock)
IL_03D0: ldloc.s 17 (PropManager)
IL_03D2: ldfld System.Int32 PropManager::ID_ObjectIndex
IL_03D7: ldarg.s 7
IL_03D9: callvirt System.Void
UnityEngine.MaterialPropertyBlock::SetVector(System.Int32 nameID,
UnityEngine.Vector4 value)
IL_03DE: ldarg.1
IL_03DF: ldfld UnityEngine.Vector4[] PropInfo::m_rollLocation
IL_03E4: brfalse => Label21
IL_03E9: ldarg.1
IL_03EA: ldfld UnityEngine.Material PropInfo::m_material
IL_03EF: ldloc.s 17 (PropManager)
IL_03F1: ldfld System.Int32 PropManager::ID_RollLocation
IL_03F6: ldarg.1
IL_03F7: ldfld UnityEngine.Vector4[] PropInfo::m_rollLocation
IL_03FC: callvirt System.Void UnityEngine.Material::SetVectorArray(System.Int32
nameID, UnityEngine.Vector4[] values)
IL_0401: ldarg.1
IL_0402: ldfld UnityEngine.Material PropInfo::m_material
IL_0407: ldloc.s 17 (PropManager)
IL_0409: ldfld System.Int32 PropManager::ID_RollParams
IL_040E: ldarg.1
IL_040F: ldfld UnityEngine.Vector4[] PropInfo::m_rollParams
IL_0414: callvirt System.Void UnityEngine.Material::SetVectorArray(System.Int32
nameID, UnityEngine.Vector4[] values)
IL_0419: Label21
IL_0419: ldloc.s 17 (PropManager)
IL_041B: ldflda DrawCallData SimulationManagerBase`2<PropManager,
PropProperties>::m_drawCallData
IL_0420: dup
IL_0421: ldfld System.Int32 DrawCallData::m_defaultCalls
IL_0426: ldc.i4.1
IL_0427: add
IL_0428: stfld System.Int32 DrawCallData::m_defaultCalls
IL_042D: ldarg.1
IL_042E: ldfld UnityEngine.Mesh PropInfo::m_lodMesh
IL_0433: ldloc.s 16 (UnityEngine.Matrix4x4)
IL_0435: ldarg.1
IL_0436: ldfld UnityEngine.Material PropInfo::m_lodMaterial
IL_043B: ldarg.1
IL_043C: ldfld System.Int32 PrefabInfo::m_prefabDataLayer
IL_0441: ldnull
IL_0442: ldc.i4.0
IL_0443: ldloc.s 18 (UnityEngine.MaterialPropertyBlock)
IL_0445: call static System.Void
UnityEngine.Graphics::DrawMesh(UnityEngine.Mesh mesh, UnityEngine.Matrix4x4 matrix,
UnityEngine.Material material, System.Int32 layer, UnityEngine.Camera camera,
System.Int32 submeshIndex, UnityEngine.MaterialPropertyBlock properties)
IL_044A: br => Label22
IL_044F: Label20
IL_044F: ldarga.s 7
IL_0451: ldarg.s 4
IL_0453: stfld System.Single UnityEngine.Vector4::w
IL_0458: ldarg.1
IL_0459: ldfld UnityEngine.Vector4[] PropInfo::m_lodLocations
IL_045E: ldarg.1
IL_045F: ldfld System.Int32 PropInfo::m_lodCount
IL_0464: ldelema UnityEngine.Vector4
IL_0469: ldarga.s 3
IL_046B: ldfld System.Single UnityEngine.Vector3::x
IL_0470: ldarga.s 3
IL_0472: ldfld System.Single UnityEngine.Vector3::y
IL_0477: ldarga.s 3
IL_0479: ldfld System.Single UnityEngine.Vector3::z
IL_047E: ldarg.s 5
IL_0480: newobj System.Void UnityEngine.Vector4::.ctor(System.Single x,
System.Single y, System.Single z, System.Single w)
IL_0485: stobj UnityEngine.Vector4
IL_048A: ldarg.1
IL_048B: ldfld UnityEngine.Vector4[] PropInfo::m_lodObjectIndices
IL_0490: ldarg.1
IL_0491: ldfld System.Int32 PropInfo::m_lodCount
IL_0496: ldelema UnityEngine.Vector4
IL_049B: ldarg.s 7
IL_049D: stobj UnityEngine.Vector4
IL_04A2: ldarg.1
IL_04A3: ldfld UnityEngine.Vector4[] PropInfo::m_lodColors
IL_04A8: ldarg.1
IL_04A9: ldfld System.Int32 PropInfo::m_lodCount
IL_04AE: ldelema UnityEngine.Vector4
IL_04B3: ldarga.s 6
IL_04B5: call UnityEngine.Color UnityEngine.Color::get_linear()
IL_04BA: call static UnityEngine.Vector4
UnityEngine.Color::op_Implicit(UnityEngine.Color c)
IL_04BF: stobj UnityEngine.Vector4
IL_04C4: ldarg.1
IL_04C5: ldarg.1
IL_04C6: ldfld UnityEngine.Vector3 PropInfo::m_lodMin
IL_04CB: ldarg.3
IL_04CC: call static UnityEngine.Vector3
UnityEngine.Vector3::Min(UnityEngine.Vector3 lhs, UnityEngine.Vector3 rhs)
IL_04D1: stfld UnityEngine.Vector3 PropInfo::m_lodMin
IL_04D6: ldarg.1
IL_04D7: ldarg.1
IL_04D8: ldfld UnityEngine.Vector3 PropInfo::m_lodMax
IL_04DD: ldarg.3
IL_04DE: call static UnityEngine.Vector3
UnityEngine.Vector3::Max(UnityEngine.Vector3 lhs, UnityEngine.Vector3 rhs)
IL_04E3: stfld UnityEngine.Vector3 PropInfo::m_lodMax
IL_04E8: ldarg.1
IL_04E9: dup
IL_04EA: ldfld System.Int32 PropInfo::m_lodCount
IL_04EF: ldc.i4.1
IL_04F0: add
IL_04F1: dup
IL_04F2: stloc.s 19 (System.Int32)
IL_04F4: stfld System.Int32 PropInfo::m_lodCount
IL_04F9: ldloc.s 19 (System.Int32)
IL_04FB: ldarg.1
IL_04FC: ldfld UnityEngine.Vector4[] PropInfo::m_lodLocations
IL_0501: ldlen
IL_0502: conv.i4
IL_0503: bne.un => Label23
IL_0508: ldarg.0
IL_0509: ldarg.1
IL_050A: call static System.Void PropInstance::RenderLod(CameraInfo
cameraInfo, PropInfo info)
IL_050F: // end original
IL_050F: Label0
IL_050F: Label6
IL_050F: Label7
IL_050F: Label19
IL_050F: Label22
IL_050F: Label23
IL_050F: ret
DONE

### Patch: virtual System.Void LightEffect::PopulateGroupData(System.Int32 layer,


InstanceID id, UnityEngine.Vector3 pos, UnityEngine.Vector3 dir, 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
LightEffect::LightEffect.PopulateGroupData_Patch0(LightEffect this, System.Int32
layer, InstanceID id, UnityEngine.Vector3 pos, UnityEngine.Vector3 dir,
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.Boolean
IL_0000: Local var 1: UnityEngine.Vector3
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.Quaternion
IL_0000: Local var 7: UnityEngine.Vector4
IL_0000: Local var 8: UnityEngine.Vector2
IL_0000: Local var 9: ColossalFramework.Math.Randomizer
IL_0000: Local var 10: UnityEngine.Vector2
IL_0000: Local var 11: UnityEngine.Vector2
IL_0000: Local var 12: UnityEngine.Vector2
IL_0000: Local var 13: System.UInt16
IL_0000: Local var 14: UnityEngine.Vector3
IL_0000: Local var 15: UnityEngine.Color
IL_0000: Local var 16: UnityEngine.Color
IL_0000: Local var 17: System.Single
IL_0000: Local var 18: System.Single
IL_0000: Local var 19: System.Int32
IL_0000: // start original
IL_0000: ldarg.1
IL_0001: ldarg.0
IL_0002: ldfld System.Int32 LightEffect::m_groupLayer
IL_0007: beq => Label0
IL_000C: ldarg.1
IL_000D: ldarg.0
IL_000E: ldfld System.Int32 LightEffect::m_groupLayerFloating
IL_0013: bne.un => Label1
IL_0018: Label0
IL_0018: ldarg.1
IL_0019: ldarg.0
IL_001A: ldfld System.Int32 LightEffect::m_groupLayerFloating
IL_001F: ceq
IL_0021: stloc.0
IL_0022: ldloca.s 1 (UnityEngine.Vector3)
IL_0024: ldarg.0
IL_0025: ldfld System.Single LightEffect::m_lightRange
IL_002A: ldarg.0
IL_002B: ldfld System.Single LightEffect::m_lightRange
IL_0030: ldarg.0
IL_0031: ldfld System.Single LightEffect::m_lightRange
IL_0036: call System.Void UnityEngine.Vector3::.ctor(System.Single x,
System.Single y, System.Single z)
IL_003B: ldarg.3
IL_003C: ldloc.1
IL_003D: call static UnityEngine.Vector3
UnityEngine.Vector3::op_Subtraction(UnityEngine.Vector3 a, UnityEngine.Vector3 b)
IL_0042: stloc.2
IL_0043: ldarg.3
IL_0044: ldloc.1
IL_0045: call static UnityEngine.Vector3
UnityEngine.Vector3::op_Addition(UnityEngine.Vector3 a, UnityEngine.Vector3 b)
IL_004A: stloc.3
IL_004B: ldarg.s 9
IL_004D: ldarg.s 9
IL_004F: ldobj UnityEngine.Vector3
IL_0054: ldloc.2
IL_0055: call static UnityEngine.Vector3
UnityEngine.Vector3::Min(UnityEngine.Vector3 lhs, UnityEngine.Vector3 rhs)
IL_005A: stobj UnityEngine.Vector3
IL_005F: ldarg.s 10
IL_0061: ldarg.s 10
IL_0063: ldobj UnityEngine.Vector3
IL_0068: ldloc.3
IL_0069: call static UnityEngine.Vector3
UnityEngine.Vector3::Max(UnityEngine.Vector3 lhs, UnityEngine.Vector3 rhs)
IL_006E: stobj UnityEngine.Vector3
IL_0073: ldarg.3
IL_0074: ldarg.s 7
IL_0076: call static UnityEngine.Vector3
UnityEngine.Vector3::op_Subtraction(UnityEngine.Vector3 a, UnityEngine.Vector3 b)
IL_007B: stloc.s 4 (UnityEngine.Vector3)
IL_007D: ldarg.s 11
IL_007F: ldarg.s 11
IL_0081: ldind.r4
IL_0082: ldc.r4 30000
IL_0087: call static System.Single UnityEngine.Mathf::Max(System.Single a,
System.Single b)
IL_008C: stind.r4
IL_008D: ldarg.0
IL_008E: ldfld UnityEngine.LightType LightEffect::m_lightType
IL_0093: brtrue => Label2
IL_0098: ldarg.s 4
IL_009A: call static UnityEngine.Quaternion
UnityEngine.Quaternion::LookRotation(UnityEngine.Vector3 forward)
IL_009F: stloc.s 6 (UnityEngine.Quaternion)
IL_00A1: ldloc.s 6 (UnityEngine.Quaternion)
IL_00A3: ldarg.0
IL_00A4: ldfld UnityEngine.Quaternion LightEffect::m_lightRotation
IL_00A9: call static UnityEngine.Vector3 UnityEngine.Vector3::get_forward()
IL_00AE: call static UnityEngine.Vector3
UnityEngine.Quaternion::op_Multiply(UnityEngine.Quaternion rotation,
UnityEngine.Vector3 point)
IL_00B3: call static UnityEngine.Vector3
UnityEngine.Quaternion::op_Multiply(UnityEngine.Quaternion rotation,
UnityEngine.Vector3 point)
IL_00B8: stloc.s 5 (UnityEngine.Vector3)
IL_00BA: br => Label3
IL_00BF: Label2
IL_00BF: call static UnityEngine.Vector3 UnityEngine.Vector3::get_forward()
IL_00C4: stloc.s 5 (UnityEngine.Vector3)
IL_00C6: Label3
IL_00C6: ldloca.s 7 (UnityEngine.Vector4)
IL_00C8: ldloca.s 5 (UnityEngine.Vector3)
IL_00CA: ldfld System.Single UnityEngine.Vector3::x
IL_00CF: ldloca.s 5 (UnityEngine.Vector3)
IL_00D1: ldfld System.Single UnityEngine.Vector3::y
IL_00D6: ldloca.s 5 (UnityEngine.Vector3)
IL_00D8: ldfld System.Single UnityEngine.Vector3::z
IL_00DD: ldc.r4 100000
IL_00E2: call System.Void UnityEngine.Vector4::.ctor(System.Single x,
System.Single y, System.Single z, System.Single w)
IL_00E7: ldarg.0
IL_00E8: ldfld UnityEngine.LightType LightEffect::m_lightType
IL_00ED: brtrue => Label4
IL_00F2: ldloca.s 7 (UnityEngine.Vector4)
IL_00F4: ldc.r4 0.01745329
IL_00F9: ldarg.0
IL_00FA: ldfld System.Single LightEffect::m_lightSpotAngle
IL_00FF: mul
IL_0100: ldc.r4 0.5
IL_0105: mul
IL_0106: call static System.Single UnityEngine.Mathf::Cos(System.Single f)
IL_010B: neg
IL_010C: stfld System.Single UnityEngine.Vector4::w
IL_0111: Label4
IL_0111: ldloca.s 8 (UnityEngine.Vector2)
IL_0113: ldc.r4 1
IL_0118: ldarg.0
IL_0119: ldfld System.Single LightEffect::m_lightRange
IL_011E: ldarg.0
IL_011F: ldfld System.Single LightEffect::m_lightRange
IL_0124: mul
IL_0125: div
IL_0126: ldarg.0
IL_0127: ldfld System.Single LightEffect::m_lightIntensity
IL_012C: call System.Void UnityEngine.Vector2::.ctor(System.Single x,
System.Single y)
IL_0131: ldloca.s 9 (ColossalFramework.Math.Randomizer)
IL_0133: ldarga.s 2
IL_0135: call System.UInt32 InstanceID::get_Index()
IL_013A: call System.Void
ColossalFramework.Math.Randomizer::.ctor(System.UInt32 _seed)
IL_013F: ldloca.s 10 (UnityEngine.Vector2)
IL_0141: ldarg.0
IL_0142: ldflda UnityEngine.Vector2 LightEffect::m_offRange
IL_0147: ldfld System.Single UnityEngine.Vector2::x
IL_014C: ldloca.s 9 (ColossalFramework.Math.Randomizer)
IL_014E: ldc.i4 100000
IL_0153: call System.Int32
ColossalFramework.Math.Randomizer::Int32(System.UInt32 range)
IL_0158: conv.r4
IL_0159: ldc.r4 1E-05
IL_015E: mul
IL_015F: ldarg.0
IL_0160: ldflda UnityEngine.Vector2 LightEffect::m_offRange
IL_0165: ldfld System.Single UnityEngine.Vector2::y
IL_016A: ldarg.0
IL_016B: ldflda UnityEngine.Vector2 LightEffect::m_offRange
IL_0170: ldfld System.Single UnityEngine.Vector2::x
IL_0175: sub
IL_0176: mul
IL_0177: add
IL_0178: stfld System.Single UnityEngine.Vector2::x
IL_017D: ldloca.s 10 (UnityEngine.Vector2)
IL_017F: ldarg.0
IL_0180: ldfld BlinkType LightEffect::m_blinkType
IL_0185: conv.r4
IL_0186: stfld System.Single UnityEngine.Vector2::y
IL_018B: ldarg.2
IL_018C: call static System.UInt16 EffectInfo::GetBuilding(InstanceID id)
IL_0191: stloc.s 13 (System.UInt16)
IL_0193: ldloc.s 13 (System.UInt16)
IL_0195: brfalse => Label5
IL_019A: ldloc.s 13 (System.UInt16)
IL_019C: call static UnityEngine.Vector4
RenderManager::GetColorLocation(System.UInt32 instanceHolder)
IL_01A1: call static UnityEngine.Vector2
UnityEngine.Vector4::op_Implicit(UnityEngine.Vector4 v)
IL_01A6: stloc.s 11 (UnityEngine.Vector2)
IL_01A8: ldloc.0
IL_01A9: brfalse => Label6
IL_01AE: call static BuildingManager
ColossalFramework.Singleton`1<BuildingManager>::get_instance()
IL_01B3: ldfld Array16`1<Building> BuildingManager::m_buildings
IL_01B8: ldfld Building[] Array16`1<Building>::m_buffer
IL_01BD: ldloc.s 13 (System.UInt16)
IL_01BF: ldelema Building
IL_01C4: call UnityEngine.Vector3 Building::CalculateMeshPosition()
IL_01C9: stloc.s 14 (UnityEngine.Vector3)
IL_01CB: ldloc.s 14 (UnityEngine.Vector3)
IL_01CD: call static UnityEngine.Vector2
ColossalFramework.Math.VectorUtils::XZ(UnityEngine.Vector3 v)
IL_01D2: stloc.s 12 (UnityEngine.Vector2)
IL_01D4: ldarga.s 3
IL_01D6: dup
IL_01D7: ldfld System.Single UnityEngine.Vector3::y
IL_01DC: ldloca.s 14 (UnityEngine.Vector3)
IL_01DE: ldfld System.Single UnityEngine.Vector3::y
IL_01E3: sub
IL_01E4: stfld System.Single UnityEngine.Vector3::y
IL_01E9: ldloca.s 4 (UnityEngine.Vector3)
IL_01EB: dup
IL_01EC: ldfld System.Single UnityEngine.Vector3::y
IL_01F1: ldloca.s 14 (UnityEngine.Vector3)
IL_01F3: ldfld System.Single UnityEngine.Vector3::y
IL_01F8: sub
IL_01F9: stfld System.Single UnityEngine.Vector3::y
IL_01FE: br => Label7
IL_0203: Label6
IL_0203: call static UnityEngine.Vector2 UnityEngine.Vector2::get_zero()
IL_0208: stloc.s 12 (UnityEngine.Vector2)
IL_020A: Label7
IL_020A: br => Label8
IL_020F: Label5
IL_020F: ldsfld UnityEngine.Vector4 RenderManager::DefaultColorLocation
IL_0214: call static UnityEngine.Vector2
UnityEngine.Vector4::op_Implicit(UnityEngine.Vector4 v)
IL_0219: stloc.s 11 (UnityEngine.Vector2)
IL_021B: call static UnityEngine.Vector2 UnityEngine.Vector2::get_zero()
IL_0220: stloc.s 12 (UnityEngine.Vector2)
IL_0222: Label8
IL_0222: ldarg.0
IL_0223: ldfld UnityEngine.Color LightEffect::m_lightColor
IL_0228: stloc.s 15 (UnityEngine.Color)
IL_022A: ldarg.0
IL_022B: ldfld UnityEngine.Color[] LightEffect::m_variationColors
IL_0230: brfalse => Label9
IL_0235: ldarg.0
IL_0236: ldfld UnityEngine.Color[] LightEffect::m_variationColors
IL_023B: ldlen
IL_023C: conv.i4
IL_023D: brfalse => Label10
IL_0242: ldarg.0
IL_0243: ldfld UnityEngine.Color[] LightEffect::m_variationColors
IL_0248: ldloca.s 9 (ColossalFramework.Math.Randomizer)
IL_024A: ldarg.0
IL_024B: ldfld UnityEngine.Color[] LightEffect::m_variationColors
IL_0250: ldlen
IL_0251: conv.i4
IL_0252: call System.Int32
ColossalFramework.Math.Randomizer::Int32(System.UInt32 range)
IL_0257: ldelema UnityEngine.Color
IL_025C: ldobj UnityEngine.Color
IL_0261: stloc.s 16 (UnityEngine.Color)
IL_0263: ldloc.s 15 (UnityEngine.Color)
IL_0265: ldloc.s 16 (UnityEngine.Color)
IL_0267: ldloca.s 9 (ColossalFramework.Math.Randomizer)
IL_0269: ldc.i4 1000
IL_026E: call System.Int32
ColossalFramework.Math.Randomizer::Int32(System.UInt32 range)
IL_0273: conv.r4
IL_0274: ldc.r4 0.001
IL_0279: mul
IL_027A: call static UnityEngine.Color
UnityEngine.Color::Lerp(UnityEngine.Color a, UnityEngine.Color b, System.Single t)
IL_027F: stloc.s 15 (UnityEngine.Color)
IL_0281: Label9
IL_0281: Label10
IL_0281: ldloca.s 15 (UnityEngine.Color)
IL_0283: call UnityEngine.Color UnityEngine.Color::get_linear()
IL_0288: stloc.s 15 (UnityEngine.Color)
IL_028A: ldloca.s 15 (UnityEngine.Color)
IL_028C: ldarg.0
IL_028D: ldfld UnityEngine.LightType LightEffect::m_lightType
IL_0292: brtrue => Label11
IL_0297: ldarg.0
IL_0298: ldfld System.Single LightEffect::m_spotLeaking
IL_029D: br => Label12
IL_02A2: Label11
IL_02A2: ldc.r4 0
IL_02A7: Label12
IL_02A7: stfld System.Single UnityEngine.Color::a
IL_02AC: ldarg.0
IL_02AD: ldfld System.Single LightEffect::m_lightRange
IL_02B2: ldc.r4 0.5235988
IL_02B7: call static System.Single UnityEngine.Mathf::Cos(System.Single f)
IL_02BC: div
IL_02BD: stloc.s 17 (System.Single)
IL_02BF: ldloc.s 17 (System.Single)
IL_02C1: ldc.r4 0.5
IL_02C6: mul
IL_02C7: stloc.s 18 (System.Single)
IL_02C9: ldarg.s 8
IL_02CB: ldfld UnityEngine.Vector3[] MeshData::m_vertices
IL_02D0: ldarg.s 5
IL_02D2: ldind.i4
IL_02D3: ldelema UnityEngine.Vector3
IL_02D8: ldloca.s 4 (UnityEngine.Vector3)
IL_02DA: ldfld System.Single UnityEngine.Vector3::x
IL_02DF: ldloc.s 18 (System.Single)
IL_02E1: sub
IL_02E2: ldloca.s 4 (UnityEngine.Vector3)
IL_02E4: ldfld System.Single UnityEngine.Vector3::y
IL_02E9: ldarg.0
IL_02EA: ldfld System.Single LightEffect::m_lightRange
IL_02EF: add
IL_02F0: ldloca.s 4 (UnityEngine.Vector3)
IL_02F2: ldfld System.Single UnityEngine.Vector3::z
IL_02F7: ldarg.0
IL_02F8: ldfld System.Single LightEffect::m_lightRange
IL_02FD: add
IL_02FE: newobj System.Void UnityEngine.Vector3::.ctor(System.Single x,
System.Single y, System.Single z)
IL_0303: stobj UnityEngine.Vector3
IL_0308: ldarg.s 8
IL_030A: ldfld UnityEngine.Vector3[] MeshData::m_normals
IL_030F: ldarg.s 5
IL_0311: ldind.i4
IL_0312: ldelema UnityEngine.Vector3
IL_0317: ldarg.3
IL_0318: stobj UnityEngine.Vector3
IL_031D: ldarg.s 8
IL_031F: ldfld UnityEngine.Vector4[] MeshData::m_tangents
IL_0324: ldarg.s 5
IL_0326: ldind.i4
IL_0327: ldelema UnityEngine.Vector4
IL_032C: ldloc.s 7 (UnityEngine.Vector4)
IL_032E: stobj UnityEngine.Vector4
IL_0333: ldarg.s 8
IL_0335: ldfld UnityEngine.Vector2[] MeshData::m_uvs
IL_033A: ldarg.s 5
IL_033C: ldind.i4
IL_033D: ldelema UnityEngine.Vector2
IL_0342: ldloc.s 8 (UnityEngine.Vector2)
IL_0344: stobj UnityEngine.Vector2
IL_0349: ldarg.s 8
IL_034B: ldfld UnityEngine.Vector2[] MeshData::m_uvs2
IL_0350: ldarg.s 5
IL_0352: ldind.i4
IL_0353: ldelema UnityEngine.Vector2
IL_0358: ldloc.s 10 (UnityEngine.Vector2)
IL_035A: stobj UnityEngine.Vector2
IL_035F: ldarg.s 8
IL_0361: ldfld UnityEngine.Vector2[] MeshData::m_uvs3
IL_0366: ldarg.s 5
IL_0368: ldind.i4
IL_0369: ldelema UnityEngine.Vector2
IL_036E: ldloc.s 11 (UnityEngine.Vector2)
IL_0370: stobj UnityEngine.Vector2
IL_0375: ldloc.0
IL_0376: brfalse => Label13
IL_037B: ldarg.s 8
IL_037D: ldfld UnityEngine.Vector2[] MeshData::m_uvs4
IL_0382: ldarg.s 5
IL_0384: ldind.i4
IL_0385: ldelema UnityEngine.Vector2
IL_038A: ldloc.s 12 (UnityEngine.Vector2)
IL_038C: stobj UnityEngine.Vector2
IL_0391: Label13
IL_0391: ldarg.s 8
IL_0393: ldfld UnityEngine.Color32[] MeshData::m_colors
IL_0398: ldarg.s 5
IL_039A: ldind.i4
IL_039B: ldelema UnityEngine.Color32
IL_03A0: ldloc.s 15 (UnityEngine.Color)
IL_03A2: call static UnityEngine.Color32
UnityEngine.Color32::op_Implicit(UnityEngine.Color c)
IL_03A7: stobj UnityEngine.Color32
IL_03AC: ldarg.s 5
IL_03AE: ldarg.s 5
IL_03B0: ldind.i4
IL_03B1: ldc.i4.1
IL_03B2: add
IL_03B3: stind.i4
IL_03B4: ldarg.s 8
IL_03B6: ldfld UnityEngine.Vector3[] MeshData::m_vertices
IL_03BB: ldarg.s 5
IL_03BD: ldind.i4
IL_03BE: ldelema UnityEngine.Vector3
IL_03C3: ldloca.s 4 (UnityEngine.Vector3)
IL_03C5: ldfld System.Single UnityEngine.Vector3::x
IL_03CA: ldloc.s 18 (System.Single)
IL_03CC: add
IL_03CD: ldloca.s 4 (UnityEngine.Vector3)
IL_03CF: ldfld System.Single UnityEngine.Vector3::y
IL_03D4: ldarg.0
IL_03D5: ldfld System.Single LightEffect::m_lightRange
IL_03DA: add
IL_03DB: ldloca.s 4 (UnityEngine.Vector3)
IL_03DD: ldfld System.Single UnityEngine.Vector3::z
IL_03E2: ldarg.0
IL_03E3: ldfld System.Single LightEffect::m_lightRange
IL_03E8: add
IL_03E9: newobj System.Void UnityEngine.Vector3::.ctor(System.Single x,
System.Single y, System.Single z)
IL_03EE: stobj UnityEngine.Vector3
IL_03F3: ldarg.s 8
IL_03F5: ldfld UnityEngine.Vector3[] MeshData::m_normals
IL_03FA: ldarg.s 5
IL_03FC: ldind.i4
IL_03FD: ldelema UnityEngine.Vector3
IL_0402: ldarg.3
IL_0403: stobj UnityEngine.Vector3
IL_0408: ldarg.s 8
IL_040A: ldfld UnityEngine.Vector4[] MeshData::m_tangents
IL_040F: ldarg.s 5
IL_0411: ldind.i4
IL_0412: ldelema UnityEngine.Vector4
IL_0417: ldloc.s 7 (UnityEngine.Vector4)
IL_0419: stobj UnityEngine.Vector4
IL_041E: ldarg.s 8
IL_0420: ldfld UnityEngine.Vector2[] MeshData::m_uvs
IL_0425: ldarg.s 5
IL_0427: ldind.i4
IL_0428: ldelema UnityEngine.Vector2
IL_042D: ldloc.s 8 (UnityEngine.Vector2)
IL_042F: stobj UnityEngine.Vector2
IL_0434: ldarg.s 8
IL_0436: ldfld UnityEngine.Vector2[] MeshData::m_uvs2
IL_043B: ldarg.s 5
IL_043D: ldind.i4
IL_043E: ldelema UnityEngine.Vector2
IL_0443: ldloc.s 10 (UnityEngine.Vector2)
IL_0445: stobj UnityEngine.Vector2
IL_044A: ldarg.s 8
IL_044C: ldfld UnityEngine.Vector2[] MeshData::m_uvs3
IL_0451: ldarg.s 5
IL_0453: ldind.i4
IL_0454: ldelema UnityEngine.Vector2
IL_0459: ldloc.s 11 (UnityEngine.Vector2)
IL_045B: stobj UnityEngine.Vector2
IL_0460: ldloc.0
IL_0461: brfalse => Label14
IL_0466: ldarg.s 8
IL_0468: ldfld UnityEngine.Vector2[] MeshData::m_uvs4
IL_046D: ldarg.s 5
IL_046F: ldind.i4
IL_0470: ldelema UnityEngine.Vector2
IL_0475: ldloc.s 12 (UnityEngine.Vector2)
IL_0477: stobj UnityEngine.Vector2
IL_047C: Label14
IL_047C: ldarg.s 8
IL_047E: ldfld UnityEngine.Color32[] MeshData::m_colors
IL_0483: ldarg.s 5
IL_0485: ldind.i4
IL_0486: ldelema UnityEngine.Color32
IL_048B: ldloc.s 15 (UnityEngine.Color)
IL_048D: call static UnityEngine.Color32
UnityEngine.Color32::op_Implicit(UnityEngine.Color c)
IL_0492: stobj UnityEngine.Color32
IL_0497: ldarg.s 5
IL_0499: ldarg.s 5
IL_049B: ldind.i4
IL_049C: ldc.i4.1
IL_049D: add
IL_049E: stind.i4
IL_049F: ldarg.s 8
IL_04A1: ldfld UnityEngine.Vector3[] MeshData::m_vertices
IL_04A6: ldarg.s 5
IL_04A8: ldind.i4
IL_04A9: ldelema UnityEngine.Vector3
IL_04AE: ldloca.s 4 (UnityEngine.Vector3)
IL_04B0: ldfld System.Single UnityEngine.Vector3::x
IL_04B5: ldloc.s 17 (System.Single)
IL_04B7: add
IL_04B8: ldloca.s 4 (UnityEngine.Vector3)
IL_04BA: ldfld System.Single UnityEngine.Vector3::y
IL_04BF: ldloca.s 4 (UnityEngine.Vector3)
IL_04C1: ldfld System.Single UnityEngine.Vector3::z
IL_04C6: ldarg.0
IL_04C7: ldfld System.Single LightEffect::m_lightRange
IL_04CC: add
IL_04CD: newobj System.Void UnityEngine.Vector3::.ctor(System.Single x,
System.Single y, System.Single z)
IL_04D2: stobj UnityEngine.Vector3
IL_04D7: ldarg.s 8
IL_04D9: ldfld UnityEngine.Vector3[] MeshData::m_normals
IL_04DE: ldarg.s 5
IL_04E0: ldind.i4
IL_04E1: ldelema UnityEngine.Vector3
IL_04E6: ldarg.3
IL_04E7: stobj UnityEngine.Vector3
IL_04EC: ldarg.s 8
IL_04EE: ldfld UnityEngine.Vector4[] MeshData::m_tangents
IL_04F3: ldarg.s 5
IL_04F5: ldind.i4
IL_04F6: ldelema UnityEngine.Vector4
IL_04FB: ldloc.s 7 (UnityEngine.Vector4)
IL_04FD: stobj UnityEngine.Vector4
IL_0502: ldarg.s 8
IL_0504: ldfld UnityEngine.Vector2[] MeshData::m_uvs
IL_0509: ldarg.s 5
IL_050B: ldind.i4
IL_050C: ldelema UnityEngine.Vector2
IL_0511: ldloc.s 8 (UnityEngine.Vector2)
IL_0513: stobj UnityEngine.Vector2
IL_0518: ldarg.s 8
IL_051A: ldfld UnityEngine.Vector2[] MeshData::m_uvs2
IL_051F: ldarg.s 5
IL_0521: ldind.i4
IL_0522: ldelema UnityEngine.Vector2
IL_0527: ldloc.s 10 (UnityEngine.Vector2)
IL_0529: stobj UnityEngine.Vector2
IL_052E: ldarg.s 8
IL_0530: ldfld UnityEngine.Vector2[] MeshData::m_uvs3
IL_0535: ldarg.s 5
IL_0537: ldind.i4
IL_0538: ldelema UnityEngine.Vector2
IL_053D: ldloc.s 11 (UnityEngine.Vector2)
IL_053F: stobj UnityEngine.Vector2
IL_0544: ldloc.0
IL_0545: brfalse => Label15
IL_054A: ldarg.s 8
IL_054C: ldfld UnityEngine.Vector2[] MeshData::m_uvs4
IL_0551: ldarg.s 5
IL_0553: ldind.i4
IL_0554: ldelema UnityEngine.Vector2
IL_0559: ldloc.s 12 (UnityEngine.Vector2)
IL_055B: stobj UnityEngine.Vector2
IL_0560: Label15
IL_0560: ldarg.s 8
IL_0562: ldfld UnityEngine.Color32[] MeshData::m_colors
IL_0567: ldarg.s 5
IL_0569: ldind.i4
IL_056A: ldelema UnityEngine.Color32
IL_056F: ldloc.s 15 (UnityEngine.Color)
IL_0571: call static UnityEngine.Color32
UnityEngine.Color32::op_Implicit(UnityEngine.Color c)
IL_0576: stobj UnityEngine.Color32
IL_057B: ldarg.s 5
IL_057D: ldarg.s 5
IL_057F: ldind.i4
IL_0580: ldc.i4.1
IL_0581: add
IL_0582: stind.i4
IL_0583: ldarg.s 8
IL_0585: ldfld UnityEngine.Vector3[] MeshData::m_vertices
IL_058A: ldarg.s 5
IL_058C: ldind.i4
IL_058D: ldelema UnityEngine.Vector3
IL_0592: ldloca.s 4 (UnityEngine.Vector3)
IL_0594: ldfld System.Single UnityEngine.Vector3::x
IL_0599: ldloc.s 18 (System.Single)
IL_059B: add
IL_059C: ldloca.s 4 (UnityEngine.Vector3)
IL_059E: ldfld System.Single UnityEngine.Vector3::y
IL_05A3: ldarg.0
IL_05A4: ldfld System.Single LightEffect::m_lightRange
IL_05A9: sub
IL_05AA: ldloca.s 4 (UnityEngine.Vector3)
IL_05AC: ldfld System.Single UnityEngine.Vector3::z
IL_05B1: ldarg.0
IL_05B2: ldfld System.Single LightEffect::m_lightRange
IL_05B7: add
IL_05B8: newobj System.Void UnityEngine.Vector3::.ctor(System.Single x,
System.Single y, System.Single z)
IL_05BD: stobj UnityEngine.Vector3
IL_05C2: ldarg.s 8
IL_05C4: ldfld UnityEngine.Vector3[] MeshData::m_normals
IL_05C9: ldarg.s 5
IL_05CB: ldind.i4
IL_05CC: ldelema UnityEngine.Vector3
IL_05D1: ldarg.3
IL_05D2: stobj UnityEngine.Vector3
IL_05D7: ldarg.s 8
IL_05D9: ldfld UnityEngine.Vector4[] MeshData::m_tangents
IL_05DE: ldarg.s 5
IL_05E0: ldind.i4
IL_05E1: ldelema UnityEngine.Vector4
IL_05E6: ldloc.s 7 (UnityEngine.Vector4)
IL_05E8: stobj UnityEngine.Vector4
IL_05ED: ldarg.s 8
IL_05EF: ldfld UnityEngine.Vector2[] MeshData::m_uvs
IL_05F4: ldarg.s 5
IL_05F6: ldind.i4
IL_05F7: ldelema UnityEngine.Vector2
IL_05FC: ldloc.s 8 (UnityEngine.Vector2)
IL_05FE: stobj UnityEngine.Vector2
IL_0603: ldarg.s 8
IL_0605: ldfld UnityEngine.Vector2[] MeshData::m_uvs2
IL_060A: ldarg.s 5
IL_060C: ldind.i4
IL_060D: ldelema UnityEngine.Vector2
IL_0612: ldloc.s 10 (UnityEngine.Vector2)
IL_0614: stobj UnityEngine.Vector2
IL_0619: ldarg.s 8
IL_061B: ldfld UnityEngine.Vector2[] MeshData::m_uvs3
IL_0620: ldarg.s 5
IL_0622: ldind.i4
IL_0623: ldelema UnityEngine.Vector2
IL_0628: ldloc.s 11 (UnityEngine.Vector2)
IL_062A: stobj UnityEngine.Vector2
IL_062F: ldloc.0
IL_0630: brfalse => Label16
IL_0635: ldarg.s 8
IL_0637: ldfld UnityEngine.Vector2[] MeshData::m_uvs4
IL_063C: ldarg.s 5
IL_063E: ldind.i4
IL_063F: ldelema UnityEngine.Vector2
IL_0644: ldloc.s 12 (UnityEngine.Vector2)
IL_0646: stobj UnityEngine.Vector2
IL_064B: Label16
IL_064B: ldarg.s 8
IL_064D: ldfld UnityEngine.Color32[] MeshData::m_colors
IL_0652: ldarg.s 5
IL_0654: ldind.i4
IL_0655: ldelema UnityEngine.Color32
IL_065A: ldloc.s 15 (UnityEngine.Color)
IL_065C: call static UnityEngine.Color32
UnityEngine.Color32::op_Implicit(UnityEngine.Color c)
IL_0661: stobj UnityEngine.Color32
IL_0666: ldarg.s 5
IL_0668: ldarg.s 5
IL_066A: ldind.i4
IL_066B: ldc.i4.1
IL_066C: add
IL_066D: stind.i4
IL_066E: ldarg.s 8
IL_0670: ldfld UnityEngine.Vector3[] MeshData::m_vertices
IL_0675: ldarg.s 5
IL_0677: ldind.i4
IL_0678: ldelema UnityEngine.Vector3
IL_067D: ldloca.s 4 (UnityEngine.Vector3)
IL_067F: ldfld System.Single UnityEngine.Vector3::x
IL_0684: ldloc.s 18 (System.Single)
IL_0686: sub
IL_0687: ldloca.s 4 (UnityEngine.Vector3)
IL_0689: ldfld System.Single UnityEngine.Vector3::y
IL_068E: ldarg.0
IL_068F: ldfld System.Single LightEffect::m_lightRange
IL_0694: sub
IL_0695: ldloca.s 4 (UnityEngine.Vector3)
IL_0697: ldfld System.Single UnityEngine.Vector3::z
IL_069C: ldarg.0
IL_069D: ldfld System.Single LightEffect::m_lightRange
IL_06A2: add
IL_06A3: newobj System.Void UnityEngine.Vector3::.ctor(System.Single x,
System.Single y, System.Single z)
IL_06A8: stobj UnityEngine.Vector3
IL_06AD: ldarg.s 8
IL_06AF: ldfld UnityEngine.Vector3[] MeshData::m_normals
IL_06B4: ldarg.s 5
IL_06B6: ldind.i4
IL_06B7: ldelema UnityEngine.Vector3
IL_06BC: ldarg.3
IL_06BD: stobj UnityEngine.Vector3
IL_06C2: ldarg.s 8
IL_06C4: ldfld UnityEngine.Vector4[] MeshData::m_tangents
IL_06C9: ldarg.s 5
IL_06CB: ldind.i4
IL_06CC: ldelema UnityEngine.Vector4
IL_06D1: ldloc.s 7 (UnityEngine.Vector4)
IL_06D3: stobj UnityEngine.Vector4
IL_06D8: ldarg.s 8
IL_06DA: ldfld UnityEngine.Vector2[] MeshData::m_uvs
IL_06DF: ldarg.s 5
IL_06E1: ldind.i4
IL_06E2: ldelema UnityEngine.Vector2
IL_06E7: ldloc.s 8 (UnityEngine.Vector2)
IL_06E9: stobj UnityEngine.Vector2
IL_06EE: ldarg.s 8
IL_06F0: ldfld UnityEngine.Vector2[] MeshData::m_uvs2
IL_06F5: ldarg.s 5
IL_06F7: ldind.i4
IL_06F8: ldelema UnityEngine.Vector2
IL_06FD: ldloc.s 10 (UnityEngine.Vector2)
IL_06FF: stobj UnityEngine.Vector2
IL_0704: ldarg.s 8
IL_0706: ldfld UnityEngine.Vector2[] MeshData::m_uvs3
IL_070B: ldarg.s 5
IL_070D: ldind.i4
IL_070E: ldelema UnityEngine.Vector2
IL_0713: ldloc.s 11 (UnityEngine.Vector2)
IL_0715: stobj UnityEngine.Vector2
IL_071A: ldloc.0
IL_071B: brfalse => Label17
IL_0720: ldarg.s 8
IL_0722: ldfld UnityEngine.Vector2[] MeshData::m_uvs4
IL_0727: ldarg.s 5
IL_0729: ldind.i4
IL_072A: ldelema UnityEngine.Vector2
IL_072F: ldloc.s 12 (UnityEngine.Vector2)
IL_0731: stobj UnityEngine.Vector2
IL_0736: Label17
IL_0736: ldarg.s 8
IL_0738: ldfld UnityEngine.Color32[] MeshData::m_colors
IL_073D: ldarg.s 5
IL_073F: ldind.i4
IL_0740: ldelema UnityEngine.Color32
IL_0745: ldloc.s 15 (UnityEngine.Color)
IL_0747: call static UnityEngine.Color32
UnityEngine.Color32::op_Implicit(UnityEngine.Color c)
IL_074C: stobj UnityEngine.Color32
IL_0751: ldarg.s 5
IL_0753: ldarg.s 5
IL_0755: ldind.i4
IL_0756: ldc.i4.1
IL_0757: add
IL_0758: stind.i4
IL_0759: ldarg.s 8
IL_075B: ldfld UnityEngine.Vector3[] MeshData::m_vertices
IL_0760: ldarg.s 5
IL_0762: ldind.i4
IL_0763: ldelema UnityEngine.Vector3
IL_0768: ldloca.s 4 (UnityEngine.Vector3)
IL_076A: ldfld System.Single UnityEngine.Vector3::x
IL_076F: ldloc.s 17 (System.Single)
IL_0771: sub
IL_0772: ldloca.s 4 (UnityEngine.Vector3)
IL_0774: ldfld System.Single UnityEngine.Vector3::y
IL_0779: ldloca.s 4 (UnityEngine.Vector3)
IL_077B: ldfld System.Single UnityEngine.Vector3::z
IL_0780: ldarg.0
IL_0781: ldfld System.Single LightEffect::m_lightRange
IL_0786: add
IL_0787: newobj System.Void UnityEngine.Vector3::.ctor(System.Single x,
System.Single y, System.Single z)
IL_078C: stobj UnityEngine.Vector3
IL_0791: ldarg.s 8
IL_0793: ldfld UnityEngine.Vector3[] MeshData::m_normals
IL_0798: ldarg.s 5
IL_079A: ldind.i4
IL_079B: ldelema UnityEngine.Vector3
IL_07A0: ldarg.3
IL_07A1: stobj UnityEngine.Vector3
IL_07A6: ldarg.s 8
IL_07A8: ldfld UnityEngine.Vector4[] MeshData::m_tangents
IL_07AD: ldarg.s 5
IL_07AF: ldind.i4
IL_07B0: ldelema UnityEngine.Vector4
IL_07B5: ldloc.s 7 (UnityEngine.Vector4)
IL_07B7: stobj UnityEngine.Vector4
IL_07BC: ldarg.s 8
IL_07BE: ldfld UnityEngine.Vector2[] MeshData::m_uvs
IL_07C3: ldarg.s 5
IL_07C5: ldind.i4
IL_07C6: ldelema UnityEngine.Vector2
IL_07CB: ldloc.s 8 (UnityEngine.Vector2)
IL_07CD: stobj UnityEngine.Vector2
IL_07D2: ldarg.s 8
IL_07D4: ldfld UnityEngine.Vector2[] MeshData::m_uvs2
IL_07D9: ldarg.s 5
IL_07DB: ldind.i4
IL_07DC: ldelema UnityEngine.Vector2
IL_07E1: ldloc.s 10 (UnityEngine.Vector2)
IL_07E3: stobj UnityEngine.Vector2
IL_07E8: ldarg.s 8
IL_07EA: ldfld UnityEngine.Vector2[] MeshData::m_uvs3
IL_07EF: ldarg.s 5
IL_07F1: ldind.i4
IL_07F2: ldelema UnityEngine.Vector2
IL_07F7: ldloc.s 11 (UnityEngine.Vector2)
IL_07F9: stobj UnityEngine.Vector2
IL_07FE: ldloc.0
IL_07FF: brfalse => Label18
IL_0804: ldarg.s 8
IL_0806: ldfld UnityEngine.Vector2[] MeshData::m_uvs4
IL_080B: ldarg.s 5
IL_080D: ldind.i4
IL_080E: ldelema UnityEngine.Vector2
IL_0813: ldloc.s 12 (UnityEngine.Vector2)
IL_0815: stobj UnityEngine.Vector2
IL_081A: Label18
IL_081A: ldarg.s 8
IL_081C: ldfld UnityEngine.Color32[] MeshData::m_colors
IL_0821: ldarg.s 5
IL_0823: ldind.i4
IL_0824: ldelema UnityEngine.Color32
IL_0829: ldloc.s 15 (UnityEngine.Color)
IL_082B: call static UnityEngine.Color32
UnityEngine.Color32::op_Implicit(UnityEngine.Color c)
IL_0830: stobj UnityEngine.Color32
IL_0835: ldarg.s 5
IL_0837: ldarg.s 5
IL_0839: ldind.i4
IL_083A: ldc.i4.1
IL_083B: add
IL_083C: stind.i4
IL_083D: ldarg.s 8
IL_083F: ldfld System.Int32[] MeshData::m_triangles
IL_0844: ldarg.s 6
IL_0846: ldarg.s 6
IL_0848: ldind.i4
IL_0849: dup
IL_084A: stloc.s 19 (System.Int32)
IL_084C: ldc.i4.1
IL_084D: add
IL_084E: stind.i4
IL_084F: ldloc.s 19 (System.Int32)
IL_0851: ldarg.s 5
IL_0853: ldind.i4
IL_0854: ldc.i4.6
IL_0855: sub
IL_0856: stelem.i4
IL_0857: ldarg.s 8
IL_0859: ldfld System.Int32[] MeshData::m_triangles
IL_085E: ldarg.s 6
IL_0860: ldarg.s 6
IL_0862: ldind.i4
IL_0863: dup
IL_0864: stloc.s 19 (System.Int32)
IL_0866: ldc.i4.1
IL_0867: add
IL_0868: stind.i4
IL_0869: ldloc.s 19 (System.Int32)
IL_086B: ldarg.s 5
IL_086D: ldind.i4
IL_086E: ldc.i4.5
IL_086F: sub
IL_0870: stelem.i4
IL_0871: ldarg.s 8
IL_0873: ldfld System.Int32[] MeshData::m_triangles
IL_0878: ldarg.s 6
IL_087A: ldarg.s 6
IL_087C: ldind.i4
IL_087D: dup
IL_087E: stloc.s 19 (System.Int32)
IL_0880: ldc.i4.1
IL_0881: add
IL_0882: stind.i4
IL_0883: ldloc.s 19 (System.Int32)
IL_0885: ldarg.s 5
IL_0887: ldind.i4
IL_0888: ldc.i4.1
IL_0889: sub
IL_088A: stelem.i4
IL_088B: ldarg.s 8
IL_088D: ldfld System.Int32[] MeshData::m_triangles
IL_0892: ldarg.s 6
IL_0894: ldarg.s 6
IL_0896: ldind.i4
IL_0897: dup
IL_0898: stloc.s 19 (System.Int32)
IL_089A: ldc.i4.1
IL_089B: add
IL_089C: stind.i4
IL_089D: ldloc.s 19 (System.Int32)
IL_089F: ldarg.s 5
IL_08A1: ldind.i4
IL_08A2: ldc.i4.1
IL_08A3: sub
IL_08A4: stelem.i4
IL_08A5: ldarg.s 8
IL_08A7: ldfld System.Int32[] MeshData::m_triangles
IL_08AC: ldarg.s 6
IL_08AE: ldarg.s 6
IL_08B0: ldind.i4
IL_08B1: dup
IL_08B2: stloc.s 19 (System.Int32)
IL_08B4: ldc.i4.1
IL_08B5: add
IL_08B6: stind.i4
IL_08B7: ldloc.s 19 (System.Int32)
IL_08B9: ldarg.s 5
IL_08BB: ldind.i4
IL_08BC: ldc.i4.5
IL_08BD: sub
IL_08BE: stelem.i4
IL_08BF: ldarg.s 8
IL_08C1: ldfld System.Int32[] MeshData::m_triangles
IL_08C6: ldarg.s 6
IL_08C8: ldarg.s 6
IL_08CA: ldind.i4
IL_08CB: dup
IL_08CC: stloc.s 19 (System.Int32)
IL_08CE: ldc.i4.1
IL_08CF: add
IL_08D0: stind.i4
IL_08D1: ldloc.s 19 (System.Int32)
IL_08D3: ldarg.s 5
IL_08D5: ldind.i4
IL_08D6: ldc.i4.4
IL_08D7: sub
IL_08D8: stelem.i4
IL_08D9: ldarg.s 8
IL_08DB: ldfld System.Int32[] MeshData::m_triangles
IL_08E0: ldarg.s 6
IL_08E2: ldarg.s 6
IL_08E4: ldind.i4
IL_08E5: dup
IL_08E6: stloc.s 19 (System.Int32)
IL_08E8: ldc.i4.1
IL_08E9: add
IL_08EA: stind.i4
IL_08EB: ldloc.s 19 (System.Int32)
IL_08ED: ldarg.s 5
IL_08EF: ldind.i4
IL_08F0: ldc.i4.1
IL_08F1: sub
IL_08F2: stelem.i4
IL_08F3: ldarg.s 8
IL_08F5: ldfld System.Int32[] MeshData::m_triangles
IL_08FA: ldarg.s 6
IL_08FC: ldarg.s 6
IL_08FE: ldind.i4
IL_08FF: dup
IL_0900: stloc.s 19 (System.Int32)
IL_0902: ldc.i4.1
IL_0903: add
IL_0904: stind.i4
IL_0905: ldloc.s 19 (System.Int32)
IL_0907: ldarg.s 5
IL_0909: ldind.i4
IL_090A: ldc.i4.4
IL_090B: sub
IL_090C: stelem.i4
IL_090D: ldarg.s 8
IL_090F: ldfld System.Int32[] MeshData::m_triangles
IL_0914: ldarg.s 6
IL_0916: ldarg.s 6
IL_0918: ldind.i4
IL_0919: dup
IL_091A: stloc.s 19 (System.Int32)
IL_091C: ldc.i4.1
IL_091D: add
IL_091E: stind.i4
IL_091F: ldloc.s 19 (System.Int32)
IL_0921: ldarg.s 5
IL_0923: ldind.i4
IL_0924: ldc.i4.2
IL_0925: sub
IL_0926: stelem.i4
IL_0927: ldarg.s 8
IL_0929: ldfld System.Int32[] MeshData::m_triangles
IL_092E: ldarg.s 6
IL_0930: ldarg.s 6
IL_0932: ldind.i4
IL_0933: dup
IL_0934: stloc.s 19 (System.Int32)
IL_0936: ldc.i4.1
IL_0937: add
IL_0938: stind.i4
IL_0939: ldloc.s 19 (System.Int32)
IL_093B: ldarg.s 5
IL_093D: ldind.i4
IL_093E: ldc.i4.2
IL_093F: sub
IL_0940: stelem.i4
IL_0941: ldarg.s 8
IL_0943: ldfld System.Int32[] MeshData::m_triangles
IL_0948: ldarg.s 6
IL_094A: ldarg.s 6
IL_094C: ldind.i4
IL_094D: dup
IL_094E: stloc.s 19 (System.Int32)
IL_0950: ldc.i4.1
IL_0951: add
IL_0952: stind.i4
IL_0953: ldloc.s 19 (System.Int32)
IL_0955: ldarg.s 5
IL_0957: ldind.i4
IL_0958: ldc.i4.4
IL_0959: sub
IL_095A: stelem.i4
IL_095B: ldarg.s 8
IL_095D: ldfld System.Int32[] MeshData::m_triangles
IL_0962: ldarg.s 6
IL_0964: ldarg.s 6
IL_0966: ldind.i4
IL_0967: dup
IL_0968: stloc.s 19 (System.Int32)
IL_096A: ldc.i4.1
IL_096B: add
IL_096C: stind.i4
IL_096D: ldloc.s 19 (System.Int32)
IL_096F: ldarg.s 5
IL_0971: ldind.i4
IL_0972: ldc.i4.3
IL_0973: sub
IL_0974: stelem.i4
IL_0975: // end original
IL_0975: Label1
IL_0975: ret
DONE

### Patch: virtual System.Void ElectricityManager::SimulationStepImpl(System.Int32


subStep)
### Replacement: static System.Void
ElectricityManager::ElectricityManager.SimulationStepImpl_Patch0(ElectricityManager
this, System.Int32 subStep)
IL_0000: Local var 0: System.UInt32
IL_0000: Local var 1: System.Int32
IL_0000: Local var 2: NetManager
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: NetInfo
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: ElectricityManager/Cell
IL_0000: Local var 13: ElectricityManager/PulseGroup
IL_0000: Local var 14: ElectricityManager/PulseUnit
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: ElectricityManager/PulseUnit
IL_0000: Local var 19: System.UInt32
IL_0000: Local var 20: System.Int32
IL_0000: Local var 21: ElectricityManager/Cell
IL_0000: Local var 22: System.Int32
IL_0000: Local var 23: System.Int32
IL_0000: Local var 24: NetNode
IL_0000: Local var 25: System.Int32
IL_0000: Local var 26: System.UInt16
IL_0000: Local var 27: System.UInt16
IL_0000: Local var 28: System.UInt16
IL_0000: Local var 29: System.UInt16
IL_0000: Local var 30: System.Int32
IL_0000: Local var 31: ElectricityManager/PulseGroup
IL_0000: Local var 32: ElectricityManager/PulseGroup
IL_0000: Local var 33: System.Int32
IL_0000: Local var 34: ElectricityManager/PulseGroup
IL_0000: Local var 35: System.Int32
IL_0000: Local var 36: ElectricityManager/Cell
IL_0000: // start original
IL_0000: ldarg.1
IL_0001: brfalse => Label0
IL_0006: ldarg.1
IL_0007: ldc.i4 1000
IL_000C: beq => Label1
IL_0011: call static SimulationManager
ColossalFramework.Singleton`1<SimulationManager>::get_instance()
IL_0016: ldfld System.UInt32 SimulationManager::m_currentFrameIndex
IL_001B: stloc.0
IL_001C: ldloc.0
IL_001D: ldc.i4 255
IL_0022: and
IL_0023: stloc.1
IL_0024: ldloc.1
IL_0025: ldc.i4 128
IL_002A: bge => Label2
IL_002F: ldloc.1
IL_0030: brtrue => Label3
IL_0035: ldarg.0
IL_0036: ldc.i4.0
IL_0037: stfld System.Int32 ElectricityManager::m_pulseGroupCount
IL_003C: ldarg.0
IL_003D: ldc.i4.0
IL_003E: stfld System.Int32 ElectricityManager::m_pulseUnitStart
IL_0043: ldarg.0
IL_0044: ldc.i4.0
IL_0045: stfld System.Int32 ElectricityManager::m_pulseUnitEnd
IL_004A: ldarg.0
IL_004B: ldc.i4.0
IL_004C: stfld System.Int32 ElectricityManager::m_processedCells
IL_0051: ldarg.0
IL_0052: ldc.i4.0
IL_0053: stfld System.Int32 ElectricityManager::m_conductiveCells
IL_0058: ldarg.0
IL_0059: ldc.i4.1
IL_005A: stfld System.Boolean ElectricityManager::m_canContinue
IL_005F: Label3
IL_005F: call static NetManager
ColossalFramework.Singleton`1<NetManager>::get_instance()
IL_0064: stloc.2
IL_0065: ldloc.1
IL_0066: ldc.i4 32768
IL_006B: mul
IL_006C: ldc.i4.7
IL_006D: shr
IL_006E: stloc.3
IL_006F: ldloc.1
IL_0070: ldc.i4.1
IL_0071: add
IL_0072: ldc.i4 32768
IL_0077: mul
IL_0078: ldc.i4.7
IL_0079: shr
IL_007A: ldc.i4.1
IL_007B: sub
IL_007C: stloc.s 4 (System.Int32)
IL_007E: ldloc.3
IL_007F: stloc.s 5 (System.Int32)
IL_0081: br => Label4
IL_0086: Label10
IL_0086: ldloc.2
IL_0087: ldfld Array16`1<NetNode> NetManager::m_nodes
IL_008C: ldfld NetNode[] Array16`1<NetNode>::m_buffer
IL_0091: ldloc.s 5 (System.Int32)
IL_0093: ldelema NetNode
IL_0098: ldfld Flags NetNode::m_flags
IL_009D: brfalse => Label5
IL_00A2: ldloc.2
IL_00A3: ldfld Array16`1<NetNode> NetManager::m_nodes
IL_00A8: ldfld NetNode[] Array16`1<NetNode>::m_buffer
IL_00AD: ldloc.s 5 (System.Int32)
IL_00AF: ldelema NetNode
IL_00B4: call NetInfo NetNode::get_Info()
IL_00B9: stloc.s 6 (NetInfo)
IL_00BB: ldloc.s 6 (NetInfo)
IL_00BD: ldfld ItemClass NetInfo::m_class
IL_00C2: ldfld Service ItemClass::m_service
IL_00C7: ldc.i4.s 10
IL_00C9: beq => Label6
IL_00CE: ldloc.s 6 (NetInfo)
IL_00D0: ldfld NetAI NetInfo::m_netAI
IL_00D5: isinst ConcourseAI
IL_00DA: brfalse => Label7
IL_00DF: Label6
IL_00DF: ldarg.0
IL_00E0: ldloc.s 5 (System.Int32)
IL_00E2: ldarg.0
IL_00E3: ldfld System.UInt16[] ElectricityManager::m_nodeGroups
IL_00E8: ldloc.s 5 (System.Int32)
IL_00EA: ldelem.u2
IL_00EB: ldc.i4 65535
IL_00F0: beq => Label8
IL_00F5: ldc.i4.1
IL_00F6: br => Label9
IL_00FB: Label8
IL_00FB: ldc.i4.0
IL_00FC: Label9
IL_00FC: call System.Void
ElectricityManager::UpdateNodeElectricity(System.Int32 nodeID, System.Int32 value)
IL_0101: ldarg.0
IL_0102: dup
IL_0103: ldfld System.Int32 ElectricityManager::m_conductiveCells
IL_0108: ldc.i4.1
IL_0109: add
IL_010A: stfld System.Int32 ElectricityManager::m_conductiveCells
IL_010F: Label5
IL_010F: Label7
IL_010F: ldarg.0
IL_0110: ldfld System.UInt16[] ElectricityManager::m_nodeGroups
IL_0115: ldloc.s 5 (System.Int32)
IL_0117: ldc.i4 65535
IL_011C: stelem.i2
IL_011D: ldloc.s 5 (System.Int32)
IL_011F: ldc.i4.1
IL_0120: add
IL_0121: stloc.s 5 (System.Int32)
IL_0123: Label4
IL_0123: ldloc.s 5 (System.Int32)
IL_0125: ldloc.s 4 (System.Int32)
IL_0127: ble => Label10
IL_012C: ldloc.1
IL_012D: ldc.i4 256
IL_0132: mul
IL_0133: ldc.i4.7
IL_0134: shr
IL_0135: stloc.s 7 (System.Int32)
IL_0137: ldloc.1
IL_0138: ldc.i4.1
IL_0139: add
IL_013A: ldc.i4 256
IL_013F: mul
IL_0140: ldc.i4.7
IL_0141: shr
IL_0142: ldc.i4.1
IL_0143: sub
IL_0144: stloc.s 8 (System.Int32)
IL_0146: ldloc.s 7 (System.Int32)
IL_0148: stloc.s 9 (System.Int32)
IL_014A: br => Label11
IL_014F: Label21
IL_014F: ldloc.s 9 (System.Int32)
IL_0151: ldc.i4 256
IL_0156: mul
IL_0157: stloc.s 10 (System.Int32)
IL_0159: ldc.i4.0
IL_015A: stloc.s 11 (System.Int32)
IL_015C: br => Label12
IL_0161: Label20
IL_0161: ldarg.0
IL_0162: ldfld Cell[] ElectricityManager::m_electricityGrid
IL_0167: ldloc.s 10 (System.Int32)
IL_0169: ldelema ElectricityManager+Cell
IL_016E: ldobj ElectricityManager+Cell
IL_0173: stloc.s 12 (ElectricityManager+Cell)
IL_0175: ldloca.s 12 (ElectricityManager+Cell)
IL_0177: ldfld System.Int16 Cell::m_currentCharge
IL_017C: ldc.i4.0
IL_017D: ble => Label13
IL_0182: ldarg.0
IL_0183: ldfld System.Int32 ElectricityManager::m_pulseGroupCount
IL_0188: ldc.i4 1024
IL_018D: bge => Label14
IL_0192: ldloca.s 13 (ElectricityManager+PulseGroup)
IL_0194: ldloca.s 12 (ElectricityManager+Cell)
IL_0196: ldfld System.Int16 Cell::m_currentCharge
IL_019B: conv.u4
IL_019C: stfld System.UInt32 PulseGroup::m_origCharge
IL_01A1: ldloca.s 13 (ElectricityManager+PulseGroup)
IL_01A3: ldloca.s 12 (ElectricityManager+Cell)
IL_01A5: ldfld System.Int16 Cell::m_currentCharge
IL_01AA: conv.u4
IL_01AB: stfld System.UInt32 PulseGroup::m_curCharge
IL_01B0: ldloca.s 13 (ElectricityManager+PulseGroup)
IL_01B2: ldc.i4.0
IL_01B3: stfld System.UInt16 PulseGroup::m_mergeCount
IL_01B8: ldloca.s 13 (ElectricityManager+PulseGroup)
IL_01BA: ldc.i4 65535
IL_01BF: stfld System.UInt16 PulseGroup::m_mergeIndex
IL_01C4: ldloca.s 13 (ElectricityManager+PulseGroup)
IL_01C6: ldloc.s 11 (System.Int32)
IL_01C8: conv.u1
IL_01C9: stfld System.Byte PulseGroup::m_x
IL_01CE: ldloca.s 13 (ElectricityManager+PulseGroup)
IL_01D0: ldloc.s 9 (System.Int32)
IL_01D2: conv.u1
IL_01D3: stfld System.Byte PulseGroup::m_z
IL_01D8: ldloca.s 14 (ElectricityManager+PulseUnit)
IL_01DA: ldarg.0
IL_01DB: ldfld System.Int32 ElectricityManager::m_pulseGroupCount
IL_01E0: conv.u2
IL_01E1: stfld System.UInt16 PulseUnit::m_group
IL_01E6: ldloca.s 14 (ElectricityManager+PulseUnit)
IL_01E8: ldc.i4.0
IL_01E9: stfld System.UInt16 PulseUnit::m_node
IL_01EE: ldloca.s 14 (ElectricityManager+PulseUnit)
IL_01F0: ldloc.s 11 (System.Int32)
IL_01F2: conv.u1
IL_01F3: stfld System.Byte PulseUnit::m_x
IL_01F8: ldloca.s 14 (ElectricityManager+PulseUnit)
IL_01FA: ldloc.s 9 (System.Int32)
IL_01FC: conv.u1
IL_01FD: stfld System.Byte PulseUnit::m_z
IL_0202: ldloca.s 12 (ElectricityManager+Cell)
IL_0204: ldarg.0
IL_0205: ldfld System.Int32 ElectricityManager::m_pulseGroupCount
IL_020A: conv.u2
IL_020B: stfld System.UInt16 Cell::m_pulseGroup
IL_0210: ldarg.0
IL_0211: ldfld PulseGroup[] ElectricityManager::m_pulseGroups
IL_0216: ldarg.0
IL_0217: dup
IL_0218: ldfld System.Int32 ElectricityManager::m_pulseGroupCount
IL_021D: dup
IL_021E: stloc.s 15 (System.Int32)
IL_0220: ldc.i4.1
IL_0221: add
IL_0222: stfld System.Int32 ElectricityManager::m_pulseGroupCount
IL_0227: ldloc.s 15 (System.Int32)
IL_0229: ldelema ElectricityManager+PulseGroup
IL_022E: ldloc.s 13 (ElectricityManager+PulseGroup)
IL_0230: stobj ElectricityManager+PulseGroup
IL_0235: ldarg.0
IL_0236: ldfld PulseUnit[] ElectricityManager::m_pulseUnits
IL_023B: ldarg.0
IL_023C: ldfld System.Int32 ElectricityManager::m_pulseUnitEnd
IL_0241: ldelema ElectricityManager+PulseUnit
IL_0246: ldloc.s 14 (ElectricityManager+PulseUnit)
IL_0248: stobj ElectricityManager+PulseUnit
IL_024D: ldarg.0
IL_024E: dup
IL_024F: ldfld System.Int32 ElectricityManager::m_pulseUnitEnd
IL_0254: ldc.i4.1
IL_0255: add
IL_0256: dup
IL_0257: stloc.s 15 (System.Int32)
IL_0259: stfld System.Int32 ElectricityManager::m_pulseUnitEnd
IL_025E: ldloc.s 15 (System.Int32)
IL_0260: ldarg.0
IL_0261: ldfld PulseUnit[] ElectricityManager::m_pulseUnits
IL_0266: ldlen
IL_0267: conv.i4
IL_0268: bne.un => Label15
IL_026D: ldarg.0
IL_026E: ldc.i4.0
IL_026F: stfld System.Int32 ElectricityManager::m_pulseUnitEnd
IL_0274: Label15
IL_0274: br => Label16
IL_0279: Label14
IL_0279: ldloca.s 12 (ElectricityManager+Cell)
IL_027B: ldc.i4 65535
IL_0280: stfld System.UInt16 Cell::m_pulseGroup
IL_0285: Label16
IL_0285: ldloca.s 12 (ElectricityManager+Cell)
IL_0287: ldc.i4.0
IL_0288: stfld System.Int16 Cell::m_currentCharge
IL_028D: ldarg.0
IL_028E: dup
IL_028F: ldfld System.Int32 ElectricityManager::m_conductiveCells
IL_0294: ldc.i4.1
IL_0295: add
IL_0296: stfld System.Int32 ElectricityManager::m_conductiveCells
IL_029B: br => Label17
IL_02A0: Label13
IL_02A0: ldloca.s 12 (ElectricityManager+Cell)
IL_02A2: ldc.i4 65535
IL_02A7: stfld System.UInt16 Cell::m_pulseGroup
IL_02AC: ldloca.s 12 (ElectricityManager+Cell)
IL_02AE: ldfld System.Byte Cell::m_conductivity
IL_02B3: ldc.i4.s 64
IL_02B5: blt => Label18
IL_02BA: ldarg.0
IL_02BB: dup
IL_02BC: ldfld System.Int32 ElectricityManager::m_conductiveCells
IL_02C1: ldc.i4.1
IL_02C2: add
IL_02C3: stfld System.Int32 ElectricityManager::m_conductiveCells
IL_02C8: Label17
IL_02C8: Label18
IL_02C8: ldloca.s 12 (ElectricityManager+Cell)
IL_02CA: ldfld System.Boolean Cell::m_tmpElectrified
IL_02CF: ldloca.s 12 (ElectricityManager+Cell)
IL_02D1: ldfld System.Boolean Cell::m_electrified
IL_02D6: beq => Label19
IL_02DB: ldloca.s 12 (ElectricityManager+Cell)
IL_02DD: ldloca.s 12 (ElectricityManager+Cell)
IL_02DF: ldfld System.Boolean Cell::m_tmpElectrified
IL_02E4: stfld System.Boolean Cell::m_electrified
IL_02E9: Label19
IL_02E9: ldloca.s 12 (ElectricityManager+Cell)
IL_02EB: ldloca.s 12 (ElectricityManager+Cell)
IL_02ED: ldfld System.UInt16 Cell::m_pulseGroup
IL_02F2: ldc.i4 65535
IL_02F7: ceq
IL_02F9: ldc.i4.0
IL_02FA: ceq
IL_02FC: stfld System.Boolean Cell::m_tmpElectrified
IL_0301: ldarg.0
IL_0302: ldfld Cell[] ElectricityManager::m_electricityGrid
IL_0307: ldloc.s 10 (System.Int32)
IL_0309: ldelema ElectricityManager+Cell
IL_030E: ldloc.s 12 (ElectricityManager+Cell)
IL_0310: stobj ElectricityManager+Cell
IL_0315: ldloc.s 10 (System.Int32)
IL_0317: ldc.i4.1
IL_0318: add
IL_0319: stloc.s 10 (System.Int32)
IL_031B: ldloc.s 11 (System.Int32)
IL_031D: ldc.i4.1
IL_031E: add
IL_031F: stloc.s 11 (System.Int32)
IL_0321: Label12
IL_0321: ldloc.s 11 (System.Int32)
IL_0323: ldc.i4 256
IL_0328: blt => Label20
IL_032D: ldloc.s 9 (System.Int32)
IL_032F: ldc.i4.1
IL_0330: add
IL_0331: stloc.s 9 (System.Int32)
IL_0333: Label11
IL_0333: ldloc.s 9 (System.Int32)
IL_0335: ldloc.s 8 (System.Int32)
IL_0337: ble => Label21
IL_033C: br => Label22
IL_0341: Label2
IL_0341: ldloc.1
IL_0342: ldc.i4.s 127
IL_0344: sub
IL_0345: ldarg.0
IL_0346: ldfld System.Int32 ElectricityManager::m_conductiveCells
IL_034B: mul
IL_034C: ldc.i4.7
IL_034D: shr
IL_034E: stloc.s 16 (System.Int32)
IL_0350: ldloc.1
IL_0351: ldc.i4 255
IL_0356: bne.un => Label23
IL_035B: ldc.i4 1000000000
IL_0360: stloc.s 16 (System.Int32)
IL_0362: Label23
IL_0362: br => Label24
IL_0367: Label54
IL_0367: ldarg.0
IL_0368: ldc.i4.0
IL_0369: stfld System.Boolean ElectricityManager::m_canContinue
IL_036E: ldarg.0
IL_036F: ldfld System.Int32 ElectricityManager::m_pulseUnitEnd
IL_0374: stloc.s 17 (System.Int32)
IL_0376: br => Label25
IL_037B: Label52
IL_037B: ldarg.0
IL_037C: ldfld PulseUnit[] ElectricityManager::m_pulseUnits
IL_0381: ldarg.0
IL_0382: ldfld System.Int32 ElectricityManager::m_pulseUnitStart
IL_0387: ldelema ElectricityManager+PulseUnit
IL_038C: ldobj ElectricityManager+PulseUnit
IL_0391: stloc.s 18 (ElectricityManager+PulseUnit)
IL_0393: ldarg.0
IL_0394: dup
IL_0395: ldfld System.Int32 ElectricityManager::m_pulseUnitStart
IL_039A: ldc.i4.1
IL_039B: add
IL_039C: dup
IL_039D: stloc.s 15 (System.Int32)
IL_039F: stfld System.Int32 ElectricityManager::m_pulseUnitStart
IL_03A4: ldloc.s 15 (System.Int32)
IL_03A6: ldarg.0
IL_03A7: ldfld PulseUnit[] ElectricityManager::m_pulseUnits
IL_03AC: ldlen
IL_03AD: conv.i4
IL_03AE: bne.un => Label26
IL_03B3: ldarg.0
IL_03B4: ldc.i4.0
IL_03B5: stfld System.Int32 ElectricityManager::m_pulseUnitStart
IL_03BA: Label26
IL_03BA: ldloca.s 18 (ElectricityManager+PulseUnit)
IL_03BC: ldarg.0
IL_03BD: ldloca.s 18 (ElectricityManager+PulseUnit)
IL_03BF: ldfld System.UInt16 PulseUnit::m_group
IL_03C4: call System.UInt16 ElectricityManager::GetRootGroup(System.UInt16
group)
IL_03C9: stfld System.UInt16 PulseUnit::m_group
IL_03CE: ldarg.0
IL_03CF: ldfld PulseGroup[] ElectricityManager::m_pulseGroups
IL_03D4: ldloca.s 18 (ElectricityManager+PulseUnit)
IL_03D6: ldfld System.UInt16 PulseUnit::m_group
IL_03DB: ldelema ElectricityManager+PulseGroup
IL_03E0: ldfld System.UInt32 PulseGroup::m_curCharge
IL_03E5: stloc.s 19 (System.UInt32)
IL_03E7: ldloca.s 18 (ElectricityManager+PulseUnit)
IL_03E9: ldfld System.UInt16 PulseUnit::m_node
IL_03EE: brtrue => Label27
IL_03F3: ldloca.s 18 (ElectricityManager+PulseUnit)
IL_03F5: ldfld System.Byte PulseUnit::m_z
IL_03FA: ldc.i4 256
IL_03FF: mul
IL_0400: ldloca.s 18 (ElectricityManager+PulseUnit)
IL_0402: ldfld System.Byte PulseUnit::m_x
IL_0407: add
IL_0408: stloc.s 20 (System.Int32)
IL_040A: ldarg.0
IL_040B: ldfld Cell[] ElectricityManager::m_electricityGrid
IL_0410: ldloc.s 20 (System.Int32)
IL_0412: ldelema ElectricityManager+Cell
IL_0417: ldobj ElectricityManager+Cell
IL_041C: stloc.s 21 (ElectricityManager+Cell)
IL_041E: ldloca.s 21 (ElectricityManager+Cell)
IL_0420: ldfld System.Byte Cell::m_conductivity
IL_0425: brfalse => Label28
IL_042A: ldloca.s 21 (ElectricityManager+Cell)
IL_042C: ldfld System.Boolean Cell::m_tmpElectrified
IL_0431: brtrue => Label29
IL_0436: ldloc.s 19 (System.UInt32)
IL_0438: brfalse => Label30
IL_043D: ldloca.s 21 (ElectricityManager+Cell)
IL_043F: ldfld System.Int16 Cell::m_currentCharge
IL_0444: neg
IL_0445: ldc.i4.0
IL_0446: ldloc.s 19 (System.UInt32)
IL_0448: call static System.Int32 UnityEngine.Mathf::Clamp(System.Int32
value, System.Int32 min, System.Int32 max)
IL_044D: stloc.s 22 (System.Int32)
IL_044F: ldloc.s 19 (System.UInt32)
IL_0451: ldloc.s 22 (System.Int32)
IL_0453: sub
IL_0454: stloc.s 19 (System.UInt32)
IL_0456: ldloca.s 21 (ElectricityManager+Cell)
IL_0458: dup
IL_0459: ldfld System.Int16 Cell::m_currentCharge
IL_045E: ldloc.s 22 (System.Int32)
IL_0460: conv.i2
IL_0461: add
IL_0462: conv.i2
IL_0463: stfld System.Int16 Cell::m_currentCharge
IL_0468: ldloca.s 21 (ElectricityManager+Cell)
IL_046A: ldfld System.Int16 Cell::m_currentCharge
IL_046F: brtrue => Label31
IL_0474: ldloca.s 21 (ElectricityManager+Cell)
IL_0476: ldc.i4.1
IL_0477: stfld System.Boolean Cell::m_tmpElectrified
IL_047C: Label31
IL_047C: ldarg.0
IL_047D: ldfld Cell[] ElectricityManager::m_electricityGrid
IL_0482: ldloc.s 20 (System.Int32)
IL_0484: ldelema ElectricityManager+Cell
IL_0489: ldloc.s 21 (ElectricityManager+Cell)
IL_048B: stobj ElectricityManager+Cell
IL_0490: ldarg.0
IL_0491: ldfld PulseGroup[] ElectricityManager::m_pulseGroups
IL_0496: ldloca.s 18 (ElectricityManager+PulseUnit)
IL_0498: ldfld System.UInt16 PulseUnit::m_group
IL_049D: ldelema ElectricityManager+PulseGroup
IL_04A2: ldloc.s 19 (System.UInt32)
IL_04A4: stfld System.UInt32 PulseGroup::m_curCharge
IL_04A9: Label28
IL_04A9: Label29
IL_04A9: Label30
IL_04A9: ldloc.s 19 (System.UInt32)
IL_04AB: brfalse => Label32
IL_04B0: ldloca.s 21 (ElectricityManager+Cell)
IL_04B2: ldfld System.Byte Cell::m_conductivity
IL_04B7: ldc.i4.s 64
IL_04B9: blt => Label33
IL_04BE: ldc.i4.1
IL_04BF: br => Label34
IL_04C4: Label33
IL_04C4: ldc.i4.s 64
IL_04C6: Label34
IL_04C6: stloc.s 23 (System.Int32)
IL_04C8: ldarg.0
IL_04C9: dup
IL_04CA: ldfld System.Int32 ElectricityManager::m_processedCells
IL_04CF: ldc.i4.1
IL_04D0: add
IL_04D1: stfld System.Int32 ElectricityManager::m_processedCells
IL_04D6: ldloca.s 18 (ElectricityManager+PulseUnit)
IL_04D8: ldfld System.Byte PulseUnit::m_z
IL_04DD: ldc.i4.0
IL_04DE: ble => Label35
IL_04E3: ldarg.0
IL_04E4: ldarg.0
IL_04E5: ldfld Cell[] ElectricityManager::m_electricityGrid
IL_04EA: ldloc.s 20 (System.Int32)
IL_04EC: ldc.i4 256
IL_04F1: sub
IL_04F2: ldelema ElectricityManager+Cell
IL_04F7: ldloca.s 18 (ElectricityManager+PulseUnit)
IL_04F9: ldfld System.UInt16 PulseUnit::m_group
IL_04FE: ldloca.s 18 (ElectricityManager+PulseUnit)
IL_0500: ldfld System.Byte PulseUnit::m_x
IL_0505: ldloca.s 18 (ElectricityManager+PulseUnit)
IL_0507: ldfld System.Byte PulseUnit::m_z
IL_050C: ldc.i4.1
IL_050D: sub
IL_050E: ldloc.s 23 (System.Int32)
IL_0510: call System.Void ElectricityManager::ConductToCell(Cell& cell,
System.UInt16 group, System.Int32 x, System.Int32 z, System.Int32 limit)
IL_0515: Label35
IL_0515: ldloca.s 18 (ElectricityManager+PulseUnit)
IL_0517: ldfld System.Byte PulseUnit::m_x
IL_051C: ldc.i4.0
IL_051D: ble => Label36
IL_0522: ldarg.0
IL_0523: ldarg.0
IL_0524: ldfld Cell[] ElectricityManager::m_electricityGrid
IL_0529: ldloc.s 20 (System.Int32)
IL_052B: ldc.i4.1
IL_052C: sub
IL_052D: ldelema ElectricityManager+Cell
IL_0532: ldloca.s 18 (ElectricityManager+PulseUnit)
IL_0534: ldfld System.UInt16 PulseUnit::m_group
IL_0539: ldloca.s 18 (ElectricityManager+PulseUnit)
IL_053B: ldfld System.Byte PulseUnit::m_x
IL_0540: ldc.i4.1
IL_0541: sub
IL_0542: ldloca.s 18 (ElectricityManager+PulseUnit)
IL_0544: ldfld System.Byte PulseUnit::m_z
IL_0549: ldloc.s 23 (System.Int32)
IL_054B: call System.Void ElectricityManager::ConductToCell(Cell& cell,
System.UInt16 group, System.Int32 x, System.Int32 z, System.Int32 limit)
IL_0550: Label36
IL_0550: ldloca.s 18 (ElectricityManager+PulseUnit)
IL_0552: ldfld System.Byte PulseUnit::m_z
IL_0557: ldc.i4 255
IL_055C: bge => Label37
IL_0561: ldarg.0
IL_0562: ldarg.0
IL_0563: ldfld Cell[] ElectricityManager::m_electricityGrid
IL_0568: ldloc.s 20 (System.Int32)
IL_056A: ldc.i4 256
IL_056F: add
IL_0570: ldelema ElectricityManager+Cell
IL_0575: ldloca.s 18 (ElectricityManager+PulseUnit)
IL_0577: ldfld System.UInt16 PulseUnit::m_group
IL_057C: ldloca.s 18 (ElectricityManager+PulseUnit)
IL_057E: ldfld System.Byte PulseUnit::m_x
IL_0583: ldloca.s 18 (ElectricityManager+PulseUnit)
IL_0585: ldfld System.Byte PulseUnit::m_z
IL_058A: ldc.i4.1
IL_058B: add
IL_058C: ldloc.s 23 (System.Int32)
IL_058E: call System.Void ElectricityManager::ConductToCell(Cell& cell,
System.UInt16 group, System.Int32 x, System.Int32 z, System.Int32 limit)
IL_0593: Label37
IL_0593: ldloca.s 18 (ElectricityManager+PulseUnit)
IL_0595: ldfld System.Byte PulseUnit::m_x
IL_059A: ldc.i4 255
IL_059F: bge => Label38
IL_05A4: ldarg.0
IL_05A5: ldarg.0
IL_05A6: ldfld Cell[] ElectricityManager::m_electricityGrid
IL_05AB: ldloc.s 20 (System.Int32)
IL_05AD: ldc.i4.1
IL_05AE: add
IL_05AF: ldelema ElectricityManager+Cell
IL_05B4: ldloca.s 18 (ElectricityManager+PulseUnit)
IL_05B6: ldfld System.UInt16 PulseUnit::m_group
IL_05BB: ldloca.s 18 (ElectricityManager+PulseUnit)
IL_05BD: ldfld System.Byte PulseUnit::m_x
IL_05C2: ldc.i4.1
IL_05C3: add
IL_05C4: ldloca.s 18 (ElectricityManager+PulseUnit)
IL_05C6: ldfld System.Byte PulseUnit::m_z
IL_05CB: ldloc.s 23 (System.Int32)
IL_05CD: call System.Void ElectricityManager::ConductToCell(Cell& cell,
System.UInt16 group, System.Int32 x, System.Int32 z, System.Int32 limit)
IL_05D2: Label38
IL_05D2: ldarg.0
IL_05D3: ldloca.s 18 (ElectricityManager+PulseUnit)
IL_05D5: ldfld System.UInt16 PulseUnit::m_group
IL_05DA: ldloca.s 18 (ElectricityManager+PulseUnit)
IL_05DC: ldfld System.Byte PulseUnit::m_x
IL_05E1: ldloca.s 18 (ElectricityManager+PulseUnit)
IL_05E3: ldfld System.Byte PulseUnit::m_z
IL_05E8: call System.Void ElectricityManager::ConductToNodes(System.UInt16
group, System.Int32 cellX, System.Int32 cellZ)
IL_05ED: br => Label39
IL_05F2: Label32
IL_05F2: ldarg.0
IL_05F3: ldfld PulseUnit[] ElectricityManager::m_pulseUnits
IL_05F8: ldarg.0
IL_05F9: ldfld System.Int32 ElectricityManager::m_pulseUnitEnd
IL_05FE: ldelema ElectricityManager+PulseUnit
IL_0603: ldloc.s 18 (ElectricityManager+PulseUnit)
IL_0605: stobj ElectricityManager+PulseUnit
IL_060A: ldarg.0
IL_060B: dup
IL_060C: ldfld System.Int32 ElectricityManager::m_pulseUnitEnd
IL_0611: ldc.i4.1
IL_0612: add
IL_0613: dup
IL_0614: stloc.s 15 (System.Int32)
IL_0616: stfld System.Int32 ElectricityManager::m_pulseUnitEnd
IL_061B: ldloc.s 15 (System.Int32)
IL_061D: ldarg.0
IL_061E: ldfld PulseUnit[] ElectricityManager::m_pulseUnits
IL_0623: ldlen
IL_0624: conv.i4
IL_0625: bne.un => Label40
IL_062A: ldarg.0
IL_062B: ldc.i4.0
IL_062C: stfld System.Int32 ElectricityManager::m_pulseUnitEnd
IL_0631: Label39
IL_0631: Label40
IL_0631: br => Label41
IL_0636: Label27
IL_0636: ldloc.s 19 (System.UInt32)
IL_0638: brfalse => Label42
IL_063D: ldarg.0
IL_063E: dup
IL_063F: ldfld System.Int32 ElectricityManager::m_processedCells
IL_0644: ldc.i4.1
IL_0645: add
IL_0646: stfld System.Int32 ElectricityManager::m_processedCells
IL_064B: call static NetManager
ColossalFramework.Singleton`1<NetManager>::get_instance()
IL_0650: ldfld Array16`1<NetNode> NetManager::m_nodes
IL_0655: ldfld NetNode[] Array16`1<NetNode>::m_buffer
IL_065A: ldloca.s 18 (ElectricityManager+PulseUnit)
IL_065C: ldfld System.UInt16 PulseUnit::m_node
IL_0661: ldelema NetNode
IL_0666: ldobj NetNode
IL_066B: stloc.s 24 (NetNode)
IL_066D: ldloca.s 24 (NetNode)
IL_066F: ldfld Flags NetNode::m_flags
IL_0674: brfalse => Label43
IL_0679: ldloca.s 24 (NetNode)
IL_067B: ldfld System.UInt32 NetNode::m_buildIndex
IL_0680: ldloc.0
IL_0681: ldc.i4.s -128
IL_0683: and
IL_0684: bge.un => Label44
IL_0689: ldarg.0
IL_068A: ldloca.s 18 (ElectricityManager+PulseUnit)
IL_068C: ldfld System.UInt16 PulseUnit::m_group
IL_0691: ldloca.s 24 (NetNode)
IL_0693: ldflda UnityEngine.Vector3 NetNode::m_position
IL_0698: ldfld System.Single UnityEngine.Vector3::x
IL_069D: ldloca.s 24 (NetNode)
IL_069F: ldflda UnityEngine.Vector3 NetNode::m_position
IL_06A4: ldfld System.Single UnityEngine.Vector3::z
IL_06A9: call System.Void ElectricityManager::ConductToCells(System.UInt16
group, System.Single worldX, System.Single worldZ)
IL_06AE: ldc.i4.0
IL_06AF: stloc.s 25 (System.Int32)
IL_06B1: br => Label45
IL_06B6: Label49
IL_06B6: ldloca.s 24 (NetNode)
IL_06B8: ldloc.s 25 (System.Int32)
IL_06BA: call System.UInt16 NetNode::GetSegment(System.Int32 index)
IL_06BF: stloc.s 26 (System.UInt16)
IL_06C1: ldloc.s 26 (System.UInt16)
IL_06C3: brfalse => Label46
IL_06C8: call static NetManager
ColossalFramework.Singleton`1<NetManager>::get_instance()
IL_06CD: ldfld Array16`1<NetSegment> NetManager::m_segments
IL_06D2: ldfld NetSegment[] Array16`1<NetSegment>::m_buffer
IL_06D7: ldloc.s 26 (System.UInt16)
IL_06D9: ldelema NetSegment
IL_06DE: ldfld System.UInt16 NetSegment::m_startNode
IL_06E3: stloc.s 27 (System.UInt16)
IL_06E5: call static NetManager
ColossalFramework.Singleton`1<NetManager>::get_instance()
IL_06EA: ldfld Array16`1<NetSegment> NetManager::m_segments
IL_06EF: ldfld NetSegment[] Array16`1<NetSegment>::m_buffer
IL_06F4: ldloc.s 26 (System.UInt16)
IL_06F6: ldelema NetSegment
IL_06FB: ldfld System.UInt16 NetSegment::m_endNode
IL_0700: stloc.s 28 (System.UInt16)
IL_0702: ldloc.s 27 (System.UInt16)
IL_0704: ldloca.s 18 (ElectricityManager+PulseUnit)
IL_0706: ldfld System.UInt16 PulseUnit::m_node
IL_070B: bne.un => Label47
IL_0710: ldloc.s 28 (System.UInt16)
IL_0712: br => Label48
IL_0717: Label47
IL_0717: ldloc.s 27 (System.UInt16)
IL_0719: Label48
IL_0719: stloc.s 29 (System.UInt16)
IL_071B: ldarg.0
IL_071C: ldloc.s 29 (System.UInt16)
IL_071E: call static NetManager
ColossalFramework.Singleton`1<NetManager>::get_instance()
IL_0723: ldfld Array16`1<NetNode> NetManager::m_nodes
IL_0728: ldfld NetNode[] Array16`1<NetNode>::m_buffer
IL_072D: ldloc.s 29 (System.UInt16)
IL_072F: ldelema NetNode
IL_0734: ldloca.s 18 (ElectricityManager+PulseUnit)
IL_0736: ldfld System.UInt16 PulseUnit::m_group
IL_073B: ldc.r4 -100000
IL_0740: ldc.r4 -100000
IL_0745: ldc.r4 100000
IL_074A: ldc.r4 100000
IL_074F: call System.Void ElectricityManager::ConductToNode(System.UInt16
nodeIndex, NetNode& node, System.UInt16 group, System.Single minX, System.Single
minZ, System.Single maxX, System.Single maxZ)
IL_0754: Label46
IL_0754: ldloc.s 25 (System.Int32)
IL_0756: ldc.i4.1
IL_0757: add
IL_0758: stloc.s 25 (System.Int32)
IL_075A: Label45
IL_075A: ldloc.s 25 (System.Int32)
IL_075C: ldc.i4.8
IL_075D: blt => Label49
IL_0762: Label43
IL_0762: Label44
IL_0762: br => Label50
IL_0767: Label42
IL_0767: ldarg.0
IL_0768: ldfld PulseUnit[] ElectricityManager::m_pulseUnits
IL_076D: ldarg.0
IL_076E: ldfld System.Int32 ElectricityManager::m_pulseUnitEnd
IL_0773: ldelema ElectricityManager+PulseUnit
IL_0778: ldloc.s 18 (ElectricityManager+PulseUnit)
IL_077A: stobj ElectricityManager+PulseUnit
IL_077F: ldarg.0
IL_0780: dup
IL_0781: ldfld System.Int32 ElectricityManager::m_pulseUnitEnd
IL_0786: ldc.i4.1
IL_0787: add
IL_0788: dup
IL_0789: stloc.s 15 (System.Int32)
IL_078B: stfld System.Int32 ElectricityManager::m_pulseUnitEnd
IL_0790: ldloc.s 15 (System.Int32)
IL_0792: ldarg.0
IL_0793: ldfld PulseUnit[] ElectricityManager::m_pulseUnits
IL_0798: ldlen
IL_0799: conv.i4
IL_079A: bne.un => Label51
IL_079F: ldarg.0
IL_07A0: ldc.i4.0
IL_07A1: stfld System.Int32 ElectricityManager::m_pulseUnitEnd
IL_07A6: Label25
IL_07A6: Label41
IL_07A6: Label50
IL_07A6: Label51
IL_07A6: ldarg.0
IL_07A7: ldfld System.Int32 ElectricityManager::m_pulseUnitStart
IL_07AC: ldloc.s 17 (System.Int32)
IL_07AE: bne.un => Label52
IL_07B3: Label24
IL_07B3: ldarg.0
IL_07B4: ldfld System.Boolean ElectricityManager::m_canContinue
IL_07B9: brfalse => Label53
IL_07BE: ldarg.0
IL_07BF: ldfld System.Int32 ElectricityManager::m_processedCells
IL_07C4: ldloc.s 16 (System.Int32)
IL_07C6: blt => Label54
IL_07CB: Label53
IL_07CB: ldloc.1
IL_07CC: ldc.i4 255
IL_07D1: bne.un => Label55
IL_07D6: ldc.i4.0
IL_07D7: stloc.s 30 (System.Int32)
IL_07D9: br => Label56
IL_07DE: Label58
IL_07DE: ldarg.0
IL_07DF: ldfld PulseGroup[] ElectricityManager::m_pulseGroups
IL_07E4: ldloc.s 30 (System.Int32)
IL_07E6: ldelema ElectricityManager+PulseGroup
IL_07EB: ldobj ElectricityManager+PulseGroup
IL_07F0: stloc.s 31 (ElectricityManager+PulseGroup)
IL_07F2: ldloca.s 31 (ElectricityManager+PulseGroup)
IL_07F4: ldfld System.UInt16 PulseGroup::m_mergeIndex
IL_07F9: ldc.i4 65535
IL_07FE: beq => Label57
IL_0803: ldarg.0
IL_0804: ldfld PulseGroup[] ElectricityManager::m_pulseGroups
IL_0809: ldloca.s 31 (ElectricityManager+PulseGroup)
IL_080B: ldfld System.UInt16 PulseGroup::m_mergeIndex
IL_0810: ldelema ElectricityManager+PulseGroup
IL_0815: ldobj ElectricityManager+PulseGroup
IL_081A: stloc.s 32 (ElectricityManager+PulseGroup)
IL_081C: ldloca.s 31 (ElectricityManager+PulseGroup)
IL_081E: ldloca.s 32 (ElectricityManager+PulseGroup)
IL_0820: ldfld System.UInt32 PulseGroup::m_curCharge
IL_0825: conv.u8
IL_0826: ldloca.s 31 (ElectricityManager+PulseGroup)
IL_0828: ldfld System.UInt32 PulseGroup::m_origCharge
IL_082D: conv.u8
IL_082E: mul
IL_082F: ldloca.s 32 (ElectricityManager+PulseGroup)
IL_0831: ldfld System.UInt32 PulseGroup::m_origCharge
IL_0836: conv.u8
IL_0837: div.un
IL_0838: conv.u4
IL_0839: stfld System.UInt32 PulseGroup::m_curCharge
IL_083E: ldloca.s 32 (ElectricityManager+PulseGroup)
IL_0840: dup
IL_0841: ldfld System.UInt32 PulseGroup::m_curCharge
IL_0846: ldloca.s 31 (ElectricityManager+PulseGroup)
IL_0848: ldfld System.UInt32 PulseGroup::m_curCharge
IL_084D: sub
IL_084E: stfld System.UInt32 PulseGroup::m_curCharge
IL_0853: ldloca.s 32 (ElectricityManager+PulseGroup)
IL_0855: dup
IL_0856: ldfld System.UInt32 PulseGroup::m_origCharge
IL_085B: ldloca.s 31 (ElectricityManager+PulseGroup)
IL_085D: ldfld System.UInt32 PulseGroup::m_origCharge
IL_0862: sub
IL_0863: stfld System.UInt32 PulseGroup::m_origCharge
IL_0868: ldarg.0
IL_0869: ldfld PulseGroup[] ElectricityManager::m_pulseGroups
IL_086E: ldloca.s 31 (ElectricityManager+PulseGroup)
IL_0870: ldfld System.UInt16 PulseGroup::m_mergeIndex
IL_0875: ldelema ElectricityManager+PulseGroup
IL_087A: ldloc.s 32 (ElectricityManager+PulseGroup)
IL_087C: stobj ElectricityManager+PulseGroup
IL_0881: ldarg.0
IL_0882: ldfld PulseGroup[] ElectricityManager::m_pulseGroups
IL_0887: ldloc.s 30 (System.Int32)
IL_0889: ldelema ElectricityManager+PulseGroup
IL_088E: ldloc.s 31 (ElectricityManager+PulseGroup)
IL_0890: stobj ElectricityManager+PulseGroup
IL_0895: Label57
IL_0895: ldloc.s 30 (System.Int32)
IL_0897: ldc.i4.1
IL_0898: add
IL_0899: stloc.s 30 (System.Int32)
IL_089B: Label56
IL_089B: ldloc.s 30 (System.Int32)
IL_089D: ldarg.0
IL_089E: ldfld System.Int32 ElectricityManager::m_pulseGroupCount
IL_08A3: blt => Label58
IL_08A8: ldc.i4.0
IL_08A9: stloc.s 33 (System.Int32)
IL_08AB: br => Label59
IL_08B0: Label62
IL_08B0: ldarg.0
IL_08B1: ldfld PulseGroup[] ElectricityManager::m_pulseGroups
IL_08B6: ldloc.s 33 (System.Int32)
IL_08B8: ldelema ElectricityManager+PulseGroup
IL_08BD: ldobj ElectricityManager+PulseGroup
IL_08C2: stloc.s 34 (ElectricityManager+PulseGroup)
IL_08C4: ldloca.s 34 (ElectricityManager+PulseGroup)
IL_08C6: ldfld System.UInt32 PulseGroup::m_curCharge
IL_08CB: brfalse => Label60
IL_08D0: ldloca.s 34 (ElectricityManager+PulseGroup)
IL_08D2: ldfld System.Byte PulseGroup::m_z
IL_08D7: ldc.i4 256
IL_08DC: mul
IL_08DD: ldloca.s 34 (ElectricityManager+PulseGroup)
IL_08DF: ldfld System.Byte PulseGroup::m_x
IL_08E4: add
IL_08E5: stloc.s 35 (System.Int32)
IL_08E7: ldarg.0
IL_08E8: ldfld Cell[] ElectricityManager::m_electricityGrid
IL_08ED: ldloc.s 35 (System.Int32)
IL_08EF: ldelema ElectricityManager+Cell
IL_08F4: ldobj ElectricityManager+Cell
IL_08F9: stloc.s 36 (ElectricityManager+Cell)
IL_08FB: ldloca.s 36 (ElectricityManager+Cell)
IL_08FD: ldfld System.Byte Cell::m_conductivity
IL_0902: brfalse => Label61
IL_0907: ldloca.s 36 (ElectricityManager+Cell)
IL_0909: dup
IL_090A: ldfld System.UInt16 Cell::m_extraCharge
IL_090F: ldloca.s 34 (ElectricityManager+PulseGroup)
IL_0911: ldfld System.UInt32 PulseGroup::m_curCharge
IL_0916: ldc.i4 32767
IL_091B: ldloca.s 36 (ElectricityManager+Cell)
IL_091D: ldfld System.UInt16 Cell::m_extraCharge
IL_0922: sub
IL_0923: call static System.Int32 UnityEngine.Mathf::Min(System.Int32 a,
System.Int32 b)
IL_0928: conv.u2
IL_0929: add
IL_092A: conv.u2
IL_092B: stfld System.UInt16 Cell::m_extraCharge
IL_0930: Label61
IL_0930: ldarg.0
IL_0931: ldfld Cell[] ElectricityManager::m_electricityGrid
IL_0936: ldloc.s 35 (System.Int32)
IL_0938: ldelema ElectricityManager+Cell
IL_093D: ldloc.s 36 (ElectricityManager+Cell)
IL_093F: stobj ElectricityManager+Cell
IL_0944: Label60
IL_0944: ldloc.s 33 (System.Int32)
IL_0946: ldc.i4.1
IL_0947: add
IL_0948: stloc.s 33 (System.Int32)
IL_094A: Label59
IL_094A: ldloc.s 33 (System.Int32)
IL_094C: ldarg.0
IL_094D: ldfld System.Int32 ElectricityManager::m_pulseGroupCount
IL_0952: blt => Label62
IL_0957: // end original
IL_0957: Label0
IL_0957: Label1
IL_0957: Label22
IL_0957: Label55
IL_0957: ret
DONE

### Patch: System.Void ElectricityManager::ConductToNode(System.UInt16 nodeIndex,


NetNode& node, System.UInt16 group, System.Single minX, System.Single minZ,
System.Single maxX, System.Single maxZ)
### Replacement: static System.Void
ElectricityManager::ElectricityManager.ConductToNode_Patch0(ElectricityManager
this, System.UInt16 nodeIndex, NetNode& node, System.UInt16 group, System.Single
minX, System.Single minZ, System.Single maxX, System.Single maxZ)
IL_0000: Local var 0: NetInfo
IL_0000: Local var 1: ElectricityManager/PulseUnit
IL_0000: Local var 2: System.Int32
IL_0000: Local var 3: System.UInt16
IL_0000: // start original
IL_0000: ldarg.2
IL_0001: ldflda UnityEngine.Vector3 NetNode::m_position
IL_0006: ldfld System.Single UnityEngine.Vector3::x
IL_000B: ldarg.s 4
IL_000D: blt.un => Label0
IL_0012: ldarg.2
IL_0013: ldflda UnityEngine.Vector3 NetNode::m_position
IL_0018: ldfld System.Single UnityEngine.Vector3::z
IL_001D: ldarg.s 5
IL_001F: blt.un => Label1
IL_0024: ldarg.2
IL_0025: ldflda UnityEngine.Vector3 NetNode::m_position
IL_002A: ldfld System.Single UnityEngine.Vector3::x
IL_002F: ldarg.s 6
IL_0031: bgt.un => Label2
IL_0036: ldarg.2
IL_0037: ldflda UnityEngine.Vector3 NetNode::m_position
IL_003C: ldfld System.Single UnityEngine.Vector3::z
IL_0041: ldarg.s 7
IL_0043: bgt.un => Label3
IL_0048: ldarg.2
IL_0049: call NetInfo NetNode::get_Info()
IL_004E: stloc.0
IL_004F: ldloc.0
IL_0050: ldfld ItemClass NetInfo::m_class
IL_0055: ldfld Service ItemClass::m_service
IL_005A: ldc.i4.s 10
IL_005C: beq => Label4
IL_0061: ldarg.2
IL_0062: call NetInfo NetNode::get_Info()
IL_0067: ldfld NetAI NetInfo::m_netAI
IL_006C: isinst ConcourseAI
IL_0071: brfalse => Label5
IL_0076: Label4
IL_0076: ldarg.0
IL_0077: ldfld System.UInt16[] ElectricityManager::m_nodeGroups
IL_007C: ldarg.1
IL_007D: ldelem.u2
IL_007E: ldc.i4 65535
IL_0083: bne.un => Label6
IL_0088: ldloca.s 1 (ElectricityManager+PulseUnit)
IL_008A: ldarg.3
IL_008B: stfld System.UInt16 PulseUnit::m_group
IL_0090: ldloca.s 1 (ElectricityManager+PulseUnit)
IL_0092: ldarg.1
IL_0093: stfld System.UInt16 PulseUnit::m_node
IL_0098: ldloca.s 1 (ElectricityManager+PulseUnit)
IL_009A: ldc.i4.0
IL_009B: stfld System.Byte PulseUnit::m_x
IL_00A0: ldloca.s 1 (ElectricityManager+PulseUnit)
IL_00A2: ldc.i4.0
IL_00A3: stfld System.Byte PulseUnit::m_z
IL_00A8: ldarg.0
IL_00A9: ldfld PulseUnit[] ElectricityManager::m_pulseUnits
IL_00AE: ldarg.0
IL_00AF: ldfld System.Int32 ElectricityManager::m_pulseUnitEnd
IL_00B4: ldelema ElectricityManager+PulseUnit
IL_00B9: ldloc.1
IL_00BA: stobj ElectricityManager+PulseUnit
IL_00BF: ldarg.0
IL_00C0: dup
IL_00C1: ldfld System.Int32 ElectricityManager::m_pulseUnitEnd
IL_00C6: ldc.i4.1
IL_00C7: add
IL_00C8: dup
IL_00C9: stloc.2
IL_00CA: stfld System.Int32 ElectricityManager::m_pulseUnitEnd
IL_00CF: ldloc.2
IL_00D0: ldarg.0
IL_00D1: ldfld PulseUnit[] ElectricityManager::m_pulseUnits
IL_00D6: ldlen
IL_00D7: conv.i4
IL_00D8: bne.un => Label7
IL_00DD: ldarg.0
IL_00DE: ldc.i4.0
IL_00DF: stfld System.Int32 ElectricityManager::m_pulseUnitEnd
IL_00E4: Label7
IL_00E4: ldarg.0
IL_00E5: ldfld System.UInt16[] ElectricityManager::m_nodeGroups
IL_00EA: ldarg.1
IL_00EB: ldarg.3
IL_00EC: stelem.i2
IL_00ED: ldarg.0
IL_00EE: ldc.i4.1
IL_00EF: stfld System.Boolean ElectricityManager::m_canContinue
IL_00F4: br => Label8
IL_00F9: Label6
IL_00F9: ldarg.0
IL_00FA: ldarg.0
IL_00FB: ldfld System.UInt16[] ElectricityManager::m_nodeGroups
IL_0100: ldarg.1
IL_0101: ldelem.u2
IL_0102: call System.UInt16 ElectricityManager::GetRootGroup(System.UInt16
group)
IL_0107: stloc.3
IL_0108: ldloc.3
IL_0109: ldarg.3
IL_010A: beq => Label9
IL_010F: ldarg.0
IL_0110: ldarg.3
IL_0111: ldloc.3
IL_0112: call System.Void ElectricityManager::MergeGroups(System.UInt16 root,
System.UInt16 merged)
IL_0117: ldarg.0
IL_0118: ldfld System.UInt16[] ElectricityManager::m_nodeGroups
IL_011D: ldarg.1
IL_011E: ldarg.3
IL_011F: stelem.i2
IL_0120: ldarg.0
IL_0121: ldc.i4.1
IL_0122: stfld System.Boolean ElectricityManager::m_canContinue
IL_0127: // end original
IL_0127: Label0
IL_0127: Label1
IL_0127: Label2
IL_0127: Label3
IL_0127: Label5
IL_0127: Label8
IL_0127: Label9
IL_0127: ret
DONE

### Patch: System.Void ElectricityManager::UpdateNodeElectricity(System.Int32


nodeID, System.Int32 value)
### Replacement: static System.Void
ElectricityManager::ElectricityManager.UpdateNodeElectricity_Patch0(ElectricityMana
ger this, System.Int32 nodeID, System.Int32 value)
IL_0000: Local var 0: InfoManager/InfoMode
IL_0000: Local var 1: NetManager
IL_0000: Local var 2: System.Boolean
IL_0000: Local var 3: NetNode/Flags
IL_0000: Local var 4: System.UInt16
IL_0000: Local var 5: BuildingManager
IL_0000: Local var 6: NetNode/Flags
IL_0000: Local var 7: System.Int32
IL_0000: Local var 8: System.UInt16
IL_0000: // start original
IL_0000: call static InfoManager
ColossalFramework.Singleton`1<InfoManager>::get_instance()
IL_0005: callvirt InfoMode InfoManager::get_CurrentMode()
IL_000A: stloc.0
IL_000B: call static NetManager
ColossalFramework.Singleton`1<NetManager>::get_instance()
IL_0010: stloc.1
IL_0011: ldc.i4.0
IL_0012: stloc.2
IL_0013: ldloc.1
IL_0014: ldfld Array16`1<NetNode> NetManager::m_nodes
IL_0019: ldfld NetNode[] Array16`1<NetNode>::m_buffer
IL_001E: ldarg.1
IL_001F: ldelema NetNode
IL_0024: ldfld Flags NetNode::m_flags
IL_0029: stloc.3
IL_002A: ldloc.3
IL_002B: ldc.i4 1048576
IL_0030: and
IL_0031: brfalse => Label0
IL_0036: ldloc.1
IL_0037: ldfld Array16`1<NetNode> NetManager::m_nodes
IL_003C: ldfld NetNode[] Array16`1<NetNode>::m_buffer
IL_0041: ldarg.1
IL_0042: ldelema NetNode
IL_0047: dup
IL_0048: ldfld Flags NetNode::m_flags
IL_004D: ldc.i4 -1048577
IL_0052: and
IL_0053: stfld Flags NetNode::m_flags
IL_0058: br => Label10
IL_005D: Label0
IL_005D: ldloc.1
IL_005E: ldfld Array16`1<NetNode> NetManager::m_nodes
IL_0063: ldfld NetNode[] Array16`1<NetNode>::m_buffer
IL_0068: ldarg.1
IL_0069: ldelema NetNode
IL_006E: ldfld System.UInt16 NetNode::m_building
IL_0073: stloc.s 4 (System.UInt16)
IL_0075: ldloc.s 4 (System.UInt16)
IL_0077: brfalse => Label1
IL_007C: call static BuildingManager
ColossalFramework.Singleton`1<BuildingManager>::get_instance()
IL_0081: stloc.s 5 (BuildingManager)
IL_0083: ldloc.s 5 (BuildingManager)
IL_0085: ldfld Array16`1<Building> BuildingManager::m_buildings
IL_008A: ldfld Building[] Array16`1<Building>::m_buffer
IL_008F: ldloc.s 4 (System.UInt16)
IL_0091: ldelema Building
IL_0096: ldfld System.UInt16 Building::m_electricityBuffer
IL_009B: ldarg.2
IL_009C: beq => Label2
IL_00A1: ldloc.s 5 (BuildingManager)
IL_00A3: ldfld Array16`1<Building> BuildingManager::m_buildings
IL_00A8: ldfld Building[] Array16`1<Building>::m_buffer
IL_00AD: ldloc.s 4 (System.UInt16)
IL_00AF: ldelema Building
IL_00B4: ldarg.2
IL_00B5: conv.u2
IL_00B6: stfld System.UInt16 Building::m_electricityBuffer
IL_00BB: ldloc.0
IL_00BC: ldc.i4.1
IL_00BD: ceq
IL_00BF: stloc.2
IL_00C0: Label2
IL_00C0: ldloc.2
IL_00C1: brfalse => Label3
IL_00C6: ldloc.s 5 (BuildingManager)
IL_00C8: ldloc.s 4 (System.UInt16)
IL_00CA: callvirt System.Void BuildingManager::UpdateBuildingColors(System.UInt16
building)
IL_00CF: Label1
IL_00CF: Label3
IL_00CF: ldloc.3
IL_00D0: ldc.i4 -67108865
IL_00D5: and
IL_00D6: stloc.s 6 (NetNode+Flags)
IL_00D8: ldarg.2
IL_00D9: brfalse => Label4
IL_00DE: ldloc.s 6 (NetNode+Flags)
IL_00E0: ldc.i4 67108864
IL_00E5: or
IL_00E6: stloc.s 6 (NetNode+Flags)
IL_00E8: Label4
IL_00E8: ldloc.s 6 (NetNode+Flags)
IL_00EA: ldloc.3
IL_00EB: beq => Label5
IL_00F0: ldloc.1
IL_00F1: ldfld Array16`1<NetNode> NetManager::m_nodes
IL_00F6: ldfld NetNode[] Array16`1<NetNode>::m_buffer
IL_00FB: ldarg.1
IL_00FC: ldelema NetNode
IL_0101: ldloc.s 6 (NetNode+Flags)
IL_0103: stfld Flags NetNode::m_flags
IL_0108: ldloc.0
IL_0109: ldc.i4.1
IL_010A: ceq
IL_010C: stloc.2
IL_010D: Label5
IL_010D: ldloc.2
IL_010E: brfalse => Label6
IL_0113: ldloc.1
IL_0114: ldarg.1
IL_0115: conv.u2
IL_0116: callvirt System.Void NetManager::UpdateNodeColors(System.UInt16 node)
IL_011B: ldc.i4.0
IL_011C: stloc.s 7 (System.Int32)
IL_011E: br => Label7
IL_0123: Label9
IL_0123: ldloc.1
IL_0124: ldfld Array16`1<NetNode> NetManager::m_nodes
IL_0129: ldfld NetNode[] Array16`1<NetNode>::m_buffer
IL_012E: ldarg.1
IL_012F: ldelema NetNode
IL_0134: ldloc.s 7 (System.Int32)
IL_0136: call System.UInt16 NetNode::GetSegment(System.Int32 index)
IL_013B: stloc.s 8 (System.UInt16)
IL_013D: ldloc.s 8 (System.UInt16)
IL_013F: brfalse => Label8
IL_0144: ldloc.1
IL_0145: ldloc.s 8 (System.UInt16)
IL_0147: callvirt System.Void NetManager::UpdateSegmentColors(System.UInt16
segment)
IL_014C: Label8
IL_014C: ldloc.s 7 (System.Int32)
IL_014E: ldc.i4.1
IL_014F: add
IL_0150: stloc.s 7 (System.Int32)
IL_0152: Label7
IL_0152: ldloc.s 7 (System.Int32)
IL_0154: ldc.i4.8
IL_0155: blt => Label9
IL_015A: // end original
IL_015A: Label6
IL_015A: Label10
IL_015A: ret
DONE

### Patch: virtual System.Void ColossalFramework.UI.UIView::Start()


### Replacement: static System.Void
ColossalFramework.UI.UIView::ColossalFramework.UI.UIView.Start_Patch1(ColossalFrame
work.UI.UIView this)
IL_0000: Local var 0:
ColossalFramework.PoolList`1<ColossalFramework.UI.UIComponent>
IL_0000: Local var 1: ColossalFramework.UI.UIComponent
IL_0000: Local var 2:
System.Collections.Generic.IEnumerator`1<ColossalFramework.UI.UIComponent>
IL_0000: // start original
IL_0000: ldarg.0
IL_0001: ldc.i4.0
IL_0002: stfld System.Int32 ColossalFramework.UI.UIView::m_FramesRendered
IL_0007: ldarg.0
IL_0008: call System.Void
ColossalFramework.UI.UIView::InvalidateAllComponents()
IL_000D: ldarg.0
IL_000E: ldfld UnityEngine.MeshRenderer
ColossalFramework.UI.UIView::m_MeshRenderer
IL_0013: ldnull
IL_0014: call static System.Boolean
UnityEngine.Object::op_Inequality(UnityEngine.Object x, UnityEngine.Object y)
IL_0019: brfalse => Label0
IL_001E: ldarg.0
IL_001F: ldfld UnityEngine.MeshRenderer
ColossalFramework.UI.UIView::m_MeshRenderer
IL_0024: ldc.i4.1
IL_0025: callvirt System.Void UnityEngine.Renderer::set_enabled(System.Boolean
value)
IL_002A: Label0
IL_002A: ldarg.0
IL_002B: call ColossalFramework.PoolList`1<ColossalFramework.UI.UIComponent>
ColossalFramework.UI.UIView::GetTopLevelComponents()
IL_0030: stloc.0
.try
{
IL_0031: ldloc.0
IL_0032: callvirt virtual
System.Collections.Generic.IEnumerator`1<ColossalFramework.UI.UIComponent>
ColossalFramework.PoolList`1<ColossalFramework.UI.UIComponent>::GetEnumerator()
IL_0037: stloc.2
.try
{
IL_0038: br => Label1
IL_003D: Label2
IL_003D: ldloc.2
IL_003E: callvirt abstract virtual ColossalFramework.UI.UIComponent
System.Collections.Generic.IEnumerator`1<ColossalFramework.UI.UIComponent>::get_Cur
rent()
IL_0043: stloc.1
IL_0044: ldloc.1
IL_0045: ldc.i4.1
IL_0046: callvirt System.Void
ColossalFramework.UI.UIComponent::InitializeParentVisibilityCache(System.Boolean
parentVisible)
IL_004B: Label1
IL_004B: ldloc.2
IL_004C: callvirt abstract virtual System.Boolean
System.Collections.IEnumerator::MoveNext()
IL_0051: brtrue => Label2
IL_0056: leave => Label3
IL_005B: leave => (autogenerated)
} // end try
.finally
{
IL_0060: ldloc.2
IL_0061: brfalse => Label4
IL_0066: ldloc.2
IL_0067: callvirt abstract virtual System.Void
System.IDisposable::Dispose()
IL_006C: Label4
IL_006C: endfinally
IL_006D: leave => (autogenerated)
} // end handler
IL_006E: Label3
IL_006E: leave => Label5
IL_0073: leave => (autogenerated)
} // end try
.finally
{
IL_0078: ldloc.0
IL_0079: brfalse => Label6
IL_007E: ldloc.0
IL_007F: callvirt abstract virtual System.Void
System.IDisposable::Dispose()
IL_0084: Label6
IL_0084: endfinally
IL_0085: leave => (autogenerated)
} // end handler
IL_0086: Label5
IL_0086: ldarg.0
IL_0087: ldc.i4.1
IL_0088: stfld System.Boolean
ColossalFramework.UI.UIView::m_VisibilityCacheInitialized
IL_008D: // end original
IL_008D: call static System.Void
Kwytto.Redirectors.UIViewRedirector::AfterStart()
IL_0092: ret
DONE

### Patch: virtual UnityEngine.Color NetAI::GetColor(System.UInt16 nodeID, NetNode&


data, InfoMode infoMode, SubInfoMode subInfoMode)
### Replacement: static UnityEngine.Color NetAI::NetAI.GetColor_Patch1(NetAI this,
System.UInt16 nodeID, NetNode& data, InfoMode infoMode, SubInfoMode subInfoMode)
IL_0000: Local var 0: UnityEngine.Color
IL_0000: ldloca 0 (UnityEngine.Color)
IL_0004: initobj UnityEngine.Color
IL_000A: // start original
IL_000A: ldarg.3
IL_000B: brfalse => Label0
IL_0010: call static InfoManager
ColossalFramework.Singleton`1<InfoManager>::get_instance()
IL_0015: ldfld InfoProperties SimulationManagerBase`2<InfoManager,
InfoProperties>::m_properties
IL_001A: ldfld UnityEngine.Color InfoProperties::m_neutralColor
IL_001F: br => Label1
IL_0024: Label0
IL_0024: ldarg.0
IL_0025: ldfld NetInfo NetAI::m_info
IL_002A: ldfld UnityEngine.Color NetInfo::m_color
IL_002F: // end original
IL_002F: Label1
IL_002F: stloc 0 (UnityEngine.Color)
IL_0033: ldloca 0 (UnityEngine.Color)
IL_0037: ldarg 1
IL_003B: ldarg 2
IL_003F: ldarg 3
IL_0043: ldarg 4
IL_0047: call static System.Void
ElectricRoads.Overrides.ElectricRoadsOverrides::AfterGetColorNode(UnityEngine.Color
& __result, System.UInt16 nodeID, NetNode& data, InfoMode infoMode, SubInfoMode
subInfoMode)
IL_004C: ldloc 0 (UnityEngine.Color)
IL_0050: ret
DONE

### Patch: virtual UnityEngine.Color NetAI::GetColor(System.UInt16 segmentID,


NetSegment& data, InfoMode infoMode, SubInfoMode subInfoMode)
### Replacement: static UnityEngine.Color NetAI::NetAI.GetColor_Patch1(NetAI this,
System.UInt16 segmentID, NetSegment& data, InfoMode infoMode, SubInfoMode
subInfoMode)
IL_0000: Local var 0: UnityEngine.Color
IL_0000: ldloca 0 (UnityEngine.Color)
IL_0004: initobj UnityEngine.Color
IL_000A: // start original
IL_000A: ldarg.3
IL_000B: brfalse => Label0
IL_0010: call static InfoManager
ColossalFramework.Singleton`1<InfoManager>::get_instance()
IL_0015: ldfld InfoProperties SimulationManagerBase`2<InfoManager,
InfoProperties>::m_properties
IL_001A: ldfld UnityEngine.Color InfoProperties::m_neutralColor
IL_001F: br => Label1
IL_0024: Label0
IL_0024: ldarg.0
IL_0025: ldfld NetInfo NetAI::m_info
IL_002A: ldfld UnityEngine.Color NetInfo::m_color
IL_002F: // end original
IL_002F: Label1
IL_002F: stloc 0 (UnityEngine.Color)
IL_0033: ldloca 0 (UnityEngine.Color)
IL_0037: ldarg 1
IL_003B: ldarg 2
IL_003F: ldarg 3
IL_0043: ldarg 4
IL_0047: call static System.Void
ElectricRoads.Overrides.ElectricRoadsOverrides::AfterGetColorSegment(UnityEngine.Co
lor& __result, System.UInt16 segmentID, NetSegment& data, InfoMode infoMode,
SubInfoMode subInfoMode)
IL_004C: ldloc 0 (UnityEngine.Color)
IL_0050: ret
DONE

### Patch: System.Void ElectricityManager::UpdateNodeElectricity(System.Int32


nodeID, System.Int32 value)
### Replacement: static System.Void
ElectricityManager::ElectricityManager.UpdateNodeElectricity_Patch0(ElectricityMana
ger this, System.Int32 nodeID, System.Int32 value)
IL_0000: Local var 0: InfoManager/InfoMode
IL_0000: Local var 1: NetManager
IL_0000: Local var 2: System.Boolean
IL_0000: Local var 3: NetNode/Flags
IL_0000: Local var 4: System.UInt16
IL_0000: Local var 5: BuildingManager
IL_0000: Local var 6: NetNode/Flags
IL_0000: Local var 7: System.Int32
IL_0000: Local var 8: System.UInt16
IL_0000: // start original
IL_0000: call static InfoManager
ColossalFramework.Singleton`1<InfoManager>::get_instance()
IL_0005: callvirt InfoMode InfoManager::get_CurrentMode()
IL_000A: stloc.0
IL_000B: call static NetManager
ColossalFramework.Singleton`1<NetManager>::get_instance()
IL_0010: stloc.1
IL_0011: ldc.i4.0
IL_0012: stloc.2
IL_0013: ldloc.1
IL_0014: ldfld Array16`1<NetNode> NetManager::m_nodes
IL_0019: ldfld NetNode[] Array16`1<NetNode>::m_buffer
IL_001E: ldarg.1
IL_001F: ldelema NetNode
IL_0024: ldfld Flags NetNode::m_flags
IL_0029: stloc.3
IL_002A: ldarg.1
IL_002B: call static System.Boolean
ElectricRoads.Overrides.ElectricRoadsOverrides::CheckNodeTransition(System.Int32
nodeID)
IL_0030: brfalse => Label0
IL_0035: ldloc.1
IL_0036: ldfld Array16`1<NetNode> NetManager::m_nodes
IL_003B: ldfld NetNode[] Array16`1<NetNode>::m_buffer
IL_0040: ldarg.1
IL_0041: ldelema NetNode
IL_0046: dup
IL_0047: ldfld Flags NetNode::m_flags
IL_004C: ldc.i4 -1048577
IL_0051: and
IL_0052: stfld Flags NetNode::m_flags
IL_0057: br => Label10
IL_005C: Label0
IL_005C: ldloc.1
IL_005D: ldfld Array16`1<NetNode> NetManager::m_nodes
IL_0062: ldfld NetNode[] Array16`1<NetNode>::m_buffer
IL_0067: ldarg.1
IL_0068: ldelema NetNode
IL_006D: ldfld System.UInt16 NetNode::m_building
IL_0072: stloc.s 4 (System.UInt16)
IL_0074: ldloc.s 4 (System.UInt16)
IL_0076: brfalse => Label1
IL_007B: call static BuildingManager
ColossalFramework.Singleton`1<BuildingManager>::get_instance()
IL_0080: stloc.s 5 (BuildingManager)
IL_0082: ldloc.s 5 (BuildingManager)
IL_0084: ldfld Array16`1<Building> BuildingManager::m_buildings
IL_0089: ldfld Building[] Array16`1<Building>::m_buffer
IL_008E: ldloc.s 4 (System.UInt16)
IL_0090: ldelema Building
IL_0095: ldfld System.UInt16 Building::m_electricityBuffer
IL_009A: ldarg.2
IL_009B: beq => Label2
IL_00A0: ldloc.s 5 (BuildingManager)
IL_00A2: ldfld Array16`1<Building> BuildingManager::m_buildings
IL_00A7: ldfld Building[] Array16`1<Building>::m_buffer
IL_00AC: ldloc.s 4 (System.UInt16)
IL_00AE: ldelema Building
IL_00B3: ldarg.2
IL_00B4: conv.u2
IL_00B5: stfld System.UInt16 Building::m_electricityBuffer
IL_00BA: ldloc.0
IL_00BB: ldc.i4.1
IL_00BC: ceq
IL_00BE: stloc.2
IL_00BF: Label2
IL_00BF: ldloc.2
IL_00C0: brfalse => Label3
IL_00C5: ldloc.s 5 (BuildingManager)
IL_00C7: ldloc.s 4 (System.UInt16)
IL_00C9: callvirt System.Void BuildingManager::UpdateBuildingColors(System.UInt16
building)
IL_00CE: Label1
IL_00CE: Label3
IL_00CE: ldloc.3
IL_00CF: ldc.i4 -67108865
IL_00D4: and
IL_00D5: stloc.s 6 (NetNode+Flags)
IL_00D7: ldarg.2
IL_00D8: brfalse => Label4
IL_00DD: ldloc.s 6 (NetNode+Flags)
IL_00DF: ldc.i4 67108864
IL_00E4: or
IL_00E5: stloc.s 6 (NetNode+Flags)
IL_00E7: Label4
IL_00E7: ldloc.s 6 (NetNode+Flags)
IL_00E9: ldloc.3
IL_00EA: beq => Label5
IL_00EF: ldloc.1
IL_00F0: ldfld Array16`1<NetNode> NetManager::m_nodes
IL_00F5: ldfld NetNode[] Array16`1<NetNode>::m_buffer
IL_00FA: ldarg.1
IL_00FB: ldelema NetNode
IL_0100: ldloc.s 6 (NetNode+Flags)
IL_0102: stfld Flags NetNode::m_flags
IL_0107: ldloc.0
IL_0108: ldc.i4.1
IL_0109: ceq
IL_010B: stloc.2
IL_010C: Label5
IL_010C: ldloc.2
IL_010D: brfalse => Label6
IL_0112: ldloc.1
IL_0113: ldarg.1
IL_0114: conv.u2
IL_0115: callvirt System.Void NetManager::UpdateNodeColors(System.UInt16 node)
IL_011A: ldc.i4.0
IL_011B: stloc.s 7 (System.Int32)
IL_011D: br => Label7
IL_0122: Label9
IL_0122: ldloc.1
IL_0123: ldfld Array16`1<NetNode> NetManager::m_nodes
IL_0128: ldfld NetNode[] Array16`1<NetNode>::m_buffer
IL_012D: ldarg.1
IL_012E: ldelema NetNode
IL_0133: ldloc.s 7 (System.Int32)
IL_0135: call System.UInt16 NetNode::GetSegment(System.Int32 index)
IL_013A: stloc.s 8 (System.UInt16)
IL_013C: ldloc.s 8 (System.UInt16)
IL_013E: brfalse => Label8
IL_0143: ldloc.1
IL_0144: ldloc.s 8 (System.UInt16)
IL_0146: callvirt System.Void NetManager::UpdateSegmentColors(System.UInt16
segment)
IL_014B: Label8
IL_014B: ldloc.s 7 (System.Int32)
IL_014D: ldc.i4.1
IL_014E: add
IL_014F: stloc.s 7 (System.Int32)
IL_0151: Label7
IL_0151: ldloc.s 7 (System.Int32)
IL_0153: ldc.i4.8
IL_0154: blt => Label9
IL_0159: // end original
IL_0159: Label6
IL_0159: Label10
IL_0159: ret
DONE

### Patch: static System.Void PropInstance::RenderInstance(CameraInfo cameraInfo,


PropInfo info, InstanceID id, UnityEngine.Vector3 position, System.Single scale,
System.Single angle, UnityEngine.Color color, UnityEngine.Vector4 objectIndex,
System.Boolean active, UnityEngine.Texture heightMap, UnityEngine.Vector4
heightMapping, UnityEngine.Vector4 surfaceMapping, UnityEngine.Texture
waterHeightMap, UnityEngine.Vector4 waterHeightMapping, UnityEngine.Vector4
waterSurfaceMapping)
### Replacement: static System.Void
PropInstance::PropInstance.RenderInstance_Patch0(CameraInfo cameraInfo, PropInfo
info, InstanceID id, UnityEngine.Vector3 position, System.Single scale,
System.Single angle, UnityEngine.Color color, UnityEngine.Vector4 objectIndex,
System.Boolean active, UnityEngine.Texture heightMap, UnityEngine.Vector4
heightMapping, UnityEngine.Vector4 surfaceMapping, UnityEngine.Texture
waterHeightMap, UnityEngine.Vector4 waterHeightMapping, UnityEngine.Vector4
waterSurfaceMapping)
IL_0000: Local var 0: UnityEngine.Matrix4x4
IL_0000: Local var 1: System.Single
IL_0000: Local var 2: System.Int32
IL_0000: Local var 3: UnityEngine.Vector3
IL_0000: Local var 4: UnityEngine.Vector3
IL_0000: Local var 5: EffectInfo/SpawnArea
IL_0000: Local var 6: System.Single
IL_0000: Local var 7: LightSystem
IL_0000: Local var 8: ColossalFramework.Math.Randomizer
IL_0000: Local var 9: UnityEngine.Vector4
IL_0000: Local var 10: System.Single
IL_0000: Local var 11: System.Single
IL_0000: Local var 12: System.Single
IL_0000: Local var 13: UnityEngine.Matrix4x4
IL_0000: Local var 14: PropManager
IL_0000: Local var 15: UnityEngine.MaterialPropertyBlock
IL_0000: Local var 16: System.Int32
IL_0000: // start original
IL_0000: ldarg.1
IL_0001: ldfld System.Boolean PrefabInfo::m_prefabInitialized
IL_0006: brfalse => Label0
IL_000B: ldarg.1
IL_000C: ldfld System.Boolean PropInfo::m_hasEffects
IL_0011: brfalse => Label1
IL_0016: ldarg.s 8
IL_0018: brtrue => Label2
IL_001D: ldarg.1
IL_001E: ldfld System.Boolean PropInfo::m_alwaysActive
IL_0023: brfalse => Label3
IL_0028: Label2
IL_0028: ldloca.s 0 (UnityEngine.Matrix4x4)
IL_002A: initobj UnityEngine.Matrix4x4
IL_0030: ldloca.s 0 (UnityEngine.Matrix4x4)
IL_0032: ldarg.3
IL_0033: ldarg.s 5
IL_0035: ldc.r4 57.29578
IL_003A: mul
IL_003B: call static UnityEngine.Vector3 UnityEngine.Vector3::get_down()
IL_0040: call static UnityEngine.Quaternion
UnityEngine.Quaternion::AngleAxis(System.Single angle, UnityEngine.Vector3 axis)
IL_0045: ldarg.s 4
IL_0047: ldarg.s 4
IL_0049: ldarg.s 4
IL_004B: newobj System.Void UnityEngine.Vector3::.ctor(System.Single x,
System.Single y, System.Single z)
IL_0050: call System.Void UnityEngine.Matrix4x4::SetTRS(UnityEngine.Vector3
pos, UnityEngine.Quaternion q, UnityEngine.Vector3 s)
IL_0055: call static SimulationManager
ColossalFramework.Singleton`1<SimulationManager>::get_instance()
IL_005A: ldfld System.Single SimulationManager::m_simulationTimeDelta
IL_005F: stloc.1
IL_0060: ldc.i4.0
IL_0061: stloc.2
IL_0062: br => Label4
IL_0067: Label5
IL_0067: ldloca.s 0 (UnityEngine.Matrix4x4)
IL_0069: ldarg.1
IL_006A: ldfld Effect[] PropInfo::m_effects
IL_006F: ldloc.2
IL_0070: ldelema PropInfo+Effect
IL_0075: ldfld UnityEngine.Vector3 Effect::m_position
IL_007A: call UnityEngine.Vector3
UnityEngine.Matrix4x4::MultiplyPoint(UnityEngine.Vector3 v)
IL_007F: stloc.3
IL_0080: ldloca.s 0 (UnityEngine.Matrix4x4)
IL_0082: ldarg.1
IL_0083: ldfld Effect[] PropInfo::m_effects
IL_0088: ldloc.2
IL_0089: ldelema PropInfo+Effect
IL_008E: ldfld UnityEngine.Vector3 Effect::m_direction
IL_0093: call UnityEngine.Vector3
UnityEngine.Matrix4x4::MultiplyVector(UnityEngine.Vector3 v)
IL_0098: stloc.s 4 (UnityEngine.Vector3)
IL_009A: ldloca.s 5 (EffectInfo+SpawnArea)
IL_009C: ldloc.3
IL_009D: ldloc.s 4 (UnityEngine.Vector3)
IL_009F: ldc.r4 0
IL_00A4: call System.Void SpawnArea::.ctor(UnityEngine.Vector3 position,
UnityEngine.Vector3 direction, System.Single radius)
IL_00A9: ldarg.1
IL_00AA: ldfld Effect[] PropInfo::m_effects
IL_00AF: ldloc.2
IL_00B0: ldelema PropInfo+Effect
IL_00B5: ldfld EffectInfo Effect::m_effect
IL_00BA: ldarg.2
IL_00BB: ldloc.s 5 (EffectInfo+SpawnArea)
IL_00BD: call static UnityEngine.Vector3 UnityEngine.Vector3::get_zero()
IL_00C2: ldc.r4 0
IL_00C7: ldc.r4 1
IL_00CC: ldc.r4 -1
IL_00D1: ldloc.1
IL_00D2: ldarg.0
IL_00D3: callvirt virtual System.Void EffectInfo::RenderEffect(InstanceID id,
SpawnArea area, UnityEngine.Vector3 velocity, System.Single acceleration,
System.Single magnitude, System.Single timeOffset, System.Single timeDelta,
CameraInfo cameraInfo)
IL_00D8: ldloc.2
IL_00D9: ldc.i4.1
IL_00DA: add
IL_00DB: stloc.2
IL_00DC: Label4
IL_00DC: ldloc.2
IL_00DD: ldarg.1
IL_00DE: ldfld Effect[] PropInfo::m_effects
IL_00E3: ldlen
IL_00E4: conv.i4
IL_00E5: blt => Label5
IL_00EA: Label1
IL_00EA: Label3
IL_00EA: ldarg.1
IL_00EB: ldfld System.Boolean PropInfo::m_hasRenderer
IL_00F0: brfalse => Label6
IL_00F5: ldarg.0
IL_00F6: ldfld System.Int32 CameraInfo::m_layerMask
IL_00FB: ldc.i4.1
IL_00FC: ldarg.1
IL_00FD: ldfld System.Int32 PrefabInfo::m_prefabDataLayer
IL_0102: ldc.i4.s 31
IL_0104: and
IL_0105: shl
IL_0106: and
IL_0107: brfalse => Label7
IL_010C: call static InfoManager
ColossalFramework.Singleton`1<InfoManager>::get_instance()
IL_0111: callvirt InfoMode InfoManager::get_CurrentMode()
IL_0116: brtrue => Label8
IL_011B: ldarg 2
IL_011F: call static System.Boolean
ElectricRoads.Overrides.ElectricRoadsOverrides::CheckElectrityNetForLight(InstanceI
D id)
IL_0124: brfalse => Label24
IL_0129: ldc.r4 0
IL_012E: stloc.s 6 (System.Single)
IL_0130: ldarg.s 8
IL_0132: brtrue => Label9
IL_0137: ldarg.1
IL_0138: ldfld System.Boolean PropInfo::m_alwaysActive
IL_013D: brtrue => Label10
IL_0142: Label24
IL_0142: ldarga.s 7
IL_0144: ldc.r4 0
IL_0149: stfld System.Single UnityEngine.Vector4::z
IL_014E: br => Label11
IL_0153: Label9
IL_0153: Label10
IL_0153: ldarg.1
IL_0154: ldflda UnityEngine.Vector2 PropInfo::m_illuminationOffRange
IL_0159: ldfld System.Single UnityEngine.Vector2::x
IL_015E: ldc.r4 1000
IL_0163: blt => Label12
IL_0168: ldarg.1
IL_0169: ldfld BlinkType PropInfo::m_illuminationBlinkType
IL_016E: brfalse => Label13
IL_0173: Label12
IL_0173: call static RenderManager
ColossalFramework.Singleton`1<RenderManager>::get_instance()
IL_0178: callvirt LightSystem RenderManager::get_lightSystem()
IL_017D: stloc.s 7 (LightSystem)
IL_017F: ldloca.s 8 (ColossalFramework.Math.Randomizer)
IL_0181: ldarga.s 2
IL_0183: call System.UInt32 InstanceID::get_Index()
IL_0188: call System.Void
ColossalFramework.Math.Randomizer::.ctor(System.UInt32 _seed)
IL_018D: ldarg.1
IL_018E: ldflda UnityEngine.Vector2 PropInfo::m_illuminationOffRange
IL_0193: ldfld System.Single UnityEngine.Vector2::x
IL_0198: ldloca.s 8 (ColossalFramework.Math.Randomizer)
IL_019A: ldc.i4 100000
IL_019F: call System.Int32
ColossalFramework.Math.Randomizer::Int32(System.UInt32 range)
IL_01A4: conv.r4
IL_01A5: ldc.r4 1E-05
IL_01AA: mul
IL_01AB: ldarg.1
IL_01AC: ldflda UnityEngine.Vector2 PropInfo::m_illuminationOffRange
IL_01B1: ldfld System.Single UnityEngine.Vector2::y
IL_01B6: ldarg.1
IL_01B7: ldflda UnityEngine.Vector2 PropInfo::m_illuminationOffRange
IL_01BC: ldfld System.Single UnityEngine.Vector2::x
IL_01C1: sub
IL_01C2: mul
IL_01C3: add
IL_01C4: stloc.s 6 (System.Single)
IL_01C6: ldarga.s 7
IL_01C8: ldloc.s 6 (System.Single)
IL_01CA: ldc.r4 0.01
IL_01CF: add
IL_01D0: ldloc.s 6 (System.Single)
IL_01D2: ldc.r4 0.01
IL_01D7: sub
IL_01D8: ldloc.s 7 (LightSystem)
IL_01DA: callvirt System.Single LightSystem::get_DayLightIntensity()
IL_01DF: call static System.Single MathUtils::SmoothStep(System.Single edge0,
System.Single edge1, System.Single x)
IL_01E4: stfld System.Single UnityEngine.Vector4::z
IL_01E9: ldarg.1
IL_01EA: ldfld BlinkType PropInfo::m_illuminationBlinkType
IL_01EF: brfalse => Label14
IL_01F4: ldarg.1
IL_01F5: ldfld BlinkType PropInfo::m_illuminationBlinkType
IL_01FA: call static UnityEngine.Vector4
LightEffect::GetBlinkVector(BlinkType type)
IL_01FF: stloc.s 9 (UnityEngine.Vector4)
IL_0201: ldloc.s 6 (System.Single)
IL_0203: ldc.r4 3.71
IL_0208: mul
IL_0209: call static SimulationManager
ColossalFramework.Singleton`1<SimulationManager>::get_instance()
IL_020E: ldfld System.Single SimulationManager::m_simulationTimer
IL_0213: ldloca.s 9 (UnityEngine.Vector4)
IL_0215: ldfld System.Single UnityEngine.Vector4::w
IL_021A: div
IL_021B: add
IL_021C: stloc.s 10 (System.Single)
IL_021E: ldloc.s 10 (System.Single)
IL_0220: ldloc.s 10 (System.Single)
IL_0222: call static System.Single UnityEngine.Mathf::Floor(System.Single f)
IL_0227: sub
IL_0228: ldloca.s 9 (UnityEngine.Vector4)
IL_022A: ldfld System.Single UnityEngine.Vector4::w
IL_022F: mul
IL_0230: stloc.s 10 (System.Single)
IL_0232: ldloca.s 9 (UnityEngine.Vector4)
IL_0234: ldfld System.Single UnityEngine.Vector4::x
IL_0239: ldloca.s 9 (UnityEngine.Vector4)
IL_023B: ldfld System.Single UnityEngine.Vector4::y
IL_0240: ldloc.s 10 (System.Single)
IL_0242: call static System.Single MathUtils::SmoothStep(System.Single edge0,
System.Single edge1, System.Single x)
IL_0247: stloc.s 11 (System.Single)
IL_0249: ldloca.s 9 (UnityEngine.Vector4)
IL_024B: ldfld System.Single UnityEngine.Vector4::w
IL_0250: ldloca.s 9 (UnityEngine.Vector4)
IL_0252: ldfld System.Single UnityEngine.Vector4::z
IL_0257: ldloc.s 10 (System.Single)
IL_0259: call static System.Single MathUtils::SmoothStep(System.Single edge0,
System.Single edge1, System.Single x)
IL_025E: stloc.s 12 (System.Single)
IL_0260: ldarga.s 7
IL_0262: dup
IL_0263: ldfld System.Single UnityEngine.Vector4::z
IL_0268: ldc.r4 1
IL_026D: ldloc.s 11 (System.Single)
IL_026F: ldloc.s 12 (System.Single)
IL_0271: mul
IL_0272: sub
IL_0273: mul
IL_0274: stfld System.Single UnityEngine.Vector4::z
IL_0279: Label14
IL_0279: br => Label15
IL_027E: Label13
IL_027E: ldarga.s 7
IL_0280: ldc.r4 1
IL_0285: stfld System.Single UnityEngine.Vector4::z
IL_028A: Label8
IL_028A: Label11
IL_028A: Label15
IL_028A: ldarg.0
IL_028B: brfalse => Label16
IL_0290: ldarg.0
IL_0291: ldarg.3
IL_0292: ldarg.1
IL_0293: ldfld System.Single PropInfo::m_lodRenderDistance
IL_0298: callvirt System.Boolean
CameraInfo::CheckRenderDistance(UnityEngine.Vector3 point, System.Single
maxDistance)
IL_029D: brfalse => Label17
IL_02A2: Label16
IL_02A2: ldloca.s 13 (UnityEngine.Matrix4x4)
IL_02A4: initobj UnityEngine.Matrix4x4
IL_02AA: ldloca.s 13 (UnityEngine.Matrix4x4)
IL_02AC: ldarg.3
IL_02AD: ldarg.s 5
IL_02AF: ldc.r4 57.29578
IL_02B4: mul
IL_02B5: call static UnityEngine.Vector3 UnityEngine.Vector3::get_down()
IL_02BA: call static UnityEngine.Quaternion
UnityEngine.Quaternion::AngleAxis(System.Single angle, UnityEngine.Vector3 axis)
IL_02BF: ldarg.s 4
IL_02C1: ldarg.s 4
IL_02C3: ldarg.s 4
IL_02C5: newobj System.Void UnityEngine.Vector3::.ctor(System.Single x,
System.Single y, System.Single z)
IL_02CA: call System.Void UnityEngine.Matrix4x4::SetTRS(UnityEngine.Vector3
pos, UnityEngine.Quaternion q, UnityEngine.Vector3 s)
IL_02CF: call static PropManager
ColossalFramework.Singleton`1<PropManager>::get_instance()
IL_02D4: stloc.s 14 (PropManager)
IL_02D6: ldloc.s 14 (PropManager)
IL_02D8: ldfld UnityEngine.MaterialPropertyBlock PropManager::m_materialBlock
IL_02DD: stloc.s 15 (UnityEngine.MaterialPropertyBlock)
IL_02DF: ldloc.s 15 (UnityEngine.MaterialPropertyBlock)
IL_02E1: callvirt System.Void UnityEngine.MaterialPropertyBlock::Clear()
IL_02E6: ldloc.s 15 (UnityEngine.MaterialPropertyBlock)
IL_02E8: ldloc.s 14 (PropManager)
IL_02EA: ldfld System.Int32 PropManager::ID_Color
IL_02EF: ldarg.s 6
IL_02F1: callvirt System.Void
UnityEngine.MaterialPropertyBlock::SetColor(System.Int32 nameID, UnityEngine.Color
value)
IL_02F6: ldloc.s 15 (UnityEngine.MaterialPropertyBlock)
IL_02F8: ldloc.s 14 (PropManager)
IL_02FA: ldfld System.Int32 PropManager::ID_HeightMap
IL_02FF: ldarg.s 9
IL_0301: callvirt System.Void
UnityEngine.MaterialPropertyBlock::SetTexture(System.Int32 nameID,
UnityEngine.Texture value)
IL_0306: ldloc.s 15 (UnityEngine.MaterialPropertyBlock)
IL_0308: ldloc.s 14 (PropManager)
IL_030A: ldfld System.Int32 PropManager::ID_HeightMapping
IL_030F: ldarg.s 10
IL_0311: callvirt System.Void
UnityEngine.MaterialPropertyBlock::SetVector(System.Int32 nameID,
UnityEngine.Vector4 value)
IL_0316: ldloc.s 15 (UnityEngine.MaterialPropertyBlock)
IL_0318: ldloc.s 14 (PropManager)
IL_031A: ldfld System.Int32 PropManager::ID_SurfaceMapping
IL_031F: ldarg.s 11
IL_0321: callvirt System.Void
UnityEngine.MaterialPropertyBlock::SetVector(System.Int32 nameID,
UnityEngine.Vector4 value)
IL_0326: ldloc.s 15 (UnityEngine.MaterialPropertyBlock)
IL_0328: ldloc.s 14 (PropManager)
IL_032A: ldfld System.Int32 PropManager::ID_ObjectIndex
IL_032F: ldarg.s 7
IL_0331: callvirt System.Void
UnityEngine.MaterialPropertyBlock::SetVector(System.Int32 nameID,
UnityEngine.Vector4 value)
IL_0336: ldloc.s 15 (UnityEngine.MaterialPropertyBlock)
IL_0338: ldloc.s 14 (PropManager)
IL_033A: ldfld System.Int32 PropManager::ID_WaterHeightMap
IL_033F: ldarg.s 12
IL_0341: callvirt System.Void
UnityEngine.MaterialPropertyBlock::SetTexture(System.Int32 nameID,
UnityEngine.Texture value)
IL_0346: ldloc.s 15 (UnityEngine.MaterialPropertyBlock)
IL_0348: ldloc.s 14 (PropManager)
IL_034A: ldfld System.Int32 PropManager::ID_WaterHeightMapping
IL_034F: ldarg.s 13
IL_0351: callvirt System.Void
UnityEngine.MaterialPropertyBlock::SetVector(System.Int32 nameID,
UnityEngine.Vector4 value)
IL_0356: ldloc.s 15 (UnityEngine.MaterialPropertyBlock)
IL_0358: ldloc.s 14 (PropManager)
IL_035A: ldfld System.Int32 PropManager::ID_WaterSurfaceMapping
IL_035F: ldarg.s 14
IL_0361: callvirt System.Void
UnityEngine.MaterialPropertyBlock::SetVector(System.Int32 nameID,
UnityEngine.Vector4 value)
IL_0366: ldarg.1
IL_0367: ldfld UnityEngine.Vector4[] PropInfo::m_rollLocation
IL_036C: brfalse => Label18
IL_0371: ldarg.1
IL_0372: ldfld UnityEngine.Material PropInfo::m_material
IL_0377: ldloc.s 14 (PropManager)
IL_0379: ldfld System.Int32 PropManager::ID_RollLocation
IL_037E: ldarg.1
IL_037F: ldfld UnityEngine.Vector4[] PropInfo::m_rollLocation
IL_0384: callvirt System.Void UnityEngine.Material::SetVectorArray(System.Int32
nameID, UnityEngine.Vector4[] values)
IL_0389: ldarg.1
IL_038A: ldfld UnityEngine.Material PropInfo::m_material
IL_038F: ldloc.s 14 (PropManager)
IL_0391: ldfld System.Int32 PropManager::ID_RollParams
IL_0396: ldarg.1
IL_0397: ldfld UnityEngine.Vector4[] PropInfo::m_rollParams
IL_039C: callvirt System.Void UnityEngine.Material::SetVectorArray(System.Int32
nameID, UnityEngine.Vector4[] values)
IL_03A1: Label18
IL_03A1: ldloc.s 14 (PropManager)
IL_03A3: ldflda DrawCallData SimulationManagerBase`2<PropManager,
PropProperties>::m_drawCallData
IL_03A8: dup
IL_03A9: ldfld System.Int32 DrawCallData::m_defaultCalls
IL_03AE: ldc.i4.1
IL_03AF: add
IL_03B0: stfld System.Int32 DrawCallData::m_defaultCalls
IL_03B5: ldarg.1
IL_03B6: ldfld UnityEngine.Mesh PropInfo::m_mesh
IL_03BB: ldloc.s 13 (UnityEngine.Matrix4x4)
IL_03BD: ldarg.1
IL_03BE: ldfld UnityEngine.Material PropInfo::m_material
IL_03C3: ldarg.1
IL_03C4: ldfld System.Int32 PrefabInfo::m_prefabDataLayer
IL_03C9: ldnull
IL_03CA: ldc.i4.0
IL_03CB: ldloc.s 15 (UnityEngine.MaterialPropertyBlock)
IL_03CD: call static System.Void
UnityEngine.Graphics::DrawMesh(UnityEngine.Mesh mesh, UnityEngine.Matrix4x4 matrix,
UnityEngine.Material material, System.Int32 layer, UnityEngine.Camera camera,
System.Int32 submeshIndex, UnityEngine.MaterialPropertyBlock properties)
IL_03D2: br => Label19
IL_03D7: Label17
IL_03D7: ldarg.s 9
IL_03D9: ldarg.1
IL_03DA: ldfld UnityEngine.Texture PropInfo::m_lodHeightMap
IL_03DF: call static System.Boolean
UnityEngine.Object::op_Inequality(UnityEngine.Object x, UnityEngine.Object y)
IL_03E4: brtrue => Label20
IL_03E9: ldarg.s 12
IL_03EB: ldarg.1
IL_03EC: ldfld UnityEngine.Texture PropInfo::m_lodWaterHeightMap
IL_03F1: call static System.Boolean
UnityEngine.Object::op_Inequality(UnityEngine.Object x, UnityEngine.Object y)
IL_03F6: brfalse => Label21
IL_03FB: Label20
IL_03FB: ldarg.1
IL_03FC: ldfld System.Int32 PropInfo::m_lodCount
IL_0401: brfalse => Label22
IL_0406: ldarg.0
IL_0407: ldarg.1
IL_0408: call static System.Void PropInstance::RenderLod(CameraInfo
cameraInfo, PropInfo info)
IL_040D: Label22
IL_040D: ldarg.1
IL_040E: ldarg.s 9
IL_0410: stfld UnityEngine.Texture PropInfo::m_lodHeightMap
IL_0415: ldarg.1
IL_0416: ldarg.s 10
IL_0418: stfld UnityEngine.Vector4 PropInfo::m_lodHeightMapping
IL_041D: ldarg.1
IL_041E: ldarg.s 11
IL_0420: stfld UnityEngine.Vector4 PropInfo::m_lodSurfaceMapping
IL_0425: ldarg.1
IL_0426: ldarg.s 12
IL_0428: stfld UnityEngine.Texture PropInfo::m_lodWaterHeightMap
IL_042D: ldarg.1
IL_042E: ldarg.s 13
IL_0430: stfld UnityEngine.Vector4 PropInfo::m_lodWaterHeightMapping
IL_0435: ldarg.1
IL_0436: ldarg.s 14
IL_0438: stfld UnityEngine.Vector4 PropInfo::m_lodWaterSurfaceMapping
IL_043D: Label21
IL_043D: ldarga.s 7
IL_043F: ldarg.s 4
IL_0441: stfld System.Single UnityEngine.Vector4::w
IL_0446: ldarg.1
IL_0447: ldfld UnityEngine.Vector4[] PropInfo::m_lodLocations
IL_044C: ldarg.1
IL_044D: ldfld System.Int32 PropInfo::m_lodCount
IL_0452: ldelema UnityEngine.Vector4
IL_0457: ldarga.s 3
IL_0459: ldfld System.Single UnityEngine.Vector3::x
IL_045E: ldarga.s 3
IL_0460: ldfld System.Single UnityEngine.Vector3::y
IL_0465: ldarga.s 3
IL_0467: ldfld System.Single UnityEngine.Vector3::z
IL_046C: ldarg.s 5
IL_046E: newobj System.Void UnityEngine.Vector4::.ctor(System.Single x,
System.Single y, System.Single z, System.Single w)
IL_0473: stobj UnityEngine.Vector4
IL_0478: ldarg.1
IL_0479: ldfld UnityEngine.Vector4[] PropInfo::m_lodObjectIndices
IL_047E: ldarg.1
IL_047F: ldfld System.Int32 PropInfo::m_lodCount
IL_0484: ldelema UnityEngine.Vector4
IL_0489: ldarg.s 7
IL_048B: stobj UnityEngine.Vector4
IL_0490: ldarg.1
IL_0491: ldfld UnityEngine.Vector4[] PropInfo::m_lodColors
IL_0496: ldarg.1
IL_0497: ldfld System.Int32 PropInfo::m_lodCount
IL_049C: ldelema UnityEngine.Vector4
IL_04A1: ldarga.s 6
IL_04A3: call UnityEngine.Color UnityEngine.Color::get_linear()
IL_04A8: call static UnityEngine.Vector4
UnityEngine.Color::op_Implicit(UnityEngine.Color c)
IL_04AD: stobj UnityEngine.Vector4
IL_04B2: ldarg.1
IL_04B3: ldarg.1
IL_04B4: ldfld UnityEngine.Vector3 PropInfo::m_lodMin
IL_04B9: ldarg.3
IL_04BA: call static UnityEngine.Vector3
UnityEngine.Vector3::Min(UnityEngine.Vector3 lhs, UnityEngine.Vector3 rhs)
IL_04BF: stfld UnityEngine.Vector3 PropInfo::m_lodMin
IL_04C4: ldarg.1
IL_04C5: ldarg.1
IL_04C6: ldfld UnityEngine.Vector3 PropInfo::m_lodMax
IL_04CB: ldarg.3
IL_04CC: call static UnityEngine.Vector3
UnityEngine.Vector3::Max(UnityEngine.Vector3 lhs, UnityEngine.Vector3 rhs)
IL_04D1: stfld UnityEngine.Vector3 PropInfo::m_lodMax
IL_04D6: ldarg.1
IL_04D7: dup
IL_04D8: ldfld System.Int32 PropInfo::m_lodCount
IL_04DD: ldc.i4.1
IL_04DE: add
IL_04DF: dup
IL_04E0: stloc.s 16 (System.Int32)
IL_04E2: stfld System.Int32 PropInfo::m_lodCount
IL_04E7: ldloc.s 16 (System.Int32)
IL_04E9: ldarg.1
IL_04EA: ldfld UnityEngine.Vector4[] PropInfo::m_lodLocations
IL_04EF: ldlen
IL_04F0: conv.i4
IL_04F1: bne.un => Label23
IL_04F6: ldarg.0
IL_04F7: ldarg.1
IL_04F8: call static System.Void PropInstance::RenderLod(CameraInfo
cameraInfo, PropInfo info)
IL_04FD: // end original
IL_04FD: Label0
IL_04FD: Label6
IL_04FD: Label7
IL_04FD: Label19
IL_04FD: Label23
IL_04FD: ret
DONE

### Patch: static System.Void PropInstance::RenderInstance(CameraInfo cameraInfo,


PropInfo info, InstanceID id, UnityEngine.Vector3 position, System.Single scale,
System.Single angle, UnityEngine.Color color, UnityEngine.Vector4 objectIndex,
System.Boolean active)
### Replacement: static System.Void
PropInstance::PropInstance.RenderInstance_Patch0(CameraInfo cameraInfo, PropInfo
info, InstanceID id, UnityEngine.Vector3 position, System.Single scale,
System.Single angle, UnityEngine.Color color, UnityEngine.Vector4 objectIndex,
System.Boolean active)
IL_0000: Local var 0: UnityEngine.Matrix4x4
IL_0000: Local var 1: System.Single
IL_0000: Local var 2: System.Int32
IL_0000: Local var 3: UnityEngine.Vector3
IL_0000: Local var 4: UnityEngine.Vector3
IL_0000: Local var 5: EffectInfo/SpawnArea
IL_0000: Local var 6: System.Single
IL_0000: Local var 7: LightSystem
IL_0000: Local var 8: ColossalFramework.Math.Randomizer
IL_0000: Local var 9: UnityEngine.Vector4
IL_0000: Local var 10: System.Single
IL_0000: Local var 11: System.Single
IL_0000: Local var 12: System.Single
IL_0000: Local var 13: UnityEngine.Matrix4x4
IL_0000: Local var 14: PropManager
IL_0000: Local var 15: UnityEngine.MaterialPropertyBlock
IL_0000: Local var 16: UnityEngine.Matrix4x4
IL_0000: Local var 17: PropManager
IL_0000: Local var 18: UnityEngine.MaterialPropertyBlock
IL_0000: Local var 19: System.Int32
IL_0000: // start original
IL_0000: ldarg.1
IL_0001: ldfld System.Boolean PrefabInfo::m_prefabInitialized
IL_0006: brfalse => Label0
IL_000B: ldarg.1
IL_000C: ldfld System.Boolean PropInfo::m_hasEffects
IL_0011: brfalse => Label1
IL_0016: ldarg.s 8
IL_0018: brtrue => Label2
IL_001D: ldarg.1
IL_001E: ldfld System.Boolean PropInfo::m_alwaysActive
IL_0023: brfalse => Label3
IL_0028: Label2
IL_0028: ldloca.s 0 (UnityEngine.Matrix4x4)
IL_002A: initobj UnityEngine.Matrix4x4
IL_0030: ldloca.s 0 (UnityEngine.Matrix4x4)
IL_0032: ldarg.3
IL_0033: ldarg.s 5
IL_0035: ldc.r4 57.29578
IL_003A: mul
IL_003B: call static UnityEngine.Vector3 UnityEngine.Vector3::get_down()
IL_0040: call static UnityEngine.Quaternion
UnityEngine.Quaternion::AngleAxis(System.Single angle, UnityEngine.Vector3 axis)
IL_0045: ldarg.s 4
IL_0047: ldarg.s 4
IL_0049: ldarg.s 4
IL_004B: newobj System.Void UnityEngine.Vector3::.ctor(System.Single x,
System.Single y, System.Single z)
IL_0050: call System.Void UnityEngine.Matrix4x4::SetTRS(UnityEngine.Vector3
pos, UnityEngine.Quaternion q, UnityEngine.Vector3 s)
IL_0055: call static SimulationManager
ColossalFramework.Singleton`1<SimulationManager>::get_instance()
IL_005A: ldfld System.Single SimulationManager::m_simulationTimeDelta
IL_005F: stloc.1
IL_0060: ldc.i4.0
IL_0061: stloc.2
IL_0062: br => Label4
IL_0067: Label5
IL_0067: ldloca.s 0 (UnityEngine.Matrix4x4)
IL_0069: ldarg.1
IL_006A: ldfld Effect[] PropInfo::m_effects
IL_006F: ldloc.2
IL_0070: ldelema PropInfo+Effect
IL_0075: ldfld UnityEngine.Vector3 Effect::m_position
IL_007A: call UnityEngine.Vector3
UnityEngine.Matrix4x4::MultiplyPoint(UnityEngine.Vector3 v)
IL_007F: stloc.3
IL_0080: ldloca.s 0 (UnityEngine.Matrix4x4)
IL_0082: ldarg.1
IL_0083: ldfld Effect[] PropInfo::m_effects
IL_0088: ldloc.2
IL_0089: ldelema PropInfo+Effect
IL_008E: ldfld UnityEngine.Vector3 Effect::m_direction
IL_0093: call UnityEngine.Vector3
UnityEngine.Matrix4x4::MultiplyVector(UnityEngine.Vector3 v)
IL_0098: stloc.s 4 (UnityEngine.Vector3)
IL_009A: ldloca.s 5 (EffectInfo+SpawnArea)
IL_009C: ldloc.3
IL_009D: ldloc.s 4 (UnityEngine.Vector3)
IL_009F: ldc.r4 0
IL_00A4: call System.Void SpawnArea::.ctor(UnityEngine.Vector3 position,
UnityEngine.Vector3 direction, System.Single radius)
IL_00A9: ldarg.1
IL_00AA: ldfld Effect[] PropInfo::m_effects
IL_00AF: ldloc.2
IL_00B0: ldelema PropInfo+Effect
IL_00B5: ldfld EffectInfo Effect::m_effect
IL_00BA: ldarg.2
IL_00BB: ldloc.s 5 (EffectInfo+SpawnArea)
IL_00BD: call static UnityEngine.Vector3 UnityEngine.Vector3::get_zero()
IL_00C2: ldc.r4 0
IL_00C7: ldc.r4 1
IL_00CC: ldc.r4 -1
IL_00D1: ldloc.1
IL_00D2: ldarg.0
IL_00D3: callvirt virtual System.Void EffectInfo::RenderEffect(InstanceID id,
SpawnArea area, UnityEngine.Vector3 velocity, System.Single acceleration,
System.Single magnitude, System.Single timeOffset, System.Single timeDelta,
CameraInfo cameraInfo)
IL_00D8: ldloc.2
IL_00D9: ldc.i4.1
IL_00DA: add
IL_00DB: stloc.2
IL_00DC: Label4
IL_00DC: ldloc.2
IL_00DD: ldarg.1
IL_00DE: ldfld Effect[] PropInfo::m_effects
IL_00E3: ldlen
IL_00E4: conv.i4
IL_00E5: blt => Label5
IL_00EA: Label1
IL_00EA: Label3
IL_00EA: ldarg.1
IL_00EB: ldfld System.Boolean PropInfo::m_hasRenderer
IL_00F0: brfalse => Label6
IL_00F5: ldarg.0
IL_00F6: ldfld System.Int32 CameraInfo::m_layerMask
IL_00FB: ldc.i4.1
IL_00FC: ldarg.1
IL_00FD: ldfld System.Int32 PrefabInfo::m_prefabDataLayer
IL_0102: ldc.i4.s 31
IL_0104: and
IL_0105: shl
IL_0106: and
IL_0107: brfalse => Label7
IL_010C: call static InfoManager
ColossalFramework.Singleton`1<InfoManager>::get_instance()
IL_0111: callvirt InfoMode InfoManager::get_CurrentMode()
IL_0116: brtrue => Label8
IL_011B: ldarg 2
IL_011F: call static System.Boolean
ElectricRoads.Overrides.ElectricRoadsOverrides::CheckElectrityNetForLight(InstanceI
D id)
IL_0124: brfalse => Label24
IL_0129: ldc.r4 0
IL_012E: stloc.s 6 (System.Single)
IL_0130: ldarg.s 8
IL_0132: brtrue => Label9
IL_0137: ldarg.1
IL_0138: ldfld System.Boolean PropInfo::m_alwaysActive
IL_013D: brtrue => Label10
IL_0142: Label24
IL_0142: ldarga.s 7
IL_0144: ldc.r4 0
IL_0149: stfld System.Single UnityEngine.Vector4::z
IL_014E: br => Label11
IL_0153: Label9
IL_0153: Label10
IL_0153: ldarg.1
IL_0154: ldflda UnityEngine.Vector2 PropInfo::m_illuminationOffRange
IL_0159: ldfld System.Single UnityEngine.Vector2::x
IL_015E: ldc.r4 1000
IL_0163: blt => Label12
IL_0168: ldarg.1
IL_0169: ldfld BlinkType PropInfo::m_illuminationBlinkType
IL_016E: brfalse => Label13
IL_0173: Label12
IL_0173: call static RenderManager
ColossalFramework.Singleton`1<RenderManager>::get_instance()
IL_0178: callvirt LightSystem RenderManager::get_lightSystem()
IL_017D: stloc.s 7 (LightSystem)
IL_017F: ldloca.s 8 (ColossalFramework.Math.Randomizer)
IL_0181: ldarga.s 2
IL_0183: call System.UInt32 InstanceID::get_Index()
IL_0188: call System.Void
ColossalFramework.Math.Randomizer::.ctor(System.UInt32 _seed)
IL_018D: ldarg.1
IL_018E: ldflda UnityEngine.Vector2 PropInfo::m_illuminationOffRange
IL_0193: ldfld System.Single UnityEngine.Vector2::x
IL_0198: ldloca.s 8 (ColossalFramework.Math.Randomizer)
IL_019A: ldc.i4 100000
IL_019F: call System.Int32
ColossalFramework.Math.Randomizer::Int32(System.UInt32 range)
IL_01A4: conv.r4
IL_01A5: ldc.r4 1E-05
IL_01AA: mul
IL_01AB: ldarg.1
IL_01AC: ldflda UnityEngine.Vector2 PropInfo::m_illuminationOffRange
IL_01B1: ldfld System.Single UnityEngine.Vector2::y
IL_01B6: ldarg.1
IL_01B7: ldflda UnityEngine.Vector2 PropInfo::m_illuminationOffRange
IL_01BC: ldfld System.Single UnityEngine.Vector2::x
IL_01C1: sub
IL_01C2: mul
IL_01C3: add
IL_01C4: stloc.s 6 (System.Single)
IL_01C6: ldarga.s 7
IL_01C8: ldloc.s 6 (System.Single)
IL_01CA: ldc.r4 0.01
IL_01CF: add
IL_01D0: ldloc.s 6 (System.Single)
IL_01D2: ldc.r4 0.01
IL_01D7: sub
IL_01D8: ldloc.s 7 (LightSystem)
IL_01DA: callvirt System.Single LightSystem::get_DayLightIntensity()
IL_01DF: call static System.Single MathUtils::SmoothStep(System.Single edge0,
System.Single edge1, System.Single x)
IL_01E4: stfld System.Single UnityEngine.Vector4::z
IL_01E9: ldarg.1
IL_01EA: ldfld BlinkType PropInfo::m_illuminationBlinkType
IL_01EF: brfalse => Label14
IL_01F4: ldarg.1
IL_01F5: ldfld BlinkType PropInfo::m_illuminationBlinkType
IL_01FA: call static UnityEngine.Vector4
LightEffect::GetBlinkVector(BlinkType type)
IL_01FF: stloc.s 9 (UnityEngine.Vector4)
IL_0201: ldloc.s 6 (System.Single)
IL_0203: ldc.r4 3.71
IL_0208: mul
IL_0209: call static SimulationManager
ColossalFramework.Singleton`1<SimulationManager>::get_instance()
IL_020E: ldfld System.Single SimulationManager::m_simulationTimer
IL_0213: ldloca.s 9 (UnityEngine.Vector4)
IL_0215: ldfld System.Single UnityEngine.Vector4::w
IL_021A: div
IL_021B: add
IL_021C: stloc.s 10 (System.Single)
IL_021E: ldloc.s 10 (System.Single)
IL_0220: ldloc.s 10 (System.Single)
IL_0222: call static System.Single UnityEngine.Mathf::Floor(System.Single f)
IL_0227: sub
IL_0228: ldloca.s 9 (UnityEngine.Vector4)
IL_022A: ldfld System.Single UnityEngine.Vector4::w
IL_022F: mul
IL_0230: stloc.s 10 (System.Single)
IL_0232: ldloca.s 9 (UnityEngine.Vector4)
IL_0234: ldfld System.Single UnityEngine.Vector4::x
IL_0239: ldloca.s 9 (UnityEngine.Vector4)
IL_023B: ldfld System.Single UnityEngine.Vector4::y
IL_0240: ldloc.s 10 (System.Single)
IL_0242: call static System.Single MathUtils::SmoothStep(System.Single edge0,
System.Single edge1, System.Single x)
IL_0247: stloc.s 11 (System.Single)
IL_0249: ldloca.s 9 (UnityEngine.Vector4)
IL_024B: ldfld System.Single UnityEngine.Vector4::w
IL_0250: ldloca.s 9 (UnityEngine.Vector4)
IL_0252: ldfld System.Single UnityEngine.Vector4::z
IL_0257: ldloc.s 10 (System.Single)
IL_0259: call static System.Single MathUtils::SmoothStep(System.Single edge0,
System.Single edge1, System.Single x)
IL_025E: stloc.s 12 (System.Single)
IL_0260: ldarga.s 7
IL_0262: dup
IL_0263: ldfld System.Single UnityEngine.Vector4::z
IL_0268: ldc.r4 1
IL_026D: ldloc.s 11 (System.Single)
IL_026F: ldloc.s 12 (System.Single)
IL_0271: mul
IL_0272: sub
IL_0273: mul
IL_0274: stfld System.Single UnityEngine.Vector4::z
IL_0279: Label14
IL_0279: br => Label15
IL_027E: Label13
IL_027E: ldarga.s 7
IL_0280: ldc.r4 1
IL_0285: stfld System.Single UnityEngine.Vector4::z
IL_028A: Label8
IL_028A: Label11
IL_028A: Label15
IL_028A: ldarg.0
IL_028B: brfalse => Label16
IL_0290: ldarg.0
IL_0291: ldarg.3
IL_0292: ldarg.1
IL_0293: ldfld System.Single PropInfo::m_lodRenderDistance
IL_0298: callvirt System.Boolean
CameraInfo::CheckRenderDistance(UnityEngine.Vector3 point, System.Single
maxDistance)
IL_029D: brfalse => Label17
IL_02A2: Label16
IL_02A2: ldloca.s 13 (UnityEngine.Matrix4x4)
IL_02A4: initobj UnityEngine.Matrix4x4
IL_02AA: ldloca.s 13 (UnityEngine.Matrix4x4)
IL_02AC: ldarg.3
IL_02AD: ldarg.s 5
IL_02AF: ldc.r4 57.29578
IL_02B4: mul
IL_02B5: call static UnityEngine.Vector3 UnityEngine.Vector3::get_down()
IL_02BA: call static UnityEngine.Quaternion
UnityEngine.Quaternion::AngleAxis(System.Single angle, UnityEngine.Vector3 axis)
IL_02BF: ldarg.s 4
IL_02C1: ldarg.s 4
IL_02C3: ldarg.s 4
IL_02C5: newobj System.Void UnityEngine.Vector3::.ctor(System.Single x,
System.Single y, System.Single z)
IL_02CA: call System.Void UnityEngine.Matrix4x4::SetTRS(UnityEngine.Vector3
pos, UnityEngine.Quaternion q, UnityEngine.Vector3 s)
IL_02CF: call static PropManager
ColossalFramework.Singleton`1<PropManager>::get_instance()
IL_02D4: stloc.s 14 (PropManager)
IL_02D6: ldloc.s 14 (PropManager)
IL_02D8: ldfld UnityEngine.MaterialPropertyBlock PropManager::m_materialBlock
IL_02DD: stloc.s 15 (UnityEngine.MaterialPropertyBlock)
IL_02DF: ldloc.s 15 (UnityEngine.MaterialPropertyBlock)
IL_02E1: callvirt System.Void UnityEngine.MaterialPropertyBlock::Clear()
IL_02E6: ldloc.s 15 (UnityEngine.MaterialPropertyBlock)
IL_02E8: ldloc.s 14 (PropManager)
IL_02EA: ldfld System.Int32 PropManager::ID_Color
IL_02EF: ldarg.s 6
IL_02F1: callvirt System.Void
UnityEngine.MaterialPropertyBlock::SetColor(System.Int32 nameID, UnityEngine.Color
value)
IL_02F6: ldloc.s 15 (UnityEngine.MaterialPropertyBlock)
IL_02F8: ldloc.s 14 (PropManager)
IL_02FA: ldfld System.Int32 PropManager::ID_ObjectIndex
IL_02FF: ldarg.s 7
IL_0301: callvirt System.Void
UnityEngine.MaterialPropertyBlock::SetVector(System.Int32 nameID,
UnityEngine.Vector4 value)
IL_0306: ldarg.1
IL_0307: ldfld UnityEngine.Vector4[] PropInfo::m_rollLocation
IL_030C: brfalse => Label18
IL_0311: ldarg.1
IL_0312: ldfld UnityEngine.Material PropInfo::m_material
IL_0317: ldloc.s 14 (PropManager)
IL_0319: ldfld System.Int32 PropManager::ID_RollLocation
IL_031E: ldarg.1
IL_031F: ldfld UnityEngine.Vector4[] PropInfo::m_rollLocation
IL_0324: callvirt System.Void UnityEngine.Material::SetVectorArray(System.Int32
nameID, UnityEngine.Vector4[] values)
IL_0329: ldarg.1
IL_032A: ldfld UnityEngine.Material PropInfo::m_material
IL_032F: ldloc.s 14 (PropManager)
IL_0331: ldfld System.Int32 PropManager::ID_RollParams
IL_0336: ldarg.1
IL_0337: ldfld UnityEngine.Vector4[] PropInfo::m_rollParams
IL_033C: callvirt System.Void UnityEngine.Material::SetVectorArray(System.Int32
nameID, UnityEngine.Vector4[] values)
IL_0341: Label18
IL_0341: ldloc.s 14 (PropManager)
IL_0343: ldflda DrawCallData SimulationManagerBase`2<PropManager,
PropProperties>::m_drawCallData
IL_0348: dup
IL_0349: ldfld System.Int32 DrawCallData::m_defaultCalls
IL_034E: ldc.i4.1
IL_034F: add
IL_0350: stfld System.Int32 DrawCallData::m_defaultCalls
IL_0355: ldarg.1
IL_0356: ldfld UnityEngine.Mesh PropInfo::m_mesh
IL_035B: ldloc.s 13 (UnityEngine.Matrix4x4)
IL_035D: ldarg.1
IL_035E: ldfld UnityEngine.Material PropInfo::m_material
IL_0363: ldarg.1
IL_0364: ldfld System.Int32 PrefabInfo::m_prefabDataLayer
IL_0369: ldnull
IL_036A: ldc.i4.0
IL_036B: ldloc.s 15 (UnityEngine.MaterialPropertyBlock)
IL_036D: call static System.Void
UnityEngine.Graphics::DrawMesh(UnityEngine.Mesh mesh, UnityEngine.Matrix4x4 matrix,
UnityEngine.Material material, System.Int32 layer, UnityEngine.Camera camera,
System.Int32 submeshIndex, UnityEngine.MaterialPropertyBlock properties)
IL_0372: br => Label19
IL_0377: Label17
IL_0377: ldarg.1
IL_0378: ldfld UnityEngine.Material PropInfo::m_lodMaterialCombined
IL_037D: ldnull
IL_037E: call static System.Boolean
UnityEngine.Object::op_Equality(UnityEngine.Object x, UnityEngine.Object y)
IL_0383: brfalse => Label20
IL_0388: ldloca.s 16 (UnityEngine.Matrix4x4)
IL_038A: initobj UnityEngine.Matrix4x4
IL_0390: ldloca.s 16 (UnityEngine.Matrix4x4)
IL_0392: ldarg.3
IL_0393: ldarg.s 5
IL_0395: ldc.r4 57.29578
IL_039A: mul
IL_039B: call static UnityEngine.Vector3 UnityEngine.Vector3::get_down()
IL_03A0: call static UnityEngine.Quaternion
UnityEngine.Quaternion::AngleAxis(System.Single angle, UnityEngine.Vector3 axis)
IL_03A5: ldarg.s 4
IL_03A7: ldarg.s 4
IL_03A9: ldarg.s 4
IL_03AB: newobj System.Void UnityEngine.Vector3::.ctor(System.Single x,
System.Single y, System.Single z)
IL_03B0: call System.Void UnityEngine.Matrix4x4::SetTRS(UnityEngine.Vector3
pos, UnityEngine.Quaternion q, UnityEngine.Vector3 s)
IL_03B5: call static PropManager
ColossalFramework.Singleton`1<PropManager>::get_instance()
IL_03BA: stloc.s 17 (PropManager)
IL_03BC: ldloc.s 17 (PropManager)
IL_03BE: ldfld UnityEngine.MaterialPropertyBlock PropManager::m_materialBlock
IL_03C3: stloc.s 18 (UnityEngine.MaterialPropertyBlock)
IL_03C5: ldloc.s 18 (UnityEngine.MaterialPropertyBlock)
IL_03C7: callvirt System.Void UnityEngine.MaterialPropertyBlock::Clear()
IL_03CC: ldloc.s 18 (UnityEngine.MaterialPropertyBlock)
IL_03CE: ldloc.s 17 (PropManager)
IL_03D0: ldfld System.Int32 PropManager::ID_Color
IL_03D5: ldarg.s 6
IL_03D7: callvirt System.Void
UnityEngine.MaterialPropertyBlock::SetColor(System.Int32 nameID, UnityEngine.Color
value)
IL_03DC: ldloc.s 18 (UnityEngine.MaterialPropertyBlock)
IL_03DE: ldloc.s 17 (PropManager)
IL_03E0: ldfld System.Int32 PropManager::ID_ObjectIndex
IL_03E5: ldarg.s 7
IL_03E7: callvirt System.Void
UnityEngine.MaterialPropertyBlock::SetVector(System.Int32 nameID,
UnityEngine.Vector4 value)
IL_03EC: ldarg.1
IL_03ED: ldfld UnityEngine.Vector4[] PropInfo::m_rollLocation
IL_03F2: brfalse => Label21
IL_03F7: ldarg.1
IL_03F8: ldfld UnityEngine.Material PropInfo::m_material
IL_03FD: ldloc.s 17 (PropManager)
IL_03FF: ldfld System.Int32 PropManager::ID_RollLocation
IL_0404: ldarg.1
IL_0405: ldfld UnityEngine.Vector4[] PropInfo::m_rollLocation
IL_040A: callvirt System.Void UnityEngine.Material::SetVectorArray(System.Int32
nameID, UnityEngine.Vector4[] values)
IL_040F: ldarg.1
IL_0410: ldfld UnityEngine.Material PropInfo::m_material
IL_0415: ldloc.s 17 (PropManager)
IL_0417: ldfld System.Int32 PropManager::ID_RollParams
IL_041C: ldarg.1
IL_041D: ldfld UnityEngine.Vector4[] PropInfo::m_rollParams
IL_0422: callvirt System.Void UnityEngine.Material::SetVectorArray(System.Int32
nameID, UnityEngine.Vector4[] values)
IL_0427: Label21
IL_0427: ldloc.s 17 (PropManager)
IL_0429: ldflda DrawCallData SimulationManagerBase`2<PropManager,
PropProperties>::m_drawCallData
IL_042E: dup
IL_042F: ldfld System.Int32 DrawCallData::m_defaultCalls
IL_0434: ldc.i4.1
IL_0435: add
IL_0436: stfld System.Int32 DrawCallData::m_defaultCalls
IL_043B: ldarg.1
IL_043C: ldfld UnityEngine.Mesh PropInfo::m_lodMesh
IL_0441: ldloc.s 16 (UnityEngine.Matrix4x4)
IL_0443: ldarg.1
IL_0444: ldfld UnityEngine.Material PropInfo::m_lodMaterial
IL_0449: ldarg.1
IL_044A: ldfld System.Int32 PrefabInfo::m_prefabDataLayer
IL_044F: ldnull
IL_0450: ldc.i4.0
IL_0451: ldloc.s 18 (UnityEngine.MaterialPropertyBlock)
IL_0453: call static System.Void
UnityEngine.Graphics::DrawMesh(UnityEngine.Mesh mesh, UnityEngine.Matrix4x4 matrix,
UnityEngine.Material material, System.Int32 layer, UnityEngine.Camera camera,
System.Int32 submeshIndex, UnityEngine.MaterialPropertyBlock properties)
IL_0458: br => Label22
IL_045D: Label20
IL_045D: ldarga.s 7
IL_045F: ldarg.s 4
IL_0461: stfld System.Single UnityEngine.Vector4::w
IL_0466: ldarg.1
IL_0467: ldfld UnityEngine.Vector4[] PropInfo::m_lodLocations
IL_046C: ldarg.1
IL_046D: ldfld System.Int32 PropInfo::m_lodCount
IL_0472: ldelema UnityEngine.Vector4
IL_0477: ldarga.s 3
IL_0479: ldfld System.Single UnityEngine.Vector3::x
IL_047E: ldarga.s 3
IL_0480: ldfld System.Single UnityEngine.Vector3::y
IL_0485: ldarga.s 3
IL_0487: ldfld System.Single UnityEngine.Vector3::z
IL_048C: ldarg.s 5
IL_048E: newobj System.Void UnityEngine.Vector4::.ctor(System.Single x,
System.Single y, System.Single z, System.Single w)
IL_0493: stobj UnityEngine.Vector4
IL_0498: ldarg.1
IL_0499: ldfld UnityEngine.Vector4[] PropInfo::m_lodObjectIndices
IL_049E: ldarg.1
IL_049F: ldfld System.Int32 PropInfo::m_lodCount
IL_04A4: ldelema UnityEngine.Vector4
IL_04A9: ldarg.s 7
IL_04AB: stobj UnityEngine.Vector4
IL_04B0: ldarg.1
IL_04B1: ldfld UnityEngine.Vector4[] PropInfo::m_lodColors
IL_04B6: ldarg.1
IL_04B7: ldfld System.Int32 PropInfo::m_lodCount
IL_04BC: ldelema UnityEngine.Vector4
IL_04C1: ldarga.s 6
IL_04C3: call UnityEngine.Color UnityEngine.Color::get_linear()
IL_04C8: call static UnityEngine.Vector4
UnityEngine.Color::op_Implicit(UnityEngine.Color c)
IL_04CD: stobj UnityEngine.Vector4
IL_04D2: ldarg.1
IL_04D3: ldarg.1
IL_04D4: ldfld UnityEngine.Vector3 PropInfo::m_lodMin
IL_04D9: ldarg.3
IL_04DA: call static UnityEngine.Vector3
UnityEngine.Vector3::Min(UnityEngine.Vector3 lhs, UnityEngine.Vector3 rhs)
IL_04DF: stfld UnityEngine.Vector3 PropInfo::m_lodMin
IL_04E4: ldarg.1
IL_04E5: ldarg.1
IL_04E6: ldfld UnityEngine.Vector3 PropInfo::m_lodMax
IL_04EB: ldarg.3
IL_04EC: call static UnityEngine.Vector3
UnityEngine.Vector3::Max(UnityEngine.Vector3 lhs, UnityEngine.Vector3 rhs)
IL_04F1: stfld UnityEngine.Vector3 PropInfo::m_lodMax
IL_04F6: ldarg.1
IL_04F7: dup
IL_04F8: ldfld System.Int32 PropInfo::m_lodCount
IL_04FD: ldc.i4.1
IL_04FE: add
IL_04FF: dup
IL_0500: stloc.s 19 (System.Int32)
IL_0502: stfld System.Int32 PropInfo::m_lodCount
IL_0507: ldloc.s 19 (System.Int32)
IL_0509: ldarg.1
IL_050A: ldfld UnityEngine.Vector4[] PropInfo::m_lodLocations
IL_050F: ldlen
IL_0510: conv.i4
IL_0511: bne.un => Label23
IL_0516: ldarg.0
IL_0517: ldarg.1
IL_0518: call static System.Void PropInstance::RenderLod(CameraInfo
cameraInfo, PropInfo info)
IL_051D: // end original
IL_051D: Label0
IL_051D: Label6
IL_051D: Label7
IL_051D: Label19
IL_051D: Label22
IL_051D: Label23
IL_051D: ret
DONE

### Patch: virtual System.Void LightEffect::PopulateGroupData(System.Int32 layer,


InstanceID id, UnityEngine.Vector3 pos, UnityEngine.Vector3 dir, 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
LightEffect::LightEffect.PopulateGroupData_Patch1(LightEffect this, System.Int32
layer, InstanceID id, UnityEngine.Vector3 pos, UnityEngine.Vector3 dir,
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.Boolean
IL_0000: Local var 1: UnityEngine.Vector3
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.Quaternion
IL_0000: Local var 7: UnityEngine.Vector4
IL_0000: Local var 8: UnityEngine.Vector2
IL_0000: Local var 9: ColossalFramework.Math.Randomizer
IL_0000: Local var 10: UnityEngine.Vector2
IL_0000: Local var 11: UnityEngine.Vector2
IL_0000: Local var 12: UnityEngine.Vector2
IL_0000: Local var 13: System.UInt16
IL_0000: Local var 14: UnityEngine.Vector3
IL_0000: Local var 15: UnityEngine.Color
IL_0000: Local var 16: UnityEngine.Color
IL_0000: Local var 17: System.Single
IL_0000: Local var 18: System.Single
IL_0000: Local var 19: System.Int32
IL_0000: Local var 20: System.Boolean
IL_0000: ldc.i4 0
IL_0005: stloc 20 (System.Boolean)
IL_0009: ldc.i4.1
IL_000A: stloc 20 (System.Boolean)
IL_000E: ldloc 20 (System.Boolean)
IL_0012: brfalse => Label1
IL_0017: ldarg 2
IL_001B: call static System.Boolean
ElectricRoads.Overrides.ElectricRoadsOverrides::CheckElectrityNetForLight(InstanceI
D id)
IL_0020: stloc 20 (System.Boolean)
IL_0024: Label1
IL_0024: nop
IL_0025: ldloc 20 (System.Boolean)
IL_0029: brfalse => Label0
IL_002E: // start original
IL_002E: ldarg.1
IL_002F: ldarg.0
IL_0030: ldfld System.Int32 LightEffect::m_groupLayer
IL_0035: beq => Label2
IL_003A: ldarg.1
IL_003B: ldarg.0
IL_003C: ldfld System.Int32 LightEffect::m_groupLayerFloating
IL_0041: bne.un => Label3
IL_0046: Label2
IL_0046: ldarg.1
IL_0047: ldarg.0
IL_0048: ldfld System.Int32 LightEffect::m_groupLayerFloating
IL_004D: ceq
IL_004F: stloc.0
IL_0050: ldloca.s 1 (UnityEngine.Vector3)
IL_0052: ldarg.0
IL_0053: ldfld System.Single LightEffect::m_lightRange
IL_0058: ldarg.0
IL_0059: ldfld System.Single LightEffect::m_lightRange
IL_005E: ldarg.0
IL_005F: ldfld System.Single LightEffect::m_lightRange
IL_0064: call System.Void UnityEngine.Vector3::.ctor(System.Single x,
System.Single y, System.Single z)
IL_0069: ldarg.3
IL_006A: ldloc.1
IL_006B: call static UnityEngine.Vector3
UnityEngine.Vector3::op_Subtraction(UnityEngine.Vector3 a, UnityEngine.Vector3 b)
IL_0070: stloc.2
IL_0071: ldarg.3
IL_0072: ldloc.1
IL_0073: call static UnityEngine.Vector3
UnityEngine.Vector3::op_Addition(UnityEngine.Vector3 a, UnityEngine.Vector3 b)
IL_0078: stloc.3
IL_0079: ldarg.s 9
IL_007B: ldarg.s 9
IL_007D: ldobj UnityEngine.Vector3
IL_0082: ldloc.2
IL_0083: call static UnityEngine.Vector3
UnityEngine.Vector3::Min(UnityEngine.Vector3 lhs, UnityEngine.Vector3 rhs)
IL_0088: stobj UnityEngine.Vector3
IL_008D: ldarg.s 10
IL_008F: ldarg.s 10
IL_0091: ldobj UnityEngine.Vector3
IL_0096: ldloc.3
IL_0097: call static UnityEngine.Vector3
UnityEngine.Vector3::Max(UnityEngine.Vector3 lhs, UnityEngine.Vector3 rhs)
IL_009C: stobj UnityEngine.Vector3
IL_00A1: ldarg.3
IL_00A2: ldarg.s 7
IL_00A4: call static UnityEngine.Vector3
UnityEngine.Vector3::op_Subtraction(UnityEngine.Vector3 a, UnityEngine.Vector3 b)
IL_00A9: stloc.s 4 (UnityEngine.Vector3)
IL_00AB: ldarg.s 11
IL_00AD: ldarg.s 11
IL_00AF: ldind.r4
IL_00B0: ldc.r4 30000
IL_00B5: call static System.Single UnityEngine.Mathf::Max(System.Single a,
System.Single b)
IL_00BA: stind.r4
IL_00BB: ldarg.0
IL_00BC: ldfld UnityEngine.LightType LightEffect::m_lightType
IL_00C1: brtrue => Label4
IL_00C6: ldarg.s 4
IL_00C8: call static UnityEngine.Quaternion
UnityEngine.Quaternion::LookRotation(UnityEngine.Vector3 forward)
IL_00CD: stloc.s 6 (UnityEngine.Quaternion)
IL_00CF: ldloc.s 6 (UnityEngine.Quaternion)
IL_00D1: ldarg.0
IL_00D2: ldfld UnityEngine.Quaternion LightEffect::m_lightRotation
IL_00D7: call static UnityEngine.Vector3 UnityEngine.Vector3::get_forward()
IL_00DC: call static UnityEngine.Vector3
UnityEngine.Quaternion::op_Multiply(UnityEngine.Quaternion rotation,
UnityEngine.Vector3 point)
IL_00E1: call static UnityEngine.Vector3
UnityEngine.Quaternion::op_Multiply(UnityEngine.Quaternion rotation,
UnityEngine.Vector3 point)
IL_00E6: stloc.s 5 (UnityEngine.Vector3)
IL_00E8: br => Label5
IL_00ED: Label4
IL_00ED: call static UnityEngine.Vector3 UnityEngine.Vector3::get_forward()
IL_00F2: stloc.s 5 (UnityEngine.Vector3)
IL_00F4: Label5
IL_00F4: ldloca.s 7 (UnityEngine.Vector4)
IL_00F6: ldloca.s 5 (UnityEngine.Vector3)
IL_00F8: ldfld System.Single UnityEngine.Vector3::x
IL_00FD: ldloca.s 5 (UnityEngine.Vector3)
IL_00FF: ldfld System.Single UnityEngine.Vector3::y
IL_0104: ldloca.s 5 (UnityEngine.Vector3)
IL_0106: ldfld System.Single UnityEngine.Vector3::z
IL_010B: ldc.r4 100000
IL_0110: call System.Void UnityEngine.Vector4::.ctor(System.Single x,
System.Single y, System.Single z, System.Single w)
IL_0115: ldarg.0
IL_0116: ldfld UnityEngine.LightType LightEffect::m_lightType
IL_011B: brtrue => Label6
IL_0120: ldloca.s 7 (UnityEngine.Vector4)
IL_0122: ldc.r4 0.01745329
IL_0127: ldarg.0
IL_0128: ldfld System.Single LightEffect::m_lightSpotAngle
IL_012D: mul
IL_012E: ldc.r4 0.5
IL_0133: mul
IL_0134: call static System.Single UnityEngine.Mathf::Cos(System.Single f)
IL_0139: neg
IL_013A: stfld System.Single UnityEngine.Vector4::w
IL_013F: Label6
IL_013F: ldloca.s 8 (UnityEngine.Vector2)
IL_0141: ldc.r4 1
IL_0146: ldarg.0
IL_0147: ldfld System.Single LightEffect::m_lightRange
IL_014C: ldarg.0
IL_014D: ldfld System.Single LightEffect::m_lightRange
IL_0152: mul
IL_0153: div
IL_0154: ldarg.0
IL_0155: ldfld System.Single LightEffect::m_lightIntensity
IL_015A: call System.Void UnityEngine.Vector2::.ctor(System.Single x,
System.Single y)
IL_015F: ldloca.s 9 (ColossalFramework.Math.Randomizer)
IL_0161: ldarga.s 2
IL_0163: call System.UInt32 InstanceID::get_Index()
IL_0168: call System.Void
ColossalFramework.Math.Randomizer::.ctor(System.UInt32 _seed)
IL_016D: ldloca.s 10 (UnityEngine.Vector2)
IL_016F: ldarg.0
IL_0170: ldflda UnityEngine.Vector2 LightEffect::m_offRange
IL_0175: ldfld System.Single UnityEngine.Vector2::x
IL_017A: ldloca.s 9 (ColossalFramework.Math.Randomizer)
IL_017C: ldc.i4 100000
IL_0181: call System.Int32
ColossalFramework.Math.Randomizer::Int32(System.UInt32 range)
IL_0186: conv.r4
IL_0187: ldc.r4 1E-05
IL_018C: mul
IL_018D: ldarg.0
IL_018E: ldflda UnityEngine.Vector2 LightEffect::m_offRange
IL_0193: ldfld System.Single UnityEngine.Vector2::y
IL_0198: ldarg.0
IL_0199: ldflda UnityEngine.Vector2 LightEffect::m_offRange
IL_019E: ldfld System.Single UnityEngine.Vector2::x
IL_01A3: sub
IL_01A4: mul
IL_01A5: add
IL_01A6: stfld System.Single UnityEngine.Vector2::x
IL_01AB: ldloca.s 10 (UnityEngine.Vector2)
IL_01AD: ldarg.0
IL_01AE: ldfld BlinkType LightEffect::m_blinkType
IL_01B3: conv.r4
IL_01B4: stfld System.Single UnityEngine.Vector2::y
IL_01B9: ldarg.2
IL_01BA: call static System.UInt16 EffectInfo::GetBuilding(InstanceID id)
IL_01BF: stloc.s 13 (System.UInt16)
IL_01C1: ldloc.s 13 (System.UInt16)
IL_01C3: brfalse => Label7
IL_01C8: ldloc.s 13 (System.UInt16)
IL_01CA: call static UnityEngine.Vector4
RenderManager::GetColorLocation(System.UInt32 instanceHolder)
IL_01CF: call static UnityEngine.Vector2
UnityEngine.Vector4::op_Implicit(UnityEngine.Vector4 v)
IL_01D4: stloc.s 11 (UnityEngine.Vector2)
IL_01D6: ldloc.0
IL_01D7: brfalse => Label8
IL_01DC: call static BuildingManager
ColossalFramework.Singleton`1<BuildingManager>::get_instance()
IL_01E1: ldfld Array16`1<Building> BuildingManager::m_buildings
IL_01E6: ldfld Building[] Array16`1<Building>::m_buffer
IL_01EB: ldloc.s 13 (System.UInt16)
IL_01ED: ldelema Building
IL_01F2: call UnityEngine.Vector3 Building::CalculateMeshPosition()
IL_01F7: stloc.s 14 (UnityEngine.Vector3)
IL_01F9: ldloc.s 14 (UnityEngine.Vector3)
IL_01FB: call static UnityEngine.Vector2
ColossalFramework.Math.VectorUtils::XZ(UnityEngine.Vector3 v)
IL_0200: stloc.s 12 (UnityEngine.Vector2)
IL_0202: ldarga.s 3
IL_0204: dup
IL_0205: ldfld System.Single UnityEngine.Vector3::y
IL_020A: ldloca.s 14 (UnityEngine.Vector3)
IL_020C: ldfld System.Single UnityEngine.Vector3::y
IL_0211: sub
IL_0212: stfld System.Single UnityEngine.Vector3::y
IL_0217: ldloca.s 4 (UnityEngine.Vector3)
IL_0219: dup
IL_021A: ldfld System.Single UnityEngine.Vector3::y
IL_021F: ldloca.s 14 (UnityEngine.Vector3)
IL_0221: ldfld System.Single UnityEngine.Vector3::y
IL_0226: sub
IL_0227: stfld System.Single UnityEngine.Vector3::y
IL_022C: br => Label9
IL_0231: Label8
IL_0231: call static UnityEngine.Vector2 UnityEngine.Vector2::get_zero()
IL_0236: stloc.s 12 (UnityEngine.Vector2)
IL_0238: Label9
IL_0238: br => Label10
IL_023D: Label7
IL_023D: ldsfld UnityEngine.Vector4 RenderManager::DefaultColorLocation
IL_0242: call static UnityEngine.Vector2
UnityEngine.Vector4::op_Implicit(UnityEngine.Vector4 v)
IL_0247: stloc.s 11 (UnityEngine.Vector2)
IL_0249: call static UnityEngine.Vector2 UnityEngine.Vector2::get_zero()
IL_024E: stloc.s 12 (UnityEngine.Vector2)
IL_0250: Label10
IL_0250: ldarg.0
IL_0251: ldfld UnityEngine.Color LightEffect::m_lightColor
IL_0256: stloc.s 15 (UnityEngine.Color)
IL_0258: ldarg.0
IL_0259: ldfld UnityEngine.Color[] LightEffect::m_variationColors
IL_025E: brfalse => Label11
IL_0263: ldarg.0
IL_0264: ldfld UnityEngine.Color[] LightEffect::m_variationColors
IL_0269: ldlen
IL_026A: conv.i4
IL_026B: brfalse => Label12
IL_0270: ldarg.0
IL_0271: ldfld UnityEngine.Color[] LightEffect::m_variationColors
IL_0276: ldloca.s 9 (ColossalFramework.Math.Randomizer)
IL_0278: ldarg.0
IL_0279: ldfld UnityEngine.Color[] LightEffect::m_variationColors
IL_027E: ldlen
IL_027F: conv.i4
IL_0280: call System.Int32
ColossalFramework.Math.Randomizer::Int32(System.UInt32 range)
IL_0285: ldelema UnityEngine.Color
IL_028A: ldobj UnityEngine.Color
IL_028F: stloc.s 16 (UnityEngine.Color)
IL_0291: ldloc.s 15 (UnityEngine.Color)
IL_0293: ldloc.s 16 (UnityEngine.Color)
IL_0295: ldloca.s 9 (ColossalFramework.Math.Randomizer)
IL_0297: ldc.i4 1000
IL_029C: call System.Int32
ColossalFramework.Math.Randomizer::Int32(System.UInt32 range)
IL_02A1: conv.r4
IL_02A2: ldc.r4 0.001
IL_02A7: mul
IL_02A8: call static UnityEngine.Color
UnityEngine.Color::Lerp(UnityEngine.Color a, UnityEngine.Color b, System.Single t)
IL_02AD: stloc.s 15 (UnityEngine.Color)
IL_02AF: Label11
IL_02AF: Label12
IL_02AF: ldloca.s 15 (UnityEngine.Color)
IL_02B1: call UnityEngine.Color UnityEngine.Color::get_linear()
IL_02B6: stloc.s 15 (UnityEngine.Color)
IL_02B8: ldloca.s 15 (UnityEngine.Color)
IL_02BA: ldarg.0
IL_02BB: ldfld UnityEngine.LightType LightEffect::m_lightType
IL_02C0: brtrue => Label13
IL_02C5: ldarg.0
IL_02C6: ldfld System.Single LightEffect::m_spotLeaking
IL_02CB: br => Label14
IL_02D0: Label13
IL_02D0: ldc.r4 0
IL_02D5: Label14
IL_02D5: stfld System.Single UnityEngine.Color::a
IL_02DA: ldarg.0
IL_02DB: ldfld System.Single LightEffect::m_lightRange
IL_02E0: ldc.r4 0.5235988
IL_02E5: call static System.Single UnityEngine.Mathf::Cos(System.Single f)
IL_02EA: div
IL_02EB: stloc.s 17 (System.Single)
IL_02ED: ldloc.s 17 (System.Single)
IL_02EF: ldc.r4 0.5
IL_02F4: mul
IL_02F5: stloc.s 18 (System.Single)
IL_02F7: ldarg.s 8
IL_02F9: ldfld UnityEngine.Vector3[] MeshData::m_vertices
IL_02FE: ldarg.s 5
IL_0300: ldind.i4
IL_0301: ldelema UnityEngine.Vector3
IL_0306: ldloca.s 4 (UnityEngine.Vector3)
IL_0308: ldfld System.Single UnityEngine.Vector3::x
IL_030D: ldloc.s 18 (System.Single)
IL_030F: sub
IL_0310: ldloca.s 4 (UnityEngine.Vector3)
IL_0312: ldfld System.Single UnityEngine.Vector3::y
IL_0317: ldarg.0
IL_0318: ldfld System.Single LightEffect::m_lightRange
IL_031D: add
IL_031E: ldloca.s 4 (UnityEngine.Vector3)
IL_0320: ldfld System.Single UnityEngine.Vector3::z
IL_0325: ldarg.0
IL_0326: ldfld System.Single LightEffect::m_lightRange
IL_032B: add
IL_032C: newobj System.Void UnityEngine.Vector3::.ctor(System.Single x,
System.Single y, System.Single z)
IL_0331: stobj UnityEngine.Vector3
IL_0336: ldarg.s 8
IL_0338: ldfld UnityEngine.Vector3[] MeshData::m_normals
IL_033D: ldarg.s 5
IL_033F: ldind.i4
IL_0340: ldelema UnityEngine.Vector3
IL_0345: ldarg.3
IL_0346: stobj UnityEngine.Vector3
IL_034B: ldarg.s 8
IL_034D: ldfld UnityEngine.Vector4[] MeshData::m_tangents
IL_0352: ldarg.s 5
IL_0354: ldind.i4
IL_0355: ldelema UnityEngine.Vector4
IL_035A: ldloc.s 7 (UnityEngine.Vector4)
IL_035C: stobj UnityEngine.Vector4
IL_0361: ldarg.s 8
IL_0363: ldfld UnityEngine.Vector2[] MeshData::m_uvs
IL_0368: ldarg.s 5
IL_036A: ldind.i4
IL_036B: ldelema UnityEngine.Vector2
IL_0370: ldloc.s 8 (UnityEngine.Vector2)
IL_0372: stobj UnityEngine.Vector2
IL_0377: ldarg.s 8
IL_0379: ldfld UnityEngine.Vector2[] MeshData::m_uvs2
IL_037E: ldarg.s 5
IL_0380: ldind.i4
IL_0381: ldelema UnityEngine.Vector2
IL_0386: ldloc.s 10 (UnityEngine.Vector2)
IL_0388: stobj UnityEngine.Vector2
IL_038D: ldarg.s 8
IL_038F: ldfld UnityEngine.Vector2[] MeshData::m_uvs3
IL_0394: ldarg.s 5
IL_0396: ldind.i4
IL_0397: ldelema UnityEngine.Vector2
IL_039C: ldloc.s 11 (UnityEngine.Vector2)
IL_039E: stobj UnityEngine.Vector2
IL_03A3: ldloc.0
IL_03A4: brfalse => Label15
IL_03A9: ldarg.s 8
IL_03AB: ldfld UnityEngine.Vector2[] MeshData::m_uvs4
IL_03B0: ldarg.s 5
IL_03B2: ldind.i4
IL_03B3: ldelema UnityEngine.Vector2
IL_03B8: ldloc.s 12 (UnityEngine.Vector2)
IL_03BA: stobj UnityEngine.Vector2
IL_03BF: Label15
IL_03BF: ldarg.s 8
IL_03C1: ldfld UnityEngine.Color32[] MeshData::m_colors
IL_03C6: ldarg.s 5
IL_03C8: ldind.i4
IL_03C9: ldelema UnityEngine.Color32
IL_03CE: ldloc.s 15 (UnityEngine.Color)
IL_03D0: call static UnityEngine.Color32
UnityEngine.Color32::op_Implicit(UnityEngine.Color c)
IL_03D5: stobj UnityEngine.Color32
IL_03DA: ldarg.s 5
IL_03DC: ldarg.s 5
IL_03DE: ldind.i4
IL_03DF: ldc.i4.1
IL_03E0: add
IL_03E1: stind.i4
IL_03E2: ldarg.s 8
IL_03E4: ldfld UnityEngine.Vector3[] MeshData::m_vertices
IL_03E9: ldarg.s 5
IL_03EB: ldind.i4
IL_03EC: ldelema UnityEngine.Vector3
IL_03F1: ldloca.s 4 (UnityEngine.Vector3)
IL_03F3: ldfld System.Single UnityEngine.Vector3::x
IL_03F8: ldloc.s 18 (System.Single)
IL_03FA: add
IL_03FB: ldloca.s 4 (UnityEngine.Vector3)
IL_03FD: ldfld System.Single UnityEngine.Vector3::y
IL_0402: ldarg.0
IL_0403: ldfld System.Single LightEffect::m_lightRange
IL_0408: add
IL_0409: ldloca.s 4 (UnityEngine.Vector3)
IL_040B: ldfld System.Single UnityEngine.Vector3::z
IL_0410: ldarg.0
IL_0411: ldfld System.Single LightEffect::m_lightRange
IL_0416: add
IL_0417: newobj System.Void UnityEngine.Vector3::.ctor(System.Single x,
System.Single y, System.Single z)
IL_041C: stobj UnityEngine.Vector3
IL_0421: ldarg.s 8
IL_0423: ldfld UnityEngine.Vector3[] MeshData::m_normals
IL_0428: ldarg.s 5
IL_042A: ldind.i4
IL_042B: ldelema UnityEngine.Vector3
IL_0430: ldarg.3
IL_0431: stobj UnityEngine.Vector3
IL_0436: ldarg.s 8
IL_0438: ldfld UnityEngine.Vector4[] MeshData::m_tangents
IL_043D: ldarg.s 5
IL_043F: ldind.i4
IL_0440: ldelema UnityEngine.Vector4
IL_0445: ldloc.s 7 (UnityEngine.Vector4)
IL_0447: stobj UnityEngine.Vector4
IL_044C: ldarg.s 8
IL_044E: ldfld UnityEngine.Vector2[] MeshData::m_uvs
IL_0453: ldarg.s 5
IL_0455: ldind.i4
IL_0456: ldelema UnityEngine.Vector2
IL_045B: ldloc.s 8 (UnityEngine.Vector2)
IL_045D: stobj UnityEngine.Vector2
IL_0462: ldarg.s 8
IL_0464: ldfld UnityEngine.Vector2[] MeshData::m_uvs2
IL_0469: ldarg.s 5
IL_046B: ldind.i4
IL_046C: ldelema UnityEngine.Vector2
IL_0471: ldloc.s 10 (UnityEngine.Vector2)
IL_0473: stobj UnityEngine.Vector2
IL_0478: ldarg.s 8
IL_047A: ldfld UnityEngine.Vector2[] MeshData::m_uvs3
IL_047F: ldarg.s 5
IL_0481: ldind.i4
IL_0482: ldelema UnityEngine.Vector2
IL_0487: ldloc.s 11 (UnityEngine.Vector2)
IL_0489: stobj UnityEngine.Vector2
IL_048E: ldloc.0
IL_048F: brfalse => Label16
IL_0494: ldarg.s 8
IL_0496: ldfld UnityEngine.Vector2[] MeshData::m_uvs4
IL_049B: ldarg.s 5
IL_049D: ldind.i4
IL_049E: ldelema UnityEngine.Vector2
IL_04A3: ldloc.s 12 (UnityEngine.Vector2)
IL_04A5: stobj UnityEngine.Vector2
IL_04AA: Label16
IL_04AA: ldarg.s 8
IL_04AC: ldfld UnityEngine.Color32[] MeshData::m_colors
IL_04B1: ldarg.s 5
IL_04B3: ldind.i4
IL_04B4: ldelema UnityEngine.Color32
IL_04B9: ldloc.s 15 (UnityEngine.Color)
IL_04BB: call static UnityEngine.Color32
UnityEngine.Color32::op_Implicit(UnityEngine.Color c)
IL_04C0: stobj UnityEngine.Color32
IL_04C5: ldarg.s 5
IL_04C7: ldarg.s 5
IL_04C9: ldind.i4
IL_04CA: ldc.i4.1
IL_04CB: add
IL_04CC: stind.i4
IL_04CD: ldarg.s 8
IL_04CF: ldfld UnityEngine.Vector3[] MeshData::m_vertices
IL_04D4: ldarg.s 5
IL_04D6: ldind.i4
IL_04D7: ldelema UnityEngine.Vector3
IL_04DC: ldloca.s 4 (UnityEngine.Vector3)
IL_04DE: ldfld System.Single UnityEngine.Vector3::x
IL_04E3: ldloc.s 17 (System.Single)
IL_04E5: add
IL_04E6: ldloca.s 4 (UnityEngine.Vector3)
IL_04E8: ldfld System.Single UnityEngine.Vector3::y
IL_04ED: ldloca.s 4 (UnityEngine.Vector3)
IL_04EF: ldfld System.Single UnityEngine.Vector3::z
IL_04F4: ldarg.0
IL_04F5: ldfld System.Single LightEffect::m_lightRange
IL_04FA: add
IL_04FB: newobj System.Void UnityEngine.Vector3::.ctor(System.Single x,
System.Single y, System.Single z)
IL_0500: stobj UnityEngine.Vector3
IL_0505: ldarg.s 8
IL_0507: ldfld UnityEngine.Vector3[] MeshData::m_normals
IL_050C: ldarg.s 5
IL_050E: ldind.i4
IL_050F: ldelema UnityEngine.Vector3
IL_0514: ldarg.3
IL_0515: stobj UnityEngine.Vector3
IL_051A: ldarg.s 8
IL_051C: ldfld UnityEngine.Vector4[] MeshData::m_tangents
IL_0521: ldarg.s 5
IL_0523: ldind.i4
IL_0524: ldelema UnityEngine.Vector4
IL_0529: ldloc.s 7 (UnityEngine.Vector4)
IL_052B: stobj UnityEngine.Vector4
IL_0530: ldarg.s 8
IL_0532: ldfld UnityEngine.Vector2[] MeshData::m_uvs
IL_0537: ldarg.s 5
IL_0539: ldind.i4
IL_053A: ldelema UnityEngine.Vector2
IL_053F: ldloc.s 8 (UnityEngine.Vector2)
IL_0541: stobj UnityEngine.Vector2
IL_0546: ldarg.s 8
IL_0548: ldfld UnityEngine.Vector2[] MeshData::m_uvs2
IL_054D: ldarg.s 5
IL_054F: ldind.i4
IL_0550: ldelema UnityEngine.Vector2
IL_0555: ldloc.s 10 (UnityEngine.Vector2)
IL_0557: stobj UnityEngine.Vector2
IL_055C: ldarg.s 8
IL_055E: ldfld UnityEngine.Vector2[] MeshData::m_uvs3
IL_0563: ldarg.s 5
IL_0565: ldind.i4
IL_0566: ldelema UnityEngine.Vector2
IL_056B: ldloc.s 11 (UnityEngine.Vector2)
IL_056D: stobj UnityEngine.Vector2
IL_0572: ldloc.0
IL_0573: brfalse => Label17
IL_0578: ldarg.s 8
IL_057A: ldfld UnityEngine.Vector2[] MeshData::m_uvs4
IL_057F: ldarg.s 5
IL_0581: ldind.i4
IL_0582: ldelema UnityEngine.Vector2
IL_0587: ldloc.s 12 (UnityEngine.Vector2)
IL_0589: stobj UnityEngine.Vector2
IL_058E: Label17
IL_058E: ldarg.s 8
IL_0590: ldfld UnityEngine.Color32[] MeshData::m_colors
IL_0595: ldarg.s 5
IL_0597: ldind.i4
IL_0598: ldelema UnityEngine.Color32
IL_059D: ldloc.s 15 (UnityEngine.Color)
IL_059F: call static UnityEngine.Color32
UnityEngine.Color32::op_Implicit(UnityEngine.Color c)
IL_05A4: stobj UnityEngine.Color32
IL_05A9: ldarg.s 5
IL_05AB: ldarg.s 5
IL_05AD: ldind.i4
IL_05AE: ldc.i4.1
IL_05AF: add
IL_05B0: stind.i4
IL_05B1: ldarg.s 8
IL_05B3: ldfld UnityEngine.Vector3[] MeshData::m_vertices
IL_05B8: ldarg.s 5
IL_05BA: ldind.i4
IL_05BB: ldelema UnityEngine.Vector3
IL_05C0: ldloca.s 4 (UnityEngine.Vector3)
IL_05C2: ldfld System.Single UnityEngine.Vector3::x
IL_05C7: ldloc.s 18 (System.Single)
IL_05C9: add
IL_05CA: ldloca.s 4 (UnityEngine.Vector3)
IL_05CC: ldfld System.Single UnityEngine.Vector3::y
IL_05D1: ldarg.0
IL_05D2: ldfld System.Single LightEffect::m_lightRange
IL_05D7: sub
IL_05D8: ldloca.s 4 (UnityEngine.Vector3)
IL_05DA: ldfld System.Single UnityEngine.Vector3::z
IL_05DF: ldarg.0
IL_05E0: ldfld System.Single LightEffect::m_lightRange
IL_05E5: add
IL_05E6: newobj System.Void UnityEngine.Vector3::.ctor(System.Single x,
System.Single y, System.Single z)
IL_05EB: stobj UnityEngine.Vector3
IL_05F0: ldarg.s 8
IL_05F2: ldfld UnityEngine.Vector3[] MeshData::m_normals
IL_05F7: ldarg.s 5
IL_05F9: ldind.i4
IL_05FA: ldelema UnityEngine.Vector3
IL_05FF: ldarg.3
IL_0600: stobj UnityEngine.Vector3
IL_0605: ldarg.s 8
IL_0607: ldfld UnityEngine.Vector4[] MeshData::m_tangents
IL_060C: ldarg.s 5
IL_060E: ldind.i4
IL_060F: ldelema UnityEngine.Vector4
IL_0614: ldloc.s 7 (UnityEngine.Vector4)
IL_0616: stobj UnityEngine.Vector4
IL_061B: ldarg.s 8
IL_061D: ldfld UnityEngine.Vector2[] MeshData::m_uvs
IL_0622: ldarg.s 5
IL_0624: ldind.i4
IL_0625: ldelema UnityEngine.Vector2
IL_062A: ldloc.s 8 (UnityEngine.Vector2)
IL_062C: stobj UnityEngine.Vector2
IL_0631: ldarg.s 8
IL_0633: ldfld UnityEngine.Vector2[] MeshData::m_uvs2
IL_0638: ldarg.s 5
IL_063A: ldind.i4
IL_063B: ldelema UnityEngine.Vector2
IL_0640: ldloc.s 10 (UnityEngine.Vector2)
IL_0642: stobj UnityEngine.Vector2
IL_0647: ldarg.s 8
IL_0649: ldfld UnityEngine.Vector2[] MeshData::m_uvs3
IL_064E: ldarg.s 5
IL_0650: ldind.i4
IL_0651: ldelema UnityEngine.Vector2
IL_0656: ldloc.s 11 (UnityEngine.Vector2)
IL_0658: stobj UnityEngine.Vector2
IL_065D: ldloc.0
IL_065E: brfalse => Label18
IL_0663: ldarg.s 8
IL_0665: ldfld UnityEngine.Vector2[] MeshData::m_uvs4
IL_066A: ldarg.s 5
IL_066C: ldind.i4
IL_066D: ldelema UnityEngine.Vector2
IL_0672: ldloc.s 12 (UnityEngine.Vector2)
IL_0674: stobj UnityEngine.Vector2
IL_0679: Label18
IL_0679: ldarg.s 8
IL_067B: ldfld UnityEngine.Color32[] MeshData::m_colors
IL_0680: ldarg.s 5
IL_0682: ldind.i4
IL_0683: ldelema UnityEngine.Color32
IL_0688: ldloc.s 15 (UnityEngine.Color)
IL_068A: call static UnityEngine.Color32
UnityEngine.Color32::op_Implicit(UnityEngine.Color c)
IL_068F: stobj UnityEngine.Color32
IL_0694: ldarg.s 5
IL_0696: ldarg.s 5
IL_0698: ldind.i4
IL_0699: ldc.i4.1
IL_069A: add
IL_069B: stind.i4
IL_069C: ldarg.s 8
IL_069E: ldfld UnityEngine.Vector3[] MeshData::m_vertices
IL_06A3: ldarg.s 5
IL_06A5: ldind.i4
IL_06A6: ldelema UnityEngine.Vector3
IL_06AB: ldloca.s 4 (UnityEngine.Vector3)
IL_06AD: ldfld System.Single UnityEngine.Vector3::x
IL_06B2: ldloc.s 18 (System.Single)
IL_06B4: sub
IL_06B5: ldloca.s 4 (UnityEngine.Vector3)
IL_06B7: ldfld System.Single UnityEngine.Vector3::y
IL_06BC: ldarg.0
IL_06BD: ldfld System.Single LightEffect::m_lightRange
IL_06C2: sub
IL_06C3: ldloca.s 4 (UnityEngine.Vector3)
IL_06C5: ldfld System.Single UnityEngine.Vector3::z
IL_06CA: ldarg.0
IL_06CB: ldfld System.Single LightEffect::m_lightRange
IL_06D0: add
IL_06D1: newobj System.Void UnityEngine.Vector3::.ctor(System.Single x,
System.Single y, System.Single z)
IL_06D6: stobj UnityEngine.Vector3
IL_06DB: ldarg.s 8
IL_06DD: ldfld UnityEngine.Vector3[] MeshData::m_normals
IL_06E2: ldarg.s 5
IL_06E4: ldind.i4
IL_06E5: ldelema UnityEngine.Vector3
IL_06EA: ldarg.3
IL_06EB: stobj UnityEngine.Vector3
IL_06F0: ldarg.s 8
IL_06F2: ldfld UnityEngine.Vector4[] MeshData::m_tangents
IL_06F7: ldarg.s 5
IL_06F9: ldind.i4
IL_06FA: ldelema UnityEngine.Vector4
IL_06FF: ldloc.s 7 (UnityEngine.Vector4)
IL_0701: stobj UnityEngine.Vector4
IL_0706: ldarg.s 8
IL_0708: ldfld UnityEngine.Vector2[] MeshData::m_uvs
IL_070D: ldarg.s 5
IL_070F: ldind.i4
IL_0710: ldelema UnityEngine.Vector2
IL_0715: ldloc.s 8 (UnityEngine.Vector2)
IL_0717: stobj UnityEngine.Vector2
IL_071C: ldarg.s 8
IL_071E: ldfld UnityEngine.Vector2[] MeshData::m_uvs2
IL_0723: ldarg.s 5
IL_0725: ldind.i4
IL_0726: ldelema UnityEngine.Vector2
IL_072B: ldloc.s 10 (UnityEngine.Vector2)
IL_072D: stobj UnityEngine.Vector2
IL_0732: ldarg.s 8
IL_0734: ldfld UnityEngine.Vector2[] MeshData::m_uvs3
IL_0739: ldarg.s 5
IL_073B: ldind.i4
IL_073C: ldelema UnityEngine.Vector2
IL_0741: ldloc.s 11 (UnityEngine.Vector2)
IL_0743: stobj UnityEngine.Vector2
IL_0748: ldloc.0
IL_0749: brfalse => Label19
IL_074E: ldarg.s 8
IL_0750: ldfld UnityEngine.Vector2[] MeshData::m_uvs4
IL_0755: ldarg.s 5
IL_0757: ldind.i4
IL_0758: ldelema UnityEngine.Vector2
IL_075D: ldloc.s 12 (UnityEngine.Vector2)
IL_075F: stobj UnityEngine.Vector2
IL_0764: Label19
IL_0764: ldarg.s 8
IL_0766: ldfld UnityEngine.Color32[] MeshData::m_colors
IL_076B: ldarg.s 5
IL_076D: ldind.i4
IL_076E: ldelema UnityEngine.Color32
IL_0773: ldloc.s 15 (UnityEngine.Color)
IL_0775: call static UnityEngine.Color32
UnityEngine.Color32::op_Implicit(UnityEngine.Color c)
IL_077A: stobj UnityEngine.Color32
IL_077F: ldarg.s 5
IL_0781: ldarg.s 5
IL_0783: ldind.i4
IL_0784: ldc.i4.1
IL_0785: add
IL_0786: stind.i4
IL_0787: ldarg.s 8
IL_0789: ldfld UnityEngine.Vector3[] MeshData::m_vertices
IL_078E: ldarg.s 5
IL_0790: ldind.i4
IL_0791: ldelema UnityEngine.Vector3
IL_0796: ldloca.s 4 (UnityEngine.Vector3)
IL_0798: ldfld System.Single UnityEngine.Vector3::x
IL_079D: ldloc.s 17 (System.Single)
IL_079F: sub
IL_07A0: ldloca.s 4 (UnityEngine.Vector3)
IL_07A2: ldfld System.Single UnityEngine.Vector3::y
IL_07A7: ldloca.s 4 (UnityEngine.Vector3)
IL_07A9: ldfld System.Single UnityEngine.Vector3::z
IL_07AE: ldarg.0
IL_07AF: ldfld System.Single LightEffect::m_lightRange
IL_07B4: add
IL_07B5: newobj System.Void UnityEngine.Vector3::.ctor(System.Single x,
System.Single y, System.Single z)
IL_07BA: stobj UnityEngine.Vector3
IL_07BF: ldarg.s 8
IL_07C1: ldfld UnityEngine.Vector3[] MeshData::m_normals
IL_07C6: ldarg.s 5
IL_07C8: ldind.i4
IL_07C9: ldelema UnityEngine.Vector3
IL_07CE: ldarg.3
IL_07CF: stobj UnityEngine.Vector3
IL_07D4: ldarg.s 8
IL_07D6: ldfld UnityEngine.Vector4[] MeshData::m_tangents
IL_07DB: ldarg.s 5
IL_07DD: ldind.i4
IL_07DE: ldelema UnityEngine.Vector4
IL_07E3: ldloc.s 7 (UnityEngine.Vector4)
IL_07E5: stobj UnityEngine.Vector4
IL_07EA: ldarg.s 8
IL_07EC: ldfld UnityEngine.Vector2[] MeshData::m_uvs
IL_07F1: ldarg.s 5
IL_07F3: ldind.i4
IL_07F4: ldelema UnityEngine.Vector2
IL_07F9: ldloc.s 8 (UnityEngine.Vector2)
IL_07FB: stobj UnityEngine.Vector2
IL_0800: ldarg.s 8
IL_0802: ldfld UnityEngine.Vector2[] MeshData::m_uvs2
IL_0807: ldarg.s 5
IL_0809: ldind.i4
IL_080A: ldelema UnityEngine.Vector2
IL_080F: ldloc.s 10 (UnityEngine.Vector2)
IL_0811: stobj UnityEngine.Vector2
IL_0816: ldarg.s 8
IL_0818: ldfld UnityEngine.Vector2[] MeshData::m_uvs3
IL_081D: ldarg.s 5
IL_081F: ldind.i4
IL_0820: ldelema UnityEngine.Vector2
IL_0825: ldloc.s 11 (UnityEngine.Vector2)
IL_0827: stobj UnityEngine.Vector2
IL_082C: ldloc.0
IL_082D: brfalse => Label20
IL_0832: ldarg.s 8
IL_0834: ldfld UnityEngine.Vector2[] MeshData::m_uvs4
IL_0839: ldarg.s 5
IL_083B: ldind.i4
IL_083C: ldelema UnityEngine.Vector2
IL_0841: ldloc.s 12 (UnityEngine.Vector2)
IL_0843: stobj UnityEngine.Vector2
IL_0848: Label20
IL_0848: ldarg.s 8
IL_084A: ldfld UnityEngine.Color32[] MeshData::m_colors
IL_084F: ldarg.s 5
IL_0851: ldind.i4
IL_0852: ldelema UnityEngine.Color32
IL_0857: ldloc.s 15 (UnityEngine.Color)
IL_0859: call static UnityEngine.Color32
UnityEngine.Color32::op_Implicit(UnityEngine.Color c)
IL_085E: stobj UnityEngine.Color32
IL_0863: ldarg.s 5
IL_0865: ldarg.s 5
IL_0867: ldind.i4
IL_0868: ldc.i4.1
IL_0869: add
IL_086A: stind.i4
IL_086B: ldarg.s 8
IL_086D: ldfld System.Int32[] MeshData::m_triangles
IL_0872: ldarg.s 6
IL_0874: ldarg.s 6
IL_0876: ldind.i4
IL_0877: dup
IL_0878: stloc.s 19 (System.Int32)
IL_087A: ldc.i4.1
IL_087B: add
IL_087C: stind.i4
IL_087D: ldloc.s 19 (System.Int32)
IL_087F: ldarg.s 5
IL_0881: ldind.i4
IL_0882: ldc.i4.6
IL_0883: sub
IL_0884: stelem.i4
IL_0885: ldarg.s 8
IL_0887: ldfld System.Int32[] MeshData::m_triangles
IL_088C: ldarg.s 6
IL_088E: ldarg.s 6
IL_0890: ldind.i4
IL_0891: dup
IL_0892: stloc.s 19 (System.Int32)
IL_0894: ldc.i4.1
IL_0895: add
IL_0896: stind.i4
IL_0897: ldloc.s 19 (System.Int32)
IL_0899: ldarg.s 5
IL_089B: ldind.i4
IL_089C: ldc.i4.5
IL_089D: sub
IL_089E: stelem.i4
IL_089F: ldarg.s 8
IL_08A1: ldfld System.Int32[] MeshData::m_triangles
IL_08A6: ldarg.s 6
IL_08A8: ldarg.s 6
IL_08AA: ldind.i4
IL_08AB: dup
IL_08AC: stloc.s 19 (System.Int32)
IL_08AE: ldc.i4.1
IL_08AF: add
IL_08B0: stind.i4
IL_08B1: ldloc.s 19 (System.Int32)
IL_08B3: ldarg.s 5
IL_08B5: ldind.i4
IL_08B6: ldc.i4.1
IL_08B7: sub
IL_08B8: stelem.i4
IL_08B9: ldarg.s 8
IL_08BB: ldfld System.Int32[] MeshData::m_triangles
IL_08C0: ldarg.s 6
IL_08C2: ldarg.s 6
IL_08C4: ldind.i4
IL_08C5: dup
IL_08C6: stloc.s 19 (System.Int32)
IL_08C8: ldc.i4.1
IL_08C9: add
IL_08CA: stind.i4
IL_08CB: ldloc.s 19 (System.Int32)
IL_08CD: ldarg.s 5
IL_08CF: ldind.i4
IL_08D0: ldc.i4.1
IL_08D1: sub
IL_08D2: stelem.i4
IL_08D3: ldarg.s 8
IL_08D5: ldfld System.Int32[] MeshData::m_triangles
IL_08DA: ldarg.s 6
IL_08DC: ldarg.s 6
IL_08DE: ldind.i4
IL_08DF: dup
IL_08E0: stloc.s 19 (System.Int32)
IL_08E2: ldc.i4.1
IL_08E3: add
IL_08E4: stind.i4
IL_08E5: ldloc.s 19 (System.Int32)
IL_08E7: ldarg.s 5
IL_08E9: ldind.i4
IL_08EA: ldc.i4.5
IL_08EB: sub
IL_08EC: stelem.i4
IL_08ED: ldarg.s 8
IL_08EF: ldfld System.Int32[] MeshData::m_triangles
IL_08F4: ldarg.s 6
IL_08F6: ldarg.s 6
IL_08F8: ldind.i4
IL_08F9: dup
IL_08FA: stloc.s 19 (System.Int32)
IL_08FC: ldc.i4.1
IL_08FD: add
IL_08FE: stind.i4
IL_08FF: ldloc.s 19 (System.Int32)
IL_0901: ldarg.s 5
IL_0903: ldind.i4
IL_0904: ldc.i4.4
IL_0905: sub
IL_0906: stelem.i4
IL_0907: ldarg.s 8
IL_0909: ldfld System.Int32[] MeshData::m_triangles
IL_090E: ldarg.s 6
IL_0910: ldarg.s 6
IL_0912: ldind.i4
IL_0913: dup
IL_0914: stloc.s 19 (System.Int32)
IL_0916: ldc.i4.1
IL_0917: add
IL_0918: stind.i4
IL_0919: ldloc.s 19 (System.Int32)
IL_091B: ldarg.s 5
IL_091D: ldind.i4
IL_091E: ldc.i4.1
IL_091F: sub
IL_0920: stelem.i4
IL_0921: ldarg.s 8
IL_0923: ldfld System.Int32[] MeshData::m_triangles
IL_0928: ldarg.s 6
IL_092A: ldarg.s 6
IL_092C: ldind.i4
IL_092D: dup
IL_092E: stloc.s 19 (System.Int32)
IL_0930: ldc.i4.1
IL_0931: add
IL_0932: stind.i4
IL_0933: ldloc.s 19 (System.Int32)
IL_0935: ldarg.s 5
IL_0937: ldind.i4
IL_0938: ldc.i4.4
IL_0939: sub
IL_093A: stelem.i4
IL_093B: ldarg.s 8
IL_093D: ldfld System.Int32[] MeshData::m_triangles
IL_0942: ldarg.s 6
IL_0944: ldarg.s 6
IL_0946: ldind.i4
IL_0947: dup
IL_0948: stloc.s 19 (System.Int32)
IL_094A: ldc.i4.1
IL_094B: add
IL_094C: stind.i4
IL_094D: ldloc.s 19 (System.Int32)
IL_094F: ldarg.s 5
IL_0951: ldind.i4
IL_0952: ldc.i4.2
IL_0953: sub
IL_0954: stelem.i4
IL_0955: ldarg.s 8
IL_0957: ldfld System.Int32[] MeshData::m_triangles
IL_095C: ldarg.s 6
IL_095E: ldarg.s 6
IL_0960: ldind.i4
IL_0961: dup
IL_0962: stloc.s 19 (System.Int32)
IL_0964: ldc.i4.1
IL_0965: add
IL_0966: stind.i4
IL_0967: ldloc.s 19 (System.Int32)
IL_0969: ldarg.s 5
IL_096B: ldind.i4
IL_096C: ldc.i4.2
IL_096D: sub
IL_096E: stelem.i4
IL_096F: ldarg.s 8
IL_0971: ldfld System.Int32[] MeshData::m_triangles
IL_0976: ldarg.s 6
IL_0978: ldarg.s 6
IL_097A: ldind.i4
IL_097B: dup
IL_097C: stloc.s 19 (System.Int32)
IL_097E: ldc.i4.1
IL_097F: add
IL_0980: stind.i4
IL_0981: ldloc.s 19 (System.Int32)
IL_0983: ldarg.s 5
IL_0985: ldind.i4
IL_0986: ldc.i4.4
IL_0987: sub
IL_0988: stelem.i4
IL_0989: ldarg.s 8
IL_098B: ldfld System.Int32[] MeshData::m_triangles
IL_0990: ldarg.s 6
IL_0992: ldarg.s 6
IL_0994: ldind.i4
IL_0995: dup
IL_0996: stloc.s 19 (System.Int32)
IL_0998: ldc.i4.1
IL_0999: add
IL_099A: stind.i4
IL_099B: ldloc.s 19 (System.Int32)
IL_099D: ldarg.s 5
IL_099F: ldind.i4
IL_09A0: ldc.i4.3
IL_09A1: sub
IL_09A2: stelem.i4
IL_09A3: // end original
IL_09A3: Label3
IL_09A3: Label0
IL_09A3: ret
DONE

### Patch: virtual System.Void ElectricityManager::SimulationStepImpl(System.Int32


subStep)
### Replacement: static System.Void
ElectricityManager::ElectricityManager.SimulationStepImpl_Patch0(ElectricityManager
this, System.Int32 subStep)
IL_0000: Local var 0: System.UInt32
IL_0000: Local var 1: System.Int32
IL_0000: Local var 2: NetManager
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: NetInfo
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: ElectricityManager/Cell
IL_0000: Local var 13: ElectricityManager/PulseGroup
IL_0000: Local var 14: ElectricityManager/PulseUnit
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: ElectricityManager/PulseUnit
IL_0000: Local var 19: System.UInt32
IL_0000: Local var 20: System.Int32
IL_0000: Local var 21: ElectricityManager/Cell
IL_0000: Local var 22: System.Int32
IL_0000: Local var 23: System.Int32
IL_0000: Local var 24: NetNode
IL_0000: Local var 25: System.Int32
IL_0000: Local var 26: System.UInt16
IL_0000: Local var 27: System.UInt16
IL_0000: Local var 28: System.UInt16
IL_0000: Local var 29: System.UInt16
IL_0000: Local var 30: System.Int32
IL_0000: Local var 31: ElectricityManager/PulseGroup
IL_0000: Local var 32: ElectricityManager/PulseGroup
IL_0000: Local var 33: System.Int32
IL_0000: Local var 34: ElectricityManager/PulseGroup
IL_0000: Local var 35: System.Int32
IL_0000: Local var 36: ElectricityManager/Cell
IL_0000: // start original
IL_0000: ldarg.1
IL_0001: brfalse => Label0
IL_0006: ldarg.1
IL_0007: ldc.i4 1000
IL_000C: beq => Label1
IL_0011: call static SimulationManager
ColossalFramework.Singleton`1<SimulationManager>::get_instance()
IL_0016: ldfld System.UInt32 SimulationManager::m_currentFrameIndex
IL_001B: stloc.0
IL_001C: ldloc.0
IL_001D: ldc.i4 255
IL_0022: and
IL_0023: stloc.1
IL_0024: ldloc.1
IL_0025: ldc.i4 128
IL_002A: bge => Label2
IL_002F: ldloc.1
IL_0030: brtrue => Label3
IL_0035: ldarg.0
IL_0036: ldc.i4.0
IL_0037: stfld System.Int32 ElectricityManager::m_pulseGroupCount
IL_003C: ldarg.0
IL_003D: ldc.i4.0
IL_003E: stfld System.Int32 ElectricityManager::m_pulseUnitStart
IL_0043: ldarg.0
IL_0044: ldc.i4.0
IL_0045: stfld System.Int32 ElectricityManager::m_pulseUnitEnd
IL_004A: ldarg.0
IL_004B: ldc.i4.0
IL_004C: stfld System.Int32 ElectricityManager::m_processedCells
IL_0051: ldarg.0
IL_0052: ldc.i4.0
IL_0053: stfld System.Int32 ElectricityManager::m_conductiveCells
IL_0058: ldarg.0
IL_0059: ldc.i4.1
IL_005A: stfld System.Boolean ElectricityManager::m_canContinue
IL_005F: Label3
IL_005F: call static NetManager
ColossalFramework.Singleton`1<NetManager>::get_instance()
IL_0064: stloc.2
IL_0065: ldloc.1
IL_0066: ldc.i4 32768
IL_006B: mul
IL_006C: ldc.i4.7
IL_006D: shr
IL_006E: stloc.3
IL_006F: ldloc.1
IL_0070: ldc.i4.1
IL_0071: add
IL_0072: ldc.i4 32768
IL_0077: mul
IL_0078: ldc.i4.7
IL_0079: shr
IL_007A: ldc.i4.1
IL_007B: sub
IL_007C: stloc.s 4 (System.Int32)
IL_007E: ldloc.3
IL_007F: stloc.s 5 (System.Int32)
IL_0081: br => Label4
IL_0086: Label10
IL_0086: ldloc.2
IL_0087: ldfld Array16`1<NetNode> NetManager::m_nodes
IL_008C: ldfld NetNode[] Array16`1<NetNode>::m_buffer
IL_0091: ldloc.s 5 (System.Int32)
IL_0093: ldelema NetNode
IL_0098: ldfld Flags NetNode::m_flags
IL_009D: brfalse => Label5
IL_00A2: ldloc.2
IL_00A3: ldfld Array16`1<NetNode> NetManager::m_nodes
IL_00A8: ldfld NetNode[] Array16`1<NetNode>::m_buffer
IL_00AD: ldloc.s 5 (System.Int32)
IL_00AF: ldelema NetNode
IL_00B4: call static System.Boolean
ElectricRoads.Overrides.ElectricRoadsOverrides::CheckElectricConductibility(NetNode
& node)
IL_00B9: brfalse => Label7
IL_00BE: Label6
IL_00BE: ldarg.0
IL_00BF: ldloc.s 5 (System.Int32)
IL_00C1: ldarg.0
IL_00C2: ldfld System.UInt16[] ElectricityManager::m_nodeGroups
IL_00C7: ldloc.s 5 (System.Int32)
IL_00C9: ldelem.u2
IL_00CA: ldc.i4 65535
IL_00CF: beq => Label8
IL_00D4: ldc.i4.1
IL_00D5: br => Label9
IL_00DA: Label8
IL_00DA: ldc.i4.0
IL_00DB: Label9
IL_00DB: call System.Void
ElectricityManager::UpdateNodeElectricity(System.Int32 nodeID, System.Int32 value)
IL_00E0: ldarg.0
IL_00E1: dup
IL_00E2: ldfld System.Int32 ElectricityManager::m_conductiveCells
IL_00E7: ldc.i4.1
IL_00E8: add
IL_00E9: stfld System.Int32 ElectricityManager::m_conductiveCells
IL_00EE: Label5
IL_00EE: Label7
IL_00EE: ldarg.0
IL_00EF: ldfld System.UInt16[] ElectricityManager::m_nodeGroups
IL_00F4: ldloc.s 5 (System.Int32)
IL_00F6: ldc.i4 65535
IL_00FB: stelem.i2
IL_00FC: ldloc.s 5 (System.Int32)
IL_00FE: ldc.i4.1
IL_00FF: add
IL_0100: stloc.s 5 (System.Int32)
IL_0102: Label4
IL_0102: ldloc.s 5 (System.Int32)
IL_0104: ldloc.s 4 (System.Int32)
IL_0106: ble => Label10
IL_010B: ldloc.1
IL_010C: ldc.i4 256
IL_0111: mul
IL_0112: ldc.i4.7
IL_0113: shr
IL_0114: stloc.s 7 (System.Int32)
IL_0116: ldloc.1
IL_0117: ldc.i4.1
IL_0118: add
IL_0119: ldc.i4 256
IL_011E: mul
IL_011F: ldc.i4.7
IL_0120: shr
IL_0121: ldc.i4.1
IL_0122: sub
IL_0123: stloc.s 8 (System.Int32)
IL_0125: ldloc.s 7 (System.Int32)
IL_0127: stloc.s 9 (System.Int32)
IL_0129: br => Label11
IL_012E: Label21
IL_012E: ldloc.s 9 (System.Int32)
IL_0130: ldc.i4 256
IL_0135: mul
IL_0136: stloc.s 10 (System.Int32)
IL_0138: ldc.i4.0
IL_0139: stloc.s 11 (System.Int32)
IL_013B: br => Label12
IL_0140: Label20
IL_0140: ldarg.0
IL_0141: ldfld Cell[] ElectricityManager::m_electricityGrid
IL_0146: ldloc.s 10 (System.Int32)
IL_0148: ldelema ElectricityManager+Cell
IL_014D: ldobj ElectricityManager+Cell
IL_0152: stloc.s 12 (ElectricityManager+Cell)
IL_0154: ldloca.s 12 (ElectricityManager+Cell)
IL_0156: ldfld System.Int16 Cell::m_currentCharge
IL_015B: ldc.i4.0
IL_015C: ble => Label13
IL_0161: ldarg.0
IL_0162: ldfld System.Int32 ElectricityManager::m_pulseGroupCount
IL_0167: ldc.i4 1024
IL_016C: bge => Label14
IL_0171: ldloca.s 13 (ElectricityManager+PulseGroup)
IL_0173: ldloca.s 12 (ElectricityManager+Cell)
IL_0175: ldfld System.Int16 Cell::m_currentCharge
IL_017A: conv.u4
IL_017B: stfld System.UInt32 PulseGroup::m_origCharge
IL_0180: ldloca.s 13 (ElectricityManager+PulseGroup)
IL_0182: ldloca.s 12 (ElectricityManager+Cell)
IL_0184: ldfld System.Int16 Cell::m_currentCharge
IL_0189: conv.u4
IL_018A: stfld System.UInt32 PulseGroup::m_curCharge
IL_018F: ldloca.s 13 (ElectricityManager+PulseGroup)
IL_0191: ldc.i4.0
IL_0192: stfld System.UInt16 PulseGroup::m_mergeCount
IL_0197: ldloca.s 13 (ElectricityManager+PulseGroup)
IL_0199: ldc.i4 65535
IL_019E: stfld System.UInt16 PulseGroup::m_mergeIndex
IL_01A3: ldloca.s 13 (ElectricityManager+PulseGroup)
IL_01A5: ldloc.s 11 (System.Int32)
IL_01A7: conv.u1
IL_01A8: stfld System.Byte PulseGroup::m_x
IL_01AD: ldloca.s 13 (ElectricityManager+PulseGroup)
IL_01AF: ldloc.s 9 (System.Int32)
IL_01B1: conv.u1
IL_01B2: stfld System.Byte PulseGroup::m_z
IL_01B7: ldloca.s 14 (ElectricityManager+PulseUnit)
IL_01B9: ldarg.0
IL_01BA: ldfld System.Int32 ElectricityManager::m_pulseGroupCount
IL_01BF: conv.u2
IL_01C0: stfld System.UInt16 PulseUnit::m_group
IL_01C5: ldloca.s 14 (ElectricityManager+PulseUnit)
IL_01C7: ldc.i4.0
IL_01C8: stfld System.UInt16 PulseUnit::m_node
IL_01CD: ldloca.s 14 (ElectricityManager+PulseUnit)
IL_01CF: ldloc.s 11 (System.Int32)
IL_01D1: conv.u1
IL_01D2: stfld System.Byte PulseUnit::m_x
IL_01D7: ldloca.s 14 (ElectricityManager+PulseUnit)
IL_01D9: ldloc.s 9 (System.Int32)
IL_01DB: conv.u1
IL_01DC: stfld System.Byte PulseUnit::m_z
IL_01E1: ldloca.s 12 (ElectricityManager+Cell)
IL_01E3: ldarg.0
IL_01E4: ldfld System.Int32 ElectricityManager::m_pulseGroupCount
IL_01E9: conv.u2
IL_01EA: stfld System.UInt16 Cell::m_pulseGroup
IL_01EF: ldarg.0
IL_01F0: ldfld PulseGroup[] ElectricityManager::m_pulseGroups
IL_01F5: ldarg.0
IL_01F6: dup
IL_01F7: ldfld System.Int32 ElectricityManager::m_pulseGroupCount
IL_01FC: dup
IL_01FD: stloc.s 15 (System.Int32)
IL_01FF: ldc.i4.1
IL_0200: add
IL_0201: stfld System.Int32 ElectricityManager::m_pulseGroupCount
IL_0206: ldloc.s 15 (System.Int32)
IL_0208: ldelema ElectricityManager+PulseGroup
IL_020D: ldloc.s 13 (ElectricityManager+PulseGroup)
IL_020F: stobj ElectricityManager+PulseGroup
IL_0214: ldarg.0
IL_0215: ldfld PulseUnit[] ElectricityManager::m_pulseUnits
IL_021A: ldarg.0
IL_021B: ldfld System.Int32 ElectricityManager::m_pulseUnitEnd
IL_0220: ldelema ElectricityManager+PulseUnit
IL_0225: ldloc.s 14 (ElectricityManager+PulseUnit)
IL_0227: stobj ElectricityManager+PulseUnit
IL_022C: ldarg.0
IL_022D: dup
IL_022E: ldfld System.Int32 ElectricityManager::m_pulseUnitEnd
IL_0233: ldc.i4.1
IL_0234: add
IL_0235: dup
IL_0236: stloc.s 15 (System.Int32)
IL_0238: stfld System.Int32 ElectricityManager::m_pulseUnitEnd
IL_023D: ldloc.s 15 (System.Int32)
IL_023F: ldarg.0
IL_0240: ldfld PulseUnit[] ElectricityManager::m_pulseUnits
IL_0245: ldlen
IL_0246: conv.i4
IL_0247: bne.un => Label15
IL_024C: ldarg.0
IL_024D: ldc.i4.0
IL_024E: stfld System.Int32 ElectricityManager::m_pulseUnitEnd
IL_0253: Label15
IL_0253: br => Label16
IL_0258: Label14
IL_0258: ldloca.s 12 (ElectricityManager+Cell)
IL_025A: ldc.i4 65535
IL_025F: stfld System.UInt16 Cell::m_pulseGroup
IL_0264: Label16
IL_0264: ldloca.s 12 (ElectricityManager+Cell)
IL_0266: ldc.i4.0
IL_0267: stfld System.Int16 Cell::m_currentCharge
IL_026C: ldarg.0
IL_026D: dup
IL_026E: ldfld System.Int32 ElectricityManager::m_conductiveCells
IL_0273: ldc.i4.1
IL_0274: add
IL_0275: stfld System.Int32 ElectricityManager::m_conductiveCells
IL_027A: br => Label17
IL_027F: Label13
IL_027F: ldloca.s 12 (ElectricityManager+Cell)
IL_0281: ldc.i4 65535
IL_0286: stfld System.UInt16 Cell::m_pulseGroup
IL_028B: ldloca.s 12 (ElectricityManager+Cell)
IL_028D: ldfld System.Byte Cell::m_conductivity
IL_0292: ldc.i4.s 64
IL_0294: blt => Label18
IL_0299: ldarg.0
IL_029A: dup
IL_029B: ldfld System.Int32 ElectricityManager::m_conductiveCells
IL_02A0: ldc.i4.1
IL_02A1: add
IL_02A2: stfld System.Int32 ElectricityManager::m_conductiveCells
IL_02A7: Label17
IL_02A7: Label18
IL_02A7: ldloca.s 12 (ElectricityManager+Cell)
IL_02A9: ldfld System.Boolean Cell::m_tmpElectrified
IL_02AE: ldloca.s 12 (ElectricityManager+Cell)
IL_02B0: ldfld System.Boolean Cell::m_electrified
IL_02B5: beq => Label19
IL_02BA: ldloca.s 12 (ElectricityManager+Cell)
IL_02BC: ldloca.s 12 (ElectricityManager+Cell)
IL_02BE: ldfld System.Boolean Cell::m_tmpElectrified
IL_02C3: stfld System.Boolean Cell::m_electrified
IL_02C8: Label19
IL_02C8: ldloca.s 12 (ElectricityManager+Cell)
IL_02CA: ldloca.s 12 (ElectricityManager+Cell)
IL_02CC: ldfld System.UInt16 Cell::m_pulseGroup
IL_02D1: ldc.i4 65535
IL_02D6: ceq
IL_02D8: ldc.i4.0
IL_02D9: ceq
IL_02DB: stfld System.Boolean Cell::m_tmpElectrified
IL_02E0: ldarg.0
IL_02E1: ldfld Cell[] ElectricityManager::m_electricityGrid
IL_02E6: ldloc.s 10 (System.Int32)
IL_02E8: ldelema ElectricityManager+Cell
IL_02ED: ldloc.s 12 (ElectricityManager+Cell)
IL_02EF: stobj ElectricityManager+Cell
IL_02F4: ldloc.s 10 (System.Int32)
IL_02F6: ldc.i4.1
IL_02F7: add
IL_02F8: stloc.s 10 (System.Int32)
IL_02FA: ldloc.s 11 (System.Int32)
IL_02FC: ldc.i4.1
IL_02FD: add
IL_02FE: stloc.s 11 (System.Int32)
IL_0300: Label12
IL_0300: ldloc.s 11 (System.Int32)
IL_0302: ldc.i4 256
IL_0307: blt => Label20
IL_030C: ldloc.s 9 (System.Int32)
IL_030E: ldc.i4.1
IL_030F: add
IL_0310: stloc.s 9 (System.Int32)
IL_0312: Label11
IL_0312: ldloc.s 9 (System.Int32)
IL_0314: ldloc.s 8 (System.Int32)
IL_0316: ble => Label21
IL_031B: br => Label22
IL_0320: Label2
IL_0320: ldloc.1
IL_0321: ldc.i4.s 127
IL_0323: sub
IL_0324: ldarg.0
IL_0325: ldfld System.Int32 ElectricityManager::m_conductiveCells
IL_032A: mul
IL_032B: ldc.i4.7
IL_032C: shr
IL_032D: stloc.s 16 (System.Int32)
IL_032F: ldloc.1
IL_0330: ldc.i4 255
IL_0335: bne.un => Label23
IL_033A: ldc.i4 1000000000
IL_033F: stloc.s 16 (System.Int32)
IL_0341: Label23
IL_0341: br => Label24
IL_0346: Label54
IL_0346: ldarg.0
IL_0347: ldc.i4.0
IL_0348: stfld System.Boolean ElectricityManager::m_canContinue
IL_034D: ldarg.0
IL_034E: ldfld System.Int32 ElectricityManager::m_pulseUnitEnd
IL_0353: stloc.s 17 (System.Int32)
IL_0355: br => Label25
IL_035A: Label52
IL_035A: ldarg.0
IL_035B: ldfld PulseUnit[] ElectricityManager::m_pulseUnits
IL_0360: ldarg.0
IL_0361: ldfld System.Int32 ElectricityManager::m_pulseUnitStart
IL_0366: ldelema ElectricityManager+PulseUnit
IL_036B: ldobj ElectricityManager+PulseUnit
IL_0370: stloc.s 18 (ElectricityManager+PulseUnit)
IL_0372: ldarg.0
IL_0373: dup
IL_0374: ldfld System.Int32 ElectricityManager::m_pulseUnitStart
IL_0379: ldc.i4.1
IL_037A: add
IL_037B: dup
IL_037C: stloc.s 15 (System.Int32)
IL_037E: stfld System.Int32 ElectricityManager::m_pulseUnitStart
IL_0383: ldloc.s 15 (System.Int32)
IL_0385: ldarg.0
IL_0386: ldfld PulseUnit[] ElectricityManager::m_pulseUnits
IL_038B: ldlen
IL_038C: conv.i4
IL_038D: bne.un => Label26
IL_0392: ldarg.0
IL_0393: ldc.i4.0
IL_0394: stfld System.Int32 ElectricityManager::m_pulseUnitStart
IL_0399: Label26
IL_0399: ldloca.s 18 (ElectricityManager+PulseUnit)
IL_039B: ldarg.0
IL_039C: ldloca.s 18 (ElectricityManager+PulseUnit)
IL_039E: ldfld System.UInt16 PulseUnit::m_group
IL_03A3: call System.UInt16 ElectricityManager::GetRootGroup(System.UInt16
group)
IL_03A8: stfld System.UInt16 PulseUnit::m_group
IL_03AD: ldarg.0
IL_03AE: ldfld PulseGroup[] ElectricityManager::m_pulseGroups
IL_03B3: ldloca.s 18 (ElectricityManager+PulseUnit)
IL_03B5: ldfld System.UInt16 PulseUnit::m_group
IL_03BA: ldelema ElectricityManager+PulseGroup
IL_03BF: ldfld System.UInt32 PulseGroup::m_curCharge
IL_03C4: stloc.s 19 (System.UInt32)
IL_03C6: ldloca.s 18 (ElectricityManager+PulseUnit)
IL_03C8: ldfld System.UInt16 PulseUnit::m_node
IL_03CD: brtrue => Label27
IL_03D2: ldloca.s 18 (ElectricityManager+PulseUnit)
IL_03D4: ldfld System.Byte PulseUnit::m_z
IL_03D9: ldc.i4 256
IL_03DE: mul
IL_03DF: ldloca.s 18 (ElectricityManager+PulseUnit)
IL_03E1: ldfld System.Byte PulseUnit::m_x
IL_03E6: add
IL_03E7: stloc.s 20 (System.Int32)
IL_03E9: ldarg.0
IL_03EA: ldfld Cell[] ElectricityManager::m_electricityGrid
IL_03EF: ldloc.s 20 (System.Int32)
IL_03F1: ldelema ElectricityManager+Cell
IL_03F6: ldobj ElectricityManager+Cell
IL_03FB: stloc.s 21 (ElectricityManager+Cell)
IL_03FD: ldloca.s 21 (ElectricityManager+Cell)
IL_03FF: ldfld System.Byte Cell::m_conductivity
IL_0404: brfalse => Label28
IL_0409: ldloca.s 21 (ElectricityManager+Cell)
IL_040B: ldfld System.Boolean Cell::m_tmpElectrified
IL_0410: brtrue => Label29
IL_0415: ldloc.s 19 (System.UInt32)
IL_0417: brfalse => Label30
IL_041C: ldloca.s 21 (ElectricityManager+Cell)
IL_041E: ldfld System.Int16 Cell::m_currentCharge
IL_0423: neg
IL_0424: ldc.i4.0
IL_0425: ldloc.s 19 (System.UInt32)
IL_0427: call static System.Int32 UnityEngine.Mathf::Clamp(System.Int32
value, System.Int32 min, System.Int32 max)
IL_042C: stloc.s 22 (System.Int32)
IL_042E: ldloc.s 19 (System.UInt32)
IL_0430: ldloc.s 22 (System.Int32)
IL_0432: sub
IL_0433: stloc.s 19 (System.UInt32)
IL_0435: ldloca.s 21 (ElectricityManager+Cell)
IL_0437: dup
IL_0438: ldfld System.Int16 Cell::m_currentCharge
IL_043D: ldloc.s 22 (System.Int32)
IL_043F: conv.i2
IL_0440: add
IL_0441: conv.i2
IL_0442: stfld System.Int16 Cell::m_currentCharge
IL_0447: ldloca.s 21 (ElectricityManager+Cell)
IL_0449: ldfld System.Int16 Cell::m_currentCharge
IL_044E: brtrue => Label31
IL_0453: ldloca.s 21 (ElectricityManager+Cell)
IL_0455: ldc.i4.1
IL_0456: stfld System.Boolean Cell::m_tmpElectrified
IL_045B: Label31
IL_045B: ldarg.0
IL_045C: ldfld Cell[] ElectricityManager::m_electricityGrid
IL_0461: ldloc.s 20 (System.Int32)
IL_0463: ldelema ElectricityManager+Cell
IL_0468: ldloc.s 21 (ElectricityManager+Cell)
IL_046A: stobj ElectricityManager+Cell
IL_046F: ldarg.0
IL_0470: ldfld PulseGroup[] ElectricityManager::m_pulseGroups
IL_0475: ldloca.s 18 (ElectricityManager+PulseUnit)
IL_0477: ldfld System.UInt16 PulseUnit::m_group
IL_047C: ldelema ElectricityManager+PulseGroup
IL_0481: ldloc.s 19 (System.UInt32)
IL_0483: stfld System.UInt32 PulseGroup::m_curCharge
IL_0488: Label28
IL_0488: Label29
IL_0488: Label30
IL_0488: ldloc.s 19 (System.UInt32)
IL_048A: brfalse => Label32
IL_048F: ldloca.s 21 (ElectricityManager+Cell)
IL_0491: ldfld System.Byte Cell::m_conductivity
IL_0496: ldc.i4.s 64
IL_0498: blt => Label33
IL_049D: ldc.i4.1
IL_049E: br => Label34
IL_04A3: Label33
IL_04A3: ldc.i4.s 64
IL_04A5: Label34
IL_04A5: stloc.s 23 (System.Int32)
IL_04A7: ldarg.0
IL_04A8: dup
IL_04A9: ldfld System.Int32 ElectricityManager::m_processedCells
IL_04AE: ldc.i4.1
IL_04AF: add
IL_04B0: stfld System.Int32 ElectricityManager::m_processedCells
IL_04B5: ldloca.s 18 (ElectricityManager+PulseUnit)
IL_04B7: ldfld System.Byte PulseUnit::m_z
IL_04BC: ldc.i4.0
IL_04BD: ble => Label35
IL_04C2: ldarg.0
IL_04C3: ldarg.0
IL_04C4: ldfld Cell[] ElectricityManager::m_electricityGrid
IL_04C9: ldloc.s 20 (System.Int32)
IL_04CB: ldc.i4 256
IL_04D0: sub
IL_04D1: ldelema ElectricityManager+Cell
IL_04D6: ldloca.s 18 (ElectricityManager+PulseUnit)
IL_04D8: ldfld System.UInt16 PulseUnit::m_group
IL_04DD: ldloca.s 18 (ElectricityManager+PulseUnit)
IL_04DF: ldfld System.Byte PulseUnit::m_x
IL_04E4: ldloca.s 18 (ElectricityManager+PulseUnit)
IL_04E6: ldfld System.Byte PulseUnit::m_z
IL_04EB: ldc.i4.1
IL_04EC: sub
IL_04ED: ldloc.s 23 (System.Int32)
IL_04EF: call System.Void ElectricityManager::ConductToCell(Cell& cell,
System.UInt16 group, System.Int32 x, System.Int32 z, System.Int32 limit)
IL_04F4: Label35
IL_04F4: ldloca.s 18 (ElectricityManager+PulseUnit)
IL_04F6: ldfld System.Byte PulseUnit::m_x
IL_04FB: ldc.i4.0
IL_04FC: ble => Label36
IL_0501: ldarg.0
IL_0502: ldarg.0
IL_0503: ldfld Cell[] ElectricityManager::m_electricityGrid
IL_0508: ldloc.s 20 (System.Int32)
IL_050A: ldc.i4.1
IL_050B: sub
IL_050C: ldelema ElectricityManager+Cell
IL_0511: ldloca.s 18 (ElectricityManager+PulseUnit)
IL_0513: ldfld System.UInt16 PulseUnit::m_group
IL_0518: ldloca.s 18 (ElectricityManager+PulseUnit)
IL_051A: ldfld System.Byte PulseUnit::m_x
IL_051F: ldc.i4.1
IL_0520: sub
IL_0521: ldloca.s 18 (ElectricityManager+PulseUnit)
IL_0523: ldfld System.Byte PulseUnit::m_z
IL_0528: ldloc.s 23 (System.Int32)
IL_052A: call System.Void ElectricityManager::ConductToCell(Cell& cell,
System.UInt16 group, System.Int32 x, System.Int32 z, System.Int32 limit)
IL_052F: Label36
IL_052F: ldloca.s 18 (ElectricityManager+PulseUnit)
IL_0531: ldfld System.Byte PulseUnit::m_z
IL_0536: ldc.i4 255
IL_053B: bge => Label37
IL_0540: ldarg.0
IL_0541: ldarg.0
IL_0542: ldfld Cell[] ElectricityManager::m_electricityGrid
IL_0547: ldloc.s 20 (System.Int32)
IL_0549: ldc.i4 256
IL_054E: add
IL_054F: ldelema ElectricityManager+Cell
IL_0554: ldloca.s 18 (ElectricityManager+PulseUnit)
IL_0556: ldfld System.UInt16 PulseUnit::m_group
IL_055B: ldloca.s 18 (ElectricityManager+PulseUnit)
IL_055D: ldfld System.Byte PulseUnit::m_x
IL_0562: ldloca.s 18 (ElectricityManager+PulseUnit)
IL_0564: ldfld System.Byte PulseUnit::m_z
IL_0569: ldc.i4.1
IL_056A: add
IL_056B: ldloc.s 23 (System.Int32)
IL_056D: call System.Void ElectricityManager::ConductToCell(Cell& cell,
System.UInt16 group, System.Int32 x, System.Int32 z, System.Int32 limit)
IL_0572: Label37
IL_0572: ldloca.s 18 (ElectricityManager+PulseUnit)
IL_0574: ldfld System.Byte PulseUnit::m_x
IL_0579: ldc.i4 255
IL_057E: bge => Label38
IL_0583: ldarg.0
IL_0584: ldarg.0
IL_0585: ldfld Cell[] ElectricityManager::m_electricityGrid
IL_058A: ldloc.s 20 (System.Int32)
IL_058C: ldc.i4.1
IL_058D: add
IL_058E: ldelema ElectricityManager+Cell
IL_0593: ldloca.s 18 (ElectricityManager+PulseUnit)
IL_0595: ldfld System.UInt16 PulseUnit::m_group
IL_059A: ldloca.s 18 (ElectricityManager+PulseUnit)
IL_059C: ldfld System.Byte PulseUnit::m_x
IL_05A1: ldc.i4.1
IL_05A2: add
IL_05A3: ldloca.s 18 (ElectricityManager+PulseUnit)
IL_05A5: ldfld System.Byte PulseUnit::m_z
IL_05AA: ldloc.s 23 (System.Int32)
IL_05AC: call System.Void ElectricityManager::ConductToCell(Cell& cell,
System.UInt16 group, System.Int32 x, System.Int32 z, System.Int32 limit)
IL_05B1: Label38
IL_05B1: ldarg.0
IL_05B2: ldloca.s 18 (ElectricityManager+PulseUnit)
IL_05B4: ldfld System.UInt16 PulseUnit::m_group
IL_05B9: ldloca.s 18 (ElectricityManager+PulseUnit)
IL_05BB: ldfld System.Byte PulseUnit::m_x
IL_05C0: ldloca.s 18 (ElectricityManager+PulseUnit)
IL_05C2: ldfld System.Byte PulseUnit::m_z
IL_05C7: call System.Void ElectricityManager::ConductToNodes(System.UInt16
group, System.Int32 cellX, System.Int32 cellZ)
IL_05CC: br => Label39
IL_05D1: Label32
IL_05D1: ldarg.0
IL_05D2: ldfld PulseUnit[] ElectricityManager::m_pulseUnits
IL_05D7: ldarg.0
IL_05D8: ldfld System.Int32 ElectricityManager::m_pulseUnitEnd
IL_05DD: ldelema ElectricityManager+PulseUnit
IL_05E2: ldloc.s 18 (ElectricityManager+PulseUnit)
IL_05E4: stobj ElectricityManager+PulseUnit
IL_05E9: ldarg.0
IL_05EA: dup
IL_05EB: ldfld System.Int32 ElectricityManager::m_pulseUnitEnd
IL_05F0: ldc.i4.1
IL_05F1: add
IL_05F2: dup
IL_05F3: stloc.s 15 (System.Int32)
IL_05F5: stfld System.Int32 ElectricityManager::m_pulseUnitEnd
IL_05FA: ldloc.s 15 (System.Int32)
IL_05FC: ldarg.0
IL_05FD: ldfld PulseUnit[] ElectricityManager::m_pulseUnits
IL_0602: ldlen
IL_0603: conv.i4
IL_0604: bne.un => Label40
IL_0609: ldarg.0
IL_060A: ldc.i4.0
IL_060B: stfld System.Int32 ElectricityManager::m_pulseUnitEnd
IL_0610: Label39
IL_0610: Label40
IL_0610: br => Label41
IL_0615: Label27
IL_0615: ldloc.s 19 (System.UInt32)
IL_0617: brfalse => Label42
IL_061C: ldarg.0
IL_061D: dup
IL_061E: ldfld System.Int32 ElectricityManager::m_processedCells
IL_0623: ldc.i4.1
IL_0624: add
IL_0625: stfld System.Int32 ElectricityManager::m_processedCells
IL_062A: call static NetManager
ColossalFramework.Singleton`1<NetManager>::get_instance()
IL_062F: ldfld Array16`1<NetNode> NetManager::m_nodes
IL_0634: ldfld NetNode[] Array16`1<NetNode>::m_buffer
IL_0639: ldloca.s 18 (ElectricityManager+PulseUnit)
IL_063B: ldfld System.UInt16 PulseUnit::m_node
IL_0640: ldelema NetNode
IL_0645: ldobj NetNode
IL_064A: stloc.s 24 (NetNode)
IL_064C: ldloca.s 24 (NetNode)
IL_064E: ldfld Flags NetNode::m_flags
IL_0653: brfalse => Label43
IL_0658: ldloca.s 24 (NetNode)
IL_065A: ldfld System.UInt32 NetNode::m_buildIndex
IL_065F: ldloc.0
IL_0660: ldc.i4.s -128
IL_0662: and
IL_0663: bge.un => Label44
IL_0668: ldarg.0
IL_0669: ldloca.s 18 (ElectricityManager+PulseUnit)
IL_066B: ldfld System.UInt16 PulseUnit::m_group
IL_0670: ldloca.s 24 (NetNode)
IL_0672: ldflda UnityEngine.Vector3 NetNode::m_position
IL_0677: ldfld System.Single UnityEngine.Vector3::x
IL_067C: ldloca.s 24 (NetNode)
IL_067E: ldflda UnityEngine.Vector3 NetNode::m_position
IL_0683: ldfld System.Single UnityEngine.Vector3::z
IL_0688: call System.Void ElectricityManager::ConductToCells(System.UInt16
group, System.Single worldX, System.Single worldZ)
IL_068D: ldc.i4.0
IL_068E: stloc.s 25 (System.Int32)
IL_0690: br => Label45
IL_0695: Label49
IL_0695: ldloca.s 24 (NetNode)
IL_0697: ldloc.s 25 (System.Int32)
IL_0699: call System.UInt16 NetNode::GetSegment(System.Int32 index)
IL_069E: stloc.s 26 (System.UInt16)
IL_06A0: ldloc.s 26 (System.UInt16)
IL_06A2: brfalse => Label46
IL_06A7: call static NetManager
ColossalFramework.Singleton`1<NetManager>::get_instance()
IL_06AC: ldfld Array16`1<NetSegment> NetManager::m_segments
IL_06B1: ldfld NetSegment[] Array16`1<NetSegment>::m_buffer
IL_06B6: ldloc.s 26 (System.UInt16)
IL_06B8: ldelema NetSegment
IL_06BD: ldfld System.UInt16 NetSegment::m_startNode
IL_06C2: stloc.s 27 (System.UInt16)
IL_06C4: call static NetManager
ColossalFramework.Singleton`1<NetManager>::get_instance()
IL_06C9: ldfld Array16`1<NetSegment> NetManager::m_segments
IL_06CE: ldfld NetSegment[] Array16`1<NetSegment>::m_buffer
IL_06D3: ldloc.s 26 (System.UInt16)
IL_06D5: ldelema NetSegment
IL_06DA: ldfld System.UInt16 NetSegment::m_endNode
IL_06DF: stloc.s 28 (System.UInt16)
IL_06E1: ldloc.s 27 (System.UInt16)
IL_06E3: ldloca.s 18 (ElectricityManager+PulseUnit)
IL_06E5: ldfld System.UInt16 PulseUnit::m_node
IL_06EA: bne.un => Label47
IL_06EF: ldloc.s 28 (System.UInt16)
IL_06F1: br => Label48
IL_06F6: Label47
IL_06F6: ldloc.s 27 (System.UInt16)
IL_06F8: Label48
IL_06F8: stloc.s 29 (System.UInt16)
IL_06FA: ldarg.0
IL_06FB: ldloc.s 29 (System.UInt16)
IL_06FD: call static NetManager
ColossalFramework.Singleton`1<NetManager>::get_instance()
IL_0702: ldfld Array16`1<NetNode> NetManager::m_nodes
IL_0707: ldfld NetNode[] Array16`1<NetNode>::m_buffer
IL_070C: ldloc.s 29 (System.UInt16)
IL_070E: ldelema NetNode
IL_0713: ldloca.s 18 (ElectricityManager+PulseUnit)
IL_0715: ldfld System.UInt16 PulseUnit::m_group
IL_071A: ldc.r4 -100000
IL_071F: ldc.r4 -100000
IL_0724: ldc.r4 100000
IL_0729: ldc.r4 100000
IL_072E: call System.Void ElectricityManager::ConductToNode(System.UInt16
nodeIndex, NetNode& node, System.UInt16 group, System.Single minX, System.Single
minZ, System.Single maxX, System.Single maxZ)
IL_0733: Label46
IL_0733: ldloc.s 25 (System.Int32)
IL_0735: ldc.i4.1
IL_0736: add
IL_0737: stloc.s 25 (System.Int32)
IL_0739: Label45
IL_0739: ldloc.s 25 (System.Int32)
IL_073B: ldc.i4.8
IL_073C: blt => Label49
IL_0741: Label43
IL_0741: Label44
IL_0741: br => Label50
IL_0746: Label42
IL_0746: ldarg.0
IL_0747: ldfld PulseUnit[] ElectricityManager::m_pulseUnits
IL_074C: ldarg.0
IL_074D: ldfld System.Int32 ElectricityManager::m_pulseUnitEnd
IL_0752: ldelema ElectricityManager+PulseUnit
IL_0757: ldloc.s 18 (ElectricityManager+PulseUnit)
IL_0759: stobj ElectricityManager+PulseUnit
IL_075E: ldarg.0
IL_075F: dup
IL_0760: ldfld System.Int32 ElectricityManager::m_pulseUnitEnd
IL_0765: ldc.i4.1
IL_0766: add
IL_0767: dup
IL_0768: stloc.s 15 (System.Int32)
IL_076A: stfld System.Int32 ElectricityManager::m_pulseUnitEnd
IL_076F: ldloc.s 15 (System.Int32)
IL_0771: ldarg.0
IL_0772: ldfld PulseUnit[] ElectricityManager::m_pulseUnits
IL_0777: ldlen
IL_0778: conv.i4
IL_0779: bne.un => Label51
IL_077E: ldarg.0
IL_077F: ldc.i4.0
IL_0780: stfld System.Int32 ElectricityManager::m_pulseUnitEnd
IL_0785: Label25
IL_0785: Label41
IL_0785: Label50
IL_0785: Label51
IL_0785: ldarg.0
IL_0786: ldfld System.Int32 ElectricityManager::m_pulseUnitStart
IL_078B: ldloc.s 17 (System.Int32)
IL_078D: bne.un => Label52
IL_0792: Label24
IL_0792: ldarg.0
IL_0793: ldfld System.Boolean ElectricityManager::m_canContinue
IL_0798: brfalse => Label53
IL_079D: ldarg.0
IL_079E: ldfld System.Int32 ElectricityManager::m_processedCells
IL_07A3: ldloc.s 16 (System.Int32)
IL_07A5: blt => Label54
IL_07AA: Label53
IL_07AA: ldloc.1
IL_07AB: ldc.i4 255
IL_07B0: bne.un => Label55
IL_07B5: ldc.i4.0
IL_07B6: stloc.s 30 (System.Int32)
IL_07B8: br => Label56
IL_07BD: Label58
IL_07BD: ldarg.0
IL_07BE: ldfld PulseGroup[] ElectricityManager::m_pulseGroups
IL_07C3: ldloc.s 30 (System.Int32)
IL_07C5: ldelema ElectricityManager+PulseGroup
IL_07CA: ldobj ElectricityManager+PulseGroup
IL_07CF: stloc.s 31 (ElectricityManager+PulseGroup)
IL_07D1: ldloca.s 31 (ElectricityManager+PulseGroup)
IL_07D3: ldfld System.UInt16 PulseGroup::m_mergeIndex
IL_07D8: ldc.i4 65535
IL_07DD: beq => Label57
IL_07E2: ldarg.0
IL_07E3: ldfld PulseGroup[] ElectricityManager::m_pulseGroups
IL_07E8: ldloca.s 31 (ElectricityManager+PulseGroup)
IL_07EA: ldfld System.UInt16 PulseGroup::m_mergeIndex
IL_07EF: ldelema ElectricityManager+PulseGroup
IL_07F4: ldobj ElectricityManager+PulseGroup
IL_07F9: stloc.s 32 (ElectricityManager+PulseGroup)
IL_07FB: ldloca.s 31 (ElectricityManager+PulseGroup)
IL_07FD: ldloca.s 32 (ElectricityManager+PulseGroup)
IL_07FF: ldfld System.UInt32 PulseGroup::m_curCharge
IL_0804: conv.u8
IL_0805: ldloca.s 31 (ElectricityManager+PulseGroup)
IL_0807: ldfld System.UInt32 PulseGroup::m_origCharge
IL_080C: conv.u8
IL_080D: mul
IL_080E: ldloca.s 32 (ElectricityManager+PulseGroup)
IL_0810: ldfld System.UInt32 PulseGroup::m_origCharge
IL_0815: conv.u8
IL_0816: div.un
IL_0817: conv.u4
IL_0818: stfld System.UInt32 PulseGroup::m_curCharge
IL_081D: ldloca.s 32 (ElectricityManager+PulseGroup)
IL_081F: dup
IL_0820: ldfld System.UInt32 PulseGroup::m_curCharge
IL_0825: ldloca.s 31 (ElectricityManager+PulseGroup)
IL_0827: ldfld System.UInt32 PulseGroup::m_curCharge
IL_082C: sub
IL_082D: stfld System.UInt32 PulseGroup::m_curCharge
IL_0832: ldloca.s 32 (ElectricityManager+PulseGroup)
IL_0834: dup
IL_0835: ldfld System.UInt32 PulseGroup::m_origCharge
IL_083A: ldloca.s 31 (ElectricityManager+PulseGroup)
IL_083C: ldfld System.UInt32 PulseGroup::m_origCharge
IL_0841: sub
IL_0842: stfld System.UInt32 PulseGroup::m_origCharge
IL_0847: ldarg.0
IL_0848: ldfld PulseGroup[] ElectricityManager::m_pulseGroups
IL_084D: ldloca.s 31 (ElectricityManager+PulseGroup)
IL_084F: ldfld System.UInt16 PulseGroup::m_mergeIndex
IL_0854: ldelema ElectricityManager+PulseGroup
IL_0859: ldloc.s 32 (ElectricityManager+PulseGroup)
IL_085B: stobj ElectricityManager+PulseGroup
IL_0860: ldarg.0
IL_0861: ldfld PulseGroup[] ElectricityManager::m_pulseGroups
IL_0866: ldloc.s 30 (System.Int32)
IL_0868: ldelema ElectricityManager+PulseGroup
IL_086D: ldloc.s 31 (ElectricityManager+PulseGroup)
IL_086F: stobj ElectricityManager+PulseGroup
IL_0874: Label57
IL_0874: ldloc.s 30 (System.Int32)
IL_0876: ldc.i4.1
IL_0877: add
IL_0878: stloc.s 30 (System.Int32)
IL_087A: Label56
IL_087A: ldloc.s 30 (System.Int32)
IL_087C: ldarg.0
IL_087D: ldfld System.Int32 ElectricityManager::m_pulseGroupCount
IL_0882: blt => Label58
IL_0887: ldc.i4.0
IL_0888: stloc.s 33 (System.Int32)
IL_088A: br => Label59
IL_088F: Label62
IL_088F: ldarg.0
IL_0890: ldfld PulseGroup[] ElectricityManager::m_pulseGroups
IL_0895: ldloc.s 33 (System.Int32)
IL_0897: ldelema ElectricityManager+PulseGroup
IL_089C: ldobj ElectricityManager+PulseGroup
IL_08A1: stloc.s 34 (ElectricityManager+PulseGroup)
IL_08A3: ldloca.s 34 (ElectricityManager+PulseGroup)
IL_08A5: ldfld System.UInt32 PulseGroup::m_curCharge
IL_08AA: brfalse => Label60
IL_08AF: ldloca.s 34 (ElectricityManager+PulseGroup)
IL_08B1: ldfld System.Byte PulseGroup::m_z
IL_08B6: ldc.i4 256
IL_08BB: mul
IL_08BC: ldloca.s 34 (ElectricityManager+PulseGroup)
IL_08BE: ldfld System.Byte PulseGroup::m_x
IL_08C3: add
IL_08C4: stloc.s 35 (System.Int32)
IL_08C6: ldarg.0
IL_08C7: ldfld Cell[] ElectricityManager::m_electricityGrid
IL_08CC: ldloc.s 35 (System.Int32)
IL_08CE: ldelema ElectricityManager+Cell
IL_08D3: ldobj ElectricityManager+Cell
IL_08D8: stloc.s 36 (ElectricityManager+Cell)
IL_08DA: ldloca.s 36 (ElectricityManager+Cell)
IL_08DC: ldfld System.Byte Cell::m_conductivity
IL_08E1: brfalse => Label61
IL_08E6: ldloca.s 36 (ElectricityManager+Cell)
IL_08E8: dup
IL_08E9: ldfld System.UInt16 Cell::m_extraCharge
IL_08EE: ldloca.s 34 (ElectricityManager+PulseGroup)
IL_08F0: ldfld System.UInt32 PulseGroup::m_curCharge
IL_08F5: ldc.i4 32767
IL_08FA: ldloca.s 36 (ElectricityManager+Cell)
IL_08FC: ldfld System.UInt16 Cell::m_extraCharge
IL_0901: sub
IL_0902: call static System.Int32 UnityEngine.Mathf::Min(System.Int32 a,
System.Int32 b)
IL_0907: conv.u2
IL_0908: add
IL_0909: conv.u2
IL_090A: stfld System.UInt16 Cell::m_extraCharge
IL_090F: Label61
IL_090F: ldarg.0
IL_0910: ldfld Cell[] ElectricityManager::m_electricityGrid
IL_0915: ldloc.s 35 (System.Int32)
IL_0917: ldelema ElectricityManager+Cell
IL_091C: ldloc.s 36 (ElectricityManager+Cell)
IL_091E: stobj ElectricityManager+Cell
IL_0923: Label60
IL_0923: ldloc.s 33 (System.Int32)
IL_0925: ldc.i4.1
IL_0926: add
IL_0927: stloc.s 33 (System.Int32)
IL_0929: Label59
IL_0929: ldloc.s 33 (System.Int32)
IL_092B: ldarg.0
IL_092C: ldfld System.Int32 ElectricityManager::m_pulseGroupCount
IL_0931: blt => Label62
IL_0936: // end original
IL_0936: Label0
IL_0936: Label1
IL_0936: Label22
IL_0936: Label55
IL_0936: ret
DONE

### Patch: System.Void ElectricityManager::ConductToNode(System.UInt16 nodeIndex,


NetNode& node, System.UInt16 group, System.Single minX, System.Single minZ,
System.Single maxX, System.Single maxZ)
### Replacement: static System.Void
ElectricityManager::ElectricityManager.ConductToNode_Patch0(ElectricityManager
this, System.UInt16 nodeIndex, NetNode& node, System.UInt16 group, System.Single
minX, System.Single minZ, System.Single maxX, System.Single maxZ)
IL_0000: Local var 0: NetInfo
IL_0000: Local var 1: ElectricityManager/PulseUnit
IL_0000: Local var 2: System.Int32
IL_0000: Local var 3: System.UInt16
IL_0000: // start original
IL_0000: ldarg.2
IL_0001: ldflda UnityEngine.Vector3 NetNode::m_position
IL_0006: ldfld System.Single UnityEngine.Vector3::x
IL_000B: ldarg.s 4
IL_000D: blt.un => Label0
IL_0012: ldarg.2
IL_0013: ldflda UnityEngine.Vector3 NetNode::m_position
IL_0018: ldfld System.Single UnityEngine.Vector3::z
IL_001D: ldarg.s 5
IL_001F: blt.un => Label1
IL_0024: ldarg.2
IL_0025: ldflda UnityEngine.Vector3 NetNode::m_position
IL_002A: ldfld System.Single UnityEngine.Vector3::x
IL_002F: ldarg.s 6
IL_0031: bgt.un => Label2
IL_0036: ldarg.2
IL_0037: ldflda UnityEngine.Vector3 NetNode::m_position
IL_003C: ldfld System.Single UnityEngine.Vector3::z
IL_0041: ldarg.s 7
IL_0043: bgt.un => Label3
IL_0048: ldarg.2
IL_0049: call static System.Boolean
ElectricRoads.Overrides.ElectricRoadsOverrides::CheckElectricConductibility(NetNode
& node)
IL_004E: brfalse => Label5
IL_0053: Label4
IL_0053: ldarg.0
IL_0054: ldfld System.UInt16[] ElectricityManager::m_nodeGroups
IL_0059: ldarg.1
IL_005A: ldelem.u2
IL_005B: ldc.i4 65535
IL_0060: bne.un => Label6
IL_0065: ldloca.s 1 (ElectricityManager+PulseUnit)
IL_0067: ldarg.3
IL_0068: stfld System.UInt16 PulseUnit::m_group
IL_006D: ldloca.s 1 (ElectricityManager+PulseUnit)
IL_006F: ldarg.1
IL_0070: stfld System.UInt16 PulseUnit::m_node
IL_0075: ldloca.s 1 (ElectricityManager+PulseUnit)
IL_0077: ldc.i4.0
IL_0078: stfld System.Byte PulseUnit::m_x
IL_007D: ldloca.s 1 (ElectricityManager+PulseUnit)
IL_007F: ldc.i4.0
IL_0080: stfld System.Byte PulseUnit::m_z
IL_0085: ldarg.0
IL_0086: ldfld PulseUnit[] ElectricityManager::m_pulseUnits
IL_008B: ldarg.0
IL_008C: ldfld System.Int32 ElectricityManager::m_pulseUnitEnd
IL_0091: ldelema ElectricityManager+PulseUnit
IL_0096: ldloc.1
IL_0097: stobj ElectricityManager+PulseUnit
IL_009C: ldarg.0
IL_009D: dup
IL_009E: ldfld System.Int32 ElectricityManager::m_pulseUnitEnd
IL_00A3: ldc.i4.1
IL_00A4: add
IL_00A5: dup
IL_00A6: stloc.2
IL_00A7: stfld System.Int32 ElectricityManager::m_pulseUnitEnd
IL_00AC: ldloc.2
IL_00AD: ldarg.0
IL_00AE: ldfld PulseUnit[] ElectricityManager::m_pulseUnits
IL_00B3: ldlen
IL_00B4: conv.i4
IL_00B5: bne.un => Label7
IL_00BA: ldarg.0
IL_00BB: ldc.i4.0
IL_00BC: stfld System.Int32 ElectricityManager::m_pulseUnitEnd
IL_00C1: Label7
IL_00C1: ldarg.0
IL_00C2: ldfld System.UInt16[] ElectricityManager::m_nodeGroups
IL_00C7: ldarg.1
IL_00C8: ldarg.3
IL_00C9: stelem.i2
IL_00CA: ldarg.0
IL_00CB: ldc.i4.1
IL_00CC: stfld System.Boolean ElectricityManager::m_canContinue
IL_00D1: br => Label8
IL_00D6: Label6
IL_00D6: ldarg.0
IL_00D7: ldarg.0
IL_00D8: ldfld System.UInt16[] ElectricityManager::m_nodeGroups
IL_00DD: ldarg.1
IL_00DE: ldelem.u2
IL_00DF: call System.UInt16 ElectricityManager::GetRootGroup(System.UInt16
group)
IL_00E4: stloc.3
IL_00E5: ldloc.3
IL_00E6: ldarg.3
IL_00E7: beq => Label9
IL_00EC: ldarg.0
IL_00ED: ldarg.3
IL_00EE: ldloc.3
IL_00EF: call System.Void ElectricityManager::MergeGroups(System.UInt16 root,
System.UInt16 merged)
IL_00F4: ldarg.0
IL_00F5: ldfld System.UInt16[] ElectricityManager::m_nodeGroups
IL_00FA: ldarg.1
IL_00FB: ldarg.3
IL_00FC: stelem.i2
IL_00FD: ldarg.0
IL_00FE: ldc.i4.1
IL_00FF: stfld System.Boolean ElectricityManager::m_canContinue
IL_0104: // end original
IL_0104: Label0
IL_0104: Label1
IL_0104: Label2
IL_0104: Label3
IL_0104: Label5
IL_0104: Label8
IL_0104: Label9
IL_0104: ret
DONE

### Patch: System.Void ElectricityManager::UpdateNodeElectricity(System.Int32


nodeID, System.Int32 value)
### Replacement: static System.Void
ElectricityManager::ElectricityManager.UpdateNodeElectricity_Patch2(ElectricityMana
ger this, System.Int32 nodeID, System.Int32 value)
IL_0000: Local var 0: InfoManager/InfoMode
IL_0000: Local var 1: NetManager
IL_0000: Local var 2: System.Boolean
IL_0000: Local var 3: NetNode/Flags
IL_0000: Local var 4: System.UInt16
IL_0000: Local var 5: BuildingManager
IL_0000: Local var 6: NetNode/Flags
IL_0000: Local var 7: System.Int32
IL_0000: Local var 8: System.UInt16
IL_0000: Local var 9: System.Boolean
IL_0000: Local var 10: System.Boolean
IL_0000: ldc.i4 0
IL_0005: stloc 9 (System.Boolean)
IL_0009: ldc.i4.1
IL_000A: stloc 9 (System.Boolean)
IL_000E: ldc.i4 0
IL_0013: stloc 10 (System.Boolean)
IL_0017: ldloc 9 (System.Boolean)
IL_001B: brfalse => Label1
IL_0020: ldarga 1
IL_0024: ldloca 10 (System.Boolean)
IL_0028: call static System.Void
ElectricRoads.Overrides.ElectricRoadsOverrides::PreConduct(System.Int32& nodeID,
System.Boolean& __state)
IL_002D: Label1
IL_002D: nop
IL_002E: ldloc 9 (System.Boolean)
IL_0032: brfalse => Label0
IL_0037: // start original
IL_0037: call static InfoManager
ColossalFramework.Singleton`1<InfoManager>::get_instance()
IL_003C: callvirt InfoMode InfoManager::get_CurrentMode()
IL_0041: stloc.0
IL_0042: call static NetManager
ColossalFramework.Singleton`1<NetManager>::get_instance()
IL_0047: stloc.1
IL_0048: ldc.i4.0
IL_0049: stloc.2
IL_004A: ldloc.1
IL_004B: ldfld Array16`1<NetNode> NetManager::m_nodes
IL_0050: ldfld NetNode[] Array16`1<NetNode>::m_buffer
IL_0055: ldarg.1
IL_0056: ldelema NetNode
IL_005B: ldfld Flags NetNode::m_flags
IL_0060: stloc.3
IL_0061: ldarg.1
IL_0062: call static System.Boolean
ElectricRoads.Overrides.ElectricRoadsOverrides::CheckNodeTransition(System.Int32
nodeID)
IL_0067: brfalse => Label2
IL_006C: ldloc.1
IL_006D: ldfld Array16`1<NetNode> NetManager::m_nodes
IL_0072: ldfld NetNode[] Array16`1<NetNode>::m_buffer
IL_0077: ldarg.1
IL_0078: ldelema NetNode
IL_007D: dup
IL_007E: ldfld Flags NetNode::m_flags
IL_0083: ldc.i4 -1048577
IL_0088: and
IL_0089: stfld Flags NetNode::m_flags
IL_008E: br => Label12
IL_0093: Label2
IL_0093: ldloc.1
IL_0094: ldfld Array16`1<NetNode> NetManager::m_nodes
IL_0099: ldfld NetNode[] Array16`1<NetNode>::m_buffer
IL_009E: ldarg.1
IL_009F: ldelema NetNode
IL_00A4: ldfld System.UInt16 NetNode::m_building
IL_00A9: stloc.s 4 (System.UInt16)
IL_00AB: ldloc.s 4 (System.UInt16)
IL_00AD: brfalse => Label3
IL_00B2: call static BuildingManager
ColossalFramework.Singleton`1<BuildingManager>::get_instance()
IL_00B7: stloc.s 5 (BuildingManager)
IL_00B9: ldloc.s 5 (BuildingManager)
IL_00BB: ldfld Array16`1<Building> BuildingManager::m_buildings
IL_00C0: ldfld Building[] Array16`1<Building>::m_buffer
IL_00C5: ldloc.s 4 (System.UInt16)
IL_00C7: ldelema Building
IL_00CC: ldfld System.UInt16 Building::m_electricityBuffer
IL_00D1: ldarg.2
IL_00D2: beq => Label4
IL_00D7: ldloc.s 5 (BuildingManager)
IL_00D9: ldfld Array16`1<Building> BuildingManager::m_buildings
IL_00DE: ldfld Building[] Array16`1<Building>::m_buffer
IL_00E3: ldloc.s 4 (System.UInt16)
IL_00E5: ldelema Building
IL_00EA: ldarg.2
IL_00EB: conv.u2
IL_00EC: stfld System.UInt16 Building::m_electricityBuffer
IL_00F1: ldloc.0
IL_00F2: ldc.i4.1
IL_00F3: ceq
IL_00F5: stloc.2
IL_00F6: Label4
IL_00F6: ldloc.2
IL_00F7: brfalse => Label5
IL_00FC: ldloc.s 5 (BuildingManager)
IL_00FE: ldloc.s 4 (System.UInt16)
IL_0100: callvirt System.Void BuildingManager::UpdateBuildingColors(System.UInt16
building)
IL_0105: Label3
IL_0105: Label5
IL_0105: ldloc.3
IL_0106: ldc.i4 -67108865
IL_010B: and
IL_010C: stloc.s 6 (NetNode+Flags)
IL_010E: ldarg.2
IL_010F: brfalse => Label6
IL_0114: ldloc.s 6 (NetNode+Flags)
IL_0116: ldc.i4 67108864
IL_011B: or
IL_011C: stloc.s 6 (NetNode+Flags)
IL_011E: Label6
IL_011E: ldloc.s 6 (NetNode+Flags)
IL_0120: ldloc.3
IL_0121: beq => Label7
IL_0126: ldloc.1
IL_0127: ldfld Array16`1<NetNode> NetManager::m_nodes
IL_012C: ldfld NetNode[] Array16`1<NetNode>::m_buffer
IL_0131: ldarg.1
IL_0132: ldelema NetNode
IL_0137: ldloc.s 6 (NetNode+Flags)
IL_0139: stfld Flags NetNode::m_flags
IL_013E: ldloc.0
IL_013F: ldc.i4.1
IL_0140: ceq
IL_0142: stloc.2
IL_0143: Label7
IL_0143: ldloc.2
IL_0144: brfalse => Label8
IL_0149: ldloc.1
IL_014A: ldarg.1
IL_014B: conv.u2
IL_014C: callvirt System.Void NetManager::UpdateNodeColors(System.UInt16 node)
IL_0151: ldc.i4.0
IL_0152: stloc.s 7 (System.Int32)
IL_0154: br => Label9
IL_0159: Label11
IL_0159: ldloc.1
IL_015A: ldfld Array16`1<NetNode> NetManager::m_nodes
IL_015F: ldfld NetNode[] Array16`1<NetNode>::m_buffer
IL_0164: ldarg.1
IL_0165: ldelema NetNode
IL_016A: ldloc.s 7 (System.Int32)
IL_016C: call System.UInt16 NetNode::GetSegment(System.Int32 index)
IL_0171: stloc.s 8 (System.UInt16)
IL_0173: ldloc.s 8 (System.UInt16)
IL_0175: brfalse => Label10
IL_017A: ldloc.1
IL_017B: ldloc.s 8 (System.UInt16)
IL_017D: callvirt System.Void NetManager::UpdateSegmentColors(System.UInt16
segment)
IL_0182: Label10
IL_0182: ldloc.s 7 (System.Int32)
IL_0184: ldc.i4.1
IL_0185: add
IL_0186: stloc.s 7 (System.Int32)
IL_0188: Label9
IL_0188: ldloc.s 7 (System.Int32)
IL_018A: ldc.i4.8
IL_018B: blt => Label11
IL_0190: // end original
IL_0190: Label8
IL_0190: Label12
IL_0190: Label0
IL_0190: ldarg 1
IL_0194: ldloc 10 (System.Boolean)
IL_0198: call static System.Void
ElectricRoads.Overrides.ElectricRoadsOverrides::PostConduct(System.Int32 nodeID,
System.Boolean __state)
IL_019D: ret
DONE

### Patch: virtual System.Void ColossalFramework.UI.UIView::Start()


### Replacement: static System.Void
ColossalFramework.UI.UIView::ColossalFramework.UI.UIView.Start_Patch0(ColossalFrame
work.UI.UIView this)
IL_0000: Local var 0:
ColossalFramework.PoolList`1<ColossalFramework.UI.UIComponent>
IL_0000: Local var 1: ColossalFramework.UI.UIComponent
IL_0000: Local var 2:
System.Collections.Generic.IEnumerator`1<ColossalFramework.UI.UIComponent>
IL_0000: // start original
IL_0000: ldarg.0
IL_0001: ldc.i4.0
IL_0002: stfld System.Int32 ColossalFramework.UI.UIView::m_FramesRendered
IL_0007: ldarg.0
IL_0008: call System.Void
ColossalFramework.UI.UIView::InvalidateAllComponents()
IL_000D: ldarg.0
IL_000E: ldfld UnityEngine.MeshRenderer
ColossalFramework.UI.UIView::m_MeshRenderer
IL_0013: ldnull
IL_0014: call static System.Boolean
UnityEngine.Object::op_Inequality(UnityEngine.Object x, UnityEngine.Object y)
IL_0019: brfalse => Label0
IL_001E: ldarg.0
IL_001F: ldfld UnityEngine.MeshRenderer
ColossalFramework.UI.UIView::m_MeshRenderer
IL_0024: ldc.i4.1
IL_0025: callvirt System.Void UnityEngine.Renderer::set_enabled(System.Boolean
value)
IL_002A: Label0
IL_002A: ldarg.0
IL_002B: call ColossalFramework.PoolList`1<ColossalFramework.UI.UIComponent>
ColossalFramework.UI.UIView::GetTopLevelComponents()
IL_0030: stloc.0
.try
{
IL_0031: ldloc.0
IL_0032: callvirt virtual
System.Collections.Generic.IEnumerator`1<ColossalFramework.UI.UIComponent>
ColossalFramework.PoolList`1<ColossalFramework.UI.UIComponent>::GetEnumerator()
IL_0037: stloc.2
.try
{
IL_0038: br => Label1
IL_003D: Label2
IL_003D: ldloc.2
IL_003E: callvirt abstract virtual ColossalFramework.UI.UIComponent
System.Collections.Generic.IEnumerator`1<ColossalFramework.UI.UIComponent>::get_Cur
rent()
IL_0043: stloc.1
IL_0044: ldloc.1
IL_0045: ldc.i4.1
IL_0046: callvirt System.Void
ColossalFramework.UI.UIComponent::InitializeParentVisibilityCache(System.Boolean
parentVisible)
IL_004B: Label1
IL_004B: ldloc.2
IL_004C: callvirt abstract virtual System.Boolean
System.Collections.IEnumerator::MoveNext()
IL_0051: brtrue => Label2
IL_0056: leave => Label3
IL_005B: leave => (autogenerated)
} // end try
.finally
{
IL_0060: ldloc.2
IL_0061: brfalse => Label4
IL_0066: ldloc.2
IL_0067: callvirt abstract virtual System.Void
System.IDisposable::Dispose()
IL_006C: Label4
IL_006C: endfinally
IL_006D: leave => (autogenerated)
} // end handler
IL_006E: Label3
IL_006E: leave => Label5
IL_0073: leave => (autogenerated)
} // end try
.finally
{
IL_0078: ldloc.0
IL_0079: brfalse => Label6
IL_007E: ldloc.0
IL_007F: callvirt abstract virtual System.Void
System.IDisposable::Dispose()
IL_0084: Label6
IL_0084: endfinally
IL_0085: leave => (autogenerated)
} // end handler
IL_0086: Label5
IL_0086: ldarg.0
IL_0087: ldc.i4.1
IL_0088: stfld System.Boolean
ColossalFramework.UI.UIView::m_VisibilityCacheInitialized
IL_008D: // end original
IL_008D: ret
DONE

### Patch: virtual UnityEngine.Color NetAI::GetColor(System.UInt16 nodeID, NetNode&


data, InfoMode infoMode, SubInfoMode subInfoMode)
### Replacement: static UnityEngine.Color NetAI::NetAI.GetColor_Patch0(NetAI this,
System.UInt16 nodeID, NetNode& data, InfoMode infoMode, SubInfoMode subInfoMode)
IL_0000: // start original
IL_0000: ldarg.3
IL_0001: brfalse => Label0
IL_0006: call static InfoManager
ColossalFramework.Singleton`1<InfoManager>::get_instance()
IL_000B: ldfld InfoProperties SimulationManagerBase`2<InfoManager,
InfoProperties>::m_properties
IL_0010: ldfld UnityEngine.Color InfoProperties::m_neutralColor
IL_0015: br => Label1
IL_001A: Label0
IL_001A: ldarg.0
IL_001B: ldfld NetInfo NetAI::m_info
IL_0020: ldfld UnityEngine.Color NetInfo::m_color
IL_0025: // end original
IL_0025: Label1
IL_0025: ret
DONE

### Patch: virtual UnityEngine.Color NetAI::GetColor(System.UInt16 segmentID,


NetSegment& data, InfoMode infoMode, SubInfoMode subInfoMode)
### Replacement: static UnityEngine.Color NetAI::NetAI.GetColor_Patch0(NetAI this,
System.UInt16 segmentID, NetSegment& data, InfoMode infoMode, SubInfoMode
subInfoMode)
IL_0000: // start original
IL_0000: ldarg.3
IL_0001: brfalse => Label0
IL_0006: call static InfoManager
ColossalFramework.Singleton`1<InfoManager>::get_instance()
IL_000B: ldfld InfoProperties SimulationManagerBase`2<InfoManager,
InfoProperties>::m_properties
IL_0010: ldfld UnityEngine.Color InfoProperties::m_neutralColor
IL_0015: br => Label1
IL_001A: Label0
IL_001A: ldarg.0
IL_001B: ldfld NetInfo NetAI::m_info
IL_0020: ldfld UnityEngine.Color NetInfo::m_color
IL_0025: // end original
IL_0025: Label1
IL_0025: ret
DONE

### Patch: System.Void ElectricityManager::UpdateNodeElectricity(System.Int32


nodeID, System.Int32 value)
### Replacement: static System.Void
ElectricityManager::ElectricityManager.UpdateNodeElectricity_Patch0(ElectricityMana
ger this, System.Int32 nodeID, System.Int32 value)
IL_0000: Local var 0: InfoManager/InfoMode
IL_0000: Local var 1: NetManager
IL_0000: Local var 2: System.Boolean
IL_0000: Local var 3: NetNode/Flags
IL_0000: Local var 4: System.UInt16
IL_0000: Local var 5: BuildingManager
IL_0000: Local var 6: NetNode/Flags
IL_0000: Local var 7: System.Int32
IL_0000: Local var 8: System.UInt16
IL_0000: // start original
IL_0000: call static InfoManager
ColossalFramework.Singleton`1<InfoManager>::get_instance()
IL_0005: callvirt InfoMode InfoManager::get_CurrentMode()
IL_000A: stloc.0
IL_000B: call static NetManager
ColossalFramework.Singleton`1<NetManager>::get_instance()
IL_0010: stloc.1
IL_0011: ldc.i4.0
IL_0012: stloc.2
IL_0013: ldloc.1
IL_0014: ldfld Array16`1<NetNode> NetManager::m_nodes
IL_0019: ldfld NetNode[] Array16`1<NetNode>::m_buffer
IL_001E: ldarg.1
IL_001F: ldelema NetNode
IL_0024: ldfld Flags NetNode::m_flags
IL_0029: stloc.3
IL_002A: ldloc.3
IL_002B: ldc.i4 1048576
IL_0030: and
IL_0031: brfalse => Label0
IL_0036: ldloc.1
IL_0037: ldfld Array16`1<NetNode> NetManager::m_nodes
IL_003C: ldfld NetNode[] Array16`1<NetNode>::m_buffer
IL_0041: ldarg.1
IL_0042: ldelema NetNode
IL_0047: dup
IL_0048: ldfld Flags NetNode::m_flags
IL_004D: ldc.i4 -1048577
IL_0052: and
IL_0053: stfld Flags NetNode::m_flags
IL_0058: br => Label10
IL_005D: Label0
IL_005D: ldloc.1
IL_005E: ldfld Array16`1<NetNode> NetManager::m_nodes
IL_0063: ldfld NetNode[] Array16`1<NetNode>::m_buffer
IL_0068: ldarg.1
IL_0069: ldelema NetNode
IL_006E: ldfld System.UInt16 NetNode::m_building
IL_0073: stloc.s 4 (System.UInt16)
IL_0075: ldloc.s 4 (System.UInt16)
IL_0077: brfalse => Label1
IL_007C: call static BuildingManager
ColossalFramework.Singleton`1<BuildingManager>::get_instance()
IL_0081: stloc.s 5 (BuildingManager)
IL_0083: ldloc.s 5 (BuildingManager)
IL_0085: ldfld Array16`1<Building> BuildingManager::m_buildings
IL_008A: ldfld Building[] Array16`1<Building>::m_buffer
IL_008F: ldloc.s 4 (System.UInt16)
IL_0091: ldelema Building
IL_0096: ldfld System.UInt16 Building::m_electricityBuffer
IL_009B: ldarg.2
IL_009C: beq => Label2
IL_00A1: ldloc.s 5 (BuildingManager)
IL_00A3: ldfld Array16`1<Building> BuildingManager::m_buildings
IL_00A8: ldfld Building[] Array16`1<Building>::m_buffer
IL_00AD: ldloc.s 4 (System.UInt16)
IL_00AF: ldelema Building
IL_00B4: ldarg.2
IL_00B5: conv.u2
IL_00B6: stfld System.UInt16 Building::m_electricityBuffer
IL_00BB: ldloc.0
IL_00BC: ldc.i4.1
IL_00BD: ceq
IL_00BF: stloc.2
IL_00C0: Label2
IL_00C0: ldloc.2
IL_00C1: brfalse => Label3
IL_00C6: ldloc.s 5 (BuildingManager)
IL_00C8: ldloc.s 4 (System.UInt16)
IL_00CA: callvirt System.Void BuildingManager::UpdateBuildingColors(System.UInt16
building)
IL_00CF: Label1
IL_00CF: Label3
IL_00CF: ldloc.3
IL_00D0: ldc.i4 -67108865
IL_00D5: and
IL_00D6: stloc.s 6 (NetNode+Flags)
IL_00D8: ldarg.2
IL_00D9: brfalse => Label4
IL_00DE: ldloc.s 6 (NetNode+Flags)
IL_00E0: ldc.i4 67108864
IL_00E5: or
IL_00E6: stloc.s 6 (NetNode+Flags)
IL_00E8: Label4
IL_00E8: ldloc.s 6 (NetNode+Flags)
IL_00EA: ldloc.3
IL_00EB: beq => Label5
IL_00F0: ldloc.1
IL_00F1: ldfld Array16`1<NetNode> NetManager::m_nodes
IL_00F6: ldfld NetNode[] Array16`1<NetNode>::m_buffer
IL_00FB: ldarg.1
IL_00FC: ldelema NetNode
IL_0101: ldloc.s 6 (NetNode+Flags)
IL_0103: stfld Flags NetNode::m_flags
IL_0108: ldloc.0
IL_0109: ldc.i4.1
IL_010A: ceq
IL_010C: stloc.2
IL_010D: Label5
IL_010D: ldloc.2
IL_010E: brfalse => Label6
IL_0113: ldloc.1
IL_0114: ldarg.1
IL_0115: conv.u2
IL_0116: callvirt System.Void NetManager::UpdateNodeColors(System.UInt16 node)
IL_011B: ldc.i4.0
IL_011C: stloc.s 7 (System.Int32)
IL_011E: br => Label7
IL_0123: Label9
IL_0123: ldloc.1
IL_0124: ldfld Array16`1<NetNode> NetManager::m_nodes
IL_0129: ldfld NetNode[] Array16`1<NetNode>::m_buffer
IL_012E: ldarg.1
IL_012F: ldelema NetNode
IL_0134: ldloc.s 7 (System.Int32)
IL_0136: call System.UInt16 NetNode::GetSegment(System.Int32 index)
IL_013B: stloc.s 8 (System.UInt16)
IL_013D: ldloc.s 8 (System.UInt16)
IL_013F: brfalse => Label8
IL_0144: ldloc.1
IL_0145: ldloc.s 8 (System.UInt16)
IL_0147: callvirt System.Void NetManager::UpdateSegmentColors(System.UInt16
segment)
IL_014C: Label8
IL_014C: ldloc.s 7 (System.Int32)
IL_014E: ldc.i4.1
IL_014F: add
IL_0150: stloc.s 7 (System.Int32)
IL_0152: Label7
IL_0152: ldloc.s 7 (System.Int32)
IL_0154: ldc.i4.8
IL_0155: blt => Label9
IL_015A: // end original
IL_015A: Label6
IL_015A: Label10
IL_015A: ret
DONE

### Patch: static System.Void PropInstance::RenderInstance(CameraInfo cameraInfo,


PropInfo info, InstanceID id, UnityEngine.Vector3 position, System.Single scale,
System.Single angle, UnityEngine.Color color, UnityEngine.Vector4 objectIndex,
System.Boolean active, UnityEngine.Texture heightMap, UnityEngine.Vector4
heightMapping, UnityEngine.Vector4 surfaceMapping, UnityEngine.Texture
waterHeightMap, UnityEngine.Vector4 waterHeightMapping, UnityEngine.Vector4
waterSurfaceMapping)
### Replacement: static System.Void
PropInstance::PropInstance.RenderInstance_Patch0(CameraInfo cameraInfo, PropInfo
info, InstanceID id, UnityEngine.Vector3 position, System.Single scale,
System.Single angle, UnityEngine.Color color, UnityEngine.Vector4 objectIndex,
System.Boolean active, UnityEngine.Texture heightMap, UnityEngine.Vector4
heightMapping, UnityEngine.Vector4 surfaceMapping, UnityEngine.Texture
waterHeightMap, UnityEngine.Vector4 waterHeightMapping, UnityEngine.Vector4
waterSurfaceMapping)
IL_0000: Local var 0: UnityEngine.Matrix4x4
IL_0000: Local var 1: System.Single
IL_0000: Local var 2: System.Int32
IL_0000: Local var 3: UnityEngine.Vector3
IL_0000: Local var 4: UnityEngine.Vector3
IL_0000: Local var 5: EffectInfo/SpawnArea
IL_0000: Local var 6: System.Single
IL_0000: Local var 7: LightSystem
IL_0000: Local var 8: ColossalFramework.Math.Randomizer
IL_0000: Local var 9: UnityEngine.Vector4
IL_0000: Local var 10: System.Single
IL_0000: Local var 11: System.Single
IL_0000: Local var 12: System.Single
IL_0000: Local var 13: UnityEngine.Matrix4x4
IL_0000: Local var 14: PropManager
IL_0000: Local var 15: UnityEngine.MaterialPropertyBlock
IL_0000: Local var 16: System.Int32
IL_0000: // start original
IL_0000: ldarg.1
IL_0001: ldfld System.Boolean PrefabInfo::m_prefabInitialized
IL_0006: brfalse => Label0
IL_000B: ldarg.1
IL_000C: ldfld System.Boolean PropInfo::m_hasEffects
IL_0011: brfalse => Label1
IL_0016: ldarg.s 8
IL_0018: brtrue => Label2
IL_001D: ldarg.1
IL_001E: ldfld System.Boolean PropInfo::m_alwaysActive
IL_0023: brfalse => Label3
IL_0028: Label2
IL_0028: ldloca.s 0 (UnityEngine.Matrix4x4)
IL_002A: initobj UnityEngine.Matrix4x4
IL_0030: ldloca.s 0 (UnityEngine.Matrix4x4)
IL_0032: ldarg.3
IL_0033: ldarg.s 5
IL_0035: ldc.r4 57.29578
IL_003A: mul
IL_003B: call static UnityEngine.Vector3 UnityEngine.Vector3::get_down()
IL_0040: call static UnityEngine.Quaternion
UnityEngine.Quaternion::AngleAxis(System.Single angle, UnityEngine.Vector3 axis)
IL_0045: ldarg.s 4
IL_0047: ldarg.s 4
IL_0049: ldarg.s 4
IL_004B: newobj System.Void UnityEngine.Vector3::.ctor(System.Single x,
System.Single y, System.Single z)
IL_0050: call System.Void UnityEngine.Matrix4x4::SetTRS(UnityEngine.Vector3
pos, UnityEngine.Quaternion q, UnityEngine.Vector3 s)
IL_0055: call static SimulationManager
ColossalFramework.Singleton`1<SimulationManager>::get_instance()
IL_005A: ldfld System.Single SimulationManager::m_simulationTimeDelta
IL_005F: stloc.1
IL_0060: ldc.i4.0
IL_0061: stloc.2
IL_0062: br => Label4
IL_0067: Label5
IL_0067: ldloca.s 0 (UnityEngine.Matrix4x4)
IL_0069: ldarg.1
IL_006A: ldfld Effect[] PropInfo::m_effects
IL_006F: ldloc.2
IL_0070: ldelema PropInfo+Effect
IL_0075: ldfld UnityEngine.Vector3 Effect::m_position
IL_007A: call UnityEngine.Vector3
UnityEngine.Matrix4x4::MultiplyPoint(UnityEngine.Vector3 v)
IL_007F: stloc.3
IL_0080: ldloca.s 0 (UnityEngine.Matrix4x4)
IL_0082: ldarg.1
IL_0083: ldfld Effect[] PropInfo::m_effects
IL_0088: ldloc.2
IL_0089: ldelema PropInfo+Effect
IL_008E: ldfld UnityEngine.Vector3 Effect::m_direction
IL_0093: call UnityEngine.Vector3
UnityEngine.Matrix4x4::MultiplyVector(UnityEngine.Vector3 v)
IL_0098: stloc.s 4 (UnityEngine.Vector3)
IL_009A: ldloca.s 5 (EffectInfo+SpawnArea)
IL_009C: ldloc.3
IL_009D: ldloc.s 4 (UnityEngine.Vector3)
IL_009F: ldc.r4 0
IL_00A4: call System.Void SpawnArea::.ctor(UnityEngine.Vector3 position,
UnityEngine.Vector3 direction, System.Single radius)
IL_00A9: ldarg.1
IL_00AA: ldfld Effect[] PropInfo::m_effects
IL_00AF: ldloc.2
IL_00B0: ldelema PropInfo+Effect
IL_00B5: ldfld EffectInfo Effect::m_effect
IL_00BA: ldarg.2
IL_00BB: ldloc.s 5 (EffectInfo+SpawnArea)
IL_00BD: call static UnityEngine.Vector3 UnityEngine.Vector3::get_zero()
IL_00C2: ldc.r4 0
IL_00C7: ldc.r4 1
IL_00CC: ldc.r4 -1
IL_00D1: ldloc.1
IL_00D2: ldarg.0
IL_00D3: callvirt virtual System.Void EffectInfo::RenderEffect(InstanceID id,
SpawnArea area, UnityEngine.Vector3 velocity, System.Single acceleration,
System.Single magnitude, System.Single timeOffset, System.Single timeDelta,
CameraInfo cameraInfo)
IL_00D8: ldloc.2
IL_00D9: ldc.i4.1
IL_00DA: add
IL_00DB: stloc.2
IL_00DC: Label4
IL_00DC: ldloc.2
IL_00DD: ldarg.1
IL_00DE: ldfld Effect[] PropInfo::m_effects
IL_00E3: ldlen
IL_00E4: conv.i4
IL_00E5: blt => Label5
IL_00EA: Label1
IL_00EA: Label3
IL_00EA: ldarg.1
IL_00EB: ldfld System.Boolean PropInfo::m_hasRenderer
IL_00F0: brfalse => Label6
IL_00F5: ldarg.0
IL_00F6: ldfld System.Int32 CameraInfo::m_layerMask
IL_00FB: ldc.i4.1
IL_00FC: ldarg.1
IL_00FD: ldfld System.Int32 PrefabInfo::m_prefabDataLayer
IL_0102: ldc.i4.s 31
IL_0104: and
IL_0105: shl
IL_0106: and
IL_0107: brfalse => Label7
IL_010C: call static InfoManager
ColossalFramework.Singleton`1<InfoManager>::get_instance()
IL_0111: callvirt InfoMode InfoManager::get_CurrentMode()
IL_0116: brtrue => Label8
IL_011B: ldc.r4 0
IL_0120: stloc.s 6 (System.Single)
IL_0122: ldarg.s 8
IL_0124: brtrue => Label9
IL_0129: ldarg.1
IL_012A: ldfld System.Boolean PropInfo::m_alwaysActive
IL_012F: brtrue => Label10
IL_0134: ldarga.s 7
IL_0136: ldc.r4 0
IL_013B: stfld System.Single UnityEngine.Vector4::z
IL_0140: br => Label11
IL_0145: Label9
IL_0145: Label10
IL_0145: ldarg.1
IL_0146: ldflda UnityEngine.Vector2 PropInfo::m_illuminationOffRange
IL_014B: ldfld System.Single UnityEngine.Vector2::x
IL_0150: ldc.r4 1000
IL_0155: blt => Label12
IL_015A: ldarg.1
IL_015B: ldfld BlinkType PropInfo::m_illuminationBlinkType
IL_0160: brfalse => Label13
IL_0165: Label12
IL_0165: call static RenderManager
ColossalFramework.Singleton`1<RenderManager>::get_instance()
IL_016A: callvirt LightSystem RenderManager::get_lightSystem()
IL_016F: stloc.s 7 (LightSystem)
IL_0171: ldloca.s 8 (ColossalFramework.Math.Randomizer)
IL_0173: ldarga.s 2
IL_0175: call System.UInt32 InstanceID::get_Index()
IL_017A: call System.Void
ColossalFramework.Math.Randomizer::.ctor(System.UInt32 _seed)
IL_017F: ldarg.1
IL_0180: ldflda UnityEngine.Vector2 PropInfo::m_illuminationOffRange
IL_0185: ldfld System.Single UnityEngine.Vector2::x
IL_018A: ldloca.s 8 (ColossalFramework.Math.Randomizer)
IL_018C: ldc.i4 100000
IL_0191: call System.Int32
ColossalFramework.Math.Randomizer::Int32(System.UInt32 range)
IL_0196: conv.r4
IL_0197: ldc.r4 1E-05
IL_019C: mul
IL_019D: ldarg.1
IL_019E: ldflda UnityEngine.Vector2 PropInfo::m_illuminationOffRange
IL_01A3: ldfld System.Single UnityEngine.Vector2::y
IL_01A8: ldarg.1
IL_01A9: ldflda UnityEngine.Vector2 PropInfo::m_illuminationOffRange
IL_01AE: ldfld System.Single UnityEngine.Vector2::x
IL_01B3: sub
IL_01B4: mul
IL_01B5: add
IL_01B6: stloc.s 6 (System.Single)
IL_01B8: ldarga.s 7
IL_01BA: ldloc.s 6 (System.Single)
IL_01BC: ldc.r4 0.01
IL_01C1: add
IL_01C2: ldloc.s 6 (System.Single)
IL_01C4: ldc.r4 0.01
IL_01C9: sub
IL_01CA: ldloc.s 7 (LightSystem)
IL_01CC: callvirt System.Single LightSystem::get_DayLightIntensity()
IL_01D1: call static System.Single MathUtils::SmoothStep(System.Single edge0,
System.Single edge1, System.Single x)
IL_01D6: stfld System.Single UnityEngine.Vector4::z
IL_01DB: ldarg.1
IL_01DC: ldfld BlinkType PropInfo::m_illuminationBlinkType
IL_01E1: brfalse => Label14
IL_01E6: ldarg.1
IL_01E7: ldfld BlinkType PropInfo::m_illuminationBlinkType
IL_01EC: call static UnityEngine.Vector4
LightEffect::GetBlinkVector(BlinkType type)
IL_01F1: stloc.s 9 (UnityEngine.Vector4)
IL_01F3: ldloc.s 6 (System.Single)
IL_01F5: ldc.r4 3.71
IL_01FA: mul
IL_01FB: call static SimulationManager
ColossalFramework.Singleton`1<SimulationManager>::get_instance()
IL_0200: ldfld System.Single SimulationManager::m_simulationTimer
IL_0205: ldloca.s 9 (UnityEngine.Vector4)
IL_0207: ldfld System.Single UnityEngine.Vector4::w
IL_020C: div
IL_020D: add
IL_020E: stloc.s 10 (System.Single)
IL_0210: ldloc.s 10 (System.Single)
IL_0212: ldloc.s 10 (System.Single)
IL_0214: call static System.Single UnityEngine.Mathf::Floor(System.Single f)
IL_0219: sub
IL_021A: ldloca.s 9 (UnityEngine.Vector4)
IL_021C: ldfld System.Single UnityEngine.Vector4::w
IL_0221: mul
IL_0222: stloc.s 10 (System.Single)
IL_0224: ldloca.s 9 (UnityEngine.Vector4)
IL_0226: ldfld System.Single UnityEngine.Vector4::x
IL_022B: ldloca.s 9 (UnityEngine.Vector4)
IL_022D: ldfld System.Single UnityEngine.Vector4::y
IL_0232: ldloc.s 10 (System.Single)
IL_0234: call static System.Single MathUtils::SmoothStep(System.Single edge0,
System.Single edge1, System.Single x)
IL_0239: stloc.s 11 (System.Single)
IL_023B: ldloca.s 9 (UnityEngine.Vector4)
IL_023D: ldfld System.Single UnityEngine.Vector4::w
IL_0242: ldloca.s 9 (UnityEngine.Vector4)
IL_0244: ldfld System.Single UnityEngine.Vector4::z
IL_0249: ldloc.s 10 (System.Single)
IL_024B: call static System.Single MathUtils::SmoothStep(System.Single edge0,
System.Single edge1, System.Single x)
IL_0250: stloc.s 12 (System.Single)
IL_0252: ldarga.s 7
IL_0254: dup
IL_0255: ldfld System.Single UnityEngine.Vector4::z
IL_025A: ldc.r4 1
IL_025F: ldloc.s 11 (System.Single)
IL_0261: ldloc.s 12 (System.Single)
IL_0263: mul
IL_0264: sub
IL_0265: mul
IL_0266: stfld System.Single UnityEngine.Vector4::z
IL_026B: Label14
IL_026B: br => Label15
IL_0270: Label13
IL_0270: ldarga.s 7
IL_0272: ldc.r4 1
IL_0277: stfld System.Single UnityEngine.Vector4::z
IL_027C: Label8
IL_027C: Label11
IL_027C: Label15
IL_027C: ldarg.0
IL_027D: brfalse => Label16
IL_0282: ldarg.0
IL_0283: ldarg.3
IL_0284: ldarg.1
IL_0285: ldfld System.Single PropInfo::m_lodRenderDistance
IL_028A: callvirt System.Boolean
CameraInfo::CheckRenderDistance(UnityEngine.Vector3 point, System.Single
maxDistance)
IL_028F: brfalse => Label17
IL_0294: Label16
IL_0294: ldloca.s 13 (UnityEngine.Matrix4x4)
IL_0296: initobj UnityEngine.Matrix4x4
IL_029C: ldloca.s 13 (UnityEngine.Matrix4x4)
IL_029E: ldarg.3
IL_029F: ldarg.s 5
IL_02A1: ldc.r4 57.29578
IL_02A6: mul
IL_02A7: call static UnityEngine.Vector3 UnityEngine.Vector3::get_down()
IL_02AC: call static UnityEngine.Quaternion
UnityEngine.Quaternion::AngleAxis(System.Single angle, UnityEngine.Vector3 axis)
IL_02B1: ldarg.s 4
IL_02B3: ldarg.s 4
IL_02B5: ldarg.s 4
IL_02B7: newobj System.Void UnityEngine.Vector3::.ctor(System.Single x,
System.Single y, System.Single z)
IL_02BC: call System.Void UnityEngine.Matrix4x4::SetTRS(UnityEngine.Vector3
pos, UnityEngine.Quaternion q, UnityEngine.Vector3 s)
IL_02C1: call static PropManager
ColossalFramework.Singleton`1<PropManager>::get_instance()
IL_02C6: stloc.s 14 (PropManager)
IL_02C8: ldloc.s 14 (PropManager)
IL_02CA: ldfld UnityEngine.MaterialPropertyBlock PropManager::m_materialBlock
IL_02CF: stloc.s 15 (UnityEngine.MaterialPropertyBlock)
IL_02D1: ldloc.s 15 (UnityEngine.MaterialPropertyBlock)
IL_02D3: callvirt System.Void UnityEngine.MaterialPropertyBlock::Clear()
IL_02D8: ldloc.s 15 (UnityEngine.MaterialPropertyBlock)
IL_02DA: ldloc.s 14 (PropManager)
IL_02DC: ldfld System.Int32 PropManager::ID_Color
IL_02E1: ldarg.s 6
IL_02E3: callvirt System.Void
UnityEngine.MaterialPropertyBlock::SetColor(System.Int32 nameID, UnityEngine.Color
value)
IL_02E8: ldloc.s 15 (UnityEngine.MaterialPropertyBlock)
IL_02EA: ldloc.s 14 (PropManager)
IL_02EC: ldfld System.Int32 PropManager::ID_HeightMap
IL_02F1: ldarg.s 9
IL_02F3: callvirt System.Void
UnityEngine.MaterialPropertyBlock::SetTexture(System.Int32 nameID,
UnityEngine.Texture value)
IL_02F8: ldloc.s 15 (UnityEngine.MaterialPropertyBlock)
IL_02FA: ldloc.s 14 (PropManager)
IL_02FC: ldfld System.Int32 PropManager::ID_HeightMapping
IL_0301: ldarg.s 10
IL_0303: callvirt System.Void
UnityEngine.MaterialPropertyBlock::SetVector(System.Int32 nameID,
UnityEngine.Vector4 value)
IL_0308: ldloc.s 15 (UnityEngine.MaterialPropertyBlock)
IL_030A: ldloc.s 14 (PropManager)
IL_030C: ldfld System.Int32 PropManager::ID_SurfaceMapping
IL_0311: ldarg.s 11
IL_0313: callvirt System.Void
UnityEngine.MaterialPropertyBlock::SetVector(System.Int32 nameID,
UnityEngine.Vector4 value)
IL_0318: ldloc.s 15 (UnityEngine.MaterialPropertyBlock)
IL_031A: ldloc.s 14 (PropManager)
IL_031C: ldfld System.Int32 PropManager::ID_ObjectIndex
IL_0321: ldarg.s 7
IL_0323: callvirt System.Void
UnityEngine.MaterialPropertyBlock::SetVector(System.Int32 nameID,
UnityEngine.Vector4 value)
IL_0328: ldloc.s 15 (UnityEngine.MaterialPropertyBlock)
IL_032A: ldloc.s 14 (PropManager)
IL_032C: ldfld System.Int32 PropManager::ID_WaterHeightMap
IL_0331: ldarg.s 12
IL_0333: callvirt System.Void
UnityEngine.MaterialPropertyBlock::SetTexture(System.Int32 nameID,
UnityEngine.Texture value)
IL_0338: ldloc.s 15 (UnityEngine.MaterialPropertyBlock)
IL_033A: ldloc.s 14 (PropManager)
IL_033C: ldfld System.Int32 PropManager::ID_WaterHeightMapping
IL_0341: ldarg.s 13
IL_0343: callvirt System.Void
UnityEngine.MaterialPropertyBlock::SetVector(System.Int32 nameID,
UnityEngine.Vector4 value)
IL_0348: ldloc.s 15 (UnityEngine.MaterialPropertyBlock)
IL_034A: ldloc.s 14 (PropManager)
IL_034C: ldfld System.Int32 PropManager::ID_WaterSurfaceMapping
IL_0351: ldarg.s 14
IL_0353: callvirt System.Void
UnityEngine.MaterialPropertyBlock::SetVector(System.Int32 nameID,
UnityEngine.Vector4 value)
IL_0358: ldarg.1
IL_0359: ldfld UnityEngine.Vector4[] PropInfo::m_rollLocation
IL_035E: brfalse => Label18
IL_0363: ldarg.1
IL_0364: ldfld UnityEngine.Material PropInfo::m_material
IL_0369: ldloc.s 14 (PropManager)
IL_036B: ldfld System.Int32 PropManager::ID_RollLocation
IL_0370: ldarg.1
IL_0371: ldfld UnityEngine.Vector4[] PropInfo::m_rollLocation
IL_0376: callvirt System.Void UnityEngine.Material::SetVectorArray(System.Int32
nameID, UnityEngine.Vector4[] values)
IL_037B: ldarg.1
IL_037C: ldfld UnityEngine.Material PropInfo::m_material
IL_0381: ldloc.s 14 (PropManager)
IL_0383: ldfld System.Int32 PropManager::ID_RollParams
IL_0388: ldarg.1
IL_0389: ldfld UnityEngine.Vector4[] PropInfo::m_rollParams
IL_038E: callvirt System.Void UnityEngine.Material::SetVectorArray(System.Int32
nameID, UnityEngine.Vector4[] values)
IL_0393: Label18
IL_0393: ldloc.s 14 (PropManager)
IL_0395: ldflda DrawCallData SimulationManagerBase`2<PropManager,
PropProperties>::m_drawCallData
IL_039A: dup
IL_039B: ldfld System.Int32 DrawCallData::m_defaultCalls
IL_03A0: ldc.i4.1
IL_03A1: add
IL_03A2: stfld System.Int32 DrawCallData::m_defaultCalls
IL_03A7: ldarg.1
IL_03A8: ldfld UnityEngine.Mesh PropInfo::m_mesh
IL_03AD: ldloc.s 13 (UnityEngine.Matrix4x4)
IL_03AF: ldarg.1
IL_03B0: ldfld UnityEngine.Material PropInfo::m_material
IL_03B5: ldarg.1
IL_03B6: ldfld System.Int32 PrefabInfo::m_prefabDataLayer
IL_03BB: ldnull
IL_03BC: ldc.i4.0
IL_03BD: ldloc.s 15 (UnityEngine.MaterialPropertyBlock)
IL_03BF: call static System.Void
UnityEngine.Graphics::DrawMesh(UnityEngine.Mesh mesh, UnityEngine.Matrix4x4 matrix,
UnityEngine.Material material, System.Int32 layer, UnityEngine.Camera camera,
System.Int32 submeshIndex, UnityEngine.MaterialPropertyBlock properties)
IL_03C4: br => Label19
IL_03C9: Label17
IL_03C9: ldarg.s 9
IL_03CB: ldarg.1
IL_03CC: ldfld UnityEngine.Texture PropInfo::m_lodHeightMap
IL_03D1: call static System.Boolean
UnityEngine.Object::op_Inequality(UnityEngine.Object x, UnityEngine.Object y)
IL_03D6: brtrue => Label20
IL_03DB: ldarg.s 12
IL_03DD: ldarg.1
IL_03DE: ldfld UnityEngine.Texture PropInfo::m_lodWaterHeightMap
IL_03E3: call static System.Boolean
UnityEngine.Object::op_Inequality(UnityEngine.Object x, UnityEngine.Object y)
IL_03E8: brfalse => Label21
IL_03ED: Label20
IL_03ED: ldarg.1
IL_03EE: ldfld System.Int32 PropInfo::m_lodCount
IL_03F3: brfalse => Label22
IL_03F8: ldarg.0
IL_03F9: ldarg.1
IL_03FA: call static System.Void PropInstance::RenderLod(CameraInfo
cameraInfo, PropInfo info)
IL_03FF: Label22
IL_03FF: ldarg.1
IL_0400: ldarg.s 9
IL_0402: stfld UnityEngine.Texture PropInfo::m_lodHeightMap
IL_0407: ldarg.1
IL_0408: ldarg.s 10
IL_040A: stfld UnityEngine.Vector4 PropInfo::m_lodHeightMapping
IL_040F: ldarg.1
IL_0410: ldarg.s 11
IL_0412: stfld UnityEngine.Vector4 PropInfo::m_lodSurfaceMapping
IL_0417: ldarg.1
IL_0418: ldarg.s 12
IL_041A: stfld UnityEngine.Texture PropInfo::m_lodWaterHeightMap
IL_041F: ldarg.1
IL_0420: ldarg.s 13
IL_0422: stfld UnityEngine.Vector4 PropInfo::m_lodWaterHeightMapping
IL_0427: ldarg.1
IL_0428: ldarg.s 14
IL_042A: stfld UnityEngine.Vector4 PropInfo::m_lodWaterSurfaceMapping
IL_042F: Label21
IL_042F: ldarga.s 7
IL_0431: ldarg.s 4
IL_0433: stfld System.Single UnityEngine.Vector4::w
IL_0438: ldarg.1
IL_0439: ldfld UnityEngine.Vector4[] PropInfo::m_lodLocations
IL_043E: ldarg.1
IL_043F: ldfld System.Int32 PropInfo::m_lodCount
IL_0444: ldelema UnityEngine.Vector4
IL_0449: ldarga.s 3
IL_044B: ldfld System.Single UnityEngine.Vector3::x
IL_0450: ldarga.s 3
IL_0452: ldfld System.Single UnityEngine.Vector3::y
IL_0457: ldarga.s 3
IL_0459: ldfld System.Single UnityEngine.Vector3::z
IL_045E: ldarg.s 5
IL_0460: newobj System.Void UnityEngine.Vector4::.ctor(System.Single x,
System.Single y, System.Single z, System.Single w)
IL_0465: stobj UnityEngine.Vector4
IL_046A: ldarg.1
IL_046B: ldfld UnityEngine.Vector4[] PropInfo::m_lodObjectIndices
IL_0470: ldarg.1
IL_0471: ldfld System.Int32 PropInfo::m_lodCount
IL_0476: ldelema UnityEngine.Vector4
IL_047B: ldarg.s 7
IL_047D: stobj UnityEngine.Vector4
IL_0482: ldarg.1
IL_0483: ldfld UnityEngine.Vector4[] PropInfo::m_lodColors
IL_0488: ldarg.1
IL_0489: ldfld System.Int32 PropInfo::m_lodCount
IL_048E: ldelema UnityEngine.Vector4
IL_0493: ldarga.s 6
IL_0495: call UnityEngine.Color UnityEngine.Color::get_linear()
IL_049A: call static UnityEngine.Vector4
UnityEngine.Color::op_Implicit(UnityEngine.Color c)
IL_049F: stobj UnityEngine.Vector4
IL_04A4: ldarg.1
IL_04A5: ldarg.1
IL_04A6: ldfld UnityEngine.Vector3 PropInfo::m_lodMin
IL_04AB: ldarg.3
IL_04AC: call static UnityEngine.Vector3
UnityEngine.Vector3::Min(UnityEngine.Vector3 lhs, UnityEngine.Vector3 rhs)
IL_04B1: stfld UnityEngine.Vector3 PropInfo::m_lodMin
IL_04B6: ldarg.1
IL_04B7: ldarg.1
IL_04B8: ldfld UnityEngine.Vector3 PropInfo::m_lodMax
IL_04BD: ldarg.3
IL_04BE: call static UnityEngine.Vector3
UnityEngine.Vector3::Max(UnityEngine.Vector3 lhs, UnityEngine.Vector3 rhs)
IL_04C3: stfld UnityEngine.Vector3 PropInfo::m_lodMax
IL_04C8: ldarg.1
IL_04C9: dup
IL_04CA: ldfld System.Int32 PropInfo::m_lodCount
IL_04CF: ldc.i4.1
IL_04D0: add
IL_04D1: dup
IL_04D2: stloc.s 16 (System.Int32)
IL_04D4: stfld System.Int32 PropInfo::m_lodCount
IL_04D9: ldloc.s 16 (System.Int32)
IL_04DB: ldarg.1
IL_04DC: ldfld UnityEngine.Vector4[] PropInfo::m_lodLocations
IL_04E1: ldlen
IL_04E2: conv.i4
IL_04E3: bne.un => Label23
IL_04E8: ldarg.0
IL_04E9: ldarg.1
IL_04EA: call static System.Void PropInstance::RenderLod(CameraInfo
cameraInfo, PropInfo info)
IL_04EF: // end original
IL_04EF: Label0
IL_04EF: Label6
IL_04EF: Label7
IL_04EF: Label19
IL_04EF: Label23
IL_04EF: ret
DONE

### Patch: static System.Void PropInstance::RenderInstance(CameraInfo cameraInfo,


PropInfo info, InstanceID id, UnityEngine.Vector3 position, System.Single scale,
System.Single angle, UnityEngine.Color color, UnityEngine.Vector4 objectIndex,
System.Boolean active)
### Replacement: static System.Void
PropInstance::PropInstance.RenderInstance_Patch0(CameraInfo cameraInfo, PropInfo
info, InstanceID id, UnityEngine.Vector3 position, System.Single scale,
System.Single angle, UnityEngine.Color color, UnityEngine.Vector4 objectIndex,
System.Boolean active)
IL_0000: Local var 0: UnityEngine.Matrix4x4
IL_0000: Local var 1: System.Single
IL_0000: Local var 2: System.Int32
IL_0000: Local var 3: UnityEngine.Vector3
IL_0000: Local var 4: UnityEngine.Vector3
IL_0000: Local var 5: EffectInfo/SpawnArea
IL_0000: Local var 6: System.Single
IL_0000: Local var 7: LightSystem
IL_0000: Local var 8: ColossalFramework.Math.Randomizer
IL_0000: Local var 9: UnityEngine.Vector4
IL_0000: Local var 10: System.Single
IL_0000: Local var 11: System.Single
IL_0000: Local var 12: System.Single
IL_0000: Local var 13: UnityEngine.Matrix4x4
IL_0000: Local var 14: PropManager
IL_0000: Local var 15: UnityEngine.MaterialPropertyBlock
IL_0000: Local var 16: UnityEngine.Matrix4x4
IL_0000: Local var 17: PropManager
IL_0000: Local var 18: UnityEngine.MaterialPropertyBlock
IL_0000: Local var 19: System.Int32
IL_0000: // start original
IL_0000: ldarg.1
IL_0001: ldfld System.Boolean PrefabInfo::m_prefabInitialized
IL_0006: brfalse => Label0
IL_000B: ldarg.1
IL_000C: ldfld System.Boolean PropInfo::m_hasEffects
IL_0011: brfalse => Label1
IL_0016: ldarg.s 8
IL_0018: brtrue => Label2
IL_001D: ldarg.1
IL_001E: ldfld System.Boolean PropInfo::m_alwaysActive
IL_0023: brfalse => Label3
IL_0028: Label2
IL_0028: ldloca.s 0 (UnityEngine.Matrix4x4)
IL_002A: initobj UnityEngine.Matrix4x4
IL_0030: ldloca.s 0 (UnityEngine.Matrix4x4)
IL_0032: ldarg.3
IL_0033: ldarg.s 5
IL_0035: ldc.r4 57.29578
IL_003A: mul
IL_003B: call static UnityEngine.Vector3 UnityEngine.Vector3::get_down()
IL_0040: call static UnityEngine.Quaternion
UnityEngine.Quaternion::AngleAxis(System.Single angle, UnityEngine.Vector3 axis)
IL_0045: ldarg.s 4
IL_0047: ldarg.s 4
IL_0049: ldarg.s 4
IL_004B: newobj System.Void UnityEngine.Vector3::.ctor(System.Single x,
System.Single y, System.Single z)
IL_0050: call System.Void UnityEngine.Matrix4x4::SetTRS(UnityEngine.Vector3
pos, UnityEngine.Quaternion q, UnityEngine.Vector3 s)
IL_0055: call static SimulationManager
ColossalFramework.Singleton`1<SimulationManager>::get_instance()
IL_005A: ldfld System.Single SimulationManager::m_simulationTimeDelta
IL_005F: stloc.1
IL_0060: ldc.i4.0
IL_0061: stloc.2
IL_0062: br => Label4
IL_0067: Label5
IL_0067: ldloca.s 0 (UnityEngine.Matrix4x4)
IL_0069: ldarg.1
IL_006A: ldfld Effect[] PropInfo::m_effects
IL_006F: ldloc.2
IL_0070: ldelema PropInfo+Effect
IL_0075: ldfld UnityEngine.Vector3 Effect::m_position
IL_007A: call UnityEngine.Vector3
UnityEngine.Matrix4x4::MultiplyPoint(UnityEngine.Vector3 v)
IL_007F: stloc.3
IL_0080: ldloca.s 0 (UnityEngine.Matrix4x4)
IL_0082: ldarg.1
IL_0083: ldfld Effect[] PropInfo::m_effects
IL_0088: ldloc.2
IL_0089: ldelema PropInfo+Effect
IL_008E: ldfld UnityEngine.Vector3 Effect::m_direction
IL_0093: call UnityEngine.Vector3
UnityEngine.Matrix4x4::MultiplyVector(UnityEngine.Vector3 v)
IL_0098: stloc.s 4 (UnityEngine.Vector3)
IL_009A: ldloca.s 5 (EffectInfo+SpawnArea)
IL_009C: ldloc.3
IL_009D: ldloc.s 4 (UnityEngine.Vector3)
IL_009F: ldc.r4 0
IL_00A4: call System.Void SpawnArea::.ctor(UnityEngine.Vector3 position,
UnityEngine.Vector3 direction, System.Single radius)
IL_00A9: ldarg.1
IL_00AA: ldfld Effect[] PropInfo::m_effects
IL_00AF: ldloc.2
IL_00B0: ldelema PropInfo+Effect
IL_00B5: ldfld EffectInfo Effect::m_effect
IL_00BA: ldarg.2
IL_00BB: ldloc.s 5 (EffectInfo+SpawnArea)
IL_00BD: call static UnityEngine.Vector3 UnityEngine.Vector3::get_zero()
IL_00C2: ldc.r4 0
IL_00C7: ldc.r4 1
IL_00CC: ldc.r4 -1
IL_00D1: ldloc.1
IL_00D2: ldarg.0
IL_00D3: callvirt virtual System.Void EffectInfo::RenderEffect(InstanceID id,
SpawnArea area, UnityEngine.Vector3 velocity, System.Single acceleration,
System.Single magnitude, System.Single timeOffset, System.Single timeDelta,
CameraInfo cameraInfo)
IL_00D8: ldloc.2
IL_00D9: ldc.i4.1
IL_00DA: add
IL_00DB: stloc.2
IL_00DC: Label4
IL_00DC: ldloc.2
IL_00DD: ldarg.1
IL_00DE: ldfld Effect[] PropInfo::m_effects
IL_00E3: ldlen
IL_00E4: conv.i4
IL_00E5: blt => Label5
IL_00EA: Label1
IL_00EA: Label3
IL_00EA: ldarg.1
IL_00EB: ldfld System.Boolean PropInfo::m_hasRenderer
IL_00F0: brfalse => Label6
IL_00F5: ldarg.0
IL_00F6: ldfld System.Int32 CameraInfo::m_layerMask
IL_00FB: ldc.i4.1
IL_00FC: ldarg.1
IL_00FD: ldfld System.Int32 PrefabInfo::m_prefabDataLayer
IL_0102: ldc.i4.s 31
IL_0104: and
IL_0105: shl
IL_0106: and
IL_0107: brfalse => Label7
IL_010C: call static InfoManager
ColossalFramework.Singleton`1<InfoManager>::get_instance()
IL_0111: callvirt InfoMode InfoManager::get_CurrentMode()
IL_0116: brtrue => Label8
IL_011B: ldc.r4 0
IL_0120: stloc.s 6 (System.Single)
IL_0122: ldarg.s 8
IL_0124: brtrue => Label9
IL_0129: ldarg.1
IL_012A: ldfld System.Boolean PropInfo::m_alwaysActive
IL_012F: brtrue => Label10
IL_0134: ldarga.s 7
IL_0136: ldc.r4 0
IL_013B: stfld System.Single UnityEngine.Vector4::z
IL_0140: br => Label11
IL_0145: Label9
IL_0145: Label10
IL_0145: ldarg.1
IL_0146: ldflda UnityEngine.Vector2 PropInfo::m_illuminationOffRange
IL_014B: ldfld System.Single UnityEngine.Vector2::x
IL_0150: ldc.r4 1000
IL_0155: blt => Label12
IL_015A: ldarg.1
IL_015B: ldfld BlinkType PropInfo::m_illuminationBlinkType
IL_0160: brfalse => Label13
IL_0165: Label12
IL_0165: call static RenderManager
ColossalFramework.Singleton`1<RenderManager>::get_instance()
IL_016A: callvirt LightSystem RenderManager::get_lightSystem()
IL_016F: stloc.s 7 (LightSystem)
IL_0171: ldloca.s 8 (ColossalFramework.Math.Randomizer)
IL_0173: ldarga.s 2
IL_0175: call System.UInt32 InstanceID::get_Index()
IL_017A: call System.Void
ColossalFramework.Math.Randomizer::.ctor(System.UInt32 _seed)
IL_017F: ldarg.1
IL_0180: ldflda UnityEngine.Vector2 PropInfo::m_illuminationOffRange
IL_0185: ldfld System.Single UnityEngine.Vector2::x
IL_018A: ldloca.s 8 (ColossalFramework.Math.Randomizer)
IL_018C: ldc.i4 100000
IL_0191: call System.Int32
ColossalFramework.Math.Randomizer::Int32(System.UInt32 range)
IL_0196: conv.r4
IL_0197: ldc.r4 1E-05
IL_019C: mul
IL_019D: ldarg.1
IL_019E: ldflda UnityEngine.Vector2 PropInfo::m_illuminationOffRange
IL_01A3: ldfld System.Single UnityEngine.Vector2::y
IL_01A8: ldarg.1
IL_01A9: ldflda UnityEngine.Vector2 PropInfo::m_illuminationOffRange
IL_01AE: ldfld System.Single UnityEngine.Vector2::x
IL_01B3: sub
IL_01B4: mul
IL_01B5: add
IL_01B6: stloc.s 6 (System.Single)
IL_01B8: ldarga.s 7
IL_01BA: ldloc.s 6 (System.Single)
IL_01BC: ldc.r4 0.01
IL_01C1: add
IL_01C2: ldloc.s 6 (System.Single)
IL_01C4: ldc.r4 0.01
IL_01C9: sub
IL_01CA: ldloc.s 7 (LightSystem)
IL_01CC: callvirt System.Single LightSystem::get_DayLightIntensity()
IL_01D1: call static System.Single MathUtils::SmoothStep(System.Single edge0,
System.Single edge1, System.Single x)
IL_01D6: stfld System.Single UnityEngine.Vector4::z
IL_01DB: ldarg.1
IL_01DC: ldfld BlinkType PropInfo::m_illuminationBlinkType
IL_01E1: brfalse => Label14
IL_01E6: ldarg.1
IL_01E7: ldfld BlinkType PropInfo::m_illuminationBlinkType
IL_01EC: call static UnityEngine.Vector4
LightEffect::GetBlinkVector(BlinkType type)
IL_01F1: stloc.s 9 (UnityEngine.Vector4)
IL_01F3: ldloc.s 6 (System.Single)
IL_01F5: ldc.r4 3.71
IL_01FA: mul
IL_01FB: call static SimulationManager
ColossalFramework.Singleton`1<SimulationManager>::get_instance()
IL_0200: ldfld System.Single SimulationManager::m_simulationTimer
IL_0205: ldloca.s 9 (UnityEngine.Vector4)
IL_0207: ldfld System.Single UnityEngine.Vector4::w
IL_020C: div
IL_020D: add
IL_020E: stloc.s 10 (System.Single)
IL_0210: ldloc.s 10 (System.Single)
IL_0212: ldloc.s 10 (System.Single)
IL_0214: call static System.Single UnityEngine.Mathf::Floor(System.Single f)
IL_0219: sub
IL_021A: ldloca.s 9 (UnityEngine.Vector4)
IL_021C: ldfld System.Single UnityEngine.Vector4::w
IL_0221: mul
IL_0222: stloc.s 10 (System.Single)
IL_0224: ldloca.s 9 (UnityEngine.Vector4)
IL_0226: ldfld System.Single UnityEngine.Vector4::x
IL_022B: ldloca.s 9 (UnityEngine.Vector4)
IL_022D: ldfld System.Single UnityEngine.Vector4::y
IL_0232: ldloc.s 10 (System.Single)
IL_0234: call static System.Single MathUtils::SmoothStep(System.Single edge0,
System.Single edge1, System.Single x)
IL_0239: stloc.s 11 (System.Single)
IL_023B: ldloca.s 9 (UnityEngine.Vector4)
IL_023D: ldfld System.Single UnityEngine.Vector4::w
IL_0242: ldloca.s 9 (UnityEngine.Vector4)
IL_0244: ldfld System.Single UnityEngine.Vector4::z
IL_0249: ldloc.s 10 (System.Single)
IL_024B: call static System.Single MathUtils::SmoothStep(System.Single edge0,
System.Single edge1, System.Single x)
IL_0250: stloc.s 12 (System.Single)
IL_0252: ldarga.s 7
IL_0254: dup
IL_0255: ldfld System.Single UnityEngine.Vector4::z
IL_025A: ldc.r4 1
IL_025F: ldloc.s 11 (System.Single)
IL_0261: ldloc.s 12 (System.Single)
IL_0263: mul
IL_0264: sub
IL_0265: mul
IL_0266: stfld System.Single UnityEngine.Vector4::z
IL_026B: Label14
IL_026B: br => Label15
IL_0270: Label13
IL_0270: ldarga.s 7
IL_0272: ldc.r4 1
IL_0277: stfld System.Single UnityEngine.Vector4::z
IL_027C: Label8
IL_027C: Label11
IL_027C: Label15
IL_027C: ldarg.0
IL_027D: brfalse => Label16
IL_0282: ldarg.0
IL_0283: ldarg.3
IL_0284: ldarg.1
IL_0285: ldfld System.Single PropInfo::m_lodRenderDistance
IL_028A: callvirt System.Boolean
CameraInfo::CheckRenderDistance(UnityEngine.Vector3 point, System.Single
maxDistance)
IL_028F: brfalse => Label17
IL_0294: Label16
IL_0294: ldloca.s 13 (UnityEngine.Matrix4x4)
IL_0296: initobj UnityEngine.Matrix4x4
IL_029C: ldloca.s 13 (UnityEngine.Matrix4x4)
IL_029E: ldarg.3
IL_029F: ldarg.s 5
IL_02A1: ldc.r4 57.29578
IL_02A6: mul
IL_02A7: call static UnityEngine.Vector3 UnityEngine.Vector3::get_down()
IL_02AC: call static UnityEngine.Quaternion
UnityEngine.Quaternion::AngleAxis(System.Single angle, UnityEngine.Vector3 axis)
IL_02B1: ldarg.s 4
IL_02B3: ldarg.s 4
IL_02B5: ldarg.s 4
IL_02B7: newobj System.Void UnityEngine.Vector3::.ctor(System.Single x,
System.Single y, System.Single z)
IL_02BC: call System.Void UnityEngine.Matrix4x4::SetTRS(UnityEngine.Vector3
pos, UnityEngine.Quaternion q, UnityEngine.Vector3 s)
IL_02C1: call static PropManager
ColossalFramework.Singleton`1<PropManager>::get_instance()
IL_02C6: stloc.s 14 (PropManager)
IL_02C8: ldloc.s 14 (PropManager)
IL_02CA: ldfld UnityEngine.MaterialPropertyBlock PropManager::m_materialBlock
IL_02CF: stloc.s 15 (UnityEngine.MaterialPropertyBlock)
IL_02D1: ldloc.s 15 (UnityEngine.MaterialPropertyBlock)
IL_02D3: callvirt System.Void UnityEngine.MaterialPropertyBlock::Clear()
IL_02D8: ldloc.s 15 (UnityEngine.MaterialPropertyBlock)
IL_02DA: ldloc.s 14 (PropManager)
IL_02DC: ldfld System.Int32 PropManager::ID_Color
IL_02E1: ldarg.s 6
IL_02E3: callvirt System.Void
UnityEngine.MaterialPropertyBlock::SetColor(System.Int32 nameID, UnityEngine.Color
value)
IL_02E8: ldloc.s 15 (UnityEngine.MaterialPropertyBlock)
IL_02EA: ldloc.s 14 (PropManager)
IL_02EC: ldfld System.Int32 PropManager::ID_ObjectIndex
IL_02F1: ldarg.s 7
IL_02F3: callvirt System.Void
UnityEngine.MaterialPropertyBlock::SetVector(System.Int32 nameID,
UnityEngine.Vector4 value)
IL_02F8: ldarg.1
IL_02F9: ldfld UnityEngine.Vector4[] PropInfo::m_rollLocation
IL_02FE: brfalse => Label18
IL_0303: ldarg.1
IL_0304: ldfld UnityEngine.Material PropInfo::m_material
IL_0309: ldloc.s 14 (PropManager)
IL_030B: ldfld System.Int32 PropManager::ID_RollLocation
IL_0310: ldarg.1
IL_0311: ldfld UnityEngine.Vector4[] PropInfo::m_rollLocation
IL_0316: callvirt System.Void UnityEngine.Material::SetVectorArray(System.Int32
nameID, UnityEngine.Vector4[] values)
IL_031B: ldarg.1
IL_031C: ldfld UnityEngine.Material PropInfo::m_material
IL_0321: ldloc.s 14 (PropManager)
IL_0323: ldfld System.Int32 PropManager::ID_RollParams
IL_0328: ldarg.1
IL_0329: ldfld UnityEngine.Vector4[] PropInfo::m_rollParams
IL_032E: callvirt System.Void UnityEngine.Material::SetVectorArray(System.Int32
nameID, UnityEngine.Vector4[] values)
IL_0333: Label18
IL_0333: ldloc.s 14 (PropManager)
IL_0335: ldflda DrawCallData SimulationManagerBase`2<PropManager,
PropProperties>::m_drawCallData
IL_033A: dup
IL_033B: ldfld System.Int32 DrawCallData::m_defaultCalls
IL_0340: ldc.i4.1
IL_0341: add
IL_0342: stfld System.Int32 DrawCallData::m_defaultCalls
IL_0347: ldarg.1
IL_0348: ldfld UnityEngine.Mesh PropInfo::m_mesh
IL_034D: ldloc.s 13 (UnityEngine.Matrix4x4)
IL_034F: ldarg.1
IL_0350: ldfld UnityEngine.Material PropInfo::m_material
IL_0355: ldarg.1
IL_0356: ldfld System.Int32 PrefabInfo::m_prefabDataLayer
IL_035B: ldnull
IL_035C: ldc.i4.0
IL_035D: ldloc.s 15 (UnityEngine.MaterialPropertyBlock)
IL_035F: call static System.Void
UnityEngine.Graphics::DrawMesh(UnityEngine.Mesh mesh, UnityEngine.Matrix4x4 matrix,
UnityEngine.Material material, System.Int32 layer, UnityEngine.Camera camera,
System.Int32 submeshIndex, UnityEngine.MaterialPropertyBlock properties)
IL_0364: br => Label19
IL_0369: Label17
IL_0369: ldarg.1
IL_036A: ldfld UnityEngine.Material PropInfo::m_lodMaterialCombined
IL_036F: ldnull
IL_0370: call static System.Boolean
UnityEngine.Object::op_Equality(UnityEngine.Object x, UnityEngine.Object y)
IL_0375: brfalse => Label20
IL_037A: ldloca.s 16 (UnityEngine.Matrix4x4)
IL_037C: initobj UnityEngine.Matrix4x4
IL_0382: ldloca.s 16 (UnityEngine.Matrix4x4)
IL_0384: ldarg.3
IL_0385: ldarg.s 5
IL_0387: ldc.r4 57.29578
IL_038C: mul
IL_038D: call static UnityEngine.Vector3 UnityEngine.Vector3::get_down()
IL_0392: call static UnityEngine.Quaternion
UnityEngine.Quaternion::AngleAxis(System.Single angle, UnityEngine.Vector3 axis)
IL_0397: ldarg.s 4
IL_0399: ldarg.s 4
IL_039B: ldarg.s 4
IL_039D: newobj System.Void UnityEngine.Vector3::.ctor(System.Single x,
System.Single y, System.Single z)
IL_03A2: call System.Void UnityEngine.Matrix4x4::SetTRS(UnityEngine.Vector3
pos, UnityEngine.Quaternion q, UnityEngine.Vector3 s)
IL_03A7: call static PropManager
ColossalFramework.Singleton`1<PropManager>::get_instance()
IL_03AC: stloc.s 17 (PropManager)
IL_03AE: ldloc.s 17 (PropManager)
IL_03B0: ldfld UnityEngine.MaterialPropertyBlock PropManager::m_materialBlock
IL_03B5: stloc.s 18 (UnityEngine.MaterialPropertyBlock)
IL_03B7: ldloc.s 18 (UnityEngine.MaterialPropertyBlock)
IL_03B9: callvirt System.Void UnityEngine.MaterialPropertyBlock::Clear()
IL_03BE: ldloc.s 18 (UnityEngine.MaterialPropertyBlock)
IL_03C0: ldloc.s 17 (PropManager)
IL_03C2: ldfld System.Int32 PropManager::ID_Color
IL_03C7: ldarg.s 6
IL_03C9: callvirt System.Void
UnityEngine.MaterialPropertyBlock::SetColor(System.Int32 nameID, UnityEngine.Color
value)
IL_03CE: ldloc.s 18 (UnityEngine.MaterialPropertyBlock)
IL_03D0: ldloc.s 17 (PropManager)
IL_03D2: ldfld System.Int32 PropManager::ID_ObjectIndex
IL_03D7: ldarg.s 7
IL_03D9: callvirt System.Void
UnityEngine.MaterialPropertyBlock::SetVector(System.Int32 nameID,
UnityEngine.Vector4 value)
IL_03DE: ldarg.1
IL_03DF: ldfld UnityEngine.Vector4[] PropInfo::m_rollLocation
IL_03E4: brfalse => Label21
IL_03E9: ldarg.1
IL_03EA: ldfld UnityEngine.Material PropInfo::m_material
IL_03EF: ldloc.s 17 (PropManager)
IL_03F1: ldfld System.Int32 PropManager::ID_RollLocation
IL_03F6: ldarg.1
IL_03F7: ldfld UnityEngine.Vector4[] PropInfo::m_rollLocation
IL_03FC: callvirt System.Void UnityEngine.Material::SetVectorArray(System.Int32
nameID, UnityEngine.Vector4[] values)
IL_0401: ldarg.1
IL_0402: ldfld UnityEngine.Material PropInfo::m_material
IL_0407: ldloc.s 17 (PropManager)
IL_0409: ldfld System.Int32 PropManager::ID_RollParams
IL_040E: ldarg.1
IL_040F: ldfld UnityEngine.Vector4[] PropInfo::m_rollParams
IL_0414: callvirt System.Void UnityEngine.Material::SetVectorArray(System.Int32
nameID, UnityEngine.Vector4[] values)
IL_0419: Label21
IL_0419: ldloc.s 17 (PropManager)
IL_041B: ldflda DrawCallData SimulationManagerBase`2<PropManager,
PropProperties>::m_drawCallData
IL_0420: dup
IL_0421: ldfld System.Int32 DrawCallData::m_defaultCalls
IL_0426: ldc.i4.1
IL_0427: add
IL_0428: stfld System.Int32 DrawCallData::m_defaultCalls
IL_042D: ldarg.1
IL_042E: ldfld UnityEngine.Mesh PropInfo::m_lodMesh
IL_0433: ldloc.s 16 (UnityEngine.Matrix4x4)
IL_0435: ldarg.1
IL_0436: ldfld UnityEngine.Material PropInfo::m_lodMaterial
IL_043B: ldarg.1
IL_043C: ldfld System.Int32 PrefabInfo::m_prefabDataLayer
IL_0441: ldnull
IL_0442: ldc.i4.0
IL_0443: ldloc.s 18 (UnityEngine.MaterialPropertyBlock)
IL_0445: call static System.Void
UnityEngine.Graphics::DrawMesh(UnityEngine.Mesh mesh, UnityEngine.Matrix4x4 matrix,
UnityEngine.Material material, System.Int32 layer, UnityEngine.Camera camera,
System.Int32 submeshIndex, UnityEngine.MaterialPropertyBlock properties)
IL_044A: br => Label22
IL_044F: Label20
IL_044F: ldarga.s 7
IL_0451: ldarg.s 4
IL_0453: stfld System.Single UnityEngine.Vector4::w
IL_0458: ldarg.1
IL_0459: ldfld UnityEngine.Vector4[] PropInfo::m_lodLocations
IL_045E: ldarg.1
IL_045F: ldfld System.Int32 PropInfo::m_lodCount
IL_0464: ldelema UnityEngine.Vector4
IL_0469: ldarga.s 3
IL_046B: ldfld System.Single UnityEngine.Vector3::x
IL_0470: ldarga.s 3
IL_0472: ldfld System.Single UnityEngine.Vector3::y
IL_0477: ldarga.s 3
IL_0479: ldfld System.Single UnityEngine.Vector3::z
IL_047E: ldarg.s 5
IL_0480: newobj System.Void UnityEngine.Vector4::.ctor(System.Single x,
System.Single y, System.Single z, System.Single w)
IL_0485: stobj UnityEngine.Vector4
IL_048A: ldarg.1
IL_048B: ldfld UnityEngine.Vector4[] PropInfo::m_lodObjectIndices
IL_0490: ldarg.1
IL_0491: ldfld System.Int32 PropInfo::m_lodCount
IL_0496: ldelema UnityEngine.Vector4
IL_049B: ldarg.s 7
IL_049D: stobj UnityEngine.Vector4
IL_04A2: ldarg.1
IL_04A3: ldfld UnityEngine.Vector4[] PropInfo::m_lodColors
IL_04A8: ldarg.1
IL_04A9: ldfld System.Int32 PropInfo::m_lodCount
IL_04AE: ldelema UnityEngine.Vector4
IL_04B3: ldarga.s 6
IL_04B5: call UnityEngine.Color UnityEngine.Color::get_linear()
IL_04BA: call static UnityEngine.Vector4
UnityEngine.Color::op_Implicit(UnityEngine.Color c)
IL_04BF: stobj UnityEngine.Vector4
IL_04C4: ldarg.1
IL_04C5: ldarg.1
IL_04C6: ldfld UnityEngine.Vector3 PropInfo::m_lodMin
IL_04CB: ldarg.3
IL_04CC: call static UnityEngine.Vector3
UnityEngine.Vector3::Min(UnityEngine.Vector3 lhs, UnityEngine.Vector3 rhs)
IL_04D1: stfld UnityEngine.Vector3 PropInfo::m_lodMin
IL_04D6: ldarg.1
IL_04D7: ldarg.1
IL_04D8: ldfld UnityEngine.Vector3 PropInfo::m_lodMax
IL_04DD: ldarg.3
IL_04DE: call static UnityEngine.Vector3
UnityEngine.Vector3::Max(UnityEngine.Vector3 lhs, UnityEngine.Vector3 rhs)
IL_04E3: stfld UnityEngine.Vector3 PropInfo::m_lodMax
IL_04E8: ldarg.1
IL_04E9: dup
IL_04EA: ldfld System.Int32 PropInfo::m_lodCount
IL_04EF: ldc.i4.1
IL_04F0: add
IL_04F1: dup
IL_04F2: stloc.s 19 (System.Int32)
IL_04F4: stfld System.Int32 PropInfo::m_lodCount
IL_04F9: ldloc.s 19 (System.Int32)
IL_04FB: ldarg.1
IL_04FC: ldfld UnityEngine.Vector4[] PropInfo::m_lodLocations
IL_0501: ldlen
IL_0502: conv.i4
IL_0503: bne.un => Label23
IL_0508: ldarg.0
IL_0509: ldarg.1
IL_050A: call static System.Void PropInstance::RenderLod(CameraInfo
cameraInfo, PropInfo info)
IL_050F: // end original
IL_050F: Label0
IL_050F: Label6
IL_050F: Label7
IL_050F: Label19
IL_050F: Label22
IL_050F: Label23
IL_050F: ret
DONE

### Patch: virtual System.Void LightEffect::PopulateGroupData(System.Int32 layer,


InstanceID id, UnityEngine.Vector3 pos, UnityEngine.Vector3 dir, 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
LightEffect::LightEffect.PopulateGroupData_Patch0(LightEffect this, System.Int32
layer, InstanceID id, UnityEngine.Vector3 pos, UnityEngine.Vector3 dir,
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.Boolean
IL_0000: Local var 1: UnityEngine.Vector3
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.Quaternion
IL_0000: Local var 7: UnityEngine.Vector4
IL_0000: Local var 8: UnityEngine.Vector2
IL_0000: Local var 9: ColossalFramework.Math.Randomizer
IL_0000: Local var 10: UnityEngine.Vector2
IL_0000: Local var 11: UnityEngine.Vector2
IL_0000: Local var 12: UnityEngine.Vector2
IL_0000: Local var 13: System.UInt16
IL_0000: Local var 14: UnityEngine.Vector3
IL_0000: Local var 15: UnityEngine.Color
IL_0000: Local var 16: UnityEngine.Color
IL_0000: Local var 17: System.Single
IL_0000: Local var 18: System.Single
IL_0000: Local var 19: System.Int32
IL_0000: // start original
IL_0000: ldarg.1
IL_0001: ldarg.0
IL_0002: ldfld System.Int32 LightEffect::m_groupLayer
IL_0007: beq => Label0
IL_000C: ldarg.1
IL_000D: ldarg.0
IL_000E: ldfld System.Int32 LightEffect::m_groupLayerFloating
IL_0013: bne.un => Label1
IL_0018: Label0
IL_0018: ldarg.1
IL_0019: ldarg.0
IL_001A: ldfld System.Int32 LightEffect::m_groupLayerFloating
IL_001F: ceq
IL_0021: stloc.0
IL_0022: ldloca.s 1 (UnityEngine.Vector3)
IL_0024: ldarg.0
IL_0025: ldfld System.Single LightEffect::m_lightRange
IL_002A: ldarg.0
IL_002B: ldfld System.Single LightEffect::m_lightRange
IL_0030: ldarg.0
IL_0031: ldfld System.Single LightEffect::m_lightRange
IL_0036: call System.Void UnityEngine.Vector3::.ctor(System.Single x,
System.Single y, System.Single z)
IL_003B: ldarg.3
IL_003C: ldloc.1
IL_003D: call static UnityEngine.Vector3
UnityEngine.Vector3::op_Subtraction(UnityEngine.Vector3 a, UnityEngine.Vector3 b)
IL_0042: stloc.2
IL_0043: ldarg.3
IL_0044: ldloc.1
IL_0045: call static UnityEngine.Vector3
UnityEngine.Vector3::op_Addition(UnityEngine.Vector3 a, UnityEngine.Vector3 b)
IL_004A: stloc.3
IL_004B: ldarg.s 9
IL_004D: ldarg.s 9
IL_004F: ldobj UnityEngine.Vector3
IL_0054: ldloc.2
IL_0055: call static UnityEngine.Vector3
UnityEngine.Vector3::Min(UnityEngine.Vector3 lhs, UnityEngine.Vector3 rhs)
IL_005A: stobj UnityEngine.Vector3
IL_005F: ldarg.s 10
IL_0061: ldarg.s 10
IL_0063: ldobj UnityEngine.Vector3
IL_0068: ldloc.3
IL_0069: call static UnityEngine.Vector3
UnityEngine.Vector3::Max(UnityEngine.Vector3 lhs, UnityEngine.Vector3 rhs)
IL_006E: stobj UnityEngine.Vector3
IL_0073: ldarg.3
IL_0074: ldarg.s 7
IL_0076: call static UnityEngine.Vector3
UnityEngine.Vector3::op_Subtraction(UnityEngine.Vector3 a, UnityEngine.Vector3 b)
IL_007B: stloc.s 4 (UnityEngine.Vector3)
IL_007D: ldarg.s 11
IL_007F: ldarg.s 11
IL_0081: ldind.r4
IL_0082: ldc.r4 30000
IL_0087: call static System.Single UnityEngine.Mathf::Max(System.Single a,
System.Single b)
IL_008C: stind.r4
IL_008D: ldarg.0
IL_008E: ldfld UnityEngine.LightType LightEffect::m_lightType
IL_0093: brtrue => Label2
IL_0098: ldarg.s 4
IL_009A: call static UnityEngine.Quaternion
UnityEngine.Quaternion::LookRotation(UnityEngine.Vector3 forward)
IL_009F: stloc.s 6 (UnityEngine.Quaternion)
IL_00A1: ldloc.s 6 (UnityEngine.Quaternion)
IL_00A3: ldarg.0
IL_00A4: ldfld UnityEngine.Quaternion LightEffect::m_lightRotation
IL_00A9: call static UnityEngine.Vector3 UnityEngine.Vector3::get_forward()
IL_00AE: call static UnityEngine.Vector3
UnityEngine.Quaternion::op_Multiply(UnityEngine.Quaternion rotation,
UnityEngine.Vector3 point)
IL_00B3: call static UnityEngine.Vector3
UnityEngine.Quaternion::op_Multiply(UnityEngine.Quaternion rotation,
UnityEngine.Vector3 point)
IL_00B8: stloc.s 5 (UnityEngine.Vector3)
IL_00BA: br => Label3
IL_00BF: Label2
IL_00BF: call static UnityEngine.Vector3 UnityEngine.Vector3::get_forward()
IL_00C4: stloc.s 5 (UnityEngine.Vector3)
IL_00C6: Label3
IL_00C6: ldloca.s 7 (UnityEngine.Vector4)
IL_00C8: ldloca.s 5 (UnityEngine.Vector3)
IL_00CA: ldfld System.Single UnityEngine.Vector3::x
IL_00CF: ldloca.s 5 (UnityEngine.Vector3)
IL_00D1: ldfld System.Single UnityEngine.Vector3::y
IL_00D6: ldloca.s 5 (UnityEngine.Vector3)
IL_00D8: ldfld System.Single UnityEngine.Vector3::z
IL_00DD: ldc.r4 100000
IL_00E2: call System.Void UnityEngine.Vector4::.ctor(System.Single x,
System.Single y, System.Single z, System.Single w)
IL_00E7: ldarg.0
IL_00E8: ldfld UnityEngine.LightType LightEffect::m_lightType
IL_00ED: brtrue => Label4
IL_00F2: ldloca.s 7 (UnityEngine.Vector4)
IL_00F4: ldc.r4 0.01745329
IL_00F9: ldarg.0
IL_00FA: ldfld System.Single LightEffect::m_lightSpotAngle
IL_00FF: mul
IL_0100: ldc.r4 0.5
IL_0105: mul
IL_0106: call static System.Single UnityEngine.Mathf::Cos(System.Single f)
IL_010B: neg
IL_010C: stfld System.Single UnityEngine.Vector4::w
IL_0111: Label4
IL_0111: ldloca.s 8 (UnityEngine.Vector2)
IL_0113: ldc.r4 1
IL_0118: ldarg.0
IL_0119: ldfld System.Single LightEffect::m_lightRange
IL_011E: ldarg.0
IL_011F: ldfld System.Single LightEffect::m_lightRange
IL_0124: mul
IL_0125: div
IL_0126: ldarg.0
IL_0127: ldfld System.Single LightEffect::m_lightIntensity
IL_012C: call System.Void UnityEngine.Vector2::.ctor(System.Single x,
System.Single y)
IL_0131: ldloca.s 9 (ColossalFramework.Math.Randomizer)
IL_0133: ldarga.s 2
IL_0135: call System.UInt32 InstanceID::get_Index()
IL_013A: call System.Void
ColossalFramework.Math.Randomizer::.ctor(System.UInt32 _seed)
IL_013F: ldloca.s 10 (UnityEngine.Vector2)
IL_0141: ldarg.0
IL_0142: ldflda UnityEngine.Vector2 LightEffect::m_offRange
IL_0147: ldfld System.Single UnityEngine.Vector2::x
IL_014C: ldloca.s 9 (ColossalFramework.Math.Randomizer)
IL_014E: ldc.i4 100000
IL_0153: call System.Int32
ColossalFramework.Math.Randomizer::Int32(System.UInt32 range)
IL_0158: conv.r4
IL_0159: ldc.r4 1E-05
IL_015E: mul
IL_015F: ldarg.0
IL_0160: ldflda UnityEngine.Vector2 LightEffect::m_offRange
IL_0165: ldfld System.Single UnityEngine.Vector2::y
IL_016A: ldarg.0
IL_016B: ldflda UnityEngine.Vector2 LightEffect::m_offRange
IL_0170: ldfld System.Single UnityEngine.Vector2::x
IL_0175: sub
IL_0176: mul
IL_0177: add
IL_0178: stfld System.Single UnityEngine.Vector2::x
IL_017D: ldloca.s 10 (UnityEngine.Vector2)
IL_017F: ldarg.0
IL_0180: ldfld BlinkType LightEffect::m_blinkType
IL_0185: conv.r4
IL_0186: stfld System.Single UnityEngine.Vector2::y
IL_018B: ldarg.2
IL_018C: call static System.UInt16 EffectInfo::GetBuilding(InstanceID id)
IL_0191: stloc.s 13 (System.UInt16)
IL_0193: ldloc.s 13 (System.UInt16)
IL_0195: brfalse => Label5
IL_019A: ldloc.s 13 (System.UInt16)
IL_019C: call static UnityEngine.Vector4
RenderManager::GetColorLocation(System.UInt32 instanceHolder)
IL_01A1: call static UnityEngine.Vector2
UnityEngine.Vector4::op_Implicit(UnityEngine.Vector4 v)
IL_01A6: stloc.s 11 (UnityEngine.Vector2)
IL_01A8: ldloc.0
IL_01A9: brfalse => Label6
IL_01AE: call static BuildingManager
ColossalFramework.Singleton`1<BuildingManager>::get_instance()
IL_01B3: ldfld Array16`1<Building> BuildingManager::m_buildings
IL_01B8: ldfld Building[] Array16`1<Building>::m_buffer
IL_01BD: ldloc.s 13 (System.UInt16)
IL_01BF: ldelema Building
IL_01C4: call UnityEngine.Vector3 Building::CalculateMeshPosition()
IL_01C9: stloc.s 14 (UnityEngine.Vector3)
IL_01CB: ldloc.s 14 (UnityEngine.Vector3)
IL_01CD: call static UnityEngine.Vector2
ColossalFramework.Math.VectorUtils::XZ(UnityEngine.Vector3 v)
IL_01D2: stloc.s 12 (UnityEngine.Vector2)
IL_01D4: ldarga.s 3
IL_01D6: dup
IL_01D7: ldfld System.Single UnityEngine.Vector3::y
IL_01DC: ldloca.s 14 (UnityEngine.Vector3)
IL_01DE: ldfld System.Single UnityEngine.Vector3::y
IL_01E3: sub
IL_01E4: stfld System.Single UnityEngine.Vector3::y
IL_01E9: ldloca.s 4 (UnityEngine.Vector3)
IL_01EB: dup
IL_01EC: ldfld System.Single UnityEngine.Vector3::y
IL_01F1: ldloca.s 14 (UnityEngine.Vector3)
IL_01F3: ldfld System.Single UnityEngine.Vector3::y
IL_01F8: sub
IL_01F9: stfld System.Single UnityEngine.Vector3::y
IL_01FE: br => Label7
IL_0203: Label6
IL_0203: call static UnityEngine.Vector2 UnityEngine.Vector2::get_zero()
IL_0208: stloc.s 12 (UnityEngine.Vector2)
IL_020A: Label7
IL_020A: br => Label8
IL_020F: Label5
IL_020F: ldsfld UnityEngine.Vector4 RenderManager::DefaultColorLocation
IL_0214: call static UnityEngine.Vector2
UnityEngine.Vector4::op_Implicit(UnityEngine.Vector4 v)
IL_0219: stloc.s 11 (UnityEngine.Vector2)
IL_021B: call static UnityEngine.Vector2 UnityEngine.Vector2::get_zero()
IL_0220: stloc.s 12 (UnityEngine.Vector2)
IL_0222: Label8
IL_0222: ldarg.0
IL_0223: ldfld UnityEngine.Color LightEffect::m_lightColor
IL_0228: stloc.s 15 (UnityEngine.Color)
IL_022A: ldarg.0
IL_022B: ldfld UnityEngine.Color[] LightEffect::m_variationColors
IL_0230: brfalse => Label9
IL_0235: ldarg.0
IL_0236: ldfld UnityEngine.Color[] LightEffect::m_variationColors
IL_023B: ldlen
IL_023C: conv.i4
IL_023D: brfalse => Label10
IL_0242: ldarg.0
IL_0243: ldfld UnityEngine.Color[] LightEffect::m_variationColors
IL_0248: ldloca.s 9 (ColossalFramework.Math.Randomizer)
IL_024A: ldarg.0
IL_024B: ldfld UnityEngine.Color[] LightEffect::m_variationColors
IL_0250: ldlen
IL_0251: conv.i4
IL_0252: call System.Int32
ColossalFramework.Math.Randomizer::Int32(System.UInt32 range)
IL_0257: ldelema UnityEngine.Color
IL_025C: ldobj UnityEngine.Color
IL_0261: stloc.s 16 (UnityEngine.Color)
IL_0263: ldloc.s 15 (UnityEngine.Color)
IL_0265: ldloc.s 16 (UnityEngine.Color)
IL_0267: ldloca.s 9 (ColossalFramework.Math.Randomizer)
IL_0269: ldc.i4 1000
IL_026E: call System.Int32
ColossalFramework.Math.Randomizer::Int32(System.UInt32 range)
IL_0273: conv.r4
IL_0274: ldc.r4 0.001
IL_0279: mul
IL_027A: call static UnityEngine.Color
UnityEngine.Color::Lerp(UnityEngine.Color a, UnityEngine.Color b, System.Single t)
IL_027F: stloc.s 15 (UnityEngine.Color)
IL_0281: Label9
IL_0281: Label10
IL_0281: ldloca.s 15 (UnityEngine.Color)
IL_0283: call UnityEngine.Color UnityEngine.Color::get_linear()
IL_0288: stloc.s 15 (UnityEngine.Color)
IL_028A: ldloca.s 15 (UnityEngine.Color)
IL_028C: ldarg.0
IL_028D: ldfld UnityEngine.LightType LightEffect::m_lightType
IL_0292: brtrue => Label11
IL_0297: ldarg.0
IL_0298: ldfld System.Single LightEffect::m_spotLeaking
IL_029D: br => Label12
IL_02A2: Label11
IL_02A2: ldc.r4 0
IL_02A7: Label12
IL_02A7: stfld System.Single UnityEngine.Color::a
IL_02AC: ldarg.0
IL_02AD: ldfld System.Single LightEffect::m_lightRange
IL_02B2: ldc.r4 0.5235988
IL_02B7: call static System.Single UnityEngine.Mathf::Cos(System.Single f)
IL_02BC: div
IL_02BD: stloc.s 17 (System.Single)
IL_02BF: ldloc.s 17 (System.Single)
IL_02C1: ldc.r4 0.5
IL_02C6: mul
IL_02C7: stloc.s 18 (System.Single)
IL_02C9: ldarg.s 8
IL_02CB: ldfld UnityEngine.Vector3[] MeshData::m_vertices
IL_02D0: ldarg.s 5
IL_02D2: ldind.i4
IL_02D3: ldelema UnityEngine.Vector3
IL_02D8: ldloca.s 4 (UnityEngine.Vector3)
IL_02DA: ldfld System.Single UnityEngine.Vector3::x
IL_02DF: ldloc.s 18 (System.Single)
IL_02E1: sub
IL_02E2: ldloca.s 4 (UnityEngine.Vector3)
IL_02E4: ldfld System.Single UnityEngine.Vector3::y
IL_02E9: ldarg.0
IL_02EA: ldfld System.Single LightEffect::m_lightRange
IL_02EF: add
IL_02F0: ldloca.s 4 (UnityEngine.Vector3)
IL_02F2: ldfld System.Single UnityEngine.Vector3::z
IL_02F7: ldarg.0
IL_02F8: ldfld System.Single LightEffect::m_lightRange
IL_02FD: add
IL_02FE: newobj System.Void UnityEngine.Vector3::.ctor(System.Single x,
System.Single y, System.Single z)
IL_0303: stobj UnityEngine.Vector3
IL_0308: ldarg.s 8
IL_030A: ldfld UnityEngine.Vector3[] MeshData::m_normals
IL_030F: ldarg.s 5
IL_0311: ldind.i4
IL_0312: ldelema UnityEngine.Vector3
IL_0317: ldarg.3
IL_0318: stobj UnityEngine.Vector3
IL_031D: ldarg.s 8
IL_031F: ldfld UnityEngine.Vector4[] MeshData::m_tangents
IL_0324: ldarg.s 5
IL_0326: ldind.i4
IL_0327: ldelema UnityEngine.Vector4
IL_032C: ldloc.s 7 (UnityEngine.Vector4)
IL_032E: stobj UnityEngine.Vector4
IL_0333: ldarg.s 8
IL_0335: ldfld UnityEngine.Vector2[] MeshData::m_uvs
IL_033A: ldarg.s 5
IL_033C: ldind.i4
IL_033D: ldelema UnityEngine.Vector2
IL_0342: ldloc.s 8 (UnityEngine.Vector2)
IL_0344: stobj UnityEngine.Vector2
IL_0349: ldarg.s 8
IL_034B: ldfld UnityEngine.Vector2[] MeshData::m_uvs2
IL_0350: ldarg.s 5
IL_0352: ldind.i4
IL_0353: ldelema UnityEngine.Vector2
IL_0358: ldloc.s 10 (UnityEngine.Vector2)
IL_035A: stobj UnityEngine.Vector2
IL_035F: ldarg.s 8
IL_0361: ldfld UnityEngine.Vector2[] MeshData::m_uvs3
IL_0366: ldarg.s 5
IL_0368: ldind.i4
IL_0369: ldelema UnityEngine.Vector2
IL_036E: ldloc.s 11 (UnityEngine.Vector2)
IL_0370: stobj UnityEngine.Vector2
IL_0375: ldloc.0
IL_0376: brfalse => Label13
IL_037B: ldarg.s 8
IL_037D: ldfld UnityEngine.Vector2[] MeshData::m_uvs4
IL_0382: ldarg.s 5
IL_0384: ldind.i4
IL_0385: ldelema UnityEngine.Vector2
IL_038A: ldloc.s 12 (UnityEngine.Vector2)
IL_038C: stobj UnityEngine.Vector2
IL_0391: Label13
IL_0391: ldarg.s 8
IL_0393: ldfld UnityEngine.Color32[] MeshData::m_colors
IL_0398: ldarg.s 5
IL_039A: ldind.i4
IL_039B: ldelema UnityEngine.Color32
IL_03A0: ldloc.s 15 (UnityEngine.Color)
IL_03A2: call static UnityEngine.Color32
UnityEngine.Color32::op_Implicit(UnityEngine.Color c)
IL_03A7: stobj UnityEngine.Color32
IL_03AC: ldarg.s 5
IL_03AE: ldarg.s 5
IL_03B0: ldind.i4
IL_03B1: ldc.i4.1
IL_03B2: add
IL_03B3: stind.i4
IL_03B4: ldarg.s 8
IL_03B6: ldfld UnityEngine.Vector3[] MeshData::m_vertices
IL_03BB: ldarg.s 5
IL_03BD: ldind.i4
IL_03BE: ldelema UnityEngine.Vector3
IL_03C3: ldloca.s 4 (UnityEngine.Vector3)
IL_03C5: ldfld System.Single UnityEngine.Vector3::x
IL_03CA: ldloc.s 18 (System.Single)
IL_03CC: add
IL_03CD: ldloca.s 4 (UnityEngine.Vector3)
IL_03CF: ldfld System.Single UnityEngine.Vector3::y
IL_03D4: ldarg.0
IL_03D5: ldfld System.Single LightEffect::m_lightRange
IL_03DA: add
IL_03DB: ldloca.s 4 (UnityEngine.Vector3)
IL_03DD: ldfld System.Single UnityEngine.Vector3::z
IL_03E2: ldarg.0
IL_03E3: ldfld System.Single LightEffect::m_lightRange
IL_03E8: add
IL_03E9: newobj System.Void UnityEngine.Vector3::.ctor(System.Single x,
System.Single y, System.Single z)
IL_03EE: stobj UnityEngine.Vector3
IL_03F3: ldarg.s 8
IL_03F5: ldfld UnityEngine.Vector3[] MeshData::m_normals
IL_03FA: ldarg.s 5
IL_03FC: ldind.i4
IL_03FD: ldelema UnityEngine.Vector3
IL_0402: ldarg.3
IL_0403: stobj UnityEngine.Vector3
IL_0408: ldarg.s 8
IL_040A: ldfld UnityEngine.Vector4[] MeshData::m_tangents
IL_040F: ldarg.s 5
IL_0411: ldind.i4
IL_0412: ldelema UnityEngine.Vector4
IL_0417: ldloc.s 7 (UnityEngine.Vector4)
IL_0419: stobj UnityEngine.Vector4
IL_041E: ldarg.s 8
IL_0420: ldfld UnityEngine.Vector2[] MeshData::m_uvs
IL_0425: ldarg.s 5
IL_0427: ldind.i4
IL_0428: ldelema UnityEngine.Vector2
IL_042D: ldloc.s 8 (UnityEngine.Vector2)
IL_042F: stobj UnityEngine.Vector2
IL_0434: ldarg.s 8
IL_0436: ldfld UnityEngine.Vector2[] MeshData::m_uvs2
IL_043B: ldarg.s 5
IL_043D: ldind.i4
IL_043E: ldelema UnityEngine.Vector2
IL_0443: ldloc.s 10 (UnityEngine.Vector2)
IL_0445: stobj UnityEngine.Vector2
IL_044A: ldarg.s 8
IL_044C: ldfld UnityEngine.Vector2[] MeshData::m_uvs3
IL_0451: ldarg.s 5
IL_0453: ldind.i4
IL_0454: ldelema UnityEngine.Vector2
IL_0459: ldloc.s 11 (UnityEngine.Vector2)
IL_045B: stobj UnityEngine.Vector2
IL_0460: ldloc.0
IL_0461: brfalse => Label14
IL_0466: ldarg.s 8
IL_0468: ldfld UnityEngine.Vector2[] MeshData::m_uvs4
IL_046D: ldarg.s 5
IL_046F: ldind.i4
IL_0470: ldelema UnityEngine.Vector2
IL_0475: ldloc.s 12 (UnityEngine.Vector2)
IL_0477: stobj UnityEngine.Vector2
IL_047C: Label14
IL_047C: ldarg.s 8
IL_047E: ldfld UnityEngine.Color32[] MeshData::m_colors
IL_0483: ldarg.s 5
IL_0485: ldind.i4
IL_0486: ldelema UnityEngine.Color32
IL_048B: ldloc.s 15 (UnityEngine.Color)
IL_048D: call static UnityEngine.Color32
UnityEngine.Color32::op_Implicit(UnityEngine.Color c)
IL_0492: stobj UnityEngine.Color32
IL_0497: ldarg.s 5
IL_0499: ldarg.s 5
IL_049B: ldind.i4
IL_049C: ldc.i4.1
IL_049D: add
IL_049E: stind.i4
IL_049F: ldarg.s 8
IL_04A1: ldfld UnityEngine.Vector3[] MeshData::m_vertices
IL_04A6: ldarg.s 5
IL_04A8: ldind.i4
IL_04A9: ldelema UnityEngine.Vector3
IL_04AE: ldloca.s 4 (UnityEngine.Vector3)
IL_04B0: ldfld System.Single UnityEngine.Vector3::x
IL_04B5: ldloc.s 17 (System.Single)
IL_04B7: add
IL_04B8: ldloca.s 4 (UnityEngine.Vector3)
IL_04BA: ldfld System.Single UnityEngine.Vector3::y
IL_04BF: ldloca.s 4 (UnityEngine.Vector3)
IL_04C1: ldfld System.Single UnityEngine.Vector3::z
IL_04C6: ldarg.0
IL_04C7: ldfld System.Single LightEffect::m_lightRange
IL_04CC: add
IL_04CD: newobj System.Void UnityEngine.Vector3::.ctor(System.Single x,
System.Single y, System.Single z)
IL_04D2: stobj UnityEngine.Vector3
IL_04D7: ldarg.s 8
IL_04D9: ldfld UnityEngine.Vector3[] MeshData::m_normals
IL_04DE: ldarg.s 5
IL_04E0: ldind.i4
IL_04E1: ldelema UnityEngine.Vector3
IL_04E6: ldarg.3
IL_04E7: stobj UnityEngine.Vector3
IL_04EC: ldarg.s 8
IL_04EE: ldfld UnityEngine.Vector4[] MeshData::m_tangents
IL_04F3: ldarg.s 5
IL_04F5: ldind.i4
IL_04F6: ldelema UnityEngine.Vector4
IL_04FB: ldloc.s 7 (UnityEngine.Vector4)
IL_04FD: stobj UnityEngine.Vector4
IL_0502: ldarg.s 8
IL_0504: ldfld UnityEngine.Vector2[] MeshData::m_uvs
IL_0509: ldarg.s 5
IL_050B: ldind.i4
IL_050C: ldelema UnityEngine.Vector2
IL_0511: ldloc.s 8 (UnityEngine.Vector2)
IL_0513: stobj UnityEngine.Vector2
IL_0518: ldarg.s 8
IL_051A: ldfld UnityEngine.Vector2[] MeshData::m_uvs2
IL_051F: ldarg.s 5
IL_0521: ldind.i4
IL_0522: ldelema UnityEngine.Vector2
IL_0527: ldloc.s 10 (UnityEngine.Vector2)
IL_0529: stobj UnityEngine.Vector2
IL_052E: ldarg.s 8
IL_0530: ldfld UnityEngine.Vector2[] MeshData::m_uvs3
IL_0535: ldarg.s 5
IL_0537: ldind.i4
IL_0538: ldelema UnityEngine.Vector2
IL_053D: ldloc.s 11 (UnityEngine.Vector2)
IL_053F: stobj UnityEngine.Vector2
IL_0544: ldloc.0
IL_0545: brfalse => Label15
IL_054A: ldarg.s 8
IL_054C: ldfld UnityEngine.Vector2[] MeshData::m_uvs4
IL_0551: ldarg.s 5
IL_0553: ldind.i4
IL_0554: ldelema UnityEngine.Vector2
IL_0559: ldloc.s 12 (UnityEngine.Vector2)
IL_055B: stobj UnityEngine.Vector2
IL_0560: Label15
IL_0560: ldarg.s 8
IL_0562: ldfld UnityEngine.Color32[] MeshData::m_colors
IL_0567: ldarg.s 5
IL_0569: ldind.i4
IL_056A: ldelema UnityEngine.Color32
IL_056F: ldloc.s 15 (UnityEngine.Color)
IL_0571: call static UnityEngine.Color32
UnityEngine.Color32::op_Implicit(UnityEngine.Color c)
IL_0576: stobj UnityEngine.Color32
IL_057B: ldarg.s 5
IL_057D: ldarg.s 5
IL_057F: ldind.i4
IL_0580: ldc.i4.1
IL_0581: add
IL_0582: stind.i4
IL_0583: ldarg.s 8
IL_0585: ldfld UnityEngine.Vector3[] MeshData::m_vertices
IL_058A: ldarg.s 5
IL_058C: ldind.i4
IL_058D: ldelema UnityEngine.Vector3
IL_0592: ldloca.s 4 (UnityEngine.Vector3)
IL_0594: ldfld System.Single UnityEngine.Vector3::x
IL_0599: ldloc.s 18 (System.Single)
IL_059B: add
IL_059C: ldloca.s 4 (UnityEngine.Vector3)
IL_059E: ldfld System.Single UnityEngine.Vector3::y
IL_05A3: ldarg.0
IL_05A4: ldfld System.Single LightEffect::m_lightRange
IL_05A9: sub
IL_05AA: ldloca.s 4 (UnityEngine.Vector3)
IL_05AC: ldfld System.Single UnityEngine.Vector3::z
IL_05B1: ldarg.0
IL_05B2: ldfld System.Single LightEffect::m_lightRange
IL_05B7: add
IL_05B8: newobj System.Void UnityEngine.Vector3::.ctor(System.Single x,
System.Single y, System.Single z)
IL_05BD: stobj UnityEngine.Vector3
IL_05C2: ldarg.s 8
IL_05C4: ldfld UnityEngine.Vector3[] MeshData::m_normals
IL_05C9: ldarg.s 5
IL_05CB: ldind.i4
IL_05CC: ldelema UnityEngine.Vector3
IL_05D1: ldarg.3
IL_05D2: stobj UnityEngine.Vector3
IL_05D7: ldarg.s 8
IL_05D9: ldfld UnityEngine.Vector4[] MeshData::m_tangents
IL_05DE: ldarg.s 5
IL_05E0: ldind.i4
IL_05E1: ldelema UnityEngine.Vector4
IL_05E6: ldloc.s 7 (UnityEngine.Vector4)
IL_05E8: stobj UnityEngine.Vector4
IL_05ED: ldarg.s 8
IL_05EF: ldfld UnityEngine.Vector2[] MeshData::m_uvs
IL_05F4: ldarg.s 5
IL_05F6: ldind.i4
IL_05F7: ldelema UnityEngine.Vector2
IL_05FC: ldloc.s 8 (UnityEngine.Vector2)
IL_05FE: stobj UnityEngine.Vector2
IL_0603: ldarg.s 8
IL_0605: ldfld UnityEngine.Vector2[] MeshData::m_uvs2
IL_060A: ldarg.s 5
IL_060C: ldind.i4
IL_060D: ldelema UnityEngine.Vector2
IL_0612: ldloc.s 10 (UnityEngine.Vector2)
IL_0614: stobj UnityEngine.Vector2
IL_0619: ldarg.s 8
IL_061B: ldfld UnityEngine.Vector2[] MeshData::m_uvs3
IL_0620: ldarg.s 5
IL_0622: ldind.i4
IL_0623: ldelema UnityEngine.Vector2
IL_0628: ldloc.s 11 (UnityEngine.Vector2)
IL_062A: stobj UnityEngine.Vector2
IL_062F: ldloc.0
IL_0630: brfalse => Label16
IL_0635: ldarg.s 8
IL_0637: ldfld UnityEngine.Vector2[] MeshData::m_uvs4
IL_063C: ldarg.s 5
IL_063E: ldind.i4
IL_063F: ldelema UnityEngine.Vector2
IL_0644: ldloc.s 12 (UnityEngine.Vector2)
IL_0646: stobj UnityEngine.Vector2
IL_064B: Label16
IL_064B: ldarg.s 8
IL_064D: ldfld UnityEngine.Color32[] MeshData::m_colors
IL_0652: ldarg.s 5
IL_0654: ldind.i4
IL_0655: ldelema UnityEngine.Color32
IL_065A: ldloc.s 15 (UnityEngine.Color)
IL_065C: call static UnityEngine.Color32
UnityEngine.Color32::op_Implicit(UnityEngine.Color c)
IL_0661: stobj UnityEngine.Color32
IL_0666: ldarg.s 5
IL_0668: ldarg.s 5
IL_066A: ldind.i4
IL_066B: ldc.i4.1
IL_066C: add
IL_066D: stind.i4
IL_066E: ldarg.s 8
IL_0670: ldfld UnityEngine.Vector3[] MeshData::m_vertices
IL_0675: ldarg.s 5
IL_0677: ldind.i4
IL_0678: ldelema UnityEngine.Vector3
IL_067D: ldloca.s 4 (UnityEngine.Vector3)
IL_067F: ldfld System.Single UnityEngine.Vector3::x
IL_0684: ldloc.s 18 (System.Single)
IL_0686: sub
IL_0687: ldloca.s 4 (UnityEngine.Vector3)
IL_0689: ldfld System.Single UnityEngine.Vector3::y
IL_068E: ldarg.0
IL_068F: ldfld System.Single LightEffect::m_lightRange
IL_0694: sub
IL_0695: ldloca.s 4 (UnityEngine.Vector3)
IL_0697: ldfld System.Single UnityEngine.Vector3::z
IL_069C: ldarg.0
IL_069D: ldfld System.Single LightEffect::m_lightRange
IL_06A2: add
IL_06A3: newobj System.Void UnityEngine.Vector3::.ctor(System.Single x,
System.Single y, System.Single z)
IL_06A8: stobj UnityEngine.Vector3
IL_06AD: ldarg.s 8
IL_06AF: ldfld UnityEngine.Vector3[] MeshData::m_normals
IL_06B4: ldarg.s 5
IL_06B6: ldind.i4
IL_06B7: ldelema UnityEngine.Vector3
IL_06BC: ldarg.3
IL_06BD: stobj UnityEngine.Vector3
IL_06C2: ldarg.s 8
IL_06C4: ldfld UnityEngine.Vector4[] MeshData::m_tangents
IL_06C9: ldarg.s 5
IL_06CB: ldind.i4
IL_06CC: ldelema UnityEngine.Vector4
IL_06D1: ldloc.s 7 (UnityEngine.Vector4)
IL_06D3: stobj UnityEngine.Vector4
IL_06D8: ldarg.s 8
IL_06DA: ldfld UnityEngine.Vector2[] MeshData::m_uvs
IL_06DF: ldarg.s 5
IL_06E1: ldind.i4
IL_06E2: ldelema UnityEngine.Vector2
IL_06E7: ldloc.s 8 (UnityEngine.Vector2)
IL_06E9: stobj UnityEngine.Vector2
IL_06EE: ldarg.s 8
IL_06F0: ldfld UnityEngine.Vector2[] MeshData::m_uvs2
IL_06F5: ldarg.s 5
IL_06F7: ldind.i4
IL_06F8: ldelema UnityEngine.Vector2
IL_06FD: ldloc.s 10 (UnityEngine.Vector2)
IL_06FF: stobj UnityEngine.Vector2
IL_0704: ldarg.s 8
IL_0706: ldfld UnityEngine.Vector2[] MeshData::m_uvs3
IL_070B: ldarg.s 5
IL_070D: ldind.i4
IL_070E: ldelema UnityEngine.Vector2
IL_0713: ldloc.s 11 (UnityEngine.Vector2)
IL_0715: stobj UnityEngine.Vector2
IL_071A: ldloc.0
IL_071B: brfalse => Label17
IL_0720: ldarg.s 8
IL_0722: ldfld UnityEngine.Vector2[] MeshData::m_uvs4
IL_0727: ldarg.s 5
IL_0729: ldind.i4
IL_072A: ldelema UnityEngine.Vector2
IL_072F: ldloc.s 12 (UnityEngine.Vector2)
IL_0731: stobj UnityEngine.Vector2
IL_0736: Label17
IL_0736: ldarg.s 8
IL_0738: ldfld UnityEngine.Color32[] MeshData::m_colors
IL_073D: ldarg.s 5
IL_073F: ldind.i4
IL_0740: ldelema UnityEngine.Color32
IL_0745: ldloc.s 15 (UnityEngine.Color)
IL_0747: call static UnityEngine.Color32
UnityEngine.Color32::op_Implicit(UnityEngine.Color c)
IL_074C: stobj UnityEngine.Color32
IL_0751: ldarg.s 5
IL_0753: ldarg.s 5
IL_0755: ldind.i4
IL_0756: ldc.i4.1
IL_0757: add
IL_0758: stind.i4
IL_0759: ldarg.s 8
IL_075B: ldfld UnityEngine.Vector3[] MeshData::m_vertices
IL_0760: ldarg.s 5
IL_0762: ldind.i4
IL_0763: ldelema UnityEngine.Vector3
IL_0768: ldloca.s 4 (UnityEngine.Vector3)
IL_076A: ldfld System.Single UnityEngine.Vector3::x
IL_076F: ldloc.s 17 (System.Single)
IL_0771: sub
IL_0772: ldloca.s 4 (UnityEngine.Vector3)
IL_0774: ldfld System.Single UnityEngine.Vector3::y
IL_0779: ldloca.s 4 (UnityEngine.Vector3)
IL_077B: ldfld System.Single UnityEngine.Vector3::z
IL_0780: ldarg.0
IL_0781: ldfld System.Single LightEffect::m_lightRange
IL_0786: add
IL_0787: newobj System.Void UnityEngine.Vector3::.ctor(System.Single x,
System.Single y, System.Single z)
IL_078C: stobj UnityEngine.Vector3
IL_0791: ldarg.s 8
IL_0793: ldfld UnityEngine.Vector3[] MeshData::m_normals
IL_0798: ldarg.s 5
IL_079A: ldind.i4
IL_079B: ldelema UnityEngine.Vector3
IL_07A0: ldarg.3
IL_07A1: stobj UnityEngine.Vector3
IL_07A6: ldarg.s 8
IL_07A8: ldfld UnityEngine.Vector4[] MeshData::m_tangents
IL_07AD: ldarg.s 5
IL_07AF: ldind.i4
IL_07B0: ldelema UnityEngine.Vector4
IL_07B5: ldloc.s 7 (UnityEngine.Vector4)
IL_07B7: stobj UnityEngine.Vector4
IL_07BC: ldarg.s 8
IL_07BE: ldfld UnityEngine.Vector2[] MeshData::m_uvs
IL_07C3: ldarg.s 5
IL_07C5: ldind.i4
IL_07C6: ldelema UnityEngine.Vector2
IL_07CB: ldloc.s 8 (UnityEngine.Vector2)
IL_07CD: stobj UnityEngine.Vector2
IL_07D2: ldarg.s 8
IL_07D4: ldfld UnityEngine.Vector2[] MeshData::m_uvs2
IL_07D9: ldarg.s 5
IL_07DB: ldind.i4
IL_07DC: ldelema UnityEngine.Vector2
IL_07E1: ldloc.s 10 (UnityEngine.Vector2)
IL_07E3: stobj UnityEngine.Vector2
IL_07E8: ldarg.s 8
IL_07EA: ldfld UnityEngine.Vector2[] MeshData::m_uvs3
IL_07EF: ldarg.s 5
IL_07F1: ldind.i4
IL_07F2: ldelema UnityEngine.Vector2
IL_07F7: ldloc.s 11 (UnityEngine.Vector2)
IL_07F9: stobj UnityEngine.Vector2
IL_07FE: ldloc.0
IL_07FF: brfalse => Label18
IL_0804: ldarg.s 8
IL_0806: ldfld UnityEngine.Vector2[] MeshData::m_uvs4
IL_080B: ldarg.s 5
IL_080D: ldind.i4
IL_080E: ldelema UnityEngine.Vector2
IL_0813: ldloc.s 12 (UnityEngine.Vector2)
IL_0815: stobj UnityEngine.Vector2
IL_081A: Label18
IL_081A: ldarg.s 8
IL_081C: ldfld UnityEngine.Color32[] MeshData::m_colors
IL_0821: ldarg.s 5
IL_0823: ldind.i4
IL_0824: ldelema UnityEngine.Color32
IL_0829: ldloc.s 15 (UnityEngine.Color)
IL_082B: call static UnityEngine.Color32
UnityEngine.Color32::op_Implicit(UnityEngine.Color c)
IL_0830: stobj UnityEngine.Color32
IL_0835: ldarg.s 5
IL_0837: ldarg.s 5
IL_0839: ldind.i4
IL_083A: ldc.i4.1
IL_083B: add
IL_083C: stind.i4
IL_083D: ldarg.s 8
IL_083F: ldfld System.Int32[] MeshData::m_triangles
IL_0844: ldarg.s 6
IL_0846: ldarg.s 6
IL_0848: ldind.i4
IL_0849: dup
IL_084A: stloc.s 19 (System.Int32)
IL_084C: ldc.i4.1
IL_084D: add
IL_084E: stind.i4
IL_084F: ldloc.s 19 (System.Int32)
IL_0851: ldarg.s 5
IL_0853: ldind.i4
IL_0854: ldc.i4.6
IL_0855: sub
IL_0856: stelem.i4
IL_0857: ldarg.s 8
IL_0859: ldfld System.Int32[] MeshData::m_triangles
IL_085E: ldarg.s 6
IL_0860: ldarg.s 6
IL_0862: ldind.i4
IL_0863: dup
IL_0864: stloc.s 19 (System.Int32)
IL_0866: ldc.i4.1
IL_0867: add
IL_0868: stind.i4
IL_0869: ldloc.s 19 (System.Int32)
IL_086B: ldarg.s 5
IL_086D: ldind.i4
IL_086E: ldc.i4.5
IL_086F: sub
IL_0870: stelem.i4
IL_0871: ldarg.s 8
IL_0873: ldfld System.Int32[] MeshData::m_triangles
IL_0878: ldarg.s 6
IL_087A: ldarg.s 6
IL_087C: ldind.i4
IL_087D: dup
IL_087E: stloc.s 19 (System.Int32)
IL_0880: ldc.i4.1
IL_0881: add
IL_0882: stind.i4
IL_0883: ldloc.s 19 (System.Int32)
IL_0885: ldarg.s 5
IL_0887: ldind.i4
IL_0888: ldc.i4.1
IL_0889: sub
IL_088A: stelem.i4
IL_088B: ldarg.s 8
IL_088D: ldfld System.Int32[] MeshData::m_triangles
IL_0892: ldarg.s 6
IL_0894: ldarg.s 6
IL_0896: ldind.i4
IL_0897: dup
IL_0898: stloc.s 19 (System.Int32)
IL_089A: ldc.i4.1
IL_089B: add
IL_089C: stind.i4
IL_089D: ldloc.s 19 (System.Int32)
IL_089F: ldarg.s 5
IL_08A1: ldind.i4
IL_08A2: ldc.i4.1
IL_08A3: sub
IL_08A4: stelem.i4
IL_08A5: ldarg.s 8
IL_08A7: ldfld System.Int32[] MeshData::m_triangles
IL_08AC: ldarg.s 6
IL_08AE: ldarg.s 6
IL_08B0: ldind.i4
IL_08B1: dup
IL_08B2: stloc.s 19 (System.Int32)
IL_08B4: ldc.i4.1
IL_08B5: add
IL_08B6: stind.i4
IL_08B7: ldloc.s 19 (System.Int32)
IL_08B9: ldarg.s 5
IL_08BB: ldind.i4
IL_08BC: ldc.i4.5
IL_08BD: sub
IL_08BE: stelem.i4
IL_08BF: ldarg.s 8
IL_08C1: ldfld System.Int32[] MeshData::m_triangles
IL_08C6: ldarg.s 6
IL_08C8: ldarg.s 6
IL_08CA: ldind.i4
IL_08CB: dup
IL_08CC: stloc.s 19 (System.Int32)
IL_08CE: ldc.i4.1
IL_08CF: add
IL_08D0: stind.i4
IL_08D1: ldloc.s 19 (System.Int32)
IL_08D3: ldarg.s 5
IL_08D5: ldind.i4
IL_08D6: ldc.i4.4
IL_08D7: sub
IL_08D8: stelem.i4
IL_08D9: ldarg.s 8
IL_08DB: ldfld System.Int32[] MeshData::m_triangles
IL_08E0: ldarg.s 6
IL_08E2: ldarg.s 6
IL_08E4: ldind.i4
IL_08E5: dup
IL_08E6: stloc.s 19 (System.Int32)
IL_08E8: ldc.i4.1
IL_08E9: add
IL_08EA: stind.i4
IL_08EB: ldloc.s 19 (System.Int32)
IL_08ED: ldarg.s 5
IL_08EF: ldind.i4
IL_08F0: ldc.i4.1
IL_08F1: sub
IL_08F2: stelem.i4
IL_08F3: ldarg.s 8
IL_08F5: ldfld System.Int32[] MeshData::m_triangles
IL_08FA: ldarg.s 6
IL_08FC: ldarg.s 6
IL_08FE: ldind.i4
IL_08FF: dup
IL_0900: stloc.s 19 (System.Int32)
IL_0902: ldc.i4.1
IL_0903: add
IL_0904: stind.i4
IL_0905: ldloc.s 19 (System.Int32)
IL_0907: ldarg.s 5
IL_0909: ldind.i4
IL_090A: ldc.i4.4
IL_090B: sub
IL_090C: stelem.i4
IL_090D: ldarg.s 8
IL_090F: ldfld System.Int32[] MeshData::m_triangles
IL_0914: ldarg.s 6
IL_0916: ldarg.s 6
IL_0918: ldind.i4
IL_0919: dup
IL_091A: stloc.s 19 (System.Int32)
IL_091C: ldc.i4.1
IL_091D: add
IL_091E: stind.i4
IL_091F: ldloc.s 19 (System.Int32)
IL_0921: ldarg.s 5
IL_0923: ldind.i4
IL_0924: ldc.i4.2
IL_0925: sub
IL_0926: stelem.i4
IL_0927: ldarg.s 8
IL_0929: ldfld System.Int32[] MeshData::m_triangles
IL_092E: ldarg.s 6
IL_0930: ldarg.s 6
IL_0932: ldind.i4
IL_0933: dup
IL_0934: stloc.s 19 (System.Int32)
IL_0936: ldc.i4.1
IL_0937: add
IL_0938: stind.i4
IL_0939: ldloc.s 19 (System.Int32)
IL_093B: ldarg.s 5
IL_093D: ldind.i4
IL_093E: ldc.i4.2
IL_093F: sub
IL_0940: stelem.i4
IL_0941: ldarg.s 8
IL_0943: ldfld System.Int32[] MeshData::m_triangles
IL_0948: ldarg.s 6
IL_094A: ldarg.s 6
IL_094C: ldind.i4
IL_094D: dup
IL_094E: stloc.s 19 (System.Int32)
IL_0950: ldc.i4.1
IL_0951: add
IL_0952: stind.i4
IL_0953: ldloc.s 19 (System.Int32)
IL_0955: ldarg.s 5
IL_0957: ldind.i4
IL_0958: ldc.i4.4
IL_0959: sub
IL_095A: stelem.i4
IL_095B: ldarg.s 8
IL_095D: ldfld System.Int32[] MeshData::m_triangles
IL_0962: ldarg.s 6
IL_0964: ldarg.s 6
IL_0966: ldind.i4
IL_0967: dup
IL_0968: stloc.s 19 (System.Int32)
IL_096A: ldc.i4.1
IL_096B: add
IL_096C: stind.i4
IL_096D: ldloc.s 19 (System.Int32)
IL_096F: ldarg.s 5
IL_0971: ldind.i4
IL_0972: ldc.i4.3
IL_0973: sub
IL_0974: stelem.i4
IL_0975: // end original
IL_0975: Label1
IL_0975: ret
DONE

### Patch: virtual System.Void ElectricityManager::SimulationStepImpl(System.Int32


subStep)
### Replacement: static System.Void
ElectricityManager::ElectricityManager.SimulationStepImpl_Patch0(ElectricityManager
this, System.Int32 subStep)
IL_0000: Local var 0: System.UInt32
IL_0000: Local var 1: System.Int32
IL_0000: Local var 2: NetManager
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: NetInfo
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: ElectricityManager/Cell
IL_0000: Local var 13: ElectricityManager/PulseGroup
IL_0000: Local var 14: ElectricityManager/PulseUnit
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: ElectricityManager/PulseUnit
IL_0000: Local var 19: System.UInt32
IL_0000: Local var 20: System.Int32
IL_0000: Local var 21: ElectricityManager/Cell
IL_0000: Local var 22: System.Int32
IL_0000: Local var 23: System.Int32
IL_0000: Local var 24: NetNode
IL_0000: Local var 25: System.Int32
IL_0000: Local var 26: System.UInt16
IL_0000: Local var 27: System.UInt16
IL_0000: Local var 28: System.UInt16
IL_0000: Local var 29: System.UInt16
IL_0000: Local var 30: System.Int32
IL_0000: Local var 31: ElectricityManager/PulseGroup
IL_0000: Local var 32: ElectricityManager/PulseGroup
IL_0000: Local var 33: System.Int32
IL_0000: Local var 34: ElectricityManager/PulseGroup
IL_0000: Local var 35: System.Int32
IL_0000: Local var 36: ElectricityManager/Cell
IL_0000: // start original
IL_0000: ldarg.1
IL_0001: brfalse => Label0
IL_0006: ldarg.1
IL_0007: ldc.i4 1000
IL_000C: beq => Label1
IL_0011: call static SimulationManager
ColossalFramework.Singleton`1<SimulationManager>::get_instance()
IL_0016: ldfld System.UInt32 SimulationManager::m_currentFrameIndex
IL_001B: stloc.0
IL_001C: ldloc.0
IL_001D: ldc.i4 255
IL_0022: and
IL_0023: stloc.1
IL_0024: ldloc.1
IL_0025: ldc.i4 128
IL_002A: bge => Label2
IL_002F: ldloc.1
IL_0030: brtrue => Label3
IL_0035: ldarg.0
IL_0036: ldc.i4.0
IL_0037: stfld System.Int32 ElectricityManager::m_pulseGroupCount
IL_003C: ldarg.0
IL_003D: ldc.i4.0
IL_003E: stfld System.Int32 ElectricityManager::m_pulseUnitStart
IL_0043: ldarg.0
IL_0044: ldc.i4.0
IL_0045: stfld System.Int32 ElectricityManager::m_pulseUnitEnd
IL_004A: ldarg.0
IL_004B: ldc.i4.0
IL_004C: stfld System.Int32 ElectricityManager::m_processedCells
IL_0051: ldarg.0
IL_0052: ldc.i4.0
IL_0053: stfld System.Int32 ElectricityManager::m_conductiveCells
IL_0058: ldarg.0
IL_0059: ldc.i4.1
IL_005A: stfld System.Boolean ElectricityManager::m_canContinue
IL_005F: Label3
IL_005F: call static NetManager
ColossalFramework.Singleton`1<NetManager>::get_instance()
IL_0064: stloc.2
IL_0065: ldloc.1
IL_0066: ldc.i4 32768
IL_006B: mul
IL_006C: ldc.i4.7
IL_006D: shr
IL_006E: stloc.3
IL_006F: ldloc.1
IL_0070: ldc.i4.1
IL_0071: add
IL_0072: ldc.i4 32768
IL_0077: mul
IL_0078: ldc.i4.7
IL_0079: shr
IL_007A: ldc.i4.1
IL_007B: sub
IL_007C: stloc.s 4 (System.Int32)
IL_007E: ldloc.3
IL_007F: stloc.s 5 (System.Int32)
IL_0081: br => Label4
IL_0086: Label10
IL_0086: ldloc.2
IL_0087: ldfld Array16`1<NetNode> NetManager::m_nodes
IL_008C: ldfld NetNode[] Array16`1<NetNode>::m_buffer
IL_0091: ldloc.s 5 (System.Int32)
IL_0093: ldelema NetNode
IL_0098: ldfld Flags NetNode::m_flags
IL_009D: brfalse => Label5
IL_00A2: ldloc.2
IL_00A3: ldfld Array16`1<NetNode> NetManager::m_nodes
IL_00A8: ldfld NetNode[] Array16`1<NetNode>::m_buffer
IL_00AD: ldloc.s 5 (System.Int32)
IL_00AF: ldelema NetNode
IL_00B4: call NetInfo NetNode::get_Info()
IL_00B9: stloc.s 6 (NetInfo)
IL_00BB: ldloc.s 6 (NetInfo)
IL_00BD: ldfld ItemClass NetInfo::m_class
IL_00C2: ldfld Service ItemClass::m_service
IL_00C7: ldc.i4.s 10
IL_00C9: beq => Label6
IL_00CE: ldloc.s 6 (NetInfo)
IL_00D0: ldfld NetAI NetInfo::m_netAI
IL_00D5: isinst ConcourseAI
IL_00DA: brfalse => Label7
IL_00DF: Label6
IL_00DF: ldarg.0
IL_00E0: ldloc.s 5 (System.Int32)
IL_00E2: ldarg.0
IL_00E3: ldfld System.UInt16[] ElectricityManager::m_nodeGroups
IL_00E8: ldloc.s 5 (System.Int32)
IL_00EA: ldelem.u2
IL_00EB: ldc.i4 65535
IL_00F0: beq => Label8
IL_00F5: ldc.i4.1
IL_00F6: br => Label9
IL_00FB: Label8
IL_00FB: ldc.i4.0
IL_00FC: Label9
IL_00FC: call System.Void
ElectricityManager::UpdateNodeElectricity(System.Int32 nodeID, System.Int32 value)
IL_0101: ldarg.0
IL_0102: dup
IL_0103: ldfld System.Int32 ElectricityManager::m_conductiveCells
IL_0108: ldc.i4.1
IL_0109: add
IL_010A: stfld System.Int32 ElectricityManager::m_conductiveCells
IL_010F: Label5
IL_010F: Label7
IL_010F: ldarg.0
IL_0110: ldfld System.UInt16[] ElectricityManager::m_nodeGroups
IL_0115: ldloc.s 5 (System.Int32)
IL_0117: ldc.i4 65535
IL_011C: stelem.i2
IL_011D: ldloc.s 5 (System.Int32)
IL_011F: ldc.i4.1
IL_0120: add
IL_0121: stloc.s 5 (System.Int32)
IL_0123: Label4
IL_0123: ldloc.s 5 (System.Int32)
IL_0125: ldloc.s 4 (System.Int32)
IL_0127: ble => Label10
IL_012C: ldloc.1
IL_012D: ldc.i4 256
IL_0132: mul
IL_0133: ldc.i4.7
IL_0134: shr
IL_0135: stloc.s 7 (System.Int32)
IL_0137: ldloc.1
IL_0138: ldc.i4.1
IL_0139: add
IL_013A: ldc.i4 256
IL_013F: mul
IL_0140: ldc.i4.7
IL_0141: shr
IL_0142: ldc.i4.1
IL_0143: sub
IL_0144: stloc.s 8 (System.Int32)
IL_0146: ldloc.s 7 (System.Int32)
IL_0148: stloc.s 9 (System.Int32)
IL_014A: br => Label11
IL_014F: Label21
IL_014F: ldloc.s 9 (System.Int32)
IL_0151: ldc.i4 256
IL_0156: mul
IL_0157: stloc.s 10 (System.Int32)
IL_0159: ldc.i4.0
IL_015A: stloc.s 11 (System.Int32)
IL_015C: br => Label12
IL_0161: Label20
IL_0161: ldarg.0
IL_0162: ldfld Cell[] ElectricityManager::m_electricityGrid
IL_0167: ldloc.s 10 (System.Int32)
IL_0169: ldelema ElectricityManager+Cell
IL_016E: ldobj ElectricityManager+Cell
IL_0173: stloc.s 12 (ElectricityManager+Cell)
IL_0175: ldloca.s 12 (ElectricityManager+Cell)
IL_0177: ldfld System.Int16 Cell::m_currentCharge
IL_017C: ldc.i4.0
IL_017D: ble => Label13
IL_0182: ldarg.0
IL_0183: ldfld System.Int32 ElectricityManager::m_pulseGroupCount
IL_0188: ldc.i4 1024
IL_018D: bge => Label14
IL_0192: ldloca.s 13 (ElectricityManager+PulseGroup)
IL_0194: ldloca.s 12 (ElectricityManager+Cell)
IL_0196: ldfld System.Int16 Cell::m_currentCharge
IL_019B: conv.u4
IL_019C: stfld System.UInt32 PulseGroup::m_origCharge
IL_01A1: ldloca.s 13 (ElectricityManager+PulseGroup)
IL_01A3: ldloca.s 12 (ElectricityManager+Cell)
IL_01A5: ldfld System.Int16 Cell::m_currentCharge
IL_01AA: conv.u4
IL_01AB: stfld System.UInt32 PulseGroup::m_curCharge
IL_01B0: ldloca.s 13 (ElectricityManager+PulseGroup)
IL_01B2: ldc.i4.0
IL_01B3: stfld System.UInt16 PulseGroup::m_mergeCount
IL_01B8: ldloca.s 13 (ElectricityManager+PulseGroup)
IL_01BA: ldc.i4 65535
IL_01BF: stfld System.UInt16 PulseGroup::m_mergeIndex
IL_01C4: ldloca.s 13 (ElectricityManager+PulseGroup)
IL_01C6: ldloc.s 11 (System.Int32)
IL_01C8: conv.u1
IL_01C9: stfld System.Byte PulseGroup::m_x
IL_01CE: ldloca.s 13 (ElectricityManager+PulseGroup)
IL_01D0: ldloc.s 9 (System.Int32)
IL_01D2: conv.u1
IL_01D3: stfld System.Byte PulseGroup::m_z
IL_01D8: ldloca.s 14 (ElectricityManager+PulseUnit)
IL_01DA: ldarg.0
IL_01DB: ldfld System.Int32 ElectricityManager::m_pulseGroupCount
IL_01E0: conv.u2
IL_01E1: stfld System.UInt16 PulseUnit::m_group
IL_01E6: ldloca.s 14 (ElectricityManager+PulseUnit)
IL_01E8: ldc.i4.0
IL_01E9: stfld System.UInt16 PulseUnit::m_node
IL_01EE: ldloca.s 14 (ElectricityManager+PulseUnit)
IL_01F0: ldloc.s 11 (System.Int32)
IL_01F2: conv.u1
IL_01F3: stfld System.Byte PulseUnit::m_x
IL_01F8: ldloca.s 14 (ElectricityManager+PulseUnit)
IL_01FA: ldloc.s 9 (System.Int32)
IL_01FC: conv.u1
IL_01FD: stfld System.Byte PulseUnit::m_z
IL_0202: ldloca.s 12 (ElectricityManager+Cell)
IL_0204: ldarg.0
IL_0205: ldfld System.Int32 ElectricityManager::m_pulseGroupCount
IL_020A: conv.u2
IL_020B: stfld System.UInt16 Cell::m_pulseGroup
IL_0210: ldarg.0
IL_0211: ldfld PulseGroup[] ElectricityManager::m_pulseGroups
IL_0216: ldarg.0
IL_0217: dup
IL_0218: ldfld System.Int32 ElectricityManager::m_pulseGroupCount
IL_021D: dup
IL_021E: stloc.s 15 (System.Int32)
IL_0220: ldc.i4.1
IL_0221: add
IL_0222: stfld System.Int32 ElectricityManager::m_pulseGroupCount
IL_0227: ldloc.s 15 (System.Int32)
IL_0229: ldelema ElectricityManager+PulseGroup
IL_022E: ldloc.s 13 (ElectricityManager+PulseGroup)
IL_0230: stobj ElectricityManager+PulseGroup
IL_0235: ldarg.0
IL_0236: ldfld PulseUnit[] ElectricityManager::m_pulseUnits
IL_023B: ldarg.0
IL_023C: ldfld System.Int32 ElectricityManager::m_pulseUnitEnd
IL_0241: ldelema ElectricityManager+PulseUnit
IL_0246: ldloc.s 14 (ElectricityManager+PulseUnit)
IL_0248: stobj ElectricityManager+PulseUnit
IL_024D: ldarg.0
IL_024E: dup
IL_024F: ldfld System.Int32 ElectricityManager::m_pulseUnitEnd
IL_0254: ldc.i4.1
IL_0255: add
IL_0256: dup
IL_0257: stloc.s 15 (System.Int32)
IL_0259: stfld System.Int32 ElectricityManager::m_pulseUnitEnd
IL_025E: ldloc.s 15 (System.Int32)
IL_0260: ldarg.0
IL_0261: ldfld PulseUnit[] ElectricityManager::m_pulseUnits
IL_0266: ldlen
IL_0267: conv.i4
IL_0268: bne.un => Label15
IL_026D: ldarg.0
IL_026E: ldc.i4.0
IL_026F: stfld System.Int32 ElectricityManager::m_pulseUnitEnd
IL_0274: Label15
IL_0274: br => Label16
IL_0279: Label14
IL_0279: ldloca.s 12 (ElectricityManager+Cell)
IL_027B: ldc.i4 65535
IL_0280: stfld System.UInt16 Cell::m_pulseGroup
IL_0285: Label16
IL_0285: ldloca.s 12 (ElectricityManager+Cell)
IL_0287: ldc.i4.0
IL_0288: stfld System.Int16 Cell::m_currentCharge
IL_028D: ldarg.0
IL_028E: dup
IL_028F: ldfld System.Int32 ElectricityManager::m_conductiveCells
IL_0294: ldc.i4.1
IL_0295: add
IL_0296: stfld System.Int32 ElectricityManager::m_conductiveCells
IL_029B: br => Label17
IL_02A0: Label13
IL_02A0: ldloca.s 12 (ElectricityManager+Cell)
IL_02A2: ldc.i4 65535
IL_02A7: stfld System.UInt16 Cell::m_pulseGroup
IL_02AC: ldloca.s 12 (ElectricityManager+Cell)
IL_02AE: ldfld System.Byte Cell::m_conductivity
IL_02B3: ldc.i4.s 64
IL_02B5: blt => Label18
IL_02BA: ldarg.0
IL_02BB: dup
IL_02BC: ldfld System.Int32 ElectricityManager::m_conductiveCells
IL_02C1: ldc.i4.1
IL_02C2: add
IL_02C3: stfld System.Int32 ElectricityManager::m_conductiveCells
IL_02C8: Label17
IL_02C8: Label18
IL_02C8: ldloca.s 12 (ElectricityManager+Cell)
IL_02CA: ldfld System.Boolean Cell::m_tmpElectrified
IL_02CF: ldloca.s 12 (ElectricityManager+Cell)
IL_02D1: ldfld System.Boolean Cell::m_electrified
IL_02D6: beq => Label19
IL_02DB: ldloca.s 12 (ElectricityManager+Cell)
IL_02DD: ldloca.s 12 (ElectricityManager+Cell)
IL_02DF: ldfld System.Boolean Cell::m_tmpElectrified
IL_02E4: stfld System.Boolean Cell::m_electrified
IL_02E9: Label19
IL_02E9: ldloca.s 12 (ElectricityManager+Cell)
IL_02EB: ldloca.s 12 (ElectricityManager+Cell)
IL_02ED: ldfld System.UInt16 Cell::m_pulseGroup
IL_02F2: ldc.i4 65535
IL_02F7: ceq
IL_02F9: ldc.i4.0
IL_02FA: ceq
IL_02FC: stfld System.Boolean Cell::m_tmpElectrified
IL_0301: ldarg.0
IL_0302: ldfld Cell[] ElectricityManager::m_electricityGrid
IL_0307: ldloc.s 10 (System.Int32)
IL_0309: ldelema ElectricityManager+Cell
IL_030E: ldloc.s 12 (ElectricityManager+Cell)
IL_0310: stobj ElectricityManager+Cell
IL_0315: ldloc.s 10 (System.Int32)
IL_0317: ldc.i4.1
IL_0318: add
IL_0319: stloc.s 10 (System.Int32)
IL_031B: ldloc.s 11 (System.Int32)
IL_031D: ldc.i4.1
IL_031E: add
IL_031F: stloc.s 11 (System.Int32)
IL_0321: Label12
IL_0321: ldloc.s 11 (System.Int32)
IL_0323: ldc.i4 256
IL_0328: blt => Label20
IL_032D: ldloc.s 9 (System.Int32)
IL_032F: ldc.i4.1
IL_0330: add
IL_0331: stloc.s 9 (System.Int32)
IL_0333: Label11
IL_0333: ldloc.s 9 (System.Int32)
IL_0335: ldloc.s 8 (System.Int32)
IL_0337: ble => Label21
IL_033C: br => Label22
IL_0341: Label2
IL_0341: ldloc.1
IL_0342: ldc.i4.s 127
IL_0344: sub
IL_0345: ldarg.0
IL_0346: ldfld System.Int32 ElectricityManager::m_conductiveCells
IL_034B: mul
IL_034C: ldc.i4.7
IL_034D: shr
IL_034E: stloc.s 16 (System.Int32)
IL_0350: ldloc.1
IL_0351: ldc.i4 255
IL_0356: bne.un => Label23
IL_035B: ldc.i4 1000000000
IL_0360: stloc.s 16 (System.Int32)
IL_0362: Label23
IL_0362: br => Label24
IL_0367: Label54
IL_0367: ldarg.0
IL_0368: ldc.i4.0
IL_0369: stfld System.Boolean ElectricityManager::m_canContinue
IL_036E: ldarg.0
IL_036F: ldfld System.Int32 ElectricityManager::m_pulseUnitEnd
IL_0374: stloc.s 17 (System.Int32)
IL_0376: br => Label25
IL_037B: Label52
IL_037B: ldarg.0
IL_037C: ldfld PulseUnit[] ElectricityManager::m_pulseUnits
IL_0381: ldarg.0
IL_0382: ldfld System.Int32 ElectricityManager::m_pulseUnitStart
IL_0387: ldelema ElectricityManager+PulseUnit
IL_038C: ldobj ElectricityManager+PulseUnit
IL_0391: stloc.s 18 (ElectricityManager+PulseUnit)
IL_0393: ldarg.0
IL_0394: dup
IL_0395: ldfld System.Int32 ElectricityManager::m_pulseUnitStart
IL_039A: ldc.i4.1
IL_039B: add
IL_039C: dup
IL_039D: stloc.s 15 (System.Int32)
IL_039F: stfld System.Int32 ElectricityManager::m_pulseUnitStart
IL_03A4: ldloc.s 15 (System.Int32)
IL_03A6: ldarg.0
IL_03A7: ldfld PulseUnit[] ElectricityManager::m_pulseUnits
IL_03AC: ldlen
IL_03AD: conv.i4
IL_03AE: bne.un => Label26
IL_03B3: ldarg.0
IL_03B4: ldc.i4.0
IL_03B5: stfld System.Int32 ElectricityManager::m_pulseUnitStart
IL_03BA: Label26
IL_03BA: ldloca.s 18 (ElectricityManager+PulseUnit)
IL_03BC: ldarg.0
IL_03BD: ldloca.s 18 (ElectricityManager+PulseUnit)
IL_03BF: ldfld System.UInt16 PulseUnit::m_group
IL_03C4: call System.UInt16 ElectricityManager::GetRootGroup(System.UInt16
group)
IL_03C9: stfld System.UInt16 PulseUnit::m_group
IL_03CE: ldarg.0
IL_03CF: ldfld PulseGroup[] ElectricityManager::m_pulseGroups
IL_03D4: ldloca.s 18 (ElectricityManager+PulseUnit)
IL_03D6: ldfld System.UInt16 PulseUnit::m_group
IL_03DB: ldelema ElectricityManager+PulseGroup
IL_03E0: ldfld System.UInt32 PulseGroup::m_curCharge
IL_03E5: stloc.s 19 (System.UInt32)
IL_03E7: ldloca.s 18 (ElectricityManager+PulseUnit)
IL_03E9: ldfld System.UInt16 PulseUnit::m_node
IL_03EE: brtrue => Label27
IL_03F3: ldloca.s 18 (ElectricityManager+PulseUnit)
IL_03F5: ldfld System.Byte PulseUnit::m_z
IL_03FA: ldc.i4 256
IL_03FF: mul
IL_0400: ldloca.s 18 (ElectricityManager+PulseUnit)
IL_0402: ldfld System.Byte PulseUnit::m_x
IL_0407: add
IL_0408: stloc.s 20 (System.Int32)
IL_040A: ldarg.0
IL_040B: ldfld Cell[] ElectricityManager::m_electricityGrid
IL_0410: ldloc.s 20 (System.Int32)
IL_0412: ldelema ElectricityManager+Cell
IL_0417: ldobj ElectricityManager+Cell
IL_041C: stloc.s 21 (ElectricityManager+Cell)
IL_041E: ldloca.s 21 (ElectricityManager+Cell)
IL_0420: ldfld System.Byte Cell::m_conductivity
IL_0425: brfalse => Label28
IL_042A: ldloca.s 21 (ElectricityManager+Cell)
IL_042C: ldfld System.Boolean Cell::m_tmpElectrified
IL_0431: brtrue => Label29
IL_0436: ldloc.s 19 (System.UInt32)
IL_0438: brfalse => Label30
IL_043D: ldloca.s 21 (ElectricityManager+Cell)
IL_043F: ldfld System.Int16 Cell::m_currentCharge
IL_0444: neg
IL_0445: ldc.i4.0
IL_0446: ldloc.s 19 (System.UInt32)
IL_0448: call static System.Int32 UnityEngine.Mathf::Clamp(System.Int32
value, System.Int32 min, System.Int32 max)
IL_044D: stloc.s 22 (System.Int32)
IL_044F: ldloc.s 19 (System.UInt32)
IL_0451: ldloc.s 22 (System.Int32)
IL_0453: sub
IL_0454: stloc.s 19 (System.UInt32)
IL_0456: ldloca.s 21 (ElectricityManager+Cell)
IL_0458: dup
IL_0459: ldfld System.Int16 Cell::m_currentCharge
IL_045E: ldloc.s 22 (System.Int32)
IL_0460: conv.i2
IL_0461: add
IL_0462: conv.i2
IL_0463: stfld System.Int16 Cell::m_currentCharge
IL_0468: ldloca.s 21 (ElectricityManager+Cell)
IL_046A: ldfld System.Int16 Cell::m_currentCharge
IL_046F: brtrue => Label31
IL_0474: ldloca.s 21 (ElectricityManager+Cell)
IL_0476: ldc.i4.1
IL_0477: stfld System.Boolean Cell::m_tmpElectrified
IL_047C: Label31
IL_047C: ldarg.0
IL_047D: ldfld Cell[] ElectricityManager::m_electricityGrid
IL_0482: ldloc.s 20 (System.Int32)
IL_0484: ldelema ElectricityManager+Cell
IL_0489: ldloc.s 21 (ElectricityManager+Cell)
IL_048B: stobj ElectricityManager+Cell
IL_0490: ldarg.0
IL_0491: ldfld PulseGroup[] ElectricityManager::m_pulseGroups
IL_0496: ldloca.s 18 (ElectricityManager+PulseUnit)
IL_0498: ldfld System.UInt16 PulseUnit::m_group
IL_049D: ldelema ElectricityManager+PulseGroup
IL_04A2: ldloc.s 19 (System.UInt32)
IL_04A4: stfld System.UInt32 PulseGroup::m_curCharge
IL_04A9: Label28
IL_04A9: Label29
IL_04A9: Label30
IL_04A9: ldloc.s 19 (System.UInt32)
IL_04AB: brfalse => Label32
IL_04B0: ldloca.s 21 (ElectricityManager+Cell)
IL_04B2: ldfld System.Byte Cell::m_conductivity
IL_04B7: ldc.i4.s 64
IL_04B9: blt => Label33
IL_04BE: ldc.i4.1
IL_04BF: br => Label34
IL_04C4: Label33
IL_04C4: ldc.i4.s 64
IL_04C6: Label34
IL_04C6: stloc.s 23 (System.Int32)
IL_04C8: ldarg.0
IL_04C9: dup
IL_04CA: ldfld System.Int32 ElectricityManager::m_processedCells
IL_04CF: ldc.i4.1
IL_04D0: add
IL_04D1: stfld System.Int32 ElectricityManager::m_processedCells
IL_04D6: ldloca.s 18 (ElectricityManager+PulseUnit)
IL_04D8: ldfld System.Byte PulseUnit::m_z
IL_04DD: ldc.i4.0
IL_04DE: ble => Label35
IL_04E3: ldarg.0
IL_04E4: ldarg.0
IL_04E5: ldfld Cell[] ElectricityManager::m_electricityGrid
IL_04EA: ldloc.s 20 (System.Int32)
IL_04EC: ldc.i4 256
IL_04F1: sub
IL_04F2: ldelema ElectricityManager+Cell
IL_04F7: ldloca.s 18 (ElectricityManager+PulseUnit)
IL_04F9: ldfld System.UInt16 PulseUnit::m_group
IL_04FE: ldloca.s 18 (ElectricityManager+PulseUnit)
IL_0500: ldfld System.Byte PulseUnit::m_x
IL_0505: ldloca.s 18 (ElectricityManager+PulseUnit)
IL_0507: ldfld System.Byte PulseUnit::m_z
IL_050C: ldc.i4.1
IL_050D: sub
IL_050E: ldloc.s 23 (System.Int32)
IL_0510: call System.Void ElectricityManager::ConductToCell(Cell& cell,
System.UInt16 group, System.Int32 x, System.Int32 z, System.Int32 limit)
IL_0515: Label35
IL_0515: ldloca.s 18 (ElectricityManager+PulseUnit)
IL_0517: ldfld System.Byte PulseUnit::m_x
IL_051C: ldc.i4.0
IL_051D: ble => Label36
IL_0522: ldarg.0
IL_0523: ldarg.0
IL_0524: ldfld Cell[] ElectricityManager::m_electricityGrid
IL_0529: ldloc.s 20 (System.Int32)
IL_052B: ldc.i4.1
IL_052C: sub
IL_052D: ldelema ElectricityManager+Cell
IL_0532: ldloca.s 18 (ElectricityManager+PulseUnit)
IL_0534: ldfld System.UInt16 PulseUnit::m_group
IL_0539: ldloca.s 18 (ElectricityManager+PulseUnit)
IL_053B: ldfld System.Byte PulseUnit::m_x
IL_0540: ldc.i4.1
IL_0541: sub
IL_0542: ldloca.s 18 (ElectricityManager+PulseUnit)
IL_0544: ldfld System.Byte PulseUnit::m_z
IL_0549: ldloc.s 23 (System.Int32)
IL_054B: call System.Void ElectricityManager::ConductToCell(Cell& cell,
System.UInt16 group, System.Int32 x, System.Int32 z, System.Int32 limit)
IL_0550: Label36
IL_0550: ldloca.s 18 (ElectricityManager+PulseUnit)
IL_0552: ldfld System.Byte PulseUnit::m_z
IL_0557: ldc.i4 255
IL_055C: bge => Label37
IL_0561: ldarg.0
IL_0562: ldarg.0
IL_0563: ldfld Cell[] ElectricityManager::m_electricityGrid
IL_0568: ldloc.s 20 (System.Int32)
IL_056A: ldc.i4 256
IL_056F: add
IL_0570: ldelema ElectricityManager+Cell
IL_0575: ldloca.s 18 (ElectricityManager+PulseUnit)
IL_0577: ldfld System.UInt16 PulseUnit::m_group
IL_057C: ldloca.s 18 (ElectricityManager+PulseUnit)
IL_057E: ldfld System.Byte PulseUnit::m_x
IL_0583: ldloca.s 18 (ElectricityManager+PulseUnit)
IL_0585: ldfld System.Byte PulseUnit::m_z
IL_058A: ldc.i4.1
IL_058B: add
IL_058C: ldloc.s 23 (System.Int32)
IL_058E: call System.Void ElectricityManager::ConductToCell(Cell& cell,
System.UInt16 group, System.Int32 x, System.Int32 z, System.Int32 limit)
IL_0593: Label37
IL_0593: ldloca.s 18 (ElectricityManager+PulseUnit)
IL_0595: ldfld System.Byte PulseUnit::m_x
IL_059A: ldc.i4 255
IL_059F: bge => Label38
IL_05A4: ldarg.0
IL_05A5: ldarg.0
IL_05A6: ldfld Cell[] ElectricityManager::m_electricityGrid
IL_05AB: ldloc.s 20 (System.Int32)
IL_05AD: ldc.i4.1
IL_05AE: add
IL_05AF: ldelema ElectricityManager+Cell
IL_05B4: ldloca.s 18 (ElectricityManager+PulseUnit)
IL_05B6: ldfld System.UInt16 PulseUnit::m_group
IL_05BB: ldloca.s 18 (ElectricityManager+PulseUnit)
IL_05BD: ldfld System.Byte PulseUnit::m_x
IL_05C2: ldc.i4.1
IL_05C3: add
IL_05C4: ldloca.s 18 (ElectricityManager+PulseUnit)
IL_05C6: ldfld System.Byte PulseUnit::m_z
IL_05CB: ldloc.s 23 (System.Int32)
IL_05CD: call System.Void ElectricityManager::ConductToCell(Cell& cell,
System.UInt16 group, System.Int32 x, System.Int32 z, System.Int32 limit)
IL_05D2: Label38
IL_05D2: ldarg.0
IL_05D3: ldloca.s 18 (ElectricityManager+PulseUnit)
IL_05D5: ldfld System.UInt16 PulseUnit::m_group
IL_05DA: ldloca.s 18 (ElectricityManager+PulseUnit)
IL_05DC: ldfld System.Byte PulseUnit::m_x
IL_05E1: ldloca.s 18 (ElectricityManager+PulseUnit)
IL_05E3: ldfld System.Byte PulseUnit::m_z
IL_05E8: call System.Void ElectricityManager::ConductToNodes(System.UInt16
group, System.Int32 cellX, System.Int32 cellZ)
IL_05ED: br => Label39
IL_05F2: Label32
IL_05F2: ldarg.0
IL_05F3: ldfld PulseUnit[] ElectricityManager::m_pulseUnits
IL_05F8: ldarg.0
IL_05F9: ldfld System.Int32 ElectricityManager::m_pulseUnitEnd
IL_05FE: ldelema ElectricityManager+PulseUnit
IL_0603: ldloc.s 18 (ElectricityManager+PulseUnit)
IL_0605: stobj ElectricityManager+PulseUnit
IL_060A: ldarg.0
IL_060B: dup
IL_060C: ldfld System.Int32 ElectricityManager::m_pulseUnitEnd
IL_0611: ldc.i4.1
IL_0612: add
IL_0613: dup
IL_0614: stloc.s 15 (System.Int32)
IL_0616: stfld System.Int32 ElectricityManager::m_pulseUnitEnd
IL_061B: ldloc.s 15 (System.Int32)
IL_061D: ldarg.0
IL_061E: ldfld PulseUnit[] ElectricityManager::m_pulseUnits
IL_0623: ldlen
IL_0624: conv.i4
IL_0625: bne.un => Label40
IL_062A: ldarg.0
IL_062B: ldc.i4.0
IL_062C: stfld System.Int32 ElectricityManager::m_pulseUnitEnd
IL_0631: Label39
IL_0631: Label40
IL_0631: br => Label41
IL_0636: Label27
IL_0636: ldloc.s 19 (System.UInt32)
IL_0638: brfalse => Label42
IL_063D: ldarg.0
IL_063E: dup
IL_063F: ldfld System.Int32 ElectricityManager::m_processedCells
IL_0644: ldc.i4.1
IL_0645: add
IL_0646: stfld System.Int32 ElectricityManager::m_processedCells
IL_064B: call static NetManager
ColossalFramework.Singleton`1<NetManager>::get_instance()
IL_0650: ldfld Array16`1<NetNode> NetManager::m_nodes
IL_0655: ldfld NetNode[] Array16`1<NetNode>::m_buffer
IL_065A: ldloca.s 18 (ElectricityManager+PulseUnit)
IL_065C: ldfld System.UInt16 PulseUnit::m_node
IL_0661: ldelema NetNode
IL_0666: ldobj NetNode
IL_066B: stloc.s 24 (NetNode)
IL_066D: ldloca.s 24 (NetNode)
IL_066F: ldfld Flags NetNode::m_flags
IL_0674: brfalse => Label43
IL_0679: ldloca.s 24 (NetNode)
IL_067B: ldfld System.UInt32 NetNode::m_buildIndex
IL_0680: ldloc.0
IL_0681: ldc.i4.s -128
IL_0683: and
IL_0684: bge.un => Label44
IL_0689: ldarg.0
IL_068A: ldloca.s 18 (ElectricityManager+PulseUnit)
IL_068C: ldfld System.UInt16 PulseUnit::m_group
IL_0691: ldloca.s 24 (NetNode)
IL_0693: ldflda UnityEngine.Vector3 NetNode::m_position
IL_0698: ldfld System.Single UnityEngine.Vector3::x
IL_069D: ldloca.s 24 (NetNode)
IL_069F: ldflda UnityEngine.Vector3 NetNode::m_position
IL_06A4: ldfld System.Single UnityEngine.Vector3::z
IL_06A9: call System.Void ElectricityManager::ConductToCells(System.UInt16
group, System.Single worldX, System.Single worldZ)
IL_06AE: ldc.i4.0
IL_06AF: stloc.s 25 (System.Int32)
IL_06B1: br => Label45
IL_06B6: Label49
IL_06B6: ldloca.s 24 (NetNode)
IL_06B8: ldloc.s 25 (System.Int32)
IL_06BA: call System.UInt16 NetNode::GetSegment(System.Int32 index)
IL_06BF: stloc.s 26 (System.UInt16)
IL_06C1: ldloc.s 26 (System.UInt16)
IL_06C3: brfalse => Label46
IL_06C8: call static NetManager
ColossalFramework.Singleton`1<NetManager>::get_instance()
IL_06CD: ldfld Array16`1<NetSegment> NetManager::m_segments
IL_06D2: ldfld NetSegment[] Array16`1<NetSegment>::m_buffer
IL_06D7: ldloc.s 26 (System.UInt16)
IL_06D9: ldelema NetSegment
IL_06DE: ldfld System.UInt16 NetSegment::m_startNode
IL_06E3: stloc.s 27 (System.UInt16)
IL_06E5: call static NetManager
ColossalFramework.Singleton`1<NetManager>::get_instance()
IL_06EA: ldfld Array16`1<NetSegment> NetManager::m_segments
IL_06EF: ldfld NetSegment[] Array16`1<NetSegment>::m_buffer
IL_06F4: ldloc.s 26 (System.UInt16)
IL_06F6: ldelema NetSegment
IL_06FB: ldfld System.UInt16 NetSegment::m_endNode
IL_0700: stloc.s 28 (System.UInt16)
IL_0702: ldloc.s 27 (System.UInt16)
IL_0704: ldloca.s 18 (ElectricityManager+PulseUnit)
IL_0706: ldfld System.UInt16 PulseUnit::m_node
IL_070B: bne.un => Label47
IL_0710: ldloc.s 28 (System.UInt16)
IL_0712: br => Label48
IL_0717: Label47
IL_0717: ldloc.s 27 (System.UInt16)
IL_0719: Label48
IL_0719: stloc.s 29 (System.UInt16)
IL_071B: ldarg.0
IL_071C: ldloc.s 29 (System.UInt16)
IL_071E: call static NetManager
ColossalFramework.Singleton`1<NetManager>::get_instance()
IL_0723: ldfld Array16`1<NetNode> NetManager::m_nodes
IL_0728: ldfld NetNode[] Array16`1<NetNode>::m_buffer
IL_072D: ldloc.s 29 (System.UInt16)
IL_072F: ldelema NetNode
IL_0734: ldloca.s 18 (ElectricityManager+PulseUnit)
IL_0736: ldfld System.UInt16 PulseUnit::m_group
IL_073B: ldc.r4 -100000
IL_0740: ldc.r4 -100000
IL_0745: ldc.r4 100000
IL_074A: ldc.r4 100000
IL_074F: call System.Void ElectricityManager::ConductToNode(System.UInt16
nodeIndex, NetNode& node, System.UInt16 group, System.Single minX, System.Single
minZ, System.Single maxX, System.Single maxZ)
IL_0754: Label46
IL_0754: ldloc.s 25 (System.Int32)
IL_0756: ldc.i4.1
IL_0757: add
IL_0758: stloc.s 25 (System.Int32)
IL_075A: Label45
IL_075A: ldloc.s 25 (System.Int32)
IL_075C: ldc.i4.8
IL_075D: blt => Label49
IL_0762: Label43
IL_0762: Label44
IL_0762: br => Label50
IL_0767: Label42
IL_0767: ldarg.0
IL_0768: ldfld PulseUnit[] ElectricityManager::m_pulseUnits
IL_076D: ldarg.0
IL_076E: ldfld System.Int32 ElectricityManager::m_pulseUnitEnd
IL_0773: ldelema ElectricityManager+PulseUnit
IL_0778: ldloc.s 18 (ElectricityManager+PulseUnit)
IL_077A: stobj ElectricityManager+PulseUnit
IL_077F: ldarg.0
IL_0780: dup
IL_0781: ldfld System.Int32 ElectricityManager::m_pulseUnitEnd
IL_0786: ldc.i4.1
IL_0787: add
IL_0788: dup
IL_0789: stloc.s 15 (System.Int32)
IL_078B: stfld System.Int32 ElectricityManager::m_pulseUnitEnd
IL_0790: ldloc.s 15 (System.Int32)
IL_0792: ldarg.0
IL_0793: ldfld PulseUnit[] ElectricityManager::m_pulseUnits
IL_0798: ldlen
IL_0799: conv.i4
IL_079A: bne.un => Label51
IL_079F: ldarg.0
IL_07A0: ldc.i4.0
IL_07A1: stfld System.Int32 ElectricityManager::m_pulseUnitEnd
IL_07A6: Label25
IL_07A6: Label41
IL_07A6: Label50
IL_07A6: Label51
IL_07A6: ldarg.0
IL_07A7: ldfld System.Int32 ElectricityManager::m_pulseUnitStart
IL_07AC: ldloc.s 17 (System.Int32)
IL_07AE: bne.un => Label52
IL_07B3: Label24
IL_07B3: ldarg.0
IL_07B4: ldfld System.Boolean ElectricityManager::m_canContinue
IL_07B9: brfalse => Label53
IL_07BE: ldarg.0
IL_07BF: ldfld System.Int32 ElectricityManager::m_processedCells
IL_07C4: ldloc.s 16 (System.Int32)
IL_07C6: blt => Label54
IL_07CB: Label53
IL_07CB: ldloc.1
IL_07CC: ldc.i4 255
IL_07D1: bne.un => Label55
IL_07D6: ldc.i4.0
IL_07D7: stloc.s 30 (System.Int32)
IL_07D9: br => Label56
IL_07DE: Label58
IL_07DE: ldarg.0
IL_07DF: ldfld PulseGroup[] ElectricityManager::m_pulseGroups
IL_07E4: ldloc.s 30 (System.Int32)
IL_07E6: ldelema ElectricityManager+PulseGroup
IL_07EB: ldobj ElectricityManager+PulseGroup
IL_07F0: stloc.s 31 (ElectricityManager+PulseGroup)
IL_07F2: ldloca.s 31 (ElectricityManager+PulseGroup)
IL_07F4: ldfld System.UInt16 PulseGroup::m_mergeIndex
IL_07F9: ldc.i4 65535
IL_07FE: beq => Label57
IL_0803: ldarg.0
IL_0804: ldfld PulseGroup[] ElectricityManager::m_pulseGroups
IL_0809: ldloca.s 31 (ElectricityManager+PulseGroup)
IL_080B: ldfld System.UInt16 PulseGroup::m_mergeIndex
IL_0810: ldelema ElectricityManager+PulseGroup
IL_0815: ldobj ElectricityManager+PulseGroup
IL_081A: stloc.s 32 (ElectricityManager+PulseGroup)
IL_081C: ldloca.s 31 (ElectricityManager+PulseGroup)
IL_081E: ldloca.s 32 (ElectricityManager+PulseGroup)
IL_0820: ldfld System.UInt32 PulseGroup::m_curCharge
IL_0825: conv.u8
IL_0826: ldloca.s 31 (ElectricityManager+PulseGroup)
IL_0828: ldfld System.UInt32 PulseGroup::m_origCharge
IL_082D: conv.u8
IL_082E: mul
IL_082F: ldloca.s 32 (ElectricityManager+PulseGroup)
IL_0831: ldfld System.UInt32 PulseGroup::m_origCharge
IL_0836: conv.u8
IL_0837: div.un
IL_0838: conv.u4
IL_0839: stfld System.UInt32 PulseGroup::m_curCharge
IL_083E: ldloca.s 32 (ElectricityManager+PulseGroup)
IL_0840: dup
IL_0841: ldfld System.UInt32 PulseGroup::m_curCharge
IL_0846: ldloca.s 31 (ElectricityManager+PulseGroup)
IL_0848: ldfld System.UInt32 PulseGroup::m_curCharge
IL_084D: sub
IL_084E: stfld System.UInt32 PulseGroup::m_curCharge
IL_0853: ldloca.s 32 (ElectricityManager+PulseGroup)
IL_0855: dup
IL_0856: ldfld System.UInt32 PulseGroup::m_origCharge
IL_085B: ldloca.s 31 (ElectricityManager+PulseGroup)
IL_085D: ldfld System.UInt32 PulseGroup::m_origCharge
IL_0862: sub
IL_0863: stfld System.UInt32 PulseGroup::m_origCharge
IL_0868: ldarg.0
IL_0869: ldfld PulseGroup[] ElectricityManager::m_pulseGroups
IL_086E: ldloca.s 31 (ElectricityManager+PulseGroup)
IL_0870: ldfld System.UInt16 PulseGroup::m_mergeIndex
IL_0875: ldelema ElectricityManager+PulseGroup
IL_087A: ldloc.s 32 (ElectricityManager+PulseGroup)
IL_087C: stobj ElectricityManager+PulseGroup
IL_0881: ldarg.0
IL_0882: ldfld PulseGroup[] ElectricityManager::m_pulseGroups
IL_0887: ldloc.s 30 (System.Int32)
IL_0889: ldelema ElectricityManager+PulseGroup
IL_088E: ldloc.s 31 (ElectricityManager+PulseGroup)
IL_0890: stobj ElectricityManager+PulseGroup
IL_0895: Label57
IL_0895: ldloc.s 30 (System.Int32)
IL_0897: ldc.i4.1
IL_0898: add
IL_0899: stloc.s 30 (System.Int32)
IL_089B: Label56
IL_089B: ldloc.s 30 (System.Int32)
IL_089D: ldarg.0
IL_089E: ldfld System.Int32 ElectricityManager::m_pulseGroupCount
IL_08A3: blt => Label58
IL_08A8: ldc.i4.0
IL_08A9: stloc.s 33 (System.Int32)
IL_08AB: br => Label59
IL_08B0: Label62
IL_08B0: ldarg.0
IL_08B1: ldfld PulseGroup[] ElectricityManager::m_pulseGroups
IL_08B6: ldloc.s 33 (System.Int32)
IL_08B8: ldelema ElectricityManager+PulseGroup
IL_08BD: ldobj ElectricityManager+PulseGroup
IL_08C2: stloc.s 34 (ElectricityManager+PulseGroup)
IL_08C4: ldloca.s 34 (ElectricityManager+PulseGroup)
IL_08C6: ldfld System.UInt32 PulseGroup::m_curCharge
IL_08CB: brfalse => Label60
IL_08D0: ldloca.s 34 (ElectricityManager+PulseGroup)
IL_08D2: ldfld System.Byte PulseGroup::m_z
IL_08D7: ldc.i4 256
IL_08DC: mul
IL_08DD: ldloca.s 34 (ElectricityManager+PulseGroup)
IL_08DF: ldfld System.Byte PulseGroup::m_x
IL_08E4: add
IL_08E5: stloc.s 35 (System.Int32)
IL_08E7: ldarg.0
IL_08E8: ldfld Cell[] ElectricityManager::m_electricityGrid
IL_08ED: ldloc.s 35 (System.Int32)
IL_08EF: ldelema ElectricityManager+Cell
IL_08F4: ldobj ElectricityManager+Cell
IL_08F9: stloc.s 36 (ElectricityManager+Cell)
IL_08FB: ldloca.s 36 (ElectricityManager+Cell)
IL_08FD: ldfld System.Byte Cell::m_conductivity
IL_0902: brfalse => Label61
IL_0907: ldloca.s 36 (ElectricityManager+Cell)
IL_0909: dup
IL_090A: ldfld System.UInt16 Cell::m_extraCharge
IL_090F: ldloca.s 34 (ElectricityManager+PulseGroup)
IL_0911: ldfld System.UInt32 PulseGroup::m_curCharge
IL_0916: ldc.i4 32767
IL_091B: ldloca.s 36 (ElectricityManager+Cell)
IL_091D: ldfld System.UInt16 Cell::m_extraCharge
IL_0922: sub
IL_0923: call static System.Int32 UnityEngine.Mathf::Min(System.Int32 a,
System.Int32 b)
IL_0928: conv.u2
IL_0929: add
IL_092A: conv.u2
IL_092B: stfld System.UInt16 Cell::m_extraCharge
IL_0930: Label61
IL_0930: ldarg.0
IL_0931: ldfld Cell[] ElectricityManager::m_electricityGrid
IL_0936: ldloc.s 35 (System.Int32)
IL_0938: ldelema ElectricityManager+Cell
IL_093D: ldloc.s 36 (ElectricityManager+Cell)
IL_093F: stobj ElectricityManager+Cell
IL_0944: Label60
IL_0944: ldloc.s 33 (System.Int32)
IL_0946: ldc.i4.1
IL_0947: add
IL_0948: stloc.s 33 (System.Int32)
IL_094A: Label59
IL_094A: ldloc.s 33 (System.Int32)
IL_094C: ldarg.0
IL_094D: ldfld System.Int32 ElectricityManager::m_pulseGroupCount
IL_0952: blt => Label62
IL_0957: // end original
IL_0957: Label0
IL_0957: Label1
IL_0957: Label22
IL_0957: Label55
IL_0957: ret
DONE

### Patch: System.Void ElectricityManager::ConductToNode(System.UInt16 nodeIndex,


NetNode& node, System.UInt16 group, System.Single minX, System.Single minZ,
System.Single maxX, System.Single maxZ)
### Replacement: static System.Void
ElectricityManager::ElectricityManager.ConductToNode_Patch0(ElectricityManager
this, System.UInt16 nodeIndex, NetNode& node, System.UInt16 group, System.Single
minX, System.Single minZ, System.Single maxX, System.Single maxZ)
IL_0000: Local var 0: NetInfo
IL_0000: Local var 1: ElectricityManager/PulseUnit
IL_0000: Local var 2: System.Int32
IL_0000: Local var 3: System.UInt16
IL_0000: // start original
IL_0000: ldarg.2
IL_0001: ldflda UnityEngine.Vector3 NetNode::m_position
IL_0006: ldfld System.Single UnityEngine.Vector3::x
IL_000B: ldarg.s 4
IL_000D: blt.un => Label0
IL_0012: ldarg.2
IL_0013: ldflda UnityEngine.Vector3 NetNode::m_position
IL_0018: ldfld System.Single UnityEngine.Vector3::z
IL_001D: ldarg.s 5
IL_001F: blt.un => Label1
IL_0024: ldarg.2
IL_0025: ldflda UnityEngine.Vector3 NetNode::m_position
IL_002A: ldfld System.Single UnityEngine.Vector3::x
IL_002F: ldarg.s 6
IL_0031: bgt.un => Label2
IL_0036: ldarg.2
IL_0037: ldflda UnityEngine.Vector3 NetNode::m_position
IL_003C: ldfld System.Single UnityEngine.Vector3::z
IL_0041: ldarg.s 7
IL_0043: bgt.un => Label3
IL_0048: ldarg.2
IL_0049: call NetInfo NetNode::get_Info()
IL_004E: stloc.0
IL_004F: ldloc.0
IL_0050: ldfld ItemClass NetInfo::m_class
IL_0055: ldfld Service ItemClass::m_service
IL_005A: ldc.i4.s 10
IL_005C: beq => Label4
IL_0061: ldarg.2
IL_0062: call NetInfo NetNode::get_Info()
IL_0067: ldfld NetAI NetInfo::m_netAI
IL_006C: isinst ConcourseAI
IL_0071: brfalse => Label5
IL_0076: Label4
IL_0076: ldarg.0
IL_0077: ldfld System.UInt16[] ElectricityManager::m_nodeGroups
IL_007C: ldarg.1
IL_007D: ldelem.u2
IL_007E: ldc.i4 65535
IL_0083: bne.un => Label6
IL_0088: ldloca.s 1 (ElectricityManager+PulseUnit)
IL_008A: ldarg.3
IL_008B: stfld System.UInt16 PulseUnit::m_group
IL_0090: ldloca.s 1 (ElectricityManager+PulseUnit)
IL_0092: ldarg.1
IL_0093: stfld System.UInt16 PulseUnit::m_node
IL_0098: ldloca.s 1 (ElectricityManager+PulseUnit)
IL_009A: ldc.i4.0
IL_009B: stfld System.Byte PulseUnit::m_x
IL_00A0: ldloca.s 1 (ElectricityManager+PulseUnit)
IL_00A2: ldc.i4.0
IL_00A3: stfld System.Byte PulseUnit::m_z
IL_00A8: ldarg.0
IL_00A9: ldfld PulseUnit[] ElectricityManager::m_pulseUnits
IL_00AE: ldarg.0
IL_00AF: ldfld System.Int32 ElectricityManager::m_pulseUnitEnd
IL_00B4: ldelema ElectricityManager+PulseUnit
IL_00B9: ldloc.1
IL_00BA: stobj ElectricityManager+PulseUnit
IL_00BF: ldarg.0
IL_00C0: dup
IL_00C1: ldfld System.Int32 ElectricityManager::m_pulseUnitEnd
IL_00C6: ldc.i4.1
IL_00C7: add
IL_00C8: dup
IL_00C9: stloc.2
IL_00CA: stfld System.Int32 ElectricityManager::m_pulseUnitEnd
IL_00CF: ldloc.2
IL_00D0: ldarg.0
IL_00D1: ldfld PulseUnit[] ElectricityManager::m_pulseUnits
IL_00D6: ldlen
IL_00D7: conv.i4
IL_00D8: bne.un => Label7
IL_00DD: ldarg.0
IL_00DE: ldc.i4.0
IL_00DF: stfld System.Int32 ElectricityManager::m_pulseUnitEnd
IL_00E4: Label7
IL_00E4: ldarg.0
IL_00E5: ldfld System.UInt16[] ElectricityManager::m_nodeGroups
IL_00EA: ldarg.1
IL_00EB: ldarg.3
IL_00EC: stelem.i2
IL_00ED: ldarg.0
IL_00EE: ldc.i4.1
IL_00EF: stfld System.Boolean ElectricityManager::m_canContinue
IL_00F4: br => Label8
IL_00F9: Label6
IL_00F9: ldarg.0
IL_00FA: ldarg.0
IL_00FB: ldfld System.UInt16[] ElectricityManager::m_nodeGroups
IL_0100: ldarg.1
IL_0101: ldelem.u2
IL_0102: call System.UInt16 ElectricityManager::GetRootGroup(System.UInt16
group)
IL_0107: stloc.3
IL_0108: ldloc.3
IL_0109: ldarg.3
IL_010A: beq => Label9
IL_010F: ldarg.0
IL_0110: ldarg.3
IL_0111: ldloc.3
IL_0112: call System.Void ElectricityManager::MergeGroups(System.UInt16 root,
System.UInt16 merged)
IL_0117: ldarg.0
IL_0118: ldfld System.UInt16[] ElectricityManager::m_nodeGroups
IL_011D: ldarg.1
IL_011E: ldarg.3
IL_011F: stelem.i2
IL_0120: ldarg.0
IL_0121: ldc.i4.1
IL_0122: stfld System.Boolean ElectricityManager::m_canContinue
IL_0127: // end original
IL_0127: Label0
IL_0127: Label1
IL_0127: Label2
IL_0127: Label3
IL_0127: Label5
IL_0127: Label8
IL_0127: Label9
IL_0127: ret
DONE

### Patch: System.Void ElectricityManager::UpdateNodeElectricity(System.Int32


nodeID, System.Int32 value)
### Replacement: static System.Void
ElectricityManager::ElectricityManager.UpdateNodeElectricity_Patch0(ElectricityMana
ger this, System.Int32 nodeID, System.Int32 value)
IL_0000: Local var 0: InfoManager/InfoMode
IL_0000: Local var 1: NetManager
IL_0000: Local var 2: System.Boolean
IL_0000: Local var 3: NetNode/Flags
IL_0000: Local var 4: System.UInt16
IL_0000: Local var 5: BuildingManager
IL_0000: Local var 6: NetNode/Flags
IL_0000: Local var 7: System.Int32
IL_0000: Local var 8: System.UInt16
IL_0000: // start original
IL_0000: call static InfoManager
ColossalFramework.Singleton`1<InfoManager>::get_instance()
IL_0005: callvirt InfoMode InfoManager::get_CurrentMode()
IL_000A: stloc.0
IL_000B: call static NetManager
ColossalFramework.Singleton`1<NetManager>::get_instance()
IL_0010: stloc.1
IL_0011: ldc.i4.0
IL_0012: stloc.2
IL_0013: ldloc.1
IL_0014: ldfld Array16`1<NetNode> NetManager::m_nodes
IL_0019: ldfld NetNode[] Array16`1<NetNode>::m_buffer
IL_001E: ldarg.1
IL_001F: ldelema NetNode
IL_0024: ldfld Flags NetNode::m_flags
IL_0029: stloc.3
IL_002A: ldloc.3
IL_002B: ldc.i4 1048576
IL_0030: and
IL_0031: brfalse => Label0
IL_0036: ldloc.1
IL_0037: ldfld Array16`1<NetNode> NetManager::m_nodes
IL_003C: ldfld NetNode[] Array16`1<NetNode>::m_buffer
IL_0041: ldarg.1
IL_0042: ldelema NetNode
IL_0047: dup
IL_0048: ldfld Flags NetNode::m_flags
IL_004D: ldc.i4 -1048577
IL_0052: and
IL_0053: stfld Flags NetNode::m_flags
IL_0058: br => Label10
IL_005D: Label0
IL_005D: ldloc.1
IL_005E: ldfld Array16`1<NetNode> NetManager::m_nodes
IL_0063: ldfld NetNode[] Array16`1<NetNode>::m_buffer
IL_0068: ldarg.1
IL_0069: ldelema NetNode
IL_006E: ldfld System.UInt16 NetNode::m_building
IL_0073: stloc.s 4 (System.UInt16)
IL_0075: ldloc.s 4 (System.UInt16)
IL_0077: brfalse => Label1
IL_007C: call static BuildingManager
ColossalFramework.Singleton`1<BuildingManager>::get_instance()
IL_0081: stloc.s 5 (BuildingManager)
IL_0083: ldloc.s 5 (BuildingManager)
IL_0085: ldfld Array16`1<Building> BuildingManager::m_buildings
IL_008A: ldfld Building[] Array16`1<Building>::m_buffer
IL_008F: ldloc.s 4 (System.UInt16)
IL_0091: ldelema Building
IL_0096: ldfld System.UInt16 Building::m_electricityBuffer
IL_009B: ldarg.2
IL_009C: beq => Label2
IL_00A1: ldloc.s 5 (BuildingManager)
IL_00A3: ldfld Array16`1<Building> BuildingManager::m_buildings
IL_00A8: ldfld Building[] Array16`1<Building>::m_buffer
IL_00AD: ldloc.s 4 (System.UInt16)
IL_00AF: ldelema Building
IL_00B4: ldarg.2
IL_00B5: conv.u2
IL_00B6: stfld System.UInt16 Building::m_electricityBuffer
IL_00BB: ldloc.0
IL_00BC: ldc.i4.1
IL_00BD: ceq
IL_00BF: stloc.2
IL_00C0: Label2
IL_00C0: ldloc.2
IL_00C1: brfalse => Label3
IL_00C6: ldloc.s 5 (BuildingManager)
IL_00C8: ldloc.s 4 (System.UInt16)
IL_00CA: callvirt System.Void BuildingManager::UpdateBuildingColors(System.UInt16
building)
IL_00CF: Label1
IL_00CF: Label3
IL_00CF: ldloc.3
IL_00D0: ldc.i4 -67108865
IL_00D5: and
IL_00D6: stloc.s 6 (NetNode+Flags)
IL_00D8: ldarg.2
IL_00D9: brfalse => Label4
IL_00DE: ldloc.s 6 (NetNode+Flags)
IL_00E0: ldc.i4 67108864
IL_00E5: or
IL_00E6: stloc.s 6 (NetNode+Flags)
IL_00E8: Label4
IL_00E8: ldloc.s 6 (NetNode+Flags)
IL_00EA: ldloc.3
IL_00EB: beq => Label5
IL_00F0: ldloc.1
IL_00F1: ldfld Array16`1<NetNode> NetManager::m_nodes
IL_00F6: ldfld NetNode[] Array16`1<NetNode>::m_buffer
IL_00FB: ldarg.1
IL_00FC: ldelema NetNode
IL_0101: ldloc.s 6 (NetNode+Flags)
IL_0103: stfld Flags NetNode::m_flags
IL_0108: ldloc.0
IL_0109: ldc.i4.1
IL_010A: ceq
IL_010C: stloc.2
IL_010D: Label5
IL_010D: ldloc.2
IL_010E: brfalse => Label6
IL_0113: ldloc.1
IL_0114: ldarg.1
IL_0115: conv.u2
IL_0116: callvirt System.Void NetManager::UpdateNodeColors(System.UInt16 node)
IL_011B: ldc.i4.0
IL_011C: stloc.s 7 (System.Int32)
IL_011E: br => Label7
IL_0123: Label9
IL_0123: ldloc.1
IL_0124: ldfld Array16`1<NetNode> NetManager::m_nodes
IL_0129: ldfld NetNode[] Array16`1<NetNode>::m_buffer
IL_012E: ldarg.1
IL_012F: ldelema NetNode
IL_0134: ldloc.s 7 (System.Int32)
IL_0136: call System.UInt16 NetNode::GetSegment(System.Int32 index)
IL_013B: stloc.s 8 (System.UInt16)
IL_013D: ldloc.s 8 (System.UInt16)
IL_013F: brfalse => Label8
IL_0144: ldloc.1
IL_0145: ldloc.s 8 (System.UInt16)
IL_0147: callvirt System.Void NetManager::UpdateSegmentColors(System.UInt16
segment)
IL_014C: Label8
IL_014C: ldloc.s 7 (System.Int32)
IL_014E: ldc.i4.1
IL_014F: add
IL_0150: stloc.s 7 (System.Int32)
IL_0152: Label7
IL_0152: ldloc.s 7 (System.Int32)
IL_0154: ldc.i4.8
IL_0155: blt => Label9
IL_015A: // end original
IL_015A: Label6
IL_015A: Label10
IL_015A: ret
DONE

### Patch: virtual System.Void ColossalFramework.UI.UIView::Start()


### Replacement: static System.Void
ColossalFramework.UI.UIView::ColossalFramework.UI.UIView.Start_Patch1(ColossalFrame
work.UI.UIView this)
IL_0000: Local var 0:
ColossalFramework.PoolList`1<ColossalFramework.UI.UIComponent>
IL_0000: Local var 1: ColossalFramework.UI.UIComponent
IL_0000: Local var 2:
System.Collections.Generic.IEnumerator`1<ColossalFramework.UI.UIComponent>
IL_0000: // start original
IL_0000: ldarg.0
IL_0001: ldc.i4.0
IL_0002: stfld System.Int32 ColossalFramework.UI.UIView::m_FramesRendered
IL_0007: ldarg.0
IL_0008: call System.Void
ColossalFramework.UI.UIView::InvalidateAllComponents()
IL_000D: ldarg.0
IL_000E: ldfld UnityEngine.MeshRenderer
ColossalFramework.UI.UIView::m_MeshRenderer
IL_0013: ldnull
IL_0014: call static System.Boolean
UnityEngine.Object::op_Inequality(UnityEngine.Object x, UnityEngine.Object y)
IL_0019: brfalse => Label0
IL_001E: ldarg.0
IL_001F: ldfld UnityEngine.MeshRenderer
ColossalFramework.UI.UIView::m_MeshRenderer
IL_0024: ldc.i4.1
IL_0025: callvirt System.Void UnityEngine.Renderer::set_enabled(System.Boolean
value)
IL_002A: Label0
IL_002A: ldarg.0
IL_002B: call ColossalFramework.PoolList`1<ColossalFramework.UI.UIComponent>
ColossalFramework.UI.UIView::GetTopLevelComponents()
IL_0030: stloc.0
.try
{
IL_0031: ldloc.0
IL_0032: callvirt virtual
System.Collections.Generic.IEnumerator`1<ColossalFramework.UI.UIComponent>
ColossalFramework.PoolList`1<ColossalFramework.UI.UIComponent>::GetEnumerator()
IL_0037: stloc.2
.try
{
IL_0038: br => Label1
IL_003D: Label2
IL_003D: ldloc.2
IL_003E: callvirt abstract virtual ColossalFramework.UI.UIComponent
System.Collections.Generic.IEnumerator`1<ColossalFramework.UI.UIComponent>::get_Cur
rent()
IL_0043: stloc.1
IL_0044: ldloc.1
IL_0045: ldc.i4.1
IL_0046: callvirt System.Void
ColossalFramework.UI.UIComponent::InitializeParentVisibilityCache(System.Boolean
parentVisible)
IL_004B: Label1
IL_004B: ldloc.2
IL_004C: callvirt abstract virtual System.Boolean
System.Collections.IEnumerator::MoveNext()
IL_0051: brtrue => Label2
IL_0056: leave => Label3
IL_005B: leave => (autogenerated)
} // end try
.finally
{
IL_0060: ldloc.2
IL_0061: brfalse => Label4
IL_0066: ldloc.2
IL_0067: callvirt abstract virtual System.Void
System.IDisposable::Dispose()
IL_006C: Label4
IL_006C: endfinally
IL_006D: leave => (autogenerated)
} // end handler
IL_006E: Label3
IL_006E: leave => Label5
IL_0073: leave => (autogenerated)
} // end try
.finally
{
IL_0078: ldloc.0
IL_0079: brfalse => Label6
IL_007E: ldloc.0
IL_007F: callvirt abstract virtual System.Void
System.IDisposable::Dispose()
IL_0084: Label6
IL_0084: endfinally
IL_0085: leave => (autogenerated)
} // end handler
IL_0086: Label5
IL_0086: ldarg.0
IL_0087: ldc.i4.1
IL_0088: stfld System.Boolean
ColossalFramework.UI.UIView::m_VisibilityCacheInitialized
IL_008D: // end original
IL_008D: call static System.Void
Kwytto.Redirectors.UIViewRedirector::AfterStart()
IL_0092: ret
DONE

### Patch: virtual UnityEngine.Color NetAI::GetColor(System.UInt16 nodeID, NetNode&


data, InfoMode infoMode, SubInfoMode subInfoMode)
### Replacement: static UnityEngine.Color NetAI::NetAI.GetColor_Patch1(NetAI this,
System.UInt16 nodeID, NetNode& data, InfoMode infoMode, SubInfoMode subInfoMode)
IL_0000: Local var 0: UnityEngine.Color
IL_0000: ldloca 0 (UnityEngine.Color)
IL_0004: initobj UnityEngine.Color
IL_000A: // start original
IL_000A: ldarg.3
IL_000B: brfalse => Label0
IL_0010: call static InfoManager
ColossalFramework.Singleton`1<InfoManager>::get_instance()
IL_0015: ldfld InfoProperties SimulationManagerBase`2<InfoManager,
InfoProperties>::m_properties
IL_001A: ldfld UnityEngine.Color InfoProperties::m_neutralColor
IL_001F: br => Label1
IL_0024: Label0
IL_0024: ldarg.0
IL_0025: ldfld NetInfo NetAI::m_info
IL_002A: ldfld UnityEngine.Color NetInfo::m_color
IL_002F: // end original
IL_002F: Label1
IL_002F: stloc 0 (UnityEngine.Color)
IL_0033: ldloca 0 (UnityEngine.Color)
IL_0037: ldarg 1
IL_003B: ldarg 2
IL_003F: ldarg 3
IL_0043: ldarg 4
IL_0047: call static System.Void
ElectricRoads.Overrides.ElectricRoadsOverrides::AfterGetColorNode(UnityEngine.Color
& __result, System.UInt16 nodeID, NetNode& data, InfoMode infoMode, SubInfoMode
subInfoMode)
IL_004C: ldloc 0 (UnityEngine.Color)
IL_0050: ret
DONE
### Patch: virtual UnityEngine.Color NetAI::GetColor(System.UInt16 segmentID,
NetSegment& data, InfoMode infoMode, SubInfoMode subInfoMode)
### Replacement: static UnityEngine.Color NetAI::NetAI.GetColor_Patch1(NetAI this,
System.UInt16 segmentID, NetSegment& data, InfoMode infoMode, SubInfoMode
subInfoMode)
IL_0000: Local var 0: UnityEngine.Color
IL_0000: ldloca 0 (UnityEngine.Color)
IL_0004: initobj UnityEngine.Color
IL_000A: // start original
IL_000A: ldarg.3
IL_000B: brfalse => Label0
IL_0010: call static InfoManager
ColossalFramework.Singleton`1<InfoManager>::get_instance()
IL_0015: ldfld InfoProperties SimulationManagerBase`2<InfoManager,
InfoProperties>::m_properties
IL_001A: ldfld UnityEngine.Color InfoProperties::m_neutralColor
IL_001F: br => Label1
IL_0024: Label0
IL_0024: ldarg.0
IL_0025: ldfld NetInfo NetAI::m_info
IL_002A: ldfld UnityEngine.Color NetInfo::m_color
IL_002F: // end original
IL_002F: Label1
IL_002F: stloc 0 (UnityEngine.Color)
IL_0033: ldloca 0 (UnityEngine.Color)
IL_0037: ldarg 1
IL_003B: ldarg 2
IL_003F: ldarg 3
IL_0043: ldarg 4
IL_0047: call static System.Void
ElectricRoads.Overrides.ElectricRoadsOverrides::AfterGetColorSegment(UnityEngine.Co
lor& __result, System.UInt16 segmentID, NetSegment& data, InfoMode infoMode,
SubInfoMode subInfoMode)
IL_004C: ldloc 0 (UnityEngine.Color)
IL_0050: ret
DONE

### Patch: System.Void ElectricityManager::UpdateNodeElectricity(System.Int32


nodeID, System.Int32 value)
### Replacement: static System.Void
ElectricityManager::ElectricityManager.UpdateNodeElectricity_Patch0(ElectricityMana
ger this, System.Int32 nodeID, System.Int32 value)
IL_0000: Local var 0: InfoManager/InfoMode
IL_0000: Local var 1: NetManager
IL_0000: Local var 2: System.Boolean
IL_0000: Local var 3: NetNode/Flags
IL_0000: Local var 4: System.UInt16
IL_0000: Local var 5: BuildingManager
IL_0000: Local var 6: NetNode/Flags
IL_0000: Local var 7: System.Int32
IL_0000: Local var 8: System.UInt16
IL_0000: // start original
IL_0000: call static InfoManager
ColossalFramework.Singleton`1<InfoManager>::get_instance()
IL_0005: callvirt InfoMode InfoManager::get_CurrentMode()
IL_000A: stloc.0
IL_000B: call static NetManager
ColossalFramework.Singleton`1<NetManager>::get_instance()
IL_0010: stloc.1
IL_0011: ldc.i4.0
IL_0012: stloc.2
IL_0013: ldloc.1
IL_0014: ldfld Array16`1<NetNode> NetManager::m_nodes
IL_0019: ldfld NetNode[] Array16`1<NetNode>::m_buffer
IL_001E: ldarg.1
IL_001F: ldelema NetNode
IL_0024: ldfld Flags NetNode::m_flags
IL_0029: stloc.3
IL_002A: ldarg.1
IL_002B: call static System.Boolean
ElectricRoads.Overrides.ElectricRoadsOverrides::CheckNodeTransition(System.Int32
nodeID)
IL_0030: brfalse => Label0
IL_0035: ldloc.1
IL_0036: ldfld Array16`1<NetNode> NetManager::m_nodes
IL_003B: ldfld NetNode[] Array16`1<NetNode>::m_buffer
IL_0040: ldarg.1
IL_0041: ldelema NetNode
IL_0046: dup
IL_0047: ldfld Flags NetNode::m_flags
IL_004C: ldc.i4 -1048577
IL_0051: and
IL_0052: stfld Flags NetNode::m_flags
IL_0057: br => Label10
IL_005C: Label0
IL_005C: ldloc.1
IL_005D: ldfld Array16`1<NetNode> NetManager::m_nodes
IL_0062: ldfld NetNode[] Array16`1<NetNode>::m_buffer
IL_0067: ldarg.1
IL_0068: ldelema NetNode
IL_006D: ldfld System.UInt16 NetNode::m_building
IL_0072: stloc.s 4 (System.UInt16)
IL_0074: ldloc.s 4 (System.UInt16)
IL_0076: brfalse => Label1
IL_007B: call static BuildingManager
ColossalFramework.Singleton`1<BuildingManager>::get_instance()
IL_0080: stloc.s 5 (BuildingManager)
IL_0082: ldloc.s 5 (BuildingManager)
IL_0084: ldfld Array16`1<Building> BuildingManager::m_buildings
IL_0089: ldfld Building[] Array16`1<Building>::m_buffer
IL_008E: ldloc.s 4 (System.UInt16)
IL_0090: ldelema Building
IL_0095: ldfld System.UInt16 Building::m_electricityBuffer
IL_009A: ldarg.2
IL_009B: beq => Label2
IL_00A0: ldloc.s 5 (BuildingManager)
IL_00A2: ldfld Array16`1<Building> BuildingManager::m_buildings
IL_00A7: ldfld Building[] Array16`1<Building>::m_buffer
IL_00AC: ldloc.s 4 (System.UInt16)
IL_00AE: ldelema Building
IL_00B3: ldarg.2
IL_00B4: conv.u2
IL_00B5: stfld System.UInt16 Building::m_electricityBuffer
IL_00BA: ldloc.0
IL_00BB: ldc.i4.1
IL_00BC: ceq
IL_00BE: stloc.2
IL_00BF: Label2
IL_00BF: ldloc.2
IL_00C0: brfalse => Label3
IL_00C5: ldloc.s 5 (BuildingManager)
IL_00C7: ldloc.s 4 (System.UInt16)
IL_00C9: callvirt System.Void BuildingManager::UpdateBuildingColors(System.UInt16
building)
IL_00CE: Label1
IL_00CE: Label3
IL_00CE: ldloc.3
IL_00CF: ldc.i4 -67108865
IL_00D4: and
IL_00D5: stloc.s 6 (NetNode+Flags)
IL_00D7: ldarg.2
IL_00D8: brfalse => Label4
IL_00DD: ldloc.s 6 (NetNode+Flags)
IL_00DF: ldc.i4 67108864
IL_00E4: or
IL_00E5: stloc.s 6 (NetNode+Flags)
IL_00E7: Label4
IL_00E7: ldloc.s 6 (NetNode+Flags)
IL_00E9: ldloc.3
IL_00EA: beq => Label5
IL_00EF: ldloc.1
IL_00F0: ldfld Array16`1<NetNode> NetManager::m_nodes
IL_00F5: ldfld NetNode[] Array16`1<NetNode>::m_buffer
IL_00FA: ldarg.1
IL_00FB: ldelema NetNode
IL_0100: ldloc.s 6 (NetNode+Flags)
IL_0102: stfld Flags NetNode::m_flags
IL_0107: ldloc.0
IL_0108: ldc.i4.1
IL_0109: ceq
IL_010B: stloc.2
IL_010C: Label5
IL_010C: ldloc.2
IL_010D: brfalse => Label6
IL_0112: ldloc.1
IL_0113: ldarg.1
IL_0114: conv.u2
IL_0115: callvirt System.Void NetManager::UpdateNodeColors(System.UInt16 node)
IL_011A: ldc.i4.0
IL_011B: stloc.s 7 (System.Int32)
IL_011D: br => Label7
IL_0122: Label9
IL_0122: ldloc.1
IL_0123: ldfld Array16`1<NetNode> NetManager::m_nodes
IL_0128: ldfld NetNode[] Array16`1<NetNode>::m_buffer
IL_012D: ldarg.1
IL_012E: ldelema NetNode
IL_0133: ldloc.s 7 (System.Int32)
IL_0135: call System.UInt16 NetNode::GetSegment(System.Int32 index)
IL_013A: stloc.s 8 (System.UInt16)
IL_013C: ldloc.s 8 (System.UInt16)
IL_013E: brfalse => Label8
IL_0143: ldloc.1
IL_0144: ldloc.s 8 (System.UInt16)
IL_0146: callvirt System.Void NetManager::UpdateSegmentColors(System.UInt16
segment)
IL_014B: Label8
IL_014B: ldloc.s 7 (System.Int32)
IL_014D: ldc.i4.1
IL_014E: add
IL_014F: stloc.s 7 (System.Int32)
IL_0151: Label7
IL_0151: ldloc.s 7 (System.Int32)
IL_0153: ldc.i4.8
IL_0154: blt => Label9
IL_0159: // end original
IL_0159: Label6
IL_0159: Label10
IL_0159: ret
DONE

### Patch: static System.Void PropInstance::RenderInstance(CameraInfo cameraInfo,


PropInfo info, InstanceID id, UnityEngine.Vector3 position, System.Single scale,
System.Single angle, UnityEngine.Color color, UnityEngine.Vector4 objectIndex,
System.Boolean active, UnityEngine.Texture heightMap, UnityEngine.Vector4
heightMapping, UnityEngine.Vector4 surfaceMapping, UnityEngine.Texture
waterHeightMap, UnityEngine.Vector4 waterHeightMapping, UnityEngine.Vector4
waterSurfaceMapping)
### Replacement: static System.Void
PropInstance::PropInstance.RenderInstance_Patch0(CameraInfo cameraInfo, PropInfo
info, InstanceID id, UnityEngine.Vector3 position, System.Single scale,
System.Single angle, UnityEngine.Color color, UnityEngine.Vector4 objectIndex,
System.Boolean active, UnityEngine.Texture heightMap, UnityEngine.Vector4
heightMapping, UnityEngine.Vector4 surfaceMapping, UnityEngine.Texture
waterHeightMap, UnityEngine.Vector4 waterHeightMapping, UnityEngine.Vector4
waterSurfaceMapping)
IL_0000: Local var 0: UnityEngine.Matrix4x4
IL_0000: Local var 1: System.Single
IL_0000: Local var 2: System.Int32
IL_0000: Local var 3: UnityEngine.Vector3
IL_0000: Local var 4: UnityEngine.Vector3
IL_0000: Local var 5: EffectInfo/SpawnArea
IL_0000: Local var 6: System.Single
IL_0000: Local var 7: LightSystem
IL_0000: Local var 8: ColossalFramework.Math.Randomizer
IL_0000: Local var 9: UnityEngine.Vector4
IL_0000: Local var 10: System.Single
IL_0000: Local var 11: System.Single
IL_0000: Local var 12: System.Single
IL_0000: Local var 13: UnityEngine.Matrix4x4
IL_0000: Local var 14: PropManager
IL_0000: Local var 15: UnityEngine.MaterialPropertyBlock
IL_0000: Local var 16: System.Int32
IL_0000: // start original
IL_0000: ldarg.1
IL_0001: ldfld System.Boolean PrefabInfo::m_prefabInitialized
IL_0006: brfalse => Label0
IL_000B: ldarg.1
IL_000C: ldfld System.Boolean PropInfo::m_hasEffects
IL_0011: brfalse => Label1
IL_0016: ldarg.s 8
IL_0018: brtrue => Label2
IL_001D: ldarg.1
IL_001E: ldfld System.Boolean PropInfo::m_alwaysActive
IL_0023: brfalse => Label3
IL_0028: Label2
IL_0028: ldloca.s 0 (UnityEngine.Matrix4x4)
IL_002A: initobj UnityEngine.Matrix4x4
IL_0030: ldloca.s 0 (UnityEngine.Matrix4x4)
IL_0032: ldarg.3
IL_0033: ldarg.s 5
IL_0035: ldc.r4 57.29578
IL_003A: mul
IL_003B: call static UnityEngine.Vector3 UnityEngine.Vector3::get_down()
IL_0040: call static UnityEngine.Quaternion
UnityEngine.Quaternion::AngleAxis(System.Single angle, UnityEngine.Vector3 axis)
IL_0045: ldarg.s 4
IL_0047: ldarg.s 4
IL_0049: ldarg.s 4
IL_004B: newobj System.Void UnityEngine.Vector3::.ctor(System.Single x,
System.Single y, System.Single z)
IL_0050: call System.Void UnityEngine.Matrix4x4::SetTRS(UnityEngine.Vector3
pos, UnityEngine.Quaternion q, UnityEngine.Vector3 s)
IL_0055: call static SimulationManager
ColossalFramework.Singleton`1<SimulationManager>::get_instance()
IL_005A: ldfld System.Single SimulationManager::m_simulationTimeDelta
IL_005F: stloc.1
IL_0060: ldc.i4.0
IL_0061: stloc.2
IL_0062: br => Label4
IL_0067: Label5
IL_0067: ldloca.s 0 (UnityEngine.Matrix4x4)
IL_0069: ldarg.1
IL_006A: ldfld Effect[] PropInfo::m_effects
IL_006F: ldloc.2
IL_0070: ldelema PropInfo+Effect
IL_0075: ldfld UnityEngine.Vector3 Effect::m_position
IL_007A: call UnityEngine.Vector3
UnityEngine.Matrix4x4::MultiplyPoint(UnityEngine.Vector3 v)
IL_007F: stloc.3
IL_0080: ldloca.s 0 (UnityEngine.Matrix4x4)
IL_0082: ldarg.1
IL_0083: ldfld Effect[] PropInfo::m_effects
IL_0088: ldloc.2
IL_0089: ldelema PropInfo+Effect
IL_008E: ldfld UnityEngine.Vector3 Effect::m_direction
IL_0093: call UnityEngine.Vector3
UnityEngine.Matrix4x4::MultiplyVector(UnityEngine.Vector3 v)
IL_0098: stloc.s 4 (UnityEngine.Vector3)
IL_009A: ldloca.s 5 (EffectInfo+SpawnArea)
IL_009C: ldloc.3
IL_009D: ldloc.s 4 (UnityEngine.Vector3)
IL_009F: ldc.r4 0
IL_00A4: call System.Void SpawnArea::.ctor(UnityEngine.Vector3 position,
UnityEngine.Vector3 direction, System.Single radius)
IL_00A9: ldarg.1
IL_00AA: ldfld Effect[] PropInfo::m_effects
IL_00AF: ldloc.2
IL_00B0: ldelema PropInfo+Effect
IL_00B5: ldfld EffectInfo Effect::m_effect
IL_00BA: ldarg.2
IL_00BB: ldloc.s 5 (EffectInfo+SpawnArea)
IL_00BD: call static UnityEngine.Vector3 UnityEngine.Vector3::get_zero()
IL_00C2: ldc.r4 0
IL_00C7: ldc.r4 1
IL_00CC: ldc.r4 -1
IL_00D1: ldloc.1
IL_00D2: ldarg.0
IL_00D3: callvirt virtual System.Void EffectInfo::RenderEffect(InstanceID id,
SpawnArea area, UnityEngine.Vector3 velocity, System.Single acceleration,
System.Single magnitude, System.Single timeOffset, System.Single timeDelta,
CameraInfo cameraInfo)
IL_00D8: ldloc.2
IL_00D9: ldc.i4.1
IL_00DA: add
IL_00DB: stloc.2
IL_00DC: Label4
IL_00DC: ldloc.2
IL_00DD: ldarg.1
IL_00DE: ldfld Effect[] PropInfo::m_effects
IL_00E3: ldlen
IL_00E4: conv.i4
IL_00E5: blt => Label5
IL_00EA: Label1
IL_00EA: Label3
IL_00EA: ldarg.1
IL_00EB: ldfld System.Boolean PropInfo::m_hasRenderer
IL_00F0: brfalse => Label6
IL_00F5: ldarg.0
IL_00F6: ldfld System.Int32 CameraInfo::m_layerMask
IL_00FB: ldc.i4.1
IL_00FC: ldarg.1
IL_00FD: ldfld System.Int32 PrefabInfo::m_prefabDataLayer
IL_0102: ldc.i4.s 31
IL_0104: and
IL_0105: shl
IL_0106: and
IL_0107: brfalse => Label7
IL_010C: call static InfoManager
ColossalFramework.Singleton`1<InfoManager>::get_instance()
IL_0111: callvirt InfoMode InfoManager::get_CurrentMode()
IL_0116: brtrue => Label8
IL_011B: ldarg 2
IL_011F: call static System.Boolean
ElectricRoads.Overrides.ElectricRoadsOverrides::CheckElectrityNetForLight(InstanceI
D id)
IL_0124: brfalse => Label24
IL_0129: ldc.r4 0
IL_012E: stloc.s 6 (System.Single)
IL_0130: ldarg.s 8
IL_0132: brtrue => Label9
IL_0137: ldarg.1
IL_0138: ldfld System.Boolean PropInfo::m_alwaysActive
IL_013D: brtrue => Label10
IL_0142: Label24
IL_0142: ldarga.s 7
IL_0144: ldc.r4 0
IL_0149: stfld System.Single UnityEngine.Vector4::z
IL_014E: br => Label11
IL_0153: Label9
IL_0153: Label10
IL_0153: ldarg.1
IL_0154: ldflda UnityEngine.Vector2 PropInfo::m_illuminationOffRange
IL_0159: ldfld System.Single UnityEngine.Vector2::x
IL_015E: ldc.r4 1000
IL_0163: blt => Label12
IL_0168: ldarg.1
IL_0169: ldfld BlinkType PropInfo::m_illuminationBlinkType
IL_016E: brfalse => Label13
IL_0173: Label12
IL_0173: call static RenderManager
ColossalFramework.Singleton`1<RenderManager>::get_instance()
IL_0178: callvirt LightSystem RenderManager::get_lightSystem()
IL_017D: stloc.s 7 (LightSystem)
IL_017F: ldloca.s 8 (ColossalFramework.Math.Randomizer)
IL_0181: ldarga.s 2
IL_0183: call System.UInt32 InstanceID::get_Index()
IL_0188: call System.Void
ColossalFramework.Math.Randomizer::.ctor(System.UInt32 _seed)
IL_018D: ldarg.1
IL_018E: ldflda UnityEngine.Vector2 PropInfo::m_illuminationOffRange
IL_0193: ldfld System.Single UnityEngine.Vector2::x
IL_0198: ldloca.s 8 (ColossalFramework.Math.Randomizer)
IL_019A: ldc.i4 100000
IL_019F: call System.Int32
ColossalFramework.Math.Randomizer::Int32(System.UInt32 range)
IL_01A4: conv.r4
IL_01A5: ldc.r4 1E-05
IL_01AA: mul
IL_01AB: ldarg.1
IL_01AC: ldflda UnityEngine.Vector2 PropInfo::m_illuminationOffRange
IL_01B1: ldfld System.Single UnityEngine.Vector2::y
IL_01B6: ldarg.1
IL_01B7: ldflda UnityEngine.Vector2 PropInfo::m_illuminationOffRange
IL_01BC: ldfld System.Single UnityEngine.Vector2::x
IL_01C1: sub
IL_01C2: mul
IL_01C3: add
IL_01C4: stloc.s 6 (System.Single)
IL_01C6: ldarga.s 7
IL_01C8: ldloc.s 6 (System.Single)
IL_01CA: ldc.r4 0.01
IL_01CF: add
IL_01D0: ldloc.s 6 (System.Single)
IL_01D2: ldc.r4 0.01
IL_01D7: sub
IL_01D8: ldloc.s 7 (LightSystem)
IL_01DA: callvirt System.Single LightSystem::get_DayLightIntensity()
IL_01DF: call static System.Single MathUtils::SmoothStep(System.Single edge0,
System.Single edge1, System.Single x)
IL_01E4: stfld System.Single UnityEngine.Vector4::z
IL_01E9: ldarg.1
IL_01EA: ldfld BlinkType PropInfo::m_illuminationBlinkType
IL_01EF: brfalse => Label14
IL_01F4: ldarg.1
IL_01F5: ldfld BlinkType PropInfo::m_illuminationBlinkType
IL_01FA: call static UnityEngine.Vector4
LightEffect::GetBlinkVector(BlinkType type)
IL_01FF: stloc.s 9 (UnityEngine.Vector4)
IL_0201: ldloc.s 6 (System.Single)
IL_0203: ldc.r4 3.71
IL_0208: mul
IL_0209: call static SimulationManager
ColossalFramework.Singleton`1<SimulationManager>::get_instance()
IL_020E: ldfld System.Single SimulationManager::m_simulationTimer
IL_0213: ldloca.s 9 (UnityEngine.Vector4)
IL_0215: ldfld System.Single UnityEngine.Vector4::w
IL_021A: div
IL_021B: add
IL_021C: stloc.s 10 (System.Single)
IL_021E: ldloc.s 10 (System.Single)
IL_0220: ldloc.s 10 (System.Single)
IL_0222: call static System.Single UnityEngine.Mathf::Floor(System.Single f)
IL_0227: sub
IL_0228: ldloca.s 9 (UnityEngine.Vector4)
IL_022A: ldfld System.Single UnityEngine.Vector4::w
IL_022F: mul
IL_0230: stloc.s 10 (System.Single)
IL_0232: ldloca.s 9 (UnityEngine.Vector4)
IL_0234: ldfld System.Single UnityEngine.Vector4::x
IL_0239: ldloca.s 9 (UnityEngine.Vector4)
IL_023B: ldfld System.Single UnityEngine.Vector4::y
IL_0240: ldloc.s 10 (System.Single)
IL_0242: call static System.Single MathUtils::SmoothStep(System.Single edge0,
System.Single edge1, System.Single x)
IL_0247: stloc.s 11 (System.Single)
IL_0249: ldloca.s 9 (UnityEngine.Vector4)
IL_024B: ldfld System.Single UnityEngine.Vector4::w
IL_0250: ldloca.s 9 (UnityEngine.Vector4)
IL_0252: ldfld System.Single UnityEngine.Vector4::z
IL_0257: ldloc.s 10 (System.Single)
IL_0259: call static System.Single MathUtils::SmoothStep(System.Single edge0,
System.Single edge1, System.Single x)
IL_025E: stloc.s 12 (System.Single)
IL_0260: ldarga.s 7
IL_0262: dup
IL_0263: ldfld System.Single UnityEngine.Vector4::z
IL_0268: ldc.r4 1
IL_026D: ldloc.s 11 (System.Single)
IL_026F: ldloc.s 12 (System.Single)
IL_0271: mul
IL_0272: sub
IL_0273: mul
IL_0274: stfld System.Single UnityEngine.Vector4::z
IL_0279: Label14
IL_0279: br => Label15
IL_027E: Label13
IL_027E: ldarga.s 7
IL_0280: ldc.r4 1
IL_0285: stfld System.Single UnityEngine.Vector4::z
IL_028A: Label8
IL_028A: Label11
IL_028A: Label15
IL_028A: ldarg.0
IL_028B: brfalse => Label16
IL_0290: ldarg.0
IL_0291: ldarg.3
IL_0292: ldarg.1
IL_0293: ldfld System.Single PropInfo::m_lodRenderDistance
IL_0298: callvirt System.Boolean
CameraInfo::CheckRenderDistance(UnityEngine.Vector3 point, System.Single
maxDistance)
IL_029D: brfalse => Label17
IL_02A2: Label16
IL_02A2: ldloca.s 13 (UnityEngine.Matrix4x4)
IL_02A4: initobj UnityEngine.Matrix4x4
IL_02AA: ldloca.s 13 (UnityEngine.Matrix4x4)
IL_02AC: ldarg.3
IL_02AD: ldarg.s 5
IL_02AF: ldc.r4 57.29578
IL_02B4: mul
IL_02B5: call static UnityEngine.Vector3 UnityEngine.Vector3::get_down()
IL_02BA: call static UnityEngine.Quaternion
UnityEngine.Quaternion::AngleAxis(System.Single angle, UnityEngine.Vector3 axis)
IL_02BF: ldarg.s 4
IL_02C1: ldarg.s 4
IL_02C3: ldarg.s 4
IL_02C5: newobj System.Void UnityEngine.Vector3::.ctor(System.Single x,
System.Single y, System.Single z)
IL_02CA: call System.Void UnityEngine.Matrix4x4::SetTRS(UnityEngine.Vector3
pos, UnityEngine.Quaternion q, UnityEngine.Vector3 s)
IL_02CF: call static PropManager
ColossalFramework.Singleton`1<PropManager>::get_instance()
IL_02D4: stloc.s 14 (PropManager)
IL_02D6: ldloc.s 14 (PropManager)
IL_02D8: ldfld UnityEngine.MaterialPropertyBlock PropManager::m_materialBlock
IL_02DD: stloc.s 15 (UnityEngine.MaterialPropertyBlock)
IL_02DF: ldloc.s 15 (UnityEngine.MaterialPropertyBlock)
IL_02E1: callvirt System.Void UnityEngine.MaterialPropertyBlock::Clear()
IL_02E6: ldloc.s 15 (UnityEngine.MaterialPropertyBlock)
IL_02E8: ldloc.s 14 (PropManager)
IL_02EA: ldfld System.Int32 PropManager::ID_Color
IL_02EF: ldarg.s 6
IL_02F1: callvirt System.Void
UnityEngine.MaterialPropertyBlock::SetColor(System.Int32 nameID, UnityEngine.Color
value)
IL_02F6: ldloc.s 15 (UnityEngine.MaterialPropertyBlock)
IL_02F8: ldloc.s 14 (PropManager)
IL_02FA: ldfld System.Int32 PropManager::ID_HeightMap
IL_02FF: ldarg.s 9
IL_0301: callvirt System.Void
UnityEngine.MaterialPropertyBlock::SetTexture(System.Int32 nameID,
UnityEngine.Texture value)
IL_0306: ldloc.s 15 (UnityEngine.MaterialPropertyBlock)
IL_0308: ldloc.s 14 (PropManager)
IL_030A: ldfld System.Int32 PropManager::ID_HeightMapping
IL_030F: ldarg.s 10
IL_0311: callvirt System.Void
UnityEngine.MaterialPropertyBlock::SetVector(System.Int32 nameID,
UnityEngine.Vector4 value)
IL_0316: ldloc.s 15 (UnityEngine.MaterialPropertyBlock)
IL_0318: ldloc.s 14 (PropManager)
IL_031A: ldfld System.Int32 PropManager::ID_SurfaceMapping
IL_031F: ldarg.s 11
IL_0321: callvirt System.Void
UnityEngine.MaterialPropertyBlock::SetVector(System.Int32 nameID,
UnityEngine.Vector4 value)
IL_0326: ldloc.s 15 (UnityEngine.MaterialPropertyBlock)
IL_0328: ldloc.s 14 (PropManager)
IL_032A: ldfld System.Int32 PropManager::ID_ObjectIndex
IL_032F: ldarg.s 7
IL_0331: callvirt System.Void
UnityEngine.MaterialPropertyBlock::SetVector(System.Int32 nameID,
UnityEngine.Vector4 value)
IL_0336: ldloc.s 15 (UnityEngine.MaterialPropertyBlock)
IL_0338: ldloc.s 14 (PropManager)
IL_033A: ldfld System.Int32 PropManager::ID_WaterHeightMap
IL_033F: ldarg.s 12
IL_0341: callvirt System.Void
UnityEngine.MaterialPropertyBlock::SetTexture(System.Int32 nameID,
UnityEngine.Texture value)
IL_0346: ldloc.s 15 (UnityEngine.MaterialPropertyBlock)
IL_0348: ldloc.s 14 (PropManager)
IL_034A: ldfld System.Int32 PropManager::ID_WaterHeightMapping
IL_034F: ldarg.s 13
IL_0351: callvirt System.Void
UnityEngine.MaterialPropertyBlock::SetVector(System.Int32 nameID,
UnityEngine.Vector4 value)
IL_0356: ldloc.s 15 (UnityEngine.MaterialPropertyBlock)
IL_0358: ldloc.s 14 (PropManager)
IL_035A: ldfld System.Int32 PropManager::ID_WaterSurfaceMapping
IL_035F: ldarg.s 14
IL_0361: callvirt System.Void
UnityEngine.MaterialPropertyBlock::SetVector(System.Int32 nameID,
UnityEngine.Vector4 value)
IL_0366: ldarg.1
IL_0367: ldfld UnityEngine.Vector4[] PropInfo::m_rollLocation
IL_036C: brfalse => Label18
IL_0371: ldarg.1
IL_0372: ldfld UnityEngine.Material PropInfo::m_material
IL_0377: ldloc.s 14 (PropManager)
IL_0379: ldfld System.Int32 PropManager::ID_RollLocation
IL_037E: ldarg.1
IL_037F: ldfld UnityEngine.Vector4[] PropInfo::m_rollLocation
IL_0384: callvirt System.Void UnityEngine.Material::SetVectorArray(System.Int32
nameID, UnityEngine.Vector4[] values)
IL_0389: ldarg.1
IL_038A: ldfld UnityEngine.Material PropInfo::m_material
IL_038F: ldloc.s 14 (PropManager)
IL_0391: ldfld System.Int32 PropManager::ID_RollParams
IL_0396: ldarg.1
IL_0397: ldfld UnityEngine.Vector4[] PropInfo::m_rollParams
IL_039C: callvirt System.Void UnityEngine.Material::SetVectorArray(System.Int32
nameID, UnityEngine.Vector4[] values)
IL_03A1: Label18
IL_03A1: ldloc.s 14 (PropManager)
IL_03A3: ldflda DrawCallData SimulationManagerBase`2<PropManager,
PropProperties>::m_drawCallData
IL_03A8: dup
IL_03A9: ldfld System.Int32 DrawCallData::m_defaultCalls
IL_03AE: ldc.i4.1
IL_03AF: add
IL_03B0: stfld System.Int32 DrawCallData::m_defaultCalls
IL_03B5: ldarg.1
IL_03B6: ldfld UnityEngine.Mesh PropInfo::m_mesh
IL_03BB: ldloc.s 13 (UnityEngine.Matrix4x4)
IL_03BD: ldarg.1
IL_03BE: ldfld UnityEngine.Material PropInfo::m_material
IL_03C3: ldarg.1
IL_03C4: ldfld System.Int32 PrefabInfo::m_prefabDataLayer
IL_03C9: ldnull
IL_03CA: ldc.i4.0
IL_03CB: ldloc.s 15 (UnityEngine.MaterialPropertyBlock)
IL_03CD: call static System.Void
UnityEngine.Graphics::DrawMesh(UnityEngine.Mesh mesh, UnityEngine.Matrix4x4 matrix,
UnityEngine.Material material, System.Int32 layer, UnityEngine.Camera camera,
System.Int32 submeshIndex, UnityEngine.MaterialPropertyBlock properties)
IL_03D2: br => Label19
IL_03D7: Label17
IL_03D7: ldarg.s 9
IL_03D9: ldarg.1
IL_03DA: ldfld UnityEngine.Texture PropInfo::m_lodHeightMap
IL_03DF: call static System.Boolean
UnityEngine.Object::op_Inequality(UnityEngine.Object x, UnityEngine.Object y)
IL_03E4: brtrue => Label20
IL_03E9: ldarg.s 12
IL_03EB: ldarg.1
IL_03EC: ldfld UnityEngine.Texture PropInfo::m_lodWaterHeightMap
IL_03F1: call static System.Boolean
UnityEngine.Object::op_Inequality(UnityEngine.Object x, UnityEngine.Object y)
IL_03F6: brfalse => Label21
IL_03FB: Label20
IL_03FB: ldarg.1
IL_03FC: ldfld System.Int32 PropInfo::m_lodCount
IL_0401: brfalse => Label22
IL_0406: ldarg.0
IL_0407: ldarg.1
IL_0408: call static System.Void PropInstance::RenderLod(CameraInfo
cameraInfo, PropInfo info)
IL_040D: Label22
IL_040D: ldarg.1
IL_040E: ldarg.s 9
IL_0410: stfld UnityEngine.Texture PropInfo::m_lodHeightMap
IL_0415: ldarg.1
IL_0416: ldarg.s 10
IL_0418: stfld UnityEngine.Vector4 PropInfo::m_lodHeightMapping
IL_041D: ldarg.1
IL_041E: ldarg.s 11
IL_0420: stfld UnityEngine.Vector4 PropInfo::m_lodSurfaceMapping
IL_0425: ldarg.1
IL_0426: ldarg.s 12
IL_0428: stfld UnityEngine.Texture PropInfo::m_lodWaterHeightMap
IL_042D: ldarg.1
IL_042E: ldarg.s 13
IL_0430: stfld UnityEngine.Vector4 PropInfo::m_lodWaterHeightMapping
IL_0435: ldarg.1
IL_0436: ldarg.s 14
IL_0438: stfld UnityEngine.Vector4 PropInfo::m_lodWaterSurfaceMapping
IL_043D: Label21
IL_043D: ldarga.s 7
IL_043F: ldarg.s 4
IL_0441: stfld System.Single UnityEngine.Vector4::w
IL_0446: ldarg.1
IL_0447: ldfld UnityEngine.Vector4[] PropInfo::m_lodLocations
IL_044C: ldarg.1
IL_044D: ldfld System.Int32 PropInfo::m_lodCount
IL_0452: ldelema UnityEngine.Vector4
IL_0457: ldarga.s 3
IL_0459: ldfld System.Single UnityEngine.Vector3::x
IL_045E: ldarga.s 3
IL_0460: ldfld System.Single UnityEngine.Vector3::y
IL_0465: ldarga.s 3
IL_0467: ldfld System.Single UnityEngine.Vector3::z
IL_046C: ldarg.s 5
IL_046E: newobj System.Void UnityEngine.Vector4::.ctor(System.Single x,
System.Single y, System.Single z, System.Single w)
IL_0473: stobj UnityEngine.Vector4
IL_0478: ldarg.1
IL_0479: ldfld UnityEngine.Vector4[] PropInfo::m_lodObjectIndices
IL_047E: ldarg.1
IL_047F: ldfld System.Int32 PropInfo::m_lodCount
IL_0484: ldelema UnityEngine.Vector4
IL_0489: ldarg.s 7
IL_048B: stobj UnityEngine.Vector4
IL_0490: ldarg.1
IL_0491: ldfld UnityEngine.Vector4[] PropInfo::m_lodColors
IL_0496: ldarg.1
IL_0497: ldfld System.Int32 PropInfo::m_lodCount
IL_049C: ldelema UnityEngine.Vector4
IL_04A1: ldarga.s 6
IL_04A3: call UnityEngine.Color UnityEngine.Color::get_linear()
IL_04A8: call static UnityEngine.Vector4
UnityEngine.Color::op_Implicit(UnityEngine.Color c)
IL_04AD: stobj UnityEngine.Vector4
IL_04B2: ldarg.1
IL_04B3: ldarg.1
IL_04B4: ldfld UnityEngine.Vector3 PropInfo::m_lodMin
IL_04B9: ldarg.3
IL_04BA: call static UnityEngine.Vector3
UnityEngine.Vector3::Min(UnityEngine.Vector3 lhs, UnityEngine.Vector3 rhs)
IL_04BF: stfld UnityEngine.Vector3 PropInfo::m_lodMin
IL_04C4: ldarg.1
IL_04C5: ldarg.1
IL_04C6: ldfld UnityEngine.Vector3 PropInfo::m_lodMax
IL_04CB: ldarg.3
IL_04CC: call static UnityEngine.Vector3
UnityEngine.Vector3::Max(UnityEngine.Vector3 lhs, UnityEngine.Vector3 rhs)
IL_04D1: stfld UnityEngine.Vector3 PropInfo::m_lodMax
IL_04D6: ldarg.1
IL_04D7: dup
IL_04D8: ldfld System.Int32 PropInfo::m_lodCount
IL_04DD: ldc.i4.1
IL_04DE: add
IL_04DF: dup
IL_04E0: stloc.s 16 (System.Int32)
IL_04E2: stfld System.Int32 PropInfo::m_lodCount
IL_04E7: ldloc.s 16 (System.Int32)
IL_04E9: ldarg.1
IL_04EA: ldfld UnityEngine.Vector4[] PropInfo::m_lodLocations
IL_04EF: ldlen
IL_04F0: conv.i4
IL_04F1: bne.un => Label23
IL_04F6: ldarg.0
IL_04F7: ldarg.1
IL_04F8: call static System.Void PropInstance::RenderLod(CameraInfo
cameraInfo, PropInfo info)
IL_04FD: // end original
IL_04FD: Label0
IL_04FD: Label6
IL_04FD: Label7
IL_04FD: Label19
IL_04FD: Label23
IL_04FD: ret
DONE

### Patch: static System.Void PropInstance::RenderInstance(CameraInfo cameraInfo,


PropInfo info, InstanceID id, UnityEngine.Vector3 position, System.Single scale,
System.Single angle, UnityEngine.Color color, UnityEngine.Vector4 objectIndex,
System.Boolean active)
### Replacement: static System.Void
PropInstance::PropInstance.RenderInstance_Patch0(CameraInfo cameraInfo, PropInfo
info, InstanceID id, UnityEngine.Vector3 position, System.Single scale,
System.Single angle, UnityEngine.Color color, UnityEngine.Vector4 objectIndex,
System.Boolean active)
IL_0000: Local var 0: UnityEngine.Matrix4x4
IL_0000: Local var 1: System.Single
IL_0000: Local var 2: System.Int32
IL_0000: Local var 3: UnityEngine.Vector3
IL_0000: Local var 4: UnityEngine.Vector3
IL_0000: Local var 5: EffectInfo/SpawnArea
IL_0000: Local var 6: System.Single
IL_0000: Local var 7: LightSystem
IL_0000: Local var 8: ColossalFramework.Math.Randomizer
IL_0000: Local var 9: UnityEngine.Vector4
IL_0000: Local var 10: System.Single
IL_0000: Local var 11: System.Single
IL_0000: Local var 12: System.Single
IL_0000: Local var 13: UnityEngine.Matrix4x4
IL_0000: Local var 14: PropManager
IL_0000: Local var 15: UnityEngine.MaterialPropertyBlock
IL_0000: Local var 16: UnityEngine.Matrix4x4
IL_0000: Local var 17: PropManager
IL_0000: Local var 18: UnityEngine.MaterialPropertyBlock
IL_0000: Local var 19: System.Int32
IL_0000: // start original
IL_0000: ldarg.1
IL_0001: ldfld System.Boolean PrefabInfo::m_prefabInitialized
IL_0006: brfalse => Label0
IL_000B: ldarg.1
IL_000C: ldfld System.Boolean PropInfo::m_hasEffects
IL_0011: brfalse => Label1
IL_0016: ldarg.s 8
IL_0018: brtrue => Label2
IL_001D: ldarg.1
IL_001E: ldfld System.Boolean PropInfo::m_alwaysActive
IL_0023: brfalse => Label3
IL_0028: Label2
IL_0028: ldloca.s 0 (UnityEngine.Matrix4x4)
IL_002A: initobj UnityEngine.Matrix4x4
IL_0030: ldloca.s 0 (UnityEngine.Matrix4x4)
IL_0032: ldarg.3
IL_0033: ldarg.s 5
IL_0035: ldc.r4 57.29578
IL_003A: mul
IL_003B: call static UnityEngine.Vector3 UnityEngine.Vector3::get_down()
IL_0040: call static UnityEngine.Quaternion
UnityEngine.Quaternion::AngleAxis(System.Single angle, UnityEngine.Vector3 axis)
IL_0045: ldarg.s 4
IL_0047: ldarg.s 4
IL_0049: ldarg.s 4
IL_004B: newobj System.Void UnityEngine.Vector3::.ctor(System.Single x,
System.Single y, System.Single z)
IL_0050: call System.Void UnityEngine.Matrix4x4::SetTRS(UnityEngine.Vector3
pos, UnityEngine.Quaternion q, UnityEngine.Vector3 s)
IL_0055: call static SimulationManager
ColossalFramework.Singleton`1<SimulationManager>::get_instance()
IL_005A: ldfld System.Single SimulationManager::m_simulationTimeDelta
IL_005F: stloc.1
IL_0060: ldc.i4.0
IL_0061: stloc.2
IL_0062: br => Label4
IL_0067: Label5
IL_0067: ldloca.s 0 (UnityEngine.Matrix4x4)
IL_0069: ldarg.1
IL_006A: ldfld Effect[] PropInfo::m_effects
IL_006F: ldloc.2
IL_0070: ldelema PropInfo+Effect
IL_0075: ldfld UnityEngine.Vector3 Effect::m_position
IL_007A: call UnityEngine.Vector3
UnityEngine.Matrix4x4::MultiplyPoint(UnityEngine.Vector3 v)
IL_007F: stloc.3
IL_0080: ldloca.s 0 (UnityEngine.Matrix4x4)
IL_0082: ldarg.1
IL_0083: ldfld Effect[] PropInfo::m_effects
IL_0088: ldloc.2
IL_0089: ldelema PropInfo+Effect
IL_008E: ldfld UnityEngine.Vector3 Effect::m_direction
IL_0093: call UnityEngine.Vector3
UnityEngine.Matrix4x4::MultiplyVector(UnityEngine.Vector3 v)
IL_0098: stloc.s 4 (UnityEngine.Vector3)
IL_009A: ldloca.s 5 (EffectInfo+SpawnArea)
IL_009C: ldloc.3
IL_009D: ldloc.s 4 (UnityEngine.Vector3)
IL_009F: ldc.r4 0
IL_00A4: call System.Void SpawnArea::.ctor(UnityEngine.Vector3 position,
UnityEngine.Vector3 direction, System.Single radius)
IL_00A9: ldarg.1
IL_00AA: ldfld Effect[] PropInfo::m_effects
IL_00AF: ldloc.2
IL_00B0: ldelema PropInfo+Effect
IL_00B5: ldfld EffectInfo Effect::m_effect
IL_00BA: ldarg.2
IL_00BB: ldloc.s 5 (EffectInfo+SpawnArea)
IL_00BD: call static UnityEngine.Vector3 UnityEngine.Vector3::get_zero()
IL_00C2: ldc.r4 0
IL_00C7: ldc.r4 1
IL_00CC: ldc.r4 -1
IL_00D1: ldloc.1
IL_00D2: ldarg.0
IL_00D3: callvirt virtual System.Void EffectInfo::RenderEffect(InstanceID id,
SpawnArea area, UnityEngine.Vector3 velocity, System.Single acceleration,
System.Single magnitude, System.Single timeOffset, System.Single timeDelta,
CameraInfo cameraInfo)
IL_00D8: ldloc.2
IL_00D9: ldc.i4.1
IL_00DA: add
IL_00DB: stloc.2
IL_00DC: Label4
IL_00DC: ldloc.2
IL_00DD: ldarg.1
IL_00DE: ldfld Effect[] PropInfo::m_effects
IL_00E3: ldlen
IL_00E4: conv.i4
IL_00E5: blt => Label5
IL_00EA: Label1
IL_00EA: Label3
IL_00EA: ldarg.1
IL_00EB: ldfld System.Boolean PropInfo::m_hasRenderer
IL_00F0: brfalse => Label6
IL_00F5: ldarg.0
IL_00F6: ldfld System.Int32 CameraInfo::m_layerMask
IL_00FB: ldc.i4.1
IL_00FC: ldarg.1
IL_00FD: ldfld System.Int32 PrefabInfo::m_prefabDataLayer
IL_0102: ldc.i4.s 31
IL_0104: and
IL_0105: shl
IL_0106: and
IL_0107: brfalse => Label7
IL_010C: call static InfoManager
ColossalFramework.Singleton`1<InfoManager>::get_instance()
IL_0111: callvirt InfoMode InfoManager::get_CurrentMode()
IL_0116: brtrue => Label8
IL_011B: ldarg 2
IL_011F: call static System.Boolean
ElectricRoads.Overrides.ElectricRoadsOverrides::CheckElectrityNetForLight(InstanceI
D id)
IL_0124: brfalse => Label24
IL_0129: ldc.r4 0
IL_012E: stloc.s 6 (System.Single)
IL_0130: ldarg.s 8
IL_0132: brtrue => Label9
IL_0137: ldarg.1
IL_0138: ldfld System.Boolean PropInfo::m_alwaysActive
IL_013D: brtrue => Label10
IL_0142: Label24
IL_0142: ldarga.s 7
IL_0144: ldc.r4 0
IL_0149: stfld System.Single UnityEngine.Vector4::z
IL_014E: br => Label11
IL_0153: Label9
IL_0153: Label10
IL_0153: ldarg.1
IL_0154: ldflda UnityEngine.Vector2 PropInfo::m_illuminationOffRange
IL_0159: ldfld System.Single UnityEngine.Vector2::x
IL_015E: ldc.r4 1000
IL_0163: blt => Label12
IL_0168: ldarg.1
IL_0169: ldfld BlinkType PropInfo::m_illuminationBlinkType
IL_016E: brfalse => Label13
IL_0173: Label12
IL_0173: call static RenderManager
ColossalFramework.Singleton`1<RenderManager>::get_instance()
IL_0178: callvirt LightSystem RenderManager::get_lightSystem()
IL_017D: stloc.s 7 (LightSystem)
IL_017F: ldloca.s 8 (ColossalFramework.Math.Randomizer)
IL_0181: ldarga.s 2
IL_0183: call System.UInt32 InstanceID::get_Index()
IL_0188: call System.Void
ColossalFramework.Math.Randomizer::.ctor(System.UInt32 _seed)
IL_018D: ldarg.1
IL_018E: ldflda UnityEngine.Vector2 PropInfo::m_illuminationOffRange
IL_0193: ldfld System.Single UnityEngine.Vector2::x
IL_0198: ldloca.s 8 (ColossalFramework.Math.Randomizer)
IL_019A: ldc.i4 100000
IL_019F: call System.Int32
ColossalFramework.Math.Randomizer::Int32(System.UInt32 range)
IL_01A4: conv.r4
IL_01A5: ldc.r4 1E-05
IL_01AA: mul
IL_01AB: ldarg.1
IL_01AC: ldflda UnityEngine.Vector2 PropInfo::m_illuminationOffRange
IL_01B1: ldfld System.Single UnityEngine.Vector2::y
IL_01B6: ldarg.1
IL_01B7: ldflda UnityEngine.Vector2 PropInfo::m_illuminationOffRange
IL_01BC: ldfld System.Single UnityEngine.Vector2::x
IL_01C1: sub
IL_01C2: mul
IL_01C3: add
IL_01C4: stloc.s 6 (System.Single)
IL_01C6: ldarga.s 7
IL_01C8: ldloc.s 6 (System.Single)
IL_01CA: ldc.r4 0.01
IL_01CF: add
IL_01D0: ldloc.s 6 (System.Single)
IL_01D2: ldc.r4 0.01
IL_01D7: sub
IL_01D8: ldloc.s 7 (LightSystem)
IL_01DA: callvirt System.Single LightSystem::get_DayLightIntensity()
IL_01DF: call static System.Single MathUtils::SmoothStep(System.Single edge0,
System.Single edge1, System.Single x)
IL_01E4: stfld System.Single UnityEngine.Vector4::z
IL_01E9: ldarg.1
IL_01EA: ldfld BlinkType PropInfo::m_illuminationBlinkType
IL_01EF: brfalse => Label14
IL_01F4: ldarg.1
IL_01F5: ldfld BlinkType PropInfo::m_illuminationBlinkType
IL_01FA: call static UnityEngine.Vector4
LightEffect::GetBlinkVector(BlinkType type)
IL_01FF: stloc.s 9 (UnityEngine.Vector4)
IL_0201: ldloc.s 6 (System.Single)
IL_0203: ldc.r4 3.71
IL_0208: mul
IL_0209: call static SimulationManager
ColossalFramework.Singleton`1<SimulationManager>::get_instance()
IL_020E: ldfld System.Single SimulationManager::m_simulationTimer
IL_0213: ldloca.s 9 (UnityEngine.Vector4)
IL_0215: ldfld System.Single UnityEngine.Vector4::w
IL_021A: div
IL_021B: add
IL_021C: stloc.s 10 (System.Single)
IL_021E: ldloc.s 10 (System.Single)
IL_0220: ldloc.s 10 (System.Single)
IL_0222: call static System.Single UnityEngine.Mathf::Floor(System.Single f)
IL_0227: sub
IL_0228: ldloca.s 9 (UnityEngine.Vector4)
IL_022A: ldfld System.Single UnityEngine.Vector4::w
IL_022F: mul
IL_0230: stloc.s 10 (System.Single)
IL_0232: ldloca.s 9 (UnityEngine.Vector4)
IL_0234: ldfld System.Single UnityEngine.Vector4::x
IL_0239: ldloca.s 9 (UnityEngine.Vector4)
IL_023B: ldfld System.Single UnityEngine.Vector4::y
IL_0240: ldloc.s 10 (System.Single)
IL_0242: call static System.Single MathUtils::SmoothStep(System.Single edge0,
System.Single edge1, System.Single x)
IL_0247: stloc.s 11 (System.Single)
IL_0249: ldloca.s 9 (UnityEngine.Vector4)
IL_024B: ldfld System.Single UnityEngine.Vector4::w
IL_0250: ldloca.s 9 (UnityEngine.Vector4)
IL_0252: ldfld System.Single UnityEngine.Vector4::z
IL_0257: ldloc.s 10 (System.Single)
IL_0259: call static System.Single MathUtils::SmoothStep(System.Single edge0,
System.Single edge1, System.Single x)
IL_025E: stloc.s 12 (System.Single)
IL_0260: ldarga.s 7
IL_0262: dup
IL_0263: ldfld System.Single UnityEngine.Vector4::z
IL_0268: ldc.r4 1
IL_026D: ldloc.s 11 (System.Single)
IL_026F: ldloc.s 12 (System.Single)
IL_0271: mul
IL_0272: sub
IL_0273: mul
IL_0274: stfld System.Single UnityEngine.Vector4::z
IL_0279: Label14
IL_0279: br => Label15
IL_027E: Label13
IL_027E: ldarga.s 7
IL_0280: ldc.r4 1
IL_0285: stfld System.Single UnityEngine.Vector4::z
IL_028A: Label8
IL_028A: Label11
IL_028A: Label15
IL_028A: ldarg.0
IL_028B: brfalse => Label16
IL_0290: ldarg.0
IL_0291: ldarg.3
IL_0292: ldarg.1
IL_0293: ldfld System.Single PropInfo::m_lodRenderDistance
IL_0298: callvirt System.Boolean
CameraInfo::CheckRenderDistance(UnityEngine.Vector3 point, System.Single
maxDistance)
IL_029D: brfalse => Label17
IL_02A2: Label16
IL_02A2: ldloca.s 13 (UnityEngine.Matrix4x4)
IL_02A4: initobj UnityEngine.Matrix4x4
IL_02AA: ldloca.s 13 (UnityEngine.Matrix4x4)
IL_02AC: ldarg.3
IL_02AD: ldarg.s 5
IL_02AF: ldc.r4 57.29578
IL_02B4: mul
IL_02B5: call static UnityEngine.Vector3 UnityEngine.Vector3::get_down()
IL_02BA: call static UnityEngine.Quaternion
UnityEngine.Quaternion::AngleAxis(System.Single angle, UnityEngine.Vector3 axis)
IL_02BF: ldarg.s 4
IL_02C1: ldarg.s 4
IL_02C3: ldarg.s 4
IL_02C5: newobj System.Void UnityEngine.Vector3::.ctor(System.Single x,
System.Single y, System.Single z)
IL_02CA: call System.Void UnityEngine.Matrix4x4::SetTRS(UnityEngine.Vector3
pos, UnityEngine.Quaternion q, UnityEngine.Vector3 s)
IL_02CF: call static PropManager
ColossalFramework.Singleton`1<PropManager>::get_instance()
IL_02D4: stloc.s 14 (PropManager)
IL_02D6: ldloc.s 14 (PropManager)
IL_02D8: ldfld UnityEngine.MaterialPropertyBlock PropManager::m_materialBlock
IL_02DD: stloc.s 15 (UnityEngine.MaterialPropertyBlock)
IL_02DF: ldloc.s 15 (UnityEngine.MaterialPropertyBlock)
IL_02E1: callvirt System.Void UnityEngine.MaterialPropertyBlock::Clear()
IL_02E6: ldloc.s 15 (UnityEngine.MaterialPropertyBlock)
IL_02E8: ldloc.s 14 (PropManager)
IL_02EA: ldfld System.Int32 PropManager::ID_Color
IL_02EF: ldarg.s 6
IL_02F1: callvirt System.Void
UnityEngine.MaterialPropertyBlock::SetColor(System.Int32 nameID, UnityEngine.Color
value)
IL_02F6: ldloc.s 15 (UnityEngine.MaterialPropertyBlock)
IL_02F8: ldloc.s 14 (PropManager)
IL_02FA: ldfld System.Int32 PropManager::ID_ObjectIndex
IL_02FF: ldarg.s 7
IL_0301: callvirt System.Void
UnityEngine.MaterialPropertyBlock::SetVector(System.Int32 nameID,
UnityEngine.Vector4 value)
IL_0306: ldarg.1
IL_0307: ldfld UnityEngine.Vector4[] PropInfo::m_rollLocation
IL_030C: brfalse => Label18
IL_0311: ldarg.1
IL_0312: ldfld UnityEngine.Material PropInfo::m_material
IL_0317: ldloc.s 14 (PropManager)
IL_0319: ldfld System.Int32 PropManager::ID_RollLocation
IL_031E: ldarg.1
IL_031F: ldfld UnityEngine.Vector4[] PropInfo::m_rollLocation
IL_0324: callvirt System.Void UnityEngine.Material::SetVectorArray(System.Int32
nameID, UnityEngine.Vector4[] values)
IL_0329: ldarg.1
IL_032A: ldfld UnityEngine.Material PropInfo::m_material
IL_032F: ldloc.s 14 (PropManager)
IL_0331: ldfld System.Int32 PropManager::ID_RollParams
IL_0336: ldarg.1
IL_0337: ldfld UnityEngine.Vector4[] PropInfo::m_rollParams
IL_033C: callvirt System.Void UnityEngine.Material::SetVectorArray(System.Int32
nameID, UnityEngine.Vector4[] values)
IL_0341: Label18
IL_0341: ldloc.s 14 (PropManager)
IL_0343: ldflda DrawCallData SimulationManagerBase`2<PropManager,
PropProperties>::m_drawCallData
IL_0348: dup
IL_0349: ldfld System.Int32 DrawCallData::m_defaultCalls
IL_034E: ldc.i4.1
IL_034F: add
IL_0350: stfld System.Int32 DrawCallData::m_defaultCalls
IL_0355: ldarg.1
IL_0356: ldfld UnityEngine.Mesh PropInfo::m_mesh
IL_035B: ldloc.s 13 (UnityEngine.Matrix4x4)
IL_035D: ldarg.1
IL_035E: ldfld UnityEngine.Material PropInfo::m_material
IL_0363: ldarg.1
IL_0364: ldfld System.Int32 PrefabInfo::m_prefabDataLayer
IL_0369: ldnull
IL_036A: ldc.i4.0
IL_036B: ldloc.s 15 (UnityEngine.MaterialPropertyBlock)
IL_036D: call static System.Void
UnityEngine.Graphics::DrawMesh(UnityEngine.Mesh mesh, UnityEngine.Matrix4x4 matrix,
UnityEngine.Material material, System.Int32 layer, UnityEngine.Camera camera,
System.Int32 submeshIndex, UnityEngine.MaterialPropertyBlock properties)
IL_0372: br => Label19
IL_0377: Label17
IL_0377: ldarg.1
IL_0378: ldfld UnityEngine.Material PropInfo::m_lodMaterialCombined
IL_037D: ldnull
IL_037E: call static System.Boolean
UnityEngine.Object::op_Equality(UnityEngine.Object x, UnityEngine.Object y)
IL_0383: brfalse => Label20
IL_0388: ldloca.s 16 (UnityEngine.Matrix4x4)
IL_038A: initobj UnityEngine.Matrix4x4
IL_0390: ldloca.s 16 (UnityEngine.Matrix4x4)
IL_0392: ldarg.3
IL_0393: ldarg.s 5
IL_0395: ldc.r4 57.29578
IL_039A: mul
IL_039B: call static UnityEngine.Vector3 UnityEngine.Vector3::get_down()
IL_03A0: call static UnityEngine.Quaternion
UnityEngine.Quaternion::AngleAxis(System.Single angle, UnityEngine.Vector3 axis)
IL_03A5: ldarg.s 4
IL_03A7: ldarg.s 4
IL_03A9: ldarg.s 4
IL_03AB: newobj System.Void UnityEngine.Vector3::.ctor(System.Single x,
System.Single y, System.Single z)
IL_03B0: call System.Void UnityEngine.Matrix4x4::SetTRS(UnityEngine.Vector3
pos, UnityEngine.Quaternion q, UnityEngine.Vector3 s)
IL_03B5: call static PropManager
ColossalFramework.Singleton`1<PropManager>::get_instance()
IL_03BA: stloc.s 17 (PropManager)
IL_03BC: ldloc.s 17 (PropManager)
IL_03BE: ldfld UnityEngine.MaterialPropertyBlock PropManager::m_materialBlock
IL_03C3: stloc.s 18 (UnityEngine.MaterialPropertyBlock)
IL_03C5: ldloc.s 18 (UnityEngine.MaterialPropertyBlock)
IL_03C7: callvirt System.Void UnityEngine.MaterialPropertyBlock::Clear()
IL_03CC: ldloc.s 18 (UnityEngine.MaterialPropertyBlock)
IL_03CE: ldloc.s 17 (PropManager)
IL_03D0: ldfld System.Int32 PropManager::ID_Color
IL_03D5: ldarg.s 6
IL_03D7: callvirt System.Void
UnityEngine.MaterialPropertyBlock::SetColor(System.Int32 nameID, UnityEngine.Color
value)
IL_03DC: ldloc.s 18 (UnityEngine.MaterialPropertyBlock)
IL_03DE: ldloc.s 17 (PropManager)
IL_03E0: ldfld System.Int32 PropManager::ID_ObjectIndex
IL_03E5: ldarg.s 7
IL_03E7: callvirt System.Void
UnityEngine.MaterialPropertyBlock::SetVector(System.Int32 nameID,
UnityEngine.Vector4 value)
IL_03EC: ldarg.1
IL_03ED: ldfld UnityEngine.Vector4[] PropInfo::m_rollLocation
IL_03F2: brfalse => Label21
IL_03F7: ldarg.1
IL_03F8: ldfld UnityEngine.Material PropInfo::m_material
IL_03FD: ldloc.s 17 (PropManager)
IL_03FF: ldfld System.Int32 PropManager::ID_RollLocation
IL_0404: ldarg.1
IL_0405: ldfld UnityEngine.Vector4[] PropInfo::m_rollLocation
IL_040A: callvirt System.Void UnityEngine.Material::SetVectorArray(System.Int32
nameID, UnityEngine.Vector4[] values)
IL_040F: ldarg.1
IL_0410: ldfld UnityEngine.Material PropInfo::m_material
IL_0415: ldloc.s 17 (PropManager)
IL_0417: ldfld System.Int32 PropManager::ID_RollParams
IL_041C: ldarg.1
IL_041D: ldfld UnityEngine.Vector4[] PropInfo::m_rollParams
IL_0422: callvirt System.Void UnityEngine.Material::SetVectorArray(System.Int32
nameID, UnityEngine.Vector4[] values)
IL_0427: Label21
IL_0427: ldloc.s 17 (PropManager)
IL_0429: ldflda DrawCallData SimulationManagerBase`2<PropManager,
PropProperties>::m_drawCallData
IL_042E: dup
IL_042F: ldfld System.Int32 DrawCallData::m_defaultCalls
IL_0434: ldc.i4.1
IL_0435: add
IL_0436: stfld System.Int32 DrawCallData::m_defaultCalls
IL_043B: ldarg.1
IL_043C: ldfld UnityEngine.Mesh PropInfo::m_lodMesh
IL_0441: ldloc.s 16 (UnityEngine.Matrix4x4)
IL_0443: ldarg.1
IL_0444: ldfld UnityEngine.Material PropInfo::m_lodMaterial
IL_0449: ldarg.1
IL_044A: ldfld System.Int32 PrefabInfo::m_prefabDataLayer
IL_044F: ldnull
IL_0450: ldc.i4.0
IL_0451: ldloc.s 18 (UnityEngine.MaterialPropertyBlock)
IL_0453: call static System.Void
UnityEngine.Graphics::DrawMesh(UnityEngine.Mesh mesh, UnityEngine.Matrix4x4 matrix,
UnityEngine.Material material, System.Int32 layer, UnityEngine.Camera camera,
System.Int32 submeshIndex, UnityEngine.MaterialPropertyBlock properties)
IL_0458: br => Label22
IL_045D: Label20
IL_045D: ldarga.s 7
IL_045F: ldarg.s 4
IL_0461: stfld System.Single UnityEngine.Vector4::w
IL_0466: ldarg.1
IL_0467: ldfld UnityEngine.Vector4[] PropInfo::m_lodLocations
IL_046C: ldarg.1
IL_046D: ldfld System.Int32 PropInfo::m_lodCount
IL_0472: ldelema UnityEngine.Vector4
IL_0477: ldarga.s 3
IL_0479: ldfld System.Single UnityEngine.Vector3::x
IL_047E: ldarga.s 3
IL_0480: ldfld System.Single UnityEngine.Vector3::y
IL_0485: ldarga.s 3
IL_0487: ldfld System.Single UnityEngine.Vector3::z
IL_048C: ldarg.s 5
IL_048E: newobj System.Void UnityEngine.Vector4::.ctor(System.Single x,
System.Single y, System.Single z, System.Single w)
IL_0493: stobj UnityEngine.Vector4
IL_0498: ldarg.1
IL_0499: ldfld UnityEngine.Vector4[] PropInfo::m_lodObjectIndices
IL_049E: ldarg.1
IL_049F: ldfld System.Int32 PropInfo::m_lodCount
IL_04A4: ldelema UnityEngine.Vector4
IL_04A9: ldarg.s 7
IL_04AB: stobj UnityEngine.Vector4
IL_04B0: ldarg.1
IL_04B1: ldfld UnityEngine.Vector4[] PropInfo::m_lodColors
IL_04B6: ldarg.1
IL_04B7: ldfld System.Int32 PropInfo::m_lodCount
IL_04BC: ldelema UnityEngine.Vector4
IL_04C1: ldarga.s 6
IL_04C3: call UnityEngine.Color UnityEngine.Color::get_linear()
IL_04C8: call static UnityEngine.Vector4
UnityEngine.Color::op_Implicit(UnityEngine.Color c)
IL_04CD: stobj UnityEngine.Vector4
IL_04D2: ldarg.1
IL_04D3: ldarg.1
IL_04D4: ldfld UnityEngine.Vector3 PropInfo::m_lodMin
IL_04D9: ldarg.3
IL_04DA: call static UnityEngine.Vector3
UnityEngine.Vector3::Min(UnityEngine.Vector3 lhs, UnityEngine.Vector3 rhs)
IL_04DF: stfld UnityEngine.Vector3 PropInfo::m_lodMin
IL_04E4: ldarg.1
IL_04E5: ldarg.1
IL_04E6: ldfld UnityEngine.Vector3 PropInfo::m_lodMax
IL_04EB: ldarg.3
IL_04EC: call static UnityEngine.Vector3
UnityEngine.Vector3::Max(UnityEngine.Vector3 lhs, UnityEngine.Vector3 rhs)
IL_04F1: stfld UnityEngine.Vector3 PropInfo::m_lodMax
IL_04F6: ldarg.1
IL_04F7: dup
IL_04F8: ldfld System.Int32 PropInfo::m_lodCount
IL_04FD: ldc.i4.1
IL_04FE: add
IL_04FF: dup
IL_0500: stloc.s 19 (System.Int32)
IL_0502: stfld System.Int32 PropInfo::m_lodCount
IL_0507: ldloc.s 19 (System.Int32)
IL_0509: ldarg.1
IL_050A: ldfld UnityEngine.Vector4[] PropInfo::m_lodLocations
IL_050F: ldlen
IL_0510: conv.i4
IL_0511: bne.un => Label23
IL_0516: ldarg.0
IL_0517: ldarg.1
IL_0518: call static System.Void PropInstance::RenderLod(CameraInfo
cameraInfo, PropInfo info)
IL_051D: // end original
IL_051D: Label0
IL_051D: Label6
IL_051D: Label7
IL_051D: Label19
IL_051D: Label22
IL_051D: Label23
IL_051D: ret
DONE

### Patch: virtual System.Void LightEffect::PopulateGroupData(System.Int32 layer,


InstanceID id, UnityEngine.Vector3 pos, UnityEngine.Vector3 dir, 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
LightEffect::LightEffect.PopulateGroupData_Patch1(LightEffect this, System.Int32
layer, InstanceID id, UnityEngine.Vector3 pos, UnityEngine.Vector3 dir,
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.Boolean
IL_0000: Local var 1: UnityEngine.Vector3
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.Quaternion
IL_0000: Local var 7: UnityEngine.Vector4
IL_0000: Local var 8: UnityEngine.Vector2
IL_0000: Local var 9: ColossalFramework.Math.Randomizer
IL_0000: Local var 10: UnityEngine.Vector2
IL_0000: Local var 11: UnityEngine.Vector2
IL_0000: Local var 12: UnityEngine.Vector2
IL_0000: Local var 13: System.UInt16
IL_0000: Local var 14: UnityEngine.Vector3
IL_0000: Local var 15: UnityEngine.Color
IL_0000: Local var 16: UnityEngine.Color
IL_0000: Local var 17: System.Single
IL_0000: Local var 18: System.Single
IL_0000: Local var 19: System.Int32
IL_0000: Local var 20: System.Boolean
IL_0000: ldc.i4 0
IL_0005: stloc 20 (System.Boolean)
IL_0009: ldc.i4.1
IL_000A: stloc 20 (System.Boolean)
IL_000E: ldloc 20 (System.Boolean)
IL_0012: brfalse => Label1
IL_0017: ldarg 2
IL_001B: call static System.Boolean
ElectricRoads.Overrides.ElectricRoadsOverrides::CheckElectrityNetForLight(InstanceI
D id)
IL_0020: stloc 20 (System.Boolean)
IL_0024: Label1
IL_0024: nop
IL_0025: ldloc 20 (System.Boolean)
IL_0029: brfalse => Label0
IL_002E: // start original
IL_002E: ldarg.1
IL_002F: ldarg.0
IL_0030: ldfld System.Int32 LightEffect::m_groupLayer
IL_0035: beq => Label2
IL_003A: ldarg.1
IL_003B: ldarg.0
IL_003C: ldfld System.Int32 LightEffect::m_groupLayerFloating
IL_0041: bne.un => Label3
IL_0046: Label2
IL_0046: ldarg.1
IL_0047: ldarg.0
IL_0048: ldfld System.Int32 LightEffect::m_groupLayerFloating
IL_004D: ceq
IL_004F: stloc.0
IL_0050: ldloca.s 1 (UnityEngine.Vector3)
IL_0052: ldarg.0
IL_0053: ldfld System.Single LightEffect::m_lightRange
IL_0058: ldarg.0
IL_0059: ldfld System.Single LightEffect::m_lightRange
IL_005E: ldarg.0
IL_005F: ldfld System.Single LightEffect::m_lightRange
IL_0064: call System.Void UnityEngine.Vector3::.ctor(System.Single x,
System.Single y, System.Single z)
IL_0069: ldarg.3
IL_006A: ldloc.1
IL_006B: call static UnityEngine.Vector3
UnityEngine.Vector3::op_Subtraction(UnityEngine.Vector3 a, UnityEngine.Vector3 b)
IL_0070: stloc.2
IL_0071: ldarg.3
IL_0072: ldloc.1
IL_0073: call static UnityEngine.Vector3
UnityEngine.Vector3::op_Addition(UnityEngine.Vector3 a, UnityEngine.Vector3 b)
IL_0078: stloc.3
IL_0079: ldarg.s 9
IL_007B: ldarg.s 9
IL_007D: ldobj UnityEngine.Vector3
IL_0082: ldloc.2
IL_0083: call static UnityEngine.Vector3
UnityEngine.Vector3::Min(UnityEngine.Vector3 lhs, UnityEngine.Vector3 rhs)
IL_0088: stobj UnityEngine.Vector3
IL_008D: ldarg.s 10
IL_008F: ldarg.s 10
IL_0091: ldobj UnityEngine.Vector3
IL_0096: ldloc.3
IL_0097: call static UnityEngine.Vector3
UnityEngine.Vector3::Max(UnityEngine.Vector3 lhs, UnityEngine.Vector3 rhs)
IL_009C: stobj UnityEngine.Vector3
IL_00A1: ldarg.3
IL_00A2: ldarg.s 7
IL_00A4: call static UnityEngine.Vector3
UnityEngine.Vector3::op_Subtraction(UnityEngine.Vector3 a, UnityEngine.Vector3 b)
IL_00A9: stloc.s 4 (UnityEngine.Vector3)
IL_00AB: ldarg.s 11
IL_00AD: ldarg.s 11
IL_00AF: ldind.r4
IL_00B0: ldc.r4 30000
IL_00B5: call static System.Single UnityEngine.Mathf::Max(System.Single a,
System.Single b)
IL_00BA: stind.r4
IL_00BB: ldarg.0
IL_00BC: ldfld UnityEngine.LightType LightEffect::m_lightType
IL_00C1: brtrue => Label4
IL_00C6: ldarg.s 4
IL_00C8: call static UnityEngine.Quaternion
UnityEngine.Quaternion::LookRotation(UnityEngine.Vector3 forward)
IL_00CD: stloc.s 6 (UnityEngine.Quaternion)
IL_00CF: ldloc.s 6 (UnityEngine.Quaternion)
IL_00D1: ldarg.0
IL_00D2: ldfld UnityEngine.Quaternion LightEffect::m_lightRotation
IL_00D7: call static UnityEngine.Vector3 UnityEngine.Vector3::get_forward()
IL_00DC: call static UnityEngine.Vector3
UnityEngine.Quaternion::op_Multiply(UnityEngine.Quaternion rotation,
UnityEngine.Vector3 point)
IL_00E1: call static UnityEngine.Vector3
UnityEngine.Quaternion::op_Multiply(UnityEngine.Quaternion rotation,
UnityEngine.Vector3 point)
IL_00E6: stloc.s 5 (UnityEngine.Vector3)
IL_00E8: br => Label5
IL_00ED: Label4
IL_00ED: call static UnityEngine.Vector3 UnityEngine.Vector3::get_forward()
IL_00F2: stloc.s 5 (UnityEngine.Vector3)
IL_00F4: Label5
IL_00F4: ldloca.s 7 (UnityEngine.Vector4)
IL_00F6: ldloca.s 5 (UnityEngine.Vector3)
IL_00F8: ldfld System.Single UnityEngine.Vector3::x
IL_00FD: ldloca.s 5 (UnityEngine.Vector3)
IL_00FF: ldfld System.Single UnityEngine.Vector3::y
IL_0104: ldloca.s 5 (UnityEngine.Vector3)
IL_0106: ldfld System.Single UnityEngine.Vector3::z
IL_010B: ldc.r4 100000
IL_0110: call System.Void UnityEngine.Vector4::.ctor(System.Single x,
System.Single y, System.Single z, System.Single w)
IL_0115: ldarg.0
IL_0116: ldfld UnityEngine.LightType LightEffect::m_lightType
IL_011B: brtrue => Label6
IL_0120: ldloca.s 7 (UnityEngine.Vector4)
IL_0122: ldc.r4 0.01745329
IL_0127: ldarg.0
IL_0128: ldfld System.Single LightEffect::m_lightSpotAngle
IL_012D: mul
IL_012E: ldc.r4 0.5
IL_0133: mul
IL_0134: call static System.Single UnityEngine.Mathf::Cos(System.Single f)
IL_0139: neg
IL_013A: stfld System.Single UnityEngine.Vector4::w
IL_013F: Label6
IL_013F: ldloca.s 8 (UnityEngine.Vector2)
IL_0141: ldc.r4 1
IL_0146: ldarg.0
IL_0147: ldfld System.Single LightEffect::m_lightRange
IL_014C: ldarg.0
IL_014D: ldfld System.Single LightEffect::m_lightRange
IL_0152: mul
IL_0153: div
IL_0154: ldarg.0
IL_0155: ldfld System.Single LightEffect::m_lightIntensity
IL_015A: call System.Void UnityEngine.Vector2::.ctor(System.Single x,
System.Single y)
IL_015F: ldloca.s 9 (ColossalFramework.Math.Randomizer)
IL_0161: ldarga.s 2
IL_0163: call System.UInt32 InstanceID::get_Index()
IL_0168: call System.Void
ColossalFramework.Math.Randomizer::.ctor(System.UInt32 _seed)
IL_016D: ldloca.s 10 (UnityEngine.Vector2)
IL_016F: ldarg.0
IL_0170: ldflda UnityEngine.Vector2 LightEffect::m_offRange
IL_0175: ldfld System.Single UnityEngine.Vector2::x
IL_017A: ldloca.s 9 (ColossalFramework.Math.Randomizer)
IL_017C: ldc.i4 100000
IL_0181: call System.Int32
ColossalFramework.Math.Randomizer::Int32(System.UInt32 range)
IL_0186: conv.r4
IL_0187: ldc.r4 1E-05
IL_018C: mul
IL_018D: ldarg.0
IL_018E: ldflda UnityEngine.Vector2 LightEffect::m_offRange
IL_0193: ldfld System.Single UnityEngine.Vector2::y
IL_0198: ldarg.0
IL_0199: ldflda UnityEngine.Vector2 LightEffect::m_offRange
IL_019E: ldfld System.Single UnityEngine.Vector2::x
IL_01A3: sub
IL_01A4: mul
IL_01A5: add
IL_01A6: stfld System.Single UnityEngine.Vector2::x
IL_01AB: ldloca.s 10 (UnityEngine.Vector2)
IL_01AD: ldarg.0
IL_01AE: ldfld BlinkType LightEffect::m_blinkType
IL_01B3: conv.r4
IL_01B4: stfld System.Single UnityEngine.Vector2::y
IL_01B9: ldarg.2
IL_01BA: call static System.UInt16 EffectInfo::GetBuilding(InstanceID id)
IL_01BF: stloc.s 13 (System.UInt16)
IL_01C1: ldloc.s 13 (System.UInt16)
IL_01C3: brfalse => Label7
IL_01C8: ldloc.s 13 (System.UInt16)
IL_01CA: call static UnityEngine.Vector4
RenderManager::GetColorLocation(System.UInt32 instanceHolder)
IL_01CF: call static UnityEngine.Vector2
UnityEngine.Vector4::op_Implicit(UnityEngine.Vector4 v)
IL_01D4: stloc.s 11 (UnityEngine.Vector2)
IL_01D6: ldloc.0
IL_01D7: brfalse => Label8
IL_01DC: call static BuildingManager
ColossalFramework.Singleton`1<BuildingManager>::get_instance()
IL_01E1: ldfld Array16`1<Building> BuildingManager::m_buildings
IL_01E6: ldfld Building[] Array16`1<Building>::m_buffer
IL_01EB: ldloc.s 13 (System.UInt16)
IL_01ED: ldelema Building
IL_01F2: call UnityEngine.Vector3 Building::CalculateMeshPosition()
IL_01F7: stloc.s 14 (UnityEngine.Vector3)
IL_01F9: ldloc.s 14 (UnityEngine.Vector3)
IL_01FB: call static UnityEngine.Vector2
ColossalFramework.Math.VectorUtils::XZ(UnityEngine.Vector3 v)
IL_0200: stloc.s 12 (UnityEngine.Vector2)
IL_0202: ldarga.s 3
IL_0204: dup
IL_0205: ldfld System.Single UnityEngine.Vector3::y
IL_020A: ldloca.s 14 (UnityEngine.Vector3)
IL_020C: ldfld System.Single UnityEngine.Vector3::y
IL_0211: sub
IL_0212: stfld System.Single UnityEngine.Vector3::y
IL_0217: ldloca.s 4 (UnityEngine.Vector3)
IL_0219: dup
IL_021A: ldfld System.Single UnityEngine.Vector3::y
IL_021F: ldloca.s 14 (UnityEngine.Vector3)
IL_0221: ldfld System.Single UnityEngine.Vector3::y
IL_0226: sub
IL_0227: stfld System.Single UnityEngine.Vector3::y
IL_022C: br => Label9
IL_0231: Label8
IL_0231: call static UnityEngine.Vector2 UnityEngine.Vector2::get_zero()
IL_0236: stloc.s 12 (UnityEngine.Vector2)
IL_0238: Label9
IL_0238: br => Label10
IL_023D: Label7
IL_023D: ldsfld UnityEngine.Vector4 RenderManager::DefaultColorLocation
IL_0242: call static UnityEngine.Vector2
UnityEngine.Vector4::op_Implicit(UnityEngine.Vector4 v)
IL_0247: stloc.s 11 (UnityEngine.Vector2)
IL_0249: call static UnityEngine.Vector2 UnityEngine.Vector2::get_zero()
IL_024E: stloc.s 12 (UnityEngine.Vector2)
IL_0250: Label10
IL_0250: ldarg.0
IL_0251: ldfld UnityEngine.Color LightEffect::m_lightColor
IL_0256: stloc.s 15 (UnityEngine.Color)
IL_0258: ldarg.0
IL_0259: ldfld UnityEngine.Color[] LightEffect::m_variationColors
IL_025E: brfalse => Label11
IL_0263: ldarg.0
IL_0264: ldfld UnityEngine.Color[] LightEffect::m_variationColors
IL_0269: ldlen
IL_026A: conv.i4
IL_026B: brfalse => Label12
IL_0270: ldarg.0
IL_0271: ldfld UnityEngine.Color[] LightEffect::m_variationColors
IL_0276: ldloca.s 9 (ColossalFramework.Math.Randomizer)
IL_0278: ldarg.0
IL_0279: ldfld UnityEngine.Color[] LightEffect::m_variationColors
IL_027E: ldlen
IL_027F: conv.i4
IL_0280: call System.Int32
ColossalFramework.Math.Randomizer::Int32(System.UInt32 range)
IL_0285: ldelema UnityEngine.Color
IL_028A: ldobj UnityEngine.Color
IL_028F: stloc.s 16 (UnityEngine.Color)
IL_0291: ldloc.s 15 (UnityEngine.Color)
IL_0293: ldloc.s 16 (UnityEngine.Color)
IL_0295: ldloca.s 9 (ColossalFramework.Math.Randomizer)
IL_0297: ldc.i4 1000
IL_029C: call System.Int32
ColossalFramework.Math.Randomizer::Int32(System.UInt32 range)
IL_02A1: conv.r4
IL_02A2: ldc.r4 0.001
IL_02A7: mul
IL_02A8: call static UnityEngine.Color
UnityEngine.Color::Lerp(UnityEngine.Color a, UnityEngine.Color b, System.Single t)
IL_02AD: stloc.s 15 (UnityEngine.Color)
IL_02AF: Label11
IL_02AF: Label12
IL_02AF: ldloca.s 15 (UnityEngine.Color)
IL_02B1: call UnityEngine.Color UnityEngine.Color::get_linear()
IL_02B6: stloc.s 15 (UnityEngine.Color)
IL_02B8: ldloca.s 15 (UnityEngine.Color)
IL_02BA: ldarg.0
IL_02BB: ldfld UnityEngine.LightType LightEffect::m_lightType
IL_02C0: brtrue => Label13
IL_02C5: ldarg.0
IL_02C6: ldfld System.Single LightEffect::m_spotLeaking
IL_02CB: br => Label14
IL_02D0: Label13
IL_02D0: ldc.r4 0
IL_02D5: Label14
IL_02D5: stfld System.Single UnityEngine.Color::a
IL_02DA: ldarg.0
IL_02DB: ldfld System.Single LightEffect::m_lightRange
IL_02E0: ldc.r4 0.5235988
IL_02E5: call static System.Single UnityEngine.Mathf::Cos(System.Single f)
IL_02EA: div
IL_02EB: stloc.s 17 (System.Single)
IL_02ED: ldloc.s 17 (System.Single)
IL_02EF: ldc.r4 0.5
IL_02F4: mul
IL_02F5: stloc.s 18 (System.Single)
IL_02F7: ldarg.s 8
IL_02F9: ldfld UnityEngine.Vector3[] MeshData::m_vertices
IL_02FE: ldarg.s 5
IL_0300: ldind.i4
IL_0301: ldelema UnityEngine.Vector3
IL_0306: ldloca.s 4 (UnityEngine.Vector3)
IL_0308: ldfld System.Single UnityEngine.Vector3::x
IL_030D: ldloc.s 18 (System.Single)
IL_030F: sub
IL_0310: ldloca.s 4 (UnityEngine.Vector3)
IL_0312: ldfld System.Single UnityEngine.Vector3::y
IL_0317: ldarg.0
IL_0318: ldfld System.Single LightEffect::m_lightRange
IL_031D: add
IL_031E: ldloca.s 4 (UnityEngine.Vector3)
IL_0320: ldfld System.Single UnityEngine.Vector3::z
IL_0325: ldarg.0
IL_0326: ldfld System.Single LightEffect::m_lightRange
IL_032B: add
IL_032C: newobj System.Void UnityEngine.Vector3::.ctor(System.Single x,
System.Single y, System.Single z)
IL_0331: stobj UnityEngine.Vector3
IL_0336: ldarg.s 8
IL_0338: ldfld UnityEngine.Vector3[] MeshData::m_normals
IL_033D: ldarg.s 5
IL_033F: ldind.i4
IL_0340: ldelema UnityEngine.Vector3
IL_0345: ldarg.3
IL_0346: stobj UnityEngine.Vector3
IL_034B: ldarg.s 8
IL_034D: ldfld UnityEngine.Vector4[] MeshData::m_tangents
IL_0352: ldarg.s 5
IL_0354: ldind.i4
IL_0355: ldelema UnityEngine.Vector4
IL_035A: ldloc.s 7 (UnityEngine.Vector4)
IL_035C: stobj UnityEngine.Vector4
IL_0361: ldarg.s 8
IL_0363: ldfld UnityEngine.Vector2[] MeshData::m_uvs
IL_0368: ldarg.s 5
IL_036A: ldind.i4
IL_036B: ldelema UnityEngine.Vector2
IL_0370: ldloc.s 8 (UnityEngine.Vector2)
IL_0372: stobj UnityEngine.Vector2
IL_0377: ldarg.s 8
IL_0379: ldfld UnityEngine.Vector2[] MeshData::m_uvs2
IL_037E: ldarg.s 5
IL_0380: ldind.i4
IL_0381: ldelema UnityEngine.Vector2
IL_0386: ldloc.s 10 (UnityEngine.Vector2)
IL_0388: stobj UnityEngine.Vector2
IL_038D: ldarg.s 8
IL_038F: ldfld UnityEngine.Vector2[] MeshData::m_uvs3
IL_0394: ldarg.s 5
IL_0396: ldind.i4
IL_0397: ldelema UnityEngine.Vector2
IL_039C: ldloc.s 11 (UnityEngine.Vector2)
IL_039E: stobj UnityEngine.Vector2
IL_03A3: ldloc.0
IL_03A4: brfalse => Label15
IL_03A9: ldarg.s 8
IL_03AB: ldfld UnityEngine.Vector2[] MeshData::m_uvs4
IL_03B0: ldarg.s 5
IL_03B2: ldind.i4
IL_03B3: ldelema UnityEngine.Vector2
IL_03B8: ldloc.s 12 (UnityEngine.Vector2)
IL_03BA: stobj UnityEngine.Vector2
IL_03BF: Label15
IL_03BF: ldarg.s 8
IL_03C1: ldfld UnityEngine.Color32[] MeshData::m_colors
IL_03C6: ldarg.s 5
IL_03C8: ldind.i4
IL_03C9: ldelema UnityEngine.Color32
IL_03CE: ldloc.s 15 (UnityEngine.Color)
IL_03D0: call static UnityEngine.Color32
UnityEngine.Color32::op_Implicit(UnityEngine.Color c)
IL_03D5: stobj UnityEngine.Color32
IL_03DA: ldarg.s 5
IL_03DC: ldarg.s 5
IL_03DE: ldind.i4
IL_03DF: ldc.i4.1
IL_03E0: add
IL_03E1: stind.i4
IL_03E2: ldarg.s 8
IL_03E4: ldfld UnityEngine.Vector3[] MeshData::m_vertices
IL_03E9: ldarg.s 5
IL_03EB: ldind.i4
IL_03EC: ldelema UnityEngine.Vector3
IL_03F1: ldloca.s 4 (UnityEngine.Vector3)
IL_03F3: ldfld System.Single UnityEngine.Vector3::x
IL_03F8: ldloc.s 18 (System.Single)
IL_03FA: add
IL_03FB: ldloca.s 4 (UnityEngine.Vector3)
IL_03FD: ldfld System.Single UnityEngine.Vector3::y
IL_0402: ldarg.0
IL_0403: ldfld System.Single LightEffect::m_lightRange
IL_0408: add
IL_0409: ldloca.s 4 (UnityEngine.Vector3)
IL_040B: ldfld System.Single UnityEngine.Vector3::z
IL_0410: ldarg.0
IL_0411: ldfld System.Single LightEffect::m_lightRange
IL_0416: add
IL_0417: newobj System.Void UnityEngine.Vector3::.ctor(System.Single x,
System.Single y, System.Single z)
IL_041C: stobj UnityEngine.Vector3
IL_0421: ldarg.s 8
IL_0423: ldfld UnityEngine.Vector3[] MeshData::m_normals
IL_0428: ldarg.s 5
IL_042A: ldind.i4
IL_042B: ldelema UnityEngine.Vector3
IL_0430: ldarg.3
IL_0431: stobj UnityEngine.Vector3
IL_0436: ldarg.s 8
IL_0438: ldfld UnityEngine.Vector4[] MeshData::m_tangents
IL_043D: ldarg.s 5
IL_043F: ldind.i4
IL_0440: ldelema UnityEngine.Vector4
IL_0445: ldloc.s 7 (UnityEngine.Vector4)
IL_0447: stobj UnityEngine.Vector4
IL_044C: ldarg.s 8
IL_044E: ldfld UnityEngine.Vector2[] MeshData::m_uvs
IL_0453: ldarg.s 5
IL_0455: ldind.i4
IL_0456: ldelema UnityEngine.Vector2
IL_045B: ldloc.s 8 (UnityEngine.Vector2)
IL_045D: stobj UnityEngine.Vector2
IL_0462: ldarg.s 8
IL_0464: ldfld UnityEngine.Vector2[] MeshData::m_uvs2
IL_0469: ldarg.s 5
IL_046B: ldind.i4
IL_046C: ldelema UnityEngine.Vector2
IL_0471: ldloc.s 10 (UnityEngine.Vector2)
IL_0473: stobj UnityEngine.Vector2
IL_0478: ldarg.s 8
IL_047A: ldfld UnityEngine.Vector2[] MeshData::m_uvs3
IL_047F: ldarg.s 5
IL_0481: ldind.i4
IL_0482: ldelema UnityEngine.Vector2
IL_0487: ldloc.s 11 (UnityEngine.Vector2)
IL_0489: stobj UnityEngine.Vector2
IL_048E: ldloc.0
IL_048F: brfalse => Label16
IL_0494: ldarg.s 8
IL_0496: ldfld UnityEngine.Vector2[] MeshData::m_uvs4
IL_049B: ldarg.s 5
IL_049D: ldind.i4
IL_049E: ldelema UnityEngine.Vector2
IL_04A3: ldloc.s 12 (UnityEngine.Vector2)
IL_04A5: stobj UnityEngine.Vector2
IL_04AA: Label16
IL_04AA: ldarg.s 8
IL_04AC: ldfld UnityEngine.Color32[] MeshData::m_colors
IL_04B1: ldarg.s 5
IL_04B3: ldind.i4
IL_04B4: ldelema UnityEngine.Color32
IL_04B9: ldloc.s 15 (UnityEngine.Color)
IL_04BB: call static UnityEngine.Color32
UnityEngine.Color32::op_Implicit(UnityEngine.Color c)
IL_04C0: stobj UnityEngine.Color32
IL_04C5: ldarg.s 5
IL_04C7: ldarg.s 5
IL_04C9: ldind.i4
IL_04CA: ldc.i4.1
IL_04CB: add
IL_04CC: stind.i4
IL_04CD: ldarg.s 8
IL_04CF: ldfld UnityEngine.Vector3[] MeshData::m_vertices
IL_04D4: ldarg.s 5
IL_04D6: ldind.i4
IL_04D7: ldelema UnityEngine.Vector3
IL_04DC: ldloca.s 4 (UnityEngine.Vector3)
IL_04DE: ldfld System.Single UnityEngine.Vector3::x
IL_04E3: ldloc.s 17 (System.Single)
IL_04E5: add
IL_04E6: ldloca.s 4 (UnityEngine.Vector3)
IL_04E8: ldfld System.Single UnityEngine.Vector3::y
IL_04ED: ldloca.s 4 (UnityEngine.Vector3)
IL_04EF: ldfld System.Single UnityEngine.Vector3::z
IL_04F4: ldarg.0
IL_04F5: ldfld System.Single LightEffect::m_lightRange
IL_04FA: add
IL_04FB: newobj System.Void UnityEngine.Vector3::.ctor(System.Single x,
System.Single y, System.Single z)
IL_0500: stobj UnityEngine.Vector3
IL_0505: ldarg.s 8
IL_0507: ldfld UnityEngine.Vector3[] MeshData::m_normals
IL_050C: ldarg.s 5
IL_050E: ldind.i4
IL_050F: ldelema UnityEngine.Vector3
IL_0514: ldarg.3
IL_0515: stobj UnityEngine.Vector3
IL_051A: ldarg.s 8
IL_051C: ldfld UnityEngine.Vector4[] MeshData::m_tangents
IL_0521: ldarg.s 5
IL_0523: ldind.i4
IL_0524: ldelema UnityEngine.Vector4
IL_0529: ldloc.s 7 (UnityEngine.Vector4)
IL_052B: stobj UnityEngine.Vector4
IL_0530: ldarg.s 8
IL_0532: ldfld UnityEngine.Vector2[] MeshData::m_uvs
IL_0537: ldarg.s 5
IL_0539: ldind.i4
IL_053A: ldelema UnityEngine.Vector2
IL_053F: ldloc.s 8 (UnityEngine.Vector2)
IL_0541: stobj UnityEngine.Vector2
IL_0546: ldarg.s 8
IL_0548: ldfld UnityEngine.Vector2[] MeshData::m_uvs2
IL_054D: ldarg.s 5
IL_054F: ldind.i4
IL_0550: ldelema UnityEngine.Vector2
IL_0555: ldloc.s 10 (UnityEngine.Vector2)
IL_0557: stobj UnityEngine.Vector2
IL_055C: ldarg.s 8
IL_055E: ldfld UnityEngine.Vector2[] MeshData::m_uvs3
IL_0563: ldarg.s 5
IL_0565: ldind.i4
IL_0566: ldelema UnityEngine.Vector2
IL_056B: ldloc.s 11 (UnityEngine.Vector2)
IL_056D: stobj UnityEngine.Vector2
IL_0572: ldloc.0
IL_0573: brfalse => Label17
IL_0578: ldarg.s 8
IL_057A: ldfld UnityEngine.Vector2[] MeshData::m_uvs4
IL_057F: ldarg.s 5
IL_0581: ldind.i4
IL_0582: ldelema UnityEngine.Vector2
IL_0587: ldloc.s 12 (UnityEngine.Vector2)
IL_0589: stobj UnityEngine.Vector2
IL_058E: Label17
IL_058E: ldarg.s 8
IL_0590: ldfld UnityEngine.Color32[] MeshData::m_colors
IL_0595: ldarg.s 5
IL_0597: ldind.i4
IL_0598: ldelema UnityEngine.Color32
IL_059D: ldloc.s 15 (UnityEngine.Color)
IL_059F: call static UnityEngine.Color32
UnityEngine.Color32::op_Implicit(UnityEngine.Color c)
IL_05A4: stobj UnityEngine.Color32
IL_05A9: ldarg.s 5
IL_05AB: ldarg.s 5
IL_05AD: ldind.i4
IL_05AE: ldc.i4.1
IL_05AF: add
IL_05B0: stind.i4
IL_05B1: ldarg.s 8
IL_05B3: ldfld UnityEngine.Vector3[] MeshData::m_vertices
IL_05B8: ldarg.s 5
IL_05BA: ldind.i4
IL_05BB: ldelema UnityEngine.Vector3
IL_05C0: ldloca.s 4 (UnityEngine.Vector3)
IL_05C2: ldfld System.Single UnityEngine.Vector3::x
IL_05C7: ldloc.s 18 (System.Single)
IL_05C9: add
IL_05CA: ldloca.s 4 (UnityEngine.Vector3)
IL_05CC: ldfld System.Single UnityEngine.Vector3::y
IL_05D1: ldarg.0
IL_05D2: ldfld System.Single LightEffect::m_lightRange
IL_05D7: sub
IL_05D8: ldloca.s 4 (UnityEngine.Vector3)
IL_05DA: ldfld System.Single UnityEngine.Vector3::z
IL_05DF: ldarg.0
IL_05E0: ldfld System.Single LightEffect::m_lightRange
IL_05E5: add
IL_05E6: newobj System.Void UnityEngine.Vector3::.ctor(System.Single x,
System.Single y, System.Single z)
IL_05EB: stobj UnityEngine.Vector3
IL_05F0: ldarg.s 8
IL_05F2: ldfld UnityEngine.Vector3[] MeshData::m_normals
IL_05F7: ldarg.s 5
IL_05F9: ldind.i4
IL_05FA: ldelema UnityEngine.Vector3
IL_05FF: ldarg.3
IL_0600: stobj UnityEngine.Vector3
IL_0605: ldarg.s 8
IL_0607: ldfld UnityEngine.Vector4[] MeshData::m_tangents
IL_060C: ldarg.s 5
IL_060E: ldind.i4
IL_060F: ldelema UnityEngine.Vector4
IL_0614: ldloc.s 7 (UnityEngine.Vector4)
IL_0616: stobj UnityEngine.Vector4
IL_061B: ldarg.s 8
IL_061D: ldfld UnityEngine.Vector2[] MeshData::m_uvs
IL_0622: ldarg.s 5
IL_0624: ldind.i4
IL_0625: ldelema UnityEngine.Vector2
IL_062A: ldloc.s 8 (UnityEngine.Vector2)
IL_062C: stobj UnityEngine.Vector2
IL_0631: ldarg.s 8
IL_0633: ldfld UnityEngine.Vector2[] MeshData::m_uvs2
IL_0638: ldarg.s 5
IL_063A: ldind.i4
IL_063B: ldelema UnityEngine.Vector2
IL_0640: ldloc.s 10 (UnityEngine.Vector2)
IL_0642: stobj UnityEngine.Vector2
IL_0647: ldarg.s 8
IL_0649: ldfld UnityEngine.Vector2[] MeshData::m_uvs3
IL_064E: ldarg.s 5
IL_0650: ldind.i4
IL_0651: ldelema UnityEngine.Vector2
IL_0656: ldloc.s 11 (UnityEngine.Vector2)
IL_0658: stobj UnityEngine.Vector2
IL_065D: ldloc.0
IL_065E: brfalse => Label18
IL_0663: ldarg.s 8
IL_0665: ldfld UnityEngine.Vector2[] MeshData::m_uvs4
IL_066A: ldarg.s 5
IL_066C: ldind.i4
IL_066D: ldelema UnityEngine.Vector2
IL_0672: ldloc.s 12 (UnityEngine.Vector2)
IL_0674: stobj UnityEngine.Vector2
IL_0679: Label18
IL_0679: ldarg.s 8
IL_067B: ldfld UnityEngine.Color32[] MeshData::m_colors
IL_0680: ldarg.s 5
IL_0682: ldind.i4
IL_0683: ldelema UnityEngine.Color32
IL_0688: ldloc.s 15 (UnityEngine.Color)
IL_068A: call static UnityEngine.Color32
UnityEngine.Color32::op_Implicit(UnityEngine.Color c)
IL_068F: stobj UnityEngine.Color32
IL_0694: ldarg.s 5
IL_0696: ldarg.s 5
IL_0698: ldind.i4
IL_0699: ldc.i4.1
IL_069A: add
IL_069B: stind.i4
IL_069C: ldarg.s 8
IL_069E: ldfld UnityEngine.Vector3[] MeshData::m_vertices
IL_06A3: ldarg.s 5
IL_06A5: ldind.i4
IL_06A6: ldelema UnityEngine.Vector3
IL_06AB: ldloca.s 4 (UnityEngine.Vector3)
IL_06AD: ldfld System.Single UnityEngine.Vector3::x
IL_06B2: ldloc.s 18 (System.Single)
IL_06B4: sub
IL_06B5: ldloca.s 4 (UnityEngine.Vector3)
IL_06B7: ldfld System.Single UnityEngine.Vector3::y
IL_06BC: ldarg.0
IL_06BD: ldfld System.Single LightEffect::m_lightRange
IL_06C2: sub
IL_06C3: ldloca.s 4 (UnityEngine.Vector3)
IL_06C5: ldfld System.Single UnityEngine.Vector3::z
IL_06CA: ldarg.0
IL_06CB: ldfld System.Single LightEffect::m_lightRange
IL_06D0: add
IL_06D1: newobj System.Void UnityEngine.Vector3::.ctor(System.Single x,
System.Single y, System.Single z)
IL_06D6: stobj UnityEngine.Vector3
IL_06DB: ldarg.s 8
IL_06DD: ldfld UnityEngine.Vector3[] MeshData::m_normals
IL_06E2: ldarg.s 5
IL_06E4: ldind.i4
IL_06E5: ldelema UnityEngine.Vector3
IL_06EA: ldarg.3
IL_06EB: stobj UnityEngine.Vector3
IL_06F0: ldarg.s 8
IL_06F2: ldfld UnityEngine.Vector4[] MeshData::m_tangents
IL_06F7: ldarg.s 5
IL_06F9: ldind.i4
IL_06FA: ldelema UnityEngine.Vector4
IL_06FF: ldloc.s 7 (UnityEngine.Vector4)
IL_0701: stobj UnityEngine.Vector4
IL_0706: ldarg.s 8
IL_0708: ldfld UnityEngine.Vector2[] MeshData::m_uvs
IL_070D: ldarg.s 5
IL_070F: ldind.i4
IL_0710: ldelema UnityEngine.Vector2
IL_0715: ldloc.s 8 (UnityEngine.Vector2)
IL_0717: stobj UnityEngine.Vector2
IL_071C: ldarg.s 8
IL_071E: ldfld UnityEngine.Vector2[] MeshData::m_uvs2
IL_0723: ldarg.s 5
IL_0725: ldind.i4
IL_0726: ldelema UnityEngine.Vector2
IL_072B: ldloc.s 10 (UnityEngine.Vector2)
IL_072D: stobj UnityEngine.Vector2
IL_0732: ldarg.s 8
IL_0734: ldfld UnityEngine.Vector2[] MeshData::m_uvs3
IL_0739: ldarg.s 5
IL_073B: ldind.i4
IL_073C: ldelema UnityEngine.Vector2
IL_0741: ldloc.s 11 (UnityEngine.Vector2)
IL_0743: stobj UnityEngine.Vector2
IL_0748: ldloc.0
IL_0749: brfalse => Label19
IL_074E: ldarg.s 8
IL_0750: ldfld UnityEngine.Vector2[] MeshData::m_uvs4
IL_0755: ldarg.s 5
IL_0757: ldind.i4
IL_0758: ldelema UnityEngine.Vector2
IL_075D: ldloc.s 12 (UnityEngine.Vector2)
IL_075F: stobj UnityEngine.Vector2
IL_0764: Label19
IL_0764: ldarg.s 8
IL_0766: ldfld UnityEngine.Color32[] MeshData::m_colors
IL_076B: ldarg.s 5
IL_076D: ldind.i4
IL_076E: ldelema UnityEngine.Color32
IL_0773: ldloc.s 15 (UnityEngine.Color)
IL_0775: call static UnityEngine.Color32
UnityEngine.Color32::op_Implicit(UnityEngine.Color c)
IL_077A: stobj UnityEngine.Color32
IL_077F: ldarg.s 5
IL_0781: ldarg.s 5
IL_0783: ldind.i4
IL_0784: ldc.i4.1
IL_0785: add
IL_0786: stind.i4
IL_0787: ldarg.s 8
IL_0789: ldfld UnityEngine.Vector3[] MeshData::m_vertices
IL_078E: ldarg.s 5
IL_0790: ldind.i4
IL_0791: ldelema UnityEngine.Vector3
IL_0796: ldloca.s 4 (UnityEngine.Vector3)
IL_0798: ldfld System.Single UnityEngine.Vector3::x
IL_079D: ldloc.s 17 (System.Single)
IL_079F: sub
IL_07A0: ldloca.s 4 (UnityEngine.Vector3)
IL_07A2: ldfld System.Single UnityEngine.Vector3::y
IL_07A7: ldloca.s 4 (UnityEngine.Vector3)
IL_07A9: ldfld System.Single UnityEngine.Vector3::z
IL_07AE: ldarg.0
IL_07AF: ldfld System.Single LightEffect::m_lightRange
IL_07B4: add
IL_07B5: newobj System.Void UnityEngine.Vector3::.ctor(System.Single x,
System.Single y, System.Single z)
IL_07BA: stobj UnityEngine.Vector3
IL_07BF: ldarg.s 8
IL_07C1: ldfld UnityEngine.Vector3[] MeshData::m_normals
IL_07C6: ldarg.s 5
IL_07C8: ldind.i4
IL_07C9: ldelema UnityEngine.Vector3
IL_07CE: ldarg.3
IL_07CF: stobj UnityEngine.Vector3
IL_07D4: ldarg.s 8
IL_07D6: ldfld UnityEngine.Vector4[] MeshData::m_tangents
IL_07DB: ldarg.s 5
IL_07DD: ldind.i4
IL_07DE: ldelema UnityEngine.Vector4
IL_07E3: ldloc.s 7 (UnityEngine.Vector4)
IL_07E5: stobj UnityEngine.Vector4
IL_07EA: ldarg.s 8
IL_07EC: ldfld UnityEngine.Vector2[] MeshData::m_uvs
IL_07F1: ldarg.s 5
IL_07F3: ldind.i4
IL_07F4: ldelema UnityEngine.Vector2
IL_07F9: ldloc.s 8 (UnityEngine.Vector2)
IL_07FB: stobj UnityEngine.Vector2
IL_0800: ldarg.s 8
IL_0802: ldfld UnityEngine.Vector2[] MeshData::m_uvs2
IL_0807: ldarg.s 5
IL_0809: ldind.i4
IL_080A: ldelema UnityEngine.Vector2
IL_080F: ldloc.s 10 (UnityEngine.Vector2)
IL_0811: stobj UnityEngine.Vector2
IL_0816: ldarg.s 8
IL_0818: ldfld UnityEngine.Vector2[] MeshData::m_uvs3
IL_081D: ldarg.s 5
IL_081F: ldind.i4
IL_0820: ldelema UnityEngine.Vector2
IL_0825: ldloc.s 11 (UnityEngine.Vector2)
IL_0827: stobj UnityEngine.Vector2
IL_082C: ldloc.0
IL_082D: brfalse => Label20
IL_0832: ldarg.s 8
IL_0834: ldfld UnityEngine.Vector2[] MeshData::m_uvs4
IL_0839: ldarg.s 5
IL_083B: ldind.i4
IL_083C: ldelema UnityEngine.Vector2
IL_0841: ldloc.s 12 (UnityEngine.Vector2)
IL_0843: stobj UnityEngine.Vector2
IL_0848: Label20
IL_0848: ldarg.s 8
IL_084A: ldfld UnityEngine.Color32[] MeshData::m_colors
IL_084F: ldarg.s 5
IL_0851: ldind.i4
IL_0852: ldelema UnityEngine.Color32
IL_0857: ldloc.s 15 (UnityEngine.Color)
IL_0859: call static UnityEngine.Color32
UnityEngine.Color32::op_Implicit(UnityEngine.Color c)
IL_085E: stobj UnityEngine.Color32
IL_0863: ldarg.s 5
IL_0865: ldarg.s 5
IL_0867: ldind.i4
IL_0868: ldc.i4.1
IL_0869: add
IL_086A: stind.i4
IL_086B: ldarg.s 8
IL_086D: ldfld System.Int32[] MeshData::m_triangles
IL_0872: ldarg.s 6
IL_0874: ldarg.s 6
IL_0876: ldind.i4
IL_0877: dup
IL_0878: stloc.s 19 (System.Int32)
IL_087A: ldc.i4.1
IL_087B: add
IL_087C: stind.i4
IL_087D: ldloc.s 19 (System.Int32)
IL_087F: ldarg.s 5
IL_0881: ldind.i4
IL_0882: ldc.i4.6
IL_0883: sub
IL_0884: stelem.i4
IL_0885: ldarg.s 8
IL_0887: ldfld System.Int32[] MeshData::m_triangles
IL_088C: ldarg.s 6
IL_088E: ldarg.s 6
IL_0890: ldind.i4
IL_0891: dup
IL_0892: stloc.s 19 (System.Int32)
IL_0894: ldc.i4.1
IL_0895: add
IL_0896: stind.i4
IL_0897: ldloc.s 19 (System.Int32)
IL_0899: ldarg.s 5
IL_089B: ldind.i4
IL_089C: ldc.i4.5
IL_089D: sub
IL_089E: stelem.i4
IL_089F: ldarg.s 8
IL_08A1: ldfld System.Int32[] MeshData::m_triangles
IL_08A6: ldarg.s 6
IL_08A8: ldarg.s 6
IL_08AA: ldind.i4
IL_08AB: dup
IL_08AC: stloc.s 19 (System.Int32)
IL_08AE: ldc.i4.1
IL_08AF: add
IL_08B0: stind.i4
IL_08B1: ldloc.s 19 (System.Int32)
IL_08B3: ldarg.s 5
IL_08B5: ldind.i4
IL_08B6: ldc.i4.1
IL_08B7: sub
IL_08B8: stelem.i4
IL_08B9: ldarg.s 8
IL_08BB: ldfld System.Int32[] MeshData::m_triangles
IL_08C0: ldarg.s 6
IL_08C2: ldarg.s 6
IL_08C4: ldind.i4
IL_08C5: dup
IL_08C6: stloc.s 19 (System.Int32)
IL_08C8: ldc.i4.1
IL_08C9: add
IL_08CA: stind.i4
IL_08CB: ldloc.s 19 (System.Int32)
IL_08CD: ldarg.s 5
IL_08CF: ldind.i4
IL_08D0: ldc.i4.1
IL_08D1: sub
IL_08D2: stelem.i4
IL_08D3: ldarg.s 8
IL_08D5: ldfld System.Int32[] MeshData::m_triangles
IL_08DA: ldarg.s 6
IL_08DC: ldarg.s 6
IL_08DE: ldind.i4
IL_08DF: dup
IL_08E0: stloc.s 19 (System.Int32)
IL_08E2: ldc.i4.1
IL_08E3: add
IL_08E4: stind.i4
IL_08E5: ldloc.s 19 (System.Int32)
IL_08E7: ldarg.s 5
IL_08E9: ldind.i4
IL_08EA: ldc.i4.5
IL_08EB: sub
IL_08EC: stelem.i4
IL_08ED: ldarg.s 8
IL_08EF: ldfld System.Int32[] MeshData::m_triangles
IL_08F4: ldarg.s 6
IL_08F6: ldarg.s 6
IL_08F8: ldind.i4
IL_08F9: dup
IL_08FA: stloc.s 19 (System.Int32)
IL_08FC: ldc.i4.1
IL_08FD: add
IL_08FE: stind.i4
IL_08FF: ldloc.s 19 (System.Int32)
IL_0901: ldarg.s 5
IL_0903: ldind.i4
IL_0904: ldc.i4.4
IL_0905: sub
IL_0906: stelem.i4
IL_0907: ldarg.s 8
IL_0909: ldfld System.Int32[] MeshData::m_triangles
IL_090E: ldarg.s 6
IL_0910: ldarg.s 6
IL_0912: ldind.i4
IL_0913: dup
IL_0914: stloc.s 19 (System.Int32)
IL_0916: ldc.i4.1
IL_0917: add
IL_0918: stind.i4
IL_0919: ldloc.s 19 (System.Int32)
IL_091B: ldarg.s 5
IL_091D: ldind.i4
IL_091E: ldc.i4.1
IL_091F: sub
IL_0920: stelem.i4
IL_0921: ldarg.s 8
IL_0923: ldfld System.Int32[] MeshData::m_triangles
IL_0928: ldarg.s 6
IL_092A: ldarg.s 6
IL_092C: ldind.i4
IL_092D: dup
IL_092E: stloc.s 19 (System.Int32)
IL_0930: ldc.i4.1
IL_0931: add
IL_0932: stind.i4
IL_0933: ldloc.s 19 (System.Int32)
IL_0935: ldarg.s 5
IL_0937: ldind.i4
IL_0938: ldc.i4.4
IL_0939: sub
IL_093A: stelem.i4
IL_093B: ldarg.s 8
IL_093D: ldfld System.Int32[] MeshData::m_triangles
IL_0942: ldarg.s 6
IL_0944: ldarg.s 6
IL_0946: ldind.i4
IL_0947: dup
IL_0948: stloc.s 19 (System.Int32)
IL_094A: ldc.i4.1
IL_094B: add
IL_094C: stind.i4
IL_094D: ldloc.s 19 (System.Int32)
IL_094F: ldarg.s 5
IL_0951: ldind.i4
IL_0952: ldc.i4.2
IL_0953: sub
IL_0954: stelem.i4
IL_0955: ldarg.s 8
IL_0957: ldfld System.Int32[] MeshData::m_triangles
IL_095C: ldarg.s 6
IL_095E: ldarg.s 6
IL_0960: ldind.i4
IL_0961: dup
IL_0962: stloc.s 19 (System.Int32)
IL_0964: ldc.i4.1
IL_0965: add
IL_0966: stind.i4
IL_0967: ldloc.s 19 (System.Int32)
IL_0969: ldarg.s 5
IL_096B: ldind.i4
IL_096C: ldc.i4.2
IL_096D: sub
IL_096E: stelem.i4
IL_096F: ldarg.s 8
IL_0971: ldfld System.Int32[] MeshData::m_triangles
IL_0976: ldarg.s 6
IL_0978: ldarg.s 6
IL_097A: ldind.i4
IL_097B: dup
IL_097C: stloc.s 19 (System.Int32)
IL_097E: ldc.i4.1
IL_097F: add
IL_0980: stind.i4
IL_0981: ldloc.s 19 (System.Int32)
IL_0983: ldarg.s 5
IL_0985: ldind.i4
IL_0986: ldc.i4.4
IL_0987: sub
IL_0988: stelem.i4
IL_0989: ldarg.s 8
IL_098B: ldfld System.Int32[] MeshData::m_triangles
IL_0990: ldarg.s 6
IL_0992: ldarg.s 6
IL_0994: ldind.i4
IL_0995: dup
IL_0996: stloc.s 19 (System.Int32)
IL_0998: ldc.i4.1
IL_0999: add
IL_099A: stind.i4
IL_099B: ldloc.s 19 (System.Int32)
IL_099D: ldarg.s 5
IL_099F: ldind.i4
IL_09A0: ldc.i4.3
IL_09A1: sub
IL_09A2: stelem.i4
IL_09A3: // end original
IL_09A3: Label3
IL_09A3: Label0
IL_09A3: ret
DONE

### Patch: virtual System.Void ElectricityManager::SimulationStepImpl(System.Int32


subStep)
### Replacement: static System.Void
ElectricityManager::ElectricityManager.SimulationStepImpl_Patch0(ElectricityManager
this, System.Int32 subStep)
IL_0000: Local var 0: System.UInt32
IL_0000: Local var 1: System.Int32
IL_0000: Local var 2: NetManager
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: NetInfo
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: ElectricityManager/Cell
IL_0000: Local var 13: ElectricityManager/PulseGroup
IL_0000: Local var 14: ElectricityManager/PulseUnit
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: ElectricityManager/PulseUnit
IL_0000: Local var 19: System.UInt32
IL_0000: Local var 20: System.Int32
IL_0000: Local var 21: ElectricityManager/Cell
IL_0000: Local var 22: System.Int32
IL_0000: Local var 23: System.Int32
IL_0000: Local var 24: NetNode
IL_0000: Local var 25: System.Int32
IL_0000: Local var 26: System.UInt16
IL_0000: Local var 27: System.UInt16
IL_0000: Local var 28: System.UInt16
IL_0000: Local var 29: System.UInt16
IL_0000: Local var 30: System.Int32
IL_0000: Local var 31: ElectricityManager/PulseGroup
IL_0000: Local var 32: ElectricityManager/PulseGroup
IL_0000: Local var 33: System.Int32
IL_0000: Local var 34: ElectricityManager/PulseGroup
IL_0000: Local var 35: System.Int32
IL_0000: Local var 36: ElectricityManager/Cell
IL_0000: // start original
IL_0000: ldarg.1
IL_0001: brfalse => Label0
IL_0006: ldarg.1
IL_0007: ldc.i4 1000
IL_000C: beq => Label1
IL_0011: call static SimulationManager
ColossalFramework.Singleton`1<SimulationManager>::get_instance()
IL_0016: ldfld System.UInt32 SimulationManager::m_currentFrameIndex
IL_001B: stloc.0
IL_001C: ldloc.0
IL_001D: ldc.i4 255
IL_0022: and
IL_0023: stloc.1
IL_0024: ldloc.1
IL_0025: ldc.i4 128
IL_002A: bge => Label2
IL_002F: ldloc.1
IL_0030: brtrue => Label3
IL_0035: ldarg.0
IL_0036: ldc.i4.0
IL_0037: stfld System.Int32 ElectricityManager::m_pulseGroupCount
IL_003C: ldarg.0
IL_003D: ldc.i4.0
IL_003E: stfld System.Int32 ElectricityManager::m_pulseUnitStart
IL_0043: ldarg.0
IL_0044: ldc.i4.0
IL_0045: stfld System.Int32 ElectricityManager::m_pulseUnitEnd
IL_004A: ldarg.0
IL_004B: ldc.i4.0
IL_004C: stfld System.Int32 ElectricityManager::m_processedCells
IL_0051: ldarg.0
IL_0052: ldc.i4.0
IL_0053: stfld System.Int32 ElectricityManager::m_conductiveCells
IL_0058: ldarg.0
IL_0059: ldc.i4.1
IL_005A: stfld System.Boolean ElectricityManager::m_canContinue
IL_005F: Label3
IL_005F: call static NetManager
ColossalFramework.Singleton`1<NetManager>::get_instance()
IL_0064: stloc.2
IL_0065: ldloc.1
IL_0066: ldc.i4 32768
IL_006B: mul
IL_006C: ldc.i4.7
IL_006D: shr
IL_006E: stloc.3
IL_006F: ldloc.1
IL_0070: ldc.i4.1
IL_0071: add
IL_0072: ldc.i4 32768
IL_0077: mul
IL_0078: ldc.i4.7
IL_0079: shr
IL_007A: ldc.i4.1
IL_007B: sub
IL_007C: stloc.s 4 (System.Int32)
IL_007E: ldloc.3
IL_007F: stloc.s 5 (System.Int32)
IL_0081: br => Label4
IL_0086: Label10
IL_0086: ldloc.2
IL_0087: ldfld Array16`1<NetNode> NetManager::m_nodes
IL_008C: ldfld NetNode[] Array16`1<NetNode>::m_buffer
IL_0091: ldloc.s 5 (System.Int32)
IL_0093: ldelema NetNode
IL_0098: ldfld Flags NetNode::m_flags
IL_009D: brfalse => Label5
IL_00A2: ldloc.2
IL_00A3: ldfld Array16`1<NetNode> NetManager::m_nodes
IL_00A8: ldfld NetNode[] Array16`1<NetNode>::m_buffer
IL_00AD: ldloc.s 5 (System.Int32)
IL_00AF: ldelema NetNode
IL_00B4: call static System.Boolean
ElectricRoads.Overrides.ElectricRoadsOverrides::CheckElectricConductibility(NetNode
& node)
IL_00B9: brfalse => Label7
IL_00BE: Label6
IL_00BE: ldarg.0
IL_00BF: ldloc.s 5 (System.Int32)
IL_00C1: ldarg.0
IL_00C2: ldfld System.UInt16[] ElectricityManager::m_nodeGroups
IL_00C7: ldloc.s 5 (System.Int32)
IL_00C9: ldelem.u2
IL_00CA: ldc.i4 65535
IL_00CF: beq => Label8
IL_00D4: ldc.i4.1
IL_00D5: br => Label9
IL_00DA: Label8
IL_00DA: ldc.i4.0
IL_00DB: Label9
IL_00DB: call System.Void
ElectricityManager::UpdateNodeElectricity(System.Int32 nodeID, System.Int32 value)
IL_00E0: ldarg.0
IL_00E1: dup
IL_00E2: ldfld System.Int32 ElectricityManager::m_conductiveCells
IL_00E7: ldc.i4.1
IL_00E8: add
IL_00E9: stfld System.Int32 ElectricityManager::m_conductiveCells
IL_00EE: Label5
IL_00EE: Label7
IL_00EE: ldarg.0
IL_00EF: ldfld System.UInt16[] ElectricityManager::m_nodeGroups
IL_00F4: ldloc.s 5 (System.Int32)
IL_00F6: ldc.i4 65535
IL_00FB: stelem.i2
IL_00FC: ldloc.s 5 (System.Int32)
IL_00FE: ldc.i4.1
IL_00FF: add
IL_0100: stloc.s 5 (System.Int32)
IL_0102: Label4
IL_0102: ldloc.s 5 (System.Int32)
IL_0104: ldloc.s 4 (System.Int32)
IL_0106: ble => Label10
IL_010B: ldloc.1
IL_010C: ldc.i4 256
IL_0111: mul
IL_0112: ldc.i4.7
IL_0113: shr
IL_0114: stloc.s 7 (System.Int32)
IL_0116: ldloc.1
IL_0117: ldc.i4.1
IL_0118: add
IL_0119: ldc.i4 256
IL_011E: mul
IL_011F: ldc.i4.7
IL_0120: shr
IL_0121: ldc.i4.1
IL_0122: sub
IL_0123: stloc.s 8 (System.Int32)
IL_0125: ldloc.s 7 (System.Int32)
IL_0127: stloc.s 9 (System.Int32)
IL_0129: br => Label11
IL_012E: Label21
IL_012E: ldloc.s 9 (System.Int32)
IL_0130: ldc.i4 256
IL_0135: mul
IL_0136: stloc.s 10 (System.Int32)
IL_0138: ldc.i4.0
IL_0139: stloc.s 11 (System.Int32)
IL_013B: br => Label12
IL_0140: Label20
IL_0140: ldarg.0
IL_0141: ldfld Cell[] ElectricityManager::m_electricityGrid
IL_0146: ldloc.s 10 (System.Int32)
IL_0148: ldelema ElectricityManager+Cell
IL_014D: ldobj ElectricityManager+Cell
IL_0152: stloc.s 12 (ElectricityManager+Cell)
IL_0154: ldloca.s 12 (ElectricityManager+Cell)
IL_0156: ldfld System.Int16 Cell::m_currentCharge
IL_015B: ldc.i4.0
IL_015C: ble => Label13
IL_0161: ldarg.0
IL_0162: ldfld System.Int32 ElectricityManager::m_pulseGroupCount
IL_0167: ldc.i4 1024
IL_016C: bge => Label14
IL_0171: ldloca.s 13 (ElectricityManager+PulseGroup)
IL_0173: ldloca.s 12 (ElectricityManager+Cell)
IL_0175: ldfld System.Int16 Cell::m_currentCharge
IL_017A: conv.u4
IL_017B: stfld System.UInt32 PulseGroup::m_origCharge
IL_0180: ldloca.s 13 (ElectricityManager+PulseGroup)
IL_0182: ldloca.s 12 (ElectricityManager+Cell)
IL_0184: ldfld System.Int16 Cell::m_currentCharge
IL_0189: conv.u4
IL_018A: stfld System.UInt32 PulseGroup::m_curCharge
IL_018F: ldloca.s 13 (ElectricityManager+PulseGroup)
IL_0191: ldc.i4.0
IL_0192: stfld System.UInt16 PulseGroup::m_mergeCount
IL_0197: ldloca.s 13 (ElectricityManager+PulseGroup)
IL_0199: ldc.i4 65535
IL_019E: stfld System.UInt16 PulseGroup::m_mergeIndex
IL_01A3: ldloca.s 13 (ElectricityManager+PulseGroup)
IL_01A5: ldloc.s 11 (System.Int32)
IL_01A7: conv.u1
IL_01A8: stfld System.Byte PulseGroup::m_x
IL_01AD: ldloca.s 13 (ElectricityManager+PulseGroup)
IL_01AF: ldloc.s 9 (System.Int32)
IL_01B1: conv.u1
IL_01B2: stfld System.Byte PulseGroup::m_z
IL_01B7: ldloca.s 14 (ElectricityManager+PulseUnit)
IL_01B9: ldarg.0
IL_01BA: ldfld System.Int32 ElectricityManager::m_pulseGroupCount
IL_01BF: conv.u2
IL_01C0: stfld System.UInt16 PulseUnit::m_group
IL_01C5: ldloca.s 14 (ElectricityManager+PulseUnit)
IL_01C7: ldc.i4.0
IL_01C8: stfld System.UInt16 PulseUnit::m_node
IL_01CD: ldloca.s 14 (ElectricityManager+PulseUnit)
IL_01CF: ldloc.s 11 (System.Int32)
IL_01D1: conv.u1
IL_01D2: stfld System.Byte PulseUnit::m_x
IL_01D7: ldloca.s 14 (ElectricityManager+PulseUnit)
IL_01D9: ldloc.s 9 (System.Int32)
IL_01DB: conv.u1
IL_01DC: stfld System.Byte PulseUnit::m_z
IL_01E1: ldloca.s 12 (ElectricityManager+Cell)
IL_01E3: ldarg.0
IL_01E4: ldfld System.Int32 ElectricityManager::m_pulseGroupCount
IL_01E9: conv.u2
IL_01EA: stfld System.UInt16 Cell::m_pulseGroup
IL_01EF: ldarg.0
IL_01F0: ldfld PulseGroup[] ElectricityManager::m_pulseGroups
IL_01F5: ldarg.0
IL_01F6: dup
IL_01F7: ldfld System.Int32 ElectricityManager::m_pulseGroupCount
IL_01FC: dup
IL_01FD: stloc.s 15 (System.Int32)
IL_01FF: ldc.i4.1
IL_0200: add
IL_0201: stfld System.Int32 ElectricityManager::m_pulseGroupCount
IL_0206: ldloc.s 15 (System.Int32)
IL_0208: ldelema ElectricityManager+PulseGroup
IL_020D: ldloc.s 13 (ElectricityManager+PulseGroup)
IL_020F: stobj ElectricityManager+PulseGroup
IL_0214: ldarg.0
IL_0215: ldfld PulseUnit[] ElectricityManager::m_pulseUnits
IL_021A: ldarg.0
IL_021B: ldfld System.Int32 ElectricityManager::m_pulseUnitEnd
IL_0220: ldelema ElectricityManager+PulseUnit
IL_0225: ldloc.s 14 (ElectricityManager+PulseUnit)
IL_0227: stobj ElectricityManager+PulseUnit
IL_022C: ldarg.0
IL_022D: dup
IL_022E: ldfld System.Int32 ElectricityManager::m_pulseUnitEnd
IL_0233: ldc.i4.1
IL_0234: add
IL_0235: dup
IL_0236: stloc.s 15 (System.Int32)
IL_0238: stfld System.Int32 ElectricityManager::m_pulseUnitEnd
IL_023D: ldloc.s 15 (System.Int32)
IL_023F: ldarg.0
IL_0240: ldfld PulseUnit[] ElectricityManager::m_pulseUnits
IL_0245: ldlen
IL_0246: conv.i4
IL_0247: bne.un => Label15
IL_024C: ldarg.0
IL_024D: ldc.i4.0
IL_024E: stfld System.Int32 ElectricityManager::m_pulseUnitEnd
IL_0253: Label15
IL_0253: br => Label16
IL_0258: Label14
IL_0258: ldloca.s 12 (ElectricityManager+Cell)
IL_025A: ldc.i4 65535
IL_025F: stfld System.UInt16 Cell::m_pulseGroup
IL_0264: Label16
IL_0264: ldloca.s 12 (ElectricityManager+Cell)
IL_0266: ldc.i4.0
IL_0267: stfld System.Int16 Cell::m_currentCharge
IL_026C: ldarg.0
IL_026D: dup
IL_026E: ldfld System.Int32 ElectricityManager::m_conductiveCells
IL_0273: ldc.i4.1
IL_0274: add
IL_0275: stfld System.Int32 ElectricityManager::m_conductiveCells
IL_027A: br => Label17
IL_027F: Label13
IL_027F: ldloca.s 12 (ElectricityManager+Cell)
IL_0281: ldc.i4 65535
IL_0286: stfld System.UInt16 Cell::m_pulseGroup
IL_028B: ldloca.s 12 (ElectricityManager+Cell)
IL_028D: ldfld System.Byte Cell::m_conductivity
IL_0292: ldc.i4.s 64
IL_0294: blt => Label18
IL_0299: ldarg.0
IL_029A: dup
IL_029B: ldfld System.Int32 ElectricityManager::m_conductiveCells
IL_02A0: ldc.i4.1
IL_02A1: add
IL_02A2: stfld System.Int32 ElectricityManager::m_conductiveCells
IL_02A7: Label17
IL_02A7: Label18
IL_02A7: ldloca.s 12 (ElectricityManager+Cell)
IL_02A9: ldfld System.Boolean Cell::m_tmpElectrified
IL_02AE: ldloca.s 12 (ElectricityManager+Cell)
IL_02B0: ldfld System.Boolean Cell::m_electrified
IL_02B5: beq => Label19
IL_02BA: ldloca.s 12 (ElectricityManager+Cell)
IL_02BC: ldloca.s 12 (ElectricityManager+Cell)
IL_02BE: ldfld System.Boolean Cell::m_tmpElectrified
IL_02C3: stfld System.Boolean Cell::m_electrified
IL_02C8: Label19
IL_02C8: ldloca.s 12 (ElectricityManager+Cell)
IL_02CA: ldloca.s 12 (ElectricityManager+Cell)
IL_02CC: ldfld System.UInt16 Cell::m_pulseGroup
IL_02D1: ldc.i4 65535
IL_02D6: ceq
IL_02D8: ldc.i4.0
IL_02D9: ceq
IL_02DB: stfld System.Boolean Cell::m_tmpElectrified
IL_02E0: ldarg.0
IL_02E1: ldfld Cell[] ElectricityManager::m_electricityGrid
IL_02E6: ldloc.s 10 (System.Int32)
IL_02E8: ldelema ElectricityManager+Cell
IL_02ED: ldloc.s 12 (ElectricityManager+Cell)
IL_02EF: stobj ElectricityManager+Cell
IL_02F4: ldloc.s 10 (System.Int32)
IL_02F6: ldc.i4.1
IL_02F7: add
IL_02F8: stloc.s 10 (System.Int32)
IL_02FA: ldloc.s 11 (System.Int32)
IL_02FC: ldc.i4.1
IL_02FD: add
IL_02FE: stloc.s 11 (System.Int32)
IL_0300: Label12
IL_0300: ldloc.s 11 (System.Int32)
IL_0302: ldc.i4 256
IL_0307: blt => Label20
IL_030C: ldloc.s 9 (System.Int32)
IL_030E: ldc.i4.1
IL_030F: add
IL_0310: stloc.s 9 (System.Int32)
IL_0312: Label11
IL_0312: ldloc.s 9 (System.Int32)
IL_0314: ldloc.s 8 (System.Int32)
IL_0316: ble => Label21
IL_031B: br => Label22
IL_0320: Label2
IL_0320: ldloc.1
IL_0321: ldc.i4.s 127
IL_0323: sub
IL_0324: ldarg.0
IL_0325: ldfld System.Int32 ElectricityManager::m_conductiveCells
IL_032A: mul
IL_032B: ldc.i4.7
IL_032C: shr
IL_032D: stloc.s 16 (System.Int32)
IL_032F: ldloc.1
IL_0330: ldc.i4 255
IL_0335: bne.un => Label23
IL_033A: ldc.i4 1000000000
IL_033F: stloc.s 16 (System.Int32)
IL_0341: Label23
IL_0341: br => Label24
IL_0346: Label54
IL_0346: ldarg.0
IL_0347: ldc.i4.0
IL_0348: stfld System.Boolean ElectricityManager::m_canContinue
IL_034D: ldarg.0
IL_034E: ldfld System.Int32 ElectricityManager::m_pulseUnitEnd
IL_0353: stloc.s 17 (System.Int32)
IL_0355: br => Label25
IL_035A: Label52
IL_035A: ldarg.0
IL_035B: ldfld PulseUnit[] ElectricityManager::m_pulseUnits
IL_0360: ldarg.0
IL_0361: ldfld System.Int32 ElectricityManager::m_pulseUnitStart
IL_0366: ldelema ElectricityManager+PulseUnit
IL_036B: ldobj ElectricityManager+PulseUnit
IL_0370: stloc.s 18 (ElectricityManager+PulseUnit)
IL_0372: ldarg.0
IL_0373: dup
IL_0374: ldfld System.Int32 ElectricityManager::m_pulseUnitStart
IL_0379: ldc.i4.1
IL_037A: add
IL_037B: dup
IL_037C: stloc.s 15 (System.Int32)
IL_037E: stfld System.Int32 ElectricityManager::m_pulseUnitStart
IL_0383: ldloc.s 15 (System.Int32)
IL_0385: ldarg.0
IL_0386: ldfld PulseUnit[] ElectricityManager::m_pulseUnits
IL_038B: ldlen
IL_038C: conv.i4
IL_038D: bne.un => Label26
IL_0392: ldarg.0
IL_0393: ldc.i4.0
IL_0394: stfld System.Int32 ElectricityManager::m_pulseUnitStart
IL_0399: Label26
IL_0399: ldloca.s 18 (ElectricityManager+PulseUnit)
IL_039B: ldarg.0
IL_039C: ldloca.s 18 (ElectricityManager+PulseUnit)
IL_039E: ldfld System.UInt16 PulseUnit::m_group
IL_03A3: call System.UInt16 ElectricityManager::GetRootGroup(System.UInt16
group)
IL_03A8: stfld System.UInt16 PulseUnit::m_group
IL_03AD: ldarg.0
IL_03AE: ldfld PulseGroup[] ElectricityManager::m_pulseGroups
IL_03B3: ldloca.s 18 (ElectricityManager+PulseUnit)
IL_03B5: ldfld System.UInt16 PulseUnit::m_group
IL_03BA: ldelema ElectricityManager+PulseGroup
IL_03BF: ldfld System.UInt32 PulseGroup::m_curCharge
IL_03C4: stloc.s 19 (System.UInt32)
IL_03C6: ldloca.s 18 (ElectricityManager+PulseUnit)
IL_03C8: ldfld System.UInt16 PulseUnit::m_node
IL_03CD: brtrue => Label27
IL_03D2: ldloca.s 18 (ElectricityManager+PulseUnit)
IL_03D4: ldfld System.Byte PulseUnit::m_z
IL_03D9: ldc.i4 256
IL_03DE: mul
IL_03DF: ldloca.s 18 (ElectricityManager+PulseUnit)
IL_03E1: ldfld System.Byte PulseUnit::m_x
IL_03E6: add
IL_03E7: stloc.s 20 (System.Int32)
IL_03E9: ldarg.0
IL_03EA: ldfld Cell[] ElectricityManager::m_electricityGrid
IL_03EF: ldloc.s 20 (System.Int32)
IL_03F1: ldelema ElectricityManager+Cell
IL_03F6: ldobj ElectricityManager+Cell
IL_03FB: stloc.s 21 (ElectricityManager+Cell)
IL_03FD: ldloca.s 21 (ElectricityManager+Cell)
IL_03FF: ldfld System.Byte Cell::m_conductivity
IL_0404: brfalse => Label28
IL_0409: ldloca.s 21 (ElectricityManager+Cell)
IL_040B: ldfld System.Boolean Cell::m_tmpElectrified
IL_0410: brtrue => Label29
IL_0415: ldloc.s 19 (System.UInt32)
IL_0417: brfalse => Label30
IL_041C: ldloca.s 21 (ElectricityManager+Cell)
IL_041E: ldfld System.Int16 Cell::m_currentCharge
IL_0423: neg
IL_0424: ldc.i4.0
IL_0425: ldloc.s 19 (System.UInt32)
IL_0427: call static System.Int32 UnityEngine.Mathf::Clamp(System.Int32
value, System.Int32 min, System.Int32 max)
IL_042C: stloc.s 22 (System.Int32)
IL_042E: ldloc.s 19 (System.UInt32)
IL_0430: ldloc.s 22 (System.Int32)
IL_0432: sub
IL_0433: stloc.s 19 (System.UInt32)
IL_0435: ldloca.s 21 (ElectricityManager+Cell)
IL_0437: dup
IL_0438: ldfld System.Int16 Cell::m_currentCharge
IL_043D: ldloc.s 22 (System.Int32)
IL_043F: conv.i2
IL_0440: add
IL_0441: conv.i2
IL_0442: stfld System.Int16 Cell::m_currentCharge
IL_0447: ldloca.s 21 (ElectricityManager+Cell)
IL_0449: ldfld System.Int16 Cell::m_currentCharge
IL_044E: brtrue => Label31
IL_0453: ldloca.s 21 (ElectricityManager+Cell)
IL_0455: ldc.i4.1
IL_0456: stfld System.Boolean Cell::m_tmpElectrified
IL_045B: Label31
IL_045B: ldarg.0
IL_045C: ldfld Cell[] ElectricityManager::m_electricityGrid
IL_0461: ldloc.s 20 (System.Int32)
IL_0463: ldelema ElectricityManager+Cell
IL_0468: ldloc.s 21 (ElectricityManager+Cell)
IL_046A: stobj ElectricityManager+Cell
IL_046F: ldarg.0
IL_0470: ldfld PulseGroup[] ElectricityManager::m_pulseGroups
IL_0475: ldloca.s 18 (ElectricityManager+PulseUnit)
IL_0477: ldfld System.UInt16 PulseUnit::m_group
IL_047C: ldelema ElectricityManager+PulseGroup
IL_0481: ldloc.s 19 (System.UInt32)
IL_0483: stfld System.UInt32 PulseGroup::m_curCharge
IL_0488: Label28
IL_0488: Label29
IL_0488: Label30
IL_0488: ldloc.s 19 (System.UInt32)
IL_048A: brfalse => Label32
IL_048F: ldloca.s 21 (ElectricityManager+Cell)
IL_0491: ldfld System.Byte Cell::m_conductivity
IL_0496: ldc.i4.s 64
IL_0498: blt => Label33
IL_049D: ldc.i4.1
IL_049E: br => Label34
IL_04A3: Label33
IL_04A3: ldc.i4.s 64
IL_04A5: Label34
IL_04A5: stloc.s 23 (System.Int32)
IL_04A7: ldarg.0
IL_04A8: dup
IL_04A9: ldfld System.Int32 ElectricityManager::m_processedCells
IL_04AE: ldc.i4.1
IL_04AF: add
IL_04B0: stfld System.Int32 ElectricityManager::m_processedCells
IL_04B5: ldloca.s 18 (ElectricityManager+PulseUnit)
IL_04B7: ldfld System.Byte PulseUnit::m_z
IL_04BC: ldc.i4.0
IL_04BD: ble => Label35
IL_04C2: ldarg.0
IL_04C3: ldarg.0
IL_04C4: ldfld Cell[] ElectricityManager::m_electricityGrid
IL_04C9: ldloc.s 20 (System.Int32)
IL_04CB: ldc.i4 256
IL_04D0: sub
IL_04D1: ldelema ElectricityManager+Cell
IL_04D6: ldloca.s 18 (ElectricityManager+PulseUnit)
IL_04D8: ldfld System.UInt16 PulseUnit::m_group
IL_04DD: ldloca.s 18 (ElectricityManager+PulseUnit)
IL_04DF: ldfld System.Byte PulseUnit::m_x
IL_04E4: ldloca.s 18 (ElectricityManager+PulseUnit)
IL_04E6: ldfld System.Byte PulseUnit::m_z
IL_04EB: ldc.i4.1
IL_04EC: sub
IL_04ED: ldloc.s 23 (System.Int32)
IL_04EF: call System.Void ElectricityManager::ConductToCell(Cell& cell,
System.UInt16 group, System.Int32 x, System.Int32 z, System.Int32 limit)
IL_04F4: Label35
IL_04F4: ldloca.s 18 (ElectricityManager+PulseUnit)
IL_04F6: ldfld System.Byte PulseUnit::m_x
IL_04FB: ldc.i4.0
IL_04FC: ble => Label36
IL_0501: ldarg.0
IL_0502: ldarg.0
IL_0503: ldfld Cell[] ElectricityManager::m_electricityGrid
IL_0508: ldloc.s 20 (System.Int32)
IL_050A: ldc.i4.1
IL_050B: sub
IL_050C: ldelema ElectricityManager+Cell
IL_0511: ldloca.s 18 (ElectricityManager+PulseUnit)
IL_0513: ldfld System.UInt16 PulseUnit::m_group
IL_0518: ldloca.s 18 (ElectricityManager+PulseUnit)
IL_051A: ldfld System.Byte PulseUnit::m_x
IL_051F: ldc.i4.1
IL_0520: sub
IL_0521: ldloca.s 18 (ElectricityManager+PulseUnit)
IL_0523: ldfld System.Byte PulseUnit::m_z
IL_0528: ldloc.s 23 (System.Int32)
IL_052A: call System.Void ElectricityManager::ConductToCell(Cell& cell,
System.UInt16 group, System.Int32 x, System.Int32 z, System.Int32 limit)
IL_052F: Label36
IL_052F: ldloca.s 18 (ElectricityManager+PulseUnit)
IL_0531: ldfld System.Byte PulseUnit::m_z
IL_0536: ldc.i4 255
IL_053B: bge => Label37
IL_0540: ldarg.0
IL_0541: ldarg.0
IL_0542: ldfld Cell[] ElectricityManager::m_electricityGrid
IL_0547: ldloc.s 20 (System.Int32)
IL_0549: ldc.i4 256
IL_054E: add
IL_054F: ldelema ElectricityManager+Cell
IL_0554: ldloca.s 18 (ElectricityManager+PulseUnit)
IL_0556: ldfld System.UInt16 PulseUnit::m_group
IL_055B: ldloca.s 18 (ElectricityManager+PulseUnit)
IL_055D: ldfld System.Byte PulseUnit::m_x
IL_0562: ldloca.s 18 (ElectricityManager+PulseUnit)
IL_0564: ldfld System.Byte PulseUnit::m_z
IL_0569: ldc.i4.1
IL_056A: add
IL_056B: ldloc.s 23 (System.Int32)
IL_056D: call System.Void ElectricityManager::ConductToCell(Cell& cell,
System.UInt16 group, System.Int32 x, System.Int32 z, System.Int32 limit)
IL_0572: Label37
IL_0572: ldloca.s 18 (ElectricityManager+PulseUnit)
IL_0574: ldfld System.Byte PulseUnit::m_x
IL_0579: ldc.i4 255
IL_057E: bge => Label38
IL_0583: ldarg.0
IL_0584: ldarg.0
IL_0585: ldfld Cell[] ElectricityManager::m_electricityGrid
IL_058A: ldloc.s 20 (System.Int32)
IL_058C: ldc.i4.1
IL_058D: add
IL_058E: ldelema ElectricityManager+Cell
IL_0593: ldloca.s 18 (ElectricityManager+PulseUnit)
IL_0595: ldfld System.UInt16 PulseUnit::m_group
IL_059A: ldloca.s 18 (ElectricityManager+PulseUnit)
IL_059C: ldfld System.Byte PulseUnit::m_x
IL_05A1: ldc.i4.1
IL_05A2: add
IL_05A3: ldloca.s 18 (ElectricityManager+PulseUnit)
IL_05A5: ldfld System.Byte PulseUnit::m_z
IL_05AA: ldloc.s 23 (System.Int32)
IL_05AC: call System.Void ElectricityManager::ConductToCell(Cell& cell,
System.UInt16 group, System.Int32 x, System.Int32 z, System.Int32 limit)
IL_05B1: Label38
IL_05B1: ldarg.0
IL_05B2: ldloca.s 18 (ElectricityManager+PulseUnit)
IL_05B4: ldfld System.UInt16 PulseUnit::m_group
IL_05B9: ldloca.s 18 (ElectricityManager+PulseUnit)
IL_05BB: ldfld System.Byte PulseUnit::m_x
IL_05C0: ldloca.s 18 (ElectricityManager+PulseUnit)
IL_05C2: ldfld System.Byte PulseUnit::m_z
IL_05C7: call System.Void ElectricityManager::ConductToNodes(System.UInt16
group, System.Int32 cellX, System.Int32 cellZ)
IL_05CC: br => Label39
IL_05D1: Label32
IL_05D1: ldarg.0
IL_05D2: ldfld PulseUnit[] ElectricityManager::m_pulseUnits
IL_05D7: ldarg.0
IL_05D8: ldfld System.Int32 ElectricityManager::m_pulseUnitEnd
IL_05DD: ldelema ElectricityManager+PulseUnit
IL_05E2: ldloc.s 18 (ElectricityManager+PulseUnit)
IL_05E4: stobj ElectricityManager+PulseUnit
IL_05E9: ldarg.0
IL_05EA: dup
IL_05EB: ldfld System.Int32 ElectricityManager::m_pulseUnitEnd
IL_05F0: ldc.i4.1
IL_05F1: add
IL_05F2: dup
IL_05F3: stloc.s 15 (System.Int32)
IL_05F5: stfld System.Int32 ElectricityManager::m_pulseUnitEnd
IL_05FA: ldloc.s 15 (System.Int32)
IL_05FC: ldarg.0
IL_05FD: ldfld PulseUnit[] ElectricityManager::m_pulseUnits
IL_0602: ldlen
IL_0603: conv.i4
IL_0604: bne.un => Label40
IL_0609: ldarg.0
IL_060A: ldc.i4.0
IL_060B: stfld System.Int32 ElectricityManager::m_pulseUnitEnd
IL_0610: Label39
IL_0610: Label40
IL_0610: br => Label41
IL_0615: Label27
IL_0615: ldloc.s 19 (System.UInt32)
IL_0617: brfalse => Label42
IL_061C: ldarg.0
IL_061D: dup
IL_061E: ldfld System.Int32 ElectricityManager::m_processedCells
IL_0623: ldc.i4.1
IL_0624: add
IL_0625: stfld System.Int32 ElectricityManager::m_processedCells
IL_062A: call static NetManager
ColossalFramework.Singleton`1<NetManager>::get_instance()
IL_062F: ldfld Array16`1<NetNode> NetManager::m_nodes
IL_0634: ldfld NetNode[] Array16`1<NetNode>::m_buffer
IL_0639: ldloca.s 18 (ElectricityManager+PulseUnit)
IL_063B: ldfld System.UInt16 PulseUnit::m_node
IL_0640: ldelema NetNode
IL_0645: ldobj NetNode
IL_064A: stloc.s 24 (NetNode)
IL_064C: ldloca.s 24 (NetNode)
IL_064E: ldfld Flags NetNode::m_flags
IL_0653: brfalse => Label43
IL_0658: ldloca.s 24 (NetNode)
IL_065A: ldfld System.UInt32 NetNode::m_buildIndex
IL_065F: ldloc.0
IL_0660: ldc.i4.s -128
IL_0662: and
IL_0663: bge.un => Label44
IL_0668: ldarg.0
IL_0669: ldloca.s 18 (ElectricityManager+PulseUnit)
IL_066B: ldfld System.UInt16 PulseUnit::m_group
IL_0670: ldloca.s 24 (NetNode)
IL_0672: ldflda UnityEngine.Vector3 NetNode::m_position
IL_0677: ldfld System.Single UnityEngine.Vector3::x
IL_067C: ldloca.s 24 (NetNode)
IL_067E: ldflda UnityEngine.Vector3 NetNode::m_position
IL_0683: ldfld System.Single UnityEngine.Vector3::z
IL_0688: call System.Void ElectricityManager::ConductToCells(System.UInt16
group, System.Single worldX, System.Single worldZ)
IL_068D: ldc.i4.0
IL_068E: stloc.s 25 (System.Int32)
IL_0690: br => Label45
IL_0695: Label49
IL_0695: ldloca.s 24 (NetNode)
IL_0697: ldloc.s 25 (System.Int32)
IL_0699: call System.UInt16 NetNode::GetSegment(System.Int32 index)
IL_069E: stloc.s 26 (System.UInt16)
IL_06A0: ldloc.s 26 (System.UInt16)
IL_06A2: brfalse => Label46
IL_06A7: call static NetManager
ColossalFramework.Singleton`1<NetManager>::get_instance()
IL_06AC: ldfld Array16`1<NetSegment> NetManager::m_segments
IL_06B1: ldfld NetSegment[] Array16`1<NetSegment>::m_buffer
IL_06B6: ldloc.s 26 (System.UInt16)
IL_06B8: ldelema NetSegment
IL_06BD: ldfld System.UInt16 NetSegment::m_startNode
IL_06C2: stloc.s 27 (System.UInt16)
IL_06C4: call static NetManager
ColossalFramework.Singleton`1<NetManager>::get_instance()
IL_06C9: ldfld Array16`1<NetSegment> NetManager::m_segments
IL_06CE: ldfld NetSegment[] Array16`1<NetSegment>::m_buffer
IL_06D3: ldloc.s 26 (System.UInt16)
IL_06D5: ldelema NetSegment
IL_06DA: ldfld System.UInt16 NetSegment::m_endNode
IL_06DF: stloc.s 28 (System.UInt16)
IL_06E1: ldloc.s 27 (System.UInt16)
IL_06E3: ldloca.s 18 (ElectricityManager+PulseUnit)
IL_06E5: ldfld System.UInt16 PulseUnit::m_node
IL_06EA: bne.un => Label47
IL_06EF: ldloc.s 28 (System.UInt16)
IL_06F1: br => Label48
IL_06F6: Label47
IL_06F6: ldloc.s 27 (System.UInt16)
IL_06F8: Label48
IL_06F8: stloc.s 29 (System.UInt16)
IL_06FA: ldarg.0
IL_06FB: ldloc.s 29 (System.UInt16)
IL_06FD: call static NetManager
ColossalFramework.Singleton`1<NetManager>::get_instance()
IL_0702: ldfld Array16`1<NetNode> NetManager::m_nodes
IL_0707: ldfld NetNode[] Array16`1<NetNode>::m_buffer
IL_070C: ldloc.s 29 (System.UInt16)
IL_070E: ldelema NetNode
IL_0713: ldloca.s 18 (ElectricityManager+PulseUnit)
IL_0715: ldfld System.UInt16 PulseUnit::m_group
IL_071A: ldc.r4 -100000
IL_071F: ldc.r4 -100000
IL_0724: ldc.r4 100000
IL_0729: ldc.r4 100000
IL_072E: call System.Void ElectricityManager::ConductToNode(System.UInt16
nodeIndex, NetNode& node, System.UInt16 group, System.Single minX, System.Single
minZ, System.Single maxX, System.Single maxZ)
IL_0733: Label46
IL_0733: ldloc.s 25 (System.Int32)
IL_0735: ldc.i4.1
IL_0736: add
IL_0737: stloc.s 25 (System.Int32)
IL_0739: Label45
IL_0739: ldloc.s 25 (System.Int32)
IL_073B: ldc.i4.8
IL_073C: blt => Label49
IL_0741: Label43
IL_0741: Label44
IL_0741: br => Label50
IL_0746: Label42
IL_0746: ldarg.0
IL_0747: ldfld PulseUnit[] ElectricityManager::m_pulseUnits
IL_074C: ldarg.0
IL_074D: ldfld System.Int32 ElectricityManager::m_pulseUnitEnd
IL_0752: ldelema ElectricityManager+PulseUnit
IL_0757: ldloc.s 18 (ElectricityManager+PulseUnit)
IL_0759: stobj ElectricityManager+PulseUnit
IL_075E: ldarg.0
IL_075F: dup
IL_0760: ldfld System.Int32 ElectricityManager::m_pulseUnitEnd
IL_0765: ldc.i4.1
IL_0766: add
IL_0767: dup
IL_0768: stloc.s 15 (System.Int32)
IL_076A: stfld System.Int32 ElectricityManager::m_pulseUnitEnd
IL_076F: ldloc.s 15 (System.Int32)
IL_0771: ldarg.0
IL_0772: ldfld PulseUnit[] ElectricityManager::m_pulseUnits
IL_0777: ldlen
IL_0778: conv.i4
IL_0779: bne.un => Label51
IL_077E: ldarg.0
IL_077F: ldc.i4.0
IL_0780: stfld System.Int32 ElectricityManager::m_pulseUnitEnd
IL_0785: Label25
IL_0785: Label41
IL_0785: Label50
IL_0785: Label51
IL_0785: ldarg.0
IL_0786: ldfld System.Int32 ElectricityManager::m_pulseUnitStart
IL_078B: ldloc.s 17 (System.Int32)
IL_078D: bne.un => Label52
IL_0792: Label24
IL_0792: ldarg.0
IL_0793: ldfld System.Boolean ElectricityManager::m_canContinue
IL_0798: brfalse => Label53
IL_079D: ldarg.0
IL_079E: ldfld System.Int32 ElectricityManager::m_processedCells
IL_07A3: ldloc.s 16 (System.Int32)
IL_07A5: blt => Label54
IL_07AA: Label53
IL_07AA: ldloc.1
IL_07AB: ldc.i4 255
IL_07B0: bne.un => Label55
IL_07B5: ldc.i4.0
IL_07B6: stloc.s 30 (System.Int32)
IL_07B8: br => Label56
IL_07BD: Label58
IL_07BD: ldarg.0
IL_07BE: ldfld PulseGroup[] ElectricityManager::m_pulseGroups
IL_07C3: ldloc.s 30 (System.Int32)
IL_07C5: ldelema ElectricityManager+PulseGroup
IL_07CA: ldobj ElectricityManager+PulseGroup
IL_07CF: stloc.s 31 (ElectricityManager+PulseGroup)
IL_07D1: ldloca.s 31 (ElectricityManager+PulseGroup)
IL_07D3: ldfld System.UInt16 PulseGroup::m_mergeIndex
IL_07D8: ldc.i4 65535
IL_07DD: beq => Label57
IL_07E2: ldarg.0
IL_07E3: ldfld PulseGroup[] ElectricityManager::m_pulseGroups
IL_07E8: ldloca.s 31 (ElectricityManager+PulseGroup)
IL_07EA: ldfld System.UInt16 PulseGroup::m_mergeIndex
IL_07EF: ldelema ElectricityManager+PulseGroup
IL_07F4: ldobj ElectricityManager+PulseGroup
IL_07F9: stloc.s 32 (ElectricityManager+PulseGroup)
IL_07FB: ldloca.s 31 (ElectricityManager+PulseGroup)
IL_07FD: ldloca.s 32 (ElectricityManager+PulseGroup)
IL_07FF: ldfld System.UInt32 PulseGroup::m_curCharge
IL_0804: conv.u8
IL_0805: ldloca.s 31 (ElectricityManager+PulseGroup)
IL_0807: ldfld System.UInt32 PulseGroup::m_origCharge
IL_080C: conv.u8
IL_080D: mul
IL_080E: ldloca.s 32 (ElectricityManager+PulseGroup)
IL_0810: ldfld System.UInt32 PulseGroup::m_origCharge
IL_0815: conv.u8
IL_0816: div.un
IL_0817: conv.u4
IL_0818: stfld System.UInt32 PulseGroup::m_curCharge
IL_081D: ldloca.s 32 (ElectricityManager+PulseGroup)
IL_081F: dup
IL_0820: ldfld System.UInt32 PulseGroup::m_curCharge
IL_0825: ldloca.s 31 (ElectricityManager+PulseGroup)
IL_0827: ldfld System.UInt32 PulseGroup::m_curCharge
IL_082C: sub
IL_082D: stfld System.UInt32 PulseGroup::m_curCharge
IL_0832: ldloca.s 32 (ElectricityManager+PulseGroup)
IL_0834: dup
IL_0835: ldfld System.UInt32 PulseGroup::m_origCharge
IL_083A: ldloca.s 31 (ElectricityManager+PulseGroup)
IL_083C: ldfld System.UInt32 PulseGroup::m_origCharge
IL_0841: sub
IL_0842: stfld System.UInt32 PulseGroup::m_origCharge
IL_0847: ldarg.0
IL_0848: ldfld PulseGroup[] ElectricityManager::m_pulseGroups
IL_084D: ldloca.s 31 (ElectricityManager+PulseGroup)
IL_084F: ldfld System.UInt16 PulseGroup::m_mergeIndex
IL_0854: ldelema ElectricityManager+PulseGroup
IL_0859: ldloc.s 32 (ElectricityManager+PulseGroup)
IL_085B: stobj ElectricityManager+PulseGroup
IL_0860: ldarg.0
IL_0861: ldfld PulseGroup[] ElectricityManager::m_pulseGroups
IL_0866: ldloc.s 30 (System.Int32)
IL_0868: ldelema ElectricityManager+PulseGroup
IL_086D: ldloc.s 31 (ElectricityManager+PulseGroup)
IL_086F: stobj ElectricityManager+PulseGroup
IL_0874: Label57
IL_0874: ldloc.s 30 (System.Int32)
IL_0876: ldc.i4.1
IL_0877: add
IL_0878: stloc.s 30 (System.Int32)
IL_087A: Label56
IL_087A: ldloc.s 30 (System.Int32)
IL_087C: ldarg.0
IL_087D: ldfld System.Int32 ElectricityManager::m_pulseGroupCount
IL_0882: blt => Label58
IL_0887: ldc.i4.0
IL_0888: stloc.s 33 (System.Int32)
IL_088A: br => Label59
IL_088F: Label62
IL_088F: ldarg.0
IL_0890: ldfld PulseGroup[] ElectricityManager::m_pulseGroups
IL_0895: ldloc.s 33 (System.Int32)
IL_0897: ldelema ElectricityManager+PulseGroup
IL_089C: ldobj ElectricityManager+PulseGroup
IL_08A1: stloc.s 34 (ElectricityManager+PulseGroup)
IL_08A3: ldloca.s 34 (ElectricityManager+PulseGroup)
IL_08A5: ldfld System.UInt32 PulseGroup::m_curCharge
IL_08AA: brfalse => Label60
IL_08AF: ldloca.s 34 (ElectricityManager+PulseGroup)
IL_08B1: ldfld System.Byte PulseGroup::m_z
IL_08B6: ldc.i4 256
IL_08BB: mul
IL_08BC: ldloca.s 34 (ElectricityManager+PulseGroup)
IL_08BE: ldfld System.Byte PulseGroup::m_x
IL_08C3: add
IL_08C4: stloc.s 35 (System.Int32)
IL_08C6: ldarg.0
IL_08C7: ldfld Cell[] ElectricityManager::m_electricityGrid
IL_08CC: ldloc.s 35 (System.Int32)
IL_08CE: ldelema ElectricityManager+Cell
IL_08D3: ldobj ElectricityManager+Cell
IL_08D8: stloc.s 36 (ElectricityManager+Cell)
IL_08DA: ldloca.s 36 (ElectricityManager+Cell)
IL_08DC: ldfld System.Byte Cell::m_conductivity
IL_08E1: brfalse => Label61
IL_08E6: ldloca.s 36 (ElectricityManager+Cell)
IL_08E8: dup
IL_08E9: ldfld System.UInt16 Cell::m_extraCharge
IL_08EE: ldloca.s 34 (ElectricityManager+PulseGroup)
IL_08F0: ldfld System.UInt32 PulseGroup::m_curCharge
IL_08F5: ldc.i4 32767
IL_08FA: ldloca.s 36 (ElectricityManager+Cell)
IL_08FC: ldfld System.UInt16 Cell::m_extraCharge
IL_0901: sub
IL_0902: call static System.Int32 UnityEngine.Mathf::Min(System.Int32 a,
System.Int32 b)
IL_0907: conv.u2
IL_0908: add
IL_0909: conv.u2
IL_090A: stfld System.UInt16 Cell::m_extraCharge
IL_090F: Label61
IL_090F: ldarg.0
IL_0910: ldfld Cell[] ElectricityManager::m_electricityGrid
IL_0915: ldloc.s 35 (System.Int32)
IL_0917: ldelema ElectricityManager+Cell
IL_091C: ldloc.s 36 (ElectricityManager+Cell)
IL_091E: stobj ElectricityManager+Cell
IL_0923: Label60
IL_0923: ldloc.s 33 (System.Int32)
IL_0925: ldc.i4.1
IL_0926: add
IL_0927: stloc.s 33 (System.Int32)
IL_0929: Label59
IL_0929: ldloc.s 33 (System.Int32)
IL_092B: ldarg.0
IL_092C: ldfld System.Int32 ElectricityManager::m_pulseGroupCount
IL_0931: blt => Label62
IL_0936: // end original
IL_0936: Label0
IL_0936: Label1
IL_0936: Label22
IL_0936: Label55
IL_0936: ret
DONE

### Patch: System.Void ElectricityManager::ConductToNode(System.UInt16 nodeIndex,


NetNode& node, System.UInt16 group, System.Single minX, System.Single minZ,
System.Single maxX, System.Single maxZ)
### Replacement: static System.Void
ElectricityManager::ElectricityManager.ConductToNode_Patch0(ElectricityManager
this, System.UInt16 nodeIndex, NetNode& node, System.UInt16 group, System.Single
minX, System.Single minZ, System.Single maxX, System.Single maxZ)
IL_0000: Local var 0: NetInfo
IL_0000: Local var 1: ElectricityManager/PulseUnit
IL_0000: Local var 2: System.Int32
IL_0000: Local var 3: System.UInt16
IL_0000: // start original
IL_0000: ldarg.2
IL_0001: ldflda UnityEngine.Vector3 NetNode::m_position
IL_0006: ldfld System.Single UnityEngine.Vector3::x
IL_000B: ldarg.s 4
IL_000D: blt.un => Label0
IL_0012: ldarg.2
IL_0013: ldflda UnityEngine.Vector3 NetNode::m_position
IL_0018: ldfld System.Single UnityEngine.Vector3::z
IL_001D: ldarg.s 5
IL_001F: blt.un => Label1
IL_0024: ldarg.2
IL_0025: ldflda UnityEngine.Vector3 NetNode::m_position
IL_002A: ldfld System.Single UnityEngine.Vector3::x
IL_002F: ldarg.s 6
IL_0031: bgt.un => Label2
IL_0036: ldarg.2
IL_0037: ldflda UnityEngine.Vector3 NetNode::m_position
IL_003C: ldfld System.Single UnityEngine.Vector3::z
IL_0041: ldarg.s 7
IL_0043: bgt.un => Label3
IL_0048: ldarg.2
IL_0049: call static System.Boolean
ElectricRoads.Overrides.ElectricRoadsOverrides::CheckElectricConductibility(NetNode
& node)
IL_004E: brfalse => Label5
IL_0053: Label4
IL_0053: ldarg.0
IL_0054: ldfld System.UInt16[] ElectricityManager::m_nodeGroups
IL_0059: ldarg.1
IL_005A: ldelem.u2
IL_005B: ldc.i4 65535
IL_0060: bne.un => Label6
IL_0065: ldloca.s 1 (ElectricityManager+PulseUnit)
IL_0067: ldarg.3
IL_0068: stfld System.UInt16 PulseUnit::m_group
IL_006D: ldloca.s 1 (ElectricityManager+PulseUnit)
IL_006F: ldarg.1
IL_0070: stfld System.UInt16 PulseUnit::m_node
IL_0075: ldloca.s 1 (ElectricityManager+PulseUnit)
IL_0077: ldc.i4.0
IL_0078: stfld System.Byte PulseUnit::m_x
IL_007D: ldloca.s 1 (ElectricityManager+PulseUnit)
IL_007F: ldc.i4.0
IL_0080: stfld System.Byte PulseUnit::m_z
IL_0085: ldarg.0
IL_0086: ldfld PulseUnit[] ElectricityManager::m_pulseUnits
IL_008B: ldarg.0
IL_008C: ldfld System.Int32 ElectricityManager::m_pulseUnitEnd
IL_0091: ldelema ElectricityManager+PulseUnit
IL_0096: ldloc.1
IL_0097: stobj ElectricityManager+PulseUnit
IL_009C: ldarg.0
IL_009D: dup
IL_009E: ldfld System.Int32 ElectricityManager::m_pulseUnitEnd
IL_00A3: ldc.i4.1
IL_00A4: add
IL_00A5: dup
IL_00A6: stloc.2
IL_00A7: stfld System.Int32 ElectricityManager::m_pulseUnitEnd
IL_00AC: ldloc.2
IL_00AD: ldarg.0
IL_00AE: ldfld PulseUnit[] ElectricityManager::m_pulseUnits
IL_00B3: ldlen
IL_00B4: conv.i4
IL_00B5: bne.un => Label7
IL_00BA: ldarg.0
IL_00BB: ldc.i4.0
IL_00BC: stfld System.Int32 ElectricityManager::m_pulseUnitEnd
IL_00C1: Label7
IL_00C1: ldarg.0
IL_00C2: ldfld System.UInt16[] ElectricityManager::m_nodeGroups
IL_00C7: ldarg.1
IL_00C8: ldarg.3
IL_00C9: stelem.i2
IL_00CA: ldarg.0
IL_00CB: ldc.i4.1
IL_00CC: stfld System.Boolean ElectricityManager::m_canContinue
IL_00D1: br => Label8
IL_00D6: Label6
IL_00D6: ldarg.0
IL_00D7: ldarg.0
IL_00D8: ldfld System.UInt16[] ElectricityManager::m_nodeGroups
IL_00DD: ldarg.1
IL_00DE: ldelem.u2
IL_00DF: call System.UInt16 ElectricityManager::GetRootGroup(System.UInt16
group)
IL_00E4: stloc.3
IL_00E5: ldloc.3
IL_00E6: ldarg.3
IL_00E7: beq => Label9
IL_00EC: ldarg.0
IL_00ED: ldarg.3
IL_00EE: ldloc.3
IL_00EF: call System.Void ElectricityManager::MergeGroups(System.UInt16 root,
System.UInt16 merged)
IL_00F4: ldarg.0
IL_00F5: ldfld System.UInt16[] ElectricityManager::m_nodeGroups
IL_00FA: ldarg.1
IL_00FB: ldarg.3
IL_00FC: stelem.i2
IL_00FD: ldarg.0
IL_00FE: ldc.i4.1
IL_00FF: stfld System.Boolean ElectricityManager::m_canContinue
IL_0104: // end original
IL_0104: Label0
IL_0104: Label1
IL_0104: Label2
IL_0104: Label3
IL_0104: Label5
IL_0104: Label8
IL_0104: Label9
IL_0104: ret
DONE

### Patch: System.Void ElectricityManager::UpdateNodeElectricity(System.Int32


nodeID, System.Int32 value)
### Replacement: static System.Void
ElectricityManager::ElectricityManager.UpdateNodeElectricity_Patch2(ElectricityMana
ger this, System.Int32 nodeID, System.Int32 value)
IL_0000: Local var 0: InfoManager/InfoMode
IL_0000: Local var 1: NetManager
IL_0000: Local var 2: System.Boolean
IL_0000: Local var 3: NetNode/Flags
IL_0000: Local var 4: System.UInt16
IL_0000: Local var 5: BuildingManager
IL_0000: Local var 6: NetNode/Flags
IL_0000: Local var 7: System.Int32
IL_0000: Local var 8: System.UInt16
IL_0000: Local var 9: System.Boolean
IL_0000: Local var 10: System.Boolean
IL_0000: ldc.i4 0
IL_0005: stloc 9 (System.Boolean)
IL_0009: ldc.i4.1
IL_000A: stloc 9 (System.Boolean)
IL_000E: ldc.i4 0
IL_0013: stloc 10 (System.Boolean)
IL_0017: ldloc 9 (System.Boolean)
IL_001B: brfalse => Label1
IL_0020: ldarga 1
IL_0024: ldloca 10 (System.Boolean)
IL_0028: call static System.Void
ElectricRoads.Overrides.ElectricRoadsOverrides::PreConduct(System.Int32& nodeID,
System.Boolean& __state)
IL_002D: Label1
IL_002D: nop
IL_002E: ldloc 9 (System.Boolean)
IL_0032: brfalse => Label0
IL_0037: // start original
IL_0037: call static InfoManager
ColossalFramework.Singleton`1<InfoManager>::get_instance()
IL_003C: callvirt InfoMode InfoManager::get_CurrentMode()
IL_0041: stloc.0
IL_0042: call static NetManager
ColossalFramework.Singleton`1<NetManager>::get_instance()
IL_0047: stloc.1
IL_0048: ldc.i4.0
IL_0049: stloc.2
IL_004A: ldloc.1
IL_004B: ldfld Array16`1<NetNode> NetManager::m_nodes
IL_0050: ldfld NetNode[] Array16`1<NetNode>::m_buffer
IL_0055: ldarg.1
IL_0056: ldelema NetNode
IL_005B: ldfld Flags NetNode::m_flags
IL_0060: stloc.3
IL_0061: ldarg.1
IL_0062: call static System.Boolean
ElectricRoads.Overrides.ElectricRoadsOverrides::CheckNodeTransition(System.Int32
nodeID)
IL_0067: brfalse => Label2
IL_006C: ldloc.1
IL_006D: ldfld Array16`1<NetNode> NetManager::m_nodes
IL_0072: ldfld NetNode[] Array16`1<NetNode>::m_buffer
IL_0077: ldarg.1
IL_0078: ldelema NetNode
IL_007D: dup
IL_007E: ldfld Flags NetNode::m_flags
IL_0083: ldc.i4 -1048577
IL_0088: and
IL_0089: stfld Flags NetNode::m_flags
IL_008E: br => Label12
IL_0093: Label2
IL_0093: ldloc.1
IL_0094: ldfld Array16`1<NetNode> NetManager::m_nodes
IL_0099: ldfld NetNode[] Array16`1<NetNode>::m_buffer
IL_009E: ldarg.1
IL_009F: ldelema NetNode
IL_00A4: ldfld System.UInt16 NetNode::m_building
IL_00A9: stloc.s 4 (System.UInt16)
IL_00AB: ldloc.s 4 (System.UInt16)
IL_00AD: brfalse => Label3
IL_00B2: call static BuildingManager
ColossalFramework.Singleton`1<BuildingManager>::get_instance()
IL_00B7: stloc.s 5 (BuildingManager)
IL_00B9: ldloc.s 5 (BuildingManager)
IL_00BB: ldfld Array16`1<Building> BuildingManager::m_buildings
IL_00C0: ldfld Building[] Array16`1<Building>::m_buffer
IL_00C5: ldloc.s 4 (System.UInt16)
IL_00C7: ldelema Building
IL_00CC: ldfld System.UInt16 Building::m_electricityBuffer
IL_00D1: ldarg.2
IL_00D2: beq => Label4
IL_00D7: ldloc.s 5 (BuildingManager)
IL_00D9: ldfld Array16`1<Building> BuildingManager::m_buildings
IL_00DE: ldfld Building[] Array16`1<Building>::m_buffer
IL_00E3: ldloc.s 4 (System.UInt16)
IL_00E5: ldelema Building
IL_00EA: ldarg.2
IL_00EB: conv.u2
IL_00EC: stfld System.UInt16 Building::m_electricityBuffer
IL_00F1: ldloc.0
IL_00F2: ldc.i4.1
IL_00F3: ceq
IL_00F5: stloc.2
IL_00F6: Label4
IL_00F6: ldloc.2
IL_00F7: brfalse => Label5
IL_00FC: ldloc.s 5 (BuildingManager)
IL_00FE: ldloc.s 4 (System.UInt16)
IL_0100: callvirt System.Void BuildingManager::UpdateBuildingColors(System.UInt16
building)
IL_0105: Label3
IL_0105: Label5
IL_0105: ldloc.3
IL_0106: ldc.i4 -67108865
IL_010B: and
IL_010C: stloc.s 6 (NetNode+Flags)
IL_010E: ldarg.2
IL_010F: brfalse => Label6
IL_0114: ldloc.s 6 (NetNode+Flags)
IL_0116: ldc.i4 67108864
IL_011B: or
IL_011C: stloc.s 6 (NetNode+Flags)
IL_011E: Label6
IL_011E: ldloc.s 6 (NetNode+Flags)
IL_0120: ldloc.3
IL_0121: beq => Label7
IL_0126: ldloc.1
IL_0127: ldfld Array16`1<NetNode> NetManager::m_nodes
IL_012C: ldfld NetNode[] Array16`1<NetNode>::m_buffer
IL_0131: ldarg.1
IL_0132: ldelema NetNode
IL_0137: ldloc.s 6 (NetNode+Flags)
IL_0139: stfld Flags NetNode::m_flags
IL_013E: ldloc.0
IL_013F: ldc.i4.1
IL_0140: ceq
IL_0142: stloc.2
IL_0143: Label7
IL_0143: ldloc.2
IL_0144: brfalse => Label8
IL_0149: ldloc.1
IL_014A: ldarg.1
IL_014B: conv.u2
IL_014C: callvirt System.Void NetManager::UpdateNodeColors(System.UInt16 node)
IL_0151: ldc.i4.0
IL_0152: stloc.s 7 (System.Int32)
IL_0154: br => Label9
IL_0159: Label11
IL_0159: ldloc.1
IL_015A: ldfld Array16`1<NetNode> NetManager::m_nodes
IL_015F: ldfld NetNode[] Array16`1<NetNode>::m_buffer
IL_0164: ldarg.1
IL_0165: ldelema NetNode
IL_016A: ldloc.s 7 (System.Int32)
IL_016C: call System.UInt16 NetNode::GetSegment(System.Int32 index)
IL_0171: stloc.s 8 (System.UInt16)
IL_0173: ldloc.s 8 (System.UInt16)
IL_0175: brfalse => Label10
IL_017A: ldloc.1
IL_017B: ldloc.s 8 (System.UInt16)
IL_017D: callvirt System.Void NetManager::UpdateSegmentColors(System.UInt16
segment)
IL_0182: Label10
IL_0182: ldloc.s 7 (System.Int32)
IL_0184: ldc.i4.1
IL_0185: add
IL_0186: stloc.s 7 (System.Int32)
IL_0188: Label9
IL_0188: ldloc.s 7 (System.Int32)
IL_018A: ldc.i4.8
IL_018B: blt => Label11
IL_0190: // end original
IL_0190: Label8
IL_0190: Label12
IL_0190: Label0
IL_0190: ldarg 1
IL_0194: ldloc 10 (System.Boolean)
IL_0198: call static System.Void
ElectricRoads.Overrides.ElectricRoadsOverrides::PostConduct(System.Int32 nodeID,
System.Boolean __state)
IL_019D: ret
DONE

### Patch: virtual System.Void ColossalFramework.UI.UIView::Start()


### Replacement: static System.Void
ColossalFramework.UI.UIView::ColossalFramework.UI.UIView.Start_Patch0(ColossalFrame
work.UI.UIView this)
IL_0000: Local var 0:
ColossalFramework.PoolList`1<ColossalFramework.UI.UIComponent>
IL_0000: Local var 1: ColossalFramework.UI.UIComponent
IL_0000: Local var 2:
System.Collections.Generic.IEnumerator`1<ColossalFramework.UI.UIComponent>
IL_0000: // start original
IL_0000: ldarg.0
IL_0001: ldc.i4.0
IL_0002: stfld System.Int32 ColossalFramework.UI.UIView::m_FramesRendered
IL_0007: ldarg.0
IL_0008: call System.Void
ColossalFramework.UI.UIView::InvalidateAllComponents()
IL_000D: ldarg.0
IL_000E: ldfld UnityEngine.MeshRenderer
ColossalFramework.UI.UIView::m_MeshRenderer
IL_0013: ldnull
IL_0014: call static System.Boolean
UnityEngine.Object::op_Inequality(UnityEngine.Object x, UnityEngine.Object y)
IL_0019: brfalse => Label0
IL_001E: ldarg.0
IL_001F: ldfld UnityEngine.MeshRenderer
ColossalFramework.UI.UIView::m_MeshRenderer
IL_0024: ldc.i4.1
IL_0025: callvirt System.Void UnityEngine.Renderer::set_enabled(System.Boolean
value)
IL_002A: Label0
IL_002A: ldarg.0
IL_002B: call ColossalFramework.PoolList`1<ColossalFramework.UI.UIComponent>
ColossalFramework.UI.UIView::GetTopLevelComponents()
IL_0030: stloc.0
.try
{
IL_0031: ldloc.0
IL_0032: callvirt virtual
System.Collections.Generic.IEnumerator`1<ColossalFramework.UI.UIComponent>
ColossalFramework.PoolList`1<ColossalFramework.UI.UIComponent>::GetEnumerator()
IL_0037: stloc.2
.try
{
IL_0038: br => Label1
IL_003D: Label2
IL_003D: ldloc.2
IL_003E: callvirt abstract virtual ColossalFramework.UI.UIComponent
System.Collections.Generic.IEnumerator`1<ColossalFramework.UI.UIComponent>::get_Cur
rent()
IL_0043: stloc.1
IL_0044: ldloc.1
IL_0045: ldc.i4.1
IL_0046: callvirt System.Void
ColossalFramework.UI.UIComponent::InitializeParentVisibilityCache(System.Boolean
parentVisible)
IL_004B: Label1
IL_004B: ldloc.2
IL_004C: callvirt abstract virtual System.Boolean
System.Collections.IEnumerator::MoveNext()
IL_0051: brtrue => Label2
IL_0056: leave => Label3
IL_005B: leave => (autogenerated)
} // end try
.finally
{
IL_0060: ldloc.2
IL_0061: brfalse => Label4
IL_0066: ldloc.2
IL_0067: callvirt abstract virtual System.Void
System.IDisposable::Dispose()
IL_006C: Label4
IL_006C: endfinally
IL_006D: leave => (autogenerated)
} // end handler
IL_006E: Label3
IL_006E: leave => Label5
IL_0073: leave => (autogenerated)
} // end try
.finally
{
IL_0078: ldloc.0
IL_0079: brfalse => Label6
IL_007E: ldloc.0
IL_007F: callvirt abstract virtual System.Void
System.IDisposable::Dispose()
IL_0084: Label6
IL_0084: endfinally
IL_0085: leave => (autogenerated)
} // end handler
IL_0086: Label5
IL_0086: ldarg.0
IL_0087: ldc.i4.1
IL_0088: stfld System.Boolean
ColossalFramework.UI.UIView::m_VisibilityCacheInitialized
IL_008D: // end original
IL_008D: ret
DONE

### Patch: virtual UnityEngine.Color NetAI::GetColor(System.UInt16 nodeID, NetNode&


data, InfoMode infoMode, SubInfoMode subInfoMode)
### Replacement: static UnityEngine.Color NetAI::NetAI.GetColor_Patch0(NetAI this,
System.UInt16 nodeID, NetNode& data, InfoMode infoMode, SubInfoMode subInfoMode)
IL_0000: // start original
IL_0000: ldarg.3
IL_0001: brfalse => Label0
IL_0006: call static InfoManager
ColossalFramework.Singleton`1<InfoManager>::get_instance()
IL_000B: ldfld InfoProperties SimulationManagerBase`2<InfoManager,
InfoProperties>::m_properties
IL_0010: ldfld UnityEngine.Color InfoProperties::m_neutralColor
IL_0015: br => Label1
IL_001A: Label0
IL_001A: ldarg.0
IL_001B: ldfld NetInfo NetAI::m_info
IL_0020: ldfld UnityEngine.Color NetInfo::m_color
IL_0025: // end original
IL_0025: Label1
IL_0025: ret
DONE

### Patch: virtual UnityEngine.Color NetAI::GetColor(System.UInt16 segmentID,


NetSegment& data, InfoMode infoMode, SubInfoMode subInfoMode)
### Replacement: static UnityEngine.Color NetAI::NetAI.GetColor_Patch0(NetAI this,
System.UInt16 segmentID, NetSegment& data, InfoMode infoMode, SubInfoMode
subInfoMode)
IL_0000: // start original
IL_0000: ldarg.3
IL_0001: brfalse => Label0
IL_0006: call static InfoManager
ColossalFramework.Singleton`1<InfoManager>::get_instance()
IL_000B: ldfld InfoProperties SimulationManagerBase`2<InfoManager,
InfoProperties>::m_properties
IL_0010: ldfld UnityEngine.Color InfoProperties::m_neutralColor
IL_0015: br => Label1
IL_001A: Label0
IL_001A: ldarg.0
IL_001B: ldfld NetInfo NetAI::m_info
IL_0020: ldfld UnityEngine.Color NetInfo::m_color
IL_0025: // end original
IL_0025: Label1
IL_0025: ret
DONE

### Patch: System.Void ElectricityManager::UpdateNodeElectricity(System.Int32


nodeID, System.Int32 value)
### Replacement: static System.Void
ElectricityManager::ElectricityManager.UpdateNodeElectricity_Patch0(ElectricityMana
ger this, System.Int32 nodeID, System.Int32 value)
IL_0000: Local var 0: InfoManager/InfoMode
IL_0000: Local var 1: NetManager
IL_0000: Local var 2: System.Boolean
IL_0000: Local var 3: NetNode/Flags
IL_0000: Local var 4: System.UInt16
IL_0000: Local var 5: BuildingManager
IL_0000: Local var 6: NetNode/Flags
IL_0000: Local var 7: System.Int32
IL_0000: Local var 8: System.UInt16
IL_0000: // start original
IL_0000: call static InfoManager
ColossalFramework.Singleton`1<InfoManager>::get_instance()
IL_0005: callvirt InfoMode InfoManager::get_CurrentMode()
IL_000A: stloc.0
IL_000B: call static NetManager
ColossalFramework.Singleton`1<NetManager>::get_instance()
IL_0010: stloc.1
IL_0011: ldc.i4.0
IL_0012: stloc.2
IL_0013: ldloc.1
IL_0014: ldfld Array16`1<NetNode> NetManager::m_nodes
IL_0019: ldfld NetNode[] Array16`1<NetNode>::m_buffer
IL_001E: ldarg.1
IL_001F: ldelema NetNode
IL_0024: ldfld Flags NetNode::m_flags
IL_0029: stloc.3
IL_002A: ldloc.3
IL_002B: ldc.i4 1048576
IL_0030: and
IL_0031: brfalse => Label0
IL_0036: ldloc.1
IL_0037: ldfld Array16`1<NetNode> NetManager::m_nodes
IL_003C: ldfld NetNode[] Array16`1<NetNode>::m_buffer
IL_0041: ldarg.1
IL_0042: ldelema NetNode
IL_0047: dup
IL_0048: ldfld Flags NetNode::m_flags
IL_004D: ldc.i4 -1048577
IL_0052: and
IL_0053: stfld Flags NetNode::m_flags
IL_0058: br => Label10
IL_005D: Label0
IL_005D: ldloc.1
IL_005E: ldfld Array16`1<NetNode> NetManager::m_nodes
IL_0063: ldfld NetNode[] Array16`1<NetNode>::m_buffer
IL_0068: ldarg.1
IL_0069: ldelema NetNode
IL_006E: ldfld System.UInt16 NetNode::m_building
IL_0073: stloc.s 4 (System.UInt16)
IL_0075: ldloc.s 4 (System.UInt16)
IL_0077: brfalse => Label1
IL_007C: call static BuildingManager
ColossalFramework.Singleton`1<BuildingManager>::get_instance()
IL_0081: stloc.s 5 (BuildingManager)
IL_0083: ldloc.s 5 (BuildingManager)
IL_0085: ldfld Array16`1<Building> BuildingManager::m_buildings
IL_008A: ldfld Building[] Array16`1<Building>::m_buffer
IL_008F: ldloc.s 4 (System.UInt16)
IL_0091: ldelema Building
IL_0096: ldfld System.UInt16 Building::m_electricityBuffer
IL_009B: ldarg.2
IL_009C: beq => Label2
IL_00A1: ldloc.s 5 (BuildingManager)
IL_00A3: ldfld Array16`1<Building> BuildingManager::m_buildings
IL_00A8: ldfld Building[] Array16`1<Building>::m_buffer
IL_00AD: ldloc.s 4 (System.UInt16)
IL_00AF: ldelema Building
IL_00B4: ldarg.2
IL_00B5: conv.u2
IL_00B6: stfld System.UInt16 Building::m_electricityBuffer
IL_00BB: ldloc.0
IL_00BC: ldc.i4.1
IL_00BD: ceq
IL_00BF: stloc.2
IL_00C0: Label2
IL_00C0: ldloc.2
IL_00C1: brfalse => Label3
IL_00C6: ldloc.s 5 (BuildingManager)
IL_00C8: ldloc.s 4 (System.UInt16)
IL_00CA: callvirt System.Void BuildingManager::UpdateBuildingColors(System.UInt16
building)
IL_00CF: Label1
IL_00CF: Label3
IL_00CF: ldloc.3
IL_00D0: ldc.i4 -67108865
IL_00D5: and
IL_00D6: stloc.s 6 (NetNode+Flags)
IL_00D8: ldarg.2
IL_00D9: brfalse => Label4
IL_00DE: ldloc.s 6 (NetNode+Flags)
IL_00E0: ldc.i4 67108864
IL_00E5: or
IL_00E6: stloc.s 6 (NetNode+Flags)
IL_00E8: Label4
IL_00E8: ldloc.s 6 (NetNode+Flags)
IL_00EA: ldloc.3
IL_00EB: beq => Label5
IL_00F0: ldloc.1
IL_00F1: ldfld Array16`1<NetNode> NetManager::m_nodes
IL_00F6: ldfld NetNode[] Array16`1<NetNode>::m_buffer
IL_00FB: ldarg.1
IL_00FC: ldelema NetNode
IL_0101: ldloc.s 6 (NetNode+Flags)
IL_0103: stfld Flags NetNode::m_flags
IL_0108: ldloc.0
IL_0109: ldc.i4.1
IL_010A: ceq
IL_010C: stloc.2
IL_010D: Label5
IL_010D: ldloc.2
IL_010E: brfalse => Label6
IL_0113: ldloc.1
IL_0114: ldarg.1
IL_0115: conv.u2
IL_0116: callvirt System.Void NetManager::UpdateNodeColors(System.UInt16 node)
IL_011B: ldc.i4.0
IL_011C: stloc.s 7 (System.Int32)
IL_011E: br => Label7
IL_0123: Label9
IL_0123: ldloc.1
IL_0124: ldfld Array16`1<NetNode> NetManager::m_nodes
IL_0129: ldfld NetNode[] Array16`1<NetNode>::m_buffer
IL_012E: ldarg.1
IL_012F: ldelema NetNode
IL_0134: ldloc.s 7 (System.Int32)
IL_0136: call System.UInt16 NetNode::GetSegment(System.Int32 index)
IL_013B: stloc.s 8 (System.UInt16)
IL_013D: ldloc.s 8 (System.UInt16)
IL_013F: brfalse => Label8
IL_0144: ldloc.1
IL_0145: ldloc.s 8 (System.UInt16)
IL_0147: callvirt System.Void NetManager::UpdateSegmentColors(System.UInt16
segment)
IL_014C: Label8
IL_014C: ldloc.s 7 (System.Int32)
IL_014E: ldc.i4.1
IL_014F: add
IL_0150: stloc.s 7 (System.Int32)
IL_0152: Label7
IL_0152: ldloc.s 7 (System.Int32)
IL_0154: ldc.i4.8
IL_0155: blt => Label9
IL_015A: // end original
IL_015A: Label6
IL_015A: Label10
IL_015A: ret
DONE

### Patch: static System.Void PropInstance::RenderInstance(CameraInfo cameraInfo,


PropInfo info, InstanceID id, UnityEngine.Vector3 position, System.Single scale,
System.Single angle, UnityEngine.Color color, UnityEngine.Vector4 objectIndex,
System.Boolean active, UnityEngine.Texture heightMap, UnityEngine.Vector4
heightMapping, UnityEngine.Vector4 surfaceMapping, UnityEngine.Texture
waterHeightMap, UnityEngine.Vector4 waterHeightMapping, UnityEngine.Vector4
waterSurfaceMapping)
### Replacement: static System.Void
PropInstance::PropInstance.RenderInstance_Patch0(CameraInfo cameraInfo, PropInfo
info, InstanceID id, UnityEngine.Vector3 position, System.Single scale,
System.Single angle, UnityEngine.Color color, UnityEngine.Vector4 objectIndex,
System.Boolean active, UnityEngine.Texture heightMap, UnityEngine.Vector4
heightMapping, UnityEngine.Vector4 surfaceMapping, UnityEngine.Texture
waterHeightMap, UnityEngine.Vector4 waterHeightMapping, UnityEngine.Vector4
waterSurfaceMapping)
IL_0000: Local var 0: UnityEngine.Matrix4x4
IL_0000: Local var 1: System.Single
IL_0000: Local var 2: System.Int32
IL_0000: Local var 3: UnityEngine.Vector3
IL_0000: Local var 4: UnityEngine.Vector3
IL_0000: Local var 5: EffectInfo/SpawnArea
IL_0000: Local var 6: System.Single
IL_0000: Local var 7: LightSystem
IL_0000: Local var 8: ColossalFramework.Math.Randomizer
IL_0000: Local var 9: UnityEngine.Vector4
IL_0000: Local var 10: System.Single
IL_0000: Local var 11: System.Single
IL_0000: Local var 12: System.Single
IL_0000: Local var 13: UnityEngine.Matrix4x4
IL_0000: Local var 14: PropManager
IL_0000: Local var 15: UnityEngine.MaterialPropertyBlock
IL_0000: Local var 16: System.Int32
IL_0000: // start original
IL_0000: ldarg.1
IL_0001: ldfld System.Boolean PrefabInfo::m_prefabInitialized
IL_0006: brfalse => Label0
IL_000B: ldarg.1
IL_000C: ldfld System.Boolean PropInfo::m_hasEffects
IL_0011: brfalse => Label1
IL_0016: ldarg.s 8
IL_0018: brtrue => Label2
IL_001D: ldarg.1
IL_001E: ldfld System.Boolean PropInfo::m_alwaysActive
IL_0023: brfalse => Label3
IL_0028: Label2
IL_0028: ldloca.s 0 (UnityEngine.Matrix4x4)
IL_002A: initobj UnityEngine.Matrix4x4
IL_0030: ldloca.s 0 (UnityEngine.Matrix4x4)
IL_0032: ldarg.3
IL_0033: ldarg.s 5
IL_0035: ldc.r4 57.29578
IL_003A: mul
IL_003B: call static UnityEngine.Vector3 UnityEngine.Vector3::get_down()
IL_0040: call static UnityEngine.Quaternion
UnityEngine.Quaternion::AngleAxis(System.Single angle, UnityEngine.Vector3 axis)
IL_0045: ldarg.s 4
IL_0047: ldarg.s 4
IL_0049: ldarg.s 4
IL_004B: newobj System.Void UnityEngine.Vector3::.ctor(System.Single x,
System.Single y, System.Single z)
IL_0050: call System.Void UnityEngine.Matrix4x4::SetTRS(UnityEngine.Vector3
pos, UnityEngine.Quaternion q, UnityEngine.Vector3 s)
IL_0055: call static SimulationManager
ColossalFramework.Singleton`1<SimulationManager>::get_instance()
IL_005A: ldfld System.Single SimulationManager::m_simulationTimeDelta
IL_005F: stloc.1
IL_0060: ldc.i4.0
IL_0061: stloc.2
IL_0062: br => Label4
IL_0067: Label5
IL_0067: ldloca.s 0 (UnityEngine.Matrix4x4)
IL_0069: ldarg.1
IL_006A: ldfld Effect[] PropInfo::m_effects
IL_006F: ldloc.2
IL_0070: ldelema PropInfo+Effect
IL_0075: ldfld UnityEngine.Vector3 Effect::m_position
IL_007A: call UnityEngine.Vector3
UnityEngine.Matrix4x4::MultiplyPoint(UnityEngine.Vector3 v)
IL_007F: stloc.3
IL_0080: ldloca.s 0 (UnityEngine.Matrix4x4)
IL_0082: ldarg.1
IL_0083: ldfld Effect[] PropInfo::m_effects
IL_0088: ldloc.2
IL_0089: ldelema PropInfo+Effect
IL_008E: ldfld UnityEngine.Vector3 Effect::m_direction
IL_0093: call UnityEngine.Vector3
UnityEngine.Matrix4x4::MultiplyVector(UnityEngine.Vector3 v)
IL_0098: stloc.s 4 (UnityEngine.Vector3)
IL_009A: ldloca.s 5 (EffectInfo+SpawnArea)
IL_009C: ldloc.3
IL_009D: ldloc.s 4 (UnityEngine.Vector3)
IL_009F: ldc.r4 0
IL_00A4: call System.Void SpawnArea::.ctor(UnityEngine.Vector3 position,
UnityEngine.Vector3 direction, System.Single radius)
IL_00A9: ldarg.1
IL_00AA: ldfld Effect[] PropInfo::m_effects
IL_00AF: ldloc.2
IL_00B0: ldelema PropInfo+Effect
IL_00B5: ldfld EffectInfo Effect::m_effect
IL_00BA: ldarg.2
IL_00BB: ldloc.s 5 (EffectInfo+SpawnArea)
IL_00BD: call static UnityEngine.Vector3 UnityEngine.Vector3::get_zero()
IL_00C2: ldc.r4 0
IL_00C7: ldc.r4 1
IL_00CC: ldc.r4 -1
IL_00D1: ldloc.1
IL_00D2: ldarg.0
IL_00D3: callvirt virtual System.Void EffectInfo::RenderEffect(InstanceID id,
SpawnArea area, UnityEngine.Vector3 velocity, System.Single acceleration,
System.Single magnitude, System.Single timeOffset, System.Single timeDelta,
CameraInfo cameraInfo)
IL_00D8: ldloc.2
IL_00D9: ldc.i4.1
IL_00DA: add
IL_00DB: stloc.2
IL_00DC: Label4
IL_00DC: ldloc.2
IL_00DD: ldarg.1
IL_00DE: ldfld Effect[] PropInfo::m_effects
IL_00E3: ldlen
IL_00E4: conv.i4
IL_00E5: blt => Label5
IL_00EA: Label1
IL_00EA: Label3
IL_00EA: ldarg.1
IL_00EB: ldfld System.Boolean PropInfo::m_hasRenderer
IL_00F0: brfalse => Label6
IL_00F5: ldarg.0
IL_00F6: ldfld System.Int32 CameraInfo::m_layerMask
IL_00FB: ldc.i4.1
IL_00FC: ldarg.1
IL_00FD: ldfld System.Int32 PrefabInfo::m_prefabDataLayer
IL_0102: ldc.i4.s 31
IL_0104: and
IL_0105: shl
IL_0106: and
IL_0107: brfalse => Label7
IL_010C: call static InfoManager
ColossalFramework.Singleton`1<InfoManager>::get_instance()
IL_0111: callvirt InfoMode InfoManager::get_CurrentMode()
IL_0116: brtrue => Label8
IL_011B: ldc.r4 0
IL_0120: stloc.s 6 (System.Single)
IL_0122: ldarg.s 8
IL_0124: brtrue => Label9
IL_0129: ldarg.1
IL_012A: ldfld System.Boolean PropInfo::m_alwaysActive
IL_012F: brtrue => Label10
IL_0134: ldarga.s 7
IL_0136: ldc.r4 0
IL_013B: stfld System.Single UnityEngine.Vector4::z
IL_0140: br => Label11
IL_0145: Label9
IL_0145: Label10
IL_0145: ldarg.1
IL_0146: ldflda UnityEngine.Vector2 PropInfo::m_illuminationOffRange
IL_014B: ldfld System.Single UnityEngine.Vector2::x
IL_0150: ldc.r4 1000
IL_0155: blt => Label12
IL_015A: ldarg.1
IL_015B: ldfld BlinkType PropInfo::m_illuminationBlinkType
IL_0160: brfalse => Label13
IL_0165: Label12
IL_0165: call static RenderManager
ColossalFramework.Singleton`1<RenderManager>::get_instance()
IL_016A: callvirt LightSystem RenderManager::get_lightSystem()
IL_016F: stloc.s 7 (LightSystem)
IL_0171: ldloca.s 8 (ColossalFramework.Math.Randomizer)
IL_0173: ldarga.s 2
IL_0175: call System.UInt32 InstanceID::get_Index()
IL_017A: call System.Void
ColossalFramework.Math.Randomizer::.ctor(System.UInt32 _seed)
IL_017F: ldarg.1
IL_0180: ldflda UnityEngine.Vector2 PropInfo::m_illuminationOffRange
IL_0185: ldfld System.Single UnityEngine.Vector2::x
IL_018A: ldloca.s 8 (ColossalFramework.Math.Randomizer)
IL_018C: ldc.i4 100000
IL_0191: call System.Int32
ColossalFramework.Math.Randomizer::Int32(System.UInt32 range)
IL_0196: conv.r4
IL_0197: ldc.r4 1E-05
IL_019C: mul
IL_019D: ldarg.1
IL_019E: ldflda UnityEngine.Vector2 PropInfo::m_illuminationOffRange
IL_01A3: ldfld System.Single UnityEngine.Vector2::y
IL_01A8: ldarg.1
IL_01A9: ldflda UnityEngine.Vector2 PropInfo::m_illuminationOffRange
IL_01AE: ldfld System.Single UnityEngine.Vector2::x
IL_01B3: sub
IL_01B4: mul
IL_01B5: add
IL_01B6: stloc.s 6 (System.Single)
IL_01B8: ldarga.s 7
IL_01BA: ldloc.s 6 (System.Single)
IL_01BC: ldc.r4 0.01
IL_01C1: add
IL_01C2: ldloc.s 6 (System.Single)
IL_01C4: ldc.r4 0.01
IL_01C9: sub
IL_01CA: ldloc.s 7 (LightSystem)
IL_01CC: callvirt System.Single LightSystem::get_DayLightIntensity()
IL_01D1: call static System.Single MathUtils::SmoothStep(System.Single edge0,
System.Single edge1, System.Single x)
IL_01D6: stfld System.Single UnityEngine.Vector4::z
IL_01DB: ldarg.1
IL_01DC: ldfld BlinkType PropInfo::m_illuminationBlinkType
IL_01E1: brfalse => Label14
IL_01E6: ldarg.1
IL_01E7: ldfld BlinkType PropInfo::m_illuminationBlinkType
IL_01EC: call static UnityEngine.Vector4
LightEffect::GetBlinkVector(BlinkType type)
IL_01F1: stloc.s 9 (UnityEngine.Vector4)
IL_01F3: ldloc.s 6 (System.Single)
IL_01F5: ldc.r4 3.71
IL_01FA: mul
IL_01FB: call static SimulationManager
ColossalFramework.Singleton`1<SimulationManager>::get_instance()
IL_0200: ldfld System.Single SimulationManager::m_simulationTimer
IL_0205: ldloca.s 9 (UnityEngine.Vector4)
IL_0207: ldfld System.Single UnityEngine.Vector4::w
IL_020C: div
IL_020D: add
IL_020E: stloc.s 10 (System.Single)
IL_0210: ldloc.s 10 (System.Single)
IL_0212: ldloc.s 10 (System.Single)
IL_0214: call static System.Single UnityEngine.Mathf::Floor(System.Single f)
IL_0219: sub
IL_021A: ldloca.s 9 (UnityEngine.Vector4)
IL_021C: ldfld System.Single UnityEngine.Vector4::w
IL_0221: mul
IL_0222: stloc.s 10 (System.Single)
IL_0224: ldloca.s 9 (UnityEngine.Vector4)
IL_0226: ldfld System.Single UnityEngine.Vector4::x
IL_022B: ldloca.s 9 (UnityEngine.Vector4)
IL_022D: ldfld System.Single UnityEngine.Vector4::y
IL_0232: ldloc.s 10 (System.Single)
IL_0234: call static System.Single MathUtils::SmoothStep(System.Single edge0,
System.Single edge1, System.Single x)
IL_0239: stloc.s 11 (System.Single)
IL_023B: ldloca.s 9 (UnityEngine.Vector4)
IL_023D: ldfld System.Single UnityEngine.Vector4::w
IL_0242: ldloca.s 9 (UnityEngine.Vector4)
IL_0244: ldfld System.Single UnityEngine.Vector4::z
IL_0249: ldloc.s 10 (System.Single)
IL_024B: call static System.Single MathUtils::SmoothStep(System.Single edge0,
System.Single edge1, System.Single x)
IL_0250: stloc.s 12 (System.Single)
IL_0252: ldarga.s 7
IL_0254: dup
IL_0255: ldfld System.Single UnityEngine.Vector4::z
IL_025A: ldc.r4 1
IL_025F: ldloc.s 11 (System.Single)
IL_0261: ldloc.s 12 (System.Single)
IL_0263: mul
IL_0264: sub
IL_0265: mul
IL_0266: stfld System.Single UnityEngine.Vector4::z
IL_026B: Label14
IL_026B: br => Label15
IL_0270: Label13
IL_0270: ldarga.s 7
IL_0272: ldc.r4 1
IL_0277: stfld System.Single UnityEngine.Vector4::z
IL_027C: Label8
IL_027C: Label11
IL_027C: Label15
IL_027C: ldarg.0
IL_027D: brfalse => Label16
IL_0282: ldarg.0
IL_0283: ldarg.3
IL_0284: ldarg.1
IL_0285: ldfld System.Single PropInfo::m_lodRenderDistance
IL_028A: callvirt System.Boolean
CameraInfo::CheckRenderDistance(UnityEngine.Vector3 point, System.Single
maxDistance)
IL_028F: brfalse => Label17
IL_0294: Label16
IL_0294: ldloca.s 13 (UnityEngine.Matrix4x4)
IL_0296: initobj UnityEngine.Matrix4x4
IL_029C: ldloca.s 13 (UnityEngine.Matrix4x4)
IL_029E: ldarg.3
IL_029F: ldarg.s 5
IL_02A1: ldc.r4 57.29578
IL_02A6: mul
IL_02A7: call static UnityEngine.Vector3 UnityEngine.Vector3::get_down()
IL_02AC: call static UnityEngine.Quaternion
UnityEngine.Quaternion::AngleAxis(System.Single angle, UnityEngine.Vector3 axis)
IL_02B1: ldarg.s 4
IL_02B3: ldarg.s 4
IL_02B5: ldarg.s 4
IL_02B7: newobj System.Void UnityEngine.Vector3::.ctor(System.Single x,
System.Single y, System.Single z)
IL_02BC: call System.Void UnityEngine.Matrix4x4::SetTRS(UnityEngine.Vector3
pos, UnityEngine.Quaternion q, UnityEngine.Vector3 s)
IL_02C1: call static PropManager
ColossalFramework.Singleton`1<PropManager>::get_instance()
IL_02C6: stloc.s 14 (PropManager)
IL_02C8: ldloc.s 14 (PropManager)
IL_02CA: ldfld UnityEngine.MaterialPropertyBlock PropManager::m_materialBlock
IL_02CF: stloc.s 15 (UnityEngine.MaterialPropertyBlock)
IL_02D1: ldloc.s 15 (UnityEngine.MaterialPropertyBlock)
IL_02D3: callvirt System.Void UnityEngine.MaterialPropertyBlock::Clear()
IL_02D8: ldloc.s 15 (UnityEngine.MaterialPropertyBlock)
IL_02DA: ldloc.s 14 (PropManager)
IL_02DC: ldfld System.Int32 PropManager::ID_Color
IL_02E1: ldarg.s 6
IL_02E3: callvirt System.Void
UnityEngine.MaterialPropertyBlock::SetColor(System.Int32 nameID, UnityEngine.Color
value)
IL_02E8: ldloc.s 15 (UnityEngine.MaterialPropertyBlock)
IL_02EA: ldloc.s 14 (PropManager)
IL_02EC: ldfld System.Int32 PropManager::ID_HeightMap
IL_02F1: ldarg.s 9
IL_02F3: callvirt System.Void
UnityEngine.MaterialPropertyBlock::SetTexture(System.Int32 nameID,
UnityEngine.Texture value)
IL_02F8: ldloc.s 15 (UnityEngine.MaterialPropertyBlock)
IL_02FA: ldloc.s 14 (PropManager)
IL_02FC: ldfld System.Int32 PropManager::ID_HeightMapping
IL_0301: ldarg.s 10
IL_0303: callvirt System.Void
UnityEngine.MaterialPropertyBlock::SetVector(System.Int32 nameID,
UnityEngine.Vector4 value)
IL_0308: ldloc.s 15 (UnityEngine.MaterialPropertyBlock)
IL_030A: ldloc.s 14 (PropManager)
IL_030C: ldfld System.Int32 PropManager::ID_SurfaceMapping
IL_0311: ldarg.s 11
IL_0313: callvirt System.Void
UnityEngine.MaterialPropertyBlock::SetVector(System.Int32 nameID,
UnityEngine.Vector4 value)
IL_0318: ldloc.s 15 (UnityEngine.MaterialPropertyBlock)
IL_031A: ldloc.s 14 (PropManager)
IL_031C: ldfld System.Int32 PropManager::ID_ObjectIndex
IL_0321: ldarg.s 7
IL_0323: callvirt System.Void
UnityEngine.MaterialPropertyBlock::SetVector(System.Int32 nameID,
UnityEngine.Vector4 value)
IL_0328: ldloc.s 15 (UnityEngine.MaterialPropertyBlock)
IL_032A: ldloc.s 14 (PropManager)
IL_032C: ldfld System.Int32 PropManager::ID_WaterHeightMap
IL_0331: ldarg.s 12
IL_0333: callvirt System.Void
UnityEngine.MaterialPropertyBlock::SetTexture(System.Int32 nameID,
UnityEngine.Texture value)
IL_0338: ldloc.s 15 (UnityEngine.MaterialPropertyBlock)
IL_033A: ldloc.s 14 (PropManager)
IL_033C: ldfld System.Int32 PropManager::ID_WaterHeightMapping
IL_0341: ldarg.s 13
IL_0343: callvirt System.Void
UnityEngine.MaterialPropertyBlock::SetVector(System.Int32 nameID,
UnityEngine.Vector4 value)
IL_0348: ldloc.s 15 (UnityEngine.MaterialPropertyBlock)
IL_034A: ldloc.s 14 (PropManager)
IL_034C: ldfld System.Int32 PropManager::ID_WaterSurfaceMapping
IL_0351: ldarg.s 14
IL_0353: callvirt System.Void
UnityEngine.MaterialPropertyBlock::SetVector(System.Int32 nameID,
UnityEngine.Vector4 value)
IL_0358: ldarg.1
IL_0359: ldfld UnityEngine.Vector4[] PropInfo::m_rollLocation
IL_035E: brfalse => Label18
IL_0363: ldarg.1
IL_0364: ldfld UnityEngine.Material PropInfo::m_material
IL_0369: ldloc.s 14 (PropManager)
IL_036B: ldfld System.Int32 PropManager::ID_RollLocation
IL_0370: ldarg.1
IL_0371: ldfld UnityEngine.Vector4[] PropInfo::m_rollLocation
IL_0376: callvirt System.Void UnityEngine.Material::SetVectorArray(System.Int32
nameID, UnityEngine.Vector4[] values)
IL_037B: ldarg.1
IL_037C: ldfld UnityEngine.Material PropInfo::m_material
IL_0381: ldloc.s 14 (PropManager)
IL_0383: ldfld System.Int32 PropManager::ID_RollParams
IL_0388: ldarg.1
IL_0389: ldfld UnityEngine.Vector4[] PropInfo::m_rollParams
IL_038E: callvirt System.Void UnityEngine.Material::SetVectorArray(System.Int32
nameID, UnityEngine.Vector4[] values)
IL_0393: Label18
IL_0393: ldloc.s 14 (PropManager)
IL_0395: ldflda DrawCallData SimulationManagerBase`2<PropManager,
PropProperties>::m_drawCallData
IL_039A: dup
IL_039B: ldfld System.Int32 DrawCallData::m_defaultCalls
IL_03A0: ldc.i4.1
IL_03A1: add
IL_03A2: stfld System.Int32 DrawCallData::m_defaultCalls
IL_03A7: ldarg.1
IL_03A8: ldfld UnityEngine.Mesh PropInfo::m_mesh
IL_03AD: ldloc.s 13 (UnityEngine.Matrix4x4)
IL_03AF: ldarg.1
IL_03B0: ldfld UnityEngine.Material PropInfo::m_material
IL_03B5: ldarg.1
IL_03B6: ldfld System.Int32 PrefabInfo::m_prefabDataLayer
IL_03BB: ldnull
IL_03BC: ldc.i4.0
IL_03BD: ldloc.s 15 (UnityEngine.MaterialPropertyBlock)
IL_03BF: call static System.Void
UnityEngine.Graphics::DrawMesh(UnityEngine.Mesh mesh, UnityEngine.Matrix4x4 matrix,
UnityEngine.Material material, System.Int32 layer, UnityEngine.Camera camera,
System.Int32 submeshIndex, UnityEngine.MaterialPropertyBlock properties)
IL_03C4: br => Label19
IL_03C9: Label17
IL_03C9: ldarg.s 9
IL_03CB: ldarg.1
IL_03CC: ldfld UnityEngine.Texture PropInfo::m_lodHeightMap
IL_03D1: call static System.Boolean
UnityEngine.Object::op_Inequality(UnityEngine.Object x, UnityEngine.Object y)
IL_03D6: brtrue => Label20
IL_03DB: ldarg.s 12
IL_03DD: ldarg.1
IL_03DE: ldfld UnityEngine.Texture PropInfo::m_lodWaterHeightMap
IL_03E3: call static System.Boolean
UnityEngine.Object::op_Inequality(UnityEngine.Object x, UnityEngine.Object y)
IL_03E8: brfalse => Label21
IL_03ED: Label20
IL_03ED: ldarg.1
IL_03EE: ldfld System.Int32 PropInfo::m_lodCount
IL_03F3: brfalse => Label22
IL_03F8: ldarg.0
IL_03F9: ldarg.1
IL_03FA: call static System.Void PropInstance::RenderLod(CameraInfo
cameraInfo, PropInfo info)
IL_03FF: Label22
IL_03FF: ldarg.1
IL_0400: ldarg.s 9
IL_0402: stfld UnityEngine.Texture PropInfo::m_lodHeightMap
IL_0407: ldarg.1
IL_0408: ldarg.s 10
IL_040A: stfld UnityEngine.Vector4 PropInfo::m_lodHeightMapping
IL_040F: ldarg.1
IL_0410: ldarg.s 11
IL_0412: stfld UnityEngine.Vector4 PropInfo::m_lodSurfaceMapping
IL_0417: ldarg.1
IL_0418: ldarg.s 12
IL_041A: stfld UnityEngine.Texture PropInfo::m_lodWaterHeightMap
IL_041F: ldarg.1
IL_0420: ldarg.s 13
IL_0422: stfld UnityEngine.Vector4 PropInfo::m_lodWaterHeightMapping
IL_0427: ldarg.1
IL_0428: ldarg.s 14
IL_042A: stfld UnityEngine.Vector4 PropInfo::m_lodWaterSurfaceMapping
IL_042F: Label21
IL_042F: ldarga.s 7
IL_0431: ldarg.s 4
IL_0433: stfld System.Single UnityEngine.Vector4::w
IL_0438: ldarg.1
IL_0439: ldfld UnityEngine.Vector4[] PropInfo::m_lodLocations
IL_043E: ldarg.1
IL_043F: ldfld System.Int32 PropInfo::m_lodCount
IL_0444: ldelema UnityEngine.Vector4
IL_0449: ldarga.s 3
IL_044B: ldfld System.Single UnityEngine.Vector3::x
IL_0450: ldarga.s 3
IL_0452: ldfld System.Single UnityEngine.Vector3::y
IL_0457: ldarga.s 3
IL_0459: ldfld System.Single UnityEngine.Vector3::z
IL_045E: ldarg.s 5
IL_0460: newobj System.Void UnityEngine.Vector4::.ctor(System.Single x,
System.Single y, System.Single z, System.Single w)
IL_0465: stobj UnityEngine.Vector4
IL_046A: ldarg.1
IL_046B: ldfld UnityEngine.Vector4[] PropInfo::m_lodObjectIndices
IL_0470: ldarg.1
IL_0471: ldfld System.Int32 PropInfo::m_lodCount
IL_0476: ldelema UnityEngine.Vector4
IL_047B: ldarg.s 7
IL_047D: stobj UnityEngine.Vector4
IL_0482: ldarg.1
IL_0483: ldfld UnityEngine.Vector4[] PropInfo::m_lodColors
IL_0488: ldarg.1
IL_0489: ldfld System.Int32 PropInfo::m_lodCount
IL_048E: ldelema UnityEngine.Vector4
IL_0493: ldarga.s 6
IL_0495: call UnityEngine.Color UnityEngine.Color::get_linear()
IL_049A: call static UnityEngine.Vector4
UnityEngine.Color::op_Implicit(UnityEngine.Color c)
IL_049F: stobj UnityEngine.Vector4
IL_04A4: ldarg.1
IL_04A5: ldarg.1
IL_04A6: ldfld UnityEngine.Vector3 PropInfo::m_lodMin
IL_04AB: ldarg.3
IL_04AC: call static UnityEngine.Vector3
UnityEngine.Vector3::Min(UnityEngine.Vector3 lhs, UnityEngine.Vector3 rhs)
IL_04B1: stfld UnityEngine.Vector3 PropInfo::m_lodMin
IL_04B6: ldarg.1
IL_04B7: ldarg.1
IL_04B8: ldfld UnityEngine.Vector3 PropInfo::m_lodMax
IL_04BD: ldarg.3
IL_04BE: call static UnityEngine.Vector3
UnityEngine.Vector3::Max(UnityEngine.Vector3 lhs, UnityEngine.Vector3 rhs)
IL_04C3: stfld UnityEngine.Vector3 PropInfo::m_lodMax
IL_04C8: ldarg.1
IL_04C9: dup
IL_04CA: ldfld System.Int32 PropInfo::m_lodCount
IL_04CF: ldc.i4.1
IL_04D0: add
IL_04D1: dup
IL_04D2: stloc.s 16 (System.Int32)
IL_04D4: stfld System.Int32 PropInfo::m_lodCount
IL_04D9: ldloc.s 16 (System.Int32)
IL_04DB: ldarg.1
IL_04DC: ldfld UnityEngine.Vector4[] PropInfo::m_lodLocations
IL_04E1: ldlen
IL_04E2: conv.i4
IL_04E3: bne.un => Label23
IL_04E8: ldarg.0
IL_04E9: ldarg.1
IL_04EA: call static System.Void PropInstance::RenderLod(CameraInfo
cameraInfo, PropInfo info)
IL_04EF: // end original
IL_04EF: Label0
IL_04EF: Label6
IL_04EF: Label7
IL_04EF: Label19
IL_04EF: Label23
IL_04EF: ret
DONE

### Patch: static System.Void PropInstance::RenderInstance(CameraInfo cameraInfo,


PropInfo info, InstanceID id, UnityEngine.Vector3 position, System.Single scale,
System.Single angle, UnityEngine.Color color, UnityEngine.Vector4 objectIndex,
System.Boolean active)
### Replacement: static System.Void
PropInstance::PropInstance.RenderInstance_Patch0(CameraInfo cameraInfo, PropInfo
info, InstanceID id, UnityEngine.Vector3 position, System.Single scale,
System.Single angle, UnityEngine.Color color, UnityEngine.Vector4 objectIndex,
System.Boolean active)
IL_0000: Local var 0: UnityEngine.Matrix4x4
IL_0000: Local var 1: System.Single
IL_0000: Local var 2: System.Int32
IL_0000: Local var 3: UnityEngine.Vector3
IL_0000: Local var 4: UnityEngine.Vector3
IL_0000: Local var 5: EffectInfo/SpawnArea
IL_0000: Local var 6: System.Single
IL_0000: Local var 7: LightSystem
IL_0000: Local var 8: ColossalFramework.Math.Randomizer
IL_0000: Local var 9: UnityEngine.Vector4
IL_0000: Local var 10: System.Single
IL_0000: Local var 11: System.Single
IL_0000: Local var 12: System.Single
IL_0000: Local var 13: UnityEngine.Matrix4x4
IL_0000: Local var 14: PropManager
IL_0000: Local var 15: UnityEngine.MaterialPropertyBlock
IL_0000: Local var 16: UnityEngine.Matrix4x4
IL_0000: Local var 17: PropManager
IL_0000: Local var 18: UnityEngine.MaterialPropertyBlock
IL_0000: Local var 19: System.Int32
IL_0000: // start original
IL_0000: ldarg.1
IL_0001: ldfld System.Boolean PrefabInfo::m_prefabInitialized
IL_0006: brfalse => Label0
IL_000B: ldarg.1
IL_000C: ldfld System.Boolean PropInfo::m_hasEffects
IL_0011: brfalse => Label1
IL_0016: ldarg.s 8
IL_0018: brtrue => Label2
IL_001D: ldarg.1
IL_001E: ldfld System.Boolean PropInfo::m_alwaysActive
IL_0023: brfalse => Label3
IL_0028: Label2
IL_0028: ldloca.s 0 (UnityEngine.Matrix4x4)
IL_002A: initobj UnityEngine.Matrix4x4
IL_0030: ldloca.s 0 (UnityEngine.Matrix4x4)
IL_0032: ldarg.3
IL_0033: ldarg.s 5
IL_0035: ldc.r4 57.29578
IL_003A: mul
IL_003B: call static UnityEngine.Vector3 UnityEngine.Vector3::get_down()
IL_0040: call static UnityEngine.Quaternion
UnityEngine.Quaternion::AngleAxis(System.Single angle, UnityEngine.Vector3 axis)
IL_0045: ldarg.s 4
IL_0047: ldarg.s 4
IL_0049: ldarg.s 4
IL_004B: newobj System.Void UnityEngine.Vector3::.ctor(System.Single x,
System.Single y, System.Single z)
IL_0050: call System.Void UnityEngine.Matrix4x4::SetTRS(UnityEngine.Vector3
pos, UnityEngine.Quaternion q, UnityEngine.Vector3 s)
IL_0055: call static SimulationManager
ColossalFramework.Singleton`1<SimulationManager>::get_instance()
IL_005A: ldfld System.Single SimulationManager::m_simulationTimeDelta
IL_005F: stloc.1
IL_0060: ldc.i4.0
IL_0061: stloc.2
IL_0062: br => Label4
IL_0067: Label5
IL_0067: ldloca.s 0 (UnityEngine.Matrix4x4)
IL_0069: ldarg.1
IL_006A: ldfld Effect[] PropInfo::m_effects
IL_006F: ldloc.2
IL_0070: ldelema PropInfo+Effect
IL_0075: ldfld UnityEngine.Vector3 Effect::m_position
IL_007A: call UnityEngine.Vector3
UnityEngine.Matrix4x4::MultiplyPoint(UnityEngine.Vector3 v)
IL_007F: stloc.3
IL_0080: ldloca.s 0 (UnityEngine.Matrix4x4)
IL_0082: ldarg.1
IL_0083: ldfld Effect[] PropInfo::m_effects
IL_0088: ldloc.2
IL_0089: ldelema PropInfo+Effect
IL_008E: ldfld UnityEngine.Vector3 Effect::m_direction
IL_0093: call UnityEngine.Vector3
UnityEngine.Matrix4x4::MultiplyVector(UnityEngine.Vector3 v)
IL_0098: stloc.s 4 (UnityEngine.Vector3)
IL_009A: ldloca.s 5 (EffectInfo+SpawnArea)
IL_009C: ldloc.3
IL_009D: ldloc.s 4 (UnityEngine.Vector3)
IL_009F: ldc.r4 0
IL_00A4: call System.Void SpawnArea::.ctor(UnityEngine.Vector3 position,
UnityEngine.Vector3 direction, System.Single radius)
IL_00A9: ldarg.1
IL_00AA: ldfld Effect[] PropInfo::m_effects
IL_00AF: ldloc.2
IL_00B0: ldelema PropInfo+Effect
IL_00B5: ldfld EffectInfo Effect::m_effect
IL_00BA: ldarg.2
IL_00BB: ldloc.s 5 (EffectInfo+SpawnArea)
IL_00BD: call static UnityEngine.Vector3 UnityEngine.Vector3::get_zero()
IL_00C2: ldc.r4 0
IL_00C7: ldc.r4 1
IL_00CC: ldc.r4 -1
IL_00D1: ldloc.1
IL_00D2: ldarg.0
IL_00D3: callvirt virtual System.Void EffectInfo::RenderEffect(InstanceID id,
SpawnArea area, UnityEngine.Vector3 velocity, System.Single acceleration,
System.Single magnitude, System.Single timeOffset, System.Single timeDelta,
CameraInfo cameraInfo)
IL_00D8: ldloc.2
IL_00D9: ldc.i4.1
IL_00DA: add
IL_00DB: stloc.2
IL_00DC: Label4
IL_00DC: ldloc.2
IL_00DD: ldarg.1
IL_00DE: ldfld Effect[] PropInfo::m_effects
IL_00E3: ldlen
IL_00E4: conv.i4
IL_00E5: blt => Label5
IL_00EA: Label1
IL_00EA: Label3
IL_00EA: ldarg.1
IL_00EB: ldfld System.Boolean PropInfo::m_hasRenderer
IL_00F0: brfalse => Label6
IL_00F5: ldarg.0
IL_00F6: ldfld System.Int32 CameraInfo::m_layerMask
IL_00FB: ldc.i4.1
IL_00FC: ldarg.1
IL_00FD: ldfld System.Int32 PrefabInfo::m_prefabDataLayer
IL_0102: ldc.i4.s 31
IL_0104: and
IL_0105: shl
IL_0106: and
IL_0107: brfalse => Label7
IL_010C: call static InfoManager
ColossalFramework.Singleton`1<InfoManager>::get_instance()
IL_0111: callvirt InfoMode InfoManager::get_CurrentMode()
IL_0116: brtrue => Label8
IL_011B: ldc.r4 0
IL_0120: stloc.s 6 (System.Single)
IL_0122: ldarg.s 8
IL_0124: brtrue => Label9
IL_0129: ldarg.1
IL_012A: ldfld System.Boolean PropInfo::m_alwaysActive
IL_012F: brtrue => Label10
IL_0134: ldarga.s 7
IL_0136: ldc.r4 0
IL_013B: stfld System.Single UnityEngine.Vector4::z
IL_0140: br => Label11
IL_0145: Label9
IL_0145: Label10
IL_0145: ldarg.1
IL_0146: ldflda UnityEngine.Vector2 PropInfo::m_illuminationOffRange
IL_014B: ldfld System.Single UnityEngine.Vector2::x
IL_0150: ldc.r4 1000
IL_0155: blt => Label12
IL_015A: ldarg.1
IL_015B: ldfld BlinkType PropInfo::m_illuminationBlinkType
IL_0160: brfalse => Label13
IL_0165: Label12
IL_0165: call static RenderManager
ColossalFramework.Singleton`1<RenderManager>::get_instance()
IL_016A: callvirt LightSystem RenderManager::get_lightSystem()
IL_016F: stloc.s 7 (LightSystem)
IL_0171: ldloca.s 8 (ColossalFramework.Math.Randomizer)
IL_0173: ldarga.s 2
IL_0175: call System.UInt32 InstanceID::get_Index()
IL_017A: call System.Void
ColossalFramework.Math.Randomizer::.ctor(System.UInt32 _seed)
IL_017F: ldarg.1
IL_0180: ldflda UnityEngine.Vector2 PropInfo::m_illuminationOffRange
IL_0185: ldfld System.Single UnityEngine.Vector2::x
IL_018A: ldloca.s 8 (ColossalFramework.Math.Randomizer)
IL_018C: ldc.i4 100000
IL_0191: call System.Int32
ColossalFramework.Math.Randomizer::Int32(System.UInt32 range)
IL_0196: conv.r4
IL_0197: ldc.r4 1E-05
IL_019C: mul
IL_019D: ldarg.1
IL_019E: ldflda UnityEngine.Vector2 PropInfo::m_illuminationOffRange
IL_01A3: ldfld System.Single UnityEngine.Vector2::y
IL_01A8: ldarg.1
IL_01A9: ldflda UnityEngine.Vector2 PropInfo::m_illuminationOffRange
IL_01AE: ldfld System.Single UnityEngine.Vector2::x
IL_01B3: sub
IL_01B4: mul
IL_01B5: add
IL_01B6: stloc.s 6 (System.Single)
IL_01B8: ldarga.s 7
IL_01BA: ldloc.s 6 (System.Single)
IL_01BC: ldc.r4 0.01
IL_01C1: add
IL_01C2: ldloc.s 6 (System.Single)
IL_01C4: ldc.r4 0.01
IL_01C9: sub
IL_01CA: ldloc.s 7 (LightSystem)
IL_01CC: callvirt System.Single LightSystem::get_DayLightIntensity()
IL_01D1: call static System.Single MathUtils::SmoothStep(System.Single edge0,
System.Single edge1, System.Single x)
IL_01D6: stfld System.Single UnityEngine.Vector4::z
IL_01DB: ldarg.1
IL_01DC: ldfld BlinkType PropInfo::m_illuminationBlinkType
IL_01E1: brfalse => Label14
IL_01E6: ldarg.1
IL_01E7: ldfld BlinkType PropInfo::m_illuminationBlinkType
IL_01EC: call static UnityEngine.Vector4
LightEffect::GetBlinkVector(BlinkType type)
IL_01F1: stloc.s 9 (UnityEngine.Vector4)
IL_01F3: ldloc.s 6 (System.Single)
IL_01F5: ldc.r4 3.71
IL_01FA: mul
IL_01FB: call static SimulationManager
ColossalFramework.Singleton`1<SimulationManager>::get_instance()
IL_0200: ldfld System.Single SimulationManager::m_simulationTimer
IL_0205: ldloca.s 9 (UnityEngine.Vector4)
IL_0207: ldfld System.Single UnityEngine.Vector4::w
IL_020C: div
IL_020D: add
IL_020E: stloc.s 10 (System.Single)
IL_0210: ldloc.s 10 (System.Single)
IL_0212: ldloc.s 10 (System.Single)
IL_0214: call static System.Single UnityEngine.Mathf::Floor(System.Single f)
IL_0219: sub
IL_021A: ldloca.s 9 (UnityEngine.Vector4)
IL_021C: ldfld System.Single UnityEngine.Vector4::w
IL_0221: mul
IL_0222: stloc.s 10 (System.Single)
IL_0224: ldloca.s 9 (UnityEngine.Vector4)
IL_0226: ldfld System.Single UnityEngine.Vector4::x
IL_022B: ldloca.s 9 (UnityEngine.Vector4)
IL_022D: ldfld System.Single UnityEngine.Vector4::y
IL_0232: ldloc.s 10 (System.Single)
IL_0234: call static System.Single MathUtils::SmoothStep(System.Single edge0,
System.Single edge1, System.Single x)
IL_0239: stloc.s 11 (System.Single)
IL_023B: ldloca.s 9 (UnityEngine.Vector4)
IL_023D: ldfld System.Single UnityEngine.Vector4::w
IL_0242: ldloca.s 9 (UnityEngine.Vector4)
IL_0244: ldfld System.Single UnityEngine.Vector4::z
IL_0249: ldloc.s 10 (System.Single)
IL_024B: call static System.Single MathUtils::SmoothStep(System.Single edge0,
System.Single edge1, System.Single x)
IL_0250: stloc.s 12 (System.Single)
IL_0252: ldarga.s 7
IL_0254: dup
IL_0255: ldfld System.Single UnityEngine.Vector4::z
IL_025A: ldc.r4 1
IL_025F: ldloc.s 11 (System.Single)
IL_0261: ldloc.s 12 (System.Single)
IL_0263: mul
IL_0264: sub
IL_0265: mul
IL_0266: stfld System.Single UnityEngine.Vector4::z
IL_026B: Label14
IL_026B: br => Label15
IL_0270: Label13
IL_0270: ldarga.s 7
IL_0272: ldc.r4 1
IL_0277: stfld System.Single UnityEngine.Vector4::z
IL_027C: Label8
IL_027C: Label11
IL_027C: Label15
IL_027C: ldarg.0
IL_027D: brfalse => Label16
IL_0282: ldarg.0
IL_0283: ldarg.3
IL_0284: ldarg.1
IL_0285: ldfld System.Single PropInfo::m_lodRenderDistance
IL_028A: callvirt System.Boolean
CameraInfo::CheckRenderDistance(UnityEngine.Vector3 point, System.Single
maxDistance)
IL_028F: brfalse => Label17
IL_0294: Label16
IL_0294: ldloca.s 13 (UnityEngine.Matrix4x4)
IL_0296: initobj UnityEngine.Matrix4x4
IL_029C: ldloca.s 13 (UnityEngine.Matrix4x4)
IL_029E: ldarg.3
IL_029F: ldarg.s 5
IL_02A1: ldc.r4 57.29578
IL_02A6: mul
IL_02A7: call static UnityEngine.Vector3 UnityEngine.Vector3::get_down()
IL_02AC: call static UnityEngine.Quaternion
UnityEngine.Quaternion::AngleAxis(System.Single angle, UnityEngine.Vector3 axis)
IL_02B1: ldarg.s 4
IL_02B3: ldarg.s 4
IL_02B5: ldarg.s 4
IL_02B7: newobj System.Void UnityEngine.Vector3::.ctor(System.Single x,
System.Single y, System.Single z)
IL_02BC: call System.Void UnityEngine.Matrix4x4::SetTRS(UnityEngine.Vector3
pos, UnityEngine.Quaternion q, UnityEngine.Vector3 s)
IL_02C1: call static PropManager
ColossalFramework.Singleton`1<PropManager>::get_instance()
IL_02C6: stloc.s 14 (PropManager)
IL_02C8: ldloc.s 14 (PropManager)
IL_02CA: ldfld UnityEngine.MaterialPropertyBlock PropManager::m_materialBlock
IL_02CF: stloc.s 15 (UnityEngine.MaterialPropertyBlock)
IL_02D1: ldloc.s 15 (UnityEngine.MaterialPropertyBlock)
IL_02D3: callvirt System.Void UnityEngine.MaterialPropertyBlock::Clear()
IL_02D8: ldloc.s 15 (UnityEngine.MaterialPropertyBlock)
IL_02DA: ldloc.s 14 (PropManager)
IL_02DC: ldfld System.Int32 PropManager::ID_Color
IL_02E1: ldarg.s 6
IL_02E3: callvirt System.Void
UnityEngine.MaterialPropertyBlock::SetColor(System.Int32 nameID, UnityEngine.Color
value)
IL_02E8: ldloc.s 15 (UnityEngine.MaterialPropertyBlock)
IL_02EA: ldloc.s 14 (PropManager)
IL_02EC: ldfld System.Int32 PropManager::ID_ObjectIndex
IL_02F1: ldarg.s 7
IL_02F3: callvirt System.Void
UnityEngine.MaterialPropertyBlock::SetVector(System.Int32 nameID,
UnityEngine.Vector4 value)
IL_02F8: ldarg.1
IL_02F9: ldfld UnityEngine.Vector4[] PropInfo::m_rollLocation
IL_02FE: brfalse => Label18
IL_0303: ldarg.1
IL_0304: ldfld UnityEngine.Material PropInfo::m_material
IL_0309: ldloc.s 14 (PropManager)
IL_030B: ldfld System.Int32 PropManager::ID_RollLocation
IL_0310: ldarg.1
IL_0311: ldfld UnityEngine.Vector4[] PropInfo::m_rollLocation
IL_0316: callvirt System.Void UnityEngine.Material::SetVectorArray(System.Int32
nameID, UnityEngine.Vector4[] values)
IL_031B: ldarg.1
IL_031C: ldfld UnityEngine.Material PropInfo::m_material
IL_0321: ldloc.s 14 (PropManager)
IL_0323: ldfld System.Int32 PropManager::ID_RollParams
IL_0328: ldarg.1
IL_0329: ldfld UnityEngine.Vector4[] PropInfo::m_rollParams
IL_032E: callvirt System.Void UnityEngine.Material::SetVectorArray(System.Int32
nameID, UnityEngine.Vector4[] values)
IL_0333: Label18
IL_0333: ldloc.s 14 (PropManager)
IL_0335: ldflda DrawCallData SimulationManagerBase`2<PropManager,
PropProperties>::m_drawCallData
IL_033A: dup
IL_033B: ldfld System.Int32 DrawCallData::m_defaultCalls
IL_0340: ldc.i4.1
IL_0341: add
IL_0342: stfld System.Int32 DrawCallData::m_defaultCalls
IL_0347: ldarg.1
IL_0348: ldfld UnityEngine.Mesh PropInfo::m_mesh
IL_034D: ldloc.s 13 (UnityEngine.Matrix4x4)
IL_034F: ldarg.1
IL_0350: ldfld UnityEngine.Material PropInfo::m_material
IL_0355: ldarg.1
IL_0356: ldfld System.Int32 PrefabInfo::m_prefabDataLayer
IL_035B: ldnull
IL_035C: ldc.i4.0
IL_035D: ldloc.s 15 (UnityEngine.MaterialPropertyBlock)
IL_035F: call static System.Void
UnityEngine.Graphics::DrawMesh(UnityEngine.Mesh mesh, UnityEngine.Matrix4x4 matrix,
UnityEngine.Material material, System.Int32 layer, UnityEngine.Camera camera,
System.Int32 submeshIndex, UnityEngine.MaterialPropertyBlock properties)
IL_0364: br => Label19
IL_0369: Label17
IL_0369: ldarg.1
IL_036A: ldfld UnityEngine.Material PropInfo::m_lodMaterialCombined
IL_036F: ldnull
IL_0370: call static System.Boolean
UnityEngine.Object::op_Equality(UnityEngine.Object x, UnityEngine.Object y)
IL_0375: brfalse => Label20
IL_037A: ldloca.s 16 (UnityEngine.Matrix4x4)
IL_037C: initobj UnityEngine.Matrix4x4
IL_0382: ldloca.s 16 (UnityEngine.Matrix4x4)
IL_0384: ldarg.3
IL_0385: ldarg.s 5
IL_0387: ldc.r4 57.29578
IL_038C: mul
IL_038D: call static UnityEngine.Vector3 UnityEngine.Vector3::get_down()
IL_0392: call static UnityEngine.Quaternion
UnityEngine.Quaternion::AngleAxis(System.Single angle, UnityEngine.Vector3 axis)
IL_0397: ldarg.s 4
IL_0399: ldarg.s 4
IL_039B: ldarg.s 4
IL_039D: newobj System.Void UnityEngine.Vector3::.ctor(System.Single x,
System.Single y, System.Single z)
IL_03A2: call System.Void UnityEngine.Matrix4x4::SetTRS(UnityEngine.Vector3
pos, UnityEngine.Quaternion q, UnityEngine.Vector3 s)
IL_03A7: call static PropManager
ColossalFramework.Singleton`1<PropManager>::get_instance()
IL_03AC: stloc.s 17 (PropManager)
IL_03AE: ldloc.s 17 (PropManager)
IL_03B0: ldfld UnityEngine.MaterialPropertyBlock PropManager::m_materialBlock
IL_03B5: stloc.s 18 (UnityEngine.MaterialPropertyBlock)
IL_03B7: ldloc.s 18 (UnityEngine.MaterialPropertyBlock)
IL_03B9: callvirt System.Void UnityEngine.MaterialPropertyBlock::Clear()
IL_03BE: ldloc.s 18 (UnityEngine.MaterialPropertyBlock)
IL_03C0: ldloc.s 17 (PropManager)
IL_03C2: ldfld System.Int32 PropManager::ID_Color
IL_03C7: ldarg.s 6
IL_03C9: callvirt System.Void
UnityEngine.MaterialPropertyBlock::SetColor(System.Int32 nameID, UnityEngine.Color
value)
IL_03CE: ldloc.s 18 (UnityEngine.MaterialPropertyBlock)
IL_03D0: ldloc.s 17 (PropManager)
IL_03D2: ldfld System.Int32 PropManager::ID_ObjectIndex
IL_03D7: ldarg.s 7
IL_03D9: callvirt System.Void
UnityEngine.MaterialPropertyBlock::SetVector(System.Int32 nameID,
UnityEngine.Vector4 value)
IL_03DE: ldarg.1
IL_03DF: ldfld UnityEngine.Vector4[] PropInfo::m_rollLocation
IL_03E4: brfalse => Label21
IL_03E9: ldarg.1
IL_03EA: ldfld UnityEngine.Material PropInfo::m_material
IL_03EF: ldloc.s 17 (PropManager)
IL_03F1: ldfld System.Int32 PropManager::ID_RollLocation
IL_03F6: ldarg.1
IL_03F7: ldfld UnityEngine.Vector4[] PropInfo::m_rollLocation
IL_03FC: callvirt System.Void UnityEngine.Material::SetVectorArray(System.Int32
nameID, UnityEngine.Vector4[] values)
IL_0401: ldarg.1
IL_0402: ldfld UnityEngine.Material PropInfo::m_material
IL_0407: ldloc.s 17 (PropManager)
IL_0409: ldfld System.Int32 PropManager::ID_RollParams
IL_040E: ldarg.1
IL_040F: ldfld UnityEngine.Vector4[] PropInfo::m_rollParams
IL_0414: callvirt System.Void UnityEngine.Material::SetVectorArray(System.Int32
nameID, UnityEngine.Vector4[] values)
IL_0419: Label21
IL_0419: ldloc.s 17 (PropManager)
IL_041B: ldflda DrawCallData SimulationManagerBase`2<PropManager,
PropProperties>::m_drawCallData
IL_0420: dup
IL_0421: ldfld System.Int32 DrawCallData::m_defaultCalls
IL_0426: ldc.i4.1
IL_0427: add
IL_0428: stfld System.Int32 DrawCallData::m_defaultCalls
IL_042D: ldarg.1
IL_042E: ldfld UnityEngine.Mesh PropInfo::m_lodMesh
IL_0433: ldloc.s 16 (UnityEngine.Matrix4x4)
IL_0435: ldarg.1
IL_0436: ldfld UnityEngine.Material PropInfo::m_lodMaterial
IL_043B: ldarg.1
IL_043C: ldfld System.Int32 PrefabInfo::m_prefabDataLayer
IL_0441: ldnull
IL_0442: ldc.i4.0
IL_0443: ldloc.s 18 (UnityEngine.MaterialPropertyBlock)
IL_0445: call static System.Void
UnityEngine.Graphics::DrawMesh(UnityEngine.Mesh mesh, UnityEngine.Matrix4x4 matrix,
UnityEngine.Material material, System.Int32 layer, UnityEngine.Camera camera,
System.Int32 submeshIndex, UnityEngine.MaterialPropertyBlock properties)
IL_044A: br => Label22
IL_044F: Label20
IL_044F: ldarga.s 7
IL_0451: ldarg.s 4
IL_0453: stfld System.Single UnityEngine.Vector4::w
IL_0458: ldarg.1
IL_0459: ldfld UnityEngine.Vector4[] PropInfo::m_lodLocations
IL_045E: ldarg.1
IL_045F: ldfld System.Int32 PropInfo::m_lodCount
IL_0464: ldelema UnityEngine.Vector4
IL_0469: ldarga.s 3
IL_046B: ldfld System.Single UnityEngine.Vector3::x
IL_0470: ldarga.s 3
IL_0472: ldfld System.Single UnityEngine.Vector3::y
IL_0477: ldarga.s 3
IL_0479: ldfld System.Single UnityEngine.Vector3::z
IL_047E: ldarg.s 5
IL_0480: newobj System.Void UnityEngine.Vector4::.ctor(System.Single x,
System.Single y, System.Single z, System.Single w)
IL_0485: stobj UnityEngine.Vector4
IL_048A: ldarg.1
IL_048B: ldfld UnityEngine.Vector4[] PropInfo::m_lodObjectIndices
IL_0490: ldarg.1
IL_0491: ldfld System.Int32 PropInfo::m_lodCount
IL_0496: ldelema UnityEngine.Vector4
IL_049B: ldarg.s 7
IL_049D: stobj UnityEngine.Vector4
IL_04A2: ldarg.1
IL_04A3: ldfld UnityEngine.Vector4[] PropInfo::m_lodColors
IL_04A8: ldarg.1
IL_04A9: ldfld System.Int32 PropInfo::m_lodCount
IL_04AE: ldelema UnityEngine.Vector4
IL_04B3: ldarga.s 6
IL_04B5: call UnityEngine.Color UnityEngine.Color::get_linear()
IL_04BA: call static UnityEngine.Vector4
UnityEngine.Color::op_Implicit(UnityEngine.Color c)
IL_04BF: stobj UnityEngine.Vector4
IL_04C4: ldarg.1
IL_04C5: ldarg.1
IL_04C6: ldfld UnityEngine.Vector3 PropInfo::m_lodMin
IL_04CB: ldarg.3
IL_04CC: call static UnityEngine.Vector3
UnityEngine.Vector3::Min(UnityEngine.Vector3 lhs, UnityEngine.Vector3 rhs)
IL_04D1: stfld UnityEngine.Vector3 PropInfo::m_lodMin
IL_04D6: ldarg.1
IL_04D7: ldarg.1
IL_04D8: ldfld UnityEngine.Vector3 PropInfo::m_lodMax
IL_04DD: ldarg.3
IL_04DE: call static UnityEngine.Vector3
UnityEngine.Vector3::Max(UnityEngine.Vector3 lhs, UnityEngine.Vector3 rhs)
IL_04E3: stfld UnityEngine.Vector3 PropInfo::m_lodMax
IL_04E8: ldarg.1
IL_04E9: dup
IL_04EA: ldfld System.Int32 PropInfo::m_lodCount
IL_04EF: ldc.i4.1
IL_04F0: add
IL_04F1: dup
IL_04F2: stloc.s 19 (System.Int32)
IL_04F4: stfld System.Int32 PropInfo::m_lodCount
IL_04F9: ldloc.s 19 (System.Int32)
IL_04FB: ldarg.1
IL_04FC: ldfld UnityEngine.Vector4[] PropInfo::m_lodLocations
IL_0501: ldlen
IL_0502: conv.i4
IL_0503: bne.un => Label23
IL_0508: ldarg.0
IL_0509: ldarg.1
IL_050A: call static System.Void PropInstance::RenderLod(CameraInfo
cameraInfo, PropInfo info)
IL_050F: // end original
IL_050F: Label0
IL_050F: Label6
IL_050F: Label7
IL_050F: Label19
IL_050F: Label22
IL_050F: Label23
IL_050F: ret
DONE

### Patch: virtual System.Void LightEffect::PopulateGroupData(System.Int32 layer,


InstanceID id, UnityEngine.Vector3 pos, UnityEngine.Vector3 dir, 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
LightEffect::LightEffect.PopulateGroupData_Patch0(LightEffect this, System.Int32
layer, InstanceID id, UnityEngine.Vector3 pos, UnityEngine.Vector3 dir,
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.Boolean
IL_0000: Local var 1: UnityEngine.Vector3
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.Quaternion
IL_0000: Local var 7: UnityEngine.Vector4
IL_0000: Local var 8: UnityEngine.Vector2
IL_0000: Local var 9: ColossalFramework.Math.Randomizer
IL_0000: Local var 10: UnityEngine.Vector2
IL_0000: Local var 11: UnityEngine.Vector2
IL_0000: Local var 12: UnityEngine.Vector2
IL_0000: Local var 13: System.UInt16
IL_0000: Local var 14: UnityEngine.Vector3
IL_0000: Local var 15: UnityEngine.Color
IL_0000: Local var 16: UnityEngine.Color
IL_0000: Local var 17: System.Single
IL_0000: Local var 18: System.Single
IL_0000: Local var 19: System.Int32
IL_0000: // start original
IL_0000: ldarg.1
IL_0001: ldarg.0
IL_0002: ldfld System.Int32 LightEffect::m_groupLayer
IL_0007: beq => Label0
IL_000C: ldarg.1
IL_000D: ldarg.0
IL_000E: ldfld System.Int32 LightEffect::m_groupLayerFloating
IL_0013: bne.un => Label1
IL_0018: Label0
IL_0018: ldarg.1
IL_0019: ldarg.0
IL_001A: ldfld System.Int32 LightEffect::m_groupLayerFloating
IL_001F: ceq
IL_0021: stloc.0
IL_0022: ldloca.s 1 (UnityEngine.Vector3)
IL_0024: ldarg.0
IL_0025: ldfld System.Single LightEffect::m_lightRange
IL_002A: ldarg.0
IL_002B: ldfld System.Single LightEffect::m_lightRange
IL_0030: ldarg.0
IL_0031: ldfld System.Single LightEffect::m_lightRange
IL_0036: call System.Void UnityEngine.Vector3::.ctor(System.Single x,
System.Single y, System.Single z)
IL_003B: ldarg.3
IL_003C: ldloc.1
IL_003D: call static UnityEngine.Vector3
UnityEngine.Vector3::op_Subtraction(UnityEngine.Vector3 a, UnityEngine.Vector3 b)
IL_0042: stloc.2
IL_0043: ldarg.3
IL_0044: ldloc.1
IL_0045: call static UnityEngine.Vector3
UnityEngine.Vector3::op_Addition(UnityEngine.Vector3 a, UnityEngine.Vector3 b)
IL_004A: stloc.3
IL_004B: ldarg.s 9
IL_004D: ldarg.s 9
IL_004F: ldobj UnityEngine.Vector3
IL_0054: ldloc.2
IL_0055: call static UnityEngine.Vector3
UnityEngine.Vector3::Min(UnityEngine.Vector3 lhs, UnityEngine.Vector3 rhs)
IL_005A: stobj UnityEngine.Vector3
IL_005F: ldarg.s 10
IL_0061: ldarg.s 10
IL_0063: ldobj UnityEngine.Vector3
IL_0068: ldloc.3
IL_0069: call static UnityEngine.Vector3
UnityEngine.Vector3::Max(UnityEngine.Vector3 lhs, UnityEngine.Vector3 rhs)
IL_006E: stobj UnityEngine.Vector3
IL_0073: ldarg.3
IL_0074: ldarg.s 7
IL_0076: call static UnityEngine.Vector3
UnityEngine.Vector3::op_Subtraction(UnityEngine.Vector3 a, UnityEngine.Vector3 b)
IL_007B: stloc.s 4 (UnityEngine.Vector3)
IL_007D: ldarg.s 11
IL_007F: ldarg.s 11
IL_0081: ldind.r4
IL_0082: ldc.r4 30000
IL_0087: call static System.Single UnityEngine.Mathf::Max(System.Single a,
System.Single b)
IL_008C: stind.r4
IL_008D: ldarg.0
IL_008E: ldfld UnityEngine.LightType LightEffect::m_lightType
IL_0093: brtrue => Label2
IL_0098: ldarg.s 4
IL_009A: call static UnityEngine.Quaternion
UnityEngine.Quaternion::LookRotation(UnityEngine.Vector3 forward)
IL_009F: stloc.s 6 (UnityEngine.Quaternion)
IL_00A1: ldloc.s 6 (UnityEngine.Quaternion)
IL_00A3: ldarg.0
IL_00A4: ldfld UnityEngine.Quaternion LightEffect::m_lightRotation
IL_00A9: call static UnityEngine.Vector3 UnityEngine.Vector3::get_forward()
IL_00AE: call static UnityEngine.Vector3
UnityEngine.Quaternion::op_Multiply(UnityEngine.Quaternion rotation,
UnityEngine.Vector3 point)
IL_00B3: call static UnityEngine.Vector3
UnityEngine.Quaternion::op_Multiply(UnityEngine.Quaternion rotation,
UnityEngine.Vector3 point)
IL_00B8: stloc.s 5 (UnityEngine.Vector3)
IL_00BA: br => Label3
IL_00BF: Label2
IL_00BF: call static UnityEngine.Vector3 UnityEngine.Vector3::get_forward()
IL_00C4: stloc.s 5 (UnityEngine.Vector3)
IL_00C6: Label3
IL_00C6: ldloca.s 7 (UnityEngine.Vector4)
IL_00C8: ldloca.s 5 (UnityEngine.Vector3)
IL_00CA: ldfld System.Single UnityEngine.Vector3::x
IL_00CF: ldloca.s 5 (UnityEngine.Vector3)
IL_00D1: ldfld System.Single UnityEngine.Vector3::y
IL_00D6: ldloca.s 5 (UnityEngine.Vector3)
IL_00D8: ldfld System.Single UnityEngine.Vector3::z
IL_00DD: ldc.r4 100000
IL_00E2: call System.Void UnityEngine.Vector4::.ctor(System.Single x,
System.Single y, System.Single z, System.Single w)
IL_00E7: ldarg.0
IL_00E8: ldfld UnityEngine.LightType LightEffect::m_lightType
IL_00ED: brtrue => Label4
IL_00F2: ldloca.s 7 (UnityEngine.Vector4)
IL_00F4: ldc.r4 0.01745329
IL_00F9: ldarg.0
IL_00FA: ldfld System.Single LightEffect::m_lightSpotAngle
IL_00FF: mul
IL_0100: ldc.r4 0.5
IL_0105: mul
IL_0106: call static System.Single UnityEngine.Mathf::Cos(System.Single f)
IL_010B: neg
IL_010C: stfld System.Single UnityEngine.Vector4::w
IL_0111: Label4
IL_0111: ldloca.s 8 (UnityEngine.Vector2)
IL_0113: ldc.r4 1
IL_0118: ldarg.0
IL_0119: ldfld System.Single LightEffect::m_lightRange
IL_011E: ldarg.0
IL_011F: ldfld System.Single LightEffect::m_lightRange
IL_0124: mul
IL_0125: div
IL_0126: ldarg.0
IL_0127: ldfld System.Single LightEffect::m_lightIntensity
IL_012C: call System.Void UnityEngine.Vector2::.ctor(System.Single x,
System.Single y)
IL_0131: ldloca.s 9 (ColossalFramework.Math.Randomizer)
IL_0133: ldarga.s 2
IL_0135: call System.UInt32 InstanceID::get_Index()
IL_013A: call System.Void
ColossalFramework.Math.Randomizer::.ctor(System.UInt32 _seed)
IL_013F: ldloca.s 10 (UnityEngine.Vector2)
IL_0141: ldarg.0
IL_0142: ldflda UnityEngine.Vector2 LightEffect::m_offRange
IL_0147: ldfld System.Single UnityEngine.Vector2::x
IL_014C: ldloca.s 9 (ColossalFramework.Math.Randomizer)
IL_014E: ldc.i4 100000
IL_0153: call System.Int32
ColossalFramework.Math.Randomizer::Int32(System.UInt32 range)
IL_0158: conv.r4
IL_0159: ldc.r4 1E-05
IL_015E: mul
IL_015F: ldarg.0
IL_0160: ldflda UnityEngine.Vector2 LightEffect::m_offRange
IL_0165: ldfld System.Single UnityEngine.Vector2::y
IL_016A: ldarg.0
IL_016B: ldflda UnityEngine.Vector2 LightEffect::m_offRange
IL_0170: ldfld System.Single UnityEngine.Vector2::x
IL_0175: sub
IL_0176: mul
IL_0177: add
IL_0178: stfld System.Single UnityEngine.Vector2::x
IL_017D: ldloca.s 10 (UnityEngine.Vector2)
IL_017F: ldarg.0
IL_0180: ldfld BlinkType LightEffect::m_blinkType
IL_0185: conv.r4
IL_0186: stfld System.Single UnityEngine.Vector2::y
IL_018B: ldarg.2
IL_018C: call static System.UInt16 EffectInfo::GetBuilding(InstanceID id)
IL_0191: stloc.s 13 (System.UInt16)
IL_0193: ldloc.s 13 (System.UInt16)
IL_0195: brfalse => Label5
IL_019A: ldloc.s 13 (System.UInt16)
IL_019C: call static UnityEngine.Vector4
RenderManager::GetColorLocation(System.UInt32 instanceHolder)
IL_01A1: call static UnityEngine.Vector2
UnityEngine.Vector4::op_Implicit(UnityEngine.Vector4 v)
IL_01A6: stloc.s 11 (UnityEngine.Vector2)
IL_01A8: ldloc.0
IL_01A9: brfalse => Label6
IL_01AE: call static BuildingManager
ColossalFramework.Singleton`1<BuildingManager>::get_instance()
IL_01B3: ldfld Array16`1<Building> BuildingManager::m_buildings
IL_01B8: ldfld Building[] Array16`1<Building>::m_buffer
IL_01BD: ldloc.s 13 (System.UInt16)
IL_01BF: ldelema Building
IL_01C4: call UnityEngine.Vector3 Building::CalculateMeshPosition()
IL_01C9: stloc.s 14 (UnityEngine.Vector3)
IL_01CB: ldloc.s 14 (UnityEngine.Vector3)
IL_01CD: call static UnityEngine.Vector2
ColossalFramework.Math.VectorUtils::XZ(UnityEngine.Vector3 v)
IL_01D2: stloc.s 12 (UnityEngine.Vector2)
IL_01D4: ldarga.s 3
IL_01D6: dup
IL_01D7: ldfld System.Single UnityEngine.Vector3::y
IL_01DC: ldloca.s 14 (UnityEngine.Vector3)
IL_01DE: ldfld System.Single UnityEngine.Vector3::y
IL_01E3: sub
IL_01E4: stfld System.Single UnityEngine.Vector3::y
IL_01E9: ldloca.s 4 (UnityEngine.Vector3)
IL_01EB: dup
IL_01EC: ldfld System.Single UnityEngine.Vector3::y
IL_01F1: ldloca.s 14 (UnityEngine.Vector3)
IL_01F3: ldfld System.Single UnityEngine.Vector3::y
IL_01F8: sub
IL_01F9: stfld System.Single UnityEngine.Vector3::y
IL_01FE: br => Label7
IL_0203: Label6
IL_0203: call static UnityEngine.Vector2 UnityEngine.Vector2::get_zero()
IL_0208: stloc.s 12 (UnityEngine.Vector2)
IL_020A: Label7
IL_020A: br => Label8
IL_020F: Label5
IL_020F: ldsfld UnityEngine.Vector4 RenderManager::DefaultColorLocation
IL_0214: call static UnityEngine.Vector2
UnityEngine.Vector4::op_Implicit(UnityEngine.Vector4 v)
IL_0219: stloc.s 11 (UnityEngine.Vector2)
IL_021B: call static UnityEngine.Vector2 UnityEngine.Vector2::get_zero()
IL_0220: stloc.s 12 (UnityEngine.Vector2)
IL_0222: Label8
IL_0222: ldarg.0
IL_0223: ldfld UnityEngine.Color LightEffect::m_lightColor
IL_0228: stloc.s 15 (UnityEngine.Color)
IL_022A: ldarg.0
IL_022B: ldfld UnityEngine.Color[] LightEffect::m_variationColors
IL_0230: brfalse => Label9
IL_0235: ldarg.0
IL_0236: ldfld UnityEngine.Color[] LightEffect::m_variationColors
IL_023B: ldlen
IL_023C: conv.i4
IL_023D: brfalse => Label10
IL_0242: ldarg.0
IL_0243: ldfld UnityEngine.Color[] LightEffect::m_variationColors
IL_0248: ldloca.s 9 (ColossalFramework.Math.Randomizer)
IL_024A: ldarg.0
IL_024B: ldfld UnityEngine.Color[] LightEffect::m_variationColors
IL_0250: ldlen
IL_0251: conv.i4
IL_0252: call System.Int32
ColossalFramework.Math.Randomizer::Int32(System.UInt32 range)
IL_0257: ldelema UnityEngine.Color
IL_025C: ldobj UnityEngine.Color
IL_0261: stloc.s 16 (UnityEngine.Color)
IL_0263: ldloc.s 15 (UnityEngine.Color)
IL_0265: ldloc.s 16 (UnityEngine.Color)
IL_0267: ldloca.s 9 (ColossalFramework.Math.Randomizer)
IL_0269: ldc.i4 1000
IL_026E: call System.Int32
ColossalFramework.Math.Randomizer::Int32(System.UInt32 range)
IL_0273: conv.r4
IL_0274: ldc.r4 0.001
IL_0279: mul
IL_027A: call static UnityEngine.Color
UnityEngine.Color::Lerp(UnityEngine.Color a, UnityEngine.Color b, System.Single t)
IL_027F: stloc.s 15 (UnityEngine.Color)
IL_0281: Label9
IL_0281: Label10
IL_0281: ldloca.s 15 (UnityEngine.Color)
IL_0283: call UnityEngine.Color UnityEngine.Color::get_linear()
IL_0288: stloc.s 15 (UnityEngine.Color)
IL_028A: ldloca.s 15 (UnityEngine.Color)
IL_028C: ldarg.0
IL_028D: ldfld UnityEngine.LightType LightEffect::m_lightType
IL_0292: brtrue => Label11
IL_0297: ldarg.0
IL_0298: ldfld System.Single LightEffect::m_spotLeaking
IL_029D: br => Label12
IL_02A2: Label11
IL_02A2: ldc.r4 0
IL_02A7: Label12
IL_02A7: stfld System.Single UnityEngine.Color::a
IL_02AC: ldarg.0
IL_02AD: ldfld System.Single LightEffect::m_lightRange
IL_02B2: ldc.r4 0.5235988
IL_02B7: call static System.Single UnityEngine.Mathf::Cos(System.Single f)
IL_02BC: div
IL_02BD: stloc.s 17 (System.Single)
IL_02BF: ldloc.s 17 (System.Single)
IL_02C1: ldc.r4 0.5
IL_02C6: mul
IL_02C7: stloc.s 18 (System.Single)
IL_02C9: ldarg.s 8
IL_02CB: ldfld UnityEngine.Vector3[] MeshData::m_vertices
IL_02D0: ldarg.s 5
IL_02D2: ldind.i4
IL_02D3: ldelema UnityEngine.Vector3
IL_02D8: ldloca.s 4 (UnityEngine.Vector3)
IL_02DA: ldfld System.Single UnityEngine.Vector3::x
IL_02DF: ldloc.s 18 (System.Single)
IL_02E1: sub
IL_02E2: ldloca.s 4 (UnityEngine.Vector3)
IL_02E4: ldfld System.Single UnityEngine.Vector3::y
IL_02E9: ldarg.0
IL_02EA: ldfld System.Single LightEffect::m_lightRange
IL_02EF: add
IL_02F0: ldloca.s 4 (UnityEngine.Vector3)
IL_02F2: ldfld System.Single UnityEngine.Vector3::z
IL_02F7: ldarg.0
IL_02F8: ldfld System.Single LightEffect::m_lightRange
IL_02FD: add
IL_02FE: newobj System.Void UnityEngine.Vector3::.ctor(System.Single x,
System.Single y, System.Single z)
IL_0303: stobj UnityEngine.Vector3
IL_0308: ldarg.s 8
IL_030A: ldfld UnityEngine.Vector3[] MeshData::m_normals
IL_030F: ldarg.s 5
IL_0311: ldind.i4
IL_0312: ldelema UnityEngine.Vector3
IL_0317: ldarg.3
IL_0318: stobj UnityEngine.Vector3
IL_031D: ldarg.s 8
IL_031F: ldfld UnityEngine.Vector4[] MeshData::m_tangents
IL_0324: ldarg.s 5
IL_0326: ldind.i4
IL_0327: ldelema UnityEngine.Vector4
IL_032C: ldloc.s 7 (UnityEngine.Vector4)
IL_032E: stobj UnityEngine.Vector4
IL_0333: ldarg.s 8
IL_0335: ldfld UnityEngine.Vector2[] MeshData::m_uvs
IL_033A: ldarg.s 5
IL_033C: ldind.i4
IL_033D: ldelema UnityEngine.Vector2
IL_0342: ldloc.s 8 (UnityEngine.Vector2)
IL_0344: stobj UnityEngine.Vector2
IL_0349: ldarg.s 8
IL_034B: ldfld UnityEngine.Vector2[] MeshData::m_uvs2
IL_0350: ldarg.s 5
IL_0352: ldind.i4
IL_0353: ldelema UnityEngine.Vector2
IL_0358: ldloc.s 10 (UnityEngine.Vector2)
IL_035A: stobj UnityEngine.Vector2
IL_035F: ldarg.s 8
IL_0361: ldfld UnityEngine.Vector2[] MeshData::m_uvs3
IL_0366: ldarg.s 5
IL_0368: ldind.i4
IL_0369: ldelema UnityEngine.Vector2
IL_036E: ldloc.s 11 (UnityEngine.Vector2)
IL_0370: stobj UnityEngine.Vector2
IL_0375: ldloc.0
IL_0376: brfalse => Label13
IL_037B: ldarg.s 8
IL_037D: ldfld UnityEngine.Vector2[] MeshData::m_uvs4
IL_0382: ldarg.s 5
IL_0384: ldind.i4
IL_0385: ldelema UnityEngine.Vector2
IL_038A: ldloc.s 12 (UnityEngine.Vector2)
IL_038C: stobj UnityEngine.Vector2
IL_0391: Label13
IL_0391: ldarg.s 8
IL_0393: ldfld UnityEngine.Color32[] MeshData::m_colors
IL_0398: ldarg.s 5
IL_039A: ldind.i4
IL_039B: ldelema UnityEngine.Color32
IL_03A0: ldloc.s 15 (UnityEngine.Color)
IL_03A2: call static UnityEngine.Color32
UnityEngine.Color32::op_Implicit(UnityEngine.Color c)
IL_03A7: stobj UnityEngine.Color32
IL_03AC: ldarg.s 5
IL_03AE: ldarg.s 5
IL_03B0: ldind.i4
IL_03B1: ldc.i4.1
IL_03B2: add
IL_03B3: stind.i4
IL_03B4: ldarg.s 8
IL_03B6: ldfld UnityEngine.Vector3[] MeshData::m_vertices
IL_03BB: ldarg.s 5
IL_03BD: ldind.i4
IL_03BE: ldelema UnityEngine.Vector3
IL_03C3: ldloca.s 4 (UnityEngine.Vector3)
IL_03C5: ldfld System.Single UnityEngine.Vector3::x
IL_03CA: ldloc.s 18 (System.Single)
IL_03CC: add
IL_03CD: ldloca.s 4 (UnityEngine.Vector3)
IL_03CF: ldfld System.Single UnityEngine.Vector3::y
IL_03D4: ldarg.0
IL_03D5: ldfld System.Single LightEffect::m_lightRange
IL_03DA: add
IL_03DB: ldloca.s 4 (UnityEngine.Vector3)
IL_03DD: ldfld System.Single UnityEngine.Vector3::z
IL_03E2: ldarg.0
IL_03E3: ldfld System.Single LightEffect::m_lightRange
IL_03E8: add
IL_03E9: newobj System.Void UnityEngine.Vector3::.ctor(System.Single x,
System.Single y, System.Single z)
IL_03EE: stobj UnityEngine.Vector3
IL_03F3: ldarg.s 8
IL_03F5: ldfld UnityEngine.Vector3[] MeshData::m_normals
IL_03FA: ldarg.s 5
IL_03FC: ldind.i4
IL_03FD: ldelema UnityEngine.Vector3
IL_0402: ldarg.3
IL_0403: stobj UnityEngine.Vector3
IL_0408: ldarg.s 8
IL_040A: ldfld UnityEngine.Vector4[] MeshData::m_tangents
IL_040F: ldarg.s 5
IL_0411: ldind.i4
IL_0412: ldelema UnityEngine.Vector4
IL_0417: ldloc.s 7 (UnityEngine.Vector4)
IL_0419: stobj UnityEngine.Vector4
IL_041E: ldarg.s 8
IL_0420: ldfld UnityEngine.Vector2[] MeshData::m_uvs
IL_0425: ldarg.s 5
IL_0427: ldind.i4
IL_0428: ldelema UnityEngine.Vector2
IL_042D: ldloc.s 8 (UnityEngine.Vector2)
IL_042F: stobj UnityEngine.Vector2
IL_0434: ldarg.s 8
IL_0436: ldfld UnityEngine.Vector2[] MeshData::m_uvs2
IL_043B: ldarg.s 5
IL_043D: ldind.i4
IL_043E: ldelema UnityEngine.Vector2
IL_0443: ldloc.s 10 (UnityEngine.Vector2)
IL_0445: stobj UnityEngine.Vector2
IL_044A: ldarg.s 8
IL_044C: ldfld UnityEngine.Vector2[] MeshData::m_uvs3
IL_0451: ldarg.s 5
IL_0453: ldind.i4
IL_0454: ldelema UnityEngine.Vector2
IL_0459: ldloc.s 11 (UnityEngine.Vector2)
IL_045B: stobj UnityEngine.Vector2
IL_0460: ldloc.0
IL_0461: brfalse => Label14
IL_0466: ldarg.s 8
IL_0468: ldfld UnityEngine.Vector2[] MeshData::m_uvs4
IL_046D: ldarg.s 5
IL_046F: ldind.i4
IL_0470: ldelema UnityEngine.Vector2
IL_0475: ldloc.s 12 (UnityEngine.Vector2)
IL_0477: stobj UnityEngine.Vector2
IL_047C: Label14
IL_047C: ldarg.s 8
IL_047E: ldfld UnityEngine.Color32[] MeshData::m_colors
IL_0483: ldarg.s 5
IL_0485: ldind.i4
IL_0486: ldelema UnityEngine.Color32
IL_048B: ldloc.s 15 (UnityEngine.Color)
IL_048D: call static UnityEngine.Color32
UnityEngine.Color32::op_Implicit(UnityEngine.Color c)
IL_0492: stobj UnityEngine.Color32
IL_0497: ldarg.s 5
IL_0499: ldarg.s 5
IL_049B: ldind.i4
IL_049C: ldc.i4.1
IL_049D: add
IL_049E: stind.i4
IL_049F: ldarg.s 8
IL_04A1: ldfld UnityEngine.Vector3[] MeshData::m_vertices
IL_04A6: ldarg.s 5
IL_04A8: ldind.i4
IL_04A9: ldelema UnityEngine.Vector3
IL_04AE: ldloca.s 4 (UnityEngine.Vector3)
IL_04B0: ldfld System.Single UnityEngine.Vector3::x
IL_04B5: ldloc.s 17 (System.Single)
IL_04B7: add
IL_04B8: ldloca.s 4 (UnityEngine.Vector3)
IL_04BA: ldfld System.Single UnityEngine.Vector3::y
IL_04BF: ldloca.s 4 (UnityEngine.Vector3)
IL_04C1: ldfld System.Single UnityEngine.Vector3::z
IL_04C6: ldarg.0
IL_04C7: ldfld System.Single LightEffect::m_lightRange
IL_04CC: add
IL_04CD: newobj System.Void UnityEngine.Vector3::.ctor(System.Single x,
System.Single y, System.Single z)
IL_04D2: stobj UnityEngine.Vector3
IL_04D7: ldarg.s 8
IL_04D9: ldfld UnityEngine.Vector3[] MeshData::m_normals
IL_04DE: ldarg.s 5
IL_04E0: ldind.i4
IL_04E1: ldelema UnityEngine.Vector3
IL_04E6: ldarg.3
IL_04E7: stobj UnityEngine.Vector3
IL_04EC: ldarg.s 8
IL_04EE: ldfld UnityEngine.Vector4[] MeshData::m_tangents
IL_04F3: ldarg.s 5
IL_04F5: ldind.i4
IL_04F6: ldelema UnityEngine.Vector4
IL_04FB: ldloc.s 7 (UnityEngine.Vector4)
IL_04FD: stobj UnityEngine.Vector4
IL_0502: ldarg.s 8
IL_0504: ldfld UnityEngine.Vector2[] MeshData::m_uvs
IL_0509: ldarg.s 5
IL_050B: ldind.i4
IL_050C: ldelema UnityEngine.Vector2
IL_0511: ldloc.s 8 (UnityEngine.Vector2)
IL_0513: stobj UnityEngine.Vector2
IL_0518: ldarg.s 8
IL_051A: ldfld UnityEngine.Vector2[] MeshData::m_uvs2
IL_051F: ldarg.s 5
IL_0521: ldind.i4
IL_0522: ldelema UnityEngine.Vector2
IL_0527: ldloc.s 10 (UnityEngine.Vector2)
IL_0529: stobj UnityEngine.Vector2
IL_052E: ldarg.s 8
IL_0530: ldfld UnityEngine.Vector2[] MeshData::m_uvs3
IL_0535: ldarg.s 5
IL_0537: ldind.i4
IL_0538: ldelema UnityEngine.Vector2
IL_053D: ldloc.s 11 (UnityEngine.Vector2)
IL_053F: stobj UnityEngine.Vector2
IL_0544: ldloc.0
IL_0545: brfalse => Label15
IL_054A: ldarg.s 8
IL_054C: ldfld UnityEngine.Vector2[] MeshData::m_uvs4
IL_0551: ldarg.s 5
IL_0553: ldind.i4
IL_0554: ldelema UnityEngine.Vector2
IL_0559: ldloc.s 12 (UnityEngine.Vector2)
IL_055B: stobj UnityEngine.Vector2
IL_0560: Label15
IL_0560: ldarg.s 8
IL_0562: ldfld UnityEngine.Color32[] MeshData::m_colors
IL_0567: ldarg.s 5
IL_0569: ldind.i4
IL_056A: ldelema UnityEngine.Color32
IL_056F: ldloc.s 15 (UnityEngine.Color)
IL_0571: call static UnityEngine.Color32
UnityEngine.Color32::op_Implicit(UnityEngine.Color c)
IL_0576: stobj UnityEngine.Color32
IL_057B: ldarg.s 5
IL_057D: ldarg.s 5
IL_057F: ldind.i4
IL_0580: ldc.i4.1
IL_0581: add
IL_0582: stind.i4
IL_0583: ldarg.s 8
IL_0585: ldfld UnityEngine.Vector3[] MeshData::m_vertices
IL_058A: ldarg.s 5
IL_058C: ldind.i4
IL_058D: ldelema UnityEngine.Vector3
IL_0592: ldloca.s 4 (UnityEngine.Vector3)
IL_0594: ldfld System.Single UnityEngine.Vector3::x
IL_0599: ldloc.s 18 (System.Single)
IL_059B: add
IL_059C: ldloca.s 4 (UnityEngine.Vector3)
IL_059E: ldfld System.Single UnityEngine.Vector3::y
IL_05A3: ldarg.0
IL_05A4: ldfld System.Single LightEffect::m_lightRange
IL_05A9: sub
IL_05AA: ldloca.s 4 (UnityEngine.Vector3)
IL_05AC: ldfld System.Single UnityEngine.Vector3::z
IL_05B1: ldarg.0
IL_05B2: ldfld System.Single LightEffect::m_lightRange
IL_05B7: add
IL_05B8: newobj System.Void UnityEngine.Vector3::.ctor(System.Single x,
System.Single y, System.Single z)
IL_05BD: stobj UnityEngine.Vector3
IL_05C2: ldarg.s 8
IL_05C4: ldfld UnityEngine.Vector3[] MeshData::m_normals
IL_05C9: ldarg.s 5
IL_05CB: ldind.i4
IL_05CC: ldelema UnityEngine.Vector3
IL_05D1: ldarg.3
IL_05D2: stobj UnityEngine.Vector3
IL_05D7: ldarg.s 8
IL_05D9: ldfld UnityEngine.Vector4[] MeshData::m_tangents
IL_05DE: ldarg.s 5
IL_05E0: ldind.i4
IL_05E1: ldelema UnityEngine.Vector4
IL_05E6: ldloc.s 7 (UnityEngine.Vector4)
IL_05E8: stobj UnityEngine.Vector4
IL_05ED: ldarg.s 8
IL_05EF: ldfld UnityEngine.Vector2[] MeshData::m_uvs
IL_05F4: ldarg.s 5
IL_05F6: ldind.i4
IL_05F7: ldelema UnityEngine.Vector2
IL_05FC: ldloc.s 8 (UnityEngine.Vector2)
IL_05FE: stobj UnityEngine.Vector2
IL_0603: ldarg.s 8
IL_0605: ldfld UnityEngine.Vector2[] MeshData::m_uvs2
IL_060A: ldarg.s 5
IL_060C: ldind.i4
IL_060D: ldelema UnityEngine.Vector2
IL_0612: ldloc.s 10 (UnityEngine.Vector2)
IL_0614: stobj UnityEngine.Vector2
IL_0619: ldarg.s 8
IL_061B: ldfld UnityEngine.Vector2[] MeshData::m_uvs3
IL_0620: ldarg.s 5
IL_0622: ldind.i4
IL_0623: ldelema UnityEngine.Vector2
IL_0628: ldloc.s 11 (UnityEngine.Vector2)
IL_062A: stobj UnityEngine.Vector2
IL_062F: ldloc.0
IL_0630: brfalse => Label16
IL_0635: ldarg.s 8
IL_0637: ldfld UnityEngine.Vector2[] MeshData::m_uvs4
IL_063C: ldarg.s 5
IL_063E: ldind.i4
IL_063F: ldelema UnityEngine.Vector2
IL_0644: ldloc.s 12 (UnityEngine.Vector2)
IL_0646: stobj UnityEngine.Vector2
IL_064B: Label16
IL_064B: ldarg.s 8
IL_064D: ldfld UnityEngine.Color32[] MeshData::m_colors
IL_0652: ldarg.s 5
IL_0654: ldind.i4
IL_0655: ldelema UnityEngine.Color32
IL_065A: ldloc.s 15 (UnityEngine.Color)
IL_065C: call static UnityEngine.Color32
UnityEngine.Color32::op_Implicit(UnityEngine.Color c)
IL_0661: stobj UnityEngine.Color32
IL_0666: ldarg.s 5
IL_0668: ldarg.s 5
IL_066A: ldind.i4
IL_066B: ldc.i4.1
IL_066C: add
IL_066D: stind.i4
IL_066E: ldarg.s 8
IL_0670: ldfld UnityEngine.Vector3[] MeshData::m_vertices
IL_0675: ldarg.s 5
IL_0677: ldind.i4
IL_0678: ldelema UnityEngine.Vector3
IL_067D: ldloca.s 4 (UnityEngine.Vector3)
IL_067F: ldfld System.Single UnityEngine.Vector3::x
IL_0684: ldloc.s 18 (System.Single)
IL_0686: sub
IL_0687: ldloca.s 4 (UnityEngine.Vector3)
IL_0689: ldfld System.Single UnityEngine.Vector3::y
IL_068E: ldarg.0
IL_068F: ldfld System.Single LightEffect::m_lightRange
IL_0694: sub
IL_0695: ldloca.s 4 (UnityEngine.Vector3)
IL_0697: ldfld System.Single UnityEngine.Vector3::z
IL_069C: ldarg.0
IL_069D: ldfld System.Single LightEffect::m_lightRange
IL_06A2: add
IL_06A3: newobj System.Void UnityEngine.Vector3::.ctor(System.Single x,
System.Single y, System.Single z)
IL_06A8: stobj UnityEngine.Vector3
IL_06AD: ldarg.s 8
IL_06AF: ldfld UnityEngine.Vector3[] MeshData::m_normals
IL_06B4: ldarg.s 5
IL_06B6: ldind.i4
IL_06B7: ldelema UnityEngine.Vector3
IL_06BC: ldarg.3
IL_06BD: stobj UnityEngine.Vector3
IL_06C2: ldarg.s 8
IL_06C4: ldfld UnityEngine.Vector4[] MeshData::m_tangents
IL_06C9: ldarg.s 5
IL_06CB: ldind.i4
IL_06CC: ldelema UnityEngine.Vector4
IL_06D1: ldloc.s 7 (UnityEngine.Vector4)
IL_06D3: stobj UnityEngine.Vector4
IL_06D8: ldarg.s 8
IL_06DA: ldfld UnityEngine.Vector2[] MeshData::m_uvs
IL_06DF: ldarg.s 5
IL_06E1: ldind.i4
IL_06E2: ldelema UnityEngine.Vector2
IL_06E7: ldloc.s 8 (UnityEngine.Vector2)
IL_06E9: stobj UnityEngine.Vector2
IL_06EE: ldarg.s 8
IL_06F0: ldfld UnityEngine.Vector2[] MeshData::m_uvs2
IL_06F5: ldarg.s 5
IL_06F7: ldind.i4
IL_06F8: ldelema UnityEngine.Vector2
IL_06FD: ldloc.s 10 (UnityEngine.Vector2)
IL_06FF: stobj UnityEngine.Vector2
IL_0704: ldarg.s 8
IL_0706: ldfld UnityEngine.Vector2[] MeshData::m_uvs3
IL_070B: ldarg.s 5
IL_070D: ldind.i4
IL_070E: ldelema UnityEngine.Vector2
IL_0713: ldloc.s 11 (UnityEngine.Vector2)
IL_0715: stobj UnityEngine.Vector2
IL_071A: ldloc.0
IL_071B: brfalse => Label17
IL_0720: ldarg.s 8
IL_0722: ldfld UnityEngine.Vector2[] MeshData::m_uvs4
IL_0727: ldarg.s 5
IL_0729: ldind.i4
IL_072A: ldelema UnityEngine.Vector2
IL_072F: ldloc.s 12 (UnityEngine.Vector2)
IL_0731: stobj UnityEngine.Vector2
IL_0736: Label17
IL_0736: ldarg.s 8
IL_0738: ldfld UnityEngine.Color32[] MeshData::m_colors
IL_073D: ldarg.s 5
IL_073F: ldind.i4
IL_0740: ldelema UnityEngine.Color32
IL_0745: ldloc.s 15 (UnityEngine.Color)
IL_0747: call static UnityEngine.Color32
UnityEngine.Color32::op_Implicit(UnityEngine.Color c)
IL_074C: stobj UnityEngine.Color32
IL_0751: ldarg.s 5
IL_0753: ldarg.s 5
IL_0755: ldind.i4
IL_0756: ldc.i4.1
IL_0757: add
IL_0758: stind.i4
IL_0759: ldarg.s 8
IL_075B: ldfld UnityEngine.Vector3[] MeshData::m_vertices
IL_0760: ldarg.s 5
IL_0762: ldind.i4
IL_0763: ldelema UnityEngine.Vector3
IL_0768: ldloca.s 4 (UnityEngine.Vector3)
IL_076A: ldfld System.Single UnityEngine.Vector3::x
IL_076F: ldloc.s 17 (System.Single)
IL_0771: sub
IL_0772: ldloca.s 4 (UnityEngine.Vector3)
IL_0774: ldfld System.Single UnityEngine.Vector3::y
IL_0779: ldloca.s 4 (UnityEngine.Vector3)
IL_077B: ldfld System.Single UnityEngine.Vector3::z
IL_0780: ldarg.0
IL_0781: ldfld System.Single LightEffect::m_lightRange
IL_0786: add
IL_0787: newobj System.Void UnityEngine.Vector3::.ctor(System.Single x,
System.Single y, System.Single z)
IL_078C: stobj UnityEngine.Vector3
IL_0791: ldarg.s 8
IL_0793: ldfld UnityEngine.Vector3[] MeshData::m_normals
IL_0798: ldarg.s 5
IL_079A: ldind.i4
IL_079B: ldelema UnityEngine.Vector3
IL_07A0: ldarg.3
IL_07A1: stobj UnityEngine.Vector3
IL_07A6: ldarg.s 8
IL_07A8: ldfld UnityEngine.Vector4[] MeshData::m_tangents
IL_07AD: ldarg.s 5
IL_07AF: ldind.i4
IL_07B0: ldelema UnityEngine.Vector4
IL_07B5: ldloc.s 7 (UnityEngine.Vector4)
IL_07B7: stobj UnityEngine.Vector4
IL_07BC: ldarg.s 8
IL_07BE: ldfld UnityEngine.Vector2[] MeshData::m_uvs
IL_07C3: ldarg.s 5
IL_07C5: ldind.i4
IL_07C6: ldelema UnityEngine.Vector2
IL_07CB: ldloc.s 8 (UnityEngine.Vector2)
IL_07CD: stobj UnityEngine.Vector2
IL_07D2: ldarg.s 8
IL_07D4: ldfld UnityEngine.Vector2[] MeshData::m_uvs2
IL_07D9: ldarg.s 5
IL_07DB: ldind.i4
IL_07DC: ldelema UnityEngine.Vector2
IL_07E1: ldloc.s 10 (UnityEngine.Vector2)
IL_07E3: stobj UnityEngine.Vector2
IL_07E8: ldarg.s 8
IL_07EA: ldfld UnityEngine.Vector2[] MeshData::m_uvs3
IL_07EF: ldarg.s 5
IL_07F1: ldind.i4
IL_07F2: ldelema UnityEngine.Vector2
IL_07F7: ldloc.s 11 (UnityEngine.Vector2)
IL_07F9: stobj UnityEngine.Vector2
IL_07FE: ldloc.0
IL_07FF: brfalse => Label18
IL_0804: ldarg.s 8
IL_0806: ldfld UnityEngine.Vector2[] MeshData::m_uvs4
IL_080B: ldarg.s 5
IL_080D: ldind.i4
IL_080E: ldelema UnityEngine.Vector2
IL_0813: ldloc.s 12 (UnityEngine.Vector2)
IL_0815: stobj UnityEngine.Vector2
IL_081A: Label18
IL_081A: ldarg.s 8
IL_081C: ldfld UnityEngine.Color32[] MeshData::m_colors
IL_0821: ldarg.s 5
IL_0823: ldind.i4
IL_0824: ldelema UnityEngine.Color32
IL_0829: ldloc.s 15 (UnityEngine.Color)
IL_082B: call static UnityEngine.Color32
UnityEngine.Color32::op_Implicit(UnityEngine.Color c)
IL_0830: stobj UnityEngine.Color32
IL_0835: ldarg.s 5
IL_0837: ldarg.s 5
IL_0839: ldind.i4
IL_083A: ldc.i4.1
IL_083B: add
IL_083C: stind.i4
IL_083D: ldarg.s 8
IL_083F: ldfld System.Int32[] MeshData::m_triangles
IL_0844: ldarg.s 6
IL_0846: ldarg.s 6
IL_0848: ldind.i4
IL_0849: dup
IL_084A: stloc.s 19 (System.Int32)
IL_084C: ldc.i4.1
IL_084D: add
IL_084E: stind.i4
IL_084F: ldloc.s 19 (System.Int32)
IL_0851: ldarg.s 5
IL_0853: ldind.i4
IL_0854: ldc.i4.6
IL_0855: sub
IL_0856: stelem.i4
IL_0857: ldarg.s 8
IL_0859: ldfld System.Int32[] MeshData::m_triangles
IL_085E: ldarg.s 6
IL_0860: ldarg.s 6
IL_0862: ldind.i4
IL_0863: dup
IL_0864: stloc.s 19 (System.Int32)
IL_0866: ldc.i4.1
IL_0867: add
IL_0868: stind.i4
IL_0869: ldloc.s 19 (System.Int32)
IL_086B: ldarg.s 5
IL_086D: ldind.i4
IL_086E: ldc.i4.5
IL_086F: sub
IL_0870: stelem.i4
IL_0871: ldarg.s 8
IL_0873: ldfld System.Int32[] MeshData::m_triangles
IL_0878: ldarg.s 6
IL_087A: ldarg.s 6
IL_087C: ldind.i4
IL_087D: dup
IL_087E: stloc.s 19 (System.Int32)
IL_0880: ldc.i4.1
IL_0881: add
IL_0882: stind.i4
IL_0883: ldloc.s 19 (System.Int32)
IL_0885: ldarg.s 5
IL_0887: ldind.i4
IL_0888: ldc.i4.1
IL_0889: sub
IL_088A: stelem.i4
IL_088B: ldarg.s 8
IL_088D: ldfld System.Int32[] MeshData::m_triangles
IL_0892: ldarg.s 6
IL_0894: ldarg.s 6
IL_0896: ldind.i4
IL_0897: dup
IL_0898: stloc.s 19 (System.Int32)
IL_089A: ldc.i4.1
IL_089B: add
IL_089C: stind.i4
IL_089D: ldloc.s 19 (System.Int32)
IL_089F: ldarg.s 5
IL_08A1: ldind.i4
IL_08A2: ldc.i4.1
IL_08A3: sub
IL_08A4: stelem.i4
IL_08A5: ldarg.s 8
IL_08A7: ldfld System.Int32[] MeshData::m_triangles
IL_08AC: ldarg.s 6
IL_08AE: ldarg.s 6
IL_08B0: ldind.i4
IL_08B1: dup
IL_08B2: stloc.s 19 (System.Int32)
IL_08B4: ldc.i4.1
IL_08B5: add
IL_08B6: stind.i4
IL_08B7: ldloc.s 19 (System.Int32)
IL_08B9: ldarg.s 5
IL_08BB: ldind.i4
IL_08BC: ldc.i4.5
IL_08BD: sub
IL_08BE: stelem.i4
IL_08BF: ldarg.s 8
IL_08C1: ldfld System.Int32[] MeshData::m_triangles
IL_08C6: ldarg.s 6
IL_08C8: ldarg.s 6
IL_08CA: ldind.i4
IL_08CB: dup
IL_08CC: stloc.s 19 (System.Int32)
IL_08CE: ldc.i4.1
IL_08CF: add
IL_08D0: stind.i4
IL_08D1: ldloc.s 19 (System.Int32)
IL_08D3: ldarg.s 5
IL_08D5: ldind.i4
IL_08D6: ldc.i4.4
IL_08D7: sub
IL_08D8: stelem.i4
IL_08D9: ldarg.s 8
IL_08DB: ldfld System.Int32[] MeshData::m_triangles
IL_08E0: ldarg.s 6
IL_08E2: ldarg.s 6
IL_08E4: ldind.i4
IL_08E5: dup
IL_08E6: stloc.s 19 (System.Int32)
IL_08E8: ldc.i4.1
IL_08E9: add
IL_08EA: stind.i4
IL_08EB: ldloc.s 19 (System.Int32)
IL_08ED: ldarg.s 5
IL_08EF: ldind.i4
IL_08F0: ldc.i4.1
IL_08F1: sub
IL_08F2: stelem.i4
IL_08F3: ldarg.s 8
IL_08F5: ldfld System.Int32[] MeshData::m_triangles
IL_08FA: ldarg.s 6
IL_08FC: ldarg.s 6
IL_08FE: ldind.i4
IL_08FF: dup
IL_0900: stloc.s 19 (System.Int32)
IL_0902: ldc.i4.1
IL_0903: add
IL_0904: stind.i4
IL_0905: ldloc.s 19 (System.Int32)
IL_0907: ldarg.s 5
IL_0909: ldind.i4
IL_090A: ldc.i4.4
IL_090B: sub
IL_090C: stelem.i4
IL_090D: ldarg.s 8
IL_090F: ldfld System.Int32[] MeshData::m_triangles
IL_0914: ldarg.s 6
IL_0916: ldarg.s 6
IL_0918: ldind.i4
IL_0919: dup
IL_091A: stloc.s 19 (System.Int32)
IL_091C: ldc.i4.1
IL_091D: add
IL_091E: stind.i4
IL_091F: ldloc.s 19 (System.Int32)
IL_0921: ldarg.s 5
IL_0923: ldind.i4
IL_0924: ldc.i4.2
IL_0925: sub
IL_0926: stelem.i4
IL_0927: ldarg.s 8
IL_0929: ldfld System.Int32[] MeshData::m_triangles
IL_092E: ldarg.s 6
IL_0930: ldarg.s 6
IL_0932: ldind.i4
IL_0933: dup
IL_0934: stloc.s 19 (System.Int32)
IL_0936: ldc.i4.1
IL_0937: add
IL_0938: stind.i4
IL_0939: ldloc.s 19 (System.Int32)
IL_093B: ldarg.s 5
IL_093D: ldind.i4
IL_093E: ldc.i4.2
IL_093F: sub
IL_0940: stelem.i4
IL_0941: ldarg.s 8
IL_0943: ldfld System.Int32[] MeshData::m_triangles
IL_0948: ldarg.s 6
IL_094A: ldarg.s 6
IL_094C: ldind.i4
IL_094D: dup
IL_094E: stloc.s 19 (System.Int32)
IL_0950: ldc.i4.1
IL_0951: add
IL_0952: stind.i4
IL_0953: ldloc.s 19 (System.Int32)
IL_0955: ldarg.s 5
IL_0957: ldind.i4
IL_0958: ldc.i4.4
IL_0959: sub
IL_095A: stelem.i4
IL_095B: ldarg.s 8
IL_095D: ldfld System.Int32[] MeshData::m_triangles
IL_0962: ldarg.s 6
IL_0964: ldarg.s 6
IL_0966: ldind.i4
IL_0967: dup
IL_0968: stloc.s 19 (System.Int32)
IL_096A: ldc.i4.1
IL_096B: add
IL_096C: stind.i4
IL_096D: ldloc.s 19 (System.Int32)
IL_096F: ldarg.s 5
IL_0971: ldind.i4
IL_0972: ldc.i4.3
IL_0973: sub
IL_0974: stelem.i4
IL_0975: // end original
IL_0975: Label1
IL_0975: ret
DONE

### Patch: virtual System.Void ElectricityManager::SimulationStepImpl(System.Int32


subStep)
### Replacement: static System.Void
ElectricityManager::ElectricityManager.SimulationStepImpl_Patch0(ElectricityManager
this, System.Int32 subStep)
IL_0000: Local var 0: System.UInt32
IL_0000: Local var 1: System.Int32
IL_0000: Local var 2: NetManager
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: NetInfo
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: ElectricityManager/Cell
IL_0000: Local var 13: ElectricityManager/PulseGroup
IL_0000: Local var 14: ElectricityManager/PulseUnit
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: ElectricityManager/PulseUnit
IL_0000: Local var 19: System.UInt32
IL_0000: Local var 20: System.Int32
IL_0000: Local var 21: ElectricityManager/Cell
IL_0000: Local var 22: System.Int32
IL_0000: Local var 23: System.Int32
IL_0000: Local var 24: NetNode
IL_0000: Local var 25: System.Int32
IL_0000: Local var 26: System.UInt16
IL_0000: Local var 27: System.UInt16
IL_0000: Local var 28: System.UInt16
IL_0000: Local var 29: System.UInt16
IL_0000: Local var 30: System.Int32
IL_0000: Local var 31: ElectricityManager/PulseGroup
IL_0000: Local var 32: ElectricityManager/PulseGroup
IL_0000: Local var 33: System.Int32
IL_0000: Local var 34: ElectricityManager/PulseGroup
IL_0000: Local var 35: System.Int32
IL_0000: Local var 36: ElectricityManager/Cell
IL_0000: // start original
IL_0000: ldarg.1
IL_0001: brfalse => Label0
IL_0006: ldarg.1
IL_0007: ldc.i4 1000
IL_000C: beq => Label1
IL_0011: call static SimulationManager
ColossalFramework.Singleton`1<SimulationManager>::get_instance()
IL_0016: ldfld System.UInt32 SimulationManager::m_currentFrameIndex
IL_001B: stloc.0
IL_001C: ldloc.0
IL_001D: ldc.i4 255
IL_0022: and
IL_0023: stloc.1
IL_0024: ldloc.1
IL_0025: ldc.i4 128
IL_002A: bge => Label2
IL_002F: ldloc.1
IL_0030: brtrue => Label3
IL_0035: ldarg.0
IL_0036: ldc.i4.0
IL_0037: stfld System.Int32 ElectricityManager::m_pulseGroupCount
IL_003C: ldarg.0
IL_003D: ldc.i4.0
IL_003E: stfld System.Int32 ElectricityManager::m_pulseUnitStart
IL_0043: ldarg.0
IL_0044: ldc.i4.0
IL_0045: stfld System.Int32 ElectricityManager::m_pulseUnitEnd
IL_004A: ldarg.0
IL_004B: ldc.i4.0
IL_004C: stfld System.Int32 ElectricityManager::m_processedCells
IL_0051: ldarg.0
IL_0052: ldc.i4.0
IL_0053: stfld System.Int32 ElectricityManager::m_conductiveCells
IL_0058: ldarg.0
IL_0059: ldc.i4.1
IL_005A: stfld System.Boolean ElectricityManager::m_canContinue
IL_005F: Label3
IL_005F: call static NetManager
ColossalFramework.Singleton`1<NetManager>::get_instance()
IL_0064: stloc.2
IL_0065: ldloc.1
IL_0066: ldc.i4 32768
IL_006B: mul
IL_006C: ldc.i4.7
IL_006D: shr
IL_006E: stloc.3
IL_006F: ldloc.1
IL_0070: ldc.i4.1
IL_0071: add
IL_0072: ldc.i4 32768
IL_0077: mul
IL_0078: ldc.i4.7
IL_0079: shr
IL_007A: ldc.i4.1
IL_007B: sub
IL_007C: stloc.s 4 (System.Int32)
IL_007E: ldloc.3
IL_007F: stloc.s 5 (System.Int32)
IL_0081: br => Label4
IL_0086: Label10
IL_0086: ldloc.2
IL_0087: ldfld Array16`1<NetNode> NetManager::m_nodes
IL_008C: ldfld NetNode[] Array16`1<NetNode>::m_buffer
IL_0091: ldloc.s 5 (System.Int32)
IL_0093: ldelema NetNode
IL_0098: ldfld Flags NetNode::m_flags
IL_009D: brfalse => Label5
IL_00A2: ldloc.2
IL_00A3: ldfld Array16`1<NetNode> NetManager::m_nodes
IL_00A8: ldfld NetNode[] Array16`1<NetNode>::m_buffer
IL_00AD: ldloc.s 5 (System.Int32)
IL_00AF: ldelema NetNode
IL_00B4: call NetInfo NetNode::get_Info()
IL_00B9: stloc.s 6 (NetInfo)
IL_00BB: ldloc.s 6 (NetInfo)
IL_00BD: ldfld ItemClass NetInfo::m_class
IL_00C2: ldfld Service ItemClass::m_service
IL_00C7: ldc.i4.s 10
IL_00C9: beq => Label6
IL_00CE: ldloc.s 6 (NetInfo)
IL_00D0: ldfld NetAI NetInfo::m_netAI
IL_00D5: isinst ConcourseAI
IL_00DA: brfalse => Label7
IL_00DF: Label6
IL_00DF: ldarg.0
IL_00E0: ldloc.s 5 (System.Int32)
IL_00E2: ldarg.0
IL_00E3: ldfld System.UInt16[] ElectricityManager::m_nodeGroups
IL_00E8: ldloc.s 5 (System.Int32)
IL_00EA: ldelem.u2
IL_00EB: ldc.i4 65535
IL_00F0: beq => Label8
IL_00F5: ldc.i4.1
IL_00F6: br => Label9
IL_00FB: Label8
IL_00FB: ldc.i4.0
IL_00FC: Label9
IL_00FC: call System.Void
ElectricityManager::UpdateNodeElectricity(System.Int32 nodeID, System.Int32 value)
IL_0101: ldarg.0
IL_0102: dup
IL_0103: ldfld System.Int32 ElectricityManager::m_conductiveCells
IL_0108: ldc.i4.1
IL_0109: add
IL_010A: stfld System.Int32 ElectricityManager::m_conductiveCells
IL_010F: Label5
IL_010F: Label7
IL_010F: ldarg.0
IL_0110: ldfld System.UInt16[] ElectricityManager::m_nodeGroups
IL_0115: ldloc.s 5 (System.Int32)
IL_0117: ldc.i4 65535
IL_011C: stelem.i2
IL_011D: ldloc.s 5 (System.Int32)
IL_011F: ldc.i4.1
IL_0120: add
IL_0121: stloc.s 5 (System.Int32)
IL_0123: Label4
IL_0123: ldloc.s 5 (System.Int32)
IL_0125: ldloc.s 4 (System.Int32)
IL_0127: ble => Label10
IL_012C: ldloc.1
IL_012D: ldc.i4 256
IL_0132: mul
IL_0133: ldc.i4.7
IL_0134: shr
IL_0135: stloc.s 7 (System.Int32)
IL_0137: ldloc.1
IL_0138: ldc.i4.1
IL_0139: add
IL_013A: ldc.i4 256
IL_013F: mul
IL_0140: ldc.i4.7
IL_0141: shr
IL_0142: ldc.i4.1
IL_0143: sub
IL_0144: stloc.s 8 (System.Int32)
IL_0146: ldloc.s 7 (System.Int32)
IL_0148: stloc.s 9 (System.Int32)
IL_014A: br => Label11
IL_014F: Label21
IL_014F: ldloc.s 9 (System.Int32)
IL_0151: ldc.i4 256
IL_0156: mul
IL_0157: stloc.s 10 (System.Int32)
IL_0159: ldc.i4.0
IL_015A: stloc.s 11 (System.Int32)
IL_015C: br => Label12
IL_0161: Label20
IL_0161: ldarg.0
IL_0162: ldfld Cell[] ElectricityManager::m_electricityGrid
IL_0167: ldloc.s 10 (System.Int32)
IL_0169: ldelema ElectricityManager+Cell
IL_016E: ldobj ElectricityManager+Cell
IL_0173: stloc.s 12 (ElectricityManager+Cell)
IL_0175: ldloca.s 12 (ElectricityManager+Cell)
IL_0177: ldfld System.Int16 Cell::m_currentCharge
IL_017C: ldc.i4.0
IL_017D: ble => Label13
IL_0182: ldarg.0
IL_0183: ldfld System.Int32 ElectricityManager::m_pulseGroupCount
IL_0188: ldc.i4 1024
IL_018D: bge => Label14
IL_0192: ldloca.s 13 (ElectricityManager+PulseGroup)
IL_0194: ldloca.s 12 (ElectricityManager+Cell)
IL_0196: ldfld System.Int16 Cell::m_currentCharge
IL_019B: conv.u4
IL_019C: stfld System.UInt32 PulseGroup::m_origCharge
IL_01A1: ldloca.s 13 (ElectricityManager+PulseGroup)
IL_01A3: ldloca.s 12 (ElectricityManager+Cell)
IL_01A5: ldfld System.Int16 Cell::m_currentCharge
IL_01AA: conv.u4
IL_01AB: stfld System.UInt32 PulseGroup::m_curCharge
IL_01B0: ldloca.s 13 (ElectricityManager+PulseGroup)
IL_01B2: ldc.i4.0
IL_01B3: stfld System.UInt16 PulseGroup::m_mergeCount
IL_01B8: ldloca.s 13 (ElectricityManager+PulseGroup)
IL_01BA: ldc.i4 65535
IL_01BF: stfld System.UInt16 PulseGroup::m_mergeIndex
IL_01C4: ldloca.s 13 (ElectricityManager+PulseGroup)
IL_01C6: ldloc.s 11 (System.Int32)
IL_01C8: conv.u1
IL_01C9: stfld System.Byte PulseGroup::m_x
IL_01CE: ldloca.s 13 (ElectricityManager+PulseGroup)
IL_01D0: ldloc.s 9 (System.Int32)
IL_01D2: conv.u1
IL_01D3: stfld System.Byte PulseGroup::m_z
IL_01D8: ldloca.s 14 (ElectricityManager+PulseUnit)
IL_01DA: ldarg.0
IL_01DB: ldfld System.Int32 ElectricityManager::m_pulseGroupCount
IL_01E0: conv.u2
IL_01E1: stfld System.UInt16 PulseUnit::m_group
IL_01E6: ldloca.s 14 (ElectricityManager+PulseUnit)
IL_01E8: ldc.i4.0
IL_01E9: stfld System.UInt16 PulseUnit::m_node
IL_01EE: ldloca.s 14 (ElectricityManager+PulseUnit)
IL_01F0: ldloc.s 11 (System.Int32)
IL_01F2: conv.u1
IL_01F3: stfld System.Byte PulseUnit::m_x
IL_01F8: ldloca.s 14 (ElectricityManager+PulseUnit)
IL_01FA: ldloc.s 9 (System.Int32)
IL_01FC: conv.u1
IL_01FD: stfld System.Byte PulseUnit::m_z
IL_0202: ldloca.s 12 (ElectricityManager+Cell)
IL_0204: ldarg.0
IL_0205: ldfld System.Int32 ElectricityManager::m_pulseGroupCount
IL_020A: conv.u2
IL_020B: stfld System.UInt16 Cell::m_pulseGroup
IL_0210: ldarg.0
IL_0211: ldfld PulseGroup[] ElectricityManager::m_pulseGroups
IL_0216: ldarg.0
IL_0217: dup
IL_0218: ldfld System.Int32 ElectricityManager::m_pulseGroupCount
IL_021D: dup
IL_021E: stloc.s 15 (System.Int32)
IL_0220: ldc.i4.1
IL_0221: add
IL_0222: stfld System.Int32 ElectricityManager::m_pulseGroupCount
IL_0227: ldloc.s 15 (System.Int32)
IL_0229: ldelema ElectricityManager+PulseGroup
IL_022E: ldloc.s 13 (ElectricityManager+PulseGroup)
IL_0230: stobj ElectricityManager+PulseGroup
IL_0235: ldarg.0
IL_0236: ldfld PulseUnit[] ElectricityManager::m_pulseUnits
IL_023B: ldarg.0
IL_023C: ldfld System.Int32 ElectricityManager::m_pulseUnitEnd
IL_0241: ldelema ElectricityManager+PulseUnit
IL_0246: ldloc.s 14 (ElectricityManager+PulseUnit)
IL_0248: stobj ElectricityManager+PulseUnit
IL_024D: ldarg.0
IL_024E: dup
IL_024F: ldfld System.Int32 ElectricityManager::m_pulseUnitEnd
IL_0254: ldc.i4.1
IL_0255: add
IL_0256: dup
IL_0257: stloc.s 15 (System.Int32)
IL_0259: stfld System.Int32 ElectricityManager::m_pulseUnitEnd
IL_025E: ldloc.s 15 (System.Int32)
IL_0260: ldarg.0
IL_0261: ldfld PulseUnit[] ElectricityManager::m_pulseUnits
IL_0266: ldlen
IL_0267: conv.i4
IL_0268: bne.un => Label15
IL_026D: ldarg.0
IL_026E: ldc.i4.0
IL_026F: stfld System.Int32 ElectricityManager::m_pulseUnitEnd
IL_0274: Label15
IL_0274: br => Label16
IL_0279: Label14
IL_0279: ldloca.s 12 (ElectricityManager+Cell)
IL_027B: ldc.i4 65535
IL_0280: stfld System.UInt16 Cell::m_pulseGroup
IL_0285: Label16
IL_0285: ldloca.s 12 (ElectricityManager+Cell)
IL_0287: ldc.i4.0
IL_0288: stfld System.Int16 Cell::m_currentCharge
IL_028D: ldarg.0
IL_028E: dup
IL_028F: ldfld System.Int32 ElectricityManager::m_conductiveCells
IL_0294: ldc.i4.1
IL_0295: add
IL_0296: stfld System.Int32 ElectricityManager::m_conductiveCells
IL_029B: br => Label17
IL_02A0: Label13
IL_02A0: ldloca.s 12 (ElectricityManager+Cell)
IL_02A2: ldc.i4 65535
IL_02A7: stfld System.UInt16 Cell::m_pulseGroup
IL_02AC: ldloca.s 12 (ElectricityManager+Cell)
IL_02AE: ldfld System.Byte Cell::m_conductivity
IL_02B3: ldc.i4.s 64
IL_02B5: blt => Label18
IL_02BA: ldarg.0
IL_02BB: dup
IL_02BC: ldfld System.Int32 ElectricityManager::m_conductiveCells
IL_02C1: ldc.i4.1
IL_02C2: add
IL_02C3: stfld System.Int32 ElectricityManager::m_conductiveCells
IL_02C8: Label17
IL_02C8: Label18
IL_02C8: ldloca.s 12 (ElectricityManager+Cell)
IL_02CA: ldfld System.Boolean Cell::m_tmpElectrified
IL_02CF: ldloca.s 12 (ElectricityManager+Cell)
IL_02D1: ldfld System.Boolean Cell::m_electrified
IL_02D6: beq => Label19
IL_02DB: ldloca.s 12 (ElectricityManager+Cell)
IL_02DD: ldloca.s 12 (ElectricityManager+Cell)
IL_02DF: ldfld System.Boolean Cell::m_tmpElectrified
IL_02E4: stfld System.Boolean Cell::m_electrified
IL_02E9: Label19
IL_02E9: ldloca.s 12 (ElectricityManager+Cell)
IL_02EB: ldloca.s 12 (ElectricityManager+Cell)
IL_02ED: ldfld System.UInt16 Cell::m_pulseGroup
IL_02F2: ldc.i4 65535
IL_02F7: ceq
IL_02F9: ldc.i4.0
IL_02FA: ceq
IL_02FC: stfld System.Boolean Cell::m_tmpElectrified
IL_0301: ldarg.0
IL_0302: ldfld Cell[] ElectricityManager::m_electricityGrid
IL_0307: ldloc.s 10 (System.Int32)
IL_0309: ldelema ElectricityManager+Cell
IL_030E: ldloc.s 12 (ElectricityManager+Cell)
IL_0310: stobj ElectricityManager+Cell
IL_0315: ldloc.s 10 (System.Int32)
IL_0317: ldc.i4.1
IL_0318: add
IL_0319: stloc.s 10 (System.Int32)
IL_031B: ldloc.s 11 (System.Int32)
IL_031D: ldc.i4.1
IL_031E: add
IL_031F: stloc.s 11 (System.Int32)
IL_0321: Label12
IL_0321: ldloc.s 11 (System.Int32)
IL_0323: ldc.i4 256
IL_0328: blt => Label20
IL_032D: ldloc.s 9 (System.Int32)
IL_032F: ldc.i4.1
IL_0330: add
IL_0331: stloc.s 9 (System.Int32)
IL_0333: Label11
IL_0333: ldloc.s 9 (System.Int32)
IL_0335: ldloc.s 8 (System.Int32)
IL_0337: ble => Label21
IL_033C: br => Label22
IL_0341: Label2
IL_0341: ldloc.1
IL_0342: ldc.i4.s 127
IL_0344: sub
IL_0345: ldarg.0
IL_0346: ldfld System.Int32 ElectricityManager::m_conductiveCells
IL_034B: mul
IL_034C: ldc.i4.7
IL_034D: shr
IL_034E: stloc.s 16 (System.Int32)
IL_0350: ldloc.1
IL_0351: ldc.i4 255
IL_0356: bne.un => Label23
IL_035B: ldc.i4 1000000000
IL_0360: stloc.s 16 (System.Int32)
IL_0362: Label23
IL_0362: br => Label24
IL_0367: Label54
IL_0367: ldarg.0
IL_0368: ldc.i4.0
IL_0369: stfld System.Boolean ElectricityManager::m_canContinue
IL_036E: ldarg.0
IL_036F: ldfld System.Int32 ElectricityManager::m_pulseUnitEnd
IL_0374: stloc.s 17 (System.Int32)
IL_0376: br => Label25
IL_037B: Label52
IL_037B: ldarg.0
IL_037C: ldfld PulseUnit[] ElectricityManager::m_pulseUnits
IL_0381: ldarg.0
IL_0382: ldfld System.Int32 ElectricityManager::m_pulseUnitStart
IL_0387: ldelema ElectricityManager+PulseUnit
IL_038C: ldobj ElectricityManager+PulseUnit
IL_0391: stloc.s 18 (ElectricityManager+PulseUnit)
IL_0393: ldarg.0
IL_0394: dup
IL_0395: ldfld System.Int32 ElectricityManager::m_pulseUnitStart
IL_039A: ldc.i4.1
IL_039B: add
IL_039C: dup
IL_039D: stloc.s 15 (System.Int32)
IL_039F: stfld System.Int32 ElectricityManager::m_pulseUnitStart
IL_03A4: ldloc.s 15 (System.Int32)
IL_03A6: ldarg.0
IL_03A7: ldfld PulseUnit[] ElectricityManager::m_pulseUnits
IL_03AC: ldlen
IL_03AD: conv.i4
IL_03AE: bne.un => Label26
IL_03B3: ldarg.0
IL_03B4: ldc.i4.0
IL_03B5: stfld System.Int32 ElectricityManager::m_pulseUnitStart
IL_03BA: Label26
IL_03BA: ldloca.s 18 (ElectricityManager+PulseUnit)
IL_03BC: ldarg.0
IL_03BD: ldloca.s 18 (ElectricityManager+PulseUnit)
IL_03BF: ldfld System.UInt16 PulseUnit::m_group
IL_03C4: call System.UInt16 ElectricityManager::GetRootGroup(System.UInt16
group)
IL_03C9: stfld System.UInt16 PulseUnit::m_group
IL_03CE: ldarg.0
IL_03CF: ldfld PulseGroup[] ElectricityManager::m_pulseGroups
IL_03D4: ldloca.s 18 (ElectricityManager+PulseUnit)
IL_03D6: ldfld System.UInt16 PulseUnit::m_group
IL_03DB: ldelema ElectricityManager+PulseGroup
IL_03E0: ldfld System.UInt32 PulseGroup::m_curCharge
IL_03E5: stloc.s 19 (System.UInt32)
IL_03E7: ldloca.s 18 (ElectricityManager+PulseUnit)
IL_03E9: ldfld System.UInt16 PulseUnit::m_node
IL_03EE: brtrue => Label27
IL_03F3: ldloca.s 18 (ElectricityManager+PulseUnit)
IL_03F5: ldfld System.Byte PulseUnit::m_z
IL_03FA: ldc.i4 256
IL_03FF: mul
IL_0400: ldloca.s 18 (ElectricityManager+PulseUnit)
IL_0402: ldfld System.Byte PulseUnit::m_x
IL_0407: add
IL_0408: stloc.s 20 (System.Int32)
IL_040A: ldarg.0
IL_040B: ldfld Cell[] ElectricityManager::m_electricityGrid
IL_0410: ldloc.s 20 (System.Int32)
IL_0412: ldelema ElectricityManager+Cell
IL_0417: ldobj ElectricityManager+Cell
IL_041C: stloc.s 21 (ElectricityManager+Cell)
IL_041E: ldloca.s 21 (ElectricityManager+Cell)
IL_0420: ldfld System.Byte Cell::m_conductivity
IL_0425: brfalse => Label28
IL_042A: ldloca.s 21 (ElectricityManager+Cell)
IL_042C: ldfld System.Boolean Cell::m_tmpElectrified
IL_0431: brtrue => Label29
IL_0436: ldloc.s 19 (System.UInt32)
IL_0438: brfalse => Label30
IL_043D: ldloca.s 21 (ElectricityManager+Cell)
IL_043F: ldfld System.Int16 Cell::m_currentCharge
IL_0444: neg
IL_0445: ldc.i4.0
IL_0446: ldloc.s 19 (System.UInt32)
IL_0448: call static System.Int32 UnityEngine.Mathf::Clamp(System.Int32
value, System.Int32 min, System.Int32 max)
IL_044D: stloc.s 22 (System.Int32)
IL_044F: ldloc.s 19 (System.UInt32)
IL_0451: ldloc.s 22 (System.Int32)
IL_0453: sub
IL_0454: stloc.s 19 (System.UInt32)
IL_0456: ldloca.s 21 (ElectricityManager+Cell)
IL_0458: dup
IL_0459: ldfld System.Int16 Cell::m_currentCharge
IL_045E: ldloc.s 22 (System.Int32)
IL_0460: conv.i2
IL_0461: add
IL_0462: conv.i2
IL_0463: stfld System.Int16 Cell::m_currentCharge
IL_0468: ldloca.s 21 (ElectricityManager+Cell)
IL_046A: ldfld System.Int16 Cell::m_currentCharge
IL_046F: brtrue => Label31
IL_0474: ldloca.s 21 (ElectricityManager+Cell)
IL_0476: ldc.i4.1
IL_0477: stfld System.Boolean Cell::m_tmpElectrified
IL_047C: Label31
IL_047C: ldarg.0
IL_047D: ldfld Cell[] ElectricityManager::m_electricityGrid
IL_0482: ldloc.s 20 (System.Int32)
IL_0484: ldelema ElectricityManager+Cell
IL_0489: ldloc.s 21 (ElectricityManager+Cell)
IL_048B: stobj ElectricityManager+Cell
IL_0490: ldarg.0
IL_0491: ldfld PulseGroup[] ElectricityManager::m_pulseGroups
IL_0496: ldloca.s 18 (ElectricityManager+PulseUnit)
IL_0498: ldfld System.UInt16 PulseUnit::m_group
IL_049D: ldelema ElectricityManager+PulseGroup
IL_04A2: ldloc.s 19 (System.UInt32)
IL_04A4: stfld System.UInt32 PulseGroup::m_curCharge
IL_04A9: Label28
IL_04A9: Label29
IL_04A9: Label30
IL_04A9: ldloc.s 19 (System.UInt32)
IL_04AB: brfalse => Label32
IL_04B0: ldloca.s 21 (ElectricityManager+Cell)
IL_04B2: ldfld System.Byte Cell::m_conductivity
IL_04B7: ldc.i4.s 64
IL_04B9: blt => Label33
IL_04BE: ldc.i4.1
IL_04BF: br => Label34
IL_04C4: Label33
IL_04C4: ldc.i4.s 64
IL_04C6: Label34
IL_04C6: stloc.s 23 (System.Int32)
IL_04C8: ldarg.0
IL_04C9: dup
IL_04CA: ldfld System.Int32 ElectricityManager::m_processedCells
IL_04CF: ldc.i4.1
IL_04D0: add
IL_04D1: stfld System.Int32 ElectricityManager::m_processedCells
IL_04D6: ldloca.s 18 (ElectricityManager+PulseUnit)
IL_04D8: ldfld System.Byte PulseUnit::m_z
IL_04DD: ldc.i4.0
IL_04DE: ble => Label35
IL_04E3: ldarg.0
IL_04E4: ldarg.0
IL_04E5: ldfld Cell[] ElectricityManager::m_electricityGrid
IL_04EA: ldloc.s 20 (System.Int32)
IL_04EC: ldc.i4 256
IL_04F1: sub
IL_04F2: ldelema ElectricityManager+Cell
IL_04F7: ldloca.s 18 (ElectricityManager+PulseUnit)
IL_04F9: ldfld System.UInt16 PulseUnit::m_group
IL_04FE: ldloca.s 18 (ElectricityManager+PulseUnit)
IL_0500: ldfld System.Byte PulseUnit::m_x
IL_0505: ldloca.s 18 (ElectricityManager+PulseUnit)
IL_0507: ldfld System.Byte PulseUnit::m_z
IL_050C: ldc.i4.1
IL_050D: sub
IL_050E: ldloc.s 23 (System.Int32)
IL_0510: call System.Void ElectricityManager::ConductToCell(Cell& cell,
System.UInt16 group, System.Int32 x, System.Int32 z, System.Int32 limit)
IL_0515: Label35
IL_0515: ldloca.s 18 (ElectricityManager+PulseUnit)
IL_0517: ldfld System.Byte PulseUnit::m_x
IL_051C: ldc.i4.0
IL_051D: ble => Label36
IL_0522: ldarg.0
IL_0523: ldarg.0
IL_0524: ldfld Cell[] ElectricityManager::m_electricityGrid
IL_0529: ldloc.s 20 (System.Int32)
IL_052B: ldc.i4.1
IL_052C: sub
IL_052D: ldelema ElectricityManager+Cell
IL_0532: ldloca.s 18 (ElectricityManager+PulseUnit)
IL_0534: ldfld System.UInt16 PulseUnit::m_group
IL_0539: ldloca.s 18 (ElectricityManager+PulseUnit)
IL_053B: ldfld System.Byte PulseUnit::m_x
IL_0540: ldc.i4.1
IL_0541: sub
IL_0542: ldloca.s 18 (ElectricityManager+PulseUnit)
IL_0544: ldfld System.Byte PulseUnit::m_z
IL_0549: ldloc.s 23 (System.Int32)
IL_054B: call System.Void ElectricityManager::ConductToCell(Cell& cell,
System.UInt16 group, System.Int32 x, System.Int32 z, System.Int32 limit)
IL_0550: Label36
IL_0550: ldloca.s 18 (ElectricityManager+PulseUnit)
IL_0552: ldfld System.Byte PulseUnit::m_z
IL_0557: ldc.i4 255
IL_055C: bge => Label37
IL_0561: ldarg.0
IL_0562: ldarg.0
IL_0563: ldfld Cell[] ElectricityManager::m_electricityGrid
IL_0568: ldloc.s 20 (System.Int32)
IL_056A: ldc.i4 256
IL_056F: add
IL_0570: ldelema ElectricityManager+Cell
IL_0575: ldloca.s 18 (ElectricityManager+PulseUnit)
IL_0577: ldfld System.UInt16 PulseUnit::m_group
IL_057C: ldloca.s 18 (ElectricityManager+PulseUnit)
IL_057E: ldfld System.Byte PulseUnit::m_x
IL_0583: ldloca.s 18 (ElectricityManager+PulseUnit)
IL_0585: ldfld System.Byte PulseUnit::m_z
IL_058A: ldc.i4.1
IL_058B: add
IL_058C: ldloc.s 23 (System.Int32)
IL_058E: call System.Void ElectricityManager::ConductToCell(Cell& cell,
System.UInt16 group, System.Int32 x, System.Int32 z, System.Int32 limit)
IL_0593: Label37
IL_0593: ldloca.s 18 (ElectricityManager+PulseUnit)
IL_0595: ldfld System.Byte PulseUnit::m_x
IL_059A: ldc.i4 255
IL_059F: bge => Label38
IL_05A4: ldarg.0
IL_05A5: ldarg.0
IL_05A6: ldfld Cell[] ElectricityManager::m_electricityGrid
IL_05AB: ldloc.s 20 (System.Int32)
IL_05AD: ldc.i4.1
IL_05AE: add
IL_05AF: ldelema ElectricityManager+Cell
IL_05B4: ldloca.s 18 (ElectricityManager+PulseUnit)
IL_05B6: ldfld System.UInt16 PulseUnit::m_group
IL_05BB: ldloca.s 18 (ElectricityManager+PulseUnit)
IL_05BD: ldfld System.Byte PulseUnit::m_x
IL_05C2: ldc.i4.1
IL_05C3: add
IL_05C4: ldloca.s 18 (ElectricityManager+PulseUnit)
IL_05C6: ldfld System.Byte PulseUnit::m_z
IL_05CB: ldloc.s 23 (System.Int32)
IL_05CD: call System.Void ElectricityManager::ConductToCell(Cell& cell,
System.UInt16 group, System.Int32 x, System.Int32 z, System.Int32 limit)
IL_05D2: Label38
IL_05D2: ldarg.0
IL_05D3: ldloca.s 18 (ElectricityManager+PulseUnit)
IL_05D5: ldfld System.UInt16 PulseUnit::m_group
IL_05DA: ldloca.s 18 (ElectricityManager+PulseUnit)
IL_05DC: ldfld System.Byte PulseUnit::m_x
IL_05E1: ldloca.s 18 (ElectricityManager+PulseUnit)
IL_05E3: ldfld System.Byte PulseUnit::m_z
IL_05E8: call System.Void ElectricityManager::ConductToNodes(System.UInt16
group, System.Int32 cellX, System.Int32 cellZ)
IL_05ED: br => Label39
IL_05F2: Label32
IL_05F2: ldarg.0
IL_05F3: ldfld PulseUnit[] ElectricityManager::m_pulseUnits
IL_05F8: ldarg.0
IL_05F9: ldfld System.Int32 ElectricityManager::m_pulseUnitEnd
IL_05FE: ldelema ElectricityManager+PulseUnit
IL_0603: ldloc.s 18 (ElectricityManager+PulseUnit)
IL_0605: stobj ElectricityManager+PulseUnit
IL_060A: ldarg.0
IL_060B: dup
IL_060C: ldfld System.Int32 ElectricityManager::m_pulseUnitEnd
IL_0611: ldc.i4.1
IL_0612: add
IL_0613: dup
IL_0614: stloc.s 15 (System.Int32)
IL_0616: stfld System.Int32 ElectricityManager::m_pulseUnitEnd
IL_061B: ldloc.s 15 (System.Int32)
IL_061D: ldarg.0
IL_061E: ldfld PulseUnit[] ElectricityManager::m_pulseUnits
IL_0623: ldlen
IL_0624: conv.i4
IL_0625: bne.un => Label40
IL_062A: ldarg.0
IL_062B: ldc.i4.0
IL_062C: stfld System.Int32 ElectricityManager::m_pulseUnitEnd
IL_0631: Label39
IL_0631: Label40
IL_0631: br => Label41
IL_0636: Label27
IL_0636: ldloc.s 19 (System.UInt32)
IL_0638: brfalse => Label42
IL_063D: ldarg.0
IL_063E: dup
IL_063F: ldfld System.Int32 ElectricityManager::m_processedCells
IL_0644: ldc.i4.1
IL_0645: add
IL_0646: stfld System.Int32 ElectricityManager::m_processedCells
IL_064B: call static NetManager
ColossalFramework.Singleton`1<NetManager>::get_instance()
IL_0650: ldfld Array16`1<NetNode> NetManager::m_nodes
IL_0655: ldfld NetNode[] Array16`1<NetNode>::m_buffer
IL_065A: ldloca.s 18 (ElectricityManager+PulseUnit)
IL_065C: ldfld System.UInt16 PulseUnit::m_node
IL_0661: ldelema NetNode
IL_0666: ldobj NetNode
IL_066B: stloc.s 24 (NetNode)
IL_066D: ldloca.s 24 (NetNode)
IL_066F: ldfld Flags NetNode::m_flags
IL_0674: brfalse => Label43
IL_0679: ldloca.s 24 (NetNode)
IL_067B: ldfld System.UInt32 NetNode::m_buildIndex
IL_0680: ldloc.0
IL_0681: ldc.i4.s -128
IL_0683: and
IL_0684: bge.un => Label44
IL_0689: ldarg.0
IL_068A: ldloca.s 18 (ElectricityManager+PulseUnit)
IL_068C: ldfld System.UInt16 PulseUnit::m_group
IL_0691: ldloca.s 24 (NetNode)
IL_0693: ldflda UnityEngine.Vector3 NetNode::m_position
IL_0698: ldfld System.Single UnityEngine.Vector3::x
IL_069D: ldloca.s 24 (NetNode)
IL_069F: ldflda UnityEngine.Vector3 NetNode::m_position
IL_06A4: ldfld System.Single UnityEngine.Vector3::z
IL_06A9: call System.Void ElectricityManager::ConductToCells(System.UInt16
group, System.Single worldX, System.Single worldZ)
IL_06AE: ldc.i4.0
IL_06AF: stloc.s 25 (System.Int32)
IL_06B1: br => Label45
IL_06B6: Label49
IL_06B6: ldloca.s 24 (NetNode)
IL_06B8: ldloc.s 25 (System.Int32)
IL_06BA: call System.UInt16 NetNode::GetSegment(System.Int32 index)
IL_06BF: stloc.s 26 (System.UInt16)
IL_06C1: ldloc.s 26 (System.UInt16)
IL_06C3: brfalse => Label46
IL_06C8: call static NetManager
ColossalFramework.Singleton`1<NetManager>::get_instance()
IL_06CD: ldfld Array16`1<NetSegment> NetManager::m_segments
IL_06D2: ldfld NetSegment[] Array16`1<NetSegment>::m_buffer
IL_06D7: ldloc.s 26 (System.UInt16)
IL_06D9: ldelema NetSegment
IL_06DE: ldfld System.UInt16 NetSegment::m_startNode
IL_06E3: stloc.s 27 (System.UInt16)
IL_06E5: call static NetManager
ColossalFramework.Singleton`1<NetManager>::get_instance()
IL_06EA: ldfld Array16`1<NetSegment> NetManager::m_segments
IL_06EF: ldfld NetSegment[] Array16`1<NetSegment>::m_buffer
IL_06F4: ldloc.s 26 (System.UInt16)
IL_06F6: ldelema NetSegment
IL_06FB: ldfld System.UInt16 NetSegment::m_endNode
IL_0700: stloc.s 28 (System.UInt16)
IL_0702: ldloc.s 27 (System.UInt16)
IL_0704: ldloca.s 18 (ElectricityManager+PulseUnit)
IL_0706: ldfld System.UInt16 PulseUnit::m_node
IL_070B: bne.un => Label47
IL_0710: ldloc.s 28 (System.UInt16)
IL_0712: br => Label48
IL_0717: Label47
IL_0717: ldloc.s 27 (System.UInt16)
IL_0719: Label48
IL_0719: stloc.s 29 (System.UInt16)
IL_071B: ldarg.0
IL_071C: ldloc.s 29 (System.UInt16)
IL_071E: call static NetManager
ColossalFramework.Singleton`1<NetManager>::get_instance()
IL_0723: ldfld Array16`1<NetNode> NetManager::m_nodes
IL_0728: ldfld NetNode[] Array16`1<NetNode>::m_buffer
IL_072D: ldloc.s 29 (System.UInt16)
IL_072F: ldelema NetNode
IL_0734: ldloca.s 18 (ElectricityManager+PulseUnit)
IL_0736: ldfld System.UInt16 PulseUnit::m_group
IL_073B: ldc.r4 -100000
IL_0740: ldc.r4 -100000
IL_0745: ldc.r4 100000
IL_074A: ldc.r4 100000
IL_074F: call System.Void ElectricityManager::ConductToNode(System.UInt16
nodeIndex, NetNode& node, System.UInt16 group, System.Single minX, System.Single
minZ, System.Single maxX, System.Single maxZ)
IL_0754: Label46
IL_0754: ldloc.s 25 (System.Int32)
IL_0756: ldc.i4.1
IL_0757: add
IL_0758: stloc.s 25 (System.Int32)
IL_075A: Label45
IL_075A: ldloc.s 25 (System.Int32)
IL_075C: ldc.i4.8
IL_075D: blt => Label49
IL_0762: Label43
IL_0762: Label44
IL_0762: br => Label50
IL_0767: Label42
IL_0767: ldarg.0
IL_0768: ldfld PulseUnit[] ElectricityManager::m_pulseUnits
IL_076D: ldarg.0
IL_076E: ldfld System.Int32 ElectricityManager::m_pulseUnitEnd
IL_0773: ldelema ElectricityManager+PulseUnit
IL_0778: ldloc.s 18 (ElectricityManager+PulseUnit)
IL_077A: stobj ElectricityManager+PulseUnit
IL_077F: ldarg.0
IL_0780: dup
IL_0781: ldfld System.Int32 ElectricityManager::m_pulseUnitEnd
IL_0786: ldc.i4.1
IL_0787: add
IL_0788: dup
IL_0789: stloc.s 15 (System.Int32)
IL_078B: stfld System.Int32 ElectricityManager::m_pulseUnitEnd
IL_0790: ldloc.s 15 (System.Int32)
IL_0792: ldarg.0
IL_0793: ldfld PulseUnit[] ElectricityManager::m_pulseUnits
IL_0798: ldlen
IL_0799: conv.i4
IL_079A: bne.un => Label51
IL_079F: ldarg.0
IL_07A0: ldc.i4.0
IL_07A1: stfld System.Int32 ElectricityManager::m_pulseUnitEnd
IL_07A6: Label25
IL_07A6: Label41
IL_07A6: Label50
IL_07A6: Label51
IL_07A6: ldarg.0
IL_07A7: ldfld System.Int32 ElectricityManager::m_pulseUnitStart
IL_07AC: ldloc.s 17 (System.Int32)
IL_07AE: bne.un => Label52
IL_07B3: Label24
IL_07B3: ldarg.0
IL_07B4: ldfld System.Boolean ElectricityManager::m_canContinue
IL_07B9: brfalse => Label53
IL_07BE: ldarg.0
IL_07BF: ldfld System.Int32 ElectricityManager::m_processedCells
IL_07C4: ldloc.s 16 (System.Int32)
IL_07C6: blt => Label54
IL_07CB: Label53
IL_07CB: ldloc.1
IL_07CC: ldc.i4 255
IL_07D1: bne.un => Label55
IL_07D6: ldc.i4.0
IL_07D7: stloc.s 30 (System.Int32)
IL_07D9: br => Label56
IL_07DE: Label58
IL_07DE: ldarg.0
IL_07DF: ldfld PulseGroup[] ElectricityManager::m_pulseGroups
IL_07E4: ldloc.s 30 (System.Int32)
IL_07E6: ldelema ElectricityManager+PulseGroup
IL_07EB: ldobj ElectricityManager+PulseGroup
IL_07F0: stloc.s 31 (ElectricityManager+PulseGroup)
IL_07F2: ldloca.s 31 (ElectricityManager+PulseGroup)
IL_07F4: ldfld System.UInt16 PulseGroup::m_mergeIndex
IL_07F9: ldc.i4 65535
IL_07FE: beq => Label57
IL_0803: ldarg.0
IL_0804: ldfld PulseGroup[] ElectricityManager::m_pulseGroups
IL_0809: ldloca.s 31 (ElectricityManager+PulseGroup)
IL_080B: ldfld System.UInt16 PulseGroup::m_mergeIndex
IL_0810: ldelema ElectricityManager+PulseGroup
IL_0815: ldobj ElectricityManager+PulseGroup
IL_081A: stloc.s 32 (ElectricityManager+PulseGroup)
IL_081C: ldloca.s 31 (ElectricityManager+PulseGroup)
IL_081E: ldloca.s 32 (ElectricityManager+PulseGroup)
IL_0820: ldfld System.UInt32 PulseGroup::m_curCharge
IL_0825: conv.u8
IL_0826: ldloca.s 31 (ElectricityManager+PulseGroup)
IL_0828: ldfld System.UInt32 PulseGroup::m_origCharge
IL_082D: conv.u8
IL_082E: mul
IL_082F: ldloca.s 32 (ElectricityManager+PulseGroup)
IL_0831: ldfld System.UInt32 PulseGroup::m_origCharge
IL_0836: conv.u8
IL_0837: div.un
IL_0838: conv.u4
IL_0839: stfld System.UInt32 PulseGroup::m_curCharge
IL_083E: ldloca.s 32 (ElectricityManager+PulseGroup)
IL_0840: dup
IL_0841: ldfld System.UInt32 PulseGroup::m_curCharge
IL_0846: ldloca.s 31 (ElectricityManager+PulseGroup)
IL_0848: ldfld System.UInt32 PulseGroup::m_curCharge
IL_084D: sub
IL_084E: stfld System.UInt32 PulseGroup::m_curCharge
IL_0853: ldloca.s 32 (ElectricityManager+PulseGroup)
IL_0855: dup
IL_0856: ldfld System.UInt32 PulseGroup::m_origCharge
IL_085B: ldloca.s 31 (ElectricityManager+PulseGroup)
IL_085D: ldfld System.UInt32 PulseGroup::m_origCharge
IL_0862: sub
IL_0863: stfld System.UInt32 PulseGroup::m_origCharge
IL_0868: ldarg.0
IL_0869: ldfld PulseGroup[] ElectricityManager::m_pulseGroups
IL_086E: ldloca.s 31 (ElectricityManager+PulseGroup)
IL_0870: ldfld System.UInt16 PulseGroup::m_mergeIndex
IL_0875: ldelema ElectricityManager+PulseGroup
IL_087A: ldloc.s 32 (ElectricityManager+PulseGroup)
IL_087C: stobj ElectricityManager+PulseGroup
IL_0881: ldarg.0
IL_0882: ldfld PulseGroup[] ElectricityManager::m_pulseGroups
IL_0887: ldloc.s 30 (System.Int32)
IL_0889: ldelema ElectricityManager+PulseGroup
IL_088E: ldloc.s 31 (ElectricityManager+PulseGroup)
IL_0890: stobj ElectricityManager+PulseGroup
IL_0895: Label57
IL_0895: ldloc.s 30 (System.Int32)
IL_0897: ldc.i4.1
IL_0898: add
IL_0899: stloc.s 30 (System.Int32)
IL_089B: Label56
IL_089B: ldloc.s 30 (System.Int32)
IL_089D: ldarg.0
IL_089E: ldfld System.Int32 ElectricityManager::m_pulseGroupCount
IL_08A3: blt => Label58
IL_08A8: ldc.i4.0
IL_08A9: stloc.s 33 (System.Int32)
IL_08AB: br => Label59
IL_08B0: Label62
IL_08B0: ldarg.0
IL_08B1: ldfld PulseGroup[] ElectricityManager::m_pulseGroups
IL_08B6: ldloc.s 33 (System.Int32)
IL_08B8: ldelema ElectricityManager+PulseGroup
IL_08BD: ldobj ElectricityManager+PulseGroup
IL_08C2: stloc.s 34 (ElectricityManager+PulseGroup)
IL_08C4: ldloca.s 34 (ElectricityManager+PulseGroup)
IL_08C6: ldfld System.UInt32 PulseGroup::m_curCharge
IL_08CB: brfalse => Label60
IL_08D0: ldloca.s 34 (ElectricityManager+PulseGroup)
IL_08D2: ldfld System.Byte PulseGroup::m_z
IL_08D7: ldc.i4 256
IL_08DC: mul
IL_08DD: ldloca.s 34 (ElectricityManager+PulseGroup)
IL_08DF: ldfld System.Byte PulseGroup::m_x
IL_08E4: add
IL_08E5: stloc.s 35 (System.Int32)
IL_08E7: ldarg.0
IL_08E8: ldfld Cell[] ElectricityManager::m_electricityGrid
IL_08ED: ldloc.s 35 (System.Int32)
IL_08EF: ldelema ElectricityManager+Cell
IL_08F4: ldobj ElectricityManager+Cell
IL_08F9: stloc.s 36 (ElectricityManager+Cell)
IL_08FB: ldloca.s 36 (ElectricityManager+Cell)
IL_08FD: ldfld System.Byte Cell::m_conductivity
IL_0902: brfalse => Label61
IL_0907: ldloca.s 36 (ElectricityManager+Cell)
IL_0909: dup
IL_090A: ldfld System.UInt16 Cell::m_extraCharge
IL_090F: ldloca.s 34 (ElectricityManager+PulseGroup)
IL_0911: ldfld System.UInt32 PulseGroup::m_curCharge
IL_0916: ldc.i4 32767
IL_091B: ldloca.s 36 (ElectricityManager+Cell)
IL_091D: ldfld System.UInt16 Cell::m_extraCharge
IL_0922: sub
IL_0923: call static System.Int32 UnityEngine.Mathf::Min(System.Int32 a,
System.Int32 b)
IL_0928: conv.u2
IL_0929: add
IL_092A: conv.u2
IL_092B: stfld System.UInt16 Cell::m_extraCharge
IL_0930: Label61
IL_0930: ldarg.0
IL_0931: ldfld Cell[] ElectricityManager::m_electricityGrid
IL_0936: ldloc.s 35 (System.Int32)
IL_0938: ldelema ElectricityManager+Cell
IL_093D: ldloc.s 36 (ElectricityManager+Cell)
IL_093F: stobj ElectricityManager+Cell
IL_0944: Label60
IL_0944: ldloc.s 33 (System.Int32)
IL_0946: ldc.i4.1
IL_0947: add
IL_0948: stloc.s 33 (System.Int32)
IL_094A: Label59
IL_094A: ldloc.s 33 (System.Int32)
IL_094C: ldarg.0
IL_094D: ldfld System.Int32 ElectricityManager::m_pulseGroupCount
IL_0952: blt => Label62
IL_0957: // end original
IL_0957: Label0
IL_0957: Label1
IL_0957: Label22
IL_0957: Label55
IL_0957: ret
DONE
### Patch: System.Void ElectricityManager::ConductToNode(System.UInt16 nodeIndex,
NetNode& node, System.UInt16 group, System.Single minX, System.Single minZ,
System.Single maxX, System.Single maxZ)
### Replacement: static System.Void
ElectricityManager::ElectricityManager.ConductToNode_Patch0(ElectricityManager
this, System.UInt16 nodeIndex, NetNode& node, System.UInt16 group, System.Single
minX, System.Single minZ, System.Single maxX, System.Single maxZ)
IL_0000: Local var 0: NetInfo
IL_0000: Local var 1: ElectricityManager/PulseUnit
IL_0000: Local var 2: System.Int32
IL_0000: Local var 3: System.UInt16
IL_0000: // start original
IL_0000: ldarg.2
IL_0001: ldflda UnityEngine.Vector3 NetNode::m_position
IL_0006: ldfld System.Single UnityEngine.Vector3::x
IL_000B: ldarg.s 4
IL_000D: blt.un => Label0
IL_0012: ldarg.2
IL_0013: ldflda UnityEngine.Vector3 NetNode::m_position
IL_0018: ldfld System.Single UnityEngine.Vector3::z
IL_001D: ldarg.s 5
IL_001F: blt.un => Label1
IL_0024: ldarg.2
IL_0025: ldflda UnityEngine.Vector3 NetNode::m_position
IL_002A: ldfld System.Single UnityEngine.Vector3::x
IL_002F: ldarg.s 6
IL_0031: bgt.un => Label2
IL_0036: ldarg.2
IL_0037: ldflda UnityEngine.Vector3 NetNode::m_position
IL_003C: ldfld System.Single UnityEngine.Vector3::z
IL_0041: ldarg.s 7
IL_0043: bgt.un => Label3
IL_0048: ldarg.2
IL_0049: call NetInfo NetNode::get_Info()
IL_004E: stloc.0
IL_004F: ldloc.0
IL_0050: ldfld ItemClass NetInfo::m_class
IL_0055: ldfld Service ItemClass::m_service
IL_005A: ldc.i4.s 10
IL_005C: beq => Label4
IL_0061: ldarg.2
IL_0062: call NetInfo NetNode::get_Info()
IL_0067: ldfld NetAI NetInfo::m_netAI
IL_006C: isinst ConcourseAI
IL_0071: brfalse => Label5
IL_0076: Label4
IL_0076: ldarg.0
IL_0077: ldfld System.UInt16[] ElectricityManager::m_nodeGroups
IL_007C: ldarg.1
IL_007D: ldelem.u2
IL_007E: ldc.i4 65535
IL_0083: bne.un => Label6
IL_0088: ldloca.s 1 (ElectricityManager+PulseUnit)
IL_008A: ldarg.3
IL_008B: stfld System.UInt16 PulseUnit::m_group
IL_0090: ldloca.s 1 (ElectricityManager+PulseUnit)
IL_0092: ldarg.1
IL_0093: stfld System.UInt16 PulseUnit::m_node
IL_0098: ldloca.s 1 (ElectricityManager+PulseUnit)
IL_009A: ldc.i4.0
IL_009B: stfld System.Byte PulseUnit::m_x
IL_00A0: ldloca.s 1 (ElectricityManager+PulseUnit)
IL_00A2: ldc.i4.0
IL_00A3: stfld System.Byte PulseUnit::m_z
IL_00A8: ldarg.0
IL_00A9: ldfld PulseUnit[] ElectricityManager::m_pulseUnits
IL_00AE: ldarg.0
IL_00AF: ldfld System.Int32 ElectricityManager::m_pulseUnitEnd
IL_00B4: ldelema ElectricityManager+PulseUnit
IL_00B9: ldloc.1
IL_00BA: stobj ElectricityManager+PulseUnit
IL_00BF: ldarg.0
IL_00C0: dup
IL_00C1: ldfld System.Int32 ElectricityManager::m_pulseUnitEnd
IL_00C6: ldc.i4.1
IL_00C7: add
IL_00C8: dup
IL_00C9: stloc.2
IL_00CA: stfld System.Int32 ElectricityManager::m_pulseUnitEnd
IL_00CF: ldloc.2
IL_00D0: ldarg.0
IL_00D1: ldfld PulseUnit[] ElectricityManager::m_pulseUnits
IL_00D6: ldlen
IL_00D7: conv.i4
IL_00D8: bne.un => Label7
IL_00DD: ldarg.0
IL_00DE: ldc.i4.0
IL_00DF: stfld System.Int32 ElectricityManager::m_pulseUnitEnd
IL_00E4: Label7
IL_00E4: ldarg.0
IL_00E5: ldfld System.UInt16[] ElectricityManager::m_nodeGroups
IL_00EA: ldarg.1
IL_00EB: ldarg.3
IL_00EC: stelem.i2
IL_00ED: ldarg.0
IL_00EE: ldc.i4.1
IL_00EF: stfld System.Boolean ElectricityManager::m_canContinue
IL_00F4: br => Label8
IL_00F9: Label6
IL_00F9: ldarg.0
IL_00FA: ldarg.0
IL_00FB: ldfld System.UInt16[] ElectricityManager::m_nodeGroups
IL_0100: ldarg.1
IL_0101: ldelem.u2
IL_0102: call System.UInt16 ElectricityManager::GetRootGroup(System.UInt16
group)
IL_0107: stloc.3
IL_0108: ldloc.3
IL_0109: ldarg.3
IL_010A: beq => Label9
IL_010F: ldarg.0
IL_0110: ldarg.3
IL_0111: ldloc.3
IL_0112: call System.Void ElectricityManager::MergeGroups(System.UInt16 root,
System.UInt16 merged)
IL_0117: ldarg.0
IL_0118: ldfld System.UInt16[] ElectricityManager::m_nodeGroups
IL_011D: ldarg.1
IL_011E: ldarg.3
IL_011F: stelem.i2
IL_0120: ldarg.0
IL_0121: ldc.i4.1
IL_0122: stfld System.Boolean ElectricityManager::m_canContinue
IL_0127: // end original
IL_0127: Label0
IL_0127: Label1
IL_0127: Label2
IL_0127: Label3
IL_0127: Label5
IL_0127: Label8
IL_0127: Label9
IL_0127: ret
DONE

### Patch: System.Void ElectricityManager::UpdateNodeElectricity(System.Int32


nodeID, System.Int32 value)
### Replacement: static System.Void
ElectricityManager::ElectricityManager.UpdateNodeElectricity_Patch0(ElectricityMana
ger this, System.Int32 nodeID, System.Int32 value)
IL_0000: Local var 0: InfoManager/InfoMode
IL_0000: Local var 1: NetManager
IL_0000: Local var 2: System.Boolean
IL_0000: Local var 3: NetNode/Flags
IL_0000: Local var 4: System.UInt16
IL_0000: Local var 5: BuildingManager
IL_0000: Local var 6: NetNode/Flags
IL_0000: Local var 7: System.Int32
IL_0000: Local var 8: System.UInt16
IL_0000: // start original
IL_0000: call static InfoManager
ColossalFramework.Singleton`1<InfoManager>::get_instance()
IL_0005: callvirt InfoMode InfoManager::get_CurrentMode()
IL_000A: stloc.0
IL_000B: call static NetManager
ColossalFramework.Singleton`1<NetManager>::get_instance()
IL_0010: stloc.1
IL_0011: ldc.i4.0
IL_0012: stloc.2
IL_0013: ldloc.1
IL_0014: ldfld Array16`1<NetNode> NetManager::m_nodes
IL_0019: ldfld NetNode[] Array16`1<NetNode>::m_buffer
IL_001E: ldarg.1
IL_001F: ldelema NetNode
IL_0024: ldfld Flags NetNode::m_flags
IL_0029: stloc.3
IL_002A: ldloc.3
IL_002B: ldc.i4 1048576
IL_0030: and
IL_0031: brfalse => Label0
IL_0036: ldloc.1
IL_0037: ldfld Array16`1<NetNode> NetManager::m_nodes
IL_003C: ldfld NetNode[] Array16`1<NetNode>::m_buffer
IL_0041: ldarg.1
IL_0042: ldelema NetNode
IL_0047: dup
IL_0048: ldfld Flags NetNode::m_flags
IL_004D: ldc.i4 -1048577
IL_0052: and
IL_0053: stfld Flags NetNode::m_flags
IL_0058: br => Label10
IL_005D: Label0
IL_005D: ldloc.1
IL_005E: ldfld Array16`1<NetNode> NetManager::m_nodes
IL_0063: ldfld NetNode[] Array16`1<NetNode>::m_buffer
IL_0068: ldarg.1
IL_0069: ldelema NetNode
IL_006E: ldfld System.UInt16 NetNode::m_building
IL_0073: stloc.s 4 (System.UInt16)
IL_0075: ldloc.s 4 (System.UInt16)
IL_0077: brfalse => Label1
IL_007C: call static BuildingManager
ColossalFramework.Singleton`1<BuildingManager>::get_instance()
IL_0081: stloc.s 5 (BuildingManager)
IL_0083: ldloc.s 5 (BuildingManager)
IL_0085: ldfld Array16`1<Building> BuildingManager::m_buildings
IL_008A: ldfld Building[] Array16`1<Building>::m_buffer
IL_008F: ldloc.s 4 (System.UInt16)
IL_0091: ldelema Building
IL_0096: ldfld System.UInt16 Building::m_electricityBuffer
IL_009B: ldarg.2
IL_009C: beq => Label2
IL_00A1: ldloc.s 5 (BuildingManager)
IL_00A3: ldfld Array16`1<Building> BuildingManager::m_buildings
IL_00A8: ldfld Building[] Array16`1<Building>::m_buffer
IL_00AD: ldloc.s 4 (System.UInt16)
IL_00AF: ldelema Building
IL_00B4: ldarg.2
IL_00B5: conv.u2
IL_00B6: stfld System.UInt16 Building::m_electricityBuffer
IL_00BB: ldloc.0
IL_00BC: ldc.i4.1
IL_00BD: ceq
IL_00BF: stloc.2
IL_00C0: Label2
IL_00C0: ldloc.2
IL_00C1: brfalse => Label3
IL_00C6: ldloc.s 5 (BuildingManager)
IL_00C8: ldloc.s 4 (System.UInt16)
IL_00CA: callvirt System.Void BuildingManager::UpdateBuildingColors(System.UInt16
building)
IL_00CF: Label1
IL_00CF: Label3
IL_00CF: ldloc.3
IL_00D0: ldc.i4 -67108865
IL_00D5: and
IL_00D6: stloc.s 6 (NetNode+Flags)
IL_00D8: ldarg.2
IL_00D9: brfalse => Label4
IL_00DE: ldloc.s 6 (NetNode+Flags)
IL_00E0: ldc.i4 67108864
IL_00E5: or
IL_00E6: stloc.s 6 (NetNode+Flags)
IL_00E8: Label4
IL_00E8: ldloc.s 6 (NetNode+Flags)
IL_00EA: ldloc.3
IL_00EB: beq => Label5
IL_00F0: ldloc.1
IL_00F1: ldfld Array16`1<NetNode> NetManager::m_nodes
IL_00F6: ldfld NetNode[] Array16`1<NetNode>::m_buffer
IL_00FB: ldarg.1
IL_00FC: ldelema NetNode
IL_0101: ldloc.s 6 (NetNode+Flags)
IL_0103: stfld Flags NetNode::m_flags
IL_0108: ldloc.0
IL_0109: ldc.i4.1
IL_010A: ceq
IL_010C: stloc.2
IL_010D: Label5
IL_010D: ldloc.2
IL_010E: brfalse => Label6
IL_0113: ldloc.1
IL_0114: ldarg.1
IL_0115: conv.u2
IL_0116: callvirt System.Void NetManager::UpdateNodeColors(System.UInt16 node)
IL_011B: ldc.i4.0
IL_011C: stloc.s 7 (System.Int32)
IL_011E: br => Label7
IL_0123: Label9
IL_0123: ldloc.1
IL_0124: ldfld Array16`1<NetNode> NetManager::m_nodes
IL_0129: ldfld NetNode[] Array16`1<NetNode>::m_buffer
IL_012E: ldarg.1
IL_012F: ldelema NetNode
IL_0134: ldloc.s 7 (System.Int32)
IL_0136: call System.UInt16 NetNode::GetSegment(System.Int32 index)
IL_013B: stloc.s 8 (System.UInt16)
IL_013D: ldloc.s 8 (System.UInt16)
IL_013F: brfalse => Label8
IL_0144: ldloc.1
IL_0145: ldloc.s 8 (System.UInt16)
IL_0147: callvirt System.Void NetManager::UpdateSegmentColors(System.UInt16
segment)
IL_014C: Label8
IL_014C: ldloc.s 7 (System.Int32)
IL_014E: ldc.i4.1
IL_014F: add
IL_0150: stloc.s 7 (System.Int32)
IL_0152: Label7
IL_0152: ldloc.s 7 (System.Int32)
IL_0154: ldc.i4.8
IL_0155: blt => Label9
IL_015A: // end original
IL_015A: Label6
IL_015A: Label10
IL_015A: ret
DONE

### Patch: virtual System.Void ColossalFramework.UI.UIView::Start()


### Replacement: static System.Void
ColossalFramework.UI.UIView::ColossalFramework.UI.UIView.Start_Patch1(ColossalFrame
work.UI.UIView this)
IL_0000: Local var 0:
ColossalFramework.PoolList`1<ColossalFramework.UI.UIComponent>
IL_0000: Local var 1: ColossalFramework.UI.UIComponent
IL_0000: Local var 2:
System.Collections.Generic.IEnumerator`1<ColossalFramework.UI.UIComponent>
IL_0000: // start original
IL_0000: ldarg.0
IL_0001: ldc.i4.0
IL_0002: stfld System.Int32 ColossalFramework.UI.UIView::m_FramesRendered
IL_0007: ldarg.0
IL_0008: call System.Void
ColossalFramework.UI.UIView::InvalidateAllComponents()
IL_000D: ldarg.0
IL_000E: ldfld UnityEngine.MeshRenderer
ColossalFramework.UI.UIView::m_MeshRenderer
IL_0013: ldnull
IL_0014: call static System.Boolean
UnityEngine.Object::op_Inequality(UnityEngine.Object x, UnityEngine.Object y)
IL_0019: brfalse => Label0
IL_001E: ldarg.0
IL_001F: ldfld UnityEngine.MeshRenderer
ColossalFramework.UI.UIView::m_MeshRenderer
IL_0024: ldc.i4.1
IL_0025: callvirt System.Void UnityEngine.Renderer::set_enabled(System.Boolean
value)
IL_002A: Label0
IL_002A: ldarg.0
IL_002B: call ColossalFramework.PoolList`1<ColossalFramework.UI.UIComponent>
ColossalFramework.UI.UIView::GetTopLevelComponents()
IL_0030: stloc.0
.try
{
IL_0031: ldloc.0
IL_0032: callvirt virtual
System.Collections.Generic.IEnumerator`1<ColossalFramework.UI.UIComponent>
ColossalFramework.PoolList`1<ColossalFramework.UI.UIComponent>::GetEnumerator()
IL_0037: stloc.2
.try
{
IL_0038: br => Label1
IL_003D: Label2
IL_003D: ldloc.2
IL_003E: callvirt abstract virtual ColossalFramework.UI.UIComponent
System.Collections.Generic.IEnumerator`1<ColossalFramework.UI.UIComponent>::get_Cur
rent()
IL_0043: stloc.1
IL_0044: ldloc.1
IL_0045: ldc.i4.1
IL_0046: callvirt System.Void
ColossalFramework.UI.UIComponent::InitializeParentVisibilityCache(System.Boolean
parentVisible)
IL_004B: Label1
IL_004B: ldloc.2
IL_004C: callvirt abstract virtual System.Boolean
System.Collections.IEnumerator::MoveNext()
IL_0051: brtrue => Label2
IL_0056: leave => Label3
IL_005B: leave => (autogenerated)
} // end try
.finally
{
IL_0060: ldloc.2
IL_0061: brfalse => Label4
IL_0066: ldloc.2
IL_0067: callvirt abstract virtual System.Void
System.IDisposable::Dispose()
IL_006C: Label4
IL_006C: endfinally
IL_006D: leave => (autogenerated)
} // end handler
IL_006E: Label3
IL_006E: leave => Label5
IL_0073: leave => (autogenerated)
} // end try
.finally
{
IL_0078: ldloc.0
IL_0079: brfalse => Label6
IL_007E: ldloc.0
IL_007F: callvirt abstract virtual System.Void
System.IDisposable::Dispose()
IL_0084: Label6
IL_0084: endfinally
IL_0085: leave => (autogenerated)
} // end handler
IL_0086: Label5
IL_0086: ldarg.0
IL_0087: ldc.i4.1
IL_0088: stfld System.Boolean
ColossalFramework.UI.UIView::m_VisibilityCacheInitialized
IL_008D: // end original
IL_008D: call static System.Void
Kwytto.Redirectors.UIViewRedirector::AfterStart()
IL_0092: ret
DONE

### Patch: virtual UnityEngine.Color NetAI::GetColor(System.UInt16 nodeID, NetNode&


data, InfoMode infoMode, SubInfoMode subInfoMode)
### Replacement: static UnityEngine.Color NetAI::NetAI.GetColor_Patch1(NetAI this,
System.UInt16 nodeID, NetNode& data, InfoMode infoMode, SubInfoMode subInfoMode)
IL_0000: Local var 0: UnityEngine.Color
IL_0000: ldloca 0 (UnityEngine.Color)
IL_0004: initobj UnityEngine.Color
IL_000A: // start original
IL_000A: ldarg.3
IL_000B: brfalse => Label0
IL_0010: call static InfoManager
ColossalFramework.Singleton`1<InfoManager>::get_instance()
IL_0015: ldfld InfoProperties SimulationManagerBase`2<InfoManager,
InfoProperties>::m_properties
IL_001A: ldfld UnityEngine.Color InfoProperties::m_neutralColor
IL_001F: br => Label1
IL_0024: Label0
IL_0024: ldarg.0
IL_0025: ldfld NetInfo NetAI::m_info
IL_002A: ldfld UnityEngine.Color NetInfo::m_color
IL_002F: // end original
IL_002F: Label1
IL_002F: stloc 0 (UnityEngine.Color)
IL_0033: ldloca 0 (UnityEngine.Color)
IL_0037: ldarg 1
IL_003B: ldarg 2
IL_003F: ldarg 3
IL_0043: ldarg 4
IL_0047: call static System.Void
ElectricRoads.Overrides.ElectricRoadsOverrides::AfterGetColorNode(UnityEngine.Color
& __result, System.UInt16 nodeID, NetNode& data, InfoMode infoMode, SubInfoMode
subInfoMode)
IL_004C: ldloc 0 (UnityEngine.Color)
IL_0050: ret
DONE

### Patch: virtual UnityEngine.Color NetAI::GetColor(System.UInt16 segmentID,


NetSegment& data, InfoMode infoMode, SubInfoMode subInfoMode)
### Replacement: static UnityEngine.Color NetAI::NetAI.GetColor_Patch1(NetAI this,
System.UInt16 segmentID, NetSegment& data, InfoMode infoMode, SubInfoMode
subInfoMode)
IL_0000: Local var 0: UnityEngine.Color
IL_0000: ldloca 0 (UnityEngine.Color)
IL_0004: initobj UnityEngine.Color
IL_000A: // start original
IL_000A: ldarg.3
IL_000B: brfalse => Label0
IL_0010: call static InfoManager
ColossalFramework.Singleton`1<InfoManager>::get_instance()
IL_0015: ldfld InfoProperties SimulationManagerBase`2<InfoManager,
InfoProperties>::m_properties
IL_001A: ldfld UnityEngine.Color InfoProperties::m_neutralColor
IL_001F: br => Label1
IL_0024: Label0
IL_0024: ldarg.0
IL_0025: ldfld NetInfo NetAI::m_info
IL_002A: ldfld UnityEngine.Color NetInfo::m_color
IL_002F: // end original
IL_002F: Label1
IL_002F: stloc 0 (UnityEngine.Color)
IL_0033: ldloca 0 (UnityEngine.Color)
IL_0037: ldarg 1
IL_003B: ldarg 2
IL_003F: ldarg 3
IL_0043: ldarg 4
IL_0047: call static System.Void
ElectricRoads.Overrides.ElectricRoadsOverrides::AfterGetColorSegment(UnityEngine.Co
lor& __result, System.UInt16 segmentID, NetSegment& data, InfoMode infoMode,
SubInfoMode subInfoMode)
IL_004C: ldloc 0 (UnityEngine.Color)
IL_0050: ret
DONE

### Patch: System.Void ElectricityManager::UpdateNodeElectricity(System.Int32


nodeID, System.Int32 value)
### Replacement: static System.Void
ElectricityManager::ElectricityManager.UpdateNodeElectricity_Patch0(ElectricityMana
ger this, System.Int32 nodeID, System.Int32 value)
IL_0000: Local var 0: InfoManager/InfoMode
IL_0000: Local var 1: NetManager
IL_0000: Local var 2: System.Boolean
IL_0000: Local var 3: NetNode/Flags
IL_0000: Local var 4: System.UInt16
IL_0000: Local var 5: BuildingManager
IL_0000: Local var 6: NetNode/Flags
IL_0000: Local var 7: System.Int32
IL_0000: Local var 8: System.UInt16
IL_0000: // start original
IL_0000: call static InfoManager
ColossalFramework.Singleton`1<InfoManager>::get_instance()
IL_0005: callvirt InfoMode InfoManager::get_CurrentMode()
IL_000A: stloc.0
IL_000B: call static NetManager
ColossalFramework.Singleton`1<NetManager>::get_instance()
IL_0010: stloc.1
IL_0011: ldc.i4.0
IL_0012: stloc.2
IL_0013: ldloc.1
IL_0014: ldfld Array16`1<NetNode> NetManager::m_nodes
IL_0019: ldfld NetNode[] Array16`1<NetNode>::m_buffer
IL_001E: ldarg.1
IL_001F: ldelema NetNode
IL_0024: ldfld Flags NetNode::m_flags
IL_0029: stloc.3
IL_002A: ldarg.1
IL_002B: call static System.Boolean
ElectricRoads.Overrides.ElectricRoadsOverrides::CheckNodeTransition(System.Int32
nodeID)
IL_0030: brfalse => Label0
IL_0035: ldloc.1
IL_0036: ldfld Array16`1<NetNode> NetManager::m_nodes
IL_003B: ldfld NetNode[] Array16`1<NetNode>::m_buffer
IL_0040: ldarg.1
IL_0041: ldelema NetNode
IL_0046: dup
IL_0047: ldfld Flags NetNode::m_flags
IL_004C: ldc.i4 -1048577
IL_0051: and
IL_0052: stfld Flags NetNode::m_flags
IL_0057: br => Label10
IL_005C: Label0
IL_005C: ldloc.1
IL_005D: ldfld Array16`1<NetNode> NetManager::m_nodes
IL_0062: ldfld NetNode[] Array16`1<NetNode>::m_buffer
IL_0067: ldarg.1
IL_0068: ldelema NetNode
IL_006D: ldfld System.UInt16 NetNode::m_building
IL_0072: stloc.s 4 (System.UInt16)
IL_0074: ldloc.s 4 (System.UInt16)
IL_0076: brfalse => Label1
IL_007B: call static BuildingManager
ColossalFramework.Singleton`1<BuildingManager>::get_instance()
IL_0080: stloc.s 5 (BuildingManager)
IL_0082: ldloc.s 5 (BuildingManager)
IL_0084: ldfld Array16`1<Building> BuildingManager::m_buildings
IL_0089: ldfld Building[] Array16`1<Building>::m_buffer
IL_008E: ldloc.s 4 (System.UInt16)
IL_0090: ldelema Building
IL_0095: ldfld System.UInt16 Building::m_electricityBuffer
IL_009A: ldarg.2
IL_009B: beq => Label2
IL_00A0: ldloc.s 5 (BuildingManager)
IL_00A2: ldfld Array16`1<Building> BuildingManager::m_buildings
IL_00A7: ldfld Building[] Array16`1<Building>::m_buffer
IL_00AC: ldloc.s 4 (System.UInt16)
IL_00AE: ldelema Building
IL_00B3: ldarg.2
IL_00B4: conv.u2
IL_00B5: stfld System.UInt16 Building::m_electricityBuffer
IL_00BA: ldloc.0
IL_00BB: ldc.i4.1
IL_00BC: ceq
IL_00BE: stloc.2
IL_00BF: Label2
IL_00BF: ldloc.2
IL_00C0: brfalse => Label3
IL_00C5: ldloc.s 5 (BuildingManager)
IL_00C7: ldloc.s 4 (System.UInt16)
IL_00C9: callvirt System.Void BuildingManager::UpdateBuildingColors(System.UInt16
building)
IL_00CE: Label1
IL_00CE: Label3
IL_00CE: ldloc.3
IL_00CF: ldc.i4 -67108865
IL_00D4: and
IL_00D5: stloc.s 6 (NetNode+Flags)
IL_00D7: ldarg.2
IL_00D8: brfalse => Label4
IL_00DD: ldloc.s 6 (NetNode+Flags)
IL_00DF: ldc.i4 67108864
IL_00E4: or
IL_00E5: stloc.s 6 (NetNode+Flags)
IL_00E7: Label4
IL_00E7: ldloc.s 6 (NetNode+Flags)
IL_00E9: ldloc.3
IL_00EA: beq => Label5
IL_00EF: ldloc.1
IL_00F0: ldfld Array16`1<NetNode> NetManager::m_nodes
IL_00F5: ldfld NetNode[] Array16`1<NetNode>::m_buffer
IL_00FA: ldarg.1
IL_00FB: ldelema NetNode
IL_0100: ldloc.s 6 (NetNode+Flags)
IL_0102: stfld Flags NetNode::m_flags
IL_0107: ldloc.0
IL_0108: ldc.i4.1
IL_0109: ceq
IL_010B: stloc.2
IL_010C: Label5
IL_010C: ldloc.2
IL_010D: brfalse => Label6
IL_0112: ldloc.1
IL_0113: ldarg.1
IL_0114: conv.u2
IL_0115: callvirt System.Void NetManager::UpdateNodeColors(System.UInt16 node)
IL_011A: ldc.i4.0
IL_011B: stloc.s 7 (System.Int32)
IL_011D: br => Label7
IL_0122: Label9
IL_0122: ldloc.1
IL_0123: ldfld Array16`1<NetNode> NetManager::m_nodes
IL_0128: ldfld NetNode[] Array16`1<NetNode>::m_buffer
IL_012D: ldarg.1
IL_012E: ldelema NetNode
IL_0133: ldloc.s 7 (System.Int32)
IL_0135: call System.UInt16 NetNode::GetSegment(System.Int32 index)
IL_013A: stloc.s 8 (System.UInt16)
IL_013C: ldloc.s 8 (System.UInt16)
IL_013E: brfalse => Label8
IL_0143: ldloc.1
IL_0144: ldloc.s 8 (System.UInt16)
IL_0146: callvirt System.Void NetManager::UpdateSegmentColors(System.UInt16
segment)
IL_014B: Label8
IL_014B: ldloc.s 7 (System.Int32)
IL_014D: ldc.i4.1
IL_014E: add
IL_014F: stloc.s 7 (System.Int32)
IL_0151: Label7
IL_0151: ldloc.s 7 (System.Int32)
IL_0153: ldc.i4.8
IL_0154: blt => Label9
IL_0159: // end original
IL_0159: Label6
IL_0159: Label10
IL_0159: ret
DONE

### Patch: static System.Void PropInstance::RenderInstance(CameraInfo cameraInfo,


PropInfo info, InstanceID id, UnityEngine.Vector3 position, System.Single scale,
System.Single angle, UnityEngine.Color color, UnityEngine.Vector4 objectIndex,
System.Boolean active, UnityEngine.Texture heightMap, UnityEngine.Vector4
heightMapping, UnityEngine.Vector4 surfaceMapping, UnityEngine.Texture
waterHeightMap, UnityEngine.Vector4 waterHeightMapping, UnityEngine.Vector4
waterSurfaceMapping)
### Replacement: static System.Void
PropInstance::PropInstance.RenderInstance_Patch0(CameraInfo cameraInfo, PropInfo
info, InstanceID id, UnityEngine.Vector3 position, System.Single scale,
System.Single angle, UnityEngine.Color color, UnityEngine.Vector4 objectIndex,
System.Boolean active, UnityEngine.Texture heightMap, UnityEngine.Vector4
heightMapping, UnityEngine.Vector4 surfaceMapping, UnityEngine.Texture
waterHeightMap, UnityEngine.Vector4 waterHeightMapping, UnityEngine.Vector4
waterSurfaceMapping)
IL_0000: Local var 0: UnityEngine.Matrix4x4
IL_0000: Local var 1: System.Single
IL_0000: Local var 2: System.Int32
IL_0000: Local var 3: UnityEngine.Vector3
IL_0000: Local var 4: UnityEngine.Vector3
IL_0000: Local var 5: EffectInfo/SpawnArea
IL_0000: Local var 6: System.Single
IL_0000: Local var 7: LightSystem
IL_0000: Local var 8: ColossalFramework.Math.Randomizer
IL_0000: Local var 9: UnityEngine.Vector4
IL_0000: Local var 10: System.Single
IL_0000: Local var 11: System.Single
IL_0000: Local var 12: System.Single
IL_0000: Local var 13: UnityEngine.Matrix4x4
IL_0000: Local var 14: PropManager
IL_0000: Local var 15: UnityEngine.MaterialPropertyBlock
IL_0000: Local var 16: System.Int32
IL_0000: // start original
IL_0000: ldarg.1
IL_0001: ldfld System.Boolean PrefabInfo::m_prefabInitialized
IL_0006: brfalse => Label0
IL_000B: ldarg.1
IL_000C: ldfld System.Boolean PropInfo::m_hasEffects
IL_0011: brfalse => Label1
IL_0016: ldarg.s 8
IL_0018: brtrue => Label2
IL_001D: ldarg.1
IL_001E: ldfld System.Boolean PropInfo::m_alwaysActive
IL_0023: brfalse => Label3
IL_0028: Label2
IL_0028: ldloca.s 0 (UnityEngine.Matrix4x4)
IL_002A: initobj UnityEngine.Matrix4x4
IL_0030: ldloca.s 0 (UnityEngine.Matrix4x4)
IL_0032: ldarg.3
IL_0033: ldarg.s 5
IL_0035: ldc.r4 57.29578
IL_003A: mul
IL_003B: call static UnityEngine.Vector3 UnityEngine.Vector3::get_down()
IL_0040: call static UnityEngine.Quaternion
UnityEngine.Quaternion::AngleAxis(System.Single angle, UnityEngine.Vector3 axis)
IL_0045: ldarg.s 4
IL_0047: ldarg.s 4
IL_0049: ldarg.s 4
IL_004B: newobj System.Void UnityEngine.Vector3::.ctor(System.Single x,
System.Single y, System.Single z)
IL_0050: call System.Void UnityEngine.Matrix4x4::SetTRS(UnityEngine.Vector3
pos, UnityEngine.Quaternion q, UnityEngine.Vector3 s)
IL_0055: call static SimulationManager
ColossalFramework.Singleton`1<SimulationManager>::get_instance()
IL_005A: ldfld System.Single SimulationManager::m_simulationTimeDelta
IL_005F: stloc.1
IL_0060: ldc.i4.0
IL_0061: stloc.2
IL_0062: br => Label4
IL_0067: Label5
IL_0067: ldloca.s 0 (UnityEngine.Matrix4x4)
IL_0069: ldarg.1
IL_006A: ldfld Effect[] PropInfo::m_effects
IL_006F: ldloc.2
IL_0070: ldelema PropInfo+Effect
IL_0075: ldfld UnityEngine.Vector3 Effect::m_position
IL_007A: call UnityEngine.Vector3
UnityEngine.Matrix4x4::MultiplyPoint(UnityEngine.Vector3 v)
IL_007F: stloc.3
IL_0080: ldloca.s 0 (UnityEngine.Matrix4x4)
IL_0082: ldarg.1
IL_0083: ldfld Effect[] PropInfo::m_effects
IL_0088: ldloc.2
IL_0089: ldelema PropInfo+Effect
IL_008E: ldfld UnityEngine.Vector3 Effect::m_direction
IL_0093: call UnityEngine.Vector3
UnityEngine.Matrix4x4::MultiplyVector(UnityEngine.Vector3 v)
IL_0098: stloc.s 4 (UnityEngine.Vector3)
IL_009A: ldloca.s 5 (EffectInfo+SpawnArea)
IL_009C: ldloc.3
IL_009D: ldloc.s 4 (UnityEngine.Vector3)
IL_009F: ldc.r4 0
IL_00A4: call System.Void SpawnArea::.ctor(UnityEngine.Vector3 position,
UnityEngine.Vector3 direction, System.Single radius)
IL_00A9: ldarg.1
IL_00AA: ldfld Effect[] PropInfo::m_effects
IL_00AF: ldloc.2
IL_00B0: ldelema PropInfo+Effect
IL_00B5: ldfld EffectInfo Effect::m_effect
IL_00BA: ldarg.2
IL_00BB: ldloc.s 5 (EffectInfo+SpawnArea)
IL_00BD: call static UnityEngine.Vector3 UnityEngine.Vector3::get_zero()
IL_00C2: ldc.r4 0
IL_00C7: ldc.r4 1
IL_00CC: ldc.r4 -1
IL_00D1: ldloc.1
IL_00D2: ldarg.0
IL_00D3: callvirt virtual System.Void EffectInfo::RenderEffect(InstanceID id,
SpawnArea area, UnityEngine.Vector3 velocity, System.Single acceleration,
System.Single magnitude, System.Single timeOffset, System.Single timeDelta,
CameraInfo cameraInfo)
IL_00D8: ldloc.2
IL_00D9: ldc.i4.1
IL_00DA: add
IL_00DB: stloc.2
IL_00DC: Label4
IL_00DC: ldloc.2
IL_00DD: ldarg.1
IL_00DE: ldfld Effect[] PropInfo::m_effects
IL_00E3: ldlen
IL_00E4: conv.i4
IL_00E5: blt => Label5
IL_00EA: Label1
IL_00EA: Label3
IL_00EA: ldarg.1
IL_00EB: ldfld System.Boolean PropInfo::m_hasRenderer
IL_00F0: brfalse => Label6
IL_00F5: ldarg.0
IL_00F6: ldfld System.Int32 CameraInfo::m_layerMask
IL_00FB: ldc.i4.1
IL_00FC: ldarg.1
IL_00FD: ldfld System.Int32 PrefabInfo::m_prefabDataLayer
IL_0102: ldc.i4.s 31
IL_0104: and
IL_0105: shl
IL_0106: and
IL_0107: brfalse => Label7
IL_010C: call static InfoManager
ColossalFramework.Singleton`1<InfoManager>::get_instance()
IL_0111: callvirt InfoMode InfoManager::get_CurrentMode()
IL_0116: brtrue => Label8
IL_011B: ldarg 2
IL_011F: call static System.Boolean
ElectricRoads.Overrides.ElectricRoadsOverrides::CheckElectrityNetForLight(InstanceI
D id)
IL_0124: brfalse => Label24
IL_0129: ldc.r4 0
IL_012E: stloc.s 6 (System.Single)
IL_0130: ldarg.s 8
IL_0132: brtrue => Label9
IL_0137: ldarg.1
IL_0138: ldfld System.Boolean PropInfo::m_alwaysActive
IL_013D: brtrue => Label10
IL_0142: Label24
IL_0142: ldarga.s 7
IL_0144: ldc.r4 0
IL_0149: stfld System.Single UnityEngine.Vector4::z
IL_014E: br => Label11
IL_0153: Label9
IL_0153: Label10
IL_0153: ldarg.1
IL_0154: ldflda UnityEngine.Vector2 PropInfo::m_illuminationOffRange
IL_0159: ldfld System.Single UnityEngine.Vector2::x
IL_015E: ldc.r4 1000
IL_0163: blt => Label12
IL_0168: ldarg.1
IL_0169: ldfld BlinkType PropInfo::m_illuminationBlinkType
IL_016E: brfalse => Label13
IL_0173: Label12
IL_0173: call static RenderManager
ColossalFramework.Singleton`1<RenderManager>::get_instance()
IL_0178: callvirt LightSystem RenderManager::get_lightSystem()
IL_017D: stloc.s 7 (LightSystem)
IL_017F: ldloca.s 8 (ColossalFramework.Math.Randomizer)
IL_0181: ldarga.s 2
IL_0183: call System.UInt32 InstanceID::get_Index()
IL_0188: call System.Void
ColossalFramework.Math.Randomizer::.ctor(System.UInt32 _seed)
IL_018D: ldarg.1
IL_018E: ldflda UnityEngine.Vector2 PropInfo::m_illuminationOffRange
IL_0193: ldfld System.Single UnityEngine.Vector2::x
IL_0198: ldloca.s 8 (ColossalFramework.Math.Randomizer)
IL_019A: ldc.i4 100000
IL_019F: call System.Int32
ColossalFramework.Math.Randomizer::Int32(System.UInt32 range)
IL_01A4: conv.r4
IL_01A5: ldc.r4 1E-05
IL_01AA: mul
IL_01AB: ldarg.1
IL_01AC: ldflda UnityEngine.Vector2 PropInfo::m_illuminationOffRange
IL_01B1: ldfld System.Single UnityEngine.Vector2::y
IL_01B6: ldarg.1
IL_01B7: ldflda UnityEngine.Vector2 PropInfo::m_illuminationOffRange
IL_01BC: ldfld System.Single UnityEngine.Vector2::x
IL_01C1: sub
IL_01C2: mul
IL_01C3: add
IL_01C4: stloc.s 6 (System.Single)
IL_01C6: ldarga.s 7
IL_01C8: ldloc.s 6 (System.Single)
IL_01CA: ldc.r4 0.01
IL_01CF: add
IL_01D0: ldloc.s 6 (System.Single)
IL_01D2: ldc.r4 0.01
IL_01D7: sub
IL_01D8: ldloc.s 7 (LightSystem)
IL_01DA: callvirt System.Single LightSystem::get_DayLightIntensity()
IL_01DF: call static System.Single MathUtils::SmoothStep(System.Single edge0,
System.Single edge1, System.Single x)
IL_01E4: stfld System.Single UnityEngine.Vector4::z
IL_01E9: ldarg.1
IL_01EA: ldfld BlinkType PropInfo::m_illuminationBlinkType
IL_01EF: brfalse => Label14
IL_01F4: ldarg.1
IL_01F5: ldfld BlinkType PropInfo::m_illuminationBlinkType
IL_01FA: call static UnityEngine.Vector4
LightEffect::GetBlinkVector(BlinkType type)
IL_01FF: stloc.s 9 (UnityEngine.Vector4)
IL_0201: ldloc.s 6 (System.Single)
IL_0203: ldc.r4 3.71
IL_0208: mul
IL_0209: call static SimulationManager
ColossalFramework.Singleton`1<SimulationManager>::get_instance()
IL_020E: ldfld System.Single SimulationManager::m_simulationTimer
IL_0213: ldloca.s 9 (UnityEngine.Vector4)
IL_0215: ldfld System.Single UnityEngine.Vector4::w
IL_021A: div
IL_021B: add
IL_021C: stloc.s 10 (System.Single)
IL_021E: ldloc.s 10 (System.Single)
IL_0220: ldloc.s 10 (System.Single)
IL_0222: call static System.Single UnityEngine.Mathf::Floor(System.Single f)
IL_0227: sub
IL_0228: ldloca.s 9 (UnityEngine.Vector4)
IL_022A: ldfld System.Single UnityEngine.Vector4::w
IL_022F: mul
IL_0230: stloc.s 10 (System.Single)
IL_0232: ldloca.s 9 (UnityEngine.Vector4)
IL_0234: ldfld System.Single UnityEngine.Vector4::x
IL_0239: ldloca.s 9 (UnityEngine.Vector4)
IL_023B: ldfld System.Single UnityEngine.Vector4::y
IL_0240: ldloc.s 10 (System.Single)
IL_0242: call static System.Single MathUtils::SmoothStep(System.Single edge0,
System.Single edge1, System.Single x)
IL_0247: stloc.s 11 (System.Single)
IL_0249: ldloca.s 9 (UnityEngine.Vector4)
IL_024B: ldfld System.Single UnityEngine.Vector4::w
IL_0250: ldloca.s 9 (UnityEngine.Vector4)
IL_0252: ldfld System.Single UnityEngine.Vector4::z
IL_0257: ldloc.s 10 (System.Single)
IL_0259: call static System.Single MathUtils::SmoothStep(System.Single edge0,
System.Single edge1, System.Single x)
IL_025E: stloc.s 12 (System.Single)
IL_0260: ldarga.s 7
IL_0262: dup
IL_0263: ldfld System.Single UnityEngine.Vector4::z
IL_0268: ldc.r4 1
IL_026D: ldloc.s 11 (System.Single)
IL_026F: ldloc.s 12 (System.Single)
IL_0271: mul
IL_0272: sub
IL_0273: mul
IL_0274: stfld System.Single UnityEngine.Vector4::z
IL_0279: Label14
IL_0279: br => Label15
IL_027E: Label13
IL_027E: ldarga.s 7
IL_0280: ldc.r4 1
IL_0285: stfld System.Single UnityEngine.Vector4::z
IL_028A: Label8
IL_028A: Label11
IL_028A: Label15
IL_028A: ldarg.0
IL_028B: brfalse => Label16
IL_0290: ldarg.0
IL_0291: ldarg.3
IL_0292: ldarg.1
IL_0293: ldfld System.Single PropInfo::m_lodRenderDistance
IL_0298: callvirt System.Boolean
CameraInfo::CheckRenderDistance(UnityEngine.Vector3 point, System.Single
maxDistance)
IL_029D: brfalse => Label17
IL_02A2: Label16
IL_02A2: ldloca.s 13 (UnityEngine.Matrix4x4)
IL_02A4: initobj UnityEngine.Matrix4x4
IL_02AA: ldloca.s 13 (UnityEngine.Matrix4x4)
IL_02AC: ldarg.3
IL_02AD: ldarg.s 5
IL_02AF: ldc.r4 57.29578
IL_02B4: mul
IL_02B5: call static UnityEngine.Vector3 UnityEngine.Vector3::get_down()
IL_02BA: call static UnityEngine.Quaternion
UnityEngine.Quaternion::AngleAxis(System.Single angle, UnityEngine.Vector3 axis)
IL_02BF: ldarg.s 4
IL_02C1: ldarg.s 4
IL_02C3: ldarg.s 4
IL_02C5: newobj System.Void UnityEngine.Vector3::.ctor(System.Single x,
System.Single y, System.Single z)
IL_02CA: call System.Void UnityEngine.Matrix4x4::SetTRS(UnityEngine.Vector3
pos, UnityEngine.Quaternion q, UnityEngine.Vector3 s)
IL_02CF: call static PropManager
ColossalFramework.Singleton`1<PropManager>::get_instance()
IL_02D4: stloc.s 14 (PropManager)
IL_02D6: ldloc.s 14 (PropManager)
IL_02D8: ldfld UnityEngine.MaterialPropertyBlock PropManager::m_materialBlock
IL_02DD: stloc.s 15 (UnityEngine.MaterialPropertyBlock)
IL_02DF: ldloc.s 15 (UnityEngine.MaterialPropertyBlock)
IL_02E1: callvirt System.Void UnityEngine.MaterialPropertyBlock::Clear()
IL_02E6: ldloc.s 15 (UnityEngine.MaterialPropertyBlock)
IL_02E8: ldloc.s 14 (PropManager)
IL_02EA: ldfld System.Int32 PropManager::ID_Color
IL_02EF: ldarg.s 6
IL_02F1: callvirt System.Void
UnityEngine.MaterialPropertyBlock::SetColor(System.Int32 nameID, UnityEngine.Color
value)
IL_02F6: ldloc.s 15 (UnityEngine.MaterialPropertyBlock)
IL_02F8: ldloc.s 14 (PropManager)
IL_02FA: ldfld System.Int32 PropManager::ID_HeightMap
IL_02FF: ldarg.s 9
IL_0301: callvirt System.Void
UnityEngine.MaterialPropertyBlock::SetTexture(System.Int32 nameID,
UnityEngine.Texture value)
IL_0306: ldloc.s 15 (UnityEngine.MaterialPropertyBlock)
IL_0308: ldloc.s 14 (PropManager)
IL_030A: ldfld System.Int32 PropManager::ID_HeightMapping
IL_030F: ldarg.s 10
IL_0311: callvirt System.Void
UnityEngine.MaterialPropertyBlock::SetVector(System.Int32 nameID,
UnityEngine.Vector4 value)
IL_0316: ldloc.s 15 (UnityEngine.MaterialPropertyBlock)
IL_0318: ldloc.s 14 (PropManager)
IL_031A: ldfld System.Int32 PropManager::ID_SurfaceMapping
IL_031F: ldarg.s 11
IL_0321: callvirt System.Void
UnityEngine.MaterialPropertyBlock::SetVector(System.Int32 nameID,
UnityEngine.Vector4 value)
IL_0326: ldloc.s 15 (UnityEngine.MaterialPropertyBlock)
IL_0328: ldloc.s 14 (PropManager)
IL_032A: ldfld System.Int32 PropManager::ID_ObjectIndex
IL_032F: ldarg.s 7
IL_0331: callvirt System.Void
UnityEngine.MaterialPropertyBlock::SetVector(System.Int32 nameID,
UnityEngine.Vector4 value)
IL_0336: ldloc.s 15 (UnityEngine.MaterialPropertyBlock)
IL_0338: ldloc.s 14 (PropManager)
IL_033A: ldfld System.Int32 PropManager::ID_WaterHeightMap
IL_033F: ldarg.s 12
IL_0341: callvirt System.Void
UnityEngine.MaterialPropertyBlock::SetTexture(System.Int32 nameID,
UnityEngine.Texture value)
IL_0346: ldloc.s 15 (UnityEngine.MaterialPropertyBlock)
IL_0348: ldloc.s 14 (PropManager)
IL_034A: ldfld System.Int32 PropManager::ID_WaterHeightMapping
IL_034F: ldarg.s 13
IL_0351: callvirt System.Void
UnityEngine.MaterialPropertyBlock::SetVector(System.Int32 nameID,
UnityEngine.Vector4 value)
IL_0356: ldloc.s 15 (UnityEngine.MaterialPropertyBlock)
IL_0358: ldloc.s 14 (PropManager)
IL_035A: ldfld System.Int32 PropManager::ID_WaterSurfaceMapping
IL_035F: ldarg.s 14
IL_0361: callvirt System.Void
UnityEngine.MaterialPropertyBlock::SetVector(System.Int32 nameID,
UnityEngine.Vector4 value)
IL_0366: ldarg.1
IL_0367: ldfld UnityEngine.Vector4[] PropInfo::m_rollLocation
IL_036C: brfalse => Label18
IL_0371: ldarg.1
IL_0372: ldfld UnityEngine.Material PropInfo::m_material
IL_0377: ldloc.s 14 (PropManager)
IL_0379: ldfld System.Int32 PropManager::ID_RollLocation
IL_037E: ldarg.1
IL_037F: ldfld UnityEngine.Vector4[] PropInfo::m_rollLocation
IL_0384: callvirt System.Void UnityEngine.Material::SetVectorArray(System.Int32
nameID, UnityEngine.Vector4[] values)
IL_0389: ldarg.1
IL_038A: ldfld UnityEngine.Material PropInfo::m_material
IL_038F: ldloc.s 14 (PropManager)
IL_0391: ldfld System.Int32 PropManager::ID_RollParams
IL_0396: ldarg.1
IL_0397: ldfld UnityEngine.Vector4[] PropInfo::m_rollParams
IL_039C: callvirt System.Void UnityEngine.Material::SetVectorArray(System.Int32
nameID, UnityEngine.Vector4[] values)
IL_03A1: Label18
IL_03A1: ldloc.s 14 (PropManager)
IL_03A3: ldflda DrawCallData SimulationManagerBase`2<PropManager,
PropProperties>::m_drawCallData
IL_03A8: dup
IL_03A9: ldfld System.Int32 DrawCallData::m_defaultCalls
IL_03AE: ldc.i4.1
IL_03AF: add
IL_03B0: stfld System.Int32 DrawCallData::m_defaultCalls
IL_03B5: ldarg.1
IL_03B6: ldfld UnityEngine.Mesh PropInfo::m_mesh
IL_03BB: ldloc.s 13 (UnityEngine.Matrix4x4)
IL_03BD: ldarg.1
IL_03BE: ldfld UnityEngine.Material PropInfo::m_material
IL_03C3: ldarg.1
IL_03C4: ldfld System.Int32 PrefabInfo::m_prefabDataLayer
IL_03C9: ldnull
IL_03CA: ldc.i4.0
IL_03CB: ldloc.s 15 (UnityEngine.MaterialPropertyBlock)
IL_03CD: call static System.Void
UnityEngine.Graphics::DrawMesh(UnityEngine.Mesh mesh, UnityEngine.Matrix4x4 matrix,
UnityEngine.Material material, System.Int32 layer, UnityEngine.Camera camera,
System.Int32 submeshIndex, UnityEngine.MaterialPropertyBlock properties)
IL_03D2: br => Label19
IL_03D7: Label17
IL_03D7: ldarg.s 9
IL_03D9: ldarg.1
IL_03DA: ldfld UnityEngine.Texture PropInfo::m_lodHeightMap
IL_03DF: call static System.Boolean
UnityEngine.Object::op_Inequality(UnityEngine.Object x, UnityEngine.Object y)
IL_03E4: brtrue => Label20
IL_03E9: ldarg.s 12
IL_03EB: ldarg.1
IL_03EC: ldfld UnityEngine.Texture PropInfo::m_lodWaterHeightMap
IL_03F1: call static System.Boolean
UnityEngine.Object::op_Inequality(UnityEngine.Object x, UnityEngine.Object y)
IL_03F6: brfalse => Label21
IL_03FB: Label20
IL_03FB: ldarg.1
IL_03FC: ldfld System.Int32 PropInfo::m_lodCount
IL_0401: brfalse => Label22
IL_0406: ldarg.0
IL_0407: ldarg.1
IL_0408: call static System.Void PropInstance::RenderLod(CameraInfo
cameraInfo, PropInfo info)
IL_040D: Label22
IL_040D: ldarg.1
IL_040E: ldarg.s 9
IL_0410: stfld UnityEngine.Texture PropInfo::m_lodHeightMap
IL_0415: ldarg.1
IL_0416: ldarg.s 10
IL_0418: stfld UnityEngine.Vector4 PropInfo::m_lodHeightMapping
IL_041D: ldarg.1
IL_041E: ldarg.s 11
IL_0420: stfld UnityEngine.Vector4 PropInfo::m_lodSurfaceMapping
IL_0425: ldarg.1
IL_0426: ldarg.s 12
IL_0428: stfld UnityEngine.Texture PropInfo::m_lodWaterHeightMap
IL_042D: ldarg.1
IL_042E: ldarg.s 13
IL_0430: stfld UnityEngine.Vector4 PropInfo::m_lodWaterHeightMapping
IL_0435: ldarg.1
IL_0436: ldarg.s 14
IL_0438: stfld UnityEngine.Vector4 PropInfo::m_lodWaterSurfaceMapping
IL_043D: Label21
IL_043D: ldarga.s 7
IL_043F: ldarg.s 4
IL_0441: stfld System.Single UnityEngine.Vector4::w
IL_0446: ldarg.1
IL_0447: ldfld UnityEngine.Vector4[] PropInfo::m_lodLocations
IL_044C: ldarg.1
IL_044D: ldfld System.Int32 PropInfo::m_lodCount
IL_0452: ldelema UnityEngine.Vector4
IL_0457: ldarga.s 3
IL_0459: ldfld System.Single UnityEngine.Vector3::x
IL_045E: ldarga.s 3
IL_0460: ldfld System.Single UnityEngine.Vector3::y
IL_0465: ldarga.s 3
IL_0467: ldfld System.Single UnityEngine.Vector3::z
IL_046C: ldarg.s 5
IL_046E: newobj System.Void UnityEngine.Vector4::.ctor(System.Single x,
System.Single y, System.Single z, System.Single w)
IL_0473: stobj UnityEngine.Vector4
IL_0478: ldarg.1
IL_0479: ldfld UnityEngine.Vector4[] PropInfo::m_lodObjectIndices
IL_047E: ldarg.1
IL_047F: ldfld System.Int32 PropInfo::m_lodCount
IL_0484: ldelema UnityEngine.Vector4
IL_0489: ldarg.s 7
IL_048B: stobj UnityEngine.Vector4
IL_0490: ldarg.1
IL_0491: ldfld UnityEngine.Vector4[] PropInfo::m_lodColors
IL_0496: ldarg.1
IL_0497: ldfld System.Int32 PropInfo::m_lodCount
IL_049C: ldelema UnityEngine.Vector4
IL_04A1: ldarga.s 6
IL_04A3: call UnityEngine.Color UnityEngine.Color::get_linear()
IL_04A8: call static UnityEngine.Vector4
UnityEngine.Color::op_Implicit(UnityEngine.Color c)
IL_04AD: stobj UnityEngine.Vector4
IL_04B2: ldarg.1
IL_04B3: ldarg.1
IL_04B4: ldfld UnityEngine.Vector3 PropInfo::m_lodMin
IL_04B9: ldarg.3
IL_04BA: call static UnityEngine.Vector3
UnityEngine.Vector3::Min(UnityEngine.Vector3 lhs, UnityEngine.Vector3 rhs)
IL_04BF: stfld UnityEngine.Vector3 PropInfo::m_lodMin
IL_04C4: ldarg.1
IL_04C5: ldarg.1
IL_04C6: ldfld UnityEngine.Vector3 PropInfo::m_lodMax
IL_04CB: ldarg.3
IL_04CC: call static UnityEngine.Vector3
UnityEngine.Vector3::Max(UnityEngine.Vector3 lhs, UnityEngine.Vector3 rhs)
IL_04D1: stfld UnityEngine.Vector3 PropInfo::m_lodMax
IL_04D6: ldarg.1
IL_04D7: dup
IL_04D8: ldfld System.Int32 PropInfo::m_lodCount
IL_04DD: ldc.i4.1
IL_04DE: add
IL_04DF: dup
IL_04E0: stloc.s 16 (System.Int32)
IL_04E2: stfld System.Int32 PropInfo::m_lodCount
IL_04E7: ldloc.s 16 (System.Int32)
IL_04E9: ldarg.1
IL_04EA: ldfld UnityEngine.Vector4[] PropInfo::m_lodLocations
IL_04EF: ldlen
IL_04F0: conv.i4
IL_04F1: bne.un => Label23
IL_04F6: ldarg.0
IL_04F7: ldarg.1
IL_04F8: call static System.Void PropInstance::RenderLod(CameraInfo
cameraInfo, PropInfo info)
IL_04FD: // end original
IL_04FD: Label0
IL_04FD: Label6
IL_04FD: Label7
IL_04FD: Label19
IL_04FD: Label23
IL_04FD: ret
DONE

### Patch: static System.Void PropInstance::RenderInstance(CameraInfo cameraInfo,


PropInfo info, InstanceID id, UnityEngine.Vector3 position, System.Single scale,
System.Single angle, UnityEngine.Color color, UnityEngine.Vector4 objectIndex,
System.Boolean active)
### Replacement: static System.Void
PropInstance::PropInstance.RenderInstance_Patch0(CameraInfo cameraInfo, PropInfo
info, InstanceID id, UnityEngine.Vector3 position, System.Single scale,
System.Single angle, UnityEngine.Color color, UnityEngine.Vector4 objectIndex,
System.Boolean active)
IL_0000: Local var 0: UnityEngine.Matrix4x4
IL_0000: Local var 1: System.Single
IL_0000: Local var 2: System.Int32
IL_0000: Local var 3: UnityEngine.Vector3
IL_0000: Local var 4: UnityEngine.Vector3
IL_0000: Local var 5: EffectInfo/SpawnArea
IL_0000: Local var 6: System.Single
IL_0000: Local var 7: LightSystem
IL_0000: Local var 8: ColossalFramework.Math.Randomizer
IL_0000: Local var 9: UnityEngine.Vector4
IL_0000: Local var 10: System.Single
IL_0000: Local var 11: System.Single
IL_0000: Local var 12: System.Single
IL_0000: Local var 13: UnityEngine.Matrix4x4
IL_0000: Local var 14: PropManager
IL_0000: Local var 15: UnityEngine.MaterialPropertyBlock
IL_0000: Local var 16: UnityEngine.Matrix4x4
IL_0000: Local var 17: PropManager
IL_0000: Local var 18: UnityEngine.MaterialPropertyBlock
IL_0000: Local var 19: System.Int32
IL_0000: // start original
IL_0000: ldarg.1
IL_0001: ldfld System.Boolean PrefabInfo::m_prefabInitialized
IL_0006: brfalse => Label0
IL_000B: ldarg.1
IL_000C: ldfld System.Boolean PropInfo::m_hasEffects
IL_0011: brfalse => Label1
IL_0016: ldarg.s 8
IL_0018: brtrue => Label2
IL_001D: ldarg.1
IL_001E: ldfld System.Boolean PropInfo::m_alwaysActive
IL_0023: brfalse => Label3
IL_0028: Label2
IL_0028: ldloca.s 0 (UnityEngine.Matrix4x4)
IL_002A: initobj UnityEngine.Matrix4x4
IL_0030: ldloca.s 0 (UnityEngine.Matrix4x4)
IL_0032: ldarg.3
IL_0033: ldarg.s 5
IL_0035: ldc.r4 57.29578
IL_003A: mul
IL_003B: call static UnityEngine.Vector3 UnityEngine.Vector3::get_down()
IL_0040: call static UnityEngine.Quaternion
UnityEngine.Quaternion::AngleAxis(System.Single angle, UnityEngine.Vector3 axis)
IL_0045: ldarg.s 4
IL_0047: ldarg.s 4
IL_0049: ldarg.s 4
IL_004B: newobj System.Void UnityEngine.Vector3::.ctor(System.Single x,
System.Single y, System.Single z)
IL_0050: call System.Void UnityEngine.Matrix4x4::SetTRS(UnityEngine.Vector3
pos, UnityEngine.Quaternion q, UnityEngine.Vector3 s)
IL_0055: call static SimulationManager
ColossalFramework.Singleton`1<SimulationManager>::get_instance()
IL_005A: ldfld System.Single SimulationManager::m_simulationTimeDelta
IL_005F: stloc.1
IL_0060: ldc.i4.0
IL_0061: stloc.2
IL_0062: br => Label4
IL_0067: Label5
IL_0067: ldloca.s 0 (UnityEngine.Matrix4x4)
IL_0069: ldarg.1
IL_006A: ldfld Effect[] PropInfo::m_effects
IL_006F: ldloc.2
IL_0070: ldelema PropInfo+Effect
IL_0075: ldfld UnityEngine.Vector3 Effect::m_position
IL_007A: call UnityEngine.Vector3
UnityEngine.Matrix4x4::MultiplyPoint(UnityEngine.Vector3 v)
IL_007F: stloc.3
IL_0080: ldloca.s 0 (UnityEngine.Matrix4x4)
IL_0082: ldarg.1
IL_0083: ldfld Effect[] PropInfo::m_effects
IL_0088: ldloc.2
IL_0089: ldelema PropInfo+Effect
IL_008E: ldfld UnityEngine.Vector3 Effect::m_direction
IL_0093: call UnityEngine.Vector3
UnityEngine.Matrix4x4::MultiplyVector(UnityEngine.Vector3 v)
IL_0098: stloc.s 4 (UnityEngine.Vector3)
IL_009A: ldloca.s 5 (EffectInfo+SpawnArea)
IL_009C: ldloc.3
IL_009D: ldloc.s 4 (UnityEngine.Vector3)
IL_009F: ldc.r4 0
IL_00A4: call System.Void SpawnArea::.ctor(UnityEngine.Vector3 position,
UnityEngine.Vector3 direction, System.Single radius)
IL_00A9: ldarg.1
IL_00AA: ldfld Effect[] PropInfo::m_effects
IL_00AF: ldloc.2
IL_00B0: ldelema PropInfo+Effect
IL_00B5: ldfld EffectInfo Effect::m_effect
IL_00BA: ldarg.2
IL_00BB: ldloc.s 5 (EffectInfo+SpawnArea)
IL_00BD: call static UnityEngine.Vector3 UnityEngine.Vector3::get_zero()
IL_00C2: ldc.r4 0
IL_00C7: ldc.r4 1
IL_00CC: ldc.r4 -1
IL_00D1: ldloc.1
IL_00D2: ldarg.0
IL_00D3: callvirt virtual System.Void EffectInfo::RenderEffect(InstanceID id,
SpawnArea area, UnityEngine.Vector3 velocity, System.Single acceleration,
System.Single magnitude, System.Single timeOffset, System.Single timeDelta,
CameraInfo cameraInfo)
IL_00D8: ldloc.2
IL_00D9: ldc.i4.1
IL_00DA: add
IL_00DB: stloc.2
IL_00DC: Label4
IL_00DC: ldloc.2
IL_00DD: ldarg.1
IL_00DE: ldfld Effect[] PropInfo::m_effects
IL_00E3: ldlen
IL_00E4: conv.i4
IL_00E5: blt => Label5
IL_00EA: Label1
IL_00EA: Label3
IL_00EA: ldarg.1
IL_00EB: ldfld System.Boolean PropInfo::m_hasRenderer
IL_00F0: brfalse => Label6
IL_00F5: ldarg.0
IL_00F6: ldfld System.Int32 CameraInfo::m_layerMask
IL_00FB: ldc.i4.1
IL_00FC: ldarg.1
IL_00FD: ldfld System.Int32 PrefabInfo::m_prefabDataLayer
IL_0102: ldc.i4.s 31
IL_0104: and
IL_0105: shl
IL_0106: and
IL_0107: brfalse => Label7
IL_010C: call static InfoManager
ColossalFramework.Singleton`1<InfoManager>::get_instance()
IL_0111: callvirt InfoMode InfoManager::get_CurrentMode()
IL_0116: brtrue => Label8
IL_011B: ldarg 2
IL_011F: call static System.Boolean
ElectricRoads.Overrides.ElectricRoadsOverrides::CheckElectrityNetForLight(InstanceI
D id)
IL_0124: brfalse => Label24
IL_0129: ldc.r4 0
IL_012E: stloc.s 6 (System.Single)
IL_0130: ldarg.s 8
IL_0132: brtrue => Label9
IL_0137: ldarg.1
IL_0138: ldfld System.Boolean PropInfo::m_alwaysActive
IL_013D: brtrue => Label10
IL_0142: Label24
IL_0142: ldarga.s 7
IL_0144: ldc.r4 0
IL_0149: stfld System.Single UnityEngine.Vector4::z
IL_014E: br => Label11
IL_0153: Label9
IL_0153: Label10
IL_0153: ldarg.1
IL_0154: ldflda UnityEngine.Vector2 PropInfo::m_illuminationOffRange
IL_0159: ldfld System.Single UnityEngine.Vector2::x
IL_015E: ldc.r4 1000
IL_0163: blt => Label12
IL_0168: ldarg.1
IL_0169: ldfld BlinkType PropInfo::m_illuminationBlinkType
IL_016E: brfalse => Label13
IL_0173: Label12
IL_0173: call static RenderManager
ColossalFramework.Singleton`1<RenderManager>::get_instance()
IL_0178: callvirt LightSystem RenderManager::get_lightSystem()
IL_017D: stloc.s 7 (LightSystem)
IL_017F: ldloca.s 8 (ColossalFramework.Math.Randomizer)
IL_0181: ldarga.s 2
IL_0183: call System.UInt32 InstanceID::get_Index()
IL_0188: call System.Void
ColossalFramework.Math.Randomizer::.ctor(System.UInt32 _seed)
IL_018D: ldarg.1
IL_018E: ldflda UnityEngine.Vector2 PropInfo::m_illuminationOffRange
IL_0193: ldfld System.Single UnityEngine.Vector2::x
IL_0198: ldloca.s 8 (ColossalFramework.Math.Randomizer)
IL_019A: ldc.i4 100000
IL_019F: call System.Int32
ColossalFramework.Math.Randomizer::Int32(System.UInt32 range)
IL_01A4: conv.r4
IL_01A5: ldc.r4 1E-05
IL_01AA: mul
IL_01AB: ldarg.1
IL_01AC: ldflda UnityEngine.Vector2 PropInfo::m_illuminationOffRange
IL_01B1: ldfld System.Single UnityEngine.Vector2::y
IL_01B6: ldarg.1
IL_01B7: ldflda UnityEngine.Vector2 PropInfo::m_illuminationOffRange
IL_01BC: ldfld System.Single UnityEngine.Vector2::x
IL_01C1: sub
IL_01C2: mul
IL_01C3: add
IL_01C4: stloc.s 6 (System.Single)
IL_01C6: ldarga.s 7
IL_01C8: ldloc.s 6 (System.Single)
IL_01CA: ldc.r4 0.01
IL_01CF: add
IL_01D0: ldloc.s 6 (System.Single)
IL_01D2: ldc.r4 0.01
IL_01D7: sub
IL_01D8: ldloc.s 7 (LightSystem)
IL_01DA: callvirt System.Single LightSystem::get_DayLightIntensity()
IL_01DF: call static System.Single MathUtils::SmoothStep(System.Single edge0,
System.Single edge1, System.Single x)
IL_01E4: stfld System.Single UnityEngine.Vector4::z
IL_01E9: ldarg.1
IL_01EA: ldfld BlinkType PropInfo::m_illuminationBlinkType
IL_01EF: brfalse => Label14
IL_01F4: ldarg.1
IL_01F5: ldfld BlinkType PropInfo::m_illuminationBlinkType
IL_01FA: call static UnityEngine.Vector4
LightEffect::GetBlinkVector(BlinkType type)
IL_01FF: stloc.s 9 (UnityEngine.Vector4)
IL_0201: ldloc.s 6 (System.Single)
IL_0203: ldc.r4 3.71
IL_0208: mul
IL_0209: call static SimulationManager
ColossalFramework.Singleton`1<SimulationManager>::get_instance()
IL_020E: ldfld System.Single SimulationManager::m_simulationTimer
IL_0213: ldloca.s 9 (UnityEngine.Vector4)
IL_0215: ldfld System.Single UnityEngine.Vector4::w
IL_021A: div
IL_021B: add
IL_021C: stloc.s 10 (System.Single)
IL_021E: ldloc.s 10 (System.Single)
IL_0220: ldloc.s 10 (System.Single)
IL_0222: call static System.Single UnityEngine.Mathf::Floor(System.Single f)
IL_0227: sub
IL_0228: ldloca.s 9 (UnityEngine.Vector4)
IL_022A: ldfld System.Single UnityEngine.Vector4::w
IL_022F: mul
IL_0230: stloc.s 10 (System.Single)
IL_0232: ldloca.s 9 (UnityEngine.Vector4)
IL_0234: ldfld System.Single UnityEngine.Vector4::x
IL_0239: ldloca.s 9 (UnityEngine.Vector4)
IL_023B: ldfld System.Single UnityEngine.Vector4::y
IL_0240: ldloc.s 10 (System.Single)
IL_0242: call static System.Single MathUtils::SmoothStep(System.Single edge0,
System.Single edge1, System.Single x)
IL_0247: stloc.s 11 (System.Single)
IL_0249: ldloca.s 9 (UnityEngine.Vector4)
IL_024B: ldfld System.Single UnityEngine.Vector4::w
IL_0250: ldloca.s 9 (UnityEngine.Vector4)
IL_0252: ldfld System.Single UnityEngine.Vector4::z
IL_0257: ldloc.s 10 (System.Single)
IL_0259: call static System.Single MathUtils::SmoothStep(System.Single edge0,
System.Single edge1, System.Single x)
IL_025E: stloc.s 12 (System.Single)
IL_0260: ldarga.s 7
IL_0262: dup
IL_0263: ldfld System.Single UnityEngine.Vector4::z
IL_0268: ldc.r4 1
IL_026D: ldloc.s 11 (System.Single)
IL_026F: ldloc.s 12 (System.Single)
IL_0271: mul
IL_0272: sub
IL_0273: mul
IL_0274: stfld System.Single UnityEngine.Vector4::z
IL_0279: Label14
IL_0279: br => Label15
IL_027E: Label13
IL_027E: ldarga.s 7
IL_0280: ldc.r4 1
IL_0285: stfld System.Single UnityEngine.Vector4::z
IL_028A: Label8
IL_028A: Label11
IL_028A: Label15
IL_028A: ldarg.0
IL_028B: brfalse => Label16
IL_0290: ldarg.0
IL_0291: ldarg.3
IL_0292: ldarg.1
IL_0293: ldfld System.Single PropInfo::m_lodRenderDistance
IL_0298: callvirt System.Boolean
CameraInfo::CheckRenderDistance(UnityEngine.Vector3 point, System.Single
maxDistance)
IL_029D: brfalse => Label17
IL_02A2: Label16
IL_02A2: ldloca.s 13 (UnityEngine.Matrix4x4)
IL_02A4: initobj UnityEngine.Matrix4x4
IL_02AA: ldloca.s 13 (UnityEngine.Matrix4x4)
IL_02AC: ldarg.3
IL_02AD: ldarg.s 5
IL_02AF: ldc.r4 57.29578
IL_02B4: mul
IL_02B5: call static UnityEngine.Vector3 UnityEngine.Vector3::get_down()
IL_02BA: call static UnityEngine.Quaternion
UnityEngine.Quaternion::AngleAxis(System.Single angle, UnityEngine.Vector3 axis)
IL_02BF: ldarg.s 4
IL_02C1: ldarg.s 4
IL_02C3: ldarg.s 4
IL_02C5: newobj System.Void UnityEngine.Vector3::.ctor(System.Single x,
System.Single y, System.Single z)
IL_02CA: call System.Void UnityEngine.Matrix4x4::SetTRS(UnityEngine.Vector3
pos, UnityEngine.Quaternion q, UnityEngine.Vector3 s)
IL_02CF: call static PropManager
ColossalFramework.Singleton`1<PropManager>::get_instance()
IL_02D4: stloc.s 14 (PropManager)
IL_02D6: ldloc.s 14 (PropManager)
IL_02D8: ldfld UnityEngine.MaterialPropertyBlock PropManager::m_materialBlock
IL_02DD: stloc.s 15 (UnityEngine.MaterialPropertyBlock)
IL_02DF: ldloc.s 15 (UnityEngine.MaterialPropertyBlock)
IL_02E1: callvirt System.Void UnityEngine.MaterialPropertyBlock::Clear()
IL_02E6: ldloc.s 15 (UnityEngine.MaterialPropertyBlock)
IL_02E8: ldloc.s 14 (PropManager)
IL_02EA: ldfld System.Int32 PropManager::ID_Color
IL_02EF: ldarg.s 6
IL_02F1: callvirt System.Void
UnityEngine.MaterialPropertyBlock::SetColor(System.Int32 nameID, UnityEngine.Color
value)
IL_02F6: ldloc.s 15 (UnityEngine.MaterialPropertyBlock)
IL_02F8: ldloc.s 14 (PropManager)
IL_02FA: ldfld System.Int32 PropManager::ID_ObjectIndex
IL_02FF: ldarg.s 7
IL_0301: callvirt System.Void
UnityEngine.MaterialPropertyBlock::SetVector(System.Int32 nameID,
UnityEngine.Vector4 value)
IL_0306: ldarg.1
IL_0307: ldfld UnityEngine.Vector4[] PropInfo::m_rollLocation
IL_030C: brfalse => Label18
IL_0311: ldarg.1
IL_0312: ldfld UnityEngine.Material PropInfo::m_material
IL_0317: ldloc.s 14 (PropManager)
IL_0319: ldfld System.Int32 PropManager::ID_RollLocation
IL_031E: ldarg.1
IL_031F: ldfld UnityEngine.Vector4[] PropInfo::m_rollLocation
IL_0324: callvirt System.Void UnityEngine.Material::SetVectorArray(System.Int32
nameID, UnityEngine.Vector4[] values)
IL_0329: ldarg.1
IL_032A: ldfld UnityEngine.Material PropInfo::m_material
IL_032F: ldloc.s 14 (PropManager)
IL_0331: ldfld System.Int32 PropManager::ID_RollParams
IL_0336: ldarg.1
IL_0337: ldfld UnityEngine.Vector4[] PropInfo::m_rollParams
IL_033C: callvirt System.Void UnityEngine.Material::SetVectorArray(System.Int32
nameID, UnityEngine.Vector4[] values)
IL_0341: Label18
IL_0341: ldloc.s 14 (PropManager)
IL_0343: ldflda DrawCallData SimulationManagerBase`2<PropManager,
PropProperties>::m_drawCallData
IL_0348: dup
IL_0349: ldfld System.Int32 DrawCallData::m_defaultCalls
IL_034E: ldc.i4.1
IL_034F: add
IL_0350: stfld System.Int32 DrawCallData::m_defaultCalls
IL_0355: ldarg.1
IL_0356: ldfld UnityEngine.Mesh PropInfo::m_mesh
IL_035B: ldloc.s 13 (UnityEngine.Matrix4x4)
IL_035D: ldarg.1
IL_035E: ldfld UnityEngine.Material PropInfo::m_material
IL_0363: ldarg.1
IL_0364: ldfld System.Int32 PrefabInfo::m_prefabDataLayer
IL_0369: ldnull
IL_036A: ldc.i4.0
IL_036B: ldloc.s 15 (UnityEngine.MaterialPropertyBlock)
IL_036D: call static System.Void
UnityEngine.Graphics::DrawMesh(UnityEngine.Mesh mesh, UnityEngine.Matrix4x4 matrix,
UnityEngine.Material material, System.Int32 layer, UnityEngine.Camera camera,
System.Int32 submeshIndex, UnityEngine.MaterialPropertyBlock properties)
IL_0372: br => Label19
IL_0377: Label17
IL_0377: ldarg.1
IL_0378: ldfld UnityEngine.Material PropInfo::m_lodMaterialCombined
IL_037D: ldnull
IL_037E: call static System.Boolean
UnityEngine.Object::op_Equality(UnityEngine.Object x, UnityEngine.Object y)
IL_0383: brfalse => Label20
IL_0388: ldloca.s 16 (UnityEngine.Matrix4x4)
IL_038A: initobj UnityEngine.Matrix4x4
IL_0390: ldloca.s 16 (UnityEngine.Matrix4x4)
IL_0392: ldarg.3
IL_0393: ldarg.s 5
IL_0395: ldc.r4 57.29578
IL_039A: mul
IL_039B: call static UnityEngine.Vector3 UnityEngine.Vector3::get_down()
IL_03A0: call static UnityEngine.Quaternion
UnityEngine.Quaternion::AngleAxis(System.Single angle, UnityEngine.Vector3 axis)
IL_03A5: ldarg.s 4
IL_03A7: ldarg.s 4
IL_03A9: ldarg.s 4
IL_03AB: newobj System.Void UnityEngine.Vector3::.ctor(System.Single x,
System.Single y, System.Single z)
IL_03B0: call System.Void UnityEngine.Matrix4x4::SetTRS(UnityEngine.Vector3
pos, UnityEngine.Quaternion q, UnityEngine.Vector3 s)
IL_03B5: call static PropManager
ColossalFramework.Singleton`1<PropManager>::get_instance()
IL_03BA: stloc.s 17 (PropManager)
IL_03BC: ldloc.s 17 (PropManager)
IL_03BE: ldfld UnityEngine.MaterialPropertyBlock PropManager::m_materialBlock
IL_03C3: stloc.s 18 (UnityEngine.MaterialPropertyBlock)
IL_03C5: ldloc.s 18 (UnityEngine.MaterialPropertyBlock)
IL_03C7: callvirt System.Void UnityEngine.MaterialPropertyBlock::Clear()
IL_03CC: ldloc.s 18 (UnityEngine.MaterialPropertyBlock)
IL_03CE: ldloc.s 17 (PropManager)
IL_03D0: ldfld System.Int32 PropManager::ID_Color
IL_03D5: ldarg.s 6
IL_03D7: callvirt System.Void
UnityEngine.MaterialPropertyBlock::SetColor(System.Int32 nameID, UnityEngine.Color
value)
IL_03DC: ldloc.s 18 (UnityEngine.MaterialPropertyBlock)
IL_03DE: ldloc.s 17 (PropManager)
IL_03E0: ldfld System.Int32 PropManager::ID_ObjectIndex
IL_03E5: ldarg.s 7
IL_03E7: callvirt System.Void
UnityEngine.MaterialPropertyBlock::SetVector(System.Int32 nameID,
UnityEngine.Vector4 value)
IL_03EC: ldarg.1
IL_03ED: ldfld UnityEngine.Vector4[] PropInfo::m_rollLocation
IL_03F2: brfalse => Label21
IL_03F7: ldarg.1
IL_03F8: ldfld UnityEngine.Material PropInfo::m_material
IL_03FD: ldloc.s 17 (PropManager)
IL_03FF: ldfld System.Int32 PropManager::ID_RollLocation
IL_0404: ldarg.1
IL_0405: ldfld UnityEngine.Vector4[] PropInfo::m_rollLocation
IL_040A: callvirt System.Void UnityEngine.Material::SetVectorArray(System.Int32
nameID, UnityEngine.Vector4[] values)
IL_040F: ldarg.1
IL_0410: ldfld UnityEngine.Material PropInfo::m_material
IL_0415: ldloc.s 17 (PropManager)
IL_0417: ldfld System.Int32 PropManager::ID_RollParams
IL_041C: ldarg.1
IL_041D: ldfld UnityEngine.Vector4[] PropInfo::m_rollParams
IL_0422: callvirt System.Void UnityEngine.Material::SetVectorArray(System.Int32
nameID, UnityEngine.Vector4[] values)
IL_0427: Label21
IL_0427: ldloc.s 17 (PropManager)
IL_0429: ldflda DrawCallData SimulationManagerBase`2<PropManager,
PropProperties>::m_drawCallData
IL_042E: dup
IL_042F: ldfld System.Int32 DrawCallData::m_defaultCalls
IL_0434: ldc.i4.1
IL_0435: add
IL_0436: stfld System.Int32 DrawCallData::m_defaultCalls
IL_043B: ldarg.1
IL_043C: ldfld UnityEngine.Mesh PropInfo::m_lodMesh
IL_0441: ldloc.s 16 (UnityEngine.Matrix4x4)
IL_0443: ldarg.1
IL_0444: ldfld UnityEngine.Material PropInfo::m_lodMaterial
IL_0449: ldarg.1
IL_044A: ldfld System.Int32 PrefabInfo::m_prefabDataLayer
IL_044F: ldnull
IL_0450: ldc.i4.0
IL_0451: ldloc.s 18 (UnityEngine.MaterialPropertyBlock)
IL_0453: call static System.Void
UnityEngine.Graphics::DrawMesh(UnityEngine.Mesh mesh, UnityEngine.Matrix4x4 matrix,
UnityEngine.Material material, System.Int32 layer, UnityEngine.Camera camera,
System.Int32 submeshIndex, UnityEngine.MaterialPropertyBlock properties)
IL_0458: br => Label22
IL_045D: Label20
IL_045D: ldarga.s 7
IL_045F: ldarg.s 4
IL_0461: stfld System.Single UnityEngine.Vector4::w
IL_0466: ldarg.1
IL_0467: ldfld UnityEngine.Vector4[] PropInfo::m_lodLocations
IL_046C: ldarg.1
IL_046D: ldfld System.Int32 PropInfo::m_lodCount
IL_0472: ldelema UnityEngine.Vector4
IL_0477: ldarga.s 3
IL_0479: ldfld System.Single UnityEngine.Vector3::x
IL_047E: ldarga.s 3
IL_0480: ldfld System.Single UnityEngine.Vector3::y
IL_0485: ldarga.s 3
IL_0487: ldfld System.Single UnityEngine.Vector3::z
IL_048C: ldarg.s 5
IL_048E: newobj System.Void UnityEngine.Vector4::.ctor(System.Single x,
System.Single y, System.Single z, System.Single w)
IL_0493: stobj UnityEngine.Vector4
IL_0498: ldarg.1
IL_0499: ldfld UnityEngine.Vector4[] PropInfo::m_lodObjectIndices
IL_049E: ldarg.1
IL_049F: ldfld System.Int32 PropInfo::m_lodCount
IL_04A4: ldelema UnityEngine.Vector4
IL_04A9: ldarg.s 7
IL_04AB: stobj UnityEngine.Vector4
IL_04B0: ldarg.1
IL_04B1: ldfld UnityEngine.Vector4[] PropInfo::m_lodColors
IL_04B6: ldarg.1
IL_04B7: ldfld System.Int32 PropInfo::m_lodCount
IL_04BC: ldelema UnityEngine.Vector4
IL_04C1: ldarga.s 6
IL_04C3: call UnityEngine.Color UnityEngine.Color::get_linear()
IL_04C8: call static UnityEngine.Vector4
UnityEngine.Color::op_Implicit(UnityEngine.Color c)
IL_04CD: stobj UnityEngine.Vector4
IL_04D2: ldarg.1
IL_04D3: ldarg.1
IL_04D4: ldfld UnityEngine.Vector3 PropInfo::m_lodMin
IL_04D9: ldarg.3
IL_04DA: call static UnityEngine.Vector3
UnityEngine.Vector3::Min(UnityEngine.Vector3 lhs, UnityEngine.Vector3 rhs)
IL_04DF: stfld UnityEngine.Vector3 PropInfo::m_lodMin
IL_04E4: ldarg.1
IL_04E5: ldarg.1
IL_04E6: ldfld UnityEngine.Vector3 PropInfo::m_lodMax
IL_04EB: ldarg.3
IL_04EC: call static UnityEngine.Vector3
UnityEngine.Vector3::Max(UnityEngine.Vector3 lhs, UnityEngine.Vector3 rhs)
IL_04F1: stfld UnityEngine.Vector3 PropInfo::m_lodMax
IL_04F6: ldarg.1
IL_04F7: dup
IL_04F8: ldfld System.Int32 PropInfo::m_lodCount
IL_04FD: ldc.i4.1
IL_04FE: add
IL_04FF: dup
IL_0500: stloc.s 19 (System.Int32)
IL_0502: stfld System.Int32 PropInfo::m_lodCount
IL_0507: ldloc.s 19 (System.Int32)
IL_0509: ldarg.1
IL_050A: ldfld UnityEngine.Vector4[] PropInfo::m_lodLocations
IL_050F: ldlen
IL_0510: conv.i4
IL_0511: bne.un => Label23
IL_0516: ldarg.0
IL_0517: ldarg.1
IL_0518: call static System.Void PropInstance::RenderLod(CameraInfo
cameraInfo, PropInfo info)
IL_051D: // end original
IL_051D: Label0
IL_051D: Label6
IL_051D: Label7
IL_051D: Label19
IL_051D: Label22
IL_051D: Label23
IL_051D: ret
DONE

### Patch: virtual System.Void LightEffect::PopulateGroupData(System.Int32 layer,


InstanceID id, UnityEngine.Vector3 pos, UnityEngine.Vector3 dir, 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
LightEffect::LightEffect.PopulateGroupData_Patch1(LightEffect this, System.Int32
layer, InstanceID id, UnityEngine.Vector3 pos, UnityEngine.Vector3 dir,
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.Boolean
IL_0000: Local var 1: UnityEngine.Vector3
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.Quaternion
IL_0000: Local var 7: UnityEngine.Vector4
IL_0000: Local var 8: UnityEngine.Vector2
IL_0000: Local var 9: ColossalFramework.Math.Randomizer
IL_0000: Local var 10: UnityEngine.Vector2
IL_0000: Local var 11: UnityEngine.Vector2
IL_0000: Local var 12: UnityEngine.Vector2
IL_0000: Local var 13: System.UInt16
IL_0000: Local var 14: UnityEngine.Vector3
IL_0000: Local var 15: UnityEngine.Color
IL_0000: Local var 16: UnityEngine.Color
IL_0000: Local var 17: System.Single
IL_0000: Local var 18: System.Single
IL_0000: Local var 19: System.Int32
IL_0000: Local var 20: System.Boolean
IL_0000: ldc.i4 0
IL_0005: stloc 20 (System.Boolean)
IL_0009: ldc.i4.1
IL_000A: stloc 20 (System.Boolean)
IL_000E: ldloc 20 (System.Boolean)
IL_0012: brfalse => Label1
IL_0017: ldarg 2
IL_001B: call static System.Boolean
ElectricRoads.Overrides.ElectricRoadsOverrides::CheckElectrityNetForLight(InstanceI
D id)
IL_0020: stloc 20 (System.Boolean)
IL_0024: Label1
IL_0024: nop
IL_0025: ldloc 20 (System.Boolean)
IL_0029: brfalse => Label0
IL_002E: // start original
IL_002E: ldarg.1
IL_002F: ldarg.0
IL_0030: ldfld System.Int32 LightEffect::m_groupLayer
IL_0035: beq => Label2
IL_003A: ldarg.1
IL_003B: ldarg.0
IL_003C: ldfld System.Int32 LightEffect::m_groupLayerFloating
IL_0041: bne.un => Label3
IL_0046: Label2
IL_0046: ldarg.1
IL_0047: ldarg.0
IL_0048: ldfld System.Int32 LightEffect::m_groupLayerFloating
IL_004D: ceq
IL_004F: stloc.0
IL_0050: ldloca.s 1 (UnityEngine.Vector3)
IL_0052: ldarg.0
IL_0053: ldfld System.Single LightEffect::m_lightRange
IL_0058: ldarg.0
IL_0059: ldfld System.Single LightEffect::m_lightRange
IL_005E: ldarg.0
IL_005F: ldfld System.Single LightEffect::m_lightRange
IL_0064: call System.Void UnityEngine.Vector3::.ctor(System.Single x,
System.Single y, System.Single z)
IL_0069: ldarg.3
IL_006A: ldloc.1
IL_006B: call static UnityEngine.Vector3
UnityEngine.Vector3::op_Subtraction(UnityEngine.Vector3 a, UnityEngine.Vector3 b)
IL_0070: stloc.2
IL_0071: ldarg.3
IL_0072: ldloc.1
IL_0073: call static UnityEngine.Vector3
UnityEngine.Vector3::op_Addition(UnityEngine.Vector3 a, UnityEngine.Vector3 b)
IL_0078: stloc.3
IL_0079: ldarg.s 9
IL_007B: ldarg.s 9
IL_007D: ldobj UnityEngine.Vector3
IL_0082: ldloc.2
IL_0083: call static UnityEngine.Vector3
UnityEngine.Vector3::Min(UnityEngine.Vector3 lhs, UnityEngine.Vector3 rhs)
IL_0088: stobj UnityEngine.Vector3
IL_008D: ldarg.s 10
IL_008F: ldarg.s 10
IL_0091: ldobj UnityEngine.Vector3
IL_0096: ldloc.3
IL_0097: call static UnityEngine.Vector3
UnityEngine.Vector3::Max(UnityEngine.Vector3 lhs, UnityEngine.Vector3 rhs)
IL_009C: stobj UnityEngine.Vector3
IL_00A1: ldarg.3
IL_00A2: ldarg.s 7
IL_00A4: call static UnityEngine.Vector3
UnityEngine.Vector3::op_Subtraction(UnityEngine.Vector3 a, UnityEngine.Vector3 b)
IL_00A9: stloc.s 4 (UnityEngine.Vector3)
IL_00AB: ldarg.s 11
IL_00AD: ldarg.s 11
IL_00AF: ldind.r4
IL_00B0: ldc.r4 30000
IL_00B5: call static System.Single UnityEngine.Mathf::Max(System.Single a,
System.Single b)
IL_00BA: stind.r4
IL_00BB: ldarg.0
IL_00BC: ldfld UnityEngine.LightType LightEffect::m_lightType
IL_00C1: brtrue => Label4
IL_00C6: ldarg.s 4
IL_00C8: call static UnityEngine.Quaternion
UnityEngine.Quaternion::LookRotation(UnityEngine.Vector3 forward)
IL_00CD: stloc.s 6 (UnityEngine.Quaternion)
IL_00CF: ldloc.s 6 (UnityEngine.Quaternion)
IL_00D1: ldarg.0
IL_00D2: ldfld UnityEngine.Quaternion LightEffect::m_lightRotation
IL_00D7: call static UnityEngine.Vector3 UnityEngine.Vector3::get_forward()
IL_00DC: call static UnityEngine.Vector3
UnityEngine.Quaternion::op_Multiply(UnityEngine.Quaternion rotation,
UnityEngine.Vector3 point)
IL_00E1: call static UnityEngine.Vector3
UnityEngine.Quaternion::op_Multiply(UnityEngine.Quaternion rotation,
UnityEngine.Vector3 point)
IL_00E6: stloc.s 5 (UnityEngine.Vector3)
IL_00E8: br => Label5
IL_00ED: Label4
IL_00ED: call static UnityEngine.Vector3 UnityEngine.Vector3::get_forward()
IL_00F2: stloc.s 5 (UnityEngine.Vector3)
IL_00F4: Label5
IL_00F4: ldloca.s 7 (UnityEngine.Vector4)
IL_00F6: ldloca.s 5 (UnityEngine.Vector3)
IL_00F8: ldfld System.Single UnityEngine.Vector3::x
IL_00FD: ldloca.s 5 (UnityEngine.Vector3)
IL_00FF: ldfld System.Single UnityEngine.Vector3::y
IL_0104: ldloca.s 5 (UnityEngine.Vector3)
IL_0106: ldfld System.Single UnityEngine.Vector3::z
IL_010B: ldc.r4 100000
IL_0110: call System.Void UnityEngine.Vector4::.ctor(System.Single x,
System.Single y, System.Single z, System.Single w)
IL_0115: ldarg.0
IL_0116: ldfld UnityEngine.LightType LightEffect::m_lightType
IL_011B: brtrue => Label6
IL_0120: ldloca.s 7 (UnityEngine.Vector4)
IL_0122: ldc.r4 0.01745329
IL_0127: ldarg.0
IL_0128: ldfld System.Single LightEffect::m_lightSpotAngle
IL_012D: mul
IL_012E: ldc.r4 0.5
IL_0133: mul
IL_0134: call static System.Single UnityEngine.Mathf::Cos(System.Single f)
IL_0139: neg
IL_013A: stfld System.Single UnityEngine.Vector4::w
IL_013F: Label6
IL_013F: ldloca.s 8 (UnityEngine.Vector2)
IL_0141: ldc.r4 1
IL_0146: ldarg.0
IL_0147: ldfld System.Single LightEffect::m_lightRange
IL_014C: ldarg.0
IL_014D: ldfld System.Single LightEffect::m_lightRange
IL_0152: mul
IL_0153: div
IL_0154: ldarg.0
IL_0155: ldfld System.Single LightEffect::m_lightIntensity
IL_015A: call System.Void UnityEngine.Vector2::.ctor(System.Single x,
System.Single y)
IL_015F: ldloca.s 9 (ColossalFramework.Math.Randomizer)
IL_0161: ldarga.s 2
IL_0163: call System.UInt32 InstanceID::get_Index()
IL_0168: call System.Void
ColossalFramework.Math.Randomizer::.ctor(System.UInt32 _seed)
IL_016D: ldloca.s 10 (UnityEngine.Vector2)
IL_016F: ldarg.0
IL_0170: ldflda UnityEngine.Vector2 LightEffect::m_offRange
IL_0175: ldfld System.Single UnityEngine.Vector2::x
IL_017A: ldloca.s 9 (ColossalFramework.Math.Randomizer)
IL_017C: ldc.i4 100000
IL_0181: call System.Int32
ColossalFramework.Math.Randomizer::Int32(System.UInt32 range)
IL_0186: conv.r4
IL_0187: ldc.r4 1E-05
IL_018C: mul
IL_018D: ldarg.0
IL_018E: ldflda UnityEngine.Vector2 LightEffect::m_offRange
IL_0193: ldfld System.Single UnityEngine.Vector2::y
IL_0198: ldarg.0
IL_0199: ldflda UnityEngine.Vector2 LightEffect::m_offRange
IL_019E: ldfld System.Single UnityEngine.Vector2::x
IL_01A3: sub
IL_01A4: mul
IL_01A5: add
IL_01A6: stfld System.Single UnityEngine.Vector2::x
IL_01AB: ldloca.s 10 (UnityEngine.Vector2)
IL_01AD: ldarg.0
IL_01AE: ldfld BlinkType LightEffect::m_blinkType
IL_01B3: conv.r4
IL_01B4: stfld System.Single UnityEngine.Vector2::y
IL_01B9: ldarg.2
IL_01BA: call static System.UInt16 EffectInfo::GetBuilding(InstanceID id)
IL_01BF: stloc.s 13 (System.UInt16)
IL_01C1: ldloc.s 13 (System.UInt16)
IL_01C3: brfalse => Label7
IL_01C8: ldloc.s 13 (System.UInt16)
IL_01CA: call static UnityEngine.Vector4
RenderManager::GetColorLocation(System.UInt32 instanceHolder)
IL_01CF: call static UnityEngine.Vector2
UnityEngine.Vector4::op_Implicit(UnityEngine.Vector4 v)
IL_01D4: stloc.s 11 (UnityEngine.Vector2)
IL_01D6: ldloc.0
IL_01D7: brfalse => Label8
IL_01DC: call static BuildingManager
ColossalFramework.Singleton`1<BuildingManager>::get_instance()
IL_01E1: ldfld Array16`1<Building> BuildingManager::m_buildings
IL_01E6: ldfld Building[] Array16`1<Building>::m_buffer
IL_01EB: ldloc.s 13 (System.UInt16)
IL_01ED: ldelema Building
IL_01F2: call UnityEngine.Vector3 Building::CalculateMeshPosition()
IL_01F7: stloc.s 14 (UnityEngine.Vector3)
IL_01F9: ldloc.s 14 (UnityEngine.Vector3)
IL_01FB: call static UnityEngine.Vector2
ColossalFramework.Math.VectorUtils::XZ(UnityEngine.Vector3 v)
IL_0200: stloc.s 12 (UnityEngine.Vector2)
IL_0202: ldarga.s 3
IL_0204: dup
IL_0205: ldfld System.Single UnityEngine.Vector3::y
IL_020A: ldloca.s 14 (UnityEngine.Vector3)
IL_020C: ldfld System.Single UnityEngine.Vector3::y
IL_0211: sub
IL_0212: stfld System.Single UnityEngine.Vector3::y
IL_0217: ldloca.s 4 (UnityEngine.Vector3)
IL_0219: dup
IL_021A: ldfld System.Single UnityEngine.Vector3::y
IL_021F: ldloca.s 14 (UnityEngine.Vector3)
IL_0221: ldfld System.Single UnityEngine.Vector3::y
IL_0226: sub
IL_0227: stfld System.Single UnityEngine.Vector3::y
IL_022C: br => Label9
IL_0231: Label8
IL_0231: call static UnityEngine.Vector2 UnityEngine.Vector2::get_zero()
IL_0236: stloc.s 12 (UnityEngine.Vector2)
IL_0238: Label9
IL_0238: br => Label10
IL_023D: Label7
IL_023D: ldsfld UnityEngine.Vector4 RenderManager::DefaultColorLocation
IL_0242: call static UnityEngine.Vector2
UnityEngine.Vector4::op_Implicit(UnityEngine.Vector4 v)
IL_0247: stloc.s 11 (UnityEngine.Vector2)
IL_0249: call static UnityEngine.Vector2 UnityEngine.Vector2::get_zero()
IL_024E: stloc.s 12 (UnityEngine.Vector2)
IL_0250: Label10
IL_0250: ldarg.0
IL_0251: ldfld UnityEngine.Color LightEffect::m_lightColor
IL_0256: stloc.s 15 (UnityEngine.Color)
IL_0258: ldarg.0
IL_0259: ldfld UnityEngine.Color[] LightEffect::m_variationColors
IL_025E: brfalse => Label11
IL_0263: ldarg.0
IL_0264: ldfld UnityEngine.Color[] LightEffect::m_variationColors
IL_0269: ldlen
IL_026A: conv.i4
IL_026B: brfalse => Label12
IL_0270: ldarg.0
IL_0271: ldfld UnityEngine.Color[] LightEffect::m_variationColors
IL_0276: ldloca.s 9 (ColossalFramework.Math.Randomizer)
IL_0278: ldarg.0
IL_0279: ldfld UnityEngine.Color[] LightEffect::m_variationColors
IL_027E: ldlen
IL_027F: conv.i4
IL_0280: call System.Int32
ColossalFramework.Math.Randomizer::Int32(System.UInt32 range)
IL_0285: ldelema UnityEngine.Color
IL_028A: ldobj UnityEngine.Color
IL_028F: stloc.s 16 (UnityEngine.Color)
IL_0291: ldloc.s 15 (UnityEngine.Color)
IL_0293: ldloc.s 16 (UnityEngine.Color)
IL_0295: ldloca.s 9 (ColossalFramework.Math.Randomizer)
IL_0297: ldc.i4 1000
IL_029C: call System.Int32
ColossalFramework.Math.Randomizer::Int32(System.UInt32 range)
IL_02A1: conv.r4
IL_02A2: ldc.r4 0.001
IL_02A7: mul
IL_02A8: call static UnityEngine.Color
UnityEngine.Color::Lerp(UnityEngine.Color a, UnityEngine.Color b, System.Single t)
IL_02AD: stloc.s 15 (UnityEngine.Color)
IL_02AF: Label11
IL_02AF: Label12
IL_02AF: ldloca.s 15 (UnityEngine.Color)
IL_02B1: call UnityEngine.Color UnityEngine.Color::get_linear()
IL_02B6: stloc.s 15 (UnityEngine.Color)
IL_02B8: ldloca.s 15 (UnityEngine.Color)
IL_02BA: ldarg.0
IL_02BB: ldfld UnityEngine.LightType LightEffect::m_lightType
IL_02C0: brtrue => Label13
IL_02C5: ldarg.0
IL_02C6: ldfld System.Single LightEffect::m_spotLeaking
IL_02CB: br => Label14
IL_02D0: Label13
IL_02D0: ldc.r4 0
IL_02D5: Label14
IL_02D5: stfld System.Single UnityEngine.Color::a
IL_02DA: ldarg.0
IL_02DB: ldfld System.Single LightEffect::m_lightRange
IL_02E0: ldc.r4 0.5235988
IL_02E5: call static System.Single UnityEngine.Mathf::Cos(System.Single f)
IL_02EA: div
IL_02EB: stloc.s 17 (System.Single)
IL_02ED: ldloc.s 17 (System.Single)
IL_02EF: ldc.r4 0.5
IL_02F4: mul
IL_02F5: stloc.s 18 (System.Single)
IL_02F7: ldarg.s 8
IL_02F9: ldfld UnityEngine.Vector3[] MeshData::m_vertices
IL_02FE: ldarg.s 5
IL_0300: ldind.i4
IL_0301: ldelema UnityEngine.Vector3
IL_0306: ldloca.s 4 (UnityEngine.Vector3)
IL_0308: ldfld System.Single UnityEngine.Vector3::x
IL_030D: ldloc.s 18 (System.Single)
IL_030F: sub
IL_0310: ldloca.s 4 (UnityEngine.Vector3)
IL_0312: ldfld System.Single UnityEngine.Vector3::y
IL_0317: ldarg.0
IL_0318: ldfld System.Single LightEffect::m_lightRange
IL_031D: add
IL_031E: ldloca.s 4 (UnityEngine.Vector3)
IL_0320: ldfld System.Single UnityEngine.Vector3::z
IL_0325: ldarg.0
IL_0326: ldfld System.Single LightEffect::m_lightRange
IL_032B: add
IL_032C: newobj System.Void UnityEngine.Vector3::.ctor(System.Single x,
System.Single y, System.Single z)
IL_0331: stobj UnityEngine.Vector3
IL_0336: ldarg.s 8
IL_0338: ldfld UnityEngine.Vector3[] MeshData::m_normals
IL_033D: ldarg.s 5
IL_033F: ldind.i4
IL_0340: ldelema UnityEngine.Vector3
IL_0345: ldarg.3
IL_0346: stobj UnityEngine.Vector3
IL_034B: ldarg.s 8
IL_034D: ldfld UnityEngine.Vector4[] MeshData::m_tangents
IL_0352: ldarg.s 5
IL_0354: ldind.i4
IL_0355: ldelema UnityEngine.Vector4
IL_035A: ldloc.s 7 (UnityEngine.Vector4)
IL_035C: stobj UnityEngine.Vector4
IL_0361: ldarg.s 8
IL_0363: ldfld UnityEngine.Vector2[] MeshData::m_uvs
IL_0368: ldarg.s 5
IL_036A: ldind.i4
IL_036B: ldelema UnityEngine.Vector2
IL_0370: ldloc.s 8 (UnityEngine.Vector2)
IL_0372: stobj UnityEngine.Vector2
IL_0377: ldarg.s 8
IL_0379: ldfld UnityEngine.Vector2[] MeshData::m_uvs2
IL_037E: ldarg.s 5
IL_0380: ldind.i4
IL_0381: ldelema UnityEngine.Vector2
IL_0386: ldloc.s 10 (UnityEngine.Vector2)
IL_0388: stobj UnityEngine.Vector2
IL_038D: ldarg.s 8
IL_038F: ldfld UnityEngine.Vector2[] MeshData::m_uvs3
IL_0394: ldarg.s 5
IL_0396: ldind.i4
IL_0397: ldelema UnityEngine.Vector2
IL_039C: ldloc.s 11 (UnityEngine.Vector2)
IL_039E: stobj UnityEngine.Vector2
IL_03A3: ldloc.0
IL_03A4: brfalse => Label15
IL_03A9: ldarg.s 8
IL_03AB: ldfld UnityEngine.Vector2[] MeshData::m_uvs4
IL_03B0: ldarg.s 5
IL_03B2: ldind.i4
IL_03B3: ldelema UnityEngine.Vector2
IL_03B8: ldloc.s 12 (UnityEngine.Vector2)
IL_03BA: stobj UnityEngine.Vector2
IL_03BF: Label15
IL_03BF: ldarg.s 8
IL_03C1: ldfld UnityEngine.Color32[] MeshData::m_colors
IL_03C6: ldarg.s 5
IL_03C8: ldind.i4
IL_03C9: ldelema UnityEngine.Color32
IL_03CE: ldloc.s 15 (UnityEngine.Color)
IL_03D0: call static UnityEngine.Color32
UnityEngine.Color32::op_Implicit(UnityEngine.Color c)
IL_03D5: stobj UnityEngine.Color32
IL_03DA: ldarg.s 5
IL_03DC: ldarg.s 5
IL_03DE: ldind.i4
IL_03DF: ldc.i4.1
IL_03E0: add
IL_03E1: stind.i4
IL_03E2: ldarg.s 8
IL_03E4: ldfld UnityEngine.Vector3[] MeshData::m_vertices
IL_03E9: ldarg.s 5
IL_03EB: ldind.i4
IL_03EC: ldelema UnityEngine.Vector3
IL_03F1: ldloca.s 4 (UnityEngine.Vector3)
IL_03F3: ldfld System.Single UnityEngine.Vector3::x
IL_03F8: ldloc.s 18 (System.Single)
IL_03FA: add
IL_03FB: ldloca.s 4 (UnityEngine.Vector3)
IL_03FD: ldfld System.Single UnityEngine.Vector3::y
IL_0402: ldarg.0
IL_0403: ldfld System.Single LightEffect::m_lightRange
IL_0408: add
IL_0409: ldloca.s 4 (UnityEngine.Vector3)
IL_040B: ldfld System.Single UnityEngine.Vector3::z
IL_0410: ldarg.0
IL_0411: ldfld System.Single LightEffect::m_lightRange
IL_0416: add
IL_0417: newobj System.Void UnityEngine.Vector3::.ctor(System.Single x,
System.Single y, System.Single z)
IL_041C: stobj UnityEngine.Vector3
IL_0421: ldarg.s 8
IL_0423: ldfld UnityEngine.Vector3[] MeshData::m_normals
IL_0428: ldarg.s 5
IL_042A: ldind.i4
IL_042B: ldelema UnityEngine.Vector3
IL_0430: ldarg.3
IL_0431: stobj UnityEngine.Vector3
IL_0436: ldarg.s 8
IL_0438: ldfld UnityEngine.Vector4[] MeshData::m_tangents
IL_043D: ldarg.s 5
IL_043F: ldind.i4
IL_0440: ldelema UnityEngine.Vector4
IL_0445: ldloc.s 7 (UnityEngine.Vector4)
IL_0447: stobj UnityEngine.Vector4
IL_044C: ldarg.s 8
IL_044E: ldfld UnityEngine.Vector2[] MeshData::m_uvs
IL_0453: ldarg.s 5
IL_0455: ldind.i4
IL_0456: ldelema UnityEngine.Vector2
IL_045B: ldloc.s 8 (UnityEngine.Vector2)
IL_045D: stobj UnityEngine.Vector2
IL_0462: ldarg.s 8
IL_0464: ldfld UnityEngine.Vector2[] MeshData::m_uvs2
IL_0469: ldarg.s 5
IL_046B: ldind.i4
IL_046C: ldelema UnityEngine.Vector2
IL_0471: ldloc.s 10 (UnityEngine.Vector2)
IL_0473: stobj UnityEngine.Vector2
IL_0478: ldarg.s 8
IL_047A: ldfld UnityEngine.Vector2[] MeshData::m_uvs3
IL_047F: ldarg.s 5
IL_0481: ldind.i4
IL_0482: ldelema UnityEngine.Vector2
IL_0487: ldloc.s 11 (UnityEngine.Vector2)
IL_0489: stobj UnityEngine.Vector2
IL_048E: ldloc.0
IL_048F: brfalse => Label16
IL_0494: ldarg.s 8
IL_0496: ldfld UnityEngine.Vector2[] MeshData::m_uvs4
IL_049B: ldarg.s 5
IL_049D: ldind.i4
IL_049E: ldelema UnityEngine.Vector2
IL_04A3: ldloc.s 12 (UnityEngine.Vector2)
IL_04A5: stobj UnityEngine.Vector2
IL_04AA: Label16
IL_04AA: ldarg.s 8
IL_04AC: ldfld UnityEngine.Color32[] MeshData::m_colors
IL_04B1: ldarg.s 5
IL_04B3: ldind.i4
IL_04B4: ldelema UnityEngine.Color32
IL_04B9: ldloc.s 15 (UnityEngine.Color)
IL_04BB: call static UnityEngine.Color32
UnityEngine.Color32::op_Implicit(UnityEngine.Color c)
IL_04C0: stobj UnityEngine.Color32
IL_04C5: ldarg.s 5
IL_04C7: ldarg.s 5
IL_04C9: ldind.i4
IL_04CA: ldc.i4.1
IL_04CB: add
IL_04CC: stind.i4
IL_04CD: ldarg.s 8
IL_04CF: ldfld UnityEngine.Vector3[] MeshData::m_vertices
IL_04D4: ldarg.s 5
IL_04D6: ldind.i4
IL_04D7: ldelema UnityEngine.Vector3
IL_04DC: ldloca.s 4 (UnityEngine.Vector3)
IL_04DE: ldfld System.Single UnityEngine.Vector3::x
IL_04E3: ldloc.s 17 (System.Single)
IL_04E5: add
IL_04E6: ldloca.s 4 (UnityEngine.Vector3)
IL_04E8: ldfld System.Single UnityEngine.Vector3::y
IL_04ED: ldloca.s 4 (UnityEngine.Vector3)
IL_04EF: ldfld System.Single UnityEngine.Vector3::z
IL_04F4: ldarg.0
IL_04F5: ldfld System.Single LightEffect::m_lightRange
IL_04FA: add
IL_04FB: newobj System.Void UnityEngine.Vector3::.ctor(System.Single x,
System.Single y, System.Single z)
IL_0500: stobj UnityEngine.Vector3
IL_0505: ldarg.s 8
IL_0507: ldfld UnityEngine.Vector3[] MeshData::m_normals
IL_050C: ldarg.s 5
IL_050E: ldind.i4
IL_050F: ldelema UnityEngine.Vector3
IL_0514: ldarg.3
IL_0515: stobj UnityEngine.Vector3
IL_051A: ldarg.s 8
IL_051C: ldfld UnityEngine.Vector4[] MeshData::m_tangents
IL_0521: ldarg.s 5
IL_0523: ldind.i4
IL_0524: ldelema UnityEngine.Vector4
IL_0529: ldloc.s 7 (UnityEngine.Vector4)
IL_052B: stobj UnityEngine.Vector4
IL_0530: ldarg.s 8
IL_0532: ldfld UnityEngine.Vector2[] MeshData::m_uvs
IL_0537: ldarg.s 5
IL_0539: ldind.i4
IL_053A: ldelema UnityEngine.Vector2
IL_053F: ldloc.s 8 (UnityEngine.Vector2)
IL_0541: stobj UnityEngine.Vector2
IL_0546: ldarg.s 8
IL_0548: ldfld UnityEngine.Vector2[] MeshData::m_uvs2
IL_054D: ldarg.s 5
IL_054F: ldind.i4
IL_0550: ldelema UnityEngine.Vector2
IL_0555: ldloc.s 10 (UnityEngine.Vector2)
IL_0557: stobj UnityEngine.Vector2
IL_055C: ldarg.s 8
IL_055E: ldfld UnityEngine.Vector2[] MeshData::m_uvs3
IL_0563: ldarg.s 5
IL_0565: ldind.i4
IL_0566: ldelema UnityEngine.Vector2
IL_056B: ldloc.s 11 (UnityEngine.Vector2)
IL_056D: stobj UnityEngine.Vector2
IL_0572: ldloc.0
IL_0573: brfalse => Label17
IL_0578: ldarg.s 8
IL_057A: ldfld UnityEngine.Vector2[] MeshData::m_uvs4
IL_057F: ldarg.s 5
IL_0581: ldind.i4
IL_0582: ldelema UnityEngine.Vector2
IL_0587: ldloc.s 12 (UnityEngine.Vector2)
IL_0589: stobj UnityEngine.Vector2
IL_058E: Label17
IL_058E: ldarg.s 8
IL_0590: ldfld UnityEngine.Color32[] MeshData::m_colors
IL_0595: ldarg.s 5
IL_0597: ldind.i4
IL_0598: ldelema UnityEngine.Color32
IL_059D: ldloc.s 15 (UnityEngine.Color)
IL_059F: call static UnityEngine.Color32
UnityEngine.Color32::op_Implicit(UnityEngine.Color c)
IL_05A4: stobj UnityEngine.Color32
IL_05A9: ldarg.s 5
IL_05AB: ldarg.s 5
IL_05AD: ldind.i4
IL_05AE: ldc.i4.1
IL_05AF: add
IL_05B0: stind.i4
IL_05B1: ldarg.s 8
IL_05B3: ldfld UnityEngine.Vector3[] MeshData::m_vertices
IL_05B8: ldarg.s 5
IL_05BA: ldind.i4
IL_05BB: ldelema UnityEngine.Vector3
IL_05C0: ldloca.s 4 (UnityEngine.Vector3)
IL_05C2: ldfld System.Single UnityEngine.Vector3::x
IL_05C7: ldloc.s 18 (System.Single)
IL_05C9: add
IL_05CA: ldloca.s 4 (UnityEngine.Vector3)
IL_05CC: ldfld System.Single UnityEngine.Vector3::y
IL_05D1: ldarg.0
IL_05D2: ldfld System.Single LightEffect::m_lightRange
IL_05D7: sub
IL_05D8: ldloca.s 4 (UnityEngine.Vector3)
IL_05DA: ldfld System.Single UnityEngine.Vector3::z
IL_05DF: ldarg.0
IL_05E0: ldfld System.Single LightEffect::m_lightRange
IL_05E5: add
IL_05E6: newobj System.Void UnityEngine.Vector3::.ctor(System.Single x,
System.Single y, System.Single z)
IL_05EB: stobj UnityEngine.Vector3
IL_05F0: ldarg.s 8
IL_05F2: ldfld UnityEngine.Vector3[] MeshData::m_normals
IL_05F7: ldarg.s 5
IL_05F9: ldind.i4
IL_05FA: ldelema UnityEngine.Vector3
IL_05FF: ldarg.3
IL_0600: stobj UnityEngine.Vector3
IL_0605: ldarg.s 8
IL_0607: ldfld UnityEngine.Vector4[] MeshData::m_tangents
IL_060C: ldarg.s 5
IL_060E: ldind.i4
IL_060F: ldelema UnityEngine.Vector4
IL_0614: ldloc.s 7 (UnityEngine.Vector4)
IL_0616: stobj UnityEngine.Vector4
IL_061B: ldarg.s 8
IL_061D: ldfld UnityEngine.Vector2[] MeshData::m_uvs
IL_0622: ldarg.s 5
IL_0624: ldind.i4
IL_0625: ldelema UnityEngine.Vector2
IL_062A: ldloc.s 8 (UnityEngine.Vector2)
IL_062C: stobj UnityEngine.Vector2
IL_0631: ldarg.s 8
IL_0633: ldfld UnityEngine.Vector2[] MeshData::m_uvs2
IL_0638: ldarg.s 5
IL_063A: ldind.i4
IL_063B: ldelema UnityEngine.Vector2
IL_0640: ldloc.s 10 (UnityEngine.Vector2)
IL_0642: stobj UnityEngine.Vector2
IL_0647: ldarg.s 8
IL_0649: ldfld UnityEngine.Vector2[] MeshData::m_uvs3
IL_064E: ldarg.s 5
IL_0650: ldind.i4
IL_0651: ldelema UnityEngine.Vector2
IL_0656: ldloc.s 11 (UnityEngine.Vector2)
IL_0658: stobj UnityEngine.Vector2
IL_065D: ldloc.0
IL_065E: brfalse => Label18
IL_0663: ldarg.s 8
IL_0665: ldfld UnityEngine.Vector2[] MeshData::m_uvs4
IL_066A: ldarg.s 5
IL_066C: ldind.i4
IL_066D: ldelema UnityEngine.Vector2
IL_0672: ldloc.s 12 (UnityEngine.Vector2)
IL_0674: stobj UnityEngine.Vector2
IL_0679: Label18
IL_0679: ldarg.s 8
IL_067B: ldfld UnityEngine.Color32[] MeshData::m_colors
IL_0680: ldarg.s 5
IL_0682: ldind.i4
IL_0683: ldelema UnityEngine.Color32
IL_0688: ldloc.s 15 (UnityEngine.Color)
IL_068A: call static UnityEngine.Color32
UnityEngine.Color32::op_Implicit(UnityEngine.Color c)
IL_068F: stobj UnityEngine.Color32
IL_0694: ldarg.s 5
IL_0696: ldarg.s 5
IL_0698: ldind.i4
IL_0699: ldc.i4.1
IL_069A: add
IL_069B: stind.i4
IL_069C: ldarg.s 8
IL_069E: ldfld UnityEngine.Vector3[] MeshData::m_vertices
IL_06A3: ldarg.s 5
IL_06A5: ldind.i4
IL_06A6: ldelema UnityEngine.Vector3
IL_06AB: ldloca.s 4 (UnityEngine.Vector3)
IL_06AD: ldfld System.Single UnityEngine.Vector3::x
IL_06B2: ldloc.s 18 (System.Single)
IL_06B4: sub
IL_06B5: ldloca.s 4 (UnityEngine.Vector3)
IL_06B7: ldfld System.Single UnityEngine.Vector3::y
IL_06BC: ldarg.0
IL_06BD: ldfld System.Single LightEffect::m_lightRange
IL_06C2: sub
IL_06C3: ldloca.s 4 (UnityEngine.Vector3)
IL_06C5: ldfld System.Single UnityEngine.Vector3::z
IL_06CA: ldarg.0
IL_06CB: ldfld System.Single LightEffect::m_lightRange
IL_06D0: add
IL_06D1: newobj System.Void UnityEngine.Vector3::.ctor(System.Single x,
System.Single y, System.Single z)
IL_06D6: stobj UnityEngine.Vector3
IL_06DB: ldarg.s 8
IL_06DD: ldfld UnityEngine.Vector3[] MeshData::m_normals
IL_06E2: ldarg.s 5
IL_06E4: ldind.i4
IL_06E5: ldelema UnityEngine.Vector3
IL_06EA: ldarg.3
IL_06EB: stobj UnityEngine.Vector3
IL_06F0: ldarg.s 8
IL_06F2: ldfld UnityEngine.Vector4[] MeshData::m_tangents
IL_06F7: ldarg.s 5
IL_06F9: ldind.i4
IL_06FA: ldelema UnityEngine.Vector4
IL_06FF: ldloc.s 7 (UnityEngine.Vector4)
IL_0701: stobj UnityEngine.Vector4
IL_0706: ldarg.s 8
IL_0708: ldfld UnityEngine.Vector2[] MeshData::m_uvs
IL_070D: ldarg.s 5
IL_070F: ldind.i4
IL_0710: ldelema UnityEngine.Vector2
IL_0715: ldloc.s 8 (UnityEngine.Vector2)
IL_0717: stobj UnityEngine.Vector2
IL_071C: ldarg.s 8
IL_071E: ldfld UnityEngine.Vector2[] MeshData::m_uvs2
IL_0723: ldarg.s 5
IL_0725: ldind.i4
IL_0726: ldelema UnityEngine.Vector2
IL_072B: ldloc.s 10 (UnityEngine.Vector2)
IL_072D: stobj UnityEngine.Vector2
IL_0732: ldarg.s 8
IL_0734: ldfld UnityEngine.Vector2[] MeshData::m_uvs3
IL_0739: ldarg.s 5
IL_073B: ldind.i4
IL_073C: ldelema UnityEngine.Vector2
IL_0741: ldloc.s 11 (UnityEngine.Vector2)
IL_0743: stobj UnityEngine.Vector2
IL_0748: ldloc.0
IL_0749: brfalse => Label19
IL_074E: ldarg.s 8
IL_0750: ldfld UnityEngine.Vector2[] MeshData::m_uvs4
IL_0755: ldarg.s 5
IL_0757: ldind.i4
IL_0758: ldelema UnityEngine.Vector2
IL_075D: ldloc.s 12 (UnityEngine.Vector2)
IL_075F: stobj UnityEngine.Vector2
IL_0764: Label19
IL_0764: ldarg.s 8
IL_0766: ldfld UnityEngine.Color32[] MeshData::m_colors
IL_076B: ldarg.s 5
IL_076D: ldind.i4
IL_076E: ldelema UnityEngine.Color32
IL_0773: ldloc.s 15 (UnityEngine.Color)
IL_0775: call static UnityEngine.Color32
UnityEngine.Color32::op_Implicit(UnityEngine.Color c)
IL_077A: stobj UnityEngine.Color32
IL_077F: ldarg.s 5
IL_0781: ldarg.s 5
IL_0783: ldind.i4
IL_0784: ldc.i4.1
IL_0785: add
IL_0786: stind.i4
IL_0787: ldarg.s 8
IL_0789: ldfld UnityEngine.Vector3[] MeshData::m_vertices
IL_078E: ldarg.s 5
IL_0790: ldind.i4
IL_0791: ldelema UnityEngine.Vector3
IL_0796: ldloca.s 4 (UnityEngine.Vector3)
IL_0798: ldfld System.Single UnityEngine.Vector3::x
IL_079D: ldloc.s 17 (System.Single)
IL_079F: sub
IL_07A0: ldloca.s 4 (UnityEngine.Vector3)
IL_07A2: ldfld System.Single UnityEngine.Vector3::y
IL_07A7: ldloca.s 4 (UnityEngine.Vector3)
IL_07A9: ldfld System.Single UnityEngine.Vector3::z
IL_07AE: ldarg.0
IL_07AF: ldfld System.Single LightEffect::m_lightRange
IL_07B4: add
IL_07B5: newobj System.Void UnityEngine.Vector3::.ctor(System.Single x,
System.Single y, System.Single z)
IL_07BA: stobj UnityEngine.Vector3
IL_07BF: ldarg.s 8
IL_07C1: ldfld UnityEngine.Vector3[] MeshData::m_normals
IL_07C6: ldarg.s 5
IL_07C8: ldind.i4
IL_07C9: ldelema UnityEngine.Vector3
IL_07CE: ldarg.3
IL_07CF: stobj UnityEngine.Vector3
IL_07D4: ldarg.s 8
IL_07D6: ldfld UnityEngine.Vector4[] MeshData::m_tangents
IL_07DB: ldarg.s 5
IL_07DD: ldind.i4
IL_07DE: ldelema UnityEngine.Vector4
IL_07E3: ldloc.s 7 (UnityEngine.Vector4)
IL_07E5: stobj UnityEngine.Vector4
IL_07EA: ldarg.s 8
IL_07EC: ldfld UnityEngine.Vector2[] MeshData::m_uvs
IL_07F1: ldarg.s 5
IL_07F3: ldind.i4
IL_07F4: ldelema UnityEngine.Vector2
IL_07F9: ldloc.s 8 (UnityEngine.Vector2)
IL_07FB: stobj UnityEngine.Vector2
IL_0800: ldarg.s 8
IL_0802: ldfld UnityEngine.Vector2[] MeshData::m_uvs2
IL_0807: ldarg.s 5
IL_0809: ldind.i4
IL_080A: ldelema UnityEngine.Vector2
IL_080F: ldloc.s 10 (UnityEngine.Vector2)
IL_0811: stobj UnityEngine.Vector2
IL_0816: ldarg.s 8
IL_0818: ldfld UnityEngine.Vector2[] MeshData::m_uvs3
IL_081D: ldarg.s 5
IL_081F: ldind.i4
IL_0820: ldelema UnityEngine.Vector2
IL_0825: ldloc.s 11 (UnityEngine.Vector2)
IL_0827: stobj UnityEngine.Vector2
IL_082C: ldloc.0
IL_082D: brfalse => Label20
IL_0832: ldarg.s 8
IL_0834: ldfld UnityEngine.Vector2[] MeshData::m_uvs4
IL_0839: ldarg.s 5
IL_083B: ldind.i4
IL_083C: ldelema UnityEngine.Vector2
IL_0841: ldloc.s 12 (UnityEngine.Vector2)
IL_0843: stobj UnityEngine.Vector2
IL_0848: Label20
IL_0848: ldarg.s 8
IL_084A: ldfld UnityEngine.Color32[] MeshData::m_colors
IL_084F: ldarg.s 5
IL_0851: ldind.i4
IL_0852: ldelema UnityEngine.Color32
IL_0857: ldloc.s 15 (UnityEngine.Color)
IL_0859: call static UnityEngine.Color32
UnityEngine.Color32::op_Implicit(UnityEngine.Color c)
IL_085E: stobj UnityEngine.Color32
IL_0863: ldarg.s 5
IL_0865: ldarg.s 5
IL_0867: ldind.i4
IL_0868: ldc.i4.1
IL_0869: add
IL_086A: stind.i4
IL_086B: ldarg.s 8
IL_086D: ldfld System.Int32[] MeshData::m_triangles
IL_0872: ldarg.s 6
IL_0874: ldarg.s 6
IL_0876: ldind.i4
IL_0877: dup
IL_0878: stloc.s 19 (System.Int32)
IL_087A: ldc.i4.1
IL_087B: add
IL_087C: stind.i4
IL_087D: ldloc.s 19 (System.Int32)
IL_087F: ldarg.s 5
IL_0881: ldind.i4
IL_0882: ldc.i4.6
IL_0883: sub
IL_0884: stelem.i4
IL_0885: ldarg.s 8
IL_0887: ldfld System.Int32[] MeshData::m_triangles
IL_088C: ldarg.s 6
IL_088E: ldarg.s 6
IL_0890: ldind.i4
IL_0891: dup
IL_0892: stloc.s 19 (System.Int32)
IL_0894: ldc.i4.1
IL_0895: add
IL_0896: stind.i4
IL_0897: ldloc.s 19 (System.Int32)
IL_0899: ldarg.s 5
IL_089B: ldind.i4
IL_089C: ldc.i4.5
IL_089D: sub
IL_089E: stelem.i4
IL_089F: ldarg.s 8
IL_08A1: ldfld System.Int32[] MeshData::m_triangles
IL_08A6: ldarg.s 6
IL_08A8: ldarg.s 6
IL_08AA: ldind.i4
IL_08AB: dup
IL_08AC: stloc.s 19 (System.Int32)
IL_08AE: ldc.i4.1
IL_08AF: add
IL_08B0: stind.i4
IL_08B1: ldloc.s 19 (System.Int32)
IL_08B3: ldarg.s 5
IL_08B5: ldind.i4
IL_08B6: ldc.i4.1
IL_08B7: sub
IL_08B8: stelem.i4
IL_08B9: ldarg.s 8
IL_08BB: ldfld System.Int32[] MeshData::m_triangles
IL_08C0: ldarg.s 6
IL_08C2: ldarg.s 6
IL_08C4: ldind.i4
IL_08C5: dup
IL_08C6: stloc.s 19 (System.Int32)
IL_08C8: ldc.i4.1
IL_08C9: add
IL_08CA: stind.i4
IL_08CB: ldloc.s 19 (System.Int32)
IL_08CD: ldarg.s 5
IL_08CF: ldind.i4
IL_08D0: ldc.i4.1
IL_08D1: sub
IL_08D2: stelem.i4
IL_08D3: ldarg.s 8
IL_08D5: ldfld System.Int32[] MeshData::m_triangles
IL_08DA: ldarg.s 6
IL_08DC: ldarg.s 6
IL_08DE: ldind.i4
IL_08DF: dup
IL_08E0: stloc.s 19 (System.Int32)
IL_08E2: ldc.i4.1
IL_08E3: add
IL_08E4: stind.i4
IL_08E5: ldloc.s 19 (System.Int32)
IL_08E7: ldarg.s 5
IL_08E9: ldind.i4
IL_08EA: ldc.i4.5
IL_08EB: sub
IL_08EC: stelem.i4
IL_08ED: ldarg.s 8
IL_08EF: ldfld System.Int32[] MeshData::m_triangles
IL_08F4: ldarg.s 6
IL_08F6: ldarg.s 6
IL_08F8: ldind.i4
IL_08F9: dup
IL_08FA: stloc.s 19 (System.Int32)
IL_08FC: ldc.i4.1
IL_08FD: add
IL_08FE: stind.i4
IL_08FF: ldloc.s 19 (System.Int32)
IL_0901: ldarg.s 5
IL_0903: ldind.i4
IL_0904: ldc.i4.4
IL_0905: sub
IL_0906: stelem.i4
IL_0907: ldarg.s 8
IL_0909: ldfld System.Int32[] MeshData::m_triangles
IL_090E: ldarg.s 6
IL_0910: ldarg.s 6
IL_0912: ldind.i4
IL_0913: dup
IL_0914: stloc.s 19 (System.Int32)
IL_0916: ldc.i4.1
IL_0917: add
IL_0918: stind.i4
IL_0919: ldloc.s 19 (System.Int32)
IL_091B: ldarg.s 5
IL_091D: ldind.i4
IL_091E: ldc.i4.1
IL_091F: sub
IL_0920: stelem.i4
IL_0921: ldarg.s 8
IL_0923: ldfld System.Int32[] MeshData::m_triangles
IL_0928: ldarg.s 6
IL_092A: ldarg.s 6
IL_092C: ldind.i4
IL_092D: dup
IL_092E: stloc.s 19 (System.Int32)
IL_0930: ldc.i4.1
IL_0931: add
IL_0932: stind.i4
IL_0933: ldloc.s 19 (System.Int32)
IL_0935: ldarg.s 5
IL_0937: ldind.i4
IL_0938: ldc.i4.4
IL_0939: sub
IL_093A: stelem.i4
IL_093B: ldarg.s 8
IL_093D: ldfld System.Int32[] MeshData::m_triangles
IL_0942: ldarg.s 6
IL_0944: ldarg.s 6
IL_0946: ldind.i4
IL_0947: dup
IL_0948: stloc.s 19 (System.Int32)
IL_094A: ldc.i4.1
IL_094B: add
IL_094C: stind.i4
IL_094D: ldloc.s 19 (System.Int32)
IL_094F: ldarg.s 5
IL_0951: ldind.i4
IL_0952: ldc.i4.2
IL_0953: sub
IL_0954: stelem.i4
IL_0955: ldarg.s 8
IL_0957: ldfld System.Int32[] MeshData::m_triangles
IL_095C: ldarg.s 6
IL_095E: ldarg.s 6
IL_0960: ldind.i4
IL_0961: dup
IL_0962: stloc.s 19 (System.Int32)
IL_0964: ldc.i4.1
IL_0965: add
IL_0966: stind.i4
IL_0967: ldloc.s 19 (System.Int32)
IL_0969: ldarg.s 5
IL_096B: ldind.i4
IL_096C: ldc.i4.2
IL_096D: sub
IL_096E: stelem.i4
IL_096F: ldarg.s 8
IL_0971: ldfld System.Int32[] MeshData::m_triangles
IL_0976: ldarg.s 6
IL_0978: ldarg.s 6
IL_097A: ldind.i4
IL_097B: dup
IL_097C: stloc.s 19 (System.Int32)
IL_097E: ldc.i4.1
IL_097F: add
IL_0980: stind.i4
IL_0981: ldloc.s 19 (System.Int32)
IL_0983: ldarg.s 5
IL_0985: ldind.i4
IL_0986: ldc.i4.4
IL_0987: sub
IL_0988: stelem.i4
IL_0989: ldarg.s 8
IL_098B: ldfld System.Int32[] MeshData::m_triangles
IL_0990: ldarg.s 6
IL_0992: ldarg.s 6
IL_0994: ldind.i4
IL_0995: dup
IL_0996: stloc.s 19 (System.Int32)
IL_0998: ldc.i4.1
IL_0999: add
IL_099A: stind.i4
IL_099B: ldloc.s 19 (System.Int32)
IL_099D: ldarg.s 5
IL_099F: ldind.i4
IL_09A0: ldc.i4.3
IL_09A1: sub
IL_09A2: stelem.i4
IL_09A3: // end original
IL_09A3: Label3
IL_09A3: Label0
IL_09A3: ret
DONE

### Patch: virtual System.Void ElectricityManager::SimulationStepImpl(System.Int32


subStep)
### Replacement: static System.Void
ElectricityManager::ElectricityManager.SimulationStepImpl_Patch0(ElectricityManager
this, System.Int32 subStep)
IL_0000: Local var 0: System.UInt32
IL_0000: Local var 1: System.Int32
IL_0000: Local var 2: NetManager
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: NetInfo
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: ElectricityManager/Cell
IL_0000: Local var 13: ElectricityManager/PulseGroup
IL_0000: Local var 14: ElectricityManager/PulseUnit
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: ElectricityManager/PulseUnit
IL_0000: Local var 19: System.UInt32
IL_0000: Local var 20: System.Int32
IL_0000: Local var 21: ElectricityManager/Cell
IL_0000: Local var 22: System.Int32
IL_0000: Local var 23: System.Int32
IL_0000: Local var 24: NetNode
IL_0000: Local var 25: System.Int32
IL_0000: Local var 26: System.UInt16
IL_0000: Local var 27: System.UInt16
IL_0000: Local var 28: System.UInt16
IL_0000: Local var 29: System.UInt16
IL_0000: Local var 30: System.Int32
IL_0000: Local var 31: ElectricityManager/PulseGroup
IL_0000: Local var 32: ElectricityManager/PulseGroup
IL_0000: Local var 33: System.Int32
IL_0000: Local var 34: ElectricityManager/PulseGroup
IL_0000: Local var 35: System.Int32
IL_0000: Local var 36: ElectricityManager/Cell
IL_0000: // start original
IL_0000: ldarg.1
IL_0001: brfalse => Label0
IL_0006: ldarg.1
IL_0007: ldc.i4 1000
IL_000C: beq => Label1
IL_0011: call static SimulationManager
ColossalFramework.Singleton`1<SimulationManager>::get_instance()
IL_0016: ldfld System.UInt32 SimulationManager::m_currentFrameIndex
IL_001B: stloc.0
IL_001C: ldloc.0
IL_001D: ldc.i4 255
IL_0022: and
IL_0023: stloc.1
IL_0024: ldloc.1
IL_0025: ldc.i4 128
IL_002A: bge => Label2
IL_002F: ldloc.1
IL_0030: brtrue => Label3
IL_0035: ldarg.0
IL_0036: ldc.i4.0
IL_0037: stfld System.Int32 ElectricityManager::m_pulseGroupCount
IL_003C: ldarg.0
IL_003D: ldc.i4.0
IL_003E: stfld System.Int32 ElectricityManager::m_pulseUnitStart
IL_0043: ldarg.0
IL_0044: ldc.i4.0
IL_0045: stfld System.Int32 ElectricityManager::m_pulseUnitEnd
IL_004A: ldarg.0
IL_004B: ldc.i4.0
IL_004C: stfld System.Int32 ElectricityManager::m_processedCells
IL_0051: ldarg.0
IL_0052: ldc.i4.0
IL_0053: stfld System.Int32 ElectricityManager::m_conductiveCells
IL_0058: ldarg.0
IL_0059: ldc.i4.1
IL_005A: stfld System.Boolean ElectricityManager::m_canContinue
IL_005F: Label3
IL_005F: call static NetManager
ColossalFramework.Singleton`1<NetManager>::get_instance()
IL_0064: stloc.2
IL_0065: ldloc.1
IL_0066: ldc.i4 32768
IL_006B: mul
IL_006C: ldc.i4.7
IL_006D: shr
IL_006E: stloc.3
IL_006F: ldloc.1
IL_0070: ldc.i4.1
IL_0071: add
IL_0072: ldc.i4 32768
IL_0077: mul
IL_0078: ldc.i4.7
IL_0079: shr
IL_007A: ldc.i4.1
IL_007B: sub
IL_007C: stloc.s 4 (System.Int32)
IL_007E: ldloc.3
IL_007F: stloc.s 5 (System.Int32)
IL_0081: br => Label4
IL_0086: Label10
IL_0086: ldloc.2
IL_0087: ldfld Array16`1<NetNode> NetManager::m_nodes
IL_008C: ldfld NetNode[] Array16`1<NetNode>::m_buffer
IL_0091: ldloc.s 5 (System.Int32)
IL_0093: ldelema NetNode
IL_0098: ldfld Flags NetNode::m_flags
IL_009D: brfalse => Label5
IL_00A2: ldloc.2
IL_00A3: ldfld Array16`1<NetNode> NetManager::m_nodes
IL_00A8: ldfld NetNode[] Array16`1<NetNode>::m_buffer
IL_00AD: ldloc.s 5 (System.Int32)
IL_00AF: ldelema NetNode
IL_00B4: call static System.Boolean
ElectricRoads.Overrides.ElectricRoadsOverrides::CheckElectricConductibility(NetNode
& node)
IL_00B9: brfalse => Label7
IL_00BE: Label6
IL_00BE: ldarg.0
IL_00BF: ldloc.s 5 (System.Int32)
IL_00C1: ldarg.0
IL_00C2: ldfld System.UInt16[] ElectricityManager::m_nodeGroups
IL_00C7: ldloc.s 5 (System.Int32)
IL_00C9: ldelem.u2
IL_00CA: ldc.i4 65535
IL_00CF: beq => Label8
IL_00D4: ldc.i4.1
IL_00D5: br => Label9
IL_00DA: Label8
IL_00DA: ldc.i4.0
IL_00DB: Label9
IL_00DB: call System.Void
ElectricityManager::UpdateNodeElectricity(System.Int32 nodeID, System.Int32 value)
IL_00E0: ldarg.0
IL_00E1: dup
IL_00E2: ldfld System.Int32 ElectricityManager::m_conductiveCells
IL_00E7: ldc.i4.1
IL_00E8: add
IL_00E9: stfld System.Int32 ElectricityManager::m_conductiveCells
IL_00EE: Label5
IL_00EE: Label7
IL_00EE: ldarg.0
IL_00EF: ldfld System.UInt16[] ElectricityManager::m_nodeGroups
IL_00F4: ldloc.s 5 (System.Int32)
IL_00F6: ldc.i4 65535
IL_00FB: stelem.i2
IL_00FC: ldloc.s 5 (System.Int32)
IL_00FE: ldc.i4.1
IL_00FF: add
IL_0100: stloc.s 5 (System.Int32)
IL_0102: Label4
IL_0102: ldloc.s 5 (System.Int32)
IL_0104: ldloc.s 4 (System.Int32)
IL_0106: ble => Label10
IL_010B: ldloc.1
IL_010C: ldc.i4 256
IL_0111: mul
IL_0112: ldc.i4.7
IL_0113: shr
IL_0114: stloc.s 7 (System.Int32)
IL_0116: ldloc.1
IL_0117: ldc.i4.1
IL_0118: add
IL_0119: ldc.i4 256
IL_011E: mul
IL_011F: ldc.i4.7
IL_0120: shr
IL_0121: ldc.i4.1
IL_0122: sub
IL_0123: stloc.s 8 (System.Int32)
IL_0125: ldloc.s 7 (System.Int32)
IL_0127: stloc.s 9 (System.Int32)
IL_0129: br => Label11
IL_012E: Label21
IL_012E: ldloc.s 9 (System.Int32)
IL_0130: ldc.i4 256
IL_0135: mul
IL_0136: stloc.s 10 (System.Int32)
IL_0138: ldc.i4.0
IL_0139: stloc.s 11 (System.Int32)
IL_013B: br => Label12
IL_0140: Label20
IL_0140: ldarg.0
IL_0141: ldfld Cell[] ElectricityManager::m_electricityGrid
IL_0146: ldloc.s 10 (System.Int32)
IL_0148: ldelema ElectricityManager+Cell
IL_014D: ldobj ElectricityManager+Cell
IL_0152: stloc.s 12 (ElectricityManager+Cell)
IL_0154: ldloca.s 12 (ElectricityManager+Cell)
IL_0156: ldfld System.Int16 Cell::m_currentCharge
IL_015B: ldc.i4.0
IL_015C: ble => Label13
IL_0161: ldarg.0
IL_0162: ldfld System.Int32 ElectricityManager::m_pulseGroupCount
IL_0167: ldc.i4 1024
IL_016C: bge => Label14
IL_0171: ldloca.s 13 (ElectricityManager+PulseGroup)
IL_0173: ldloca.s 12 (ElectricityManager+Cell)
IL_0175: ldfld System.Int16 Cell::m_currentCharge
IL_017A: conv.u4
IL_017B: stfld System.UInt32 PulseGroup::m_origCharge
IL_0180: ldloca.s 13 (ElectricityManager+PulseGroup)
IL_0182: ldloca.s 12 (ElectricityManager+Cell)
IL_0184: ldfld System.Int16 Cell::m_currentCharge
IL_0189: conv.u4
IL_018A: stfld System.UInt32 PulseGroup::m_curCharge
IL_018F: ldloca.s 13 (ElectricityManager+PulseGroup)
IL_0191: ldc.i4.0
IL_0192: stfld System.UInt16 PulseGroup::m_mergeCount
IL_0197: ldloca.s 13 (ElectricityManager+PulseGroup)
IL_0199: ldc.i4 65535
IL_019E: stfld System.UInt16 PulseGroup::m_mergeIndex
IL_01A3: ldloca.s 13 (ElectricityManager+PulseGroup)
IL_01A5: ldloc.s 11 (System.Int32)
IL_01A7: conv.u1
IL_01A8: stfld System.Byte PulseGroup::m_x
IL_01AD: ldloca.s 13 (ElectricityManager+PulseGroup)
IL_01AF: ldloc.s 9 (System.Int32)
IL_01B1: conv.u1
IL_01B2: stfld System.Byte PulseGroup::m_z
IL_01B7: ldloca.s 14 (ElectricityManager+PulseUnit)
IL_01B9: ldarg.0
IL_01BA: ldfld System.Int32 ElectricityManager::m_pulseGroupCount
IL_01BF: conv.u2
IL_01C0: stfld System.UInt16 PulseUnit::m_group
IL_01C5: ldloca.s 14 (ElectricityManager+PulseUnit)
IL_01C7: ldc.i4.0
IL_01C8: stfld System.UInt16 PulseUnit::m_node
IL_01CD: ldloca.s 14 (ElectricityManager+PulseUnit)
IL_01CF: ldloc.s 11 (System.Int32)
IL_01D1: conv.u1
IL_01D2: stfld System.Byte PulseUnit::m_x
IL_01D7: ldloca.s 14 (ElectricityManager+PulseUnit)
IL_01D9: ldloc.s 9 (System.Int32)
IL_01DB: conv.u1
IL_01DC: stfld System.Byte PulseUnit::m_z
IL_01E1: ldloca.s 12 (ElectricityManager+Cell)
IL_01E3: ldarg.0
IL_01E4: ldfld System.Int32 ElectricityManager::m_pulseGroupCount
IL_01E9: conv.u2
IL_01EA: stfld System.UInt16 Cell::m_pulseGroup
IL_01EF: ldarg.0
IL_01F0: ldfld PulseGroup[] ElectricityManager::m_pulseGroups
IL_01F5: ldarg.0
IL_01F6: dup
IL_01F7: ldfld System.Int32 ElectricityManager::m_pulseGroupCount
IL_01FC: dup
IL_01FD: stloc.s 15 (System.Int32)
IL_01FF: ldc.i4.1
IL_0200: add
IL_0201: stfld System.Int32 ElectricityManager::m_pulseGroupCount
IL_0206: ldloc.s 15 (System.Int32)
IL_0208: ldelema ElectricityManager+PulseGroup
IL_020D: ldloc.s 13 (ElectricityManager+PulseGroup)
IL_020F: stobj ElectricityManager+PulseGroup
IL_0214: ldarg.0
IL_0215: ldfld PulseUnit[] ElectricityManager::m_pulseUnits
IL_021A: ldarg.0
IL_021B: ldfld System.Int32 ElectricityManager::m_pulseUnitEnd
IL_0220: ldelema ElectricityManager+PulseUnit
IL_0225: ldloc.s 14 (ElectricityManager+PulseUnit)
IL_0227: stobj ElectricityManager+PulseUnit
IL_022C: ldarg.0
IL_022D: dup
IL_022E: ldfld System.Int32 ElectricityManager::m_pulseUnitEnd
IL_0233: ldc.i4.1
IL_0234: add
IL_0235: dup
IL_0236: stloc.s 15 (System.Int32)
IL_0238: stfld System.Int32 ElectricityManager::m_pulseUnitEnd
IL_023D: ldloc.s 15 (System.Int32)
IL_023F: ldarg.0
IL_0240: ldfld PulseUnit[] ElectricityManager::m_pulseUnits
IL_0245: ldlen
IL_0246: conv.i4
IL_0247: bne.un => Label15
IL_024C: ldarg.0
IL_024D: ldc.i4.0
IL_024E: stfld System.Int32 ElectricityManager::m_pulseUnitEnd
IL_0253: Label15
IL_0253: br => Label16
IL_0258: Label14
IL_0258: ldloca.s 12 (ElectricityManager+Cell)
IL_025A: ldc.i4 65535
IL_025F: stfld System.UInt16 Cell::m_pulseGroup
IL_0264: Label16
IL_0264: ldloca.s 12 (ElectricityManager+Cell)
IL_0266: ldc.i4.0
IL_0267: stfld System.Int16 Cell::m_currentCharge
IL_026C: ldarg.0
IL_026D: dup
IL_026E: ldfld System.Int32 ElectricityManager::m_conductiveCells
IL_0273: ldc.i4.1
IL_0274: add
IL_0275: stfld System.Int32 ElectricityManager::m_conductiveCells
IL_027A: br => Label17
IL_027F: Label13
IL_027F: ldloca.s 12 (ElectricityManager+Cell)
IL_0281: ldc.i4 65535
IL_0286: stfld System.UInt16 Cell::m_pulseGroup
IL_028B: ldloca.s 12 (ElectricityManager+Cell)
IL_028D: ldfld System.Byte Cell::m_conductivity
IL_0292: ldc.i4.s 64
IL_0294: blt => Label18
IL_0299: ldarg.0
IL_029A: dup
IL_029B: ldfld System.Int32 ElectricityManager::m_conductiveCells
IL_02A0: ldc.i4.1
IL_02A1: add
IL_02A2: stfld System.Int32 ElectricityManager::m_conductiveCells
IL_02A7: Label17
IL_02A7: Label18
IL_02A7: ldloca.s 12 (ElectricityManager+Cell)
IL_02A9: ldfld System.Boolean Cell::m_tmpElectrified
IL_02AE: ldloca.s 12 (ElectricityManager+Cell)
IL_02B0: ldfld System.Boolean Cell::m_electrified
IL_02B5: beq => Label19
IL_02BA: ldloca.s 12 (ElectricityManager+Cell)
IL_02BC: ldloca.s 12 (ElectricityManager+Cell)
IL_02BE: ldfld System.Boolean Cell::m_tmpElectrified
IL_02C3: stfld System.Boolean Cell::m_electrified
IL_02C8: Label19
IL_02C8: ldloca.s 12 (ElectricityManager+Cell)
IL_02CA: ldloca.s 12 (ElectricityManager+Cell)
IL_02CC: ldfld System.UInt16 Cell::m_pulseGroup
IL_02D1: ldc.i4 65535
IL_02D6: ceq
IL_02D8: ldc.i4.0
IL_02D9: ceq
IL_02DB: stfld System.Boolean Cell::m_tmpElectrified
IL_02E0: ldarg.0
IL_02E1: ldfld Cell[] ElectricityManager::m_electricityGrid
IL_02E6: ldloc.s 10 (System.Int32)
IL_02E8: ldelema ElectricityManager+Cell
IL_02ED: ldloc.s 12 (ElectricityManager+Cell)
IL_02EF: stobj ElectricityManager+Cell
IL_02F4: ldloc.s 10 (System.Int32)
IL_02F6: ldc.i4.1
IL_02F7: add
IL_02F8: stloc.s 10 (System.Int32)
IL_02FA: ldloc.s 11 (System.Int32)
IL_02FC: ldc.i4.1
IL_02FD: add
IL_02FE: stloc.s 11 (System.Int32)
IL_0300: Label12
IL_0300: ldloc.s 11 (System.Int32)
IL_0302: ldc.i4 256
IL_0307: blt => Label20
IL_030C: ldloc.s 9 (System.Int32)
IL_030E: ldc.i4.1
IL_030F: add
IL_0310: stloc.s 9 (System.Int32)
IL_0312: Label11
IL_0312: ldloc.s 9 (System.Int32)
IL_0314: ldloc.s 8 (System.Int32)
IL_0316: ble => Label21
IL_031B: br => Label22
IL_0320: Label2
IL_0320: ldloc.1
IL_0321: ldc.i4.s 127
IL_0323: sub
IL_0324: ldarg.0
IL_0325: ldfld System.Int32 ElectricityManager::m_conductiveCells
IL_032A: mul
IL_032B: ldc.i4.7
IL_032C: shr
IL_032D: stloc.s 16 (System.Int32)
IL_032F: ldloc.1
IL_0330: ldc.i4 255
IL_0335: bne.un => Label23
IL_033A: ldc.i4 1000000000
IL_033F: stloc.s 16 (System.Int32)
IL_0341: Label23
IL_0341: br => Label24
IL_0346: Label54
IL_0346: ldarg.0
IL_0347: ldc.i4.0
IL_0348: stfld System.Boolean ElectricityManager::m_canContinue
IL_034D: ldarg.0
IL_034E: ldfld System.Int32 ElectricityManager::m_pulseUnitEnd
IL_0353: stloc.s 17 (System.Int32)
IL_0355: br => Label25
IL_035A: Label52
IL_035A: ldarg.0
IL_035B: ldfld PulseUnit[] ElectricityManager::m_pulseUnits
IL_0360: ldarg.0
IL_0361: ldfld System.Int32 ElectricityManager::m_pulseUnitStart
IL_0366: ldelema ElectricityManager+PulseUnit
IL_036B: ldobj ElectricityManager+PulseUnit
IL_0370: stloc.s 18 (ElectricityManager+PulseUnit)
IL_0372: ldarg.0
IL_0373: dup
IL_0374: ldfld System.Int32 ElectricityManager::m_pulseUnitStart
IL_0379: ldc.i4.1
IL_037A: add
IL_037B: dup
IL_037C: stloc.s 15 (System.Int32)
IL_037E: stfld System.Int32 ElectricityManager::m_pulseUnitStart
IL_0383: ldloc.s 15 (System.Int32)
IL_0385: ldarg.0
IL_0386: ldfld PulseUnit[] ElectricityManager::m_pulseUnits
IL_038B: ldlen
IL_038C: conv.i4
IL_038D: bne.un => Label26
IL_0392: ldarg.0
IL_0393: ldc.i4.0
IL_0394: stfld System.Int32 ElectricityManager::m_pulseUnitStart
IL_0399: Label26
IL_0399: ldloca.s 18 (ElectricityManager+PulseUnit)
IL_039B: ldarg.0
IL_039C: ldloca.s 18 (ElectricityManager+PulseUnit)
IL_039E: ldfld System.UInt16 PulseUnit::m_group
IL_03A3: call System.UInt16 ElectricityManager::GetRootGroup(System.UInt16
group)
IL_03A8: stfld System.UInt16 PulseUnit::m_group
IL_03AD: ldarg.0
IL_03AE: ldfld PulseGroup[] ElectricityManager::m_pulseGroups
IL_03B3: ldloca.s 18 (ElectricityManager+PulseUnit)
IL_03B5: ldfld System.UInt16 PulseUnit::m_group
IL_03BA: ldelema ElectricityManager+PulseGroup
IL_03BF: ldfld System.UInt32 PulseGroup::m_curCharge
IL_03C4: stloc.s 19 (System.UInt32)
IL_03C6: ldloca.s 18 (ElectricityManager+PulseUnit)
IL_03C8: ldfld System.UInt16 PulseUnit::m_node
IL_03CD: brtrue => Label27
IL_03D2: ldloca.s 18 (ElectricityManager+PulseUnit)
IL_03D4: ldfld System.Byte PulseUnit::m_z
IL_03D9: ldc.i4 256
IL_03DE: mul
IL_03DF: ldloca.s 18 (ElectricityManager+PulseUnit)
IL_03E1: ldfld System.Byte PulseUnit::m_x
IL_03E6: add
IL_03E7: stloc.s 20 (System.Int32)
IL_03E9: ldarg.0
IL_03EA: ldfld Cell[] ElectricityManager::m_electricityGrid
IL_03EF: ldloc.s 20 (System.Int32)
IL_03F1: ldelema ElectricityManager+Cell
IL_03F6: ldobj ElectricityManager+Cell
IL_03FB: stloc.s 21 (ElectricityManager+Cell)
IL_03FD: ldloca.s 21 (ElectricityManager+Cell)
IL_03FF: ldfld System.Byte Cell::m_conductivity
IL_0404: brfalse => Label28
IL_0409: ldloca.s 21 (ElectricityManager+Cell)
IL_040B: ldfld System.Boolean Cell::m_tmpElectrified
IL_0410: brtrue => Label29
IL_0415: ldloc.s 19 (System.UInt32)
IL_0417: brfalse => Label30
IL_041C: ldloca.s 21 (ElectricityManager+Cell)
IL_041E: ldfld System.Int16 Cell::m_currentCharge
IL_0423: neg
IL_0424: ldc.i4.0
IL_0425: ldloc.s 19 (System.UInt32)
IL_0427: call static System.Int32 UnityEngine.Mathf::Clamp(System.Int32
value, System.Int32 min, System.Int32 max)
IL_042C: stloc.s 22 (System.Int32)
IL_042E: ldloc.s 19 (System.UInt32)
IL_0430: ldloc.s 22 (System.Int32)
IL_0432: sub
IL_0433: stloc.s 19 (System.UInt32)
IL_0435: ldloca.s 21 (ElectricityManager+Cell)
IL_0437: dup
IL_0438: ldfld System.Int16 Cell::m_currentCharge
IL_043D: ldloc.s 22 (System.Int32)
IL_043F: conv.i2
IL_0440: add
IL_0441: conv.i2
IL_0442: stfld System.Int16 Cell::m_currentCharge
IL_0447: ldloca.s 21 (ElectricityManager+Cell)
IL_0449: ldfld System.Int16 Cell::m_currentCharge
IL_044E: brtrue => Label31
IL_0453: ldloca.s 21 (ElectricityManager+Cell)
IL_0455: ldc.i4.1
IL_0456: stfld System.Boolean Cell::m_tmpElectrified
IL_045B: Label31
IL_045B: ldarg.0
IL_045C: ldfld Cell[] ElectricityManager::m_electricityGrid
IL_0461: ldloc.s 20 (System.Int32)
IL_0463: ldelema ElectricityManager+Cell
IL_0468: ldloc.s 21 (ElectricityManager+Cell)
IL_046A: stobj ElectricityManager+Cell
IL_046F: ldarg.0
IL_0470: ldfld PulseGroup[] ElectricityManager::m_pulseGroups
IL_0475: ldloca.s 18 (ElectricityManager+PulseUnit)
IL_0477: ldfld System.UInt16 PulseUnit::m_group
IL_047C: ldelema ElectricityManager+PulseGroup
IL_0481: ldloc.s 19 (System.UInt32)
IL_0483: stfld System.UInt32 PulseGroup::m_curCharge
IL_0488: Label28
IL_0488: Label29
IL_0488: Label30
IL_0488: ldloc.s 19 (System.UInt32)
IL_048A: brfalse => Label32
IL_048F: ldloca.s 21 (ElectricityManager+Cell)
IL_0491: ldfld System.Byte Cell::m_conductivity
IL_0496: ldc.i4.s 64
IL_0498: blt => Label33
IL_049D: ldc.i4.1
IL_049E: br => Label34
IL_04A3: Label33
IL_04A3: ldc.i4.s 64
IL_04A5: Label34
IL_04A5: stloc.s 23 (System.Int32)
IL_04A7: ldarg.0
IL_04A8: dup
IL_04A9: ldfld System.Int32 ElectricityManager::m_processedCells
IL_04AE: ldc.i4.1
IL_04AF: add
IL_04B0: stfld System.Int32 ElectricityManager::m_processedCells
IL_04B5: ldloca.s 18 (ElectricityManager+PulseUnit)
IL_04B7: ldfld System.Byte PulseUnit::m_z
IL_04BC: ldc.i4.0
IL_04BD: ble => Label35
IL_04C2: ldarg.0
IL_04C3: ldarg.0
IL_04C4: ldfld Cell[] ElectricityManager::m_electricityGrid
IL_04C9: ldloc.s 20 (System.Int32)
IL_04CB: ldc.i4 256
IL_04D0: sub
IL_04D1: ldelema ElectricityManager+Cell
IL_04D6: ldloca.s 18 (ElectricityManager+PulseUnit)
IL_04D8: ldfld System.UInt16 PulseUnit::m_group
IL_04DD: ldloca.s 18 (ElectricityManager+PulseUnit)
IL_04DF: ldfld System.Byte PulseUnit::m_x
IL_04E4: ldloca.s 18 (ElectricityManager+PulseUnit)
IL_04E6: ldfld System.Byte PulseUnit::m_z
IL_04EB: ldc.i4.1
IL_04EC: sub
IL_04ED: ldloc.s 23 (System.Int32)
IL_04EF: call System.Void ElectricityManager::ConductToCell(Cell& cell,
System.UInt16 group, System.Int32 x, System.Int32 z, System.Int32 limit)
IL_04F4: Label35
IL_04F4: ldloca.s 18 (ElectricityManager+PulseUnit)
IL_04F6: ldfld System.Byte PulseUnit::m_x
IL_04FB: ldc.i4.0
IL_04FC: ble => Label36
IL_0501: ldarg.0
IL_0502: ldarg.0
IL_0503: ldfld Cell[] ElectricityManager::m_electricityGrid
IL_0508: ldloc.s 20 (System.Int32)
IL_050A: ldc.i4.1
IL_050B: sub
IL_050C: ldelema ElectricityManager+Cell
IL_0511: ldloca.s 18 (ElectricityManager+PulseUnit)
IL_0513: ldfld System.UInt16 PulseUnit::m_group
IL_0518: ldloca.s 18 (ElectricityManager+PulseUnit)
IL_051A: ldfld System.Byte PulseUnit::m_x
IL_051F: ldc.i4.1
IL_0520: sub
IL_0521: ldloca.s 18 (ElectricityManager+PulseUnit)
IL_0523: ldfld System.Byte PulseUnit::m_z
IL_0528: ldloc.s 23 (System.Int32)
IL_052A: call System.Void ElectricityManager::ConductToCell(Cell& cell,
System.UInt16 group, System.Int32 x, System.Int32 z, System.Int32 limit)
IL_052F: Label36
IL_052F: ldloca.s 18 (ElectricityManager+PulseUnit)
IL_0531: ldfld System.Byte PulseUnit::m_z
IL_0536: ldc.i4 255
IL_053B: bge => Label37
IL_0540: ldarg.0
IL_0541: ldarg.0
IL_0542: ldfld Cell[] ElectricityManager::m_electricityGrid
IL_0547: ldloc.s 20 (System.Int32)
IL_0549: ldc.i4 256
IL_054E: add
IL_054F: ldelema ElectricityManager+Cell
IL_0554: ldloca.s 18 (ElectricityManager+PulseUnit)
IL_0556: ldfld System.UInt16 PulseUnit::m_group
IL_055B: ldloca.s 18 (ElectricityManager+PulseUnit)
IL_055D: ldfld System.Byte PulseUnit::m_x
IL_0562: ldloca.s 18 (ElectricityManager+PulseUnit)
IL_0564: ldfld System.Byte PulseUnit::m_z
IL_0569: ldc.i4.1
IL_056A: add
IL_056B: ldloc.s 23 (System.Int32)
IL_056D: call System.Void ElectricityManager::ConductToCell(Cell& cell,
System.UInt16 group, System.Int32 x, System.Int32 z, System.Int32 limit)
IL_0572: Label37
IL_0572: ldloca.s 18 (ElectricityManager+PulseUnit)
IL_0574: ldfld System.Byte PulseUnit::m_x
IL_0579: ldc.i4 255
IL_057E: bge => Label38
IL_0583: ldarg.0
IL_0584: ldarg.0
IL_0585: ldfld Cell[] ElectricityManager::m_electricityGrid
IL_058A: ldloc.s 20 (System.Int32)
IL_058C: ldc.i4.1
IL_058D: add
IL_058E: ldelema ElectricityManager+Cell
IL_0593: ldloca.s 18 (ElectricityManager+PulseUnit)
IL_0595: ldfld System.UInt16 PulseUnit::m_group
IL_059A: ldloca.s 18 (ElectricityManager+PulseUnit)
IL_059C: ldfld System.Byte PulseUnit::m_x
IL_05A1: ldc.i4.1
IL_05A2: add
IL_05A3: ldloca.s 18 (ElectricityManager+PulseUnit)
IL_05A5: ldfld System.Byte PulseUnit::m_z
IL_05AA: ldloc.s 23 (System.Int32)
IL_05AC: call System.Void ElectricityManager::ConductToCell(Cell& cell,
System.UInt16 group, System.Int32 x, System.Int32 z, System.Int32 limit)
IL_05B1: Label38
IL_05B1: ldarg.0
IL_05B2: ldloca.s 18 (ElectricityManager+PulseUnit)
IL_05B4: ldfld System.UInt16 PulseUnit::m_group
IL_05B9: ldloca.s 18 (ElectricityManager+PulseUnit)
IL_05BB: ldfld System.Byte PulseUnit::m_x
IL_05C0: ldloca.s 18 (ElectricityManager+PulseUnit)
IL_05C2: ldfld System.Byte PulseUnit::m_z
IL_05C7: call System.Void ElectricityManager::ConductToNodes(System.UInt16
group, System.Int32 cellX, System.Int32 cellZ)
IL_05CC: br => Label39
IL_05D1: Label32
IL_05D1: ldarg.0
IL_05D2: ldfld PulseUnit[] ElectricityManager::m_pulseUnits
IL_05D7: ldarg.0
IL_05D8: ldfld System.Int32 ElectricityManager::m_pulseUnitEnd
IL_05DD: ldelema ElectricityManager+PulseUnit
IL_05E2: ldloc.s 18 (ElectricityManager+PulseUnit)
IL_05E4: stobj ElectricityManager+PulseUnit
IL_05E9: ldarg.0
IL_05EA: dup
IL_05EB: ldfld System.Int32 ElectricityManager::m_pulseUnitEnd
IL_05F0: ldc.i4.1
IL_05F1: add
IL_05F2: dup
IL_05F3: stloc.s 15 (System.Int32)
IL_05F5: stfld System.Int32 ElectricityManager::m_pulseUnitEnd
IL_05FA: ldloc.s 15 (System.Int32)
IL_05FC: ldarg.0
IL_05FD: ldfld PulseUnit[] ElectricityManager::m_pulseUnits
IL_0602: ldlen
IL_0603: conv.i4
IL_0604: bne.un => Label40
IL_0609: ldarg.0
IL_060A: ldc.i4.0
IL_060B: stfld System.Int32 ElectricityManager::m_pulseUnitEnd
IL_0610: Label39
IL_0610: Label40
IL_0610: br => Label41
IL_0615: Label27
IL_0615: ldloc.s 19 (System.UInt32)
IL_0617: brfalse => Label42
IL_061C: ldarg.0
IL_061D: dup
IL_061E: ldfld System.Int32 ElectricityManager::m_processedCells
IL_0623: ldc.i4.1
IL_0624: add
IL_0625: stfld System.Int32 ElectricityManager::m_processedCells
IL_062A: call static NetManager
ColossalFramework.Singleton`1<NetManager>::get_instance()
IL_062F: ldfld Array16`1<NetNode> NetManager::m_nodes
IL_0634: ldfld NetNode[] Array16`1<NetNode>::m_buffer
IL_0639: ldloca.s 18 (ElectricityManager+PulseUnit)
IL_063B: ldfld System.UInt16 PulseUnit::m_node
IL_0640: ldelema NetNode
IL_0645: ldobj NetNode
IL_064A: stloc.s 24 (NetNode)
IL_064C: ldloca.s 24 (NetNode)
IL_064E: ldfld Flags NetNode::m_flags
IL_0653: brfalse => Label43
IL_0658: ldloca.s 24 (NetNode)
IL_065A: ldfld System.UInt32 NetNode::m_buildIndex
IL_065F: ldloc.0
IL_0660: ldc.i4.s -128
IL_0662: and
IL_0663: bge.un => Label44
IL_0668: ldarg.0
IL_0669: ldloca.s 18 (ElectricityManager+PulseUnit)
IL_066B: ldfld System.UInt16 PulseUnit::m_group
IL_0670: ldloca.s 24 (NetNode)
IL_0672: ldflda UnityEngine.Vector3 NetNode::m_position
IL_0677: ldfld System.Single UnityEngine.Vector3::x
IL_067C: ldloca.s 24 (NetNode)
IL_067E: ldflda UnityEngine.Vector3 NetNode::m_position
IL_0683: ldfld System.Single UnityEngine.Vector3::z
IL_0688: call System.Void ElectricityManager::ConductToCells(System.UInt16
group, System.Single worldX, System.Single worldZ)
IL_068D: ldc.i4.0
IL_068E: stloc.s 25 (System.Int32)
IL_0690: br => Label45
IL_0695: Label49
IL_0695: ldloca.s 24 (NetNode)
IL_0697: ldloc.s 25 (System.Int32)
IL_0699: call System.UInt16 NetNode::GetSegment(System.Int32 index)
IL_069E: stloc.s 26 (System.UInt16)
IL_06A0: ldloc.s 26 (System.UInt16)
IL_06A2: brfalse => Label46
IL_06A7: call static NetManager
ColossalFramework.Singleton`1<NetManager>::get_instance()
IL_06AC: ldfld Array16`1<NetSegment> NetManager::m_segments
IL_06B1: ldfld NetSegment[] Array16`1<NetSegment>::m_buffer
IL_06B6: ldloc.s 26 (System.UInt16)
IL_06B8: ldelema NetSegment
IL_06BD: ldfld System.UInt16 NetSegment::m_startNode
IL_06C2: stloc.s 27 (System.UInt16)
IL_06C4: call static NetManager
ColossalFramework.Singleton`1<NetManager>::get_instance()
IL_06C9: ldfld Array16`1<NetSegment> NetManager::m_segments
IL_06CE: ldfld NetSegment[] Array16`1<NetSegment>::m_buffer
IL_06D3: ldloc.s 26 (System.UInt16)
IL_06D5: ldelema NetSegment
IL_06DA: ldfld System.UInt16 NetSegment::m_endNode
IL_06DF: stloc.s 28 (System.UInt16)
IL_06E1: ldloc.s 27 (System.UInt16)
IL_06E3: ldloca.s 18 (ElectricityManager+PulseUnit)
IL_06E5: ldfld System.UInt16 PulseUnit::m_node
IL_06EA: bne.un => Label47
IL_06EF: ldloc.s 28 (System.UInt16)
IL_06F1: br => Label48
IL_06F6: Label47
IL_06F6: ldloc.s 27 (System.UInt16)
IL_06F8: Label48
IL_06F8: stloc.s 29 (System.UInt16)
IL_06FA: ldarg.0
IL_06FB: ldloc.s 29 (System.UInt16)
IL_06FD: call static NetManager
ColossalFramework.Singleton`1<NetManager>::get_instance()
IL_0702: ldfld Array16`1<NetNode> NetManager::m_nodes
IL_0707: ldfld NetNode[] Array16`1<NetNode>::m_buffer
IL_070C: ldloc.s 29 (System.UInt16)
IL_070E: ldelema NetNode
IL_0713: ldloca.s 18 (ElectricityManager+PulseUnit)
IL_0715: ldfld System.UInt16 PulseUnit::m_group
IL_071A: ldc.r4 -100000
IL_071F: ldc.r4 -100000
IL_0724: ldc.r4 100000
IL_0729: ldc.r4 100000
IL_072E: call System.Void ElectricityManager::ConductToNode(System.UInt16
nodeIndex, NetNode& node, System.UInt16 group, System.Single minX, System.Single
minZ, System.Single maxX, System.Single maxZ)
IL_0733: Label46
IL_0733: ldloc.s 25 (System.Int32)
IL_0735: ldc.i4.1
IL_0736: add
IL_0737: stloc.s 25 (System.Int32)
IL_0739: Label45
IL_0739: ldloc.s 25 (System.Int32)
IL_073B: ldc.i4.8
IL_073C: blt => Label49
IL_0741: Label43
IL_0741: Label44
IL_0741: br => Label50
IL_0746: Label42
IL_0746: ldarg.0
IL_0747: ldfld PulseUnit[] ElectricityManager::m_pulseUnits
IL_074C: ldarg.0
IL_074D: ldfld System.Int32 ElectricityManager::m_pulseUnitEnd
IL_0752: ldelema ElectricityManager+PulseUnit
IL_0757: ldloc.s 18 (ElectricityManager+PulseUnit)
IL_0759: stobj ElectricityManager+PulseUnit
IL_075E: ldarg.0
IL_075F: dup
IL_0760: ldfld System.Int32 ElectricityManager::m_pulseUnitEnd
IL_0765: ldc.i4.1
IL_0766: add
IL_0767: dup
IL_0768: stloc.s 15 (System.Int32)
IL_076A: stfld System.Int32 ElectricityManager::m_pulseUnitEnd
IL_076F: ldloc.s 15 (System.Int32)
IL_0771: ldarg.0
IL_0772: ldfld PulseUnit[] ElectricityManager::m_pulseUnits
IL_0777: ldlen
IL_0778: conv.i4
IL_0779: bne.un => Label51
IL_077E: ldarg.0
IL_077F: ldc.i4.0
IL_0780: stfld System.Int32 ElectricityManager::m_pulseUnitEnd
IL_0785: Label25
IL_0785: Label41
IL_0785: Label50
IL_0785: Label51
IL_0785: ldarg.0
IL_0786: ldfld System.Int32 ElectricityManager::m_pulseUnitStart
IL_078B: ldloc.s 17 (System.Int32)
IL_078D: bne.un => Label52
IL_0792: Label24
IL_0792: ldarg.0
IL_0793: ldfld System.Boolean ElectricityManager::m_canContinue
IL_0798: brfalse => Label53
IL_079D: ldarg.0
IL_079E: ldfld System.Int32 ElectricityManager::m_processedCells
IL_07A3: ldloc.s 16 (System.Int32)
IL_07A5: blt => Label54
IL_07AA: Label53
IL_07AA: ldloc.1
IL_07AB: ldc.i4 255
IL_07B0: bne.un => Label55
IL_07B5: ldc.i4.0
IL_07B6: stloc.s 30 (System.Int32)
IL_07B8: br => Label56
IL_07BD: Label58
IL_07BD: ldarg.0
IL_07BE: ldfld PulseGroup[] ElectricityManager::m_pulseGroups
IL_07C3: ldloc.s 30 (System.Int32)
IL_07C5: ldelema ElectricityManager+PulseGroup
IL_07CA: ldobj ElectricityManager+PulseGroup
IL_07CF: stloc.s 31 (ElectricityManager+PulseGroup)
IL_07D1: ldloca.s 31 (ElectricityManager+PulseGroup)
IL_07D3: ldfld System.UInt16 PulseGroup::m_mergeIndex
IL_07D8: ldc.i4 65535
IL_07DD: beq => Label57
IL_07E2: ldarg.0
IL_07E3: ldfld PulseGroup[] ElectricityManager::m_pulseGroups
IL_07E8: ldloca.s 31 (ElectricityManager+PulseGroup)
IL_07EA: ldfld System.UInt16 PulseGroup::m_mergeIndex
IL_07EF: ldelema ElectricityManager+PulseGroup
IL_07F4: ldobj ElectricityManager+PulseGroup
IL_07F9: stloc.s 32 (ElectricityManager+PulseGroup)
IL_07FB: ldloca.s 31 (ElectricityManager+PulseGroup)
IL_07FD: ldloca.s 32 (ElectricityManager+PulseGroup)
IL_07FF: ldfld System.UInt32 PulseGroup::m_curCharge
IL_0804: conv.u8
IL_0805: ldloca.s 31 (ElectricityManager+PulseGroup)
IL_0807: ldfld System.UInt32 PulseGroup::m_origCharge
IL_080C: conv.u8
IL_080D: mul
IL_080E: ldloca.s 32 (ElectricityManager+PulseGroup)
IL_0810: ldfld System.UInt32 PulseGroup::m_origCharge
IL_0815: conv.u8
IL_0816: div.un
IL_0817: conv.u4
IL_0818: stfld System.UInt32 PulseGroup::m_curCharge
IL_081D: ldloca.s 32 (ElectricityManager+PulseGroup)
IL_081F: dup
IL_0820: ldfld System.UInt32 PulseGroup::m_curCharge
IL_0825: ldloca.s 31 (ElectricityManager+PulseGroup)
IL_0827: ldfld System.UInt32 PulseGroup::m_curCharge
IL_082C: sub
IL_082D: stfld System.UInt32 PulseGroup::m_curCharge
IL_0832: ldloca.s 32 (ElectricityManager+PulseGroup)
IL_0834: dup
IL_0835: ldfld System.UInt32 PulseGroup::m_origCharge
IL_083A: ldloca.s 31 (ElectricityManager+PulseGroup)
IL_083C: ldfld System.UInt32 PulseGroup::m_origCharge
IL_0841: sub
IL_0842: stfld System.UInt32 PulseGroup::m_origCharge
IL_0847: ldarg.0
IL_0848: ldfld PulseGroup[] ElectricityManager::m_pulseGroups
IL_084D: ldloca.s 31 (ElectricityManager+PulseGroup)
IL_084F: ldfld System.UInt16 PulseGroup::m_mergeIndex
IL_0854: ldelema ElectricityManager+PulseGroup
IL_0859: ldloc.s 32 (ElectricityManager+PulseGroup)
IL_085B: stobj ElectricityManager+PulseGroup
IL_0860: ldarg.0
IL_0861: ldfld PulseGroup[] ElectricityManager::m_pulseGroups
IL_0866: ldloc.s 30 (System.Int32)
IL_0868: ldelema ElectricityManager+PulseGroup
IL_086D: ldloc.s 31 (ElectricityManager+PulseGroup)
IL_086F: stobj ElectricityManager+PulseGroup
IL_0874: Label57
IL_0874: ldloc.s 30 (System.Int32)
IL_0876: ldc.i4.1
IL_0877: add
IL_0878: stloc.s 30 (System.Int32)
IL_087A: Label56
IL_087A: ldloc.s 30 (System.Int32)
IL_087C: ldarg.0
IL_087D: ldfld System.Int32 ElectricityManager::m_pulseGroupCount
IL_0882: blt => Label58
IL_0887: ldc.i4.0
IL_0888: stloc.s 33 (System.Int32)
IL_088A: br => Label59
IL_088F: Label62
IL_088F: ldarg.0
IL_0890: ldfld PulseGroup[] ElectricityManager::m_pulseGroups
IL_0895: ldloc.s 33 (System.Int32)
IL_0897: ldelema ElectricityManager+PulseGroup
IL_089C: ldobj ElectricityManager+PulseGroup
IL_08A1: stloc.s 34 (ElectricityManager+PulseGroup)
IL_08A3: ldloca.s 34 (ElectricityManager+PulseGroup)
IL_08A5: ldfld System.UInt32 PulseGroup::m_curCharge
IL_08AA: brfalse => Label60
IL_08AF: ldloca.s 34 (ElectricityManager+PulseGroup)
IL_08B1: ldfld System.Byte PulseGroup::m_z
IL_08B6: ldc.i4 256
IL_08BB: mul
IL_08BC: ldloca.s 34 (ElectricityManager+PulseGroup)
IL_08BE: ldfld System.Byte PulseGroup::m_x
IL_08C3: add
IL_08C4: stloc.s 35 (System.Int32)
IL_08C6: ldarg.0
IL_08C7: ldfld Cell[] ElectricityManager::m_electricityGrid
IL_08CC: ldloc.s 35 (System.Int32)
IL_08CE: ldelema ElectricityManager+Cell
IL_08D3: ldobj ElectricityManager+Cell
IL_08D8: stloc.s 36 (ElectricityManager+Cell)
IL_08DA: ldloca.s 36 (ElectricityManager+Cell)
IL_08DC: ldfld System.Byte Cell::m_conductivity
IL_08E1: brfalse => Label61
IL_08E6: ldloca.s 36 (ElectricityManager+Cell)
IL_08E8: dup
IL_08E9: ldfld System.UInt16 Cell::m_extraCharge
IL_08EE: ldloca.s 34 (ElectricityManager+PulseGroup)
IL_08F0: ldfld System.UInt32 PulseGroup::m_curCharge
IL_08F5: ldc.i4 32767
IL_08FA: ldloca.s 36 (ElectricityManager+Cell)
IL_08FC: ldfld System.UInt16 Cell::m_extraCharge
IL_0901: sub
IL_0902: call static System.Int32 UnityEngine.Mathf::Min(System.Int32 a,
System.Int32 b)
IL_0907: conv.u2
IL_0908: add
IL_0909: conv.u2
IL_090A: stfld System.UInt16 Cell::m_extraCharge
IL_090F: Label61
IL_090F: ldarg.0
IL_0910: ldfld Cell[] ElectricityManager::m_electricityGrid
IL_0915: ldloc.s 35 (System.Int32)
IL_0917: ldelema ElectricityManager+Cell
IL_091C: ldloc.s 36 (ElectricityManager+Cell)
IL_091E: stobj ElectricityManager+Cell
IL_0923: Label60
IL_0923: ldloc.s 33 (System.Int32)
IL_0925: ldc.i4.1
IL_0926: add
IL_0927: stloc.s 33 (System.Int32)
IL_0929: Label59
IL_0929: ldloc.s 33 (System.Int32)
IL_092B: ldarg.0
IL_092C: ldfld System.Int32 ElectricityManager::m_pulseGroupCount
IL_0931: blt => Label62
IL_0936: // end original
IL_0936: Label0
IL_0936: Label1
IL_0936: Label22
IL_0936: Label55
IL_0936: ret
DONE

### Patch: System.Void ElectricityManager::ConductToNode(System.UInt16 nodeIndex,


NetNode& node, System.UInt16 group, System.Single minX, System.Single minZ,
System.Single maxX, System.Single maxZ)
### Replacement: static System.Void
ElectricityManager::ElectricityManager.ConductToNode_Patch0(ElectricityManager
this, System.UInt16 nodeIndex, NetNode& node, System.UInt16 group, System.Single
minX, System.Single minZ, System.Single maxX, System.Single maxZ)
IL_0000: Local var 0: NetInfo
IL_0000: Local var 1: ElectricityManager/PulseUnit
IL_0000: Local var 2: System.Int32
IL_0000: Local var 3: System.UInt16
IL_0000: // start original
IL_0000: ldarg.2
IL_0001: ldflda UnityEngine.Vector3 NetNode::m_position
IL_0006: ldfld System.Single UnityEngine.Vector3::x
IL_000B: ldarg.s 4
IL_000D: blt.un => Label0
IL_0012: ldarg.2
IL_0013: ldflda UnityEngine.Vector3 NetNode::m_position
IL_0018: ldfld System.Single UnityEngine.Vector3::z
IL_001D: ldarg.s 5
IL_001F: blt.un => Label1
IL_0024: ldarg.2
IL_0025: ldflda UnityEngine.Vector3 NetNode::m_position
IL_002A: ldfld System.Single UnityEngine.Vector3::x
IL_002F: ldarg.s 6
IL_0031: bgt.un => Label2
IL_0036: ldarg.2
IL_0037: ldflda UnityEngine.Vector3 NetNode::m_position
IL_003C: ldfld System.Single UnityEngine.Vector3::z
IL_0041: ldarg.s 7
IL_0043: bgt.un => Label3
IL_0048: ldarg.2
IL_0049: call static System.Boolean
ElectricRoads.Overrides.ElectricRoadsOverrides::CheckElectricConductibility(NetNode
& node)
IL_004E: brfalse => Label5
IL_0053: Label4
IL_0053: ldarg.0
IL_0054: ldfld System.UInt16[] ElectricityManager::m_nodeGroups
IL_0059: ldarg.1
IL_005A: ldelem.u2
IL_005B: ldc.i4 65535
IL_0060: bne.un => Label6
IL_0065: ldloca.s 1 (ElectricityManager+PulseUnit)
IL_0067: ldarg.3
IL_0068: stfld System.UInt16 PulseUnit::m_group
IL_006D: ldloca.s 1 (ElectricityManager+PulseUnit)
IL_006F: ldarg.1
IL_0070: stfld System.UInt16 PulseUnit::m_node
IL_0075: ldloca.s 1 (ElectricityManager+PulseUnit)
IL_0077: ldc.i4.0
IL_0078: stfld System.Byte PulseUnit::m_x
IL_007D: ldloca.s 1 (ElectricityManager+PulseUnit)
IL_007F: ldc.i4.0
IL_0080: stfld System.Byte PulseUnit::m_z
IL_0085: ldarg.0
IL_0086: ldfld PulseUnit[] ElectricityManager::m_pulseUnits
IL_008B: ldarg.0
IL_008C: ldfld System.Int32 ElectricityManager::m_pulseUnitEnd
IL_0091: ldelema ElectricityManager+PulseUnit
IL_0096: ldloc.1
IL_0097: stobj ElectricityManager+PulseUnit
IL_009C: ldarg.0
IL_009D: dup
IL_009E: ldfld System.Int32 ElectricityManager::m_pulseUnitEnd
IL_00A3: ldc.i4.1
IL_00A4: add
IL_00A5: dup
IL_00A6: stloc.2
IL_00A7: stfld System.Int32 ElectricityManager::m_pulseUnitEnd
IL_00AC: ldloc.2
IL_00AD: ldarg.0
IL_00AE: ldfld PulseUnit[] ElectricityManager::m_pulseUnits
IL_00B3: ldlen
IL_00B4: conv.i4
IL_00B5: bne.un => Label7
IL_00BA: ldarg.0
IL_00BB: ldc.i4.0
IL_00BC: stfld System.Int32 ElectricityManager::m_pulseUnitEnd
IL_00C1: Label7
IL_00C1: ldarg.0
IL_00C2: ldfld System.UInt16[] ElectricityManager::m_nodeGroups
IL_00C7: ldarg.1
IL_00C8: ldarg.3
IL_00C9: stelem.i2
IL_00CA: ldarg.0
IL_00CB: ldc.i4.1
IL_00CC: stfld System.Boolean ElectricityManager::m_canContinue
IL_00D1: br => Label8
IL_00D6: Label6
IL_00D6: ldarg.0
IL_00D7: ldarg.0
IL_00D8: ldfld System.UInt16[] ElectricityManager::m_nodeGroups
IL_00DD: ldarg.1
IL_00DE: ldelem.u2
IL_00DF: call System.UInt16 ElectricityManager::GetRootGroup(System.UInt16
group)
IL_00E4: stloc.3
IL_00E5: ldloc.3
IL_00E6: ldarg.3
IL_00E7: beq => Label9
IL_00EC: ldarg.0
IL_00ED: ldarg.3
IL_00EE: ldloc.3
IL_00EF: call System.Void ElectricityManager::MergeGroups(System.UInt16 root,
System.UInt16 merged)
IL_00F4: ldarg.0
IL_00F5: ldfld System.UInt16[] ElectricityManager::m_nodeGroups
IL_00FA: ldarg.1
IL_00FB: ldarg.3
IL_00FC: stelem.i2
IL_00FD: ldarg.0
IL_00FE: ldc.i4.1
IL_00FF: stfld System.Boolean ElectricityManager::m_canContinue
IL_0104: // end original
IL_0104: Label0
IL_0104: Label1
IL_0104: Label2
IL_0104: Label3
IL_0104: Label5
IL_0104: Label8
IL_0104: Label9
IL_0104: ret
DONE
### Patch: System.Void ElectricityManager::UpdateNodeElectricity(System.Int32
nodeID, System.Int32 value)
### Replacement: static System.Void
ElectricityManager::ElectricityManager.UpdateNodeElectricity_Patch2(ElectricityMana
ger this, System.Int32 nodeID, System.Int32 value)
IL_0000: Local var 0: InfoManager/InfoMode
IL_0000: Local var 1: NetManager
IL_0000: Local var 2: System.Boolean
IL_0000: Local var 3: NetNode/Flags
IL_0000: Local var 4: System.UInt16
IL_0000: Local var 5: BuildingManager
IL_0000: Local var 6: NetNode/Flags
IL_0000: Local var 7: System.Int32
IL_0000: Local var 8: System.UInt16
IL_0000: Local var 9: System.Boolean
IL_0000: Local var 10: System.Boolean
IL_0000: ldc.i4 0
IL_0005: stloc 9 (System.Boolean)
IL_0009: ldc.i4.1
IL_000A: stloc 9 (System.Boolean)
IL_000E: ldc.i4 0
IL_0013: stloc 10 (System.Boolean)
IL_0017: ldloc 9 (System.Boolean)
IL_001B: brfalse => Label1
IL_0020: ldarga 1
IL_0024: ldloca 10 (System.Boolean)
IL_0028: call static System.Void
ElectricRoads.Overrides.ElectricRoadsOverrides::PreConduct(System.Int32& nodeID,
System.Boolean& __state)
IL_002D: Label1
IL_002D: nop
IL_002E: ldloc 9 (System.Boolean)
IL_0032: brfalse => Label0
IL_0037: // start original
IL_0037: call static InfoManager
ColossalFramework.Singleton`1<InfoManager>::get_instance()
IL_003C: callvirt InfoMode InfoManager::get_CurrentMode()
IL_0041: stloc.0
IL_0042: call static NetManager
ColossalFramework.Singleton`1<NetManager>::get_instance()
IL_0047: stloc.1
IL_0048: ldc.i4.0
IL_0049: stloc.2
IL_004A: ldloc.1
IL_004B: ldfld Array16`1<NetNode> NetManager::m_nodes
IL_0050: ldfld NetNode[] Array16`1<NetNode>::m_buffer
IL_0055: ldarg.1
IL_0056: ldelema NetNode
IL_005B: ldfld Flags NetNode::m_flags
IL_0060: stloc.3
IL_0061: ldarg.1
IL_0062: call static System.Boolean
ElectricRoads.Overrides.ElectricRoadsOverrides::CheckNodeTransition(System.Int32
nodeID)
IL_0067: brfalse => Label2
IL_006C: ldloc.1
IL_006D: ldfld Array16`1<NetNode> NetManager::m_nodes
IL_0072: ldfld NetNode[] Array16`1<NetNode>::m_buffer
IL_0077: ldarg.1
IL_0078: ldelema NetNode
IL_007D: dup
IL_007E: ldfld Flags NetNode::m_flags
IL_0083: ldc.i4 -1048577
IL_0088: and
IL_0089: stfld Flags NetNode::m_flags
IL_008E: br => Label12
IL_0093: Label2
IL_0093: ldloc.1
IL_0094: ldfld Array16`1<NetNode> NetManager::m_nodes
IL_0099: ldfld NetNode[] Array16`1<NetNode>::m_buffer
IL_009E: ldarg.1
IL_009F: ldelema NetNode
IL_00A4: ldfld System.UInt16 NetNode::m_building
IL_00A9: stloc.s 4 (System.UInt16)
IL_00AB: ldloc.s 4 (System.UInt16)
IL_00AD: brfalse => Label3
IL_00B2: call static BuildingManager
ColossalFramework.Singleton`1<BuildingManager>::get_instance()
IL_00B7: stloc.s 5 (BuildingManager)
IL_00B9: ldloc.s 5 (BuildingManager)
IL_00BB: ldfld Array16`1<Building> BuildingManager::m_buildings
IL_00C0: ldfld Building[] Array16`1<Building>::m_buffer
IL_00C5: ldloc.s 4 (System.UInt16)
IL_00C7: ldelema Building
IL_00CC: ldfld System.UInt16 Building::m_electricityBuffer
IL_00D1: ldarg.2
IL_00D2: beq => Label4
IL_00D7: ldloc.s 5 (BuildingManager)
IL_00D9: ldfld Array16`1<Building> BuildingManager::m_buildings
IL_00DE: ldfld Building[] Array16`1<Building>::m_buffer
IL_00E3: ldloc.s 4 (System.UInt16)
IL_00E5: ldelema Building
IL_00EA: ldarg.2
IL_00EB: conv.u2
IL_00EC: stfld System.UInt16 Building::m_electricityBuffer
IL_00F1: ldloc.0
IL_00F2: ldc.i4.1
IL_00F3: ceq
IL_00F5: stloc.2
IL_00F6: Label4
IL_00F6: ldloc.2
IL_00F7: brfalse => Label5
IL_00FC: ldloc.s 5 (BuildingManager)
IL_00FE: ldloc.s 4 (System.UInt16)
IL_0100: callvirt System.Void BuildingManager::UpdateBuildingColors(System.UInt16
building)
IL_0105: Label3
IL_0105: Label5
IL_0105: ldloc.3
IL_0106: ldc.i4 -67108865
IL_010B: and
IL_010C: stloc.s 6 (NetNode+Flags)
IL_010E: ldarg.2
IL_010F: brfalse => Label6
IL_0114: ldloc.s 6 (NetNode+Flags)
IL_0116: ldc.i4 67108864
IL_011B: or
IL_011C: stloc.s 6 (NetNode+Flags)
IL_011E: Label6
IL_011E: ldloc.s 6 (NetNode+Flags)
IL_0120: ldloc.3
IL_0121: beq => Label7
IL_0126: ldloc.1
IL_0127: ldfld Array16`1<NetNode> NetManager::m_nodes
IL_012C: ldfld NetNode[] Array16`1<NetNode>::m_buffer
IL_0131: ldarg.1
IL_0132: ldelema NetNode
IL_0137: ldloc.s 6 (NetNode+Flags)
IL_0139: stfld Flags NetNode::m_flags
IL_013E: ldloc.0
IL_013F: ldc.i4.1
IL_0140: ceq
IL_0142: stloc.2
IL_0143: Label7
IL_0143: ldloc.2
IL_0144: brfalse => Label8
IL_0149: ldloc.1
IL_014A: ldarg.1
IL_014B: conv.u2
IL_014C: callvirt System.Void NetManager::UpdateNodeColors(System.UInt16 node)
IL_0151: ldc.i4.0
IL_0152: stloc.s 7 (System.Int32)
IL_0154: br => Label9
IL_0159: Label11
IL_0159: ldloc.1
IL_015A: ldfld Array16`1<NetNode> NetManager::m_nodes
IL_015F: ldfld NetNode[] Array16`1<NetNode>::m_buffer
IL_0164: ldarg.1
IL_0165: ldelema NetNode
IL_016A: ldloc.s 7 (System.Int32)
IL_016C: call System.UInt16 NetNode::GetSegment(System.Int32 index)
IL_0171: stloc.s 8 (System.UInt16)
IL_0173: ldloc.s 8 (System.UInt16)
IL_0175: brfalse => Label10
IL_017A: ldloc.1
IL_017B: ldloc.s 8 (System.UInt16)
IL_017D: callvirt System.Void NetManager::UpdateSegmentColors(System.UInt16
segment)
IL_0182: Label10
IL_0182: ldloc.s 7 (System.Int32)
IL_0184: ldc.i4.1
IL_0185: add
IL_0186: stloc.s 7 (System.Int32)
IL_0188: Label9
IL_0188: ldloc.s 7 (System.Int32)
IL_018A: ldc.i4.8
IL_018B: blt => Label11
IL_0190: // end original
IL_0190: Label8
IL_0190: Label12
IL_0190: Label0
IL_0190: ldarg 1
IL_0194: ldloc 10 (System.Boolean)
IL_0198: call static System.Void
ElectricRoads.Overrides.ElectricRoadsOverrides::PostConduct(System.Int32 nodeID,
System.Boolean __state)
IL_019D: ret
DONE

### Patch: virtual System.Void ColossalFramework.UI.UIView::Start()


### Replacement: static System.Void
ColossalFramework.UI.UIView::ColossalFramework.UI.UIView.Start_Patch0(ColossalFrame
work.UI.UIView this)
IL_0000: Local var 0:
ColossalFramework.PoolList`1<ColossalFramework.UI.UIComponent>
IL_0000: Local var 1: ColossalFramework.UI.UIComponent
IL_0000: Local var 2:
System.Collections.Generic.IEnumerator`1<ColossalFramework.UI.UIComponent>
IL_0000: // start original
IL_0000: ldarg.0
IL_0001: ldc.i4.0
IL_0002: stfld System.Int32 ColossalFramework.UI.UIView::m_FramesRendered
IL_0007: ldarg.0
IL_0008: call System.Void
ColossalFramework.UI.UIView::InvalidateAllComponents()
IL_000D: ldarg.0
IL_000E: ldfld UnityEngine.MeshRenderer
ColossalFramework.UI.UIView::m_MeshRenderer
IL_0013: ldnull
IL_0014: call static System.Boolean
UnityEngine.Object::op_Inequality(UnityEngine.Object x, UnityEngine.Object y)
IL_0019: brfalse => Label0
IL_001E: ldarg.0
IL_001F: ldfld UnityEngine.MeshRenderer
ColossalFramework.UI.UIView::m_MeshRenderer
IL_0024: ldc.i4.1
IL_0025: callvirt System.Void UnityEngine.Renderer::set_enabled(System.Boolean
value)
IL_002A: Label0
IL_002A: ldarg.0
IL_002B: call ColossalFramework.PoolList`1<ColossalFramework.UI.UIComponent>
ColossalFramework.UI.UIView::GetTopLevelComponents()
IL_0030: stloc.0
.try
{
IL_0031: ldloc.0
IL_0032: callvirt virtual
System.Collections.Generic.IEnumerator`1<ColossalFramework.UI.UIComponent>
ColossalFramework.PoolList`1<ColossalFramework.UI.UIComponent>::GetEnumerator()
IL_0037: stloc.2
.try
{
IL_0038: br => Label1
IL_003D: Label2
IL_003D: ldloc.2
IL_003E: callvirt abstract virtual ColossalFramework.UI.UIComponent
System.Collections.Generic.IEnumerator`1<ColossalFramework.UI.UIComponent>::get_Cur
rent()
IL_0043: stloc.1
IL_0044: ldloc.1
IL_0045: ldc.i4.1
IL_0046: callvirt System.Void
ColossalFramework.UI.UIComponent::InitializeParentVisibilityCache(System.Boolean
parentVisible)
IL_004B: Label1
IL_004B: ldloc.2
IL_004C: callvirt abstract virtual System.Boolean
System.Collections.IEnumerator::MoveNext()
IL_0051: brtrue => Label2
IL_0056: leave => Label3
IL_005B: leave => (autogenerated)
} // end try
.finally
{
IL_0060: ldloc.2
IL_0061: brfalse => Label4
IL_0066: ldloc.2
IL_0067: callvirt abstract virtual System.Void
System.IDisposable::Dispose()
IL_006C: Label4
IL_006C: endfinally
IL_006D: leave => (autogenerated)
} // end handler
IL_006E: Label3
IL_006E: leave => Label5
IL_0073: leave => (autogenerated)
} // end try
.finally
{
IL_0078: ldloc.0
IL_0079: brfalse => Label6
IL_007E: ldloc.0
IL_007F: callvirt abstract virtual System.Void
System.IDisposable::Dispose()
IL_0084: Label6
IL_0084: endfinally
IL_0085: leave => (autogenerated)
} // end handler
IL_0086: Label5
IL_0086: ldarg.0
IL_0087: ldc.i4.1
IL_0088: stfld System.Boolean
ColossalFramework.UI.UIView::m_VisibilityCacheInitialized
IL_008D: // end original
IL_008D: ret
DONE

### Patch: virtual UnityEngine.Color NetAI::GetColor(System.UInt16 nodeID, NetNode&


data, InfoMode infoMode, SubInfoMode subInfoMode)
### Replacement: static UnityEngine.Color NetAI::NetAI.GetColor_Patch0(NetAI this,
System.UInt16 nodeID, NetNode& data, InfoMode infoMode, SubInfoMode subInfoMode)
IL_0000: // start original
IL_0000: ldarg.3
IL_0001: brfalse => Label0
IL_0006: call static InfoManager
ColossalFramework.Singleton`1<InfoManager>::get_instance()
IL_000B: ldfld InfoProperties SimulationManagerBase`2<InfoManager,
InfoProperties>::m_properties
IL_0010: ldfld UnityEngine.Color InfoProperties::m_neutralColor
IL_0015: br => Label1
IL_001A: Label0
IL_001A: ldarg.0
IL_001B: ldfld NetInfo NetAI::m_info
IL_0020: ldfld UnityEngine.Color NetInfo::m_color
IL_0025: // end original
IL_0025: Label1
IL_0025: ret
DONE

### Patch: virtual UnityEngine.Color NetAI::GetColor(System.UInt16 segmentID,


NetSegment& data, InfoMode infoMode, SubInfoMode subInfoMode)
### Replacement: static UnityEngine.Color NetAI::NetAI.GetColor_Patch0(NetAI this,
System.UInt16 segmentID, NetSegment& data, InfoMode infoMode, SubInfoMode
subInfoMode)
IL_0000: // start original
IL_0000: ldarg.3
IL_0001: brfalse => Label0
IL_0006: call static InfoManager
ColossalFramework.Singleton`1<InfoManager>::get_instance()
IL_000B: ldfld InfoProperties SimulationManagerBase`2<InfoManager,
InfoProperties>::m_properties
IL_0010: ldfld UnityEngine.Color InfoProperties::m_neutralColor
IL_0015: br => Label1
IL_001A: Label0
IL_001A: ldarg.0
IL_001B: ldfld NetInfo NetAI::m_info
IL_0020: ldfld UnityEngine.Color NetInfo::m_color
IL_0025: // end original
IL_0025: Label1
IL_0025: ret
DONE

### Patch: System.Void ElectricityManager::UpdateNodeElectricity(System.Int32


nodeID, System.Int32 value)
### Replacement: static System.Void
ElectricityManager::ElectricityManager.UpdateNodeElectricity_Patch0(ElectricityMana
ger this, System.Int32 nodeID, System.Int32 value)
IL_0000: Local var 0: InfoManager/InfoMode
IL_0000: Local var 1: NetManager
IL_0000: Local var 2: System.Boolean
IL_0000: Local var 3: NetNode/Flags
IL_0000: Local var 4: System.UInt16
IL_0000: Local var 5: BuildingManager
IL_0000: Local var 6: NetNode/Flags
IL_0000: Local var 7: System.Int32
IL_0000: Local var 8: System.UInt16
IL_0000: // start original
IL_0000: call static InfoManager
ColossalFramework.Singleton`1<InfoManager>::get_instance()
IL_0005: callvirt InfoMode InfoManager::get_CurrentMode()
IL_000A: stloc.0
IL_000B: call static NetManager
ColossalFramework.Singleton`1<NetManager>::get_instance()
IL_0010: stloc.1
IL_0011: ldc.i4.0
IL_0012: stloc.2
IL_0013: ldloc.1
IL_0014: ldfld Array16`1<NetNode> NetManager::m_nodes
IL_0019: ldfld NetNode[] Array16`1<NetNode>::m_buffer
IL_001E: ldarg.1
IL_001F: ldelema NetNode
IL_0024: ldfld Flags NetNode::m_flags
IL_0029: stloc.3
IL_002A: ldloc.3
IL_002B: ldc.i4 1048576
IL_0030: and
IL_0031: brfalse => Label0
IL_0036: ldloc.1
IL_0037: ldfld Array16`1<NetNode> NetManager::m_nodes
IL_003C: ldfld NetNode[] Array16`1<NetNode>::m_buffer
IL_0041: ldarg.1
IL_0042: ldelema NetNode
IL_0047: dup
IL_0048: ldfld Flags NetNode::m_flags
IL_004D: ldc.i4 -1048577
IL_0052: and
IL_0053: stfld Flags NetNode::m_flags
IL_0058: br => Label10
IL_005D: Label0
IL_005D: ldloc.1
IL_005E: ldfld Array16`1<NetNode> NetManager::m_nodes
IL_0063: ldfld NetNode[] Array16`1<NetNode>::m_buffer
IL_0068: ldarg.1
IL_0069: ldelema NetNode
IL_006E: ldfld System.UInt16 NetNode::m_building
IL_0073: stloc.s 4 (System.UInt16)
IL_0075: ldloc.s 4 (System.UInt16)
IL_0077: brfalse => Label1
IL_007C: call static BuildingManager
ColossalFramework.Singleton`1<BuildingManager>::get_instance()
IL_0081: stloc.s 5 (BuildingManager)
IL_0083: ldloc.s 5 (BuildingManager)
IL_0085: ldfld Array16`1<Building> BuildingManager::m_buildings
IL_008A: ldfld Building[] Array16`1<Building>::m_buffer
IL_008F: ldloc.s 4 (System.UInt16)
IL_0091: ldelema Building
IL_0096: ldfld System.UInt16 Building::m_electricityBuffer
IL_009B: ldarg.2
IL_009C: beq => Label2
IL_00A1: ldloc.s 5 (BuildingManager)
IL_00A3: ldfld Array16`1<Building> BuildingManager::m_buildings
IL_00A8: ldfld Building[] Array16`1<Building>::m_buffer
IL_00AD: ldloc.s 4 (System.UInt16)
IL_00AF: ldelema Building
IL_00B4: ldarg.2
IL_00B5: conv.u2
IL_00B6: stfld System.UInt16 Building::m_electricityBuffer
IL_00BB: ldloc.0
IL_00BC: ldc.i4.1
IL_00BD: ceq
IL_00BF: stloc.2
IL_00C0: Label2
IL_00C0: ldloc.2
IL_00C1: brfalse => Label3
IL_00C6: ldloc.s 5 (BuildingManager)
IL_00C8: ldloc.s 4 (System.UInt16)
IL_00CA: callvirt System.Void BuildingManager::UpdateBuildingColors(System.UInt16
building)
IL_00CF: Label1
IL_00CF: Label3
IL_00CF: ldloc.3
IL_00D0: ldc.i4 -67108865
IL_00D5: and
IL_00D6: stloc.s 6 (NetNode+Flags)
IL_00D8: ldarg.2
IL_00D9: brfalse => Label4
IL_00DE: ldloc.s 6 (NetNode+Flags)
IL_00E0: ldc.i4 67108864
IL_00E5: or
IL_00E6: stloc.s 6 (NetNode+Flags)
IL_00E8: Label4
IL_00E8: ldloc.s 6 (NetNode+Flags)
IL_00EA: ldloc.3
IL_00EB: beq => Label5
IL_00F0: ldloc.1
IL_00F1: ldfld Array16`1<NetNode> NetManager::m_nodes
IL_00F6: ldfld NetNode[] Array16`1<NetNode>::m_buffer
IL_00FB: ldarg.1
IL_00FC: ldelema NetNode
IL_0101: ldloc.s 6 (NetNode+Flags)
IL_0103: stfld Flags NetNode::m_flags
IL_0108: ldloc.0
IL_0109: ldc.i4.1
IL_010A: ceq
IL_010C: stloc.2
IL_010D: Label5
IL_010D: ldloc.2
IL_010E: brfalse => Label6
IL_0113: ldloc.1
IL_0114: ldarg.1
IL_0115: conv.u2
IL_0116: callvirt System.Void NetManager::UpdateNodeColors(System.UInt16 node)
IL_011B: ldc.i4.0
IL_011C: stloc.s 7 (System.Int32)
IL_011E: br => Label7
IL_0123: Label9
IL_0123: ldloc.1
IL_0124: ldfld Array16`1<NetNode> NetManager::m_nodes
IL_0129: ldfld NetNode[] Array16`1<NetNode>::m_buffer
IL_012E: ldarg.1
IL_012F: ldelema NetNode
IL_0134: ldloc.s 7 (System.Int32)
IL_0136: call System.UInt16 NetNode::GetSegment(System.Int32 index)
IL_013B: stloc.s 8 (System.UInt16)
IL_013D: ldloc.s 8 (System.UInt16)
IL_013F: brfalse => Label8
IL_0144: ldloc.1
IL_0145: ldloc.s 8 (System.UInt16)
IL_0147: callvirt System.Void NetManager::UpdateSegmentColors(System.UInt16
segment)
IL_014C: Label8
IL_014C: ldloc.s 7 (System.Int32)
IL_014E: ldc.i4.1
IL_014F: add
IL_0150: stloc.s 7 (System.Int32)
IL_0152: Label7
IL_0152: ldloc.s 7 (System.Int32)
IL_0154: ldc.i4.8
IL_0155: blt => Label9
IL_015A: // end original
IL_015A: Label6
IL_015A: Label10
IL_015A: ret
DONE

### Patch: static System.Void PropInstance::RenderInstance(CameraInfo cameraInfo,


PropInfo info, InstanceID id, UnityEngine.Vector3 position, System.Single scale,
System.Single angle, UnityEngine.Color color, UnityEngine.Vector4 objectIndex,
System.Boolean active, UnityEngine.Texture heightMap, UnityEngine.Vector4
heightMapping, UnityEngine.Vector4 surfaceMapping, UnityEngine.Texture
waterHeightMap, UnityEngine.Vector4 waterHeightMapping, UnityEngine.Vector4
waterSurfaceMapping)
### Replacement: static System.Void
PropInstance::PropInstance.RenderInstance_Patch0(CameraInfo cameraInfo, PropInfo
info, InstanceID id, UnityEngine.Vector3 position, System.Single scale,
System.Single angle, UnityEngine.Color color, UnityEngine.Vector4 objectIndex,
System.Boolean active, UnityEngine.Texture heightMap, UnityEngine.Vector4
heightMapping, UnityEngine.Vector4 surfaceMapping, UnityEngine.Texture
waterHeightMap, UnityEngine.Vector4 waterHeightMapping, UnityEngine.Vector4
waterSurfaceMapping)
IL_0000: Local var 0: UnityEngine.Matrix4x4
IL_0000: Local var 1: System.Single
IL_0000: Local var 2: System.Int32
IL_0000: Local var 3: UnityEngine.Vector3
IL_0000: Local var 4: UnityEngine.Vector3
IL_0000: Local var 5: EffectInfo/SpawnArea
IL_0000: Local var 6: System.Single
IL_0000: Local var 7: LightSystem
IL_0000: Local var 8: ColossalFramework.Math.Randomizer
IL_0000: Local var 9: UnityEngine.Vector4
IL_0000: Local var 10: System.Single
IL_0000: Local var 11: System.Single
IL_0000: Local var 12: System.Single
IL_0000: Local var 13: UnityEngine.Matrix4x4
IL_0000: Local var 14: PropManager
IL_0000: Local var 15: UnityEngine.MaterialPropertyBlock
IL_0000: Local var 16: System.Int32
IL_0000: // start original
IL_0000: ldarg.1
IL_0001: ldfld System.Boolean PrefabInfo::m_prefabInitialized
IL_0006: brfalse => Label0
IL_000B: ldarg.1
IL_000C: ldfld System.Boolean PropInfo::m_hasEffects
IL_0011: brfalse => Label1
IL_0016: ldarg.s 8
IL_0018: brtrue => Label2
IL_001D: ldarg.1
IL_001E: ldfld System.Boolean PropInfo::m_alwaysActive
IL_0023: brfalse => Label3
IL_0028: Label2
IL_0028: ldloca.s 0 (UnityEngine.Matrix4x4)
IL_002A: initobj UnityEngine.Matrix4x4
IL_0030: ldloca.s 0 (UnityEngine.Matrix4x4)
IL_0032: ldarg.3
IL_0033: ldarg.s 5
IL_0035: ldc.r4 57.29578
IL_003A: mul
IL_003B: call static UnityEngine.Vector3 UnityEngine.Vector3::get_down()
IL_0040: call static UnityEngine.Quaternion
UnityEngine.Quaternion::AngleAxis(System.Single angle, UnityEngine.Vector3 axis)
IL_0045: ldarg.s 4
IL_0047: ldarg.s 4
IL_0049: ldarg.s 4
IL_004B: newobj System.Void UnityEngine.Vector3::.ctor(System.Single x,
System.Single y, System.Single z)
IL_0050: call System.Void UnityEngine.Matrix4x4::SetTRS(UnityEngine.Vector3
pos, UnityEngine.Quaternion q, UnityEngine.Vector3 s)
IL_0055: call static SimulationManager
ColossalFramework.Singleton`1<SimulationManager>::get_instance()
IL_005A: ldfld System.Single SimulationManager::m_simulationTimeDelta
IL_005F: stloc.1
IL_0060: ldc.i4.0
IL_0061: stloc.2
IL_0062: br => Label4
IL_0067: Label5
IL_0067: ldloca.s 0 (UnityEngine.Matrix4x4)
IL_0069: ldarg.1
IL_006A: ldfld Effect[] PropInfo::m_effects
IL_006F: ldloc.2
IL_0070: ldelema PropInfo+Effect
IL_0075: ldfld UnityEngine.Vector3 Effect::m_position
IL_007A: call UnityEngine.Vector3
UnityEngine.Matrix4x4::MultiplyPoint(UnityEngine.Vector3 v)
IL_007F: stloc.3
IL_0080: ldloca.s 0 (UnityEngine.Matrix4x4)
IL_0082: ldarg.1
IL_0083: ldfld Effect[] PropInfo::m_effects
IL_0088: ldloc.2
IL_0089: ldelema PropInfo+Effect
IL_008E: ldfld UnityEngine.Vector3 Effect::m_direction
IL_0093: call UnityEngine.Vector3
UnityEngine.Matrix4x4::MultiplyVector(UnityEngine.Vector3 v)
IL_0098: stloc.s 4 (UnityEngine.Vector3)
IL_009A: ldloca.s 5 (EffectInfo+SpawnArea)
IL_009C: ldloc.3
IL_009D: ldloc.s 4 (UnityEngine.Vector3)
IL_009F: ldc.r4 0
IL_00A4: call System.Void SpawnArea::.ctor(UnityEngine.Vector3 position,
UnityEngine.Vector3 direction, System.Single radius)
IL_00A9: ldarg.1
IL_00AA: ldfld Effect[] PropInfo::m_effects
IL_00AF: ldloc.2
IL_00B0: ldelema PropInfo+Effect
IL_00B5: ldfld EffectInfo Effect::m_effect
IL_00BA: ldarg.2
IL_00BB: ldloc.s 5 (EffectInfo+SpawnArea)
IL_00BD: call static UnityEngine.Vector3 UnityEngine.Vector3::get_zero()
IL_00C2: ldc.r4 0
IL_00C7: ldc.r4 1
IL_00CC: ldc.r4 -1
IL_00D1: ldloc.1
IL_00D2: ldarg.0
IL_00D3: callvirt virtual System.Void EffectInfo::RenderEffect(InstanceID id,
SpawnArea area, UnityEngine.Vector3 velocity, System.Single acceleration,
System.Single magnitude, System.Single timeOffset, System.Single timeDelta,
CameraInfo cameraInfo)
IL_00D8: ldloc.2
IL_00D9: ldc.i4.1
IL_00DA: add
IL_00DB: stloc.2
IL_00DC: Label4
IL_00DC: ldloc.2
IL_00DD: ldarg.1
IL_00DE: ldfld Effect[] PropInfo::m_effects
IL_00E3: ldlen
IL_00E4: conv.i4
IL_00E5: blt => Label5
IL_00EA: Label1
IL_00EA: Label3
IL_00EA: ldarg.1
IL_00EB: ldfld System.Boolean PropInfo::m_hasRenderer
IL_00F0: brfalse => Label6
IL_00F5: ldarg.0
IL_00F6: ldfld System.Int32 CameraInfo::m_layerMask
IL_00FB: ldc.i4.1
IL_00FC: ldarg.1
IL_00FD: ldfld System.Int32 PrefabInfo::m_prefabDataLayer
IL_0102: ldc.i4.s 31
IL_0104: and
IL_0105: shl
IL_0106: and
IL_0107: brfalse => Label7
IL_010C: call static InfoManager
ColossalFramework.Singleton`1<InfoManager>::get_instance()
IL_0111: callvirt InfoMode InfoManager::get_CurrentMode()
IL_0116: brtrue => Label8
IL_011B: ldc.r4 0
IL_0120: stloc.s 6 (System.Single)
IL_0122: ldarg.s 8
IL_0124: brtrue => Label9
IL_0129: ldarg.1
IL_012A: ldfld System.Boolean PropInfo::m_alwaysActive
IL_012F: brtrue => Label10
IL_0134: ldarga.s 7
IL_0136: ldc.r4 0
IL_013B: stfld System.Single UnityEngine.Vector4::z
IL_0140: br => Label11
IL_0145: Label9
IL_0145: Label10
IL_0145: ldarg.1
IL_0146: ldflda UnityEngine.Vector2 PropInfo::m_illuminationOffRange
IL_014B: ldfld System.Single UnityEngine.Vector2::x
IL_0150: ldc.r4 1000
IL_0155: blt => Label12
IL_015A: ldarg.1
IL_015B: ldfld BlinkType PropInfo::m_illuminationBlinkType
IL_0160: brfalse => Label13
IL_0165: Label12
IL_0165: call static RenderManager
ColossalFramework.Singleton`1<RenderManager>::get_instance()
IL_016A: callvirt LightSystem RenderManager::get_lightSystem()
IL_016F: stloc.s 7 (LightSystem)
IL_0171: ldloca.s 8 (ColossalFramework.Math.Randomizer)
IL_0173: ldarga.s 2
IL_0175: call System.UInt32 InstanceID::get_Index()
IL_017A: call System.Void
ColossalFramework.Math.Randomizer::.ctor(System.UInt32 _seed)
IL_017F: ldarg.1
IL_0180: ldflda UnityEngine.Vector2 PropInfo::m_illuminationOffRange
IL_0185: ldfld System.Single UnityEngine.Vector2::x
IL_018A: ldloca.s 8 (ColossalFramework.Math.Randomizer)
IL_018C: ldc.i4 100000
IL_0191: call System.Int32
ColossalFramework.Math.Randomizer::Int32(System.UInt32 range)
IL_0196: conv.r4
IL_0197: ldc.r4 1E-05
IL_019C: mul
IL_019D: ldarg.1
IL_019E: ldflda UnityEngine.Vector2 PropInfo::m_illuminationOffRange
IL_01A3: ldfld System.Single UnityEngine.Vector2::y
IL_01A8: ldarg.1
IL_01A9: ldflda UnityEngine.Vector2 PropInfo::m_illuminationOffRange
IL_01AE: ldfld System.Single UnityEngine.Vector2::x
IL_01B3: sub
IL_01B4: mul
IL_01B5: add
IL_01B6: stloc.s 6 (System.Single)
IL_01B8: ldarga.s 7
IL_01BA: ldloc.s 6 (System.Single)
IL_01BC: ldc.r4 0.01
IL_01C1: add
IL_01C2: ldloc.s 6 (System.Single)
IL_01C4: ldc.r4 0.01
IL_01C9: sub
IL_01CA: ldloc.s 7 (LightSystem)
IL_01CC: callvirt System.Single LightSystem::get_DayLightIntensity()
IL_01D1: call static System.Single MathUtils::SmoothStep(System.Single edge0,
System.Single edge1, System.Single x)
IL_01D6: stfld System.Single UnityEngine.Vector4::z
IL_01DB: ldarg.1
IL_01DC: ldfld BlinkType PropInfo::m_illuminationBlinkType
IL_01E1: brfalse => Label14
IL_01E6: ldarg.1
IL_01E7: ldfld BlinkType PropInfo::m_illuminationBlinkType
IL_01EC: call static UnityEngine.Vector4
LightEffect::GetBlinkVector(BlinkType type)
IL_01F1: stloc.s 9 (UnityEngine.Vector4)
IL_01F3: ldloc.s 6 (System.Single)
IL_01F5: ldc.r4 3.71
IL_01FA: mul
IL_01FB: call static SimulationManager
ColossalFramework.Singleton`1<SimulationManager>::get_instance()
IL_0200: ldfld System.Single SimulationManager::m_simulationTimer
IL_0205: ldloca.s 9 (UnityEngine.Vector4)
IL_0207: ldfld System.Single UnityEngine.Vector4::w
IL_020C: div
IL_020D: add
IL_020E: stloc.s 10 (System.Single)
IL_0210: ldloc.s 10 (System.Single)
IL_0212: ldloc.s 10 (System.Single)
IL_0214: call static System.Single UnityEngine.Mathf::Floor(System.Single f)
IL_0219: sub
IL_021A: ldloca.s 9 (UnityEngine.Vector4)
IL_021C: ldfld System.Single UnityEngine.Vector4::w
IL_0221: mul
IL_0222: stloc.s 10 (System.Single)
IL_0224: ldloca.s 9 (UnityEngine.Vector4)
IL_0226: ldfld System.Single UnityEngine.Vector4::x
IL_022B: ldloca.s 9 (UnityEngine.Vector4)
IL_022D: ldfld System.Single UnityEngine.Vector4::y
IL_0232: ldloc.s 10 (System.Single)
IL_0234: call static System.Single MathUtils::SmoothStep(System.Single edge0,
System.Single edge1, System.Single x)
IL_0239: stloc.s 11 (System.Single)
IL_023B: ldloca.s 9 (UnityEngine.Vector4)
IL_023D: ldfld System.Single UnityEngine.Vector4::w
IL_0242: ldloca.s 9 (UnityEngine.Vector4)
IL_0244: ldfld System.Single UnityEngine.Vector4::z
IL_0249: ldloc.s 10 (System.Single)
IL_024B: call static System.Single MathUtils::SmoothStep(System.Single edge0,
System.Single edge1, System.Single x)
IL_0250: stloc.s 12 (System.Single)
IL_0252: ldarga.s 7
IL_0254: dup
IL_0255: ldfld System.Single UnityEngine.Vector4::z
IL_025A: ldc.r4 1
IL_025F: ldloc.s 11 (System.Single)
IL_0261: ldloc.s 12 (System.Single)
IL_0263: mul
IL_0264: sub
IL_0265: mul
IL_0266: stfld System.Single UnityEngine.Vector4::z
IL_026B: Label14
IL_026B: br => Label15
IL_0270: Label13
IL_0270: ldarga.s 7
IL_0272: ldc.r4 1
IL_0277: stfld System.Single UnityEngine.Vector4::z
IL_027C: Label8
IL_027C: Label11
IL_027C: Label15
IL_027C: ldarg.0
IL_027D: brfalse => Label16
IL_0282: ldarg.0
IL_0283: ldarg.3
IL_0284: ldarg.1
IL_0285: ldfld System.Single PropInfo::m_lodRenderDistance
IL_028A: callvirt System.Boolean
CameraInfo::CheckRenderDistance(UnityEngine.Vector3 point, System.Single
maxDistance)
IL_028F: brfalse => Label17
IL_0294: Label16
IL_0294: ldloca.s 13 (UnityEngine.Matrix4x4)
IL_0296: initobj UnityEngine.Matrix4x4
IL_029C: ldloca.s 13 (UnityEngine.Matrix4x4)
IL_029E: ldarg.3
IL_029F: ldarg.s 5
IL_02A1: ldc.r4 57.29578
IL_02A6: mul
IL_02A7: call static UnityEngine.Vector3 UnityEngine.Vector3::get_down()
IL_02AC: call static UnityEngine.Quaternion
UnityEngine.Quaternion::AngleAxis(System.Single angle, UnityEngine.Vector3 axis)
IL_02B1: ldarg.s 4
IL_02B3: ldarg.s 4
IL_02B5: ldarg.s 4
IL_02B7: newobj System.Void UnityEngine.Vector3::.ctor(System.Single x,
System.Single y, System.Single z)
IL_02BC: call System.Void UnityEngine.Matrix4x4::SetTRS(UnityEngine.Vector3
pos, UnityEngine.Quaternion q, UnityEngine.Vector3 s)
IL_02C1: call static PropManager
ColossalFramework.Singleton`1<PropManager>::get_instance()
IL_02C6: stloc.s 14 (PropManager)
IL_02C8: ldloc.s 14 (PropManager)
IL_02CA: ldfld UnityEngine.MaterialPropertyBlock PropManager::m_materialBlock
IL_02CF: stloc.s 15 (UnityEngine.MaterialPropertyBlock)
IL_02D1: ldloc.s 15 (UnityEngine.MaterialPropertyBlock)
IL_02D3: callvirt System.Void UnityEngine.MaterialPropertyBlock::Clear()
IL_02D8: ldloc.s 15 (UnityEngine.MaterialPropertyBlock)
IL_02DA: ldloc.s 14 (PropManager)
IL_02DC: ldfld System.Int32 PropManager::ID_Color
IL_02E1: ldarg.s 6
IL_02E3: callvirt System.Void
UnityEngine.MaterialPropertyBlock::SetColor(System.Int32 nameID, UnityEngine.Color
value)
IL_02E8: ldloc.s 15 (UnityEngine.MaterialPropertyBlock)
IL_02EA: ldloc.s 14 (PropManager)
IL_02EC: ldfld System.Int32 PropManager::ID_HeightMap
IL_02F1: ldarg.s 9
IL_02F3: callvirt System.Void
UnityEngine.MaterialPropertyBlock::SetTexture(System.Int32 nameID,
UnityEngine.Texture value)
IL_02F8: ldloc.s 15 (UnityEngine.MaterialPropertyBlock)
IL_02FA: ldloc.s 14 (PropManager)
IL_02FC: ldfld System.Int32 PropManager::ID_HeightMapping
IL_0301: ldarg.s 10
IL_0303: callvirt System.Void
UnityEngine.MaterialPropertyBlock::SetVector(System.Int32 nameID,
UnityEngine.Vector4 value)
IL_0308: ldloc.s 15 (UnityEngine.MaterialPropertyBlock)
IL_030A: ldloc.s 14 (PropManager)
IL_030C: ldfld System.Int32 PropManager::ID_SurfaceMapping
IL_0311: ldarg.s 11
IL_0313: callvirt System.Void
UnityEngine.MaterialPropertyBlock::SetVector(System.Int32 nameID,
UnityEngine.Vector4 value)
IL_0318: ldloc.s 15 (UnityEngine.MaterialPropertyBlock)
IL_031A: ldloc.s 14 (PropManager)
IL_031C: ldfld System.Int32 PropManager::ID_ObjectIndex
IL_0321: ldarg.s 7
IL_0323: callvirt System.Void
UnityEngine.MaterialPropertyBlock::SetVector(System.Int32 nameID,
UnityEngine.Vector4 value)
IL_0328: ldloc.s 15 (UnityEngine.MaterialPropertyBlock)
IL_032A: ldloc.s 14 (PropManager)
IL_032C: ldfld System.Int32 PropManager::ID_WaterHeightMap
IL_0331: ldarg.s 12
IL_0333: callvirt System.Void
UnityEngine.MaterialPropertyBlock::SetTexture(System.Int32 nameID,
UnityEngine.Texture value)
IL_0338: ldloc.s 15 (UnityEngine.MaterialPropertyBlock)
IL_033A: ldloc.s 14 (PropManager)
IL_033C: ldfld System.Int32 PropManager::ID_WaterHeightMapping
IL_0341: ldarg.s 13
IL_0343: callvirt System.Void
UnityEngine.MaterialPropertyBlock::SetVector(System.Int32 nameID,
UnityEngine.Vector4 value)
IL_0348: ldloc.s 15 (UnityEngine.MaterialPropertyBlock)
IL_034A: ldloc.s 14 (PropManager)
IL_034C: ldfld System.Int32 PropManager::ID_WaterSurfaceMapping
IL_0351: ldarg.s 14
IL_0353: callvirt System.Void
UnityEngine.MaterialPropertyBlock::SetVector(System.Int32 nameID,
UnityEngine.Vector4 value)
IL_0358: ldarg.1
IL_0359: ldfld UnityEngine.Vector4[] PropInfo::m_rollLocation
IL_035E: brfalse => Label18
IL_0363: ldarg.1
IL_0364: ldfld UnityEngine.Material PropInfo::m_material
IL_0369: ldloc.s 14 (PropManager)
IL_036B: ldfld System.Int32 PropManager::ID_RollLocation
IL_0370: ldarg.1
IL_0371: ldfld UnityEngine.Vector4[] PropInfo::m_rollLocation
IL_0376: callvirt System.Void UnityEngine.Material::SetVectorArray(System.Int32
nameID, UnityEngine.Vector4[] values)
IL_037B: ldarg.1
IL_037C: ldfld UnityEngine.Material PropInfo::m_material
IL_0381: ldloc.s 14 (PropManager)
IL_0383: ldfld System.Int32 PropManager::ID_RollParams
IL_0388: ldarg.1
IL_0389: ldfld UnityEngine.Vector4[] PropInfo::m_rollParams
IL_038E: callvirt System.Void UnityEngine.Material::SetVectorArray(System.Int32
nameID, UnityEngine.Vector4[] values)
IL_0393: Label18
IL_0393: ldloc.s 14 (PropManager)
IL_0395: ldflda DrawCallData SimulationManagerBase`2<PropManager,
PropProperties>::m_drawCallData
IL_039A: dup
IL_039B: ldfld System.Int32 DrawCallData::m_defaultCalls
IL_03A0: ldc.i4.1
IL_03A1: add
IL_03A2: stfld System.Int32 DrawCallData::m_defaultCalls
IL_03A7: ldarg.1
IL_03A8: ldfld UnityEngine.Mesh PropInfo::m_mesh
IL_03AD: ldloc.s 13 (UnityEngine.Matrix4x4)
IL_03AF: ldarg.1
IL_03B0: ldfld UnityEngine.Material PropInfo::m_material
IL_03B5: ldarg.1
IL_03B6: ldfld System.Int32 PrefabInfo::m_prefabDataLayer
IL_03BB: ldnull
IL_03BC: ldc.i4.0
IL_03BD: ldloc.s 15 (UnityEngine.MaterialPropertyBlock)
IL_03BF: call static System.Void
UnityEngine.Graphics::DrawMesh(UnityEngine.Mesh mesh, UnityEngine.Matrix4x4 matrix,
UnityEngine.Material material, System.Int32 layer, UnityEngine.Camera camera,
System.Int32 submeshIndex, UnityEngine.MaterialPropertyBlock properties)
IL_03C4: br => Label19
IL_03C9: Label17
IL_03C9: ldarg.s 9
IL_03CB: ldarg.1
IL_03CC: ldfld UnityEngine.Texture PropInfo::m_lodHeightMap
IL_03D1: call static System.Boolean
UnityEngine.Object::op_Inequality(UnityEngine.Object x, UnityEngine.Object y)
IL_03D6: brtrue => Label20
IL_03DB: ldarg.s 12
IL_03DD: ldarg.1
IL_03DE: ldfld UnityEngine.Texture PropInfo::m_lodWaterHeightMap
IL_03E3: call static System.Boolean
UnityEngine.Object::op_Inequality(UnityEngine.Object x, UnityEngine.Object y)
IL_03E8: brfalse => Label21
IL_03ED: Label20
IL_03ED: ldarg.1
IL_03EE: ldfld System.Int32 PropInfo::m_lodCount
IL_03F3: brfalse => Label22
IL_03F8: ldarg.0
IL_03F9: ldarg.1
IL_03FA: call static System.Void PropInstance::RenderLod(CameraInfo
cameraInfo, PropInfo info)
IL_03FF: Label22
IL_03FF: ldarg.1
IL_0400: ldarg.s 9
IL_0402: stfld UnityEngine.Texture PropInfo::m_lodHeightMap
IL_0407: ldarg.1
IL_0408: ldarg.s 10
IL_040A: stfld UnityEngine.Vector4 PropInfo::m_lodHeightMapping
IL_040F: ldarg.1
IL_0410: ldarg.s 11
IL_0412: stfld UnityEngine.Vector4 PropInfo::m_lodSurfaceMapping
IL_0417: ldarg.1
IL_0418: ldarg.s 12
IL_041A: stfld UnityEngine.Texture PropInfo::m_lodWaterHeightMap
IL_041F: ldarg.1
IL_0420: ldarg.s 13
IL_0422: stfld UnityEngine.Vector4 PropInfo::m_lodWaterHeightMapping
IL_0427: ldarg.1
IL_0428: ldarg.s 14
IL_042A: stfld UnityEngine.Vector4 PropInfo::m_lodWaterSurfaceMapping
IL_042F: Label21
IL_042F: ldarga.s 7
IL_0431: ldarg.s 4
IL_0433: stfld System.Single UnityEngine.Vector4::w
IL_0438: ldarg.1
IL_0439: ldfld UnityEngine.Vector4[] PropInfo::m_lodLocations
IL_043E: ldarg.1
IL_043F: ldfld System.Int32 PropInfo::m_lodCount
IL_0444: ldelema UnityEngine.Vector4
IL_0449: ldarga.s 3
IL_044B: ldfld System.Single UnityEngine.Vector3::x
IL_0450: ldarga.s 3
IL_0452: ldfld System.Single UnityEngine.Vector3::y
IL_0457: ldarga.s 3
IL_0459: ldfld System.Single UnityEngine.Vector3::z
IL_045E: ldarg.s 5
IL_0460: newobj System.Void UnityEngine.Vector4::.ctor(System.Single x,
System.Single y, System.Single z, System.Single w)
IL_0465: stobj UnityEngine.Vector4
IL_046A: ldarg.1
IL_046B: ldfld UnityEngine.Vector4[] PropInfo::m_lodObjectIndices
IL_0470: ldarg.1
IL_0471: ldfld System.Int32 PropInfo::m_lodCount
IL_0476: ldelema UnityEngine.Vector4
IL_047B: ldarg.s 7
IL_047D: stobj UnityEngine.Vector4
IL_0482: ldarg.1
IL_0483: ldfld UnityEngine.Vector4[] PropInfo::m_lodColors
IL_0488: ldarg.1
IL_0489: ldfld System.Int32 PropInfo::m_lodCount
IL_048E: ldelema UnityEngine.Vector4
IL_0493: ldarga.s 6
IL_0495: call UnityEngine.Color UnityEngine.Color::get_linear()
IL_049A: call static UnityEngine.Vector4
UnityEngine.Color::op_Implicit(UnityEngine.Color c)
IL_049F: stobj UnityEngine.Vector4
IL_04A4: ldarg.1
IL_04A5: ldarg.1
IL_04A6: ldfld UnityEngine.Vector3 PropInfo::m_lodMin
IL_04AB: ldarg.3
IL_04AC: call static UnityEngine.Vector3
UnityEngine.Vector3::Min(UnityEngine.Vector3 lhs, UnityEngine.Vector3 rhs)
IL_04B1: stfld UnityEngine.Vector3 PropInfo::m_lodMin
IL_04B6: ldarg.1
IL_04B7: ldarg.1
IL_04B8: ldfld UnityEngine.Vector3 PropInfo::m_lodMax
IL_04BD: ldarg.3
IL_04BE: call static UnityEngine.Vector3
UnityEngine.Vector3::Max(UnityEngine.Vector3 lhs, UnityEngine.Vector3 rhs)
IL_04C3: stfld UnityEngine.Vector3 PropInfo::m_lodMax
IL_04C8: ldarg.1
IL_04C9: dup
IL_04CA: ldfld System.Int32 PropInfo::m_lodCount
IL_04CF: ldc.i4.1
IL_04D0: add
IL_04D1: dup
IL_04D2: stloc.s 16 (System.Int32)
IL_04D4: stfld System.Int32 PropInfo::m_lodCount
IL_04D9: ldloc.s 16 (System.Int32)
IL_04DB: ldarg.1
IL_04DC: ldfld UnityEngine.Vector4[] PropInfo::m_lodLocations
IL_04E1: ldlen
IL_04E2: conv.i4
IL_04E3: bne.un => Label23
IL_04E8: ldarg.0
IL_04E9: ldarg.1
IL_04EA: call static System.Void PropInstance::RenderLod(CameraInfo
cameraInfo, PropInfo info)
IL_04EF: // end original
IL_04EF: Label0
IL_04EF: Label6
IL_04EF: Label7
IL_04EF: Label19
IL_04EF: Label23
IL_04EF: ret
DONE

### Patch: static System.Void PropInstance::RenderInstance(CameraInfo cameraInfo,


PropInfo info, InstanceID id, UnityEngine.Vector3 position, System.Single scale,
System.Single angle, UnityEngine.Color color, UnityEngine.Vector4 objectIndex,
System.Boolean active)
### Replacement: static System.Void
PropInstance::PropInstance.RenderInstance_Patch0(CameraInfo cameraInfo, PropInfo
info, InstanceID id, UnityEngine.Vector3 position, System.Single scale,
System.Single angle, UnityEngine.Color color, UnityEngine.Vector4 objectIndex,
System.Boolean active)
IL_0000: Local var 0: UnityEngine.Matrix4x4
IL_0000: Local var 1: System.Single
IL_0000: Local var 2: System.Int32
IL_0000: Local var 3: UnityEngine.Vector3
IL_0000: Local var 4: UnityEngine.Vector3
IL_0000: Local var 5: EffectInfo/SpawnArea
IL_0000: Local var 6: System.Single
IL_0000: Local var 7: LightSystem
IL_0000: Local var 8: ColossalFramework.Math.Randomizer
IL_0000: Local var 9: UnityEngine.Vector4
IL_0000: Local var 10: System.Single
IL_0000: Local var 11: System.Single
IL_0000: Local var 12: System.Single
IL_0000: Local var 13: UnityEngine.Matrix4x4
IL_0000: Local var 14: PropManager
IL_0000: Local var 15: UnityEngine.MaterialPropertyBlock
IL_0000: Local var 16: UnityEngine.Matrix4x4
IL_0000: Local var 17: PropManager
IL_0000: Local var 18: UnityEngine.MaterialPropertyBlock
IL_0000: Local var 19: System.Int32
IL_0000: // start original
IL_0000: ldarg.1
IL_0001: ldfld System.Boolean PrefabInfo::m_prefabInitialized
IL_0006: brfalse => Label0
IL_000B: ldarg.1
IL_000C: ldfld System.Boolean PropInfo::m_hasEffects
IL_0011: brfalse => Label1
IL_0016: ldarg.s 8
IL_0018: brtrue => Label2
IL_001D: ldarg.1
IL_001E: ldfld System.Boolean PropInfo::m_alwaysActive
IL_0023: brfalse => Label3
IL_0028: Label2
IL_0028: ldloca.s 0 (UnityEngine.Matrix4x4)
IL_002A: initobj UnityEngine.Matrix4x4
IL_0030: ldloca.s 0 (UnityEngine.Matrix4x4)
IL_0032: ldarg.3
IL_0033: ldarg.s 5
IL_0035: ldc.r4 57.29578
IL_003A: mul
IL_003B: call static UnityEngine.Vector3 UnityEngine.Vector3::get_down()
IL_0040: call static UnityEngine.Quaternion
UnityEngine.Quaternion::AngleAxis(System.Single angle, UnityEngine.Vector3 axis)
IL_0045: ldarg.s 4
IL_0047: ldarg.s 4
IL_0049: ldarg.s 4
IL_004B: newobj System.Void UnityEngine.Vector3::.ctor(System.Single x,
System.Single y, System.Single z)
IL_0050: call System.Void UnityEngine.Matrix4x4::SetTRS(UnityEngine.Vector3
pos, UnityEngine.Quaternion q, UnityEngine.Vector3 s)
IL_0055: call static SimulationManager
ColossalFramework.Singleton`1<SimulationManager>::get_instance()
IL_005A: ldfld System.Single SimulationManager::m_simulationTimeDelta
IL_005F: stloc.1
IL_0060: ldc.i4.0
IL_0061: stloc.2
IL_0062: br => Label4
IL_0067: Label5
IL_0067: ldloca.s 0 (UnityEngine.Matrix4x4)
IL_0069: ldarg.1
IL_006A: ldfld Effect[] PropInfo::m_effects
IL_006F: ldloc.2
IL_0070: ldelema PropInfo+Effect
IL_0075: ldfld UnityEngine.Vector3 Effect::m_position
IL_007A: call UnityEngine.Vector3
UnityEngine.Matrix4x4::MultiplyPoint(UnityEngine.Vector3 v)
IL_007F: stloc.3
IL_0080: ldloca.s 0 (UnityEngine.Matrix4x4)
IL_0082: ldarg.1
IL_0083: ldfld Effect[] PropInfo::m_effects
IL_0088: ldloc.2
IL_0089: ldelema PropInfo+Effect
IL_008E: ldfld UnityEngine.Vector3 Effect::m_direction
IL_0093: call UnityEngine.Vector3
UnityEngine.Matrix4x4::MultiplyVector(UnityEngine.Vector3 v)
IL_0098: stloc.s 4 (UnityEngine.Vector3)
IL_009A: ldloca.s 5 (EffectInfo+SpawnArea)
IL_009C: ldloc.3
IL_009D: ldloc.s 4 (UnityEngine.Vector3)
IL_009F: ldc.r4 0
IL_00A4: call System.Void SpawnArea::.ctor(UnityEngine.Vector3 position,
UnityEngine.Vector3 direction, System.Single radius)
IL_00A9: ldarg.1
IL_00AA: ldfld Effect[] PropInfo::m_effects
IL_00AF: ldloc.2
IL_00B0: ldelema PropInfo+Effect
IL_00B5: ldfld EffectInfo Effect::m_effect
IL_00BA: ldarg.2
IL_00BB: ldloc.s 5 (EffectInfo+SpawnArea)
IL_00BD: call static UnityEngine.Vector3 UnityEngine.Vector3::get_zero()
IL_00C2: ldc.r4 0
IL_00C7: ldc.r4 1
IL_00CC: ldc.r4 -1
IL_00D1: ldloc.1
IL_00D2: ldarg.0
IL_00D3: callvirt virtual System.Void EffectInfo::RenderEffect(InstanceID id,
SpawnArea area, UnityEngine.Vector3 velocity, System.Single acceleration,
System.Single magnitude, System.Single timeOffset, System.Single timeDelta,
CameraInfo cameraInfo)
IL_00D8: ldloc.2
IL_00D9: ldc.i4.1
IL_00DA: add
IL_00DB: stloc.2
IL_00DC: Label4
IL_00DC: ldloc.2
IL_00DD: ldarg.1
IL_00DE: ldfld Effect[] PropInfo::m_effects
IL_00E3: ldlen
IL_00E4: conv.i4
IL_00E5: blt => Label5
IL_00EA: Label1
IL_00EA: Label3
IL_00EA: ldarg.1
IL_00EB: ldfld System.Boolean PropInfo::m_hasRenderer
IL_00F0: brfalse => Label6
IL_00F5: ldarg.0
IL_00F6: ldfld System.Int32 CameraInfo::m_layerMask
IL_00FB: ldc.i4.1
IL_00FC: ldarg.1
IL_00FD: ldfld System.Int32 PrefabInfo::m_prefabDataLayer
IL_0102: ldc.i4.s 31
IL_0104: and
IL_0105: shl
IL_0106: and
IL_0107: brfalse => Label7
IL_010C: call static InfoManager
ColossalFramework.Singleton`1<InfoManager>::get_instance()
IL_0111: callvirt InfoMode InfoManager::get_CurrentMode()
IL_0116: brtrue => Label8
IL_011B: ldc.r4 0
IL_0120: stloc.s 6 (System.Single)
IL_0122: ldarg.s 8
IL_0124: brtrue => Label9
IL_0129: ldarg.1
IL_012A: ldfld System.Boolean PropInfo::m_alwaysActive
IL_012F: brtrue => Label10
IL_0134: ldarga.s 7
IL_0136: ldc.r4 0
IL_013B: stfld System.Single UnityEngine.Vector4::z
IL_0140: br => Label11
IL_0145: Label9
IL_0145: Label10
IL_0145: ldarg.1
IL_0146: ldflda UnityEngine.Vector2 PropInfo::m_illuminationOffRange
IL_014B: ldfld System.Single UnityEngine.Vector2::x
IL_0150: ldc.r4 1000
IL_0155: blt => Label12
IL_015A: ldarg.1
IL_015B: ldfld BlinkType PropInfo::m_illuminationBlinkType
IL_0160: brfalse => Label13
IL_0165: Label12
IL_0165: call static RenderManager
ColossalFramework.Singleton`1<RenderManager>::get_instance()
IL_016A: callvirt LightSystem RenderManager::get_lightSystem()
IL_016F: stloc.s 7 (LightSystem)
IL_0171: ldloca.s 8 (ColossalFramework.Math.Randomizer)
IL_0173: ldarga.s 2
IL_0175: call System.UInt32 InstanceID::get_Index()
IL_017A: call System.Void
ColossalFramework.Math.Randomizer::.ctor(System.UInt32 _seed)
IL_017F: ldarg.1
IL_0180: ldflda UnityEngine.Vector2 PropInfo::m_illuminationOffRange
IL_0185: ldfld System.Single UnityEngine.Vector2::x
IL_018A: ldloca.s 8 (ColossalFramework.Math.Randomizer)
IL_018C: ldc.i4 100000
IL_0191: call System.Int32
ColossalFramework.Math.Randomizer::Int32(System.UInt32 range)
IL_0196: conv.r4
IL_0197: ldc.r4 1E-05
IL_019C: mul
IL_019D: ldarg.1
IL_019E: ldflda UnityEngine.Vector2 PropInfo::m_illuminationOffRange
IL_01A3: ldfld System.Single UnityEngine.Vector2::y
IL_01A8: ldarg.1
IL_01A9: ldflda UnityEngine.Vector2 PropInfo::m_illuminationOffRange
IL_01AE: ldfld System.Single UnityEngine.Vector2::x
IL_01B3: sub
IL_01B4: mul
IL_01B5: add
IL_01B6: stloc.s 6 (System.Single)
IL_01B8: ldarga.s 7
IL_01BA: ldloc.s 6 (System.Single)
IL_01BC: ldc.r4 0.01
IL_01C1: add
IL_01C2: ldloc.s 6 (System.Single)
IL_01C4: ldc.r4 0.01
IL_01C9: sub
IL_01CA: ldloc.s 7 (LightSystem)
IL_01CC: callvirt System.Single LightSystem::get_DayLightIntensity()
IL_01D1: call static System.Single MathUtils::SmoothStep(System.Single edge0,
System.Single edge1, System.Single x)
IL_01D6: stfld System.Single UnityEngine.Vector4::z
IL_01DB: ldarg.1
IL_01DC: ldfld BlinkType PropInfo::m_illuminationBlinkType
IL_01E1: brfalse => Label14
IL_01E6: ldarg.1
IL_01E7: ldfld BlinkType PropInfo::m_illuminationBlinkType
IL_01EC: call static UnityEngine.Vector4
LightEffect::GetBlinkVector(BlinkType type)
IL_01F1: stloc.s 9 (UnityEngine.Vector4)
IL_01F3: ldloc.s 6 (System.Single)
IL_01F5: ldc.r4 3.71
IL_01FA: mul
IL_01FB: call static SimulationManager
ColossalFramework.Singleton`1<SimulationManager>::get_instance()
IL_0200: ldfld System.Single SimulationManager::m_simulationTimer
IL_0205: ldloca.s 9 (UnityEngine.Vector4)
IL_0207: ldfld System.Single UnityEngine.Vector4::w
IL_020C: div
IL_020D: add
IL_020E: stloc.s 10 (System.Single)
IL_0210: ldloc.s 10 (System.Single)
IL_0212: ldloc.s 10 (System.Single)
IL_0214: call static System.Single UnityEngine.Mathf::Floor(System.Single f)
IL_0219: sub
IL_021A: ldloca.s 9 (UnityEngine.Vector4)
IL_021C: ldfld System.Single UnityEngine.Vector4::w
IL_0221: mul
IL_0222: stloc.s 10 (System.Single)
IL_0224: ldloca.s 9 (UnityEngine.Vector4)
IL_0226: ldfld System.Single UnityEngine.Vector4::x
IL_022B: ldloca.s 9 (UnityEngine.Vector4)
IL_022D: ldfld System.Single UnityEngine.Vector4::y
IL_0232: ldloc.s 10 (System.Single)
IL_0234: call static System.Single MathUtils::SmoothStep(System.Single edge0,
System.Single edge1, System.Single x)
IL_0239: stloc.s 11 (System.Single)
IL_023B: ldloca.s 9 (UnityEngine.Vector4)
IL_023D: ldfld System.Single UnityEngine.Vector4::w
IL_0242: ldloca.s 9 (UnityEngine.Vector4)
IL_0244: ldfld System.Single UnityEngine.Vector4::z
IL_0249: ldloc.s 10 (System.Single)
IL_024B: call static System.Single MathUtils::SmoothStep(System.Single edge0,
System.Single edge1, System.Single x)
IL_0250: stloc.s 12 (System.Single)
IL_0252: ldarga.s 7
IL_0254: dup
IL_0255: ldfld System.Single UnityEngine.Vector4::z
IL_025A: ldc.r4 1
IL_025F: ldloc.s 11 (System.Single)
IL_0261: ldloc.s 12 (System.Single)
IL_0263: mul
IL_0264: sub
IL_0265: mul
IL_0266: stfld System.Single UnityEngine.Vector4::z
IL_026B: Label14
IL_026B: br => Label15
IL_0270: Label13
IL_0270: ldarga.s 7
IL_0272: ldc.r4 1
IL_0277: stfld System.Single UnityEngine.Vector4::z
IL_027C: Label8
IL_027C: Label11
IL_027C: Label15
IL_027C: ldarg.0
IL_027D: brfalse => Label16
IL_0282: ldarg.0
IL_0283: ldarg.3
IL_0284: ldarg.1
IL_0285: ldfld System.Single PropInfo::m_lodRenderDistance
IL_028A: callvirt System.Boolean
CameraInfo::CheckRenderDistance(UnityEngine.Vector3 point, System.Single
maxDistance)
IL_028F: brfalse => Label17
IL_0294: Label16
IL_0294: ldloca.s 13 (UnityEngine.Matrix4x4)
IL_0296: initobj UnityEngine.Matrix4x4
IL_029C: ldloca.s 13 (UnityEngine.Matrix4x4)
IL_029E: ldarg.3
IL_029F: ldarg.s 5
IL_02A1: ldc.r4 57.29578
IL_02A6: mul
IL_02A7: call static UnityEngine.Vector3 UnityEngine.Vector3::get_down()
IL_02AC: call static UnityEngine.Quaternion
UnityEngine.Quaternion::AngleAxis(System.Single angle, UnityEngine.Vector3 axis)
IL_02B1: ldarg.s 4
IL_02B3: ldarg.s 4
IL_02B5: ldarg.s 4
IL_02B7: newobj System.Void UnityEngine.Vector3::.ctor(System.Single x,
System.Single y, System.Single z)
IL_02BC: call System.Void UnityEngine.Matrix4x4::SetTRS(UnityEngine.Vector3
pos, UnityEngine.Quaternion q, UnityEngine.Vector3 s)
IL_02C1: call static PropManager
ColossalFramework.Singleton`1<PropManager>::get_instance()
IL_02C6: stloc.s 14 (PropManager)
IL_02C8: ldloc.s 14 (PropManager)
IL_02CA: ldfld UnityEngine.MaterialPropertyBlock PropManager::m_materialBlock
IL_02CF: stloc.s 15 (UnityEngine.MaterialPropertyBlock)
IL_02D1: ldloc.s 15 (UnityEngine.MaterialPropertyBlock)
IL_02D3: callvirt System.Void UnityEngine.MaterialPropertyBlock::Clear()
IL_02D8: ldloc.s 15 (UnityEngine.MaterialPropertyBlock)
IL_02DA: ldloc.s 14 (PropManager)
IL_02DC: ldfld System.Int32 PropManager::ID_Color
IL_02E1: ldarg.s 6
IL_02E3: callvirt System.Void
UnityEngine.MaterialPropertyBlock::SetColor(System.Int32 nameID, UnityEngine.Color
value)
IL_02E8: ldloc.s 15 (UnityEngine.MaterialPropertyBlock)
IL_02EA: ldloc.s 14 (PropManager)
IL_02EC: ldfld System.Int32 PropManager::ID_ObjectIndex
IL_02F1: ldarg.s 7
IL_02F3: callvirt System.Void
UnityEngine.MaterialPropertyBlock::SetVector(System.Int32 nameID,
UnityEngine.Vector4 value)
IL_02F8: ldarg.1
IL_02F9: ldfld UnityEngine.Vector4[] PropInfo::m_rollLocation
IL_02FE: brfalse => Label18
IL_0303: ldarg.1
IL_0304: ldfld UnityEngine.Material PropInfo::m_material
IL_0309: ldloc.s 14 (PropManager)
IL_030B: ldfld System.Int32 PropManager::ID_RollLocation
IL_0310: ldarg.1
IL_0311: ldfld UnityEngine.Vector4[] PropInfo::m_rollLocation
IL_0316: callvirt System.Void UnityEngine.Material::SetVectorArray(System.Int32
nameID, UnityEngine.Vector4[] values)
IL_031B: ldarg.1
IL_031C: ldfld UnityEngine.Material PropInfo::m_material
IL_0321: ldloc.s 14 (PropManager)
IL_0323: ldfld System.Int32 PropManager::ID_RollParams
IL_0328: ldarg.1
IL_0329: ldfld UnityEngine.Vector4[] PropInfo::m_rollParams
IL_032E: callvirt System.Void UnityEngine.Material::SetVectorArray(System.Int32
nameID, UnityEngine.Vector4[] values)
IL_0333: Label18
IL_0333: ldloc.s 14 (PropManager)
IL_0335: ldflda DrawCallData SimulationManagerBase`2<PropManager,
PropProperties>::m_drawCallData
IL_033A: dup
IL_033B: ldfld System.Int32 DrawCallData::m_defaultCalls
IL_0340: ldc.i4.1
IL_0341: add
IL_0342: stfld System.Int32 DrawCallData::m_defaultCalls
IL_0347: ldarg.1
IL_0348: ldfld UnityEngine.Mesh PropInfo::m_mesh
IL_034D: ldloc.s 13 (UnityEngine.Matrix4x4)
IL_034F: ldarg.1
IL_0350: ldfld UnityEngine.Material PropInfo::m_material
IL_0355: ldarg.1
IL_0356: ldfld System.Int32 PrefabInfo::m_prefabDataLayer
IL_035B: ldnull
IL_035C: ldc.i4.0
IL_035D: ldloc.s 15 (UnityEngine.MaterialPropertyBlock)
IL_035F: call static System.Void
UnityEngine.Graphics::DrawMesh(UnityEngine.Mesh mesh, UnityEngine.Matrix4x4 matrix,
UnityEngine.Material material, System.Int32 layer, UnityEngine.Camera camera,
System.Int32 submeshIndex, UnityEngine.MaterialPropertyBlock properties)
IL_0364: br => Label19
IL_0369: Label17
IL_0369: ldarg.1
IL_036A: ldfld UnityEngine.Material PropInfo::m_lodMaterialCombined
IL_036F: ldnull
IL_0370: call static System.Boolean
UnityEngine.Object::op_Equality(UnityEngine.Object x, UnityEngine.Object y)
IL_0375: brfalse => Label20
IL_037A: ldloca.s 16 (UnityEngine.Matrix4x4)
IL_037C: initobj UnityEngine.Matrix4x4
IL_0382: ldloca.s 16 (UnityEngine.Matrix4x4)
IL_0384: ldarg.3
IL_0385: ldarg.s 5
IL_0387: ldc.r4 57.29578
IL_038C: mul
IL_038D: call static UnityEngine.Vector3 UnityEngine.Vector3::get_down()
IL_0392: call static UnityEngine.Quaternion
UnityEngine.Quaternion::AngleAxis(System.Single angle, UnityEngine.Vector3 axis)
IL_0397: ldarg.s 4
IL_0399: ldarg.s 4
IL_039B: ldarg.s 4
IL_039D: newobj System.Void UnityEngine.Vector3::.ctor(System.Single x,
System.Single y, System.Single z)
IL_03A2: call System.Void UnityEngine.Matrix4x4::SetTRS(UnityEngine.Vector3
pos, UnityEngine.Quaternion q, UnityEngine.Vector3 s)
IL_03A7: call static PropManager
ColossalFramework.Singleton`1<PropManager>::get_instance()
IL_03AC: stloc.s 17 (PropManager)
IL_03AE: ldloc.s 17 (PropManager)
IL_03B0: ldfld UnityEngine.MaterialPropertyBlock PropManager::m_materialBlock
IL_03B5: stloc.s 18 (UnityEngine.MaterialPropertyBlock)
IL_03B7: ldloc.s 18 (UnityEngine.MaterialPropertyBlock)
IL_03B9: callvirt System.Void UnityEngine.MaterialPropertyBlock::Clear()
IL_03BE: ldloc.s 18 (UnityEngine.MaterialPropertyBlock)
IL_03C0: ldloc.s 17 (PropManager)
IL_03C2: ldfld System.Int32 PropManager::ID_Color
IL_03C7: ldarg.s 6
IL_03C9: callvirt System.Void
UnityEngine.MaterialPropertyBlock::SetColor(System.Int32 nameID, UnityEngine.Color
value)
IL_03CE: ldloc.s 18 (UnityEngine.MaterialPropertyBlock)
IL_03D0: ldloc.s 17 (PropManager)
IL_03D2: ldfld System.Int32 PropManager::ID_ObjectIndex
IL_03D7: ldarg.s 7
IL_03D9: callvirt System.Void
UnityEngine.MaterialPropertyBlock::SetVector(System.Int32 nameID,
UnityEngine.Vector4 value)
IL_03DE: ldarg.1
IL_03DF: ldfld UnityEngine.Vector4[] PropInfo::m_rollLocation
IL_03E4: brfalse => Label21
IL_03E9: ldarg.1
IL_03EA: ldfld UnityEngine.Material PropInfo::m_material
IL_03EF: ldloc.s 17 (PropManager)
IL_03F1: ldfld System.Int32 PropManager::ID_RollLocation
IL_03F6: ldarg.1
IL_03F7: ldfld UnityEngine.Vector4[] PropInfo::m_rollLocation
IL_03FC: callvirt System.Void UnityEngine.Material::SetVectorArray(System.Int32
nameID, UnityEngine.Vector4[] values)
IL_0401: ldarg.1
IL_0402: ldfld UnityEngine.Material PropInfo::m_material
IL_0407: ldloc.s 17 (PropManager)
IL_0409: ldfld System.Int32 PropManager::ID_RollParams
IL_040E: ldarg.1
IL_040F: ldfld UnityEngine.Vector4[] PropInfo::m_rollParams
IL_0414: callvirt System.Void UnityEngine.Material::SetVectorArray(System.Int32
nameID, UnityEngine.Vector4[] values)
IL_0419: Label21
IL_0419: ldloc.s 17 (PropManager)
IL_041B: ldflda DrawCallData SimulationManagerBase`2<PropManager,
PropProperties>::m_drawCallData
IL_0420: dup
IL_0421: ldfld System.Int32 DrawCallData::m_defaultCalls
IL_0426: ldc.i4.1
IL_0427: add
IL_0428: stfld System.Int32 DrawCallData::m_defaultCalls
IL_042D: ldarg.1
IL_042E: ldfld UnityEngine.Mesh PropInfo::m_lodMesh
IL_0433: ldloc.s 16 (UnityEngine.Matrix4x4)
IL_0435: ldarg.1
IL_0436: ldfld UnityEngine.Material PropInfo::m_lodMaterial
IL_043B: ldarg.1
IL_043C: ldfld System.Int32 PrefabInfo::m_prefabDataLayer
IL_0441: ldnull
IL_0442: ldc.i4.0
IL_0443: ldloc.s 18 (UnityEngine.MaterialPropertyBlock)
IL_0445: call static System.Void
UnityEngine.Graphics::DrawMesh(UnityEngine.Mesh mesh, UnityEngine.Matrix4x4 matrix,
UnityEngine.Material material, System.Int32 layer, UnityEngine.Camera camera,
System.Int32 submeshIndex, UnityEngine.MaterialPropertyBlock properties)
IL_044A: br => Label22
IL_044F: Label20
IL_044F: ldarga.s 7
IL_0451: ldarg.s 4
IL_0453: stfld System.Single UnityEngine.Vector4::w
IL_0458: ldarg.1
IL_0459: ldfld UnityEngine.Vector4[] PropInfo::m_lodLocations
IL_045E: ldarg.1
IL_045F: ldfld System.Int32 PropInfo::m_lodCount
IL_0464: ldelema UnityEngine.Vector4
IL_0469: ldarga.s 3
IL_046B: ldfld System.Single UnityEngine.Vector3::x
IL_0470: ldarga.s 3
IL_0472: ldfld System.Single UnityEngine.Vector3::y
IL_0477: ldarga.s 3
IL_0479: ldfld System.Single UnityEngine.Vector3::z
IL_047E: ldarg.s 5
IL_0480: newobj System.Void UnityEngine.Vector4::.ctor(System.Single x,
System.Single y, System.Single z, System.Single w)
IL_0485: stobj UnityEngine.Vector4
IL_048A: ldarg.1
IL_048B: ldfld UnityEngine.Vector4[] PropInfo::m_lodObjectIndices
IL_0490: ldarg.1
IL_0491: ldfld System.Int32 PropInfo::m_lodCount
IL_0496: ldelema UnityEngine.Vector4
IL_049B: ldarg.s 7
IL_049D: stobj UnityEngine.Vector4
IL_04A2: ldarg.1
IL_04A3: ldfld UnityEngine.Vector4[] PropInfo::m_lodColors
IL_04A8: ldarg.1
IL_04A9: ldfld System.Int32 PropInfo::m_lodCount
IL_04AE: ldelema UnityEngine.Vector4
IL_04B3: ldarga.s 6
IL_04B5: call UnityEngine.Color UnityEngine.Color::get_linear()
IL_04BA: call static UnityEngine.Vector4
UnityEngine.Color::op_Implicit(UnityEngine.Color c)
IL_04BF: stobj UnityEngine.Vector4
IL_04C4: ldarg.1
IL_04C5: ldarg.1
IL_04C6: ldfld UnityEngine.Vector3 PropInfo::m_lodMin
IL_04CB: ldarg.3
IL_04CC: call static UnityEngine.Vector3
UnityEngine.Vector3::Min(UnityEngine.Vector3 lhs, UnityEngine.Vector3 rhs)
IL_04D1: stfld UnityEngine.Vector3 PropInfo::m_lodMin
IL_04D6: ldarg.1
IL_04D7: ldarg.1
IL_04D8: ldfld UnityEngine.Vector3 PropInfo::m_lodMax
IL_04DD: ldarg.3
IL_04DE: call static UnityEngine.Vector3
UnityEngine.Vector3::Max(UnityEngine.Vector3 lhs, UnityEngine.Vector3 rhs)
IL_04E3: stfld UnityEngine.Vector3 PropInfo::m_lodMax
IL_04E8: ldarg.1
IL_04E9: dup
IL_04EA: ldfld System.Int32 PropInfo::m_lodCount
IL_04EF: ldc.i4.1
IL_04F0: add
IL_04F1: dup
IL_04F2: stloc.s 19 (System.Int32)
IL_04F4: stfld System.Int32 PropInfo::m_lodCount
IL_04F9: ldloc.s 19 (System.Int32)
IL_04FB: ldarg.1
IL_04FC: ldfld UnityEngine.Vector4[] PropInfo::m_lodLocations
IL_0501: ldlen
IL_0502: conv.i4
IL_0503: bne.un => Label23
IL_0508: ldarg.0
IL_0509: ldarg.1
IL_050A: call static System.Void PropInstance::RenderLod(CameraInfo
cameraInfo, PropInfo info)
IL_050F: // end original
IL_050F: Label0
IL_050F: Label6
IL_050F: Label7
IL_050F: Label19
IL_050F: Label22
IL_050F: Label23
IL_050F: ret
DONE

### Patch: virtual System.Void LightEffect::PopulateGroupData(System.Int32 layer,


InstanceID id, UnityEngine.Vector3 pos, UnityEngine.Vector3 dir, 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
LightEffect::LightEffect.PopulateGroupData_Patch0(LightEffect this, System.Int32
layer, InstanceID id, UnityEngine.Vector3 pos, UnityEngine.Vector3 dir,
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.Boolean
IL_0000: Local var 1: UnityEngine.Vector3
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.Quaternion
IL_0000: Local var 7: UnityEngine.Vector4
IL_0000: Local var 8: UnityEngine.Vector2
IL_0000: Local var 9: ColossalFramework.Math.Randomizer
IL_0000: Local var 10: UnityEngine.Vector2
IL_0000: Local var 11: UnityEngine.Vector2
IL_0000: Local var 12: UnityEngine.Vector2
IL_0000: Local var 13: System.UInt16
IL_0000: Local var 14: UnityEngine.Vector3
IL_0000: Local var 15: UnityEngine.Color
IL_0000: Local var 16: UnityEngine.Color
IL_0000: Local var 17: System.Single
IL_0000: Local var 18: System.Single
IL_0000: Local var 19: System.Int32
IL_0000: // start original
IL_0000: ldarg.1
IL_0001: ldarg.0
IL_0002: ldfld System.Int32 LightEffect::m_groupLayer
IL_0007: beq => Label0
IL_000C: ldarg.1
IL_000D: ldarg.0
IL_000E: ldfld System.Int32 LightEffect::m_groupLayerFloating
IL_0013: bne.un => Label1
IL_0018: Label0
IL_0018: ldarg.1
IL_0019: ldarg.0
IL_001A: ldfld System.Int32 LightEffect::m_groupLayerFloating
IL_001F: ceq
IL_0021: stloc.0
IL_0022: ldloca.s 1 (UnityEngine.Vector3)
IL_0024: ldarg.0
IL_0025: ldfld System.Single LightEffect::m_lightRange
IL_002A: ldarg.0
IL_002B: ldfld System.Single LightEffect::m_lightRange
IL_0030: ldarg.0
IL_0031: ldfld System.Single LightEffect::m_lightRange
IL_0036: call System.Void UnityEngine.Vector3::.ctor(System.Single x,
System.Single y, System.Single z)
IL_003B: ldarg.3
IL_003C: ldloc.1
IL_003D: call static UnityEngine.Vector3
UnityEngine.Vector3::op_Subtraction(UnityEngine.Vector3 a, UnityEngine.Vector3 b)
IL_0042: stloc.2
IL_0043: ldarg.3
IL_0044: ldloc.1
IL_0045: call static UnityEngine.Vector3
UnityEngine.Vector3::op_Addition(UnityEngine.Vector3 a, UnityEngine.Vector3 b)
IL_004A: stloc.3
IL_004B: ldarg.s 9
IL_004D: ldarg.s 9
IL_004F: ldobj UnityEngine.Vector3
IL_0054: ldloc.2
IL_0055: call static UnityEngine.Vector3
UnityEngine.Vector3::Min(UnityEngine.Vector3 lhs, UnityEngine.Vector3 rhs)
IL_005A: stobj UnityEngine.Vector3
IL_005F: ldarg.s 10
IL_0061: ldarg.s 10
IL_0063: ldobj UnityEngine.Vector3
IL_0068: ldloc.3
IL_0069: call static UnityEngine.Vector3
UnityEngine.Vector3::Max(UnityEngine.Vector3 lhs, UnityEngine.Vector3 rhs)
IL_006E: stobj UnityEngine.Vector3
IL_0073: ldarg.3
IL_0074: ldarg.s 7
IL_0076: call static UnityEngine.Vector3
UnityEngine.Vector3::op_Subtraction(UnityEngine.Vector3 a, UnityEngine.Vector3 b)
IL_007B: stloc.s 4 (UnityEngine.Vector3)
IL_007D: ldarg.s 11
IL_007F: ldarg.s 11
IL_0081: ldind.r4
IL_0082: ldc.r4 30000
IL_0087: call static System.Single UnityEngine.Mathf::Max(System.Single a,
System.Single b)
IL_008C: stind.r4
IL_008D: ldarg.0
IL_008E: ldfld UnityEngine.LightType LightEffect::m_lightType
IL_0093: brtrue => Label2
IL_0098: ldarg.s 4
IL_009A: call static UnityEngine.Quaternion
UnityEngine.Quaternion::LookRotation(UnityEngine.Vector3 forward)
IL_009F: stloc.s 6 (UnityEngine.Quaternion)
IL_00A1: ldloc.s 6 (UnityEngine.Quaternion)
IL_00A3: ldarg.0
IL_00A4: ldfld UnityEngine.Quaternion LightEffect::m_lightRotation
IL_00A9: call static UnityEngine.Vector3 UnityEngine.Vector3::get_forward()
IL_00AE: call static UnityEngine.Vector3
UnityEngine.Quaternion::op_Multiply(UnityEngine.Quaternion rotation,
UnityEngine.Vector3 point)
IL_00B3: call static UnityEngine.Vector3
UnityEngine.Quaternion::op_Multiply(UnityEngine.Quaternion rotation,
UnityEngine.Vector3 point)
IL_00B8: stloc.s 5 (UnityEngine.Vector3)
IL_00BA: br => Label3
IL_00BF: Label2
IL_00BF: call static UnityEngine.Vector3 UnityEngine.Vector3::get_forward()
IL_00C4: stloc.s 5 (UnityEngine.Vector3)
IL_00C6: Label3
IL_00C6: ldloca.s 7 (UnityEngine.Vector4)
IL_00C8: ldloca.s 5 (UnityEngine.Vector3)
IL_00CA: ldfld System.Single UnityEngine.Vector3::x
IL_00CF: ldloca.s 5 (UnityEngine.Vector3)
IL_00D1: ldfld System.Single UnityEngine.Vector3::y
IL_00D6: ldloca.s 5 (UnityEngine.Vector3)
IL_00D8: ldfld System.Single UnityEngine.Vector3::z
IL_00DD: ldc.r4 100000
IL_00E2: call System.Void UnityEngine.Vector4::.ctor(System.Single x,
System.Single y, System.Single z, System.Single w)
IL_00E7: ldarg.0
IL_00E8: ldfld UnityEngine.LightType LightEffect::m_lightType
IL_00ED: brtrue => Label4
IL_00F2: ldloca.s 7 (UnityEngine.Vector4)
IL_00F4: ldc.r4 0.01745329
IL_00F9: ldarg.0
IL_00FA: ldfld System.Single LightEffect::m_lightSpotAngle
IL_00FF: mul
IL_0100: ldc.r4 0.5
IL_0105: mul
IL_0106: call static System.Single UnityEngine.Mathf::Cos(System.Single f)
IL_010B: neg
IL_010C: stfld System.Single UnityEngine.Vector4::w
IL_0111: Label4
IL_0111: ldloca.s 8 (UnityEngine.Vector2)
IL_0113: ldc.r4 1
IL_0118: ldarg.0
IL_0119: ldfld System.Single LightEffect::m_lightRange
IL_011E: ldarg.0
IL_011F: ldfld System.Single LightEffect::m_lightRange
IL_0124: mul
IL_0125: div
IL_0126: ldarg.0
IL_0127: ldfld System.Single LightEffect::m_lightIntensity
IL_012C: call System.Void UnityEngine.Vector2::.ctor(System.Single x,
System.Single y)
IL_0131: ldloca.s 9 (ColossalFramework.Math.Randomizer)
IL_0133: ldarga.s 2
IL_0135: call System.UInt32 InstanceID::get_Index()
IL_013A: call System.Void
ColossalFramework.Math.Randomizer::.ctor(System.UInt32 _seed)
IL_013F: ldloca.s 10 (UnityEngine.Vector2)
IL_0141: ldarg.0
IL_0142: ldflda UnityEngine.Vector2 LightEffect::m_offRange
IL_0147: ldfld System.Single UnityEngine.Vector2::x
IL_014C: ldloca.s 9 (ColossalFramework.Math.Randomizer)
IL_014E: ldc.i4 100000
IL_0153: call System.Int32
ColossalFramework.Math.Randomizer::Int32(System.UInt32 range)
IL_0158: conv.r4
IL_0159: ldc.r4 1E-05
IL_015E: mul
IL_015F: ldarg.0
IL_0160: ldflda UnityEngine.Vector2 LightEffect::m_offRange
IL_0165: ldfld System.Single UnityEngine.Vector2::y
IL_016A: ldarg.0
IL_016B: ldflda UnityEngine.Vector2 LightEffect::m_offRange
IL_0170: ldfld System.Single UnityEngine.Vector2::x
IL_0175: sub
IL_0176: mul
IL_0177: add
IL_0178: stfld System.Single UnityEngine.Vector2::x
IL_017D: ldloca.s 10 (UnityEngine.Vector2)
IL_017F: ldarg.0
IL_0180: ldfld BlinkType LightEffect::m_blinkType
IL_0185: conv.r4
IL_0186: stfld System.Single UnityEngine.Vector2::y
IL_018B: ldarg.2
IL_018C: call static System.UInt16 EffectInfo::GetBuilding(InstanceID id)
IL_0191: stloc.s 13 (System.UInt16)
IL_0193: ldloc.s 13 (System.UInt16)
IL_0195: brfalse => Label5
IL_019A: ldloc.s 13 (System.UInt16)
IL_019C: call static UnityEngine.Vector4
RenderManager::GetColorLocation(System.UInt32 instanceHolder)
IL_01A1: call static UnityEngine.Vector2
UnityEngine.Vector4::op_Implicit(UnityEngine.Vector4 v)
IL_01A6: stloc.s 11 (UnityEngine.Vector2)
IL_01A8: ldloc.0
IL_01A9: brfalse => Label6
IL_01AE: call static BuildingManager
ColossalFramework.Singleton`1<BuildingManager>::get_instance()
IL_01B3: ldfld Array16`1<Building> BuildingManager::m_buildings
IL_01B8: ldfld Building[] Array16`1<Building>::m_buffer
IL_01BD: ldloc.s 13 (System.UInt16)
IL_01BF: ldelema Building
IL_01C4: call UnityEngine.Vector3 Building::CalculateMeshPosition()
IL_01C9: stloc.s 14 (UnityEngine.Vector3)
IL_01CB: ldloc.s 14 (UnityEngine.Vector3)
IL_01CD: call static UnityEngine.Vector2
ColossalFramework.Math.VectorUtils::XZ(UnityEngine.Vector3 v)
IL_01D2: stloc.s 12 (UnityEngine.Vector2)
IL_01D4: ldarga.s 3
IL_01D6: dup
IL_01D7: ldfld System.Single UnityEngine.Vector3::y
IL_01DC: ldloca.s 14 (UnityEngine.Vector3)
IL_01DE: ldfld System.Single UnityEngine.Vector3::y
IL_01E3: sub
IL_01E4: stfld System.Single UnityEngine.Vector3::y
IL_01E9: ldloca.s 4 (UnityEngine.Vector3)
IL_01EB: dup
IL_01EC: ldfld System.Single UnityEngine.Vector3::y
IL_01F1: ldloca.s 14 (UnityEngine.Vector3)
IL_01F3: ldfld System.Single UnityEngine.Vector3::y
IL_01F8: sub
IL_01F9: stfld System.Single UnityEngine.Vector3::y
IL_01FE: br => Label7
IL_0203: Label6
IL_0203: call static UnityEngine.Vector2 UnityEngine.Vector2::get_zero()
IL_0208: stloc.s 12 (UnityEngine.Vector2)
IL_020A: Label7
IL_020A: br => Label8
IL_020F: Label5
IL_020F: ldsfld UnityEngine.Vector4 RenderManager::DefaultColorLocation
IL_0214: call static UnityEngine.Vector2
UnityEngine.Vector4::op_Implicit(UnityEngine.Vector4 v)
IL_0219: stloc.s 11 (UnityEngine.Vector2)
IL_021B: call static UnityEngine.Vector2 UnityEngine.Vector2::get_zero()
IL_0220: stloc.s 12 (UnityEngine.Vector2)
IL_0222: Label8
IL_0222: ldarg.0
IL_0223: ldfld UnityEngine.Color LightEffect::m_lightColor
IL_0228: stloc.s 15 (UnityEngine.Color)
IL_022A: ldarg.0
IL_022B: ldfld UnityEngine.Color[] LightEffect::m_variationColors
IL_0230: brfalse => Label9
IL_0235: ldarg.0
IL_0236: ldfld UnityEngine.Color[] LightEffect::m_variationColors
IL_023B: ldlen
IL_023C: conv.i4
IL_023D: brfalse => Label10
IL_0242: ldarg.0
IL_0243: ldfld UnityEngine.Color[] LightEffect::m_variationColors
IL_0248: ldloca.s 9 (ColossalFramework.Math.Randomizer)
IL_024A: ldarg.0
IL_024B: ldfld UnityEngine.Color[] LightEffect::m_variationColors
IL_0250: ldlen
IL_0251: conv.i4
IL_0252: call System.Int32
ColossalFramework.Math.Randomizer::Int32(System.UInt32 range)
IL_0257: ldelema UnityEngine.Color
IL_025C: ldobj UnityEngine.Color
IL_0261: stloc.s 16 (UnityEngine.Color)
IL_0263: ldloc.s 15 (UnityEngine.Color)
IL_0265: ldloc.s 16 (UnityEngine.Color)
IL_0267: ldloca.s 9 (ColossalFramework.Math.Randomizer)
IL_0269: ldc.i4 1000
IL_026E: call System.Int32
ColossalFramework.Math.Randomizer::Int32(System.UInt32 range)
IL_0273: conv.r4
IL_0274: ldc.r4 0.001
IL_0279: mul
IL_027A: call static UnityEngine.Color
UnityEngine.Color::Lerp(UnityEngine.Color a, UnityEngine.Color b, System.Single t)
IL_027F: stloc.s 15 (UnityEngine.Color)
IL_0281: Label9
IL_0281: Label10
IL_0281: ldloca.s 15 (UnityEngine.Color)
IL_0283: call UnityEngine.Color UnityEngine.Color::get_linear()
IL_0288: stloc.s 15 (UnityEngine.Color)
IL_028A: ldloca.s 15 (UnityEngine.Color)
IL_028C: ldarg.0
IL_028D: ldfld UnityEngine.LightType LightEffect::m_lightType
IL_0292: brtrue => Label11
IL_0297: ldarg.0
IL_0298: ldfld System.Single LightEffect::m_spotLeaking
IL_029D: br => Label12
IL_02A2: Label11
IL_02A2: ldc.r4 0
IL_02A7: Label12
IL_02A7: stfld System.Single UnityEngine.Color::a
IL_02AC: ldarg.0
IL_02AD: ldfld System.Single LightEffect::m_lightRange
IL_02B2: ldc.r4 0.5235988
IL_02B7: call static System.Single UnityEngine.Mathf::Cos(System.Single f)
IL_02BC: div
IL_02BD: stloc.s 17 (System.Single)
IL_02BF: ldloc.s 17 (System.Single)
IL_02C1: ldc.r4 0.5
IL_02C6: mul
IL_02C7: stloc.s 18 (System.Single)
IL_02C9: ldarg.s 8
IL_02CB: ldfld UnityEngine.Vector3[] MeshData::m_vertices
IL_02D0: ldarg.s 5
IL_02D2: ldind.i4
IL_02D3: ldelema UnityEngine.Vector3
IL_02D8: ldloca.s 4 (UnityEngine.Vector3)
IL_02DA: ldfld System.Single UnityEngine.Vector3::x
IL_02DF: ldloc.s 18 (System.Single)
IL_02E1: sub
IL_02E2: ldloca.s 4 (UnityEngine.Vector3)
IL_02E4: ldfld System.Single UnityEngine.Vector3::y
IL_02E9: ldarg.0
IL_02EA: ldfld System.Single LightEffect::m_lightRange
IL_02EF: add
IL_02F0: ldloca.s 4 (UnityEngine.Vector3)
IL_02F2: ldfld System.Single UnityEngine.Vector3::z
IL_02F7: ldarg.0
IL_02F8: ldfld System.Single LightEffect::m_lightRange
IL_02FD: add
IL_02FE: newobj System.Void UnityEngine.Vector3::.ctor(System.Single x,
System.Single y, System.Single z)
IL_0303: stobj UnityEngine.Vector3
IL_0308: ldarg.s 8
IL_030A: ldfld UnityEngine.Vector3[] MeshData::m_normals
IL_030F: ldarg.s 5
IL_0311: ldind.i4
IL_0312: ldelema UnityEngine.Vector3
IL_0317: ldarg.3
IL_0318: stobj UnityEngine.Vector3
IL_031D: ldarg.s 8
IL_031F: ldfld UnityEngine.Vector4[] MeshData::m_tangents
IL_0324: ldarg.s 5
IL_0326: ldind.i4
IL_0327: ldelema UnityEngine.Vector4
IL_032C: ldloc.s 7 (UnityEngine.Vector4)
IL_032E: stobj UnityEngine.Vector4
IL_0333: ldarg.s 8
IL_0335: ldfld UnityEngine.Vector2[] MeshData::m_uvs
IL_033A: ldarg.s 5
IL_033C: ldind.i4
IL_033D: ldelema UnityEngine.Vector2
IL_0342: ldloc.s 8 (UnityEngine.Vector2)
IL_0344: stobj UnityEngine.Vector2
IL_0349: ldarg.s 8
IL_034B: ldfld UnityEngine.Vector2[] MeshData::m_uvs2
IL_0350: ldarg.s 5
IL_0352: ldind.i4
IL_0353: ldelema UnityEngine.Vector2
IL_0358: ldloc.s 10 (UnityEngine.Vector2)
IL_035A: stobj UnityEngine.Vector2
IL_035F: ldarg.s 8
IL_0361: ldfld UnityEngine.Vector2[] MeshData::m_uvs3
IL_0366: ldarg.s 5
IL_0368: ldind.i4
IL_0369: ldelema UnityEngine.Vector2
IL_036E: ldloc.s 11 (UnityEngine.Vector2)
IL_0370: stobj UnityEngine.Vector2
IL_0375: ldloc.0
IL_0376: brfalse => Label13
IL_037B: ldarg.s 8
IL_037D: ldfld UnityEngine.Vector2[] MeshData::m_uvs4
IL_0382: ldarg.s 5
IL_0384: ldind.i4
IL_0385: ldelema UnityEngine.Vector2
IL_038A: ldloc.s 12 (UnityEngine.Vector2)
IL_038C: stobj UnityEngine.Vector2
IL_0391: Label13
IL_0391: ldarg.s 8
IL_0393: ldfld UnityEngine.Color32[] MeshData::m_colors
IL_0398: ldarg.s 5
IL_039A: ldind.i4
IL_039B: ldelema UnityEngine.Color32
IL_03A0: ldloc.s 15 (UnityEngine.Color)
IL_03A2: call static UnityEngine.Color32
UnityEngine.Color32::op_Implicit(UnityEngine.Color c)
IL_03A7: stobj UnityEngine.Color32
IL_03AC: ldarg.s 5
IL_03AE: ldarg.s 5
IL_03B0: ldind.i4
IL_03B1: ldc.i4.1
IL_03B2: add
IL_03B3: stind.i4
IL_03B4: ldarg.s 8
IL_03B6: ldfld UnityEngine.Vector3[] MeshData::m_vertices
IL_03BB: ldarg.s 5
IL_03BD: ldind.i4
IL_03BE: ldelema UnityEngine.Vector3
IL_03C3: ldloca.s 4 (UnityEngine.Vector3)
IL_03C5: ldfld System.Single UnityEngine.Vector3::x
IL_03CA: ldloc.s 18 (System.Single)
IL_03CC: add
IL_03CD: ldloca.s 4 (UnityEngine.Vector3)
IL_03CF: ldfld System.Single UnityEngine.Vector3::y
IL_03D4: ldarg.0
IL_03D5: ldfld System.Single LightEffect::m_lightRange
IL_03DA: add
IL_03DB: ldloca.s 4 (UnityEngine.Vector3)
IL_03DD: ldfld System.Single UnityEngine.Vector3::z
IL_03E2: ldarg.0
IL_03E3: ldfld System.Single LightEffect::m_lightRange
IL_03E8: add
IL_03E9: newobj System.Void UnityEngine.Vector3::.ctor(System.Single x,
System.Single y, System.Single z)
IL_03EE: stobj UnityEngine.Vector3
IL_03F3: ldarg.s 8
IL_03F5: ldfld UnityEngine.Vector3[] MeshData::m_normals
IL_03FA: ldarg.s 5
IL_03FC: ldind.i4
IL_03FD: ldelema UnityEngine.Vector3
IL_0402: ldarg.3
IL_0403: stobj UnityEngine.Vector3
IL_0408: ldarg.s 8
IL_040A: ldfld UnityEngine.Vector4[] MeshData::m_tangents
IL_040F: ldarg.s 5
IL_0411: ldind.i4
IL_0412: ldelema UnityEngine.Vector4
IL_0417: ldloc.s 7 (UnityEngine.Vector4)
IL_0419: stobj UnityEngine.Vector4
IL_041E: ldarg.s 8
IL_0420: ldfld UnityEngine.Vector2[] MeshData::m_uvs
IL_0425: ldarg.s 5
IL_0427: ldind.i4
IL_0428: ldelema UnityEngine.Vector2
IL_042D: ldloc.s 8 (UnityEngine.Vector2)
IL_042F: stobj UnityEngine.Vector2
IL_0434: ldarg.s 8
IL_0436: ldfld UnityEngine.Vector2[] MeshData::m_uvs2
IL_043B: ldarg.s 5
IL_043D: ldind.i4
IL_043E: ldelema UnityEngine.Vector2
IL_0443: ldloc.s 10 (UnityEngine.Vector2)
IL_0445: stobj UnityEngine.Vector2
IL_044A: ldarg.s 8
IL_044C: ldfld UnityEngine.Vector2[] MeshData::m_uvs3
IL_0451: ldarg.s 5
IL_0453: ldind.i4
IL_0454: ldelema UnityEngine.Vector2
IL_0459: ldloc.s 11 (UnityEngine.Vector2)
IL_045B: stobj UnityEngine.Vector2
IL_0460: ldloc.0
IL_0461: brfalse => Label14
IL_0466: ldarg.s 8
IL_0468: ldfld UnityEngine.Vector2[] MeshData::m_uvs4
IL_046D: ldarg.s 5
IL_046F: ldind.i4
IL_0470: ldelema UnityEngine.Vector2
IL_0475: ldloc.s 12 (UnityEngine.Vector2)
IL_0477: stobj UnityEngine.Vector2
IL_047C: Label14
IL_047C: ldarg.s 8
IL_047E: ldfld UnityEngine.Color32[] MeshData::m_colors
IL_0483: ldarg.s 5
IL_0485: ldind.i4
IL_0486: ldelema UnityEngine.Color32
IL_048B: ldloc.s 15 (UnityEngine.Color)
IL_048D: call static UnityEngine.Color32
UnityEngine.Color32::op_Implicit(UnityEngine.Color c)
IL_0492: stobj UnityEngine.Color32
IL_0497: ldarg.s 5
IL_0499: ldarg.s 5
IL_049B: ldind.i4
IL_049C: ldc.i4.1
IL_049D: add
IL_049E: stind.i4
IL_049F: ldarg.s 8
IL_04A1: ldfld UnityEngine.Vector3[] MeshData::m_vertices
IL_04A6: ldarg.s 5
IL_04A8: ldind.i4
IL_04A9: ldelema UnityEngine.Vector3
IL_04AE: ldloca.s 4 (UnityEngine.Vector3)
IL_04B0: ldfld System.Single UnityEngine.Vector3::x
IL_04B5: ldloc.s 17 (System.Single)
IL_04B7: add
IL_04B8: ldloca.s 4 (UnityEngine.Vector3)
IL_04BA: ldfld System.Single UnityEngine.Vector3::y
IL_04BF: ldloca.s 4 (UnityEngine.Vector3)
IL_04C1: ldfld System.Single UnityEngine.Vector3::z
IL_04C6: ldarg.0
IL_04C7: ldfld System.Single LightEffect::m_lightRange
IL_04CC: add
IL_04CD: newobj System.Void UnityEngine.Vector3::.ctor(System.Single x,
System.Single y, System.Single z)
IL_04D2: stobj UnityEngine.Vector3
IL_04D7: ldarg.s 8
IL_04D9: ldfld UnityEngine.Vector3[] MeshData::m_normals
IL_04DE: ldarg.s 5
IL_04E0: ldind.i4
IL_04E1: ldelema UnityEngine.Vector3
IL_04E6: ldarg.3
IL_04E7: stobj UnityEngine.Vector3
IL_04EC: ldarg.s 8
IL_04EE: ldfld UnityEngine.Vector4[] MeshData::m_tangents
IL_04F3: ldarg.s 5
IL_04F5: ldind.i4
IL_04F6: ldelema UnityEngine.Vector4
IL_04FB: ldloc.s 7 (UnityEngine.Vector4)
IL_04FD: stobj UnityEngine.Vector4
IL_0502: ldarg.s 8
IL_0504: ldfld UnityEngine.Vector2[] MeshData::m_uvs
IL_0509: ldarg.s 5
IL_050B: ldind.i4
IL_050C: ldelema UnityEngine.Vector2
IL_0511: ldloc.s 8 (UnityEngine.Vector2)
IL_0513: stobj UnityEngine.Vector2
IL_0518: ldarg.s 8
IL_051A: ldfld UnityEngine.Vector2[] MeshData::m_uvs2
IL_051F: ldarg.s 5
IL_0521: ldind.i4
IL_0522: ldelema UnityEngine.Vector2
IL_0527: ldloc.s 10 (UnityEngine.Vector2)
IL_0529: stobj UnityEngine.Vector2
IL_052E: ldarg.s 8
IL_0530: ldfld UnityEngine.Vector2[] MeshData::m_uvs3
IL_0535: ldarg.s 5
IL_0537: ldind.i4
IL_0538: ldelema UnityEngine.Vector2
IL_053D: ldloc.s 11 (UnityEngine.Vector2)
IL_053F: stobj UnityEngine.Vector2
IL_0544: ldloc.0
IL_0545: brfalse => Label15
IL_054A: ldarg.s 8
IL_054C: ldfld UnityEngine.Vector2[] MeshData::m_uvs4
IL_0551: ldarg.s 5
IL_0553: ldind.i4
IL_0554: ldelema UnityEngine.Vector2
IL_0559: ldloc.s 12 (UnityEngine.Vector2)
IL_055B: stobj UnityEngine.Vector2
IL_0560: Label15
IL_0560: ldarg.s 8
IL_0562: ldfld UnityEngine.Color32[] MeshData::m_colors
IL_0567: ldarg.s 5
IL_0569: ldind.i4
IL_056A: ldelema UnityEngine.Color32
IL_056F: ldloc.s 15 (UnityEngine.Color)
IL_0571: call static UnityEngine.Color32
UnityEngine.Color32::op_Implicit(UnityEngine.Color c)
IL_0576: stobj UnityEngine.Color32
IL_057B: ldarg.s 5
IL_057D: ldarg.s 5
IL_057F: ldind.i4
IL_0580: ldc.i4.1
IL_0581: add
IL_0582: stind.i4
IL_0583: ldarg.s 8
IL_0585: ldfld UnityEngine.Vector3[] MeshData::m_vertices
IL_058A: ldarg.s 5
IL_058C: ldind.i4
IL_058D: ldelema UnityEngine.Vector3
IL_0592: ldloca.s 4 (UnityEngine.Vector3)
IL_0594: ldfld System.Single UnityEngine.Vector3::x
IL_0599: ldloc.s 18 (System.Single)
IL_059B: add
IL_059C: ldloca.s 4 (UnityEngine.Vector3)
IL_059E: ldfld System.Single UnityEngine.Vector3::y
IL_05A3: ldarg.0
IL_05A4: ldfld System.Single LightEffect::m_lightRange
IL_05A9: sub
IL_05AA: ldloca.s 4 (UnityEngine.Vector3)
IL_05AC: ldfld System.Single UnityEngine.Vector3::z
IL_05B1: ldarg.0
IL_05B2: ldfld System.Single LightEffect::m_lightRange
IL_05B7: add
IL_05B8: newobj System.Void UnityEngine.Vector3::.ctor(System.Single x,
System.Single y, System.Single z)
IL_05BD: stobj UnityEngine.Vector3
IL_05C2: ldarg.s 8
IL_05C4: ldfld UnityEngine.Vector3[] MeshData::m_normals
IL_05C9: ldarg.s 5
IL_05CB: ldind.i4
IL_05CC: ldelema UnityEngine.Vector3
IL_05D1: ldarg.3
IL_05D2: stobj UnityEngine.Vector3
IL_05D7: ldarg.s 8
IL_05D9: ldfld UnityEngine.Vector4[] MeshData::m_tangents
IL_05DE: ldarg.s 5
IL_05E0: ldind.i4
IL_05E1: ldelema UnityEngine.Vector4
IL_05E6: ldloc.s 7 (UnityEngine.Vector4)
IL_05E8: stobj UnityEngine.Vector4
IL_05ED: ldarg.s 8
IL_05EF: ldfld UnityEngine.Vector2[] MeshData::m_uvs
IL_05F4: ldarg.s 5
IL_05F6: ldind.i4
IL_05F7: ldelema UnityEngine.Vector2
IL_05FC: ldloc.s 8 (UnityEngine.Vector2)
IL_05FE: stobj UnityEngine.Vector2
IL_0603: ldarg.s 8
IL_0605: ldfld UnityEngine.Vector2[] MeshData::m_uvs2
IL_060A: ldarg.s 5
IL_060C: ldind.i4
IL_060D: ldelema UnityEngine.Vector2
IL_0612: ldloc.s 10 (UnityEngine.Vector2)
IL_0614: stobj UnityEngine.Vector2
IL_0619: ldarg.s 8
IL_061B: ldfld UnityEngine.Vector2[] MeshData::m_uvs3
IL_0620: ldarg.s 5
IL_0622: ldind.i4
IL_0623: ldelema UnityEngine.Vector2
IL_0628: ldloc.s 11 (UnityEngine.Vector2)
IL_062A: stobj UnityEngine.Vector2
IL_062F: ldloc.0
IL_0630: brfalse => Label16
IL_0635: ldarg.s 8
IL_0637: ldfld UnityEngine.Vector2[] MeshData::m_uvs4
IL_063C: ldarg.s 5
IL_063E: ldind.i4
IL_063F: ldelema UnityEngine.Vector2
IL_0644: ldloc.s 12 (UnityEngine.Vector2)
IL_0646: stobj UnityEngine.Vector2
IL_064B: Label16
IL_064B: ldarg.s 8
IL_064D: ldfld UnityEngine.Color32[] MeshData::m_colors
IL_0652: ldarg.s 5
IL_0654: ldind.i4
IL_0655: ldelema UnityEngine.Color32
IL_065A: ldloc.s 15 (UnityEngine.Color)
IL_065C: call static UnityEngine.Color32
UnityEngine.Color32::op_Implicit(UnityEngine.Color c)
IL_0661: stobj UnityEngine.Color32
IL_0666: ldarg.s 5
IL_0668: ldarg.s 5
IL_066A: ldind.i4
IL_066B: ldc.i4.1
IL_066C: add
IL_066D: stind.i4
IL_066E: ldarg.s 8
IL_0670: ldfld UnityEngine.Vector3[] MeshData::m_vertices
IL_0675: ldarg.s 5
IL_0677: ldind.i4
IL_0678: ldelema UnityEngine.Vector3
IL_067D: ldloca.s 4 (UnityEngine.Vector3)
IL_067F: ldfld System.Single UnityEngine.Vector3::x
IL_0684: ldloc.s 18 (System.Single)
IL_0686: sub
IL_0687: ldloca.s 4 (UnityEngine.Vector3)
IL_0689: ldfld System.Single UnityEngine.Vector3::y
IL_068E: ldarg.0
IL_068F: ldfld System.Single LightEffect::m_lightRange
IL_0694: sub
IL_0695: ldloca.s 4 (UnityEngine.Vector3)
IL_0697: ldfld System.Single UnityEngine.Vector3::z
IL_069C: ldarg.0
IL_069D: ldfld System.Single LightEffect::m_lightRange
IL_06A2: add
IL_06A3: newobj System.Void UnityEngine.Vector3::.ctor(System.Single x,
System.Single y, System.Single z)
IL_06A8: stobj UnityEngine.Vector3
IL_06AD: ldarg.s 8
IL_06AF: ldfld UnityEngine.Vector3[] MeshData::m_normals
IL_06B4: ldarg.s 5
IL_06B6: ldind.i4
IL_06B7: ldelema UnityEngine.Vector3
IL_06BC: ldarg.3
IL_06BD: stobj UnityEngine.Vector3
IL_06C2: ldarg.s 8
IL_06C4: ldfld UnityEngine.Vector4[] MeshData::m_tangents
IL_06C9: ldarg.s 5
IL_06CB: ldind.i4
IL_06CC: ldelema UnityEngine.Vector4
IL_06D1: ldloc.s 7 (UnityEngine.Vector4)
IL_06D3: stobj UnityEngine.Vector4
IL_06D8: ldarg.s 8
IL_06DA: ldfld UnityEngine.Vector2[] MeshData::m_uvs
IL_06DF: ldarg.s 5
IL_06E1: ldind.i4
IL_06E2: ldelema UnityEngine.Vector2
IL_06E7: ldloc.s 8 (UnityEngine.Vector2)
IL_06E9: stobj UnityEngine.Vector2
IL_06EE: ldarg.s 8
IL_06F0: ldfld UnityEngine.Vector2[] MeshData::m_uvs2
IL_06F5: ldarg.s 5
IL_06F7: ldind.i4
IL_06F8: ldelema UnityEngine.Vector2
IL_06FD: ldloc.s 10 (UnityEngine.Vector2)
IL_06FF: stobj UnityEngine.Vector2
IL_0704: ldarg.s 8
IL_0706: ldfld UnityEngine.Vector2[] MeshData::m_uvs3
IL_070B: ldarg.s 5
IL_070D: ldind.i4
IL_070E: ldelema UnityEngine.Vector2
IL_0713: ldloc.s 11 (UnityEngine.Vector2)
IL_0715: stobj UnityEngine.Vector2
IL_071A: ldloc.0
IL_071B: brfalse => Label17
IL_0720: ldarg.s 8
IL_0722: ldfld UnityEngine.Vector2[] MeshData::m_uvs4
IL_0727: ldarg.s 5
IL_0729: ldind.i4
IL_072A: ldelema UnityEngine.Vector2
IL_072F: ldloc.s 12 (UnityEngine.Vector2)
IL_0731: stobj UnityEngine.Vector2
IL_0736: Label17
IL_0736: ldarg.s 8
IL_0738: ldfld UnityEngine.Color32[] MeshData::m_colors
IL_073D: ldarg.s 5
IL_073F: ldind.i4
IL_0740: ldelema UnityEngine.Color32
IL_0745: ldloc.s 15 (UnityEngine.Color)
IL_0747: call static UnityEngine.Color32
UnityEngine.Color32::op_Implicit(UnityEngine.Color c)
IL_074C: stobj UnityEngine.Color32
IL_0751: ldarg.s 5
IL_0753: ldarg.s 5
IL_0755: ldind.i4
IL_0756: ldc.i4.1
IL_0757: add
IL_0758: stind.i4
IL_0759: ldarg.s 8
IL_075B: ldfld UnityEngine.Vector3[] MeshData::m_vertices
IL_0760: ldarg.s 5
IL_0762: ldind.i4
IL_0763: ldelema UnityEngine.Vector3
IL_0768: ldloca.s 4 (UnityEngine.Vector3)
IL_076A: ldfld System.Single UnityEngine.Vector3::x
IL_076F: ldloc.s 17 (System.Single)
IL_0771: sub
IL_0772: ldloca.s 4 (UnityEngine.Vector3)
IL_0774: ldfld System.Single UnityEngine.Vector3::y
IL_0779: ldloca.s 4 (UnityEngine.Vector3)
IL_077B: ldfld System.Single UnityEngine.Vector3::z
IL_0780: ldarg.0
IL_0781: ldfld System.Single LightEffect::m_lightRange
IL_0786: add
IL_0787: newobj System.Void UnityEngine.Vector3::.ctor(System.Single x,
System.Single y, System.Single z)
IL_078C: stobj UnityEngine.Vector3
IL_0791: ldarg.s 8
IL_0793: ldfld UnityEngine.Vector3[] MeshData::m_normals
IL_0798: ldarg.s 5
IL_079A: ldind.i4
IL_079B: ldelema UnityEngine.Vector3
IL_07A0: ldarg.3
IL_07A1: stobj UnityEngine.Vector3
IL_07A6: ldarg.s 8
IL_07A8: ldfld UnityEngine.Vector4[] MeshData::m_tangents
IL_07AD: ldarg.s 5
IL_07AF: ldind.i4
IL_07B0: ldelema UnityEngine.Vector4
IL_07B5: ldloc.s 7 (UnityEngine.Vector4)
IL_07B7: stobj UnityEngine.Vector4
IL_07BC: ldarg.s 8
IL_07BE: ldfld UnityEngine.Vector2[] MeshData::m_uvs
IL_07C3: ldarg.s 5
IL_07C5: ldind.i4
IL_07C6: ldelema UnityEngine.Vector2
IL_07CB: ldloc.s 8 (UnityEngine.Vector2)
IL_07CD: stobj UnityEngine.Vector2
IL_07D2: ldarg.s 8
IL_07D4: ldfld UnityEngine.Vector2[] MeshData::m_uvs2
IL_07D9: ldarg.s 5
IL_07DB: ldind.i4
IL_07DC: ldelema UnityEngine.Vector2
IL_07E1: ldloc.s 10 (UnityEngine.Vector2)
IL_07E3: stobj UnityEngine.Vector2
IL_07E8: ldarg.s 8
IL_07EA: ldfld UnityEngine.Vector2[] MeshData::m_uvs3
IL_07EF: ldarg.s 5
IL_07F1: ldind.i4
IL_07F2: ldelema UnityEngine.Vector2
IL_07F7: ldloc.s 11 (UnityEngine.Vector2)
IL_07F9: stobj UnityEngine.Vector2
IL_07FE: ldloc.0
IL_07FF: brfalse => Label18
IL_0804: ldarg.s 8
IL_0806: ldfld UnityEngine.Vector2[] MeshData::m_uvs4
IL_080B: ldarg.s 5
IL_080D: ldind.i4
IL_080E: ldelema UnityEngine.Vector2
IL_0813: ldloc.s 12 (UnityEngine.Vector2)
IL_0815: stobj UnityEngine.Vector2
IL_081A: Label18
IL_081A: ldarg.s 8
IL_081C: ldfld UnityEngine.Color32[] MeshData::m_colors
IL_0821: ldarg.s 5
IL_0823: ldind.i4
IL_0824: ldelema UnityEngine.Color32
IL_0829: ldloc.s 15 (UnityEngine.Color)
IL_082B: call static UnityEngine.Color32
UnityEngine.Color32::op_Implicit(UnityEngine.Color c)
IL_0830: stobj UnityEngine.Color32
IL_0835: ldarg.s 5
IL_0837: ldarg.s 5
IL_0839: ldind.i4
IL_083A: ldc.i4.1
IL_083B: add
IL_083C: stind.i4
IL_083D: ldarg.s 8
IL_083F: ldfld System.Int32[] MeshData::m_triangles
IL_0844: ldarg.s 6
IL_0846: ldarg.s 6
IL_0848: ldind.i4
IL_0849: dup
IL_084A: stloc.s 19 (System.Int32)
IL_084C: ldc.i4.1
IL_084D: add
IL_084E: stind.i4
IL_084F: ldloc.s 19 (System.Int32)
IL_0851: ldarg.s 5
IL_0853: ldind.i4
IL_0854: ldc.i4.6
IL_0855: sub
IL_0856: stelem.i4
IL_0857: ldarg.s 8
IL_0859: ldfld System.Int32[] MeshData::m_triangles
IL_085E: ldarg.s 6
IL_0860: ldarg.s 6
IL_0862: ldind.i4
IL_0863: dup
IL_0864: stloc.s 19 (System.Int32)
IL_0866: ldc.i4.1
IL_0867: add
IL_0868: stind.i4
IL_0869: ldloc.s 19 (System.Int32)
IL_086B: ldarg.s 5
IL_086D: ldind.i4
IL_086E: ldc.i4.5
IL_086F: sub
IL_0870: stelem.i4
IL_0871: ldarg.s 8
IL_0873: ldfld System.Int32[] MeshData::m_triangles
IL_0878: ldarg.s 6
IL_087A: ldarg.s 6
IL_087C: ldind.i4
IL_087D: dup
IL_087E: stloc.s 19 (System.Int32)
IL_0880: ldc.i4.1
IL_0881: add
IL_0882: stind.i4
IL_0883: ldloc.s 19 (System.Int32)
IL_0885: ldarg.s 5
IL_0887: ldind.i4
IL_0888: ldc.i4.1
IL_0889: sub
IL_088A: stelem.i4
IL_088B: ldarg.s 8
IL_088D: ldfld System.Int32[] MeshData::m_triangles
IL_0892: ldarg.s 6
IL_0894: ldarg.s 6
IL_0896: ldind.i4
IL_0897: dup
IL_0898: stloc.s 19 (System.Int32)
IL_089A: ldc.i4.1
IL_089B: add
IL_089C: stind.i4
IL_089D: ldloc.s 19 (System.Int32)
IL_089F: ldarg.s 5
IL_08A1: ldind.i4
IL_08A2: ldc.i4.1
IL_08A3: sub
IL_08A4: stelem.i4
IL_08A5: ldarg.s 8
IL_08A7: ldfld System.Int32[] MeshData::m_triangles
IL_08AC: ldarg.s 6
IL_08AE: ldarg.s 6
IL_08B0: ldind.i4
IL_08B1: dup
IL_08B2: stloc.s 19 (System.Int32)
IL_08B4: ldc.i4.1
IL_08B5: add
IL_08B6: stind.i4
IL_08B7: ldloc.s 19 (System.Int32)
IL_08B9: ldarg.s 5
IL_08BB: ldind.i4
IL_08BC: ldc.i4.5
IL_08BD: sub
IL_08BE: stelem.i4
IL_08BF: ldarg.s 8
IL_08C1: ldfld System.Int32[] MeshData::m_triangles
IL_08C6: ldarg.s 6
IL_08C8: ldarg.s 6
IL_08CA: ldind.i4
IL_08CB: dup
IL_08CC: stloc.s 19 (System.Int32)
IL_08CE: ldc.i4.1
IL_08CF: add
IL_08D0: stind.i4
IL_08D1: ldloc.s 19 (System.Int32)
IL_08D3: ldarg.s 5
IL_08D5: ldind.i4
IL_08D6: ldc.i4.4
IL_08D7: sub
IL_08D8: stelem.i4
IL_08D9: ldarg.s 8
IL_08DB: ldfld System.Int32[] MeshData::m_triangles
IL_08E0: ldarg.s 6
IL_08E2: ldarg.s 6
IL_08E4: ldind.i4
IL_08E5: dup
IL_08E6: stloc.s 19 (System.Int32)
IL_08E8: ldc.i4.1
IL_08E9: add
IL_08EA: stind.i4
IL_08EB: ldloc.s 19 (System.Int32)
IL_08ED: ldarg.s 5
IL_08EF: ldind.i4
IL_08F0: ldc.i4.1
IL_08F1: sub
IL_08F2: stelem.i4
IL_08F3: ldarg.s 8
IL_08F5: ldfld System.Int32[] MeshData::m_triangles
IL_08FA: ldarg.s 6
IL_08FC: ldarg.s 6
IL_08FE: ldind.i4
IL_08FF: dup
IL_0900: stloc.s 19 (System.Int32)
IL_0902: ldc.i4.1
IL_0903: add
IL_0904: stind.i4
IL_0905: ldloc.s 19 (System.Int32)
IL_0907: ldarg.s 5
IL_0909: ldind.i4
IL_090A: ldc.i4.4
IL_090B: sub
IL_090C: stelem.i4
IL_090D: ldarg.s 8
IL_090F: ldfld System.Int32[] MeshData::m_triangles
IL_0914: ldarg.s 6
IL_0916: ldarg.s 6
IL_0918: ldind.i4
IL_0919: dup
IL_091A: stloc.s 19 (System.Int32)
IL_091C: ldc.i4.1
IL_091D: add
IL_091E: stind.i4
IL_091F: ldloc.s 19 (System.Int32)
IL_0921: ldarg.s 5
IL_0923: ldind.i4
IL_0924: ldc.i4.2
IL_0925: sub
IL_0926: stelem.i4
IL_0927: ldarg.s 8
IL_0929: ldfld System.Int32[] MeshData::m_triangles
IL_092E: ldarg.s 6
IL_0930: ldarg.s 6
IL_0932: ldind.i4
IL_0933: dup
IL_0934: stloc.s 19 (System.Int32)
IL_0936: ldc.i4.1
IL_0937: add
IL_0938: stind.i4
IL_0939: ldloc.s 19 (System.Int32)
IL_093B: ldarg.s 5
IL_093D: ldind.i4
IL_093E: ldc.i4.2
IL_093F: sub
IL_0940: stelem.i4
IL_0941: ldarg.s 8
IL_0943: ldfld System.Int32[] MeshData::m_triangles
IL_0948: ldarg.s 6
IL_094A: ldarg.s 6
IL_094C: ldind.i4
IL_094D: dup
IL_094E: stloc.s 19 (System.Int32)
IL_0950: ldc.i4.1
IL_0951: add
IL_0952: stind.i4
IL_0953: ldloc.s 19 (System.Int32)
IL_0955: ldarg.s 5
IL_0957: ldind.i4
IL_0958: ldc.i4.4
IL_0959: sub
IL_095A: stelem.i4
IL_095B: ldarg.s 8
IL_095D: ldfld System.Int32[] MeshData::m_triangles
IL_0962: ldarg.s 6
IL_0964: ldarg.s 6
IL_0966: ldind.i4
IL_0967: dup
IL_0968: stloc.s 19 (System.Int32)
IL_096A: ldc.i4.1
IL_096B: add
IL_096C: stind.i4
IL_096D: ldloc.s 19 (System.Int32)
IL_096F: ldarg.s 5
IL_0971: ldind.i4
IL_0972: ldc.i4.3
IL_0973: sub
IL_0974: stelem.i4
IL_0975: // end original
IL_0975: Label1
IL_0975: ret
DONE

### Patch: virtual System.Void ElectricityManager::SimulationStepImpl(System.Int32


subStep)
### Replacement: static System.Void
ElectricityManager::ElectricityManager.SimulationStepImpl_Patch0(ElectricityManager
this, System.Int32 subStep)
IL_0000: Local var 0: System.UInt32
IL_0000: Local var 1: System.Int32
IL_0000: Local var 2: NetManager
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: NetInfo
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: ElectricityManager/Cell
IL_0000: Local var 13: ElectricityManager/PulseGroup
IL_0000: Local var 14: ElectricityManager/PulseUnit
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: ElectricityManager/PulseUnit
IL_0000: Local var 19: System.UInt32
IL_0000: Local var 20: System.Int32
IL_0000: Local var 21: ElectricityManager/Cell
IL_0000: Local var 22: System.Int32
IL_0000: Local var 23: System.Int32
IL_0000: Local var 24: NetNode
IL_0000: Local var 25: System.Int32
IL_0000: Local var 26: System.UInt16
IL_0000: Local var 27: System.UInt16
IL_0000: Local var 28: System.UInt16
IL_0000: Local var 29: System.UInt16
IL_0000: Local var 30: System.Int32
IL_0000: Local var 31: ElectricityManager/PulseGroup
IL_0000: Local var 32: ElectricityManager/PulseGroup
IL_0000: Local var 33: System.Int32
IL_0000: Local var 34: ElectricityManager/PulseGroup
IL_0000: Local var 35: System.Int32
IL_0000: Local var 36: ElectricityManager/Cell
IL_0000: // start original
IL_0000: ldarg.1
IL_0001: brfalse => Label0
IL_0006: ldarg.1
IL_0007: ldc.i4 1000
IL_000C: beq => Label1
IL_0011: call static SimulationManager
ColossalFramework.Singleton`1<SimulationManager>::get_instance()
IL_0016: ldfld System.UInt32 SimulationManager::m_currentFrameIndex
IL_001B: stloc.0
IL_001C: ldloc.0
IL_001D: ldc.i4 255
IL_0022: and
IL_0023: stloc.1
IL_0024: ldloc.1
IL_0025: ldc.i4 128
IL_002A: bge => Label2
IL_002F: ldloc.1
IL_0030: brtrue => Label3
IL_0035: ldarg.0
IL_0036: ldc.i4.0
IL_0037: stfld System.Int32 ElectricityManager::m_pulseGroupCount
IL_003C: ldarg.0
IL_003D: ldc.i4.0
IL_003E: stfld System.Int32 ElectricityManager::m_pulseUnitStart
IL_0043: ldarg.0
IL_0044: ldc.i4.0
IL_0045: stfld System.Int32 ElectricityManager::m_pulseUnitEnd
IL_004A: ldarg.0
IL_004B: ldc.i4.0
IL_004C: stfld System.Int32 ElectricityManager::m_processedCells
IL_0051: ldarg.0
IL_0052: ldc.i4.0
IL_0053: stfld System.Int32 ElectricityManager::m_conductiveCells
IL_0058: ldarg.0
IL_0059: ldc.i4.1
IL_005A: stfld System.Boolean ElectricityManager::m_canContinue
IL_005F: Label3
IL_005F: call static NetManager
ColossalFramework.Singleton`1<NetManager>::get_instance()
IL_0064: stloc.2
IL_0065: ldloc.1
IL_0066: ldc.i4 32768
IL_006B: mul
IL_006C: ldc.i4.7
IL_006D: shr
IL_006E: stloc.3
IL_006F: ldloc.1
IL_0070: ldc.i4.1
IL_0071: add
IL_0072: ldc.i4 32768
IL_0077: mul
IL_0078: ldc.i4.7
IL_0079: shr
IL_007A: ldc.i4.1
IL_007B: sub
IL_007C: stloc.s 4 (System.Int32)
IL_007E: ldloc.3
IL_007F: stloc.s 5 (System.Int32)
IL_0081: br => Label4
IL_0086: Label10
IL_0086: ldloc.2
IL_0087: ldfld Array16`1<NetNode> NetManager::m_nodes
IL_008C: ldfld NetNode[] Array16`1<NetNode>::m_buffer
IL_0091: ldloc.s 5 (System.Int32)
IL_0093: ldelema NetNode
IL_0098: ldfld Flags NetNode::m_flags
IL_009D: brfalse => Label5
IL_00A2: ldloc.2
IL_00A3: ldfld Array16`1<NetNode> NetManager::m_nodes
IL_00A8: ldfld NetNode[] Array16`1<NetNode>::m_buffer
IL_00AD: ldloc.s 5 (System.Int32)
IL_00AF: ldelema NetNode
IL_00B4: call NetInfo NetNode::get_Info()
IL_00B9: stloc.s 6 (NetInfo)
IL_00BB: ldloc.s 6 (NetInfo)
IL_00BD: ldfld ItemClass NetInfo::m_class
IL_00C2: ldfld Service ItemClass::m_service
IL_00C7: ldc.i4.s 10
IL_00C9: beq => Label6
IL_00CE: ldloc.s 6 (NetInfo)
IL_00D0: ldfld NetAI NetInfo::m_netAI
IL_00D5: isinst ConcourseAI
IL_00DA: brfalse => Label7
IL_00DF: Label6
IL_00DF: ldarg.0
IL_00E0: ldloc.s 5 (System.Int32)
IL_00E2: ldarg.0
IL_00E3: ldfld System.UInt16[] ElectricityManager::m_nodeGroups
IL_00E8: ldloc.s 5 (System.Int32)
IL_00EA: ldelem.u2
IL_00EB: ldc.i4 65535
IL_00F0: beq => Label8
IL_00F5: ldc.i4.1
IL_00F6: br => Label9
IL_00FB: Label8
IL_00FB: ldc.i4.0
IL_00FC: Label9
IL_00FC: call System.Void
ElectricityManager::UpdateNodeElectricity(System.Int32 nodeID, System.Int32 value)
IL_0101: ldarg.0
IL_0102: dup
IL_0103: ldfld System.Int32 ElectricityManager::m_conductiveCells
IL_0108: ldc.i4.1
IL_0109: add
IL_010A: stfld System.Int32 ElectricityManager::m_conductiveCells
IL_010F: Label5
IL_010F: Label7
IL_010F: ldarg.0
IL_0110: ldfld System.UInt16[] ElectricityManager::m_nodeGroups
IL_0115: ldloc.s 5 (System.Int32)
IL_0117: ldc.i4 65535
IL_011C: stelem.i2
IL_011D: ldloc.s 5 (System.Int32)
IL_011F: ldc.i4.1
IL_0120: add
IL_0121: stloc.s 5 (System.Int32)
IL_0123: Label4
IL_0123: ldloc.s 5 (System.Int32)
IL_0125: ldloc.s 4 (System.Int32)
IL_0127: ble => Label10
IL_012C: ldloc.1
IL_012D: ldc.i4 256
IL_0132: mul
IL_0133: ldc.i4.7
IL_0134: shr
IL_0135: stloc.s 7 (System.Int32)
IL_0137: ldloc.1
IL_0138: ldc.i4.1
IL_0139: add
IL_013A: ldc.i4 256
IL_013F: mul
IL_0140: ldc.i4.7
IL_0141: shr
IL_0142: ldc.i4.1
IL_0143: sub
IL_0144: stloc.s 8 (System.Int32)
IL_0146: ldloc.s 7 (System.Int32)
IL_0148: stloc.s 9 (System.Int32)
IL_014A: br => Label11
IL_014F: Label21
IL_014F: ldloc.s 9 (System.Int32)
IL_0151: ldc.i4 256
IL_0156: mul
IL_0157: stloc.s 10 (System.Int32)
IL_0159: ldc.i4.0
IL_015A: stloc.s 11 (System.Int32)
IL_015C: br => Label12
IL_0161: Label20
IL_0161: ldarg.0
IL_0162: ldfld Cell[] ElectricityManager::m_electricityGrid
IL_0167: ldloc.s 10 (System.Int32)
IL_0169: ldelema ElectricityManager+Cell
IL_016E: ldobj ElectricityManager+Cell
IL_0173: stloc.s 12 (ElectricityManager+Cell)
IL_0175: ldloca.s 12 (ElectricityManager+Cell)
IL_0177: ldfld System.Int16 Cell::m_currentCharge
IL_017C: ldc.i4.0
IL_017D: ble => Label13
IL_0182: ldarg.0
IL_0183: ldfld System.Int32 ElectricityManager::m_pulseGroupCount
IL_0188: ldc.i4 1024
IL_018D: bge => Label14
IL_0192: ldloca.s 13 (ElectricityManager+PulseGroup)
IL_0194: ldloca.s 12 (ElectricityManager+Cell)
IL_0196: ldfld System.Int16 Cell::m_currentCharge
IL_019B: conv.u4
IL_019C: stfld System.UInt32 PulseGroup::m_origCharge
IL_01A1: ldloca.s 13 (ElectricityManager+PulseGroup)
IL_01A3: ldloca.s 12 (ElectricityManager+Cell)
IL_01A5: ldfld System.Int16 Cell::m_currentCharge
IL_01AA: conv.u4
IL_01AB: stfld System.UInt32 PulseGroup::m_curCharge
IL_01B0: ldloca.s 13 (ElectricityManager+PulseGroup)
IL_01B2: ldc.i4.0
IL_01B3: stfld System.UInt16 PulseGroup::m_mergeCount
IL_01B8: ldloca.s 13 (ElectricityManager+PulseGroup)
IL_01BA: ldc.i4 65535
IL_01BF: stfld System.UInt16 PulseGroup::m_mergeIndex
IL_01C4: ldloca.s 13 (ElectricityManager+PulseGroup)
IL_01C6: ldloc.s 11 (System.Int32)
IL_01C8: conv.u1
IL_01C9: stfld System.Byte PulseGroup::m_x
IL_01CE: ldloca.s 13 (ElectricityManager+PulseGroup)
IL_01D0: ldloc.s 9 (System.Int32)
IL_01D2: conv.u1
IL_01D3: stfld System.Byte PulseGroup::m_z
IL_01D8: ldloca.s 14 (ElectricityManager+PulseUnit)
IL_01DA: ldarg.0
IL_01DB: ldfld System.Int32 ElectricityManager::m_pulseGroupCount
IL_01E0: conv.u2
IL_01E1: stfld System.UInt16 PulseUnit::m_group
IL_01E6: ldloca.s 14 (ElectricityManager+PulseUnit)
IL_01E8: ldc.i4.0
IL_01E9: stfld System.UInt16 PulseUnit::m_node
IL_01EE: ldloca.s 14 (ElectricityManager+PulseUnit)
IL_01F0: ldloc.s 11 (System.Int32)
IL_01F2: conv.u1
IL_01F3: stfld System.Byte PulseUnit::m_x
IL_01F8: ldloca.s 14 (ElectricityManager+PulseUnit)
IL_01FA: ldloc.s 9 (System.Int32)
IL_01FC: conv.u1
IL_01FD: stfld System.Byte PulseUnit::m_z
IL_0202: ldloca.s 12 (ElectricityManager+Cell)
IL_0204: ldarg.0
IL_0205: ldfld System.Int32 ElectricityManager::m_pulseGroupCount
IL_020A: conv.u2
IL_020B: stfld System.UInt16 Cell::m_pulseGroup
IL_0210: ldarg.0
IL_0211: ldfld PulseGroup[] ElectricityManager::m_pulseGroups
IL_0216: ldarg.0
IL_0217: dup
IL_0218: ldfld System.Int32 ElectricityManager::m_pulseGroupCount
IL_021D: dup
IL_021E: stloc.s 15 (System.Int32)
IL_0220: ldc.i4.1
IL_0221: add
IL_0222: stfld System.Int32 ElectricityManager::m_pulseGroupCount
IL_0227: ldloc.s 15 (System.Int32)
IL_0229: ldelema ElectricityManager+PulseGroup
IL_022E: ldloc.s 13 (ElectricityManager+PulseGroup)
IL_0230: stobj ElectricityManager+PulseGroup
IL_0235: ldarg.0
IL_0236: ldfld PulseUnit[] ElectricityManager::m_pulseUnits
IL_023B: ldarg.0
IL_023C: ldfld System.Int32 ElectricityManager::m_pulseUnitEnd
IL_0241: ldelema ElectricityManager+PulseUnit
IL_0246: ldloc.s 14 (ElectricityManager+PulseUnit)
IL_0248: stobj ElectricityManager+PulseUnit
IL_024D: ldarg.0
IL_024E: dup
IL_024F: ldfld System.Int32 ElectricityManager::m_pulseUnitEnd
IL_0254: ldc.i4.1
IL_0255: add
IL_0256: dup
IL_0257: stloc.s 15 (System.Int32)
IL_0259: stfld System.Int32 ElectricityManager::m_pulseUnitEnd
IL_025E: ldloc.s 15 (System.Int32)
IL_0260: ldarg.0
IL_0261: ldfld PulseUnit[] ElectricityManager::m_pulseUnits
IL_0266: ldlen
IL_0267: conv.i4
IL_0268: bne.un => Label15
IL_026D: ldarg.0
IL_026E: ldc.i4.0
IL_026F: stfld System.Int32 ElectricityManager::m_pulseUnitEnd
IL_0274: Label15
IL_0274: br => Label16
IL_0279: Label14
IL_0279: ldloca.s 12 (ElectricityManager+Cell)
IL_027B: ldc.i4 65535
IL_0280: stfld System.UInt16 Cell::m_pulseGroup
IL_0285: Label16
IL_0285: ldloca.s 12 (ElectricityManager+Cell)
IL_0287: ldc.i4.0
IL_0288: stfld System.Int16 Cell::m_currentCharge
IL_028D: ldarg.0
IL_028E: dup
IL_028F: ldfld System.Int32 ElectricityManager::m_conductiveCells
IL_0294: ldc.i4.1
IL_0295: add
IL_0296: stfld System.Int32 ElectricityManager::m_conductiveCells
IL_029B: br => Label17
IL_02A0: Label13
IL_02A0: ldloca.s 12 (ElectricityManager+Cell)
IL_02A2: ldc.i4 65535
IL_02A7: stfld System.UInt16 Cell::m_pulseGroup
IL_02AC: ldloca.s 12 (ElectricityManager+Cell)
IL_02AE: ldfld System.Byte Cell::m_conductivity
IL_02B3: ldc.i4.s 64
IL_02B5: blt => Label18
IL_02BA: ldarg.0
IL_02BB: dup
IL_02BC: ldfld System.Int32 ElectricityManager::m_conductiveCells
IL_02C1: ldc.i4.1
IL_02C2: add
IL_02C3: stfld System.Int32 ElectricityManager::m_conductiveCells
IL_02C8: Label17
IL_02C8: Label18
IL_02C8: ldloca.s 12 (ElectricityManager+Cell)
IL_02CA: ldfld System.Boolean Cell::m_tmpElectrified
IL_02CF: ldloca.s 12 (ElectricityManager+Cell)
IL_02D1: ldfld System.Boolean Cell::m_electrified
IL_02D6: beq => Label19
IL_02DB: ldloca.s 12 (ElectricityManager+Cell)
IL_02DD: ldloca.s 12 (ElectricityManager+Cell)
IL_02DF: ldfld System.Boolean Cell::m_tmpElectrified
IL_02E4: stfld System.Boolean Cell::m_electrified
IL_02E9: Label19
IL_02E9: ldloca.s 12 (ElectricityManager+Cell)
IL_02EB: ldloca.s 12 (ElectricityManager+Cell)
IL_02ED: ldfld System.UInt16 Cell::m_pulseGroup
IL_02F2: ldc.i4 65535
IL_02F7: ceq
IL_02F9: ldc.i4.0
IL_02FA: ceq
IL_02FC: stfld System.Boolean Cell::m_tmpElectrified
IL_0301: ldarg.0
IL_0302: ldfld Cell[] ElectricityManager::m_electricityGrid
IL_0307: ldloc.s 10 (System.Int32)
IL_0309: ldelema ElectricityManager+Cell
IL_030E: ldloc.s 12 (ElectricityManager+Cell)
IL_0310: stobj ElectricityManager+Cell
IL_0315: ldloc.s 10 (System.Int32)
IL_0317: ldc.i4.1
IL_0318: add
IL_0319: stloc.s 10 (System.Int32)
IL_031B: ldloc.s 11 (System.Int32)
IL_031D: ldc.i4.1
IL_031E: add
IL_031F: stloc.s 11 (System.Int32)
IL_0321: Label12
IL_0321: ldloc.s 11 (System.Int32)
IL_0323: ldc.i4 256
IL_0328: blt => Label20
IL_032D: ldloc.s 9 (System.Int32)
IL_032F: ldc.i4.1
IL_0330: add
IL_0331: stloc.s 9 (System.Int32)
IL_0333: Label11
IL_0333: ldloc.s 9 (System.Int32)
IL_0335: ldloc.s 8 (System.Int32)
IL_0337: ble => Label21
IL_033C: br => Label22
IL_0341: Label2
IL_0341: ldloc.1
IL_0342: ldc.i4.s 127
IL_0344: sub
IL_0345: ldarg.0
IL_0346: ldfld System.Int32 ElectricityManager::m_conductiveCells
IL_034B: mul
IL_034C: ldc.i4.7
IL_034D: shr
IL_034E: stloc.s 16 (System.Int32)
IL_0350: ldloc.1
IL_0351: ldc.i4 255
IL_0356: bne.un => Label23
IL_035B: ldc.i4 1000000000
IL_0360: stloc.s 16 (System.Int32)
IL_0362: Label23
IL_0362: br => Label24
IL_0367: Label54
IL_0367: ldarg.0
IL_0368: ldc.i4.0
IL_0369: stfld System.Boolean ElectricityManager::m_canContinue
IL_036E: ldarg.0
IL_036F: ldfld System.Int32 ElectricityManager::m_pulseUnitEnd
IL_0374: stloc.s 17 (System.Int32)
IL_0376: br => Label25
IL_037B: Label52
IL_037B: ldarg.0
IL_037C: ldfld PulseUnit[] ElectricityManager::m_pulseUnits
IL_0381: ldarg.0
IL_0382: ldfld System.Int32 ElectricityManager::m_pulseUnitStart
IL_0387: ldelema ElectricityManager+PulseUnit
IL_038C: ldobj ElectricityManager+PulseUnit
IL_0391: stloc.s 18 (ElectricityManager+PulseUnit)
IL_0393: ldarg.0
IL_0394: dup
IL_0395: ldfld System.Int32 ElectricityManager::m_pulseUnitStart
IL_039A: ldc.i4.1
IL_039B: add
IL_039C: dup
IL_039D: stloc.s 15 (System.Int32)
IL_039F: stfld System.Int32 ElectricityManager::m_pulseUnitStart
IL_03A4: ldloc.s 15 (System.Int32)
IL_03A6: ldarg.0
IL_03A7: ldfld PulseUnit[] ElectricityManager::m_pulseUnits
IL_03AC: ldlen
IL_03AD: conv.i4
IL_03AE: bne.un => Label26
IL_03B3: ldarg.0
IL_03B4: ldc.i4.0
IL_03B5: stfld System.Int32 ElectricityManager::m_pulseUnitStart
IL_03BA: Label26
IL_03BA: ldloca.s 18 (ElectricityManager+PulseUnit)
IL_03BC: ldarg.0
IL_03BD: ldloca.s 18 (ElectricityManager+PulseUnit)
IL_03BF: ldfld System.UInt16 PulseUnit::m_group
IL_03C4: call System.UInt16 ElectricityManager::GetRootGroup(System.UInt16
group)
IL_03C9: stfld System.UInt16 PulseUnit::m_group
IL_03CE: ldarg.0
IL_03CF: ldfld PulseGroup[] ElectricityManager::m_pulseGroups
IL_03D4: ldloca.s 18 (ElectricityManager+PulseUnit)
IL_03D6: ldfld System.UInt16 PulseUnit::m_group
IL_03DB: ldelema ElectricityManager+PulseGroup
IL_03E0: ldfld System.UInt32 PulseGroup::m_curCharge
IL_03E5: stloc.s 19 (System.UInt32)
IL_03E7: ldloca.s 18 (ElectricityManager+PulseUnit)
IL_03E9: ldfld System.UInt16 PulseUnit::m_node
IL_03EE: brtrue => Label27
IL_03F3: ldloca.s 18 (ElectricityManager+PulseUnit)
IL_03F5: ldfld System.Byte PulseUnit::m_z
IL_03FA: ldc.i4 256
IL_03FF: mul
IL_0400: ldloca.s 18 (ElectricityManager+PulseUnit)
IL_0402: ldfld System.Byte PulseUnit::m_x
IL_0407: add
IL_0408: stloc.s 20 (System.Int32)
IL_040A: ldarg.0
IL_040B: ldfld Cell[] ElectricityManager::m_electricityGrid
IL_0410: ldloc.s 20 (System.Int32)
IL_0412: ldelema ElectricityManager+Cell
IL_0417: ldobj ElectricityManager+Cell
IL_041C: stloc.s 21 (ElectricityManager+Cell)
IL_041E: ldloca.s 21 (ElectricityManager+Cell)
IL_0420: ldfld System.Byte Cell::m_conductivity
IL_0425: brfalse => Label28
IL_042A: ldloca.s 21 (ElectricityManager+Cell)
IL_042C: ldfld System.Boolean Cell::m_tmpElectrified
IL_0431: brtrue => Label29
IL_0436: ldloc.s 19 (System.UInt32)
IL_0438: brfalse => Label30
IL_043D: ldloca.s 21 (ElectricityManager+Cell)
IL_043F: ldfld System.Int16 Cell::m_currentCharge
IL_0444: neg
IL_0445: ldc.i4.0
IL_0446: ldloc.s 19 (System.UInt32)
IL_0448: call static System.Int32 UnityEngine.Mathf::Clamp(System.Int32
value, System.Int32 min, System.Int32 max)
IL_044D: stloc.s 22 (System.Int32)
IL_044F: ldloc.s 19 (System.UInt32)
IL_0451: ldloc.s 22 (System.Int32)
IL_0453: sub
IL_0454: stloc.s 19 (System.UInt32)
IL_0456: ldloca.s 21 (ElectricityManager+Cell)
IL_0458: dup
IL_0459: ldfld System.Int16 Cell::m_currentCharge
IL_045E: ldloc.s 22 (System.Int32)
IL_0460: conv.i2
IL_0461: add
IL_0462: conv.i2
IL_0463: stfld System.Int16 Cell::m_currentCharge
IL_0468: ldloca.s 21 (ElectricityManager+Cell)
IL_046A: ldfld System.Int16 Cell::m_currentCharge
IL_046F: brtrue => Label31
IL_0474: ldloca.s 21 (ElectricityManager+Cell)
IL_0476: ldc.i4.1
IL_0477: stfld System.Boolean Cell::m_tmpElectrified
IL_047C: Label31
IL_047C: ldarg.0
IL_047D: ldfld Cell[] ElectricityManager::m_electricityGrid
IL_0482: ldloc.s 20 (System.Int32)
IL_0484: ldelema ElectricityManager+Cell
IL_0489: ldloc.s 21 (ElectricityManager+Cell)
IL_048B: stobj ElectricityManager+Cell
IL_0490: ldarg.0
IL_0491: ldfld PulseGroup[] ElectricityManager::m_pulseGroups
IL_0496: ldloca.s 18 (ElectricityManager+PulseUnit)
IL_0498: ldfld System.UInt16 PulseUnit::m_group
IL_049D: ldelema ElectricityManager+PulseGroup
IL_04A2: ldloc.s 19 (System.UInt32)
IL_04A4: stfld System.UInt32 PulseGroup::m_curCharge
IL_04A9: Label28
IL_04A9: Label29
IL_04A9: Label30
IL_04A9: ldloc.s 19 (System.UInt32)
IL_04AB: brfalse => Label32
IL_04B0: ldloca.s 21 (ElectricityManager+Cell)
IL_04B2: ldfld System.Byte Cell::m_conductivity
IL_04B7: ldc.i4.s 64
IL_04B9: blt => Label33
IL_04BE: ldc.i4.1
IL_04BF: br => Label34
IL_04C4: Label33
IL_04C4: ldc.i4.s 64
IL_04C6: Label34
IL_04C6: stloc.s 23 (System.Int32)
IL_04C8: ldarg.0
IL_04C9: dup
IL_04CA: ldfld System.Int32 ElectricityManager::m_processedCells
IL_04CF: ldc.i4.1
IL_04D0: add
IL_04D1: stfld System.Int32 ElectricityManager::m_processedCells
IL_04D6: ldloca.s 18 (ElectricityManager+PulseUnit)
IL_04D8: ldfld System.Byte PulseUnit::m_z
IL_04DD: ldc.i4.0
IL_04DE: ble => Label35
IL_04E3: ldarg.0
IL_04E4: ldarg.0
IL_04E5: ldfld Cell[] ElectricityManager::m_electricityGrid
IL_04EA: ldloc.s 20 (System.Int32)
IL_04EC: ldc.i4 256
IL_04F1: sub
IL_04F2: ldelema ElectricityManager+Cell
IL_04F7: ldloca.s 18 (ElectricityManager+PulseUnit)
IL_04F9: ldfld System.UInt16 PulseUnit::m_group
IL_04FE: ldloca.s 18 (ElectricityManager+PulseUnit)
IL_0500: ldfld System.Byte PulseUnit::m_x
IL_0505: ldloca.s 18 (ElectricityManager+PulseUnit)
IL_0507: ldfld System.Byte PulseUnit::m_z
IL_050C: ldc.i4.1
IL_050D: sub
IL_050E: ldloc.s 23 (System.Int32)
IL_0510: call System.Void ElectricityManager::ConductToCell(Cell& cell,
System.UInt16 group, System.Int32 x, System.Int32 z, System.Int32 limit)
IL_0515: Label35
IL_0515: ldloca.s 18 (ElectricityManager+PulseUnit)
IL_0517: ldfld System.Byte PulseUnit::m_x
IL_051C: ldc.i4.0
IL_051D: ble => Label36
IL_0522: ldarg.0
IL_0523: ldarg.0
IL_0524: ldfld Cell[] ElectricityManager::m_electricityGrid
IL_0529: ldloc.s 20 (System.Int32)
IL_052B: ldc.i4.1
IL_052C: sub
IL_052D: ldelema ElectricityManager+Cell
IL_0532: ldloca.s 18 (ElectricityManager+PulseUnit)
IL_0534: ldfld System.UInt16 PulseUnit::m_group
IL_0539: ldloca.s 18 (ElectricityManager+PulseUnit)
IL_053B: ldfld System.Byte PulseUnit::m_x
IL_0540: ldc.i4.1
IL_0541: sub
IL_0542: ldloca.s 18 (ElectricityManager+PulseUnit)
IL_0544: ldfld System.Byte PulseUnit::m_z
IL_0549: ldloc.s 23 (System.Int32)
IL_054B: call System.Void ElectricityManager::ConductToCell(Cell& cell,
System.UInt16 group, System.Int32 x, System.Int32 z, System.Int32 limit)
IL_0550: Label36
IL_0550: ldloca.s 18 (ElectricityManager+PulseUnit)
IL_0552: ldfld System.Byte PulseUnit::m_z
IL_0557: ldc.i4 255
IL_055C: bge => Label37
IL_0561: ldarg.0
IL_0562: ldarg.0
IL_0563: ldfld Cell[] ElectricityManager::m_electricityGrid
IL_0568: ldloc.s 20 (System.Int32)
IL_056A: ldc.i4 256
IL_056F: add
IL_0570: ldelema ElectricityManager+Cell
IL_0575: ldloca.s 18 (ElectricityManager+PulseUnit)
IL_0577: ldfld System.UInt16 PulseUnit::m_group
IL_057C: ldloca.s 18 (ElectricityManager+PulseUnit)
IL_057E: ldfld System.Byte PulseUnit::m_x
IL_0583: ldloca.s 18 (ElectricityManager+PulseUnit)
IL_0585: ldfld System.Byte PulseUnit::m_z
IL_058A: ldc.i4.1
IL_058B: add
IL_058C: ldloc.s 23 (System.Int32)
IL_058E: call System.Void ElectricityManager::ConductToCell(Cell& cell,
System.UInt16 group, System.Int32 x, System.Int32 z, System.Int32 limit)
IL_0593: Label37
IL_0593: ldloca.s 18 (ElectricityManager+PulseUnit)
IL_0595: ldfld System.Byte PulseUnit::m_x
IL_059A: ldc.i4 255
IL_059F: bge => Label38
IL_05A4: ldarg.0
IL_05A5: ldarg.0
IL_05A6: ldfld Cell[] ElectricityManager::m_electricityGrid
IL_05AB: ldloc.s 20 (System.Int32)
IL_05AD: ldc.i4.1
IL_05AE: add
IL_05AF: ldelema ElectricityManager+Cell
IL_05B4: ldloca.s 18 (ElectricityManager+PulseUnit)
IL_05B6: ldfld System.UInt16 PulseUnit::m_group
IL_05BB: ldloca.s 18 (ElectricityManager+PulseUnit)
IL_05BD: ldfld System.Byte PulseUnit::m_x
IL_05C2: ldc.i4.1
IL_05C3: add
IL_05C4: ldloca.s 18 (ElectricityManager+PulseUnit)
IL_05C6: ldfld System.Byte PulseUnit::m_z
IL_05CB: ldloc.s 23 (System.Int32)
IL_05CD: call System.Void ElectricityManager::ConductToCell(Cell& cell,
System.UInt16 group, System.Int32 x, System.Int32 z, System.Int32 limit)
IL_05D2: Label38
IL_05D2: ldarg.0
IL_05D3: ldloca.s 18 (ElectricityManager+PulseUnit)
IL_05D5: ldfld System.UInt16 PulseUnit::m_group
IL_05DA: ldloca.s 18 (ElectricityManager+PulseUnit)
IL_05DC: ldfld System.Byte PulseUnit::m_x
IL_05E1: ldloca.s 18 (ElectricityManager+PulseUnit)
IL_05E3: ldfld System.Byte PulseUnit::m_z
IL_05E8: call System.Void ElectricityManager::ConductToNodes(System.UInt16
group, System.Int32 cellX, System.Int32 cellZ)
IL_05ED: br => Label39
IL_05F2: Label32
IL_05F2: ldarg.0
IL_05F3: ldfld PulseUnit[] ElectricityManager::m_pulseUnits
IL_05F8: ldarg.0
IL_05F9: ldfld System.Int32 ElectricityManager::m_pulseUnitEnd
IL_05FE: ldelema ElectricityManager+PulseUnit
IL_0603: ldloc.s 18 (ElectricityManager+PulseUnit)
IL_0605: stobj ElectricityManager+PulseUnit
IL_060A: ldarg.0
IL_060B: dup
IL_060C: ldfld System.Int32 ElectricityManager::m_pulseUnitEnd
IL_0611: ldc.i4.1
IL_0612: add
IL_0613: dup
IL_0614: stloc.s 15 (System.Int32)
IL_0616: stfld System.Int32 ElectricityManager::m_pulseUnitEnd
IL_061B: ldloc.s 15 (System.Int32)
IL_061D: ldarg.0
IL_061E: ldfld PulseUnit[] ElectricityManager::m_pulseUnits
IL_0623: ldlen
IL_0624: conv.i4
IL_0625: bne.un => Label40
IL_062A: ldarg.0
IL_062B: ldc.i4.0
IL_062C: stfld System.Int32 ElectricityManager::m_pulseUnitEnd
IL_0631: Label39
IL_0631: Label40
IL_0631: br => Label41
IL_0636: Label27
IL_0636: ldloc.s 19 (System.UInt32)
IL_0638: brfalse => Label42
IL_063D: ldarg.0
IL_063E: dup
IL_063F: ldfld System.Int32 ElectricityManager::m_processedCells
IL_0644: ldc.i4.1
IL_0645: add
IL_0646: stfld System.Int32 ElectricityManager::m_processedCells
IL_064B: call static NetManager
ColossalFramework.Singleton`1<NetManager>::get_instance()
IL_0650: ldfld Array16`1<NetNode> NetManager::m_nodes
IL_0655: ldfld NetNode[] Array16`1<NetNode>::m_buffer
IL_065A: ldloca.s 18 (ElectricityManager+PulseUnit)
IL_065C: ldfld System.UInt16 PulseUnit::m_node
IL_0661: ldelema NetNode
IL_0666: ldobj NetNode
IL_066B: stloc.s 24 (NetNode)
IL_066D: ldloca.s 24 (NetNode)
IL_066F: ldfld Flags NetNode::m_flags
IL_0674: brfalse => Label43
IL_0679: ldloca.s 24 (NetNode)
IL_067B: ldfld System.UInt32 NetNode::m_buildIndex
IL_0680: ldloc.0
IL_0681: ldc.i4.s -128
IL_0683: and
IL_0684: bge.un => Label44
IL_0689: ldarg.0
IL_068A: ldloca.s 18 (ElectricityManager+PulseUnit)
IL_068C: ldfld System.UInt16 PulseUnit::m_group
IL_0691: ldloca.s 24 (NetNode)
IL_0693: ldflda UnityEngine.Vector3 NetNode::m_position
IL_0698: ldfld System.Single UnityEngine.Vector3::x
IL_069D: ldloca.s 24 (NetNode)
IL_069F: ldflda UnityEngine.Vector3 NetNode::m_position
IL_06A4: ldfld System.Single UnityEngine.Vector3::z
IL_06A9: call System.Void ElectricityManager::ConductToCells(System.UInt16
group, System.Single worldX, System.Single worldZ)
IL_06AE: ldc.i4.0
IL_06AF: stloc.s 25 (System.Int32)
IL_06B1: br => Label45
IL_06B6: Label49
IL_06B6: ldloca.s 24 (NetNode)
IL_06B8: ldloc.s 25 (System.Int32)
IL_06BA: call System.UInt16 NetNode::GetSegment(System.Int32 index)
IL_06BF: stloc.s 26 (System.UInt16)
IL_06C1: ldloc.s 26 (System.UInt16)
IL_06C3: brfalse => Label46
IL_06C8: call static NetManager
ColossalFramework.Singleton`1<NetManager>::get_instance()
IL_06CD: ldfld Array16`1<NetSegment> NetManager::m_segments
IL_06D2: ldfld NetSegment[] Array16`1<NetSegment>::m_buffer
IL_06D7: ldloc.s 26 (System.UInt16)
IL_06D9: ldelema NetSegment
IL_06DE: ldfld System.UInt16 NetSegment::m_startNode
IL_06E3: stloc.s 27 (System.UInt16)
IL_06E5: call static NetManager
ColossalFramework.Singleton`1<NetManager>::get_instance()
IL_06EA: ldfld Array16`1<NetSegment> NetManager::m_segments
IL_06EF: ldfld NetSegment[] Array16`1<NetSegment>::m_buffer
IL_06F4: ldloc.s 26 (System.UInt16)
IL_06F6: ldelema NetSegment
IL_06FB: ldfld System.UInt16 NetSegment::m_endNode
IL_0700: stloc.s 28 (System.UInt16)
IL_0702: ldloc.s 27 (System.UInt16)
IL_0704: ldloca.s 18 (ElectricityManager+PulseUnit)
IL_0706: ldfld System.UInt16 PulseUnit::m_node
IL_070B: bne.un => Label47
IL_0710: ldloc.s 28 (System.UInt16)
IL_0712: br => Label48
IL_0717: Label47
IL_0717: ldloc.s 27 (System.UInt16)
IL_0719: Label48
IL_0719: stloc.s 29 (System.UInt16)
IL_071B: ldarg.0
IL_071C: ldloc.s 29 (System.UInt16)
IL_071E: call static NetManager
ColossalFramework.Singleton`1<NetManager>::get_instance()
IL_0723: ldfld Array16`1<NetNode> NetManager::m_nodes
IL_0728: ldfld NetNode[] Array16`1<NetNode>::m_buffer
IL_072D: ldloc.s 29 (System.UInt16)
IL_072F: ldelema NetNode
IL_0734: ldloca.s 18 (ElectricityManager+PulseUnit)
IL_0736: ldfld System.UInt16 PulseUnit::m_group
IL_073B: ldc.r4 -100000
IL_0740: ldc.r4 -100000
IL_0745: ldc.r4 100000
IL_074A: ldc.r4 100000
IL_074F: call System.Void ElectricityManager::ConductToNode(System.UInt16
nodeIndex, NetNode& node, System.UInt16 group, System.Single minX, System.Single
minZ, System.Single maxX, System.Single maxZ)
IL_0754: Label46
IL_0754: ldloc.s 25 (System.Int32)
IL_0756: ldc.i4.1
IL_0757: add
IL_0758: stloc.s 25 (System.Int32)
IL_075A: Label45
IL_075A: ldloc.s 25 (System.Int32)
IL_075C: ldc.i4.8
IL_075D: blt => Label49
IL_0762: Label43
IL_0762: Label44
IL_0762: br => Label50
IL_0767: Label42
IL_0767: ldarg.0
IL_0768: ldfld PulseUnit[] ElectricityManager::m_pulseUnits
IL_076D: ldarg.0
IL_076E: ldfld System.Int32 ElectricityManager::m_pulseUnitEnd
IL_0773: ldelema ElectricityManager+PulseUnit
IL_0778: ldloc.s 18 (ElectricityManager+PulseUnit)
IL_077A: stobj ElectricityManager+PulseUnit
IL_077F: ldarg.0
IL_0780: dup
IL_0781: ldfld System.Int32 ElectricityManager::m_pulseUnitEnd
IL_0786: ldc.i4.1
IL_0787: add
IL_0788: dup
IL_0789: stloc.s 15 (System.Int32)
IL_078B: stfld System.Int32 ElectricityManager::m_pulseUnitEnd
IL_0790: ldloc.s 15 (System.Int32)
IL_0792: ldarg.0
IL_0793: ldfld PulseUnit[] ElectricityManager::m_pulseUnits
IL_0798: ldlen
IL_0799: conv.i4
IL_079A: bne.un => Label51
IL_079F: ldarg.0
IL_07A0: ldc.i4.0
IL_07A1: stfld System.Int32 ElectricityManager::m_pulseUnitEnd
IL_07A6: Label25
IL_07A6: Label41
IL_07A6: Label50
IL_07A6: Label51
IL_07A6: ldarg.0
IL_07A7: ldfld System.Int32 ElectricityManager::m_pulseUnitStart
IL_07AC: ldloc.s 17 (System.Int32)
IL_07AE: bne.un => Label52
IL_07B3: Label24
IL_07B3: ldarg.0
IL_07B4: ldfld System.Boolean ElectricityManager::m_canContinue
IL_07B9: brfalse => Label53
IL_07BE: ldarg.0
IL_07BF: ldfld System.Int32 ElectricityManager::m_processedCells
IL_07C4: ldloc.s 16 (System.Int32)
IL_07C6: blt => Label54
IL_07CB: Label53
IL_07CB: ldloc.1
IL_07CC: ldc.i4 255
IL_07D1: bne.un => Label55
IL_07D6: ldc.i4.0
IL_07D7: stloc.s 30 (System.Int32)
IL_07D9: br => Label56
IL_07DE: Label58
IL_07DE: ldarg.0
IL_07DF: ldfld PulseGroup[] ElectricityManager::m_pulseGroups
IL_07E4: ldloc.s 30 (System.Int32)
IL_07E6: ldelema ElectricityManager+PulseGroup
IL_07EB: ldobj ElectricityManager+PulseGroup
IL_07F0: stloc.s 31 (ElectricityManager+PulseGroup)
IL_07F2: ldloca.s 31 (ElectricityManager+PulseGroup)
IL_07F4: ldfld System.UInt16 PulseGroup::m_mergeIndex
IL_07F9: ldc.i4 65535
IL_07FE: beq => Label57
IL_0803: ldarg.0
IL_0804: ldfld PulseGroup[] ElectricityManager::m_pulseGroups
IL_0809: ldloca.s 31 (ElectricityManager+PulseGroup)
IL_080B: ldfld System.UInt16 PulseGroup::m_mergeIndex
IL_0810: ldelema ElectricityManager+PulseGroup
IL_0815: ldobj ElectricityManager+PulseGroup
IL_081A: stloc.s 32 (ElectricityManager+PulseGroup)
IL_081C: ldloca.s 31 (ElectricityManager+PulseGroup)
IL_081E: ldloca.s 32 (ElectricityManager+PulseGroup)
IL_0820: ldfld System.UInt32 PulseGroup::m_curCharge
IL_0825: conv.u8
IL_0826: ldloca.s 31 (ElectricityManager+PulseGroup)
IL_0828: ldfld System.UInt32 PulseGroup::m_origCharge
IL_082D: conv.u8
IL_082E: mul
IL_082F: ldloca.s 32 (ElectricityManager+PulseGroup)
IL_0831: ldfld System.UInt32 PulseGroup::m_origCharge
IL_0836: conv.u8
IL_0837: div.un
IL_0838: conv.u4
IL_0839: stfld System.UInt32 PulseGroup::m_curCharge
IL_083E: ldloca.s 32 (ElectricityManager+PulseGroup)
IL_0840: dup
IL_0841: ldfld System.UInt32 PulseGroup::m_curCharge
IL_0846: ldloca.s 31 (ElectricityManager+PulseGroup)
IL_0848: ldfld System.UInt32 PulseGroup::m_curCharge
IL_084D: sub
IL_084E: stfld System.UInt32 PulseGroup::m_curCharge
IL_0853: ldloca.s 32 (ElectricityManager+PulseGroup)
IL_0855: dup
IL_0856: ldfld System.UInt32 PulseGroup::m_origCharge
IL_085B: ldloca.s 31 (ElectricityManager+PulseGroup)
IL_085D: ldfld System.UInt32 PulseGroup::m_origCharge
IL_0862: sub
IL_0863: stfld System.UInt32 PulseGroup::m_origCharge
IL_0868: ldarg.0
IL_0869: ldfld PulseGroup[] ElectricityManager::m_pulseGroups
IL_086E: ldloca.s 31 (ElectricityManager+PulseGroup)
IL_0870: ldfld System.UInt16 PulseGroup::m_mergeIndex
IL_0875: ldelema ElectricityManager+PulseGroup
IL_087A: ldloc.s 32 (ElectricityManager+PulseGroup)
IL_087C: stobj ElectricityManager+PulseGroup
IL_0881: ldarg.0
IL_0882: ldfld PulseGroup[] ElectricityManager::m_pulseGroups
IL_0887: ldloc.s 30 (System.Int32)
IL_0889: ldelema ElectricityManager+PulseGroup
IL_088E: ldloc.s 31 (ElectricityManager+PulseGroup)
IL_0890: stobj ElectricityManager+PulseGroup
IL_0895: Label57
IL_0895: ldloc.s 30 (System.Int32)
IL_0897: ldc.i4.1
IL_0898: add
IL_0899: stloc.s 30 (System.Int32)
IL_089B: Label56
IL_089B: ldloc.s 30 (System.Int32)
IL_089D: ldarg.0
IL_089E: ldfld System.Int32 ElectricityManager::m_pulseGroupCount
IL_08A3: blt => Label58
IL_08A8: ldc.i4.0
IL_08A9: stloc.s 33 (System.Int32)
IL_08AB: br => Label59
IL_08B0: Label62
IL_08B0: ldarg.0
IL_08B1: ldfld PulseGroup[] ElectricityManager::m_pulseGroups
IL_08B6: ldloc.s 33 (System.Int32)
IL_08B8: ldelema ElectricityManager+PulseGroup
IL_08BD: ldobj ElectricityManager+PulseGroup
IL_08C2: stloc.s 34 (ElectricityManager+PulseGroup)
IL_08C4: ldloca.s 34 (ElectricityManager+PulseGroup)
IL_08C6: ldfld System.UInt32 PulseGroup::m_curCharge
IL_08CB: brfalse => Label60
IL_08D0: ldloca.s 34 (ElectricityManager+PulseGroup)
IL_08D2: ldfld System.Byte PulseGroup::m_z
IL_08D7: ldc.i4 256
IL_08DC: mul
IL_08DD: ldloca.s 34 (ElectricityManager+PulseGroup)
IL_08DF: ldfld System.Byte PulseGroup::m_x
IL_08E4: add
IL_08E5: stloc.s 35 (System.Int32)
IL_08E7: ldarg.0
IL_08E8: ldfld Cell[] ElectricityManager::m_electricityGrid
IL_08ED: ldloc.s 35 (System.Int32)
IL_08EF: ldelema ElectricityManager+Cell
IL_08F4: ldobj ElectricityManager+Cell
IL_08F9: stloc.s 36 (ElectricityManager+Cell)
IL_08FB: ldloca.s 36 (ElectricityManager+Cell)
IL_08FD: ldfld System.Byte Cell::m_conductivity
IL_0902: brfalse => Label61
IL_0907: ldloca.s 36 (ElectricityManager+Cell)
IL_0909: dup
IL_090A: ldfld System.UInt16 Cell::m_extraCharge
IL_090F: ldloca.s 34 (ElectricityManager+PulseGroup)
IL_0911: ldfld System.UInt32 PulseGroup::m_curCharge
IL_0916: ldc.i4 32767
IL_091B: ldloca.s 36 (ElectricityManager+Cell)
IL_091D: ldfld System.UInt16 Cell::m_extraCharge
IL_0922: sub
IL_0923: call static System.Int32 UnityEngine.Mathf::Min(System.Int32 a,
System.Int32 b)
IL_0928: conv.u2
IL_0929: add
IL_092A: conv.u2
IL_092B: stfld System.UInt16 Cell::m_extraCharge
IL_0930: Label61
IL_0930: ldarg.0
IL_0931: ldfld Cell[] ElectricityManager::m_electricityGrid
IL_0936: ldloc.s 35 (System.Int32)
IL_0938: ldelema ElectricityManager+Cell
IL_093D: ldloc.s 36 (ElectricityManager+Cell)
IL_093F: stobj ElectricityManager+Cell
IL_0944: Label60
IL_0944: ldloc.s 33 (System.Int32)
IL_0946: ldc.i4.1
IL_0947: add
IL_0948: stloc.s 33 (System.Int32)
IL_094A: Label59
IL_094A: ldloc.s 33 (System.Int32)
IL_094C: ldarg.0
IL_094D: ldfld System.Int32 ElectricityManager::m_pulseGroupCount
IL_0952: blt => Label62
IL_0957: // end original
IL_0957: Label0
IL_0957: Label1
IL_0957: Label22
IL_0957: Label55
IL_0957: ret
DONE

### Patch: System.Void ElectricityManager::ConductToNode(System.UInt16 nodeIndex,


NetNode& node, System.UInt16 group, System.Single minX, System.Single minZ,
System.Single maxX, System.Single maxZ)
### Replacement: static System.Void
ElectricityManager::ElectricityManager.ConductToNode_Patch0(ElectricityManager
this, System.UInt16 nodeIndex, NetNode& node, System.UInt16 group, System.Single
minX, System.Single minZ, System.Single maxX, System.Single maxZ)
IL_0000: Local var 0: NetInfo
IL_0000: Local var 1: ElectricityManager/PulseUnit
IL_0000: Local var 2: System.Int32
IL_0000: Local var 3: System.UInt16
IL_0000: // start original
IL_0000: ldarg.2
IL_0001: ldflda UnityEngine.Vector3 NetNode::m_position
IL_0006: ldfld System.Single UnityEngine.Vector3::x
IL_000B: ldarg.s 4
IL_000D: blt.un => Label0
IL_0012: ldarg.2
IL_0013: ldflda UnityEngine.Vector3 NetNode::m_position
IL_0018: ldfld System.Single UnityEngine.Vector3::z
IL_001D: ldarg.s 5
IL_001F: blt.un => Label1
IL_0024: ldarg.2
IL_0025: ldflda UnityEngine.Vector3 NetNode::m_position
IL_002A: ldfld System.Single UnityEngine.Vector3::x
IL_002F: ldarg.s 6
IL_0031: bgt.un => Label2
IL_0036: ldarg.2
IL_0037: ldflda UnityEngine.Vector3 NetNode::m_position
IL_003C: ldfld System.Single UnityEngine.Vector3::z
IL_0041: ldarg.s 7
IL_0043: bgt.un => Label3
IL_0048: ldarg.2
IL_0049: call NetInfo NetNode::get_Info()
IL_004E: stloc.0
IL_004F: ldloc.0
IL_0050: ldfld ItemClass NetInfo::m_class
IL_0055: ldfld Service ItemClass::m_service
IL_005A: ldc.i4.s 10
IL_005C: beq => Label4
IL_0061: ldarg.2
IL_0062: call NetInfo NetNode::get_Info()
IL_0067: ldfld NetAI NetInfo::m_netAI
IL_006C: isinst ConcourseAI
IL_0071: brfalse => Label5
IL_0076: Label4
IL_0076: ldarg.0
IL_0077: ldfld System.UInt16[] ElectricityManager::m_nodeGroups
IL_007C: ldarg.1
IL_007D: ldelem.u2
IL_007E: ldc.i4 65535
IL_0083: bne.un => Label6
IL_0088: ldloca.s 1 (ElectricityManager+PulseUnit)
IL_008A: ldarg.3
IL_008B: stfld System.UInt16 PulseUnit::m_group
IL_0090: ldloca.s 1 (ElectricityManager+PulseUnit)
IL_0092: ldarg.1
IL_0093: stfld System.UInt16 PulseUnit::m_node
IL_0098: ldloca.s 1 (ElectricityManager+PulseUnit)
IL_009A: ldc.i4.0
IL_009B: stfld System.Byte PulseUnit::m_x
IL_00A0: ldloca.s 1 (ElectricityManager+PulseUnit)
IL_00A2: ldc.i4.0
IL_00A3: stfld System.Byte PulseUnit::m_z
IL_00A8: ldarg.0
IL_00A9: ldfld PulseUnit[] ElectricityManager::m_pulseUnits
IL_00AE: ldarg.0
IL_00AF: ldfld System.Int32 ElectricityManager::m_pulseUnitEnd
IL_00B4: ldelema ElectricityManager+PulseUnit
IL_00B9: ldloc.1
IL_00BA: stobj ElectricityManager+PulseUnit
IL_00BF: ldarg.0
IL_00C0: dup
IL_00C1: ldfld System.Int32 ElectricityManager::m_pulseUnitEnd
IL_00C6: ldc.i4.1
IL_00C7: add
IL_00C8: dup
IL_00C9: stloc.2
IL_00CA: stfld System.Int32 ElectricityManager::m_pulseUnitEnd
IL_00CF: ldloc.2
IL_00D0: ldarg.0
IL_00D1: ldfld PulseUnit[] ElectricityManager::m_pulseUnits
IL_00D6: ldlen
IL_00D7: conv.i4
IL_00D8: bne.un => Label7
IL_00DD: ldarg.0
IL_00DE: ldc.i4.0
IL_00DF: stfld System.Int32 ElectricityManager::m_pulseUnitEnd
IL_00E4: Label7
IL_00E4: ldarg.0
IL_00E5: ldfld System.UInt16[] ElectricityManager::m_nodeGroups
IL_00EA: ldarg.1
IL_00EB: ldarg.3
IL_00EC: stelem.i2
IL_00ED: ldarg.0
IL_00EE: ldc.i4.1
IL_00EF: stfld System.Boolean ElectricityManager::m_canContinue
IL_00F4: br => Label8
IL_00F9: Label6
IL_00F9: ldarg.0
IL_00FA: ldarg.0
IL_00FB: ldfld System.UInt16[] ElectricityManager::m_nodeGroups
IL_0100: ldarg.1
IL_0101: ldelem.u2
IL_0102: call System.UInt16 ElectricityManager::GetRootGroup(System.UInt16
group)
IL_0107: stloc.3
IL_0108: ldloc.3
IL_0109: ldarg.3
IL_010A: beq => Label9
IL_010F: ldarg.0
IL_0110: ldarg.3
IL_0111: ldloc.3
IL_0112: call System.Void ElectricityManager::MergeGroups(System.UInt16 root,
System.UInt16 merged)
IL_0117: ldarg.0
IL_0118: ldfld System.UInt16[] ElectricityManager::m_nodeGroups
IL_011D: ldarg.1
IL_011E: ldarg.3
IL_011F: stelem.i2
IL_0120: ldarg.0
IL_0121: ldc.i4.1
IL_0122: stfld System.Boolean ElectricityManager::m_canContinue
IL_0127: // end original
IL_0127: Label0
IL_0127: Label1
IL_0127: Label2
IL_0127: Label3
IL_0127: Label5
IL_0127: Label8
IL_0127: Label9
IL_0127: ret
DONE

### Patch: System.Void ElectricityManager::UpdateNodeElectricity(System.Int32


nodeID, System.Int32 value)
### Replacement: static System.Void
ElectricityManager::ElectricityManager.UpdateNodeElectricity_Patch0(ElectricityMana
ger this, System.Int32 nodeID, System.Int32 value)
IL_0000: Local var 0: InfoManager/InfoMode
IL_0000: Local var 1: NetManager
IL_0000: Local var 2: System.Boolean
IL_0000: Local var 3: NetNode/Flags
IL_0000: Local var 4: System.UInt16
IL_0000: Local var 5: BuildingManager
IL_0000: Local var 6: NetNode/Flags
IL_0000: Local var 7: System.Int32
IL_0000: Local var 8: System.UInt16
IL_0000: // start original
IL_0000: call static InfoManager
ColossalFramework.Singleton`1<InfoManager>::get_instance()
IL_0005: callvirt InfoMode InfoManager::get_CurrentMode()
IL_000A: stloc.0
IL_000B: call static NetManager
ColossalFramework.Singleton`1<NetManager>::get_instance()
IL_0010: stloc.1
IL_0011: ldc.i4.0
IL_0012: stloc.2
IL_0013: ldloc.1
IL_0014: ldfld Array16`1<NetNode> NetManager::m_nodes
IL_0019: ldfld NetNode[] Array16`1<NetNode>::m_buffer
IL_001E: ldarg.1
IL_001F: ldelema NetNode
IL_0024: ldfld Flags NetNode::m_flags
IL_0029: stloc.3
IL_002A: ldloc.3
IL_002B: ldc.i4 1048576
IL_0030: and
IL_0031: brfalse => Label0
IL_0036: ldloc.1
IL_0037: ldfld Array16`1<NetNode> NetManager::m_nodes
IL_003C: ldfld NetNode[] Array16`1<NetNode>::m_buffer
IL_0041: ldarg.1
IL_0042: ldelema NetNode
IL_0047: dup
IL_0048: ldfld Flags NetNode::m_flags
IL_004D: ldc.i4 -1048577
IL_0052: and
IL_0053: stfld Flags NetNode::m_flags
IL_0058: br => Label10
IL_005D: Label0
IL_005D: ldloc.1
IL_005E: ldfld Array16`1<NetNode> NetManager::m_nodes
IL_0063: ldfld NetNode[] Array16`1<NetNode>::m_buffer
IL_0068: ldarg.1
IL_0069: ldelema NetNode
IL_006E: ldfld System.UInt16 NetNode::m_building
IL_0073: stloc.s 4 (System.UInt16)
IL_0075: ldloc.s 4 (System.UInt16)
IL_0077: brfalse => Label1
IL_007C: call static BuildingManager
ColossalFramework.Singleton`1<BuildingManager>::get_instance()
IL_0081: stloc.s 5 (BuildingManager)
IL_0083: ldloc.s 5 (BuildingManager)
IL_0085: ldfld Array16`1<Building> BuildingManager::m_buildings
IL_008A: ldfld Building[] Array16`1<Building>::m_buffer
IL_008F: ldloc.s 4 (System.UInt16)
IL_0091: ldelema Building
IL_0096: ldfld System.UInt16 Building::m_electricityBuffer
IL_009B: ldarg.2
IL_009C: beq => Label2
IL_00A1: ldloc.s 5 (BuildingManager)
IL_00A3: ldfld Array16`1<Building> BuildingManager::m_buildings
IL_00A8: ldfld Building[] Array16`1<Building>::m_buffer
IL_00AD: ldloc.s 4 (System.UInt16)
IL_00AF: ldelema Building
IL_00B4: ldarg.2
IL_00B5: conv.u2
IL_00B6: stfld System.UInt16 Building::m_electricityBuffer
IL_00BB: ldloc.0
IL_00BC: ldc.i4.1
IL_00BD: ceq
IL_00BF: stloc.2
IL_00C0: Label2
IL_00C0: ldloc.2
IL_00C1: brfalse => Label3
IL_00C6: ldloc.s 5 (BuildingManager)
IL_00C8: ldloc.s 4 (System.UInt16)
IL_00CA: callvirt System.Void BuildingManager::UpdateBuildingColors(System.UInt16
building)
IL_00CF: Label1
IL_00CF: Label3
IL_00CF: ldloc.3
IL_00D0: ldc.i4 -67108865
IL_00D5: and
IL_00D6: stloc.s 6 (NetNode+Flags)
IL_00D8: ldarg.2
IL_00D9: brfalse => Label4
IL_00DE: ldloc.s 6 (NetNode+Flags)
IL_00E0: ldc.i4 67108864
IL_00E5: or
IL_00E6: stloc.s 6 (NetNode+Flags)
IL_00E8: Label4
IL_00E8: ldloc.s 6 (NetNode+Flags)
IL_00EA: ldloc.3
IL_00EB: beq => Label5
IL_00F0: ldloc.1
IL_00F1: ldfld Array16`1<NetNode> NetManager::m_nodes
IL_00F6: ldfld NetNode[] Array16`1<NetNode>::m_buffer
IL_00FB: ldarg.1
IL_00FC: ldelema NetNode
IL_0101: ldloc.s 6 (NetNode+Flags)
IL_0103: stfld Flags NetNode::m_flags
IL_0108: ldloc.0
IL_0109: ldc.i4.1
IL_010A: ceq
IL_010C: stloc.2
IL_010D: Label5
IL_010D: ldloc.2
IL_010E: brfalse => Label6
IL_0113: ldloc.1
IL_0114: ldarg.1
IL_0115: conv.u2
IL_0116: callvirt System.Void NetManager::UpdateNodeColors(System.UInt16 node)
IL_011B: ldc.i4.0
IL_011C: stloc.s 7 (System.Int32)
IL_011E: br => Label7
IL_0123: Label9
IL_0123: ldloc.1
IL_0124: ldfld Array16`1<NetNode> NetManager::m_nodes
IL_0129: ldfld NetNode[] Array16`1<NetNode>::m_buffer
IL_012E: ldarg.1
IL_012F: ldelema NetNode
IL_0134: ldloc.s 7 (System.Int32)
IL_0136: call System.UInt16 NetNode::GetSegment(System.Int32 index)
IL_013B: stloc.s 8 (System.UInt16)
IL_013D: ldloc.s 8 (System.UInt16)
IL_013F: brfalse => Label8
IL_0144: ldloc.1
IL_0145: ldloc.s 8 (System.UInt16)
IL_0147: callvirt System.Void NetManager::UpdateSegmentColors(System.UInt16
segment)
IL_014C: Label8
IL_014C: ldloc.s 7 (System.Int32)
IL_014E: ldc.i4.1
IL_014F: add
IL_0150: stloc.s 7 (System.Int32)
IL_0152: Label7
IL_0152: ldloc.s 7 (System.Int32)
IL_0154: ldc.i4.8
IL_0155: blt => Label9
IL_015A: // end original
IL_015A: Label6
IL_015A: Label10
IL_015A: ret
DONE

### Patch: virtual System.Void ColossalFramework.UI.UIView::Start()


### Replacement: static System.Void
ColossalFramework.UI.UIView::ColossalFramework.UI.UIView.Start_Patch1(ColossalFrame
work.UI.UIView this)
IL_0000: Local var 0:
ColossalFramework.PoolList`1<ColossalFramework.UI.UIComponent>
IL_0000: Local var 1: ColossalFramework.UI.UIComponent
IL_0000: Local var 2:
System.Collections.Generic.IEnumerator`1<ColossalFramework.UI.UIComponent>
IL_0000: // start original
IL_0000: ldarg.0
IL_0001: ldc.i4.0
IL_0002: stfld System.Int32 ColossalFramework.UI.UIView::m_FramesRendered
IL_0007: ldarg.0
IL_0008: call System.Void
ColossalFramework.UI.UIView::InvalidateAllComponents()
IL_000D: ldarg.0
IL_000E: ldfld UnityEngine.MeshRenderer
ColossalFramework.UI.UIView::m_MeshRenderer
IL_0013: ldnull
IL_0014: call static System.Boolean
UnityEngine.Object::op_Inequality(UnityEngine.Object x, UnityEngine.Object y)
IL_0019: brfalse => Label0
IL_001E: ldarg.0
IL_001F: ldfld UnityEngine.MeshRenderer
ColossalFramework.UI.UIView::m_MeshRenderer
IL_0024: ldc.i4.1
IL_0025: callvirt System.Void UnityEngine.Renderer::set_enabled(System.Boolean
value)
IL_002A: Label0
IL_002A: ldarg.0
IL_002B: call ColossalFramework.PoolList`1<ColossalFramework.UI.UIComponent>
ColossalFramework.UI.UIView::GetTopLevelComponents()
IL_0030: stloc.0
.try
{
IL_0031: ldloc.0
IL_0032: callvirt virtual
System.Collections.Generic.IEnumerator`1<ColossalFramework.UI.UIComponent>
ColossalFramework.PoolList`1<ColossalFramework.UI.UIComponent>::GetEnumerator()
IL_0037: stloc.2
.try
{
IL_0038: br => Label1
IL_003D: Label2
IL_003D: ldloc.2
IL_003E: callvirt abstract virtual ColossalFramework.UI.UIComponent
System.Collections.Generic.IEnumerator`1<ColossalFramework.UI.UIComponent>::get_Cur
rent()
IL_0043: stloc.1
IL_0044: ldloc.1
IL_0045: ldc.i4.1
IL_0046: callvirt System.Void
ColossalFramework.UI.UIComponent::InitializeParentVisibilityCache(System.Boolean
parentVisible)
IL_004B: Label1
IL_004B: ldloc.2
IL_004C: callvirt abstract virtual System.Boolean
System.Collections.IEnumerator::MoveNext()
IL_0051: brtrue => Label2
IL_0056: leave => Label3
IL_005B: leave => (autogenerated)
} // end try
.finally
{
IL_0060: ldloc.2
IL_0061: brfalse => Label4
IL_0066: ldloc.2
IL_0067: callvirt abstract virtual System.Void
System.IDisposable::Dispose()
IL_006C: Label4
IL_006C: endfinally
IL_006D: leave => (autogenerated)
} // end handler
IL_006E: Label3
IL_006E: leave => Label5
IL_0073: leave => (autogenerated)
} // end try
.finally
{
IL_0078: ldloc.0
IL_0079: brfalse => Label6
IL_007E: ldloc.0
IL_007F: callvirt abstract virtual System.Void
System.IDisposable::Dispose()
IL_0084: Label6
IL_0084: endfinally
IL_0085: leave => (autogenerated)
} // end handler
IL_0086: Label5
IL_0086: ldarg.0
IL_0087: ldc.i4.1
IL_0088: stfld System.Boolean
ColossalFramework.UI.UIView::m_VisibilityCacheInitialized
IL_008D: // end original
IL_008D: call static System.Void
Kwytto.Redirectors.UIViewRedirector::AfterStart()
IL_0092: ret
DONE

### Patch: virtual UnityEngine.Color NetAI::GetColor(System.UInt16 nodeID, NetNode&


data, InfoMode infoMode, SubInfoMode subInfoMode)
### Replacement: static UnityEngine.Color NetAI::NetAI.GetColor_Patch1(NetAI this,
System.UInt16 nodeID, NetNode& data, InfoMode infoMode, SubInfoMode subInfoMode)
IL_0000: Local var 0: UnityEngine.Color
IL_0000: ldloca 0 (UnityEngine.Color)
IL_0004: initobj UnityEngine.Color
IL_000A: // start original
IL_000A: ldarg.3
IL_000B: brfalse => Label0
IL_0010: call static InfoManager
ColossalFramework.Singleton`1<InfoManager>::get_instance()
IL_0015: ldfld InfoProperties SimulationManagerBase`2<InfoManager,
InfoProperties>::m_properties
IL_001A: ldfld UnityEngine.Color InfoProperties::m_neutralColor
IL_001F: br => Label1
IL_0024: Label0
IL_0024: ldarg.0
IL_0025: ldfld NetInfo NetAI::m_info
IL_002A: ldfld UnityEngine.Color NetInfo::m_color
IL_002F: // end original
IL_002F: Label1
IL_002F: stloc 0 (UnityEngine.Color)
IL_0033: ldloca 0 (UnityEngine.Color)
IL_0037: ldarg 1
IL_003B: ldarg 2
IL_003F: ldarg 3
IL_0043: ldarg 4
IL_0047: call static System.Void
ElectricRoads.Overrides.ElectricRoadsOverrides::AfterGetColorNode(UnityEngine.Color
& __result, System.UInt16 nodeID, NetNode& data, InfoMode infoMode, SubInfoMode
subInfoMode)
IL_004C: ldloc 0 (UnityEngine.Color)
IL_0050: ret
DONE

### Patch: virtual UnityEngine.Color NetAI::GetColor(System.UInt16 segmentID,


NetSegment& data, InfoMode infoMode, SubInfoMode subInfoMode)
### Replacement: static UnityEngine.Color NetAI::NetAI.GetColor_Patch1(NetAI this,
System.UInt16 segmentID, NetSegment& data, InfoMode infoMode, SubInfoMode
subInfoMode)
IL_0000: Local var 0: UnityEngine.Color
IL_0000: ldloca 0 (UnityEngine.Color)
IL_0004: initobj UnityEngine.Color
IL_000A: // start original
IL_000A: ldarg.3
IL_000B: brfalse => Label0
IL_0010: call static InfoManager
ColossalFramework.Singleton`1<InfoManager>::get_instance()
IL_0015: ldfld InfoProperties SimulationManagerBase`2<InfoManager,
InfoProperties>::m_properties
IL_001A: ldfld UnityEngine.Color InfoProperties::m_neutralColor
IL_001F: br => Label1
IL_0024: Label0
IL_0024: ldarg.0
IL_0025: ldfld NetInfo NetAI::m_info
IL_002A: ldfld UnityEngine.Color NetInfo::m_color
IL_002F: // end original
IL_002F: Label1
IL_002F: stloc 0 (UnityEngine.Color)
IL_0033: ldloca 0 (UnityEngine.Color)
IL_0037: ldarg 1
IL_003B: ldarg 2
IL_003F: ldarg 3
IL_0043: ldarg 4
IL_0047: call static System.Void
ElectricRoads.Overrides.ElectricRoadsOverrides::AfterGetColorSegment(UnityEngine.Co
lor& __result, System.UInt16 segmentID, NetSegment& data, InfoMode infoMode,
SubInfoMode subInfoMode)
IL_004C: ldloc 0 (UnityEngine.Color)
IL_0050: ret
DONE

### Patch: System.Void ElectricityManager::UpdateNodeElectricity(System.Int32


nodeID, System.Int32 value)
### Replacement: static System.Void
ElectricityManager::ElectricityManager.UpdateNodeElectricity_Patch0(ElectricityMana
ger this, System.Int32 nodeID, System.Int32 value)
IL_0000: Local var 0: InfoManager/InfoMode
IL_0000: Local var 1: NetManager
IL_0000: Local var 2: System.Boolean
IL_0000: Local var 3: NetNode/Flags
IL_0000: Local var 4: System.UInt16
IL_0000: Local var 5: BuildingManager
IL_0000: Local var 6: NetNode/Flags
IL_0000: Local var 7: System.Int32
IL_0000: Local var 8: System.UInt16
IL_0000: // start original
IL_0000: call static InfoManager
ColossalFramework.Singleton`1<InfoManager>::get_instance()
IL_0005: callvirt InfoMode InfoManager::get_CurrentMode()
IL_000A: stloc.0
IL_000B: call static NetManager
ColossalFramework.Singleton`1<NetManager>::get_instance()
IL_0010: stloc.1
IL_0011: ldc.i4.0
IL_0012: stloc.2
IL_0013: ldloc.1
IL_0014: ldfld Array16`1<NetNode> NetManager::m_nodes
IL_0019: ldfld NetNode[] Array16`1<NetNode>::m_buffer
IL_001E: ldarg.1
IL_001F: ldelema NetNode
IL_0024: ldfld Flags NetNode::m_flags
IL_0029: stloc.3
IL_002A: ldarg.1
IL_002B: call static System.Boolean
ElectricRoads.Overrides.ElectricRoadsOverrides::CheckNodeTransition(System.Int32
nodeID)
IL_0030: brfalse => Label0
IL_0035: ldloc.1
IL_0036: ldfld Array16`1<NetNode> NetManager::m_nodes
IL_003B: ldfld NetNode[] Array16`1<NetNode>::m_buffer
IL_0040: ldarg.1
IL_0041: ldelema NetNode
IL_0046: dup
IL_0047: ldfld Flags NetNode::m_flags
IL_004C: ldc.i4 -1048577
IL_0051: and
IL_0052: stfld Flags NetNode::m_flags
IL_0057: br => Label10
IL_005C: Label0
IL_005C: ldloc.1
IL_005D: ldfld Array16`1<NetNode> NetManager::m_nodes
IL_0062: ldfld NetNode[] Array16`1<NetNode>::m_buffer
IL_0067: ldarg.1
IL_0068: ldelema NetNode
IL_006D: ldfld System.UInt16 NetNode::m_building
IL_0072: stloc.s 4 (System.UInt16)
IL_0074: ldloc.s 4 (System.UInt16)
IL_0076: brfalse => Label1
IL_007B: call static BuildingManager
ColossalFramework.Singleton`1<BuildingManager>::get_instance()
IL_0080: stloc.s 5 (BuildingManager)
IL_0082: ldloc.s 5 (BuildingManager)
IL_0084: ldfld Array16`1<Building> BuildingManager::m_buildings
IL_0089: ldfld Building[] Array16`1<Building>::m_buffer
IL_008E: ldloc.s 4 (System.UInt16)
IL_0090: ldelema Building
IL_0095: ldfld System.UInt16 Building::m_electricityBuffer
IL_009A: ldarg.2
IL_009B: beq => Label2
IL_00A0: ldloc.s 5 (BuildingManager)
IL_00A2: ldfld Array16`1<Building> BuildingManager::m_buildings
IL_00A7: ldfld Building[] Array16`1<Building>::m_buffer
IL_00AC: ldloc.s 4 (System.UInt16)
IL_00AE: ldelema Building
IL_00B3: ldarg.2
IL_00B4: conv.u2
IL_00B5: stfld System.UInt16 Building::m_electricityBuffer
IL_00BA: ldloc.0
IL_00BB: ldc.i4.1
IL_00BC: ceq
IL_00BE: stloc.2
IL_00BF: Label2
IL_00BF: ldloc.2
IL_00C0: brfalse => Label3
IL_00C5: ldloc.s 5 (BuildingManager)
IL_00C7: ldloc.s 4 (System.UInt16)
IL_00C9: callvirt System.Void BuildingManager::UpdateBuildingColors(System.UInt16
building)
IL_00CE: Label1
IL_00CE: Label3
IL_00CE: ldloc.3
IL_00CF: ldc.i4 -67108865
IL_00D4: and
IL_00D5: stloc.s 6 (NetNode+Flags)
IL_00D7: ldarg.2
IL_00D8: brfalse => Label4
IL_00DD: ldloc.s 6 (NetNode+Flags)
IL_00DF: ldc.i4 67108864
IL_00E4: or
IL_00E5: stloc.s 6 (NetNode+Flags)
IL_00E7: Label4
IL_00E7: ldloc.s 6 (NetNode+Flags)
IL_00E9: ldloc.3
IL_00EA: beq => Label5
IL_00EF: ldloc.1
IL_00F0: ldfld Array16`1<NetNode> NetManager::m_nodes
IL_00F5: ldfld NetNode[] Array16`1<NetNode>::m_buffer
IL_00FA: ldarg.1
IL_00FB: ldelema NetNode
IL_0100: ldloc.s 6 (NetNode+Flags)
IL_0102: stfld Flags NetNode::m_flags
IL_0107: ldloc.0
IL_0108: ldc.i4.1
IL_0109: ceq
IL_010B: stloc.2
IL_010C: Label5
IL_010C: ldloc.2
IL_010D: brfalse => Label6
IL_0112: ldloc.1
IL_0113: ldarg.1
IL_0114: conv.u2
IL_0115: callvirt System.Void NetManager::UpdateNodeColors(System.UInt16 node)
IL_011A: ldc.i4.0
IL_011B: stloc.s 7 (System.Int32)
IL_011D: br => Label7
IL_0122: Label9
IL_0122: ldloc.1
IL_0123: ldfld Array16`1<NetNode> NetManager::m_nodes
IL_0128: ldfld NetNode[] Array16`1<NetNode>::m_buffer
IL_012D: ldarg.1
IL_012E: ldelema NetNode
IL_0133: ldloc.s 7 (System.Int32)
IL_0135: call System.UInt16 NetNode::GetSegment(System.Int32 index)
IL_013A: stloc.s 8 (System.UInt16)
IL_013C: ldloc.s 8 (System.UInt16)
IL_013E: brfalse => Label8
IL_0143: ldloc.1
IL_0144: ldloc.s 8 (System.UInt16)
IL_0146: callvirt System.Void NetManager::UpdateSegmentColors(System.UInt16
segment)
IL_014B: Label8
IL_014B: ldloc.s 7 (System.Int32)
IL_014D: ldc.i4.1
IL_014E: add
IL_014F: stloc.s 7 (System.Int32)
IL_0151: Label7
IL_0151: ldloc.s 7 (System.Int32)
IL_0153: ldc.i4.8
IL_0154: blt => Label9
IL_0159: // end original
IL_0159: Label6
IL_0159: Label10
IL_0159: ret
DONE

### Patch: static System.Void PropInstance::RenderInstance(CameraInfo cameraInfo,


PropInfo info, InstanceID id, UnityEngine.Vector3 position, System.Single scale,
System.Single angle, UnityEngine.Color color, UnityEngine.Vector4 objectIndex,
System.Boolean active, UnityEngine.Texture heightMap, UnityEngine.Vector4
heightMapping, UnityEngine.Vector4 surfaceMapping, UnityEngine.Texture
waterHeightMap, UnityEngine.Vector4 waterHeightMapping, UnityEngine.Vector4
waterSurfaceMapping)
### Replacement: static System.Void
PropInstance::PropInstance.RenderInstance_Patch0(CameraInfo cameraInfo, PropInfo
info, InstanceID id, UnityEngine.Vector3 position, System.Single scale,
System.Single angle, UnityEngine.Color color, UnityEngine.Vector4 objectIndex,
System.Boolean active, UnityEngine.Texture heightMap, UnityEngine.Vector4
heightMapping, UnityEngine.Vector4 surfaceMapping, UnityEngine.Texture
waterHeightMap, UnityEngine.Vector4 waterHeightMapping, UnityEngine.Vector4
waterSurfaceMapping)
IL_0000: Local var 0: UnityEngine.Matrix4x4
IL_0000: Local var 1: System.Single
IL_0000: Local var 2: System.Int32
IL_0000: Local var 3: UnityEngine.Vector3
IL_0000: Local var 4: UnityEngine.Vector3
IL_0000: Local var 5: EffectInfo/SpawnArea
IL_0000: Local var 6: System.Single
IL_0000: Local var 7: LightSystem
IL_0000: Local var 8: ColossalFramework.Math.Randomizer
IL_0000: Local var 9: UnityEngine.Vector4
IL_0000: Local var 10: System.Single
IL_0000: Local var 11: System.Single
IL_0000: Local var 12: System.Single
IL_0000: Local var 13: UnityEngine.Matrix4x4
IL_0000: Local var 14: PropManager
IL_0000: Local var 15: UnityEngine.MaterialPropertyBlock
IL_0000: Local var 16: System.Int32
IL_0000: // start original
IL_0000: ldarg.1
IL_0001: ldfld System.Boolean PrefabInfo::m_prefabInitialized
IL_0006: brfalse => Label0
IL_000B: ldarg.1
IL_000C: ldfld System.Boolean PropInfo::m_hasEffects
IL_0011: brfalse => Label1
IL_0016: ldarg.s 8
IL_0018: brtrue => Label2
IL_001D: ldarg.1
IL_001E: ldfld System.Boolean PropInfo::m_alwaysActive
IL_0023: brfalse => Label3
IL_0028: Label2
IL_0028: ldloca.s 0 (UnityEngine.Matrix4x4)
IL_002A: initobj UnityEngine.Matrix4x4
IL_0030: ldloca.s 0 (UnityEngine.Matrix4x4)
IL_0032: ldarg.3
IL_0033: ldarg.s 5
IL_0035: ldc.r4 57.29578
IL_003A: mul
IL_003B: call static UnityEngine.Vector3 UnityEngine.Vector3::get_down()
IL_0040: call static UnityEngine.Quaternion
UnityEngine.Quaternion::AngleAxis(System.Single angle, UnityEngine.Vector3 axis)
IL_0045: ldarg.s 4
IL_0047: ldarg.s 4
IL_0049: ldarg.s 4
IL_004B: newobj System.Void UnityEngine.Vector3::.ctor(System.Single x,
System.Single y, System.Single z)
IL_0050: call System.Void UnityEngine.Matrix4x4::SetTRS(UnityEngine.Vector3
pos, UnityEngine.Quaternion q, UnityEngine.Vector3 s)
IL_0055: call static SimulationManager
ColossalFramework.Singleton`1<SimulationManager>::get_instance()
IL_005A: ldfld System.Single SimulationManager::m_simulationTimeDelta
IL_005F: stloc.1
IL_0060: ldc.i4.0
IL_0061: stloc.2
IL_0062: br => Label4
IL_0067: Label5
IL_0067: ldloca.s 0 (UnityEngine.Matrix4x4)
IL_0069: ldarg.1
IL_006A: ldfld Effect[] PropInfo::m_effects
IL_006F: ldloc.2
IL_0070: ldelema PropInfo+Effect
IL_0075: ldfld UnityEngine.Vector3 Effect::m_position
IL_007A: call UnityEngine.Vector3
UnityEngine.Matrix4x4::MultiplyPoint(UnityEngine.Vector3 v)
IL_007F: stloc.3
IL_0080: ldloca.s 0 (UnityEngine.Matrix4x4)
IL_0082: ldarg.1
IL_0083: ldfld Effect[] PropInfo::m_effects
IL_0088: ldloc.2
IL_0089: ldelema PropInfo+Effect
IL_008E: ldfld UnityEngine.Vector3 Effect::m_direction
IL_0093: call UnityEngine.Vector3
UnityEngine.Matrix4x4::MultiplyVector(UnityEngine.Vector3 v)
IL_0098: stloc.s 4 (UnityEngine.Vector3)
IL_009A: ldloca.s 5 (EffectInfo+SpawnArea)
IL_009C: ldloc.3
IL_009D: ldloc.s 4 (UnityEngine.Vector3)
IL_009F: ldc.r4 0
IL_00A4: call System.Void SpawnArea::.ctor(UnityEngine.Vector3 position,
UnityEngine.Vector3 direction, System.Single radius)
IL_00A9: ldarg.1
IL_00AA: ldfld Effect[] PropInfo::m_effects
IL_00AF: ldloc.2
IL_00B0: ldelema PropInfo+Effect
IL_00B5: ldfld EffectInfo Effect::m_effect
IL_00BA: ldarg.2
IL_00BB: ldloc.s 5 (EffectInfo+SpawnArea)
IL_00BD: call static UnityEngine.Vector3 UnityEngine.Vector3::get_zero()
IL_00C2: ldc.r4 0
IL_00C7: ldc.r4 1
IL_00CC: ldc.r4 -1
IL_00D1: ldloc.1
IL_00D2: ldarg.0
IL_00D3: callvirt virtual System.Void EffectInfo::RenderEffect(InstanceID id,
SpawnArea area, UnityEngine.Vector3 velocity, System.Single acceleration,
System.Single magnitude, System.Single timeOffset, System.Single timeDelta,
CameraInfo cameraInfo)
IL_00D8: ldloc.2
IL_00D9: ldc.i4.1
IL_00DA: add
IL_00DB: stloc.2
IL_00DC: Label4
IL_00DC: ldloc.2
IL_00DD: ldarg.1
IL_00DE: ldfld Effect[] PropInfo::m_effects
IL_00E3: ldlen
IL_00E4: conv.i4
IL_00E5: blt => Label5
IL_00EA: Label1
IL_00EA: Label3
IL_00EA: ldarg.1
IL_00EB: ldfld System.Boolean PropInfo::m_hasRenderer
IL_00F0: brfalse => Label6
IL_00F5: ldarg.0
IL_00F6: ldfld System.Int32 CameraInfo::m_layerMask
IL_00FB: ldc.i4.1
IL_00FC: ldarg.1
IL_00FD: ldfld System.Int32 PrefabInfo::m_prefabDataLayer
IL_0102: ldc.i4.s 31
IL_0104: and
IL_0105: shl
IL_0106: and
IL_0107: brfalse => Label7
IL_010C: call static InfoManager
ColossalFramework.Singleton`1<InfoManager>::get_instance()
IL_0111: callvirt InfoMode InfoManager::get_CurrentMode()
IL_0116: brtrue => Label8
IL_011B: ldarg 2
IL_011F: call static System.Boolean
ElectricRoads.Overrides.ElectricRoadsOverrides::CheckElectrityNetForLight(InstanceI
D id)
IL_0124: brfalse => Label24
IL_0129: ldc.r4 0
IL_012E: stloc.s 6 (System.Single)
IL_0130: ldarg.s 8
IL_0132: brtrue => Label9
IL_0137: ldarg.1
IL_0138: ldfld System.Boolean PropInfo::m_alwaysActive
IL_013D: brtrue => Label10
IL_0142: Label24
IL_0142: ldarga.s 7
IL_0144: ldc.r4 0
IL_0149: stfld System.Single UnityEngine.Vector4::z
IL_014E: br => Label11
IL_0153: Label9
IL_0153: Label10
IL_0153: ldarg.1
IL_0154: ldflda UnityEngine.Vector2 PropInfo::m_illuminationOffRange
IL_0159: ldfld System.Single UnityEngine.Vector2::x
IL_015E: ldc.r4 1000
IL_0163: blt => Label12
IL_0168: ldarg.1
IL_0169: ldfld BlinkType PropInfo::m_illuminationBlinkType
IL_016E: brfalse => Label13
IL_0173: Label12
IL_0173: call static RenderManager
ColossalFramework.Singleton`1<RenderManager>::get_instance()
IL_0178: callvirt LightSystem RenderManager::get_lightSystem()
IL_017D: stloc.s 7 (LightSystem)
IL_017F: ldloca.s 8 (ColossalFramework.Math.Randomizer)
IL_0181: ldarga.s 2
IL_0183: call System.UInt32 InstanceID::get_Index()
IL_0188: call System.Void
ColossalFramework.Math.Randomizer::.ctor(System.UInt32 _seed)
IL_018D: ldarg.1
IL_018E: ldflda UnityEngine.Vector2 PropInfo::m_illuminationOffRange
IL_0193: ldfld System.Single UnityEngine.Vector2::x
IL_0198: ldloca.s 8 (ColossalFramework.Math.Randomizer)
IL_019A: ldc.i4 100000
IL_019F: call System.Int32
ColossalFramework.Math.Randomizer::Int32(System.UInt32 range)
IL_01A4: conv.r4
IL_01A5: ldc.r4 1E-05
IL_01AA: mul
IL_01AB: ldarg.1
IL_01AC: ldflda UnityEngine.Vector2 PropInfo::m_illuminationOffRange
IL_01B1: ldfld System.Single UnityEngine.Vector2::y
IL_01B6: ldarg.1
IL_01B7: ldflda UnityEngine.Vector2 PropInfo::m_illuminationOffRange
IL_01BC: ldfld System.Single UnityEngine.Vector2::x
IL_01C1: sub
IL_01C2: mul
IL_01C3: add
IL_01C4: stloc.s 6 (System.Single)
IL_01C6: ldarga.s 7
IL_01C8: ldloc.s 6 (System.Single)
IL_01CA: ldc.r4 0.01
IL_01CF: add
IL_01D0: ldloc.s 6 (System.Single)
IL_01D2: ldc.r4 0.01
IL_01D7: sub
IL_01D8: ldloc.s 7 (LightSystem)
IL_01DA: callvirt System.Single LightSystem::get_DayLightIntensity()
IL_01DF: call static System.Single MathUtils::SmoothStep(System.Single edge0,
System.Single edge1, System.Single x)
IL_01E4: stfld System.Single UnityEngine.Vector4::z
IL_01E9: ldarg.1
IL_01EA: ldfld BlinkType PropInfo::m_illuminationBlinkType
IL_01EF: brfalse => Label14
IL_01F4: ldarg.1
IL_01F5: ldfld BlinkType PropInfo::m_illuminationBlinkType
IL_01FA: call static UnityEngine.Vector4
LightEffect::GetBlinkVector(BlinkType type)
IL_01FF: stloc.s 9 (UnityEngine.Vector4)
IL_0201: ldloc.s 6 (System.Single)
IL_0203: ldc.r4 3.71
IL_0208: mul
IL_0209: call static SimulationManager
ColossalFramework.Singleton`1<SimulationManager>::get_instance()
IL_020E: ldfld System.Single SimulationManager::m_simulationTimer
IL_0213: ldloca.s 9 (UnityEngine.Vector4)
IL_0215: ldfld System.Single UnityEngine.Vector4::w
IL_021A: div
IL_021B: add
IL_021C: stloc.s 10 (System.Single)
IL_021E: ldloc.s 10 (System.Single)
IL_0220: ldloc.s 10 (System.Single)
IL_0222: call static System.Single UnityEngine.Mathf::Floor(System.Single f)
IL_0227: sub
IL_0228: ldloca.s 9 (UnityEngine.Vector4)
IL_022A: ldfld System.Single UnityEngine.Vector4::w
IL_022F: mul
IL_0230: stloc.s 10 (System.Single)
IL_0232: ldloca.s 9 (UnityEngine.Vector4)
IL_0234: ldfld System.Single UnityEngine.Vector4::x
IL_0239: ldloca.s 9 (UnityEngine.Vector4)
IL_023B: ldfld System.Single UnityEngine.Vector4::y
IL_0240: ldloc.s 10 (System.Single)
IL_0242: call static System.Single MathUtils::SmoothStep(System.Single edge0,
System.Single edge1, System.Single x)
IL_0247: stloc.s 11 (System.Single)
IL_0249: ldloca.s 9 (UnityEngine.Vector4)
IL_024B: ldfld System.Single UnityEngine.Vector4::w
IL_0250: ldloca.s 9 (UnityEngine.Vector4)
IL_0252: ldfld System.Single UnityEngine.Vector4::z
IL_0257: ldloc.s 10 (System.Single)
IL_0259: call static System.Single MathUtils::SmoothStep(System.Single edge0,
System.Single edge1, System.Single x)
IL_025E: stloc.s 12 (System.Single)
IL_0260: ldarga.s 7
IL_0262: dup
IL_0263: ldfld System.Single UnityEngine.Vector4::z
IL_0268: ldc.r4 1
IL_026D: ldloc.s 11 (System.Single)
IL_026F: ldloc.s 12 (System.Single)
IL_0271: mul
IL_0272: sub
IL_0273: mul
IL_0274: stfld System.Single UnityEngine.Vector4::z
IL_0279: Label14
IL_0279: br => Label15
IL_027E: Label13
IL_027E: ldarga.s 7
IL_0280: ldc.r4 1
IL_0285: stfld System.Single UnityEngine.Vector4::z
IL_028A: Label8
IL_028A: Label11
IL_028A: Label15
IL_028A: ldarg.0
IL_028B: brfalse => Label16
IL_0290: ldarg.0
IL_0291: ldarg.3
IL_0292: ldarg.1
IL_0293: ldfld System.Single PropInfo::m_lodRenderDistance
IL_0298: callvirt System.Boolean
CameraInfo::CheckRenderDistance(UnityEngine.Vector3 point, System.Single
maxDistance)
IL_029D: brfalse => Label17
IL_02A2: Label16
IL_02A2: ldloca.s 13 (UnityEngine.Matrix4x4)
IL_02A4: initobj UnityEngine.Matrix4x4
IL_02AA: ldloca.s 13 (UnityEngine.Matrix4x4)
IL_02AC: ldarg.3
IL_02AD: ldarg.s 5
IL_02AF: ldc.r4 57.29578
IL_02B4: mul
IL_02B5: call static UnityEngine.Vector3 UnityEngine.Vector3::get_down()
IL_02BA: call static UnityEngine.Quaternion
UnityEngine.Quaternion::AngleAxis(System.Single angle, UnityEngine.Vector3 axis)
IL_02BF: ldarg.s 4
IL_02C1: ldarg.s 4
IL_02C3: ldarg.s 4
IL_02C5: newobj System.Void UnityEngine.Vector3::.ctor(System.Single x,
System.Single y, System.Single z)
IL_02CA: call System.Void UnityEngine.Matrix4x4::SetTRS(UnityEngine.Vector3
pos, UnityEngine.Quaternion q, UnityEngine.Vector3 s)
IL_02CF: call static PropManager
ColossalFramework.Singleton`1<PropManager>::get_instance()
IL_02D4: stloc.s 14 (PropManager)
IL_02D6: ldloc.s 14 (PropManager)
IL_02D8: ldfld UnityEngine.MaterialPropertyBlock PropManager::m_materialBlock
IL_02DD: stloc.s 15 (UnityEngine.MaterialPropertyBlock)
IL_02DF: ldloc.s 15 (UnityEngine.MaterialPropertyBlock)
IL_02E1: callvirt System.Void UnityEngine.MaterialPropertyBlock::Clear()
IL_02E6: ldloc.s 15 (UnityEngine.MaterialPropertyBlock)
IL_02E8: ldloc.s 14 (PropManager)
IL_02EA: ldfld System.Int32 PropManager::ID_Color
IL_02EF: ldarg.s 6
IL_02F1: callvirt System.Void
UnityEngine.MaterialPropertyBlock::SetColor(System.Int32 nameID, UnityEngine.Color
value)
IL_02F6: ldloc.s 15 (UnityEngine.MaterialPropertyBlock)
IL_02F8: ldloc.s 14 (PropManager)
IL_02FA: ldfld System.Int32 PropManager::ID_HeightMap
IL_02FF: ldarg.s 9
IL_0301: callvirt System.Void
UnityEngine.MaterialPropertyBlock::SetTexture(System.Int32 nameID,
UnityEngine.Texture value)
IL_0306: ldloc.s 15 (UnityEngine.MaterialPropertyBlock)
IL_0308: ldloc.s 14 (PropManager)
IL_030A: ldfld System.Int32 PropManager::ID_HeightMapping
IL_030F: ldarg.s 10
IL_0311: callvirt System.Void
UnityEngine.MaterialPropertyBlock::SetVector(System.Int32 nameID,
UnityEngine.Vector4 value)
IL_0316: ldloc.s 15 (UnityEngine.MaterialPropertyBlock)
IL_0318: ldloc.s 14 (PropManager)
IL_031A: ldfld System.Int32 PropManager::ID_SurfaceMapping
IL_031F: ldarg.s 11
IL_0321: callvirt System.Void
UnityEngine.MaterialPropertyBlock::SetVector(System.Int32 nameID,
UnityEngine.Vector4 value)
IL_0326: ldloc.s 15 (UnityEngine.MaterialPropertyBlock)
IL_0328: ldloc.s 14 (PropManager)
IL_032A: ldfld System.Int32 PropManager::ID_ObjectIndex
IL_032F: ldarg.s 7
IL_0331: callvirt System.Void
UnityEngine.MaterialPropertyBlock::SetVector(System.Int32 nameID,
UnityEngine.Vector4 value)
IL_0336: ldloc.s 15 (UnityEngine.MaterialPropertyBlock)
IL_0338: ldloc.s 14 (PropManager)
IL_033A: ldfld System.Int32 PropManager::ID_WaterHeightMap
IL_033F: ldarg.s 12
IL_0341: callvirt System.Void
UnityEngine.MaterialPropertyBlock::SetTexture(System.Int32 nameID,
UnityEngine.Texture value)
IL_0346: ldloc.s 15 (UnityEngine.MaterialPropertyBlock)
IL_0348: ldloc.s 14 (PropManager)
IL_034A: ldfld System.Int32 PropManager::ID_WaterHeightMapping
IL_034F: ldarg.s 13
IL_0351: callvirt System.Void
UnityEngine.MaterialPropertyBlock::SetVector(System.Int32 nameID,
UnityEngine.Vector4 value)
IL_0356: ldloc.s 15 (UnityEngine.MaterialPropertyBlock)
IL_0358: ldloc.s 14 (PropManager)
IL_035A: ldfld System.Int32 PropManager::ID_WaterSurfaceMapping
IL_035F: ldarg.s 14
IL_0361: callvirt System.Void
UnityEngine.MaterialPropertyBlock::SetVector(System.Int32 nameID,
UnityEngine.Vector4 value)
IL_0366: ldarg.1
IL_0367: ldfld UnityEngine.Vector4[] PropInfo::m_rollLocation
IL_036C: brfalse => Label18
IL_0371: ldarg.1
IL_0372: ldfld UnityEngine.Material PropInfo::m_material
IL_0377: ldloc.s 14 (PropManager)
IL_0379: ldfld System.Int32 PropManager::ID_RollLocation
IL_037E: ldarg.1
IL_037F: ldfld UnityEngine.Vector4[] PropInfo::m_rollLocation
IL_0384: callvirt System.Void UnityEngine.Material::SetVectorArray(System.Int32
nameID, UnityEngine.Vector4[] values)
IL_0389: ldarg.1
IL_038A: ldfld UnityEngine.Material PropInfo::m_material
IL_038F: ldloc.s 14 (PropManager)
IL_0391: ldfld System.Int32 PropManager::ID_RollParams
IL_0396: ldarg.1
IL_0397: ldfld UnityEngine.Vector4[] PropInfo::m_rollParams
IL_039C: callvirt System.Void UnityEngine.Material::SetVectorArray(System.Int32
nameID, UnityEngine.Vector4[] values)
IL_03A1: Label18
IL_03A1: ldloc.s 14 (PropManager)
IL_03A3: ldflda DrawCallData SimulationManagerBase`2<PropManager,
PropProperties>::m_drawCallData
IL_03A8: dup
IL_03A9: ldfld System.Int32 DrawCallData::m_defaultCalls
IL_03AE: ldc.i4.1
IL_03AF: add
IL_03B0: stfld System.Int32 DrawCallData::m_defaultCalls
IL_03B5: ldarg.1
IL_03B6: ldfld UnityEngine.Mesh PropInfo::m_mesh
IL_03BB: ldloc.s 13 (UnityEngine.Matrix4x4)
IL_03BD: ldarg.1
IL_03BE: ldfld UnityEngine.Material PropInfo::m_material
IL_03C3: ldarg.1
IL_03C4: ldfld System.Int32 PrefabInfo::m_prefabDataLayer
IL_03C9: ldnull
IL_03CA: ldc.i4.0
IL_03CB: ldloc.s 15 (UnityEngine.MaterialPropertyBlock)
IL_03CD: call static System.Void
UnityEngine.Graphics::DrawMesh(UnityEngine.Mesh mesh, UnityEngine.Matrix4x4 matrix,
UnityEngine.Material material, System.Int32 layer, UnityEngine.Camera camera,
System.Int32 submeshIndex, UnityEngine.MaterialPropertyBlock properties)
IL_03D2: br => Label19
IL_03D7: Label17
IL_03D7: ldarg.s 9
IL_03D9: ldarg.1
IL_03DA: ldfld UnityEngine.Texture PropInfo::m_lodHeightMap
IL_03DF: call static System.Boolean
UnityEngine.Object::op_Inequality(UnityEngine.Object x, UnityEngine.Object y)
IL_03E4: brtrue => Label20
IL_03E9: ldarg.s 12
IL_03EB: ldarg.1
IL_03EC: ldfld UnityEngine.Texture PropInfo::m_lodWaterHeightMap
IL_03F1: call static System.Boolean
UnityEngine.Object::op_Inequality(UnityEngine.Object x, UnityEngine.Object y)
IL_03F6: brfalse => Label21
IL_03FB: Label20
IL_03FB: ldarg.1
IL_03FC: ldfld System.Int32 PropInfo::m_lodCount
IL_0401: brfalse => Label22
IL_0406: ldarg.0
IL_0407: ldarg.1
IL_0408: call static System.Void PropInstance::RenderLod(CameraInfo
cameraInfo, PropInfo info)
IL_040D: Label22
IL_040D: ldarg.1
IL_040E: ldarg.s 9
IL_0410: stfld UnityEngine.Texture PropInfo::m_lodHeightMap
IL_0415: ldarg.1
IL_0416: ldarg.s 10
IL_0418: stfld UnityEngine.Vector4 PropInfo::m_lodHeightMapping
IL_041D: ldarg.1
IL_041E: ldarg.s 11
IL_0420: stfld UnityEngine.Vector4 PropInfo::m_lodSurfaceMapping
IL_0425: ldarg.1
IL_0426: ldarg.s 12
IL_0428: stfld UnityEngine.Texture PropInfo::m_lodWaterHeightMap
IL_042D: ldarg.1
IL_042E: ldarg.s 13
IL_0430: stfld UnityEngine.Vector4 PropInfo::m_lodWaterHeightMapping
IL_0435: ldarg.1
IL_0436: ldarg.s 14
IL_0438: stfld UnityEngine.Vector4 PropInfo::m_lodWaterSurfaceMapping
IL_043D: Label21
IL_043D: ldarga.s 7
IL_043F: ldarg.s 4
IL_0441: stfld System.Single UnityEngine.Vector4::w
IL_0446: ldarg.1
IL_0447: ldfld UnityEngine.Vector4[] PropInfo::m_lodLocations
IL_044C: ldarg.1
IL_044D: ldfld System.Int32 PropInfo::m_lodCount
IL_0452: ldelema UnityEngine.Vector4
IL_0457: ldarga.s 3
IL_0459: ldfld System.Single UnityEngine.Vector3::x
IL_045E: ldarga.s 3
IL_0460: ldfld System.Single UnityEngine.Vector3::y
IL_0465: ldarga.s 3
IL_0467: ldfld System.Single UnityEngine.Vector3::z
IL_046C: ldarg.s 5
IL_046E: newobj System.Void UnityEngine.Vector4::.ctor(System.Single x,
System.Single y, System.Single z, System.Single w)
IL_0473: stobj UnityEngine.Vector4
IL_0478: ldarg.1
IL_0479: ldfld UnityEngine.Vector4[] PropInfo::m_lodObjectIndices
IL_047E: ldarg.1
IL_047F: ldfld System.Int32 PropInfo::m_lodCount
IL_0484: ldelema UnityEngine.Vector4
IL_0489: ldarg.s 7
IL_048B: stobj UnityEngine.Vector4
IL_0490: ldarg.1
IL_0491: ldfld UnityEngine.Vector4[] PropInfo::m_lodColors
IL_0496: ldarg.1
IL_0497: ldfld System.Int32 PropInfo::m_lodCount
IL_049C: ldelema UnityEngine.Vector4
IL_04A1: ldarga.s 6
IL_04A3: call UnityEngine.Color UnityEngine.Color::get_linear()
IL_04A8: call static UnityEngine.Vector4
UnityEngine.Color::op_Implicit(UnityEngine.Color c)
IL_04AD: stobj UnityEngine.Vector4
IL_04B2: ldarg.1
IL_04B3: ldarg.1
IL_04B4: ldfld UnityEngine.Vector3 PropInfo::m_lodMin
IL_04B9: ldarg.3
IL_04BA: call static UnityEngine.Vector3
UnityEngine.Vector3::Min(UnityEngine.Vector3 lhs, UnityEngine.Vector3 rhs)
IL_04BF: stfld UnityEngine.Vector3 PropInfo::m_lodMin
IL_04C4: ldarg.1
IL_04C5: ldarg.1
IL_04C6: ldfld UnityEngine.Vector3 PropInfo::m_lodMax
IL_04CB: ldarg.3
IL_04CC: call static UnityEngine.Vector3
UnityEngine.Vector3::Max(UnityEngine.Vector3 lhs, UnityEngine.Vector3 rhs)
IL_04D1: stfld UnityEngine.Vector3 PropInfo::m_lodMax
IL_04D6: ldarg.1
IL_04D7: dup
IL_04D8: ldfld System.Int32 PropInfo::m_lodCount
IL_04DD: ldc.i4.1
IL_04DE: add
IL_04DF: dup
IL_04E0: stloc.s 16 (System.Int32)
IL_04E2: stfld System.Int32 PropInfo::m_lodCount
IL_04E7: ldloc.s 16 (System.Int32)
IL_04E9: ldarg.1
IL_04EA: ldfld UnityEngine.Vector4[] PropInfo::m_lodLocations
IL_04EF: ldlen
IL_04F0: conv.i4
IL_04F1: bne.un => Label23
IL_04F6: ldarg.0
IL_04F7: ldarg.1
IL_04F8: call static System.Void PropInstance::RenderLod(CameraInfo
cameraInfo, PropInfo info)
IL_04FD: // end original
IL_04FD: Label0
IL_04FD: Label6
IL_04FD: Label7
IL_04FD: Label19
IL_04FD: Label23
IL_04FD: ret
DONE

### Patch: static System.Void PropInstance::RenderInstance(CameraInfo cameraInfo,


PropInfo info, InstanceID id, UnityEngine.Vector3 position, System.Single scale,
System.Single angle, UnityEngine.Color color, UnityEngine.Vector4 objectIndex,
System.Boolean active)
### Replacement: static System.Void
PropInstance::PropInstance.RenderInstance_Patch0(CameraInfo cameraInfo, PropInfo
info, InstanceID id, UnityEngine.Vector3 position, System.Single scale,
System.Single angle, UnityEngine.Color color, UnityEngine.Vector4 objectIndex,
System.Boolean active)
IL_0000: Local var 0: UnityEngine.Matrix4x4
IL_0000: Local var 1: System.Single
IL_0000: Local var 2: System.Int32
IL_0000: Local var 3: UnityEngine.Vector3
IL_0000: Local var 4: UnityEngine.Vector3
IL_0000: Local var 5: EffectInfo/SpawnArea
IL_0000: Local var 6: System.Single
IL_0000: Local var 7: LightSystem
IL_0000: Local var 8: ColossalFramework.Math.Randomizer
IL_0000: Local var 9: UnityEngine.Vector4
IL_0000: Local var 10: System.Single
IL_0000: Local var 11: System.Single
IL_0000: Local var 12: System.Single
IL_0000: Local var 13: UnityEngine.Matrix4x4
IL_0000: Local var 14: PropManager
IL_0000: Local var 15: UnityEngine.MaterialPropertyBlock
IL_0000: Local var 16: UnityEngine.Matrix4x4
IL_0000: Local var 17: PropManager
IL_0000: Local var 18: UnityEngine.MaterialPropertyBlock
IL_0000: Local var 19: System.Int32
IL_0000: // start original
IL_0000: ldarg.1
IL_0001: ldfld System.Boolean PrefabInfo::m_prefabInitialized
IL_0006: brfalse => Label0
IL_000B: ldarg.1
IL_000C: ldfld System.Boolean PropInfo::m_hasEffects
IL_0011: brfalse => Label1
IL_0016: ldarg.s 8
IL_0018: brtrue => Label2
IL_001D: ldarg.1
IL_001E: ldfld System.Boolean PropInfo::m_alwaysActive
IL_0023: brfalse => Label3
IL_0028: Label2
IL_0028: ldloca.s 0 (UnityEngine.Matrix4x4)
IL_002A: initobj UnityEngine.Matrix4x4
IL_0030: ldloca.s 0 (UnityEngine.Matrix4x4)
IL_0032: ldarg.3
IL_0033: ldarg.s 5
IL_0035: ldc.r4 57.29578
IL_003A: mul
IL_003B: call static UnityEngine.Vector3 UnityEngine.Vector3::get_down()
IL_0040: call static UnityEngine.Quaternion
UnityEngine.Quaternion::AngleAxis(System.Single angle, UnityEngine.Vector3 axis)
IL_0045: ldarg.s 4
IL_0047: ldarg.s 4
IL_0049: ldarg.s 4
IL_004B: newobj System.Void UnityEngine.Vector3::.ctor(System.Single x,
System.Single y, System.Single z)
IL_0050: call System.Void UnityEngine.Matrix4x4::SetTRS(UnityEngine.Vector3
pos, UnityEngine.Quaternion q, UnityEngine.Vector3 s)
IL_0055: call static SimulationManager
ColossalFramework.Singleton`1<SimulationManager>::get_instance()
IL_005A: ldfld System.Single SimulationManager::m_simulationTimeDelta
IL_005F: stloc.1
IL_0060: ldc.i4.0
IL_0061: stloc.2
IL_0062: br => Label4
IL_0067: Label5
IL_0067: ldloca.s 0 (UnityEngine.Matrix4x4)
IL_0069: ldarg.1
IL_006A: ldfld Effect[] PropInfo::m_effects
IL_006F: ldloc.2
IL_0070: ldelema PropInfo+Effect
IL_0075: ldfld UnityEngine.Vector3 Effect::m_position
IL_007A: call UnityEngine.Vector3
UnityEngine.Matrix4x4::MultiplyPoint(UnityEngine.Vector3 v)
IL_007F: stloc.3
IL_0080: ldloca.s 0 (UnityEngine.Matrix4x4)
IL_0082: ldarg.1
IL_0083: ldfld Effect[] PropInfo::m_effects
IL_0088: ldloc.2
IL_0089: ldelema PropInfo+Effect
IL_008E: ldfld UnityEngine.Vector3 Effect::m_direction
IL_0093: call UnityEngine.Vector3
UnityEngine.Matrix4x4::MultiplyVector(UnityEngine.Vector3 v)
IL_0098: stloc.s 4 (UnityEngine.Vector3)
IL_009A: ldloca.s 5 (EffectInfo+SpawnArea)
IL_009C: ldloc.3
IL_009D: ldloc.s 4 (UnityEngine.Vector3)
IL_009F: ldc.r4 0
IL_00A4: call System.Void SpawnArea::.ctor(UnityEngine.Vector3 position,
UnityEngine.Vector3 direction, System.Single radius)
IL_00A9: ldarg.1
IL_00AA: ldfld Effect[] PropInfo::m_effects
IL_00AF: ldloc.2
IL_00B0: ldelema PropInfo+Effect
IL_00B5: ldfld EffectInfo Effect::m_effect
IL_00BA: ldarg.2
IL_00BB: ldloc.s 5 (EffectInfo+SpawnArea)
IL_00BD: call static UnityEngine.Vector3 UnityEngine.Vector3::get_zero()
IL_00C2: ldc.r4 0
IL_00C7: ldc.r4 1
IL_00CC: ldc.r4 -1
IL_00D1: ldloc.1
IL_00D2: ldarg.0
IL_00D3: callvirt virtual System.Void EffectInfo::RenderEffect(InstanceID id,
SpawnArea area, UnityEngine.Vector3 velocity, System.Single acceleration,
System.Single magnitude, System.Single timeOffset, System.Single timeDelta,
CameraInfo cameraInfo)
IL_00D8: ldloc.2
IL_00D9: ldc.i4.1
IL_00DA: add
IL_00DB: stloc.2
IL_00DC: Label4
IL_00DC: ldloc.2
IL_00DD: ldarg.1
IL_00DE: ldfld Effect[] PropInfo::m_effects
IL_00E3: ldlen
IL_00E4: conv.i4
IL_00E5: blt => Label5
IL_00EA: Label1
IL_00EA: Label3
IL_00EA: ldarg.1
IL_00EB: ldfld System.Boolean PropInfo::m_hasRenderer
IL_00F0: brfalse => Label6
IL_00F5: ldarg.0
IL_00F6: ldfld System.Int32 CameraInfo::m_layerMask
IL_00FB: ldc.i4.1
IL_00FC: ldarg.1
IL_00FD: ldfld System.Int32 PrefabInfo::m_prefabDataLayer
IL_0102: ldc.i4.s 31
IL_0104: and
IL_0105: shl
IL_0106: and
IL_0107: brfalse => Label7
IL_010C: call static InfoManager
ColossalFramework.Singleton`1<InfoManager>::get_instance()
IL_0111: callvirt InfoMode InfoManager::get_CurrentMode()
IL_0116: brtrue => Label8
IL_011B: ldarg 2
IL_011F: call static System.Boolean
ElectricRoads.Overrides.ElectricRoadsOverrides::CheckElectrityNetForLight(InstanceI
D id)
IL_0124: brfalse => Label24
IL_0129: ldc.r4 0
IL_012E: stloc.s 6 (System.Single)
IL_0130: ldarg.s 8
IL_0132: brtrue => Label9
IL_0137: ldarg.1
IL_0138: ldfld System.Boolean PropInfo::m_alwaysActive
IL_013D: brtrue => Label10
IL_0142: Label24
IL_0142: ldarga.s 7
IL_0144: ldc.r4 0
IL_0149: stfld System.Single UnityEngine.Vector4::z
IL_014E: br => Label11
IL_0153: Label9
IL_0153: Label10
IL_0153: ldarg.1
IL_0154: ldflda UnityEngine.Vector2 PropInfo::m_illuminationOffRange
IL_0159: ldfld System.Single UnityEngine.Vector2::x
IL_015E: ldc.r4 1000
IL_0163: blt => Label12
IL_0168: ldarg.1
IL_0169: ldfld BlinkType PropInfo::m_illuminationBlinkType
IL_016E: brfalse => Label13
IL_0173: Label12
IL_0173: call static RenderManager
ColossalFramework.Singleton`1<RenderManager>::get_instance()
IL_0178: callvirt LightSystem RenderManager::get_lightSystem()
IL_017D: stloc.s 7 (LightSystem)
IL_017F: ldloca.s 8 (ColossalFramework.Math.Randomizer)
IL_0181: ldarga.s 2
IL_0183: call System.UInt32 InstanceID::get_Index()
IL_0188: call System.Void
ColossalFramework.Math.Randomizer::.ctor(System.UInt32 _seed)
IL_018D: ldarg.1
IL_018E: ldflda UnityEngine.Vector2 PropInfo::m_illuminationOffRange
IL_0193: ldfld System.Single UnityEngine.Vector2::x
IL_0198: ldloca.s 8 (ColossalFramework.Math.Randomizer)
IL_019A: ldc.i4 100000
IL_019F: call System.Int32
ColossalFramework.Math.Randomizer::Int32(System.UInt32 range)
IL_01A4: conv.r4
IL_01A5: ldc.r4 1E-05
IL_01AA: mul
IL_01AB: ldarg.1
IL_01AC: ldflda UnityEngine.Vector2 PropInfo::m_illuminationOffRange
IL_01B1: ldfld System.Single UnityEngine.Vector2::y
IL_01B6: ldarg.1
IL_01B7: ldflda UnityEngine.Vector2 PropInfo::m_illuminationOffRange
IL_01BC: ldfld System.Single UnityEngine.Vector2::x
IL_01C1: sub
IL_01C2: mul
IL_01C3: add
IL_01C4: stloc.s 6 (System.Single)
IL_01C6: ldarga.s 7
IL_01C8: ldloc.s 6 (System.Single)
IL_01CA: ldc.r4 0.01
IL_01CF: add
IL_01D0: ldloc.s 6 (System.Single)
IL_01D2: ldc.r4 0.01
IL_01D7: sub
IL_01D8: ldloc.s 7 (LightSystem)
IL_01DA: callvirt System.Single LightSystem::get_DayLightIntensity()
IL_01DF: call static System.Single MathUtils::SmoothStep(System.Single edge0,
System.Single edge1, System.Single x)
IL_01E4: stfld System.Single UnityEngine.Vector4::z
IL_01E9: ldarg.1
IL_01EA: ldfld BlinkType PropInfo::m_illuminationBlinkType
IL_01EF: brfalse => Label14
IL_01F4: ldarg.1
IL_01F5: ldfld BlinkType PropInfo::m_illuminationBlinkType
IL_01FA: call static UnityEngine.Vector4
LightEffect::GetBlinkVector(BlinkType type)
IL_01FF: stloc.s 9 (UnityEngine.Vector4)
IL_0201: ldloc.s 6 (System.Single)
IL_0203: ldc.r4 3.71
IL_0208: mul
IL_0209: call static SimulationManager
ColossalFramework.Singleton`1<SimulationManager>::get_instance()
IL_020E: ldfld System.Single SimulationManager::m_simulationTimer
IL_0213: ldloca.s 9 (UnityEngine.Vector4)
IL_0215: ldfld System.Single UnityEngine.Vector4::w
IL_021A: div
IL_021B: add
IL_021C: stloc.s 10 (System.Single)
IL_021E: ldloc.s 10 (System.Single)
IL_0220: ldloc.s 10 (System.Single)
IL_0222: call static System.Single UnityEngine.Mathf::Floor(System.Single f)
IL_0227: sub
IL_0228: ldloca.s 9 (UnityEngine.Vector4)
IL_022A: ldfld System.Single UnityEngine.Vector4::w
IL_022F: mul
IL_0230: stloc.s 10 (System.Single)
IL_0232: ldloca.s 9 (UnityEngine.Vector4)
IL_0234: ldfld System.Single UnityEngine.Vector4::x
IL_0239: ldloca.s 9 (UnityEngine.Vector4)
IL_023B: ldfld System.Single UnityEngine.Vector4::y
IL_0240: ldloc.s 10 (System.Single)
IL_0242: call static System.Single MathUtils::SmoothStep(System.Single edge0,
System.Single edge1, System.Single x)
IL_0247: stloc.s 11 (System.Single)
IL_0249: ldloca.s 9 (UnityEngine.Vector4)
IL_024B: ldfld System.Single UnityEngine.Vector4::w
IL_0250: ldloca.s 9 (UnityEngine.Vector4)
IL_0252: ldfld System.Single UnityEngine.Vector4::z
IL_0257: ldloc.s 10 (System.Single)
IL_0259: call static System.Single MathUtils::SmoothStep(System.Single edge0,
System.Single edge1, System.Single x)
IL_025E: stloc.s 12 (System.Single)
IL_0260: ldarga.s 7
IL_0262: dup
IL_0263: ldfld System.Single UnityEngine.Vector4::z
IL_0268: ldc.r4 1
IL_026D: ldloc.s 11 (System.Single)
IL_026F: ldloc.s 12 (System.Single)
IL_0271: mul
IL_0272: sub
IL_0273: mul
IL_0274: stfld System.Single UnityEngine.Vector4::z
IL_0279: Label14
IL_0279: br => Label15
IL_027E: Label13
IL_027E: ldarga.s 7
IL_0280: ldc.r4 1
IL_0285: stfld System.Single UnityEngine.Vector4::z
IL_028A: Label8
IL_028A: Label11
IL_028A: Label15
IL_028A: ldarg.0
IL_028B: brfalse => Label16
IL_0290: ldarg.0
IL_0291: ldarg.3
IL_0292: ldarg.1
IL_0293: ldfld System.Single PropInfo::m_lodRenderDistance
IL_0298: callvirt System.Boolean
CameraInfo::CheckRenderDistance(UnityEngine.Vector3 point, System.Single
maxDistance)
IL_029D: brfalse => Label17
IL_02A2: Label16
IL_02A2: ldloca.s 13 (UnityEngine.Matrix4x4)
IL_02A4: initobj UnityEngine.Matrix4x4
IL_02AA: ldloca.s 13 (UnityEngine.Matrix4x4)
IL_02AC: ldarg.3
IL_02AD: ldarg.s 5
IL_02AF: ldc.r4 57.29578
IL_02B4: mul
IL_02B5: call static UnityEngine.Vector3 UnityEngine.Vector3::get_down()
IL_02BA: call static UnityEngine.Quaternion
UnityEngine.Quaternion::AngleAxis(System.Single angle, UnityEngine.Vector3 axis)
IL_02BF: ldarg.s 4
IL_02C1: ldarg.s 4
IL_02C3: ldarg.s 4
IL_02C5: newobj System.Void UnityEngine.Vector3::.ctor(System.Single x,
System.Single y, System.Single z)
IL_02CA: call System.Void UnityEngine.Matrix4x4::SetTRS(UnityEngine.Vector3
pos, UnityEngine.Quaternion q, UnityEngine.Vector3 s)
IL_02CF: call static PropManager
ColossalFramework.Singleton`1<PropManager>::get_instance()
IL_02D4: stloc.s 14 (PropManager)
IL_02D6: ldloc.s 14 (PropManager)
IL_02D8: ldfld UnityEngine.MaterialPropertyBlock PropManager::m_materialBlock
IL_02DD: stloc.s 15 (UnityEngine.MaterialPropertyBlock)
IL_02DF: ldloc.s 15 (UnityEngine.MaterialPropertyBlock)
IL_02E1: callvirt System.Void UnityEngine.MaterialPropertyBlock::Clear()
IL_02E6: ldloc.s 15 (UnityEngine.MaterialPropertyBlock)
IL_02E8: ldloc.s 14 (PropManager)
IL_02EA: ldfld System.Int32 PropManager::ID_Color
IL_02EF: ldarg.s 6
IL_02F1: callvirt System.Void
UnityEngine.MaterialPropertyBlock::SetColor(System.Int32 nameID, UnityEngine.Color
value)
IL_02F6: ldloc.s 15 (UnityEngine.MaterialPropertyBlock)
IL_02F8: ldloc.s 14 (PropManager)
IL_02FA: ldfld System.Int32 PropManager::ID_ObjectIndex
IL_02FF: ldarg.s 7
IL_0301: callvirt System.Void
UnityEngine.MaterialPropertyBlock::SetVector(System.Int32 nameID,
UnityEngine.Vector4 value)
IL_0306: ldarg.1
IL_0307: ldfld UnityEngine.Vector4[] PropInfo::m_rollLocation
IL_030C: brfalse => Label18
IL_0311: ldarg.1
IL_0312: ldfld UnityEngine.Material PropInfo::m_material
IL_0317: ldloc.s 14 (PropManager)
IL_0319: ldfld System.Int32 PropManager::ID_RollLocation
IL_031E: ldarg.1
IL_031F: ldfld UnityEngine.Vector4[] PropInfo::m_rollLocation
IL_0324: callvirt System.Void UnityEngine.Material::SetVectorArray(System.Int32
nameID, UnityEngine.Vector4[] values)
IL_0329: ldarg.1
IL_032A: ldfld UnityEngine.Material PropInfo::m_material
IL_032F: ldloc.s 14 (PropManager)
IL_0331: ldfld System.Int32 PropManager::ID_RollParams
IL_0336: ldarg.1
IL_0337: ldfld UnityEngine.Vector4[] PropInfo::m_rollParams
IL_033C: callvirt System.Void UnityEngine.Material::SetVectorArray(System.Int32
nameID, UnityEngine.Vector4[] values)
IL_0341: Label18
IL_0341: ldloc.s 14 (PropManager)
IL_0343: ldflda DrawCallData SimulationManagerBase`2<PropManager,
PropProperties>::m_drawCallData
IL_0348: dup
IL_0349: ldfld System.Int32 DrawCallData::m_defaultCalls
IL_034E: ldc.i4.1
IL_034F: add
IL_0350: stfld System.Int32 DrawCallData::m_defaultCalls
IL_0355: ldarg.1
IL_0356: ldfld UnityEngine.Mesh PropInfo::m_mesh
IL_035B: ldloc.s 13 (UnityEngine.Matrix4x4)
IL_035D: ldarg.1
IL_035E: ldfld UnityEngine.Material PropInfo::m_material
IL_0363: ldarg.1
IL_0364: ldfld System.Int32 PrefabInfo::m_prefabDataLayer
IL_0369: ldnull
IL_036A: ldc.i4.0
IL_036B: ldloc.s 15 (UnityEngine.MaterialPropertyBlock)
IL_036D: call static System.Void
UnityEngine.Graphics::DrawMesh(UnityEngine.Mesh mesh, UnityEngine.Matrix4x4 matrix,
UnityEngine.Material material, System.Int32 layer, UnityEngine.Camera camera,
System.Int32 submeshIndex, UnityEngine.MaterialPropertyBlock properties)
IL_0372: br => Label19
IL_0377: Label17
IL_0377: ldarg.1
IL_0378: ldfld UnityEngine.Material PropInfo::m_lodMaterialCombined
IL_037D: ldnull
IL_037E: call static System.Boolean
UnityEngine.Object::op_Equality(UnityEngine.Object x, UnityEngine.Object y)
IL_0383: brfalse => Label20
IL_0388: ldloca.s 16 (UnityEngine.Matrix4x4)
IL_038A: initobj UnityEngine.Matrix4x4
IL_0390: ldloca.s 16 (UnityEngine.Matrix4x4)
IL_0392: ldarg.3
IL_0393: ldarg.s 5
IL_0395: ldc.r4 57.29578
IL_039A: mul
IL_039B: call static UnityEngine.Vector3 UnityEngine.Vector3::get_down()
IL_03A0: call static UnityEngine.Quaternion
UnityEngine.Quaternion::AngleAxis(System.Single angle, UnityEngine.Vector3 axis)
IL_03A5: ldarg.s 4
IL_03A7: ldarg.s 4
IL_03A9: ldarg.s 4
IL_03AB: newobj System.Void UnityEngine.Vector3::.ctor(System.Single x,
System.Single y, System.Single z)
IL_03B0: call System.Void UnityEngine.Matrix4x4::SetTRS(UnityEngine.Vector3
pos, UnityEngine.Quaternion q, UnityEngine.Vector3 s)
IL_03B5: call static PropManager
ColossalFramework.Singleton`1<PropManager>::get_instance()
IL_03BA: stloc.s 17 (PropManager)
IL_03BC: ldloc.s 17 (PropManager)
IL_03BE: ldfld UnityEngine.MaterialPropertyBlock PropManager::m_materialBlock
IL_03C3: stloc.s 18 (UnityEngine.MaterialPropertyBlock)
IL_03C5: ldloc.s 18 (UnityEngine.MaterialPropertyBlock)
IL_03C7: callvirt System.Void UnityEngine.MaterialPropertyBlock::Clear()
IL_03CC: ldloc.s 18 (UnityEngine.MaterialPropertyBlock)
IL_03CE: ldloc.s 17 (PropManager)
IL_03D0: ldfld System.Int32 PropManager::ID_Color
IL_03D5: ldarg.s 6
IL_03D7: callvirt System.Void
UnityEngine.MaterialPropertyBlock::SetColor(System.Int32 nameID, UnityEngine.Color
value)
IL_03DC: ldloc.s 18 (UnityEngine.MaterialPropertyBlock)
IL_03DE: ldloc.s 17 (PropManager)
IL_03E0: ldfld System.Int32 PropManager::ID_ObjectIndex
IL_03E5: ldarg.s 7
IL_03E7: callvirt System.Void
UnityEngine.MaterialPropertyBlock::SetVector(System.Int32 nameID,
UnityEngine.Vector4 value)
IL_03EC: ldarg.1
IL_03ED: ldfld UnityEngine.Vector4[] PropInfo::m_rollLocation
IL_03F2: brfalse => Label21
IL_03F7: ldarg.1
IL_03F8: ldfld UnityEngine.Material PropInfo::m_material
IL_03FD: ldloc.s 17 (PropManager)
IL_03FF: ldfld System.Int32 PropManager::ID_RollLocation
IL_0404: ldarg.1
IL_0405: ldfld UnityEngine.Vector4[] PropInfo::m_rollLocation
IL_040A: callvirt System.Void UnityEngine.Material::SetVectorArray(System.Int32
nameID, UnityEngine.Vector4[] values)
IL_040F: ldarg.1
IL_0410: ldfld UnityEngine.Material PropInfo::m_material
IL_0415: ldloc.s 17 (PropManager)
IL_0417: ldfld System.Int32 PropManager::ID_RollParams
IL_041C: ldarg.1
IL_041D: ldfld UnityEngine.Vector4[] PropInfo::m_rollParams
IL_0422: callvirt System.Void UnityEngine.Material::SetVectorArray(System.Int32
nameID, UnityEngine.Vector4[] values)
IL_0427: Label21
IL_0427: ldloc.s 17 (PropManager)
IL_0429: ldflda DrawCallData SimulationManagerBase`2<PropManager,
PropProperties>::m_drawCallData
IL_042E: dup
IL_042F: ldfld System.Int32 DrawCallData::m_defaultCalls
IL_0434: ldc.i4.1
IL_0435: add
IL_0436: stfld System.Int32 DrawCallData::m_defaultCalls
IL_043B: ldarg.1
IL_043C: ldfld UnityEngine.Mesh PropInfo::m_lodMesh
IL_0441: ldloc.s 16 (UnityEngine.Matrix4x4)
IL_0443: ldarg.1
IL_0444: ldfld UnityEngine.Material PropInfo::m_lodMaterial
IL_0449: ldarg.1
IL_044A: ldfld System.Int32 PrefabInfo::m_prefabDataLayer
IL_044F: ldnull
IL_0450: ldc.i4.0
IL_0451: ldloc.s 18 (UnityEngine.MaterialPropertyBlock)
IL_0453: call static System.Void
UnityEngine.Graphics::DrawMesh(UnityEngine.Mesh mesh, UnityEngine.Matrix4x4 matrix,
UnityEngine.Material material, System.Int32 layer, UnityEngine.Camera camera,
System.Int32 submeshIndex, UnityEngine.MaterialPropertyBlock properties)
IL_0458: br => Label22
IL_045D: Label20
IL_045D: ldarga.s 7
IL_045F: ldarg.s 4
IL_0461: stfld System.Single UnityEngine.Vector4::w
IL_0466: ldarg.1
IL_0467: ldfld UnityEngine.Vector4[] PropInfo::m_lodLocations
IL_046C: ldarg.1
IL_046D: ldfld System.Int32 PropInfo::m_lodCount
IL_0472: ldelema UnityEngine.Vector4
IL_0477: ldarga.s 3
IL_0479: ldfld System.Single UnityEngine.Vector3::x
IL_047E: ldarga.s 3
IL_0480: ldfld System.Single UnityEngine.Vector3::y
IL_0485: ldarga.s 3
IL_0487: ldfld System.Single UnityEngine.Vector3::z
IL_048C: ldarg.s 5
IL_048E: newobj System.Void UnityEngine.Vector4::.ctor(System.Single x,
System.Single y, System.Single z, System.Single w)
IL_0493: stobj UnityEngine.Vector4
IL_0498: ldarg.1
IL_0499: ldfld UnityEngine.Vector4[] PropInfo::m_lodObjectIndices
IL_049E: ldarg.1
IL_049F: ldfld System.Int32 PropInfo::m_lodCount
IL_04A4: ldelema UnityEngine.Vector4
IL_04A9: ldarg.s 7
IL_04AB: stobj UnityEngine.Vector4
IL_04B0: ldarg.1
IL_04B1: ldfld UnityEngine.Vector4[] PropInfo::m_lodColors
IL_04B6: ldarg.1
IL_04B7: ldfld System.Int32 PropInfo::m_lodCount
IL_04BC: ldelema UnityEngine.Vector4
IL_04C1: ldarga.s 6
IL_04C3: call UnityEngine.Color UnityEngine.Color::get_linear()
IL_04C8: call static UnityEngine.Vector4
UnityEngine.Color::op_Implicit(UnityEngine.Color c)
IL_04CD: stobj UnityEngine.Vector4
IL_04D2: ldarg.1
IL_04D3: ldarg.1
IL_04D4: ldfld UnityEngine.Vector3 PropInfo::m_lodMin
IL_04D9: ldarg.3
IL_04DA: call static UnityEngine.Vector3
UnityEngine.Vector3::Min(UnityEngine.Vector3 lhs, UnityEngine.Vector3 rhs)
IL_04DF: stfld UnityEngine.Vector3 PropInfo::m_lodMin
IL_04E4: ldarg.1
IL_04E5: ldarg.1
IL_04E6: ldfld UnityEngine.Vector3 PropInfo::m_lodMax
IL_04EB: ldarg.3
IL_04EC: call static UnityEngine.Vector3
UnityEngine.Vector3::Max(UnityEngine.Vector3 lhs, UnityEngine.Vector3 rhs)
IL_04F1: stfld UnityEngine.Vector3 PropInfo::m_lodMax
IL_04F6: ldarg.1
IL_04F7: dup
IL_04F8: ldfld System.Int32 PropInfo::m_lodCount
IL_04FD: ldc.i4.1
IL_04FE: add
IL_04FF: dup
IL_0500: stloc.s 19 (System.Int32)
IL_0502: stfld System.Int32 PropInfo::m_lodCount
IL_0507: ldloc.s 19 (System.Int32)
IL_0509: ldarg.1
IL_050A: ldfld UnityEngine.Vector4[] PropInfo::m_lodLocations
IL_050F: ldlen
IL_0510: conv.i4
IL_0511: bne.un => Label23
IL_0516: ldarg.0
IL_0517: ldarg.1
IL_0518: call static System.Void PropInstance::RenderLod(CameraInfo
cameraInfo, PropInfo info)
IL_051D: // end original
IL_051D: Label0
IL_051D: Label6
IL_051D: Label7
IL_051D: Label19
IL_051D: Label22
IL_051D: Label23
IL_051D: ret
DONE

### Patch: virtual System.Void LightEffect::PopulateGroupData(System.Int32 layer,


InstanceID id, UnityEngine.Vector3 pos, UnityEngine.Vector3 dir, 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
LightEffect::LightEffect.PopulateGroupData_Patch1(LightEffect this, System.Int32
layer, InstanceID id, UnityEngine.Vector3 pos, UnityEngine.Vector3 dir,
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.Boolean
IL_0000: Local var 1: UnityEngine.Vector3
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.Quaternion
IL_0000: Local var 7: UnityEngine.Vector4
IL_0000: Local var 8: UnityEngine.Vector2
IL_0000: Local var 9: ColossalFramework.Math.Randomizer
IL_0000: Local var 10: UnityEngine.Vector2
IL_0000: Local var 11: UnityEngine.Vector2
IL_0000: Local var 12: UnityEngine.Vector2
IL_0000: Local var 13: System.UInt16
IL_0000: Local var 14: UnityEngine.Vector3
IL_0000: Local var 15: UnityEngine.Color
IL_0000: Local var 16: UnityEngine.Color
IL_0000: Local var 17: System.Single
IL_0000: Local var 18: System.Single
IL_0000: Local var 19: System.Int32
IL_0000: Local var 20: System.Boolean
IL_0000: ldc.i4 0
IL_0005: stloc 20 (System.Boolean)
IL_0009: ldc.i4.1
IL_000A: stloc 20 (System.Boolean)
IL_000E: ldloc 20 (System.Boolean)
IL_0012: brfalse => Label1
IL_0017: ldarg 2
IL_001B: call static System.Boolean
ElectricRoads.Overrides.ElectricRoadsOverrides::CheckElectrityNetForLight(InstanceI
D id)
IL_0020: stloc 20 (System.Boolean)
IL_0024: Label1
IL_0024: nop
IL_0025: ldloc 20 (System.Boolean)
IL_0029: brfalse => Label0
IL_002E: // start original
IL_002E: ldarg.1
IL_002F: ldarg.0
IL_0030: ldfld System.Int32 LightEffect::m_groupLayer
IL_0035: beq => Label2
IL_003A: ldarg.1
IL_003B: ldarg.0
IL_003C: ldfld System.Int32 LightEffect::m_groupLayerFloating
IL_0041: bne.un => Label3
IL_0046: Label2
IL_0046: ldarg.1
IL_0047: ldarg.0
IL_0048: ldfld System.Int32 LightEffect::m_groupLayerFloating
IL_004D: ceq
IL_004F: stloc.0
IL_0050: ldloca.s 1 (UnityEngine.Vector3)
IL_0052: ldarg.0
IL_0053: ldfld System.Single LightEffect::m_lightRange
IL_0058: ldarg.0
IL_0059: ldfld System.Single LightEffect::m_lightRange
IL_005E: ldarg.0
IL_005F: ldfld System.Single LightEffect::m_lightRange
IL_0064: call System.Void UnityEngine.Vector3::.ctor(System.Single x,
System.Single y, System.Single z)
IL_0069: ldarg.3
IL_006A: ldloc.1
IL_006B: call static UnityEngine.Vector3
UnityEngine.Vector3::op_Subtraction(UnityEngine.Vector3 a, UnityEngine.Vector3 b)
IL_0070: stloc.2
IL_0071: ldarg.3
IL_0072: ldloc.1
IL_0073: call static UnityEngine.Vector3
UnityEngine.Vector3::op_Addition(UnityEngine.Vector3 a, UnityEngine.Vector3 b)
IL_0078: stloc.3
IL_0079: ldarg.s 9
IL_007B: ldarg.s 9
IL_007D: ldobj UnityEngine.Vector3
IL_0082: ldloc.2
IL_0083: call static UnityEngine.Vector3
UnityEngine.Vector3::Min(UnityEngine.Vector3 lhs, UnityEngine.Vector3 rhs)
IL_0088: stobj UnityEngine.Vector3
IL_008D: ldarg.s 10
IL_008F: ldarg.s 10
IL_0091: ldobj UnityEngine.Vector3
IL_0096: ldloc.3
IL_0097: call static UnityEngine.Vector3
UnityEngine.Vector3::Max(UnityEngine.Vector3 lhs, UnityEngine.Vector3 rhs)
IL_009C: stobj UnityEngine.Vector3
IL_00A1: ldarg.3
IL_00A2: ldarg.s 7
IL_00A4: call static UnityEngine.Vector3
UnityEngine.Vector3::op_Subtraction(UnityEngine.Vector3 a, UnityEngine.Vector3 b)
IL_00A9: stloc.s 4 (UnityEngine.Vector3)
IL_00AB: ldarg.s 11
IL_00AD: ldarg.s 11
IL_00AF: ldind.r4
IL_00B0: ldc.r4 30000
IL_00B5: call static System.Single UnityEngine.Mathf::Max(System.Single a,
System.Single b)
IL_00BA: stind.r4
IL_00BB: ldarg.0
IL_00BC: ldfld UnityEngine.LightType LightEffect::m_lightType
IL_00C1: brtrue => Label4
IL_00C6: ldarg.s 4
IL_00C8: call static UnityEngine.Quaternion
UnityEngine.Quaternion::LookRotation(UnityEngine.Vector3 forward)
IL_00CD: stloc.s 6 (UnityEngine.Quaternion)
IL_00CF: ldloc.s 6 (UnityEngine.Quaternion)
IL_00D1: ldarg.0
IL_00D2: ldfld UnityEngine.Quaternion LightEffect::m_lightRotation
IL_00D7: call static UnityEngine.Vector3 UnityEngine.Vector3::get_forward()
IL_00DC: call static UnityEngine.Vector3
UnityEngine.Quaternion::op_Multiply(UnityEngine.Quaternion rotation,
UnityEngine.Vector3 point)
IL_00E1: call static UnityEngine.Vector3
UnityEngine.Quaternion::op_Multiply(UnityEngine.Quaternion rotation,
UnityEngine.Vector3 point)
IL_00E6: stloc.s 5 (UnityEngine.Vector3)
IL_00E8: br => Label5
IL_00ED: Label4
IL_00ED: call static UnityEngine.Vector3 UnityEngine.Vector3::get_forward()
IL_00F2: stloc.s 5 (UnityEngine.Vector3)
IL_00F4: Label5
IL_00F4: ldloca.s 7 (UnityEngine.Vector4)
IL_00F6: ldloca.s 5 (UnityEngine.Vector3)
IL_00F8: ldfld System.Single UnityEngine.Vector3::x
IL_00FD: ldloca.s 5 (UnityEngine.Vector3)
IL_00FF: ldfld System.Single UnityEngine.Vector3::y
IL_0104: ldloca.s 5 (UnityEngine.Vector3)
IL_0106: ldfld System.Single UnityEngine.Vector3::z
IL_010B: ldc.r4 100000
IL_0110: call System.Void UnityEngine.Vector4::.ctor(System.Single x,
System.Single y, System.Single z, System.Single w)
IL_0115: ldarg.0
IL_0116: ldfld UnityEngine.LightType LightEffect::m_lightType
IL_011B: brtrue => Label6
IL_0120: ldloca.s 7 (UnityEngine.Vector4)
IL_0122: ldc.r4 0.01745329
IL_0127: ldarg.0
IL_0128: ldfld System.Single LightEffect::m_lightSpotAngle
IL_012D: mul
IL_012E: ldc.r4 0.5
IL_0133: mul
IL_0134: call static System.Single UnityEngine.Mathf::Cos(System.Single f)
IL_0139: neg
IL_013A: stfld System.Single UnityEngine.Vector4::w
IL_013F: Label6
IL_013F: ldloca.s 8 (UnityEngine.Vector2)
IL_0141: ldc.r4 1
IL_0146: ldarg.0
IL_0147: ldfld System.Single LightEffect::m_lightRange
IL_014C: ldarg.0
IL_014D: ldfld System.Single LightEffect::m_lightRange
IL_0152: mul
IL_0153: div
IL_0154: ldarg.0
IL_0155: ldfld System.Single LightEffect::m_lightIntensity
IL_015A: call System.Void UnityEngine.Vector2::.ctor(System.Single x,
System.Single y)
IL_015F: ldloca.s 9 (ColossalFramework.Math.Randomizer)
IL_0161: ldarga.s 2
IL_0163: call System.UInt32 InstanceID::get_Index()
IL_0168: call System.Void
ColossalFramework.Math.Randomizer::.ctor(System.UInt32 _seed)
IL_016D: ldloca.s 10 (UnityEngine.Vector2)
IL_016F: ldarg.0
IL_0170: ldflda UnityEngine.Vector2 LightEffect::m_offRange
IL_0175: ldfld System.Single UnityEngine.Vector2::x
IL_017A: ldloca.s 9 (ColossalFramework.Math.Randomizer)
IL_017C: ldc.i4 100000
IL_0181: call System.Int32
ColossalFramework.Math.Randomizer::Int32(System.UInt32 range)
IL_0186: conv.r4
IL_0187: ldc.r4 1E-05
IL_018C: mul
IL_018D: ldarg.0
IL_018E: ldflda UnityEngine.Vector2 LightEffect::m_offRange
IL_0193: ldfld System.Single UnityEngine.Vector2::y
IL_0198: ldarg.0
IL_0199: ldflda UnityEngine.Vector2 LightEffect::m_offRange
IL_019E: ldfld System.Single UnityEngine.Vector2::x
IL_01A3: sub
IL_01A4: mul
IL_01A5: add
IL_01A6: stfld System.Single UnityEngine.Vector2::x
IL_01AB: ldloca.s 10 (UnityEngine.Vector2)
IL_01AD: ldarg.0
IL_01AE: ldfld BlinkType LightEffect::m_blinkType
IL_01B3: conv.r4
IL_01B4: stfld System.Single UnityEngine.Vector2::y
IL_01B9: ldarg.2
IL_01BA: call static System.UInt16 EffectInfo::GetBuilding(InstanceID id)
IL_01BF: stloc.s 13 (System.UInt16)
IL_01C1: ldloc.s 13 (System.UInt16)
IL_01C3: brfalse => Label7
IL_01C8: ldloc.s 13 (System.UInt16)
IL_01CA: call static UnityEngine.Vector4
RenderManager::GetColorLocation(System.UInt32 instanceHolder)
IL_01CF: call static UnityEngine.Vector2
UnityEngine.Vector4::op_Implicit(UnityEngine.Vector4 v)
IL_01D4: stloc.s 11 (UnityEngine.Vector2)
IL_01D6: ldloc.0
IL_01D7: brfalse => Label8
IL_01DC: call static BuildingManager
ColossalFramework.Singleton`1<BuildingManager>::get_instance()
IL_01E1: ldfld Array16`1<Building> BuildingManager::m_buildings
IL_01E6: ldfld Building[] Array16`1<Building>::m_buffer
IL_01EB: ldloc.s 13 (System.UInt16)
IL_01ED: ldelema Building
IL_01F2: call UnityEngine.Vector3 Building::CalculateMeshPosition()
IL_01F7: stloc.s 14 (UnityEngine.Vector3)
IL_01F9: ldloc.s 14 (UnityEngine.Vector3)
IL_01FB: call static UnityEngine.Vector2
ColossalFramework.Math.VectorUtils::XZ(UnityEngine.Vector3 v)
IL_0200: stloc.s 12 (UnityEngine.Vector2)
IL_0202: ldarga.s 3
IL_0204: dup
IL_0205: ldfld System.Single UnityEngine.Vector3::y
IL_020A: ldloca.s 14 (UnityEngine.Vector3)
IL_020C: ldfld System.Single UnityEngine.Vector3::y
IL_0211: sub
IL_0212: stfld System.Single UnityEngine.Vector3::y
IL_0217: ldloca.s 4 (UnityEngine.Vector3)
IL_0219: dup
IL_021A: ldfld System.Single UnityEngine.Vector3::y
IL_021F: ldloca.s 14 (UnityEngine.Vector3)
IL_0221: ldfld System.Single UnityEngine.Vector3::y
IL_0226: sub
IL_0227: stfld System.Single UnityEngine.Vector3::y
IL_022C: br => Label9
IL_0231: Label8
IL_0231: call static UnityEngine.Vector2 UnityEngine.Vector2::get_zero()
IL_0236: stloc.s 12 (UnityEngine.Vector2)
IL_0238: Label9
IL_0238: br => Label10
IL_023D: Label7
IL_023D: ldsfld UnityEngine.Vector4 RenderManager::DefaultColorLocation
IL_0242: call static UnityEngine.Vector2
UnityEngine.Vector4::op_Implicit(UnityEngine.Vector4 v)
IL_0247: stloc.s 11 (UnityEngine.Vector2)
IL_0249: call static UnityEngine.Vector2 UnityEngine.Vector2::get_zero()
IL_024E: stloc.s 12 (UnityEngine.Vector2)
IL_0250: Label10
IL_0250: ldarg.0
IL_0251: ldfld UnityEngine.Color LightEffect::m_lightColor
IL_0256: stloc.s 15 (UnityEngine.Color)
IL_0258: ldarg.0
IL_0259: ldfld UnityEngine.Color[] LightEffect::m_variationColors
IL_025E: brfalse => Label11
IL_0263: ldarg.0
IL_0264: ldfld UnityEngine.Color[] LightEffect::m_variationColors
IL_0269: ldlen
IL_026A: conv.i4
IL_026B: brfalse => Label12
IL_0270: ldarg.0
IL_0271: ldfld UnityEngine.Color[] LightEffect::m_variationColors
IL_0276: ldloca.s 9 (ColossalFramework.Math.Randomizer)
IL_0278: ldarg.0
IL_0279: ldfld UnityEngine.Color[] LightEffect::m_variationColors
IL_027E: ldlen
IL_027F: conv.i4
IL_0280: call System.Int32
ColossalFramework.Math.Randomizer::Int32(System.UInt32 range)
IL_0285: ldelema UnityEngine.Color
IL_028A: ldobj UnityEngine.Color
IL_028F: stloc.s 16 (UnityEngine.Color)
IL_0291: ldloc.s 15 (UnityEngine.Color)
IL_0293: ldloc.s 16 (UnityEngine.Color)
IL_0295: ldloca.s 9 (ColossalFramework.Math.Randomizer)
IL_0297: ldc.i4 1000
IL_029C: call System.Int32
ColossalFramework.Math.Randomizer::Int32(System.UInt32 range)
IL_02A1: conv.r4
IL_02A2: ldc.r4 0.001
IL_02A7: mul
IL_02A8: call static UnityEngine.Color
UnityEngine.Color::Lerp(UnityEngine.Color a, UnityEngine.Color b, System.Single t)
IL_02AD: stloc.s 15 (UnityEngine.Color)
IL_02AF: Label11
IL_02AF: Label12
IL_02AF: ldloca.s 15 (UnityEngine.Color)
IL_02B1: call UnityEngine.Color UnityEngine.Color::get_linear()
IL_02B6: stloc.s 15 (UnityEngine.Color)
IL_02B8: ldloca.s 15 (UnityEngine.Color)
IL_02BA: ldarg.0
IL_02BB: ldfld UnityEngine.LightType LightEffect::m_lightType
IL_02C0: brtrue => Label13
IL_02C5: ldarg.0
IL_02C6: ldfld System.Single LightEffect::m_spotLeaking
IL_02CB: br => Label14
IL_02D0: Label13
IL_02D0: ldc.r4 0
IL_02D5: Label14
IL_02D5: stfld System.Single UnityEngine.Color::a
IL_02DA: ldarg.0
IL_02DB: ldfld System.Single LightEffect::m_lightRange
IL_02E0: ldc.r4 0.5235988
IL_02E5: call static System.Single UnityEngine.Mathf::Cos(System.Single f)
IL_02EA: div
IL_02EB: stloc.s 17 (System.Single)
IL_02ED: ldloc.s 17 (System.Single)
IL_02EF: ldc.r4 0.5
IL_02F4: mul
IL_02F5: stloc.s 18 (System.Single)
IL_02F7: ldarg.s 8
IL_02F9: ldfld UnityEngine.Vector3[] MeshData::m_vertices
IL_02FE: ldarg.s 5
IL_0300: ldind.i4
IL_0301: ldelema UnityEngine.Vector3
IL_0306: ldloca.s 4 (UnityEngine.Vector3)
IL_0308: ldfld System.Single UnityEngine.Vector3::x
IL_030D: ldloc.s 18 (System.Single)
IL_030F: sub
IL_0310: ldloca.s 4 (UnityEngine.Vector3)
IL_0312: ldfld System.Single UnityEngine.Vector3::y
IL_0317: ldarg.0
IL_0318: ldfld System.Single LightEffect::m_lightRange
IL_031D: add
IL_031E: ldloca.s 4 (UnityEngine.Vector3)
IL_0320: ldfld System.Single UnityEngine.Vector3::z
IL_0325: ldarg.0
IL_0326: ldfld System.Single LightEffect::m_lightRange
IL_032B: add
IL_032C: newobj System.Void UnityEngine.Vector3::.ctor(System.Single x,
System.Single y, System.Single z)
IL_0331: stobj UnityEngine.Vector3
IL_0336: ldarg.s 8
IL_0338: ldfld UnityEngine.Vector3[] MeshData::m_normals
IL_033D: ldarg.s 5
IL_033F: ldind.i4
IL_0340: ldelema UnityEngine.Vector3
IL_0345: ldarg.3
IL_0346: stobj UnityEngine.Vector3
IL_034B: ldarg.s 8
IL_034D: ldfld UnityEngine.Vector4[] MeshData::m_tangents
IL_0352: ldarg.s 5
IL_0354: ldind.i4
IL_0355: ldelema UnityEngine.Vector4
IL_035A: ldloc.s 7 (UnityEngine.Vector4)
IL_035C: stobj UnityEngine.Vector4
IL_0361: ldarg.s 8
IL_0363: ldfld UnityEngine.Vector2[] MeshData::m_uvs
IL_0368: ldarg.s 5
IL_036A: ldind.i4
IL_036B: ldelema UnityEngine.Vector2
IL_0370: ldloc.s 8 (UnityEngine.Vector2)
IL_0372: stobj UnityEngine.Vector2
IL_0377: ldarg.s 8
IL_0379: ldfld UnityEngine.Vector2[] MeshData::m_uvs2
IL_037E: ldarg.s 5
IL_0380: ldind.i4
IL_0381: ldelema UnityEngine.Vector2
IL_0386: ldloc.s 10 (UnityEngine.Vector2)
IL_0388: stobj UnityEngine.Vector2
IL_038D: ldarg.s 8
IL_038F: ldfld UnityEngine.Vector2[] MeshData::m_uvs3
IL_0394: ldarg.s 5
IL_0396: ldind.i4
IL_0397: ldelema UnityEngine.Vector2
IL_039C: ldloc.s 11 (UnityEngine.Vector2)
IL_039E: stobj UnityEngine.Vector2
IL_03A3: ldloc.0
IL_03A4: brfalse => Label15
IL_03A9: ldarg.s 8
IL_03AB: ldfld UnityEngine.Vector2[] MeshData::m_uvs4
IL_03B0: ldarg.s 5
IL_03B2: ldind.i4
IL_03B3: ldelema UnityEngine.Vector2
IL_03B8: ldloc.s 12 (UnityEngine.Vector2)
IL_03BA: stobj UnityEngine.Vector2
IL_03BF: Label15
IL_03BF: ldarg.s 8
IL_03C1: ldfld UnityEngine.Color32[] MeshData::m_colors
IL_03C6: ldarg.s 5
IL_03C8: ldind.i4
IL_03C9: ldelema UnityEngine.Color32
IL_03CE: ldloc.s 15 (UnityEngine.Color)
IL_03D0: call static UnityEngine.Color32
UnityEngine.Color32::op_Implicit(UnityEngine.Color c)
IL_03D5: stobj UnityEngine.Color32
IL_03DA: ldarg.s 5
IL_03DC: ldarg.s 5
IL_03DE: ldind.i4
IL_03DF: ldc.i4.1
IL_03E0: add
IL_03E1: stind.i4
IL_03E2: ldarg.s 8
IL_03E4: ldfld UnityEngine.Vector3[] MeshData::m_vertices
IL_03E9: ldarg.s 5
IL_03EB: ldind.i4
IL_03EC: ldelema UnityEngine.Vector3
IL_03F1: ldloca.s 4 (UnityEngine.Vector3)
IL_03F3: ldfld System.Single UnityEngine.Vector3::x
IL_03F8: ldloc.s 18 (System.Single)
IL_03FA: add
IL_03FB: ldloca.s 4 (UnityEngine.Vector3)
IL_03FD: ldfld System.Single UnityEngine.Vector3::y
IL_0402: ldarg.0
IL_0403: ldfld System.Single LightEffect::m_lightRange
IL_0408: add
IL_0409: ldloca.s 4 (UnityEngine.Vector3)
IL_040B: ldfld System.Single UnityEngine.Vector3::z
IL_0410: ldarg.0
IL_0411: ldfld System.Single LightEffect::m_lightRange
IL_0416: add
IL_0417: newobj System.Void UnityEngine.Vector3::.ctor(System.Single x,
System.Single y, System.Single z)
IL_041C: stobj UnityEngine.Vector3
IL_0421: ldarg.s 8
IL_0423: ldfld UnityEngine.Vector3[] MeshData::m_normals
IL_0428: ldarg.s 5
IL_042A: ldind.i4
IL_042B: ldelema UnityEngine.Vector3
IL_0430: ldarg.3
IL_0431: stobj UnityEngine.Vector3
IL_0436: ldarg.s 8
IL_0438: ldfld UnityEngine.Vector4[] MeshData::m_tangents
IL_043D: ldarg.s 5
IL_043F: ldind.i4
IL_0440: ldelema UnityEngine.Vector4
IL_0445: ldloc.s 7 (UnityEngine.Vector4)
IL_0447: stobj UnityEngine.Vector4
IL_044C: ldarg.s 8
IL_044E: ldfld UnityEngine.Vector2[] MeshData::m_uvs
IL_0453: ldarg.s 5
IL_0455: ldind.i4
IL_0456: ldelema UnityEngine.Vector2
IL_045B: ldloc.s 8 (UnityEngine.Vector2)
IL_045D: stobj UnityEngine.Vector2
IL_0462: ldarg.s 8
IL_0464: ldfld UnityEngine.Vector2[] MeshData::m_uvs2
IL_0469: ldarg.s 5
IL_046B: ldind.i4
IL_046C: ldelema UnityEngine.Vector2
IL_0471: ldloc.s 10 (UnityEngine.Vector2)
IL_0473: stobj UnityEngine.Vector2
IL_0478: ldarg.s 8
IL_047A: ldfld UnityEngine.Vector2[] MeshData::m_uvs3
IL_047F: ldarg.s 5
IL_0481: ldind.i4
IL_0482: ldelema UnityEngine.Vector2
IL_0487: ldloc.s 11 (UnityEngine.Vector2)
IL_0489: stobj UnityEngine.Vector2
IL_048E: ldloc.0
IL_048F: brfalse => Label16
IL_0494: ldarg.s 8
IL_0496: ldfld UnityEngine.Vector2[] MeshData::m_uvs4
IL_049B: ldarg.s 5
IL_049D: ldind.i4
IL_049E: ldelema UnityEngine.Vector2
IL_04A3: ldloc.s 12 (UnityEngine.Vector2)
IL_04A5: stobj UnityEngine.Vector2
IL_04AA: Label16
IL_04AA: ldarg.s 8
IL_04AC: ldfld UnityEngine.Color32[] MeshData::m_colors
IL_04B1: ldarg.s 5
IL_04B3: ldind.i4
IL_04B4: ldelema UnityEngine.Color32
IL_04B9: ldloc.s 15 (UnityEngine.Color)
IL_04BB: call static UnityEngine.Color32
UnityEngine.Color32::op_Implicit(UnityEngine.Color c)
IL_04C0: stobj UnityEngine.Color32
IL_04C5: ldarg.s 5
IL_04C7: ldarg.s 5
IL_04C9: ldind.i4
IL_04CA: ldc.i4.1
IL_04CB: add
IL_04CC: stind.i4
IL_04CD: ldarg.s 8
IL_04CF: ldfld UnityEngine.Vector3[] MeshData::m_vertices
IL_04D4: ldarg.s 5
IL_04D6: ldind.i4
IL_04D7: ldelema UnityEngine.Vector3
IL_04DC: ldloca.s 4 (UnityEngine.Vector3)
IL_04DE: ldfld System.Single UnityEngine.Vector3::x
IL_04E3: ldloc.s 17 (System.Single)
IL_04E5: add
IL_04E6: ldloca.s 4 (UnityEngine.Vector3)
IL_04E8: ldfld System.Single UnityEngine.Vector3::y
IL_04ED: ldloca.s 4 (UnityEngine.Vector3)
IL_04EF: ldfld System.Single UnityEngine.Vector3::z
IL_04F4: ldarg.0
IL_04F5: ldfld System.Single LightEffect::m_lightRange
IL_04FA: add
IL_04FB: newobj System.Void UnityEngine.Vector3::.ctor(System.Single x,
System.Single y, System.Single z)
IL_0500: stobj UnityEngine.Vector3
IL_0505: ldarg.s 8
IL_0507: ldfld UnityEngine.Vector3[] MeshData::m_normals
IL_050C: ldarg.s 5
IL_050E: ldind.i4
IL_050F: ldelema UnityEngine.Vector3
IL_0514: ldarg.3
IL_0515: stobj UnityEngine.Vector3
IL_051A: ldarg.s 8
IL_051C: ldfld UnityEngine.Vector4[] MeshData::m_tangents
IL_0521: ldarg.s 5
IL_0523: ldind.i4
IL_0524: ldelema UnityEngine.Vector4
IL_0529: ldloc.s 7 (UnityEngine.Vector4)
IL_052B: stobj UnityEngine.Vector4
IL_0530: ldarg.s 8
IL_0532: ldfld UnityEngine.Vector2[] MeshData::m_uvs
IL_0537: ldarg.s 5
IL_0539: ldind.i4
IL_053A: ldelema UnityEngine.Vector2
IL_053F: ldloc.s 8 (UnityEngine.Vector2)
IL_0541: stobj UnityEngine.Vector2
IL_0546: ldarg.s 8
IL_0548: ldfld UnityEngine.Vector2[] MeshData::m_uvs2
IL_054D: ldarg.s 5
IL_054F: ldind.i4
IL_0550: ldelema UnityEngine.Vector2
IL_0555: ldloc.s 10 (UnityEngine.Vector2)
IL_0557: stobj UnityEngine.Vector2
IL_055C: ldarg.s 8
IL_055E: ldfld UnityEngine.Vector2[] MeshData::m_uvs3
IL_0563: ldarg.s 5
IL_0565: ldind.i4
IL_0566: ldelema UnityEngine.Vector2
IL_056B: ldloc.s 11 (UnityEngine.Vector2)
IL_056D: stobj UnityEngine.Vector2
IL_0572: ldloc.0
IL_0573: brfalse => Label17
IL_0578: ldarg.s 8
IL_057A: ldfld UnityEngine.Vector2[] MeshData::m_uvs4
IL_057F: ldarg.s 5
IL_0581: ldind.i4
IL_0582: ldelema UnityEngine.Vector2
IL_0587: ldloc.s 12 (UnityEngine.Vector2)
IL_0589: stobj UnityEngine.Vector2
IL_058E: Label17
IL_058E: ldarg.s 8
IL_0590: ldfld UnityEngine.Color32[] MeshData::m_colors
IL_0595: ldarg.s 5
IL_0597: ldind.i4
IL_0598: ldelema UnityEngine.Color32
IL_059D: ldloc.s 15 (UnityEngine.Color)
IL_059F: call static UnityEngine.Color32
UnityEngine.Color32::op_Implicit(UnityEngine.Color c)
IL_05A4: stobj UnityEngine.Color32
IL_05A9: ldarg.s 5
IL_05AB: ldarg.s 5
IL_05AD: ldind.i4
IL_05AE: ldc.i4.1
IL_05AF: add
IL_05B0: stind.i4
IL_05B1: ldarg.s 8
IL_05B3: ldfld UnityEngine.Vector3[] MeshData::m_vertices
IL_05B8: ldarg.s 5
IL_05BA: ldind.i4
IL_05BB: ldelema UnityEngine.Vector3
IL_05C0: ldloca.s 4 (UnityEngine.Vector3)
IL_05C2: ldfld System.Single UnityEngine.Vector3::x
IL_05C7: ldloc.s 18 (System.Single)
IL_05C9: add
IL_05CA: ldloca.s 4 (UnityEngine.Vector3)
IL_05CC: ldfld System.Single UnityEngine.Vector3::y
IL_05D1: ldarg.0
IL_05D2: ldfld System.Single LightEffect::m_lightRange
IL_05D7: sub
IL_05D8: ldloca.s 4 (UnityEngine.Vector3)
IL_05DA: ldfld System.Single UnityEngine.Vector3::z
IL_05DF: ldarg.0
IL_05E0: ldfld System.Single LightEffect::m_lightRange
IL_05E5: add
IL_05E6: newobj System.Void UnityEngine.Vector3::.ctor(System.Single x,
System.Single y, System.Single z)
IL_05EB: stobj UnityEngine.Vector3
IL_05F0: ldarg.s 8
IL_05F2: ldfld UnityEngine.Vector3[] MeshData::m_normals
IL_05F7: ldarg.s 5
IL_05F9: ldind.i4
IL_05FA: ldelema UnityEngine.Vector3
IL_05FF: ldarg.3
IL_0600: stobj UnityEngine.Vector3
IL_0605: ldarg.s 8
IL_0607: ldfld UnityEngine.Vector4[] MeshData::m_tangents
IL_060C: ldarg.s 5
IL_060E: ldind.i4
IL_060F: ldelema UnityEngine.Vector4
IL_0614: ldloc.s 7 (UnityEngine.Vector4)
IL_0616: stobj UnityEngine.Vector4
IL_061B: ldarg.s 8
IL_061D: ldfld UnityEngine.Vector2[] MeshData::m_uvs
IL_0622: ldarg.s 5
IL_0624: ldind.i4
IL_0625: ldelema UnityEngine.Vector2
IL_062A: ldloc.s 8 (UnityEngine.Vector2)
IL_062C: stobj UnityEngine.Vector2
IL_0631: ldarg.s 8
IL_0633: ldfld UnityEngine.Vector2[] MeshData::m_uvs2
IL_0638: ldarg.s 5
IL_063A: ldind.i4
IL_063B: ldelema UnityEngine.Vector2
IL_0640: ldloc.s 10 (UnityEngine.Vector2)
IL_0642: stobj UnityEngine.Vector2
IL_0647: ldarg.s 8
IL_0649: ldfld UnityEngine.Vector2[] MeshData::m_uvs3
IL_064E: ldarg.s 5
IL_0650: ldind.i4
IL_0651: ldelema UnityEngine.Vector2
IL_0656: ldloc.s 11 (UnityEngine.Vector2)
IL_0658: stobj UnityEngine.Vector2
IL_065D: ldloc.0
IL_065E: brfalse => Label18
IL_0663: ldarg.s 8
IL_0665: ldfld UnityEngine.Vector2[] MeshData::m_uvs4
IL_066A: ldarg.s 5
IL_066C: ldind.i4
IL_066D: ldelema UnityEngine.Vector2
IL_0672: ldloc.s 12 (UnityEngine.Vector2)
IL_0674: stobj UnityEngine.Vector2
IL_0679: Label18
IL_0679: ldarg.s 8
IL_067B: ldfld UnityEngine.Color32[] MeshData::m_colors
IL_0680: ldarg.s 5
IL_0682: ldind.i4
IL_0683: ldelema UnityEngine.Color32
IL_0688: ldloc.s 15 (UnityEngine.Color)
IL_068A: call static UnityEngine.Color32
UnityEngine.Color32::op_Implicit(UnityEngine.Color c)
IL_068F: stobj UnityEngine.Color32
IL_0694: ldarg.s 5
IL_0696: ldarg.s 5
IL_0698: ldind.i4
IL_0699: ldc.i4.1
IL_069A: add
IL_069B: stind.i4
IL_069C: ldarg.s 8
IL_069E: ldfld UnityEngine.Vector3[] MeshData::m_vertices
IL_06A3: ldarg.s 5
IL_06A5: ldind.i4
IL_06A6: ldelema UnityEngine.Vector3
IL_06AB: ldloca.s 4 (UnityEngine.Vector3)
IL_06AD: ldfld System.Single UnityEngine.Vector3::x
IL_06B2: ldloc.s 18 (System.Single)
IL_06B4: sub
IL_06B5: ldloca.s 4 (UnityEngine.Vector3)
IL_06B7: ldfld System.Single UnityEngine.Vector3::y
IL_06BC: ldarg.0
IL_06BD: ldfld System.Single LightEffect::m_lightRange
IL_06C2: sub
IL_06C3: ldloca.s 4 (UnityEngine.Vector3)
IL_06C5: ldfld System.Single UnityEngine.Vector3::z
IL_06CA: ldarg.0
IL_06CB: ldfld System.Single LightEffect::m_lightRange
IL_06D0: add
IL_06D1: newobj System.Void UnityEngine.Vector3::.ctor(System.Single x,
System.Single y, System.Single z)
IL_06D6: stobj UnityEngine.Vector3
IL_06DB: ldarg.s 8
IL_06DD: ldfld UnityEngine.Vector3[] MeshData::m_normals
IL_06E2: ldarg.s 5
IL_06E4: ldind.i4
IL_06E5: ldelema UnityEngine.Vector3
IL_06EA: ldarg.3
IL_06EB: stobj UnityEngine.Vector3
IL_06F0: ldarg.s 8
IL_06F2: ldfld UnityEngine.Vector4[] MeshData::m_tangents
IL_06F7: ldarg.s 5
IL_06F9: ldind.i4
IL_06FA: ldelema UnityEngine.Vector4
IL_06FF: ldloc.s 7 (UnityEngine.Vector4)
IL_0701: stobj UnityEngine.Vector4
IL_0706: ldarg.s 8
IL_0708: ldfld UnityEngine.Vector2[] MeshData::m_uvs
IL_070D: ldarg.s 5
IL_070F: ldind.i4
IL_0710: ldelema UnityEngine.Vector2
IL_0715: ldloc.s 8 (UnityEngine.Vector2)
IL_0717: stobj UnityEngine.Vector2
IL_071C: ldarg.s 8
IL_071E: ldfld UnityEngine.Vector2[] MeshData::m_uvs2
IL_0723: ldarg.s 5
IL_0725: ldind.i4
IL_0726: ldelema UnityEngine.Vector2
IL_072B: ldloc.s 10 (UnityEngine.Vector2)
IL_072D: stobj UnityEngine.Vector2
IL_0732: ldarg.s 8
IL_0734: ldfld UnityEngine.Vector2[] MeshData::m_uvs3
IL_0739: ldarg.s 5
IL_073B: ldind.i4
IL_073C: ldelema UnityEngine.Vector2
IL_0741: ldloc.s 11 (UnityEngine.Vector2)
IL_0743: stobj UnityEngine.Vector2
IL_0748: ldloc.0
IL_0749: brfalse => Label19
IL_074E: ldarg.s 8
IL_0750: ldfld UnityEngine.Vector2[] MeshData::m_uvs4
IL_0755: ldarg.s 5
IL_0757: ldind.i4
IL_0758: ldelema UnityEngine.Vector2
IL_075D: ldloc.s 12 (UnityEngine.Vector2)
IL_075F: stobj UnityEngine.Vector2
IL_0764: Label19
IL_0764: ldarg.s 8
IL_0766: ldfld UnityEngine.Color32[] MeshData::m_colors
IL_076B: ldarg.s 5
IL_076D: ldind.i4
IL_076E: ldelema UnityEngine.Color32
IL_0773: ldloc.s 15 (UnityEngine.Color)
IL_0775: call static UnityEngine.Color32
UnityEngine.Color32::op_Implicit(UnityEngine.Color c)
IL_077A: stobj UnityEngine.Color32
IL_077F: ldarg.s 5
IL_0781: ldarg.s 5
IL_0783: ldind.i4
IL_0784: ldc.i4.1
IL_0785: add
IL_0786: stind.i4
IL_0787: ldarg.s 8
IL_0789: ldfld UnityEngine.Vector3[] MeshData::m_vertices
IL_078E: ldarg.s 5
IL_0790: ldind.i4
IL_0791: ldelema UnityEngine.Vector3
IL_0796: ldloca.s 4 (UnityEngine.Vector3)
IL_0798: ldfld System.Single UnityEngine.Vector3::x
IL_079D: ldloc.s 17 (System.Single)
IL_079F: sub
IL_07A0: ldloca.s 4 (UnityEngine.Vector3)
IL_07A2: ldfld System.Single UnityEngine.Vector3::y
IL_07A7: ldloca.s 4 (UnityEngine.Vector3)
IL_07A9: ldfld System.Single UnityEngine.Vector3::z
IL_07AE: ldarg.0
IL_07AF: ldfld System.Single LightEffect::m_lightRange
IL_07B4: add
IL_07B5: newobj System.Void UnityEngine.Vector3::.ctor(System.Single x,
System.Single y, System.Single z)
IL_07BA: stobj UnityEngine.Vector3
IL_07BF: ldarg.s 8
IL_07C1: ldfld UnityEngine.Vector3[] MeshData::m_normals
IL_07C6: ldarg.s 5
IL_07C8: ldind.i4
IL_07C9: ldelema UnityEngine.Vector3
IL_07CE: ldarg.3
IL_07CF: stobj UnityEngine.Vector3
IL_07D4: ldarg.s 8
IL_07D6: ldfld UnityEngine.Vector4[] MeshData::m_tangents
IL_07DB: ldarg.s 5
IL_07DD: ldind.i4
IL_07DE: ldelema UnityEngine.Vector4
IL_07E3: ldloc.s 7 (UnityEngine.Vector4)
IL_07E5: stobj UnityEngine.Vector4
IL_07EA: ldarg.s 8
IL_07EC: ldfld UnityEngine.Vector2[] MeshData::m_uvs
IL_07F1: ldarg.s 5
IL_07F3: ldind.i4
IL_07F4: ldelema UnityEngine.Vector2
IL_07F9: ldloc.s 8 (UnityEngine.Vector2)
IL_07FB: stobj UnityEngine.Vector2
IL_0800: ldarg.s 8
IL_0802: ldfld UnityEngine.Vector2[] MeshData::m_uvs2
IL_0807: ldarg.s 5
IL_0809: ldind.i4
IL_080A: ldelema UnityEngine.Vector2
IL_080F: ldloc.s 10 (UnityEngine.Vector2)
IL_0811: stobj UnityEngine.Vector2
IL_0816: ldarg.s 8
IL_0818: ldfld UnityEngine.Vector2[] MeshData::m_uvs3
IL_081D: ldarg.s 5
IL_081F: ldind.i4
IL_0820: ldelema UnityEngine.Vector2
IL_0825: ldloc.s 11 (UnityEngine.Vector2)
IL_0827: stobj UnityEngine.Vector2
IL_082C: ldloc.0
IL_082D: brfalse => Label20
IL_0832: ldarg.s 8
IL_0834: ldfld UnityEngine.Vector2[] MeshData::m_uvs4
IL_0839: ldarg.s 5
IL_083B: ldind.i4
IL_083C: ldelema UnityEngine.Vector2
IL_0841: ldloc.s 12 (UnityEngine.Vector2)
IL_0843: stobj UnityEngine.Vector2
IL_0848: Label20
IL_0848: ldarg.s 8
IL_084A: ldfld UnityEngine.Color32[] MeshData::m_colors
IL_084F: ldarg.s 5
IL_0851: ldind.i4
IL_0852: ldelema UnityEngine.Color32
IL_0857: ldloc.s 15 (UnityEngine.Color)
IL_0859: call static UnityEngine.Color32
UnityEngine.Color32::op_Implicit(UnityEngine.Color c)
IL_085E: stobj UnityEngine.Color32
IL_0863: ldarg.s 5
IL_0865: ldarg.s 5
IL_0867: ldind.i4
IL_0868: ldc.i4.1
IL_0869: add
IL_086A: stind.i4
IL_086B: ldarg.s 8
IL_086D: ldfld System.Int32[] MeshData::m_triangles
IL_0872: ldarg.s 6
IL_0874: ldarg.s 6
IL_0876: ldind.i4
IL_0877: dup
IL_0878: stloc.s 19 (System.Int32)
IL_087A: ldc.i4.1
IL_087B: add
IL_087C: stind.i4
IL_087D: ldloc.s 19 (System.Int32)
IL_087F: ldarg.s 5
IL_0881: ldind.i4
IL_0882: ldc.i4.6
IL_0883: sub
IL_0884: stelem.i4
IL_0885: ldarg.s 8
IL_0887: ldfld System.Int32[] MeshData::m_triangles
IL_088C: ldarg.s 6
IL_088E: ldarg.s 6
IL_0890: ldind.i4
IL_0891: dup
IL_0892: stloc.s 19 (System.Int32)
IL_0894: ldc.i4.1
IL_0895: add
IL_0896: stind.i4
IL_0897: ldloc.s 19 (System.Int32)
IL_0899: ldarg.s 5
IL_089B: ldind.i4
IL_089C: ldc.i4.5
IL_089D: sub
IL_089E: stelem.i4
IL_089F: ldarg.s 8
IL_08A1: ldfld System.Int32[] MeshData::m_triangles
IL_08A6: ldarg.s 6
IL_08A8: ldarg.s 6
IL_08AA: ldind.i4
IL_08AB: dup
IL_08AC: stloc.s 19 (System.Int32)
IL_08AE: ldc.i4.1
IL_08AF: add
IL_08B0: stind.i4
IL_08B1: ldloc.s 19 (System.Int32)
IL_08B3: ldarg.s 5
IL_08B5: ldind.i4
IL_08B6: ldc.i4.1
IL_08B7: sub
IL_08B8: stelem.i4
IL_08B9: ldarg.s 8
IL_08BB: ldfld System.Int32[] MeshData::m_triangles
IL_08C0: ldarg.s 6
IL_08C2: ldarg.s 6
IL_08C4: ldind.i4
IL_08C5: dup
IL_08C6: stloc.s 19 (System.Int32)
IL_08C8: ldc.i4.1
IL_08C9: add
IL_08CA: stind.i4
IL_08CB: ldloc.s 19 (System.Int32)
IL_08CD: ldarg.s 5
IL_08CF: ldind.i4
IL_08D0: ldc.i4.1
IL_08D1: sub
IL_08D2: stelem.i4
IL_08D3: ldarg.s 8
IL_08D5: ldfld System.Int32[] MeshData::m_triangles
IL_08DA: ldarg.s 6
IL_08DC: ldarg.s 6
IL_08DE: ldind.i4
IL_08DF: dup
IL_08E0: stloc.s 19 (System.Int32)
IL_08E2: ldc.i4.1
IL_08E3: add
IL_08E4: stind.i4
IL_08E5: ldloc.s 19 (System.Int32)
IL_08E7: ldarg.s 5
IL_08E9: ldind.i4
IL_08EA: ldc.i4.5
IL_08EB: sub
IL_08EC: stelem.i4
IL_08ED: ldarg.s 8
IL_08EF: ldfld System.Int32[] MeshData::m_triangles
IL_08F4: ldarg.s 6
IL_08F6: ldarg.s 6
IL_08F8: ldind.i4
IL_08F9: dup
IL_08FA: stloc.s 19 (System.Int32)
IL_08FC: ldc.i4.1
IL_08FD: add
IL_08FE: stind.i4
IL_08FF: ldloc.s 19 (System.Int32)
IL_0901: ldarg.s 5
IL_0903: ldind.i4
IL_0904: ldc.i4.4
IL_0905: sub
IL_0906: stelem.i4
IL_0907: ldarg.s 8
IL_0909: ldfld System.Int32[] MeshData::m_triangles
IL_090E: ldarg.s 6
IL_0910: ldarg.s 6
IL_0912: ldind.i4
IL_0913: dup
IL_0914: stloc.s 19 (System.Int32)
IL_0916: ldc.i4.1
IL_0917: add
IL_0918: stind.i4
IL_0919: ldloc.s 19 (System.Int32)
IL_091B: ldarg.s 5
IL_091D: ldind.i4
IL_091E: ldc.i4.1
IL_091F: sub
IL_0920: stelem.i4
IL_0921: ldarg.s 8
IL_0923: ldfld System.Int32[] MeshData::m_triangles
IL_0928: ldarg.s 6
IL_092A: ldarg.s 6
IL_092C: ldind.i4
IL_092D: dup
IL_092E: stloc.s 19 (System.Int32)
IL_0930: ldc.i4.1
IL_0931: add
IL_0932: stind.i4
IL_0933: ldloc.s 19 (System.Int32)
IL_0935: ldarg.s 5
IL_0937: ldind.i4
IL_0938: ldc.i4.4
IL_0939: sub
IL_093A: stelem.i4
IL_093B: ldarg.s 8
IL_093D: ldfld System.Int32[] MeshData::m_triangles
IL_0942: ldarg.s 6
IL_0944: ldarg.s 6
IL_0946: ldind.i4
IL_0947: dup
IL_0948: stloc.s 19 (System.Int32)
IL_094A: ldc.i4.1
IL_094B: add
IL_094C: stind.i4
IL_094D: ldloc.s 19 (System.Int32)
IL_094F: ldarg.s 5
IL_0951: ldind.i4
IL_0952: ldc.i4.2
IL_0953: sub
IL_0954: stelem.i4
IL_0955: ldarg.s 8
IL_0957: ldfld System.Int32[] MeshData::m_triangles
IL_095C: ldarg.s 6
IL_095E: ldarg.s 6
IL_0960: ldind.i4
IL_0961: dup
IL_0962: stloc.s 19 (System.Int32)
IL_0964: ldc.i4.1
IL_0965: add
IL_0966: stind.i4
IL_0967: ldloc.s 19 (System.Int32)
IL_0969: ldarg.s 5
IL_096B: ldind.i4
IL_096C: ldc.i4.2
IL_096D: sub
IL_096E: stelem.i4
IL_096F: ldarg.s 8
IL_0971: ldfld System.Int32[] MeshData::m_triangles
IL_0976: ldarg.s 6
IL_0978: ldarg.s 6
IL_097A: ldind.i4
IL_097B: dup
IL_097C: stloc.s 19 (System.Int32)
IL_097E: ldc.i4.1
IL_097F: add
IL_0980: stind.i4
IL_0981: ldloc.s 19 (System.Int32)
IL_0983: ldarg.s 5
IL_0985: ldind.i4
IL_0986: ldc.i4.4
IL_0987: sub
IL_0988: stelem.i4
IL_0989: ldarg.s 8
IL_098B: ldfld System.Int32[] MeshData::m_triangles
IL_0990: ldarg.s 6
IL_0992: ldarg.s 6
IL_0994: ldind.i4
IL_0995: dup
IL_0996: stloc.s 19 (System.Int32)
IL_0998: ldc.i4.1
IL_0999: add
IL_099A: stind.i4
IL_099B: ldloc.s 19 (System.Int32)
IL_099D: ldarg.s 5
IL_099F: ldind.i4
IL_09A0: ldc.i4.3
IL_09A1: sub
IL_09A2: stelem.i4
IL_09A3: // end original
IL_09A3: Label3
IL_09A3: Label0
IL_09A3: ret
DONE

### Patch: virtual System.Void ElectricityManager::SimulationStepImpl(System.Int32


subStep)
### Replacement: static System.Void
ElectricityManager::ElectricityManager.SimulationStepImpl_Patch0(ElectricityManager
this, System.Int32 subStep)
IL_0000: Local var 0: System.UInt32
IL_0000: Local var 1: System.Int32
IL_0000: Local var 2: NetManager
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: NetInfo
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: ElectricityManager/Cell
IL_0000: Local var 13: ElectricityManager/PulseGroup
IL_0000: Local var 14: ElectricityManager/PulseUnit
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: ElectricityManager/PulseUnit
IL_0000: Local var 19: System.UInt32
IL_0000: Local var 20: System.Int32
IL_0000: Local var 21: ElectricityManager/Cell
IL_0000: Local var 22: System.Int32
IL_0000: Local var 23: System.Int32
IL_0000: Local var 24: NetNode
IL_0000: Local var 25: System.Int32
IL_0000: Local var 26: System.UInt16
IL_0000: Local var 27: System.UInt16
IL_0000: Local var 28: System.UInt16
IL_0000: Local var 29: System.UInt16
IL_0000: Local var 30: System.Int32
IL_0000: Local var 31: ElectricityManager/PulseGroup
IL_0000: Local var 32: ElectricityManager/PulseGroup
IL_0000: Local var 33: System.Int32
IL_0000: Local var 34: ElectricityManager/PulseGroup
IL_0000: Local var 35: System.Int32
IL_0000: Local var 36: ElectricityManager/Cell
IL_0000: // start original
IL_0000: ldarg.1
IL_0001: brfalse => Label0
IL_0006: ldarg.1
IL_0007: ldc.i4 1000
IL_000C: beq => Label1
IL_0011: call static SimulationManager
ColossalFramework.Singleton`1<SimulationManager>::get_instance()
IL_0016: ldfld System.UInt32 SimulationManager::m_currentFrameIndex
IL_001B: stloc.0
IL_001C: ldloc.0
IL_001D: ldc.i4 255
IL_0022: and
IL_0023: stloc.1
IL_0024: ldloc.1
IL_0025: ldc.i4 128
IL_002A: bge => Label2
IL_002F: ldloc.1
IL_0030: brtrue => Label3
IL_0035: ldarg.0
IL_0036: ldc.i4.0
IL_0037: stfld System.Int32 ElectricityManager::m_pulseGroupCount
IL_003C: ldarg.0
IL_003D: ldc.i4.0
IL_003E: stfld System.Int32 ElectricityManager::m_pulseUnitStart
IL_0043: ldarg.0
IL_0044: ldc.i4.0
IL_0045: stfld System.Int32 ElectricityManager::m_pulseUnitEnd
IL_004A: ldarg.0
IL_004B: ldc.i4.0
IL_004C: stfld System.Int32 ElectricityManager::m_processedCells
IL_0051: ldarg.0
IL_0052: ldc.i4.0
IL_0053: stfld System.Int32 ElectricityManager::m_conductiveCells
IL_0058: ldarg.0
IL_0059: ldc.i4.1
IL_005A: stfld System.Boolean ElectricityManager::m_canContinue
IL_005F: Label3
IL_005F: call static NetManager
ColossalFramework.Singleton`1<NetManager>::get_instance()
IL_0064: stloc.2
IL_0065: ldloc.1
IL_0066: ldc.i4 32768
IL_006B: mul
IL_006C: ldc.i4.7
IL_006D: shr
IL_006E: stloc.3
IL_006F: ldloc.1
IL_0070: ldc.i4.1
IL_0071: add
IL_0072: ldc.i4 32768
IL_0077: mul
IL_0078: ldc.i4.7
IL_0079: shr
IL_007A: ldc.i4.1
IL_007B: sub
IL_007C: stloc.s 4 (System.Int32)
IL_007E: ldloc.3
IL_007F: stloc.s 5 (System.Int32)
IL_0081: br => Label4
IL_0086: Label10
IL_0086: ldloc.2
IL_0087: ldfld Array16`1<NetNode> NetManager::m_nodes
IL_008C: ldfld NetNode[] Array16`1<NetNode>::m_buffer
IL_0091: ldloc.s 5 (System.Int32)
IL_0093: ldelema NetNode
IL_0098: ldfld Flags NetNode::m_flags
IL_009D: brfalse => Label5
IL_00A2: ldloc.2
IL_00A3: ldfld Array16`1<NetNode> NetManager::m_nodes
IL_00A8: ldfld NetNode[] Array16`1<NetNode>::m_buffer
IL_00AD: ldloc.s 5 (System.Int32)
IL_00AF: ldelema NetNode
IL_00B4: call static System.Boolean
ElectricRoads.Overrides.ElectricRoadsOverrides::CheckElectricConductibility(NetNode
& node)
IL_00B9: brfalse => Label7
IL_00BE: Label6
IL_00BE: ldarg.0
IL_00BF: ldloc.s 5 (System.Int32)
IL_00C1: ldarg.0
IL_00C2: ldfld System.UInt16[] ElectricityManager::m_nodeGroups
IL_00C7: ldloc.s 5 (System.Int32)
IL_00C9: ldelem.u2
IL_00CA: ldc.i4 65535
IL_00CF: beq => Label8
IL_00D4: ldc.i4.1
IL_00D5: br => Label9
IL_00DA: Label8
IL_00DA: ldc.i4.0
IL_00DB: Label9
IL_00DB: call System.Void
ElectricityManager::UpdateNodeElectricity(System.Int32 nodeID, System.Int32 value)
IL_00E0: ldarg.0
IL_00E1: dup
IL_00E2: ldfld System.Int32 ElectricityManager::m_conductiveCells
IL_00E7: ldc.i4.1
IL_00E8: add
IL_00E9: stfld System.Int32 ElectricityManager::m_conductiveCells
IL_00EE: Label5
IL_00EE: Label7
IL_00EE: ldarg.0
IL_00EF: ldfld System.UInt16[] ElectricityManager::m_nodeGroups
IL_00F4: ldloc.s 5 (System.Int32)
IL_00F6: ldc.i4 65535
IL_00FB: stelem.i2
IL_00FC: ldloc.s 5 (System.Int32)
IL_00FE: ldc.i4.1
IL_00FF: add
IL_0100: stloc.s 5 (System.Int32)
IL_0102: Label4
IL_0102: ldloc.s 5 (System.Int32)
IL_0104: ldloc.s 4 (System.Int32)
IL_0106: ble => Label10
IL_010B: ldloc.1
IL_010C: ldc.i4 256
IL_0111: mul
IL_0112: ldc.i4.7
IL_0113: shr
IL_0114: stloc.s 7 (System.Int32)
IL_0116: ldloc.1
IL_0117: ldc.i4.1
IL_0118: add
IL_0119: ldc.i4 256
IL_011E: mul
IL_011F: ldc.i4.7
IL_0120: shr
IL_0121: ldc.i4.1
IL_0122: sub
IL_0123: stloc.s 8 (System.Int32)
IL_0125: ldloc.s 7 (System.Int32)
IL_0127: stloc.s 9 (System.Int32)
IL_0129: br => Label11
IL_012E: Label21
IL_012E: ldloc.s 9 (System.Int32)
IL_0130: ldc.i4 256
IL_0135: mul
IL_0136: stloc.s 10 (System.Int32)
IL_0138: ldc.i4.0
IL_0139: stloc.s 11 (System.Int32)
IL_013B: br => Label12
IL_0140: Label20
IL_0140: ldarg.0
IL_0141: ldfld Cell[] ElectricityManager::m_electricityGrid
IL_0146: ldloc.s 10 (System.Int32)
IL_0148: ldelema ElectricityManager+Cell
IL_014D: ldobj ElectricityManager+Cell
IL_0152: stloc.s 12 (ElectricityManager+Cell)
IL_0154: ldloca.s 12 (ElectricityManager+Cell)
IL_0156: ldfld System.Int16 Cell::m_currentCharge
IL_015B: ldc.i4.0
IL_015C: ble => Label13
IL_0161: ldarg.0
IL_0162: ldfld System.Int32 ElectricityManager::m_pulseGroupCount
IL_0167: ldc.i4 1024
IL_016C: bge => Label14
IL_0171: ldloca.s 13 (ElectricityManager+PulseGroup)
IL_0173: ldloca.s 12 (ElectricityManager+Cell)
IL_0175: ldfld System.Int16 Cell::m_currentCharge
IL_017A: conv.u4
IL_017B: stfld System.UInt32 PulseGroup::m_origCharge
IL_0180: ldloca.s 13 (ElectricityManager+PulseGroup)
IL_0182: ldloca.s 12 (ElectricityManager+Cell)
IL_0184: ldfld System.Int16 Cell::m_currentCharge
IL_0189: conv.u4
IL_018A: stfld System.UInt32 PulseGroup::m_curCharge
IL_018F: ldloca.s 13 (ElectricityManager+PulseGroup)
IL_0191: ldc.i4.0
IL_0192: stfld System.UInt16 PulseGroup::m_mergeCount
IL_0197: ldloca.s 13 (ElectricityManager+PulseGroup)
IL_0199: ldc.i4 65535
IL_019E: stfld System.UInt16 PulseGroup::m_mergeIndex
IL_01A3: ldloca.s 13 (ElectricityManager+PulseGroup)
IL_01A5: ldloc.s 11 (System.Int32)
IL_01A7: conv.u1
IL_01A8: stfld System.Byte PulseGroup::m_x
IL_01AD: ldloca.s 13 (ElectricityManager+PulseGroup)
IL_01AF: ldloc.s 9 (System.Int32)
IL_01B1: conv.u1
IL_01B2: stfld System.Byte PulseGroup::m_z
IL_01B7: ldloca.s 14 (ElectricityManager+PulseUnit)
IL_01B9: ldarg.0
IL_01BA: ldfld System.Int32 ElectricityManager::m_pulseGroupCount
IL_01BF: conv.u2
IL_01C0: stfld System.UInt16 PulseUnit::m_group
IL_01C5: ldloca.s 14 (ElectricityManager+PulseUnit)
IL_01C7: ldc.i4.0
IL_01C8: stfld System.UInt16 PulseUnit::m_node
IL_01CD: ldloca.s 14 (ElectricityManager+PulseUnit)
IL_01CF: ldloc.s 11 (System.Int32)
IL_01D1: conv.u1
IL_01D2: stfld System.Byte PulseUnit::m_x
IL_01D7: ldloca.s 14 (ElectricityManager+PulseUnit)
IL_01D9: ldloc.s 9 (System.Int32)
IL_01DB: conv.u1
IL_01DC: stfld System.Byte PulseUnit::m_z
IL_01E1: ldloca.s 12 (ElectricityManager+Cell)
IL_01E3: ldarg.0
IL_01E4: ldfld System.Int32 ElectricityManager::m_pulseGroupCount
IL_01E9: conv.u2
IL_01EA: stfld System.UInt16 Cell::m_pulseGroup
IL_01EF: ldarg.0
IL_01F0: ldfld PulseGroup[] ElectricityManager::m_pulseGroups
IL_01F5: ldarg.0
IL_01F6: dup
IL_01F7: ldfld System.Int32 ElectricityManager::m_pulseGroupCount
IL_01FC: dup
IL_01FD: stloc.s 15 (System.Int32)
IL_01FF: ldc.i4.1
IL_0200: add
IL_0201: stfld System.Int32 ElectricityManager::m_pulseGroupCount
IL_0206: ldloc.s 15 (System.Int32)
IL_0208: ldelema ElectricityManager+PulseGroup
IL_020D: ldloc.s 13 (ElectricityManager+PulseGroup)
IL_020F: stobj ElectricityManager+PulseGroup
IL_0214: ldarg.0
IL_0215: ldfld PulseUnit[] ElectricityManager::m_pulseUnits
IL_021A: ldarg.0
IL_021B: ldfld System.Int32 ElectricityManager::m_pulseUnitEnd
IL_0220: ldelema ElectricityManager+PulseUnit
IL_0225: ldloc.s 14 (ElectricityManager+PulseUnit)
IL_0227: stobj ElectricityManager+PulseUnit
IL_022C: ldarg.0
IL_022D: dup
IL_022E: ldfld System.Int32 ElectricityManager::m_pulseUnitEnd
IL_0233: ldc.i4.1
IL_0234: add
IL_0235: dup
IL_0236: stloc.s 15 (System.Int32)
IL_0238: stfld System.Int32 ElectricityManager::m_pulseUnitEnd
IL_023D: ldloc.s 15 (System.Int32)
IL_023F: ldarg.0
IL_0240: ldfld PulseUnit[] ElectricityManager::m_pulseUnits
IL_0245: ldlen
IL_0246: conv.i4
IL_0247: bne.un => Label15
IL_024C: ldarg.0
IL_024D: ldc.i4.0
IL_024E: stfld System.Int32 ElectricityManager::m_pulseUnitEnd
IL_0253: Label15
IL_0253: br => Label16
IL_0258: Label14
IL_0258: ldloca.s 12 (ElectricityManager+Cell)
IL_025A: ldc.i4 65535
IL_025F: stfld System.UInt16 Cell::m_pulseGroup
IL_0264: Label16
IL_0264: ldloca.s 12 (ElectricityManager+Cell)
IL_0266: ldc.i4.0
IL_0267: stfld System.Int16 Cell::m_currentCharge
IL_026C: ldarg.0
IL_026D: dup
IL_026E: ldfld System.Int32 ElectricityManager::m_conductiveCells
IL_0273: ldc.i4.1
IL_0274: add
IL_0275: stfld System.Int32 ElectricityManager::m_conductiveCells
IL_027A: br => Label17
IL_027F: Label13
IL_027F: ldloca.s 12 (ElectricityManager+Cell)
IL_0281: ldc.i4 65535
IL_0286: stfld System.UInt16 Cell::m_pulseGroup
IL_028B: ldloca.s 12 (ElectricityManager+Cell)
IL_028D: ldfld System.Byte Cell::m_conductivity
IL_0292: ldc.i4.s 64
IL_0294: blt => Label18
IL_0299: ldarg.0
IL_029A: dup
IL_029B: ldfld System.Int32 ElectricityManager::m_conductiveCells
IL_02A0: ldc.i4.1
IL_02A1: add
IL_02A2: stfld System.Int32 ElectricityManager::m_conductiveCells
IL_02A7: Label17
IL_02A7: Label18
IL_02A7: ldloca.s 12 (ElectricityManager+Cell)
IL_02A9: ldfld System.Boolean Cell::m_tmpElectrified
IL_02AE: ldloca.s 12 (ElectricityManager+Cell)
IL_02B0: ldfld System.Boolean Cell::m_electrified
IL_02B5: beq => Label19
IL_02BA: ldloca.s 12 (ElectricityManager+Cell)
IL_02BC: ldloca.s 12 (ElectricityManager+Cell)
IL_02BE: ldfld System.Boolean Cell::m_tmpElectrified
IL_02C3: stfld System.Boolean Cell::m_electrified
IL_02C8: Label19
IL_02C8: ldloca.s 12 (ElectricityManager+Cell)
IL_02CA: ldloca.s 12 (ElectricityManager+Cell)
IL_02CC: ldfld System.UInt16 Cell::m_pulseGroup
IL_02D1: ldc.i4 65535
IL_02D6: ceq
IL_02D8: ldc.i4.0
IL_02D9: ceq
IL_02DB: stfld System.Boolean Cell::m_tmpElectrified
IL_02E0: ldarg.0
IL_02E1: ldfld Cell[] ElectricityManager::m_electricityGrid
IL_02E6: ldloc.s 10 (System.Int32)
IL_02E8: ldelema ElectricityManager+Cell
IL_02ED: ldloc.s 12 (ElectricityManager+Cell)
IL_02EF: stobj ElectricityManager+Cell
IL_02F4: ldloc.s 10 (System.Int32)
IL_02F6: ldc.i4.1
IL_02F7: add
IL_02F8: stloc.s 10 (System.Int32)
IL_02FA: ldloc.s 11 (System.Int32)
IL_02FC: ldc.i4.1
IL_02FD: add
IL_02FE: stloc.s 11 (System.Int32)
IL_0300: Label12
IL_0300: ldloc.s 11 (System.Int32)
IL_0302: ldc.i4 256
IL_0307: blt => Label20
IL_030C: ldloc.s 9 (System.Int32)
IL_030E: ldc.i4.1
IL_030F: add
IL_0310: stloc.s 9 (System.Int32)
IL_0312: Label11
IL_0312: ldloc.s 9 (System.Int32)
IL_0314: ldloc.s 8 (System.Int32)
IL_0316: ble => Label21
IL_031B: br => Label22
IL_0320: Label2
IL_0320: ldloc.1
IL_0321: ldc.i4.s 127
IL_0323: sub
IL_0324: ldarg.0
IL_0325: ldfld System.Int32 ElectricityManager::m_conductiveCells
IL_032A: mul
IL_032B: ldc.i4.7
IL_032C: shr
IL_032D: stloc.s 16 (System.Int32)
IL_032F: ldloc.1
IL_0330: ldc.i4 255
IL_0335: bne.un => Label23
IL_033A: ldc.i4 1000000000
IL_033F: stloc.s 16 (System.Int32)
IL_0341: Label23
IL_0341: br => Label24
IL_0346: Label54
IL_0346: ldarg.0
IL_0347: ldc.i4.0
IL_0348: stfld System.Boolean ElectricityManager::m_canContinue
IL_034D: ldarg.0
IL_034E: ldfld System.Int32 ElectricityManager::m_pulseUnitEnd
IL_0353: stloc.s 17 (System.Int32)
IL_0355: br => Label25
IL_035A: Label52
IL_035A: ldarg.0
IL_035B: ldfld PulseUnit[] ElectricityManager::m_pulseUnits
IL_0360: ldarg.0
IL_0361: ldfld System.Int32 ElectricityManager::m_pulseUnitStart
IL_0366: ldelema ElectricityManager+PulseUnit
IL_036B: ldobj ElectricityManager+PulseUnit
IL_0370: stloc.s 18 (ElectricityManager+PulseUnit)
IL_0372: ldarg.0
IL_0373: dup
IL_0374: ldfld System.Int32 ElectricityManager::m_pulseUnitStart
IL_0379: ldc.i4.1
IL_037A: add
IL_037B: dup
IL_037C: stloc.s 15 (System.Int32)
IL_037E: stfld System.Int32 ElectricityManager::m_pulseUnitStart
IL_0383: ldloc.s 15 (System.Int32)
IL_0385: ldarg.0
IL_0386: ldfld PulseUnit[] ElectricityManager::m_pulseUnits
IL_038B: ldlen
IL_038C: conv.i4
IL_038D: bne.un => Label26
IL_0392: ldarg.0
IL_0393: ldc.i4.0
IL_0394: stfld System.Int32 ElectricityManager::m_pulseUnitStart
IL_0399: Label26
IL_0399: ldloca.s 18 (ElectricityManager+PulseUnit)
IL_039B: ldarg.0
IL_039C: ldloca.s 18 (ElectricityManager+PulseUnit)
IL_039E: ldfld System.UInt16 PulseUnit::m_group
IL_03A3: call System.UInt16 ElectricityManager::GetRootGroup(System.UInt16
group)
IL_03A8: stfld System.UInt16 PulseUnit::m_group
IL_03AD: ldarg.0
IL_03AE: ldfld PulseGroup[] ElectricityManager::m_pulseGroups
IL_03B3: ldloca.s 18 (ElectricityManager+PulseUnit)
IL_03B5: ldfld System.UInt16 PulseUnit::m_group
IL_03BA: ldelema ElectricityManager+PulseGroup
IL_03BF: ldfld System.UInt32 PulseGroup::m_curCharge
IL_03C4: stloc.s 19 (System.UInt32)
IL_03C6: ldloca.s 18 (ElectricityManager+PulseUnit)
IL_03C8: ldfld System.UInt16 PulseUnit::m_node
IL_03CD: brtrue => Label27
IL_03D2: ldloca.s 18 (ElectricityManager+PulseUnit)
IL_03D4: ldfld System.Byte PulseUnit::m_z
IL_03D9: ldc.i4 256
IL_03DE: mul
IL_03DF: ldloca.s 18 (ElectricityManager+PulseUnit)
IL_03E1: ldfld System.Byte PulseUnit::m_x
IL_03E6: add
IL_03E7: stloc.s 20 (System.Int32)
IL_03E9: ldarg.0
IL_03EA: ldfld Cell[] ElectricityManager::m_electricityGrid
IL_03EF: ldloc.s 20 (System.Int32)
IL_03F1: ldelema ElectricityManager+Cell
IL_03F6: ldobj ElectricityManager+Cell
IL_03FB: stloc.s 21 (ElectricityManager+Cell)
IL_03FD: ldloca.s 21 (ElectricityManager+Cell)
IL_03FF: ldfld System.Byte Cell::m_conductivity
IL_0404: brfalse => Label28
IL_0409: ldloca.s 21 (ElectricityManager+Cell)
IL_040B: ldfld System.Boolean Cell::m_tmpElectrified
IL_0410: brtrue => Label29
IL_0415: ldloc.s 19 (System.UInt32)
IL_0417: brfalse => Label30
IL_041C: ldloca.s 21 (ElectricityManager+Cell)
IL_041E: ldfld System.Int16 Cell::m_currentCharge
IL_0423: neg
IL_0424: ldc.i4.0
IL_0425: ldloc.s 19 (System.UInt32)
IL_0427: call static System.Int32 UnityEngine.Mathf::Clamp(System.Int32
value, System.Int32 min, System.Int32 max)
IL_042C: stloc.s 22 (System.Int32)
IL_042E: ldloc.s 19 (System.UInt32)
IL_0430: ldloc.s 22 (System.Int32)
IL_0432: sub
IL_0433: stloc.s 19 (System.UInt32)
IL_0435: ldloca.s 21 (ElectricityManager+Cell)
IL_0437: dup
IL_0438: ldfld System.Int16 Cell::m_currentCharge
IL_043D: ldloc.s 22 (System.Int32)
IL_043F: conv.i2
IL_0440: add
IL_0441: conv.i2
IL_0442: stfld System.Int16 Cell::m_currentCharge
IL_0447: ldloca.s 21 (ElectricityManager+Cell)
IL_0449: ldfld System.Int16 Cell::m_currentCharge
IL_044E: brtrue => Label31
IL_0453: ldloca.s 21 (ElectricityManager+Cell)
IL_0455: ldc.i4.1
IL_0456: stfld System.Boolean Cell::m_tmpElectrified
IL_045B: Label31
IL_045B: ldarg.0
IL_045C: ldfld Cell[] ElectricityManager::m_electricityGrid
IL_0461: ldloc.s 20 (System.Int32)
IL_0463: ldelema ElectricityManager+Cell
IL_0468: ldloc.s 21 (ElectricityManager+Cell)
IL_046A: stobj ElectricityManager+Cell
IL_046F: ldarg.0
IL_0470: ldfld PulseGroup[] ElectricityManager::m_pulseGroups
IL_0475: ldloca.s 18 (ElectricityManager+PulseUnit)
IL_0477: ldfld System.UInt16 PulseUnit::m_group
IL_047C: ldelema ElectricityManager+PulseGroup
IL_0481: ldloc.s 19 (System.UInt32)
IL_0483: stfld System.UInt32 PulseGroup::m_curCharge
IL_0488: Label28
IL_0488: Label29
IL_0488: Label30
IL_0488: ldloc.s 19 (System.UInt32)
IL_048A: brfalse => Label32
IL_048F: ldloca.s 21 (ElectricityManager+Cell)
IL_0491: ldfld System.Byte Cell::m_conductivity
IL_0496: ldc.i4.s 64
IL_0498: blt => Label33
IL_049D: ldc.i4.1
IL_049E: br => Label34
IL_04A3: Label33
IL_04A3: ldc.i4.s 64
IL_04A5: Label34
IL_04A5: stloc.s 23 (System.Int32)
IL_04A7: ldarg.0
IL_04A8: dup
IL_04A9: ldfld System.Int32 ElectricityManager::m_processedCells
IL_04AE: ldc.i4.1
IL_04AF: add
IL_04B0: stfld System.Int32 ElectricityManager::m_processedCells
IL_04B5: ldloca.s 18 (ElectricityManager+PulseUnit)
IL_04B7: ldfld System.Byte PulseUnit::m_z
IL_04BC: ldc.i4.0
IL_04BD: ble => Label35
IL_04C2: ldarg.0
IL_04C3: ldarg.0
IL_04C4: ldfld Cell[] ElectricityManager::m_electricityGrid
IL_04C9: ldloc.s 20 (System.Int32)
IL_04CB: ldc.i4 256
IL_04D0: sub
IL_04D1: ldelema ElectricityManager+Cell
IL_04D6: ldloca.s 18 (ElectricityManager+PulseUnit)
IL_04D8: ldfld System.UInt16 PulseUnit::m_group
IL_04DD: ldloca.s 18 (ElectricityManager+PulseUnit)
IL_04DF: ldfld System.Byte PulseUnit::m_x
IL_04E4: ldloca.s 18 (ElectricityManager+PulseUnit)
IL_04E6: ldfld System.Byte PulseUnit::m_z
IL_04EB: ldc.i4.1
IL_04EC: sub
IL_04ED: ldloc.s 23 (System.Int32)
IL_04EF: call System.Void ElectricityManager::ConductToCell(Cell& cell,
System.UInt16 group, System.Int32 x, System.Int32 z, System.Int32 limit)
IL_04F4: Label35
IL_04F4: ldloca.s 18 (ElectricityManager+PulseUnit)
IL_04F6: ldfld System.Byte PulseUnit::m_x
IL_04FB: ldc.i4.0
IL_04FC: ble => Label36
IL_0501: ldarg.0
IL_0502: ldarg.0
IL_0503: ldfld Cell[] ElectricityManager::m_electricityGrid
IL_0508: ldloc.s 20 (System.Int32)
IL_050A: ldc.i4.1
IL_050B: sub
IL_050C: ldelema ElectricityManager+Cell
IL_0511: ldloca.s 18 (ElectricityManager+PulseUnit)
IL_0513: ldfld System.UInt16 PulseUnit::m_group
IL_0518: ldloca.s 18 (ElectricityManager+PulseUnit)
IL_051A: ldfld System.Byte PulseUnit::m_x
IL_051F: ldc.i4.1
IL_0520: sub
IL_0521: ldloca.s 18 (ElectricityManager+PulseUnit)
IL_0523: ldfld System.Byte PulseUnit::m_z
IL_0528: ldloc.s 23 (System.Int32)
IL_052A: call System.Void ElectricityManager::ConductToCell(Cell& cell,
System.UInt16 group, System.Int32 x, System.Int32 z, System.Int32 limit)
IL_052F: Label36
IL_052F: ldloca.s 18 (ElectricityManager+PulseUnit)
IL_0531: ldfld System.Byte PulseUnit::m_z
IL_0536: ldc.i4 255
IL_053B: bge => Label37
IL_0540: ldarg.0
IL_0541: ldarg.0
IL_0542: ldfld Cell[] ElectricityManager::m_electricityGrid
IL_0547: ldloc.s 20 (System.Int32)
IL_0549: ldc.i4 256
IL_054E: add
IL_054F: ldelema ElectricityManager+Cell
IL_0554: ldloca.s 18 (ElectricityManager+PulseUnit)
IL_0556: ldfld System.UInt16 PulseUnit::m_group
IL_055B: ldloca.s 18 (ElectricityManager+PulseUnit)
IL_055D: ldfld System.Byte PulseUnit::m_x
IL_0562: ldloca.s 18 (ElectricityManager+PulseUnit)
IL_0564: ldfld System.Byte PulseUnit::m_z
IL_0569: ldc.i4.1
IL_056A: add
IL_056B: ldloc.s 23 (System.Int32)
IL_056D: call System.Void ElectricityManager::ConductToCell(Cell& cell,
System.UInt16 group, System.Int32 x, System.Int32 z, System.Int32 limit)
IL_0572: Label37
IL_0572: ldloca.s 18 (ElectricityManager+PulseUnit)
IL_0574: ldfld System.Byte PulseUnit::m_x
IL_0579: ldc.i4 255
IL_057E: bge => Label38
IL_0583: ldarg.0
IL_0584: ldarg.0
IL_0585: ldfld Cell[] ElectricityManager::m_electricityGrid
IL_058A: ldloc.s 20 (System.Int32)
IL_058C: ldc.i4.1
IL_058D: add
IL_058E: ldelema ElectricityManager+Cell
IL_0593: ldloca.s 18 (ElectricityManager+PulseUnit)
IL_0595: ldfld System.UInt16 PulseUnit::m_group
IL_059A: ldloca.s 18 (ElectricityManager+PulseUnit)
IL_059C: ldfld System.Byte PulseUnit::m_x
IL_05A1: ldc.i4.1
IL_05A2: add
IL_05A3: ldloca.s 18 (ElectricityManager+PulseUnit)
IL_05A5: ldfld System.Byte PulseUnit::m_z
IL_05AA: ldloc.s 23 (System.Int32)
IL_05AC: call System.Void ElectricityManager::ConductToCell(Cell& cell,
System.UInt16 group, System.Int32 x, System.Int32 z, System.Int32 limit)
IL_05B1: Label38
IL_05B1: ldarg.0
IL_05B2: ldloca.s 18 (ElectricityManager+PulseUnit)
IL_05B4: ldfld System.UInt16 PulseUnit::m_group
IL_05B9: ldloca.s 18 (ElectricityManager+PulseUnit)
IL_05BB: ldfld System.Byte PulseUnit::m_x
IL_05C0: ldloca.s 18 (ElectricityManager+PulseUnit)
IL_05C2: ldfld System.Byte PulseUnit::m_z
IL_05C7: call System.Void ElectricityManager::ConductToNodes(System.UInt16
group, System.Int32 cellX, System.Int32 cellZ)
IL_05CC: br => Label39
IL_05D1: Label32
IL_05D1: ldarg.0
IL_05D2: ldfld PulseUnit[] ElectricityManager::m_pulseUnits
IL_05D7: ldarg.0
IL_05D8: ldfld System.Int32 ElectricityManager::m_pulseUnitEnd
IL_05DD: ldelema ElectricityManager+PulseUnit
IL_05E2: ldloc.s 18 (ElectricityManager+PulseUnit)
IL_05E4: stobj ElectricityManager+PulseUnit
IL_05E9: ldarg.0
IL_05EA: dup
IL_05EB: ldfld System.Int32 ElectricityManager::m_pulseUnitEnd
IL_05F0: ldc.i4.1
IL_05F1: add
IL_05F2: dup
IL_05F3: stloc.s 15 (System.Int32)
IL_05F5: stfld System.Int32 ElectricityManager::m_pulseUnitEnd
IL_05FA: ldloc.s 15 (System.Int32)
IL_05FC: ldarg.0
IL_05FD: ldfld PulseUnit[] ElectricityManager::m_pulseUnits
IL_0602: ldlen
IL_0603: conv.i4
IL_0604: bne.un => Label40
IL_0609: ldarg.0
IL_060A: ldc.i4.0
IL_060B: stfld System.Int32 ElectricityManager::m_pulseUnitEnd
IL_0610: Label39
IL_0610: Label40
IL_0610: br => Label41
IL_0615: Label27
IL_0615: ldloc.s 19 (System.UInt32)
IL_0617: brfalse => Label42
IL_061C: ldarg.0
IL_061D: dup
IL_061E: ldfld System.Int32 ElectricityManager::m_processedCells
IL_0623: ldc.i4.1
IL_0624: add
IL_0625: stfld System.Int32 ElectricityManager::m_processedCells
IL_062A: call static NetManager
ColossalFramework.Singleton`1<NetManager>::get_instance()
IL_062F: ldfld Array16`1<NetNode> NetManager::m_nodes
IL_0634: ldfld NetNode[] Array16`1<NetNode>::m_buffer
IL_0639: ldloca.s 18 (ElectricityManager+PulseUnit)
IL_063B: ldfld System.UInt16 PulseUnit::m_node
IL_0640: ldelema NetNode
IL_0645: ldobj NetNode
IL_064A: stloc.s 24 (NetNode)
IL_064C: ldloca.s 24 (NetNode)
IL_064E: ldfld Flags NetNode::m_flags
IL_0653: brfalse => Label43
IL_0658: ldloca.s 24 (NetNode)
IL_065A: ldfld System.UInt32 NetNode::m_buildIndex
IL_065F: ldloc.0
IL_0660: ldc.i4.s -128
IL_0662: and
IL_0663: bge.un => Label44
IL_0668: ldarg.0
IL_0669: ldloca.s 18 (ElectricityManager+PulseUnit)
IL_066B: ldfld System.UInt16 PulseUnit::m_group
IL_0670: ldloca.s 24 (NetNode)
IL_0672: ldflda UnityEngine.Vector3 NetNode::m_position
IL_0677: ldfld System.Single UnityEngine.Vector3::x
IL_067C: ldloca.s 24 (NetNode)
IL_067E: ldflda UnityEngine.Vector3 NetNode::m_position
IL_0683: ldfld System.Single UnityEngine.Vector3::z
IL_0688: call System.Void ElectricityManager::ConductToCells(System.UInt16
group, System.Single worldX, System.Single worldZ)
IL_068D: ldc.i4.0
IL_068E: stloc.s 25 (System.Int32)
IL_0690: br => Label45
IL_0695: Label49
IL_0695: ldloca.s 24 (NetNode)
IL_0697: ldloc.s 25 (System.Int32)
IL_0699: call System.UInt16 NetNode::GetSegment(System.Int32 index)
IL_069E: stloc.s 26 (System.UInt16)
IL_06A0: ldloc.s 26 (System.UInt16)
IL_06A2: brfalse => Label46
IL_06A7: call static NetManager
ColossalFramework.Singleton`1<NetManager>::get_instance()
IL_06AC: ldfld Array16`1<NetSegment> NetManager::m_segments
IL_06B1: ldfld NetSegment[] Array16`1<NetSegment>::m_buffer
IL_06B6: ldloc.s 26 (System.UInt16)
IL_06B8: ldelema NetSegment
IL_06BD: ldfld System.UInt16 NetSegment::m_startNode
IL_06C2: stloc.s 27 (System.UInt16)
IL_06C4: call static NetManager
ColossalFramework.Singleton`1<NetManager>::get_instance()
IL_06C9: ldfld Array16`1<NetSegment> NetManager::m_segments
IL_06CE: ldfld NetSegment[] Array16`1<NetSegment>::m_buffer
IL_06D3: ldloc.s 26 (System.UInt16)
IL_06D5: ldelema NetSegment
IL_06DA: ldfld System.UInt16 NetSegment::m_endNode
IL_06DF: stloc.s 28 (System.UInt16)
IL_06E1: ldloc.s 27 (System.UInt16)
IL_06E3: ldloca.s 18 (ElectricityManager+PulseUnit)
IL_06E5: ldfld System.UInt16 PulseUnit::m_node
IL_06EA: bne.un => Label47
IL_06EF: ldloc.s 28 (System.UInt16)
IL_06F1: br => Label48
IL_06F6: Label47
IL_06F6: ldloc.s 27 (System.UInt16)
IL_06F8: Label48
IL_06F8: stloc.s 29 (System.UInt16)
IL_06FA: ldarg.0
IL_06FB: ldloc.s 29 (System.UInt16)
IL_06FD: call static NetManager
ColossalFramework.Singleton`1<NetManager>::get_instance()
IL_0702: ldfld Array16`1<NetNode> NetManager::m_nodes
IL_0707: ldfld NetNode[] Array16`1<NetNode>::m_buffer
IL_070C: ldloc.s 29 (System.UInt16)
IL_070E: ldelema NetNode
IL_0713: ldloca.s 18 (ElectricityManager+PulseUnit)
IL_0715: ldfld System.UInt16 PulseUnit::m_group
IL_071A: ldc.r4 -100000
IL_071F: ldc.r4 -100000
IL_0724: ldc.r4 100000
IL_0729: ldc.r4 100000
IL_072E: call System.Void ElectricityManager::ConductToNode(System.UInt16
nodeIndex, NetNode& node, System.UInt16 group, System.Single minX, System.Single
minZ, System.Single maxX, System.Single maxZ)
IL_0733: Label46
IL_0733: ldloc.s 25 (System.Int32)
IL_0735: ldc.i4.1
IL_0736: add
IL_0737: stloc.s 25 (System.Int32)
IL_0739: Label45
IL_0739: ldloc.s 25 (System.Int32)
IL_073B: ldc.i4.8
IL_073C: blt => Label49
IL_0741: Label43
IL_0741: Label44
IL_0741: br => Label50
IL_0746: Label42
IL_0746: ldarg.0
IL_0747: ldfld PulseUnit[] ElectricityManager::m_pulseUnits
IL_074C: ldarg.0
IL_074D: ldfld System.Int32 ElectricityManager::m_pulseUnitEnd
IL_0752: ldelema ElectricityManager+PulseUnit
IL_0757: ldloc.s 18 (ElectricityManager+PulseUnit)
IL_0759: stobj ElectricityManager+PulseUnit
IL_075E: ldarg.0
IL_075F: dup
IL_0760: ldfld System.Int32 ElectricityManager::m_pulseUnitEnd
IL_0765: ldc.i4.1
IL_0766: add
IL_0767: dup
IL_0768: stloc.s 15 (System.Int32)
IL_076A: stfld System.Int32 ElectricityManager::m_pulseUnitEnd
IL_076F: ldloc.s 15 (System.Int32)
IL_0771: ldarg.0
IL_0772: ldfld PulseUnit[] ElectricityManager::m_pulseUnits
IL_0777: ldlen
IL_0778: conv.i4
IL_0779: bne.un => Label51
IL_077E: ldarg.0
IL_077F: ldc.i4.0
IL_0780: stfld System.Int32 ElectricityManager::m_pulseUnitEnd
IL_0785: Label25
IL_0785: Label41
IL_0785: Label50
IL_0785: Label51
IL_0785: ldarg.0
IL_0786: ldfld System.Int32 ElectricityManager::m_pulseUnitStart
IL_078B: ldloc.s 17 (System.Int32)
IL_078D: bne.un => Label52
IL_0792: Label24
IL_0792: ldarg.0
IL_0793: ldfld System.Boolean ElectricityManager::m_canContinue
IL_0798: brfalse => Label53
IL_079D: ldarg.0
IL_079E: ldfld System.Int32 ElectricityManager::m_processedCells
IL_07A3: ldloc.s 16 (System.Int32)
IL_07A5: blt => Label54
IL_07AA: Label53
IL_07AA: ldloc.1
IL_07AB: ldc.i4 255
IL_07B0: bne.un => Label55
IL_07B5: ldc.i4.0
IL_07B6: stloc.s 30 (System.Int32)
IL_07B8: br => Label56
IL_07BD: Label58
IL_07BD: ldarg.0
IL_07BE: ldfld PulseGroup[] ElectricityManager::m_pulseGroups
IL_07C3: ldloc.s 30 (System.Int32)
IL_07C5: ldelema ElectricityManager+PulseGroup
IL_07CA: ldobj ElectricityManager+PulseGroup
IL_07CF: stloc.s 31 (ElectricityManager+PulseGroup)
IL_07D1: ldloca.s 31 (ElectricityManager+PulseGroup)
IL_07D3: ldfld System.UInt16 PulseGroup::m_mergeIndex
IL_07D8: ldc.i4 65535
IL_07DD: beq => Label57
IL_07E2: ldarg.0
IL_07E3: ldfld PulseGroup[] ElectricityManager::m_pulseGroups
IL_07E8: ldloca.s 31 (ElectricityManager+PulseGroup)
IL_07EA: ldfld System.UInt16 PulseGroup::m_mergeIndex
IL_07EF: ldelema ElectricityManager+PulseGroup
IL_07F4: ldobj ElectricityManager+PulseGroup
IL_07F9: stloc.s 32 (ElectricityManager+PulseGroup)
IL_07FB: ldloca.s 31 (ElectricityManager+PulseGroup)
IL_07FD: ldloca.s 32 (ElectricityManager+PulseGroup)
IL_07FF: ldfld System.UInt32 PulseGroup::m_curCharge
IL_0804: conv.u8
IL_0805: ldloca.s 31 (ElectricityManager+PulseGroup)
IL_0807: ldfld System.UInt32 PulseGroup::m_origCharge
IL_080C: conv.u8
IL_080D: mul
IL_080E: ldloca.s 32 (ElectricityManager+PulseGroup)
IL_0810: ldfld System.UInt32 PulseGroup::m_origCharge
IL_0815: conv.u8
IL_0816: div.un
IL_0817: conv.u4
IL_0818: stfld System.UInt32 PulseGroup::m_curCharge
IL_081D: ldloca.s 32 (ElectricityManager+PulseGroup)
IL_081F: dup
IL_0820: ldfld System.UInt32 PulseGroup::m_curCharge
IL_0825: ldloca.s 31 (ElectricityManager+PulseGroup)
IL_0827: ldfld System.UInt32 PulseGroup::m_curCharge
IL_082C: sub
IL_082D: stfld System.UInt32 PulseGroup::m_curCharge
IL_0832: ldloca.s 32 (ElectricityManager+PulseGroup)
IL_0834: dup
IL_0835: ldfld System.UInt32 PulseGroup::m_origCharge
IL_083A: ldloca.s 31 (ElectricityManager+PulseGroup)
IL_083C: ldfld System.UInt32 PulseGroup::m_origCharge
IL_0841: sub
IL_0842: stfld System.UInt32 PulseGroup::m_origCharge
IL_0847: ldarg.0
IL_0848: ldfld PulseGroup[] ElectricityManager::m_pulseGroups
IL_084D: ldloca.s 31 (ElectricityManager+PulseGroup)
IL_084F: ldfld System.UInt16 PulseGroup::m_mergeIndex
IL_0854: ldelema ElectricityManager+PulseGroup
IL_0859: ldloc.s 32 (ElectricityManager+PulseGroup)
IL_085B: stobj ElectricityManager+PulseGroup
IL_0860: ldarg.0
IL_0861: ldfld PulseGroup[] ElectricityManager::m_pulseGroups
IL_0866: ldloc.s 30 (System.Int32)
IL_0868: ldelema ElectricityManager+PulseGroup
IL_086D: ldloc.s 31 (ElectricityManager+PulseGroup)
IL_086F: stobj ElectricityManager+PulseGroup
IL_0874: Label57
IL_0874: ldloc.s 30 (System.Int32)
IL_0876: ldc.i4.1
IL_0877: add
IL_0878: stloc.s 30 (System.Int32)
IL_087A: Label56
IL_087A: ldloc.s 30 (System.Int32)
IL_087C: ldarg.0
IL_087D: ldfld System.Int32 ElectricityManager::m_pulseGroupCount
IL_0882: blt => Label58
IL_0887: ldc.i4.0
IL_0888: stloc.s 33 (System.Int32)
IL_088A: br => Label59
IL_088F: Label62
IL_088F: ldarg.0
IL_0890: ldfld PulseGroup[] ElectricityManager::m_pulseGroups
IL_0895: ldloc.s 33 (System.Int32)
IL_0897: ldelema ElectricityManager+PulseGroup
IL_089C: ldobj ElectricityManager+PulseGroup
IL_08A1: stloc.s 34 (ElectricityManager+PulseGroup)
IL_08A3: ldloca.s 34 (ElectricityManager+PulseGroup)
IL_08A5: ldfld System.UInt32 PulseGroup::m_curCharge
IL_08AA: brfalse => Label60
IL_08AF: ldloca.s 34 (ElectricityManager+PulseGroup)
IL_08B1: ldfld System.Byte PulseGroup::m_z
IL_08B6: ldc.i4 256
IL_08BB: mul
IL_08BC: ldloca.s 34 (ElectricityManager+PulseGroup)
IL_08BE: ldfld System.Byte PulseGroup::m_x
IL_08C3: add
IL_08C4: stloc.s 35 (System.Int32)
IL_08C6: ldarg.0
IL_08C7: ldfld Cell[] ElectricityManager::m_electricityGrid
IL_08CC: ldloc.s 35 (System.Int32)
IL_08CE: ldelema ElectricityManager+Cell
IL_08D3: ldobj ElectricityManager+Cell
IL_08D8: stloc.s 36 (ElectricityManager+Cell)
IL_08DA: ldloca.s 36 (ElectricityManager+Cell)
IL_08DC: ldfld System.Byte Cell::m_conductivity
IL_08E1: brfalse => Label61
IL_08E6: ldloca.s 36 (ElectricityManager+Cell)
IL_08E8: dup
IL_08E9: ldfld System.UInt16 Cell::m_extraCharge
IL_08EE: ldloca.s 34 (ElectricityManager+PulseGroup)
IL_08F0: ldfld System.UInt32 PulseGroup::m_curCharge
IL_08F5: ldc.i4 32767
IL_08FA: ldloca.s 36 (ElectricityManager+Cell)
IL_08FC: ldfld System.UInt16 Cell::m_extraCharge
IL_0901: sub
IL_0902: call static System.Int32 UnityEngine.Mathf::Min(System.Int32 a,
System.Int32 b)
IL_0907: conv.u2
IL_0908: add
IL_0909: conv.u2
IL_090A: stfld System.UInt16 Cell::m_extraCharge
IL_090F: Label61
IL_090F: ldarg.0
IL_0910: ldfld Cell[] ElectricityManager::m_electricityGrid
IL_0915: ldloc.s 35 (System.Int32)
IL_0917: ldelema ElectricityManager+Cell
IL_091C: ldloc.s 36 (ElectricityManager+Cell)
IL_091E: stobj ElectricityManager+Cell
IL_0923: Label60
IL_0923: ldloc.s 33 (System.Int32)
IL_0925: ldc.i4.1
IL_0926: add
IL_0927: stloc.s 33 (System.Int32)
IL_0929: Label59
IL_0929: ldloc.s 33 (System.Int32)
IL_092B: ldarg.0
IL_092C: ldfld System.Int32 ElectricityManager::m_pulseGroupCount
IL_0931: blt => Label62
IL_0936: // end original
IL_0936: Label0
IL_0936: Label1
IL_0936: Label22
IL_0936: Label55
IL_0936: ret
DONE

### Patch: System.Void ElectricityManager::ConductToNode(System.UInt16 nodeIndex,


NetNode& node, System.UInt16 group, System.Single minX, System.Single minZ,
System.Single maxX, System.Single maxZ)
### Replacement: static System.Void
ElectricityManager::ElectricityManager.ConductToNode_Patch0(ElectricityManager
this, System.UInt16 nodeIndex, NetNode& node, System.UInt16 group, System.Single
minX, System.Single minZ, System.Single maxX, System.Single maxZ)
IL_0000: Local var 0: NetInfo
IL_0000: Local var 1: ElectricityManager/PulseUnit
IL_0000: Local var 2: System.Int32
IL_0000: Local var 3: System.UInt16
IL_0000: // start original
IL_0000: ldarg.2
IL_0001: ldflda UnityEngine.Vector3 NetNode::m_position
IL_0006: ldfld System.Single UnityEngine.Vector3::x
IL_000B: ldarg.s 4
IL_000D: blt.un => Label0
IL_0012: ldarg.2
IL_0013: ldflda UnityEngine.Vector3 NetNode::m_position
IL_0018: ldfld System.Single UnityEngine.Vector3::z
IL_001D: ldarg.s 5
IL_001F: blt.un => Label1
IL_0024: ldarg.2
IL_0025: ldflda UnityEngine.Vector3 NetNode::m_position
IL_002A: ldfld System.Single UnityEngine.Vector3::x
IL_002F: ldarg.s 6
IL_0031: bgt.un => Label2
IL_0036: ldarg.2
IL_0037: ldflda UnityEngine.Vector3 NetNode::m_position
IL_003C: ldfld System.Single UnityEngine.Vector3::z
IL_0041: ldarg.s 7
IL_0043: bgt.un => Label3
IL_0048: ldarg.2
IL_0049: call static System.Boolean
ElectricRoads.Overrides.ElectricRoadsOverrides::CheckElectricConductibility(NetNode
& node)
IL_004E: brfalse => Label5
IL_0053: Label4
IL_0053: ldarg.0
IL_0054: ldfld System.UInt16[] ElectricityManager::m_nodeGroups
IL_0059: ldarg.1
IL_005A: ldelem.u2
IL_005B: ldc.i4 65535
IL_0060: bne.un => Label6
IL_0065: ldloca.s 1 (ElectricityManager+PulseUnit)
IL_0067: ldarg.3
IL_0068: stfld System.UInt16 PulseUnit::m_group
IL_006D: ldloca.s 1 (ElectricityManager+PulseUnit)
IL_006F: ldarg.1
IL_0070: stfld System.UInt16 PulseUnit::m_node
IL_0075: ldloca.s 1 (ElectricityManager+PulseUnit)
IL_0077: ldc.i4.0
IL_0078: stfld System.Byte PulseUnit::m_x
IL_007D: ldloca.s 1 (ElectricityManager+PulseUnit)
IL_007F: ldc.i4.0
IL_0080: stfld System.Byte PulseUnit::m_z
IL_0085: ldarg.0
IL_0086: ldfld PulseUnit[] ElectricityManager::m_pulseUnits
IL_008B: ldarg.0
IL_008C: ldfld System.Int32 ElectricityManager::m_pulseUnitEnd
IL_0091: ldelema ElectricityManager+PulseUnit
IL_0096: ldloc.1
IL_0097: stobj ElectricityManager+PulseUnit
IL_009C: ldarg.0
IL_009D: dup
IL_009E: ldfld System.Int32 ElectricityManager::m_pulseUnitEnd
IL_00A3: ldc.i4.1
IL_00A4: add
IL_00A5: dup
IL_00A6: stloc.2
IL_00A7: stfld System.Int32 ElectricityManager::m_pulseUnitEnd
IL_00AC: ldloc.2
IL_00AD: ldarg.0
IL_00AE: ldfld PulseUnit[] ElectricityManager::m_pulseUnits
IL_00B3: ldlen
IL_00B4: conv.i4
IL_00B5: bne.un => Label7
IL_00BA: ldarg.0
IL_00BB: ldc.i4.0
IL_00BC: stfld System.Int32 ElectricityManager::m_pulseUnitEnd
IL_00C1: Label7
IL_00C1: ldarg.0
IL_00C2: ldfld System.UInt16[] ElectricityManager::m_nodeGroups
IL_00C7: ldarg.1
IL_00C8: ldarg.3
IL_00C9: stelem.i2
IL_00CA: ldarg.0
IL_00CB: ldc.i4.1
IL_00CC: stfld System.Boolean ElectricityManager::m_canContinue
IL_00D1: br => Label8
IL_00D6: Label6
IL_00D6: ldarg.0
IL_00D7: ldarg.0
IL_00D8: ldfld System.UInt16[] ElectricityManager::m_nodeGroups
IL_00DD: ldarg.1
IL_00DE: ldelem.u2
IL_00DF: call System.UInt16 ElectricityManager::GetRootGroup(System.UInt16
group)
IL_00E4: stloc.3
IL_00E5: ldloc.3
IL_00E6: ldarg.3
IL_00E7: beq => Label9
IL_00EC: ldarg.0
IL_00ED: ldarg.3
IL_00EE: ldloc.3
IL_00EF: call System.Void ElectricityManager::MergeGroups(System.UInt16 root,
System.UInt16 merged)
IL_00F4: ldarg.0
IL_00F5: ldfld System.UInt16[] ElectricityManager::m_nodeGroups
IL_00FA: ldarg.1
IL_00FB: ldarg.3
IL_00FC: stelem.i2
IL_00FD: ldarg.0
IL_00FE: ldc.i4.1
IL_00FF: stfld System.Boolean ElectricityManager::m_canContinue
IL_0104: // end original
IL_0104: Label0
IL_0104: Label1
IL_0104: Label2
IL_0104: Label3
IL_0104: Label5
IL_0104: Label8
IL_0104: Label9
IL_0104: ret
DONE

### Patch: System.Void ElectricityManager::UpdateNodeElectricity(System.Int32


nodeID, System.Int32 value)
### Replacement: static System.Void
ElectricityManager::ElectricityManager.UpdateNodeElectricity_Patch2(ElectricityMana
ger this, System.Int32 nodeID, System.Int32 value)
IL_0000: Local var 0: InfoManager/InfoMode
IL_0000: Local var 1: NetManager
IL_0000: Local var 2: System.Boolean
IL_0000: Local var 3: NetNode/Flags
IL_0000: Local var 4: System.UInt16
IL_0000: Local var 5: BuildingManager
IL_0000: Local var 6: NetNode/Flags
IL_0000: Local var 7: System.Int32
IL_0000: Local var 8: System.UInt16
IL_0000: Local var 9: System.Boolean
IL_0000: Local var 10: System.Boolean
IL_0000: ldc.i4 0
IL_0005: stloc 9 (System.Boolean)
IL_0009: ldc.i4.1
IL_000A: stloc 9 (System.Boolean)
IL_000E: ldc.i4 0
IL_0013: stloc 10 (System.Boolean)
IL_0017: ldloc 9 (System.Boolean)
IL_001B: brfalse => Label1
IL_0020: ldarga 1
IL_0024: ldloca 10 (System.Boolean)
IL_0028: call static System.Void
ElectricRoads.Overrides.ElectricRoadsOverrides::PreConduct(System.Int32& nodeID,
System.Boolean& __state)
IL_002D: Label1
IL_002D: nop
IL_002E: ldloc 9 (System.Boolean)
IL_0032: brfalse => Label0
IL_0037: // start original
IL_0037: call static InfoManager
ColossalFramework.Singleton`1<InfoManager>::get_instance()
IL_003C: callvirt InfoMode InfoManager::get_CurrentMode()
IL_0041: stloc.0
IL_0042: call static NetManager
ColossalFramework.Singleton`1<NetManager>::get_instance()
IL_0047: stloc.1
IL_0048: ldc.i4.0
IL_0049: stloc.2
IL_004A: ldloc.1
IL_004B: ldfld Array16`1<NetNode> NetManager::m_nodes
IL_0050: ldfld NetNode[] Array16`1<NetNode>::m_buffer
IL_0055: ldarg.1
IL_0056: ldelema NetNode
IL_005B: ldfld Flags NetNode::m_flags
IL_0060: stloc.3
IL_0061: ldarg.1
IL_0062: call static System.Boolean
ElectricRoads.Overrides.ElectricRoadsOverrides::CheckNodeTransition(System.Int32
nodeID)
IL_0067: brfalse => Label2
IL_006C: ldloc.1
IL_006D: ldfld Array16`1<NetNode> NetManager::m_nodes
IL_0072: ldfld NetNode[] Array16`1<NetNode>::m_buffer
IL_0077: ldarg.1
IL_0078: ldelema NetNode
IL_007D: dup
IL_007E: ldfld Flags NetNode::m_flags
IL_0083: ldc.i4 -1048577
IL_0088: and
IL_0089: stfld Flags NetNode::m_flags
IL_008E: br => Label12
IL_0093: Label2
IL_0093: ldloc.1
IL_0094: ldfld Array16`1<NetNode> NetManager::m_nodes
IL_0099: ldfld NetNode[] Array16`1<NetNode>::m_buffer
IL_009E: ldarg.1
IL_009F: ldelema NetNode
IL_00A4: ldfld System.UInt16 NetNode::m_building
IL_00A9: stloc.s 4 (System.UInt16)
IL_00AB: ldloc.s 4 (System.UInt16)
IL_00AD: brfalse => Label3
IL_00B2: call static BuildingManager
ColossalFramework.Singleton`1<BuildingManager>::get_instance()
IL_00B7: stloc.s 5 (BuildingManager)
IL_00B9: ldloc.s 5 (BuildingManager)
IL_00BB: ldfld Array16`1<Building> BuildingManager::m_buildings
IL_00C0: ldfld Building[] Array16`1<Building>::m_buffer
IL_00C5: ldloc.s 4 (System.UInt16)
IL_00C7: ldelema Building
IL_00CC: ldfld System.UInt16 Building::m_electricityBuffer
IL_00D1: ldarg.2
IL_00D2: beq => Label4
IL_00D7: ldloc.s 5 (BuildingManager)
IL_00D9: ldfld Array16`1<Building> BuildingManager::m_buildings
IL_00DE: ldfld Building[] Array16`1<Building>::m_buffer
IL_00E3: ldloc.s 4 (System.UInt16)
IL_00E5: ldelema Building
IL_00EA: ldarg.2
IL_00EB: conv.u2
IL_00EC: stfld System.UInt16 Building::m_electricityBuffer
IL_00F1: ldloc.0
IL_00F2: ldc.i4.1
IL_00F3: ceq
IL_00F5: stloc.2
IL_00F6: Label4
IL_00F6: ldloc.2
IL_00F7: brfalse => Label5
IL_00FC: ldloc.s 5 (BuildingManager)
IL_00FE: ldloc.s 4 (System.UInt16)
IL_0100: callvirt System.Void BuildingManager::UpdateBuildingColors(System.UInt16
building)
IL_0105: Label3
IL_0105: Label5
IL_0105: ldloc.3
IL_0106: ldc.i4 -67108865
IL_010B: and
IL_010C: stloc.s 6 (NetNode+Flags)
IL_010E: ldarg.2
IL_010F: brfalse => Label6
IL_0114: ldloc.s 6 (NetNode+Flags)
IL_0116: ldc.i4 67108864
IL_011B: or
IL_011C: stloc.s 6 (NetNode+Flags)
IL_011E: Label6
IL_011E: ldloc.s 6 (NetNode+Flags)
IL_0120: ldloc.3
IL_0121: beq => Label7
IL_0126: ldloc.1
IL_0127: ldfld Array16`1<NetNode> NetManager::m_nodes
IL_012C: ldfld NetNode[] Array16`1<NetNode>::m_buffer
IL_0131: ldarg.1
IL_0132: ldelema NetNode
IL_0137: ldloc.s 6 (NetNode+Flags)
IL_0139: stfld Flags NetNode::m_flags
IL_013E: ldloc.0
IL_013F: ldc.i4.1
IL_0140: ceq
IL_0142: stloc.2
IL_0143: Label7
IL_0143: ldloc.2
IL_0144: brfalse => Label8
IL_0149: ldloc.1
IL_014A: ldarg.1
IL_014B: conv.u2
IL_014C: callvirt System.Void NetManager::UpdateNodeColors(System.UInt16 node)
IL_0151: ldc.i4.0
IL_0152: stloc.s 7 (System.Int32)
IL_0154: br => Label9
IL_0159: Label11
IL_0159: ldloc.1
IL_015A: ldfld Array16`1<NetNode> NetManager::m_nodes
IL_015F: ldfld NetNode[] Array16`1<NetNode>::m_buffer
IL_0164: ldarg.1
IL_0165: ldelema NetNode
IL_016A: ldloc.s 7 (System.Int32)
IL_016C: call System.UInt16 NetNode::GetSegment(System.Int32 index)
IL_0171: stloc.s 8 (System.UInt16)
IL_0173: ldloc.s 8 (System.UInt16)
IL_0175: brfalse => Label10
IL_017A: ldloc.1
IL_017B: ldloc.s 8 (System.UInt16)
IL_017D: callvirt System.Void NetManager::UpdateSegmentColors(System.UInt16
segment)
IL_0182: Label10
IL_0182: ldloc.s 7 (System.Int32)
IL_0184: ldc.i4.1
IL_0185: add
IL_0186: stloc.s 7 (System.Int32)
IL_0188: Label9
IL_0188: ldloc.s 7 (System.Int32)
IL_018A: ldc.i4.8
IL_018B: blt => Label11
IL_0190: // end original
IL_0190: Label8
IL_0190: Label12
IL_0190: Label0
IL_0190: ldarg 1
IL_0194: ldloc 10 (System.Boolean)
IL_0198: call static System.Void
ElectricRoads.Overrides.ElectricRoadsOverrides::PostConduct(System.Int32 nodeID,
System.Boolean __state)
IL_019D: ret
DONE

### Patch: virtual System.Void ColossalFramework.UI.UIView::Start()


### Replacement: static System.Void
ColossalFramework.UI.UIView::ColossalFramework.UI.UIView.Start_Patch0(ColossalFrame
work.UI.UIView this)
IL_0000: Local var 0:
ColossalFramework.PoolList`1<ColossalFramework.UI.UIComponent>
IL_0000: Local var 1: ColossalFramework.UI.UIComponent
IL_0000: Local var 2:
System.Collections.Generic.IEnumerator`1<ColossalFramework.UI.UIComponent>
IL_0000: // start original
IL_0000: ldarg.0
IL_0001: ldc.i4.0
IL_0002: stfld System.Int32 ColossalFramework.UI.UIView::m_FramesRendered
IL_0007: ldarg.0
IL_0008: call System.Void
ColossalFramework.UI.UIView::InvalidateAllComponents()
IL_000D: ldarg.0
IL_000E: ldfld UnityEngine.MeshRenderer
ColossalFramework.UI.UIView::m_MeshRenderer
IL_0013: ldnull
IL_0014: call static System.Boolean
UnityEngine.Object::op_Inequality(UnityEngine.Object x, UnityEngine.Object y)
IL_0019: brfalse => Label0
IL_001E: ldarg.0
IL_001F: ldfld UnityEngine.MeshRenderer
ColossalFramework.UI.UIView::m_MeshRenderer
IL_0024: ldc.i4.1
IL_0025: callvirt System.Void UnityEngine.Renderer::set_enabled(System.Boolean
value)
IL_002A: Label0
IL_002A: ldarg.0
IL_002B: call ColossalFramework.PoolList`1<ColossalFramework.UI.UIComponent>
ColossalFramework.UI.UIView::GetTopLevelComponents()
IL_0030: stloc.0
.try
{
IL_0031: ldloc.0
IL_0032: callvirt virtual
System.Collections.Generic.IEnumerator`1<ColossalFramework.UI.UIComponent>
ColossalFramework.PoolList`1<ColossalFramework.UI.UIComponent>::GetEnumerator()
IL_0037: stloc.2
.try
{
IL_0038: br => Label1
IL_003D: Label2
IL_003D: ldloc.2
IL_003E: callvirt abstract virtual ColossalFramework.UI.UIComponent
System.Collections.Generic.IEnumerator`1<ColossalFramework.UI.UIComponent>::get_Cur
rent()
IL_0043: stloc.1
IL_0044: ldloc.1
IL_0045: ldc.i4.1
IL_0046: callvirt System.Void
ColossalFramework.UI.UIComponent::InitializeParentVisibilityCache(System.Boolean
parentVisible)
IL_004B: Label1
IL_004B: ldloc.2
IL_004C: callvirt abstract virtual System.Boolean
System.Collections.IEnumerator::MoveNext()
IL_0051: brtrue => Label2
IL_0056: leave => Label3
IL_005B: leave => (autogenerated)
} // end try
.finally
{
IL_0060: ldloc.2
IL_0061: brfalse => Label4
IL_0066: ldloc.2
IL_0067: callvirt abstract virtual System.Void
System.IDisposable::Dispose()
IL_006C: Label4
IL_006C: endfinally
IL_006D: leave => (autogenerated)
} // end handler
IL_006E: Label3
IL_006E: leave => Label5
IL_0073: leave => (autogenerated)
} // end try
.finally
{
IL_0078: ldloc.0
IL_0079: brfalse => Label6
IL_007E: ldloc.0
IL_007F: callvirt abstract virtual System.Void
System.IDisposable::Dispose()
IL_0084: Label6
IL_0084: endfinally
IL_0085: leave => (autogenerated)
} // end handler
IL_0086: Label5
IL_0086: ldarg.0
IL_0087: ldc.i4.1
IL_0088: stfld System.Boolean
ColossalFramework.UI.UIView::m_VisibilityCacheInitialized
IL_008D: // end original
IL_008D: ret
DONE

### Patch: virtual UnityEngine.Color NetAI::GetColor(System.UInt16 nodeID, NetNode&


data, InfoMode infoMode, SubInfoMode subInfoMode)
### Replacement: static UnityEngine.Color NetAI::NetAI.GetColor_Patch0(NetAI this,
System.UInt16 nodeID, NetNode& data, InfoMode infoMode, SubInfoMode subInfoMode)
IL_0000: // start original
IL_0000: ldarg.3
IL_0001: brfalse => Label0
IL_0006: call static InfoManager
ColossalFramework.Singleton`1<InfoManager>::get_instance()
IL_000B: ldfld InfoProperties SimulationManagerBase`2<InfoManager,
InfoProperties>::m_properties
IL_0010: ldfld UnityEngine.Color InfoProperties::m_neutralColor
IL_0015: br => Label1
IL_001A: Label0
IL_001A: ldarg.0
IL_001B: ldfld NetInfo NetAI::m_info
IL_0020: ldfld UnityEngine.Color NetInfo::m_color
IL_0025: // end original
IL_0025: Label1
IL_0025: ret
DONE

### Patch: virtual UnityEngine.Color NetAI::GetColor(System.UInt16 segmentID,


NetSegment& data, InfoMode infoMode, SubInfoMode subInfoMode)
### Replacement: static UnityEngine.Color NetAI::NetAI.GetColor_Patch0(NetAI this,
System.UInt16 segmentID, NetSegment& data, InfoMode infoMode, SubInfoMode
subInfoMode)
IL_0000: // start original
IL_0000: ldarg.3
IL_0001: brfalse => Label0
IL_0006: call static InfoManager
ColossalFramework.Singleton`1<InfoManager>::get_instance()
IL_000B: ldfld InfoProperties SimulationManagerBase`2<InfoManager,
InfoProperties>::m_properties
IL_0010: ldfld UnityEngine.Color InfoProperties::m_neutralColor
IL_0015: br => Label1
IL_001A: Label0
IL_001A: ldarg.0
IL_001B: ldfld NetInfo NetAI::m_info
IL_0020: ldfld UnityEngine.Color NetInfo::m_color
IL_0025: // end original
IL_0025: Label1
IL_0025: ret
DONE

### Patch: System.Void ElectricityManager::UpdateNodeElectricity(System.Int32


nodeID, System.Int32 value)
### Replacement: static System.Void
ElectricityManager::ElectricityManager.UpdateNodeElectricity_Patch0(ElectricityMana
ger this, System.Int32 nodeID, System.Int32 value)
IL_0000: Local var 0: InfoManager/InfoMode
IL_0000: Local var 1: NetManager
IL_0000: Local var 2: System.Boolean
IL_0000: Local var 3: NetNode/Flags
IL_0000: Local var 4: System.UInt16
IL_0000: Local var 5: BuildingManager
IL_0000: Local var 6: NetNode/Flags
IL_0000: Local var 7: System.Int32
IL_0000: Local var 8: System.UInt16
IL_0000: // start original
IL_0000: call static InfoManager
ColossalFramework.Singleton`1<InfoManager>::get_instance()
IL_0005: callvirt InfoMode InfoManager::get_CurrentMode()
IL_000A: stloc.0
IL_000B: call static NetManager
ColossalFramework.Singleton`1<NetManager>::get_instance()
IL_0010: stloc.1
IL_0011: ldc.i4.0
IL_0012: stloc.2
IL_0013: ldloc.1
IL_0014: ldfld Array16`1<NetNode> NetManager::m_nodes
IL_0019: ldfld NetNode[] Array16`1<NetNode>::m_buffer
IL_001E: ldarg.1
IL_001F: ldelema NetNode
IL_0024: ldfld Flags NetNode::m_flags
IL_0029: stloc.3
IL_002A: ldloc.3
IL_002B: ldc.i4 1048576
IL_0030: and
IL_0031: brfalse => Label0
IL_0036: ldloc.1
IL_0037: ldfld Array16`1<NetNode> NetManager::m_nodes
IL_003C: ldfld NetNode[] Array16`1<NetNode>::m_buffer
IL_0041: ldarg.1
IL_0042: ldelema NetNode
IL_0047: dup
IL_0048: ldfld Flags NetNode::m_flags
IL_004D: ldc.i4 -1048577
IL_0052: and
IL_0053: stfld Flags NetNode::m_flags
IL_0058: br => Label10
IL_005D: Label0
IL_005D: ldloc.1
IL_005E: ldfld Array16`1<NetNode> NetManager::m_nodes
IL_0063: ldfld NetNode[] Array16`1<NetNode>::m_buffer
IL_0068: ldarg.1
IL_0069: ldelema NetNode
IL_006E: ldfld System.UInt16 NetNode::m_building
IL_0073: stloc.s 4 (System.UInt16)
IL_0075: ldloc.s 4 (System.UInt16)
IL_0077: brfalse => Label1
IL_007C: call static BuildingManager
ColossalFramework.Singleton`1<BuildingManager>::get_instance()
IL_0081: stloc.s 5 (BuildingManager)
IL_0083: ldloc.s 5 (BuildingManager)
IL_0085: ldfld Array16`1<Building> BuildingManager::m_buildings
IL_008A: ldfld Building[] Array16`1<Building>::m_buffer
IL_008F: ldloc.s 4 (System.UInt16)
IL_0091: ldelema Building
IL_0096: ldfld System.UInt16 Building::m_electricityBuffer
IL_009B: ldarg.2
IL_009C: beq => Label2
IL_00A1: ldloc.s 5 (BuildingManager)
IL_00A3: ldfld Array16`1<Building> BuildingManager::m_buildings
IL_00A8: ldfld Building[] Array16`1<Building>::m_buffer
IL_00AD: ldloc.s 4 (System.UInt16)
IL_00AF: ldelema Building
IL_00B4: ldarg.2
IL_00B5: conv.u2
IL_00B6: stfld System.UInt16 Building::m_electricityBuffer
IL_00BB: ldloc.0
IL_00BC: ldc.i4.1
IL_00BD: ceq
IL_00BF: stloc.2
IL_00C0: Label2
IL_00C0: ldloc.2
IL_00C1: brfalse => Label3
IL_00C6: ldloc.s 5 (BuildingManager)
IL_00C8: ldloc.s 4 (System.UInt16)
IL_00CA: callvirt System.Void BuildingManager::UpdateBuildingColors(System.UInt16
building)
IL_00CF: Label1
IL_00CF: Label3
IL_00CF: ldloc.3
IL_00D0: ldc.i4 -67108865
IL_00D5: and
IL_00D6: stloc.s 6 (NetNode+Flags)
IL_00D8: ldarg.2
IL_00D9: brfalse => Label4
IL_00DE: ldloc.s 6 (NetNode+Flags)
IL_00E0: ldc.i4 67108864
IL_00E5: or
IL_00E6: stloc.s 6 (NetNode+Flags)
IL_00E8: Label4
IL_00E8: ldloc.s 6 (NetNode+Flags)
IL_00EA: ldloc.3
IL_00EB: beq => Label5
IL_00F0: ldloc.1
IL_00F1: ldfld Array16`1<NetNode> NetManager::m_nodes
IL_00F6: ldfld NetNode[] Array16`1<NetNode>::m_buffer
IL_00FB: ldarg.1
IL_00FC: ldelema NetNode
IL_0101: ldloc.s 6 (NetNode+Flags)
IL_0103: stfld Flags NetNode::m_flags
IL_0108: ldloc.0
IL_0109: ldc.i4.1
IL_010A: ceq
IL_010C: stloc.2
IL_010D: Label5
IL_010D: ldloc.2
IL_010E: brfalse => Label6
IL_0113: ldloc.1
IL_0114: ldarg.1
IL_0115: conv.u2
IL_0116: callvirt System.Void NetManager::UpdateNodeColors(System.UInt16 node)
IL_011B: ldc.i4.0
IL_011C: stloc.s 7 (System.Int32)
IL_011E: br => Label7
IL_0123: Label9
IL_0123: ldloc.1
IL_0124: ldfld Array16`1<NetNode> NetManager::m_nodes
IL_0129: ldfld NetNode[] Array16`1<NetNode>::m_buffer
IL_012E: ldarg.1
IL_012F: ldelema NetNode
IL_0134: ldloc.s 7 (System.Int32)
IL_0136: call System.UInt16 NetNode::GetSegment(System.Int32 index)
IL_013B: stloc.s 8 (System.UInt16)
IL_013D: ldloc.s 8 (System.UInt16)
IL_013F: brfalse => Label8
IL_0144: ldloc.1
IL_0145: ldloc.s 8 (System.UInt16)
IL_0147: callvirt System.Void NetManager::UpdateSegmentColors(System.UInt16
segment)
IL_014C: Label8
IL_014C: ldloc.s 7 (System.Int32)
IL_014E: ldc.i4.1
IL_014F: add
IL_0150: stloc.s 7 (System.Int32)
IL_0152: Label7
IL_0152: ldloc.s 7 (System.Int32)
IL_0154: ldc.i4.8
IL_0155: blt => Label9
IL_015A: // end original
IL_015A: Label6
IL_015A: Label10
IL_015A: ret
DONE

### Patch: static System.Void PropInstance::RenderInstance(CameraInfo cameraInfo,


PropInfo info, InstanceID id, UnityEngine.Vector3 position, System.Single scale,
System.Single angle, UnityEngine.Color color, UnityEngine.Vector4 objectIndex,
System.Boolean active, UnityEngine.Texture heightMap, UnityEngine.Vector4
heightMapping, UnityEngine.Vector4 surfaceMapping, UnityEngine.Texture
waterHeightMap, UnityEngine.Vector4 waterHeightMapping, UnityEngine.Vector4
waterSurfaceMapping)
### Replacement: static System.Void
PropInstance::PropInstance.RenderInstance_Patch0(CameraInfo cameraInfo, PropInfo
info, InstanceID id, UnityEngine.Vector3 position, System.Single scale,
System.Single angle, UnityEngine.Color color, UnityEngine.Vector4 objectIndex,
System.Boolean active, UnityEngine.Texture heightMap, UnityEngine.Vector4
heightMapping, UnityEngine.Vector4 surfaceMapping, UnityEngine.Texture
waterHeightMap, UnityEngine.Vector4 waterHeightMapping, UnityEngine.Vector4
waterSurfaceMapping)
IL_0000: Local var 0: UnityEngine.Matrix4x4
IL_0000: Local var 1: System.Single
IL_0000: Local var 2: System.Int32
IL_0000: Local var 3: UnityEngine.Vector3
IL_0000: Local var 4: UnityEngine.Vector3
IL_0000: Local var 5: EffectInfo/SpawnArea
IL_0000: Local var 6: System.Single
IL_0000: Local var 7: LightSystem
IL_0000: Local var 8: ColossalFramework.Math.Randomizer
IL_0000: Local var 9: UnityEngine.Vector4
IL_0000: Local var 10: System.Single
IL_0000: Local var 11: System.Single
IL_0000: Local var 12: System.Single
IL_0000: Local var 13: UnityEngine.Matrix4x4
IL_0000: Local var 14: PropManager
IL_0000: Local var 15: UnityEngine.MaterialPropertyBlock
IL_0000: Local var 16: System.Int32
IL_0000: // start original
IL_0000: ldarg.1
IL_0001: ldfld System.Boolean PrefabInfo::m_prefabInitialized
IL_0006: brfalse => Label0
IL_000B: ldarg.1
IL_000C: ldfld System.Boolean PropInfo::m_hasEffects
IL_0011: brfalse => Label1
IL_0016: ldarg.s 8
IL_0018: brtrue => Label2
IL_001D: ldarg.1
IL_001E: ldfld System.Boolean PropInfo::m_alwaysActive
IL_0023: brfalse => Label3
IL_0028: Label2
IL_0028: ldloca.s 0 (UnityEngine.Matrix4x4)
IL_002A: initobj UnityEngine.Matrix4x4
IL_0030: ldloca.s 0 (UnityEngine.Matrix4x4)
IL_0032: ldarg.3
IL_0033: ldarg.s 5
IL_0035: ldc.r4 57.29578
IL_003A: mul
IL_003B: call static UnityEngine.Vector3 UnityEngine.Vector3::get_down()
IL_0040: call static UnityEngine.Quaternion
UnityEngine.Quaternion::AngleAxis(System.Single angle, UnityEngine.Vector3 axis)
IL_0045: ldarg.s 4
IL_0047: ldarg.s 4
IL_0049: ldarg.s 4
IL_004B: newobj System.Void UnityEngine.Vector3::.ctor(System.Single x,
System.Single y, System.Single z)
IL_0050: call System.Void UnityEngine.Matrix4x4::SetTRS(UnityEngine.Vector3
pos, UnityEngine.Quaternion q, UnityEngine.Vector3 s)
IL_0055: call static SimulationManager
ColossalFramework.Singleton`1<SimulationManager>::get_instance()
IL_005A: ldfld System.Single SimulationManager::m_simulationTimeDelta
IL_005F: stloc.1
IL_0060: ldc.i4.0
IL_0061: stloc.2
IL_0062: br => Label4
IL_0067: Label5
IL_0067: ldloca.s 0 (UnityEngine.Matrix4x4)
IL_0069: ldarg.1
IL_006A: ldfld Effect[] PropInfo::m_effects
IL_006F: ldloc.2
IL_0070: ldelema PropInfo+Effect
IL_0075: ldfld UnityEngine.Vector3 Effect::m_position
IL_007A: call UnityEngine.Vector3
UnityEngine.Matrix4x4::MultiplyPoint(UnityEngine.Vector3 v)
IL_007F: stloc.3
IL_0080: ldloca.s 0 (UnityEngine.Matrix4x4)
IL_0082: ldarg.1
IL_0083: ldfld Effect[] PropInfo::m_effects
IL_0088: ldloc.2
IL_0089: ldelema PropInfo+Effect
IL_008E: ldfld UnityEngine.Vector3 Effect::m_direction
IL_0093: call UnityEngine.Vector3
UnityEngine.Matrix4x4::MultiplyVector(UnityEngine.Vector3 v)
IL_0098: stloc.s 4 (UnityEngine.Vector3)
IL_009A: ldloca.s 5 (EffectInfo+SpawnArea)
IL_009C: ldloc.3
IL_009D: ldloc.s 4 (UnityEngine.Vector3)
IL_009F: ldc.r4 0
IL_00A4: call System.Void SpawnArea::.ctor(UnityEngine.Vector3 position,
UnityEngine.Vector3 direction, System.Single radius)
IL_00A9: ldarg.1
IL_00AA: ldfld Effect[] PropInfo::m_effects
IL_00AF: ldloc.2
IL_00B0: ldelema PropInfo+Effect
IL_00B5: ldfld EffectInfo Effect::m_effect
IL_00BA: ldarg.2
IL_00BB: ldloc.s 5 (EffectInfo+SpawnArea)
IL_00BD: call static UnityEngine.Vector3 UnityEngine.Vector3::get_zero()
IL_00C2: ldc.r4 0
IL_00C7: ldc.r4 1
IL_00CC: ldc.r4 -1
IL_00D1: ldloc.1
IL_00D2: ldarg.0
IL_00D3: callvirt virtual System.Void EffectInfo::RenderEffect(InstanceID id,
SpawnArea area, UnityEngine.Vector3 velocity, System.Single acceleration,
System.Single magnitude, System.Single timeOffset, System.Single timeDelta,
CameraInfo cameraInfo)
IL_00D8: ldloc.2
IL_00D9: ldc.i4.1
IL_00DA: add
IL_00DB: stloc.2
IL_00DC: Label4
IL_00DC: ldloc.2
IL_00DD: ldarg.1
IL_00DE: ldfld Effect[] PropInfo::m_effects
IL_00E3: ldlen
IL_00E4: conv.i4
IL_00E5: blt => Label5
IL_00EA: Label1
IL_00EA: Label3
IL_00EA: ldarg.1
IL_00EB: ldfld System.Boolean PropInfo::m_hasRenderer
IL_00F0: brfalse => Label6
IL_00F5: ldarg.0
IL_00F6: ldfld System.Int32 CameraInfo::m_layerMask
IL_00FB: ldc.i4.1
IL_00FC: ldarg.1
IL_00FD: ldfld System.Int32 PrefabInfo::m_prefabDataLayer
IL_0102: ldc.i4.s 31
IL_0104: and
IL_0105: shl
IL_0106: and
IL_0107: brfalse => Label7
IL_010C: call static InfoManager
ColossalFramework.Singleton`1<InfoManager>::get_instance()
IL_0111: callvirt InfoMode InfoManager::get_CurrentMode()
IL_0116: brtrue => Label8
IL_011B: ldc.r4 0
IL_0120: stloc.s 6 (System.Single)
IL_0122: ldarg.s 8
IL_0124: brtrue => Label9
IL_0129: ldarg.1
IL_012A: ldfld System.Boolean PropInfo::m_alwaysActive
IL_012F: brtrue => Label10
IL_0134: ldarga.s 7
IL_0136: ldc.r4 0
IL_013B: stfld System.Single UnityEngine.Vector4::z
IL_0140: br => Label11
IL_0145: Label9
IL_0145: Label10
IL_0145: ldarg.1
IL_0146: ldflda UnityEngine.Vector2 PropInfo::m_illuminationOffRange
IL_014B: ldfld System.Single UnityEngine.Vector2::x
IL_0150: ldc.r4 1000
IL_0155: blt => Label12
IL_015A: ldarg.1
IL_015B: ldfld BlinkType PropInfo::m_illuminationBlinkType
IL_0160: brfalse => Label13
IL_0165: Label12
IL_0165: call static RenderManager
ColossalFramework.Singleton`1<RenderManager>::get_instance()
IL_016A: callvirt LightSystem RenderManager::get_lightSystem()
IL_016F: stloc.s 7 (LightSystem)
IL_0171: ldloca.s 8 (ColossalFramework.Math.Randomizer)
IL_0173: ldarga.s 2
IL_0175: call System.UInt32 InstanceID::get_Index()
IL_017A: call System.Void
ColossalFramework.Math.Randomizer::.ctor(System.UInt32 _seed)
IL_017F: ldarg.1
IL_0180: ldflda UnityEngine.Vector2 PropInfo::m_illuminationOffRange
IL_0185: ldfld System.Single UnityEngine.Vector2::x
IL_018A: ldloca.s 8 (ColossalFramework.Math.Randomizer)
IL_018C: ldc.i4 100000
IL_0191: call System.Int32
ColossalFramework.Math.Randomizer::Int32(System.UInt32 range)
IL_0196: conv.r4
IL_0197: ldc.r4 1E-05
IL_019C: mul
IL_019D: ldarg.1
IL_019E: ldflda UnityEngine.Vector2 PropInfo::m_illuminationOffRange
IL_01A3: ldfld System.Single UnityEngine.Vector2::y
IL_01A8: ldarg.1
IL_01A9: ldflda UnityEngine.Vector2 PropInfo::m_illuminationOffRange
IL_01AE: ldfld System.Single UnityEngine.Vector2::x
IL_01B3: sub
IL_01B4: mul
IL_01B5: add
IL_01B6: stloc.s 6 (System.Single)
IL_01B8: ldarga.s 7
IL_01BA: ldloc.s 6 (System.Single)
IL_01BC: ldc.r4 0.01
IL_01C1: add
IL_01C2: ldloc.s 6 (System.Single)
IL_01C4: ldc.r4 0.01
IL_01C9: sub
IL_01CA: ldloc.s 7 (LightSystem)
IL_01CC: callvirt System.Single LightSystem::get_DayLightIntensity()
IL_01D1: call static System.Single MathUtils::SmoothStep(System.Single edge0,
System.Single edge1, System.Single x)
IL_01D6: stfld System.Single UnityEngine.Vector4::z
IL_01DB: ldarg.1
IL_01DC: ldfld BlinkType PropInfo::m_illuminationBlinkType
IL_01E1: brfalse => Label14
IL_01E6: ldarg.1
IL_01E7: ldfld BlinkType PropInfo::m_illuminationBlinkType
IL_01EC: call static UnityEngine.Vector4
LightEffect::GetBlinkVector(BlinkType type)
IL_01F1: stloc.s 9 (UnityEngine.Vector4)
IL_01F3: ldloc.s 6 (System.Single)
IL_01F5: ldc.r4 3.71
IL_01FA: mul
IL_01FB: call static SimulationManager
ColossalFramework.Singleton`1<SimulationManager>::get_instance()
IL_0200: ldfld System.Single SimulationManager::m_simulationTimer
IL_0205: ldloca.s 9 (UnityEngine.Vector4)
IL_0207: ldfld System.Single UnityEngine.Vector4::w
IL_020C: div
IL_020D: add
IL_020E: stloc.s 10 (System.Single)
IL_0210: ldloc.s 10 (System.Single)
IL_0212: ldloc.s 10 (System.Single)
IL_0214: call static System.Single UnityEngine.Mathf::Floor(System.Single f)
IL_0219: sub
IL_021A: ldloca.s 9 (UnityEngine.Vector4)
IL_021C: ldfld System.Single UnityEngine.Vector4::w
IL_0221: mul
IL_0222: stloc.s 10 (System.Single)
IL_0224: ldloca.s 9 (UnityEngine.Vector4)
IL_0226: ldfld System.Single UnityEngine.Vector4::x
IL_022B: ldloca.s 9 (UnityEngine.Vector4)
IL_022D: ldfld System.Single UnityEngine.Vector4::y
IL_0232: ldloc.s 10 (System.Single)
IL_0234: call static System.Single MathUtils::SmoothStep(System.Single edge0,
System.Single edge1, System.Single x)
IL_0239: stloc.s 11 (System.Single)
IL_023B: ldloca.s 9 (UnityEngine.Vector4)
IL_023D: ldfld System.Single UnityEngine.Vector4::w
IL_0242: ldloca.s 9 (UnityEngine.Vector4)
IL_0244: ldfld System.Single UnityEngine.Vector4::z
IL_0249: ldloc.s 10 (System.Single)
IL_024B: call static System.Single MathUtils::SmoothStep(System.Single edge0,
System.Single edge1, System.Single x)
IL_0250: stloc.s 12 (System.Single)
IL_0252: ldarga.s 7
IL_0254: dup
IL_0255: ldfld System.Single UnityEngine.Vector4::z
IL_025A: ldc.r4 1
IL_025F: ldloc.s 11 (System.Single)
IL_0261: ldloc.s 12 (System.Single)
IL_0263: mul
IL_0264: sub
IL_0265: mul
IL_0266: stfld System.Single UnityEngine.Vector4::z
IL_026B: Label14
IL_026B: br => Label15
IL_0270: Label13
IL_0270: ldarga.s 7
IL_0272: ldc.r4 1
IL_0277: stfld System.Single UnityEngine.Vector4::z
IL_027C: Label8
IL_027C: Label11
IL_027C: Label15
IL_027C: ldarg.0
IL_027D: brfalse => Label16
IL_0282: ldarg.0
IL_0283: ldarg.3
IL_0284: ldarg.1
IL_0285: ldfld System.Single PropInfo::m_lodRenderDistance
IL_028A: callvirt System.Boolean
CameraInfo::CheckRenderDistance(UnityEngine.Vector3 point, System.Single
maxDistance)
IL_028F: brfalse => Label17
IL_0294: Label16
IL_0294: ldloca.s 13 (UnityEngine.Matrix4x4)
IL_0296: initobj UnityEngine.Matrix4x4
IL_029C: ldloca.s 13 (UnityEngine.Matrix4x4)
IL_029E: ldarg.3
IL_029F: ldarg.s 5
IL_02A1: ldc.r4 57.29578
IL_02A6: mul
IL_02A7: call static UnityEngine.Vector3 UnityEngine.Vector3::get_down()
IL_02AC: call static UnityEngine.Quaternion
UnityEngine.Quaternion::AngleAxis(System.Single angle, UnityEngine.Vector3 axis)
IL_02B1: ldarg.s 4
IL_02B3: ldarg.s 4
IL_02B5: ldarg.s 4
IL_02B7: newobj System.Void UnityEngine.Vector3::.ctor(System.Single x,
System.Single y, System.Single z)
IL_02BC: call System.Void UnityEngine.Matrix4x4::SetTRS(UnityEngine.Vector3
pos, UnityEngine.Quaternion q, UnityEngine.Vector3 s)
IL_02C1: call static PropManager
ColossalFramework.Singleton`1<PropManager>::get_instance()
IL_02C6: stloc.s 14 (PropManager)
IL_02C8: ldloc.s 14 (PropManager)
IL_02CA: ldfld UnityEngine.MaterialPropertyBlock PropManager::m_materialBlock
IL_02CF: stloc.s 15 (UnityEngine.MaterialPropertyBlock)
IL_02D1: ldloc.s 15 (UnityEngine.MaterialPropertyBlock)
IL_02D3: callvirt System.Void UnityEngine.MaterialPropertyBlock::Clear()
IL_02D8: ldloc.s 15 (UnityEngine.MaterialPropertyBlock)
IL_02DA: ldloc.s 14 (PropManager)
IL_02DC: ldfld System.Int32 PropManager::ID_Color
IL_02E1: ldarg.s 6
IL_02E3: callvirt System.Void
UnityEngine.MaterialPropertyBlock::SetColor(System.Int32 nameID, UnityEngine.Color
value)
IL_02E8: ldloc.s 15 (UnityEngine.MaterialPropertyBlock)
IL_02EA: ldloc.s 14 (PropManager)
IL_02EC: ldfld System.Int32 PropManager::ID_HeightMap
IL_02F1: ldarg.s 9
IL_02F3: callvirt System.Void
UnityEngine.MaterialPropertyBlock::SetTexture(System.Int32 nameID,
UnityEngine.Texture value)
IL_02F8: ldloc.s 15 (UnityEngine.MaterialPropertyBlock)
IL_02FA: ldloc.s 14 (PropManager)
IL_02FC: ldfld System.Int32 PropManager::ID_HeightMapping
IL_0301: ldarg.s 10
IL_0303: callvirt System.Void
UnityEngine.MaterialPropertyBlock::SetVector(System.Int32 nameID,
UnityEngine.Vector4 value)
IL_0308: ldloc.s 15 (UnityEngine.MaterialPropertyBlock)
IL_030A: ldloc.s 14 (PropManager)
IL_030C: ldfld System.Int32 PropManager::ID_SurfaceMapping
IL_0311: ldarg.s 11
IL_0313: callvirt System.Void
UnityEngine.MaterialPropertyBlock::SetVector(System.Int32 nameID,
UnityEngine.Vector4 value)
IL_0318: ldloc.s 15 (UnityEngine.MaterialPropertyBlock)
IL_031A: ldloc.s 14 (PropManager)
IL_031C: ldfld System.Int32 PropManager::ID_ObjectIndex
IL_0321: ldarg.s 7
IL_0323: callvirt System.Void
UnityEngine.MaterialPropertyBlock::SetVector(System.Int32 nameID,
UnityEngine.Vector4 value)
IL_0328: ldloc.s 15 (UnityEngine.MaterialPropertyBlock)
IL_032A: ldloc.s 14 (PropManager)
IL_032C: ldfld System.Int32 PropManager::ID_WaterHeightMap
IL_0331: ldarg.s 12
IL_0333: callvirt System.Void
UnityEngine.MaterialPropertyBlock::SetTexture(System.Int32 nameID,
UnityEngine.Texture value)
IL_0338: ldloc.s 15 (UnityEngine.MaterialPropertyBlock)
IL_033A: ldloc.s 14 (PropManager)
IL_033C: ldfld System.Int32 PropManager::ID_WaterHeightMapping
IL_0341: ldarg.s 13
IL_0343: callvirt System.Void
UnityEngine.MaterialPropertyBlock::SetVector(System.Int32 nameID,
UnityEngine.Vector4 value)
IL_0348: ldloc.s 15 (UnityEngine.MaterialPropertyBlock)
IL_034A: ldloc.s 14 (PropManager)
IL_034C: ldfld System.Int32 PropManager::ID_WaterSurfaceMapping
IL_0351: ldarg.s 14
IL_0353: callvirt System.Void
UnityEngine.MaterialPropertyBlock::SetVector(System.Int32 nameID,
UnityEngine.Vector4 value)
IL_0358: ldarg.1
IL_0359: ldfld UnityEngine.Vector4[] PropInfo::m_rollLocation
IL_035E: brfalse => Label18
IL_0363: ldarg.1
IL_0364: ldfld UnityEngine.Material PropInfo::m_material
IL_0369: ldloc.s 14 (PropManager)
IL_036B: ldfld System.Int32 PropManager::ID_RollLocation
IL_0370: ldarg.1
IL_0371: ldfld UnityEngine.Vector4[] PropInfo::m_rollLocation
IL_0376: callvirt System.Void UnityEngine.Material::SetVectorArray(System.Int32
nameID, UnityEngine.Vector4[] values)
IL_037B: ldarg.1
IL_037C: ldfld UnityEngine.Material PropInfo::m_material
IL_0381: ldloc.s 14 (PropManager)
IL_0383: ldfld System.Int32 PropManager::ID_RollParams
IL_0388: ldarg.1
IL_0389: ldfld UnityEngine.Vector4[] PropInfo::m_rollParams
IL_038E: callvirt System.Void UnityEngine.Material::SetVectorArray(System.Int32
nameID, UnityEngine.Vector4[] values)
IL_0393: Label18
IL_0393: ldloc.s 14 (PropManager)
IL_0395: ldflda DrawCallData SimulationManagerBase`2<PropManager,
PropProperties>::m_drawCallData
IL_039A: dup
IL_039B: ldfld System.Int32 DrawCallData::m_defaultCalls
IL_03A0: ldc.i4.1
IL_03A1: add
IL_03A2: stfld System.Int32 DrawCallData::m_defaultCalls
IL_03A7: ldarg.1
IL_03A8: ldfld UnityEngine.Mesh PropInfo::m_mesh
IL_03AD: ldloc.s 13 (UnityEngine.Matrix4x4)
IL_03AF: ldarg.1
IL_03B0: ldfld UnityEngine.Material PropInfo::m_material
IL_03B5: ldarg.1
IL_03B6: ldfld System.Int32 PrefabInfo::m_prefabDataLayer
IL_03BB: ldnull
IL_03BC: ldc.i4.0
IL_03BD: ldloc.s 15 (UnityEngine.MaterialPropertyBlock)
IL_03BF: call static System.Void
UnityEngine.Graphics::DrawMesh(UnityEngine.Mesh mesh, UnityEngine.Matrix4x4 matrix,
UnityEngine.Material material, System.Int32 layer, UnityEngine.Camera camera,
System.Int32 submeshIndex, UnityEngine.MaterialPropertyBlock properties)
IL_03C4: br => Label19
IL_03C9: Label17
IL_03C9: ldarg.s 9
IL_03CB: ldarg.1
IL_03CC: ldfld UnityEngine.Texture PropInfo::m_lodHeightMap
IL_03D1: call static System.Boolean
UnityEngine.Object::op_Inequality(UnityEngine.Object x, UnityEngine.Object y)
IL_03D6: brtrue => Label20
IL_03DB: ldarg.s 12
IL_03DD: ldarg.1
IL_03DE: ldfld UnityEngine.Texture PropInfo::m_lodWaterHeightMap
IL_03E3: call static System.Boolean
UnityEngine.Object::op_Inequality(UnityEngine.Object x, UnityEngine.Object y)
IL_03E8: brfalse => Label21
IL_03ED: Label20
IL_03ED: ldarg.1
IL_03EE: ldfld System.Int32 PropInfo::m_lodCount
IL_03F3: brfalse => Label22
IL_03F8: ldarg.0
IL_03F9: ldarg.1
IL_03FA: call static System.Void PropInstance::RenderLod(CameraInfo
cameraInfo, PropInfo info)
IL_03FF: Label22
IL_03FF: ldarg.1
IL_0400: ldarg.s 9
IL_0402: stfld UnityEngine.Texture PropInfo::m_lodHeightMap
IL_0407: ldarg.1
IL_0408: ldarg.s 10
IL_040A: stfld UnityEngine.Vector4 PropInfo::m_lodHeightMapping
IL_040F: ldarg.1
IL_0410: ldarg.s 11
IL_0412: stfld UnityEngine.Vector4 PropInfo::m_lodSurfaceMapping
IL_0417: ldarg.1
IL_0418: ldarg.s 12
IL_041A: stfld UnityEngine.Texture PropInfo::m_lodWaterHeightMap
IL_041F: ldarg.1
IL_0420: ldarg.s 13
IL_0422: stfld UnityEngine.Vector4 PropInfo::m_lodWaterHeightMapping
IL_0427: ldarg.1
IL_0428: ldarg.s 14
IL_042A: stfld UnityEngine.Vector4 PropInfo::m_lodWaterSurfaceMapping
IL_042F: Label21
IL_042F: ldarga.s 7
IL_0431: ldarg.s 4
IL_0433: stfld System.Single UnityEngine.Vector4::w
IL_0438: ldarg.1
IL_0439: ldfld UnityEngine.Vector4[] PropInfo::m_lodLocations
IL_043E: ldarg.1
IL_043F: ldfld System.Int32 PropInfo::m_lodCount
IL_0444: ldelema UnityEngine.Vector4
IL_0449: ldarga.s 3
IL_044B: ldfld System.Single UnityEngine.Vector3::x
IL_0450: ldarga.s 3
IL_0452: ldfld System.Single UnityEngine.Vector3::y
IL_0457: ldarga.s 3
IL_0459: ldfld System.Single UnityEngine.Vector3::z
IL_045E: ldarg.s 5
IL_0460: newobj System.Void UnityEngine.Vector4::.ctor(System.Single x,
System.Single y, System.Single z, System.Single w)
IL_0465: stobj UnityEngine.Vector4
IL_046A: ldarg.1
IL_046B: ldfld UnityEngine.Vector4[] PropInfo::m_lodObjectIndices
IL_0470: ldarg.1
IL_0471: ldfld System.Int32 PropInfo::m_lodCount
IL_0476: ldelema UnityEngine.Vector4
IL_047B: ldarg.s 7
IL_047D: stobj UnityEngine.Vector4
IL_0482: ldarg.1
IL_0483: ldfld UnityEngine.Vector4[] PropInfo::m_lodColors
IL_0488: ldarg.1
IL_0489: ldfld System.Int32 PropInfo::m_lodCount
IL_048E: ldelema UnityEngine.Vector4
IL_0493: ldarga.s 6
IL_0495: call UnityEngine.Color UnityEngine.Color::get_linear()
IL_049A: call static UnityEngine.Vector4
UnityEngine.Color::op_Implicit(UnityEngine.Color c)
IL_049F: stobj UnityEngine.Vector4
IL_04A4: ldarg.1
IL_04A5: ldarg.1
IL_04A6: ldfld UnityEngine.Vector3 PropInfo::m_lodMin
IL_04AB: ldarg.3
IL_04AC: call static UnityEngine.Vector3
UnityEngine.Vector3::Min(UnityEngine.Vector3 lhs, UnityEngine.Vector3 rhs)
IL_04B1: stfld UnityEngine.Vector3 PropInfo::m_lodMin
IL_04B6: ldarg.1
IL_04B7: ldarg.1
IL_04B8: ldfld UnityEngine.Vector3 PropInfo::m_lodMax
IL_04BD: ldarg.3
IL_04BE: call static UnityEngine.Vector3
UnityEngine.Vector3::Max(UnityEngine.Vector3 lhs, UnityEngine.Vector3 rhs)
IL_04C3: stfld UnityEngine.Vector3 PropInfo::m_lodMax
IL_04C8: ldarg.1
IL_04C9: dup
IL_04CA: ldfld System.Int32 PropInfo::m_lodCount
IL_04CF: ldc.i4.1
IL_04D0: add
IL_04D1: dup
IL_04D2: stloc.s 16 (System.Int32)
IL_04D4: stfld System.Int32 PropInfo::m_lodCount
IL_04D9: ldloc.s 16 (System.Int32)
IL_04DB: ldarg.1
IL_04DC: ldfld UnityEngine.Vector4[] PropInfo::m_lodLocations
IL_04E1: ldlen
IL_04E2: conv.i4
IL_04E3: bne.un => Label23
IL_04E8: ldarg.0
IL_04E9: ldarg.1
IL_04EA: call static System.Void PropInstance::RenderLod(CameraInfo
cameraInfo, PropInfo info)
IL_04EF: // end original
IL_04EF: Label0
IL_04EF: Label6
IL_04EF: Label7
IL_04EF: Label19
IL_04EF: Label23
IL_04EF: ret
DONE
### Patch: static System.Void PropInstance::RenderInstance(CameraInfo cameraInfo,
PropInfo info, InstanceID id, UnityEngine.Vector3 position, System.Single scale,
System.Single angle, UnityEngine.Color color, UnityEngine.Vector4 objectIndex,
System.Boolean active)
### Replacement: static System.Void
PropInstance::PropInstance.RenderInstance_Patch0(CameraInfo cameraInfo, PropInfo
info, InstanceID id, UnityEngine.Vector3 position, System.Single scale,
System.Single angle, UnityEngine.Color color, UnityEngine.Vector4 objectIndex,
System.Boolean active)
IL_0000: Local var 0: UnityEngine.Matrix4x4
IL_0000: Local var 1: System.Single
IL_0000: Local var 2: System.Int32
IL_0000: Local var 3: UnityEngine.Vector3
IL_0000: Local var 4: UnityEngine.Vector3
IL_0000: Local var 5: EffectInfo/SpawnArea
IL_0000: Local var 6: System.Single
IL_0000: Local var 7: LightSystem
IL_0000: Local var 8: ColossalFramework.Math.Randomizer
IL_0000: Local var 9: UnityEngine.Vector4
IL_0000: Local var 10: System.Single
IL_0000: Local var 11: System.Single
IL_0000: Local var 12: System.Single
IL_0000: Local var 13: UnityEngine.Matrix4x4
IL_0000: Local var 14: PropManager
IL_0000: Local var 15: UnityEngine.MaterialPropertyBlock
IL_0000: Local var 16: UnityEngine.Matrix4x4
IL_0000: Local var 17: PropManager
IL_0000: Local var 18: UnityEngine.MaterialPropertyBlock
IL_0000: Local var 19: System.Int32
IL_0000: // start original
IL_0000: ldarg.1
IL_0001: ldfld System.Boolean PrefabInfo::m_prefabInitialized
IL_0006: brfalse => Label0
IL_000B: ldarg.1
IL_000C: ldfld System.Boolean PropInfo::m_hasEffects
IL_0011: brfalse => Label1
IL_0016: ldarg.s 8
IL_0018: brtrue => Label2
IL_001D: ldarg.1
IL_001E: ldfld System.Boolean PropInfo::m_alwaysActive
IL_0023: brfalse => Label3
IL_0028: Label2
IL_0028: ldloca.s 0 (UnityEngine.Matrix4x4)
IL_002A: initobj UnityEngine.Matrix4x4
IL_0030: ldloca.s 0 (UnityEngine.Matrix4x4)
IL_0032: ldarg.3
IL_0033: ldarg.s 5
IL_0035: ldc.r4 57.29578
IL_003A: mul
IL_003B: call static UnityEngine.Vector3 UnityEngine.Vector3::get_down()
IL_0040: call static UnityEngine.Quaternion
UnityEngine.Quaternion::AngleAxis(System.Single angle, UnityEngine.Vector3 axis)
IL_0045: ldarg.s 4
IL_0047: ldarg.s 4
IL_0049: ldarg.s 4
IL_004B: newobj System.Void UnityEngine.Vector3::.ctor(System.Single x,
System.Single y, System.Single z)
IL_0050: call System.Void UnityEngine.Matrix4x4::SetTRS(UnityEngine.Vector3
pos, UnityEngine.Quaternion q, UnityEngine.Vector3 s)
IL_0055: call static SimulationManager
ColossalFramework.Singleton`1<SimulationManager>::get_instance()
IL_005A: ldfld System.Single SimulationManager::m_simulationTimeDelta
IL_005F: stloc.1
IL_0060: ldc.i4.0
IL_0061: stloc.2
IL_0062: br => Label4
IL_0067: Label5
IL_0067: ldloca.s 0 (UnityEngine.Matrix4x4)
IL_0069: ldarg.1
IL_006A: ldfld Effect[] PropInfo::m_effects
IL_006F: ldloc.2
IL_0070: ldelema PropInfo+Effect
IL_0075: ldfld UnityEngine.Vector3 Effect::m_position
IL_007A: call UnityEngine.Vector3
UnityEngine.Matrix4x4::MultiplyPoint(UnityEngine.Vector3 v)
IL_007F: stloc.3
IL_0080: ldloca.s 0 (UnityEngine.Matrix4x4)
IL_0082: ldarg.1
IL_0083: ldfld Effect[] PropInfo::m_effects
IL_0088: ldloc.2
IL_0089: ldelema PropInfo+Effect
IL_008E: ldfld UnityEngine.Vector3 Effect::m_direction
IL_0093: call UnityEngine.Vector3
UnityEngine.Matrix4x4::MultiplyVector(UnityEngine.Vector3 v)
IL_0098: stloc.s 4 (UnityEngine.Vector3)
IL_009A: ldloca.s 5 (EffectInfo+SpawnArea)
IL_009C: ldloc.3
IL_009D: ldloc.s 4 (UnityEngine.Vector3)
IL_009F: ldc.r4 0
IL_00A4: call System.Void SpawnArea::.ctor(UnityEngine.Vector3 position,
UnityEngine.Vector3 direction, System.Single radius)
IL_00A9: ldarg.1
IL_00AA: ldfld Effect[] PropInfo::m_effects
IL_00AF: ldloc.2
IL_00B0: ldelema PropInfo+Effect
IL_00B5: ldfld EffectInfo Effect::m_effect
IL_00BA: ldarg.2
IL_00BB: ldloc.s 5 (EffectInfo+SpawnArea)
IL_00BD: call static UnityEngine.Vector3 UnityEngine.Vector3::get_zero()
IL_00C2: ldc.r4 0
IL_00C7: ldc.r4 1
IL_00CC: ldc.r4 -1
IL_00D1: ldloc.1
IL_00D2: ldarg.0
IL_00D3: callvirt virtual System.Void EffectInfo::RenderEffect(InstanceID id,
SpawnArea area, UnityEngine.Vector3 velocity, System.Single acceleration,
System.Single magnitude, System.Single timeOffset, System.Single timeDelta,
CameraInfo cameraInfo)
IL_00D8: ldloc.2
IL_00D9: ldc.i4.1
IL_00DA: add
IL_00DB: stloc.2
IL_00DC: Label4
IL_00DC: ldloc.2
IL_00DD: ldarg.1
IL_00DE: ldfld Effect[] PropInfo::m_effects
IL_00E3: ldlen
IL_00E4: conv.i4
IL_00E5: blt => Label5
IL_00EA: Label1
IL_00EA: Label3
IL_00EA: ldarg.1
IL_00EB: ldfld System.Boolean PropInfo::m_hasRenderer
IL_00F0: brfalse => Label6
IL_00F5: ldarg.0
IL_00F6: ldfld System.Int32 CameraInfo::m_layerMask
IL_00FB: ldc.i4.1
IL_00FC: ldarg.1
IL_00FD: ldfld System.Int32 PrefabInfo::m_prefabDataLayer
IL_0102: ldc.i4.s 31
IL_0104: and
IL_0105: shl
IL_0106: and
IL_0107: brfalse => Label7
IL_010C: call static InfoManager
ColossalFramework.Singleton`1<InfoManager>::get_instance()
IL_0111: callvirt InfoMode InfoManager::get_CurrentMode()
IL_0116: brtrue => Label8
IL_011B: ldc.r4 0
IL_0120: stloc.s 6 (System.Single)
IL_0122: ldarg.s 8
IL_0124: brtrue => Label9
IL_0129: ldarg.1
IL_012A: ldfld System.Boolean PropInfo::m_alwaysActive
IL_012F: brtrue => Label10
IL_0134: ldarga.s 7
IL_0136: ldc.r4 0
IL_013B: stfld System.Single UnityEngine.Vector4::z
IL_0140: br => Label11
IL_0145: Label9
IL_0145: Label10
IL_0145: ldarg.1
IL_0146: ldflda UnityEngine.Vector2 PropInfo::m_illuminationOffRange
IL_014B: ldfld System.Single UnityEngine.Vector2::x
IL_0150: ldc.r4 1000
IL_0155: blt => Label12
IL_015A: ldarg.1
IL_015B: ldfld BlinkType PropInfo::m_illuminationBlinkType
IL_0160: brfalse => Label13
IL_0165: Label12
IL_0165: call static RenderManager
ColossalFramework.Singleton`1<RenderManager>::get_instance()
IL_016A: callvirt LightSystem RenderManager::get_lightSystem()
IL_016F: stloc.s 7 (LightSystem)
IL_0171: ldloca.s 8 (ColossalFramework.Math.Randomizer)
IL_0173: ldarga.s 2
IL_0175: call System.UInt32 InstanceID::get_Index()
IL_017A: call System.Void
ColossalFramework.Math.Randomizer::.ctor(System.UInt32 _seed)
IL_017F: ldarg.1
IL_0180: ldflda UnityEngine.Vector2 PropInfo::m_illuminationOffRange
IL_0185: ldfld System.Single UnityEngine.Vector2::x
IL_018A: ldloca.s 8 (ColossalFramework.Math.Randomizer)
IL_018C: ldc.i4 100000
IL_0191: call System.Int32
ColossalFramework.Math.Randomizer::Int32(System.UInt32 range)
IL_0196: conv.r4
IL_0197: ldc.r4 1E-05
IL_019C: mul
IL_019D: ldarg.1
IL_019E: ldflda UnityEngine.Vector2 PropInfo::m_illuminationOffRange
IL_01A3: ldfld System.Single UnityEngine.Vector2::y
IL_01A8: ldarg.1
IL_01A9: ldflda UnityEngine.Vector2 PropInfo::m_illuminationOffRange
IL_01AE: ldfld System.Single UnityEngine.Vector2::x
IL_01B3: sub
IL_01B4: mul
IL_01B5: add
IL_01B6: stloc.s 6 (System.Single)
IL_01B8: ldarga.s 7
IL_01BA: ldloc.s 6 (System.Single)
IL_01BC: ldc.r4 0.01
IL_01C1: add
IL_01C2: ldloc.s 6 (System.Single)
IL_01C4: ldc.r4 0.01
IL_01C9: sub
IL_01CA: ldloc.s 7 (LightSystem)
IL_01CC: callvirt System.Single LightSystem::get_DayLightIntensity()
IL_01D1: call static System.Single MathUtils::SmoothStep(System.Single edge0,
System.Single edge1, System.Single x)
IL_01D6: stfld System.Single UnityEngine.Vector4::z
IL_01DB: ldarg.1
IL_01DC: ldfld BlinkType PropInfo::m_illuminationBlinkType
IL_01E1: brfalse => Label14
IL_01E6: ldarg.1
IL_01E7: ldfld BlinkType PropInfo::m_illuminationBlinkType
IL_01EC: call static UnityEngine.Vector4
LightEffect::GetBlinkVector(BlinkType type)
IL_01F1: stloc.s 9 (UnityEngine.Vector4)
IL_01F3: ldloc.s 6 (System.Single)
IL_01F5: ldc.r4 3.71
IL_01FA: mul
IL_01FB: call static SimulationManager
ColossalFramework.Singleton`1<SimulationManager>::get_instance()
IL_0200: ldfld System.Single SimulationManager::m_simulationTimer
IL_0205: ldloca.s 9 (UnityEngine.Vector4)
IL_0207: ldfld System.Single UnityEngine.Vector4::w
IL_020C: div
IL_020D: add
IL_020E: stloc.s 10 (System.Single)
IL_0210: ldloc.s 10 (System.Single)
IL_0212: ldloc.s 10 (System.Single)
IL_0214: call static System.Single UnityEngine.Mathf::Floor(System.Single f)
IL_0219: sub
IL_021A: ldloca.s 9 (UnityEngine.Vector4)
IL_021C: ldfld System.Single UnityEngine.Vector4::w
IL_0221: mul
IL_0222: stloc.s 10 (System.Single)
IL_0224: ldloca.s 9 (UnityEngine.Vector4)
IL_0226: ldfld System.Single UnityEngine.Vector4::x
IL_022B: ldloca.s 9 (UnityEngine.Vector4)
IL_022D: ldfld System.Single UnityEngine.Vector4::y
IL_0232: ldloc.s 10 (System.Single)
IL_0234: call static System.Single MathUtils::SmoothStep(System.Single edge0,
System.Single edge1, System.Single x)
IL_0239: stloc.s 11 (System.Single)
IL_023B: ldloca.s 9 (UnityEngine.Vector4)
IL_023D: ldfld System.Single UnityEngine.Vector4::w
IL_0242: ldloca.s 9 (UnityEngine.Vector4)
IL_0244: ldfld System.Single UnityEngine.Vector4::z
IL_0249: ldloc.s 10 (System.Single)
IL_024B: call static System.Single MathUtils::SmoothStep(System.Single edge0,
System.Single edge1, System.Single x)
IL_0250: stloc.s 12 (System.Single)
IL_0252: ldarga.s 7
IL_0254: dup
IL_0255: ldfld System.Single UnityEngine.Vector4::z
IL_025A: ldc.r4 1
IL_025F: ldloc.s 11 (System.Single)
IL_0261: ldloc.s 12 (System.Single)
IL_0263: mul
IL_0264: sub
IL_0265: mul
IL_0266: stfld System.Single UnityEngine.Vector4::z
IL_026B: Label14
IL_026B: br => Label15
IL_0270: Label13
IL_0270: ldarga.s 7
IL_0272: ldc.r4 1
IL_0277: stfld System.Single UnityEngine.Vector4::z
IL_027C: Label8
IL_027C: Label11
IL_027C: Label15
IL_027C: ldarg.0
IL_027D: brfalse => Label16
IL_0282: ldarg.0
IL_0283: ldarg.3
IL_0284: ldarg.1
IL_0285: ldfld System.Single PropInfo::m_lodRenderDistance
IL_028A: callvirt System.Boolean
CameraInfo::CheckRenderDistance(UnityEngine.Vector3 point, System.Single
maxDistance)
IL_028F: brfalse => Label17
IL_0294: Label16
IL_0294: ldloca.s 13 (UnityEngine.Matrix4x4)
IL_0296: initobj UnityEngine.Matrix4x4
IL_029C: ldloca.s 13 (UnityEngine.Matrix4x4)
IL_029E: ldarg.3
IL_029F: ldarg.s 5
IL_02A1: ldc.r4 57.29578
IL_02A6: mul
IL_02A7: call static UnityEngine.Vector3 UnityEngine.Vector3::get_down()
IL_02AC: call static UnityEngine.Quaternion
UnityEngine.Quaternion::AngleAxis(System.Single angle, UnityEngine.Vector3 axis)
IL_02B1: ldarg.s 4
IL_02B3: ldarg.s 4
IL_02B5: ldarg.s 4
IL_02B7: newobj System.Void UnityEngine.Vector3::.ctor(System.Single x,
System.Single y, System.Single z)
IL_02BC: call System.Void UnityEngine.Matrix4x4::SetTRS(UnityEngine.Vector3
pos, UnityEngine.Quaternion q, UnityEngine.Vector3 s)
IL_02C1: call static PropManager
ColossalFramework.Singleton`1<PropManager>::get_instance()
IL_02C6: stloc.s 14 (PropManager)
IL_02C8: ldloc.s 14 (PropManager)
IL_02CA: ldfld UnityEngine.MaterialPropertyBlock PropManager::m_materialBlock
IL_02CF: stloc.s 15 (UnityEngine.MaterialPropertyBlock)
IL_02D1: ldloc.s 15 (UnityEngine.MaterialPropertyBlock)
IL_02D3: callvirt System.Void UnityEngine.MaterialPropertyBlock::Clear()
IL_02D8: ldloc.s 15 (UnityEngine.MaterialPropertyBlock)
IL_02DA: ldloc.s 14 (PropManager)
IL_02DC: ldfld System.Int32 PropManager::ID_Color
IL_02E1: ldarg.s 6
IL_02E3: callvirt System.Void
UnityEngine.MaterialPropertyBlock::SetColor(System.Int32 nameID, UnityEngine.Color
value)
IL_02E8: ldloc.s 15 (UnityEngine.MaterialPropertyBlock)
IL_02EA: ldloc.s 14 (PropManager)
IL_02EC: ldfld System.Int32 PropManager::ID_ObjectIndex
IL_02F1: ldarg.s 7
IL_02F3: callvirt System.Void
UnityEngine.MaterialPropertyBlock::SetVector(System.Int32 nameID,
UnityEngine.Vector4 value)
IL_02F8: ldarg.1
IL_02F9: ldfld UnityEngine.Vector4[] PropInfo::m_rollLocation
IL_02FE: brfalse => Label18
IL_0303: ldarg.1
IL_0304: ldfld UnityEngine.Material PropInfo::m_material
IL_0309: ldloc.s 14 (PropManager)
IL_030B: ldfld System.Int32 PropManager::ID_RollLocation
IL_0310: ldarg.1
IL_0311: ldfld UnityEngine.Vector4[] PropInfo::m_rollLocation
IL_0316: callvirt System.Void UnityEngine.Material::SetVectorArray(System.Int32
nameID, UnityEngine.Vector4[] values)
IL_031B: ldarg.1
IL_031C: ldfld UnityEngine.Material PropInfo::m_material
IL_0321: ldloc.s 14 (PropManager)
IL_0323: ldfld System.Int32 PropManager::ID_RollParams
IL_0328: ldarg.1
IL_0329: ldfld UnityEngine.Vector4[] PropInfo::m_rollParams
IL_032E: callvirt System.Void UnityEngine.Material::SetVectorArray(System.Int32
nameID, UnityEngine.Vector4[] values)
IL_0333: Label18
IL_0333: ldloc.s 14 (PropManager)
IL_0335: ldflda DrawCallData SimulationManagerBase`2<PropManager,
PropProperties>::m_drawCallData
IL_033A: dup
IL_033B: ldfld System.Int32 DrawCallData::m_defaultCalls
IL_0340: ldc.i4.1
IL_0341: add
IL_0342: stfld System.Int32 DrawCallData::m_defaultCalls
IL_0347: ldarg.1
IL_0348: ldfld UnityEngine.Mesh PropInfo::m_mesh
IL_034D: ldloc.s 13 (UnityEngine.Matrix4x4)
IL_034F: ldarg.1
IL_0350: ldfld UnityEngine.Material PropInfo::m_material
IL_0355: ldarg.1
IL_0356: ldfld System.Int32 PrefabInfo::m_prefabDataLayer
IL_035B: ldnull
IL_035C: ldc.i4.0
IL_035D: ldloc.s 15 (UnityEngine.MaterialPropertyBlock)
IL_035F: call static System.Void
UnityEngine.Graphics::DrawMesh(UnityEngine.Mesh mesh, UnityEngine.Matrix4x4 matrix,
UnityEngine.Material material, System.Int32 layer, UnityEngine.Camera camera,
System.Int32 submeshIndex, UnityEngine.MaterialPropertyBlock properties)
IL_0364: br => Label19
IL_0369: Label17
IL_0369: ldarg.1
IL_036A: ldfld UnityEngine.Material PropInfo::m_lodMaterialCombined
IL_036F: ldnull
IL_0370: call static System.Boolean
UnityEngine.Object::op_Equality(UnityEngine.Object x, UnityEngine.Object y)
IL_0375: brfalse => Label20
IL_037A: ldloca.s 16 (UnityEngine.Matrix4x4)
IL_037C: initobj UnityEngine.Matrix4x4
IL_0382: ldloca.s 16 (UnityEngine.Matrix4x4)
IL_0384: ldarg.3
IL_0385: ldarg.s 5
IL_0387: ldc.r4 57.29578
IL_038C: mul
IL_038D: call static UnityEngine.Vector3 UnityEngine.Vector3::get_down()
IL_0392: call static UnityEngine.Quaternion
UnityEngine.Quaternion::AngleAxis(System.Single angle, UnityEngine.Vector3 axis)
IL_0397: ldarg.s 4
IL_0399: ldarg.s 4
IL_039B: ldarg.s 4
IL_039D: newobj System.Void UnityEngine.Vector3::.ctor(System.Single x,
System.Single y, System.Single z)
IL_03A2: call System.Void UnityEngine.Matrix4x4::SetTRS(UnityEngine.Vector3
pos, UnityEngine.Quaternion q, UnityEngine.Vector3 s)
IL_03A7: call static PropManager
ColossalFramework.Singleton`1<PropManager>::get_instance()
IL_03AC: stloc.s 17 (PropManager)
IL_03AE: ldloc.s 17 (PropManager)
IL_03B0: ldfld UnityEngine.MaterialPropertyBlock PropManager::m_materialBlock
IL_03B5: stloc.s 18 (UnityEngine.MaterialPropertyBlock)
IL_03B7: ldloc.s 18 (UnityEngine.MaterialPropertyBlock)
IL_03B9: callvirt System.Void UnityEngine.MaterialPropertyBlock::Clear()
IL_03BE: ldloc.s 18 (UnityEngine.MaterialPropertyBlock)
IL_03C0: ldloc.s 17 (PropManager)
IL_03C2: ldfld System.Int32 PropManager::ID_Color
IL_03C7: ldarg.s 6
IL_03C9: callvirt System.Void
UnityEngine.MaterialPropertyBlock::SetColor(System.Int32 nameID, UnityEngine.Color
value)
IL_03CE: ldloc.s 18 (UnityEngine.MaterialPropertyBlock)
IL_03D0: ldloc.s 17 (PropManager)
IL_03D2: ldfld System.Int32 PropManager::ID_ObjectIndex
IL_03D7: ldarg.s 7
IL_03D9: callvirt System.Void
UnityEngine.MaterialPropertyBlock::SetVector(System.Int32 nameID,
UnityEngine.Vector4 value)
IL_03DE: ldarg.1
IL_03DF: ldfld UnityEngine.Vector4[] PropInfo::m_rollLocation
IL_03E4: brfalse => Label21
IL_03E9: ldarg.1
IL_03EA: ldfld UnityEngine.Material PropInfo::m_material
IL_03EF: ldloc.s 17 (PropManager)
IL_03F1: ldfld System.Int32 PropManager::ID_RollLocation
IL_03F6: ldarg.1
IL_03F7: ldfld UnityEngine.Vector4[] PropInfo::m_rollLocation
IL_03FC: callvirt System.Void UnityEngine.Material::SetVectorArray(System.Int32
nameID, UnityEngine.Vector4[] values)
IL_0401: ldarg.1
IL_0402: ldfld UnityEngine.Material PropInfo::m_material
IL_0407: ldloc.s 17 (PropManager)
IL_0409: ldfld System.Int32 PropManager::ID_RollParams
IL_040E: ldarg.1
IL_040F: ldfld UnityEngine.Vector4[] PropInfo::m_rollParams
IL_0414: callvirt System.Void UnityEngine.Material::SetVectorArray(System.Int32
nameID, UnityEngine.Vector4[] values)
IL_0419: Label21
IL_0419: ldloc.s 17 (PropManager)
IL_041B: ldflda DrawCallData SimulationManagerBase`2<PropManager,
PropProperties>::m_drawCallData
IL_0420: dup
IL_0421: ldfld System.Int32 DrawCallData::m_defaultCalls
IL_0426: ldc.i4.1
IL_0427: add
IL_0428: stfld System.Int32 DrawCallData::m_defaultCalls
IL_042D: ldarg.1
IL_042E: ldfld UnityEngine.Mesh PropInfo::m_lodMesh
IL_0433: ldloc.s 16 (UnityEngine.Matrix4x4)
IL_0435: ldarg.1
IL_0436: ldfld UnityEngine.Material PropInfo::m_lodMaterial
IL_043B: ldarg.1
IL_043C: ldfld System.Int32 PrefabInfo::m_prefabDataLayer
IL_0441: ldnull
IL_0442: ldc.i4.0
IL_0443: ldloc.s 18 (UnityEngine.MaterialPropertyBlock)
IL_0445: call static System.Void
UnityEngine.Graphics::DrawMesh(UnityEngine.Mesh mesh, UnityEngine.Matrix4x4 matrix,
UnityEngine.Material material, System.Int32 layer, UnityEngine.Camera camera,
System.Int32 submeshIndex, UnityEngine.MaterialPropertyBlock properties)
IL_044A: br => Label22
IL_044F: Label20
IL_044F: ldarga.s 7
IL_0451: ldarg.s 4
IL_0453: stfld System.Single UnityEngine.Vector4::w
IL_0458: ldarg.1
IL_0459: ldfld UnityEngine.Vector4[] PropInfo::m_lodLocations
IL_045E: ldarg.1
IL_045F: ldfld System.Int32 PropInfo::m_lodCount
IL_0464: ldelema UnityEngine.Vector4
IL_0469: ldarga.s 3
IL_046B: ldfld System.Single UnityEngine.Vector3::x
IL_0470: ldarga.s 3
IL_0472: ldfld System.Single UnityEngine.Vector3::y
IL_0477: ldarga.s 3
IL_0479: ldfld System.Single UnityEngine.Vector3::z
IL_047E: ldarg.s 5
IL_0480: newobj System.Void UnityEngine.Vector4::.ctor(System.Single x,
System.Single y, System.Single z, System.Single w)
IL_0485: stobj UnityEngine.Vector4
IL_048A: ldarg.1
IL_048B: ldfld UnityEngine.Vector4[] PropInfo::m_lodObjectIndices
IL_0490: ldarg.1
IL_0491: ldfld System.Int32 PropInfo::m_lodCount
IL_0496: ldelema UnityEngine.Vector4
IL_049B: ldarg.s 7
IL_049D: stobj UnityEngine.Vector4
IL_04A2: ldarg.1
IL_04A3: ldfld UnityEngine.Vector4[] PropInfo::m_lodColors
IL_04A8: ldarg.1
IL_04A9: ldfld System.Int32 PropInfo::m_lodCount
IL_04AE: ldelema UnityEngine.Vector4
IL_04B3: ldarga.s 6
IL_04B5: call UnityEngine.Color UnityEngine.Color::get_linear()
IL_04BA: call static UnityEngine.Vector4
UnityEngine.Color::op_Implicit(UnityEngine.Color c)
IL_04BF: stobj UnityEngine.Vector4
IL_04C4: ldarg.1
IL_04C5: ldarg.1
IL_04C6: ldfld UnityEngine.Vector3 PropInfo::m_lodMin
IL_04CB: ldarg.3
IL_04CC: call static UnityEngine.Vector3
UnityEngine.Vector3::Min(UnityEngine.Vector3 lhs, UnityEngine.Vector3 rhs)
IL_04D1: stfld UnityEngine.Vector3 PropInfo::m_lodMin
IL_04D6: ldarg.1
IL_04D7: ldarg.1
IL_04D8: ldfld UnityEngine.Vector3 PropInfo::m_lodMax
IL_04DD: ldarg.3
IL_04DE: call static UnityEngine.Vector3
UnityEngine.Vector3::Max(UnityEngine.Vector3 lhs, UnityEngine.Vector3 rhs)
IL_04E3: stfld UnityEngine.Vector3 PropInfo::m_lodMax
IL_04E8: ldarg.1
IL_04E9: dup
IL_04EA: ldfld System.Int32 PropInfo::m_lodCount
IL_04EF: ldc.i4.1
IL_04F0: add
IL_04F1: dup
IL_04F2: stloc.s 19 (System.Int32)
IL_04F4: stfld System.Int32 PropInfo::m_lodCount
IL_04F9: ldloc.s 19 (System.Int32)
IL_04FB: ldarg.1
IL_04FC: ldfld UnityEngine.Vector4[] PropInfo::m_lodLocations
IL_0501: ldlen
IL_0502: conv.i4
IL_0503: bne.un => Label23
IL_0508: ldarg.0
IL_0509: ldarg.1
IL_050A: call static System.Void PropInstance::RenderLod(CameraInfo
cameraInfo, PropInfo info)
IL_050F: // end original
IL_050F: Label0
IL_050F: Label6
IL_050F: Label7
IL_050F: Label19
IL_050F: Label22
IL_050F: Label23
IL_050F: ret
DONE

### Patch: virtual System.Void LightEffect::PopulateGroupData(System.Int32 layer,


InstanceID id, UnityEngine.Vector3 pos, UnityEngine.Vector3 dir, 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
LightEffect::LightEffect.PopulateGroupData_Patch0(LightEffect this, System.Int32
layer, InstanceID id, UnityEngine.Vector3 pos, UnityEngine.Vector3 dir,
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.Boolean
IL_0000: Local var 1: UnityEngine.Vector3
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.Quaternion
IL_0000: Local var 7: UnityEngine.Vector4
IL_0000: Local var 8: UnityEngine.Vector2
IL_0000: Local var 9: ColossalFramework.Math.Randomizer
IL_0000: Local var 10: UnityEngine.Vector2
IL_0000: Local var 11: UnityEngine.Vector2
IL_0000: Local var 12: UnityEngine.Vector2
IL_0000: Local var 13: System.UInt16
IL_0000: Local var 14: UnityEngine.Vector3
IL_0000: Local var 15: UnityEngine.Color
IL_0000: Local var 16: UnityEngine.Color
IL_0000: Local var 17: System.Single
IL_0000: Local var 18: System.Single
IL_0000: Local var 19: System.Int32
IL_0000: // start original
IL_0000: ldarg.1
IL_0001: ldarg.0
IL_0002: ldfld System.Int32 LightEffect::m_groupLayer
IL_0007: beq => Label0
IL_000C: ldarg.1
IL_000D: ldarg.0
IL_000E: ldfld System.Int32 LightEffect::m_groupLayerFloating
IL_0013: bne.un => Label1
IL_0018: Label0
IL_0018: ldarg.1
IL_0019: ldarg.0
IL_001A: ldfld System.Int32 LightEffect::m_groupLayerFloating
IL_001F: ceq
IL_0021: stloc.0
IL_0022: ldloca.s 1 (UnityEngine.Vector3)
IL_0024: ldarg.0
IL_0025: ldfld System.Single LightEffect::m_lightRange
IL_002A: ldarg.0
IL_002B: ldfld System.Single LightEffect::m_lightRange
IL_0030: ldarg.0
IL_0031: ldfld System.Single LightEffect::m_lightRange
IL_0036: call System.Void UnityEngine.Vector3::.ctor(System.Single x,
System.Single y, System.Single z)
IL_003B: ldarg.3
IL_003C: ldloc.1
IL_003D: call static UnityEngine.Vector3
UnityEngine.Vector3::op_Subtraction(UnityEngine.Vector3 a, UnityEngine.Vector3 b)
IL_0042: stloc.2
IL_0043: ldarg.3
IL_0044: ldloc.1
IL_0045: call static UnityEngine.Vector3
UnityEngine.Vector3::op_Addition(UnityEngine.Vector3 a, UnityEngine.Vector3 b)
IL_004A: stloc.3
IL_004B: ldarg.s 9
IL_004D: ldarg.s 9
IL_004F: ldobj UnityEngine.Vector3
IL_0054: ldloc.2
IL_0055: call static UnityEngine.Vector3
UnityEngine.Vector3::Min(UnityEngine.Vector3 lhs, UnityEngine.Vector3 rhs)
IL_005A: stobj UnityEngine.Vector3
IL_005F: ldarg.s 10
IL_0061: ldarg.s 10
IL_0063: ldobj UnityEngine.Vector3
IL_0068: ldloc.3
IL_0069: call static UnityEngine.Vector3
UnityEngine.Vector3::Max(UnityEngine.Vector3 lhs, UnityEngine.Vector3 rhs)
IL_006E: stobj UnityEngine.Vector3
IL_0073: ldarg.3
IL_0074: ldarg.s 7
IL_0076: call static UnityEngine.Vector3
UnityEngine.Vector3::op_Subtraction(UnityEngine.Vector3 a, UnityEngine.Vector3 b)
IL_007B: stloc.s 4 (UnityEngine.Vector3)
IL_007D: ldarg.s 11
IL_007F: ldarg.s 11
IL_0081: ldind.r4
IL_0082: ldc.r4 30000
IL_0087: call static System.Single UnityEngine.Mathf::Max(System.Single a,
System.Single b)
IL_008C: stind.r4
IL_008D: ldarg.0
IL_008E: ldfld UnityEngine.LightType LightEffect::m_lightType
IL_0093: brtrue => Label2
IL_0098: ldarg.s 4
IL_009A: call static UnityEngine.Quaternion
UnityEngine.Quaternion::LookRotation(UnityEngine.Vector3 forward)
IL_009F: stloc.s 6 (UnityEngine.Quaternion)
IL_00A1: ldloc.s 6 (UnityEngine.Quaternion)
IL_00A3: ldarg.0
IL_00A4: ldfld UnityEngine.Quaternion LightEffect::m_lightRotation
IL_00A9: call static UnityEngine.Vector3 UnityEngine.Vector3::get_forward()
IL_00AE: call static UnityEngine.Vector3
UnityEngine.Quaternion::op_Multiply(UnityEngine.Quaternion rotation,
UnityEngine.Vector3 point)
IL_00B3: call static UnityEngine.Vector3
UnityEngine.Quaternion::op_Multiply(UnityEngine.Quaternion rotation,
UnityEngine.Vector3 point)
IL_00B8: stloc.s 5 (UnityEngine.Vector3)
IL_00BA: br => Label3
IL_00BF: Label2
IL_00BF: call static UnityEngine.Vector3 UnityEngine.Vector3::get_forward()
IL_00C4: stloc.s 5 (UnityEngine.Vector3)
IL_00C6: Label3
IL_00C6: ldloca.s 7 (UnityEngine.Vector4)
IL_00C8: ldloca.s 5 (UnityEngine.Vector3)
IL_00CA: ldfld System.Single UnityEngine.Vector3::x
IL_00CF: ldloca.s 5 (UnityEngine.Vector3)
IL_00D1: ldfld System.Single UnityEngine.Vector3::y
IL_00D6: ldloca.s 5 (UnityEngine.Vector3)
IL_00D8: ldfld System.Single UnityEngine.Vector3::z
IL_00DD: ldc.r4 100000
IL_00E2: call System.Void UnityEngine.Vector4::.ctor(System.Single x,
System.Single y, System.Single z, System.Single w)
IL_00E7: ldarg.0
IL_00E8: ldfld UnityEngine.LightType LightEffect::m_lightType
IL_00ED: brtrue => Label4
IL_00F2: ldloca.s 7 (UnityEngine.Vector4)
IL_00F4: ldc.r4 0.01745329
IL_00F9: ldarg.0
IL_00FA: ldfld System.Single LightEffect::m_lightSpotAngle
IL_00FF: mul
IL_0100: ldc.r4 0.5
IL_0105: mul
IL_0106: call static System.Single UnityEngine.Mathf::Cos(System.Single f)
IL_010B: neg
IL_010C: stfld System.Single UnityEngine.Vector4::w
IL_0111: Label4
IL_0111: ldloca.s 8 (UnityEngine.Vector2)
IL_0113: ldc.r4 1
IL_0118: ldarg.0
IL_0119: ldfld System.Single LightEffect::m_lightRange
IL_011E: ldarg.0
IL_011F: ldfld System.Single LightEffect::m_lightRange
IL_0124: mul
IL_0125: div
IL_0126: ldarg.0
IL_0127: ldfld System.Single LightEffect::m_lightIntensity
IL_012C: call System.Void UnityEngine.Vector2::.ctor(System.Single x,
System.Single y)
IL_0131: ldloca.s 9 (ColossalFramework.Math.Randomizer)
IL_0133: ldarga.s 2
IL_0135: call System.UInt32 InstanceID::get_Index()
IL_013A: call System.Void
ColossalFramework.Math.Randomizer::.ctor(System.UInt32 _seed)
IL_013F: ldloca.s 10 (UnityEngine.Vector2)
IL_0141: ldarg.0
IL_0142: ldflda UnityEngine.Vector2 LightEffect::m_offRange
IL_0147: ldfld System.Single UnityEngine.Vector2::x
IL_014C: ldloca.s 9 (ColossalFramework.Math.Randomizer)
IL_014E: ldc.i4 100000
IL_0153: call System.Int32
ColossalFramework.Math.Randomizer::Int32(System.UInt32 range)
IL_0158: conv.r4
IL_0159: ldc.r4 1E-05
IL_015E: mul
IL_015F: ldarg.0
IL_0160: ldflda UnityEngine.Vector2 LightEffect::m_offRange
IL_0165: ldfld System.Single UnityEngine.Vector2::y
IL_016A: ldarg.0
IL_016B: ldflda UnityEngine.Vector2 LightEffect::m_offRange
IL_0170: ldfld System.Single UnityEngine.Vector2::x
IL_0175: sub
IL_0176: mul
IL_0177: add
IL_0178: stfld System.Single UnityEngine.Vector2::x
IL_017D: ldloca.s 10 (UnityEngine.Vector2)
IL_017F: ldarg.0
IL_0180: ldfld BlinkType LightEffect::m_blinkType
IL_0185: conv.r4
IL_0186: stfld System.Single UnityEngine.Vector2::y
IL_018B: ldarg.2
IL_018C: call static System.UInt16 EffectInfo::GetBuilding(InstanceID id)
IL_0191: stloc.s 13 (System.UInt16)
IL_0193: ldloc.s 13 (System.UInt16)
IL_0195: brfalse => Label5
IL_019A: ldloc.s 13 (System.UInt16)
IL_019C: call static UnityEngine.Vector4
RenderManager::GetColorLocation(System.UInt32 instanceHolder)
IL_01A1: call static UnityEngine.Vector2
UnityEngine.Vector4::op_Implicit(UnityEngine.Vector4 v)
IL_01A6: stloc.s 11 (UnityEngine.Vector2)
IL_01A8: ldloc.0
IL_01A9: brfalse => Label6
IL_01AE: call static BuildingManager
ColossalFramework.Singleton`1<BuildingManager>::get_instance()
IL_01B3: ldfld Array16`1<Building> BuildingManager::m_buildings
IL_01B8: ldfld Building[] Array16`1<Building>::m_buffer
IL_01BD: ldloc.s 13 (System.UInt16)
IL_01BF: ldelema Building
IL_01C4: call UnityEngine.Vector3 Building::CalculateMeshPosition()
IL_01C9: stloc.s 14 (UnityEngine.Vector3)
IL_01CB: ldloc.s 14 (UnityEngine.Vector3)
IL_01CD: call static UnityEngine.Vector2
ColossalFramework.Math.VectorUtils::XZ(UnityEngine.Vector3 v)
IL_01D2: stloc.s 12 (UnityEngine.Vector2)
IL_01D4: ldarga.s 3
IL_01D6: dup
IL_01D7: ldfld System.Single UnityEngine.Vector3::y
IL_01DC: ldloca.s 14 (UnityEngine.Vector3)
IL_01DE: ldfld System.Single UnityEngine.Vector3::y
IL_01E3: sub
IL_01E4: stfld System.Single UnityEngine.Vector3::y
IL_01E9: ldloca.s 4 (UnityEngine.Vector3)
IL_01EB: dup
IL_01EC: ldfld System.Single UnityEngine.Vector3::y
IL_01F1: ldloca.s 14 (UnityEngine.Vector3)
IL_01F3: ldfld System.Single UnityEngine.Vector3::y
IL_01F8: sub
IL_01F9: stfld System.Single UnityEngine.Vector3::y
IL_01FE: br => Label7
IL_0203: Label6
IL_0203: call static UnityEngine.Vector2 UnityEngine.Vector2::get_zero()
IL_0208: stloc.s 12 (UnityEngine.Vector2)
IL_020A: Label7
IL_020A: br => Label8
IL_020F: Label5
IL_020F: ldsfld UnityEngine.Vector4 RenderManager::DefaultColorLocation
IL_0214: call static UnityEngine.Vector2
UnityEngine.Vector4::op_Implicit(UnityEngine.Vector4 v)
IL_0219: stloc.s 11 (UnityEngine.Vector2)
IL_021B: call static UnityEngine.Vector2 UnityEngine.Vector2::get_zero()
IL_0220: stloc.s 12 (UnityEngine.Vector2)
IL_0222: Label8
IL_0222: ldarg.0
IL_0223: ldfld UnityEngine.Color LightEffect::m_lightColor
IL_0228: stloc.s 15 (UnityEngine.Color)
IL_022A: ldarg.0
IL_022B: ldfld UnityEngine.Color[] LightEffect::m_variationColors
IL_0230: brfalse => Label9
IL_0235: ldarg.0
IL_0236: ldfld UnityEngine.Color[] LightEffect::m_variationColors
IL_023B: ldlen
IL_023C: conv.i4
IL_023D: brfalse => Label10
IL_0242: ldarg.0
IL_0243: ldfld UnityEngine.Color[] LightEffect::m_variationColors
IL_0248: ldloca.s 9 (ColossalFramework.Math.Randomizer)
IL_024A: ldarg.0
IL_024B: ldfld UnityEngine.Color[] LightEffect::m_variationColors
IL_0250: ldlen
IL_0251: conv.i4
IL_0252: call System.Int32
ColossalFramework.Math.Randomizer::Int32(System.UInt32 range)
IL_0257: ldelema UnityEngine.Color
IL_025C: ldobj UnityEngine.Color
IL_0261: stloc.s 16 (UnityEngine.Color)
IL_0263: ldloc.s 15 (UnityEngine.Color)
IL_0265: ldloc.s 16 (UnityEngine.Color)
IL_0267: ldloca.s 9 (ColossalFramework.Math.Randomizer)
IL_0269: ldc.i4 1000
IL_026E: call System.Int32
ColossalFramework.Math.Randomizer::Int32(System.UInt32 range)
IL_0273: conv.r4
IL_0274: ldc.r4 0.001
IL_0279: mul
IL_027A: call static UnityEngine.Color
UnityEngine.Color::Lerp(UnityEngine.Color a, UnityEngine.Color b, System.Single t)
IL_027F: stloc.s 15 (UnityEngine.Color)
IL_0281: Label9
IL_0281: Label10
IL_0281: ldloca.s 15 (UnityEngine.Color)
IL_0283: call UnityEngine.Color UnityEngine.Color::get_linear()
IL_0288: stloc.s 15 (UnityEngine.Color)
IL_028A: ldloca.s 15 (UnityEngine.Color)
IL_028C: ldarg.0
IL_028D: ldfld UnityEngine.LightType LightEffect::m_lightType
IL_0292: brtrue => Label11
IL_0297: ldarg.0
IL_0298: ldfld System.Single LightEffect::m_spotLeaking
IL_029D: br => Label12
IL_02A2: Label11
IL_02A2: ldc.r4 0
IL_02A7: Label12
IL_02A7: stfld System.Single UnityEngine.Color::a
IL_02AC: ldarg.0
IL_02AD: ldfld System.Single LightEffect::m_lightRange
IL_02B2: ldc.r4 0.5235988
IL_02B7: call static System.Single UnityEngine.Mathf::Cos(System.Single f)
IL_02BC: div
IL_02BD: stloc.s 17 (System.Single)
IL_02BF: ldloc.s 17 (System.Single)
IL_02C1: ldc.r4 0.5
IL_02C6: mul
IL_02C7: stloc.s 18 (System.Single)
IL_02C9: ldarg.s 8
IL_02CB: ldfld UnityEngine.Vector3[] MeshData::m_vertices
IL_02D0: ldarg.s 5
IL_02D2: ldind.i4
IL_02D3: ldelema UnityEngine.Vector3
IL_02D8: ldloca.s 4 (UnityEngine.Vector3)
IL_02DA: ldfld System.Single UnityEngine.Vector3::x
IL_02DF: ldloc.s 18 (System.Single)
IL_02E1: sub
IL_02E2: ldloca.s 4 (UnityEngine.Vector3)
IL_02E4: ldfld System.Single UnityEngine.Vector3::y
IL_02E9: ldarg.0
IL_02EA: ldfld System.Single LightEffect::m_lightRange
IL_02EF: add
IL_02F0: ldloca.s 4 (UnityEngine.Vector3)
IL_02F2: ldfld System.Single UnityEngine.Vector3::z
IL_02F7: ldarg.0
IL_02F8: ldfld System.Single LightEffect::m_lightRange
IL_02FD: add
IL_02FE: newobj System.Void UnityEngine.Vector3::.ctor(System.Single x,
System.Single y, System.Single z)
IL_0303: stobj UnityEngine.Vector3
IL_0308: ldarg.s 8
IL_030A: ldfld UnityEngine.Vector3[] MeshData::m_normals
IL_030F: ldarg.s 5
IL_0311: ldind.i4
IL_0312: ldelema UnityEngine.Vector3
IL_0317: ldarg.3
IL_0318: stobj UnityEngine.Vector3
IL_031D: ldarg.s 8
IL_031F: ldfld UnityEngine.Vector4[] MeshData::m_tangents
IL_0324: ldarg.s 5
IL_0326: ldind.i4
IL_0327: ldelema UnityEngine.Vector4
IL_032C: ldloc.s 7 (UnityEngine.Vector4)
IL_032E: stobj UnityEngine.Vector4
IL_0333: ldarg.s 8
IL_0335: ldfld UnityEngine.Vector2[] MeshData::m_uvs
IL_033A: ldarg.s 5
IL_033C: ldind.i4
IL_033D: ldelema UnityEngine.Vector2
IL_0342: ldloc.s 8 (UnityEngine.Vector2)
IL_0344: stobj UnityEngine.Vector2
IL_0349: ldarg.s 8
IL_034B: ldfld UnityEngine.Vector2[] MeshData::m_uvs2
IL_0350: ldarg.s 5
IL_0352: ldind.i4
IL_0353: ldelema UnityEngine.Vector2
IL_0358: ldloc.s 10 (UnityEngine.Vector2)
IL_035A: stobj UnityEngine.Vector2
IL_035F: ldarg.s 8
IL_0361: ldfld UnityEngine.Vector2[] MeshData::m_uvs3
IL_0366: ldarg.s 5
IL_0368: ldind.i4
IL_0369: ldelema UnityEngine.Vector2
IL_036E: ldloc.s 11 (UnityEngine.Vector2)
IL_0370: stobj UnityEngine.Vector2
IL_0375: ldloc.0
IL_0376: brfalse => Label13
IL_037B: ldarg.s 8
IL_037D: ldfld UnityEngine.Vector2[] MeshData::m_uvs4
IL_0382: ldarg.s 5
IL_0384: ldind.i4
IL_0385: ldelema UnityEngine.Vector2
IL_038A: ldloc.s 12 (UnityEngine.Vector2)
IL_038C: stobj UnityEngine.Vector2
IL_0391: Label13
IL_0391: ldarg.s 8
IL_0393: ldfld UnityEngine.Color32[] MeshData::m_colors
IL_0398: ldarg.s 5
IL_039A: ldind.i4
IL_039B: ldelema UnityEngine.Color32
IL_03A0: ldloc.s 15 (UnityEngine.Color)
IL_03A2: call static UnityEngine.Color32
UnityEngine.Color32::op_Implicit(UnityEngine.Color c)
IL_03A7: stobj UnityEngine.Color32
IL_03AC: ldarg.s 5
IL_03AE: ldarg.s 5
IL_03B0: ldind.i4
IL_03B1: ldc.i4.1
IL_03B2: add
IL_03B3: stind.i4
IL_03B4: ldarg.s 8
IL_03B6: ldfld UnityEngine.Vector3[] MeshData::m_vertices
IL_03BB: ldarg.s 5
IL_03BD: ldind.i4
IL_03BE: ldelema UnityEngine.Vector3
IL_03C3: ldloca.s 4 (UnityEngine.Vector3)
IL_03C5: ldfld System.Single UnityEngine.Vector3::x
IL_03CA: ldloc.s 18 (System.Single)
IL_03CC: add
IL_03CD: ldloca.s 4 (UnityEngine.Vector3)
IL_03CF: ldfld System.Single UnityEngine.Vector3::y
IL_03D4: ldarg.0
IL_03D5: ldfld System.Single LightEffect::m_lightRange
IL_03DA: add
IL_03DB: ldloca.s 4 (UnityEngine.Vector3)
IL_03DD: ldfld System.Single UnityEngine.Vector3::z
IL_03E2: ldarg.0
IL_03E3: ldfld System.Single LightEffect::m_lightRange
IL_03E8: add
IL_03E9: newobj System.Void UnityEngine.Vector3::.ctor(System.Single x,
System.Single y, System.Single z)
IL_03EE: stobj UnityEngine.Vector3
IL_03F3: ldarg.s 8
IL_03F5: ldfld UnityEngine.Vector3[] MeshData::m_normals
IL_03FA: ldarg.s 5
IL_03FC: ldind.i4
IL_03FD: ldelema UnityEngine.Vector3
IL_0402: ldarg.3
IL_0403: stobj UnityEngine.Vector3
IL_0408: ldarg.s 8
IL_040A: ldfld UnityEngine.Vector4[] MeshData::m_tangents
IL_040F: ldarg.s 5
IL_0411: ldind.i4
IL_0412: ldelema UnityEngine.Vector4
IL_0417: ldloc.s 7 (UnityEngine.Vector4)
IL_0419: stobj UnityEngine.Vector4
IL_041E: ldarg.s 8
IL_0420: ldfld UnityEngine.Vector2[] MeshData::m_uvs
IL_0425: ldarg.s 5
IL_0427: ldind.i4
IL_0428: ldelema UnityEngine.Vector2
IL_042D: ldloc.s 8 (UnityEngine.Vector2)
IL_042F: stobj UnityEngine.Vector2
IL_0434: ldarg.s 8
IL_0436: ldfld UnityEngine.Vector2[] MeshData::m_uvs2
IL_043B: ldarg.s 5
IL_043D: ldind.i4
IL_043E: ldelema UnityEngine.Vector2
IL_0443: ldloc.s 10 (UnityEngine.Vector2)
IL_0445: stobj UnityEngine.Vector2
IL_044A: ldarg.s 8
IL_044C: ldfld UnityEngine.Vector2[] MeshData::m_uvs3
IL_0451: ldarg.s 5
IL_0453: ldind.i4
IL_0454: ldelema UnityEngine.Vector2
IL_0459: ldloc.s 11 (UnityEngine.Vector2)
IL_045B: stobj UnityEngine.Vector2
IL_0460: ldloc.0
IL_0461: brfalse => Label14
IL_0466: ldarg.s 8
IL_0468: ldfld UnityEngine.Vector2[] MeshData::m_uvs4
IL_046D: ldarg.s 5
IL_046F: ldind.i4
IL_0470: ldelema UnityEngine.Vector2
IL_0475: ldloc.s 12 (UnityEngine.Vector2)
IL_0477: stobj UnityEngine.Vector2
IL_047C: Label14
IL_047C: ldarg.s 8
IL_047E: ldfld UnityEngine.Color32[] MeshData::m_colors
IL_0483: ldarg.s 5
IL_0485: ldind.i4
IL_0486: ldelema UnityEngine.Color32
IL_048B: ldloc.s 15 (UnityEngine.Color)
IL_048D: call static UnityEngine.Color32
UnityEngine.Color32::op_Implicit(UnityEngine.Color c)
IL_0492: stobj UnityEngine.Color32
IL_0497: ldarg.s 5
IL_0499: ldarg.s 5
IL_049B: ldind.i4
IL_049C: ldc.i4.1
IL_049D: add
IL_049E: stind.i4
IL_049F: ldarg.s 8
IL_04A1: ldfld UnityEngine.Vector3[] MeshData::m_vertices
IL_04A6: ldarg.s 5
IL_04A8: ldind.i4
IL_04A9: ldelema UnityEngine.Vector3
IL_04AE: ldloca.s 4 (UnityEngine.Vector3)
IL_04B0: ldfld System.Single UnityEngine.Vector3::x
IL_04B5: ldloc.s 17 (System.Single)
IL_04B7: add
IL_04B8: ldloca.s 4 (UnityEngine.Vector3)
IL_04BA: ldfld System.Single UnityEngine.Vector3::y
IL_04BF: ldloca.s 4 (UnityEngine.Vector3)
IL_04C1: ldfld System.Single UnityEngine.Vector3::z
IL_04C6: ldarg.0
IL_04C7: ldfld System.Single LightEffect::m_lightRange
IL_04CC: add
IL_04CD: newobj System.Void UnityEngine.Vector3::.ctor(System.Single x,
System.Single y, System.Single z)
IL_04D2: stobj UnityEngine.Vector3
IL_04D7: ldarg.s 8
IL_04D9: ldfld UnityEngine.Vector3[] MeshData::m_normals
IL_04DE: ldarg.s 5
IL_04E0: ldind.i4
IL_04E1: ldelema UnityEngine.Vector3
IL_04E6: ldarg.3
IL_04E7: stobj UnityEngine.Vector3
IL_04EC: ldarg.s 8
IL_04EE: ldfld UnityEngine.Vector4[] MeshData::m_tangents
IL_04F3: ldarg.s 5
IL_04F5: ldind.i4
IL_04F6: ldelema UnityEngine.Vector4
IL_04FB: ldloc.s 7 (UnityEngine.Vector4)
IL_04FD: stobj UnityEngine.Vector4
IL_0502: ldarg.s 8
IL_0504: ldfld UnityEngine.Vector2[] MeshData::m_uvs
IL_0509: ldarg.s 5
IL_050B: ldind.i4
IL_050C: ldelema UnityEngine.Vector2
IL_0511: ldloc.s 8 (UnityEngine.Vector2)
IL_0513: stobj UnityEngine.Vector2
IL_0518: ldarg.s 8
IL_051A: ldfld UnityEngine.Vector2[] MeshData::m_uvs2
IL_051F: ldarg.s 5
IL_0521: ldind.i4
IL_0522: ldelema UnityEngine.Vector2
IL_0527: ldloc.s 10 (UnityEngine.Vector2)
IL_0529: stobj UnityEngine.Vector2
IL_052E: ldarg.s 8
IL_0530: ldfld UnityEngine.Vector2[] MeshData::m_uvs3
IL_0535: ldarg.s 5
IL_0537: ldind.i4
IL_0538: ldelema UnityEngine.Vector2
IL_053D: ldloc.s 11 (UnityEngine.Vector2)
IL_053F: stobj UnityEngine.Vector2
IL_0544: ldloc.0
IL_0545: brfalse => Label15
IL_054A: ldarg.s 8
IL_054C: ldfld UnityEngine.Vector2[] MeshData::m_uvs4
IL_0551: ldarg.s 5
IL_0553: ldind.i4
IL_0554: ldelema UnityEngine.Vector2
IL_0559: ldloc.s 12 (UnityEngine.Vector2)
IL_055B: stobj UnityEngine.Vector2
IL_0560: Label15
IL_0560: ldarg.s 8
IL_0562: ldfld UnityEngine.Color32[] MeshData::m_colors
IL_0567: ldarg.s 5
IL_0569: ldind.i4
IL_056A: ldelema UnityEngine.Color32
IL_056F: ldloc.s 15 (UnityEngine.Color)
IL_0571: call static UnityEngine.Color32
UnityEngine.Color32::op_Implicit(UnityEngine.Color c)
IL_0576: stobj UnityEngine.Color32
IL_057B: ldarg.s 5
IL_057D: ldarg.s 5
IL_057F: ldind.i4
IL_0580: ldc.i4.1
IL_0581: add
IL_0582: stind.i4
IL_0583: ldarg.s 8
IL_0585: ldfld UnityEngine.Vector3[] MeshData::m_vertices
IL_058A: ldarg.s 5
IL_058C: ldind.i4
IL_058D: ldelema UnityEngine.Vector3
IL_0592: ldloca.s 4 (UnityEngine.Vector3)
IL_0594: ldfld System.Single UnityEngine.Vector3::x
IL_0599: ldloc.s 18 (System.Single)
IL_059B: add
IL_059C: ldloca.s 4 (UnityEngine.Vector3)
IL_059E: ldfld System.Single UnityEngine.Vector3::y
IL_05A3: ldarg.0
IL_05A4: ldfld System.Single LightEffect::m_lightRange
IL_05A9: sub
IL_05AA: ldloca.s 4 (UnityEngine.Vector3)
IL_05AC: ldfld System.Single UnityEngine.Vector3::z
IL_05B1: ldarg.0
IL_05B2: ldfld System.Single LightEffect::m_lightRange
IL_05B7: add
IL_05B8: newobj System.Void UnityEngine.Vector3::.ctor(System.Single x,
System.Single y, System.Single z)
IL_05BD: stobj UnityEngine.Vector3
IL_05C2: ldarg.s 8
IL_05C4: ldfld UnityEngine.Vector3[] MeshData::m_normals
IL_05C9: ldarg.s 5
IL_05CB: ldind.i4
IL_05CC: ldelema UnityEngine.Vector3
IL_05D1: ldarg.3
IL_05D2: stobj UnityEngine.Vector3
IL_05D7: ldarg.s 8
IL_05D9: ldfld UnityEngine.Vector4[] MeshData::m_tangents
IL_05DE: ldarg.s 5
IL_05E0: ldind.i4
IL_05E1: ldelema UnityEngine.Vector4
IL_05E6: ldloc.s 7 (UnityEngine.Vector4)
IL_05E8: stobj UnityEngine.Vector4
IL_05ED: ldarg.s 8
IL_05EF: ldfld UnityEngine.Vector2[] MeshData::m_uvs
IL_05F4: ldarg.s 5
IL_05F6: ldind.i4
IL_05F7: ldelema UnityEngine.Vector2
IL_05FC: ldloc.s 8 (UnityEngine.Vector2)
IL_05FE: stobj UnityEngine.Vector2
IL_0603: ldarg.s 8
IL_0605: ldfld UnityEngine.Vector2[] MeshData::m_uvs2
IL_060A: ldarg.s 5
IL_060C: ldind.i4
IL_060D: ldelema UnityEngine.Vector2
IL_0612: ldloc.s 10 (UnityEngine.Vector2)
IL_0614: stobj UnityEngine.Vector2
IL_0619: ldarg.s 8
IL_061B: ldfld UnityEngine.Vector2[] MeshData::m_uvs3
IL_0620: ldarg.s 5
IL_0622: ldind.i4
IL_0623: ldelema UnityEngine.Vector2
IL_0628: ldloc.s 11 (UnityEngine.Vector2)
IL_062A: stobj UnityEngine.Vector2
IL_062F: ldloc.0
IL_0630: brfalse => Label16
IL_0635: ldarg.s 8
IL_0637: ldfld UnityEngine.Vector2[] MeshData::m_uvs4
IL_063C: ldarg.s 5
IL_063E: ldind.i4
IL_063F: ldelema UnityEngine.Vector2
IL_0644: ldloc.s 12 (UnityEngine.Vector2)
IL_0646: stobj UnityEngine.Vector2
IL_064B: Label16
IL_064B: ldarg.s 8
IL_064D: ldfld UnityEngine.Color32[] MeshData::m_colors
IL_0652: ldarg.s 5
IL_0654: ldind.i4
IL_0655: ldelema UnityEngine.Color32
IL_065A: ldloc.s 15 (UnityEngine.Color)
IL_065C: call static UnityEngine.Color32
UnityEngine.Color32::op_Implicit(UnityEngine.Color c)
IL_0661: stobj UnityEngine.Color32
IL_0666: ldarg.s 5
IL_0668: ldarg.s 5
IL_066A: ldind.i4
IL_066B: ldc.i4.1
IL_066C: add
IL_066D: stind.i4
IL_066E: ldarg.s 8
IL_0670: ldfld UnityEngine.Vector3[] MeshData::m_vertices
IL_0675: ldarg.s 5
IL_0677: ldind.i4
IL_0678: ldelema UnityEngine.Vector3
IL_067D: ldloca.s 4 (UnityEngine.Vector3)
IL_067F: ldfld System.Single UnityEngine.Vector3::x
IL_0684: ldloc.s 18 (System.Single)
IL_0686: sub
IL_0687: ldloca.s 4 (UnityEngine.Vector3)
IL_0689: ldfld System.Single UnityEngine.Vector3::y
IL_068E: ldarg.0
IL_068F: ldfld System.Single LightEffect::m_lightRange
IL_0694: sub
IL_0695: ldloca.s 4 (UnityEngine.Vector3)
IL_0697: ldfld System.Single UnityEngine.Vector3::z
IL_069C: ldarg.0
IL_069D: ldfld System.Single LightEffect::m_lightRange
IL_06A2: add
IL_06A3: newobj System.Void UnityEngine.Vector3::.ctor(System.Single x,
System.Single y, System.Single z)
IL_06A8: stobj UnityEngine.Vector3
IL_06AD: ldarg.s 8
IL_06AF: ldfld UnityEngine.Vector3[] MeshData::m_normals
IL_06B4: ldarg.s 5
IL_06B6: ldind.i4
IL_06B7: ldelema UnityEngine.Vector3
IL_06BC: ldarg.3
IL_06BD: stobj UnityEngine.Vector3
IL_06C2: ldarg.s 8
IL_06C4: ldfld UnityEngine.Vector4[] MeshData::m_tangents
IL_06C9: ldarg.s 5
IL_06CB: ldind.i4
IL_06CC: ldelema UnityEngine.Vector4
IL_06D1: ldloc.s 7 (UnityEngine.Vector4)
IL_06D3: stobj UnityEngine.Vector4
IL_06D8: ldarg.s 8
IL_06DA: ldfld UnityEngine.Vector2[] MeshData::m_uvs
IL_06DF: ldarg.s 5
IL_06E1: ldind.i4
IL_06E2: ldelema UnityEngine.Vector2
IL_06E7: ldloc.s 8 (UnityEngine.Vector2)
IL_06E9: stobj UnityEngine.Vector2
IL_06EE: ldarg.s 8
IL_06F0: ldfld UnityEngine.Vector2[] MeshData::m_uvs2
IL_06F5: ldarg.s 5
IL_06F7: ldind.i4
IL_06F8: ldelema UnityEngine.Vector2
IL_06FD: ldloc.s 10 (UnityEngine.Vector2)
IL_06FF: stobj UnityEngine.Vector2
IL_0704: ldarg.s 8
IL_0706: ldfld UnityEngine.Vector2[] MeshData::m_uvs3
IL_070B: ldarg.s 5
IL_070D: ldind.i4
IL_070E: ldelema UnityEngine.Vector2
IL_0713: ldloc.s 11 (UnityEngine.Vector2)
IL_0715: stobj UnityEngine.Vector2
IL_071A: ldloc.0
IL_071B: brfalse => Label17
IL_0720: ldarg.s 8
IL_0722: ldfld UnityEngine.Vector2[] MeshData::m_uvs4
IL_0727: ldarg.s 5
IL_0729: ldind.i4
IL_072A: ldelema UnityEngine.Vector2
IL_072F: ldloc.s 12 (UnityEngine.Vector2)
IL_0731: stobj UnityEngine.Vector2
IL_0736: Label17
IL_0736: ldarg.s 8
IL_0738: ldfld UnityEngine.Color32[] MeshData::m_colors
IL_073D: ldarg.s 5
IL_073F: ldind.i4
IL_0740: ldelema UnityEngine.Color32
IL_0745: ldloc.s 15 (UnityEngine.Color)
IL_0747: call static UnityEngine.Color32
UnityEngine.Color32::op_Implicit(UnityEngine.Color c)
IL_074C: stobj UnityEngine.Color32
IL_0751: ldarg.s 5
IL_0753: ldarg.s 5
IL_0755: ldind.i4
IL_0756: ldc.i4.1
IL_0757: add
IL_0758: stind.i4
IL_0759: ldarg.s 8
IL_075B: ldfld UnityEngine.Vector3[] MeshData::m_vertices
IL_0760: ldarg.s 5
IL_0762: ldind.i4
IL_0763: ldelema UnityEngine.Vector3
IL_0768: ldloca.s 4 (UnityEngine.Vector3)
IL_076A: ldfld System.Single UnityEngine.Vector3::x
IL_076F: ldloc.s 17 (System.Single)
IL_0771: sub
IL_0772: ldloca.s 4 (UnityEngine.Vector3)
IL_0774: ldfld System.Single UnityEngine.Vector3::y
IL_0779: ldloca.s 4 (UnityEngine.Vector3)
IL_077B: ldfld System.Single UnityEngine.Vector3::z
IL_0780: ldarg.0
IL_0781: ldfld System.Single LightEffect::m_lightRange
IL_0786: add
IL_0787: newobj System.Void UnityEngine.Vector3::.ctor(System.Single x,
System.Single y, System.Single z)
IL_078C: stobj UnityEngine.Vector3
IL_0791: ldarg.s 8
IL_0793: ldfld UnityEngine.Vector3[] MeshData::m_normals
IL_0798: ldarg.s 5
IL_079A: ldind.i4
IL_079B: ldelema UnityEngine.Vector3
IL_07A0: ldarg.3
IL_07A1: stobj UnityEngine.Vector3
IL_07A6: ldarg.s 8
IL_07A8: ldfld UnityEngine.Vector4[] MeshData::m_tangents
IL_07AD: ldarg.s 5
IL_07AF: ldind.i4
IL_07B0: ldelema UnityEngine.Vector4
IL_07B5: ldloc.s 7 (UnityEngine.Vector4)
IL_07B7: stobj UnityEngine.Vector4
IL_07BC: ldarg.s 8
IL_07BE: ldfld UnityEngine.Vector2[] MeshData::m_uvs
IL_07C3: ldarg.s 5
IL_07C5: ldind.i4
IL_07C6: ldelema UnityEngine.Vector2
IL_07CB: ldloc.s 8 (UnityEngine.Vector2)
IL_07CD: stobj UnityEngine.Vector2
IL_07D2: ldarg.s 8
IL_07D4: ldfld UnityEngine.Vector2[] MeshData::m_uvs2
IL_07D9: ldarg.s 5
IL_07DB: ldind.i4
IL_07DC: ldelema UnityEngine.Vector2
IL_07E1: ldloc.s 10 (UnityEngine.Vector2)
IL_07E3: stobj UnityEngine.Vector2
IL_07E8: ldarg.s 8
IL_07EA: ldfld UnityEngine.Vector2[] MeshData::m_uvs3
IL_07EF: ldarg.s 5
IL_07F1: ldind.i4
IL_07F2: ldelema UnityEngine.Vector2
IL_07F7: ldloc.s 11 (UnityEngine.Vector2)
IL_07F9: stobj UnityEngine.Vector2
IL_07FE: ldloc.0
IL_07FF: brfalse => Label18
IL_0804: ldarg.s 8
IL_0806: ldfld UnityEngine.Vector2[] MeshData::m_uvs4
IL_080B: ldarg.s 5
IL_080D: ldind.i4
IL_080E: ldelema UnityEngine.Vector2
IL_0813: ldloc.s 12 (UnityEngine.Vector2)
IL_0815: stobj UnityEngine.Vector2
IL_081A: Label18
IL_081A: ldarg.s 8
IL_081C: ldfld UnityEngine.Color32[] MeshData::m_colors
IL_0821: ldarg.s 5
IL_0823: ldind.i4
IL_0824: ldelema UnityEngine.Color32
IL_0829: ldloc.s 15 (UnityEngine.Color)
IL_082B: call static UnityEngine.Color32
UnityEngine.Color32::op_Implicit(UnityEngine.Color c)
IL_0830: stobj UnityEngine.Color32
IL_0835: ldarg.s 5
IL_0837: ldarg.s 5
IL_0839: ldind.i4
IL_083A: ldc.i4.1
IL_083B: add
IL_083C: stind.i4
IL_083D: ldarg.s 8
IL_083F: ldfld System.Int32[] MeshData::m_triangles
IL_0844: ldarg.s 6
IL_0846: ldarg.s 6
IL_0848: ldind.i4
IL_0849: dup
IL_084A: stloc.s 19 (System.Int32)
IL_084C: ldc.i4.1
IL_084D: add
IL_084E: stind.i4
IL_084F: ldloc.s 19 (System.Int32)
IL_0851: ldarg.s 5
IL_0853: ldind.i4
IL_0854: ldc.i4.6
IL_0855: sub
IL_0856: stelem.i4
IL_0857: ldarg.s 8
IL_0859: ldfld System.Int32[] MeshData::m_triangles
IL_085E: ldarg.s 6
IL_0860: ldarg.s 6
IL_0862: ldind.i4
IL_0863: dup
IL_0864: stloc.s 19 (System.Int32)
IL_0866: ldc.i4.1
IL_0867: add
IL_0868: stind.i4
IL_0869: ldloc.s 19 (System.Int32)
IL_086B: ldarg.s 5
IL_086D: ldind.i4
IL_086E: ldc.i4.5
IL_086F: sub
IL_0870: stelem.i4
IL_0871: ldarg.s 8
IL_0873: ldfld System.Int32[] MeshData::m_triangles
IL_0878: ldarg.s 6
IL_087A: ldarg.s 6
IL_087C: ldind.i4
IL_087D: dup
IL_087E: stloc.s 19 (System.Int32)
IL_0880: ldc.i4.1
IL_0881: add
IL_0882: stind.i4
IL_0883: ldloc.s 19 (System.Int32)
IL_0885: ldarg.s 5
IL_0887: ldind.i4
IL_0888: ldc.i4.1
IL_0889: sub
IL_088A: stelem.i4
IL_088B: ldarg.s 8
IL_088D: ldfld System.Int32[] MeshData::m_triangles
IL_0892: ldarg.s 6
IL_0894: ldarg.s 6
IL_0896: ldind.i4
IL_0897: dup
IL_0898: stloc.s 19 (System.Int32)
IL_089A: ldc.i4.1
IL_089B: add
IL_089C: stind.i4
IL_089D: ldloc.s 19 (System.Int32)
IL_089F: ldarg.s 5
IL_08A1: ldind.i4
IL_08A2: ldc.i4.1
IL_08A3: sub
IL_08A4: stelem.i4
IL_08A5: ldarg.s 8
IL_08A7: ldfld System.Int32[] MeshData::m_triangles
IL_08AC: ldarg.s 6
IL_08AE: ldarg.s 6
IL_08B0: ldind.i4
IL_08B1: dup
IL_08B2: stloc.s 19 (System.Int32)
IL_08B4: ldc.i4.1
IL_08B5: add
IL_08B6: stind.i4
IL_08B7: ldloc.s 19 (System.Int32)
IL_08B9: ldarg.s 5
IL_08BB: ldind.i4
IL_08BC: ldc.i4.5
IL_08BD: sub
IL_08BE: stelem.i4
IL_08BF: ldarg.s 8
IL_08C1: ldfld System.Int32[] MeshData::m_triangles
IL_08C6: ldarg.s 6
IL_08C8: ldarg.s 6
IL_08CA: ldind.i4
IL_08CB: dup
IL_08CC: stloc.s 19 (System.Int32)
IL_08CE: ldc.i4.1
IL_08CF: add
IL_08D0: stind.i4
IL_08D1: ldloc.s 19 (System.Int32)
IL_08D3: ldarg.s 5
IL_08D5: ldind.i4
IL_08D6: ldc.i4.4
IL_08D7: sub
IL_08D8: stelem.i4
IL_08D9: ldarg.s 8
IL_08DB: ldfld System.Int32[] MeshData::m_triangles
IL_08E0: ldarg.s 6
IL_08E2: ldarg.s 6
IL_08E4: ldind.i4
IL_08E5: dup
IL_08E6: stloc.s 19 (System.Int32)
IL_08E8: ldc.i4.1
IL_08E9: add
IL_08EA: stind.i4
IL_08EB: ldloc.s 19 (System.Int32)
IL_08ED: ldarg.s 5
IL_08EF: ldind.i4
IL_08F0: ldc.i4.1
IL_08F1: sub
IL_08F2: stelem.i4
IL_08F3: ldarg.s 8
IL_08F5: ldfld System.Int32[] MeshData::m_triangles
IL_08FA: ldarg.s 6
IL_08FC: ldarg.s 6
IL_08FE: ldind.i4
IL_08FF: dup
IL_0900: stloc.s 19 (System.Int32)
IL_0902: ldc.i4.1
IL_0903: add
IL_0904: stind.i4
IL_0905: ldloc.s 19 (System.Int32)
IL_0907: ldarg.s 5
IL_0909: ldind.i4
IL_090A: ldc.i4.4
IL_090B: sub
IL_090C: stelem.i4
IL_090D: ldarg.s 8
IL_090F: ldfld System.Int32[] MeshData::m_triangles
IL_0914: ldarg.s 6
IL_0916: ldarg.s 6
IL_0918: ldind.i4
IL_0919: dup
IL_091A: stloc.s 19 (System.Int32)
IL_091C: ldc.i4.1
IL_091D: add
IL_091E: stind.i4
IL_091F: ldloc.s 19 (System.Int32)
IL_0921: ldarg.s 5
IL_0923: ldind.i4
IL_0924: ldc.i4.2
IL_0925: sub
IL_0926: stelem.i4
IL_0927: ldarg.s 8
IL_0929: ldfld System.Int32[] MeshData::m_triangles
IL_092E: ldarg.s 6
IL_0930: ldarg.s 6
IL_0932: ldind.i4
IL_0933: dup
IL_0934: stloc.s 19 (System.Int32)
IL_0936: ldc.i4.1
IL_0937: add
IL_0938: stind.i4
IL_0939: ldloc.s 19 (System.Int32)
IL_093B: ldarg.s 5
IL_093D: ldind.i4
IL_093E: ldc.i4.2
IL_093F: sub
IL_0940: stelem.i4
IL_0941: ldarg.s 8
IL_0943: ldfld System.Int32[] MeshData::m_triangles
IL_0948: ldarg.s 6
IL_094A: ldarg.s 6
IL_094C: ldind.i4
IL_094D: dup
IL_094E: stloc.s 19 (System.Int32)
IL_0950: ldc.i4.1
IL_0951: add
IL_0952: stind.i4
IL_0953: ldloc.s 19 (System.Int32)
IL_0955: ldarg.s 5
IL_0957: ldind.i4
IL_0958: ldc.i4.4
IL_0959: sub
IL_095A: stelem.i4
IL_095B: ldarg.s 8
IL_095D: ldfld System.Int32[] MeshData::m_triangles
IL_0962: ldarg.s 6
IL_0964: ldarg.s 6
IL_0966: ldind.i4
IL_0967: dup
IL_0968: stloc.s 19 (System.Int32)
IL_096A: ldc.i4.1
IL_096B: add
IL_096C: stind.i4
IL_096D: ldloc.s 19 (System.Int32)
IL_096F: ldarg.s 5
IL_0971: ldind.i4
IL_0972: ldc.i4.3
IL_0973: sub
IL_0974: stelem.i4
IL_0975: // end original
IL_0975: Label1
IL_0975: ret
DONE

### Patch: virtual System.Void ElectricityManager::SimulationStepImpl(System.Int32


subStep)
### Replacement: static System.Void
ElectricityManager::ElectricityManager.SimulationStepImpl_Patch0(ElectricityManager
this, System.Int32 subStep)
IL_0000: Local var 0: System.UInt32
IL_0000: Local var 1: System.Int32
IL_0000: Local var 2: NetManager
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: NetInfo
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: ElectricityManager/Cell
IL_0000: Local var 13: ElectricityManager/PulseGroup
IL_0000: Local var 14: ElectricityManager/PulseUnit
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: ElectricityManager/PulseUnit
IL_0000: Local var 19: System.UInt32
IL_0000: Local var 20: System.Int32
IL_0000: Local var 21: ElectricityManager/Cell
IL_0000: Local var 22: System.Int32
IL_0000: Local var 23: System.Int32
IL_0000: Local var 24: NetNode
IL_0000: Local var 25: System.Int32
IL_0000: Local var 26: System.UInt16
IL_0000: Local var 27: System.UInt16
IL_0000: Local var 28: System.UInt16
IL_0000: Local var 29: System.UInt16
IL_0000: Local var 30: System.Int32
IL_0000: Local var 31: ElectricityManager/PulseGroup
IL_0000: Local var 32: ElectricityManager/PulseGroup
IL_0000: Local var 33: System.Int32
IL_0000: Local var 34: ElectricityManager/PulseGroup
IL_0000: Local var 35: System.Int32
IL_0000: Local var 36: ElectricityManager/Cell
IL_0000: // start original
IL_0000: ldarg.1
IL_0001: brfalse => Label0
IL_0006: ldarg.1
IL_0007: ldc.i4 1000
IL_000C: beq => Label1
IL_0011: call static SimulationManager
ColossalFramework.Singleton`1<SimulationManager>::get_instance()
IL_0016: ldfld System.UInt32 SimulationManager::m_currentFrameIndex
IL_001B: stloc.0
IL_001C: ldloc.0
IL_001D: ldc.i4 255
IL_0022: and
IL_0023: stloc.1
IL_0024: ldloc.1
IL_0025: ldc.i4 128
IL_002A: bge => Label2
IL_002F: ldloc.1
IL_0030: brtrue => Label3
IL_0035: ldarg.0
IL_0036: ldc.i4.0
IL_0037: stfld System.Int32 ElectricityManager::m_pulseGroupCount
IL_003C: ldarg.0
IL_003D: ldc.i4.0
IL_003E: stfld System.Int32 ElectricityManager::m_pulseUnitStart
IL_0043: ldarg.0
IL_0044: ldc.i4.0
IL_0045: stfld System.Int32 ElectricityManager::m_pulseUnitEnd
IL_004A: ldarg.0
IL_004B: ldc.i4.0
IL_004C: stfld System.Int32 ElectricityManager::m_processedCells
IL_0051: ldarg.0
IL_0052: ldc.i4.0
IL_0053: stfld System.Int32 ElectricityManager::m_conductiveCells
IL_0058: ldarg.0
IL_0059: ldc.i4.1
IL_005A: stfld System.Boolean ElectricityManager::m_canContinue
IL_005F: Label3
IL_005F: call static NetManager
ColossalFramework.Singleton`1<NetManager>::get_instance()
IL_0064: stloc.2
IL_0065: ldloc.1
IL_0066: ldc.i4 32768
IL_006B: mul
IL_006C: ldc.i4.7
IL_006D: shr
IL_006E: stloc.3
IL_006F: ldloc.1
IL_0070: ldc.i4.1
IL_0071: add
IL_0072: ldc.i4 32768
IL_0077: mul
IL_0078: ldc.i4.7
IL_0079: shr
IL_007A: ldc.i4.1
IL_007B: sub
IL_007C: stloc.s 4 (System.Int32)
IL_007E: ldloc.3
IL_007F: stloc.s 5 (System.Int32)
IL_0081: br => Label4
IL_0086: Label10
IL_0086: ldloc.2
IL_0087: ldfld Array16`1<NetNode> NetManager::m_nodes
IL_008C: ldfld NetNode[] Array16`1<NetNode>::m_buffer
IL_0091: ldloc.s 5 (System.Int32)
IL_0093: ldelema NetNode
IL_0098: ldfld Flags NetNode::m_flags
IL_009D: brfalse => Label5
IL_00A2: ldloc.2
IL_00A3: ldfld Array16`1<NetNode> NetManager::m_nodes
IL_00A8: ldfld NetNode[] Array16`1<NetNode>::m_buffer
IL_00AD: ldloc.s 5 (System.Int32)
IL_00AF: ldelema NetNode
IL_00B4: call NetInfo NetNode::get_Info()
IL_00B9: stloc.s 6 (NetInfo)
IL_00BB: ldloc.s 6 (NetInfo)
IL_00BD: ldfld ItemClass NetInfo::m_class
IL_00C2: ldfld Service ItemClass::m_service
IL_00C7: ldc.i4.s 10
IL_00C9: beq => Label6
IL_00CE: ldloc.s 6 (NetInfo)
IL_00D0: ldfld NetAI NetInfo::m_netAI
IL_00D5: isinst ConcourseAI
IL_00DA: brfalse => Label7
IL_00DF: Label6
IL_00DF: ldarg.0
IL_00E0: ldloc.s 5 (System.Int32)
IL_00E2: ldarg.0
IL_00E3: ldfld System.UInt16[] ElectricityManager::m_nodeGroups
IL_00E8: ldloc.s 5 (System.Int32)
IL_00EA: ldelem.u2
IL_00EB: ldc.i4 65535
IL_00F0: beq => Label8
IL_00F5: ldc.i4.1
IL_00F6: br => Label9
IL_00FB: Label8
IL_00FB: ldc.i4.0
IL_00FC: Label9
IL_00FC: call System.Void
ElectricityManager::UpdateNodeElectricity(System.Int32 nodeID, System.Int32 value)
IL_0101: ldarg.0
IL_0102: dup
IL_0103: ldfld System.Int32 ElectricityManager::m_conductiveCells
IL_0108: ldc.i4.1
IL_0109: add
IL_010A: stfld System.Int32 ElectricityManager::m_conductiveCells
IL_010F: Label5
IL_010F: Label7
IL_010F: ldarg.0
IL_0110: ldfld System.UInt16[] ElectricityManager::m_nodeGroups
IL_0115: ldloc.s 5 (System.Int32)
IL_0117: ldc.i4 65535
IL_011C: stelem.i2
IL_011D: ldloc.s 5 (System.Int32)
IL_011F: ldc.i4.1
IL_0120: add
IL_0121: stloc.s 5 (System.Int32)
IL_0123: Label4
IL_0123: ldloc.s 5 (System.Int32)
IL_0125: ldloc.s 4 (System.Int32)
IL_0127: ble => Label10
IL_012C: ldloc.1
IL_012D: ldc.i4 256
IL_0132: mul
IL_0133: ldc.i4.7
IL_0134: shr
IL_0135: stloc.s 7 (System.Int32)
IL_0137: ldloc.1
IL_0138: ldc.i4.1
IL_0139: add
IL_013A: ldc.i4 256
IL_013F: mul
IL_0140: ldc.i4.7
IL_0141: shr
IL_0142: ldc.i4.1
IL_0143: sub
IL_0144: stloc.s 8 (System.Int32)
IL_0146: ldloc.s 7 (System.Int32)
IL_0148: stloc.s 9 (System.Int32)
IL_014A: br => Label11
IL_014F: Label21
IL_014F: ldloc.s 9 (System.Int32)
IL_0151: ldc.i4 256
IL_0156: mul
IL_0157: stloc.s 10 (System.Int32)
IL_0159: ldc.i4.0
IL_015A: stloc.s 11 (System.Int32)
IL_015C: br => Label12
IL_0161: Label20
IL_0161: ldarg.0
IL_0162: ldfld Cell[] ElectricityManager::m_electricityGrid
IL_0167: ldloc.s 10 (System.Int32)
IL_0169: ldelema ElectricityManager+Cell
IL_016E: ldobj ElectricityManager+Cell
IL_0173: stloc.s 12 (ElectricityManager+Cell)
IL_0175: ldloca.s 12 (ElectricityManager+Cell)
IL_0177: ldfld System.Int16 Cell::m_currentCharge
IL_017C: ldc.i4.0
IL_017D: ble => Label13
IL_0182: ldarg.0
IL_0183: ldfld System.Int32 ElectricityManager::m_pulseGroupCount
IL_0188: ldc.i4 1024
IL_018D: bge => Label14
IL_0192: ldloca.s 13 (ElectricityManager+PulseGroup)
IL_0194: ldloca.s 12 (ElectricityManager+Cell)
IL_0196: ldfld System.Int16 Cell::m_currentCharge
IL_019B: conv.u4
IL_019C: stfld System.UInt32 PulseGroup::m_origCharge
IL_01A1: ldloca.s 13 (ElectricityManager+PulseGroup)
IL_01A3: ldloca.s 12 (ElectricityManager+Cell)
IL_01A5: ldfld System.Int16 Cell::m_currentCharge
IL_01AA: conv.u4
IL_01AB: stfld System.UInt32 PulseGroup::m_curCharge
IL_01B0: ldloca.s 13 (ElectricityManager+PulseGroup)
IL_01B2: ldc.i4.0
IL_01B3: stfld System.UInt16 PulseGroup::m_mergeCount
IL_01B8: ldloca.s 13 (ElectricityManager+PulseGroup)
IL_01BA: ldc.i4 65535
IL_01BF: stfld System.UInt16 PulseGroup::m_mergeIndex
IL_01C4: ldloca.s 13 (ElectricityManager+PulseGroup)
IL_01C6: ldloc.s 11 (System.Int32)
IL_01C8: conv.u1
IL_01C9: stfld System.Byte PulseGroup::m_x
IL_01CE: ldloca.s 13 (ElectricityManager+PulseGroup)
IL_01D0: ldloc.s 9 (System.Int32)
IL_01D2: conv.u1
IL_01D3: stfld System.Byte PulseGroup::m_z
IL_01D8: ldloca.s 14 (ElectricityManager+PulseUnit)
IL_01DA: ldarg.0
IL_01DB: ldfld System.Int32 ElectricityManager::m_pulseGroupCount
IL_01E0: conv.u2
IL_01E1: stfld System.UInt16 PulseUnit::m_group
IL_01E6: ldloca.s 14 (ElectricityManager+PulseUnit)
IL_01E8: ldc.i4.0
IL_01E9: stfld System.UInt16 PulseUnit::m_node
IL_01EE: ldloca.s 14 (ElectricityManager+PulseUnit)
IL_01F0: ldloc.s 11 (System.Int32)
IL_01F2: conv.u1
IL_01F3: stfld System.Byte PulseUnit::m_x
IL_01F8: ldloca.s 14 (ElectricityManager+PulseUnit)
IL_01FA: ldloc.s 9 (System.Int32)
IL_01FC: conv.u1
IL_01FD: stfld System.Byte PulseUnit::m_z
IL_0202: ldloca.s 12 (ElectricityManager+Cell)
IL_0204: ldarg.0
IL_0205: ldfld System.Int32 ElectricityManager::m_pulseGroupCount
IL_020A: conv.u2
IL_020B: stfld System.UInt16 Cell::m_pulseGroup
IL_0210: ldarg.0
IL_0211: ldfld PulseGroup[] ElectricityManager::m_pulseGroups
IL_0216: ldarg.0
IL_0217: dup
IL_0218: ldfld System.Int32 ElectricityManager::m_pulseGroupCount
IL_021D: dup
IL_021E: stloc.s 15 (System.Int32)
IL_0220: ldc.i4.1
IL_0221: add
IL_0222: stfld System.Int32 ElectricityManager::m_pulseGroupCount
IL_0227: ldloc.s 15 (System.Int32)
IL_0229: ldelema ElectricityManager+PulseGroup
IL_022E: ldloc.s 13 (ElectricityManager+PulseGroup)
IL_0230: stobj ElectricityManager+PulseGroup
IL_0235: ldarg.0
IL_0236: ldfld PulseUnit[] ElectricityManager::m_pulseUnits
IL_023B: ldarg.0
IL_023C: ldfld System.Int32 ElectricityManager::m_pulseUnitEnd
IL_0241: ldelema ElectricityManager+PulseUnit
IL_0246: ldloc.s 14 (ElectricityManager+PulseUnit)
IL_0248: stobj ElectricityManager+PulseUnit
IL_024D: ldarg.0
IL_024E: dup
IL_024F: ldfld System.Int32 ElectricityManager::m_pulseUnitEnd
IL_0254: ldc.i4.1
IL_0255: add
IL_0256: dup
IL_0257: stloc.s 15 (System.Int32)
IL_0259: stfld System.Int32 ElectricityManager::m_pulseUnitEnd
IL_025E: ldloc.s 15 (System.Int32)
IL_0260: ldarg.0
IL_0261: ldfld PulseUnit[] ElectricityManager::m_pulseUnits
IL_0266: ldlen
IL_0267: conv.i4
IL_0268: bne.un => Label15
IL_026D: ldarg.0
IL_026E: ldc.i4.0
IL_026F: stfld System.Int32 ElectricityManager::m_pulseUnitEnd
IL_0274: Label15
IL_0274: br => Label16
IL_0279: Label14
IL_0279: ldloca.s 12 (ElectricityManager+Cell)
IL_027B: ldc.i4 65535
IL_0280: stfld System.UInt16 Cell::m_pulseGroup
IL_0285: Label16
IL_0285: ldloca.s 12 (ElectricityManager+Cell)
IL_0287: ldc.i4.0
IL_0288: stfld System.Int16 Cell::m_currentCharge
IL_028D: ldarg.0
IL_028E: dup
IL_028F: ldfld System.Int32 ElectricityManager::m_conductiveCells
IL_0294: ldc.i4.1
IL_0295: add
IL_0296: stfld System.Int32 ElectricityManager::m_conductiveCells
IL_029B: br => Label17
IL_02A0: Label13
IL_02A0: ldloca.s 12 (ElectricityManager+Cell)
IL_02A2: ldc.i4 65535
IL_02A7: stfld System.UInt16 Cell::m_pulseGroup
IL_02AC: ldloca.s 12 (ElectricityManager+Cell)
IL_02AE: ldfld System.Byte Cell::m_conductivity
IL_02B3: ldc.i4.s 64
IL_02B5: blt => Label18
IL_02BA: ldarg.0
IL_02BB: dup
IL_02BC: ldfld System.Int32 ElectricityManager::m_conductiveCells
IL_02C1: ldc.i4.1
IL_02C2: add
IL_02C3: stfld System.Int32 ElectricityManager::m_conductiveCells
IL_02C8: Label17
IL_02C8: Label18
IL_02C8: ldloca.s 12 (ElectricityManager+Cell)
IL_02CA: ldfld System.Boolean Cell::m_tmpElectrified
IL_02CF: ldloca.s 12 (ElectricityManager+Cell)
IL_02D1: ldfld System.Boolean Cell::m_electrified
IL_02D6: beq => Label19
IL_02DB: ldloca.s 12 (ElectricityManager+Cell)
IL_02DD: ldloca.s 12 (ElectricityManager+Cell)
IL_02DF: ldfld System.Boolean Cell::m_tmpElectrified
IL_02E4: stfld System.Boolean Cell::m_electrified
IL_02E9: Label19
IL_02E9: ldloca.s 12 (ElectricityManager+Cell)
IL_02EB: ldloca.s 12 (ElectricityManager+Cell)
IL_02ED: ldfld System.UInt16 Cell::m_pulseGroup
IL_02F2: ldc.i4 65535
IL_02F7: ceq
IL_02F9: ldc.i4.0
IL_02FA: ceq
IL_02FC: stfld System.Boolean Cell::m_tmpElectrified
IL_0301: ldarg.0
IL_0302: ldfld Cell[] ElectricityManager::m_electricityGrid
IL_0307: ldloc.s 10 (System.Int32)
IL_0309: ldelema ElectricityManager+Cell
IL_030E: ldloc.s 12 (ElectricityManager+Cell)
IL_0310: stobj ElectricityManager+Cell
IL_0315: ldloc.s 10 (System.Int32)
IL_0317: ldc.i4.1
IL_0318: add
IL_0319: stloc.s 10 (System.Int32)
IL_031B: ldloc.s 11 (System.Int32)
IL_031D: ldc.i4.1
IL_031E: add
IL_031F: stloc.s 11 (System.Int32)
IL_0321: Label12
IL_0321: ldloc.s 11 (System.Int32)
IL_0323: ldc.i4 256
IL_0328: blt => Label20
IL_032D: ldloc.s 9 (System.Int32)
IL_032F: ldc.i4.1
IL_0330: add
IL_0331: stloc.s 9 (System.Int32)
IL_0333: Label11
IL_0333: ldloc.s 9 (System.Int32)
IL_0335: ldloc.s 8 (System.Int32)
IL_0337: ble => Label21
IL_033C: br => Label22
IL_0341: Label2
IL_0341: ldloc.1
IL_0342: ldc.i4.s 127
IL_0344: sub
IL_0345: ldarg.0
IL_0346: ldfld System.Int32 ElectricityManager::m_conductiveCells
IL_034B: mul
IL_034C: ldc.i4.7
IL_034D: shr
IL_034E: stloc.s 16 (System.Int32)
IL_0350: ldloc.1
IL_0351: ldc.i4 255
IL_0356: bne.un => Label23
IL_035B: ldc.i4 1000000000
IL_0360: stloc.s 16 (System.Int32)
IL_0362: Label23
IL_0362: br => Label24
IL_0367: Label54
IL_0367: ldarg.0
IL_0368: ldc.i4.0
IL_0369: stfld System.Boolean ElectricityManager::m_canContinue
IL_036E: ldarg.0
IL_036F: ldfld System.Int32 ElectricityManager::m_pulseUnitEnd
IL_0374: stloc.s 17 (System.Int32)
IL_0376: br => Label25
IL_037B: Label52
IL_037B: ldarg.0
IL_037C: ldfld PulseUnit[] ElectricityManager::m_pulseUnits
IL_0381: ldarg.0
IL_0382: ldfld System.Int32 ElectricityManager::m_pulseUnitStart
IL_0387: ldelema ElectricityManager+PulseUnit
IL_038C: ldobj ElectricityManager+PulseUnit
IL_0391: stloc.s 18 (ElectricityManager+PulseUnit)
IL_0393: ldarg.0
IL_0394: dup
IL_0395: ldfld System.Int32 ElectricityManager::m_pulseUnitStart
IL_039A: ldc.i4.1
IL_039B: add
IL_039C: dup
IL_039D: stloc.s 15 (System.Int32)
IL_039F: stfld System.Int32 ElectricityManager::m_pulseUnitStart
IL_03A4: ldloc.s 15 (System.Int32)
IL_03A6: ldarg.0
IL_03A7: ldfld PulseUnit[] ElectricityManager::m_pulseUnits
IL_03AC: ldlen
IL_03AD: conv.i4
IL_03AE: bne.un => Label26
IL_03B3: ldarg.0
IL_03B4: ldc.i4.0
IL_03B5: stfld System.Int32 ElectricityManager::m_pulseUnitStart
IL_03BA: Label26
IL_03BA: ldloca.s 18 (ElectricityManager+PulseUnit)
IL_03BC: ldarg.0
IL_03BD: ldloca.s 18 (ElectricityManager+PulseUnit)
IL_03BF: ldfld System.UInt16 PulseUnit::m_group
IL_03C4: call System.UInt16 ElectricityManager::GetRootGroup(System.UInt16
group)
IL_03C9: stfld System.UInt16 PulseUnit::m_group
IL_03CE: ldarg.0
IL_03CF: ldfld PulseGroup[] ElectricityManager::m_pulseGroups
IL_03D4: ldloca.s 18 (ElectricityManager+PulseUnit)
IL_03D6: ldfld System.UInt16 PulseUnit::m_group
IL_03DB: ldelema ElectricityManager+PulseGroup
IL_03E0: ldfld System.UInt32 PulseGroup::m_curCharge
IL_03E5: stloc.s 19 (System.UInt32)
IL_03E7: ldloca.s 18 (ElectricityManager+PulseUnit)
IL_03E9: ldfld System.UInt16 PulseUnit::m_node
IL_03EE: brtrue => Label27
IL_03F3: ldloca.s 18 (ElectricityManager+PulseUnit)
IL_03F5: ldfld System.Byte PulseUnit::m_z
IL_03FA: ldc.i4 256
IL_03FF: mul
IL_0400: ldloca.s 18 (ElectricityManager+PulseUnit)
IL_0402: ldfld System.Byte PulseUnit::m_x
IL_0407: add
IL_0408: stloc.s 20 (System.Int32)
IL_040A: ldarg.0
IL_040B: ldfld Cell[] ElectricityManager::m_electricityGrid
IL_0410: ldloc.s 20 (System.Int32)
IL_0412: ldelema ElectricityManager+Cell
IL_0417: ldobj ElectricityManager+Cell
IL_041C: stloc.s 21 (ElectricityManager+Cell)
IL_041E: ldloca.s 21 (ElectricityManager+Cell)
IL_0420: ldfld System.Byte Cell::m_conductivity
IL_0425: brfalse => Label28
IL_042A: ldloca.s 21 (ElectricityManager+Cell)
IL_042C: ldfld System.Boolean Cell::m_tmpElectrified
IL_0431: brtrue => Label29
IL_0436: ldloc.s 19 (System.UInt32)
IL_0438: brfalse => Label30
IL_043D: ldloca.s 21 (ElectricityManager+Cell)
IL_043F: ldfld System.Int16 Cell::m_currentCharge
IL_0444: neg
IL_0445: ldc.i4.0
IL_0446: ldloc.s 19 (System.UInt32)
IL_0448: call static System.Int32 UnityEngine.Mathf::Clamp(System.Int32
value, System.Int32 min, System.Int32 max)
IL_044D: stloc.s 22 (System.Int32)
IL_044F: ldloc.s 19 (System.UInt32)
IL_0451: ldloc.s 22 (System.Int32)
IL_0453: sub
IL_0454: stloc.s 19 (System.UInt32)
IL_0456: ldloca.s 21 (ElectricityManager+Cell)
IL_0458: dup
IL_0459: ldfld System.Int16 Cell::m_currentCharge
IL_045E: ldloc.s 22 (System.Int32)
IL_0460: conv.i2
IL_0461: add
IL_0462: conv.i2
IL_0463: stfld System.Int16 Cell::m_currentCharge
IL_0468: ldloca.s 21 (ElectricityManager+Cell)
IL_046A: ldfld System.Int16 Cell::m_currentCharge
IL_046F: brtrue => Label31
IL_0474: ldloca.s 21 (ElectricityManager+Cell)
IL_0476: ldc.i4.1
IL_0477: stfld System.Boolean Cell::m_tmpElectrified
IL_047C: Label31
IL_047C: ldarg.0
IL_047D: ldfld Cell[] ElectricityManager::m_electricityGrid
IL_0482: ldloc.s 20 (System.Int32)
IL_0484: ldelema ElectricityManager+Cell
IL_0489: ldloc.s 21 (ElectricityManager+Cell)
IL_048B: stobj ElectricityManager+Cell
IL_0490: ldarg.0
IL_0491: ldfld PulseGroup[] ElectricityManager::m_pulseGroups
IL_0496: ldloca.s 18 (ElectricityManager+PulseUnit)
IL_0498: ldfld System.UInt16 PulseUnit::m_group
IL_049D: ldelema ElectricityManager+PulseGroup
IL_04A2: ldloc.s 19 (System.UInt32)
IL_04A4: stfld System.UInt32 PulseGroup::m_curCharge
IL_04A9: Label28
IL_04A9: Label29
IL_04A9: Label30
IL_04A9: ldloc.s 19 (System.UInt32)
IL_04AB: brfalse => Label32
IL_04B0: ldloca.s 21 (ElectricityManager+Cell)
IL_04B2: ldfld System.Byte Cell::m_conductivity
IL_04B7: ldc.i4.s 64
IL_04B9: blt => Label33
IL_04BE: ldc.i4.1
IL_04BF: br => Label34
IL_04C4: Label33
IL_04C4: ldc.i4.s 64
IL_04C6: Label34
IL_04C6: stloc.s 23 (System.Int32)
IL_04C8: ldarg.0
IL_04C9: dup
IL_04CA: ldfld System.Int32 ElectricityManager::m_processedCells
IL_04CF: ldc.i4.1
IL_04D0: add
IL_04D1: stfld System.Int32 ElectricityManager::m_processedCells
IL_04D6: ldloca.s 18 (ElectricityManager+PulseUnit)
IL_04D8: ldfld System.Byte PulseUnit::m_z
IL_04DD: ldc.i4.0
IL_04DE: ble => Label35
IL_04E3: ldarg.0
IL_04E4: ldarg.0
IL_04E5: ldfld Cell[] ElectricityManager::m_electricityGrid
IL_04EA: ldloc.s 20 (System.Int32)
IL_04EC: ldc.i4 256
IL_04F1: sub
IL_04F2: ldelema ElectricityManager+Cell
IL_04F7: ldloca.s 18 (ElectricityManager+PulseUnit)
IL_04F9: ldfld System.UInt16 PulseUnit::m_group
IL_04FE: ldloca.s 18 (ElectricityManager+PulseUnit)
IL_0500: ldfld System.Byte PulseUnit::m_x
IL_0505: ldloca.s 18 (ElectricityManager+PulseUnit)
IL_0507: ldfld System.Byte PulseUnit::m_z
IL_050C: ldc.i4.1
IL_050D: sub
IL_050E: ldloc.s 23 (System.Int32)
IL_0510: call System.Void ElectricityManager::ConductToCell(Cell& cell,
System.UInt16 group, System.Int32 x, System.Int32 z, System.Int32 limit)
IL_0515: Label35
IL_0515: ldloca.s 18 (ElectricityManager+PulseUnit)
IL_0517: ldfld System.Byte PulseUnit::m_x
IL_051C: ldc.i4.0
IL_051D: ble => Label36
IL_0522: ldarg.0
IL_0523: ldarg.0
IL_0524: ldfld Cell[] ElectricityManager::m_electricityGrid
IL_0529: ldloc.s 20 (System.Int32)
IL_052B: ldc.i4.1
IL_052C: sub
IL_052D: ldelema ElectricityManager+Cell
IL_0532: ldloca.s 18 (ElectricityManager+PulseUnit)
IL_0534: ldfld System.UInt16 PulseUnit::m_group
IL_0539: ldloca.s 18 (ElectricityManager+PulseUnit)
IL_053B: ldfld System.Byte PulseUnit::m_x
IL_0540: ldc.i4.1
IL_0541: sub
IL_0542: ldloca.s 18 (ElectricityManager+PulseUnit)
IL_0544: ldfld System.Byte PulseUnit::m_z
IL_0549: ldloc.s 23 (System.Int32)
IL_054B: call System.Void ElectricityManager::ConductToCell(Cell& cell,
System.UInt16 group, System.Int32 x, System.Int32 z, System.Int32 limit)
IL_0550: Label36
IL_0550: ldloca.s 18 (ElectricityManager+PulseUnit)
IL_0552: ldfld System.Byte PulseUnit::m_z
IL_0557: ldc.i4 255
IL_055C: bge => Label37
IL_0561: ldarg.0
IL_0562: ldarg.0
IL_0563: ldfld Cell[] ElectricityManager::m_electricityGrid
IL_0568: ldloc.s 20 (System.Int32)
IL_056A: ldc.i4 256
IL_056F: add
IL_0570: ldelema ElectricityManager+Cell
IL_0575: ldloca.s 18 (ElectricityManager+PulseUnit)
IL_0577: ldfld System.UInt16 PulseUnit::m_group
IL_057C: ldloca.s 18 (ElectricityManager+PulseUnit)
IL_057E: ldfld System.Byte PulseUnit::m_x
IL_0583: ldloca.s 18 (ElectricityManager+PulseUnit)
IL_0585: ldfld System.Byte PulseUnit::m_z
IL_058A: ldc.i4.1
IL_058B: add
IL_058C: ldloc.s 23 (System.Int32)
IL_058E: call System.Void ElectricityManager::ConductToCell(Cell& cell,
System.UInt16 group, System.Int32 x, System.Int32 z, System.Int32 limit)
IL_0593: Label37
IL_0593: ldloca.s 18 (ElectricityManager+PulseUnit)
IL_0595: ldfld System.Byte PulseUnit::m_x
IL_059A: ldc.i4 255
IL_059F: bge => Label38
IL_05A4: ldarg.0
IL_05A5: ldarg.0
IL_05A6: ldfld Cell[] ElectricityManager::m_electricityGrid
IL_05AB: ldloc.s 20 (System.Int32)
IL_05AD: ldc.i4.1
IL_05AE: add
IL_05AF: ldelema ElectricityManager+Cell
IL_05B4: ldloca.s 18 (ElectricityManager+PulseUnit)
IL_05B6: ldfld System.UInt16 PulseUnit::m_group
IL_05BB: ldloca.s 18 (ElectricityManager+PulseUnit)
IL_05BD: ldfld System.Byte PulseUnit::m_x
IL_05C2: ldc.i4.1
IL_05C3: add
IL_05C4: ldloca.s 18 (ElectricityManager+PulseUnit)
IL_05C6: ldfld System.Byte PulseUnit::m_z
IL_05CB: ldloc.s 23 (System.Int32)
IL_05CD: call System.Void ElectricityManager::ConductToCell(Cell& cell,
System.UInt16 group, System.Int32 x, System.Int32 z, System.Int32 limit)
IL_05D2: Label38
IL_05D2: ldarg.0
IL_05D3: ldloca.s 18 (ElectricityManager+PulseUnit)
IL_05D5: ldfld System.UInt16 PulseUnit::m_group
IL_05DA: ldloca.s 18 (ElectricityManager+PulseUnit)
IL_05DC: ldfld System.Byte PulseUnit::m_x
IL_05E1: ldloca.s 18 (ElectricityManager+PulseUnit)
IL_05E3: ldfld System.Byte PulseUnit::m_z
IL_05E8: call System.Void ElectricityManager::ConductToNodes(System.UInt16
group, System.Int32 cellX, System.Int32 cellZ)
IL_05ED: br => Label39
IL_05F2: Label32
IL_05F2: ldarg.0
IL_05F3: ldfld PulseUnit[] ElectricityManager::m_pulseUnits
IL_05F8: ldarg.0
IL_05F9: ldfld System.Int32 ElectricityManager::m_pulseUnitEnd
IL_05FE: ldelema ElectricityManager+PulseUnit
IL_0603: ldloc.s 18 (ElectricityManager+PulseUnit)
IL_0605: stobj ElectricityManager+PulseUnit
IL_060A: ldarg.0
IL_060B: dup
IL_060C: ldfld System.Int32 ElectricityManager::m_pulseUnitEnd
IL_0611: ldc.i4.1
IL_0612: add
IL_0613: dup
IL_0614: stloc.s 15 (System.Int32)
IL_0616: stfld System.Int32 ElectricityManager::m_pulseUnitEnd
IL_061B: ldloc.s 15 (System.Int32)
IL_061D: ldarg.0
IL_061E: ldfld PulseUnit[] ElectricityManager::m_pulseUnits
IL_0623: ldlen
IL_0624: conv.i4
IL_0625: bne.un => Label40
IL_062A: ldarg.0
IL_062B: ldc.i4.0
IL_062C: stfld System.Int32 ElectricityManager::m_pulseUnitEnd
IL_0631: Label39
IL_0631: Label40
IL_0631: br => Label41
IL_0636: Label27
IL_0636: ldloc.s 19 (System.UInt32)
IL_0638: brfalse => Label42
IL_063D: ldarg.0
IL_063E: dup
IL_063F: ldfld System.Int32 ElectricityManager::m_processedCells
IL_0644: ldc.i4.1
IL_0645: add
IL_0646: stfld System.Int32 ElectricityManager::m_processedCells
IL_064B: call static NetManager
ColossalFramework.Singleton`1<NetManager>::get_instance()
IL_0650: ldfld Array16`1<NetNode> NetManager::m_nodes
IL_0655: ldfld NetNode[] Array16`1<NetNode>::m_buffer
IL_065A: ldloca.s 18 (ElectricityManager+PulseUnit)
IL_065C: ldfld System.UInt16 PulseUnit::m_node
IL_0661: ldelema NetNode
IL_0666: ldobj NetNode
IL_066B: stloc.s 24 (NetNode)
IL_066D: ldloca.s 24 (NetNode)
IL_066F: ldfld Flags NetNode::m_flags
IL_0674: brfalse => Label43
IL_0679: ldloca.s 24 (NetNode)
IL_067B: ldfld System.UInt32 NetNode::m_buildIndex
IL_0680: ldloc.0
IL_0681: ldc.i4.s -128
IL_0683: and
IL_0684: bge.un => Label44
IL_0689: ldarg.0
IL_068A: ldloca.s 18 (ElectricityManager+PulseUnit)
IL_068C: ldfld System.UInt16 PulseUnit::m_group
IL_0691: ldloca.s 24 (NetNode)
IL_0693: ldflda UnityEngine.Vector3 NetNode::m_position
IL_0698: ldfld System.Single UnityEngine.Vector3::x
IL_069D: ldloca.s 24 (NetNode)
IL_069F: ldflda UnityEngine.Vector3 NetNode::m_position
IL_06A4: ldfld System.Single UnityEngine.Vector3::z
IL_06A9: call System.Void ElectricityManager::ConductToCells(System.UInt16
group, System.Single worldX, System.Single worldZ)
IL_06AE: ldc.i4.0
IL_06AF: stloc.s 25 (System.Int32)
IL_06B1: br => Label45
IL_06B6: Label49
IL_06B6: ldloca.s 24 (NetNode)
IL_06B8: ldloc.s 25 (System.Int32)
IL_06BA: call System.UInt16 NetNode::GetSegment(System.Int32 index)
IL_06BF: stloc.s 26 (System.UInt16)
IL_06C1: ldloc.s 26 (System.UInt16)
IL_06C3: brfalse => Label46
IL_06C8: call static NetManager
ColossalFramework.Singleton`1<NetManager>::get_instance()
IL_06CD: ldfld Array16`1<NetSegment> NetManager::m_segments
IL_06D2: ldfld NetSegment[] Array16`1<NetSegment>::m_buffer
IL_06D7: ldloc.s 26 (System.UInt16)
IL_06D9: ldelema NetSegment
IL_06DE: ldfld System.UInt16 NetSegment::m_startNode
IL_06E3: stloc.s 27 (System.UInt16)
IL_06E5: call static NetManager
ColossalFramework.Singleton`1<NetManager>::get_instance()
IL_06EA: ldfld Array16`1<NetSegment> NetManager::m_segments
IL_06EF: ldfld NetSegment[] Array16`1<NetSegment>::m_buffer
IL_06F4: ldloc.s 26 (System.UInt16)
IL_06F6: ldelema NetSegment
IL_06FB: ldfld System.UInt16 NetSegment::m_endNode
IL_0700: stloc.s 28 (System.UInt16)
IL_0702: ldloc.s 27 (System.UInt16)
IL_0704: ldloca.s 18 (ElectricityManager+PulseUnit)
IL_0706: ldfld System.UInt16 PulseUnit::m_node
IL_070B: bne.un => Label47
IL_0710: ldloc.s 28 (System.UInt16)
IL_0712: br => Label48
IL_0717: Label47
IL_0717: ldloc.s 27 (System.UInt16)
IL_0719: Label48
IL_0719: stloc.s 29 (System.UInt16)
IL_071B: ldarg.0
IL_071C: ldloc.s 29 (System.UInt16)
IL_071E: call static NetManager
ColossalFramework.Singleton`1<NetManager>::get_instance()
IL_0723: ldfld Array16`1<NetNode> NetManager::m_nodes
IL_0728: ldfld NetNode[] Array16`1<NetNode>::m_buffer
IL_072D: ldloc.s 29 (System.UInt16)
IL_072F: ldelema NetNode
IL_0734: ldloca.s 18 (ElectricityManager+PulseUnit)
IL_0736: ldfld System.UInt16 PulseUnit::m_group
IL_073B: ldc.r4 -100000
IL_0740: ldc.r4 -100000
IL_0745: ldc.r4 100000
IL_074A: ldc.r4 100000
IL_074F: call System.Void ElectricityManager::ConductToNode(System.UInt16
nodeIndex, NetNode& node, System.UInt16 group, System.Single minX, System.Single
minZ, System.Single maxX, System.Single maxZ)
IL_0754: Label46
IL_0754: ldloc.s 25 (System.Int32)
IL_0756: ldc.i4.1
IL_0757: add
IL_0758: stloc.s 25 (System.Int32)
IL_075A: Label45
IL_075A: ldloc.s 25 (System.Int32)
IL_075C: ldc.i4.8
IL_075D: blt => Label49
IL_0762: Label43
IL_0762: Label44
IL_0762: br => Label50
IL_0767: Label42
IL_0767: ldarg.0
IL_0768: ldfld PulseUnit[] ElectricityManager::m_pulseUnits
IL_076D: ldarg.0
IL_076E: ldfld System.Int32 ElectricityManager::m_pulseUnitEnd
IL_0773: ldelema ElectricityManager+PulseUnit
IL_0778: ldloc.s 18 (ElectricityManager+PulseUnit)
IL_077A: stobj ElectricityManager+PulseUnit
IL_077F: ldarg.0
IL_0780: dup
IL_0781: ldfld System.Int32 ElectricityManager::m_pulseUnitEnd
IL_0786: ldc.i4.1
IL_0787: add
IL_0788: dup
IL_0789: stloc.s 15 (System.Int32)
IL_078B: stfld System.Int32 ElectricityManager::m_pulseUnitEnd
IL_0790: ldloc.s 15 (System.Int32)
IL_0792: ldarg.0
IL_0793: ldfld PulseUnit[] ElectricityManager::m_pulseUnits
IL_0798: ldlen
IL_0799: conv.i4
IL_079A: bne.un => Label51
IL_079F: ldarg.0
IL_07A0: ldc.i4.0
IL_07A1: stfld System.Int32 ElectricityManager::m_pulseUnitEnd
IL_07A6: Label25
IL_07A6: Label41
IL_07A6: Label50
IL_07A6: Label51
IL_07A6: ldarg.0
IL_07A7: ldfld System.Int32 ElectricityManager::m_pulseUnitStart
IL_07AC: ldloc.s 17 (System.Int32)
IL_07AE: bne.un => Label52
IL_07B3: Label24
IL_07B3: ldarg.0
IL_07B4: ldfld System.Boolean ElectricityManager::m_canContinue
IL_07B9: brfalse => Label53
IL_07BE: ldarg.0
IL_07BF: ldfld System.Int32 ElectricityManager::m_processedCells
IL_07C4: ldloc.s 16 (System.Int32)
IL_07C6: blt => Label54
IL_07CB: Label53
IL_07CB: ldloc.1
IL_07CC: ldc.i4 255
IL_07D1: bne.un => Label55
IL_07D6: ldc.i4.0
IL_07D7: stloc.s 30 (System.Int32)
IL_07D9: br => Label56
IL_07DE: Label58
IL_07DE: ldarg.0
IL_07DF: ldfld PulseGroup[] ElectricityManager::m_pulseGroups
IL_07E4: ldloc.s 30 (System.Int32)
IL_07E6: ldelema ElectricityManager+PulseGroup
IL_07EB: ldobj ElectricityManager+PulseGroup
IL_07F0: stloc.s 31 (ElectricityManager+PulseGroup)
IL_07F2: ldloca.s 31 (ElectricityManager+PulseGroup)
IL_07F4: ldfld System.UInt16 PulseGroup::m_mergeIndex
IL_07F9: ldc.i4 65535
IL_07FE: beq => Label57
IL_0803: ldarg.0
IL_0804: ldfld PulseGroup[] ElectricityManager::m_pulseGroups
IL_0809: ldloca.s 31 (ElectricityManager+PulseGroup)
IL_080B: ldfld System.UInt16 PulseGroup::m_mergeIndex
IL_0810: ldelema ElectricityManager+PulseGroup
IL_0815: ldobj ElectricityManager+PulseGroup
IL_081A: stloc.s 32 (ElectricityManager+PulseGroup)
IL_081C: ldloca.s 31 (ElectricityManager+PulseGroup)
IL_081E: ldloca.s 32 (ElectricityManager+PulseGroup)
IL_0820: ldfld System.UInt32 PulseGroup::m_curCharge
IL_0825: conv.u8
IL_0826: ldloca.s 31 (ElectricityManager+PulseGroup)
IL_0828: ldfld System.UInt32 PulseGroup::m_origCharge
IL_082D: conv.u8
IL_082E: mul
IL_082F: ldloca.s 32 (ElectricityManager+PulseGroup)
IL_0831: ldfld System.UInt32 PulseGroup::m_origCharge
IL_0836: conv.u8
IL_0837: div.un
IL_0838: conv.u4
IL_0839: stfld System.UInt32 PulseGroup::m_curCharge
IL_083E: ldloca.s 32 (ElectricityManager+PulseGroup)
IL_0840: dup
IL_0841: ldfld System.UInt32 PulseGroup::m_curCharge
IL_0846: ldloca.s 31 (ElectricityManager+PulseGroup)
IL_0848: ldfld System.UInt32 PulseGroup::m_curCharge
IL_084D: sub
IL_084E: stfld System.UInt32 PulseGroup::m_curCharge
IL_0853: ldloca.s 32 (ElectricityManager+PulseGroup)
IL_0855: dup
IL_0856: ldfld System.UInt32 PulseGroup::m_origCharge
IL_085B: ldloca.s 31 (ElectricityManager+PulseGroup)
IL_085D: ldfld System.UInt32 PulseGroup::m_origCharge
IL_0862: sub
IL_0863: stfld System.UInt32 PulseGroup::m_origCharge
IL_0868: ldarg.0
IL_0869: ldfld PulseGroup[] ElectricityManager::m_pulseGroups
IL_086E: ldloca.s 31 (ElectricityManager+PulseGroup)
IL_0870: ldfld System.UInt16 PulseGroup::m_mergeIndex
IL_0875: ldelema ElectricityManager+PulseGroup
IL_087A: ldloc.s 32 (ElectricityManager+PulseGroup)
IL_087C: stobj ElectricityManager+PulseGroup
IL_0881: ldarg.0
IL_0882: ldfld PulseGroup[] ElectricityManager::m_pulseGroups
IL_0887: ldloc.s 30 (System.Int32)
IL_0889: ldelema ElectricityManager+PulseGroup
IL_088E: ldloc.s 31 (ElectricityManager+PulseGroup)
IL_0890: stobj ElectricityManager+PulseGroup
IL_0895: Label57
IL_0895: ldloc.s 30 (System.Int32)
IL_0897: ldc.i4.1
IL_0898: add
IL_0899: stloc.s 30 (System.Int32)
IL_089B: Label56
IL_089B: ldloc.s 30 (System.Int32)
IL_089D: ldarg.0
IL_089E: ldfld System.Int32 ElectricityManager::m_pulseGroupCount
IL_08A3: blt => Label58
IL_08A8: ldc.i4.0
IL_08A9: stloc.s 33 (System.Int32)
IL_08AB: br => Label59
IL_08B0: Label62
IL_08B0: ldarg.0
IL_08B1: ldfld PulseGroup[] ElectricityManager::m_pulseGroups
IL_08B6: ldloc.s 33 (System.Int32)
IL_08B8: ldelema ElectricityManager+PulseGroup
IL_08BD: ldobj ElectricityManager+PulseGroup
IL_08C2: stloc.s 34 (ElectricityManager+PulseGroup)
IL_08C4: ldloca.s 34 (ElectricityManager+PulseGroup)
IL_08C6: ldfld System.UInt32 PulseGroup::m_curCharge
IL_08CB: brfalse => Label60
IL_08D0: ldloca.s 34 (ElectricityManager+PulseGroup)
IL_08D2: ldfld System.Byte PulseGroup::m_z
IL_08D7: ldc.i4 256
IL_08DC: mul
IL_08DD: ldloca.s 34 (ElectricityManager+PulseGroup)
IL_08DF: ldfld System.Byte PulseGroup::m_x
IL_08E4: add
IL_08E5: stloc.s 35 (System.Int32)
IL_08E7: ldarg.0
IL_08E8: ldfld Cell[] ElectricityManager::m_electricityGrid
IL_08ED: ldloc.s 35 (System.Int32)
IL_08EF: ldelema ElectricityManager+Cell
IL_08F4: ldobj ElectricityManager+Cell
IL_08F9: stloc.s 36 (ElectricityManager+Cell)
IL_08FB: ldloca.s 36 (ElectricityManager+Cell)
IL_08FD: ldfld System.Byte Cell::m_conductivity
IL_0902: brfalse => Label61
IL_0907: ldloca.s 36 (ElectricityManager+Cell)
IL_0909: dup
IL_090A: ldfld System.UInt16 Cell::m_extraCharge
IL_090F: ldloca.s 34 (ElectricityManager+PulseGroup)
IL_0911: ldfld System.UInt32 PulseGroup::m_curCharge
IL_0916: ldc.i4 32767
IL_091B: ldloca.s 36 (ElectricityManager+Cell)
IL_091D: ldfld System.UInt16 Cell::m_extraCharge
IL_0922: sub
IL_0923: call static System.Int32 UnityEngine.Mathf::Min(System.Int32 a,
System.Int32 b)
IL_0928: conv.u2
IL_0929: add
IL_092A: conv.u2
IL_092B: stfld System.UInt16 Cell::m_extraCharge
IL_0930: Label61
IL_0930: ldarg.0
IL_0931: ldfld Cell[] ElectricityManager::m_electricityGrid
IL_0936: ldloc.s 35 (System.Int32)
IL_0938: ldelema ElectricityManager+Cell
IL_093D: ldloc.s 36 (ElectricityManager+Cell)
IL_093F: stobj ElectricityManager+Cell
IL_0944: Label60
IL_0944: ldloc.s 33 (System.Int32)
IL_0946: ldc.i4.1
IL_0947: add
IL_0948: stloc.s 33 (System.Int32)
IL_094A: Label59
IL_094A: ldloc.s 33 (System.Int32)
IL_094C: ldarg.0
IL_094D: ldfld System.Int32 ElectricityManager::m_pulseGroupCount
IL_0952: blt => Label62
IL_0957: // end original
IL_0957: Label0
IL_0957: Label1
IL_0957: Label22
IL_0957: Label55
IL_0957: ret
DONE

### Patch: System.Void ElectricityManager::ConductToNode(System.UInt16 nodeIndex,


NetNode& node, System.UInt16 group, System.Single minX, System.Single minZ,
System.Single maxX, System.Single maxZ)
### Replacement: static System.Void
ElectricityManager::ElectricityManager.ConductToNode_Patch0(ElectricityManager
this, System.UInt16 nodeIndex, NetNode& node, System.UInt16 group, System.Single
minX, System.Single minZ, System.Single maxX, System.Single maxZ)
IL_0000: Local var 0: NetInfo
IL_0000: Local var 1: ElectricityManager/PulseUnit
IL_0000: Local var 2: System.Int32
IL_0000: Local var 3: System.UInt16
IL_0000: // start original
IL_0000: ldarg.2
IL_0001: ldflda UnityEngine.Vector3 NetNode::m_position
IL_0006: ldfld System.Single UnityEngine.Vector3::x
IL_000B: ldarg.s 4
IL_000D: blt.un => Label0
IL_0012: ldarg.2
IL_0013: ldflda UnityEngine.Vector3 NetNode::m_position
IL_0018: ldfld System.Single UnityEngine.Vector3::z
IL_001D: ldarg.s 5
IL_001F: blt.un => Label1
IL_0024: ldarg.2
IL_0025: ldflda UnityEngine.Vector3 NetNode::m_position
IL_002A: ldfld System.Single UnityEngine.Vector3::x
IL_002F: ldarg.s 6
IL_0031: bgt.un => Label2
IL_0036: ldarg.2
IL_0037: ldflda UnityEngine.Vector3 NetNode::m_position
IL_003C: ldfld System.Single UnityEngine.Vector3::z
IL_0041: ldarg.s 7
IL_0043: bgt.un => Label3
IL_0048: ldarg.2
IL_0049: call NetInfo NetNode::get_Info()
IL_004E: stloc.0
IL_004F: ldloc.0
IL_0050: ldfld ItemClass NetInfo::m_class
IL_0055: ldfld Service ItemClass::m_service
IL_005A: ldc.i4.s 10
IL_005C: beq => Label4
IL_0061: ldarg.2
IL_0062: call NetInfo NetNode::get_Info()
IL_0067: ldfld NetAI NetInfo::m_netAI
IL_006C: isinst ConcourseAI
IL_0071: brfalse => Label5
IL_0076: Label4
IL_0076: ldarg.0
IL_0077: ldfld System.UInt16[] ElectricityManager::m_nodeGroups
IL_007C: ldarg.1
IL_007D: ldelem.u2
IL_007E: ldc.i4 65535
IL_0083: bne.un => Label6
IL_0088: ldloca.s 1 (ElectricityManager+PulseUnit)
IL_008A: ldarg.3
IL_008B: stfld System.UInt16 PulseUnit::m_group
IL_0090: ldloca.s 1 (ElectricityManager+PulseUnit)
IL_0092: ldarg.1
IL_0093: stfld System.UInt16 PulseUnit::m_node
IL_0098: ldloca.s 1 (ElectricityManager+PulseUnit)
IL_009A: ldc.i4.0
IL_009B: stfld System.Byte PulseUnit::m_x
IL_00A0: ldloca.s 1 (ElectricityManager+PulseUnit)
IL_00A2: ldc.i4.0
IL_00A3: stfld System.Byte PulseUnit::m_z
IL_00A8: ldarg.0
IL_00A9: ldfld PulseUnit[] ElectricityManager::m_pulseUnits
IL_00AE: ldarg.0
IL_00AF: ldfld System.Int32 ElectricityManager::m_pulseUnitEnd
IL_00B4: ldelema ElectricityManager+PulseUnit
IL_00B9: ldloc.1
IL_00BA: stobj ElectricityManager+PulseUnit
IL_00BF: ldarg.0
IL_00C0: dup
IL_00C1: ldfld System.Int32 ElectricityManager::m_pulseUnitEnd
IL_00C6: ldc.i4.1
IL_00C7: add
IL_00C8: dup
IL_00C9: stloc.2
IL_00CA: stfld System.Int32 ElectricityManager::m_pulseUnitEnd
IL_00CF: ldloc.2
IL_00D0: ldarg.0
IL_00D1: ldfld PulseUnit[] ElectricityManager::m_pulseUnits
IL_00D6: ldlen
IL_00D7: conv.i4
IL_00D8: bne.un => Label7
IL_00DD: ldarg.0
IL_00DE: ldc.i4.0
IL_00DF: stfld System.Int32 ElectricityManager::m_pulseUnitEnd
IL_00E4: Label7
IL_00E4: ldarg.0
IL_00E5: ldfld System.UInt16[] ElectricityManager::m_nodeGroups
IL_00EA: ldarg.1
IL_00EB: ldarg.3
IL_00EC: stelem.i2
IL_00ED: ldarg.0
IL_00EE: ldc.i4.1
IL_00EF: stfld System.Boolean ElectricityManager::m_canContinue
IL_00F4: br => Label8
IL_00F9: Label6
IL_00F9: ldarg.0
IL_00FA: ldarg.0
IL_00FB: ldfld System.UInt16[] ElectricityManager::m_nodeGroups
IL_0100: ldarg.1
IL_0101: ldelem.u2
IL_0102: call System.UInt16 ElectricityManager::GetRootGroup(System.UInt16
group)
IL_0107: stloc.3
IL_0108: ldloc.3
IL_0109: ldarg.3
IL_010A: beq => Label9
IL_010F: ldarg.0
IL_0110: ldarg.3
IL_0111: ldloc.3
IL_0112: call System.Void ElectricityManager::MergeGroups(System.UInt16 root,
System.UInt16 merged)
IL_0117: ldarg.0
IL_0118: ldfld System.UInt16[] ElectricityManager::m_nodeGroups
IL_011D: ldarg.1
IL_011E: ldarg.3
IL_011F: stelem.i2
IL_0120: ldarg.0
IL_0121: ldc.i4.1
IL_0122: stfld System.Boolean ElectricityManager::m_canContinue
IL_0127: // end original
IL_0127: Label0
IL_0127: Label1
IL_0127: Label2
IL_0127: Label3
IL_0127: Label5
IL_0127: Label8
IL_0127: Label9
IL_0127: ret
DONE

### Patch: System.Void ElectricityManager::UpdateNodeElectricity(System.Int32


nodeID, System.Int32 value)
### Replacement: static System.Void
ElectricityManager::ElectricityManager.UpdateNodeElectricity_Patch0(ElectricityMana
ger this, System.Int32 nodeID, System.Int32 value)
IL_0000: Local var 0: InfoManager/InfoMode
IL_0000: Local var 1: NetManager
IL_0000: Local var 2: System.Boolean
IL_0000: Local var 3: NetNode/Flags
IL_0000: Local var 4: System.UInt16
IL_0000: Local var 5: BuildingManager
IL_0000: Local var 6: NetNode/Flags
IL_0000: Local var 7: System.Int32
IL_0000: Local var 8: System.UInt16
IL_0000: // start original
IL_0000: call static InfoManager
ColossalFramework.Singleton`1<InfoManager>::get_instance()
IL_0005: callvirt InfoMode InfoManager::get_CurrentMode()
IL_000A: stloc.0
IL_000B: call static NetManager
ColossalFramework.Singleton`1<NetManager>::get_instance()
IL_0010: stloc.1
IL_0011: ldc.i4.0
IL_0012: stloc.2
IL_0013: ldloc.1
IL_0014: ldfld Array16`1<NetNode> NetManager::m_nodes
IL_0019: ldfld NetNode[] Array16`1<NetNode>::m_buffer
IL_001E: ldarg.1
IL_001F: ldelema NetNode
IL_0024: ldfld Flags NetNode::m_flags
IL_0029: stloc.3
IL_002A: ldloc.3
IL_002B: ldc.i4 1048576
IL_0030: and
IL_0031: brfalse => Label0
IL_0036: ldloc.1
IL_0037: ldfld Array16`1<NetNode> NetManager::m_nodes
IL_003C: ldfld NetNode[] Array16`1<NetNode>::m_buffer
IL_0041: ldarg.1
IL_0042: ldelema NetNode
IL_0047: dup
IL_0048: ldfld Flags NetNode::m_flags
IL_004D: ldc.i4 -1048577
IL_0052: and
IL_0053: stfld Flags NetNode::m_flags
IL_0058: br => Label10
IL_005D: Label0
IL_005D: ldloc.1
IL_005E: ldfld Array16`1<NetNode> NetManager::m_nodes
IL_0063: ldfld NetNode[] Array16`1<NetNode>::m_buffer
IL_0068: ldarg.1
IL_0069: ldelema NetNode
IL_006E: ldfld System.UInt16 NetNode::m_building
IL_0073: stloc.s 4 (System.UInt16)
IL_0075: ldloc.s 4 (System.UInt16)
IL_0077: brfalse => Label1
IL_007C: call static BuildingManager
ColossalFramework.Singleton`1<BuildingManager>::get_instance()
IL_0081: stloc.s 5 (BuildingManager)
IL_0083: ldloc.s 5 (BuildingManager)
IL_0085: ldfld Array16`1<Building> BuildingManager::m_buildings
IL_008A: ldfld Building[] Array16`1<Building>::m_buffer
IL_008F: ldloc.s 4 (System.UInt16)
IL_0091: ldelema Building
IL_0096: ldfld System.UInt16 Building::m_electricityBuffer
IL_009B: ldarg.2
IL_009C: beq => Label2
IL_00A1: ldloc.s 5 (BuildingManager)
IL_00A3: ldfld Array16`1<Building> BuildingManager::m_buildings
IL_00A8: ldfld Building[] Array16`1<Building>::m_buffer
IL_00AD: ldloc.s 4 (System.UInt16)
IL_00AF: ldelema Building
IL_00B4: ldarg.2
IL_00B5: conv.u2
IL_00B6: stfld System.UInt16 Building::m_electricityBuffer
IL_00BB: ldloc.0
IL_00BC: ldc.i4.1
IL_00BD: ceq
IL_00BF: stloc.2
IL_00C0: Label2
IL_00C0: ldloc.2
IL_00C1: brfalse => Label3
IL_00C6: ldloc.s 5 (BuildingManager)
IL_00C8: ldloc.s 4 (System.UInt16)
IL_00CA: callvirt System.Void BuildingManager::UpdateBuildingColors(System.UInt16
building)
IL_00CF: Label1
IL_00CF: Label3
IL_00CF: ldloc.3
IL_00D0: ldc.i4 -67108865
IL_00D5: and
IL_00D6: stloc.s 6 (NetNode+Flags)
IL_00D8: ldarg.2
IL_00D9: brfalse => Label4
IL_00DE: ldloc.s 6 (NetNode+Flags)
IL_00E0: ldc.i4 67108864
IL_00E5: or
IL_00E6: stloc.s 6 (NetNode+Flags)
IL_00E8: Label4
IL_00E8: ldloc.s 6 (NetNode+Flags)
IL_00EA: ldloc.3
IL_00EB: beq => Label5
IL_00F0: ldloc.1
IL_00F1: ldfld Array16`1<NetNode> NetManager::m_nodes
IL_00F6: ldfld NetNode[] Array16`1<NetNode>::m_buffer
IL_00FB: ldarg.1
IL_00FC: ldelema NetNode
IL_0101: ldloc.s 6 (NetNode+Flags)
IL_0103: stfld Flags NetNode::m_flags
IL_0108: ldloc.0
IL_0109: ldc.i4.1
IL_010A: ceq
IL_010C: stloc.2
IL_010D: Label5
IL_010D: ldloc.2
IL_010E: brfalse => Label6
IL_0113: ldloc.1
IL_0114: ldarg.1
IL_0115: conv.u2
IL_0116: callvirt System.Void NetManager::UpdateNodeColors(System.UInt16 node)
IL_011B: ldc.i4.0
IL_011C: stloc.s 7 (System.Int32)
IL_011E: br => Label7
IL_0123: Label9
IL_0123: ldloc.1
IL_0124: ldfld Array16`1<NetNode> NetManager::m_nodes
IL_0129: ldfld NetNode[] Array16`1<NetNode>::m_buffer
IL_012E: ldarg.1
IL_012F: ldelema NetNode
IL_0134: ldloc.s 7 (System.Int32)
IL_0136: call System.UInt16 NetNode::GetSegment(System.Int32 index)
IL_013B: stloc.s 8 (System.UInt16)
IL_013D: ldloc.s 8 (System.UInt16)
IL_013F: brfalse => Label8
IL_0144: ldloc.1
IL_0145: ldloc.s 8 (System.UInt16)
IL_0147: callvirt System.Void NetManager::UpdateSegmentColors(System.UInt16
segment)
IL_014C: Label8
IL_014C: ldloc.s 7 (System.Int32)
IL_014E: ldc.i4.1
IL_014F: add
IL_0150: stloc.s 7 (System.Int32)
IL_0152: Label7
IL_0152: ldloc.s 7 (System.Int32)
IL_0154: ldc.i4.8
IL_0155: blt => Label9
IL_015A: // end original
IL_015A: Label6
IL_015A: Label10
IL_015A: ret
DONE

### Patch: virtual System.Void ColossalFramework.UI.UIView::Start()


### Replacement: static System.Void
ColossalFramework.UI.UIView::ColossalFramework.UI.UIView.Start_Patch1(ColossalFrame
work.UI.UIView this)
IL_0000: Local var 0:
ColossalFramework.PoolList`1<ColossalFramework.UI.UIComponent>
IL_0000: Local var 1: ColossalFramework.UI.UIComponent
IL_0000: Local var 2:
System.Collections.Generic.IEnumerator`1<ColossalFramework.UI.UIComponent>
IL_0000: // start original
IL_0000: ldarg.0
IL_0001: ldc.i4.0
IL_0002: stfld System.Int32 ColossalFramework.UI.UIView::m_FramesRendered
IL_0007: ldarg.0
IL_0008: call System.Void
ColossalFramework.UI.UIView::InvalidateAllComponents()
IL_000D: ldarg.0
IL_000E: ldfld UnityEngine.MeshRenderer
ColossalFramework.UI.UIView::m_MeshRenderer
IL_0013: ldnull
IL_0014: call static System.Boolean
UnityEngine.Object::op_Inequality(UnityEngine.Object x, UnityEngine.Object y)
IL_0019: brfalse => Label0
IL_001E: ldarg.0
IL_001F: ldfld UnityEngine.MeshRenderer
ColossalFramework.UI.UIView::m_MeshRenderer
IL_0024: ldc.i4.1
IL_0025: callvirt System.Void UnityEngine.Renderer::set_enabled(System.Boolean
value)
IL_002A: Label0
IL_002A: ldarg.0
IL_002B: call ColossalFramework.PoolList`1<ColossalFramework.UI.UIComponent>
ColossalFramework.UI.UIView::GetTopLevelComponents()
IL_0030: stloc.0
.try
{
IL_0031: ldloc.0
IL_0032: callvirt virtual
System.Collections.Generic.IEnumerator`1<ColossalFramework.UI.UIComponent>
ColossalFramework.PoolList`1<ColossalFramework.UI.UIComponent>::GetEnumerator()
IL_0037: stloc.2
.try
{
IL_0038: br => Label1
IL_003D: Label2
IL_003D: ldloc.2
IL_003E: callvirt abstract virtual ColossalFramework.UI.UIComponent
System.Collections.Generic.IEnumerator`1<ColossalFramework.UI.UIComponent>::get_Cur
rent()
IL_0043: stloc.1
IL_0044: ldloc.1
IL_0045: ldc.i4.1
IL_0046: callvirt System.Void
ColossalFramework.UI.UIComponent::InitializeParentVisibilityCache(System.Boolean
parentVisible)
IL_004B: Label1
IL_004B: ldloc.2
IL_004C: callvirt abstract virtual System.Boolean
System.Collections.IEnumerator::MoveNext()
IL_0051: brtrue => Label2
IL_0056: leave => Label3
IL_005B: leave => (autogenerated)
} // end try
.finally
{
IL_0060: ldloc.2
IL_0061: brfalse => Label4
IL_0066: ldloc.2
IL_0067: callvirt abstract virtual System.Void
System.IDisposable::Dispose()
IL_006C: Label4
IL_006C: endfinally
IL_006D: leave => (autogenerated)
} // end handler
IL_006E: Label3
IL_006E: leave => Label5
IL_0073: leave => (autogenerated)
} // end try
.finally
{
IL_0078: ldloc.0
IL_0079: brfalse => Label6
IL_007E: ldloc.0
IL_007F: callvirt abstract virtual System.Void
System.IDisposable::Dispose()
IL_0084: Label6
IL_0084: endfinally
IL_0085: leave => (autogenerated)
} // end handler
IL_0086: Label5
IL_0086: ldarg.0
IL_0087: ldc.i4.1
IL_0088: stfld System.Boolean
ColossalFramework.UI.UIView::m_VisibilityCacheInitialized
IL_008D: // end original
IL_008D: call static System.Void
Kwytto.Redirectors.UIViewRedirector::AfterStart()
IL_0092: ret
DONE

### Patch: virtual UnityEngine.Color NetAI::GetColor(System.UInt16 nodeID, NetNode&


data, InfoMode infoMode, SubInfoMode subInfoMode)
### Replacement: static UnityEngine.Color NetAI::NetAI.GetColor_Patch1(NetAI this,
System.UInt16 nodeID, NetNode& data, InfoMode infoMode, SubInfoMode subInfoMode)
IL_0000: Local var 0: UnityEngine.Color
IL_0000: ldloca 0 (UnityEngine.Color)
IL_0004: initobj UnityEngine.Color
IL_000A: // start original
IL_000A: ldarg.3
IL_000B: brfalse => Label0
IL_0010: call static InfoManager
ColossalFramework.Singleton`1<InfoManager>::get_instance()
IL_0015: ldfld InfoProperties SimulationManagerBase`2<InfoManager,
InfoProperties>::m_properties
IL_001A: ldfld UnityEngine.Color InfoProperties::m_neutralColor
IL_001F: br => Label1
IL_0024: Label0
IL_0024: ldarg.0
IL_0025: ldfld NetInfo NetAI::m_info
IL_002A: ldfld UnityEngine.Color NetInfo::m_color
IL_002F: // end original
IL_002F: Label1
IL_002F: stloc 0 (UnityEngine.Color)
IL_0033: ldloca 0 (UnityEngine.Color)
IL_0037: ldarg 1
IL_003B: ldarg 2
IL_003F: ldarg 3
IL_0043: ldarg 4
IL_0047: call static System.Void
ElectricRoads.Overrides.ElectricRoadsOverrides::AfterGetColorNode(UnityEngine.Color
& __result, System.UInt16 nodeID, NetNode& data, InfoMode infoMode, SubInfoMode
subInfoMode)
IL_004C: ldloc 0 (UnityEngine.Color)
IL_0050: ret
DONE

### Patch: virtual UnityEngine.Color NetAI::GetColor(System.UInt16 segmentID,


NetSegment& data, InfoMode infoMode, SubInfoMode subInfoMode)
### Replacement: static UnityEngine.Color NetAI::NetAI.GetColor_Patch1(NetAI this,
System.UInt16 segmentID, NetSegment& data, InfoMode infoMode, SubInfoMode
subInfoMode)
IL_0000: Local var 0: UnityEngine.Color
IL_0000: ldloca 0 (UnityEngine.Color)
IL_0004: initobj UnityEngine.Color
IL_000A: // start original
IL_000A: ldarg.3
IL_000B: brfalse => Label0
IL_0010: call static InfoManager
ColossalFramework.Singleton`1<InfoManager>::get_instance()
IL_0015: ldfld InfoProperties SimulationManagerBase`2<InfoManager,
InfoProperties>::m_properties
IL_001A: ldfld UnityEngine.Color InfoProperties::m_neutralColor
IL_001F: br => Label1
IL_0024: Label0
IL_0024: ldarg.0
IL_0025: ldfld NetInfo NetAI::m_info
IL_002A: ldfld UnityEngine.Color NetInfo::m_color
IL_002F: // end original
IL_002F: Label1
IL_002F: stloc 0 (UnityEngine.Color)
IL_0033: ldloca 0 (UnityEngine.Color)
IL_0037: ldarg 1
IL_003B: ldarg 2
IL_003F: ldarg 3
IL_0043: ldarg 4
IL_0047: call static System.Void
ElectricRoads.Overrides.ElectricRoadsOverrides::AfterGetColorSegment(UnityEngine.Co
lor& __result, System.UInt16 segmentID, NetSegment& data, InfoMode infoMode,
SubInfoMode subInfoMode)
IL_004C: ldloc 0 (UnityEngine.Color)
IL_0050: ret
DONE

### Patch: System.Void ElectricityManager::UpdateNodeElectricity(System.Int32


nodeID, System.Int32 value)
### Replacement: static System.Void
ElectricityManager::ElectricityManager.UpdateNodeElectricity_Patch0(ElectricityMana
ger this, System.Int32 nodeID, System.Int32 value)
IL_0000: Local var 0: InfoManager/InfoMode
IL_0000: Local var 1: NetManager
IL_0000: Local var 2: System.Boolean
IL_0000: Local var 3: NetNode/Flags
IL_0000: Local var 4: System.UInt16
IL_0000: Local var 5: BuildingManager
IL_0000: Local var 6: NetNode/Flags
IL_0000: Local var 7: System.Int32
IL_0000: Local var 8: System.UInt16
IL_0000: // start original
IL_0000: call static InfoManager
ColossalFramework.Singleton`1<InfoManager>::get_instance()
IL_0005: callvirt InfoMode InfoManager::get_CurrentMode()
IL_000A: stloc.0
IL_000B: call static NetManager
ColossalFramework.Singleton`1<NetManager>::get_instance()
IL_0010: stloc.1
IL_0011: ldc.i4.0
IL_0012: stloc.2
IL_0013: ldloc.1
IL_0014: ldfld Array16`1<NetNode> NetManager::m_nodes
IL_0019: ldfld NetNode[] Array16`1<NetNode>::m_buffer
IL_001E: ldarg.1
IL_001F: ldelema NetNode
IL_0024: ldfld Flags NetNode::m_flags
IL_0029: stloc.3
IL_002A: ldarg.1
IL_002B: call static System.Boolean
ElectricRoads.Overrides.ElectricRoadsOverrides::CheckNodeTransition(System.Int32
nodeID)
IL_0030: brfalse => Label0
IL_0035: ldloc.1
IL_0036: ldfld Array16`1<NetNode> NetManager::m_nodes
IL_003B: ldfld NetNode[] Array16`1<NetNode>::m_buffer
IL_0040: ldarg.1
IL_0041: ldelema NetNode
IL_0046: dup
IL_0047: ldfld Flags NetNode::m_flags
IL_004C: ldc.i4 -1048577
IL_0051: and
IL_0052: stfld Flags NetNode::m_flags
IL_0057: br => Label10
IL_005C: Label0
IL_005C: ldloc.1
IL_005D: ldfld Array16`1<NetNode> NetManager::m_nodes
IL_0062: ldfld NetNode[] Array16`1<NetNode>::m_buffer
IL_0067: ldarg.1
IL_0068: ldelema NetNode
IL_006D: ldfld System.UInt16 NetNode::m_building
IL_0072: stloc.s 4 (System.UInt16)
IL_0074: ldloc.s 4 (System.UInt16)
IL_0076: brfalse => Label1
IL_007B: call static BuildingManager
ColossalFramework.Singleton`1<BuildingManager>::get_instance()
IL_0080: stloc.s 5 (BuildingManager)
IL_0082: ldloc.s 5 (BuildingManager)
IL_0084: ldfld Array16`1<Building> BuildingManager::m_buildings
IL_0089: ldfld Building[] Array16`1<Building>::m_buffer
IL_008E: ldloc.s 4 (System.UInt16)
IL_0090: ldelema Building
IL_0095: ldfld System.UInt16 Building::m_electricityBuffer
IL_009A: ldarg.2
IL_009B: beq => Label2
IL_00A0: ldloc.s 5 (BuildingManager)
IL_00A2: ldfld Array16`1<Building> BuildingManager::m_buildings
IL_00A7: ldfld Building[] Array16`1<Building>::m_buffer
IL_00AC: ldloc.s 4 (System.UInt16)
IL_00AE: ldelema Building
IL_00B3: ldarg.2
IL_00B4: conv.u2
IL_00B5: stfld System.UInt16 Building::m_electricityBuffer
IL_00BA: ldloc.0
IL_00BB: ldc.i4.1
IL_00BC: ceq
IL_00BE: stloc.2
IL_00BF: Label2
IL_00BF: ldloc.2
IL_00C0: brfalse => Label3
IL_00C5: ldloc.s 5 (BuildingManager)
IL_00C7: ldloc.s 4 (System.UInt16)
IL_00C9: callvirt System.Void BuildingManager::UpdateBuildingColors(System.UInt16
building)
IL_00CE: Label1
IL_00CE: Label3
IL_00CE: ldloc.3
IL_00CF: ldc.i4 -67108865
IL_00D4: and
IL_00D5: stloc.s 6 (NetNode+Flags)
IL_00D7: ldarg.2
IL_00D8: brfalse => Label4
IL_00DD: ldloc.s 6 (NetNode+Flags)
IL_00DF: ldc.i4 67108864
IL_00E4: or
IL_00E5: stloc.s 6 (NetNode+Flags)
IL_00E7: Label4
IL_00E7: ldloc.s 6 (NetNode+Flags)
IL_00E9: ldloc.3
IL_00EA: beq => Label5
IL_00EF: ldloc.1
IL_00F0: ldfld Array16`1<NetNode> NetManager::m_nodes
IL_00F5: ldfld NetNode[] Array16`1<NetNode>::m_buffer
IL_00FA: ldarg.1
IL_00FB: ldelema NetNode
IL_0100: ldloc.s 6 (NetNode+Flags)
IL_0102: stfld Flags NetNode::m_flags
IL_0107: ldloc.0
IL_0108: ldc.i4.1
IL_0109: ceq
IL_010B: stloc.2
IL_010C: Label5
IL_010C: ldloc.2
IL_010D: brfalse => Label6
IL_0112: ldloc.1
IL_0113: ldarg.1
IL_0114: conv.u2
IL_0115: callvirt System.Void NetManager::UpdateNodeColors(System.UInt16 node)
IL_011A: ldc.i4.0
IL_011B: stloc.s 7 (System.Int32)
IL_011D: br => Label7
IL_0122: Label9
IL_0122: ldloc.1
IL_0123: ldfld Array16`1<NetNode> NetManager::m_nodes
IL_0128: ldfld NetNode[] Array16`1<NetNode>::m_buffer
IL_012D: ldarg.1
IL_012E: ldelema NetNode
IL_0133: ldloc.s 7 (System.Int32)
IL_0135: call System.UInt16 NetNode::GetSegment(System.Int32 index)
IL_013A: stloc.s 8 (System.UInt16)
IL_013C: ldloc.s 8 (System.UInt16)
IL_013E: brfalse => Label8
IL_0143: ldloc.1
IL_0144: ldloc.s 8 (System.UInt16)
IL_0146: callvirt System.Void NetManager::UpdateSegmentColors(System.UInt16
segment)
IL_014B: Label8
IL_014B: ldloc.s 7 (System.Int32)
IL_014D: ldc.i4.1
IL_014E: add
IL_014F: stloc.s 7 (System.Int32)
IL_0151: Label7
IL_0151: ldloc.s 7 (System.Int32)
IL_0153: ldc.i4.8
IL_0154: blt => Label9
IL_0159: // end original
IL_0159: Label6
IL_0159: Label10
IL_0159: ret
DONE

### Patch: static System.Void PropInstance::RenderInstance(CameraInfo cameraInfo,


PropInfo info, InstanceID id, UnityEngine.Vector3 position, System.Single scale,
System.Single angle, UnityEngine.Color color, UnityEngine.Vector4 objectIndex,
System.Boolean active, UnityEngine.Texture heightMap, UnityEngine.Vector4
heightMapping, UnityEngine.Vector4 surfaceMapping, UnityEngine.Texture
waterHeightMap, UnityEngine.Vector4 waterHeightMapping, UnityEngine.Vector4
waterSurfaceMapping)
### Replacement: static System.Void
PropInstance::PropInstance.RenderInstance_Patch0(CameraInfo cameraInfo, PropInfo
info, InstanceID id, UnityEngine.Vector3 position, System.Single scale,
System.Single angle, UnityEngine.Color color, UnityEngine.Vector4 objectIndex,
System.Boolean active, UnityEngine.Texture heightMap, UnityEngine.Vector4
heightMapping, UnityEngine.Vector4 surfaceMapping, UnityEngine.Texture
waterHeightMap, UnityEngine.Vector4 waterHeightMapping, UnityEngine.Vector4
waterSurfaceMapping)
IL_0000: Local var 0: UnityEngine.Matrix4x4
IL_0000: Local var 1: System.Single
IL_0000: Local var 2: System.Int32
IL_0000: Local var 3: UnityEngine.Vector3
IL_0000: Local var 4: UnityEngine.Vector3
IL_0000: Local var 5: EffectInfo/SpawnArea
IL_0000: Local var 6: System.Single
IL_0000: Local var 7: LightSystem
IL_0000: Local var 8: ColossalFramework.Math.Randomizer
IL_0000: Local var 9: UnityEngine.Vector4
IL_0000: Local var 10: System.Single
IL_0000: Local var 11: System.Single
IL_0000: Local var 12: System.Single
IL_0000: Local var 13: UnityEngine.Matrix4x4
IL_0000: Local var 14: PropManager
IL_0000: Local var 15: UnityEngine.MaterialPropertyBlock
IL_0000: Local var 16: System.Int32
IL_0000: // start original
IL_0000: ldarg.1
IL_0001: ldfld System.Boolean PrefabInfo::m_prefabInitialized
IL_0006: brfalse => Label0
IL_000B: ldarg.1
IL_000C: ldfld System.Boolean PropInfo::m_hasEffects
IL_0011: brfalse => Label1
IL_0016: ldarg.s 8
IL_0018: brtrue => Label2
IL_001D: ldarg.1
IL_001E: ldfld System.Boolean PropInfo::m_alwaysActive
IL_0023: brfalse => Label3
IL_0028: Label2
IL_0028: ldloca.s 0 (UnityEngine.Matrix4x4)
IL_002A: initobj UnityEngine.Matrix4x4
IL_0030: ldloca.s 0 (UnityEngine.Matrix4x4)
IL_0032: ldarg.3
IL_0033: ldarg.s 5
IL_0035: ldc.r4 57.29578
IL_003A: mul
IL_003B: call static UnityEngine.Vector3 UnityEngine.Vector3::get_down()
IL_0040: call static UnityEngine.Quaternion
UnityEngine.Quaternion::AngleAxis(System.Single angle, UnityEngine.Vector3 axis)
IL_0045: ldarg.s 4
IL_0047: ldarg.s 4
IL_0049: ldarg.s 4
IL_004B: newobj System.Void UnityEngine.Vector3::.ctor(System.Single x,
System.Single y, System.Single z)
IL_0050: call System.Void UnityEngine.Matrix4x4::SetTRS(UnityEngine.Vector3
pos, UnityEngine.Quaternion q, UnityEngine.Vector3 s)
IL_0055: call static SimulationManager
ColossalFramework.Singleton`1<SimulationManager>::get_instance()
IL_005A: ldfld System.Single SimulationManager::m_simulationTimeDelta
IL_005F: stloc.1
IL_0060: ldc.i4.0
IL_0061: stloc.2
IL_0062: br => Label4
IL_0067: Label5
IL_0067: ldloca.s 0 (UnityEngine.Matrix4x4)
IL_0069: ldarg.1
IL_006A: ldfld Effect[] PropInfo::m_effects
IL_006F: ldloc.2
IL_0070: ldelema PropInfo+Effect
IL_0075: ldfld UnityEngine.Vector3 Effect::m_position
IL_007A: call UnityEngine.Vector3
UnityEngine.Matrix4x4::MultiplyPoint(UnityEngine.Vector3 v)
IL_007F: stloc.3
IL_0080: ldloca.s 0 (UnityEngine.Matrix4x4)
IL_0082: ldarg.1
IL_0083: ldfld Effect[] PropInfo::m_effects
IL_0088: ldloc.2
IL_0089: ldelema PropInfo+Effect
IL_008E: ldfld UnityEngine.Vector3 Effect::m_direction
IL_0093: call UnityEngine.Vector3
UnityEngine.Matrix4x4::MultiplyVector(UnityEngine.Vector3 v)
IL_0098: stloc.s 4 (UnityEngine.Vector3)
IL_009A: ldloca.s 5 (EffectInfo+SpawnArea)
IL_009C: ldloc.3
IL_009D: ldloc.s 4 (UnityEngine.Vector3)
IL_009F: ldc.r4 0
IL_00A4: call System.Void SpawnArea::.ctor(UnityEngine.Vector3 position,
UnityEngine.Vector3 direction, System.Single radius)
IL_00A9: ldarg.1
IL_00AA: ldfld Effect[] PropInfo::m_effects
IL_00AF: ldloc.2
IL_00B0: ldelema PropInfo+Effect
IL_00B5: ldfld EffectInfo Effect::m_effect
IL_00BA: ldarg.2
IL_00BB: ldloc.s 5 (EffectInfo+SpawnArea)
IL_00BD: call static UnityEngine.Vector3 UnityEngine.Vector3::get_zero()
IL_00C2: ldc.r4 0
IL_00C7: ldc.r4 1
IL_00CC: ldc.r4 -1
IL_00D1: ldloc.1
IL_00D2: ldarg.0
IL_00D3: callvirt virtual System.Void EffectInfo::RenderEffect(InstanceID id,
SpawnArea area, UnityEngine.Vector3 velocity, System.Single acceleration,
System.Single magnitude, System.Single timeOffset, System.Single timeDelta,
CameraInfo cameraInfo)
IL_00D8: ldloc.2
IL_00D9: ldc.i4.1
IL_00DA: add
IL_00DB: stloc.2
IL_00DC: Label4
IL_00DC: ldloc.2
IL_00DD: ldarg.1
IL_00DE: ldfld Effect[] PropInfo::m_effects
IL_00E3: ldlen
IL_00E4: conv.i4
IL_00E5: blt => Label5
IL_00EA: Label1
IL_00EA: Label3
IL_00EA: ldarg.1
IL_00EB: ldfld System.Boolean PropInfo::m_hasRenderer
IL_00F0: brfalse => Label6
IL_00F5: ldarg.0
IL_00F6: ldfld System.Int32 CameraInfo::m_layerMask
IL_00FB: ldc.i4.1
IL_00FC: ldarg.1
IL_00FD: ldfld System.Int32 PrefabInfo::m_prefabDataLayer
IL_0102: ldc.i4.s 31
IL_0104: and
IL_0105: shl
IL_0106: and
IL_0107: brfalse => Label7
IL_010C: call static InfoManager
ColossalFramework.Singleton`1<InfoManager>::get_instance()
IL_0111: callvirt InfoMode InfoManager::get_CurrentMode()
IL_0116: brtrue => Label8
IL_011B: ldarg 2
IL_011F: call static System.Boolean
ElectricRoads.Overrides.ElectricRoadsOverrides::CheckElectrityNetForLight(InstanceI
D id)
IL_0124: brfalse => Label24
IL_0129: ldc.r4 0
IL_012E: stloc.s 6 (System.Single)
IL_0130: ldarg.s 8
IL_0132: brtrue => Label9
IL_0137: ldarg.1
IL_0138: ldfld System.Boolean PropInfo::m_alwaysActive
IL_013D: brtrue => Label10
IL_0142: Label24
IL_0142: ldarga.s 7
IL_0144: ldc.r4 0
IL_0149: stfld System.Single UnityEngine.Vector4::z
IL_014E: br => Label11
IL_0153: Label9
IL_0153: Label10
IL_0153: ldarg.1
IL_0154: ldflda UnityEngine.Vector2 PropInfo::m_illuminationOffRange
IL_0159: ldfld System.Single UnityEngine.Vector2::x
IL_015E: ldc.r4 1000
IL_0163: blt => Label12
IL_0168: ldarg.1
IL_0169: ldfld BlinkType PropInfo::m_illuminationBlinkType
IL_016E: brfalse => Label13
IL_0173: Label12
IL_0173: call static RenderManager
ColossalFramework.Singleton`1<RenderManager>::get_instance()
IL_0178: callvirt LightSystem RenderManager::get_lightSystem()
IL_017D: stloc.s 7 (LightSystem)
IL_017F: ldloca.s 8 (ColossalFramework.Math.Randomizer)
IL_0181: ldarga.s 2
IL_0183: call System.UInt32 InstanceID::get_Index()
IL_0188: call System.Void
ColossalFramework.Math.Randomizer::.ctor(System.UInt32 _seed)
IL_018D: ldarg.1
IL_018E: ldflda UnityEngine.Vector2 PropInfo::m_illuminationOffRange
IL_0193: ldfld System.Single UnityEngine.Vector2::x
IL_0198: ldloca.s 8 (ColossalFramework.Math.Randomizer)
IL_019A: ldc.i4 100000
IL_019F: call System.Int32
ColossalFramework.Math.Randomizer::Int32(System.UInt32 range)
IL_01A4: conv.r4
IL_01A5: ldc.r4 1E-05
IL_01AA: mul
IL_01AB: ldarg.1
IL_01AC: ldflda UnityEngine.Vector2 PropInfo::m_illuminationOffRange
IL_01B1: ldfld System.Single UnityEngine.Vector2::y
IL_01B6: ldarg.1
IL_01B7: ldflda UnityEngine.Vector2 PropInfo::m_illuminationOffRange
IL_01BC: ldfld System.Single UnityEngine.Vector2::x
IL_01C1: sub
IL_01C2: mul
IL_01C3: add
IL_01C4: stloc.s 6 (System.Single)
IL_01C6: ldarga.s 7
IL_01C8: ldloc.s 6 (System.Single)
IL_01CA: ldc.r4 0.01
IL_01CF: add
IL_01D0: ldloc.s 6 (System.Single)
IL_01D2: ldc.r4 0.01
IL_01D7: sub
IL_01D8: ldloc.s 7 (LightSystem)
IL_01DA: callvirt System.Single LightSystem::get_DayLightIntensity()
IL_01DF: call static System.Single MathUtils::SmoothStep(System.Single edge0,
System.Single edge1, System.Single x)
IL_01E4: stfld System.Single UnityEngine.Vector4::z
IL_01E9: ldarg.1
IL_01EA: ldfld BlinkType PropInfo::m_illuminationBlinkType
IL_01EF: brfalse => Label14
IL_01F4: ldarg.1
IL_01F5: ldfld BlinkType PropInfo::m_illuminationBlinkType
IL_01FA: call static UnityEngine.Vector4
LightEffect::GetBlinkVector(BlinkType type)
IL_01FF: stloc.s 9 (UnityEngine.Vector4)
IL_0201: ldloc.s 6 (System.Single)
IL_0203: ldc.r4 3.71
IL_0208: mul
IL_0209: call static SimulationManager
ColossalFramework.Singleton`1<SimulationManager>::get_instance()
IL_020E: ldfld System.Single SimulationManager::m_simulationTimer
IL_0213: ldloca.s 9 (UnityEngine.Vector4)
IL_0215: ldfld System.Single UnityEngine.Vector4::w
IL_021A: div
IL_021B: add
IL_021C: stloc.s 10 (System.Single)
IL_021E: ldloc.s 10 (System.Single)
IL_0220: ldloc.s 10 (System.Single)
IL_0222: call static System.Single UnityEngine.Mathf::Floor(System.Single f)
IL_0227: sub
IL_0228: ldloca.s 9 (UnityEngine.Vector4)
IL_022A: ldfld System.Single UnityEngine.Vector4::w
IL_022F: mul
IL_0230: stloc.s 10 (System.Single)
IL_0232: ldloca.s 9 (UnityEngine.Vector4)
IL_0234: ldfld System.Single UnityEngine.Vector4::x
IL_0239: ldloca.s 9 (UnityEngine.Vector4)
IL_023B: ldfld System.Single UnityEngine.Vector4::y
IL_0240: ldloc.s 10 (System.Single)
IL_0242: call static System.Single MathUtils::SmoothStep(System.Single edge0,
System.Single edge1, System.Single x)
IL_0247: stloc.s 11 (System.Single)
IL_0249: ldloca.s 9 (UnityEngine.Vector4)
IL_024B: ldfld System.Single UnityEngine.Vector4::w
IL_0250: ldloca.s 9 (UnityEngine.Vector4)
IL_0252: ldfld System.Single UnityEngine.Vector4::z
IL_0257: ldloc.s 10 (System.Single)
IL_0259: call static System.Single MathUtils::SmoothStep(System.Single edge0,
System.Single edge1, System.Single x)
IL_025E: stloc.s 12 (System.Single)
IL_0260: ldarga.s 7
IL_0262: dup
IL_0263: ldfld System.Single UnityEngine.Vector4::z
IL_0268: ldc.r4 1
IL_026D: ldloc.s 11 (System.Single)
IL_026F: ldloc.s 12 (System.Single)
IL_0271: mul
IL_0272: sub
IL_0273: mul
IL_0274: stfld System.Single UnityEngine.Vector4::z
IL_0279: Label14
IL_0279: br => Label15
IL_027E: Label13
IL_027E: ldarga.s 7
IL_0280: ldc.r4 1
IL_0285: stfld System.Single UnityEngine.Vector4::z
IL_028A: Label8
IL_028A: Label11
IL_028A: Label15
IL_028A: ldarg.0
IL_028B: brfalse => Label16
IL_0290: ldarg.0
IL_0291: ldarg.3
IL_0292: ldarg.1
IL_0293: ldfld System.Single PropInfo::m_lodRenderDistance
IL_0298: callvirt System.Boolean
CameraInfo::CheckRenderDistance(UnityEngine.Vector3 point, System.Single
maxDistance)
IL_029D: brfalse => Label17
IL_02A2: Label16
IL_02A2: ldloca.s 13 (UnityEngine.Matrix4x4)
IL_02A4: initobj UnityEngine.Matrix4x4
IL_02AA: ldloca.s 13 (UnityEngine.Matrix4x4)
IL_02AC: ldarg.3
IL_02AD: ldarg.s 5
IL_02AF: ldc.r4 57.29578
IL_02B4: mul
IL_02B5: call static UnityEngine.Vector3 UnityEngine.Vector3::get_down()
IL_02BA: call static UnityEngine.Quaternion
UnityEngine.Quaternion::AngleAxis(System.Single angle, UnityEngine.Vector3 axis)
IL_02BF: ldarg.s 4
IL_02C1: ldarg.s 4
IL_02C3: ldarg.s 4
IL_02C5: newobj System.Void UnityEngine.Vector3::.ctor(System.Single x,
System.Single y, System.Single z)
IL_02CA: call System.Void UnityEngine.Matrix4x4::SetTRS(UnityEngine.Vector3
pos, UnityEngine.Quaternion q, UnityEngine.Vector3 s)
IL_02CF: call static PropManager
ColossalFramework.Singleton`1<PropManager>::get_instance()
IL_02D4: stloc.s 14 (PropManager)
IL_02D6: ldloc.s 14 (PropManager)
IL_02D8: ldfld UnityEngine.MaterialPropertyBlock PropManager::m_materialBlock
IL_02DD: stloc.s 15 (UnityEngine.MaterialPropertyBlock)
IL_02DF: ldloc.s 15 (UnityEngine.MaterialPropertyBlock)
IL_02E1: callvirt System.Void UnityEngine.MaterialPropertyBlock::Clear()
IL_02E6: ldloc.s 15 (UnityEngine.MaterialPropertyBlock)
IL_02E8: ldloc.s 14 (PropManager)
IL_02EA: ldfld System.Int32 PropManager::ID_Color
IL_02EF: ldarg.s 6
IL_02F1: callvirt System.Void
UnityEngine.MaterialPropertyBlock::SetColor(System.Int32 nameID, UnityEngine.Color
value)
IL_02F6: ldloc.s 15 (UnityEngine.MaterialPropertyBlock)
IL_02F8: ldloc.s 14 (PropManager)
IL_02FA: ldfld System.Int32 PropManager::ID_HeightMap
IL_02FF: ldarg.s 9
IL_0301: callvirt System.Void
UnityEngine.MaterialPropertyBlock::SetTexture(System.Int32 nameID,
UnityEngine.Texture value)
IL_0306: ldloc.s 15 (UnityEngine.MaterialPropertyBlock)
IL_0308: ldloc.s 14 (PropManager)
IL_030A: ldfld System.Int32 PropManager::ID_HeightMapping
IL_030F: ldarg.s 10
IL_0311: callvirt System.Void
UnityEngine.MaterialPropertyBlock::SetVector(System.Int32 nameID,
UnityEngine.Vector4 value)
IL_0316: ldloc.s 15 (UnityEngine.MaterialPropertyBlock)
IL_0318: ldloc.s 14 (PropManager)
IL_031A: ldfld System.Int32 PropManager::ID_SurfaceMapping
IL_031F: ldarg.s 11
IL_0321: callvirt System.Void
UnityEngine.MaterialPropertyBlock::SetVector(System.Int32 nameID,
UnityEngine.Vector4 value)
IL_0326: ldloc.s 15 (UnityEngine.MaterialPropertyBlock)
IL_0328: ldloc.s 14 (PropManager)
IL_032A: ldfld System.Int32 PropManager::ID_ObjectIndex
IL_032F: ldarg.s 7
IL_0331: callvirt System.Void
UnityEngine.MaterialPropertyBlock::SetVector(System.Int32 nameID,
UnityEngine.Vector4 value)
IL_0336: ldloc.s 15 (UnityEngine.MaterialPropertyBlock)
IL_0338: ldloc.s 14 (PropManager)
IL_033A: ldfld System.Int32 PropManager::ID_WaterHeightMap
IL_033F: ldarg.s 12
IL_0341: callvirt System.Void
UnityEngine.MaterialPropertyBlock::SetTexture(System.Int32 nameID,
UnityEngine.Texture value)
IL_0346: ldloc.s 15 (UnityEngine.MaterialPropertyBlock)
IL_0348: ldloc.s 14 (PropManager)
IL_034A: ldfld System.Int32 PropManager::ID_WaterHeightMapping
IL_034F: ldarg.s 13
IL_0351: callvirt System.Void
UnityEngine.MaterialPropertyBlock::SetVector(System.Int32 nameID,
UnityEngine.Vector4 value)
IL_0356: ldloc.s 15 (UnityEngine.MaterialPropertyBlock)
IL_0358: ldloc.s 14 (PropManager)
IL_035A: ldfld System.Int32 PropManager::ID_WaterSurfaceMapping
IL_035F: ldarg.s 14
IL_0361: callvirt System.Void
UnityEngine.MaterialPropertyBlock::SetVector(System.Int32 nameID,
UnityEngine.Vector4 value)
IL_0366: ldarg.1
IL_0367: ldfld UnityEngine.Vector4[] PropInfo::m_rollLocation
IL_036C: brfalse => Label18
IL_0371: ldarg.1
IL_0372: ldfld UnityEngine.Material PropInfo::m_material
IL_0377: ldloc.s 14 (PropManager)
IL_0379: ldfld System.Int32 PropManager::ID_RollLocation
IL_037E: ldarg.1
IL_037F: ldfld UnityEngine.Vector4[] PropInfo::m_rollLocation
IL_0384: callvirt System.Void UnityEngine.Material::SetVectorArray(System.Int32
nameID, UnityEngine.Vector4[] values)
IL_0389: ldarg.1
IL_038A: ldfld UnityEngine.Material PropInfo::m_material
IL_038F: ldloc.s 14 (PropManager)
IL_0391: ldfld System.Int32 PropManager::ID_RollParams
IL_0396: ldarg.1
IL_0397: ldfld UnityEngine.Vector4[] PropInfo::m_rollParams
IL_039C: callvirt System.Void UnityEngine.Material::SetVectorArray(System.Int32
nameID, UnityEngine.Vector4[] values)
IL_03A1: Label18
IL_03A1: ldloc.s 14 (PropManager)
IL_03A3: ldflda DrawCallData SimulationManagerBase`2<PropManager,
PropProperties>::m_drawCallData
IL_03A8: dup
IL_03A9: ldfld System.Int32 DrawCallData::m_defaultCalls
IL_03AE: ldc.i4.1
IL_03AF: add
IL_03B0: stfld System.Int32 DrawCallData::m_defaultCalls
IL_03B5: ldarg.1
IL_03B6: ldfld UnityEngine.Mesh PropInfo::m_mesh
IL_03BB: ldloc.s 13 (UnityEngine.Matrix4x4)
IL_03BD: ldarg.1
IL_03BE: ldfld UnityEngine.Material PropInfo::m_material
IL_03C3: ldarg.1
IL_03C4: ldfld System.Int32 PrefabInfo::m_prefabDataLayer
IL_03C9: ldnull
IL_03CA: ldc.i4.0
IL_03CB: ldloc.s 15 (UnityEngine.MaterialPropertyBlock)
IL_03CD: call static System.Void
UnityEngine.Graphics::DrawMesh(UnityEngine.Mesh mesh, UnityEngine.Matrix4x4 matrix,
UnityEngine.Material material, System.Int32 layer, UnityEngine.Camera camera,
System.Int32 submeshIndex, UnityEngine.MaterialPropertyBlock properties)
IL_03D2: br => Label19
IL_03D7: Label17
IL_03D7: ldarg.s 9
IL_03D9: ldarg.1
IL_03DA: ldfld UnityEngine.Texture PropInfo::m_lodHeightMap
IL_03DF: call static System.Boolean
UnityEngine.Object::op_Inequality(UnityEngine.Object x, UnityEngine.Object y)
IL_03E4: brtrue => Label20
IL_03E9: ldarg.s 12
IL_03EB: ldarg.1
IL_03EC: ldfld UnityEngine.Texture PropInfo::m_lodWaterHeightMap
IL_03F1: call static System.Boolean
UnityEngine.Object::op_Inequality(UnityEngine.Object x, UnityEngine.Object y)
IL_03F6: brfalse => Label21
IL_03FB: Label20
IL_03FB: ldarg.1
IL_03FC: ldfld System.Int32 PropInfo::m_lodCount
IL_0401: brfalse => Label22
IL_0406: ldarg.0
IL_0407: ldarg.1
IL_0408: call static System.Void PropInstance::RenderLod(CameraInfo
cameraInfo, PropInfo info)
IL_040D: Label22
IL_040D: ldarg.1
IL_040E: ldarg.s 9
IL_0410: stfld UnityEngine.Texture PropInfo::m_lodHeightMap
IL_0415: ldarg.1
IL_0416: ldarg.s 10
IL_0418: stfld UnityEngine.Vector4 PropInfo::m_lodHeightMapping
IL_041D: ldarg.1
IL_041E: ldarg.s 11
IL_0420: stfld UnityEngine.Vector4 PropInfo::m_lodSurfaceMapping
IL_0425: ldarg.1
IL_0426: ldarg.s 12
IL_0428: stfld UnityEngine.Texture PropInfo::m_lodWaterHeightMap
IL_042D: ldarg.1
IL_042E: ldarg.s 13
IL_0430: stfld UnityEngine.Vector4 PropInfo::m_lodWaterHeightMapping
IL_0435: ldarg.1
IL_0436: ldarg.s 14
IL_0438: stfld UnityEngine.Vector4 PropInfo::m_lodWaterSurfaceMapping
IL_043D: Label21
IL_043D: ldarga.s 7
IL_043F: ldarg.s 4
IL_0441: stfld System.Single UnityEngine.Vector4::w
IL_0446: ldarg.1
IL_0447: ldfld UnityEngine.Vector4[] PropInfo::m_lodLocations
IL_044C: ldarg.1
IL_044D: ldfld System.Int32 PropInfo::m_lodCount
IL_0452: ldelema UnityEngine.Vector4
IL_0457: ldarga.s 3
IL_0459: ldfld System.Single UnityEngine.Vector3::x
IL_045E: ldarga.s 3
IL_0460: ldfld System.Single UnityEngine.Vector3::y
IL_0465: ldarga.s 3
IL_0467: ldfld System.Single UnityEngine.Vector3::z
IL_046C: ldarg.s 5
IL_046E: newobj System.Void UnityEngine.Vector4::.ctor(System.Single x,
System.Single y, System.Single z, System.Single w)
IL_0473: stobj UnityEngine.Vector4
IL_0478: ldarg.1
IL_0479: ldfld UnityEngine.Vector4[] PropInfo::m_lodObjectIndices
IL_047E: ldarg.1
IL_047F: ldfld System.Int32 PropInfo::m_lodCount
IL_0484: ldelema UnityEngine.Vector4
IL_0489: ldarg.s 7
IL_048B: stobj UnityEngine.Vector4
IL_0490: ldarg.1
IL_0491: ldfld UnityEngine.Vector4[] PropInfo::m_lodColors
IL_0496: ldarg.1
IL_0497: ldfld System.Int32 PropInfo::m_lodCount
IL_049C: ldelema UnityEngine.Vector4
IL_04A1: ldarga.s 6
IL_04A3: call UnityEngine.Color UnityEngine.Color::get_linear()
IL_04A8: call static UnityEngine.Vector4
UnityEngine.Color::op_Implicit(UnityEngine.Color c)
IL_04AD: stobj UnityEngine.Vector4
IL_04B2: ldarg.1
IL_04B3: ldarg.1
IL_04B4: ldfld UnityEngine.Vector3 PropInfo::m_lodMin
IL_04B9: ldarg.3
IL_04BA: call static UnityEngine.Vector3
UnityEngine.Vector3::Min(UnityEngine.Vector3 lhs, UnityEngine.Vector3 rhs)
IL_04BF: stfld UnityEngine.Vector3 PropInfo::m_lodMin
IL_04C4: ldarg.1
IL_04C5: ldarg.1
IL_04C6: ldfld UnityEngine.Vector3 PropInfo::m_lodMax
IL_04CB: ldarg.3
IL_04CC: call static UnityEngine.Vector3
UnityEngine.Vector3::Max(UnityEngine.Vector3 lhs, UnityEngine.Vector3 rhs)
IL_04D1: stfld UnityEngine.Vector3 PropInfo::m_lodMax
IL_04D6: ldarg.1
IL_04D7: dup
IL_04D8: ldfld System.Int32 PropInfo::m_lodCount
IL_04DD: ldc.i4.1
IL_04DE: add
IL_04DF: dup
IL_04E0: stloc.s 16 (System.Int32)
IL_04E2: stfld System.Int32 PropInfo::m_lodCount
IL_04E7: ldloc.s 16 (System.Int32)
IL_04E9: ldarg.1
IL_04EA: ldfld UnityEngine.Vector4[] PropInfo::m_lodLocations
IL_04EF: ldlen
IL_04F0: conv.i4
IL_04F1: bne.un => Label23
IL_04F6: ldarg.0
IL_04F7: ldarg.1
IL_04F8: call static System.Void PropInstance::RenderLod(CameraInfo
cameraInfo, PropInfo info)
IL_04FD: // end original
IL_04FD: Label0
IL_04FD: Label6
IL_04FD: Label7
IL_04FD: Label19
IL_04FD: Label23
IL_04FD: ret
DONE

### Patch: static System.Void PropInstance::RenderInstance(CameraInfo cameraInfo,


PropInfo info, InstanceID id, UnityEngine.Vector3 position, System.Single scale,
System.Single angle, UnityEngine.Color color, UnityEngine.Vector4 objectIndex,
System.Boolean active)
### Replacement: static System.Void
PropInstance::PropInstance.RenderInstance_Patch0(CameraInfo cameraInfo, PropInfo
info, InstanceID id, UnityEngine.Vector3 position, System.Single scale,
System.Single angle, UnityEngine.Color color, UnityEngine.Vector4 objectIndex,
System.Boolean active)
IL_0000: Local var 0: UnityEngine.Matrix4x4
IL_0000: Local var 1: System.Single
IL_0000: Local var 2: System.Int32
IL_0000: Local var 3: UnityEngine.Vector3
IL_0000: Local var 4: UnityEngine.Vector3
IL_0000: Local var 5: EffectInfo/SpawnArea
IL_0000: Local var 6: System.Single
IL_0000: Local var 7: LightSystem
IL_0000: Local var 8: ColossalFramework.Math.Randomizer
IL_0000: Local var 9: UnityEngine.Vector4
IL_0000: Local var 10: System.Single
IL_0000: Local var 11: System.Single
IL_0000: Local var 12: System.Single
IL_0000: Local var 13: UnityEngine.Matrix4x4
IL_0000: Local var 14: PropManager
IL_0000: Local var 15: UnityEngine.MaterialPropertyBlock
IL_0000: Local var 16: UnityEngine.Matrix4x4
IL_0000: Local var 17: PropManager
IL_0000: Local var 18: UnityEngine.MaterialPropertyBlock
IL_0000: Local var 19: System.Int32
IL_0000: // start original
IL_0000: ldarg.1
IL_0001: ldfld System.Boolean PrefabInfo::m_prefabInitialized
IL_0006: brfalse => Label0
IL_000B: ldarg.1
IL_000C: ldfld System.Boolean PropInfo::m_hasEffects
IL_0011: brfalse => Label1
IL_0016: ldarg.s 8
IL_0018: brtrue => Label2
IL_001D: ldarg.1
IL_001E: ldfld System.Boolean PropInfo::m_alwaysActive
IL_0023: brfalse => Label3
IL_0028: Label2
IL_0028: ldloca.s 0 (UnityEngine.Matrix4x4)
IL_002A: initobj UnityEngine.Matrix4x4
IL_0030: ldloca.s 0 (UnityEngine.Matrix4x4)
IL_0032: ldarg.3
IL_0033: ldarg.s 5
IL_0035: ldc.r4 57.29578
IL_003A: mul
IL_003B: call static UnityEngine.Vector3 UnityEngine.Vector3::get_down()
IL_0040: call static UnityEngine.Quaternion
UnityEngine.Quaternion::AngleAxis(System.Single angle, UnityEngine.Vector3 axis)
IL_0045: ldarg.s 4
IL_0047: ldarg.s 4
IL_0049: ldarg.s 4
IL_004B: newobj System.Void UnityEngine.Vector3::.ctor(System.Single x,
System.Single y, System.Single z)
IL_0050: call System.Void UnityEngine.Matrix4x4::SetTRS(UnityEngine.Vector3
pos, UnityEngine.Quaternion q, UnityEngine.Vector3 s)
IL_0055: call static SimulationManager
ColossalFramework.Singleton`1<SimulationManager>::get_instance()
IL_005A: ldfld System.Single SimulationManager::m_simulationTimeDelta
IL_005F: stloc.1
IL_0060: ldc.i4.0
IL_0061: stloc.2
IL_0062: br => Label4
IL_0067: Label5
IL_0067: ldloca.s 0 (UnityEngine.Matrix4x4)
IL_0069: ldarg.1
IL_006A: ldfld Effect[] PropInfo::m_effects
IL_006F: ldloc.2
IL_0070: ldelema PropInfo+Effect
IL_0075: ldfld UnityEngine.Vector3 Effect::m_position
IL_007A: call UnityEngine.Vector3
UnityEngine.Matrix4x4::MultiplyPoint(UnityEngine.Vector3 v)
IL_007F: stloc.3
IL_0080: ldloca.s 0 (UnityEngine.Matrix4x4)
IL_0082: ldarg.1
IL_0083: ldfld Effect[] PropInfo::m_effects
IL_0088: ldloc.2
IL_0089: ldelema PropInfo+Effect
IL_008E: ldfld UnityEngine.Vector3 Effect::m_direction
IL_0093: call UnityEngine.Vector3
UnityEngine.Matrix4x4::MultiplyVector(UnityEngine.Vector3 v)
IL_0098: stloc.s 4 (UnityEngine.Vector3)
IL_009A: ldloca.s 5 (EffectInfo+SpawnArea)
IL_009C: ldloc.3
IL_009D: ldloc.s 4 (UnityEngine.Vector3)
IL_009F: ldc.r4 0
IL_00A4: call System.Void SpawnArea::.ctor(UnityEngine.Vector3 position,
UnityEngine.Vector3 direction, System.Single radius)
IL_00A9: ldarg.1
IL_00AA: ldfld Effect[] PropInfo::m_effects
IL_00AF: ldloc.2
IL_00B0: ldelema PropInfo+Effect
IL_00B5: ldfld EffectInfo Effect::m_effect
IL_00BA: ldarg.2
IL_00BB: ldloc.s 5 (EffectInfo+SpawnArea)
IL_00BD: call static UnityEngine.Vector3 UnityEngine.Vector3::get_zero()
IL_00C2: ldc.r4 0
IL_00C7: ldc.r4 1
IL_00CC: ldc.r4 -1
IL_00D1: ldloc.1
IL_00D2: ldarg.0
IL_00D3: callvirt virtual System.Void EffectInfo::RenderEffect(InstanceID id,
SpawnArea area, UnityEngine.Vector3 velocity, System.Single acceleration,
System.Single magnitude, System.Single timeOffset, System.Single timeDelta,
CameraInfo cameraInfo)
IL_00D8: ldloc.2
IL_00D9: ldc.i4.1
IL_00DA: add
IL_00DB: stloc.2
IL_00DC: Label4
IL_00DC: ldloc.2
IL_00DD: ldarg.1
IL_00DE: ldfld Effect[] PropInfo::m_effects
IL_00E3: ldlen
IL_00E4: conv.i4
IL_00E5: blt => Label5
IL_00EA: Label1
IL_00EA: Label3
IL_00EA: ldarg.1
IL_00EB: ldfld System.Boolean PropInfo::m_hasRenderer
IL_00F0: brfalse => Label6
IL_00F5: ldarg.0
IL_00F6: ldfld System.Int32 CameraInfo::m_layerMask
IL_00FB: ldc.i4.1
IL_00FC: ldarg.1
IL_00FD: ldfld System.Int32 PrefabInfo::m_prefabDataLayer
IL_0102: ldc.i4.s 31
IL_0104: and
IL_0105: shl
IL_0106: and
IL_0107: brfalse => Label7
IL_010C: call static InfoManager
ColossalFramework.Singleton`1<InfoManager>::get_instance()
IL_0111: callvirt InfoMode InfoManager::get_CurrentMode()
IL_0116: brtrue => Label8
IL_011B: ldarg 2
IL_011F: call static System.Boolean
ElectricRoads.Overrides.ElectricRoadsOverrides::CheckElectrityNetForLight(InstanceI
D id)
IL_0124: brfalse => Label24
IL_0129: ldc.r4 0
IL_012E: stloc.s 6 (System.Single)
IL_0130: ldarg.s 8
IL_0132: brtrue => Label9
IL_0137: ldarg.1
IL_0138: ldfld System.Boolean PropInfo::m_alwaysActive
IL_013D: brtrue => Label10
IL_0142: Label24
IL_0142: ldarga.s 7
IL_0144: ldc.r4 0
IL_0149: stfld System.Single UnityEngine.Vector4::z
IL_014E: br => Label11
IL_0153: Label9
IL_0153: Label10
IL_0153: ldarg.1
IL_0154: ldflda UnityEngine.Vector2 PropInfo::m_illuminationOffRange
IL_0159: ldfld System.Single UnityEngine.Vector2::x
IL_015E: ldc.r4 1000
IL_0163: blt => Label12
IL_0168: ldarg.1
IL_0169: ldfld BlinkType PropInfo::m_illuminationBlinkType
IL_016E: brfalse => Label13
IL_0173: Label12
IL_0173: call static RenderManager
ColossalFramework.Singleton`1<RenderManager>::get_instance()
IL_0178: callvirt LightSystem RenderManager::get_lightSystem()
IL_017D: stloc.s 7 (LightSystem)
IL_017F: ldloca.s 8 (ColossalFramework.Math.Randomizer)
IL_0181: ldarga.s 2
IL_0183: call System.UInt32 InstanceID::get_Index()
IL_0188: call System.Void
ColossalFramework.Math.Randomizer::.ctor(System.UInt32 _seed)
IL_018D: ldarg.1
IL_018E: ldflda UnityEngine.Vector2 PropInfo::m_illuminationOffRange
IL_0193: ldfld System.Single UnityEngine.Vector2::x
IL_0198: ldloca.s 8 (ColossalFramework.Math.Randomizer)
IL_019A: ldc.i4 100000
IL_019F: call System.Int32
ColossalFramework.Math.Randomizer::Int32(System.UInt32 range)
IL_01A4: conv.r4
IL_01A5: ldc.r4 1E-05
IL_01AA: mul
IL_01AB: ldarg.1
IL_01AC: ldflda UnityEngine.Vector2 PropInfo::m_illuminationOffRange
IL_01B1: ldfld System.Single UnityEngine.Vector2::y
IL_01B6: ldarg.1
IL_01B7: ldflda UnityEngine.Vector2 PropInfo::m_illuminationOffRange
IL_01BC: ldfld System.Single UnityEngine.Vector2::x
IL_01C1: sub
IL_01C2: mul
IL_01C3: add
IL_01C4: stloc.s 6 (System.Single)
IL_01C6: ldarga.s 7
IL_01C8: ldloc.s 6 (System.Single)
IL_01CA: ldc.r4 0.01
IL_01CF: add
IL_01D0: ldloc.s 6 (System.Single)
IL_01D2: ldc.r4 0.01
IL_01D7: sub
IL_01D8: ldloc.s 7 (LightSystem)
IL_01DA: callvirt System.Single LightSystem::get_DayLightIntensity()
IL_01DF: call static System.Single MathUtils::SmoothStep(System.Single edge0,
System.Single edge1, System.Single x)
IL_01E4: stfld System.Single UnityEngine.Vector4::z
IL_01E9: ldarg.1
IL_01EA: ldfld BlinkType PropInfo::m_illuminationBlinkType
IL_01EF: brfalse => Label14
IL_01F4: ldarg.1
IL_01F5: ldfld BlinkType PropInfo::m_illuminationBlinkType
IL_01FA: call static UnityEngine.Vector4
LightEffect::GetBlinkVector(BlinkType type)
IL_01FF: stloc.s 9 (UnityEngine.Vector4)
IL_0201: ldloc.s 6 (System.Single)
IL_0203: ldc.r4 3.71
IL_0208: mul
IL_0209: call static SimulationManager
ColossalFramework.Singleton`1<SimulationManager>::get_instance()
IL_020E: ldfld System.Single SimulationManager::m_simulationTimer
IL_0213: ldloca.s 9 (UnityEngine.Vector4)
IL_0215: ldfld System.Single UnityEngine.Vector4::w
IL_021A: div
IL_021B: add
IL_021C: stloc.s 10 (System.Single)
IL_021E: ldloc.s 10 (System.Single)
IL_0220: ldloc.s 10 (System.Single)
IL_0222: call static System.Single UnityEngine.Mathf::Floor(System.Single f)
IL_0227: sub
IL_0228: ldloca.s 9 (UnityEngine.Vector4)
IL_022A: ldfld System.Single UnityEngine.Vector4::w
IL_022F: mul
IL_0230: stloc.s 10 (System.Single)
IL_0232: ldloca.s 9 (UnityEngine.Vector4)
IL_0234: ldfld System.Single UnityEngine.Vector4::x
IL_0239: ldloca.s 9 (UnityEngine.Vector4)
IL_023B: ldfld System.Single UnityEngine.Vector4::y
IL_0240: ldloc.s 10 (System.Single)
IL_0242: call static System.Single MathUtils::SmoothStep(System.Single edge0,
System.Single edge1, System.Single x)
IL_0247: stloc.s 11 (System.Single)
IL_0249: ldloca.s 9 (UnityEngine.Vector4)
IL_024B: ldfld System.Single UnityEngine.Vector4::w
IL_0250: ldloca.s 9 (UnityEngine.Vector4)
IL_0252: ldfld System.Single UnityEngine.Vector4::z
IL_0257: ldloc.s 10 (System.Single)
IL_0259: call static System.Single MathUtils::SmoothStep(System.Single edge0,
System.Single edge1, System.Single x)
IL_025E: stloc.s 12 (System.Single)
IL_0260: ldarga.s 7
IL_0262: dup
IL_0263: ldfld System.Single UnityEngine.Vector4::z
IL_0268: ldc.r4 1
IL_026D: ldloc.s 11 (System.Single)
IL_026F: ldloc.s 12 (System.Single)
IL_0271: mul
IL_0272: sub
IL_0273: mul
IL_0274: stfld System.Single UnityEngine.Vector4::z
IL_0279: Label14
IL_0279: br => Label15
IL_027E: Label13
IL_027E: ldarga.s 7
IL_0280: ldc.r4 1
IL_0285: stfld System.Single UnityEngine.Vector4::z
IL_028A: Label8
IL_028A: Label11
IL_028A: Label15
IL_028A: ldarg.0
IL_028B: brfalse => Label16
IL_0290: ldarg.0
IL_0291: ldarg.3
IL_0292: ldarg.1
IL_0293: ldfld System.Single PropInfo::m_lodRenderDistance
IL_0298: callvirt System.Boolean
CameraInfo::CheckRenderDistance(UnityEngine.Vector3 point, System.Single
maxDistance)
IL_029D: brfalse => Label17
IL_02A2: Label16
IL_02A2: ldloca.s 13 (UnityEngine.Matrix4x4)
IL_02A4: initobj UnityEngine.Matrix4x4
IL_02AA: ldloca.s 13 (UnityEngine.Matrix4x4)
IL_02AC: ldarg.3
IL_02AD: ldarg.s 5
IL_02AF: ldc.r4 57.29578
IL_02B4: mul
IL_02B5: call static UnityEngine.Vector3 UnityEngine.Vector3::get_down()
IL_02BA: call static UnityEngine.Quaternion
UnityEngine.Quaternion::AngleAxis(System.Single angle, UnityEngine.Vector3 axis)
IL_02BF: ldarg.s 4
IL_02C1: ldarg.s 4
IL_02C3: ldarg.s 4
IL_02C5: newobj System.Void UnityEngine.Vector3::.ctor(System.Single x,
System.Single y, System.Single z)
IL_02CA: call System.Void UnityEngine.Matrix4x4::SetTRS(UnityEngine.Vector3
pos, UnityEngine.Quaternion q, UnityEngine.Vector3 s)
IL_02CF: call static PropManager
ColossalFramework.Singleton`1<PropManager>::get_instance()
IL_02D4: stloc.s 14 (PropManager)
IL_02D6: ldloc.s 14 (PropManager)
IL_02D8: ldfld UnityEngine.MaterialPropertyBlock PropManager::m_materialBlock
IL_02DD: stloc.s 15 (UnityEngine.MaterialPropertyBlock)
IL_02DF: ldloc.s 15 (UnityEngine.MaterialPropertyBlock)
IL_02E1: callvirt System.Void UnityEngine.MaterialPropertyBlock::Clear()
IL_02E6: ldloc.s 15 (UnityEngine.MaterialPropertyBlock)
IL_02E8: ldloc.s 14 (PropManager)
IL_02EA: ldfld System.Int32 PropManager::ID_Color
IL_02EF: ldarg.s 6
IL_02F1: callvirt System.Void
UnityEngine.MaterialPropertyBlock::SetColor(System.Int32 nameID, UnityEngine.Color
value)
IL_02F6: ldloc.s 15 (UnityEngine.MaterialPropertyBlock)
IL_02F8: ldloc.s 14 (PropManager)
IL_02FA: ldfld System.Int32 PropManager::ID_ObjectIndex
IL_02FF: ldarg.s 7
IL_0301: callvirt System.Void
UnityEngine.MaterialPropertyBlock::SetVector(System.Int32 nameID,
UnityEngine.Vector4 value)
IL_0306: ldarg.1
IL_0307: ldfld UnityEngine.Vector4[] PropInfo::m_rollLocation
IL_030C: brfalse => Label18
IL_0311: ldarg.1
IL_0312: ldfld UnityEngine.Material PropInfo::m_material
IL_0317: ldloc.s 14 (PropManager)
IL_0319: ldfld System.Int32 PropManager::ID_RollLocation
IL_031E: ldarg.1
IL_031F: ldfld UnityEngine.Vector4[] PropInfo::m_rollLocation
IL_0324: callvirt System.Void UnityEngine.Material::SetVectorArray(System.Int32
nameID, UnityEngine.Vector4[] values)
IL_0329: ldarg.1
IL_032A: ldfld UnityEngine.Material PropInfo::m_material
IL_032F: ldloc.s 14 (PropManager)
IL_0331: ldfld System.Int32 PropManager::ID_RollParams
IL_0336: ldarg.1
IL_0337: ldfld UnityEngine.Vector4[] PropInfo::m_rollParams
IL_033C: callvirt System.Void UnityEngine.Material::SetVectorArray(System.Int32
nameID, UnityEngine.Vector4[] values)
IL_0341: Label18
IL_0341: ldloc.s 14 (PropManager)
IL_0343: ldflda DrawCallData SimulationManagerBase`2<PropManager,
PropProperties>::m_drawCallData
IL_0348: dup
IL_0349: ldfld System.Int32 DrawCallData::m_defaultCalls
IL_034E: ldc.i4.1
IL_034F: add
IL_0350: stfld System.Int32 DrawCallData::m_defaultCalls
IL_0355: ldarg.1
IL_0356: ldfld UnityEngine.Mesh PropInfo::m_mesh
IL_035B: ldloc.s 13 (UnityEngine.Matrix4x4)
IL_035D: ldarg.1
IL_035E: ldfld UnityEngine.Material PropInfo::m_material
IL_0363: ldarg.1
IL_0364: ldfld System.Int32 PrefabInfo::m_prefabDataLayer
IL_0369: ldnull
IL_036A: ldc.i4.0
IL_036B: ldloc.s 15 (UnityEngine.MaterialPropertyBlock)
IL_036D: call static System.Void
UnityEngine.Graphics::DrawMesh(UnityEngine.Mesh mesh, UnityEngine.Matrix4x4 matrix,
UnityEngine.Material material, System.Int32 layer, UnityEngine.Camera camera,
System.Int32 submeshIndex, UnityEngine.MaterialPropertyBlock properties)
IL_0372: br => Label19
IL_0377: Label17
IL_0377: ldarg.1
IL_0378: ldfld UnityEngine.Material PropInfo::m_lodMaterialCombined
IL_037D: ldnull
IL_037E: call static System.Boolean
UnityEngine.Object::op_Equality(UnityEngine.Object x, UnityEngine.Object y)
IL_0383: brfalse => Label20
IL_0388: ldloca.s 16 (UnityEngine.Matrix4x4)
IL_038A: initobj UnityEngine.Matrix4x4
IL_0390: ldloca.s 16 (UnityEngine.Matrix4x4)
IL_0392: ldarg.3
IL_0393: ldarg.s 5
IL_0395: ldc.r4 57.29578
IL_039A: mul
IL_039B: call static UnityEngine.Vector3 UnityEngine.Vector3::get_down()
IL_03A0: call static UnityEngine.Quaternion
UnityEngine.Quaternion::AngleAxis(System.Single angle, UnityEngine.Vector3 axis)
IL_03A5: ldarg.s 4
IL_03A7: ldarg.s 4
IL_03A9: ldarg.s 4
IL_03AB: newobj System.Void UnityEngine.Vector3::.ctor(System.Single x,
System.Single y, System.Single z)
IL_03B0: call System.Void UnityEngine.Matrix4x4::SetTRS(UnityEngine.Vector3
pos, UnityEngine.Quaternion q, UnityEngine.Vector3 s)
IL_03B5: call static PropManager
ColossalFramework.Singleton`1<PropManager>::get_instance()
IL_03BA: stloc.s 17 (PropManager)
IL_03BC: ldloc.s 17 (PropManager)
IL_03BE: ldfld UnityEngine.MaterialPropertyBlock PropManager::m_materialBlock
IL_03C3: stloc.s 18 (UnityEngine.MaterialPropertyBlock)
IL_03C5: ldloc.s 18 (UnityEngine.MaterialPropertyBlock)
IL_03C7: callvirt System.Void UnityEngine.MaterialPropertyBlock::Clear()
IL_03CC: ldloc.s 18 (UnityEngine.MaterialPropertyBlock)
IL_03CE: ldloc.s 17 (PropManager)
IL_03D0: ldfld System.Int32 PropManager::ID_Color
IL_03D5: ldarg.s 6
IL_03D7: callvirt System.Void
UnityEngine.MaterialPropertyBlock::SetColor(System.Int32 nameID, UnityEngine.Color
value)
IL_03DC: ldloc.s 18 (UnityEngine.MaterialPropertyBlock)
IL_03DE: ldloc.s 17 (PropManager)
IL_03E0: ldfld System.Int32 PropManager::ID_ObjectIndex
IL_03E5: ldarg.s 7
IL_03E7: callvirt System.Void
UnityEngine.MaterialPropertyBlock::SetVector(System.Int32 nameID,
UnityEngine.Vector4 value)
IL_03EC: ldarg.1
IL_03ED: ldfld UnityEngine.Vector4[] PropInfo::m_rollLocation
IL_03F2: brfalse => Label21
IL_03F7: ldarg.1
IL_03F8: ldfld UnityEngine.Material PropInfo::m_material
IL_03FD: ldloc.s 17 (PropManager)
IL_03FF: ldfld System.Int32 PropManager::ID_RollLocation
IL_0404: ldarg.1
IL_0405: ldfld UnityEngine.Vector4[] PropInfo::m_rollLocation
IL_040A: callvirt System.Void UnityEngine.Material::SetVectorArray(System.Int32
nameID, UnityEngine.Vector4[] values)
IL_040F: ldarg.1
IL_0410: ldfld UnityEngine.Material PropInfo::m_material
IL_0415: ldloc.s 17 (PropManager)
IL_0417: ldfld System.Int32 PropManager::ID_RollParams
IL_041C: ldarg.1
IL_041D: ldfld UnityEngine.Vector4[] PropInfo::m_rollParams
IL_0422: callvirt System.Void UnityEngine.Material::SetVectorArray(System.Int32
nameID, UnityEngine.Vector4[] values)
IL_0427: Label21
IL_0427: ldloc.s 17 (PropManager)
IL_0429: ldflda DrawCallData SimulationManagerBase`2<PropManager,
PropProperties>::m_drawCallData
IL_042E: dup
IL_042F: ldfld System.Int32 DrawCallData::m_defaultCalls
IL_0434: ldc.i4.1
IL_0435: add
IL_0436: stfld System.Int32 DrawCallData::m_defaultCalls
IL_043B: ldarg.1
IL_043C: ldfld UnityEngine.Mesh PropInfo::m_lodMesh
IL_0441: ldloc.s 16 (UnityEngine.Matrix4x4)
IL_0443: ldarg.1
IL_0444: ldfld UnityEngine.Material PropInfo::m_lodMaterial
IL_0449: ldarg.1
IL_044A: ldfld System.Int32 PrefabInfo::m_prefabDataLayer
IL_044F: ldnull
IL_0450: ldc.i4.0
IL_0451: ldloc.s 18 (UnityEngine.MaterialPropertyBlock)
IL_0453: call static System.Void
UnityEngine.Graphics::DrawMesh(UnityEngine.Mesh mesh, UnityEngine.Matrix4x4 matrix,
UnityEngine.Material material, System.Int32 layer, UnityEngine.Camera camera,
System.Int32 submeshIndex, UnityEngine.MaterialPropertyBlock properties)
IL_0458: br => Label22
IL_045D: Label20
IL_045D: ldarga.s 7
IL_045F: ldarg.s 4
IL_0461: stfld System.Single UnityEngine.Vector4::w
IL_0466: ldarg.1
IL_0467: ldfld UnityEngine.Vector4[] PropInfo::m_lodLocations
IL_046C: ldarg.1
IL_046D: ldfld System.Int32 PropInfo::m_lodCount
IL_0472: ldelema UnityEngine.Vector4
IL_0477: ldarga.s 3
IL_0479: ldfld System.Single UnityEngine.Vector3::x
IL_047E: ldarga.s 3
IL_0480: ldfld System.Single UnityEngine.Vector3::y
IL_0485: ldarga.s 3
IL_0487: ldfld System.Single UnityEngine.Vector3::z
IL_048C: ldarg.s 5
IL_048E: newobj System.Void UnityEngine.Vector4::.ctor(System.Single x,
System.Single y, System.Single z, System.Single w)
IL_0493: stobj UnityEngine.Vector4
IL_0498: ldarg.1
IL_0499: ldfld UnityEngine.Vector4[] PropInfo::m_lodObjectIndices
IL_049E: ldarg.1
IL_049F: ldfld System.Int32 PropInfo::m_lodCount
IL_04A4: ldelema UnityEngine.Vector4
IL_04A9: ldarg.s 7
IL_04AB: stobj UnityEngine.Vector4
IL_04B0: ldarg.1
IL_04B1: ldfld UnityEngine.Vector4[] PropInfo::m_lodColors
IL_04B6: ldarg.1
IL_04B7: ldfld System.Int32 PropInfo::m_lodCount
IL_04BC: ldelema UnityEngine.Vector4
IL_04C1: ldarga.s 6
IL_04C3: call UnityEngine.Color UnityEngine.Color::get_linear()
IL_04C8: call static UnityEngine.Vector4
UnityEngine.Color::op_Implicit(UnityEngine.Color c)
IL_04CD: stobj UnityEngine.Vector4
IL_04D2: ldarg.1
IL_04D3: ldarg.1
IL_04D4: ldfld UnityEngine.Vector3 PropInfo::m_lodMin
IL_04D9: ldarg.3
IL_04DA: call static UnityEngine.Vector3
UnityEngine.Vector3::Min(UnityEngine.Vector3 lhs, UnityEngine.Vector3 rhs)
IL_04DF: stfld UnityEngine.Vector3 PropInfo::m_lodMin
IL_04E4: ldarg.1
IL_04E5: ldarg.1
IL_04E6: ldfld UnityEngine.Vector3 PropInfo::m_lodMax
IL_04EB: ldarg.3
IL_04EC: call static UnityEngine.Vector3
UnityEngine.Vector3::Max(UnityEngine.Vector3 lhs, UnityEngine.Vector3 rhs)
IL_04F1: stfld UnityEngine.Vector3 PropInfo::m_lodMax
IL_04F6: ldarg.1
IL_04F7: dup
IL_04F8: ldfld System.Int32 PropInfo::m_lodCount
IL_04FD: ldc.i4.1
IL_04FE: add
IL_04FF: dup
IL_0500: stloc.s 19 (System.Int32)
IL_0502: stfld System.Int32 PropInfo::m_lodCount
IL_0507: ldloc.s 19 (System.Int32)
IL_0509: ldarg.1
IL_050A: ldfld UnityEngine.Vector4[] PropInfo::m_lodLocations
IL_050F: ldlen
IL_0510: conv.i4
IL_0511: bne.un => Label23
IL_0516: ldarg.0
IL_0517: ldarg.1
IL_0518: call static System.Void PropInstance::RenderLod(CameraInfo
cameraInfo, PropInfo info)
IL_051D: // end original
IL_051D: Label0
IL_051D: Label6
IL_051D: Label7
IL_051D: Label19
IL_051D: Label22
IL_051D: Label23
IL_051D: ret
DONE

### Patch: virtual System.Void LightEffect::PopulateGroupData(System.Int32 layer,


InstanceID id, UnityEngine.Vector3 pos, UnityEngine.Vector3 dir, 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
LightEffect::LightEffect.PopulateGroupData_Patch1(LightEffect this, System.Int32
layer, InstanceID id, UnityEngine.Vector3 pos, UnityEngine.Vector3 dir,
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.Boolean
IL_0000: Local var 1: UnityEngine.Vector3
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.Quaternion
IL_0000: Local var 7: UnityEngine.Vector4
IL_0000: Local var 8: UnityEngine.Vector2
IL_0000: Local var 9: ColossalFramework.Math.Randomizer
IL_0000: Local var 10: UnityEngine.Vector2
IL_0000: Local var 11: UnityEngine.Vector2
IL_0000: Local var 12: UnityEngine.Vector2
IL_0000: Local var 13: System.UInt16
IL_0000: Local var 14: UnityEngine.Vector3
IL_0000: Local var 15: UnityEngine.Color
IL_0000: Local var 16: UnityEngine.Color
IL_0000: Local var 17: System.Single
IL_0000: Local var 18: System.Single
IL_0000: Local var 19: System.Int32
IL_0000: Local var 20: System.Boolean
IL_0000: ldc.i4 0
IL_0005: stloc 20 (System.Boolean)
IL_0009: ldc.i4.1
IL_000A: stloc 20 (System.Boolean)
IL_000E: ldloc 20 (System.Boolean)
IL_0012: brfalse => Label1
IL_0017: ldarg 2
IL_001B: call static System.Boolean
ElectricRoads.Overrides.ElectricRoadsOverrides::CheckElectrityNetForLight(InstanceI
D id)
IL_0020: stloc 20 (System.Boolean)
IL_0024: Label1
IL_0024: nop
IL_0025: ldloc 20 (System.Boolean)
IL_0029: brfalse => Label0
IL_002E: // start original
IL_002E: ldarg.1
IL_002F: ldarg.0
IL_0030: ldfld System.Int32 LightEffect::m_groupLayer
IL_0035: beq => Label2
IL_003A: ldarg.1
IL_003B: ldarg.0
IL_003C: ldfld System.Int32 LightEffect::m_groupLayerFloating
IL_0041: bne.un => Label3
IL_0046: Label2
IL_0046: ldarg.1
IL_0047: ldarg.0
IL_0048: ldfld System.Int32 LightEffect::m_groupLayerFloating
IL_004D: ceq
IL_004F: stloc.0
IL_0050: ldloca.s 1 (UnityEngine.Vector3)
IL_0052: ldarg.0
IL_0053: ldfld System.Single LightEffect::m_lightRange
IL_0058: ldarg.0
IL_0059: ldfld System.Single LightEffect::m_lightRange
IL_005E: ldarg.0
IL_005F: ldfld System.Single LightEffect::m_lightRange
IL_0064: call System.Void UnityEngine.Vector3::.ctor(System.Single x,
System.Single y, System.Single z)
IL_0069: ldarg.3
IL_006A: ldloc.1
IL_006B: call static UnityEngine.Vector3
UnityEngine.Vector3::op_Subtraction(UnityEngine.Vector3 a, UnityEngine.Vector3 b)
IL_0070: stloc.2
IL_0071: ldarg.3
IL_0072: ldloc.1
IL_0073: call static UnityEngine.Vector3
UnityEngine.Vector3::op_Addition(UnityEngine.Vector3 a, UnityEngine.Vector3 b)
IL_0078: stloc.3
IL_0079: ldarg.s 9
IL_007B: ldarg.s 9
IL_007D: ldobj UnityEngine.Vector3
IL_0082: ldloc.2
IL_0083: call static UnityEngine.Vector3
UnityEngine.Vector3::Min(UnityEngine.Vector3 lhs, UnityEngine.Vector3 rhs)
IL_0088: stobj UnityEngine.Vector3
IL_008D: ldarg.s 10
IL_008F: ldarg.s 10
IL_0091: ldobj UnityEngine.Vector3
IL_0096: ldloc.3
IL_0097: call static UnityEngine.Vector3
UnityEngine.Vector3::Max(UnityEngine.Vector3 lhs, UnityEngine.Vector3 rhs)
IL_009C: stobj UnityEngine.Vector3
IL_00A1: ldarg.3
IL_00A2: ldarg.s 7
IL_00A4: call static UnityEngine.Vector3
UnityEngine.Vector3::op_Subtraction(UnityEngine.Vector3 a, UnityEngine.Vector3 b)
IL_00A9: stloc.s 4 (UnityEngine.Vector3)
IL_00AB: ldarg.s 11
IL_00AD: ldarg.s 11
IL_00AF: ldind.r4
IL_00B0: ldc.r4 30000
IL_00B5: call static System.Single UnityEngine.Mathf::Max(System.Single a,
System.Single b)
IL_00BA: stind.r4
IL_00BB: ldarg.0
IL_00BC: ldfld UnityEngine.LightType LightEffect::m_lightType
IL_00C1: brtrue => Label4
IL_00C6: ldarg.s 4
IL_00C8: call static UnityEngine.Quaternion
UnityEngine.Quaternion::LookRotation(UnityEngine.Vector3 forward)
IL_00CD: stloc.s 6 (UnityEngine.Quaternion)
IL_00CF: ldloc.s 6 (UnityEngine.Quaternion)
IL_00D1: ldarg.0
IL_00D2: ldfld UnityEngine.Quaternion LightEffect::m_lightRotation
IL_00D7: call static UnityEngine.Vector3 UnityEngine.Vector3::get_forward()
IL_00DC: call static UnityEngine.Vector3
UnityEngine.Quaternion::op_Multiply(UnityEngine.Quaternion rotation,
UnityEngine.Vector3 point)
IL_00E1: call static UnityEngine.Vector3
UnityEngine.Quaternion::op_Multiply(UnityEngine.Quaternion rotation,
UnityEngine.Vector3 point)
IL_00E6: stloc.s 5 (UnityEngine.Vector3)
IL_00E8: br => Label5
IL_00ED: Label4
IL_00ED: call static UnityEngine.Vector3 UnityEngine.Vector3::get_forward()
IL_00F2: stloc.s 5 (UnityEngine.Vector3)
IL_00F4: Label5
IL_00F4: ldloca.s 7 (UnityEngine.Vector4)
IL_00F6: ldloca.s 5 (UnityEngine.Vector3)
IL_00F8: ldfld System.Single UnityEngine.Vector3::x
IL_00FD: ldloca.s 5 (UnityEngine.Vector3)
IL_00FF: ldfld System.Single UnityEngine.Vector3::y
IL_0104: ldloca.s 5 (UnityEngine.Vector3)
IL_0106: ldfld System.Single UnityEngine.Vector3::z
IL_010B: ldc.r4 100000
IL_0110: call System.Void UnityEngine.Vector4::.ctor(System.Single x,
System.Single y, System.Single z, System.Single w)
IL_0115: ldarg.0
IL_0116: ldfld UnityEngine.LightType LightEffect::m_lightType
IL_011B: brtrue => Label6
IL_0120: ldloca.s 7 (UnityEngine.Vector4)
IL_0122: ldc.r4 0.01745329
IL_0127: ldarg.0
IL_0128: ldfld System.Single LightEffect::m_lightSpotAngle
IL_012D: mul
IL_012E: ldc.r4 0.5
IL_0133: mul
IL_0134: call static System.Single UnityEngine.Mathf::Cos(System.Single f)
IL_0139: neg
IL_013A: stfld System.Single UnityEngine.Vector4::w
IL_013F: Label6
IL_013F: ldloca.s 8 (UnityEngine.Vector2)
IL_0141: ldc.r4 1
IL_0146: ldarg.0
IL_0147: ldfld System.Single LightEffect::m_lightRange
IL_014C: ldarg.0
IL_014D: ldfld System.Single LightEffect::m_lightRange
IL_0152: mul
IL_0153: div
IL_0154: ldarg.0
IL_0155: ldfld System.Single LightEffect::m_lightIntensity
IL_015A: call System.Void UnityEngine.Vector2::.ctor(System.Single x,
System.Single y)
IL_015F: ldloca.s 9 (ColossalFramework.Math.Randomizer)
IL_0161: ldarga.s 2
IL_0163: call System.UInt32 InstanceID::get_Index()
IL_0168: call System.Void
ColossalFramework.Math.Randomizer::.ctor(System.UInt32 _seed)
IL_016D: ldloca.s 10 (UnityEngine.Vector2)
IL_016F: ldarg.0
IL_0170: ldflda UnityEngine.Vector2 LightEffect::m_offRange
IL_0175: ldfld System.Single UnityEngine.Vector2::x
IL_017A: ldloca.s 9 (ColossalFramework.Math.Randomizer)
IL_017C: ldc.i4 100000
IL_0181: call System.Int32
ColossalFramework.Math.Randomizer::Int32(System.UInt32 range)
IL_0186: conv.r4
IL_0187: ldc.r4 1E-05
IL_018C: mul
IL_018D: ldarg.0
IL_018E: ldflda UnityEngine.Vector2 LightEffect::m_offRange
IL_0193: ldfld System.Single UnityEngine.Vector2::y
IL_0198: ldarg.0
IL_0199: ldflda UnityEngine.Vector2 LightEffect::m_offRange
IL_019E: ldfld System.Single UnityEngine.Vector2::x
IL_01A3: sub
IL_01A4: mul
IL_01A5: add
IL_01A6: stfld System.Single UnityEngine.Vector2::x
IL_01AB: ldloca.s 10 (UnityEngine.Vector2)
IL_01AD: ldarg.0
IL_01AE: ldfld BlinkType LightEffect::m_blinkType
IL_01B3: conv.r4
IL_01B4: stfld System.Single UnityEngine.Vector2::y
IL_01B9: ldarg.2
IL_01BA: call static System.UInt16 EffectInfo::GetBuilding(InstanceID id)
IL_01BF: stloc.s 13 (System.UInt16)
IL_01C1: ldloc.s 13 (System.UInt16)
IL_01C3: brfalse => Label7
IL_01C8: ldloc.s 13 (System.UInt16)
IL_01CA: call static UnityEngine.Vector4
RenderManager::GetColorLocation(System.UInt32 instanceHolder)
IL_01CF: call static UnityEngine.Vector2
UnityEngine.Vector4::op_Implicit(UnityEngine.Vector4 v)
IL_01D4: stloc.s 11 (UnityEngine.Vector2)
IL_01D6: ldloc.0
IL_01D7: brfalse => Label8
IL_01DC: call static BuildingManager
ColossalFramework.Singleton`1<BuildingManager>::get_instance()
IL_01E1: ldfld Array16`1<Building> BuildingManager::m_buildings
IL_01E6: ldfld Building[] Array16`1<Building>::m_buffer
IL_01EB: ldloc.s 13 (System.UInt16)
IL_01ED: ldelema Building
IL_01F2: call UnityEngine.Vector3 Building::CalculateMeshPosition()
IL_01F7: stloc.s 14 (UnityEngine.Vector3)
IL_01F9: ldloc.s 14 (UnityEngine.Vector3)
IL_01FB: call static UnityEngine.Vector2
ColossalFramework.Math.VectorUtils::XZ(UnityEngine.Vector3 v)
IL_0200: stloc.s 12 (UnityEngine.Vector2)
IL_0202: ldarga.s 3
IL_0204: dup
IL_0205: ldfld System.Single UnityEngine.Vector3::y
IL_020A: ldloca.s 14 (UnityEngine.Vector3)
IL_020C: ldfld System.Single UnityEngine.Vector3::y
IL_0211: sub
IL_0212: stfld System.Single UnityEngine.Vector3::y
IL_0217: ldloca.s 4 (UnityEngine.Vector3)
IL_0219: dup
IL_021A: ldfld System.Single UnityEngine.Vector3::y
IL_021F: ldloca.s 14 (UnityEngine.Vector3)
IL_0221: ldfld System.Single UnityEngine.Vector3::y
IL_0226: sub
IL_0227: stfld System.Single UnityEngine.Vector3::y
IL_022C: br => Label9
IL_0231: Label8
IL_0231: call static UnityEngine.Vector2 UnityEngine.Vector2::get_zero()
IL_0236: stloc.s 12 (UnityEngine.Vector2)
IL_0238: Label9
IL_0238: br => Label10
IL_023D: Label7
IL_023D: ldsfld UnityEngine.Vector4 RenderManager::DefaultColorLocation
IL_0242: call static UnityEngine.Vector2
UnityEngine.Vector4::op_Implicit(UnityEngine.Vector4 v)
IL_0247: stloc.s 11 (UnityEngine.Vector2)
IL_0249: call static UnityEngine.Vector2 UnityEngine.Vector2::get_zero()
IL_024E: stloc.s 12 (UnityEngine.Vector2)
IL_0250: Label10
IL_0250: ldarg.0
IL_0251: ldfld UnityEngine.Color LightEffect::m_lightColor
IL_0256: stloc.s 15 (UnityEngine.Color)
IL_0258: ldarg.0
IL_0259: ldfld UnityEngine.Color[] LightEffect::m_variationColors
IL_025E: brfalse => Label11
IL_0263: ldarg.0
IL_0264: ldfld UnityEngine.Color[] LightEffect::m_variationColors
IL_0269: ldlen
IL_026A: conv.i4
IL_026B: brfalse => Label12
IL_0270: ldarg.0
IL_0271: ldfld UnityEngine.Color[] LightEffect::m_variationColors
IL_0276: ldloca.s 9 (ColossalFramework.Math.Randomizer)
IL_0278: ldarg.0
IL_0279: ldfld UnityEngine.Color[] LightEffect::m_variationColors
IL_027E: ldlen
IL_027F: conv.i4
IL_0280: call System.Int32
ColossalFramework.Math.Randomizer::Int32(System.UInt32 range)
IL_0285: ldelema UnityEngine.Color
IL_028A: ldobj UnityEngine.Color
IL_028F: stloc.s 16 (UnityEngine.Color)
IL_0291: ldloc.s 15 (UnityEngine.Color)
IL_0293: ldloc.s 16 (UnityEngine.Color)
IL_0295: ldloca.s 9 (ColossalFramework.Math.Randomizer)
IL_0297: ldc.i4 1000
IL_029C: call System.Int32
ColossalFramework.Math.Randomizer::Int32(System.UInt32 range)
IL_02A1: conv.r4
IL_02A2: ldc.r4 0.001
IL_02A7: mul
IL_02A8: call static UnityEngine.Color
UnityEngine.Color::Lerp(UnityEngine.Color a, UnityEngine.Color b, System.Single t)
IL_02AD: stloc.s 15 (UnityEngine.Color)
IL_02AF: Label11
IL_02AF: Label12
IL_02AF: ldloca.s 15 (UnityEngine.Color)
IL_02B1: call UnityEngine.Color UnityEngine.Color::get_linear()
IL_02B6: stloc.s 15 (UnityEngine.Color)
IL_02B8: ldloca.s 15 (UnityEngine.Color)
IL_02BA: ldarg.0
IL_02BB: ldfld UnityEngine.LightType LightEffect::m_lightType
IL_02C0: brtrue => Label13
IL_02C5: ldarg.0
IL_02C6: ldfld System.Single LightEffect::m_spotLeaking
IL_02CB: br => Label14
IL_02D0: Label13
IL_02D0: ldc.r4 0
IL_02D5: Label14
IL_02D5: stfld System.Single UnityEngine.Color::a
IL_02DA: ldarg.0
IL_02DB: ldfld System.Single LightEffect::m_lightRange
IL_02E0: ldc.r4 0.5235988
IL_02E5: call static System.Single UnityEngine.Mathf::Cos(System.Single f)
IL_02EA: div
IL_02EB: stloc.s 17 (System.Single)
IL_02ED: ldloc.s 17 (System.Single)
IL_02EF: ldc.r4 0.5
IL_02F4: mul
IL_02F5: stloc.s 18 (System.Single)
IL_02F7: ldarg.s 8
IL_02F9: ldfld UnityEngine.Vector3[] MeshData::m_vertices
IL_02FE: ldarg.s 5
IL_0300: ldind.i4
IL_0301: ldelema UnityEngine.Vector3
IL_0306: ldloca.s 4 (UnityEngine.Vector3)
IL_0308: ldfld System.Single UnityEngine.Vector3::x
IL_030D: ldloc.s 18 (System.Single)
IL_030F: sub
IL_0310: ldloca.s 4 (UnityEngine.Vector3)
IL_0312: ldfld System.Single UnityEngine.Vector3::y
IL_0317: ldarg.0
IL_0318: ldfld System.Single LightEffect::m_lightRange
IL_031D: add
IL_031E: ldloca.s 4 (UnityEngine.Vector3)
IL_0320: ldfld System.Single UnityEngine.Vector3::z
IL_0325: ldarg.0
IL_0326: ldfld System.Single LightEffect::m_lightRange
IL_032B: add
IL_032C: newobj System.Void UnityEngine.Vector3::.ctor(System.Single x,
System.Single y, System.Single z)
IL_0331: stobj UnityEngine.Vector3
IL_0336: ldarg.s 8
IL_0338: ldfld UnityEngine.Vector3[] MeshData::m_normals
IL_033D: ldarg.s 5
IL_033F: ldind.i4
IL_0340: ldelema UnityEngine.Vector3
IL_0345: ldarg.3
IL_0346: stobj UnityEngine.Vector3
IL_034B: ldarg.s 8
IL_034D: ldfld UnityEngine.Vector4[] MeshData::m_tangents
IL_0352: ldarg.s 5
IL_0354: ldind.i4
IL_0355: ldelema UnityEngine.Vector4
IL_035A: ldloc.s 7 (UnityEngine.Vector4)
IL_035C: stobj UnityEngine.Vector4
IL_0361: ldarg.s 8
IL_0363: ldfld UnityEngine.Vector2[] MeshData::m_uvs
IL_0368: ldarg.s 5
IL_036A: ldind.i4
IL_036B: ldelema UnityEngine.Vector2
IL_0370: ldloc.s 8 (UnityEngine.Vector2)
IL_0372: stobj UnityEngine.Vector2
IL_0377: ldarg.s 8
IL_0379: ldfld UnityEngine.Vector2[] MeshData::m_uvs2
IL_037E: ldarg.s 5
IL_0380: ldind.i4
IL_0381: ldelema UnityEngine.Vector2
IL_0386: ldloc.s 10 (UnityEngine.Vector2)
IL_0388: stobj UnityEngine.Vector2
IL_038D: ldarg.s 8
IL_038F: ldfld UnityEngine.Vector2[] MeshData::m_uvs3
IL_0394: ldarg.s 5
IL_0396: ldind.i4
IL_0397: ldelema UnityEngine.Vector2
IL_039C: ldloc.s 11 (UnityEngine.Vector2)
IL_039E: stobj UnityEngine.Vector2
IL_03A3: ldloc.0
IL_03A4: brfalse => Label15
IL_03A9: ldarg.s 8
IL_03AB: ldfld UnityEngine.Vector2[] MeshData::m_uvs4
IL_03B0: ldarg.s 5
IL_03B2: ldind.i4
IL_03B3: ldelema UnityEngine.Vector2
IL_03B8: ldloc.s 12 (UnityEngine.Vector2)
IL_03BA: stobj UnityEngine.Vector2
IL_03BF: Label15
IL_03BF: ldarg.s 8
IL_03C1: ldfld UnityEngine.Color32[] MeshData::m_colors
IL_03C6: ldarg.s 5
IL_03C8: ldind.i4
IL_03C9: ldelema UnityEngine.Color32
IL_03CE: ldloc.s 15 (UnityEngine.Color)
IL_03D0: call static UnityEngine.Color32
UnityEngine.Color32::op_Implicit(UnityEngine.Color c)
IL_03D5: stobj UnityEngine.Color32
IL_03DA: ldarg.s 5
IL_03DC: ldarg.s 5
IL_03DE: ldind.i4
IL_03DF: ldc.i4.1
IL_03E0: add
IL_03E1: stind.i4
IL_03E2: ldarg.s 8
IL_03E4: ldfld UnityEngine.Vector3[] MeshData::m_vertices
IL_03E9: ldarg.s 5
IL_03EB: ldind.i4
IL_03EC: ldelema UnityEngine.Vector3
IL_03F1: ldloca.s 4 (UnityEngine.Vector3)
IL_03F3: ldfld System.Single UnityEngine.Vector3::x
IL_03F8: ldloc.s 18 (System.Single)
IL_03FA: add
IL_03FB: ldloca.s 4 (UnityEngine.Vector3)
IL_03FD: ldfld System.Single UnityEngine.Vector3::y
IL_0402: ldarg.0
IL_0403: ldfld System.Single LightEffect::m_lightRange
IL_0408: add
IL_0409: ldloca.s 4 (UnityEngine.Vector3)
IL_040B: ldfld System.Single UnityEngine.Vector3::z
IL_0410: ldarg.0
IL_0411: ldfld System.Single LightEffect::m_lightRange
IL_0416: add
IL_0417: newobj System.Void UnityEngine.Vector3::.ctor(System.Single x,
System.Single y, System.Single z)
IL_041C: stobj UnityEngine.Vector3
IL_0421: ldarg.s 8
IL_0423: ldfld UnityEngine.Vector3[] MeshData::m_normals
IL_0428: ldarg.s 5
IL_042A: ldind.i4
IL_042B: ldelema UnityEngine.Vector3
IL_0430: ldarg.3
IL_0431: stobj UnityEngine.Vector3
IL_0436: ldarg.s 8
IL_0438: ldfld UnityEngine.Vector4[] MeshData::m_tangents
IL_043D: ldarg.s 5
IL_043F: ldind.i4
IL_0440: ldelema UnityEngine.Vector4
IL_0445: ldloc.s 7 (UnityEngine.Vector4)
IL_0447: stobj UnityEngine.Vector4
IL_044C: ldarg.s 8
IL_044E: ldfld UnityEngine.Vector2[] MeshData::m_uvs
IL_0453: ldarg.s 5
IL_0455: ldind.i4
IL_0456: ldelema UnityEngine.Vector2
IL_045B: ldloc.s 8 (UnityEngine.Vector2)
IL_045D: stobj UnityEngine.Vector2
IL_0462: ldarg.s 8
IL_0464: ldfld UnityEngine.Vector2[] MeshData::m_uvs2
IL_0469: ldarg.s 5
IL_046B: ldind.i4
IL_046C: ldelema UnityEngine.Vector2
IL_0471: ldloc.s 10 (UnityEngine.Vector2)
IL_0473: stobj UnityEngine.Vector2
IL_0478: ldarg.s 8
IL_047A: ldfld UnityEngine.Vector2[] MeshData::m_uvs3
IL_047F: ldarg.s 5
IL_0481: ldind.i4
IL_0482: ldelema UnityEngine.Vector2
IL_0487: ldloc.s 11 (UnityEngine.Vector2)
IL_0489: stobj UnityEngine.Vector2
IL_048E: ldloc.0
IL_048F: brfalse => Label16
IL_0494: ldarg.s 8
IL_0496: ldfld UnityEngine.Vector2[] MeshData::m_uvs4
IL_049B: ldarg.s 5
IL_049D: ldind.i4
IL_049E: ldelema UnityEngine.Vector2
IL_04A3: ldloc.s 12 (UnityEngine.Vector2)
IL_04A5: stobj UnityEngine.Vector2
IL_04AA: Label16
IL_04AA: ldarg.s 8
IL_04AC: ldfld UnityEngine.Color32[] MeshData::m_colors
IL_04B1: ldarg.s 5
IL_04B3: ldind.i4
IL_04B4: ldelema UnityEngine.Color32
IL_04B9: ldloc.s 15 (UnityEngine.Color)
IL_04BB: call static UnityEngine.Color32
UnityEngine.Color32::op_Implicit(UnityEngine.Color c)
IL_04C0: stobj UnityEngine.Color32
IL_04C5: ldarg.s 5
IL_04C7: ldarg.s 5
IL_04C9: ldind.i4
IL_04CA: ldc.i4.1
IL_04CB: add
IL_04CC: stind.i4
IL_04CD: ldarg.s 8
IL_04CF: ldfld UnityEngine.Vector3[] MeshData::m_vertices
IL_04D4: ldarg.s 5
IL_04D6: ldind.i4
IL_04D7: ldelema UnityEngine.Vector3
IL_04DC: ldloca.s 4 (UnityEngine.Vector3)
IL_04DE: ldfld System.Single UnityEngine.Vector3::x
IL_04E3: ldloc.s 17 (System.Single)
IL_04E5: add
IL_04E6: ldloca.s 4 (UnityEngine.Vector3)
IL_04E8: ldfld System.Single UnityEngine.Vector3::y
IL_04ED: ldloca.s 4 (UnityEngine.Vector3)
IL_04EF: ldfld System.Single UnityEngine.Vector3::z
IL_04F4: ldarg.0
IL_04F5: ldfld System.Single LightEffect::m_lightRange
IL_04FA: add
IL_04FB: newobj System.Void UnityEngine.Vector3::.ctor(System.Single x,
System.Single y, System.Single z)
IL_0500: stobj UnityEngine.Vector3
IL_0505: ldarg.s 8
IL_0507: ldfld UnityEngine.Vector3[] MeshData::m_normals
IL_050C: ldarg.s 5
IL_050E: ldind.i4
IL_050F: ldelema UnityEngine.Vector3
IL_0514: ldarg.3
IL_0515: stobj UnityEngine.Vector3
IL_051A: ldarg.s 8
IL_051C: ldfld UnityEngine.Vector4[] MeshData::m_tangents
IL_0521: ldarg.s 5
IL_0523: ldind.i4
IL_0524: ldelema UnityEngine.Vector4
IL_0529: ldloc.s 7 (UnityEngine.Vector4)
IL_052B: stobj UnityEngine.Vector4
IL_0530: ldarg.s 8
IL_0532: ldfld UnityEngine.Vector2[] MeshData::m_uvs
IL_0537: ldarg.s 5
IL_0539: ldind.i4
IL_053A: ldelema UnityEngine.Vector2
IL_053F: ldloc.s 8 (UnityEngine.Vector2)
IL_0541: stobj UnityEngine.Vector2
IL_0546: ldarg.s 8
IL_0548: ldfld UnityEngine.Vector2[] MeshData::m_uvs2
IL_054D: ldarg.s 5
IL_054F: ldind.i4
IL_0550: ldelema UnityEngine.Vector2
IL_0555: ldloc.s 10 (UnityEngine.Vector2)
IL_0557: stobj UnityEngine.Vector2
IL_055C: ldarg.s 8
IL_055E: ldfld UnityEngine.Vector2[] MeshData::m_uvs3
IL_0563: ldarg.s 5
IL_0565: ldind.i4
IL_0566: ldelema UnityEngine.Vector2
IL_056B: ldloc.s 11 (UnityEngine.Vector2)
IL_056D: stobj UnityEngine.Vector2
IL_0572: ldloc.0
IL_0573: brfalse => Label17
IL_0578: ldarg.s 8
IL_057A: ldfld UnityEngine.Vector2[] MeshData::m_uvs4
IL_057F: ldarg.s 5
IL_0581: ldind.i4
IL_0582: ldelema UnityEngine.Vector2
IL_0587: ldloc.s 12 (UnityEngine.Vector2)
IL_0589: stobj UnityEngine.Vector2
IL_058E: Label17
IL_058E: ldarg.s 8
IL_0590: ldfld UnityEngine.Color32[] MeshData::m_colors
IL_0595: ldarg.s 5
IL_0597: ldind.i4
IL_0598: ldelema UnityEngine.Color32
IL_059D: ldloc.s 15 (UnityEngine.Color)
IL_059F: call static UnityEngine.Color32
UnityEngine.Color32::op_Implicit(UnityEngine.Color c)
IL_05A4: stobj UnityEngine.Color32
IL_05A9: ldarg.s 5
IL_05AB: ldarg.s 5
IL_05AD: ldind.i4
IL_05AE: ldc.i4.1
IL_05AF: add
IL_05B0: stind.i4
IL_05B1: ldarg.s 8
IL_05B3: ldfld UnityEngine.Vector3[] MeshData::m_vertices
IL_05B8: ldarg.s 5
IL_05BA: ldind.i4
IL_05BB: ldelema UnityEngine.Vector3
IL_05C0: ldloca.s 4 (UnityEngine.Vector3)
IL_05C2: ldfld System.Single UnityEngine.Vector3::x
IL_05C7: ldloc.s 18 (System.Single)
IL_05C9: add
IL_05CA: ldloca.s 4 (UnityEngine.Vector3)
IL_05CC: ldfld System.Single UnityEngine.Vector3::y
IL_05D1: ldarg.0
IL_05D2: ldfld System.Single LightEffect::m_lightRange
IL_05D7: sub
IL_05D8: ldloca.s 4 (UnityEngine.Vector3)
IL_05DA: ldfld System.Single UnityEngine.Vector3::z
IL_05DF: ldarg.0
IL_05E0: ldfld System.Single LightEffect::m_lightRange
IL_05E5: add
IL_05E6: newobj System.Void UnityEngine.Vector3::.ctor(System.Single x,
System.Single y, System.Single z)
IL_05EB: stobj UnityEngine.Vector3
IL_05F0: ldarg.s 8
IL_05F2: ldfld UnityEngine.Vector3[] MeshData::m_normals
IL_05F7: ldarg.s 5
IL_05F9: ldind.i4
IL_05FA: ldelema UnityEngine.Vector3
IL_05FF: ldarg.3
IL_0600: stobj UnityEngine.Vector3
IL_0605: ldarg.s 8
IL_0607: ldfld UnityEngine.Vector4[] MeshData::m_tangents
IL_060C: ldarg.s 5
IL_060E: ldind.i4
IL_060F: ldelema UnityEngine.Vector4
IL_0614: ldloc.s 7 (UnityEngine.Vector4)
IL_0616: stobj UnityEngine.Vector4
IL_061B: ldarg.s 8
IL_061D: ldfld UnityEngine.Vector2[] MeshData::m_uvs
IL_0622: ldarg.s 5
IL_0624: ldind.i4
IL_0625: ldelema UnityEngine.Vector2
IL_062A: ldloc.s 8 (UnityEngine.Vector2)
IL_062C: stobj UnityEngine.Vector2
IL_0631: ldarg.s 8
IL_0633: ldfld UnityEngine.Vector2[] MeshData::m_uvs2
IL_0638: ldarg.s 5
IL_063A: ldind.i4
IL_063B: ldelema UnityEngine.Vector2
IL_0640: ldloc.s 10 (UnityEngine.Vector2)
IL_0642: stobj UnityEngine.Vector2
IL_0647: ldarg.s 8
IL_0649: ldfld UnityEngine.Vector2[] MeshData::m_uvs3
IL_064E: ldarg.s 5
IL_0650: ldind.i4
IL_0651: ldelema UnityEngine.Vector2
IL_0656: ldloc.s 11 (UnityEngine.Vector2)
IL_0658: stobj UnityEngine.Vector2
IL_065D: ldloc.0
IL_065E: brfalse => Label18
IL_0663: ldarg.s 8
IL_0665: ldfld UnityEngine.Vector2[] MeshData::m_uvs4
IL_066A: ldarg.s 5
IL_066C: ldind.i4
IL_066D: ldelema UnityEngine.Vector2
IL_0672: ldloc.s 12 (UnityEngine.Vector2)
IL_0674: stobj UnityEngine.Vector2
IL_0679: Label18
IL_0679: ldarg.s 8
IL_067B: ldfld UnityEngine.Color32[] MeshData::m_colors
IL_0680: ldarg.s 5
IL_0682: ldind.i4
IL_0683: ldelema UnityEngine.Color32
IL_0688: ldloc.s 15 (UnityEngine.Color)
IL_068A: call static UnityEngine.Color32
UnityEngine.Color32::op_Implicit(UnityEngine.Color c)
IL_068F: stobj UnityEngine.Color32
IL_0694: ldarg.s 5
IL_0696: ldarg.s 5
IL_0698: ldind.i4
IL_0699: ldc.i4.1
IL_069A: add
IL_069B: stind.i4
IL_069C: ldarg.s 8
IL_069E: ldfld UnityEngine.Vector3[] MeshData::m_vertices
IL_06A3: ldarg.s 5
IL_06A5: ldind.i4
IL_06A6: ldelema UnityEngine.Vector3
IL_06AB: ldloca.s 4 (UnityEngine.Vector3)
IL_06AD: ldfld System.Single UnityEngine.Vector3::x
IL_06B2: ldloc.s 18 (System.Single)
IL_06B4: sub
IL_06B5: ldloca.s 4 (UnityEngine.Vector3)
IL_06B7: ldfld System.Single UnityEngine.Vector3::y
IL_06BC: ldarg.0
IL_06BD: ldfld System.Single LightEffect::m_lightRange
IL_06C2: sub
IL_06C3: ldloca.s 4 (UnityEngine.Vector3)
IL_06C5: ldfld System.Single UnityEngine.Vector3::z
IL_06CA: ldarg.0
IL_06CB: ldfld System.Single LightEffect::m_lightRange
IL_06D0: add
IL_06D1: newobj System.Void UnityEngine.Vector3::.ctor(System.Single x,
System.Single y, System.Single z)
IL_06D6: stobj UnityEngine.Vector3
IL_06DB: ldarg.s 8
IL_06DD: ldfld UnityEngine.Vector3[] MeshData::m_normals
IL_06E2: ldarg.s 5
IL_06E4: ldind.i4
IL_06E5: ldelema UnityEngine.Vector3
IL_06EA: ldarg.3
IL_06EB: stobj UnityEngine.Vector3
IL_06F0: ldarg.s 8
IL_06F2: ldfld UnityEngine.Vector4[] MeshData::m_tangents
IL_06F7: ldarg.s 5
IL_06F9: ldind.i4
IL_06FA: ldelema UnityEngine.Vector4
IL_06FF: ldloc.s 7 (UnityEngine.Vector4)
IL_0701: stobj UnityEngine.Vector4
IL_0706: ldarg.s 8
IL_0708: ldfld UnityEngine.Vector2[] MeshData::m_uvs
IL_070D: ldarg.s 5
IL_070F: ldind.i4
IL_0710: ldelema UnityEngine.Vector2
IL_0715: ldloc.s 8 (UnityEngine.Vector2)
IL_0717: stobj UnityEngine.Vector2
IL_071C: ldarg.s 8
IL_071E: ldfld UnityEngine.Vector2[] MeshData::m_uvs2
IL_0723: ldarg.s 5
IL_0725: ldind.i4
IL_0726: ldelema UnityEngine.Vector2
IL_072B: ldloc.s 10 (UnityEngine.Vector2)
IL_072D: stobj UnityEngine.Vector2
IL_0732: ldarg.s 8
IL_0734: ldfld UnityEngine.Vector2[] MeshData::m_uvs3
IL_0739: ldarg.s 5
IL_073B: ldind.i4
IL_073C: ldelema UnityEngine.Vector2
IL_0741: ldloc.s 11 (UnityEngine.Vector2)
IL_0743: stobj UnityEngine.Vector2
IL_0748: ldloc.0
IL_0749: brfalse => Label19
IL_074E: ldarg.s 8
IL_0750: ldfld UnityEngine.Vector2[] MeshData::m_uvs4
IL_0755: ldarg.s 5
IL_0757: ldind.i4
IL_0758: ldelema UnityEngine.Vector2
IL_075D: ldloc.s 12 (UnityEngine.Vector2)
IL_075F: stobj UnityEngine.Vector2
IL_0764: Label19
IL_0764: ldarg.s 8
IL_0766: ldfld UnityEngine.Color32[] MeshData::m_colors
IL_076B: ldarg.s 5
IL_076D: ldind.i4
IL_076E: ldelema UnityEngine.Color32
IL_0773: ldloc.s 15 (UnityEngine.Color)
IL_0775: call static UnityEngine.Color32
UnityEngine.Color32::op_Implicit(UnityEngine.Color c)
IL_077A: stobj UnityEngine.Color32
IL_077F: ldarg.s 5
IL_0781: ldarg.s 5
IL_0783: ldind.i4
IL_0784: ldc.i4.1
IL_0785: add
IL_0786: stind.i4
IL_0787: ldarg.s 8
IL_0789: ldfld UnityEngine.Vector3[] MeshData::m_vertices
IL_078E: ldarg.s 5
IL_0790: ldind.i4
IL_0791: ldelema UnityEngine.Vector3
IL_0796: ldloca.s 4 (UnityEngine.Vector3)
IL_0798: ldfld System.Single UnityEngine.Vector3::x
IL_079D: ldloc.s 17 (System.Single)
IL_079F: sub
IL_07A0: ldloca.s 4 (UnityEngine.Vector3)
IL_07A2: ldfld System.Single UnityEngine.Vector3::y
IL_07A7: ldloca.s 4 (UnityEngine.Vector3)
IL_07A9: ldfld System.Single UnityEngine.Vector3::z
IL_07AE: ldarg.0
IL_07AF: ldfld System.Single LightEffect::m_lightRange
IL_07B4: add
IL_07B5: newobj System.Void UnityEngine.Vector3::.ctor(System.Single x,
System.Single y, System.Single z)
IL_07BA: stobj UnityEngine.Vector3
IL_07BF: ldarg.s 8
IL_07C1: ldfld UnityEngine.Vector3[] MeshData::m_normals
IL_07C6: ldarg.s 5
IL_07C8: ldind.i4
IL_07C9: ldelema UnityEngine.Vector3
IL_07CE: ldarg.3
IL_07CF: stobj UnityEngine.Vector3
IL_07D4: ldarg.s 8
IL_07D6: ldfld UnityEngine.Vector4[] MeshData::m_tangents
IL_07DB: ldarg.s 5
IL_07DD: ldind.i4
IL_07DE: ldelema UnityEngine.Vector4
IL_07E3: ldloc.s 7 (UnityEngine.Vector4)
IL_07E5: stobj UnityEngine.Vector4
IL_07EA: ldarg.s 8
IL_07EC: ldfld UnityEngine.Vector2[] MeshData::m_uvs
IL_07F1: ldarg.s 5
IL_07F3: ldind.i4
IL_07F4: ldelema UnityEngine.Vector2
IL_07F9: ldloc.s 8 (UnityEngine.Vector2)
IL_07FB: stobj UnityEngine.Vector2
IL_0800: ldarg.s 8
IL_0802: ldfld UnityEngine.Vector2[] MeshData::m_uvs2
IL_0807: ldarg.s 5
IL_0809: ldind.i4
IL_080A: ldelema UnityEngine.Vector2
IL_080F: ldloc.s 10 (UnityEngine.Vector2)
IL_0811: stobj UnityEngine.Vector2
IL_0816: ldarg.s 8
IL_0818: ldfld UnityEngine.Vector2[] MeshData::m_uvs3
IL_081D: ldarg.s 5
IL_081F: ldind.i4
IL_0820: ldelema UnityEngine.Vector2
IL_0825: ldloc.s 11 (UnityEngine.Vector2)
IL_0827: stobj UnityEngine.Vector2
IL_082C: ldloc.0
IL_082D: brfalse => Label20
IL_0832: ldarg.s 8
IL_0834: ldfld UnityEngine.Vector2[] MeshData::m_uvs4
IL_0839: ldarg.s 5
IL_083B: ldind.i4
IL_083C: ldelema UnityEngine.Vector2
IL_0841: ldloc.s 12 (UnityEngine.Vector2)
IL_0843: stobj UnityEngine.Vector2
IL_0848: Label20
IL_0848: ldarg.s 8
IL_084A: ldfld UnityEngine.Color32[] MeshData::m_colors
IL_084F: ldarg.s 5
IL_0851: ldind.i4
IL_0852: ldelema UnityEngine.Color32
IL_0857: ldloc.s 15 (UnityEngine.Color)
IL_0859: call static UnityEngine.Color32
UnityEngine.Color32::op_Implicit(UnityEngine.Color c)
IL_085E: stobj UnityEngine.Color32
IL_0863: ldarg.s 5
IL_0865: ldarg.s 5
IL_0867: ldind.i4
IL_0868: ldc.i4.1
IL_0869: add
IL_086A: stind.i4
IL_086B: ldarg.s 8
IL_086D: ldfld System.Int32[] MeshData::m_triangles
IL_0872: ldarg.s 6
IL_0874: ldarg.s 6
IL_0876: ldind.i4
IL_0877: dup
IL_0878: stloc.s 19 (System.Int32)
IL_087A: ldc.i4.1
IL_087B: add
IL_087C: stind.i4
IL_087D: ldloc.s 19 (System.Int32)
IL_087F: ldarg.s 5
IL_0881: ldind.i4
IL_0882: ldc.i4.6
IL_0883: sub
IL_0884: stelem.i4
IL_0885: ldarg.s 8
IL_0887: ldfld System.Int32[] MeshData::m_triangles
IL_088C: ldarg.s 6
IL_088E: ldarg.s 6
IL_0890: ldind.i4
IL_0891: dup
IL_0892: stloc.s 19 (System.Int32)
IL_0894: ldc.i4.1
IL_0895: add
IL_0896: stind.i4
IL_0897: ldloc.s 19 (System.Int32)
IL_0899: ldarg.s 5
IL_089B: ldind.i4
IL_089C: ldc.i4.5
IL_089D: sub
IL_089E: stelem.i4
IL_089F: ldarg.s 8
IL_08A1: ldfld System.Int32[] MeshData::m_triangles
IL_08A6: ldarg.s 6
IL_08A8: ldarg.s 6
IL_08AA: ldind.i4
IL_08AB: dup
IL_08AC: stloc.s 19 (System.Int32)
IL_08AE: ldc.i4.1
IL_08AF: add
IL_08B0: stind.i4
IL_08B1: ldloc.s 19 (System.Int32)
IL_08B3: ldarg.s 5
IL_08B5: ldind.i4
IL_08B6: ldc.i4.1
IL_08B7: sub
IL_08B8: stelem.i4
IL_08B9: ldarg.s 8
IL_08BB: ldfld System.Int32[] MeshData::m_triangles
IL_08C0: ldarg.s 6
IL_08C2: ldarg.s 6
IL_08C4: ldind.i4
IL_08C5: dup
IL_08C6: stloc.s 19 (System.Int32)
IL_08C8: ldc.i4.1
IL_08C9: add
IL_08CA: stind.i4
IL_08CB: ldloc.s 19 (System.Int32)
IL_08CD: ldarg.s 5
IL_08CF: ldind.i4
IL_08D0: ldc.i4.1
IL_08D1: sub
IL_08D2: stelem.i4
IL_08D3: ldarg.s 8
IL_08D5: ldfld System.Int32[] MeshData::m_triangles
IL_08DA: ldarg.s 6
IL_08DC: ldarg.s 6
IL_08DE: ldind.i4
IL_08DF: dup
IL_08E0: stloc.s 19 (System.Int32)
IL_08E2: ldc.i4.1
IL_08E3: add
IL_08E4: stind.i4
IL_08E5: ldloc.s 19 (System.Int32)
IL_08E7: ldarg.s 5
IL_08E9: ldind.i4
IL_08EA: ldc.i4.5
IL_08EB: sub
IL_08EC: stelem.i4
IL_08ED: ldarg.s 8
IL_08EF: ldfld System.Int32[] MeshData::m_triangles
IL_08F4: ldarg.s 6
IL_08F6: ldarg.s 6
IL_08F8: ldind.i4
IL_08F9: dup
IL_08FA: stloc.s 19 (System.Int32)
IL_08FC: ldc.i4.1
IL_08FD: add
IL_08FE: stind.i4
IL_08FF: ldloc.s 19 (System.Int32)
IL_0901: ldarg.s 5
IL_0903: ldind.i4
IL_0904: ldc.i4.4
IL_0905: sub
IL_0906: stelem.i4
IL_0907: ldarg.s 8
IL_0909: ldfld System.Int32[] MeshData::m_triangles
IL_090E: ldarg.s 6
IL_0910: ldarg.s 6
IL_0912: ldind.i4
IL_0913: dup
IL_0914: stloc.s 19 (System.Int32)
IL_0916: ldc.i4.1
IL_0917: add
IL_0918: stind.i4
IL_0919: ldloc.s 19 (System.Int32)
IL_091B: ldarg.s 5
IL_091D: ldind.i4
IL_091E: ldc.i4.1
IL_091F: sub
IL_0920: stelem.i4
IL_0921: ldarg.s 8
IL_0923: ldfld System.Int32[] MeshData::m_triangles
IL_0928: ldarg.s 6
IL_092A: ldarg.s 6
IL_092C: ldind.i4
IL_092D: dup
IL_092E: stloc.s 19 (System.Int32)
IL_0930: ldc.i4.1
IL_0931: add
IL_0932: stind.i4
IL_0933: ldloc.s 19 (System.Int32)
IL_0935: ldarg.s 5
IL_0937: ldind.i4
IL_0938: ldc.i4.4
IL_0939: sub
IL_093A: stelem.i4
IL_093B: ldarg.s 8
IL_093D: ldfld System.Int32[] MeshData::m_triangles
IL_0942: ldarg.s 6
IL_0944: ldarg.s 6
IL_0946: ldind.i4
IL_0947: dup
IL_0948: stloc.s 19 (System.Int32)
IL_094A: ldc.i4.1
IL_094B: add
IL_094C: stind.i4
IL_094D: ldloc.s 19 (System.Int32)
IL_094F: ldarg.s 5
IL_0951: ldind.i4
IL_0952: ldc.i4.2
IL_0953: sub
IL_0954: stelem.i4
IL_0955: ldarg.s 8
IL_0957: ldfld System.Int32[] MeshData::m_triangles
IL_095C: ldarg.s 6
IL_095E: ldarg.s 6
IL_0960: ldind.i4
IL_0961: dup
IL_0962: stloc.s 19 (System.Int32)
IL_0964: ldc.i4.1
IL_0965: add
IL_0966: stind.i4
IL_0967: ldloc.s 19 (System.Int32)
IL_0969: ldarg.s 5
IL_096B: ldind.i4
IL_096C: ldc.i4.2
IL_096D: sub
IL_096E: stelem.i4
IL_096F: ldarg.s 8
IL_0971: ldfld System.Int32[] MeshData::m_triangles
IL_0976: ldarg.s 6
IL_0978: ldarg.s 6
IL_097A: ldind.i4
IL_097B: dup
IL_097C: stloc.s 19 (System.Int32)
IL_097E: ldc.i4.1
IL_097F: add
IL_0980: stind.i4
IL_0981: ldloc.s 19 (System.Int32)
IL_0983: ldarg.s 5
IL_0985: ldind.i4
IL_0986: ldc.i4.4
IL_0987: sub
IL_0988: stelem.i4
IL_0989: ldarg.s 8
IL_098B: ldfld System.Int32[] MeshData::m_triangles
IL_0990: ldarg.s 6
IL_0992: ldarg.s 6
IL_0994: ldind.i4
IL_0995: dup
IL_0996: stloc.s 19 (System.Int32)
IL_0998: ldc.i4.1
IL_0999: add
IL_099A: stind.i4
IL_099B: ldloc.s 19 (System.Int32)
IL_099D: ldarg.s 5
IL_099F: ldind.i4
IL_09A0: ldc.i4.3
IL_09A1: sub
IL_09A2: stelem.i4
IL_09A3: // end original
IL_09A3: Label3
IL_09A3: Label0
IL_09A3: ret
DONE

### Patch: virtual System.Void ElectricityManager::SimulationStepImpl(System.Int32


subStep)
### Replacement: static System.Void
ElectricityManager::ElectricityManager.SimulationStepImpl_Patch0(ElectricityManager
this, System.Int32 subStep)
IL_0000: Local var 0: System.UInt32
IL_0000: Local var 1: System.Int32
IL_0000: Local var 2: NetManager
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: NetInfo
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: ElectricityManager/Cell
IL_0000: Local var 13: ElectricityManager/PulseGroup
IL_0000: Local var 14: ElectricityManager/PulseUnit
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: ElectricityManager/PulseUnit
IL_0000: Local var 19: System.UInt32
IL_0000: Local var 20: System.Int32
IL_0000: Local var 21: ElectricityManager/Cell
IL_0000: Local var 22: System.Int32
IL_0000: Local var 23: System.Int32
IL_0000: Local var 24: NetNode
IL_0000: Local var 25: System.Int32
IL_0000: Local var 26: System.UInt16
IL_0000: Local var 27: System.UInt16
IL_0000: Local var 28: System.UInt16
IL_0000: Local var 29: System.UInt16
IL_0000: Local var 30: System.Int32
IL_0000: Local var 31: ElectricityManager/PulseGroup
IL_0000: Local var 32: ElectricityManager/PulseGroup
IL_0000: Local var 33: System.Int32
IL_0000: Local var 34: ElectricityManager/PulseGroup
IL_0000: Local var 35: System.Int32
IL_0000: Local var 36: ElectricityManager/Cell
IL_0000: // start original
IL_0000: ldarg.1
IL_0001: brfalse => Label0
IL_0006: ldarg.1
IL_0007: ldc.i4 1000
IL_000C: beq => Label1
IL_0011: call static SimulationManager
ColossalFramework.Singleton`1<SimulationManager>::get_instance()
IL_0016: ldfld System.UInt32 SimulationManager::m_currentFrameIndex
IL_001B: stloc.0
IL_001C: ldloc.0
IL_001D: ldc.i4 255
IL_0022: and
IL_0023: stloc.1
IL_0024: ldloc.1
IL_0025: ldc.i4 128
IL_002A: bge => Label2
IL_002F: ldloc.1
IL_0030: brtrue => Label3
IL_0035: ldarg.0
IL_0036: ldc.i4.0
IL_0037: stfld System.Int32 ElectricityManager::m_pulseGroupCount
IL_003C: ldarg.0
IL_003D: ldc.i4.0
IL_003E: stfld System.Int32 ElectricityManager::m_pulseUnitStart
IL_0043: ldarg.0
IL_0044: ldc.i4.0
IL_0045: stfld System.Int32 ElectricityManager::m_pulseUnitEnd
IL_004A: ldarg.0
IL_004B: ldc.i4.0
IL_004C: stfld System.Int32 ElectricityManager::m_processedCells
IL_0051: ldarg.0
IL_0052: ldc.i4.0
IL_0053: stfld System.Int32 ElectricityManager::m_conductiveCells
IL_0058: ldarg.0
IL_0059: ldc.i4.1
IL_005A: stfld System.Boolean ElectricityManager::m_canContinue
IL_005F: Label3
IL_005F: call static NetManager
ColossalFramework.Singleton`1<NetManager>::get_instance()
IL_0064: stloc.2
IL_0065: ldloc.1
IL_0066: ldc.i4 32768
IL_006B: mul
IL_006C: ldc.i4.7
IL_006D: shr
IL_006E: stloc.3
IL_006F: ldloc.1
IL_0070: ldc.i4.1
IL_0071: add
IL_0072: ldc.i4 32768
IL_0077: mul
IL_0078: ldc.i4.7
IL_0079: shr
IL_007A: ldc.i4.1
IL_007B: sub
IL_007C: stloc.s 4 (System.Int32)
IL_007E: ldloc.3
IL_007F: stloc.s 5 (System.Int32)
IL_0081: br => Label4
IL_0086: Label10
IL_0086: ldloc.2
IL_0087: ldfld Array16`1<NetNode> NetManager::m_nodes
IL_008C: ldfld NetNode[] Array16`1<NetNode>::m_buffer
IL_0091: ldloc.s 5 (System.Int32)
IL_0093: ldelema NetNode
IL_0098: ldfld Flags NetNode::m_flags
IL_009D: brfalse => Label5
IL_00A2: ldloc.2
IL_00A3: ldfld Array16`1<NetNode> NetManager::m_nodes
IL_00A8: ldfld NetNode[] Array16`1<NetNode>::m_buffer
IL_00AD: ldloc.s 5 (System.Int32)
IL_00AF: ldelema NetNode
IL_00B4: call static System.Boolean
ElectricRoads.Overrides.ElectricRoadsOverrides::CheckElectricConductibility(NetNode
& node)
IL_00B9: brfalse => Label7
IL_00BE: Label6
IL_00BE: ldarg.0
IL_00BF: ldloc.s 5 (System.Int32)
IL_00C1: ldarg.0
IL_00C2: ldfld System.UInt16[] ElectricityManager::m_nodeGroups
IL_00C7: ldloc.s 5 (System.Int32)
IL_00C9: ldelem.u2
IL_00CA: ldc.i4 65535
IL_00CF: beq => Label8
IL_00D4: ldc.i4.1
IL_00D5: br => Label9
IL_00DA: Label8
IL_00DA: ldc.i4.0
IL_00DB: Label9
IL_00DB: call System.Void
ElectricityManager::UpdateNodeElectricity(System.Int32 nodeID, System.Int32 value)
IL_00E0: ldarg.0
IL_00E1: dup
IL_00E2: ldfld System.Int32 ElectricityManager::m_conductiveCells
IL_00E7: ldc.i4.1
IL_00E8: add
IL_00E9: stfld System.Int32 ElectricityManager::m_conductiveCells
IL_00EE: Label5
IL_00EE: Label7
IL_00EE: ldarg.0
IL_00EF: ldfld System.UInt16[] ElectricityManager::m_nodeGroups
IL_00F4: ldloc.s 5 (System.Int32)
IL_00F6: ldc.i4 65535
IL_00FB: stelem.i2
IL_00FC: ldloc.s 5 (System.Int32)
IL_00FE: ldc.i4.1
IL_00FF: add
IL_0100: stloc.s 5 (System.Int32)
IL_0102: Label4
IL_0102: ldloc.s 5 (System.Int32)
IL_0104: ldloc.s 4 (System.Int32)
IL_0106: ble => Label10
IL_010B: ldloc.1
IL_010C: ldc.i4 256
IL_0111: mul
IL_0112: ldc.i4.7
IL_0113: shr
IL_0114: stloc.s 7 (System.Int32)
IL_0116: ldloc.1
IL_0117: ldc.i4.1
IL_0118: add
IL_0119: ldc.i4 256
IL_011E: mul
IL_011F: ldc.i4.7
IL_0120: shr
IL_0121: ldc.i4.1
IL_0122: sub
IL_0123: stloc.s 8 (System.Int32)
IL_0125: ldloc.s 7 (System.Int32)
IL_0127: stloc.s 9 (System.Int32)
IL_0129: br => Label11
IL_012E: Label21
IL_012E: ldloc.s 9 (System.Int32)
IL_0130: ldc.i4 256
IL_0135: mul
IL_0136: stloc.s 10 (System.Int32)
IL_0138: ldc.i4.0
IL_0139: stloc.s 11 (System.Int32)
IL_013B: br => Label12
IL_0140: Label20
IL_0140: ldarg.0
IL_0141: ldfld Cell[] ElectricityManager::m_electricityGrid
IL_0146: ldloc.s 10 (System.Int32)
IL_0148: ldelema ElectricityManager+Cell
IL_014D: ldobj ElectricityManager+Cell
IL_0152: stloc.s 12 (ElectricityManager+Cell)
IL_0154: ldloca.s 12 (ElectricityManager+Cell)
IL_0156: ldfld System.Int16 Cell::m_currentCharge
IL_015B: ldc.i4.0
IL_015C: ble => Label13
IL_0161: ldarg.0
IL_0162: ldfld System.Int32 ElectricityManager::m_pulseGroupCount
IL_0167: ldc.i4 1024
IL_016C: bge => Label14
IL_0171: ldloca.s 13 (ElectricityManager+PulseGroup)
IL_0173: ldloca.s 12 (ElectricityManager+Cell)
IL_0175: ldfld System.Int16 Cell::m_currentCharge
IL_017A: conv.u4
IL_017B: stfld System.UInt32 PulseGroup::m_origCharge
IL_0180: ldloca.s 13 (ElectricityManager+PulseGroup)
IL_0182: ldloca.s 12 (ElectricityManager+Cell)
IL_0184: ldfld System.Int16 Cell::m_currentCharge
IL_0189: conv.u4
IL_018A: stfld System.UInt32 PulseGroup::m_curCharge
IL_018F: ldloca.s 13 (ElectricityManager+PulseGroup)
IL_0191: ldc.i4.0
IL_0192: stfld System.UInt16 PulseGroup::m_mergeCount
IL_0197: ldloca.s 13 (ElectricityManager+PulseGroup)
IL_0199: ldc.i4 65535
IL_019E: stfld System.UInt16 PulseGroup::m_mergeIndex
IL_01A3: ldloca.s 13 (ElectricityManager+PulseGroup)
IL_01A5: ldloc.s 11 (System.Int32)
IL_01A7: conv.u1
IL_01A8: stfld System.Byte PulseGroup::m_x
IL_01AD: ldloca.s 13 (ElectricityManager+PulseGroup)
IL_01AF: ldloc.s 9 (System.Int32)
IL_01B1: conv.u1
IL_01B2: stfld System.Byte PulseGroup::m_z
IL_01B7: ldloca.s 14 (ElectricityManager+PulseUnit)
IL_01B9: ldarg.0
IL_01BA: ldfld System.Int32 ElectricityManager::m_pulseGroupCount
IL_01BF: conv.u2
IL_01C0: stfld System.UInt16 PulseUnit::m_group
IL_01C5: ldloca.s 14 (ElectricityManager+PulseUnit)
IL_01C7: ldc.i4.0
IL_01C8: stfld System.UInt16 PulseUnit::m_node
IL_01CD: ldloca.s 14 (ElectricityManager+PulseUnit)
IL_01CF: ldloc.s 11 (System.Int32)
IL_01D1: conv.u1
IL_01D2: stfld System.Byte PulseUnit::m_x
IL_01D7: ldloca.s 14 (ElectricityManager+PulseUnit)
IL_01D9: ldloc.s 9 (System.Int32)
IL_01DB: conv.u1
IL_01DC: stfld System.Byte PulseUnit::m_z
IL_01E1: ldloca.s 12 (ElectricityManager+Cell)
IL_01E3: ldarg.0
IL_01E4: ldfld System.Int32 ElectricityManager::m_pulseGroupCount
IL_01E9: conv.u2
IL_01EA: stfld System.UInt16 Cell::m_pulseGroup
IL_01EF: ldarg.0
IL_01F0: ldfld PulseGroup[] ElectricityManager::m_pulseGroups
IL_01F5: ldarg.0
IL_01F6: dup
IL_01F7: ldfld System.Int32 ElectricityManager::m_pulseGroupCount
IL_01FC: dup
IL_01FD: stloc.s 15 (System.Int32)
IL_01FF: ldc.i4.1
IL_0200: add
IL_0201: stfld System.Int32 ElectricityManager::m_pulseGroupCount
IL_0206: ldloc.s 15 (System.Int32)
IL_0208: ldelema ElectricityManager+PulseGroup
IL_020D: ldloc.s 13 (ElectricityManager+PulseGroup)
IL_020F: stobj ElectricityManager+PulseGroup
IL_0214: ldarg.0
IL_0215: ldfld PulseUnit[] ElectricityManager::m_pulseUnits
IL_021A: ldarg.0
IL_021B: ldfld System.Int32 ElectricityManager::m_pulseUnitEnd
IL_0220: ldelema ElectricityManager+PulseUnit
IL_0225: ldloc.s 14 (ElectricityManager+PulseUnit)
IL_0227: stobj ElectricityManager+PulseUnit
IL_022C: ldarg.0
IL_022D: dup
IL_022E: ldfld System.Int32 ElectricityManager::m_pulseUnitEnd
IL_0233: ldc.i4.1
IL_0234: add
IL_0235: dup
IL_0236: stloc.s 15 (System.Int32)
IL_0238: stfld System.Int32 ElectricityManager::m_pulseUnitEnd
IL_023D: ldloc.s 15 (System.Int32)
IL_023F: ldarg.0
IL_0240: ldfld PulseUnit[] ElectricityManager::m_pulseUnits
IL_0245: ldlen
IL_0246: conv.i4
IL_0247: bne.un => Label15
IL_024C: ldarg.0
IL_024D: ldc.i4.0
IL_024E: stfld System.Int32 ElectricityManager::m_pulseUnitEnd
IL_0253: Label15
IL_0253: br => Label16
IL_0258: Label14
IL_0258: ldloca.s 12 (ElectricityManager+Cell)
IL_025A: ldc.i4 65535
IL_025F: stfld System.UInt16 Cell::m_pulseGroup
IL_0264: Label16
IL_0264: ldloca.s 12 (ElectricityManager+Cell)
IL_0266: ldc.i4.0
IL_0267: stfld System.Int16 Cell::m_currentCharge
IL_026C: ldarg.0
IL_026D: dup
IL_026E: ldfld System.Int32 ElectricityManager::m_conductiveCells
IL_0273: ldc.i4.1
IL_0274: add
IL_0275: stfld System.Int32 ElectricityManager::m_conductiveCells
IL_027A: br => Label17
IL_027F: Label13
IL_027F: ldloca.s 12 (ElectricityManager+Cell)
IL_0281: ldc.i4 65535
IL_0286: stfld System.UInt16 Cell::m_pulseGroup
IL_028B: ldloca.s 12 (ElectricityManager+Cell)
IL_028D: ldfld System.Byte Cell::m_conductivity
IL_0292: ldc.i4.s 64
IL_0294: blt => Label18
IL_0299: ldarg.0
IL_029A: dup
IL_029B: ldfld System.Int32 ElectricityManager::m_conductiveCells
IL_02A0: ldc.i4.1
IL_02A1: add
IL_02A2: stfld System.Int32 ElectricityManager::m_conductiveCells
IL_02A7: Label17
IL_02A7: Label18
IL_02A7: ldloca.s 12 (ElectricityManager+Cell)
IL_02A9: ldfld System.Boolean Cell::m_tmpElectrified
IL_02AE: ldloca.s 12 (ElectricityManager+Cell)
IL_02B0: ldfld System.Boolean Cell::m_electrified
IL_02B5: beq => Label19
IL_02BA: ldloca.s 12 (ElectricityManager+Cell)
IL_02BC: ldloca.s 12 (ElectricityManager+Cell)
IL_02BE: ldfld System.Boolean Cell::m_tmpElectrified
IL_02C3: stfld System.Boolean Cell::m_electrified
IL_02C8: Label19
IL_02C8: ldloca.s 12 (ElectricityManager+Cell)
IL_02CA: ldloca.s 12 (ElectricityManager+Cell)
IL_02CC: ldfld System.UInt16 Cell::m_pulseGroup
IL_02D1: ldc.i4 65535
IL_02D6: ceq
IL_02D8: ldc.i4.0
IL_02D9: ceq
IL_02DB: stfld System.Boolean Cell::m_tmpElectrified
IL_02E0: ldarg.0
IL_02E1: ldfld Cell[] ElectricityManager::m_electricityGrid
IL_02E6: ldloc.s 10 (System.Int32)
IL_02E8: ldelema ElectricityManager+Cell
IL_02ED: ldloc.s 12 (ElectricityManager+Cell)
IL_02EF: stobj ElectricityManager+Cell
IL_02F4: ldloc.s 10 (System.Int32)
IL_02F6: ldc.i4.1
IL_02F7: add
IL_02F8: stloc.s 10 (System.Int32)
IL_02FA: ldloc.s 11 (System.Int32)
IL_02FC: ldc.i4.1
IL_02FD: add
IL_02FE: stloc.s 11 (System.Int32)
IL_0300: Label12
IL_0300: ldloc.s 11 (System.Int32)
IL_0302: ldc.i4 256
IL_0307: blt => Label20
IL_030C: ldloc.s 9 (System.Int32)
IL_030E: ldc.i4.1
IL_030F: add
IL_0310: stloc.s 9 (System.Int32)
IL_0312: Label11
IL_0312: ldloc.s 9 (System.Int32)
IL_0314: ldloc.s 8 (System.Int32)
IL_0316: ble => Label21
IL_031B: br => Label22
IL_0320: Label2
IL_0320: ldloc.1
IL_0321: ldc.i4.s 127
IL_0323: sub
IL_0324: ldarg.0
IL_0325: ldfld System.Int32 ElectricityManager::m_conductiveCells
IL_032A: mul
IL_032B: ldc.i4.7
IL_032C: shr
IL_032D: stloc.s 16 (System.Int32)
IL_032F: ldloc.1
IL_0330: ldc.i4 255
IL_0335: bne.un => Label23
IL_033A: ldc.i4 1000000000
IL_033F: stloc.s 16 (System.Int32)
IL_0341: Label23
IL_0341: br => Label24
IL_0346: Label54
IL_0346: ldarg.0
IL_0347: ldc.i4.0
IL_0348: stfld System.Boolean ElectricityManager::m_canContinue
IL_034D: ldarg.0
IL_034E: ldfld System.Int32 ElectricityManager::m_pulseUnitEnd
IL_0353: stloc.s 17 (System.Int32)
IL_0355: br => Label25
IL_035A: Label52
IL_035A: ldarg.0
IL_035B: ldfld PulseUnit[] ElectricityManager::m_pulseUnits
IL_0360: ldarg.0
IL_0361: ldfld System.Int32 ElectricityManager::m_pulseUnitStart
IL_0366: ldelema ElectricityManager+PulseUnit
IL_036B: ldobj ElectricityManager+PulseUnit
IL_0370: stloc.s 18 (ElectricityManager+PulseUnit)
IL_0372: ldarg.0
IL_0373: dup
IL_0374: ldfld System.Int32 ElectricityManager::m_pulseUnitStart
IL_0379: ldc.i4.1
IL_037A: add
IL_037B: dup
IL_037C: stloc.s 15 (System.Int32)
IL_037E: stfld System.Int32 ElectricityManager::m_pulseUnitStart
IL_0383: ldloc.s 15 (System.Int32)
IL_0385: ldarg.0
IL_0386: ldfld PulseUnit[] ElectricityManager::m_pulseUnits
IL_038B: ldlen
IL_038C: conv.i4
IL_038D: bne.un => Label26
IL_0392: ldarg.0
IL_0393: ldc.i4.0
IL_0394: stfld System.Int32 ElectricityManager::m_pulseUnitStart
IL_0399: Label26
IL_0399: ldloca.s 18 (ElectricityManager+PulseUnit)
IL_039B: ldarg.0
IL_039C: ldloca.s 18 (ElectricityManager+PulseUnit)
IL_039E: ldfld System.UInt16 PulseUnit::m_group
IL_03A3: call System.UInt16 ElectricityManager::GetRootGroup(System.UInt16
group)
IL_03A8: stfld System.UInt16 PulseUnit::m_group
IL_03AD: ldarg.0
IL_03AE: ldfld PulseGroup[] ElectricityManager::m_pulseGroups
IL_03B3: ldloca.s 18 (ElectricityManager+PulseUnit)
IL_03B5: ldfld System.UInt16 PulseUnit::m_group
IL_03BA: ldelema ElectricityManager+PulseGroup
IL_03BF: ldfld System.UInt32 PulseGroup::m_curCharge
IL_03C4: stloc.s 19 (System.UInt32)
IL_03C6: ldloca.s 18 (ElectricityManager+PulseUnit)
IL_03C8: ldfld System.UInt16 PulseUnit::m_node
IL_03CD: brtrue => Label27
IL_03D2: ldloca.s 18 (ElectricityManager+PulseUnit)
IL_03D4: ldfld System.Byte PulseUnit::m_z
IL_03D9: ldc.i4 256
IL_03DE: mul
IL_03DF: ldloca.s 18 (ElectricityManager+PulseUnit)
IL_03E1: ldfld System.Byte PulseUnit::m_x
IL_03E6: add
IL_03E7: stloc.s 20 (System.Int32)
IL_03E9: ldarg.0
IL_03EA: ldfld Cell[] ElectricityManager::m_electricityGrid
IL_03EF: ldloc.s 20 (System.Int32)
IL_03F1: ldelema ElectricityManager+Cell
IL_03F6: ldobj ElectricityManager+Cell
IL_03FB: stloc.s 21 (ElectricityManager+Cell)
IL_03FD: ldloca.s 21 (ElectricityManager+Cell)
IL_03FF: ldfld System.Byte Cell::m_conductivity
IL_0404: brfalse => Label28
IL_0409: ldloca.s 21 (ElectricityManager+Cell)
IL_040B: ldfld System.Boolean Cell::m_tmpElectrified
IL_0410: brtrue => Label29
IL_0415: ldloc.s 19 (System.UInt32)
IL_0417: brfalse => Label30
IL_041C: ldloca.s 21 (ElectricityManager+Cell)
IL_041E: ldfld System.Int16 Cell::m_currentCharge
IL_0423: neg
IL_0424: ldc.i4.0
IL_0425: ldloc.s 19 (System.UInt32)
IL_0427: call static System.Int32 UnityEngine.Mathf::Clamp(System.Int32
value, System.Int32 min, System.Int32 max)
IL_042C: stloc.s 22 (System.Int32)
IL_042E: ldloc.s 19 (System.UInt32)
IL_0430: ldloc.s 22 (System.Int32)
IL_0432: sub
IL_0433: stloc.s 19 (System.UInt32)
IL_0435: ldloca.s 21 (ElectricityManager+Cell)
IL_0437: dup
IL_0438: ldfld System.Int16 Cell::m_currentCharge
IL_043D: ldloc.s 22 (System.Int32)
IL_043F: conv.i2
IL_0440: add
IL_0441: conv.i2
IL_0442: stfld System.Int16 Cell::m_currentCharge
IL_0447: ldloca.s 21 (ElectricityManager+Cell)
IL_0449: ldfld System.Int16 Cell::m_currentCharge
IL_044E: brtrue => Label31
IL_0453: ldloca.s 21 (ElectricityManager+Cell)
IL_0455: ldc.i4.1
IL_0456: stfld System.Boolean Cell::m_tmpElectrified
IL_045B: Label31
IL_045B: ldarg.0
IL_045C: ldfld Cell[] ElectricityManager::m_electricityGrid
IL_0461: ldloc.s 20 (System.Int32)
IL_0463: ldelema ElectricityManager+Cell
IL_0468: ldloc.s 21 (ElectricityManager+Cell)
IL_046A: stobj ElectricityManager+Cell
IL_046F: ldarg.0
IL_0470: ldfld PulseGroup[] ElectricityManager::m_pulseGroups
IL_0475: ldloca.s 18 (ElectricityManager+PulseUnit)
IL_0477: ldfld System.UInt16 PulseUnit::m_group
IL_047C: ldelema ElectricityManager+PulseGroup
IL_0481: ldloc.s 19 (System.UInt32)
IL_0483: stfld System.UInt32 PulseGroup::m_curCharge
IL_0488: Label28
IL_0488: Label29
IL_0488: Label30
IL_0488: ldloc.s 19 (System.UInt32)
IL_048A: brfalse => Label32
IL_048F: ldloca.s 21 (ElectricityManager+Cell)
IL_0491: ldfld System.Byte Cell::m_conductivity
IL_0496: ldc.i4.s 64
IL_0498: blt => Label33
IL_049D: ldc.i4.1
IL_049E: br => Label34
IL_04A3: Label33
IL_04A3: ldc.i4.s 64
IL_04A5: Label34
IL_04A5: stloc.s 23 (System.Int32)
IL_04A7: ldarg.0
IL_04A8: dup
IL_04A9: ldfld System.Int32 ElectricityManager::m_processedCells
IL_04AE: ldc.i4.1
IL_04AF: add
IL_04B0: stfld System.Int32 ElectricityManager::m_processedCells
IL_04B5: ldloca.s 18 (ElectricityManager+PulseUnit)
IL_04B7: ldfld System.Byte PulseUnit::m_z
IL_04BC: ldc.i4.0
IL_04BD: ble => Label35
IL_04C2: ldarg.0
IL_04C3: ldarg.0
IL_04C4: ldfld Cell[] ElectricityManager::m_electricityGrid
IL_04C9: ldloc.s 20 (System.Int32)
IL_04CB: ldc.i4 256
IL_04D0: sub
IL_04D1: ldelema ElectricityManager+Cell
IL_04D6: ldloca.s 18 (ElectricityManager+PulseUnit)
IL_04D8: ldfld System.UInt16 PulseUnit::m_group
IL_04DD: ldloca.s 18 (ElectricityManager+PulseUnit)
IL_04DF: ldfld System.Byte PulseUnit::m_x
IL_04E4: ldloca.s 18 (ElectricityManager+PulseUnit)
IL_04E6: ldfld System.Byte PulseUnit::m_z
IL_04EB: ldc.i4.1
IL_04EC: sub
IL_04ED: ldloc.s 23 (System.Int32)
IL_04EF: call System.Void ElectricityManager::ConductToCell(Cell& cell,
System.UInt16 group, System.Int32 x, System.Int32 z, System.Int32 limit)
IL_04F4: Label35
IL_04F4: ldloca.s 18 (ElectricityManager+PulseUnit)
IL_04F6: ldfld System.Byte PulseUnit::m_x
IL_04FB: ldc.i4.0
IL_04FC: ble => Label36
IL_0501: ldarg.0
IL_0502: ldarg.0
IL_0503: ldfld Cell[] ElectricityManager::m_electricityGrid
IL_0508: ldloc.s 20 (System.Int32)
IL_050A: ldc.i4.1
IL_050B: sub
IL_050C: ldelema ElectricityManager+Cell
IL_0511: ldloca.s 18 (ElectricityManager+PulseUnit)
IL_0513: ldfld System.UInt16 PulseUnit::m_group
IL_0518: ldloca.s 18 (ElectricityManager+PulseUnit)
IL_051A: ldfld System.Byte PulseUnit::m_x
IL_051F: ldc.i4.1
IL_0520: sub
IL_0521: ldloca.s 18 (ElectricityManager+PulseUnit)
IL_0523: ldfld System.Byte PulseUnit::m_z
IL_0528: ldloc.s 23 (System.Int32)
IL_052A: call System.Void ElectricityManager::ConductToCell(Cell& cell,
System.UInt16 group, System.Int32 x, System.Int32 z, System.Int32 limit)
IL_052F: Label36
IL_052F: ldloca.s 18 (ElectricityManager+PulseUnit)
IL_0531: ldfld System.Byte PulseUnit::m_z
IL_0536: ldc.i4 255
IL_053B: bge => Label37
IL_0540: ldarg.0
IL_0541: ldarg.0
IL_0542: ldfld Cell[] ElectricityManager::m_electricityGrid
IL_0547: ldloc.s 20 (System.Int32)
IL_0549: ldc.i4 256
IL_054E: add
IL_054F: ldelema ElectricityManager+Cell
IL_0554: ldloca.s 18 (ElectricityManager+PulseUnit)
IL_0556: ldfld System.UInt16 PulseUnit::m_group
IL_055B: ldloca.s 18 (ElectricityManager+PulseUnit)
IL_055D: ldfld System.Byte PulseUnit::m_x
IL_0562: ldloca.s 18 (ElectricityManager+PulseUnit)
IL_0564: ldfld System.Byte PulseUnit::m_z
IL_0569: ldc.i4.1
IL_056A: add
IL_056B: ldloc.s 23 (System.Int32)
IL_056D: call System.Void ElectricityManager::ConductToCell(Cell& cell,
System.UInt16 group, System.Int32 x, System.Int32 z, System.Int32 limit)
IL_0572: Label37
IL_0572: ldloca.s 18 (ElectricityManager+PulseUnit)
IL_0574: ldfld System.Byte PulseUnit::m_x
IL_0579: ldc.i4 255
IL_057E: bge => Label38
IL_0583: ldarg.0
IL_0584: ldarg.0
IL_0585: ldfld Cell[] ElectricityManager::m_electricityGrid
IL_058A: ldloc.s 20 (System.Int32)
IL_058C: ldc.i4.1
IL_058D: add
IL_058E: ldelema ElectricityManager+Cell
IL_0593: ldloca.s 18 (ElectricityManager+PulseUnit)
IL_0595: ldfld System.UInt16 PulseUnit::m_group
IL_059A: ldloca.s 18 (ElectricityManager+PulseUnit)
IL_059C: ldfld System.Byte PulseUnit::m_x
IL_05A1: ldc.i4.1
IL_05A2: add
IL_05A3: ldloca.s 18 (ElectricityManager+PulseUnit)
IL_05A5: ldfld System.Byte PulseUnit::m_z
IL_05AA: ldloc.s 23 (System.Int32)
IL_05AC: call System.Void ElectricityManager::ConductToCell(Cell& cell,
System.UInt16 group, System.Int32 x, System.Int32 z, System.Int32 limit)
IL_05B1: Label38
IL_05B1: ldarg.0
IL_05B2: ldloca.s 18 (ElectricityManager+PulseUnit)
IL_05B4: ldfld System.UInt16 PulseUnit::m_group
IL_05B9: ldloca.s 18 (ElectricityManager+PulseUnit)
IL_05BB: ldfld System.Byte PulseUnit::m_x
IL_05C0: ldloca.s 18 (ElectricityManager+PulseUnit)
IL_05C2: ldfld System.Byte PulseUnit::m_z
IL_05C7: call System.Void ElectricityManager::ConductToNodes(System.UInt16
group, System.Int32 cellX, System.Int32 cellZ)
IL_05CC: br => Label39
IL_05D1: Label32
IL_05D1: ldarg.0
IL_05D2: ldfld PulseUnit[] ElectricityManager::m_pulseUnits
IL_05D7: ldarg.0
IL_05D8: ldfld System.Int32 ElectricityManager::m_pulseUnitEnd
IL_05DD: ldelema ElectricityManager+PulseUnit
IL_05E2: ldloc.s 18 (ElectricityManager+PulseUnit)
IL_05E4: stobj ElectricityManager+PulseUnit
IL_05E9: ldarg.0
IL_05EA: dup
IL_05EB: ldfld System.Int32 ElectricityManager::m_pulseUnitEnd
IL_05F0: ldc.i4.1
IL_05F1: add
IL_05F2: dup
IL_05F3: stloc.s 15 (System.Int32)
IL_05F5: stfld System.Int32 ElectricityManager::m_pulseUnitEnd
IL_05FA: ldloc.s 15 (System.Int32)
IL_05FC: ldarg.0
IL_05FD: ldfld PulseUnit[] ElectricityManager::m_pulseUnits
IL_0602: ldlen
IL_0603: conv.i4
IL_0604: bne.un => Label40
IL_0609: ldarg.0
IL_060A: ldc.i4.0
IL_060B: stfld System.Int32 ElectricityManager::m_pulseUnitEnd
IL_0610: Label39
IL_0610: Label40
IL_0610: br => Label41
IL_0615: Label27
IL_0615: ldloc.s 19 (System.UInt32)
IL_0617: brfalse => Label42
IL_061C: ldarg.0
IL_061D: dup
IL_061E: ldfld System.Int32 ElectricityManager::m_processedCells
IL_0623: ldc.i4.1
IL_0624: add
IL_0625: stfld System.Int32 ElectricityManager::m_processedCells
IL_062A: call static NetManager
ColossalFramework.Singleton`1<NetManager>::get_instance()
IL_062F: ldfld Array16`1<NetNode> NetManager::m_nodes
IL_0634: ldfld NetNode[] Array16`1<NetNode>::m_buffer
IL_0639: ldloca.s 18 (ElectricityManager+PulseUnit)
IL_063B: ldfld System.UInt16 PulseUnit::m_node
IL_0640: ldelema NetNode
IL_0645: ldobj NetNode
IL_064A: stloc.s 24 (NetNode)
IL_064C: ldloca.s 24 (NetNode)
IL_064E: ldfld Flags NetNode::m_flags
IL_0653: brfalse => Label43
IL_0658: ldloca.s 24 (NetNode)
IL_065A: ldfld System.UInt32 NetNode::m_buildIndex
IL_065F: ldloc.0
IL_0660: ldc.i4.s -128
IL_0662: and
IL_0663: bge.un => Label44
IL_0668: ldarg.0
IL_0669: ldloca.s 18 (ElectricityManager+PulseUnit)
IL_066B: ldfld System.UInt16 PulseUnit::m_group
IL_0670: ldloca.s 24 (NetNode)
IL_0672: ldflda UnityEngine.Vector3 NetNode::m_position
IL_0677: ldfld System.Single UnityEngine.Vector3::x
IL_067C: ldloca.s 24 (NetNode)
IL_067E: ldflda UnityEngine.Vector3 NetNode::m_position
IL_0683: ldfld System.Single UnityEngine.Vector3::z
IL_0688: call System.Void ElectricityManager::ConductToCells(System.UInt16
group, System.Single worldX, System.Single worldZ)
IL_068D: ldc.i4.0
IL_068E: stloc.s 25 (System.Int32)
IL_0690: br => Label45
IL_0695: Label49
IL_0695: ldloca.s 24 (NetNode)
IL_0697: ldloc.s 25 (System.Int32)
IL_0699: call System.UInt16 NetNode::GetSegment(System.Int32 index)
IL_069E: stloc.s 26 (System.UInt16)
IL_06A0: ldloc.s 26 (System.UInt16)
IL_06A2: brfalse => Label46
IL_06A7: call static NetManager
ColossalFramework.Singleton`1<NetManager>::get_instance()
IL_06AC: ldfld Array16`1<NetSegment> NetManager::m_segments
IL_06B1: ldfld NetSegment[] Array16`1<NetSegment>::m_buffer
IL_06B6: ldloc.s 26 (System.UInt16)
IL_06B8: ldelema NetSegment
IL_06BD: ldfld System.UInt16 NetSegment::m_startNode
IL_06C2: stloc.s 27 (System.UInt16)
IL_06C4: call static NetManager
ColossalFramework.Singleton`1<NetManager>::get_instance()
IL_06C9: ldfld Array16`1<NetSegment> NetManager::m_segments
IL_06CE: ldfld NetSegment[] Array16`1<NetSegment>::m_buffer
IL_06D3: ldloc.s 26 (System.UInt16)
IL_06D5: ldelema NetSegment
IL_06DA: ldfld System.UInt16 NetSegment::m_endNode
IL_06DF: stloc.s 28 (System.UInt16)
IL_06E1: ldloc.s 27 (System.UInt16)
IL_06E3: ldloca.s 18 (ElectricityManager+PulseUnit)
IL_06E5: ldfld System.UInt16 PulseUnit::m_node
IL_06EA: bne.un => Label47
IL_06EF: ldloc.s 28 (System.UInt16)
IL_06F1: br => Label48
IL_06F6: Label47
IL_06F6: ldloc.s 27 (System.UInt16)
IL_06F8: Label48
IL_06F8: stloc.s 29 (System.UInt16)
IL_06FA: ldarg.0
IL_06FB: ldloc.s 29 (System.UInt16)
IL_06FD: call static NetManager
ColossalFramework.Singleton`1<NetManager>::get_instance()
IL_0702: ldfld Array16`1<NetNode> NetManager::m_nodes
IL_0707: ldfld NetNode[] Array16`1<NetNode>::m_buffer
IL_070C: ldloc.s 29 (System.UInt16)
IL_070E: ldelema NetNode
IL_0713: ldloca.s 18 (ElectricityManager+PulseUnit)
IL_0715: ldfld System.UInt16 PulseUnit::m_group
IL_071A: ldc.r4 -100000
IL_071F: ldc.r4 -100000
IL_0724: ldc.r4 100000
IL_0729: ldc.r4 100000
IL_072E: call System.Void ElectricityManager::ConductToNode(System.UInt16
nodeIndex, NetNode& node, System.UInt16 group, System.Single minX, System.Single
minZ, System.Single maxX, System.Single maxZ)
IL_0733: Label46
IL_0733: ldloc.s 25 (System.Int32)
IL_0735: ldc.i4.1
IL_0736: add
IL_0737: stloc.s 25 (System.Int32)
IL_0739: Label45
IL_0739: ldloc.s 25 (System.Int32)
IL_073B: ldc.i4.8
IL_073C: blt => Label49
IL_0741: Label43
IL_0741: Label44
IL_0741: br => Label50
IL_0746: Label42
IL_0746: ldarg.0
IL_0747: ldfld PulseUnit[] ElectricityManager::m_pulseUnits
IL_074C: ldarg.0
IL_074D: ldfld System.Int32 ElectricityManager::m_pulseUnitEnd
IL_0752: ldelema ElectricityManager+PulseUnit
IL_0757: ldloc.s 18 (ElectricityManager+PulseUnit)
IL_0759: stobj ElectricityManager+PulseUnit
IL_075E: ldarg.0
IL_075F: dup
IL_0760: ldfld System.Int32 ElectricityManager::m_pulseUnitEnd
IL_0765: ldc.i4.1
IL_0766: add
IL_0767: dup
IL_0768: stloc.s 15 (System.Int32)
IL_076A: stfld System.Int32 ElectricityManager::m_pulseUnitEnd
IL_076F: ldloc.s 15 (System.Int32)
IL_0771: ldarg.0
IL_0772: ldfld PulseUnit[] ElectricityManager::m_pulseUnits
IL_0777: ldlen
IL_0778: conv.i4
IL_0779: bne.un => Label51
IL_077E: ldarg.0
IL_077F: ldc.i4.0
IL_0780: stfld System.Int32 ElectricityManager::m_pulseUnitEnd
IL_0785: Label25
IL_0785: Label41
IL_0785: Label50
IL_0785: Label51
IL_0785: ldarg.0
IL_0786: ldfld System.Int32 ElectricityManager::m_pulseUnitStart
IL_078B: ldloc.s 17 (System.Int32)
IL_078D: bne.un => Label52
IL_0792: Label24
IL_0792: ldarg.0
IL_0793: ldfld System.Boolean ElectricityManager::m_canContinue
IL_0798: brfalse => Label53
IL_079D: ldarg.0
IL_079E: ldfld System.Int32 ElectricityManager::m_processedCells
IL_07A3: ldloc.s 16 (System.Int32)
IL_07A5: blt => Label54
IL_07AA: Label53
IL_07AA: ldloc.1
IL_07AB: ldc.i4 255
IL_07B0: bne.un => Label55
IL_07B5: ldc.i4.0
IL_07B6: stloc.s 30 (System.Int32)
IL_07B8: br => Label56
IL_07BD: Label58
IL_07BD: ldarg.0
IL_07BE: ldfld PulseGroup[] ElectricityManager::m_pulseGroups
IL_07C3: ldloc.s 30 (System.Int32)
IL_07C5: ldelema ElectricityManager+PulseGroup
IL_07CA: ldobj ElectricityManager+PulseGroup
IL_07CF: stloc.s 31 (ElectricityManager+PulseGroup)
IL_07D1: ldloca.s 31 (ElectricityManager+PulseGroup)
IL_07D3: ldfld System.UInt16 PulseGroup::m_mergeIndex
IL_07D8: ldc.i4 65535
IL_07DD: beq => Label57
IL_07E2: ldarg.0
IL_07E3: ldfld PulseGroup[] ElectricityManager::m_pulseGroups
IL_07E8: ldloca.s 31 (ElectricityManager+PulseGroup)
IL_07EA: ldfld System.UInt16 PulseGroup::m_mergeIndex
IL_07EF: ldelema ElectricityManager+PulseGroup
IL_07F4: ldobj ElectricityManager+PulseGroup
IL_07F9: stloc.s 32 (ElectricityManager+PulseGroup)
IL_07FB: ldloca.s 31 (ElectricityManager+PulseGroup)
IL_07FD: ldloca.s 32 (ElectricityManager+PulseGroup)
IL_07FF: ldfld System.UInt32 PulseGroup::m_curCharge
IL_0804: conv.u8
IL_0805: ldloca.s 31 (ElectricityManager+PulseGroup)
IL_0807: ldfld System.UInt32 PulseGroup::m_origCharge
IL_080C: conv.u8
IL_080D: mul
IL_080E: ldloca.s 32 (ElectricityManager+PulseGroup)
IL_0810: ldfld System.UInt32 PulseGroup::m_origCharge
IL_0815: conv.u8
IL_0816: div.un
IL_0817: conv.u4
IL_0818: stfld System.UInt32 PulseGroup::m_curCharge
IL_081D: ldloca.s 32 (ElectricityManager+PulseGroup)
IL_081F: dup
IL_0820: ldfld System.UInt32 PulseGroup::m_curCharge
IL_0825: ldloca.s 31 (ElectricityManager+PulseGroup)
IL_0827: ldfld System.UInt32 PulseGroup::m_curCharge
IL_082C: sub
IL_082D: stfld System.UInt32 PulseGroup::m_curCharge
IL_0832: ldloca.s 32 (ElectricityManager+PulseGroup)
IL_0834: dup
IL_0835: ldfld System.UInt32 PulseGroup::m_origCharge
IL_083A: ldloca.s 31 (ElectricityManager+PulseGroup)
IL_083C: ldfld System.UInt32 PulseGroup::m_origCharge
IL_0841: sub
IL_0842: stfld System.UInt32 PulseGroup::m_origCharge
IL_0847: ldarg.0
IL_0848: ldfld PulseGroup[] ElectricityManager::m_pulseGroups
IL_084D: ldloca.s 31 (ElectricityManager+PulseGroup)
IL_084F: ldfld System.UInt16 PulseGroup::m_mergeIndex
IL_0854: ldelema ElectricityManager+PulseGroup
IL_0859: ldloc.s 32 (ElectricityManager+PulseGroup)
IL_085B: stobj ElectricityManager+PulseGroup
IL_0860: ldarg.0
IL_0861: ldfld PulseGroup[] ElectricityManager::m_pulseGroups
IL_0866: ldloc.s 30 (System.Int32)
IL_0868: ldelema ElectricityManager+PulseGroup
IL_086D: ldloc.s 31 (ElectricityManager+PulseGroup)
IL_086F: stobj ElectricityManager+PulseGroup
IL_0874: Label57
IL_0874: ldloc.s 30 (System.Int32)
IL_0876: ldc.i4.1
IL_0877: add
IL_0878: stloc.s 30 (System.Int32)
IL_087A: Label56
IL_087A: ldloc.s 30 (System.Int32)
IL_087C: ldarg.0
IL_087D: ldfld System.Int32 ElectricityManager::m_pulseGroupCount
IL_0882: blt => Label58
IL_0887: ldc.i4.0
IL_0888: stloc.s 33 (System.Int32)
IL_088A: br => Label59
IL_088F: Label62
IL_088F: ldarg.0
IL_0890: ldfld PulseGroup[] ElectricityManager::m_pulseGroups
IL_0895: ldloc.s 33 (System.Int32)
IL_0897: ldelema ElectricityManager+PulseGroup
IL_089C: ldobj ElectricityManager+PulseGroup
IL_08A1: stloc.s 34 (ElectricityManager+PulseGroup)
IL_08A3: ldloca.s 34 (ElectricityManager+PulseGroup)
IL_08A5: ldfld System.UInt32 PulseGroup::m_curCharge
IL_08AA: brfalse => Label60
IL_08AF: ldloca.s 34 (ElectricityManager+PulseGroup)
IL_08B1: ldfld System.Byte PulseGroup::m_z
IL_08B6: ldc.i4 256
IL_08BB: mul
IL_08BC: ldloca.s 34 (ElectricityManager+PulseGroup)
IL_08BE: ldfld System.Byte PulseGroup::m_x
IL_08C3: add
IL_08C4: stloc.s 35 (System.Int32)
IL_08C6: ldarg.0
IL_08C7: ldfld Cell[] ElectricityManager::m_electricityGrid
IL_08CC: ldloc.s 35 (System.Int32)
IL_08CE: ldelema ElectricityManager+Cell
IL_08D3: ldobj ElectricityManager+Cell
IL_08D8: stloc.s 36 (ElectricityManager+Cell)
IL_08DA: ldloca.s 36 (ElectricityManager+Cell)
IL_08DC: ldfld System.Byte Cell::m_conductivity
IL_08E1: brfalse => Label61
IL_08E6: ldloca.s 36 (ElectricityManager+Cell)
IL_08E8: dup
IL_08E9: ldfld System.UInt16 Cell::m_extraCharge
IL_08EE: ldloca.s 34 (ElectricityManager+PulseGroup)
IL_08F0: ldfld System.UInt32 PulseGroup::m_curCharge
IL_08F5: ldc.i4 32767
IL_08FA: ldloca.s 36 (ElectricityManager+Cell)
IL_08FC: ldfld System.UInt16 Cell::m_extraCharge
IL_0901: sub
IL_0902: call static System.Int32 UnityEngine.Mathf::Min(System.Int32 a,
System.Int32 b)
IL_0907: conv.u2
IL_0908: add
IL_0909: conv.u2
IL_090A: stfld System.UInt16 Cell::m_extraCharge
IL_090F: Label61
IL_090F: ldarg.0
IL_0910: ldfld Cell[] ElectricityManager::m_electricityGrid
IL_0915: ldloc.s 35 (System.Int32)
IL_0917: ldelema ElectricityManager+Cell
IL_091C: ldloc.s 36 (ElectricityManager+Cell)
IL_091E: stobj ElectricityManager+Cell
IL_0923: Label60
IL_0923: ldloc.s 33 (System.Int32)
IL_0925: ldc.i4.1
IL_0926: add
IL_0927: stloc.s 33 (System.Int32)
IL_0929: Label59
IL_0929: ldloc.s 33 (System.Int32)
IL_092B: ldarg.0
IL_092C: ldfld System.Int32 ElectricityManager::m_pulseGroupCount
IL_0931: blt => Label62
IL_0936: // end original
IL_0936: Label0
IL_0936: Label1
IL_0936: Label22
IL_0936: Label55
IL_0936: ret
DONE

### Patch: System.Void ElectricityManager::ConductToNode(System.UInt16 nodeIndex,


NetNode& node, System.UInt16 group, System.Single minX, System.Single minZ,
System.Single maxX, System.Single maxZ)
### Replacement: static System.Void
ElectricityManager::ElectricityManager.ConductToNode_Patch0(ElectricityManager
this, System.UInt16 nodeIndex, NetNode& node, System.UInt16 group, System.Single
minX, System.Single minZ, System.Single maxX, System.Single maxZ)
IL_0000: Local var 0: NetInfo
IL_0000: Local var 1: ElectricityManager/PulseUnit
IL_0000: Local var 2: System.Int32
IL_0000: Local var 3: System.UInt16
IL_0000: // start original
IL_0000: ldarg.2
IL_0001: ldflda UnityEngine.Vector3 NetNode::m_position
IL_0006: ldfld System.Single UnityEngine.Vector3::x
IL_000B: ldarg.s 4
IL_000D: blt.un => Label0
IL_0012: ldarg.2
IL_0013: ldflda UnityEngine.Vector3 NetNode::m_position
IL_0018: ldfld System.Single UnityEngine.Vector3::z
IL_001D: ldarg.s 5
IL_001F: blt.un => Label1
IL_0024: ldarg.2
IL_0025: ldflda UnityEngine.Vector3 NetNode::m_position
IL_002A: ldfld System.Single UnityEngine.Vector3::x
IL_002F: ldarg.s 6
IL_0031: bgt.un => Label2
IL_0036: ldarg.2
IL_0037: ldflda UnityEngine.Vector3 NetNode::m_position
IL_003C: ldfld System.Single UnityEngine.Vector3::z
IL_0041: ldarg.s 7
IL_0043: bgt.un => Label3
IL_0048: ldarg.2
IL_0049: call static System.Boolean
ElectricRoads.Overrides.ElectricRoadsOverrides::CheckElectricConductibility(NetNode
& node)
IL_004E: brfalse => Label5
IL_0053: Label4
IL_0053: ldarg.0
IL_0054: ldfld System.UInt16[] ElectricityManager::m_nodeGroups
IL_0059: ldarg.1
IL_005A: ldelem.u2
IL_005B: ldc.i4 65535
IL_0060: bne.un => Label6
IL_0065: ldloca.s 1 (ElectricityManager+PulseUnit)
IL_0067: ldarg.3
IL_0068: stfld System.UInt16 PulseUnit::m_group
IL_006D: ldloca.s 1 (ElectricityManager+PulseUnit)
IL_006F: ldarg.1
IL_0070: stfld System.UInt16 PulseUnit::m_node
IL_0075: ldloca.s 1 (ElectricityManager+PulseUnit)
IL_0077: ldc.i4.0
IL_0078: stfld System.Byte PulseUnit::m_x
IL_007D: ldloca.s 1 (ElectricityManager+PulseUnit)
IL_007F: ldc.i4.0
IL_0080: stfld System.Byte PulseUnit::m_z
IL_0085: ldarg.0
IL_0086: ldfld PulseUnit[] ElectricityManager::m_pulseUnits
IL_008B: ldarg.0
IL_008C: ldfld System.Int32 ElectricityManager::m_pulseUnitEnd
IL_0091: ldelema ElectricityManager+PulseUnit
IL_0096: ldloc.1
IL_0097: stobj ElectricityManager+PulseUnit
IL_009C: ldarg.0
IL_009D: dup
IL_009E: ldfld System.Int32 ElectricityManager::m_pulseUnitEnd
IL_00A3: ldc.i4.1
IL_00A4: add
IL_00A5: dup
IL_00A6: stloc.2
IL_00A7: stfld System.Int32 ElectricityManager::m_pulseUnitEnd
IL_00AC: ldloc.2
IL_00AD: ldarg.0
IL_00AE: ldfld PulseUnit[] ElectricityManager::m_pulseUnits
IL_00B3: ldlen
IL_00B4: conv.i4
IL_00B5: bne.un => Label7
IL_00BA: ldarg.0
IL_00BB: ldc.i4.0
IL_00BC: stfld System.Int32 ElectricityManager::m_pulseUnitEnd
IL_00C1: Label7
IL_00C1: ldarg.0
IL_00C2: ldfld System.UInt16[] ElectricityManager::m_nodeGroups
IL_00C7: ldarg.1
IL_00C8: ldarg.3
IL_00C9: stelem.i2
IL_00CA: ldarg.0
IL_00CB: ldc.i4.1
IL_00CC: stfld System.Boolean ElectricityManager::m_canContinue
IL_00D1: br => Label8
IL_00D6: Label6
IL_00D6: ldarg.0
IL_00D7: ldarg.0
IL_00D8: ldfld System.UInt16[] ElectricityManager::m_nodeGroups
IL_00DD: ldarg.1
IL_00DE: ldelem.u2
IL_00DF: call System.UInt16 ElectricityManager::GetRootGroup(System.UInt16
group)
IL_00E4: stloc.3
IL_00E5: ldloc.3
IL_00E6: ldarg.3
IL_00E7: beq => Label9
IL_00EC: ldarg.0
IL_00ED: ldarg.3
IL_00EE: ldloc.3
IL_00EF: call System.Void ElectricityManager::MergeGroups(System.UInt16 root,
System.UInt16 merged)
IL_00F4: ldarg.0
IL_00F5: ldfld System.UInt16[] ElectricityManager::m_nodeGroups
IL_00FA: ldarg.1
IL_00FB: ldarg.3
IL_00FC: stelem.i2
IL_00FD: ldarg.0
IL_00FE: ldc.i4.1
IL_00FF: stfld System.Boolean ElectricityManager::m_canContinue
IL_0104: // end original
IL_0104: Label0
IL_0104: Label1
IL_0104: Label2
IL_0104: Label3
IL_0104: Label5
IL_0104: Label8
IL_0104: Label9
IL_0104: ret
DONE

### Patch: System.Void ElectricityManager::UpdateNodeElectricity(System.Int32


nodeID, System.Int32 value)
### Replacement: static System.Void
ElectricityManager::ElectricityManager.UpdateNodeElectricity_Patch2(ElectricityMana
ger this, System.Int32 nodeID, System.Int32 value)
IL_0000: Local var 0: InfoManager/InfoMode
IL_0000: Local var 1: NetManager
IL_0000: Local var 2: System.Boolean
IL_0000: Local var 3: NetNode/Flags
IL_0000: Local var 4: System.UInt16
IL_0000: Local var 5: BuildingManager
IL_0000: Local var 6: NetNode/Flags
IL_0000: Local var 7: System.Int32
IL_0000: Local var 8: System.UInt16
IL_0000: Local var 9: System.Boolean
IL_0000: Local var 10: System.Boolean
IL_0000: ldc.i4 0
IL_0005: stloc 9 (System.Boolean)
IL_0009: ldc.i4.1
IL_000A: stloc 9 (System.Boolean)
IL_000E: ldc.i4 0
IL_0013: stloc 10 (System.Boolean)
IL_0017: ldloc 9 (System.Boolean)
IL_001B: brfalse => Label1
IL_0020: ldarga 1
IL_0024: ldloca 10 (System.Boolean)
IL_0028: call static System.Void
ElectricRoads.Overrides.ElectricRoadsOverrides::PreConduct(System.Int32& nodeID,
System.Boolean& __state)
IL_002D: Label1
IL_002D: nop
IL_002E: ldloc 9 (System.Boolean)
IL_0032: brfalse => Label0
IL_0037: // start original
IL_0037: call static InfoManager
ColossalFramework.Singleton`1<InfoManager>::get_instance()
IL_003C: callvirt InfoMode InfoManager::get_CurrentMode()
IL_0041: stloc.0
IL_0042: call static NetManager
ColossalFramework.Singleton`1<NetManager>::get_instance()
IL_0047: stloc.1
IL_0048: ldc.i4.0
IL_0049: stloc.2
IL_004A: ldloc.1
IL_004B: ldfld Array16`1<NetNode> NetManager::m_nodes
IL_0050: ldfld NetNode[] Array16`1<NetNode>::m_buffer
IL_0055: ldarg.1
IL_0056: ldelema NetNode
IL_005B: ldfld Flags NetNode::m_flags
IL_0060: stloc.3
IL_0061: ldarg.1
IL_0062: call static System.Boolean
ElectricRoads.Overrides.ElectricRoadsOverrides::CheckNodeTransition(System.Int32
nodeID)
IL_0067: brfalse => Label2
IL_006C: ldloc.1
IL_006D: ldfld Array16`1<NetNode> NetManager::m_nodes
IL_0072: ldfld NetNode[] Array16`1<NetNode>::m_buffer
IL_0077: ldarg.1
IL_0078: ldelema NetNode
IL_007D: dup
IL_007E: ldfld Flags NetNode::m_flags
IL_0083: ldc.i4 -1048577
IL_0088: and
IL_0089: stfld Flags NetNode::m_flags
IL_008E: br => Label12
IL_0093: Label2
IL_0093: ldloc.1
IL_0094: ldfld Array16`1<NetNode> NetManager::m_nodes
IL_0099: ldfld NetNode[] Array16`1<NetNode>::m_buffer
IL_009E: ldarg.1
IL_009F: ldelema NetNode
IL_00A4: ldfld System.UInt16 NetNode::m_building
IL_00A9: stloc.s 4 (System.UInt16)
IL_00AB: ldloc.s 4 (System.UInt16)
IL_00AD: brfalse => Label3
IL_00B2: call static BuildingManager
ColossalFramework.Singleton`1<BuildingManager>::get_instance()
IL_00B7: stloc.s 5 (BuildingManager)
IL_00B9: ldloc.s 5 (BuildingManager)
IL_00BB: ldfld Array16`1<Building> BuildingManager::m_buildings
IL_00C0: ldfld Building[] Array16`1<Building>::m_buffer
IL_00C5: ldloc.s 4 (System.UInt16)
IL_00C7: ldelema Building
IL_00CC: ldfld System.UInt16 Building::m_electricityBuffer
IL_00D1: ldarg.2
IL_00D2: beq => Label4
IL_00D7: ldloc.s 5 (BuildingManager)
IL_00D9: ldfld Array16`1<Building> BuildingManager::m_buildings
IL_00DE: ldfld Building[] Array16`1<Building>::m_buffer
IL_00E3: ldloc.s 4 (System.UInt16)
IL_00E5: ldelema Building
IL_00EA: ldarg.2
IL_00EB: conv.u2
IL_00EC: stfld System.UInt16 Building::m_electricityBuffer
IL_00F1: ldloc.0
IL_00F2: ldc.i4.1
IL_00F3: ceq
IL_00F5: stloc.2
IL_00F6: Label4
IL_00F6: ldloc.2
IL_00F7: brfalse => Label5
IL_00FC: ldloc.s 5 (BuildingManager)
IL_00FE: ldloc.s 4 (System.UInt16)
IL_0100: callvirt System.Void BuildingManager::UpdateBuildingColors(System.UInt16
building)
IL_0105: Label3
IL_0105: Label5
IL_0105: ldloc.3
IL_0106: ldc.i4 -67108865
IL_010B: and
IL_010C: stloc.s 6 (NetNode+Flags)
IL_010E: ldarg.2
IL_010F: brfalse => Label6
IL_0114: ldloc.s 6 (NetNode+Flags)
IL_0116: ldc.i4 67108864
IL_011B: or
IL_011C: stloc.s 6 (NetNode+Flags)
IL_011E: Label6
IL_011E: ldloc.s 6 (NetNode+Flags)
IL_0120: ldloc.3
IL_0121: beq => Label7
IL_0126: ldloc.1
IL_0127: ldfld Array16`1<NetNode> NetManager::m_nodes
IL_012C: ldfld NetNode[] Array16`1<NetNode>::m_buffer
IL_0131: ldarg.1
IL_0132: ldelema NetNode
IL_0137: ldloc.s 6 (NetNode+Flags)
IL_0139: stfld Flags NetNode::m_flags
IL_013E: ldloc.0
IL_013F: ldc.i4.1
IL_0140: ceq
IL_0142: stloc.2
IL_0143: Label7
IL_0143: ldloc.2
IL_0144: brfalse => Label8
IL_0149: ldloc.1
IL_014A: ldarg.1
IL_014B: conv.u2
IL_014C: callvirt System.Void NetManager::UpdateNodeColors(System.UInt16 node)
IL_0151: ldc.i4.0
IL_0152: stloc.s 7 (System.Int32)
IL_0154: br => Label9
IL_0159: Label11
IL_0159: ldloc.1
IL_015A: ldfld Array16`1<NetNode> NetManager::m_nodes
IL_015F: ldfld NetNode[] Array16`1<NetNode>::m_buffer
IL_0164: ldarg.1
IL_0165: ldelema NetNode
IL_016A: ldloc.s 7 (System.Int32)
IL_016C: call System.UInt16 NetNode::GetSegment(System.Int32 index)
IL_0171: stloc.s 8 (System.UInt16)
IL_0173: ldloc.s 8 (System.UInt16)
IL_0175: brfalse => Label10
IL_017A: ldloc.1
IL_017B: ldloc.s 8 (System.UInt16)
IL_017D: callvirt System.Void NetManager::UpdateSegmentColors(System.UInt16
segment)
IL_0182: Label10
IL_0182: ldloc.s 7 (System.Int32)
IL_0184: ldc.i4.1
IL_0185: add
IL_0186: stloc.s 7 (System.Int32)
IL_0188: Label9
IL_0188: ldloc.s 7 (System.Int32)
IL_018A: ldc.i4.8
IL_018B: blt => Label11
IL_0190: // end original
IL_0190: Label8
IL_0190: Label12
IL_0190: Label0
IL_0190: ldarg 1
IL_0194: ldloc 10 (System.Boolean)
IL_0198: call static System.Void
ElectricRoads.Overrides.ElectricRoadsOverrides::PostConduct(System.Int32 nodeID,
System.Boolean __state)
IL_019D: ret
DONE

### Harmony id=com.github.keallu.csl.renderit, version=2.0.4.0, location=E:\


SteamLibrary\steamapps\common\data-0000000022595390, env/clr=2.0.50727.1433,
platform=Win32NT, ptrsize:runtime/env=8/Bits64, Windows
### Started from static System.Void RenderIt.Patcher::PatchAll(), location E:\
SteamLibrary\steamapps\common\data-00000000241D4B00
### At 2023-02-07 02.24.44
### Patch: UnityEngine.Material
UnityEngine.PostProcessing.MaterialFactory::Get(System.String shaderName)
### Replacement: static UnityEngine.Material
UnityEngine.PostProcessing.MaterialFactory::UnityEngine.PostProcessing.MaterialFact
ory.Get_Patch1(UnityEngine.PostProcessing.MaterialFactory this, System.String
shaderName)
IL_0000: Local var 0: UnityEngine.Material
IL_0000: Local var 1: System.Boolean
IL_0000: Local var 2: UnityEngine.Shader
IL_0000: Local var 3: System.Boolean
IL_0000: Local var 4: UnityEngine.Material
IL_0000: Local var 5: UnityEngine.Material
IL_0000: Local var 6: System.Boolean
IL_0000: ldnull
IL_0001: stloc 5 (UnityEngine.Material)
IL_0005: ldc.i4 0
IL_000A: stloc 6 (System.Boolean)
IL_000E: ldc.i4.1
IL_000F: stloc 6 (System.Boolean)
IL_0013: ldloc 6 (System.Boolean)
IL_0017: brfalse => Label1
IL_001C: ldarg.0
IL_001D: ldfld System.Collections.Generic.Dictionary`2<System.String,
UnityEngine.Material> UnityEngine.PostProcessing.MaterialFactory::m_Materials
IL_0022: ldloca 5 (UnityEngine.Material)
IL_0026: ldarg 1
IL_002A: call static System.Boolean
RenderIt.MaterialFactoryGetPatch::Prefix(System.Collections.Generic.Dictionary`2<Sy
stem.String, UnityEngine.Material> ___m_Materials, UnityEngine.Material& __result,
System.String shaderName)
IL_002F: stloc 6 (System.Boolean)
IL_0033: Label1
IL_0033: nop
IL_0034: ldloc 6 (System.Boolean)
IL_0038: brfalse => Label0
IL_003D: // start original
IL_003D: nop
IL_003E: ldarg.0
IL_003F: ldfld System.Collections.Generic.Dictionary`2<System.String,
UnityEngine.Material> UnityEngine.PostProcessing.MaterialFactory::m_Materials
IL_0044: ldarg.1
IL_0045: ldloca.s 0 (UnityEngine.Material)
IL_0047: callvirt virtual System.Boolean
System.Collections.Generic.Dictionary`2<System.String,
UnityEngine.Material>::TryGetValue(System.String key, UnityEngine.Material& value)
IL_004C: ldc.i4.0
IL_004D: ceq
IL_004F: stloc.1
IL_0050: ldloc.1
IL_0051: brfalse => Label2
IL_0056: nop
IL_0057: ldarg.1
IL_0058: call static UnityEngine.Shader
UnityEngine.Shader::Find(System.String name)
IL_005D: stloc.2
IL_005E: ldloc.2
IL_005F: ldnull
IL_0060: call static System.Boolean
UnityEngine.Object::op_Equality(UnityEngine.Object x, UnityEngine.Object y)
IL_0065: stloc.3
IL_0066: ldloc.3
IL_0067: brfalse => Label3
IL_006C: ldstr "Shader not found ({0})"
IL_0071: ldarg.1
IL_0072: call static System.String System.String::Format(System.String
format, System.Object arg0)
IL_0077: newobj System.Void System.ArgumentException::.ctor(System.String
message)
IL_007C: throw
IL_007D: Label3
IL_007D: ldloc.2
IL_007E: newobj System.Void UnityEngine.Material::.ctor(UnityEngine.Shader
shader)
IL_0083: dup
IL_0084: ldstr "PostFX - {0}"
IL_0089: ldarg.1
IL_008A: ldarg.1
IL_008B: ldstr "/"
IL_0090: callvirt System.Int32 System.String::LastIndexOf(System.String value)
IL_0095: ldc.i4.1
IL_0096: add
IL_0097: callvirt System.String System.String::Substring(System.Int32 startIndex)
IL_009C: call static System.String System.String::Format(System.String
format, System.Object arg0)
IL_00A1: callvirt System.Void UnityEngine.Object::set_name(System.String value)
IL_00A6: nop
IL_00A7: dup
IL_00A8: ldc.i4.s 52
IL_00AA: callvirt System.Void
UnityEngine.Object::set_hideFlags(UnityEngine.HideFlags value)
IL_00AF: nop
IL_00B0: stloc.0
IL_00B1: ldarg.0
IL_00B2: ldfld System.Collections.Generic.Dictionary`2<System.String,
UnityEngine.Material> UnityEngine.PostProcessing.MaterialFactory::m_Materials
IL_00B7: ldarg.1
IL_00B8: ldloc.0
IL_00B9: callvirt virtual System.Void
System.Collections.Generic.Dictionary`2<System.String,
UnityEngine.Material>::Add(System.String key, UnityEngine.Material value)
IL_00BE: nop
IL_00BF: nop
IL_00C0: Label2
IL_00C0: ldloc.0
IL_00C1: stloc.s 4 (UnityEngine.Material)
IL_00C3: br => Label4
IL_00C8: Label4
IL_00C8: ldloc.s 4 (UnityEngine.Material)
IL_00CA: // end original
IL_00CA: stloc 5 (UnityEngine.Material)
IL_00CE: Label0
IL_00CE: ldloc 5 (UnityEngine.Material)
IL_00D2: ret
DONE

### Patch: System.Void DayNightProperties::UpdateLighting()


### Replacement: static System.Void
DayNightProperties::DayNightProperties.UpdateLighting_Patch1(DayNightProperties
this)
IL_0000: Local var 0: System.Single
IL_0000: Local var 1: System.Single
IL_0000: Local var 2: System.Single
IL_0000: Local var 3: UnityEngine.Vector3
IL_0000: // start original
IL_0000: call static System.Single
UnityEngine.QualitySettings::get_shadowDistance()
IL_0005: ldc.r4 5E-05
IL_000A: mul
IL_000B: stloc.0
IL_000C: ldc.r4 0.01
IL_0011: ldloc.0
IL_0012: ldc.r4 1.2
IL_0017: ldloc.0
IL_0018: sub
IL_0019: mul
IL_001A: ldc.r4 0.01
IL_001F: sub
IL_0020: call static System.Single UnityEngine.Mathf::Max(System.Single a,
System.Single b)
IL_0025: stloc.1
IL_0026: call static System.Int32
UnityEngine.QualitySettings::get_shadowCascades()
IL_002B: ldc.i4.1
IL_002C: bgt => Label0
IL_0031: ldloc.1
IL_0032: ldc.r4 2
IL_0037: mul
IL_0038: stloc.1
IL_0039: br => Label1
IL_003E: Label0
IL_003E: call static System.Int32
UnityEngine.QualitySettings::get_shadowCascades()
IL_0043: ldc.i4.2
IL_0044: bgt => Label2
IL_0049: ldloc.1
IL_004A: ldc.r4 1.5
IL_004F: mul
IL_0050: stloc.1
IL_0051: Label1
IL_0051: Label2
IL_0051: call static System.Boolean
ColossalFramework.Singleton`1<InfoManager>::get_exists()
IL_0056: brfalse => Label3
IL_005B: call static InfoManager
ColossalFramework.Singleton`1<InfoManager>::get_instance()
IL_0060: callvirt InfoMode InfoManager::get_CurrentMode()
IL_0065: brfalse => Label4
IL_006A: call static InfoManager
ColossalFramework.Singleton`1<InfoManager>::get_instance()
IL_006F: ldfld InfoProperties SimulationManagerBase`2<InfoManager,
InfoProperties>::m_properties
IL_0074: ldnull
IL_0075: call static System.Boolean
UnityEngine.Object::op_Inequality(UnityEngine.Object x, UnityEngine.Object y)
IL_007A: brfalse => Label5
IL_007F: call static InfoManager
ColossalFramework.Singleton`1<InfoManager>::get_instance()
IL_0084: ldfld InfoProperties SimulationManagerBase`2<InfoManager,
InfoProperties>::m_properties
IL_0089: ldfld UnityEngine.Color InfoProperties::m_ambientColor
IL_008E: call static System.Void
UnityEngine.RenderSettings::set_ambientSkyColor(UnityEngine.Color value)
IL_0093: call static InfoManager
ColossalFramework.Singleton`1<InfoManager>::get_instance()
IL_0098: ldfld InfoProperties SimulationManagerBase`2<InfoManager,
InfoProperties>::m_properties
IL_009D: ldfld UnityEngine.Color InfoProperties::m_ambientColor
IL_00A2: call static System.Void
UnityEngine.RenderSettings::set_ambientEquatorColor(UnityEngine.Color value)
IL_00A7: call static InfoManager
ColossalFramework.Singleton`1<InfoManager>::get_instance()
IL_00AC: ldfld InfoProperties SimulationManagerBase`2<InfoManager,
InfoProperties>::m_properties
IL_00B1: ldfld UnityEngine.Color InfoProperties::m_ambientColor
IL_00B6: call static System.Void
UnityEngine.RenderSettings::set_ambientGroundColor(UnityEngine.Color value)
IL_00BB: ldarg.0
IL_00BC: call UnityEngine.Light DayNightProperties::get_sunLightSource()
IL_00C1: ldnull
IL_00C2: call static System.Boolean
UnityEngine.Object::op_Inequality(UnityEngine.Object x, UnityEngine.Object y)
IL_00C7: brfalse => Label6
IL_00CC: ldc.r4 0.01
IL_00D1: ldarg.0
IL_00D2: call UnityEngine.Vector3 DayNightProperties::get_sunDir()
IL_00D7: stloc.3
IL_00D8: ldloca.s 3 (UnityEngine.Vector3)
IL_00DA: ldfld System.Single UnityEngine.Vector3::y
IL_00DF: call static System.Single UnityEngine.Mathf::Max(System.Single a,
System.Single b)
IL_00E4: stloc.2
IL_00E5: ldc.r4 0.8752397
IL_00EA: ldloc.2
IL_00EB: call static System.Single UnityEngine.Mathf::Sqrt(System.Single f)
IL_00F0: div
IL_00F1: stloc.2
IL_00F2: ldarg.0
IL_00F3: call UnityEngine.Light DayNightProperties::get_sunLightSource()
IL_00F8: ldloc.1
IL_00F9: callvirt System.Void UnityEngine.Light::set_shadowBias(System.Single
value)
IL_00FE: ldarg.0
IL_00FF: call UnityEngine.Light DayNightProperties::get_sunLightSource()
IL_0104: call static InfoManager
ColossalFramework.Singleton`1<InfoManager>::get_instance()
IL_0109: ldfld InfoProperties SimulationManagerBase`2<InfoManager,
InfoProperties>::m_properties
IL_010E: ldfld System.Single InfoProperties::m_lightIntensity
IL_0113: ldloc.2
IL_0114: mul
IL_0115: callvirt System.Void UnityEngine.Light::set_intensity(System.Single
value)
IL_011A: ldarg.0
IL_011B: call UnityEngine.Light DayNightProperties::get_sunLightSource()
IL_0120: call static InfoManager
ColossalFramework.Singleton`1<InfoManager>::get_instance()
IL_0125: ldfld InfoProperties SimulationManagerBase`2<InfoManager,
InfoProperties>::m_properties
IL_012A: ldfld UnityEngine.Color InfoProperties::m_lightColor
IL_012F: callvirt System.Void UnityEngine.Light::set_color(UnityEngine.Color
value)
IL_0134: ldarg.0
IL_0135: call UnityEngine.Light DayNightProperties::get_sunLightSource()
IL_013A: ldc.i4.1
IL_013B: callvirt System.Void UnityEngine.Behaviour::set_enabled(System.Boolean
value)
IL_0140: Label6
IL_0140: ldarg.0
IL_0141: call UnityEngine.Light DayNightProperties::get_moonLightSource()
IL_0146: ldnull
IL_0147: call static System.Boolean
UnityEngine.Object::op_Inequality(UnityEngine.Object x, UnityEngine.Object y)
IL_014C: brfalse => Label7
IL_0151: ldarg.0
IL_0152: call UnityEngine.Light DayNightProperties::get_moonLightSource()
IL_0157: ldc.i4.0
IL_0158: callvirt System.Void UnityEngine.Behaviour::set_enabled(System.Boolean
value)
IL_015D: Label7
IL_015D: call static System.Boolean
ColossalFramework.Singleton`1<RenderManager>::get_exists()
IL_0162: brfalse => Label8
IL_0167: call static RenderManager
ColossalFramework.Singleton`1<RenderManager>::get_instance()
IL_016C: ldarg.0
IL_016D: call UnityEngine.Light DayNightProperties::get_sunLightSource()
IL_0172: callvirt System.Void RenderManager::set_MainLight(UnityEngine.Light
value)
IL_0177: Label8
IL_0177: br => Label9
IL_017C: Label3
IL_017C: Label4
IL_017C: Label5
IL_017C: ldarg.0
IL_017D: call UnityEngine.Color DayNightProperties::get_currentSkyColor()
IL_0182: call static System.Void
UnityEngine.RenderSettings::set_ambientSkyColor(UnityEngine.Color value)
IL_0187: ldarg.0
IL_0188: call UnityEngine.Color DayNightProperties::get_currentEquatorColor()
IL_018D: call static System.Void
UnityEngine.RenderSettings::set_ambientEquatorColor(UnityEngine.Color value)
IL_0192: ldarg.0
IL_0193: call UnityEngine.Color DayNightProperties::get_currentGroundColor()
IL_0198: call static System.Void
UnityEngine.RenderSettings::set_ambientGroundColor(UnityEngine.Color value)
IL_019D: ldarg.0
IL_019E: call UnityEngine.Light DayNightProperties::get_sunLightSource()
IL_01A3: ldnull
IL_01A4: call static System.Boolean
UnityEngine.Object::op_Inequality(UnityEngine.Object x, UnityEngine.Object y)
IL_01A9: brfalse => Label10
IL_01AE: ldarg.0
IL_01AF: call UnityEngine.Light DayNightProperties::get_sunLightSource()
IL_01B4: ldloc.1
IL_01B5: callvirt System.Void UnityEngine.Light::set_shadowBias(System.Single
value)
IL_01BA: ldarg.0
IL_01BB: call UnityEngine.Light DayNightProperties::get_sunLightSource()
IL_01C0: ldarg.0
IL_01C1: ldfld System.Single DayNightProperties::m_Exposure
IL_01C6: ldarg.0
IL_01C7: ldfld System.Single DayNightProperties::m_SunIntensity
IL_01CC: mul
IL_01CD: ldarg.0
IL_01CE: call System.Single DayNightProperties::get_DayTime()
IL_01D3: mul
IL_01D4: callvirt System.Void UnityEngine.Light::set_intensity(System.Single
value)
IL_01D9: ldarg.0
IL_01DA: call UnityEngine.Light DayNightProperties::get_sunLightSource()
IL_01DF: ldarg.0
IL_01E0: call UnityEngine.Color DayNightProperties::get_currentLightColor()
IL_01E5: ldarg.0
IL_01E6: call System.Single DayNightProperties::get_DayTime()
IL_01EB: call static UnityEngine.Color
UnityEngine.Color::op_Multiply(UnityEngine.Color a, System.Single b)
IL_01F0: callvirt System.Void UnityEngine.Light::set_color(UnityEngine.Color
value)
IL_01F5: ldarg.0
IL_01F6: call UnityEngine.Light DayNightProperties::get_sunLightSource()
IL_01FB: ldarg.0
IL_01FC: call System.Single DayNightProperties::get_normalizedTimeOfDay()
IL_0201: ldc.r4 0.24
IL_0206: blt => Label11
IL_020B: ldarg.0
IL_020C: call System.Single DayNightProperties::get_normalizedTimeOfDay()
IL_0211: ldc.r4 0.76
IL_0216: ble.un => Label12
IL_021B: Label11
IL_021B: ldc.i4.0
IL_021C: br => Label13
IL_0221: Label12
IL_0221: ldc.i4.1
IL_0222: Label13
IL_0222: callvirt System.Void UnityEngine.Behaviour::set_enabled(System.Boolean
value)
IL_0227: Label10
IL_0227: ldarg.0
IL_0228: call UnityEngine.Light DayNightProperties::get_moonLightSource()
IL_022D: ldnull
IL_022E: call static System.Boolean
UnityEngine.Object::op_Inequality(UnityEngine.Object x, UnityEngine.Object y)
IL_0233: brfalse => Label14
IL_0238: ldarg.0
IL_0239: call UnityEngine.Light DayNightProperties::get_moonLightSource()
IL_023E: ldloc.1
IL_023F: callvirt System.Void UnityEngine.Light::set_shadowBias(System.Single
value)
IL_0244: ldarg.0
IL_0245: call UnityEngine.Light DayNightProperties::get_moonLightSource()
IL_024A: ldarg.0
IL_024B: ldfld System.Single DayNightProperties::m_Exposure
IL_0250: ldarg.0
IL_0251: ldfld System.Single DayNightProperties::m_MoonIntensity
IL_0256: mul
IL_0257: ldarg.0
IL_0258: call System.Single DayNightProperties::get_NightTime()
IL_025D: mul
IL_025E: callvirt System.Void UnityEngine.Light::set_intensity(System.Single
value)
IL_0263: ldarg.0
IL_0264: call UnityEngine.Light DayNightProperties::get_moonLightSource()
IL_0269: ldarg.0
IL_026A: call UnityEngine.Color DayNightProperties::get_currentLightColor()
IL_026F: ldarg.0
IL_0270: call System.Single DayNightProperties::get_NightTime()
IL_0275: call static UnityEngine.Color
UnityEngine.Color::op_Multiply(UnityEngine.Color a, System.Single b)
IL_027A: callvirt System.Void UnityEngine.Light::set_color(UnityEngine.Color
value)
IL_027F: ldarg.0
IL_0280: call UnityEngine.Light DayNightProperties::get_moonLightSource()
IL_0285: ldarg.0
IL_0286: call System.Single DayNightProperties::get_normalizedTimeOfDay()
IL_028B: ldc.r4 0.26
IL_0290: ble.un => Label15
IL_0295: ldarg.0
IL_0296: call System.Single DayNightProperties::get_normalizedTimeOfDay()
IL_029B: ldc.r4 0.74
IL_02A0: bge.un => Label16
IL_02A5: ldc.i4.0
IL_02A6: br => Label17
IL_02AB: Label15
IL_02AB: Label16
IL_02AB: ldc.i4.1
IL_02AC: Label17
IL_02AC: callvirt System.Void UnityEngine.Behaviour::set_enabled(System.Boolean
value)
IL_02B1: Label14
IL_02B1: call static System.Boolean
ColossalFramework.Singleton`1<RenderManager>::get_exists()
IL_02B6: brfalse => Label18
IL_02BB: ldarg.0
IL_02BC: call System.Single DayNightProperties::get_normalizedTimeOfDay()
IL_02C1: ldc.r4 0.25
IL_02C6: blt => Label19
IL_02CB: ldarg.0
IL_02CC: call System.Single DayNightProperties::get_normalizedTimeOfDay()
IL_02D1: ldc.r4 0.75
IL_02D6: ble.un => Label20
IL_02DB: Label19
IL_02DB: call static RenderManager
ColossalFramework.Singleton`1<RenderManager>::get_instance()
IL_02E0: ldarg.0
IL_02E1: call UnityEngine.Light DayNightProperties::get_moonLightSource()
IL_02E6: callvirt System.Void RenderManager::set_MainLight(UnityEngine.Light
value)
IL_02EB: br => Label21
IL_02F0: Label20
IL_02F0: call static RenderManager
ColossalFramework.Singleton`1<RenderManager>::get_instance()
IL_02F5: ldarg.0
IL_02F6: call UnityEngine.Light DayNightProperties::get_sunLightSource()
IL_02FB: callvirt System.Void RenderManager::set_MainLight(UnityEngine.Light
value)
IL_0300: // end original
IL_0300: Label9
IL_0300: Label18
IL_0300: Label21
IL_0300: call static System.Void
RenderIt.DayNightPropertiesUpdateLightingPatch::Postfix()
IL_0305: ret
DONE

### Patch: virtual System.Void ColossalFramework.UI.UIView::Start()


### Replacement: static System.Void
ColossalFramework.UI.UIView::ColossalFramework.UI.UIView.Start_Patch0(ColossalFrame
work.UI.UIView this)
IL_0000: Local var 0:
ColossalFramework.PoolList`1<ColossalFramework.UI.UIComponent>
IL_0000: Local var 1: ColossalFramework.UI.UIComponent
IL_0000: Local var 2:
System.Collections.Generic.IEnumerator`1<ColossalFramework.UI.UIComponent>
IL_0000: // start original
IL_0000: ldarg.0
IL_0001: ldc.i4.0
IL_0002: stfld System.Int32 ColossalFramework.UI.UIView::m_FramesRendered
IL_0007: ldarg.0
IL_0008: call System.Void
ColossalFramework.UI.UIView::InvalidateAllComponents()
IL_000D: ldarg.0
IL_000E: ldfld UnityEngine.MeshRenderer
ColossalFramework.UI.UIView::m_MeshRenderer
IL_0013: ldnull
IL_0014: call static System.Boolean
UnityEngine.Object::op_Inequality(UnityEngine.Object x, UnityEngine.Object y)
IL_0019: brfalse => Label0
IL_001E: ldarg.0
IL_001F: ldfld UnityEngine.MeshRenderer
ColossalFramework.UI.UIView::m_MeshRenderer
IL_0024: ldc.i4.1
IL_0025: callvirt System.Void UnityEngine.Renderer::set_enabled(System.Boolean
value)
IL_002A: Label0
IL_002A: ldarg.0
IL_002B: call ColossalFramework.PoolList`1<ColossalFramework.UI.UIComponent>
ColossalFramework.UI.UIView::GetTopLevelComponents()
IL_0030: stloc.0
.try
{
IL_0031: ldloc.0
IL_0032: callvirt virtual
System.Collections.Generic.IEnumerator`1<ColossalFramework.UI.UIComponent>
ColossalFramework.PoolList`1<ColossalFramework.UI.UIComponent>::GetEnumerator()
IL_0037: stloc.2
.try
{
IL_0038: br => Label1
IL_003D: Label2
IL_003D: ldloc.2
IL_003E: callvirt abstract virtual ColossalFramework.UI.UIComponent
System.Collections.Generic.IEnumerator`1<ColossalFramework.UI.UIComponent>::get_Cur
rent()
IL_0043: stloc.1
IL_0044: ldloc.1
IL_0045: ldc.i4.1
IL_0046: callvirt System.Void
ColossalFramework.UI.UIComponent::InitializeParentVisibilityCache(System.Boolean
parentVisible)
IL_004B: Label1
IL_004B: ldloc.2
IL_004C: callvirt abstract virtual System.Boolean
System.Collections.IEnumerator::MoveNext()
IL_0051: brtrue => Label2
IL_0056: leave => Label3
IL_005B: leave => (autogenerated)
} // end try
.finally
{
IL_0060: ldloc.2
IL_0061: brfalse => Label4
IL_0066: ldloc.2
IL_0067: callvirt abstract virtual System.Void
System.IDisposable::Dispose()
IL_006C: Label4
IL_006C: endfinally
IL_006D: leave => (autogenerated)
} // end handler
IL_006E: Label3
IL_006E: leave => Label5
IL_0073: leave => (autogenerated)
} // end try
.finally
{
IL_0078: ldloc.0
IL_0079: brfalse => Label6
IL_007E: ldloc.0
IL_007F: callvirt abstract virtual System.Void
System.IDisposable::Dispose()
IL_0084: Label6
IL_0084: endfinally
IL_0085: leave => (autogenerated)
} // end handler
IL_0086: Label5
IL_0086: ldarg.0
IL_0087: ldc.i4.1
IL_0088: stfld System.Boolean
ColossalFramework.UI.UIView::m_VisibilityCacheInitialized
IL_008D: // end original
IL_008D: ret
DONE

### Patch: virtual UnityEngine.Color NetAI::GetColor(System.UInt16 nodeID, NetNode&


data, InfoMode infoMode, SubInfoMode subInfoMode)
### Replacement: static UnityEngine.Color NetAI::NetAI.GetColor_Patch0(NetAI this,
System.UInt16 nodeID, NetNode& data, InfoMode infoMode, SubInfoMode subInfoMode)
IL_0000: // start original
IL_0000: ldarg.3
IL_0001: brfalse => Label0
IL_0006: call static InfoManager
ColossalFramework.Singleton`1<InfoManager>::get_instance()
IL_000B: ldfld InfoProperties SimulationManagerBase`2<InfoManager,
InfoProperties>::m_properties
IL_0010: ldfld UnityEngine.Color InfoProperties::m_neutralColor
IL_0015: br => Label1
IL_001A: Label0
IL_001A: ldarg.0
IL_001B: ldfld NetInfo NetAI::m_info
IL_0020: ldfld UnityEngine.Color NetInfo::m_color
IL_0025: // end original
IL_0025: Label1
IL_0025: ret
DONE

### Patch: virtual UnityEngine.Color NetAI::GetColor(System.UInt16 segmentID,


NetSegment& data, InfoMode infoMode, SubInfoMode subInfoMode)
### Replacement: static UnityEngine.Color NetAI::NetAI.GetColor_Patch0(NetAI this,
System.UInt16 segmentID, NetSegment& data, InfoMode infoMode, SubInfoMode
subInfoMode)
IL_0000: // start original
IL_0000: ldarg.3
IL_0001: brfalse => Label0
IL_0006: call static InfoManager
ColossalFramework.Singleton`1<InfoManager>::get_instance()
IL_000B: ldfld InfoProperties SimulationManagerBase`2<InfoManager,
InfoProperties>::m_properties
IL_0010: ldfld UnityEngine.Color InfoProperties::m_neutralColor
IL_0015: br => Label1
IL_001A: Label0
IL_001A: ldarg.0
IL_001B: ldfld NetInfo NetAI::m_info
IL_0020: ldfld UnityEngine.Color NetInfo::m_color
IL_0025: // end original
IL_0025: Label1
IL_0025: ret
DONE

### Patch: System.Void ElectricityManager::UpdateNodeElectricity(System.Int32


nodeID, System.Int32 value)
### Replacement: static System.Void
ElectricityManager::ElectricityManager.UpdateNodeElectricity_Patch0(ElectricityMana
ger this, System.Int32 nodeID, System.Int32 value)
IL_0000: Local var 0: InfoManager/InfoMode
IL_0000: Local var 1: NetManager
IL_0000: Local var 2: System.Boolean
IL_0000: Local var 3: NetNode/Flags
IL_0000: Local var 4: System.UInt16
IL_0000: Local var 5: BuildingManager
IL_0000: Local var 6: NetNode/Flags
IL_0000: Local var 7: System.Int32
IL_0000: Local var 8: System.UInt16
IL_0000: // start original
IL_0000: call static InfoManager
ColossalFramework.Singleton`1<InfoManager>::get_instance()
IL_0005: callvirt InfoMode InfoManager::get_CurrentMode()
IL_000A: stloc.0
IL_000B: call static NetManager
ColossalFramework.Singleton`1<NetManager>::get_instance()
IL_0010: stloc.1
IL_0011: ldc.i4.0
IL_0012: stloc.2
IL_0013: ldloc.1
IL_0014: ldfld Array16`1<NetNode> NetManager::m_nodes
IL_0019: ldfld NetNode[] Array16`1<NetNode>::m_buffer
IL_001E: ldarg.1
IL_001F: ldelema NetNode
IL_0024: ldfld Flags NetNode::m_flags
IL_0029: stloc.3
IL_002A: ldloc.3
IL_002B: ldc.i4 1048576
IL_0030: and
IL_0031: brfalse => Label0
IL_0036: ldloc.1
IL_0037: ldfld Array16`1<NetNode> NetManager::m_nodes
IL_003C: ldfld NetNode[] Array16`1<NetNode>::m_buffer
IL_0041: ldarg.1
IL_0042: ldelema NetNode
IL_0047: dup
IL_0048: ldfld Flags NetNode::m_flags
IL_004D: ldc.i4 -1048577
IL_0052: and
IL_0053: stfld Flags NetNode::m_flags
IL_0058: br => Label10
IL_005D: Label0
IL_005D: ldloc.1
IL_005E: ldfld Array16`1<NetNode> NetManager::m_nodes
IL_0063: ldfld NetNode[] Array16`1<NetNode>::m_buffer
IL_0068: ldarg.1
IL_0069: ldelema NetNode
IL_006E: ldfld System.UInt16 NetNode::m_building
IL_0073: stloc.s 4 (System.UInt16)
IL_0075: ldloc.s 4 (System.UInt16)
IL_0077: brfalse => Label1
IL_007C: call static BuildingManager
ColossalFramework.Singleton`1<BuildingManager>::get_instance()
IL_0081: stloc.s 5 (BuildingManager)
IL_0083: ldloc.s 5 (BuildingManager)
IL_0085: ldfld Array16`1<Building> BuildingManager::m_buildings
IL_008A: ldfld Building[] Array16`1<Building>::m_buffer
IL_008F: ldloc.s 4 (System.UInt16)
IL_0091: ldelema Building
IL_0096: ldfld System.UInt16 Building::m_electricityBuffer
IL_009B: ldarg.2
IL_009C: beq => Label2
IL_00A1: ldloc.s 5 (BuildingManager)
IL_00A3: ldfld Array16`1<Building> BuildingManager::m_buildings
IL_00A8: ldfld Building[] Array16`1<Building>::m_buffer
IL_00AD: ldloc.s 4 (System.UInt16)
IL_00AF: ldelema Building
IL_00B4: ldarg.2
IL_00B5: conv.u2
IL_00B6: stfld System.UInt16 Building::m_electricityBuffer
IL_00BB: ldloc.0
IL_00BC: ldc.i4.1
IL_00BD: ceq
IL_00BF: stloc.2
IL_00C0: Label2
IL_00C0: ldloc.2
IL_00C1: brfalse => Label3
IL_00C6: ldloc.s 5 (BuildingManager)
IL_00C8: ldloc.s 4 (System.UInt16)
IL_00CA: callvirt System.Void BuildingManager::UpdateBuildingColors(System.UInt16
building)
IL_00CF: Label1
IL_00CF: Label3
IL_00CF: ldloc.3
IL_00D0: ldc.i4 -67108865
IL_00D5: and
IL_00D6: stloc.s 6 (NetNode+Flags)
IL_00D8: ldarg.2
IL_00D9: brfalse => Label4
IL_00DE: ldloc.s 6 (NetNode+Flags)
IL_00E0: ldc.i4 67108864
IL_00E5: or
IL_00E6: stloc.s 6 (NetNode+Flags)
IL_00E8: Label4
IL_00E8: ldloc.s 6 (NetNode+Flags)
IL_00EA: ldloc.3
IL_00EB: beq => Label5
IL_00F0: ldloc.1
IL_00F1: ldfld Array16`1<NetNode> NetManager::m_nodes
IL_00F6: ldfld NetNode[] Array16`1<NetNode>::m_buffer
IL_00FB: ldarg.1
IL_00FC: ldelema NetNode
IL_0101: ldloc.s 6 (NetNode+Flags)
IL_0103: stfld Flags NetNode::m_flags
IL_0108: ldloc.0
IL_0109: ldc.i4.1
IL_010A: ceq
IL_010C: stloc.2
IL_010D: Label5
IL_010D: ldloc.2
IL_010E: brfalse => Label6
IL_0113: ldloc.1
IL_0114: ldarg.1
IL_0115: conv.u2
IL_0116: callvirt System.Void NetManager::UpdateNodeColors(System.UInt16 node)
IL_011B: ldc.i4.0
IL_011C: stloc.s 7 (System.Int32)
IL_011E: br => Label7
IL_0123: Label9
IL_0123: ldloc.1
IL_0124: ldfld Array16`1<NetNode> NetManager::m_nodes
IL_0129: ldfld NetNode[] Array16`1<NetNode>::m_buffer
IL_012E: ldarg.1
IL_012F: ldelema NetNode
IL_0134: ldloc.s 7 (System.Int32)
IL_0136: call System.UInt16 NetNode::GetSegment(System.Int32 index)
IL_013B: stloc.s 8 (System.UInt16)
IL_013D: ldloc.s 8 (System.UInt16)
IL_013F: brfalse => Label8
IL_0144: ldloc.1
IL_0145: ldloc.s 8 (System.UInt16)
IL_0147: callvirt System.Void NetManager::UpdateSegmentColors(System.UInt16
segment)
IL_014C: Label8
IL_014C: ldloc.s 7 (System.Int32)
IL_014E: ldc.i4.1
IL_014F: add
IL_0150: stloc.s 7 (System.Int32)
IL_0152: Label7
IL_0152: ldloc.s 7 (System.Int32)
IL_0154: ldc.i4.8
IL_0155: blt => Label9
IL_015A: // end original
IL_015A: Label6
IL_015A: Label10
IL_015A: ret
DONE

### Patch: static System.Void PropInstance::RenderInstance(CameraInfo cameraInfo,


PropInfo info, InstanceID id, UnityEngine.Vector3 position, System.Single scale,
System.Single angle, UnityEngine.Color color, UnityEngine.Vector4 objectIndex,
System.Boolean active, UnityEngine.Texture heightMap, UnityEngine.Vector4
heightMapping, UnityEngine.Vector4 surfaceMapping, UnityEngine.Texture
waterHeightMap, UnityEngine.Vector4 waterHeightMapping, UnityEngine.Vector4
waterSurfaceMapping)
### Replacement: static System.Void
PropInstance::PropInstance.RenderInstance_Patch0(CameraInfo cameraInfo, PropInfo
info, InstanceID id, UnityEngine.Vector3 position, System.Single scale,
System.Single angle, UnityEngine.Color color, UnityEngine.Vector4 objectIndex,
System.Boolean active, UnityEngine.Texture heightMap, UnityEngine.Vector4
heightMapping, UnityEngine.Vector4 surfaceMapping, UnityEngine.Texture
waterHeightMap, UnityEngine.Vector4 waterHeightMapping, UnityEngine.Vector4
waterSurfaceMapping)
IL_0000: Local var 0: UnityEngine.Matrix4x4
IL_0000: Local var 1: System.Single
IL_0000: Local var 2: System.Int32
IL_0000: Local var 3: UnityEngine.Vector3
IL_0000: Local var 4: UnityEngine.Vector3
IL_0000: Local var 5: EffectInfo/SpawnArea
IL_0000: Local var 6: System.Single
IL_0000: Local var 7: LightSystem
IL_0000: Local var 8: ColossalFramework.Math.Randomizer
IL_0000: Local var 9: UnityEngine.Vector4
IL_0000: Local var 10: System.Single
IL_0000: Local var 11: System.Single
IL_0000: Local var 12: System.Single
IL_0000: Local var 13: UnityEngine.Matrix4x4
IL_0000: Local var 14: PropManager
IL_0000: Local var 15: UnityEngine.MaterialPropertyBlock
IL_0000: Local var 16: System.Int32
IL_0000: // start original
IL_0000: ldarg.1
IL_0001: ldfld System.Boolean PrefabInfo::m_prefabInitialized
IL_0006: brfalse => Label0
IL_000B: ldarg.1
IL_000C: ldfld System.Boolean PropInfo::m_hasEffects
IL_0011: brfalse => Label1
IL_0016: ldarg.s 8
IL_0018: brtrue => Label2
IL_001D: ldarg.1
IL_001E: ldfld System.Boolean PropInfo::m_alwaysActive
IL_0023: brfalse => Label3
IL_0028: Label2
IL_0028: ldloca.s 0 (UnityEngine.Matrix4x4)
IL_002A: initobj UnityEngine.Matrix4x4
IL_0030: ldloca.s 0 (UnityEngine.Matrix4x4)
IL_0032: ldarg.3
IL_0033: ldarg.s 5
IL_0035: ldc.r4 57.29578
IL_003A: mul
IL_003B: call static UnityEngine.Vector3 UnityEngine.Vector3::get_down()
IL_0040: call static UnityEngine.Quaternion
UnityEngine.Quaternion::AngleAxis(System.Single angle, UnityEngine.Vector3 axis)
IL_0045: ldarg.s 4
IL_0047: ldarg.s 4
IL_0049: ldarg.s 4
IL_004B: newobj System.Void UnityEngine.Vector3::.ctor(System.Single x,
System.Single y, System.Single z)
IL_0050: call System.Void UnityEngine.Matrix4x4::SetTRS(UnityEngine.Vector3
pos, UnityEngine.Quaternion q, UnityEngine.Vector3 s)
IL_0055: call static SimulationManager
ColossalFramework.Singleton`1<SimulationManager>::get_instance()
IL_005A: ldfld System.Single SimulationManager::m_simulationTimeDelta
IL_005F: stloc.1
IL_0060: ldc.i4.0
IL_0061: stloc.2
IL_0062: br => Label4
IL_0067: Label5
IL_0067: ldloca.s 0 (UnityEngine.Matrix4x4)
IL_0069: ldarg.1
IL_006A: ldfld Effect[] PropInfo::m_effects
IL_006F: ldloc.2
IL_0070: ldelema PropInfo+Effect
IL_0075: ldfld UnityEngine.Vector3 Effect::m_position
IL_007A: call UnityEngine.Vector3
UnityEngine.Matrix4x4::MultiplyPoint(UnityEngine.Vector3 v)
IL_007F: stloc.3
IL_0080: ldloca.s 0 (UnityEngine.Matrix4x4)
IL_0082: ldarg.1
IL_0083: ldfld Effect[] PropInfo::m_effects
IL_0088: ldloc.2
IL_0089: ldelema PropInfo+Effect
IL_008E: ldfld UnityEngine.Vector3 Effect::m_direction
IL_0093: call UnityEngine.Vector3
UnityEngine.Matrix4x4::MultiplyVector(UnityEngine.Vector3 v)
IL_0098: stloc.s 4 (UnityEngine.Vector3)
IL_009A: ldloca.s 5 (EffectInfo+SpawnArea)
IL_009C: ldloc.3
IL_009D: ldloc.s 4 (UnityEngine.Vector3)
IL_009F: ldc.r4 0
IL_00A4: call System.Void SpawnArea::.ctor(UnityEngine.Vector3 position,
UnityEngine.Vector3 direction, System.Single radius)
IL_00A9: ldarg.1
IL_00AA: ldfld Effect[] PropInfo::m_effects
IL_00AF: ldloc.2
IL_00B0: ldelema PropInfo+Effect
IL_00B5: ldfld EffectInfo Effect::m_effect
IL_00BA: ldarg.2
IL_00BB: ldloc.s 5 (EffectInfo+SpawnArea)
IL_00BD: call static UnityEngine.Vector3 UnityEngine.Vector3::get_zero()
IL_00C2: ldc.r4 0
IL_00C7: ldc.r4 1
IL_00CC: ldc.r4 -1
IL_00D1: ldloc.1
IL_00D2: ldarg.0
IL_00D3: callvirt virtual System.Void EffectInfo::RenderEffect(InstanceID id,
SpawnArea area, UnityEngine.Vector3 velocity, System.Single acceleration,
System.Single magnitude, System.Single timeOffset, System.Single timeDelta,
CameraInfo cameraInfo)
IL_00D8: ldloc.2
IL_00D9: ldc.i4.1
IL_00DA: add
IL_00DB: stloc.2
IL_00DC: Label4
IL_00DC: ldloc.2
IL_00DD: ldarg.1
IL_00DE: ldfld Effect[] PropInfo::m_effects
IL_00E3: ldlen
IL_00E4: conv.i4
IL_00E5: blt => Label5
IL_00EA: Label1
IL_00EA: Label3
IL_00EA: ldarg.1
IL_00EB: ldfld System.Boolean PropInfo::m_hasRenderer
IL_00F0: brfalse => Label6
IL_00F5: ldarg.0
IL_00F6: ldfld System.Int32 CameraInfo::m_layerMask
IL_00FB: ldc.i4.1
IL_00FC: ldarg.1
IL_00FD: ldfld System.Int32 PrefabInfo::m_prefabDataLayer
IL_0102: ldc.i4.s 31
IL_0104: and
IL_0105: shl
IL_0106: and
IL_0107: brfalse => Label7
IL_010C: call static InfoManager
ColossalFramework.Singleton`1<InfoManager>::get_instance()
IL_0111: callvirt InfoMode InfoManager::get_CurrentMode()
IL_0116: brtrue => Label8
IL_011B: ldc.r4 0
IL_0120: stloc.s 6 (System.Single)
IL_0122: ldarg.s 8
IL_0124: brtrue => Label9
IL_0129: ldarg.1
IL_012A: ldfld System.Boolean PropInfo::m_alwaysActive
IL_012F: brtrue => Label10
IL_0134: ldarga.s 7
IL_0136: ldc.r4 0
IL_013B: stfld System.Single UnityEngine.Vector4::z
IL_0140: br => Label11
IL_0145: Label9
IL_0145: Label10
IL_0145: ldarg.1
IL_0146: ldflda UnityEngine.Vector2 PropInfo::m_illuminationOffRange
IL_014B: ldfld System.Single UnityEngine.Vector2::x
IL_0150: ldc.r4 1000
IL_0155: blt => Label12
IL_015A: ldarg.1
IL_015B: ldfld BlinkType PropInfo::m_illuminationBlinkType
IL_0160: brfalse => Label13
IL_0165: Label12
IL_0165: call static RenderManager
ColossalFramework.Singleton`1<RenderManager>::get_instance()
IL_016A: callvirt LightSystem RenderManager::get_lightSystem()
IL_016F: stloc.s 7 (LightSystem)
IL_0171: ldloca.s 8 (ColossalFramework.Math.Randomizer)
IL_0173: ldarga.s 2
IL_0175: call System.UInt32 InstanceID::get_Index()
IL_017A: call System.Void
ColossalFramework.Math.Randomizer::.ctor(System.UInt32 _seed)
IL_017F: ldarg.1
IL_0180: ldflda UnityEngine.Vector2 PropInfo::m_illuminationOffRange
IL_0185: ldfld System.Single UnityEngine.Vector2::x
IL_018A: ldloca.s 8 (ColossalFramework.Math.Randomizer)
IL_018C: ldc.i4 100000
IL_0191: call System.Int32
ColossalFramework.Math.Randomizer::Int32(System.UInt32 range)
IL_0196: conv.r4
IL_0197: ldc.r4 1E-05
IL_019C: mul
IL_019D: ldarg.1
IL_019E: ldflda UnityEngine.Vector2 PropInfo::m_illuminationOffRange
IL_01A3: ldfld System.Single UnityEngine.Vector2::y
IL_01A8: ldarg.1
IL_01A9: ldflda UnityEngine.Vector2 PropInfo::m_illuminationOffRange
IL_01AE: ldfld System.Single UnityEngine.Vector2::x
IL_01B3: sub
IL_01B4: mul
IL_01B5: add
IL_01B6: stloc.s 6 (System.Single)
IL_01B8: ldarga.s 7
IL_01BA: ldloc.s 6 (System.Single)
IL_01BC: ldc.r4 0.01
IL_01C1: add
IL_01C2: ldloc.s 6 (System.Single)
IL_01C4: ldc.r4 0.01
IL_01C9: sub
IL_01CA: ldloc.s 7 (LightSystem)
IL_01CC: callvirt System.Single LightSystem::get_DayLightIntensity()
IL_01D1: call static System.Single MathUtils::SmoothStep(System.Single edge0,
System.Single edge1, System.Single x)
IL_01D6: stfld System.Single UnityEngine.Vector4::z
IL_01DB: ldarg.1
IL_01DC: ldfld BlinkType PropInfo::m_illuminationBlinkType
IL_01E1: brfalse => Label14
IL_01E6: ldarg.1
IL_01E7: ldfld BlinkType PropInfo::m_illuminationBlinkType
IL_01EC: call static UnityEngine.Vector4
LightEffect::GetBlinkVector(BlinkType type)
IL_01F1: stloc.s 9 (UnityEngine.Vector4)
IL_01F3: ldloc.s 6 (System.Single)
IL_01F5: ldc.r4 3.71
IL_01FA: mul
IL_01FB: call static SimulationManager
ColossalFramework.Singleton`1<SimulationManager>::get_instance()
IL_0200: ldfld System.Single SimulationManager::m_simulationTimer
IL_0205: ldloca.s 9 (UnityEngine.Vector4)
IL_0207: ldfld System.Single UnityEngine.Vector4::w
IL_020C: div
IL_020D: add
IL_020E: stloc.s 10 (System.Single)
IL_0210: ldloc.s 10 (System.Single)
IL_0212: ldloc.s 10 (System.Single)
IL_0214: call static System.Single UnityEngine.Mathf::Floor(System.Single f)
IL_0219: sub
IL_021A: ldloca.s 9 (UnityEngine.Vector4)
IL_021C: ldfld System.Single UnityEngine.Vector4::w
IL_0221: mul
IL_0222: stloc.s 10 (System.Single)
IL_0224: ldloca.s 9 (UnityEngine.Vector4)
IL_0226: ldfld System.Single UnityEngine.Vector4::x
IL_022B: ldloca.s 9 (UnityEngine.Vector4)
IL_022D: ldfld System.Single UnityEngine.Vector4::y
IL_0232: ldloc.s 10 (System.Single)
IL_0234: call static System.Single MathUtils::SmoothStep(System.Single edge0,
System.Single edge1, System.Single x)
IL_0239: stloc.s 11 (System.Single)
IL_023B: ldloca.s 9 (UnityEngine.Vector4)
IL_023D: ldfld System.Single UnityEngine.Vector4::w
IL_0242: ldloca.s 9 (UnityEngine.Vector4)
IL_0244: ldfld System.Single UnityEngine.Vector4::z
IL_0249: ldloc.s 10 (System.Single)
IL_024B: call static System.Single MathUtils::SmoothStep(System.Single edge0,
System.Single edge1, System.Single x)
IL_0250: stloc.s 12 (System.Single)
IL_0252: ldarga.s 7
IL_0254: dup
IL_0255: ldfld System.Single UnityEngine.Vector4::z
IL_025A: ldc.r4 1
IL_025F: ldloc.s 11 (System.Single)
IL_0261: ldloc.s 12 (System.Single)
IL_0263: mul
IL_0264: sub
IL_0265: mul
IL_0266: stfld System.Single UnityEngine.Vector4::z
IL_026B: Label14
IL_026B: br => Label15
IL_0270: Label13
IL_0270: ldarga.s 7
IL_0272: ldc.r4 1
IL_0277: stfld System.Single UnityEngine.Vector4::z
IL_027C: Label8
IL_027C: Label11
IL_027C: Label15
IL_027C: ldarg.0
IL_027D: brfalse => Label16
IL_0282: ldarg.0
IL_0283: ldarg.3
IL_0284: ldarg.1
IL_0285: ldfld System.Single PropInfo::m_lodRenderDistance
IL_028A: callvirt System.Boolean
CameraInfo::CheckRenderDistance(UnityEngine.Vector3 point, System.Single
maxDistance)
IL_028F: brfalse => Label17
IL_0294: Label16
IL_0294: ldloca.s 13 (UnityEngine.Matrix4x4)
IL_0296: initobj UnityEngine.Matrix4x4
IL_029C: ldloca.s 13 (UnityEngine.Matrix4x4)
IL_029E: ldarg.3
IL_029F: ldarg.s 5
IL_02A1: ldc.r4 57.29578
IL_02A6: mul
IL_02A7: call static UnityEngine.Vector3 UnityEngine.Vector3::get_down()
IL_02AC: call static UnityEngine.Quaternion
UnityEngine.Quaternion::AngleAxis(System.Single angle, UnityEngine.Vector3 axis)
IL_02B1: ldarg.s 4
IL_02B3: ldarg.s 4
IL_02B5: ldarg.s 4
IL_02B7: newobj System.Void UnityEngine.Vector3::.ctor(System.Single x,
System.Single y, System.Single z)
IL_02BC: call System.Void UnityEngine.Matrix4x4::SetTRS(UnityEngine.Vector3
pos, UnityEngine.Quaternion q, UnityEngine.Vector3 s)
IL_02C1: call static PropManager
ColossalFramework.Singleton`1<PropManager>::get_instance()
IL_02C6: stloc.s 14 (PropManager)
IL_02C8: ldloc.s 14 (PropManager)
IL_02CA: ldfld UnityEngine.MaterialPropertyBlock PropManager::m_materialBlock
IL_02CF: stloc.s 15 (UnityEngine.MaterialPropertyBlock)
IL_02D1: ldloc.s 15 (UnityEngine.MaterialPropertyBlock)
IL_02D3: callvirt System.Void UnityEngine.MaterialPropertyBlock::Clear()
IL_02D8: ldloc.s 15 (UnityEngine.MaterialPropertyBlock)
IL_02DA: ldloc.s 14 (PropManager)
IL_02DC: ldfld System.Int32 PropManager::ID_Color
IL_02E1: ldarg.s 6
IL_02E3: callvirt System.Void
UnityEngine.MaterialPropertyBlock::SetColor(System.Int32 nameID, UnityEngine.Color
value)
IL_02E8: ldloc.s 15 (UnityEngine.MaterialPropertyBlock)
IL_02EA: ldloc.s 14 (PropManager)
IL_02EC: ldfld System.Int32 PropManager::ID_HeightMap
IL_02F1: ldarg.s 9
IL_02F3: callvirt System.Void
UnityEngine.MaterialPropertyBlock::SetTexture(System.Int32 nameID,
UnityEngine.Texture value)
IL_02F8: ldloc.s 15 (UnityEngine.MaterialPropertyBlock)
IL_02FA: ldloc.s 14 (PropManager)
IL_02FC: ldfld System.Int32 PropManager::ID_HeightMapping
IL_0301: ldarg.s 10
IL_0303: callvirt System.Void
UnityEngine.MaterialPropertyBlock::SetVector(System.Int32 nameID,
UnityEngine.Vector4 value)
IL_0308: ldloc.s 15 (UnityEngine.MaterialPropertyBlock)
IL_030A: ldloc.s 14 (PropManager)
IL_030C: ldfld System.Int32 PropManager::ID_SurfaceMapping
IL_0311: ldarg.s 11
IL_0313: callvirt System.Void
UnityEngine.MaterialPropertyBlock::SetVector(System.Int32 nameID,
UnityEngine.Vector4 value)
IL_0318: ldloc.s 15 (UnityEngine.MaterialPropertyBlock)
IL_031A: ldloc.s 14 (PropManager)
IL_031C: ldfld System.Int32 PropManager::ID_ObjectIndex
IL_0321: ldarg.s 7
IL_0323: callvirt System.Void
UnityEngine.MaterialPropertyBlock::SetVector(System.Int32 nameID,
UnityEngine.Vector4 value)
IL_0328: ldloc.s 15 (UnityEngine.MaterialPropertyBlock)
IL_032A: ldloc.s 14 (PropManager)
IL_032C: ldfld System.Int32 PropManager::ID_WaterHeightMap
IL_0331: ldarg.s 12
IL_0333: callvirt System.Void
UnityEngine.MaterialPropertyBlock::SetTexture(System.Int32 nameID,
UnityEngine.Texture value)
IL_0338: ldloc.s 15 (UnityEngine.MaterialPropertyBlock)
IL_033A: ldloc.s 14 (PropManager)
IL_033C: ldfld System.Int32 PropManager::ID_WaterHeightMapping
IL_0341: ldarg.s 13
IL_0343: callvirt System.Void
UnityEngine.MaterialPropertyBlock::SetVector(System.Int32 nameID,
UnityEngine.Vector4 value)
IL_0348: ldloc.s 15 (UnityEngine.MaterialPropertyBlock)
IL_034A: ldloc.s 14 (PropManager)
IL_034C: ldfld System.Int32 PropManager::ID_WaterSurfaceMapping
IL_0351: ldarg.s 14
IL_0353: callvirt System.Void
UnityEngine.MaterialPropertyBlock::SetVector(System.Int32 nameID,
UnityEngine.Vector4 value)
IL_0358: ldarg.1
IL_0359: ldfld UnityEngine.Vector4[] PropInfo::m_rollLocation
IL_035E: brfalse => Label18
IL_0363: ldarg.1
IL_0364: ldfld UnityEngine.Material PropInfo::m_material
IL_0369: ldloc.s 14 (PropManager)
IL_036B: ldfld System.Int32 PropManager::ID_RollLocation
IL_0370: ldarg.1
IL_0371: ldfld UnityEngine.Vector4[] PropInfo::m_rollLocation
IL_0376: callvirt System.Void UnityEngine.Material::SetVectorArray(System.Int32
nameID, UnityEngine.Vector4[] values)
IL_037B: ldarg.1
IL_037C: ldfld UnityEngine.Material PropInfo::m_material
IL_0381: ldloc.s 14 (PropManager)
IL_0383: ldfld System.Int32 PropManager::ID_RollParams
IL_0388: ldarg.1
IL_0389: ldfld UnityEngine.Vector4[] PropInfo::m_rollParams
IL_038E: callvirt System.Void UnityEngine.Material::SetVectorArray(System.Int32
nameID, UnityEngine.Vector4[] values)
IL_0393: Label18
IL_0393: ldloc.s 14 (PropManager)
IL_0395: ldflda DrawCallData SimulationManagerBase`2<PropManager,
PropProperties>::m_drawCallData
IL_039A: dup
IL_039B: ldfld System.Int32 DrawCallData::m_defaultCalls
IL_03A0: ldc.i4.1
IL_03A1: add
IL_03A2: stfld System.Int32 DrawCallData::m_defaultCalls
IL_03A7: ldarg.1
IL_03A8: ldfld UnityEngine.Mesh PropInfo::m_mesh
IL_03AD: ldloc.s 13 (UnityEngine.Matrix4x4)
IL_03AF: ldarg.1
IL_03B0: ldfld UnityEngine.Material PropInfo::m_material
IL_03B5: ldarg.1
IL_03B6: ldfld System.Int32 PrefabInfo::m_prefabDataLayer
IL_03BB: ldnull
IL_03BC: ldc.i4.0
IL_03BD: ldloc.s 15 (UnityEngine.MaterialPropertyBlock)
IL_03BF: call static System.Void
UnityEngine.Graphics::DrawMesh(UnityEngine.Mesh mesh, UnityEngine.Matrix4x4 matrix,
UnityEngine.Material material, System.Int32 layer, UnityEngine.Camera camera,
System.Int32 submeshIndex, UnityEngine.MaterialPropertyBlock properties)
IL_03C4: br => Label19
IL_03C9: Label17
IL_03C9: ldarg.s 9
IL_03CB: ldarg.1
IL_03CC: ldfld UnityEngine.Texture PropInfo::m_lodHeightMap
IL_03D1: call static System.Boolean
UnityEngine.Object::op_Inequality(UnityEngine.Object x, UnityEngine.Object y)
IL_03D6: brtrue => Label20
IL_03DB: ldarg.s 12
IL_03DD: ldarg.1
IL_03DE: ldfld UnityEngine.Texture PropInfo::m_lodWaterHeightMap
IL_03E3: call static System.Boolean
UnityEngine.Object::op_Inequality(UnityEngine.Object x, UnityEngine.Object y)
IL_03E8: brfalse => Label21
IL_03ED: Label20
IL_03ED: ldarg.1
IL_03EE: ldfld System.Int32 PropInfo::m_lodCount
IL_03F3: brfalse => Label22
IL_03F8: ldarg.0
IL_03F9: ldarg.1
IL_03FA: call static System.Void PropInstance::RenderLod(CameraInfo
cameraInfo, PropInfo info)
IL_03FF: Label22
IL_03FF: ldarg.1
IL_0400: ldarg.s 9
IL_0402: stfld UnityEngine.Texture PropInfo::m_lodHeightMap
IL_0407: ldarg.1
IL_0408: ldarg.s 10
IL_040A: stfld UnityEngine.Vector4 PropInfo::m_lodHeightMapping
IL_040F: ldarg.1
IL_0410: ldarg.s 11
IL_0412: stfld UnityEngine.Vector4 PropInfo::m_lodSurfaceMapping
IL_0417: ldarg.1
IL_0418: ldarg.s 12
IL_041A: stfld UnityEngine.Texture PropInfo::m_lodWaterHeightMap
IL_041F: ldarg.1
IL_0420: ldarg.s 13
IL_0422: stfld UnityEngine.Vector4 PropInfo::m_lodWaterHeightMapping
IL_0427: ldarg.1
IL_0428: ldarg.s 14
IL_042A: stfld UnityEngine.Vector4 PropInfo::m_lodWaterSurfaceMapping
IL_042F: Label21
IL_042F: ldarga.s 7
IL_0431: ldarg.s 4
IL_0433: stfld System.Single UnityEngine.Vector4::w
IL_0438: ldarg.1
IL_0439: ldfld UnityEngine.Vector4[] PropInfo::m_lodLocations
IL_043E: ldarg.1
IL_043F: ldfld System.Int32 PropInfo::m_lodCount
IL_0444: ldelema UnityEngine.Vector4
IL_0449: ldarga.s 3
IL_044B: ldfld System.Single UnityEngine.Vector3::x
IL_0450: ldarga.s 3
IL_0452: ldfld System.Single UnityEngine.Vector3::y
IL_0457: ldarga.s 3
IL_0459: ldfld System.Single UnityEngine.Vector3::z
IL_045E: ldarg.s 5
IL_0460: newobj System.Void UnityEngine.Vector4::.ctor(System.Single x,
System.Single y, System.Single z, System.Single w)
IL_0465: stobj UnityEngine.Vector4
IL_046A: ldarg.1
IL_046B: ldfld UnityEngine.Vector4[] PropInfo::m_lodObjectIndices
IL_0470: ldarg.1
IL_0471: ldfld System.Int32 PropInfo::m_lodCount
IL_0476: ldelema UnityEngine.Vector4
IL_047B: ldarg.s 7
IL_047D: stobj UnityEngine.Vector4
IL_0482: ldarg.1
IL_0483: ldfld UnityEngine.Vector4[] PropInfo::m_lodColors
IL_0488: ldarg.1
IL_0489: ldfld System.Int32 PropInfo::m_lodCount
IL_048E: ldelema UnityEngine.Vector4
IL_0493: ldarga.s 6
IL_0495: call UnityEngine.Color UnityEngine.Color::get_linear()
IL_049A: call static UnityEngine.Vector4
UnityEngine.Color::op_Implicit(UnityEngine.Color c)
IL_049F: stobj UnityEngine.Vector4
IL_04A4: ldarg.1
IL_04A5: ldarg.1
IL_04A6: ldfld UnityEngine.Vector3 PropInfo::m_lodMin
IL_04AB: ldarg.3
IL_04AC: call static UnityEngine.Vector3
UnityEngine.Vector3::Min(UnityEngine.Vector3 lhs, UnityEngine.Vector3 rhs)
IL_04B1: stfld UnityEngine.Vector3 PropInfo::m_lodMin
IL_04B6: ldarg.1
IL_04B7: ldarg.1
IL_04B8: ldfld UnityEngine.Vector3 PropInfo::m_lodMax
IL_04BD: ldarg.3
IL_04BE: call static UnityEngine.Vector3
UnityEngine.Vector3::Max(UnityEngine.Vector3 lhs, UnityEngine.Vector3 rhs)
IL_04C3: stfld UnityEngine.Vector3 PropInfo::m_lodMax
IL_04C8: ldarg.1
IL_04C9: dup
IL_04CA: ldfld System.Int32 PropInfo::m_lodCount
IL_04CF: ldc.i4.1
IL_04D0: add
IL_04D1: dup
IL_04D2: stloc.s 16 (System.Int32)
IL_04D4: stfld System.Int32 PropInfo::m_lodCount
IL_04D9: ldloc.s 16 (System.Int32)
IL_04DB: ldarg.1
IL_04DC: ldfld UnityEngine.Vector4[] PropInfo::m_lodLocations
IL_04E1: ldlen
IL_04E2: conv.i4
IL_04E3: bne.un => Label23
IL_04E8: ldarg.0
IL_04E9: ldarg.1
IL_04EA: call static System.Void PropInstance::RenderLod(CameraInfo
cameraInfo, PropInfo info)
IL_04EF: // end original
IL_04EF: Label0
IL_04EF: Label6
IL_04EF: Label7
IL_04EF: Label19
IL_04EF: Label23
IL_04EF: ret
DONE

### Patch: static System.Void PropInstance::RenderInstance(CameraInfo cameraInfo,


PropInfo info, InstanceID id, UnityEngine.Vector3 position, System.Single scale,
System.Single angle, UnityEngine.Color color, UnityEngine.Vector4 objectIndex,
System.Boolean active)
### Replacement: static System.Void
PropInstance::PropInstance.RenderInstance_Patch0(CameraInfo cameraInfo, PropInfo
info, InstanceID id, UnityEngine.Vector3 position, System.Single scale,
System.Single angle, UnityEngine.Color color, UnityEngine.Vector4 objectIndex,
System.Boolean active)
IL_0000: Local var 0: UnityEngine.Matrix4x4
IL_0000: Local var 1: System.Single
IL_0000: Local var 2: System.Int32
IL_0000: Local var 3: UnityEngine.Vector3
IL_0000: Local var 4: UnityEngine.Vector3
IL_0000: Local var 5: EffectInfo/SpawnArea
IL_0000: Local var 6: System.Single
IL_0000: Local var 7: LightSystem
IL_0000: Local var 8: ColossalFramework.Math.Randomizer
IL_0000: Local var 9: UnityEngine.Vector4
IL_0000: Local var 10: System.Single
IL_0000: Local var 11: System.Single
IL_0000: Local var 12: System.Single
IL_0000: Local var 13: UnityEngine.Matrix4x4
IL_0000: Local var 14: PropManager
IL_0000: Local var 15: UnityEngine.MaterialPropertyBlock
IL_0000: Local var 16: UnityEngine.Matrix4x4
IL_0000: Local var 17: PropManager
IL_0000: Local var 18: UnityEngine.MaterialPropertyBlock
IL_0000: Local var 19: System.Int32
IL_0000: // start original
IL_0000: ldarg.1
IL_0001: ldfld System.Boolean PrefabInfo::m_prefabInitialized
IL_0006: brfalse => Label0
IL_000B: ldarg.1
IL_000C: ldfld System.Boolean PropInfo::m_hasEffects
IL_0011: brfalse => Label1
IL_0016: ldarg.s 8
IL_0018: brtrue => Label2
IL_001D: ldarg.1
IL_001E: ldfld System.Boolean PropInfo::m_alwaysActive
IL_0023: brfalse => Label3
IL_0028: Label2
IL_0028: ldloca.s 0 (UnityEngine.Matrix4x4)
IL_002A: initobj UnityEngine.Matrix4x4
IL_0030: ldloca.s 0 (UnityEngine.Matrix4x4)
IL_0032: ldarg.3
IL_0033: ldarg.s 5
IL_0035: ldc.r4 57.29578
IL_003A: mul
IL_003B: call static UnityEngine.Vector3 UnityEngine.Vector3::get_down()
IL_0040: call static UnityEngine.Quaternion
UnityEngine.Quaternion::AngleAxis(System.Single angle, UnityEngine.Vector3 axis)
IL_0045: ldarg.s 4
IL_0047: ldarg.s 4
IL_0049: ldarg.s 4
IL_004B: newobj System.Void UnityEngine.Vector3::.ctor(System.Single x,
System.Single y, System.Single z)
IL_0050: call System.Void UnityEngine.Matrix4x4::SetTRS(UnityEngine.Vector3
pos, UnityEngine.Quaternion q, UnityEngine.Vector3 s)
IL_0055: call static SimulationManager
ColossalFramework.Singleton`1<SimulationManager>::get_instance()
IL_005A: ldfld System.Single SimulationManager::m_simulationTimeDelta
IL_005F: stloc.1
IL_0060: ldc.i4.0
IL_0061: stloc.2
IL_0062: br => Label4
IL_0067: Label5
IL_0067: ldloca.s 0 (UnityEngine.Matrix4x4)
IL_0069: ldarg.1
IL_006A: ldfld Effect[] PropInfo::m_effects
IL_006F: ldloc.2
IL_0070: ldelema PropInfo+Effect
IL_0075: ldfld UnityEngine.Vector3 Effect::m_position
IL_007A: call UnityEngine.Vector3
UnityEngine.Matrix4x4::MultiplyPoint(UnityEngine.Vector3 v)
IL_007F: stloc.3
IL_0080: ldloca.s 0 (UnityEngine.Matrix4x4)
IL_0082: ldarg.1
IL_0083: ldfld Effect[] PropInfo::m_effects
IL_0088: ldloc.2
IL_0089: ldelema PropInfo+Effect
IL_008E: ldfld UnityEngine.Vector3 Effect::m_direction
IL_0093: call UnityEngine.Vector3
UnityEngine.Matrix4x4::MultiplyVector(UnityEngine.Vector3 v)
IL_0098: stloc.s 4 (UnityEngine.Vector3)
IL_009A: ldloca.s 5 (EffectInfo+SpawnArea)
IL_009C: ldloc.3
IL_009D: ldloc.s 4 (UnityEngine.Vector3)
IL_009F: ldc.r4 0
IL_00A4: call System.Void SpawnArea::.ctor(UnityEngine.Vector3 position,
UnityEngine.Vector3 direction, System.Single radius)
IL_00A9: ldarg.1
IL_00AA: ldfld Effect[] PropInfo::m_effects
IL_00AF: ldloc.2
IL_00B0: ldelema PropInfo+Effect
IL_00B5: ldfld EffectInfo Effect::m_effect
IL_00BA: ldarg.2
IL_00BB: ldloc.s 5 (EffectInfo+SpawnArea)
IL_00BD: call static UnityEngine.Vector3 UnityEngine.Vector3::get_zero()
IL_00C2: ldc.r4 0
IL_00C7: ldc.r4 1
IL_00CC: ldc.r4 -1
IL_00D1: ldloc.1
IL_00D2: ldarg.0
IL_00D3: callvirt virtual System.Void EffectInfo::RenderEffect(InstanceID id,
SpawnArea area, UnityEngine.Vector3 velocity, System.Single acceleration,
System.Single magnitude, System.Single timeOffset, System.Single timeDelta,
CameraInfo cameraInfo)
IL_00D8: ldloc.2
IL_00D9: ldc.i4.1
IL_00DA: add
IL_00DB: stloc.2
IL_00DC: Label4
IL_00DC: ldloc.2
IL_00DD: ldarg.1
IL_00DE: ldfld Effect[] PropInfo::m_effects
IL_00E3: ldlen
IL_00E4: conv.i4
IL_00E5: blt => Label5
IL_00EA: Label1
IL_00EA: Label3
IL_00EA: ldarg.1
IL_00EB: ldfld System.Boolean PropInfo::m_hasRenderer
IL_00F0: brfalse => Label6
IL_00F5: ldarg.0
IL_00F6: ldfld System.Int32 CameraInfo::m_layerMask
IL_00FB: ldc.i4.1
IL_00FC: ldarg.1
IL_00FD: ldfld System.Int32 PrefabInfo::m_prefabDataLayer
IL_0102: ldc.i4.s 31
IL_0104: and
IL_0105: shl
IL_0106: and
IL_0107: brfalse => Label7
IL_010C: call static InfoManager
ColossalFramework.Singleton`1<InfoManager>::get_instance()
IL_0111: callvirt InfoMode InfoManager::get_CurrentMode()
IL_0116: brtrue => Label8
IL_011B: ldc.r4 0
IL_0120: stloc.s 6 (System.Single)
IL_0122: ldarg.s 8
IL_0124: brtrue => Label9
IL_0129: ldarg.1
IL_012A: ldfld System.Boolean PropInfo::m_alwaysActive
IL_012F: brtrue => Label10
IL_0134: ldarga.s 7
IL_0136: ldc.r4 0
IL_013B: stfld System.Single UnityEngine.Vector4::z
IL_0140: br => Label11
IL_0145: Label9
IL_0145: Label10
IL_0145: ldarg.1
IL_0146: ldflda UnityEngine.Vector2 PropInfo::m_illuminationOffRange
IL_014B: ldfld System.Single UnityEngine.Vector2::x
IL_0150: ldc.r4 1000
IL_0155: blt => Label12
IL_015A: ldarg.1
IL_015B: ldfld BlinkType PropInfo::m_illuminationBlinkType
IL_0160: brfalse => Label13
IL_0165: Label12
IL_0165: call static RenderManager
ColossalFramework.Singleton`1<RenderManager>::get_instance()
IL_016A: callvirt LightSystem RenderManager::get_lightSystem()
IL_016F: stloc.s 7 (LightSystem)
IL_0171: ldloca.s 8 (ColossalFramework.Math.Randomizer)
IL_0173: ldarga.s 2
IL_0175: call System.UInt32 InstanceID::get_Index()
IL_017A: call System.Void
ColossalFramework.Math.Randomizer::.ctor(System.UInt32 _seed)
IL_017F: ldarg.1
IL_0180: ldflda UnityEngine.Vector2 PropInfo::m_illuminationOffRange
IL_0185: ldfld System.Single UnityEngine.Vector2::x
IL_018A: ldloca.s 8 (ColossalFramework.Math.Randomizer)
IL_018C: ldc.i4 100000
IL_0191: call System.Int32
ColossalFramework.Math.Randomizer::Int32(System.UInt32 range)
IL_0196: conv.r4
IL_0197: ldc.r4 1E-05
IL_019C: mul
IL_019D: ldarg.1
IL_019E: ldflda UnityEngine.Vector2 PropInfo::m_illuminationOffRange
IL_01A3: ldfld System.Single UnityEngine.Vector2::y
IL_01A8: ldarg.1
IL_01A9: ldflda UnityEngine.Vector2 PropInfo::m_illuminationOffRange
IL_01AE: ldfld System.Single UnityEngine.Vector2::x
IL_01B3: sub
IL_01B4: mul
IL_01B5: add
IL_01B6: stloc.s 6 (System.Single)
IL_01B8: ldarga.s 7
IL_01BA: ldloc.s 6 (System.Single)
IL_01BC: ldc.r4 0.01
IL_01C1: add
IL_01C2: ldloc.s 6 (System.Single)
IL_01C4: ldc.r4 0.01
IL_01C9: sub
IL_01CA: ldloc.s 7 (LightSystem)
IL_01CC: callvirt System.Single LightSystem::get_DayLightIntensity()
IL_01D1: call static System.Single MathUtils::SmoothStep(System.Single edge0,
System.Single edge1, System.Single x)
IL_01D6: stfld System.Single UnityEngine.Vector4::z
IL_01DB: ldarg.1
IL_01DC: ldfld BlinkType PropInfo::m_illuminationBlinkType
IL_01E1: brfalse => Label14
IL_01E6: ldarg.1
IL_01E7: ldfld BlinkType PropInfo::m_illuminationBlinkType
IL_01EC: call static UnityEngine.Vector4
LightEffect::GetBlinkVector(BlinkType type)
IL_01F1: stloc.s 9 (UnityEngine.Vector4)
IL_01F3: ldloc.s 6 (System.Single)
IL_01F5: ldc.r4 3.71
IL_01FA: mul
IL_01FB: call static SimulationManager
ColossalFramework.Singleton`1<SimulationManager>::get_instance()
IL_0200: ldfld System.Single SimulationManager::m_simulationTimer
IL_0205: ldloca.s 9 (UnityEngine.Vector4)
IL_0207: ldfld System.Single UnityEngine.Vector4::w
IL_020C: div
IL_020D: add
IL_020E: stloc.s 10 (System.Single)
IL_0210: ldloc.s 10 (System.Single)
IL_0212: ldloc.s 10 (System.Single)
IL_0214: call static System.Single UnityEngine.Mathf::Floor(System.Single f)
IL_0219: sub
IL_021A: ldloca.s 9 (UnityEngine.Vector4)
IL_021C: ldfld System.Single UnityEngine.Vector4::w
IL_0221: mul
IL_0222: stloc.s 10 (System.Single)
IL_0224: ldloca.s 9 (UnityEngine.Vector4)
IL_0226: ldfld System.Single UnityEngine.Vector4::x
IL_022B: ldloca.s 9 (UnityEngine.Vector4)
IL_022D: ldfld System.Single UnityEngine.Vector4::y
IL_0232: ldloc.s 10 (System.Single)
IL_0234: call static System.Single MathUtils::SmoothStep(System.Single edge0,
System.Single edge1, System.Single x)
IL_0239: stloc.s 11 (System.Single)
IL_023B: ldloca.s 9 (UnityEngine.Vector4)
IL_023D: ldfld System.Single UnityEngine.Vector4::w
IL_0242: ldloca.s 9 (UnityEngine.Vector4)
IL_0244: ldfld System.Single UnityEngine.Vector4::z
IL_0249: ldloc.s 10 (System.Single)
IL_024B: call static System.Single MathUtils::SmoothStep(System.Single edge0,
System.Single edge1, System.Single x)
IL_0250: stloc.s 12 (System.Single)
IL_0252: ldarga.s 7
IL_0254: dup
IL_0255: ldfld System.Single UnityEngine.Vector4::z
IL_025A: ldc.r4 1
IL_025F: ldloc.s 11 (System.Single)
IL_0261: ldloc.s 12 (System.Single)
IL_0263: mul
IL_0264: sub
IL_0265: mul
IL_0266: stfld System.Single UnityEngine.Vector4::z
IL_026B: Label14
IL_026B: br => Label15
IL_0270: Label13
IL_0270: ldarga.s 7
IL_0272: ldc.r4 1
IL_0277: stfld System.Single UnityEngine.Vector4::z
IL_027C: Label8
IL_027C: Label11
IL_027C: Label15
IL_027C: ldarg.0
IL_027D: brfalse => Label16
IL_0282: ldarg.0
IL_0283: ldarg.3
IL_0284: ldarg.1
IL_0285: ldfld System.Single PropInfo::m_lodRenderDistance
IL_028A: callvirt System.Boolean
CameraInfo::CheckRenderDistance(UnityEngine.Vector3 point, System.Single
maxDistance)
IL_028F: brfalse => Label17
IL_0294: Label16
IL_0294: ldloca.s 13 (UnityEngine.Matrix4x4)
IL_0296: initobj UnityEngine.Matrix4x4
IL_029C: ldloca.s 13 (UnityEngine.Matrix4x4)
IL_029E: ldarg.3
IL_029F: ldarg.s 5
IL_02A1: ldc.r4 57.29578
IL_02A6: mul
IL_02A7: call static UnityEngine.Vector3 UnityEngine.Vector3::get_down()
IL_02AC: call static UnityEngine.Quaternion
UnityEngine.Quaternion::AngleAxis(System.Single angle, UnityEngine.Vector3 axis)
IL_02B1: ldarg.s 4
IL_02B3: ldarg.s 4
IL_02B5: ldarg.s 4
IL_02B7: newobj System.Void UnityEngine.Vector3::.ctor(System.Single x,
System.Single y, System.Single z)
IL_02BC: call System.Void UnityEngine.Matrix4x4::SetTRS(UnityEngine.Vector3
pos, UnityEngine.Quaternion q, UnityEngine.Vector3 s)
IL_02C1: call static PropManager
ColossalFramework.Singleton`1<PropManager>::get_instance()
IL_02C6: stloc.s 14 (PropManager)
IL_02C8: ldloc.s 14 (PropManager)
IL_02CA: ldfld UnityEngine.MaterialPropertyBlock PropManager::m_materialBlock
IL_02CF: stloc.s 15 (UnityEngine.MaterialPropertyBlock)
IL_02D1: ldloc.s 15 (UnityEngine.MaterialPropertyBlock)
IL_02D3: callvirt System.Void UnityEngine.MaterialPropertyBlock::Clear()
IL_02D8: ldloc.s 15 (UnityEngine.MaterialPropertyBlock)
IL_02DA: ldloc.s 14 (PropManager)
IL_02DC: ldfld System.Int32 PropManager::ID_Color
IL_02E1: ldarg.s 6
IL_02E3: callvirt System.Void
UnityEngine.MaterialPropertyBlock::SetColor(System.Int32 nameID, UnityEngine.Color
value)
IL_02E8: ldloc.s 15 (UnityEngine.MaterialPropertyBlock)
IL_02EA: ldloc.s 14 (PropManager)
IL_02EC: ldfld System.Int32 PropManager::ID_ObjectIndex
IL_02F1: ldarg.s 7
IL_02F3: callvirt System.Void
UnityEngine.MaterialPropertyBlock::SetVector(System.Int32 nameID,
UnityEngine.Vector4 value)
IL_02F8: ldarg.1
IL_02F9: ldfld UnityEngine.Vector4[] PropInfo::m_rollLocation
IL_02FE: brfalse => Label18
IL_0303: ldarg.1
IL_0304: ldfld UnityEngine.Material PropInfo::m_material
IL_0309: ldloc.s 14 (PropManager)
IL_030B: ldfld System.Int32 PropManager::ID_RollLocation
IL_0310: ldarg.1
IL_0311: ldfld UnityEngine.Vector4[] PropInfo::m_rollLocation
IL_0316: callvirt System.Void UnityEngine.Material::SetVectorArray(System.Int32
nameID, UnityEngine.Vector4[] values)
IL_031B: ldarg.1
IL_031C: ldfld UnityEngine.Material PropInfo::m_material
IL_0321: ldloc.s 14 (PropManager)
IL_0323: ldfld System.Int32 PropManager::ID_RollParams
IL_0328: ldarg.1
IL_0329: ldfld UnityEngine.Vector4[] PropInfo::m_rollParams
IL_032E: callvirt System.Void UnityEngine.Material::SetVectorArray(System.Int32
nameID, UnityEngine.Vector4[] values)
IL_0333: Label18
IL_0333: ldloc.s 14 (PropManager)
IL_0335: ldflda DrawCallData SimulationManagerBase`2<PropManager,
PropProperties>::m_drawCallData
IL_033A: dup
IL_033B: ldfld System.Int32 DrawCallData::m_defaultCalls
IL_0340: ldc.i4.1
IL_0341: add
IL_0342: stfld System.Int32 DrawCallData::m_defaultCalls
IL_0347: ldarg.1
IL_0348: ldfld UnityEngine.Mesh PropInfo::m_mesh
IL_034D: ldloc.s 13 (UnityEngine.Matrix4x4)
IL_034F: ldarg.1
IL_0350: ldfld UnityEngine.Material PropInfo::m_material
IL_0355: ldarg.1
IL_0356: ldfld System.Int32 PrefabInfo::m_prefabDataLayer
IL_035B: ldnull
IL_035C: ldc.i4.0
IL_035D: ldloc.s 15 (UnityEngine.MaterialPropertyBlock)
IL_035F: call static System.Void
UnityEngine.Graphics::DrawMesh(UnityEngine.Mesh mesh, UnityEngine.Matrix4x4 matrix,
UnityEngine.Material material, System.Int32 layer, UnityEngine.Camera camera,
System.Int32 submeshIndex, UnityEngine.MaterialPropertyBlock properties)
IL_0364: br => Label19
IL_0369: Label17
IL_0369: ldarg.1
IL_036A: ldfld UnityEngine.Material PropInfo::m_lodMaterialCombined
IL_036F: ldnull
IL_0370: call static System.Boolean
UnityEngine.Object::op_Equality(UnityEngine.Object x, UnityEngine.Object y)
IL_0375: brfalse => Label20
IL_037A: ldloca.s 16 (UnityEngine.Matrix4x4)
IL_037C: initobj UnityEngine.Matrix4x4
IL_0382: ldloca.s 16 (UnityEngine.Matrix4x4)
IL_0384: ldarg.3
IL_0385: ldarg.s 5
IL_0387: ldc.r4 57.29578
IL_038C: mul
IL_038D: call static UnityEngine.Vector3 UnityEngine.Vector3::get_down()
IL_0392: call static UnityEngine.Quaternion
UnityEngine.Quaternion::AngleAxis(System.Single angle, UnityEngine.Vector3 axis)
IL_0397: ldarg.s 4
IL_0399: ldarg.s 4
IL_039B: ldarg.s 4
IL_039D: newobj System.Void UnityEngine.Vector3::.ctor(System.Single x,
System.Single y, System.Single z)
IL_03A2: call System.Void UnityEngine.Matrix4x4::SetTRS(UnityEngine.Vector3
pos, UnityEngine.Quaternion q, UnityEngine.Vector3 s)
IL_03A7: call static PropManager
ColossalFramework.Singleton`1<PropManager>::get_instance()
IL_03AC: stloc.s 17 (PropManager)
IL_03AE: ldloc.s 17 (PropManager)
IL_03B0: ldfld UnityEngine.MaterialPropertyBlock PropManager::m_materialBlock
IL_03B5: stloc.s 18 (UnityEngine.MaterialPropertyBlock)
IL_03B7: ldloc.s 18 (UnityEngine.MaterialPropertyBlock)
IL_03B9: callvirt System.Void UnityEngine.MaterialPropertyBlock::Clear()
IL_03BE: ldloc.s 18 (UnityEngine.MaterialPropertyBlock)
IL_03C0: ldloc.s 17 (PropManager)
IL_03C2: ldfld System.Int32 PropManager::ID_Color
IL_03C7: ldarg.s 6
IL_03C9: callvirt System.Void
UnityEngine.MaterialPropertyBlock::SetColor(System.Int32 nameID, UnityEngine.Color
value)
IL_03CE: ldloc.s 18 (UnityEngine.MaterialPropertyBlock)
IL_03D0: ldloc.s 17 (PropManager)
IL_03D2: ldfld System.Int32 PropManager::ID_ObjectIndex
IL_03D7: ldarg.s 7
IL_03D9: callvirt System.Void
UnityEngine.MaterialPropertyBlock::SetVector(System.Int32 nameID,
UnityEngine.Vector4 value)
IL_03DE: ldarg.1
IL_03DF: ldfld UnityEngine.Vector4[] PropInfo::m_rollLocation
IL_03E4: brfalse => Label21
IL_03E9: ldarg.1
IL_03EA: ldfld UnityEngine.Material PropInfo::m_material
IL_03EF: ldloc.s 17 (PropManager)
IL_03F1: ldfld System.Int32 PropManager::ID_RollLocation
IL_03F6: ldarg.1
IL_03F7: ldfld UnityEngine.Vector4[] PropInfo::m_rollLocation
IL_03FC: callvirt System.Void UnityEngine.Material::SetVectorArray(System.Int32
nameID, UnityEngine.Vector4[] values)
IL_0401: ldarg.1
IL_0402: ldfld UnityEngine.Material PropInfo::m_material
IL_0407: ldloc.s 17 (PropManager)
IL_0409: ldfld System.Int32 PropManager::ID_RollParams
IL_040E: ldarg.1
IL_040F: ldfld UnityEngine.Vector4[] PropInfo::m_rollParams
IL_0414: callvirt System.Void UnityEngine.Material::SetVectorArray(System.Int32
nameID, UnityEngine.Vector4[] values)
IL_0419: Label21
IL_0419: ldloc.s 17 (PropManager)
IL_041B: ldflda DrawCallData SimulationManagerBase`2<PropManager,
PropProperties>::m_drawCallData
IL_0420: dup
IL_0421: ldfld System.Int32 DrawCallData::m_defaultCalls
IL_0426: ldc.i4.1
IL_0427: add
IL_0428: stfld System.Int32 DrawCallData::m_defaultCalls
IL_042D: ldarg.1
IL_042E: ldfld UnityEngine.Mesh PropInfo::m_lodMesh
IL_0433: ldloc.s 16 (UnityEngine.Matrix4x4)
IL_0435: ldarg.1
IL_0436: ldfld UnityEngine.Material PropInfo::m_lodMaterial
IL_043B: ldarg.1
IL_043C: ldfld System.Int32 PrefabInfo::m_prefabDataLayer
IL_0441: ldnull
IL_0442: ldc.i4.0
IL_0443: ldloc.s 18 (UnityEngine.MaterialPropertyBlock)
IL_0445: call static System.Void
UnityEngine.Graphics::DrawMesh(UnityEngine.Mesh mesh, UnityEngine.Matrix4x4 matrix,
UnityEngine.Material material, System.Int32 layer, UnityEngine.Camera camera,
System.Int32 submeshIndex, UnityEngine.MaterialPropertyBlock properties)
IL_044A: br => Label22
IL_044F: Label20
IL_044F: ldarga.s 7
IL_0451: ldarg.s 4
IL_0453: stfld System.Single UnityEngine.Vector4::w
IL_0458: ldarg.1
IL_0459: ldfld UnityEngine.Vector4[] PropInfo::m_lodLocations
IL_045E: ldarg.1
IL_045F: ldfld System.Int32 PropInfo::m_lodCount
IL_0464: ldelema UnityEngine.Vector4
IL_0469: ldarga.s 3
IL_046B: ldfld System.Single UnityEngine.Vector3::x
IL_0470: ldarga.s 3
IL_0472: ldfld System.Single UnityEngine.Vector3::y
IL_0477: ldarga.s 3
IL_0479: ldfld System.Single UnityEngine.Vector3::z
IL_047E: ldarg.s 5
IL_0480: newobj System.Void UnityEngine.Vector4::.ctor(System.Single x,
System.Single y, System.Single z, System.Single w)
IL_0485: stobj UnityEngine.Vector4
IL_048A: ldarg.1
IL_048B: ldfld UnityEngine.Vector4[] PropInfo::m_lodObjectIndices
IL_0490: ldarg.1
IL_0491: ldfld System.Int32 PropInfo::m_lodCount
IL_0496: ldelema UnityEngine.Vector4
IL_049B: ldarg.s 7
IL_049D: stobj UnityEngine.Vector4
IL_04A2: ldarg.1
IL_04A3: ldfld UnityEngine.Vector4[] PropInfo::m_lodColors
IL_04A8: ldarg.1
IL_04A9: ldfld System.Int32 PropInfo::m_lodCount
IL_04AE: ldelema UnityEngine.Vector4
IL_04B3: ldarga.s 6
IL_04B5: call UnityEngine.Color UnityEngine.Color::get_linear()
IL_04BA: call static UnityEngine.Vector4
UnityEngine.Color::op_Implicit(UnityEngine.Color c)
IL_04BF: stobj UnityEngine.Vector4
IL_04C4: ldarg.1
IL_04C5: ldarg.1
IL_04C6: ldfld UnityEngine.Vector3 PropInfo::m_lodMin
IL_04CB: ldarg.3
IL_04CC: call static UnityEngine.Vector3
UnityEngine.Vector3::Min(UnityEngine.Vector3 lhs, UnityEngine.Vector3 rhs)
IL_04D1: stfld UnityEngine.Vector3 PropInfo::m_lodMin
IL_04D6: ldarg.1
IL_04D7: ldarg.1
IL_04D8: ldfld UnityEngine.Vector3 PropInfo::m_lodMax
IL_04DD: ldarg.3
IL_04DE: call static UnityEngine.Vector3
UnityEngine.Vector3::Max(UnityEngine.Vector3 lhs, UnityEngine.Vector3 rhs)
IL_04E3: stfld UnityEngine.Vector3 PropInfo::m_lodMax
IL_04E8: ldarg.1
IL_04E9: dup
IL_04EA: ldfld System.Int32 PropInfo::m_lodCount
IL_04EF: ldc.i4.1
IL_04F0: add
IL_04F1: dup
IL_04F2: stloc.s 19 (System.Int32)
IL_04F4: stfld System.Int32 PropInfo::m_lodCount
IL_04F9: ldloc.s 19 (System.Int32)
IL_04FB: ldarg.1
IL_04FC: ldfld UnityEngine.Vector4[] PropInfo::m_lodLocations
IL_0501: ldlen
IL_0502: conv.i4
IL_0503: bne.un => Label23
IL_0508: ldarg.0
IL_0509: ldarg.1
IL_050A: call static System.Void PropInstance::RenderLod(CameraInfo
cameraInfo, PropInfo info)
IL_050F: // end original
IL_050F: Label0
IL_050F: Label6
IL_050F: Label7
IL_050F: Label19
IL_050F: Label22
IL_050F: Label23
IL_050F: ret
DONE

### Patch: virtual System.Void LightEffect::PopulateGroupData(System.Int32 layer,


InstanceID id, UnityEngine.Vector3 pos, UnityEngine.Vector3 dir, 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
LightEffect::LightEffect.PopulateGroupData_Patch0(LightEffect this, System.Int32
layer, InstanceID id, UnityEngine.Vector3 pos, UnityEngine.Vector3 dir,
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.Boolean
IL_0000: Local var 1: UnityEngine.Vector3
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.Quaternion
IL_0000: Local var 7: UnityEngine.Vector4
IL_0000: Local var 8: UnityEngine.Vector2
IL_0000: Local var 9: ColossalFramework.Math.Randomizer
IL_0000: Local var 10: UnityEngine.Vector2
IL_0000: Local var 11: UnityEngine.Vector2
IL_0000: Local var 12: UnityEngine.Vector2
IL_0000: Local var 13: System.UInt16
IL_0000: Local var 14: UnityEngine.Vector3
IL_0000: Local var 15: UnityEngine.Color
IL_0000: Local var 16: UnityEngine.Color
IL_0000: Local var 17: System.Single
IL_0000: Local var 18: System.Single
IL_0000: Local var 19: System.Int32
IL_0000: // start original
IL_0000: ldarg.1
IL_0001: ldarg.0
IL_0002: ldfld System.Int32 LightEffect::m_groupLayer
IL_0007: beq => Label0
IL_000C: ldarg.1
IL_000D: ldarg.0
IL_000E: ldfld System.Int32 LightEffect::m_groupLayerFloating
IL_0013: bne.un => Label1
IL_0018: Label0
IL_0018: ldarg.1
IL_0019: ldarg.0
IL_001A: ldfld System.Int32 LightEffect::m_groupLayerFloating
IL_001F: ceq
IL_0021: stloc.0
IL_0022: ldloca.s 1 (UnityEngine.Vector3)
IL_0024: ldarg.0
IL_0025: ldfld System.Single LightEffect::m_lightRange
IL_002A: ldarg.0
IL_002B: ldfld System.Single LightEffect::m_lightRange
IL_0030: ldarg.0
IL_0031: ldfld System.Single LightEffect::m_lightRange
IL_0036: call System.Void UnityEngine.Vector3::.ctor(System.Single x,
System.Single y, System.Single z)
IL_003B: ldarg.3
IL_003C: ldloc.1
IL_003D: call static UnityEngine.Vector3
UnityEngine.Vector3::op_Subtraction(UnityEngine.Vector3 a, UnityEngine.Vector3 b)
IL_0042: stloc.2
IL_0043: ldarg.3
IL_0044: ldloc.1
IL_0045: call static UnityEngine.Vector3
UnityEngine.Vector3::op_Addition(UnityEngine.Vector3 a, UnityEngine.Vector3 b)
IL_004A: stloc.3
IL_004B: ldarg.s 9
IL_004D: ldarg.s 9
IL_004F: ldobj UnityEngine.Vector3
IL_0054: ldloc.2
IL_0055: call static UnityEngine.Vector3
UnityEngine.Vector3::Min(UnityEngine.Vector3 lhs, UnityEngine.Vector3 rhs)
IL_005A: stobj UnityEngine.Vector3
IL_005F: ldarg.s 10
IL_0061: ldarg.s 10
IL_0063: ldobj UnityEngine.Vector3
IL_0068: ldloc.3
IL_0069: call static UnityEngine.Vector3
UnityEngine.Vector3::Max(UnityEngine.Vector3 lhs, UnityEngine.Vector3 rhs)
IL_006E: stobj UnityEngine.Vector3
IL_0073: ldarg.3
IL_0074: ldarg.s 7
IL_0076: call static UnityEngine.Vector3
UnityEngine.Vector3::op_Subtraction(UnityEngine.Vector3 a, UnityEngine.Vector3 b)
IL_007B: stloc.s 4 (UnityEngine.Vector3)
IL_007D: ldarg.s 11
IL_007F: ldarg.s 11
IL_0081: ldind.r4
IL_0082: ldc.r4 30000
IL_0087: call static System.Single UnityEngine.Mathf::Max(System.Single a,
System.Single b)
IL_008C: stind.r4
IL_008D: ldarg.0
IL_008E: ldfld UnityEngine.LightType LightEffect::m_lightType
IL_0093: brtrue => Label2
IL_0098: ldarg.s 4
IL_009A: call static UnityEngine.Quaternion
UnityEngine.Quaternion::LookRotation(UnityEngine.Vector3 forward)
IL_009F: stloc.s 6 (UnityEngine.Quaternion)
IL_00A1: ldloc.s 6 (UnityEngine.Quaternion)
IL_00A3: ldarg.0
IL_00A4: ldfld UnityEngine.Quaternion LightEffect::m_lightRotation
IL_00A9: call static UnityEngine.Vector3 UnityEngine.Vector3::get_forward()
IL_00AE: call static UnityEngine.Vector3
UnityEngine.Quaternion::op_Multiply(UnityEngine.Quaternion rotation,
UnityEngine.Vector3 point)
IL_00B3: call static UnityEngine.Vector3
UnityEngine.Quaternion::op_Multiply(UnityEngine.Quaternion rotation,
UnityEngine.Vector3 point)
IL_00B8: stloc.s 5 (UnityEngine.Vector3)
IL_00BA: br => Label3
IL_00BF: Label2
IL_00BF: call static UnityEngine.Vector3 UnityEngine.Vector3::get_forward()
IL_00C4: stloc.s 5 (UnityEngine.Vector3)
IL_00C6: Label3
IL_00C6: ldloca.s 7 (UnityEngine.Vector4)
IL_00C8: ldloca.s 5 (UnityEngine.Vector3)
IL_00CA: ldfld System.Single UnityEngine.Vector3::x
IL_00CF: ldloca.s 5 (UnityEngine.Vector3)
IL_00D1: ldfld System.Single UnityEngine.Vector3::y
IL_00D6: ldloca.s 5 (UnityEngine.Vector3)
IL_00D8: ldfld System.Single UnityEngine.Vector3::z
IL_00DD: ldc.r4 100000
IL_00E2: call System.Void UnityEngine.Vector4::.ctor(System.Single x,
System.Single y, System.Single z, System.Single w)
IL_00E7: ldarg.0
IL_00E8: ldfld UnityEngine.LightType LightEffect::m_lightType
IL_00ED: brtrue => Label4
IL_00F2: ldloca.s 7 (UnityEngine.Vector4)
IL_00F4: ldc.r4 0.01745329
IL_00F9: ldarg.0
IL_00FA: ldfld System.Single LightEffect::m_lightSpotAngle
IL_00FF: mul
IL_0100: ldc.r4 0.5
IL_0105: mul
IL_0106: call static System.Single UnityEngine.Mathf::Cos(System.Single f)
IL_010B: neg
IL_010C: stfld System.Single UnityEngine.Vector4::w
IL_0111: Label4
IL_0111: ldloca.s 8 (UnityEngine.Vector2)
IL_0113: ldc.r4 1
IL_0118: ldarg.0
IL_0119: ldfld System.Single LightEffect::m_lightRange
IL_011E: ldarg.0
IL_011F: ldfld System.Single LightEffect::m_lightRange
IL_0124: mul
IL_0125: div
IL_0126: ldarg.0
IL_0127: ldfld System.Single LightEffect::m_lightIntensity
IL_012C: call System.Void UnityEngine.Vector2::.ctor(System.Single x,
System.Single y)
IL_0131: ldloca.s 9 (ColossalFramework.Math.Randomizer)
IL_0133: ldarga.s 2
IL_0135: call System.UInt32 InstanceID::get_Index()
IL_013A: call System.Void
ColossalFramework.Math.Randomizer::.ctor(System.UInt32 _seed)
IL_013F: ldloca.s 10 (UnityEngine.Vector2)
IL_0141: ldarg.0
IL_0142: ldflda UnityEngine.Vector2 LightEffect::m_offRange
IL_0147: ldfld System.Single UnityEngine.Vector2::x
IL_014C: ldloca.s 9 (ColossalFramework.Math.Randomizer)
IL_014E: ldc.i4 100000
IL_0153: call System.Int32
ColossalFramework.Math.Randomizer::Int32(System.UInt32 range)
IL_0158: conv.r4
IL_0159: ldc.r4 1E-05
IL_015E: mul
IL_015F: ldarg.0
IL_0160: ldflda UnityEngine.Vector2 LightEffect::m_offRange
IL_0165: ldfld System.Single UnityEngine.Vector2::y
IL_016A: ldarg.0
IL_016B: ldflda UnityEngine.Vector2 LightEffect::m_offRange
IL_0170: ldfld System.Single UnityEngine.Vector2::x
IL_0175: sub
IL_0176: mul
IL_0177: add
IL_0178: stfld System.Single UnityEngine.Vector2::x
IL_017D: ldloca.s 10 (UnityEngine.Vector2)
IL_017F: ldarg.0
IL_0180: ldfld BlinkType LightEffect::m_blinkType
IL_0185: conv.r4
IL_0186: stfld System.Single UnityEngine.Vector2::y
IL_018B: ldarg.2
IL_018C: call static System.UInt16 EffectInfo::GetBuilding(InstanceID id)
IL_0191: stloc.s 13 (System.UInt16)
IL_0193: ldloc.s 13 (System.UInt16)
IL_0195: brfalse => Label5
IL_019A: ldloc.s 13 (System.UInt16)
IL_019C: call static UnityEngine.Vector4
RenderManager::GetColorLocation(System.UInt32 instanceHolder)
IL_01A1: call static UnityEngine.Vector2
UnityEngine.Vector4::op_Implicit(UnityEngine.Vector4 v)
IL_01A6: stloc.s 11 (UnityEngine.Vector2)
IL_01A8: ldloc.0
IL_01A9: brfalse => Label6
IL_01AE: call static BuildingManager
ColossalFramework.Singleton`1<BuildingManager>::get_instance()
IL_01B3: ldfld Array16`1<Building> BuildingManager::m_buildings
IL_01B8: ldfld Building[] Array16`1<Building>::m_buffer
IL_01BD: ldloc.s 13 (System.UInt16)
IL_01BF: ldelema Building
IL_01C4: call UnityEngine.Vector3 Building::CalculateMeshPosition()
IL_01C9: stloc.s 14 (UnityEngine.Vector3)
IL_01CB: ldloc.s 14 (UnityEngine.Vector3)
IL_01CD: call static UnityEngine.Vector2
ColossalFramework.Math.VectorUtils::XZ(UnityEngine.Vector3 v)
IL_01D2: stloc.s 12 (UnityEngine.Vector2)
IL_01D4: ldarga.s 3
IL_01D6: dup
IL_01D7: ldfld System.Single UnityEngine.Vector3::y
IL_01DC: ldloca.s 14 (UnityEngine.Vector3)
IL_01DE: ldfld System.Single UnityEngine.Vector3::y
IL_01E3: sub
IL_01E4: stfld System.Single UnityEngine.Vector3::y
IL_01E9: ldloca.s 4 (UnityEngine.Vector3)
IL_01EB: dup
IL_01EC: ldfld System.Single UnityEngine.Vector3::y
IL_01F1: ldloca.s 14 (UnityEngine.Vector3)
IL_01F3: ldfld System.Single UnityEngine.Vector3::y
IL_01F8: sub
IL_01F9: stfld System.Single UnityEngine.Vector3::y
IL_01FE: br => Label7
IL_0203: Label6
IL_0203: call static UnityEngine.Vector2 UnityEngine.Vector2::get_zero()
IL_0208: stloc.s 12 (UnityEngine.Vector2)
IL_020A: Label7
IL_020A: br => Label8
IL_020F: Label5
IL_020F: ldsfld UnityEngine.Vector4 RenderManager::DefaultColorLocation
IL_0214: call static UnityEngine.Vector2
UnityEngine.Vector4::op_Implicit(UnityEngine.Vector4 v)
IL_0219: stloc.s 11 (UnityEngine.Vector2)
IL_021B: call static UnityEngine.Vector2 UnityEngine.Vector2::get_zero()
IL_0220: stloc.s 12 (UnityEngine.Vector2)
IL_0222: Label8
IL_0222: ldarg.0
IL_0223: ldfld UnityEngine.Color LightEffect::m_lightColor
IL_0228: stloc.s 15 (UnityEngine.Color)
IL_022A: ldarg.0
IL_022B: ldfld UnityEngine.Color[] LightEffect::m_variationColors
IL_0230: brfalse => Label9
IL_0235: ldarg.0
IL_0236: ldfld UnityEngine.Color[] LightEffect::m_variationColors
IL_023B: ldlen
IL_023C: conv.i4
IL_023D: brfalse => Label10
IL_0242: ldarg.0
IL_0243: ldfld UnityEngine.Color[] LightEffect::m_variationColors
IL_0248: ldloca.s 9 (ColossalFramework.Math.Randomizer)
IL_024A: ldarg.0
IL_024B: ldfld UnityEngine.Color[] LightEffect::m_variationColors
IL_0250: ldlen
IL_0251: conv.i4
IL_0252: call System.Int32
ColossalFramework.Math.Randomizer::Int32(System.UInt32 range)
IL_0257: ldelema UnityEngine.Color
IL_025C: ldobj UnityEngine.Color
IL_0261: stloc.s 16 (UnityEngine.Color)
IL_0263: ldloc.s 15 (UnityEngine.Color)
IL_0265: ldloc.s 16 (UnityEngine.Color)
IL_0267: ldloca.s 9 (ColossalFramework.Math.Randomizer)
IL_0269: ldc.i4 1000
IL_026E: call System.Int32
ColossalFramework.Math.Randomizer::Int32(System.UInt32 range)
IL_0273: conv.r4
IL_0274: ldc.r4 0.001
IL_0279: mul
IL_027A: call static UnityEngine.Color
UnityEngine.Color::Lerp(UnityEngine.Color a, UnityEngine.Color b, System.Single t)
IL_027F: stloc.s 15 (UnityEngine.Color)
IL_0281: Label9
IL_0281: Label10
IL_0281: ldloca.s 15 (UnityEngine.Color)
IL_0283: call UnityEngine.Color UnityEngine.Color::get_linear()
IL_0288: stloc.s 15 (UnityEngine.Color)
IL_028A: ldloca.s 15 (UnityEngine.Color)
IL_028C: ldarg.0
IL_028D: ldfld UnityEngine.LightType LightEffect::m_lightType
IL_0292: brtrue => Label11
IL_0297: ldarg.0
IL_0298: ldfld System.Single LightEffect::m_spotLeaking
IL_029D: br => Label12
IL_02A2: Label11
IL_02A2: ldc.r4 0
IL_02A7: Label12
IL_02A7: stfld System.Single UnityEngine.Color::a
IL_02AC: ldarg.0
IL_02AD: ldfld System.Single LightEffect::m_lightRange
IL_02B2: ldc.r4 0.5235988
IL_02B7: call static System.Single UnityEngine.Mathf::Cos(System.Single f)
IL_02BC: div
IL_02BD: stloc.s 17 (System.Single)
IL_02BF: ldloc.s 17 (System.Single)
IL_02C1: ldc.r4 0.5
IL_02C6: mul
IL_02C7: stloc.s 18 (System.Single)
IL_02C9: ldarg.s 8
IL_02CB: ldfld UnityEngine.Vector3[] MeshData::m_vertices
IL_02D0: ldarg.s 5
IL_02D2: ldind.i4
IL_02D3: ldelema UnityEngine.Vector3
IL_02D8: ldloca.s 4 (UnityEngine.Vector3)
IL_02DA: ldfld System.Single UnityEngine.Vector3::x
IL_02DF: ldloc.s 18 (System.Single)
IL_02E1: sub
IL_02E2: ldloca.s 4 (UnityEngine.Vector3)
IL_02E4: ldfld System.Single UnityEngine.Vector3::y
IL_02E9: ldarg.0
IL_02EA: ldfld System.Single LightEffect::m_lightRange
IL_02EF: add
IL_02F0: ldloca.s 4 (UnityEngine.Vector3)
IL_02F2: ldfld System.Single UnityEngine.Vector3::z
IL_02F7: ldarg.0
IL_02F8: ldfld System.Single LightEffect::m_lightRange
IL_02FD: add
IL_02FE: newobj System.Void UnityEngine.Vector3::.ctor(System.Single x,
System.Single y, System.Single z)
IL_0303: stobj UnityEngine.Vector3
IL_0308: ldarg.s 8
IL_030A: ldfld UnityEngine.Vector3[] MeshData::m_normals
IL_030F: ldarg.s 5
IL_0311: ldind.i4
IL_0312: ldelema UnityEngine.Vector3
IL_0317: ldarg.3
IL_0318: stobj UnityEngine.Vector3
IL_031D: ldarg.s 8
IL_031F: ldfld UnityEngine.Vector4[] MeshData::m_tangents
IL_0324: ldarg.s 5
IL_0326: ldind.i4
IL_0327: ldelema UnityEngine.Vector4
IL_032C: ldloc.s 7 (UnityEngine.Vector4)
IL_032E: stobj UnityEngine.Vector4
IL_0333: ldarg.s 8
IL_0335: ldfld UnityEngine.Vector2[] MeshData::m_uvs
IL_033A: ldarg.s 5
IL_033C: ldind.i4
IL_033D: ldelema UnityEngine.Vector2
IL_0342: ldloc.s 8 (UnityEngine.Vector2)
IL_0344: stobj UnityEngine.Vector2
IL_0349: ldarg.s 8
IL_034B: ldfld UnityEngine.Vector2[] MeshData::m_uvs2
IL_0350: ldarg.s 5
IL_0352: ldind.i4
IL_0353: ldelema UnityEngine.Vector2
IL_0358: ldloc.s 10 (UnityEngine.Vector2)
IL_035A: stobj UnityEngine.Vector2
IL_035F: ldarg.s 8
IL_0361: ldfld UnityEngine.Vector2[] MeshData::m_uvs3
IL_0366: ldarg.s 5
IL_0368: ldind.i4
IL_0369: ldelema UnityEngine.Vector2
IL_036E: ldloc.s 11 (UnityEngine.Vector2)
IL_0370: stobj UnityEngine.Vector2
IL_0375: ldloc.0
IL_0376: brfalse => Label13
IL_037B: ldarg.s 8
IL_037D: ldfld UnityEngine.Vector2[] MeshData::m_uvs4
IL_0382: ldarg.s 5
IL_0384: ldind.i4
IL_0385: ldelema UnityEngine.Vector2
IL_038A: ldloc.s 12 (UnityEngine.Vector2)
IL_038C: stobj UnityEngine.Vector2
IL_0391: Label13
IL_0391: ldarg.s 8
IL_0393: ldfld UnityEngine.Color32[] MeshData::m_colors
IL_0398: ldarg.s 5
IL_039A: ldind.i4
IL_039B: ldelema UnityEngine.Color32
IL_03A0: ldloc.s 15 (UnityEngine.Color)
IL_03A2: call static UnityEngine.Color32
UnityEngine.Color32::op_Implicit(UnityEngine.Color c)
IL_03A7: stobj UnityEngine.Color32
IL_03AC: ldarg.s 5
IL_03AE: ldarg.s 5
IL_03B0: ldind.i4
IL_03B1: ldc.i4.1
IL_03B2: add
IL_03B3: stind.i4
IL_03B4: ldarg.s 8
IL_03B6: ldfld UnityEngine.Vector3[] MeshData::m_vertices
IL_03BB: ldarg.s 5
IL_03BD: ldind.i4
IL_03BE: ldelema UnityEngine.Vector3
IL_03C3: ldloca.s 4 (UnityEngine.Vector3)
IL_03C5: ldfld System.Single UnityEngine.Vector3::x
IL_03CA: ldloc.s 18 (System.Single)
IL_03CC: add
IL_03CD: ldloca.s 4 (UnityEngine.Vector3)
IL_03CF: ldfld System.Single UnityEngine.Vector3::y
IL_03D4: ldarg.0
IL_03D5: ldfld System.Single LightEffect::m_lightRange
IL_03DA: add
IL_03DB: ldloca.s 4 (UnityEngine.Vector3)
IL_03DD: ldfld System.Single UnityEngine.Vector3::z
IL_03E2: ldarg.0
IL_03E3: ldfld System.Single LightEffect::m_lightRange
IL_03E8: add
IL_03E9: newobj System.Void UnityEngine.Vector3::.ctor(System.Single x,
System.Single y, System.Single z)
IL_03EE: stobj UnityEngine.Vector3
IL_03F3: ldarg.s 8
IL_03F5: ldfld UnityEngine.Vector3[] MeshData::m_normals
IL_03FA: ldarg.s 5
IL_03FC: ldind.i4
IL_03FD: ldelema UnityEngine.Vector3
IL_0402: ldarg.3
IL_0403: stobj UnityEngine.Vector3
IL_0408: ldarg.s 8
IL_040A: ldfld UnityEngine.Vector4[] MeshData::m_tangents
IL_040F: ldarg.s 5
IL_0411: ldind.i4
IL_0412: ldelema UnityEngine.Vector4
IL_0417: ldloc.s 7 (UnityEngine.Vector4)
IL_0419: stobj UnityEngine.Vector4
IL_041E: ldarg.s 8
IL_0420: ldfld UnityEngine.Vector2[] MeshData::m_uvs
IL_0425: ldarg.s 5
IL_0427: ldind.i4
IL_0428: ldelema UnityEngine.Vector2
IL_042D: ldloc.s 8 (UnityEngine.Vector2)
IL_042F: stobj UnityEngine.Vector2
IL_0434: ldarg.s 8
IL_0436: ldfld UnityEngine.Vector2[] MeshData::m_uvs2
IL_043B: ldarg.s 5
IL_043D: ldind.i4
IL_043E: ldelema UnityEngine.Vector2
IL_0443: ldloc.s 10 (UnityEngine.Vector2)
IL_0445: stobj UnityEngine.Vector2
IL_044A: ldarg.s 8
IL_044C: ldfld UnityEngine.Vector2[] MeshData::m_uvs3
IL_0451: ldarg.s 5
IL_0453: ldind.i4
IL_0454: ldelema UnityEngine.Vector2
IL_0459: ldloc.s 11 (UnityEngine.Vector2)
IL_045B: stobj UnityEngine.Vector2
IL_0460: ldloc.0
IL_0461: brfalse => Label14
IL_0466: ldarg.s 8
IL_0468: ldfld UnityEngine.Vector2[] MeshData::m_uvs4
IL_046D: ldarg.s 5
IL_046F: ldind.i4
IL_0470: ldelema UnityEngine.Vector2
IL_0475: ldloc.s 12 (UnityEngine.Vector2)
IL_0477: stobj UnityEngine.Vector2
IL_047C: Label14
IL_047C: ldarg.s 8
IL_047E: ldfld UnityEngine.Color32[] MeshData::m_colors
IL_0483: ldarg.s 5
IL_0485: ldind.i4
IL_0486: ldelema UnityEngine.Color32
IL_048B: ldloc.s 15 (UnityEngine.Color)
IL_048D: call static UnityEngine.Color32
UnityEngine.Color32::op_Implicit(UnityEngine.Color c)
IL_0492: stobj UnityEngine.Color32
IL_0497: ldarg.s 5
IL_0499: ldarg.s 5
IL_049B: ldind.i4
IL_049C: ldc.i4.1
IL_049D: add
IL_049E: stind.i4
IL_049F: ldarg.s 8
IL_04A1: ldfld UnityEngine.Vector3[] MeshData::m_vertices
IL_04A6: ldarg.s 5
IL_04A8: ldind.i4
IL_04A9: ldelema UnityEngine.Vector3
IL_04AE: ldloca.s 4 (UnityEngine.Vector3)
IL_04B0: ldfld System.Single UnityEngine.Vector3::x
IL_04B5: ldloc.s 17 (System.Single)
IL_04B7: add
IL_04B8: ldloca.s 4 (UnityEngine.Vector3)
IL_04BA: ldfld System.Single UnityEngine.Vector3::y
IL_04BF: ldloca.s 4 (UnityEngine.Vector3)
IL_04C1: ldfld System.Single UnityEngine.Vector3::z
IL_04C6: ldarg.0
IL_04C7: ldfld System.Single LightEffect::m_lightRange
IL_04CC: add
IL_04CD: newobj System.Void UnityEngine.Vector3::.ctor(System.Single x,
System.Single y, System.Single z)
IL_04D2: stobj UnityEngine.Vector3
IL_04D7: ldarg.s 8
IL_04D9: ldfld UnityEngine.Vector3[] MeshData::m_normals
IL_04DE: ldarg.s 5
IL_04E0: ldind.i4
IL_04E1: ldelema UnityEngine.Vector3
IL_04E6: ldarg.3
IL_04E7: stobj UnityEngine.Vector3
IL_04EC: ldarg.s 8
IL_04EE: ldfld UnityEngine.Vector4[] MeshData::m_tangents
IL_04F3: ldarg.s 5
IL_04F5: ldind.i4
IL_04F6: ldelema UnityEngine.Vector4
IL_04FB: ldloc.s 7 (UnityEngine.Vector4)
IL_04FD: stobj UnityEngine.Vector4
IL_0502: ldarg.s 8
IL_0504: ldfld UnityEngine.Vector2[] MeshData::m_uvs
IL_0509: ldarg.s 5
IL_050B: ldind.i4
IL_050C: ldelema UnityEngine.Vector2
IL_0511: ldloc.s 8 (UnityEngine.Vector2)
IL_0513: stobj UnityEngine.Vector2
IL_0518: ldarg.s 8
IL_051A: ldfld UnityEngine.Vector2[] MeshData::m_uvs2
IL_051F: ldarg.s 5
IL_0521: ldind.i4
IL_0522: ldelema UnityEngine.Vector2
IL_0527: ldloc.s 10 (UnityEngine.Vector2)
IL_0529: stobj UnityEngine.Vector2
IL_052E: ldarg.s 8
IL_0530: ldfld UnityEngine.Vector2[] MeshData::m_uvs3
IL_0535: ldarg.s 5
IL_0537: ldind.i4
IL_0538: ldelema UnityEngine.Vector2
IL_053D: ldloc.s 11 (UnityEngine.Vector2)
IL_053F: stobj UnityEngine.Vector2
IL_0544: ldloc.0
IL_0545: brfalse => Label15
IL_054A: ldarg.s 8
IL_054C: ldfld UnityEngine.Vector2[] MeshData::m_uvs4
IL_0551: ldarg.s 5
IL_0553: ldind.i4
IL_0554: ldelema UnityEngine.Vector2
IL_0559: ldloc.s 12 (UnityEngine.Vector2)
IL_055B: stobj UnityEngine.Vector2
IL_0560: Label15
IL_0560: ldarg.s 8
IL_0562: ldfld UnityEngine.Color32[] MeshData::m_colors
IL_0567: ldarg.s 5
IL_0569: ldind.i4
IL_056A: ldelema UnityEngine.Color32
IL_056F: ldloc.s 15 (UnityEngine.Color)
IL_0571: call static UnityEngine.Color32
UnityEngine.Color32::op_Implicit(UnityEngine.Color c)
IL_0576: stobj UnityEngine.Color32
IL_057B: ldarg.s 5
IL_057D: ldarg.s 5
IL_057F: ldind.i4
IL_0580: ldc.i4.1
IL_0581: add
IL_0582: stind.i4
IL_0583: ldarg.s 8
IL_0585: ldfld UnityEngine.Vector3[] MeshData::m_vertices
IL_058A: ldarg.s 5
IL_058C: ldind.i4
IL_058D: ldelema UnityEngine.Vector3
IL_0592: ldloca.s 4 (UnityEngine.Vector3)
IL_0594: ldfld System.Single UnityEngine.Vector3::x
IL_0599: ldloc.s 18 (System.Single)
IL_059B: add
IL_059C: ldloca.s 4 (UnityEngine.Vector3)
IL_059E: ldfld System.Single UnityEngine.Vector3::y
IL_05A3: ldarg.0
IL_05A4: ldfld System.Single LightEffect::m_lightRange
IL_05A9: sub
IL_05AA: ldloca.s 4 (UnityEngine.Vector3)
IL_05AC: ldfld System.Single UnityEngine.Vector3::z
IL_05B1: ldarg.0
IL_05B2: ldfld System.Single LightEffect::m_lightRange
IL_05B7: add
IL_05B8: newobj System.Void UnityEngine.Vector3::.ctor(System.Single x,
System.Single y, System.Single z)
IL_05BD: stobj UnityEngine.Vector3
IL_05C2: ldarg.s 8
IL_05C4: ldfld UnityEngine.Vector3[] MeshData::m_normals
IL_05C9: ldarg.s 5
IL_05CB: ldind.i4
IL_05CC: ldelema UnityEngine.Vector3
IL_05D1: ldarg.3
IL_05D2: stobj UnityEngine.Vector3
IL_05D7: ldarg.s 8
IL_05D9: ldfld UnityEngine.Vector4[] MeshData::m_tangents
IL_05DE: ldarg.s 5
IL_05E0: ldind.i4
IL_05E1: ldelema UnityEngine.Vector4
IL_05E6: ldloc.s 7 (UnityEngine.Vector4)
IL_05E8: stobj UnityEngine.Vector4
IL_05ED: ldarg.s 8
IL_05EF: ldfld UnityEngine.Vector2[] MeshData::m_uvs
IL_05F4: ldarg.s 5
IL_05F6: ldind.i4
IL_05F7: ldelema UnityEngine.Vector2
IL_05FC: ldloc.s 8 (UnityEngine.Vector2)
IL_05FE: stobj UnityEngine.Vector2
IL_0603: ldarg.s 8
IL_0605: ldfld UnityEngine.Vector2[] MeshData::m_uvs2
IL_060A: ldarg.s 5
IL_060C: ldind.i4
IL_060D: ldelema UnityEngine.Vector2
IL_0612: ldloc.s 10 (UnityEngine.Vector2)
IL_0614: stobj UnityEngine.Vector2
IL_0619: ldarg.s 8
IL_061B: ldfld UnityEngine.Vector2[] MeshData::m_uvs3
IL_0620: ldarg.s 5
IL_0622: ldind.i4
IL_0623: ldelema UnityEngine.Vector2
IL_0628: ldloc.s 11 (UnityEngine.Vector2)
IL_062A: stobj UnityEngine.Vector2
IL_062F: ldloc.0
IL_0630: brfalse => Label16
IL_0635: ldarg.s 8
IL_0637: ldfld UnityEngine.Vector2[] MeshData::m_uvs4
IL_063C: ldarg.s 5
IL_063E: ldind.i4
IL_063F: ldelema UnityEngine.Vector2
IL_0644: ldloc.s 12 (UnityEngine.Vector2)
IL_0646: stobj UnityEngine.Vector2
IL_064B: Label16
IL_064B: ldarg.s 8
IL_064D: ldfld UnityEngine.Color32[] MeshData::m_colors
IL_0652: ldarg.s 5
IL_0654: ldind.i4
IL_0655: ldelema UnityEngine.Color32
IL_065A: ldloc.s 15 (UnityEngine.Color)
IL_065C: call static UnityEngine.Color32
UnityEngine.Color32::op_Implicit(UnityEngine.Color c)
IL_0661: stobj UnityEngine.Color32
IL_0666: ldarg.s 5
IL_0668: ldarg.s 5
IL_066A: ldind.i4
IL_066B: ldc.i4.1
IL_066C: add
IL_066D: stind.i4
IL_066E: ldarg.s 8
IL_0670: ldfld UnityEngine.Vector3[] MeshData::m_vertices
IL_0675: ldarg.s 5
IL_0677: ldind.i4
IL_0678: ldelema UnityEngine.Vector3
IL_067D: ldloca.s 4 (UnityEngine.Vector3)
IL_067F: ldfld System.Single UnityEngine.Vector3::x
IL_0684: ldloc.s 18 (System.Single)
IL_0686: sub
IL_0687: ldloca.s 4 (UnityEngine.Vector3)
IL_0689: ldfld System.Single UnityEngine.Vector3::y
IL_068E: ldarg.0
IL_068F: ldfld System.Single LightEffect::m_lightRange
IL_0694: sub
IL_0695: ldloca.s 4 (UnityEngine.Vector3)
IL_0697: ldfld System.Single UnityEngine.Vector3::z
IL_069C: ldarg.0
IL_069D: ldfld System.Single LightEffect::m_lightRange
IL_06A2: add
IL_06A3: newobj System.Void UnityEngine.Vector3::.ctor(System.Single x,
System.Single y, System.Single z)
IL_06A8: stobj UnityEngine.Vector3
IL_06AD: ldarg.s 8
IL_06AF: ldfld UnityEngine.Vector3[] MeshData::m_normals
IL_06B4: ldarg.s 5
IL_06B6: ldind.i4
IL_06B7: ldelema UnityEngine.Vector3
IL_06BC: ldarg.3
IL_06BD: stobj UnityEngine.Vector3
IL_06C2: ldarg.s 8
IL_06C4: ldfld UnityEngine.Vector4[] MeshData::m_tangents
IL_06C9: ldarg.s 5
IL_06CB: ldind.i4
IL_06CC: ldelema UnityEngine.Vector4
IL_06D1: ldloc.s 7 (UnityEngine.Vector4)
IL_06D3: stobj UnityEngine.Vector4
IL_06D8: ldarg.s 8
IL_06DA: ldfld UnityEngine.Vector2[] MeshData::m_uvs
IL_06DF: ldarg.s 5
IL_06E1: ldind.i4
IL_06E2: ldelema UnityEngine.Vector2
IL_06E7: ldloc.s 8 (UnityEngine.Vector2)
IL_06E9: stobj UnityEngine.Vector2
IL_06EE: ldarg.s 8
IL_06F0: ldfld UnityEngine.Vector2[] MeshData::m_uvs2
IL_06F5: ldarg.s 5
IL_06F7: ldind.i4
IL_06F8: ldelema UnityEngine.Vector2
IL_06FD: ldloc.s 10 (UnityEngine.Vector2)
IL_06FF: stobj UnityEngine.Vector2
IL_0704: ldarg.s 8
IL_0706: ldfld UnityEngine.Vector2[] MeshData::m_uvs3
IL_070B: ldarg.s 5
IL_070D: ldind.i4
IL_070E: ldelema UnityEngine.Vector2
IL_0713: ldloc.s 11 (UnityEngine.Vector2)
IL_0715: stobj UnityEngine.Vector2
IL_071A: ldloc.0
IL_071B: brfalse => Label17
IL_0720: ldarg.s 8
IL_0722: ldfld UnityEngine.Vector2[] MeshData::m_uvs4
IL_0727: ldarg.s 5
IL_0729: ldind.i4
IL_072A: ldelema UnityEngine.Vector2
IL_072F: ldloc.s 12 (UnityEngine.Vector2)
IL_0731: stobj UnityEngine.Vector2
IL_0736: Label17
IL_0736: ldarg.s 8
IL_0738: ldfld UnityEngine.Color32[] MeshData::m_colors
IL_073D: ldarg.s 5
IL_073F: ldind.i4
IL_0740: ldelema UnityEngine.Color32
IL_0745: ldloc.s 15 (UnityEngine.Color)
IL_0747: call static UnityEngine.Color32
UnityEngine.Color32::op_Implicit(UnityEngine.Color c)
IL_074C: stobj UnityEngine.Color32
IL_0751: ldarg.s 5
IL_0753: ldarg.s 5
IL_0755: ldind.i4
IL_0756: ldc.i4.1
IL_0757: add
IL_0758: stind.i4
IL_0759: ldarg.s 8
IL_075B: ldfld UnityEngine.Vector3[] MeshData::m_vertices
IL_0760: ldarg.s 5
IL_0762: ldind.i4
IL_0763: ldelema UnityEngine.Vector3
IL_0768: ldloca.s 4 (UnityEngine.Vector3)
IL_076A: ldfld System.Single UnityEngine.Vector3::x
IL_076F: ldloc.s 17 (System.Single)
IL_0771: sub
IL_0772: ldloca.s 4 (UnityEngine.Vector3)
IL_0774: ldfld System.Single UnityEngine.Vector3::y
IL_0779: ldloca.s 4 (UnityEngine.Vector3)
IL_077B: ldfld System.Single UnityEngine.Vector3::z
IL_0780: ldarg.0
IL_0781: ldfld System.Single LightEffect::m_lightRange
IL_0786: add
IL_0787: newobj System.Void UnityEngine.Vector3::.ctor(System.Single x,
System.Single y, System.Single z)
IL_078C: stobj UnityEngine.Vector3
IL_0791: ldarg.s 8
IL_0793: ldfld UnityEngine.Vector3[] MeshData::m_normals
IL_0798: ldarg.s 5
IL_079A: ldind.i4
IL_079B: ldelema UnityEngine.Vector3
IL_07A0: ldarg.3
IL_07A1: stobj UnityEngine.Vector3
IL_07A6: ldarg.s 8
IL_07A8: ldfld UnityEngine.Vector4[] MeshData::m_tangents
IL_07AD: ldarg.s 5
IL_07AF: ldind.i4
IL_07B0: ldelema UnityEngine.Vector4
IL_07B5: ldloc.s 7 (UnityEngine.Vector4)
IL_07B7: stobj UnityEngine.Vector4
IL_07BC: ldarg.s 8
IL_07BE: ldfld UnityEngine.Vector2[] MeshData::m_uvs
IL_07C3: ldarg.s 5
IL_07C5: ldind.i4
IL_07C6: ldelema UnityEngine.Vector2
IL_07CB: ldloc.s 8 (UnityEngine.Vector2)
IL_07CD: stobj UnityEngine.Vector2
IL_07D2: ldarg.s 8
IL_07D4: ldfld UnityEngine.Vector2[] MeshData::m_uvs2
IL_07D9: ldarg.s 5
IL_07DB: ldind.i4
IL_07DC: ldelema UnityEngine.Vector2
IL_07E1: ldloc.s 10 (UnityEngine.Vector2)
IL_07E3: stobj UnityEngine.Vector2
IL_07E8: ldarg.s 8
IL_07EA: ldfld UnityEngine.Vector2[] MeshData::m_uvs3
IL_07EF: ldarg.s 5
IL_07F1: ldind.i4
IL_07F2: ldelema UnityEngine.Vector2
IL_07F7: ldloc.s 11 (UnityEngine.Vector2)
IL_07F9: stobj UnityEngine.Vector2
IL_07FE: ldloc.0
IL_07FF: brfalse => Label18
IL_0804: ldarg.s 8
IL_0806: ldfld UnityEngine.Vector2[] MeshData::m_uvs4
IL_080B: ldarg.s 5
IL_080D: ldind.i4
IL_080E: ldelema UnityEngine.Vector2
IL_0813: ldloc.s 12 (UnityEngine.Vector2)
IL_0815: stobj UnityEngine.Vector2
IL_081A: Label18
IL_081A: ldarg.s 8
IL_081C: ldfld UnityEngine.Color32[] MeshData::m_colors
IL_0821: ldarg.s 5
IL_0823: ldind.i4
IL_0824: ldelema UnityEngine.Color32
IL_0829: ldloc.s 15 (UnityEngine.Color)
IL_082B: call static UnityEngine.Color32
UnityEngine.Color32::op_Implicit(UnityEngine.Color c)
IL_0830: stobj UnityEngine.Color32
IL_0835: ldarg.s 5
IL_0837: ldarg.s 5
IL_0839: ldind.i4
IL_083A: ldc.i4.1
IL_083B: add
IL_083C: stind.i4
IL_083D: ldarg.s 8
IL_083F: ldfld System.Int32[] MeshData::m_triangles
IL_0844: ldarg.s 6
IL_0846: ldarg.s 6
IL_0848: ldind.i4
IL_0849: dup
IL_084A: stloc.s 19 (System.Int32)
IL_084C: ldc.i4.1
IL_084D: add
IL_084E: stind.i4
IL_084F: ldloc.s 19 (System.Int32)
IL_0851: ldarg.s 5
IL_0853: ldind.i4
IL_0854: ldc.i4.6
IL_0855: sub
IL_0856: stelem.i4
IL_0857: ldarg.s 8
IL_0859: ldfld System.Int32[] MeshData::m_triangles
IL_085E: ldarg.s 6
IL_0860: ldarg.s 6
IL_0862: ldind.i4
IL_0863: dup
IL_0864: stloc.s 19 (System.Int32)
IL_0866: ldc.i4.1
IL_0867: add
IL_0868: stind.i4
IL_0869: ldloc.s 19 (System.Int32)
IL_086B: ldarg.s 5
IL_086D: ldind.i4
IL_086E: ldc.i4.5
IL_086F: sub
IL_0870: stelem.i4
IL_0871: ldarg.s 8
IL_0873: ldfld System.Int32[] MeshData::m_triangles
IL_0878: ldarg.s 6
IL_087A: ldarg.s 6
IL_087C: ldind.i4
IL_087D: dup
IL_087E: stloc.s 19 (System.Int32)
IL_0880: ldc.i4.1
IL_0881: add
IL_0882: stind.i4
IL_0883: ldloc.s 19 (System.Int32)
IL_0885: ldarg.s 5
IL_0887: ldind.i4
IL_0888: ldc.i4.1
IL_0889: sub
IL_088A: stelem.i4
IL_088B: ldarg.s 8
IL_088D: ldfld System.Int32[] MeshData::m_triangles
IL_0892: ldarg.s 6
IL_0894: ldarg.s 6
IL_0896: ldind.i4
IL_0897: dup
IL_0898: stloc.s 19 (System.Int32)
IL_089A: ldc.i4.1
IL_089B: add
IL_089C: stind.i4
IL_089D: ldloc.s 19 (System.Int32)
IL_089F: ldarg.s 5
IL_08A1: ldind.i4
IL_08A2: ldc.i4.1
IL_08A3: sub
IL_08A4: stelem.i4
IL_08A5: ldarg.s 8
IL_08A7: ldfld System.Int32[] MeshData::m_triangles
IL_08AC: ldarg.s 6
IL_08AE: ldarg.s 6
IL_08B0: ldind.i4
IL_08B1: dup
IL_08B2: stloc.s 19 (System.Int32)
IL_08B4: ldc.i4.1
IL_08B5: add
IL_08B6: stind.i4
IL_08B7: ldloc.s 19 (System.Int32)
IL_08B9: ldarg.s 5
IL_08BB: ldind.i4
IL_08BC: ldc.i4.5
IL_08BD: sub
IL_08BE: stelem.i4
IL_08BF: ldarg.s 8
IL_08C1: ldfld System.Int32[] MeshData::m_triangles
IL_08C6: ldarg.s 6
IL_08C8: ldarg.s 6
IL_08CA: ldind.i4
IL_08CB: dup
IL_08CC: stloc.s 19 (System.Int32)
IL_08CE: ldc.i4.1
IL_08CF: add
IL_08D0: stind.i4
IL_08D1: ldloc.s 19 (System.Int32)
IL_08D3: ldarg.s 5
IL_08D5: ldind.i4
IL_08D6: ldc.i4.4
IL_08D7: sub
IL_08D8: stelem.i4
IL_08D9: ldarg.s 8
IL_08DB: ldfld System.Int32[] MeshData::m_triangles
IL_08E0: ldarg.s 6
IL_08E2: ldarg.s 6
IL_08E4: ldind.i4
IL_08E5: dup
IL_08E6: stloc.s 19 (System.Int32)
IL_08E8: ldc.i4.1
IL_08E9: add
IL_08EA: stind.i4
IL_08EB: ldloc.s 19 (System.Int32)
IL_08ED: ldarg.s 5
IL_08EF: ldind.i4
IL_08F0: ldc.i4.1
IL_08F1: sub
IL_08F2: stelem.i4
IL_08F3: ldarg.s 8
IL_08F5: ldfld System.Int32[] MeshData::m_triangles
IL_08FA: ldarg.s 6
IL_08FC: ldarg.s 6
IL_08FE: ldind.i4
IL_08FF: dup
IL_0900: stloc.s 19 (System.Int32)
IL_0902: ldc.i4.1
IL_0903: add
IL_0904: stind.i4
IL_0905: ldloc.s 19 (System.Int32)
IL_0907: ldarg.s 5
IL_0909: ldind.i4
IL_090A: ldc.i4.4
IL_090B: sub
IL_090C: stelem.i4
IL_090D: ldarg.s 8
IL_090F: ldfld System.Int32[] MeshData::m_triangles
IL_0914: ldarg.s 6
IL_0916: ldarg.s 6
IL_0918: ldind.i4
IL_0919: dup
IL_091A: stloc.s 19 (System.Int32)
IL_091C: ldc.i4.1
IL_091D: add
IL_091E: stind.i4
IL_091F: ldloc.s 19 (System.Int32)
IL_0921: ldarg.s 5
IL_0923: ldind.i4
IL_0924: ldc.i4.2
IL_0925: sub
IL_0926: stelem.i4
IL_0927: ldarg.s 8
IL_0929: ldfld System.Int32[] MeshData::m_triangles
IL_092E: ldarg.s 6
IL_0930: ldarg.s 6
IL_0932: ldind.i4
IL_0933: dup
IL_0934: stloc.s 19 (System.Int32)
IL_0936: ldc.i4.1
IL_0937: add
IL_0938: stind.i4
IL_0939: ldloc.s 19 (System.Int32)
IL_093B: ldarg.s 5
IL_093D: ldind.i4
IL_093E: ldc.i4.2
IL_093F: sub
IL_0940: stelem.i4
IL_0941: ldarg.s 8
IL_0943: ldfld System.Int32[] MeshData::m_triangles
IL_0948: ldarg.s 6
IL_094A: ldarg.s 6
IL_094C: ldind.i4
IL_094D: dup
IL_094E: stloc.s 19 (System.Int32)
IL_0950: ldc.i4.1
IL_0951: add
IL_0952: stind.i4
IL_0953: ldloc.s 19 (System.Int32)
IL_0955: ldarg.s 5
IL_0957: ldind.i4
IL_0958: ldc.i4.4
IL_0959: sub
IL_095A: stelem.i4
IL_095B: ldarg.s 8
IL_095D: ldfld System.Int32[] MeshData::m_triangles
IL_0962: ldarg.s 6
IL_0964: ldarg.s 6
IL_0966: ldind.i4
IL_0967: dup
IL_0968: stloc.s 19 (System.Int32)
IL_096A: ldc.i4.1
IL_096B: add
IL_096C: stind.i4
IL_096D: ldloc.s 19 (System.Int32)
IL_096F: ldarg.s 5
IL_0971: ldind.i4
IL_0972: ldc.i4.3
IL_0973: sub
IL_0974: stelem.i4
IL_0975: // end original
IL_0975: Label1
IL_0975: ret
DONE

### Patch: virtual System.Void ElectricityManager::SimulationStepImpl(System.Int32


subStep)
### Replacement: static System.Void
ElectricityManager::ElectricityManager.SimulationStepImpl_Patch0(ElectricityManager
this, System.Int32 subStep)
IL_0000: Local var 0: System.UInt32
IL_0000: Local var 1: System.Int32
IL_0000: Local var 2: NetManager
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: NetInfo
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: ElectricityManager/Cell
IL_0000: Local var 13: ElectricityManager/PulseGroup
IL_0000: Local var 14: ElectricityManager/PulseUnit
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: ElectricityManager/PulseUnit
IL_0000: Local var 19: System.UInt32
IL_0000: Local var 20: System.Int32
IL_0000: Local var 21: ElectricityManager/Cell
IL_0000: Local var 22: System.Int32
IL_0000: Local var 23: System.Int32
IL_0000: Local var 24: NetNode
IL_0000: Local var 25: System.Int32
IL_0000: Local var 26: System.UInt16
IL_0000: Local var 27: System.UInt16
IL_0000: Local var 28: System.UInt16
IL_0000: Local var 29: System.UInt16
IL_0000: Local var 30: System.Int32
IL_0000: Local var 31: ElectricityManager/PulseGroup
IL_0000: Local var 32: ElectricityManager/PulseGroup
IL_0000: Local var 33: System.Int32
IL_0000: Local var 34: ElectricityManager/PulseGroup
IL_0000: Local var 35: System.Int32
IL_0000: Local var 36: ElectricityManager/Cell
IL_0000: // start original
IL_0000: ldarg.1
IL_0001: brfalse => Label0
IL_0006: ldarg.1
IL_0007: ldc.i4 1000
IL_000C: beq => Label1
IL_0011: call static SimulationManager
ColossalFramework.Singleton`1<SimulationManager>::get_instance()
IL_0016: ldfld System.UInt32 SimulationManager::m_currentFrameIndex
IL_001B: stloc.0
IL_001C: ldloc.0
IL_001D: ldc.i4 255
IL_0022: and
IL_0023: stloc.1
IL_0024: ldloc.1
IL_0025: ldc.i4 128
IL_002A: bge => Label2
IL_002F: ldloc.1
IL_0030: brtrue => Label3
IL_0035: ldarg.0
IL_0036: ldc.i4.0
IL_0037: stfld System.Int32 ElectricityManager::m_pulseGroupCount
IL_003C: ldarg.0
IL_003D: ldc.i4.0
IL_003E: stfld System.Int32 ElectricityManager::m_pulseUnitStart
IL_0043: ldarg.0
IL_0044: ldc.i4.0
IL_0045: stfld System.Int32 ElectricityManager::m_pulseUnitEnd
IL_004A: ldarg.0
IL_004B: ldc.i4.0
IL_004C: stfld System.Int32 ElectricityManager::m_processedCells
IL_0051: ldarg.0
IL_0052: ldc.i4.0
IL_0053: stfld System.Int32 ElectricityManager::m_conductiveCells
IL_0058: ldarg.0
IL_0059: ldc.i4.1
IL_005A: stfld System.Boolean ElectricityManager::m_canContinue
IL_005F: Label3
IL_005F: call static NetManager
ColossalFramework.Singleton`1<NetManager>::get_instance()
IL_0064: stloc.2
IL_0065: ldloc.1
IL_0066: ldc.i4 32768
IL_006B: mul
IL_006C: ldc.i4.7
IL_006D: shr
IL_006E: stloc.3
IL_006F: ldloc.1
IL_0070: ldc.i4.1
IL_0071: add
IL_0072: ldc.i4 32768
IL_0077: mul
IL_0078: ldc.i4.7
IL_0079: shr
IL_007A: ldc.i4.1
IL_007B: sub
IL_007C: stloc.s 4 (System.Int32)
IL_007E: ldloc.3
IL_007F: stloc.s 5 (System.Int32)
IL_0081: br => Label4
IL_0086: Label10
IL_0086: ldloc.2
IL_0087: ldfld Array16`1<NetNode> NetManager::m_nodes
IL_008C: ldfld NetNode[] Array16`1<NetNode>::m_buffer
IL_0091: ldloc.s 5 (System.Int32)
IL_0093: ldelema NetNode
IL_0098: ldfld Flags NetNode::m_flags
IL_009D: brfalse => Label5
IL_00A2: ldloc.2
IL_00A3: ldfld Array16`1<NetNode> NetManager::m_nodes
IL_00A8: ldfld NetNode[] Array16`1<NetNode>::m_buffer
IL_00AD: ldloc.s 5 (System.Int32)
IL_00AF: ldelema NetNode
IL_00B4: call NetInfo NetNode::get_Info()
IL_00B9: stloc.s 6 (NetInfo)
IL_00BB: ldloc.s 6 (NetInfo)
IL_00BD: ldfld ItemClass NetInfo::m_class
IL_00C2: ldfld Service ItemClass::m_service
IL_00C7: ldc.i4.s 10
IL_00C9: beq => Label6
IL_00CE: ldloc.s 6 (NetInfo)
IL_00D0: ldfld NetAI NetInfo::m_netAI
IL_00D5: isinst ConcourseAI
IL_00DA: brfalse => Label7
IL_00DF: Label6
IL_00DF: ldarg.0
IL_00E0: ldloc.s 5 (System.Int32)
IL_00E2: ldarg.0
IL_00E3: ldfld System.UInt16[] ElectricityManager::m_nodeGroups
IL_00E8: ldloc.s 5 (System.Int32)
IL_00EA: ldelem.u2
IL_00EB: ldc.i4 65535
IL_00F0: beq => Label8
IL_00F5: ldc.i4.1
IL_00F6: br => Label9
IL_00FB: Label8
IL_00FB: ldc.i4.0
IL_00FC: Label9
IL_00FC: call System.Void
ElectricityManager::UpdateNodeElectricity(System.Int32 nodeID, System.Int32 value)
IL_0101: ldarg.0
IL_0102: dup
IL_0103: ldfld System.Int32 ElectricityManager::m_conductiveCells
IL_0108: ldc.i4.1
IL_0109: add
IL_010A: stfld System.Int32 ElectricityManager::m_conductiveCells
IL_010F: Label5
IL_010F: Label7
IL_010F: ldarg.0
IL_0110: ldfld System.UInt16[] ElectricityManager::m_nodeGroups
IL_0115: ldloc.s 5 (System.Int32)
IL_0117: ldc.i4 65535
IL_011C: stelem.i2
IL_011D: ldloc.s 5 (System.Int32)
IL_011F: ldc.i4.1
IL_0120: add
IL_0121: stloc.s 5 (System.Int32)
IL_0123: Label4
IL_0123: ldloc.s 5 (System.Int32)
IL_0125: ldloc.s 4 (System.Int32)
IL_0127: ble => Label10
IL_012C: ldloc.1
IL_012D: ldc.i4 256
IL_0132: mul
IL_0133: ldc.i4.7
IL_0134: shr
IL_0135: stloc.s 7 (System.Int32)
IL_0137: ldloc.1
IL_0138: ldc.i4.1
IL_0139: add
IL_013A: ldc.i4 256
IL_013F: mul
IL_0140: ldc.i4.7
IL_0141: shr
IL_0142: ldc.i4.1
IL_0143: sub
IL_0144: stloc.s 8 (System.Int32)
IL_0146: ldloc.s 7 (System.Int32)
IL_0148: stloc.s 9 (System.Int32)
IL_014A: br => Label11
IL_014F: Label21
IL_014F: ldloc.s 9 (System.Int32)
IL_0151: ldc.i4 256
IL_0156: mul
IL_0157: stloc.s 10 (System.Int32)
IL_0159: ldc.i4.0
IL_015A: stloc.s 11 (System.Int32)
IL_015C: br => Label12
IL_0161: Label20
IL_0161: ldarg.0
IL_0162: ldfld Cell[] ElectricityManager::m_electricityGrid
IL_0167: ldloc.s 10 (System.Int32)
IL_0169: ldelema ElectricityManager+Cell
IL_016E: ldobj ElectricityManager+Cell
IL_0173: stloc.s 12 (ElectricityManager+Cell)
IL_0175: ldloca.s 12 (ElectricityManager+Cell)
IL_0177: ldfld System.Int16 Cell::m_currentCharge
IL_017C: ldc.i4.0
IL_017D: ble => Label13
IL_0182: ldarg.0
IL_0183: ldfld System.Int32 ElectricityManager::m_pulseGroupCount
IL_0188: ldc.i4 1024
IL_018D: bge => Label14
IL_0192: ldloca.s 13 (ElectricityManager+PulseGroup)
IL_0194: ldloca.s 12 (ElectricityManager+Cell)
IL_0196: ldfld System.Int16 Cell::m_currentCharge
IL_019B: conv.u4
IL_019C: stfld System.UInt32 PulseGroup::m_origCharge
IL_01A1: ldloca.s 13 (ElectricityManager+PulseGroup)
IL_01A3: ldloca.s 12 (ElectricityManager+Cell)
IL_01A5: ldfld System.Int16 Cell::m_currentCharge
IL_01AA: conv.u4
IL_01AB: stfld System.UInt32 PulseGroup::m_curCharge
IL_01B0: ldloca.s 13 (ElectricityManager+PulseGroup)
IL_01B2: ldc.i4.0
IL_01B3: stfld System.UInt16 PulseGroup::m_mergeCount
IL_01B8: ldloca.s 13 (ElectricityManager+PulseGroup)
IL_01BA: ldc.i4 65535
IL_01BF: stfld System.UInt16 PulseGroup::m_mergeIndex
IL_01C4: ldloca.s 13 (ElectricityManager+PulseGroup)
IL_01C6: ldloc.s 11 (System.Int32)
IL_01C8: conv.u1
IL_01C9: stfld System.Byte PulseGroup::m_x
IL_01CE: ldloca.s 13 (ElectricityManager+PulseGroup)
IL_01D0: ldloc.s 9 (System.Int32)
IL_01D2: conv.u1
IL_01D3: stfld System.Byte PulseGroup::m_z
IL_01D8: ldloca.s 14 (ElectricityManager+PulseUnit)
IL_01DA: ldarg.0
IL_01DB: ldfld System.Int32 ElectricityManager::m_pulseGroupCount
IL_01E0: conv.u2
IL_01E1: stfld System.UInt16 PulseUnit::m_group
IL_01E6: ldloca.s 14 (ElectricityManager+PulseUnit)
IL_01E8: ldc.i4.0
IL_01E9: stfld System.UInt16 PulseUnit::m_node
IL_01EE: ldloca.s 14 (ElectricityManager+PulseUnit)
IL_01F0: ldloc.s 11 (System.Int32)
IL_01F2: conv.u1
IL_01F3: stfld System.Byte PulseUnit::m_x
IL_01F8: ldloca.s 14 (ElectricityManager+PulseUnit)
IL_01FA: ldloc.s 9 (System.Int32)
IL_01FC: conv.u1
IL_01FD: stfld System.Byte PulseUnit::m_z
IL_0202: ldloca.s 12 (ElectricityManager+Cell)
IL_0204: ldarg.0
IL_0205: ldfld System.Int32 ElectricityManager::m_pulseGroupCount
IL_020A: conv.u2
IL_020B: stfld System.UInt16 Cell::m_pulseGroup
IL_0210: ldarg.0
IL_0211: ldfld PulseGroup[] ElectricityManager::m_pulseGroups
IL_0216: ldarg.0
IL_0217: dup
IL_0218: ldfld System.Int32 ElectricityManager::m_pulseGroupCount
IL_021D: dup
IL_021E: stloc.s 15 (System.Int32)
IL_0220: ldc.i4.1
IL_0221: add
IL_0222: stfld System.Int32 ElectricityManager::m_pulseGroupCount
IL_0227: ldloc.s 15 (System.Int32)
IL_0229: ldelema ElectricityManager+PulseGroup
IL_022E: ldloc.s 13 (ElectricityManager+PulseGroup)
IL_0230: stobj ElectricityManager+PulseGroup
IL_0235: ldarg.0
IL_0236: ldfld PulseUnit[] ElectricityManager::m_pulseUnits
IL_023B: ldarg.0
IL_023C: ldfld System.Int32 ElectricityManager::m_pulseUnitEnd
IL_0241: ldelema ElectricityManager+PulseUnit
IL_0246: ldloc.s 14 (ElectricityManager+PulseUnit)
IL_0248: stobj ElectricityManager+PulseUnit
IL_024D: ldarg.0
IL_024E: dup
IL_024F: ldfld System.Int32 ElectricityManager::m_pulseUnitEnd
IL_0254: ldc.i4.1
IL_0255: add
IL_0256: dup
IL_0257: stloc.s 15 (System.Int32)
IL_0259: stfld System.Int32 ElectricityManager::m_pulseUnitEnd
IL_025E: ldloc.s 15 (System.Int32)
IL_0260: ldarg.0
IL_0261: ldfld PulseUnit[] ElectricityManager::m_pulseUnits
IL_0266: ldlen
IL_0267: conv.i4
IL_0268: bne.un => Label15
IL_026D: ldarg.0
IL_026E: ldc.i4.0
IL_026F: stfld System.Int32 ElectricityManager::m_pulseUnitEnd
IL_0274: Label15
IL_0274: br => Label16
IL_0279: Label14
IL_0279: ldloca.s 12 (ElectricityManager+Cell)
IL_027B: ldc.i4 65535
IL_0280: stfld System.UInt16 Cell::m_pulseGroup
IL_0285: Label16
IL_0285: ldloca.s 12 (ElectricityManager+Cell)
IL_0287: ldc.i4.0
IL_0288: stfld System.Int16 Cell::m_currentCharge
IL_028D: ldarg.0
IL_028E: dup
IL_028F: ldfld System.Int32 ElectricityManager::m_conductiveCells
IL_0294: ldc.i4.1
IL_0295: add
IL_0296: stfld System.Int32 ElectricityManager::m_conductiveCells
IL_029B: br => Label17
IL_02A0: Label13
IL_02A0: ldloca.s 12 (ElectricityManager+Cell)
IL_02A2: ldc.i4 65535
IL_02A7: stfld System.UInt16 Cell::m_pulseGroup
IL_02AC: ldloca.s 12 (ElectricityManager+Cell)
IL_02AE: ldfld System.Byte Cell::m_conductivity
IL_02B3: ldc.i4.s 64
IL_02B5: blt => Label18
IL_02BA: ldarg.0
IL_02BB: dup
IL_02BC: ldfld System.Int32 ElectricityManager::m_conductiveCells
IL_02C1: ldc.i4.1
IL_02C2: add
IL_02C3: stfld System.Int32 ElectricityManager::m_conductiveCells
IL_02C8: Label17
IL_02C8: Label18
IL_02C8: ldloca.s 12 (ElectricityManager+Cell)
IL_02CA: ldfld System.Boolean Cell::m_tmpElectrified
IL_02CF: ldloca.s 12 (ElectricityManager+Cell)
IL_02D1: ldfld System.Boolean Cell::m_electrified
IL_02D6: beq => Label19
IL_02DB: ldloca.s 12 (ElectricityManager+Cell)
IL_02DD: ldloca.s 12 (ElectricityManager+Cell)
IL_02DF: ldfld System.Boolean Cell::m_tmpElectrified
IL_02E4: stfld System.Boolean Cell::m_electrified
IL_02E9: Label19
IL_02E9: ldloca.s 12 (ElectricityManager+Cell)
IL_02EB: ldloca.s 12 (ElectricityManager+Cell)
IL_02ED: ldfld System.UInt16 Cell::m_pulseGroup
IL_02F2: ldc.i4 65535
IL_02F7: ceq
IL_02F9: ldc.i4.0
IL_02FA: ceq
IL_02FC: stfld System.Boolean Cell::m_tmpElectrified
IL_0301: ldarg.0
IL_0302: ldfld Cell[] ElectricityManager::m_electricityGrid
IL_0307: ldloc.s 10 (System.Int32)
IL_0309: ldelema ElectricityManager+Cell
IL_030E: ldloc.s 12 (ElectricityManager+Cell)
IL_0310: stobj ElectricityManager+Cell
IL_0315: ldloc.s 10 (System.Int32)
IL_0317: ldc.i4.1
IL_0318: add
IL_0319: stloc.s 10 (System.Int32)
IL_031B: ldloc.s 11 (System.Int32)
IL_031D: ldc.i4.1
IL_031E: add
IL_031F: stloc.s 11 (System.Int32)
IL_0321: Label12
IL_0321: ldloc.s 11 (System.Int32)
IL_0323: ldc.i4 256
IL_0328: blt => Label20
IL_032D: ldloc.s 9 (System.Int32)
IL_032F: ldc.i4.1
IL_0330: add
IL_0331: stloc.s 9 (System.Int32)
IL_0333: Label11
IL_0333: ldloc.s 9 (System.Int32)
IL_0335: ldloc.s 8 (System.Int32)
IL_0337: ble => Label21
IL_033C: br => Label22
IL_0341: Label2
IL_0341: ldloc.1
IL_0342: ldc.i4.s 127
IL_0344: sub
IL_0345: ldarg.0
IL_0346: ldfld System.Int32 ElectricityManager::m_conductiveCells
IL_034B: mul
IL_034C: ldc.i4.7
IL_034D: shr
IL_034E: stloc.s 16 (System.Int32)
IL_0350: ldloc.1
IL_0351: ldc.i4 255
IL_0356: bne.un => Label23
IL_035B: ldc.i4 1000000000
IL_0360: stloc.s 16 (System.Int32)
IL_0362: Label23
IL_0362: br => Label24
IL_0367: Label54
IL_0367: ldarg.0
IL_0368: ldc.i4.0
IL_0369: stfld System.Boolean ElectricityManager::m_canContinue
IL_036E: ldarg.0
IL_036F: ldfld System.Int32 ElectricityManager::m_pulseUnitEnd
IL_0374: stloc.s 17 (System.Int32)
IL_0376: br => Label25
IL_037B: Label52
IL_037B: ldarg.0
IL_037C: ldfld PulseUnit[] ElectricityManager::m_pulseUnits
IL_0381: ldarg.0
IL_0382: ldfld System.Int32 ElectricityManager::m_pulseUnitStart
IL_0387: ldelema ElectricityManager+PulseUnit
IL_038C: ldobj ElectricityManager+PulseUnit
IL_0391: stloc.s 18 (ElectricityManager+PulseUnit)
IL_0393: ldarg.0
IL_0394: dup
IL_0395: ldfld System.Int32 ElectricityManager::m_pulseUnitStart
IL_039A: ldc.i4.1
IL_039B: add
IL_039C: dup
IL_039D: stloc.s 15 (System.Int32)
IL_039F: stfld System.Int32 ElectricityManager::m_pulseUnitStart
IL_03A4: ldloc.s 15 (System.Int32)
IL_03A6: ldarg.0
IL_03A7: ldfld PulseUnit[] ElectricityManager::m_pulseUnits
IL_03AC: ldlen
IL_03AD: conv.i4
IL_03AE: bne.un => Label26
IL_03B3: ldarg.0
IL_03B4: ldc.i4.0
IL_03B5: stfld System.Int32 ElectricityManager::m_pulseUnitStart
IL_03BA: Label26
IL_03BA: ldloca.s 18 (ElectricityManager+PulseUnit)
IL_03BC: ldarg.0
IL_03BD: ldloca.s 18 (ElectricityManager+PulseUnit)
IL_03BF: ldfld System.UInt16 PulseUnit::m_group
IL_03C4: call System.UInt16 ElectricityManager::GetRootGroup(System.UInt16
group)
IL_03C9: stfld System.UInt16 PulseUnit::m_group
IL_03CE: ldarg.0
IL_03CF: ldfld PulseGroup[] ElectricityManager::m_pulseGroups
IL_03D4: ldloca.s 18 (ElectricityManager+PulseUnit)
IL_03D6: ldfld System.UInt16 PulseUnit::m_group
IL_03DB: ldelema ElectricityManager+PulseGroup
IL_03E0: ldfld System.UInt32 PulseGroup::m_curCharge
IL_03E5: stloc.s 19 (System.UInt32)
IL_03E7: ldloca.s 18 (ElectricityManager+PulseUnit)
IL_03E9: ldfld System.UInt16 PulseUnit::m_node
IL_03EE: brtrue => Label27
IL_03F3: ldloca.s 18 (ElectricityManager+PulseUnit)
IL_03F5: ldfld System.Byte PulseUnit::m_z
IL_03FA: ldc.i4 256
IL_03FF: mul
IL_0400: ldloca.s 18 (ElectricityManager+PulseUnit)
IL_0402: ldfld System.Byte PulseUnit::m_x
IL_0407: add
IL_0408: stloc.s 20 (System.Int32)
IL_040A: ldarg.0
IL_040B: ldfld Cell[] ElectricityManager::m_electricityGrid
IL_0410: ldloc.s 20 (System.Int32)
IL_0412: ldelema ElectricityManager+Cell
IL_0417: ldobj ElectricityManager+Cell
IL_041C: stloc.s 21 (ElectricityManager+Cell)
IL_041E: ldloca.s 21 (ElectricityManager+Cell)
IL_0420: ldfld System.Byte Cell::m_conductivity
IL_0425: brfalse => Label28
IL_042A: ldloca.s 21 (ElectricityManager+Cell)
IL_042C: ldfld System.Boolean Cell::m_tmpElectrified
IL_0431: brtrue => Label29
IL_0436: ldloc.s 19 (System.UInt32)
IL_0438: brfalse => Label30
IL_043D: ldloca.s 21 (ElectricityManager+Cell)
IL_043F: ldfld System.Int16 Cell::m_currentCharge
IL_0444: neg
IL_0445: ldc.i4.0
IL_0446: ldloc.s 19 (System.UInt32)
IL_0448: call static System.Int32 UnityEngine.Mathf::Clamp(System.Int32
value, System.Int32 min, System.Int32 max)
IL_044D: stloc.s 22 (System.Int32)
IL_044F: ldloc.s 19 (System.UInt32)
IL_0451: ldloc.s 22 (System.Int32)
IL_0453: sub
IL_0454: stloc.s 19 (System.UInt32)
IL_0456: ldloca.s 21 (ElectricityManager+Cell)
IL_0458: dup
IL_0459: ldfld System.Int16 Cell::m_currentCharge
IL_045E: ldloc.s 22 (System.Int32)
IL_0460: conv.i2
IL_0461: add
IL_0462: conv.i2
IL_0463: stfld System.Int16 Cell::m_currentCharge
IL_0468: ldloca.s 21 (ElectricityManager+Cell)
IL_046A: ldfld System.Int16 Cell::m_currentCharge
IL_046F: brtrue => Label31
IL_0474: ldloca.s 21 (ElectricityManager+Cell)
IL_0476: ldc.i4.1
IL_0477: stfld System.Boolean Cell::m_tmpElectrified
IL_047C: Label31
IL_047C: ldarg.0
IL_047D: ldfld Cell[] ElectricityManager::m_electricityGrid
IL_0482: ldloc.s 20 (System.Int32)
IL_0484: ldelema ElectricityManager+Cell
IL_0489: ldloc.s 21 (ElectricityManager+Cell)
IL_048B: stobj ElectricityManager+Cell
IL_0490: ldarg.0
IL_0491: ldfld PulseGroup[] ElectricityManager::m_pulseGroups
IL_0496: ldloca.s 18 (ElectricityManager+PulseUnit)
IL_0498: ldfld System.UInt16 PulseUnit::m_group
IL_049D: ldelema ElectricityManager+PulseGroup
IL_04A2: ldloc.s 19 (System.UInt32)
IL_04A4: stfld System.UInt32 PulseGroup::m_curCharge
IL_04A9: Label28
IL_04A9: Label29
IL_04A9: Label30
IL_04A9: ldloc.s 19 (System.UInt32)
IL_04AB: brfalse => Label32
IL_04B0: ldloca.s 21 (ElectricityManager+Cell)
IL_04B2: ldfld System.Byte Cell::m_conductivity
IL_04B7: ldc.i4.s 64
IL_04B9: blt => Label33
IL_04BE: ldc.i4.1
IL_04BF: br => Label34
IL_04C4: Label33
IL_04C4: ldc.i4.s 64
IL_04C6: Label34
IL_04C6: stloc.s 23 (System.Int32)
IL_04C8: ldarg.0
IL_04C9: dup
IL_04CA: ldfld System.Int32 ElectricityManager::m_processedCells
IL_04CF: ldc.i4.1
IL_04D0: add
IL_04D1: stfld System.Int32 ElectricityManager::m_processedCells
IL_04D6: ldloca.s 18 (ElectricityManager+PulseUnit)
IL_04D8: ldfld System.Byte PulseUnit::m_z
IL_04DD: ldc.i4.0
IL_04DE: ble => Label35
IL_04E3: ldarg.0
IL_04E4: ldarg.0
IL_04E5: ldfld Cell[] ElectricityManager::m_electricityGrid
IL_04EA: ldloc.s 20 (System.Int32)
IL_04EC: ldc.i4 256
IL_04F1: sub
IL_04F2: ldelema ElectricityManager+Cell
IL_04F7: ldloca.s 18 (ElectricityManager+PulseUnit)
IL_04F9: ldfld System.UInt16 PulseUnit::m_group
IL_04FE: ldloca.s 18 (ElectricityManager+PulseUnit)
IL_0500: ldfld System.Byte PulseUnit::m_x
IL_0505: ldloca.s 18 (ElectricityManager+PulseUnit)
IL_0507: ldfld System.Byte PulseUnit::m_z
IL_050C: ldc.i4.1
IL_050D: sub
IL_050E: ldloc.s 23 (System.Int32)
IL_0510: call System.Void ElectricityManager::ConductToCell(Cell& cell,
System.UInt16 group, System.Int32 x, System.Int32 z, System.Int32 limit)
IL_0515: Label35
IL_0515: ldloca.s 18 (ElectricityManager+PulseUnit)
IL_0517: ldfld System.Byte PulseUnit::m_x
IL_051C: ldc.i4.0
IL_051D: ble => Label36
IL_0522: ldarg.0
IL_0523: ldarg.0
IL_0524: ldfld Cell[] ElectricityManager::m_electricityGrid
IL_0529: ldloc.s 20 (System.Int32)
IL_052B: ldc.i4.1
IL_052C: sub
IL_052D: ldelema ElectricityManager+Cell
IL_0532: ldloca.s 18 (ElectricityManager+PulseUnit)
IL_0534: ldfld System.UInt16 PulseUnit::m_group
IL_0539: ldloca.s 18 (ElectricityManager+PulseUnit)
IL_053B: ldfld System.Byte PulseUnit::m_x
IL_0540: ldc.i4.1
IL_0541: sub
IL_0542: ldloca.s 18 (ElectricityManager+PulseUnit)
IL_0544: ldfld System.Byte PulseUnit::m_z
IL_0549: ldloc.s 23 (System.Int32)
IL_054B: call System.Void ElectricityManager::ConductToCell(Cell& cell,
System.UInt16 group, System.Int32 x, System.Int32 z, System.Int32 limit)
IL_0550: Label36
IL_0550: ldloca.s 18 (ElectricityManager+PulseUnit)
IL_0552: ldfld System.Byte PulseUnit::m_z
IL_0557: ldc.i4 255
IL_055C: bge => Label37
IL_0561: ldarg.0
IL_0562: ldarg.0
IL_0563: ldfld Cell[] ElectricityManager::m_electricityGrid
IL_0568: ldloc.s 20 (System.Int32)
IL_056A: ldc.i4 256
IL_056F: add
IL_0570: ldelema ElectricityManager+Cell
IL_0575: ldloca.s 18 (ElectricityManager+PulseUnit)
IL_0577: ldfld System.UInt16 PulseUnit::m_group
IL_057C: ldloca.s 18 (ElectricityManager+PulseUnit)
IL_057E: ldfld System.Byte PulseUnit::m_x
IL_0583: ldloca.s 18 (ElectricityManager+PulseUnit)
IL_0585: ldfld System.Byte PulseUnit::m_z
IL_058A: ldc.i4.1
IL_058B: add
IL_058C: ldloc.s 23 (System.Int32)
IL_058E: call System.Void ElectricityManager::ConductToCell(Cell& cell,
System.UInt16 group, System.Int32 x, System.Int32 z, System.Int32 limit)
IL_0593: Label37
IL_0593: ldloca.s 18 (ElectricityManager+PulseUnit)
IL_0595: ldfld System.Byte PulseUnit::m_x
IL_059A: ldc.i4 255
IL_059F: bge => Label38
IL_05A4: ldarg.0
IL_05A5: ldarg.0
IL_05A6: ldfld Cell[] ElectricityManager::m_electricityGrid
IL_05AB: ldloc.s 20 (System.Int32)
IL_05AD: ldc.i4.1
IL_05AE: add
IL_05AF: ldelema ElectricityManager+Cell
IL_05B4: ldloca.s 18 (ElectricityManager+PulseUnit)
IL_05B6: ldfld System.UInt16 PulseUnit::m_group
IL_05BB: ldloca.s 18 (ElectricityManager+PulseUnit)
IL_05BD: ldfld System.Byte PulseUnit::m_x
IL_05C2: ldc.i4.1
IL_05C3: add
IL_05C4: ldloca.s 18 (ElectricityManager+PulseUnit)
IL_05C6: ldfld System.Byte PulseUnit::m_z
IL_05CB: ldloc.s 23 (System.Int32)
IL_05CD: call System.Void ElectricityManager::ConductToCell(Cell& cell,
System.UInt16 group, System.Int32 x, System.Int32 z, System.Int32 limit)
IL_05D2: Label38
IL_05D2: ldarg.0
IL_05D3: ldloca.s 18 (ElectricityManager+PulseUnit)
IL_05D5: ldfld System.UInt16 PulseUnit::m_group
IL_05DA: ldloca.s 18 (ElectricityManager+PulseUnit)
IL_05DC: ldfld System.Byte PulseUnit::m_x
IL_05E1: ldloca.s 18 (ElectricityManager+PulseUnit)
IL_05E3: ldfld System.Byte PulseUnit::m_z
IL_05E8: call System.Void ElectricityManager::ConductToNodes(System.UInt16
group, System.Int32 cellX, System.Int32 cellZ)
IL_05ED: br => Label39
IL_05F2: Label32
IL_05F2: ldarg.0
IL_05F3: ldfld PulseUnit[] ElectricityManager::m_pulseUnits
IL_05F8: ldarg.0
IL_05F9: ldfld System.Int32 ElectricityManager::m_pulseUnitEnd
IL_05FE: ldelema ElectricityManager+PulseUnit
IL_0603: ldloc.s 18 (ElectricityManager+PulseUnit)
IL_0605: stobj ElectricityManager+PulseUnit
IL_060A: ldarg.0
IL_060B: dup
IL_060C: ldfld System.Int32 ElectricityManager::m_pulseUnitEnd
IL_0611: ldc.i4.1
IL_0612: add
IL_0613: dup
IL_0614: stloc.s 15 (System.Int32)
IL_0616: stfld System.Int32 ElectricityManager::m_pulseUnitEnd
IL_061B: ldloc.s 15 (System.Int32)
IL_061D: ldarg.0
IL_061E: ldfld PulseUnit[] ElectricityManager::m_pulseUnits
IL_0623: ldlen
IL_0624: conv.i4
IL_0625: bne.un => Label40
IL_062A: ldarg.0
IL_062B: ldc.i4.0
IL_062C: stfld System.Int32 ElectricityManager::m_pulseUnitEnd
IL_0631: Label39
IL_0631: Label40
IL_0631: br => Label41
IL_0636: Label27
IL_0636: ldloc.s 19 (System.UInt32)
IL_0638: brfalse => Label42
IL_063D: ldarg.0
IL_063E: dup
IL_063F: ldfld System.Int32 ElectricityManager::m_processedCells
IL_0644: ldc.i4.1
IL_0645: add
IL_0646: stfld System.Int32 ElectricityManager::m_processedCells
IL_064B: call static NetManager
ColossalFramework.Singleton`1<NetManager>::get_instance()
IL_0650: ldfld Array16`1<NetNode> NetManager::m_nodes
IL_0655: ldfld NetNode[] Array16`1<NetNode>::m_buffer
IL_065A: ldloca.s 18 (ElectricityManager+PulseUnit)
IL_065C: ldfld System.UInt16 PulseUnit::m_node
IL_0661: ldelema NetNode
IL_0666: ldobj NetNode
IL_066B: stloc.s 24 (NetNode)
IL_066D: ldloca.s 24 (NetNode)
IL_066F: ldfld Flags NetNode::m_flags
IL_0674: brfalse => Label43
IL_0679: ldloca.s 24 (NetNode)
IL_067B: ldfld System.UInt32 NetNode::m_buildIndex
IL_0680: ldloc.0
IL_0681: ldc.i4.s -128
IL_0683: and
IL_0684: bge.un => Label44
IL_0689: ldarg.0
IL_068A: ldloca.s 18 (ElectricityManager+PulseUnit)
IL_068C: ldfld System.UInt16 PulseUnit::m_group
IL_0691: ldloca.s 24 (NetNode)
IL_0693: ldflda UnityEngine.Vector3 NetNode::m_position
IL_0698: ldfld System.Single UnityEngine.Vector3::x
IL_069D: ldloca.s 24 (NetNode)
IL_069F: ldflda UnityEngine.Vector3 NetNode::m_position
IL_06A4: ldfld System.Single UnityEngine.Vector3::z
IL_06A9: call System.Void ElectricityManager::ConductToCells(System.UInt16
group, System.Single worldX, System.Single worldZ)
IL_06AE: ldc.i4.0
IL_06AF: stloc.s 25 (System.Int32)
IL_06B1: br => Label45
IL_06B6: Label49
IL_06B6: ldloca.s 24 (NetNode)
IL_06B8: ldloc.s 25 (System.Int32)
IL_06BA: call System.UInt16 NetNode::GetSegment(System.Int32 index)
IL_06BF: stloc.s 26 (System.UInt16)
IL_06C1: ldloc.s 26 (System.UInt16)
IL_06C3: brfalse => Label46
IL_06C8: call static NetManager
ColossalFramework.Singleton`1<NetManager>::get_instance()
IL_06CD: ldfld Array16`1<NetSegment> NetManager::m_segments
IL_06D2: ldfld NetSegment[] Array16`1<NetSegment>::m_buffer
IL_06D7: ldloc.s 26 (System.UInt16)
IL_06D9: ldelema NetSegment
IL_06DE: ldfld System.UInt16 NetSegment::m_startNode
IL_06E3: stloc.s 27 (System.UInt16)
IL_06E5: call static NetManager
ColossalFramework.Singleton`1<NetManager>::get_instance()
IL_06EA: ldfld Array16`1<NetSegment> NetManager::m_segments
IL_06EF: ldfld NetSegment[] Array16`1<NetSegment>::m_buffer
IL_06F4: ldloc.s 26 (System.UInt16)
IL_06F6: ldelema NetSegment
IL_06FB: ldfld System.UInt16 NetSegment::m_endNode
IL_0700: stloc.s 28 (System.UInt16)
IL_0702: ldloc.s 27 (System.UInt16)
IL_0704: ldloca.s 18 (ElectricityManager+PulseUnit)
IL_0706: ldfld System.UInt16 PulseUnit::m_node
IL_070B: bne.un => Label47
IL_0710: ldloc.s 28 (System.UInt16)
IL_0712: br => Label48
IL_0717: Label47
IL_0717: ldloc.s 27 (System.UInt16)
IL_0719: Label48
IL_0719: stloc.s 29 (System.UInt16)
IL_071B: ldarg.0
IL_071C: ldloc.s 29 (System.UInt16)
IL_071E: call static NetManager
ColossalFramework.Singleton`1<NetManager>::get_instance()
IL_0723: ldfld Array16`1<NetNode> NetManager::m_nodes
IL_0728: ldfld NetNode[] Array16`1<NetNode>::m_buffer
IL_072D: ldloc.s 29 (System.UInt16)
IL_072F: ldelema NetNode
IL_0734: ldloca.s 18 (ElectricityManager+PulseUnit)
IL_0736: ldfld System.UInt16 PulseUnit::m_group
IL_073B: ldc.r4 -100000
IL_0740: ldc.r4 -100000
IL_0745: ldc.r4 100000
IL_074A: ldc.r4 100000
IL_074F: call System.Void ElectricityManager::ConductToNode(System.UInt16
nodeIndex, NetNode& node, System.UInt16 group, System.Single minX, System.Single
minZ, System.Single maxX, System.Single maxZ)
IL_0754: Label46
IL_0754: ldloc.s 25 (System.Int32)
IL_0756: ldc.i4.1
IL_0757: add
IL_0758: stloc.s 25 (System.Int32)
IL_075A: Label45
IL_075A: ldloc.s 25 (System.Int32)
IL_075C: ldc.i4.8
IL_075D: blt => Label49
IL_0762: Label43
IL_0762: Label44
IL_0762: br => Label50
IL_0767: Label42
IL_0767: ldarg.0
IL_0768: ldfld PulseUnit[] ElectricityManager::m_pulseUnits
IL_076D: ldarg.0
IL_076E: ldfld System.Int32 ElectricityManager::m_pulseUnitEnd
IL_0773: ldelema ElectricityManager+PulseUnit
IL_0778: ldloc.s 18 (ElectricityManager+PulseUnit)
IL_077A: stobj ElectricityManager+PulseUnit
IL_077F: ldarg.0
IL_0780: dup
IL_0781: ldfld System.Int32 ElectricityManager::m_pulseUnitEnd
IL_0786: ldc.i4.1
IL_0787: add
IL_0788: dup
IL_0789: stloc.s 15 (System.Int32)
IL_078B: stfld System.Int32 ElectricityManager::m_pulseUnitEnd
IL_0790: ldloc.s 15 (System.Int32)
IL_0792: ldarg.0
IL_0793: ldfld PulseUnit[] ElectricityManager::m_pulseUnits
IL_0798: ldlen
IL_0799: conv.i4
IL_079A: bne.un => Label51
IL_079F: ldarg.0
IL_07A0: ldc.i4.0
IL_07A1: stfld System.Int32 ElectricityManager::m_pulseUnitEnd
IL_07A6: Label25
IL_07A6: Label41
IL_07A6: Label50
IL_07A6: Label51
IL_07A6: ldarg.0
IL_07A7: ldfld System.Int32 ElectricityManager::m_pulse

You might also like