Skip to content

Instantly share code, notes, and snippets.

@Mailaender
Last active December 26, 2015 00:58
Show Gist options
  • Select an option

  • Save Mailaender/7067645 to your computer and use it in GitHub Desktop.

Select an option

Save Mailaender/7067645 to your computer and use it in GitHub Desktop.
Disassembly of Josephs CLI vs OpenRA official
This file has been truncated, but you can view the full file.
.assembly extern mscorlib
{
.ver 2:0:0:0
.publickeytoken = (B7 7A 5C 56 19 34 E0 89 ) // .z\V.4..
}
.assembly extern System.Core
{
.ver 3:5:0:0
.publickeytoken = (B7 7A 5C 56 19 34 E0 89 ) // .z\V.4..
}
.assembly extern OpenRA.FileFormats
{
.ver 0:0:0:0
}
.assembly extern System.Drawing
{
.ver 2:0:0:0
.publickeytoken = (B0 3F 5F 7F 11 D5 0A 3A ) // .?_....:
}
.assembly extern System
{
.ver 2:0:0:0
.publickeytoken = (B7 7A 5C 56 19 34 E0 89 ) // .z\V.4..
}
.assembly extern Mono.Nat
{
.ver 1:0:0:0
}
.assembly extern Tao.OpenAl
{
.ver 1:1:0:1
.publickeytoken = (A7 57 9D DA 88 82 83 11 ) // .W......
}
.assembly extern System.Windows.Forms
{
.ver 2:0:0:0
.publickeytoken = (B7 7A 5C 56 19 34 E0 89 ) // .z\V.4..
}
.assembly extern SharpFont
{
.ver 2:5:0:1
.publickeytoken = (48 AD D4 C4 83 07 1C DF ) // H.......
}
.assembly 'OpenRA.Game'
{
.custom instance void class [System.Core]System.Runtime.CompilerServices.ExtensionAttribute::'.ctor'() = (01 00 00 00 ) // ....
.custom instance void class [mscorlib]System.Runtime.CompilerServices.RuntimeCompatibilityAttribute::'.ctor'() = (
01 00 01 00 54 02 16 57 72 61 70 4E 6F 6E 45 78 // ....T..WrapNonEx
63 65 70 74 69 6F 6E 54 68 72 6F 77 73 01 ) // ceptionThrows.
.permissionset reqmin = (
3C 00 50 00 65 00 72 00 6D 00 69 00 73 00 73 00 // <.P.e.r.m.i.s.s.
69 00 6F 00 6E 00 53 00 65 00 74 00 20 00 63 00 // i.o.n.S.e.t. .c.
6C 00 61 00 73 00 73 00 3D 00 22 00 53 00 79 00 // l.a.s.s.=.".S.y.
73 00 74 00 65 00 6D 00 2E 00 53 00 65 00 63 00 // s.t.e.m...S.e.c.
75 00 72 00 69 00 74 00 79 00 2E 00 50 00 65 00 // u.r.i.t.y...P.e.
72 00 6D 00 69 00 73 00 73 00 69 00 6F 00 6E 00 // r.m.i.s.s.i.o.n.
53 00 65 00 74 00 22 00 0A 00 76 00 65 00 72 00 // S.e.t."...v.e.r.
73 00 69 00 6F 00 6E 00 3D 00 22 00 31 00 22 00 // s.i.o.n.=.".1.".
3E 00 0A 00 3C 00 49 00 50 00 65 00 72 00 6D 00 // >...<.I.P.e.r.m.
69 00 73 00 73 00 69 00 6F 00 6E 00 20 00 63 00 // i.s.s.i.o.n. .c.
6C 00 61 00 73 00 73 00 3D 00 22 00 53 00 79 00 // l.a.s.s.=.".S.y.
73 00 74 00 65 00 6D 00 2E 00 53 00 65 00 63 00 // s.t.e.m...S.e.c.
75 00 72 00 69 00 74 00 79 00 2E 00 50 00 65 00 // u.r.i.t.y...P.e.
72 00 6D 00 69 00 73 00 73 00 69 00 6F 00 6E 00 // r.m.i.s.s.i.o.n.
73 00 2E 00 53 00 65 00 63 00 75 00 72 00 69 00 // s...S.e.c.u.r.i.
74 00 79 00 50 00 65 00 72 00 6D 00 69 00 73 00 // t.y.P.e.r.m.i.s.
73 00 69 00 6F 00 6E 00 2C 00 20 00 6D 00 73 00 // s.i.o.n.,. .m.s.
63 00 6F 00 72 00 6C 00 69 00 62 00 2C 00 20 00 // c.o.r.l.i.b.,. .
56 00 65 00 72 00 73 00 69 00 6F 00 6E 00 3D 00 // V.e.r.s.i.o.n.=.
32 00 2E 00 30 00 2E 00 30 00 2E 00 30 00 2C 00 // 2...0...0...0.,.
20 00 43 00 75 00 6C 00 74 00 75 00 72 00 65 00 // .C.u.l.t.u.r.e.
3D 00 6E 00 65 00 75 00 74 00 72 00 61 00 6C 00 // =.n.e.u.t.r.a.l.
2C 00 20 00 50 00 75 00 62 00 6C 00 69 00 63 00 // ,. .P.u.b.l.i.c.
4B 00 65 00 79 00 54 00 6F 00 6B 00 65 00 6E 00 // K.e.y.T.o.k.e.n.
3D 00 62 00 37 00 37 00 61 00 35 00 63 00 35 00 // =.b.7.7.a.5.c.5.
36 00 31 00 39 00 33 00 34 00 65 00 30 00 38 00 // 6.1.9.3.4.e.0.8.
39 00 22 00 0A 00 76 00 65 00 72 00 73 00 69 00 // 9."...v.e.r.s.i.
6F 00 6E 00 3D 00 22 00 31 00 22 00 0A 00 46 00 // o.n.=.".1."...F.
6C 00 61 00 67 00 73 00 3D 00 22 00 53 00 6B 00 // l.a.g.s.=.".S.k.
69 00 70 00 56 00 65 00 72 00 69 00 66 00 69 00 // i.p.V.e.r.i.f.i.
63 00 61 00 74 00 69 00 6F 00 6E 00 22 00 2F 00 // c.a.t.i.o.n."./.
3E 00 0A 00 3C 00 2F 00 50 00 65 00 72 00 6D 00 // >...<./.P.e.r.m.
69 00 73 00 73 00 69 00 6F 00 6E 00 53 00 65 00 // i.s.s.i.o.n.S.e.
74 00 3E 00 0A 00 ) // t.>...
.hash algorithm 0x00008004
.ver 0:0:0:0
}
.module OpenRA.Game.exe // GUID = {21866C67-48C2-4985-9320-C7D882F85D3C}
.custom instance void class [mscorlib]System.Security.UnverifiableCodeAttribute::'.ctor'() = (01 00 00 00 ) // ....
.namespace OpenRA.Network
{
.class public auto ansi beforefieldinit OrderManager
extends [mscorlib]System.Object
implements [mscorlib]System.IDisposable {
.field private initonly class OpenRA.Network.SyncReport syncReport
.field private initonly class OpenRA.Network.FrameData frameData
.field public class OpenRA.Network.Session LobbyInfo
.field public class OpenRA.World world
.field public initonly string Host
.field public initonly int32 Port
.field public initonly string Password
.field public string ServerError
.field public bool AuthenticationFailed
.field public int32 LocalFrameNumber
.field public int32 FramesAhead
.field public int32 LastTickTime
.field public initonly int32 SyncHeaderSize
.field private class [mscorlib]System.Collections.Generic.List`1<class OpenRA.Order> localOrders
.field private class [mscorlib]System.Collections.Generic.Dictionary`2<int32,unsigned int8[]> syncForFrame
.field private static initonly class [mscorlib]System.Collections.Generic.IEnumerable`1<class OpenRA.Network.Session/Client> NoClients
.field private bool disposed
.field private int32 '<NetFrameNumber>k__BackingField'
.custom instance void class [mscorlib]System.Runtime.CompilerServices.CompilerGeneratedAttribute::'.ctor'() = (01 00 00 00 ) // ....
.field private class OpenRA.Network.IConnection '<Connection>k__BackingField'
.custom instance void class [mscorlib]System.Runtime.CompilerServices.CompilerGeneratedAttribute::'.ctor'() = (01 00 00 00 ) // ....
.field private static class [System.Core]System.Func`2<class OpenRA.Order,bool> '<>f__am$cache13'
.custom instance void class [mscorlib]System.Runtime.CompilerServices.CompilerGeneratedAttribute::'.ctor'() = (01 00 00 00 ) // ....
.field private static class [System.Core]System.Func`2<class OpenRA.Order,unsigned int8[]> '<>f__am$cache14'
.custom instance void class [mscorlib]System.Runtime.CompilerServices.CompilerGeneratedAttribute::'.ctor'() = (01 00 00 00 ) // ....
.field private static class [mscorlib]System.Predicate`1<class OpenRA.Order> '<>f__am$cache15'
.custom instance void class [mscorlib]System.Runtime.CompilerServices.CompilerGeneratedAttribute::'.ctor'() = (01 00 00 00 ) // ....
.field private static class [System.Core]System.Func`2<class OpenRA.Order,unsigned int8[]> '<>f__am$cache16'
.custom instance void class [mscorlib]System.Runtime.CompilerServices.CompilerGeneratedAttribute::'.ctor'() = (01 00 00 00 ) // ....
// method line 1
.method public hidebysig specialname rtspecialname
instance default void '.ctor' (string host, int32 port, string password, class OpenRA.Network.IConnection conn) cil managed
{
// Method begins at RVA 0x20ec
// Code size 162 (0xa2)
.maxstack 8
IL_0000: ldarg.0
IL_0001: newobj instance void class OpenRA.Network.FrameData::'.ctor'()
IL_0006: stfld class OpenRA.Network.FrameData OpenRA.Network.OrderManager::frameData
IL_000b: ldarg.0
IL_000c: ldsfld class OpenRA.GameRules.Settings OpenRA.Game::Settings
IL_0011: ldfld class OpenRA.GameRules.GameSettings OpenRA.GameRules.Settings::Game
IL_0016: ldfld string[] OpenRA.GameRules.GameSettings::Mods
IL_001b: newobj instance void class OpenRA.Network.Session::'.ctor'(string[])
IL_0020: stfld class OpenRA.Network.Session OpenRA.Network.OrderManager::LobbyInfo
IL_0025: ldarg.0
IL_0026: ldstr ""
IL_002b: stfld string OpenRA.Network.OrderManager::Password
IL_0030: ldarg.0
IL_0031: ldstr "Server is not responding"
IL_0036: stfld string OpenRA.Network.OrderManager::ServerError
IL_003b: ldarg.0
IL_003c: ldc.i4.0
IL_003d: stfld bool OpenRA.Network.OrderManager::AuthenticationFailed
IL_0042: ldarg.0
IL_0043: ldc.i4.0
IL_0044: stfld int32 OpenRA.Network.OrderManager::FramesAhead
IL_0049: ldarg.0
IL_004a: call int32 class [mscorlib]System.Environment::get_TickCount()
IL_004f: stfld int32 OpenRA.Network.OrderManager::LastTickTime
IL_0054: ldarg.0
IL_0055: ldc.i4.s 0x09
IL_0057: stfld int32 OpenRA.Network.OrderManager::SyncHeaderSize
IL_005c: ldarg.0
IL_005d: newobj instance void class [mscorlib]System.Collections.Generic.List`1<class OpenRA.Order>::'.ctor'()
IL_0062: stfld class [mscorlib]System.Collections.Generic.List`1<class OpenRA.Order> OpenRA.Network.OrderManager::localOrders
IL_0067: ldarg.0
IL_0068: newobj instance void class [mscorlib]System.Collections.Generic.Dictionary`2<int32, unsigned int8[]>::'.ctor'()
IL_006d: stfld class [mscorlib]System.Collections.Generic.Dictionary`2<int32,unsigned int8[]> OpenRA.Network.OrderManager::syncForFrame
IL_0072: ldarg.0
IL_0073: call instance void object::'.ctor'()
IL_0078: ldarg.0
IL_0079: ldarg.1
IL_007a: stfld string OpenRA.Network.OrderManager::Host
IL_007f: ldarg.0
IL_0080: ldarg.2
IL_0081: stfld int32 OpenRA.Network.OrderManager::Port
IL_0086: ldarg.0
IL_0087: ldarg.3
IL_0088: stfld string OpenRA.Network.OrderManager::Password
IL_008d: ldarg.0
IL_008e: ldarg.s 4
IL_0090: call instance void class OpenRA.Network.OrderManager::set_Connection(class OpenRA.Network.IConnection)
IL_0095: ldarg.0
IL_0096: ldarg.0
IL_0097: newobj instance void class OpenRA.Network.SyncReport::'.ctor'(class OpenRA.Network.OrderManager)
IL_009c: stfld class OpenRA.Network.SyncReport OpenRA.Network.OrderManager::syncReport
IL_00a1: ret
} // end of method OrderManager::.ctor
// method line 2
.method private static specialname rtspecialname
default void '.cctor' () cil managed
{
// Method begins at RVA 0x219c
// Code size 12 (0xc)
.maxstack 8
IL_0000: ldc.i4.0
IL_0001: newarr OpenRA.Network.Session/Client
IL_0006: stsfld class [mscorlib]System.Collections.Generic.IEnumerable`1<class OpenRA.Network.Session/Client> OpenRA.Network.OrderManager::NoClients
IL_000b: ret
} // end of method OrderManager::.cctor
// method line 3
.method public hidebysig specialname
instance default class OpenRA.Network.Session/Client get_LocalClient () cil managed
{
// Method begins at RVA 0x21ac
// Code size 23 (0x17)
.maxstack 8
IL_0000: ldarg.0
IL_0001: ldfld class OpenRA.Network.Session OpenRA.Network.OrderManager::LobbyInfo
IL_0006: ldarg.0
IL_0007: call instance class OpenRA.Network.IConnection class OpenRA.Network.OrderManager::get_Connection()
IL_000c: callvirt instance int32 class OpenRA.Network.IConnection::get_LocalClientId()
IL_0011: callvirt instance class OpenRA.Network.Session/Client class OpenRA.Network.Session::ClientWithIndex(int32)
IL_0016: ret
} // end of method OrderManager::get_LocalClient
// method line 4
.method public hidebysig specialname
instance default int32 get_NetFrameNumber () cil managed
{
.custom instance void class [mscorlib]System.Runtime.CompilerServices.CompilerGeneratedAttribute::'.ctor'() = (01 00 00 00 ) // ....
// Method begins at RVA 0x21c4
// Code size 7 (0x7)
.maxstack 8
IL_0000: ldarg.0
IL_0001: ldfld int32 OpenRA.Network.OrderManager::'<NetFrameNumber>k__BackingField'
IL_0006: ret
} // end of method OrderManager::get_NetFrameNumber
// method line 5
.method private hidebysig specialname
instance default void set_NetFrameNumber (int32 'value') cil managed
{
.custom instance void class [mscorlib]System.Runtime.CompilerServices.CompilerGeneratedAttribute::'.ctor'() = (01 00 00 00 ) // ....
// Method begins at RVA 0x21cc
// Code size 8 (0x8)
.maxstack 8
IL_0000: ldarg.0
IL_0001: ldarg.1
IL_0002: stfld int32 OpenRA.Network.OrderManager::'<NetFrameNumber>k__BackingField'
IL_0007: ret
} // end of method OrderManager::set_NetFrameNumber
// method line 6
.method public hidebysig specialname
instance default bool get_GameStarted () cil managed
{
// Method begins at RVA 0x21d8
// Code size 13 (0xd)
.maxstack 8
IL_0000: ldarg.0
IL_0001: call instance int32 class OpenRA.Network.OrderManager::get_NetFrameNumber()
IL_0006: ldc.i4.0
IL_0007: ceq
IL_0009: ldc.i4.0
IL_000a: ceq
IL_000c: ret
} // end of method OrderManager::get_GameStarted
// method line 7
.method public hidebysig specialname
instance default class OpenRA.Network.IConnection get_Connection () cil managed
{
.custom instance void class [mscorlib]System.Runtime.CompilerServices.CompilerGeneratedAttribute::'.ctor'() = (01 00 00 00 ) // ....
// Method begins at RVA 0x21e8
// Code size 7 (0x7)
.maxstack 8
IL_0000: ldarg.0
IL_0001: ldfld class OpenRA.Network.IConnection OpenRA.Network.OrderManager::'<Connection>k__BackingField'
IL_0006: ret
} // end of method OrderManager::get_Connection
// method line 8
.method private hidebysig specialname
instance default void set_Connection (class OpenRA.Network.IConnection 'value') cil managed
{
.custom instance void class [mscorlib]System.Runtime.CompilerServices.CompilerGeneratedAttribute::'.ctor'() = (01 00 00 00 ) // ....
// Method begins at RVA 0x21f0
// Code size 8 (0x8)
.maxstack 8
IL_0000: ldarg.0
IL_0001: ldarg.1
IL_0002: stfld class OpenRA.Network.IConnection OpenRA.Network.OrderManager::'<Connection>k__BackingField'
IL_0007: ret
} // end of method OrderManager::set_Connection
// method line 9
.method public hidebysig
instance default void StartGame () cil managed
{
// Method begins at RVA 0x21fc
// Code size 65 (0x41)
.maxstack 13
.locals init (
int32 V_0)
IL_0000: ldarg.0
IL_0001: call instance bool class OpenRA.Network.OrderManager::get_GameStarted()
IL_0006: brfalse IL_000c
IL_000b: ret
IL_000c: ldarg.0
IL_000d: ldc.i4.1
IL_000e: call instance void class OpenRA.Network.OrderManager::set_NetFrameNumber(int32)
IL_0013: ldarg.0
IL_0014: call instance int32 class OpenRA.Network.OrderManager::get_NetFrameNumber()
IL_0019: stloc.0
IL_001a: br IL_0034
IL_001f: ldarg.0
IL_0020: call instance class OpenRA.Network.IConnection class OpenRA.Network.OrderManager::get_Connection()
IL_0025: ldloc.0
IL_0026: newobj instance void class [mscorlib]System.Collections.Generic.List`1<unsigned int8[]>::'.ctor'()
IL_002b: callvirt instance void class OpenRA.Network.IConnection::Send(int32, class [mscorlib]System.Collections.Generic.List`1<unsigned int8[]>)
IL_0030: ldloc.0
IL_0031: ldc.i4.1
IL_0032: add
IL_0033: stloc.0
IL_0034: ldloc.0
IL_0035: ldarg.0
IL_0036: ldfld int32 OpenRA.Network.OrderManager::FramesAhead
IL_003b: ble IL_001f
IL_0040: ret
} // end of method OrderManager::StartGame
// method line 10
.method public hidebysig
instance default void IssueOrders (class OpenRA.Order[] orders) cil managed
{
// Method begins at RVA 0x224c
// Code size 34 (0x22)
.maxstack 5
.locals init (
class OpenRA.Order[] V_0,
int32 V_1,
class OpenRA.Order V_2)
IL_0000: ldarg.1
IL_0001: stloc.0
IL_0002: ldc.i4.0
IL_0003: stloc.1
IL_0004: br IL_0018
IL_0009: ldloc.0
IL_000a: ldloc.1
IL_000b: ldelem.ref
IL_000c: stloc.2
IL_000d: ldarg.0
IL_000e: ldloc.2
IL_000f: call instance void class OpenRA.Network.OrderManager::IssueOrder(class OpenRA.Order)
IL_0014: ldloc.1
IL_0015: ldc.i4.1
IL_0016: add
IL_0017: stloc.1
IL_0018: ldloc.1
IL_0019: ldloc.0
IL_001a: ldlen
IL_001b: conv.i4
IL_001c: blt IL_0009
IL_0021: ret
} // end of method OrderManager::IssueOrders
// method line 11
.method public hidebysig
instance default void IssueOrder (class OpenRA.Order order) cil managed
{
// Method begins at RVA 0x227c
// Code size 13 (0xd)
.maxstack 8
IL_0000: ldarg.0
IL_0001: ldfld class [mscorlib]System.Collections.Generic.List`1<class OpenRA.Order> OpenRA.Network.OrderManager::localOrders
IL_0006: ldarg.1
IL_0007: callvirt instance void class [mscorlib]System.Collections.Generic.List`1<class OpenRA.Order>::Add(!0)
IL_000c: ret
} // end of method OrderManager::IssueOrder
// method line 12
.method public hidebysig
instance default void TickImmediate () cil managed
{
// Method begins at RVA 0x228c
// Code size 344 (0x158)
.maxstack 37
.locals init (
class OpenRA.Network.OrderManager/'<TickImmediate>c__AnonStorey13' V_0,
class [mscorlib]System.Collections.Generic.List`1<class OpenRA.Order> V_1,
valuetype [mscorlib]System.Collections.Generic.List`1/Enumerator<valuetype [OpenRA.FileFormats]OpenRA.FileFormats.Pair`2<int32, unsigned int8[]>> V_2,
valuetype [OpenRA.FileFormats]OpenRA.FileFormats.Pair`2<int32, unsigned int8[]> V_3,
valuetype [mscorlib]System.Collections.Generic.List`1/Enumerator<class OpenRA.Order> V_4,
class OpenRA.Order V_5)
IL_0000: newobj instance void class OpenRA.Network.OrderManager/'<TickImmediate>c__AnonStorey13'::'.ctor'()
IL_0005: stloc.0
IL_0006: ldloc.0
IL_0007: ldarg.0
IL_0008: stfld class OpenRA.Network.OrderManager OpenRA.Network.OrderManager/'<TickImmediate>c__AnonStorey13'::'<>f__this'
IL_000d: ldarg.0
IL_000e: ldfld class [mscorlib]System.Collections.Generic.List`1<class OpenRA.Order> OpenRA.Network.OrderManager::localOrders
IL_0013: ldsfld class [System.Core]System.Func`2<class OpenRA.Order,bool> OpenRA.Network.OrderManager::'<>f__am$cache13'
IL_0018: brtrue.s IL_002b
IL_001a: ldnull
IL_001b: ldftn bool class OpenRA.Network.OrderManager::'<TickImmediate>m__1'(class OpenRA.Order)
IL_0021: newobj instance void class [System.Core]System.Func`2<class OpenRA.Order, bool>::'.ctor'(object, native int)
IL_0026: stsfld class [System.Core]System.Func`2<class OpenRA.Order,bool> OpenRA.Network.OrderManager::'<>f__am$cache13'
IL_002b: ldsfld class [System.Core]System.Func`2<class OpenRA.Order,bool> OpenRA.Network.OrderManager::'<>f__am$cache13'
IL_0030: call class [mscorlib]System.Collections.Generic.IEnumerable`1<!!0> class [System.Core]System.Linq.Enumerable::Where<class OpenRA.Order> (class [mscorlib]System.Collections.Generic.IEnumerable`1<!!0>, class [System.Core]System.Func`2<!!0,bool>)
IL_0035: call class [mscorlib]System.Collections.Generic.List`1<!!0> class [System.Core]System.Linq.Enumerable::ToList<class OpenRA.Order> (class [mscorlib]System.Collections.Generic.IEnumerable`1<!!0>)
IL_003a: stloc.1
IL_003b: ldloc.1
IL_003c: callvirt instance int32 class [mscorlib]System.Collections.Generic.List`1<class OpenRA.Order>::get_Count()
IL_0041: brfalse IL_0079
IL_0046: ldarg.0
IL_0047: call instance class OpenRA.Network.IConnection class OpenRA.Network.OrderManager::get_Connection()
IL_004c: ldloc.1
IL_004d: ldsfld class [System.Core]System.Func`2<class OpenRA.Order,unsigned int8[]> OpenRA.Network.OrderManager::'<>f__am$cache14'
IL_0052: brtrue.s IL_0065
IL_0054: ldnull
IL_0055: ldftn unsigned int8[] class OpenRA.Network.OrderManager::'<TickImmediate>m__2'(class OpenRA.Order)
IL_005b: newobj instance void class [System.Core]System.Func`2<class OpenRA.Order, unsigned int8[]>::'.ctor'(object, native int)
IL_0060: stsfld class [System.Core]System.Func`2<class OpenRA.Order,unsigned int8[]> OpenRA.Network.OrderManager::'<>f__am$cache14'
IL_0065: ldsfld class [System.Core]System.Func`2<class OpenRA.Order,unsigned int8[]> OpenRA.Network.OrderManager::'<>f__am$cache14'
IL_006a: call class [mscorlib]System.Collections.Generic.IEnumerable`1<!!1> class [System.Core]System.Linq.Enumerable::Select<class OpenRA.Order, unsigned int8[]> (class [mscorlib]System.Collections.Generic.IEnumerable`1<!!0>, class [System.Core]System.Func`2<!!0,!!1>)
IL_006f: call class [mscorlib]System.Collections.Generic.List`1<!!0> class [System.Core]System.Linq.Enumerable::ToList<unsigned int8[]> (class [mscorlib]System.Collections.Generic.IEnumerable`1<!!0>)
IL_0074: callvirt instance void class OpenRA.Network.IConnection::SendImmediate(class [mscorlib]System.Collections.Generic.List`1<unsigned int8[]>)
IL_0079: ldarg.0
IL_007a: ldfld class [mscorlib]System.Collections.Generic.List`1<class OpenRA.Order> OpenRA.Network.OrderManager::localOrders
IL_007f: ldsfld class [mscorlib]System.Predicate`1<class OpenRA.Order> OpenRA.Network.OrderManager::'<>f__am$cache15'
IL_0084: brtrue.s IL_0097
IL_0086: ldnull
IL_0087: ldftn bool class OpenRA.Network.OrderManager::'<TickImmediate>m__3'(class OpenRA.Order)
IL_008d: newobj instance void class [mscorlib]System.Predicate`1<class OpenRA.Order>::'.ctor'(object, native int)
IL_0092: stsfld class [mscorlib]System.Predicate`1<class OpenRA.Order> OpenRA.Network.OrderManager::'<>f__am$cache15'
IL_0097: ldsfld class [mscorlib]System.Predicate`1<class OpenRA.Order> OpenRA.Network.OrderManager::'<>f__am$cache15'
IL_009c: callvirt instance int32 class [mscorlib]System.Collections.Generic.List`1<class OpenRA.Order>::RemoveAll(class [mscorlib]System.Predicate`1<!0>)
IL_00a1: pop
IL_00a2: ldloc.0
IL_00a3: newobj instance void class [mscorlib]System.Collections.Generic.List`1<valuetype [OpenRA.FileFormats]OpenRA.FileFormats.Pair`2<int32, unsigned int8[]>>::'.ctor'()
IL_00a8: stfld class [mscorlib]System.Collections.Generic.List`1<valuetype [OpenRA.FileFormats]OpenRA.FileFormats.Pair`2<int32,unsigned int8[]>> OpenRA.Network.OrderManager/'<TickImmediate>c__AnonStorey13'::immediatePackets
IL_00ad: ldarg.0
IL_00ae: call instance class OpenRA.Network.IConnection class OpenRA.Network.OrderManager::get_Connection()
IL_00b3: ldloc.0
IL_00b4: ldftn instance void class OpenRA.Network.OrderManager/'<TickImmediate>c__AnonStorey13'::'<>m__4'(int32, unsigned int8[])
IL_00ba: newobj instance void class [System.Core]System.Action`2<int32, unsigned int8[]>::'.ctor'(object, native int)
IL_00bf: callvirt instance void class OpenRA.Network.IConnection::Receive(class [System.Core]System.Action`2<int32,unsigned int8[]>)
IL_00c4: ldloc.0
IL_00c5: ldfld class [mscorlib]System.Collections.Generic.List`1<valuetype [OpenRA.FileFormats]OpenRA.FileFormats.Pair`2<int32,unsigned int8[]>> OpenRA.Network.OrderManager/'<TickImmediate>c__AnonStorey13'::immediatePackets
IL_00ca: callvirt instance valuetype [mscorlib]System.Collections.Generic.List`1/Enumerator<!0> class [mscorlib]System.Collections.Generic.List`1<valuetype [OpenRA.FileFormats]OpenRA.FileFormats.Pair`2<int32, unsigned int8[]>>::GetEnumerator()
IL_00cf: stloc.2
.try { // 1
IL_00d0: br IL_0138
IL_00d5: ldloca.s 2
IL_00d7: call instance !0 valuetype [mscorlib]System.Collections.Generic.List`1/Enumerator<valuetype [OpenRA.FileFormats]OpenRA.FileFormats.Pair`2<int32, unsigned int8[]>>::get_Current()
IL_00dc: stloc.3
IL_00dd: ldloca.s 3
IL_00df: ldfld !1 valuetype [OpenRA.FileFormats]OpenRA.FileFormats.Pair`2<int32,unsigned int8[]>::Second
IL_00e4: ldarg.0
IL_00e5: ldfld class OpenRA.World OpenRA.Network.OrderManager::world
IL_00ea: call class [mscorlib]System.Collections.Generic.List`1<class OpenRA.Order> class OpenRA.Network.OrderIO::ToOrderList(unsigned int8[], class OpenRA.World)
IL_00ef: callvirt instance valuetype [mscorlib]System.Collections.Generic.List`1/Enumerator<!0> class [mscorlib]System.Collections.Generic.List`1<class OpenRA.Order>::GetEnumerator()
IL_00f4: stloc.s 4
.try { // 0
IL_00f6: br IL_0119
IL_00fb: ldloca.s 4
IL_00fd: call instance !0 valuetype [mscorlib]System.Collections.Generic.List`1/Enumerator<class OpenRA.Order>::get_Current()
IL_0102: stloc.s 5
IL_0104: ldarg.0
IL_0105: ldarg.0
IL_0106: ldfld class OpenRA.World OpenRA.Network.OrderManager::world
IL_010b: ldloca.s 3
IL_010d: ldfld !0 valuetype [OpenRA.FileFormats]OpenRA.FileFormats.Pair`2<int32,unsigned int8[]>::First
IL_0112: ldloc.s 5
IL_0114: call void class OpenRA.Network.UnitOrders::ProcessOrder(class OpenRA.Network.OrderManager, class OpenRA.World, int32, class OpenRA.Order)
IL_0119: ldloca.s 4
IL_011b: call instance bool valuetype [mscorlib]System.Collections.Generic.List`1/Enumerator<class OpenRA.Order>::MoveNext()
IL_0120: brtrue IL_00fb
IL_0125: leave IL_0138
} // end .try 0
finally { // 0
IL_012a: ldloca.s 4
IL_012c: constrained. valuetype [mscorlib]System.Collections.Generic.List`1/Enumerator<class OpenRA.Order>
IL_0132: callvirt instance void class [mscorlib]System.IDisposable::Dispose()
IL_0137: endfinally
} // end handler 0
IL_0138: ldloca.s 2
IL_013a: call instance bool valuetype [mscorlib]System.Collections.Generic.List`1/Enumerator<valuetype [OpenRA.FileFormats]OpenRA.FileFormats.Pair`2<int32, unsigned int8[]>>::MoveNext()
IL_013f: brtrue IL_00d5
IL_0144: leave IL_0157
} // end .try 1
finally { // 1
IL_0149: ldloca.s 2
IL_014b: constrained. valuetype [mscorlib]System.Collections.Generic.List`1/Enumerator<valuetype [OpenRA.FileFormats]OpenRA.FileFormats.Pair`2<int32,unsigned int8[]>>
IL_0151: callvirt instance void class [mscorlib]System.IDisposable::Dispose()
IL_0156: endfinally
} // end handler 1
IL_0157: ret
} // end of method OrderManager::TickImmediate
// method line 13
.method private hidebysig
instance default void CheckSync (unsigned int8[] packet) cil managed
{
// Method begins at RVA 0x2424
// Code size 170 (0xaa)
.maxstack 17
.locals init (
int32 V_0,
unsigned int8[] V_1,
int32 V_2)
IL_0000: ldarg.1
IL_0001: ldc.i4.0
IL_0002: call int32 class [mscorlib]System.BitConverter::ToInt32(unsigned int8[], int32)
IL_0007: stloc.0
IL_0008: ldarg.0
IL_0009: ldfld class [mscorlib]System.Collections.Generic.Dictionary`2<int32,unsigned int8[]> OpenRA.Network.OrderManager::syncForFrame
IL_000e: ldloc.0
IL_000f: ldloca.s 1
IL_0011: callvirt instance bool class [mscorlib]System.Collections.Generic.Dictionary`2<int32, unsigned int8[]>::TryGetValue(!0, [out] !1&)
IL_0016: brfalse IL_009c
IL_001b: ldarg.1
IL_001c: ldlen
IL_001d: conv.i4
IL_001e: ldloc.1
IL_001f: ldlen
IL_0020: conv.i4
IL_0021: beq IL_003e
IL_0026: ldarg.0
IL_0027: ldfld class OpenRA.Network.SyncReport OpenRA.Network.OrderManager::syncReport
IL_002c: ldloc.0
IL_002d: callvirt instance void class OpenRA.Network.SyncReport::DumpSyncReport(int32)
IL_0032: ldarg.0
IL_0033: ldloc.0
IL_0034: call instance void class OpenRA.Network.OrderManager::OutOfSync(int32)
IL_0039: br IL_0097
IL_003e: ldc.i4.0
IL_003f: stloc.2
IL_0040: br IL_008e
IL_0045: ldarg.1
IL_0046: ldloc.2
IL_0047: ldelem.u1
IL_0048: ldloc.1
IL_0049: ldloc.2
IL_004a: ldelem.u1
IL_004b: beq IL_008a
IL_0050: ldarg.0
IL_0051: ldfld class OpenRA.Network.SyncReport OpenRA.Network.OrderManager::syncReport
IL_0056: ldloc.0
IL_0057: callvirt instance void class OpenRA.Network.SyncReport::DumpSyncReport(int32)
IL_005c: ldloc.2
IL_005d: ldarg.0
IL_005e: ldfld int32 OpenRA.Network.OrderManager::SyncHeaderSize
IL_0063: bge IL_0079
IL_0068: ldarg.0
IL_0069: ldloc.0
IL_006a: ldstr "Tick"
IL_006f: call instance void class OpenRA.Network.OrderManager::OutOfSync(int32, string)
IL_0074: br IL_008a
IL_0079: ldarg.0
IL_007a: ldloc.0
IL_007b: ldloc.2
IL_007c: ldarg.0
IL_007d: ldfld int32 OpenRA.Network.OrderManager::SyncHeaderSize
IL_0082: sub
IL_0083: ldc.i4.4
IL_0084: div
IL_0085: call instance void class OpenRA.Network.OrderManager::OutOfSync(int32, int32)
IL_008a: ldloc.2
IL_008b: ldc.i4.1
IL_008c: add
IL_008d: stloc.2
IL_008e: ldloc.2
IL_008f: ldarg.1
IL_0090: ldlen
IL_0091: conv.i4
IL_0092: blt IL_0045
IL_0097: br IL_00a9
IL_009c: ldarg.0
IL_009d: ldfld class [mscorlib]System.Collections.Generic.Dictionary`2<int32,unsigned int8[]> OpenRA.Network.OrderManager::syncForFrame
IL_00a2: ldloc.0
IL_00a3: ldarg.1
IL_00a4: callvirt instance void class [mscorlib]System.Collections.Generic.Dictionary`2<int32, unsigned int8[]>::Add(!0, !1)
IL_00a9: ret
} // end of method OrderManager::CheckSync
// method line 14
.method private hidebysig
instance default void OutOfSync (int32 frame, int32 index) cil managed
{
// Method begins at RVA 0x24dc
// Code size 92 (0x5c)
.maxstack 13
.locals init (
class [mscorlib]System.Collections.Generic.IEnumerable`1<valuetype OpenRA.Network.FrameData/ClientOrder> V_0,
valuetype OpenRA.Network.FrameData/ClientOrder V_1)
IL_0000: ldarg.0
IL_0001: ldfld class OpenRA.Network.FrameData OpenRA.Network.OrderManager::frameData
IL_0006: ldarg.0
IL_0007: ldfld class OpenRA.World OpenRA.Network.OrderManager::world
IL_000c: ldarg.1
IL_000d: callvirt instance class [mscorlib]System.Collections.Generic.IEnumerable`1<valuetype OpenRA.Network.FrameData/ClientOrder> class OpenRA.Network.FrameData::OrdersForFrame(class OpenRA.World, int32)
IL_0012: stloc.0
IL_0013: ldarg.2
IL_0014: ldloc.0
IL_0015: call int32 class [System.Core]System.Linq.Enumerable::Count<valuetype OpenRA.Network.FrameData/ClientOrder> (class [mscorlib]System.Collections.Generic.IEnumerable`1<!!0>)
IL_001a: blt IL_0026
IL_001f: ldarg.0
IL_0020: ldarg.1
IL_0021: call instance void class OpenRA.Network.OrderManager::OutOfSync(int32)
IL_0026: ldstr "Out of sync in frame {0}.\n {1}\n Compare syncreport.log with other players."
IL_002b: ldc.i4.2
IL_002c: newarr [mscorlib]System.Object
IL_0031: dup
IL_0032: ldc.i4.0
IL_0033: ldarg.1
IL_0034: box [mscorlib]System.Int32
IL_0039: stelem.ref
IL_003a: dup
IL_003b: ldc.i4.1
IL_003c: ldloc.0
IL_003d: ldarg.2
IL_003e: call !!0 class [System.Core]System.Linq.Enumerable::ElementAt<valuetype OpenRA.Network.FrameData/ClientOrder> (class [mscorlib]System.Collections.Generic.IEnumerable`1<!!0>, int32)
IL_0043: stloc.1
IL_0044: ldloca.s 1
IL_0046: ldfld class OpenRA.Order OpenRA.Network.FrameData/ClientOrder::Order
IL_004b: callvirt instance string object::ToString()
IL_0050: stelem.ref
IL_0051: call string class [OpenRA.FileFormats]OpenRA.Exts::F(string, object[])
IL_0056: newobj instance void class [mscorlib]System.InvalidOperationException::'.ctor'(string)
IL_005b: throw
} // end of method OrderManager::OutOfSync
// method line 15
.method private hidebysig
instance default void OutOfSync (int32 frame) cil managed
{
// Method begins at RVA 0x2544
// Code size 31 (0x1f)
.maxstack 8
IL_0000: ldstr "Out of sync in frame {0}.\n Compare syncreport.log with other players."
IL_0005: ldc.i4.1
IL_0006: newarr [mscorlib]System.Object
IL_000b: dup
IL_000c: ldc.i4.0
IL_000d: ldarg.1
IL_000e: box [mscorlib]System.Int32
IL_0013: stelem.ref
IL_0014: call string class [OpenRA.FileFormats]OpenRA.Exts::F(string, object[])
IL_0019: newobj instance void class [mscorlib]System.InvalidOperationException::'.ctor'(string)
IL_001e: throw
} // end of method OrderManager::OutOfSync
// method line 16
.method private hidebysig
instance default void OutOfSync (int32 frame, string blame) cil managed
{
// Method begins at RVA 0x2564
// Code size 35 (0x23)
.maxstack 6
IL_0000: ldstr "Out of sync in frame {0}: Blame {1}.\n Compare syncreport.log with other players."
IL_0005: ldc.i4.2
IL_0006: newarr [mscorlib]System.Object
IL_000b: dup
IL_000c: ldc.i4.0
IL_000d: ldarg.1
IL_000e: box [mscorlib]System.Int32
IL_0013: stelem.ref
IL_0014: dup
IL_0015: ldc.i4.1
IL_0016: ldarg.2
IL_0017: stelem.ref
IL_0018: call string class [OpenRA.FileFormats]OpenRA.Exts::F(string, object[])
IL_001d: newobj instance void class [mscorlib]System.InvalidOperationException::'.ctor'(string)
IL_0022: throw
} // end of method OrderManager::OutOfSync
// method line 17
.method public hidebysig specialname
instance default bool get_IsReadyForNextFrame () cil managed
{
// Method begins at RVA 0x2594
// Code size 33 (0x21)
.maxstack 8
IL_0000: ldarg.0
IL_0001: call instance int32 class OpenRA.Network.OrderManager::get_NetFrameNumber()
IL_0006: ldc.i4.1
IL_0007: blt IL_001f
IL_000c: ldarg.0
IL_000d: ldfld class OpenRA.Network.FrameData OpenRA.Network.OrderManager::frameData
IL_0012: ldarg.0
IL_0013: call instance int32 class OpenRA.Network.OrderManager::get_NetFrameNumber()
IL_0018: callvirt instance bool class OpenRA.Network.FrameData::IsReadyForFrame(int32)
IL_001d: br.s IL_0020
IL_001f: ldc.i4.0
IL_0020: ret
} // end of method OrderManager::get_IsReadyForNextFrame
// method line 18
.method public hidebysig specialname
instance default class [mscorlib]System.Collections.Generic.IEnumerable`1<class OpenRA.Network.Session/Client> get_GetClientsNotReadyForNextFrame () cil managed
{
// Method begins at RVA 0x25c4
// Code size 59 (0x3b)
.maxstack 11
.locals init (
class [mscorlib]System.Collections.Generic.IEnumerable`1<class OpenRA.Network.Session/Client> V_0)
IL_0000: ldarg.0
IL_0001: call instance int32 class OpenRA.Network.OrderManager::get_NetFrameNumber()
IL_0006: ldc.i4.1
IL_0007: blt IL_0035
IL_000c: ldarg.0
IL_000d: ldfld class OpenRA.Network.FrameData OpenRA.Network.OrderManager::frameData
IL_0012: ldarg.0
IL_0013: call instance int32 class OpenRA.Network.OrderManager::get_NetFrameNumber()
IL_0018: callvirt instance class [mscorlib]System.Collections.Generic.IEnumerable`1<int32> class OpenRA.Network.FrameData::ClientsNotReadyForFrame(int32)
IL_001d: ldarg.0
IL_001e: ldftn instance class OpenRA.Network.Session/Client class OpenRA.Network.OrderManager::'<get_GetClientsNotReadyForNextFrame>m__0'(int32)
IL_0024: newobj instance void class [System.Core]System.Func`2<int32, class OpenRA.Network.Session/Client>::'.ctor'(object, native int)
IL_0029: call class [mscorlib]System.Collections.Generic.IEnumerable`1<!!1> class [System.Core]System.Linq.Enumerable::Select<int32, class OpenRA.Network.Session/Client> (class [mscorlib]System.Collections.Generic.IEnumerable`1<!!0>, class [System.Core]System.Func`2<!!0,!!1>)
IL_002e: stloc.0
IL_002f: ldloc.0
IL_0030: br IL_003a
IL_0035: ldsfld class [mscorlib]System.Collections.Generic.IEnumerable`1<class OpenRA.Network.Session/Client> OpenRA.Network.OrderManager::NoClients
IL_003a: ret
} // end of method OrderManager::get_GetClientsNotReadyForNextFrame
// method line 19
.method public hidebysig
instance default void Tick () cil managed
{
// Method begins at RVA 0x260c
// Code size 284 (0x11c)
.maxstack 49
.locals init (
class [mscorlib]System.Collections.Generic.List`1<int32> V_0,
class [mscorlib]System.Collections.Generic.IEnumerator`1<valuetype OpenRA.Network.FrameData/ClientOrder> V_1,
valuetype OpenRA.Network.FrameData/ClientOrder V_2,
unsigned int8[] V_3)
IL_0000: ldarg.0
IL_0001: call instance bool class OpenRA.Network.OrderManager::get_IsReadyForNextFrame()
IL_0006: brtrue IL_0011
IL_000b: newobj instance void class [mscorlib]System.InvalidOperationException::'.ctor'()
IL_0010: throw
IL_0011: ldarg.0
IL_0012: call instance class OpenRA.Network.IConnection class OpenRA.Network.OrderManager::get_Connection()
IL_0017: ldarg.0
IL_0018: call instance int32 class OpenRA.Network.OrderManager::get_NetFrameNumber()
IL_001d: ldarg.0
IL_001e: ldfld int32 OpenRA.Network.OrderManager::FramesAhead
IL_0023: add
IL_0024: ldarg.0
IL_0025: ldfld class [mscorlib]System.Collections.Generic.List`1<class OpenRA.Order> OpenRA.Network.OrderManager::localOrders
IL_002a: ldsfld class [System.Core]System.Func`2<class OpenRA.Order,unsigned int8[]> OpenRA.Network.OrderManager::'<>f__am$cache16'
IL_002f: brtrue.s IL_0042
IL_0031: ldnull
IL_0032: ldftn unsigned int8[] class OpenRA.Network.OrderManager::'<Tick>m__5'(class OpenRA.Order)
IL_0038: newobj instance void class [System.Core]System.Func`2<class OpenRA.Order, unsigned int8[]>::'.ctor'(object, native int)
IL_003d: stsfld class [System.Core]System.Func`2<class OpenRA.Order,unsigned int8[]> OpenRA.Network.OrderManager::'<>f__am$cache16'
IL_0042: ldsfld class [System.Core]System.Func`2<class OpenRA.Order,unsigned int8[]> OpenRA.Network.OrderManager::'<>f__am$cache16'
IL_0047: call class [mscorlib]System.Collections.Generic.IEnumerable`1<!!1> class [System.Core]System.Linq.Enumerable::Select<class OpenRA.Order, unsigned int8[]> (class [mscorlib]System.Collections.Generic.IEnumerable`1<!!0>, class [System.Core]System.Func`2<!!0,!!1>)
IL_004c: call class [mscorlib]System.Collections.Generic.List`1<!!0> class [System.Core]System.Linq.Enumerable::ToList<unsigned int8[]> (class [mscorlib]System.Collections.Generic.IEnumerable`1<!!0>)
IL_0051: callvirt instance void class OpenRA.Network.IConnection::Send(int32, class [mscorlib]System.Collections.Generic.List`1<unsigned int8[]>)
IL_0056: ldarg.0
IL_0057: ldfld class [mscorlib]System.Collections.Generic.List`1<class OpenRA.Order> OpenRA.Network.OrderManager::localOrders
IL_005c: callvirt instance void class [mscorlib]System.Collections.Generic.List`1<class OpenRA.Order>::Clear()
IL_0061: newobj instance void class [mscorlib]System.Collections.Generic.List`1<int32>::'.ctor'()
IL_0066: stloc.0
IL_0067: ldloc.0
IL_0068: ldarg.0
IL_0069: ldfld class OpenRA.World OpenRA.Network.OrderManager::world
IL_006e: callvirt instance int32 class OpenRA.World::SyncHash()
IL_0073: callvirt instance void class [mscorlib]System.Collections.Generic.List`1<int32>::Add(!0)
IL_0078: ldarg.0
IL_0079: ldfld class OpenRA.Network.FrameData OpenRA.Network.OrderManager::frameData
IL_007e: ldarg.0
IL_007f: ldfld class OpenRA.World OpenRA.Network.OrderManager::world
IL_0084: ldarg.0
IL_0085: call instance int32 class OpenRA.Network.OrderManager::get_NetFrameNumber()
IL_008a: callvirt instance class [mscorlib]System.Collections.Generic.IEnumerable`1<valuetype OpenRA.Network.FrameData/ClientOrder> class OpenRA.Network.FrameData::OrdersForFrame(class OpenRA.World, int32)
IL_008f: callvirt instance class [mscorlib]System.Collections.Generic.IEnumerator`1<!0> class [mscorlib]System.Collections.Generic.IEnumerable`1<valuetype OpenRA.Network.FrameData/ClientOrder>::GetEnumerator()
IL_0094: stloc.1
.try { // 0
IL_0095: br IL_00cc
IL_009a: ldloc.1
IL_009b: callvirt instance !0 class [mscorlib]System.Collections.Generic.IEnumerator`1<valuetype OpenRA.Network.FrameData/ClientOrder>::get_Current()
IL_00a0: stloc.2
IL_00a1: ldarg.0
IL_00a2: ldarg.0
IL_00a3: ldfld class OpenRA.World OpenRA.Network.OrderManager::world
IL_00a8: ldloca.s 2
IL_00aa: ldfld int32 OpenRA.Network.FrameData/ClientOrder::Client
IL_00af: ldloca.s 2
IL_00b1: ldfld class OpenRA.Order OpenRA.Network.FrameData/ClientOrder::Order
IL_00b6: call void class OpenRA.Network.UnitOrders::ProcessOrder(class OpenRA.Network.OrderManager, class OpenRA.World, int32, class OpenRA.Order)
IL_00bb: ldloc.0
IL_00bc: ldarg.0
IL_00bd: ldfld class OpenRA.World OpenRA.Network.OrderManager::world
IL_00c2: callvirt instance int32 class OpenRA.World::SyncHash()
IL_00c7: callvirt instance void class [mscorlib]System.Collections.Generic.List`1<int32>::Add(!0)
IL_00cc: ldloc.1
IL_00cd: callvirt instance bool class [mscorlib]System.Collections.IEnumerator::MoveNext()
IL_00d2: brtrue IL_009a
IL_00d7: leave IL_00e9
} // end .try 0
finally { // 0
IL_00dc: ldloc.1
IL_00dd: brfalse IL_00e8
IL_00e2: ldloc.1
IL_00e3: callvirt instance void class [mscorlib]System.IDisposable::Dispose()
IL_00e8: endfinally
} // end handler 0
IL_00e9: ldloc.0
IL_00ea: call unsigned int8[] class OpenRA.Network.OrderIO::SerializeSync(class [mscorlib]System.Collections.Generic.List`1<int32>)
IL_00ef: stloc.3
IL_00f0: ldarg.0
IL_00f1: call instance class OpenRA.Network.IConnection class OpenRA.Network.OrderManager::get_Connection()
IL_00f6: ldarg.0
IL_00f7: call instance int32 class OpenRA.Network.OrderManager::get_NetFrameNumber()
IL_00fc: ldloc.3
IL_00fd: callvirt instance void class OpenRA.Network.IConnection::SendSync(int32, unsigned int8[])
IL_0102: ldarg.0
IL_0103: ldfld class OpenRA.Network.SyncReport OpenRA.Network.OrderManager::syncReport
IL_0108: callvirt instance void class OpenRA.Network.SyncReport::UpdateSyncReport()
IL_010d: ldarg.0
IL_010e: dup
IL_010f: call instance int32 class OpenRA.Network.OrderManager::get_NetFrameNumber()
IL_0114: ldc.i4.1
IL_0115: add
IL_0116: call instance void class OpenRA.Network.OrderManager::set_NetFrameNumber(int32)
IL_011b: ret
} // end of method OrderManager::Tick
// method line 20
.method public final virtual hidebysig newslot
instance default void Dispose () cil managed
{
// Method begins at RVA 0x2750
// Code size 37 (0x25)
.maxstack 6
IL_0000: ldarg.0
IL_0001: ldfld bool OpenRA.Network.OrderManager::disposed
IL_0006: brfalse IL_000c
IL_000b: ret
IL_000c: ldarg.0
IL_000d: call instance class OpenRA.Network.IConnection class OpenRA.Network.OrderManager::get_Connection()
IL_0012: callvirt instance void class [mscorlib]System.IDisposable::Dispose()
IL_0017: ldarg.0
IL_0018: ldc.i4.1
IL_0019: stfld bool OpenRA.Network.OrderManager::disposed
IL_001e: ldarg.0
IL_001f: call void class [mscorlib]System.GC::SuppressFinalize(object)
IL_0024: ret
} // end of method OrderManager::Dispose
// method line 21
.method family virtual hidebysig
instance default void Finalize () cil managed
{
// Method begins at RVA 0x2784
// Code size 19 (0x13)
.maxstack 4
.try { // 0
IL_0000: ldarg.0
IL_0001: call instance void class OpenRA.Network.OrderManager::Dispose()
IL_0006: leave IL_0012
} // end .try 0
finally { // 0
IL_000b: ldarg.0
IL_000c: call instance void object::Finalize()
IL_0011: endfinally
} // end handler 0
IL_0012: ret
} // end of method OrderManager::Finalize
// method line 22
.method private hidebysig
instance default class OpenRA.Network.Session/Client '<get_GetClientsNotReadyForNextFrame>m__0' (int32 a) cil managed
{
.custom instance void class [mscorlib]System.Runtime.CompilerServices.CompilerGeneratedAttribute::'.ctor'() = (01 00 00 00 ) // ....
// Method begins at RVA 0x27c0
// Code size 13 (0xd)
.maxstack 8
IL_0000: ldarg.0
IL_0001: ldfld class OpenRA.Network.Session OpenRA.Network.OrderManager::LobbyInfo
IL_0006: ldarg.1
IL_0007: callvirt instance class OpenRA.Network.Session/Client class OpenRA.Network.Session::ClientWithIndex(int32)
IL_000c: ret
} // end of method OrderManager::<get_GetClientsNotReadyForNextFrame>m__0
// method line 23
.method private static hidebysig
default bool '<TickImmediate>m__1' (class OpenRA.Order o) cil managed
{
.custom instance void class [mscorlib]System.Runtime.CompilerServices.CompilerGeneratedAttribute::'.ctor'() = (01 00 00 00 ) // ....
// Method begins at RVA 0x27d0
// Code size 7 (0x7)
.maxstack 8
IL_0000: ldarg.0
IL_0001: ldfld bool OpenRA.Order::IsImmediate
IL_0006: ret
} // end of method OrderManager::<TickImmediate>m__1
// method line 24
.method private static hidebysig
default unsigned int8[] '<TickImmediate>m__2' (class OpenRA.Order o) cil managed
{
.custom instance void class [mscorlib]System.Runtime.CompilerServices.CompilerGeneratedAttribute::'.ctor'() = (01 00 00 00 ) // ....
// Method begins at RVA 0x27d8
// Code size 7 (0x7)
.maxstack 8
IL_0000: ldarg.0
IL_0001: callvirt instance unsigned int8[] class OpenRA.Order::Serialize()
IL_0006: ret
} // end of method OrderManager::<TickImmediate>m__2
// method line 25
.method private static hidebysig
default bool '<TickImmediate>m__3' (class OpenRA.Order o) cil managed
{
.custom instance void class [mscorlib]System.Runtime.CompilerServices.CompilerGeneratedAttribute::'.ctor'() = (01 00 00 00 ) // ....
// Method begins at RVA 0x27e0
// Code size 7 (0x7)
.maxstack 8
IL_0000: ldarg.0
IL_0001: ldfld bool OpenRA.Order::IsImmediate
IL_0006: ret
} // end of method OrderManager::<TickImmediate>m__3
// method line 26
.method private static hidebysig
default unsigned int8[] '<Tick>m__5' (class OpenRA.Order o) cil managed
{
.custom instance void class [mscorlib]System.Runtime.CompilerServices.CompilerGeneratedAttribute::'.ctor'() = (01 00 00 00 ) // ....
// Method begins at RVA 0x27e8
// Code size 7 (0x7)
.maxstack 8
IL_0000: ldarg.0
IL_0001: callvirt instance unsigned int8[] class OpenRA.Order::Serialize()
IL_0006: ret
} // end of method OrderManager::<Tick>m__5
.property instance class OpenRA.Network.Session/Client LocalClient ()
{
.get instance default class OpenRA.Network.Session/Client OpenRA.Network.OrderManager::get_LocalClient ()
}
.property instance int32 NetFrameNumber ()
{
.set instance default void OpenRA.Network.OrderManager::set_NetFrameNumber (int32 'value')
.get instance default int32 OpenRA.Network.OrderManager::get_NetFrameNumber ()
}
.property instance bool GameStarted ()
{
.get instance default bool OpenRA.Network.OrderManager::get_GameStarted ()
}
.property instance class OpenRA.Network.IConnection Connection ()
{
.set instance default void OpenRA.Network.OrderManager::set_Connection (class OpenRA.Network.IConnection 'value')
.get instance default class OpenRA.Network.IConnection OpenRA.Network.OrderManager::get_Connection ()
}
.property instance bool IsReadyForNextFrame ()
{
.get instance default bool OpenRA.Network.OrderManager::get_IsReadyForNextFrame ()
}
.property instance class [mscorlib]System.Collections.Generic.IEnumerable`1<class OpenRA.Network.Session/Client> GetClientsNotReadyForNextFrame ()
{
.get instance default class [mscorlib]System.Collections.Generic.IEnumerable`1<class OpenRA.Network.Session/Client> OpenRA.Network.OrderManager::get_GetClientsNotReadyForNextFrame ()
}
.class nested private auto ansi sealed beforefieldinit '<TickImmediate>c__AnonStorey13'
extends [mscorlib]System.Object
{
.custom instance void class [mscorlib]System.Runtime.CompilerServices.CompilerGeneratedAttribute::'.ctor'() = (01 00 00 00 ) // ....
.field assembly class [mscorlib]System.Collections.Generic.List`1<valuetype [OpenRA.FileFormats]OpenRA.FileFormats.Pair`2<int32,unsigned int8[]>> immediatePackets
.field assembly class OpenRA.Network.OrderManager '<>f__this'
// method line 2075
.method public hidebysig specialname rtspecialname
instance default void '.ctor' () cil managed
{
// Method begins at RVA 0x2b410
// Code size 7 (0x7)
.maxstack 8
IL_0000: ldarg.0
IL_0001: call instance void object::'.ctor'()
IL_0006: ret
} // end of method <TickImmediate>c__AnonStorey13::.ctor
// method line 2076
.method assembly hidebysig
instance default void '<>m__4' (int32 clientId, unsigned int8[] packet) cil managed
{
// Method begins at RVA 0x2b418
// Code size 138 (0x8a)
.maxstack 13
.locals init (
int32 V_0)
IL_0000: ldarg.2
IL_0001: ldc.i4.0
IL_0002: call int32 class [mscorlib]System.BitConverter::ToInt32(unsigned int8[], int32)
IL_0007: stloc.0
IL_0008: ldarg.2
IL_0009: ldlen
IL_000a: conv.i4
IL_000b: ldc.i4.5
IL_000c: bne.un IL_0035
IL_0011: ldarg.2
IL_0012: ldc.i4.4
IL_0013: ldelem.u1
IL_0014: ldc.i4 191
IL_0019: bne.un IL_0035
IL_001e: ldarg.0
IL_001f: ldfld class OpenRA.Network.OrderManager OpenRA.Network.OrderManager/'<TickImmediate>c__AnonStorey13'::'<>f__this'
IL_0024: ldfld class OpenRA.Network.FrameData OpenRA.Network.OrderManager::frameData
IL_0029: ldarg.1
IL_002a: ldloc.0
IL_002b: callvirt instance void class OpenRA.Network.FrameData::ClientQuit(int32, int32)
IL_0030: br IL_0089
IL_0035: ldarg.2
IL_0036: ldlen
IL_0037: conv.i4
IL_0038: ldc.i4.5
IL_0039: blt IL_0059
IL_003e: ldarg.2
IL_003f: ldc.i4.4
IL_0040: ldelem.u1
IL_0041: ldc.i4.s 0x65
IL_0043: bne.un IL_0059
IL_0048: ldarg.0
IL_0049: ldfld class OpenRA.Network.OrderManager OpenRA.Network.OrderManager/'<TickImmediate>c__AnonStorey13'::'<>f__this'
IL_004e: ldarg.2
IL_004f: call instance void class OpenRA.Network.OrderManager::CheckSync(unsigned int8[])
IL_0054: br IL_0089
IL_0059: ldloc.0
IL_005a: brtrue IL_0076
IL_005f: ldarg.0
IL_0060: ldfld class [mscorlib]System.Collections.Generic.List`1<valuetype [OpenRA.FileFormats]OpenRA.FileFormats.Pair`2<int32,unsigned int8[]>> OpenRA.Network.OrderManager/'<TickImmediate>c__AnonStorey13'::immediatePackets
IL_0065: ldarg.1
IL_0066: ldarg.2
IL_0067: call valuetype [OpenRA.FileFormats]OpenRA.FileFormats.Pair`2<!!0,!!1> class [OpenRA.FileFormats]OpenRA.FileFormats.Pair::New<int32, unsigned int8[]> (!!0, !!1)
IL_006c: callvirt instance void class [mscorlib]System.Collections.Generic.List`1<valuetype [OpenRA.FileFormats]OpenRA.FileFormats.Pair`2<int32, unsigned int8[]>>::Add(!0)
IL_0071: br IL_0089
IL_0076: ldarg.0
IL_0077: ldfld class OpenRA.Network.OrderManager OpenRA.Network.OrderManager/'<TickImmediate>c__AnonStorey13'::'<>f__this'
IL_007c: ldfld class OpenRA.Network.FrameData OpenRA.Network.OrderManager::frameData
IL_0081: ldarg.1
IL_0082: ldloc.0
IL_0083: ldarg.2
IL_0084: callvirt instance void class OpenRA.Network.FrameData::AddFrameOrders(int32, int32, unsigned int8[])
IL_0089: ret
} // end of method <TickImmediate>c__AnonStorey13::<>m__4
} // end of class <TickImmediate>c__AnonStorey13
} // end of class OpenRA.Network.OrderManager
}
.namespace OpenRA.Network
{
.class private auto ansi abstract sealed beforefieldinit UnitOrders
extends [mscorlib]System.Object
{
.custom instance void class [System.Core]System.Runtime.CompilerServices.ExtensionAttribute::'.ctor'() = (01 00 00 00 ) // ....
.field private static class [mscorlib]System.Collections.Generic.Dictionary`2<string,int32> '<>f__switch$map0'
.custom instance void class [mscorlib]System.Runtime.CompilerServices.CompilerGeneratedAttribute::'.ctor'() = (01 00 00 00 ) // ....
.field private static class [System.Core]System.Func`2<string,string> '<>f__am$cache1'
.custom instance void class [mscorlib]System.Runtime.CompilerServices.CompilerGeneratedAttribute::'.ctor'() = (01 00 00 00 ) // ....
// method line 27
.method private static hidebysig
default class OpenRA.Player FindPlayerByClient (class OpenRA.World world, class OpenRA.Network.Session/Client c) cil managed
{
.custom instance void class [System.Core]System.Runtime.CompilerServices.ExtensionAttribute::'.ctor'() = (01 00 00 00 ) // ....
// Method begins at RVA 0x27f0
// Code size 37 (0x25)
.maxstack 5
.locals init (
class OpenRA.Network.UnitOrders/'<FindPlayerByClient>c__AnonStorey14' V_0)
IL_0000: newobj instance void class OpenRA.Network.UnitOrders/'<FindPlayerByClient>c__AnonStorey14'::'.ctor'()
IL_0005: stloc.0
IL_0006: ldloc.0
IL_0007: ldarg.1
IL_0008: stfld class OpenRA.Network.Session/Client OpenRA.Network.UnitOrders/'<FindPlayerByClient>c__AnonStorey14'::c
IL_000d: ldarg.0
IL_000e: ldfld class [mscorlib]System.Collections.Generic.List`1<class OpenRA.Player> OpenRA.World::Players
IL_0013: ldloc.0
IL_0014: ldftn instance bool class OpenRA.Network.UnitOrders/'<FindPlayerByClient>c__AnonStorey14'::'<>m__6'(class OpenRA.Player)
IL_001a: newobj instance void class [System.Core]System.Func`2<class OpenRA.Player, bool>::'.ctor'(object, native int)
IL_001f: call !!0 class [System.Core]System.Linq.Enumerable::FirstOrDefault<class OpenRA.Player> (class [mscorlib]System.Collections.Generic.IEnumerable`1<!!0>, class [System.Core]System.Func`2<!!0,bool>)
IL_0024: ret
} // end of method UnitOrders::FindPlayerByClient
// method line 28
.method public static hidebysig
default void ProcessOrder (class OpenRA.Network.OrderManager orderManager, class OpenRA.World world, int32 clientId, class OpenRA.Order order) cil managed
{
// Method begins at RVA 0x2824
// Code size 2308 (0x904)
.maxstack 153
.locals init (
class OpenRA.Network.UnitOrders/'<ProcessOrder>c__AnonStorey15' V_0,
string V_1,
class [mscorlib]System.Collections.Generic.Dictionary`2<string, int32> V_2,
int32 V_3,
class OpenRA.Network.Session/Client V_4,
class OpenRA.Player V_5,
string V_6,
class OpenRA.Network.Session/Client V_7,
class OpenRA.Network.Session/Client V_8,
class OpenRA.Player V_9,
string V_10,
class OpenRA.Network.Session/Client V_11,
bool V_12,
string V_13,
class OpenRA.Network.HandshakeRequest V_14,
string[] V_15,
class OpenRA.Network.Session/Client V_16,
class OpenRA.Network.Session/Client V_17,
class OpenRA.Network.HandshakeResponse V_18,
class OpenRA.Network.HandshakeResponse V_19,
class OpenRA.Player V_20,
valuetype OpenRA.Traits.Stance V_21,
class OpenRA.Actor V_22,
class OpenRA.Traits.Health V_23,
class [mscorlib]System.Collections.Generic.IEnumerator`1<class OpenRA.Traits.IResolveOrder> V_24,
class OpenRA.Traits.IResolveOrder V_25)
IL_0000: newobj instance void class OpenRA.Network.UnitOrders/'<ProcessOrder>c__AnonStorey15'::'.ctor'()
IL_0005: stloc.0
IL_0006: ldloc.0
IL_0007: ldarg.0
IL_0008: stfld class OpenRA.Network.OrderManager OpenRA.Network.UnitOrders/'<ProcessOrder>c__AnonStorey15'::orderManager
IL_000d: ldloc.0
IL_000e: ldarg.1
IL_000f: stfld class OpenRA.World OpenRA.Network.UnitOrders/'<ProcessOrder>c__AnonStorey15'::world
IL_0014: ldloc.0
IL_0015: ldarg.2
IL_0016: stfld int32 OpenRA.Network.UnitOrders/'<ProcessOrder>c__AnonStorey15'::clientId
IL_001b: ldloc.0
IL_001c: ldarg.3
IL_001d: stfld class OpenRA.Order OpenRA.Network.UnitOrders/'<ProcessOrder>c__AnonStorey15'::order
IL_0022: ldloc.0
IL_0023: ldfld class OpenRA.World OpenRA.Network.UnitOrders/'<ProcessOrder>c__AnonStorey15'::world
IL_0028: brfalse IL_0054
IL_002d: ldloc.0
IL_002e: ldfld class OpenRA.World OpenRA.Network.UnitOrders/'<ProcessOrder>c__AnonStorey15'::world
IL_0033: ldfld class OpenRA.Actor OpenRA.World::WorldActor
IL_0038: callvirt instance class [mscorlib]System.Collections.Generic.IEnumerable`1<!!0> class OpenRA.Actor::TraitsImplementing<class OpenRA.Traits.IValidateOrder> ()
IL_003d: ldloc.0
IL_003e: ldftn instance bool class OpenRA.Network.UnitOrders/'<ProcessOrder>c__AnonStorey15'::'<>m__7'(class OpenRA.Traits.IValidateOrder)
IL_0044: newobj instance void class [System.Core]System.Func`2<class OpenRA.Traits.IValidateOrder, bool>::'.ctor'(object, native int)
IL_0049: call bool class [System.Core]System.Linq.Enumerable::All<class OpenRA.Traits.IValidateOrder> (class [mscorlib]System.Collections.Generic.IEnumerable`1<!!0>, class [System.Core]System.Func`2<!!0,bool>)
IL_004e: brtrue IL_0054
IL_0053: ret
IL_0054: ldloc.0
IL_0055: ldfld class OpenRA.Order OpenRA.Network.UnitOrders/'<ProcessOrder>c__AnonStorey15'::order
IL_005a: ldfld string OpenRA.Order::OrderString
IL_005f: stloc.1
IL_0060: ldloc.1
IL_0061: brfalse IL_087a
IL_0066: ldsfld class [mscorlib]System.Collections.Generic.Dictionary`2<string,int32> OpenRA.Network.UnitOrders::'<>f__switch$map0'
IL_006b: brtrue IL_0111
IL_0070: ldc.i4.s 0x0c
IL_0072: newobj instance void class [mscorlib]System.Collections.Generic.Dictionary`2<string, int32>::'.ctor'(int32)
IL_0077: stloc.2
IL_0078: ldloc.2
IL_0079: ldstr "Chat"
IL_007e: ldc.i4.0
IL_007f: callvirt instance void class [mscorlib]System.Collections.Generic.Dictionary`2<string, int32>::Add(!0, !1)
IL_0084: ldloc.2
IL_0085: ldstr "Message"
IL_008a: ldc.i4.1
IL_008b: callvirt instance void class [mscorlib]System.Collections.Generic.Dictionary`2<string, int32>::Add(!0, !1)
IL_0090: ldloc.2
IL_0091: ldstr "Disconnected"
IL_0096: ldc.i4.2
IL_0097: callvirt instance void class [mscorlib]System.Collections.Generic.Dictionary`2<string, int32>::Add(!0, !1)
IL_009c: ldloc.2
IL_009d: ldstr "TeamChat"
IL_00a2: ldc.i4.3
IL_00a3: callvirt instance void class [mscorlib]System.Collections.Generic.Dictionary`2<string, int32>::Add(!0, !1)
IL_00a8: ldloc.2
IL_00a9: ldstr "StartGame"
IL_00ae: ldc.i4.4
IL_00af: callvirt instance void class [mscorlib]System.Collections.Generic.Dictionary`2<string, int32>::Add(!0, !1)
IL_00b4: ldloc.2
IL_00b5: ldstr "PauseGame"
IL_00ba: ldc.i4.5
IL_00bb: callvirt instance void class [mscorlib]System.Collections.Generic.Dictionary`2<string, int32>::Add(!0, !1)
IL_00c0: ldloc.2
IL_00c1: ldstr "HandshakeRequest"
IL_00c6: ldc.i4.6
IL_00c7: callvirt instance void class [mscorlib]System.Collections.Generic.Dictionary`2<string, int32>::Add(!0, !1)
IL_00cc: ldloc.2
IL_00cd: ldstr "ServerError"
IL_00d2: ldc.i4.7
IL_00d3: callvirt instance void class [mscorlib]System.Collections.Generic.Dictionary`2<string, int32>::Add(!0, !1)
IL_00d8: ldloc.2
IL_00d9: ldstr "AuthenticationError"
IL_00de: ldc.i4.8
IL_00df: callvirt instance void class [mscorlib]System.Collections.Generic.Dictionary`2<string, int32>::Add(!0, !1)
IL_00e4: ldloc.2
IL_00e5: ldstr "SyncInfo"
IL_00ea: ldc.i4.s 0x09
IL_00ec: callvirt instance void class [mscorlib]System.Collections.Generic.Dictionary`2<string, int32>::Add(!0, !1)
IL_00f1: ldloc.2
IL_00f2: ldstr "SetStance"
IL_00f7: ldc.i4.s 0x0a
IL_00f9: callvirt instance void class [mscorlib]System.Collections.Generic.Dictionary`2<string, int32>::Add(!0, !1)
IL_00fe: ldloc.2
IL_00ff: ldstr "Ping"
IL_0104: ldc.i4.s 0x0b
IL_0106: callvirt instance void class [mscorlib]System.Collections.Generic.Dictionary`2<string, int32>::Add(!0, !1)
IL_010b: ldloc.2
IL_010c: stsfld class [mscorlib]System.Collections.Generic.Dictionary`2<string,int32> OpenRA.Network.UnitOrders::'<>f__switch$map0'
IL_0111: ldsfld class [mscorlib]System.Collections.Generic.Dictionary`2<string,int32> OpenRA.Network.UnitOrders::'<>f__switch$map0'
IL_0116: ldloc.1
IL_0117: ldloca.s 3
IL_0119: callvirt instance bool class [mscorlib]System.Collections.Generic.Dictionary`2<string, int32>::TryGetValue(!0, [out] !1&)
IL_011e: brfalse IL_087a
IL_0123: ldloc.3
IL_0124: switch (
IL_015e,
IL_024d,
IL_0271,
IL_02a1,
IL_03d1,
IL_040a,
IL_04e0,
IL_064d,
IL_0674,
IL_069b,
IL_074d,
IL_085a)
IL_0159: br IL_087a
IL_015e: ldloc.0
IL_015f: ldfld class OpenRA.Network.OrderManager OpenRA.Network.UnitOrders/'<ProcessOrder>c__AnonStorey15'::orderManager
IL_0164: ldfld class OpenRA.Network.Session OpenRA.Network.OrderManager::LobbyInfo
IL_0169: ldloc.0
IL_016a: ldfld int32 OpenRA.Network.UnitOrders/'<ProcessOrder>c__AnonStorey15'::clientId
IL_016f: callvirt instance class OpenRA.Network.Session/Client class OpenRA.Network.Session::ClientWithIndex(int32)
IL_0174: stloc.s 4
IL_0176: ldloc.s 4
IL_0178: brfalse IL_0210
IL_017d: ldloc.0
IL_017e: ldfld class OpenRA.World OpenRA.Network.UnitOrders/'<ProcessOrder>c__AnonStorey15'::world
IL_0183: brfalse IL_019a
IL_0188: ldloc.0
IL_0189: ldfld class OpenRA.World OpenRA.Network.UnitOrders/'<ProcessOrder>c__AnonStorey15'::world
IL_018e: ldloc.s 4
IL_0190: call class OpenRA.Player class OpenRA.Network.UnitOrders::FindPlayerByClient(class OpenRA.World, class OpenRA.Network.Session/Client)
IL_0195: br IL_019b
IL_019a: ldnull
IL_019b: stloc.s 5
IL_019d: ldloc.s 5
IL_019f: brfalse IL_01bb
IL_01a4: ldloc.s 5
IL_01a6: ldfld valuetype OpenRA.WinState OpenRA.Player::WinState
IL_01ab: ldc.i4.1
IL_01ac: bne.un IL_01bb
IL_01b1: ldstr " (Dead)"
IL_01b6: br IL_01c0
IL_01bb: ldstr ""
IL_01c0: stloc.s 6
IL_01c2: ldloc.s 4
IL_01c4: callvirt instance bool class OpenRA.Network.Session/Client::get_IsObserver()
IL_01c9: brfalse IL_01d8
IL_01ce: ldstr " (Spectator)"
IL_01d3: br IL_01da
IL_01d8: ldloc.s 6
IL_01da: stloc.s 6
IL_01dc: ldsfld class [System.Core]System.Action`3<valuetype [System.Drawing]System.Drawing.Color,string,string> OpenRA.Game::AddChatLine
IL_01e1: ldloc.s 4
IL_01e3: ldflda valuetype [OpenRA.FileFormats]OpenRA.FileFormats.HSLColor OpenRA.Network.Session/Client::Color
IL_01e8: ldfld valuetype [System.Drawing]System.Drawing.Color [OpenRA.FileFormats]OpenRA.FileFormats.HSLColor::RGB
IL_01ed: ldloc.s 4
IL_01ef: ldfld string OpenRA.Network.Session/Client::Name
IL_01f4: ldloc.s 6
IL_01f6: call string string::Concat(string, string)
IL_01fb: ldloc.0
IL_01fc: ldfld class OpenRA.Order OpenRA.Network.UnitOrders/'<ProcessOrder>c__AnonStorey15'::order
IL_0201: ldfld string OpenRA.Order::TargetString
IL_0206: callvirt instance void class [System.Core]System.Action`3<valuetype [System.Drawing]System.Drawing.Color, string, string>::Invoke(!0, !1, !2)
IL_020b: br IL_0248
IL_0210: ldsfld class [System.Core]System.Action`3<valuetype [System.Drawing]System.Drawing.Color,string,string> OpenRA.Game::AddChatLine
IL_0215: call valuetype [System.Drawing]System.Drawing.Color valuetype [System.Drawing]System.Drawing.Color::get_White()
IL_021a: ldstr "(player {0})"
IL_021f: ldc.i4.1
IL_0220: newarr [mscorlib]System.Object
IL_0225: dup
IL_0226: ldc.i4.0
IL_0227: ldloc.0
IL_0228: ldfld int32 OpenRA.Network.UnitOrders/'<ProcessOrder>c__AnonStorey15'::clientId
IL_022d: box [mscorlib]System.Int32
IL_0232: stelem.ref
IL_0233: call string class [OpenRA.FileFormats]OpenRA.Exts::F(string, object[])
IL_0238: ldloc.0
IL_0239: ldfld class OpenRA.Order OpenRA.Network.UnitOrders/'<ProcessOrder>c__AnonStorey15'::order
IL_023e: ldfld string OpenRA.Order::TargetString
IL_0243: callvirt instance void class [System.Core]System.Action`3<valuetype [System.Drawing]System.Drawing.Color, string, string>::Invoke(!0, !1, !2)
IL_0248: br IL_0903
IL_024d: ldsfld class [System.Core]System.Action`3<valuetype [System.Drawing]System.Drawing.Color,string,string> OpenRA.Game::AddChatLine
IL_0252: call valuetype [System.Drawing]System.Drawing.Color valuetype [System.Drawing]System.Drawing.Color::get_White()
IL_0257: ldstr "Server"
IL_025c: ldloc.0
IL_025d: ldfld class OpenRA.Order OpenRA.Network.UnitOrders/'<ProcessOrder>c__AnonStorey15'::order
IL_0262: ldfld string OpenRA.Order::TargetString
IL_0267: callvirt instance void class [System.Core]System.Action`3<valuetype [System.Drawing]System.Drawing.Color, string, string>::Invoke(!0, !1, !2)
IL_026c: br IL_0903
IL_0271: ldloc.0
IL_0272: ldfld class OpenRA.Network.OrderManager OpenRA.Network.UnitOrders/'<ProcessOrder>c__AnonStorey15'::orderManager
IL_0277: ldfld class OpenRA.Network.Session OpenRA.Network.OrderManager::LobbyInfo
IL_027c: ldloc.0
IL_027d: ldfld int32 OpenRA.Network.UnitOrders/'<ProcessOrder>c__AnonStorey15'::clientId
IL_0282: callvirt instance class OpenRA.Network.Session/Client class OpenRA.Network.Session::ClientWithIndex(int32)
IL_0287: stloc.s 7
IL_0289: ldloc.s 7
IL_028b: brfalse IL_029c
IL_0290: ldloc.s 7
IL_0292: ldc.i4 1000
IL_0297: stfld valuetype OpenRA.Network.Session/ClientState OpenRA.Network.Session/Client::State
IL_029c: br IL_0903
IL_02a1: ldloc.0
IL_02a2: ldfld class OpenRA.Network.OrderManager OpenRA.Network.UnitOrders/'<ProcessOrder>c__AnonStorey15'::orderManager
IL_02a7: ldfld class OpenRA.Network.Session OpenRA.Network.OrderManager::LobbyInfo
IL_02ac: ldloc.0
IL_02ad: ldfld int32 OpenRA.Network.UnitOrders/'<ProcessOrder>c__AnonStorey15'::clientId
IL_02b2: callvirt instance class OpenRA.Network.Session/Client class OpenRA.Network.Session::ClientWithIndex(int32)
IL_02b7: stloc.s 8
IL_02b9: ldloc.s 8
IL_02bb: brfalse IL_03cc
IL_02c0: ldloc.0
IL_02c1: ldfld class OpenRA.World OpenRA.Network.UnitOrders/'<ProcessOrder>c__AnonStorey15'::world
IL_02c6: brtrue IL_032e
IL_02cb: ldloc.0
IL_02cc: ldfld class OpenRA.Network.OrderManager OpenRA.Network.UnitOrders/'<ProcessOrder>c__AnonStorey15'::orderManager
IL_02d1: callvirt instance class OpenRA.Network.Session/Client class OpenRA.Network.OrderManager::get_LocalClient()
IL_02d6: brfalse IL_0329
IL_02db: ldloc.s 8
IL_02dd: ldfld int32 OpenRA.Network.Session/Client::Team
IL_02e2: ldloc.0
IL_02e3: ldfld class OpenRA.Network.OrderManager OpenRA.Network.UnitOrders/'<ProcessOrder>c__AnonStorey15'::orderManager
IL_02e8: callvirt instance class OpenRA.Network.Session/Client class OpenRA.Network.OrderManager::get_LocalClient()
IL_02ed: ldfld int32 OpenRA.Network.Session/Client::Team
IL_02f2: bne.un IL_0329
IL_02f7: ldsfld class [System.Core]System.Action`3<valuetype [System.Drawing]System.Drawing.Color,string,string> OpenRA.Game::AddChatLine
IL_02fc: ldloc.s 8
IL_02fe: ldflda valuetype [OpenRA.FileFormats]OpenRA.FileFormats.HSLColor OpenRA.Network.Session/Client::Color
IL_0303: ldfld valuetype [System.Drawing]System.Drawing.Color [OpenRA.FileFormats]OpenRA.FileFormats.HSLColor::RGB
IL_0308: ldloc.s 8
IL_030a: ldfld string OpenRA.Network.Session/Client::Name
IL_030f: ldstr " (Team)"
IL_0314: call string string::Concat(string, string)
IL_0319: ldloc.0
IL_031a: ldfld class OpenRA.Order OpenRA.Network.UnitOrders/'<ProcessOrder>c__AnonStorey15'::order
IL_031f: ldfld string OpenRA.Order::TargetString
IL_0324: callvirt instance void class [System.Core]System.Action`3<valuetype [System.Drawing]System.Drawing.Color, string, string>::Invoke(!0, !1, !2)
IL_0329: br IL_03cc
IL_032e: ldloc.0
IL_032f: ldfld class OpenRA.World OpenRA.Network.UnitOrders/'<ProcessOrder>c__AnonStorey15'::world
IL_0334: ldloc.s 8
IL_0336: call class OpenRA.Player class OpenRA.Network.UnitOrders::FindPlayerByClient(class OpenRA.World, class OpenRA.Network.Session/Client)
IL_033b: stloc.s 9
IL_033d: ldloc.s 9
IL_033f: brtrue IL_0345
IL_0344: ret
IL_0345: ldloc.0
IL_0346: ldfld class OpenRA.World OpenRA.Network.UnitOrders/'<ProcessOrder>c__AnonStorey15'::world
IL_034b: callvirt instance class OpenRA.Player class OpenRA.World::get_LocalPlayer()
IL_0350: brfalse IL_0372
IL_0355: ldloc.s 9
IL_0357: ldfld class [mscorlib]System.Collections.Generic.Dictionary`2<class OpenRA.Player,valuetype OpenRA.Traits.Stance> OpenRA.Player::Stances
IL_035c: ldloc.0
IL_035d: ldfld class OpenRA.World OpenRA.Network.UnitOrders/'<ProcessOrder>c__AnonStorey15'::world
IL_0362: callvirt instance class OpenRA.Player class OpenRA.World::get_LocalPlayer()
IL_0367: callvirt instance !1 class [mscorlib]System.Collections.Generic.Dictionary`2<class OpenRA.Player, valuetype OpenRA.Traits.Stance>::get_Item(!0)
IL_036c: ldc.i4.2
IL_036d: beq IL_037f
IL_0372: ldloc.s 9
IL_0374: ldfld valuetype OpenRA.WinState OpenRA.Player::WinState
IL_0379: ldc.i4.1
IL_037a: bne.un IL_03cc
IL_037f: ldloc.s 9
IL_0381: ldfld valuetype OpenRA.WinState OpenRA.Player::WinState
IL_0386: ldc.i4.1
IL_0387: bne.un IL_0396
IL_038c: ldstr " (Dead)"
IL_0391: br IL_039b
IL_0396: ldstr " (Team)"
IL_039b: stloc.s 10
IL_039d: ldsfld class [System.Core]System.Action`3<valuetype [System.Drawing]System.Drawing.Color,string,string> OpenRA.Game::AddChatLine
IL_03a2: ldloc.s 8
IL_03a4: ldflda valuetype [OpenRA.FileFormats]OpenRA.FileFormats.HSLColor OpenRA.Network.Session/Client::Color
IL_03a9: ldfld valuetype [System.Drawing]System.Drawing.Color [OpenRA.FileFormats]OpenRA.FileFormats.HSLColor::RGB
IL_03ae: ldloc.s 8
IL_03b0: ldfld string OpenRA.Network.Session/Client::Name
IL_03b5: ldloc.s 10
IL_03b7: call string string::Concat(string, string)
IL_03bc: ldloc.0
IL_03bd: ldfld class OpenRA.Order OpenRA.Network.UnitOrders/'<ProcessOrder>c__AnonStorey15'::order
IL_03c2: ldfld string OpenRA.Order::TargetString
IL_03c7: callvirt instance void class [System.Core]System.Action`3<valuetype [System.Drawing]System.Drawing.Color, string, string>::Invoke(!0, !1, !2)
IL_03cc: br IL_0903
IL_03d1: ldsfld class [System.Core]System.Action`3<valuetype [System.Drawing]System.Drawing.Color,string,string> OpenRA.Game::AddChatLine
IL_03d6: call valuetype [System.Drawing]System.Drawing.Color valuetype [System.Drawing]System.Drawing.Color::get_White()
IL_03db: ldstr "Server"
IL_03e0: ldstr "The game has started."
IL_03e5: callvirt instance void class [System.Core]System.Action`3<valuetype [System.Drawing]System.Drawing.Color, string, string>::Invoke(!0, !1, !2)
IL_03ea: ldloc.0
IL_03eb: ldfld class OpenRA.Network.OrderManager OpenRA.Network.UnitOrders/'<ProcessOrder>c__AnonStorey15'::orderManager
IL_03f0: ldfld class OpenRA.Network.Session OpenRA.Network.OrderManager::LobbyInfo
IL_03f5: ldfld class OpenRA.Network.Session/Global OpenRA.Network.Session::GlobalSettings
IL_03fa: ldfld string OpenRA.Network.Session/Global::Map
IL_03ff: ldc.i4.0
IL_0400: call void class OpenRA.Game::StartGame(string, bool)
IL_0405: br IL_0903
IL_040a: ldloc.0
IL_040b: ldfld class OpenRA.Network.OrderManager OpenRA.Network.UnitOrders/'<ProcessOrder>c__AnonStorey15'::orderManager
IL_0410: ldfld class OpenRA.Network.Session OpenRA.Network.OrderManager::LobbyInfo
IL_0415: ldloc.0
IL_0416: ldfld int32 OpenRA.Network.UnitOrders/'<ProcessOrder>c__AnonStorey15'::clientId
IL_041b: callvirt instance class OpenRA.Network.Session/Client class OpenRA.Network.Session::ClientWithIndex(int32)
IL_0420: stloc.s 11
IL_0422: ldloc.s 11
IL_0424: brfalse IL_04db
IL_0429: ldloc.0
IL_042a: ldfld class OpenRA.Order OpenRA.Network.UnitOrders/'<ProcessOrder>c__AnonStorey15'::order
IL_042f: ldfld string OpenRA.Order::TargetString
IL_0434: ldstr "Pause"
IL_0439: call bool string::op_Equality(string, string)
IL_043e: stloc.s 12
IL_0440: ldloc.0
IL_0441: ldfld class OpenRA.Network.OrderManager OpenRA.Network.UnitOrders/'<ProcessOrder>c__AnonStorey15'::orderManager
IL_0446: ldfld class OpenRA.World OpenRA.Network.OrderManager::world
IL_044b: callvirt instance bool class OpenRA.World::get_Paused()
IL_0450: ldloc.s 12
IL_0452: beq IL_04b7
IL_0457: ldloc.0
IL_0458: ldfld class OpenRA.World OpenRA.Network.UnitOrders/'<ProcessOrder>c__AnonStorey15'::world
IL_045d: callvirt instance class OpenRA.Network.Session class OpenRA.World::get_LobbyInfo()
IL_0462: callvirt instance bool class OpenRA.Network.Session::get_IsSinglePlayer()
IL_0467: brtrue IL_04b7
IL_046c: ldstr "The game is {0} by {1}"
IL_0471: ldc.i4.2
IL_0472: newarr [mscorlib]System.Object
IL_0477: dup
IL_0478: ldc.i4.0
IL_0479: ldloc.s 12
IL_047b: brfalse IL_048a
IL_0480: ldstr "paused"
IL_0485: br IL_048f
IL_048a: ldstr "un-paused"
IL_048f: stelem.ref
IL_0490: dup
IL_0491: ldc.i4.1
IL_0492: ldloc.s 11
IL_0494: ldfld string OpenRA.Network.Session/Client::Name
IL_0499: stelem.ref
IL_049a: call string class [OpenRA.FileFormats]OpenRA.Exts::F(string, object[])
IL_049f: stloc.s 13
IL_04a1: ldsfld class [System.Core]System.Action`3<valuetype [System.Drawing]System.Drawing.Color,string,string> OpenRA.Game::AddChatLine
IL_04a6: call valuetype [System.Drawing]System.Drawing.Color valuetype [System.Drawing]System.Drawing.Color::get_White()
IL_04ab: ldstr ""
IL_04b0: ldloc.s 13
IL_04b2: callvirt instance void class [System.Core]System.Action`3<valuetype [System.Drawing]System.Drawing.Color, string, string>::Invoke(!0, !1, !2)
IL_04b7: ldloc.0
IL_04b8: ldfld class OpenRA.Network.OrderManager OpenRA.Network.UnitOrders/'<ProcessOrder>c__AnonStorey15'::orderManager
IL_04bd: ldfld class OpenRA.World OpenRA.Network.OrderManager::world
IL_04c2: ldloc.s 12
IL_04c4: callvirt instance void class OpenRA.World::set_Paused(bool)
IL_04c9: ldloc.0
IL_04ca: ldfld class OpenRA.Network.OrderManager OpenRA.Network.UnitOrders/'<ProcessOrder>c__AnonStorey15'::orderManager
IL_04cf: ldfld class OpenRA.World OpenRA.Network.OrderManager::world
IL_04d4: ldloc.s 12
IL_04d6: callvirt instance void class OpenRA.World::set_PredictedPaused(bool)
IL_04db: br IL_0903
IL_04e0: ldloc.0
IL_04e1: ldfld class OpenRA.Order OpenRA.Network.UnitOrders/'<ProcessOrder>c__AnonStorey15'::order
IL_04e6: ldfld string OpenRA.Order::TargetString
IL_04eb: call class OpenRA.Network.HandshakeRequest class OpenRA.Network.HandshakeRequest::Deserialize(string)
IL_04f0: stloc.s 14
IL_04f2: ldloc.0
IL_04f3: ldfld class OpenRA.Network.OrderManager OpenRA.Network.UnitOrders/'<ProcessOrder>c__AnonStorey15'::orderManager
IL_04f8: ldfld class OpenRA.Network.Session OpenRA.Network.OrderManager::LobbyInfo
IL_04fd: ldfld class OpenRA.Network.Session/Global OpenRA.Network.Session::GlobalSettings
IL_0502: ldfld string[] OpenRA.Network.Session/Global::Mods
IL_0507: ldsfld class [System.Core]System.Func`2<string,string> OpenRA.Network.UnitOrders::'<>f__am$cache1'
IL_050c: brtrue.s IL_051f
IL_050e: ldnull
IL_050f: ldftn string class OpenRA.Network.UnitOrders::'<ProcessOrder>m__8'(string)
IL_0515: newobj instance void class [System.Core]System.Func`2<string, string>::'.ctor'(object, native int)
IL_051a: stsfld class [System.Core]System.Func`2<string,string> OpenRA.Network.UnitOrders::'<>f__am$cache1'
IL_051f: ldsfld class [System.Core]System.Func`2<string,string> OpenRA.Network.UnitOrders::'<>f__am$cache1'
IL_0524: call class [mscorlib]System.Collections.Generic.IEnumerable`1<!!1> class [System.Core]System.Linq.Enumerable::Select<string, string> (class [mscorlib]System.Collections.Generic.IEnumerable`1<!!0>, class [System.Core]System.Func`2<!!0,!!1>)
IL_0529: call !!0[] class [System.Core]System.Linq.Enumerable::ToArray<string> (class [mscorlib]System.Collections.Generic.IEnumerable`1<!!0>)
IL_052e: stloc.s 15
IL_0530: ldsfld class OpenRA.ModData OpenRA.Game::modData
IL_0535: callvirt instance class [mscorlib]System.Collections.Generic.Dictionary`2<string,class OpenRA.Map> class OpenRA.ModData::get_AvailableMaps()
IL_053a: ldloc.s 14
IL_053c: ldfld string OpenRA.Network.HandshakeRequest::Map
IL_0541: callvirt instance bool class [mscorlib]System.Collections.Generic.Dictionary`2<string, class OpenRA.Map>::ContainsKey(!0)
IL_0546: brtrue IL_0591
IL_054b: ldsfld class OpenRA.GameRules.Settings OpenRA.Game::Settings
IL_0550: ldfld class OpenRA.GameRules.GameSettings OpenRA.GameRules.Settings::Game
IL_0555: ldfld bool OpenRA.GameRules.GameSettings::AllowDownloading
IL_055a: brfalse IL_0571
IL_055f: ldloc.s 14
IL_0561: ldfld string OpenRA.Network.HandshakeRequest::Map
IL_0566: call bool class OpenRA.Game::DownloadMap(string)
IL_056b: pop
IL_056c: br IL_0591
IL_0571: ldstr "Missing map {0}"
IL_0576: ldc.i4.1
IL_0577: newarr [mscorlib]System.Object
IL_057c: dup
IL_057d: ldc.i4.0
IL_057e: ldloc.s 14
IL_0580: ldfld string OpenRA.Network.HandshakeRequest::Map
IL_0585: stelem.ref
IL_0586: call string class [OpenRA.FileFormats]OpenRA.Exts::F(string, object[])
IL_058b: newobj instance void class [mscorlib]System.InvalidOperationException::'.ctor'(string)
IL_0590: throw
IL_0591: newobj instance void class OpenRA.Network.Session/Client::'.ctor'()
IL_0596: stloc.s 17
IL_0598: ldloc.s 17
IL_059a: ldsfld class OpenRA.GameRules.Settings OpenRA.Game::Settings
IL_059f: ldfld class OpenRA.GameRules.PlayerSettings OpenRA.GameRules.Settings::Player
IL_05a4: ldfld string OpenRA.GameRules.PlayerSettings::Name
IL_05a9: stfld string OpenRA.Network.Session/Client::Name
IL_05ae: ldloc.s 17
IL_05b0: ldsfld class OpenRA.GameRules.Settings OpenRA.Game::Settings
IL_05b5: ldfld class OpenRA.GameRules.PlayerSettings OpenRA.GameRules.Settings::Player
IL_05ba: ldfld valuetype [OpenRA.FileFormats]OpenRA.FileFormats.HSLColor OpenRA.GameRules.PlayerSettings::Color
IL_05bf: stfld valuetype [OpenRA.FileFormats]OpenRA.FileFormats.HSLColor OpenRA.Network.Session/Client::PreferredColor
IL_05c4: ldloc.s 17
IL_05c6: ldsfld class OpenRA.GameRules.Settings OpenRA.Game::Settings
IL_05cb: ldfld class OpenRA.GameRules.PlayerSettings OpenRA.GameRules.Settings::Player
IL_05d0: ldfld valuetype [OpenRA.FileFormats]OpenRA.FileFormats.HSLColor OpenRA.GameRules.PlayerSettings::Color
IL_05d5: stfld valuetype [OpenRA.FileFormats]OpenRA.FileFormats.HSLColor OpenRA.Network.Session/Client::Color
IL_05da: ldloc.s 17
IL_05dc: ldstr "random"
IL_05e1: stfld string OpenRA.Network.Session/Client::Country
IL_05e6: ldloc.s 17
IL_05e8: ldc.i4.0
IL_05e9: stfld int32 OpenRA.Network.Session/Client::SpawnPoint
IL_05ee: ldloc.s 17
IL_05f0: ldc.i4.0
IL_05f1: stfld int32 OpenRA.Network.Session/Client::Team
IL_05f6: ldloc.s 17
IL_05f8: ldc.i4.0
IL_05f9: stfld valuetype OpenRA.Network.Session/ClientState OpenRA.Network.Session/Client::State
IL_05fe: ldloc.s 17
IL_0600: stloc.s 16
IL_0602: newobj instance void class OpenRA.Network.HandshakeResponse::'.ctor'()
IL_0607: stloc.s 19
IL_0609: ldloc.s 19
IL_060b: ldloc.s 16
IL_060d: stfld class OpenRA.Network.Session/Client OpenRA.Network.HandshakeResponse::Client
IL_0612: ldloc.s 19
IL_0614: ldloc.s 15
IL_0616: stfld string[] OpenRA.Network.HandshakeResponse::Mods
IL_061b: ldloc.s 19
IL_061d: ldloc.0
IL_061e: ldfld class OpenRA.Network.OrderManager OpenRA.Network.UnitOrders/'<ProcessOrder>c__AnonStorey15'::orderManager
IL_0623: ldfld string OpenRA.Network.OrderManager::Password
IL_0628: stfld string OpenRA.Network.HandshakeResponse::Password
IL_062d: ldloc.s 19
IL_062f: stloc.s 18
IL_0631: ldloc.0
IL_0632: ldfld class OpenRA.Network.OrderManager OpenRA.Network.UnitOrders/'<ProcessOrder>c__AnonStorey15'::orderManager
IL_0637: ldloc.s 18
IL_0639: callvirt instance string class OpenRA.Network.HandshakeResponse::Serialize()
IL_063e: call class OpenRA.Order class OpenRA.Order::HandshakeResponse(string)
IL_0643: callvirt instance void class OpenRA.Network.OrderManager::IssueOrder(class OpenRA.Order)
IL_0648: br IL_0903
IL_064d: ldloc.0
IL_064e: ldfld class OpenRA.Network.OrderManager OpenRA.Network.UnitOrders/'<ProcessOrder>c__AnonStorey15'::orderManager
IL_0653: ldloc.0
IL_0654: ldfld class OpenRA.Order OpenRA.Network.UnitOrders/'<ProcessOrder>c__AnonStorey15'::order
IL_0659: ldfld string OpenRA.Order::TargetString
IL_065e: stfld string OpenRA.Network.OrderManager::ServerError
IL_0663: ldloc.0
IL_0664: ldfld class OpenRA.Network.OrderManager OpenRA.Network.UnitOrders/'<ProcessOrder>c__AnonStorey15'::orderManager
IL_0669: ldc.i4.0
IL_066a: stfld bool OpenRA.Network.OrderManager::AuthenticationFailed
IL_066f: br IL_0903
IL_0674: ldloc.0
IL_0675: ldfld class OpenRA.Network.OrderManager OpenRA.Network.UnitOrders/'<ProcessOrder>c__AnonStorey15'::orderManager
IL_067a: ldloc.0
IL_067b: ldfld class OpenRA.Order OpenRA.Network.UnitOrders/'<ProcessOrder>c__AnonStorey15'::order
IL_0680: ldfld string OpenRA.Order::TargetString
IL_0685: stfld string OpenRA.Network.OrderManager::ServerError
IL_068a: ldloc.0
IL_068b: ldfld class OpenRA.Network.OrderManager OpenRA.Network.UnitOrders/'<ProcessOrder>c__AnonStorey15'::orderManager
IL_0690: ldc.i4.1
IL_0691: stfld bool OpenRA.Network.OrderManager::AuthenticationFailed
IL_0696: br IL_0903
IL_069b: ldloc.0
IL_069c: ldfld class OpenRA.Network.OrderManager OpenRA.Network.UnitOrders/'<ProcessOrder>c__AnonStorey15'::orderManager
IL_06a1: ldloc.0
IL_06a2: ldfld class OpenRA.Order OpenRA.Network.UnitOrders/'<ProcessOrder>c__AnonStorey15'::order
IL_06a7: ldfld string OpenRA.Order::TargetString
IL_06ac: call class OpenRA.Network.Session class OpenRA.Network.Session::Deserialize(string)
IL_06b1: stfld class OpenRA.Network.Session OpenRA.Network.OrderManager::LobbyInfo
IL_06b6: ldloc.0
IL_06b7: ldfld class OpenRA.Network.OrderManager OpenRA.Network.UnitOrders/'<ProcessOrder>c__AnonStorey15'::orderManager
IL_06bc: ldfld int32 OpenRA.Network.OrderManager::FramesAhead
IL_06c1: ldloc.0
IL_06c2: ldfld class OpenRA.Network.OrderManager OpenRA.Network.UnitOrders/'<ProcessOrder>c__AnonStorey15'::orderManager
IL_06c7: ldfld class OpenRA.Network.Session OpenRA.Network.OrderManager::LobbyInfo
IL_06cc: ldfld class OpenRA.Network.Session/Global OpenRA.Network.Session::GlobalSettings
IL_06d1: ldfld int32 OpenRA.Network.Session/Global::OrderLatency
IL_06d6: beq IL_0743
IL_06db: ldloc.0
IL_06dc: ldfld class OpenRA.Network.OrderManager OpenRA.Network.UnitOrders/'<ProcessOrder>c__AnonStorey15'::orderManager
IL_06e1: callvirt instance bool class OpenRA.Network.OrderManager::get_GameStarted()
IL_06e6: brtrue IL_0743
IL_06eb: ldloc.0
IL_06ec: ldfld class OpenRA.Network.OrderManager OpenRA.Network.UnitOrders/'<ProcessOrder>c__AnonStorey15'::orderManager
IL_06f1: ldloc.0
IL_06f2: ldfld class OpenRA.Network.OrderManager OpenRA.Network.UnitOrders/'<ProcessOrder>c__AnonStorey15'::orderManager
IL_06f7: ldfld class OpenRA.Network.Session OpenRA.Network.OrderManager::LobbyInfo
IL_06fc: ldfld class OpenRA.Network.Session/Global OpenRA.Network.Session::GlobalSettings
IL_0701: ldfld int32 OpenRA.Network.Session/Global::OrderLatency
IL_0706: stfld int32 OpenRA.Network.OrderManager::FramesAhead
IL_070b: ldstr "Order lag is now {0} frames."
IL_0710: ldc.i4.1
IL_0711: newarr [mscorlib]System.Object
IL_0716: dup
IL_0717: ldc.i4.0
IL_0718: ldloc.0
IL_0719: ldfld class OpenRA.Network.OrderManager OpenRA.Network.UnitOrders/'<ProcessOrder>c__AnonStorey15'::orderManager
IL_071e: ldfld class OpenRA.Network.Session OpenRA.Network.OrderManager::LobbyInfo
IL_0723: ldfld class OpenRA.Network.Session/Global OpenRA.Network.Session::GlobalSettings
IL_0728: ldfld int32 OpenRA.Network.Session/Global::OrderLatency
IL_072d: box [mscorlib]System.Int32
IL_0732: stelem.ref
IL_0733: call string class [OpenRA.FileFormats]OpenRA.Exts::F(string, object[])
IL_0738: ldc.i4.0
IL_0739: newarr [mscorlib]System.Object
IL_073e: call void class OpenRA.Game::Debug(string, object[])
IL_0743: call void class OpenRA.Game::SyncLobbyInfo()
IL_0748: br IL_0903
IL_074d: ldsfld class OpenRA.Network.OrderManager OpenRA.Game::orderManager
IL_0752: ldfld class OpenRA.Network.Session OpenRA.Network.OrderManager::LobbyInfo
IL_0757: ldfld class OpenRA.Network.Session/Global OpenRA.Network.Session::GlobalSettings
IL_075c: ldfld bool OpenRA.Network.Session/Global::FragileAlliances
IL_0761: brtrue IL_0767
IL_0766: ret
IL_0767: ldloc.0
IL_0768: ldfld class OpenRA.Order OpenRA.Network.UnitOrders/'<ProcessOrder>c__AnonStorey15'::order
IL_076d: callvirt instance class OpenRA.Player class OpenRA.Order::get_Player()
IL_0772: callvirt instance class OpenRA.World class OpenRA.Player::get_World()
IL_0777: ldfld class [mscorlib]System.Collections.Generic.List`1<class OpenRA.Player> OpenRA.World::Players
IL_077c: ldloc.0
IL_077d: ldftn instance bool class OpenRA.Network.UnitOrders/'<ProcessOrder>c__AnonStorey15'::'<>m__9'(class OpenRA.Player)
IL_0783: newobj instance void class [System.Core]System.Func`2<class OpenRA.Player, bool>::'.ctor'(object, native int)
IL_0788: call !!0 class [System.Core]System.Linq.Enumerable::FirstOrDefault<class OpenRA.Player> (class [mscorlib]System.Collections.Generic.IEnumerable`1<!!0>, class [System.Core]System.Func`2<!!0,bool>)
IL_078d: stloc.s 20
IL_078f: ldloc.0
IL_0790: ldfld class OpenRA.Order OpenRA.Network.UnitOrders/'<ProcessOrder>c__AnonStorey15'::order
IL_0795: ldflda valuetype OpenRA.CPos OpenRA.Order::TargetLocation
IL_079a: ldfld int32 OpenRA.CPos::X
IL_079f: stloc.s 21
IL_07a1: ldloc.0
IL_07a2: ldfld class OpenRA.World OpenRA.Network.UnitOrders/'<ProcessOrder>c__AnonStorey15'::world
IL_07a7: ldloc.0
IL_07a8: ldfld class OpenRA.Order OpenRA.Network.UnitOrders/'<ProcessOrder>c__AnonStorey15'::order
IL_07ad: callvirt instance class OpenRA.Player class OpenRA.Order::get_Player()
IL_07b2: ldloc.s 20
IL_07b4: ldloc.s 21
IL_07b6: call void class OpenRA.Network.UnitOrders::SetPlayerStance(class OpenRA.World, class OpenRA.Player, class OpenRA.Player, valuetype OpenRA.Traits.Stance)
IL_07bb: ldstr "{0} has set diplomatic stance vs {1} to {2}"
IL_07c0: ldc.i4.3
IL_07c1: newarr [mscorlib]System.Object
IL_07c6: dup
IL_07c7: ldc.i4.0
IL_07c8: ldloc.0
IL_07c9: ldfld class OpenRA.Order OpenRA.Network.UnitOrders/'<ProcessOrder>c__AnonStorey15'::order
IL_07ce: callvirt instance class OpenRA.Player class OpenRA.Order::get_Player()
IL_07d3: ldfld string OpenRA.Player::PlayerName
IL_07d8: stelem.ref
IL_07d9: dup
IL_07da: ldc.i4.1
IL_07db: ldloc.s 20
IL_07dd: ldfld string OpenRA.Player::PlayerName
IL_07e2: stelem.ref
IL_07e3: dup
IL_07e4: ldc.i4.2
IL_07e5: ldloc.s 21
IL_07e7: box OpenRA.Traits.Stance
IL_07ec: stelem.ref
IL_07ed: call string class [OpenRA.FileFormats]OpenRA.Exts::F(string, object[])
IL_07f2: ldc.i4.0
IL_07f3: newarr [mscorlib]System.Object
IL_07f8: call void class OpenRA.Game::Debug(string, object[])
IL_07fd: ldloc.s 21
IL_07ff: brtrue IL_0855
IL_0804: ldloc.s 20
IL_0806: ldfld class [mscorlib]System.Collections.Generic.Dictionary`2<class OpenRA.Player,valuetype OpenRA.Traits.Stance> OpenRA.Player::Stances
IL_080b: ldloc.0
IL_080c: ldfld class OpenRA.Order OpenRA.Network.UnitOrders/'<ProcessOrder>c__AnonStorey15'::order
IL_0811: callvirt instance class OpenRA.Player class OpenRA.Order::get_Player()
IL_0816: callvirt instance !1 class [mscorlib]System.Collections.Generic.Dictionary`2<class OpenRA.Player, valuetype OpenRA.Traits.Stance>::get_Item(!0)
IL_081b: ldc.i4.2
IL_081c: bne.un IL_0855
IL_0821: ldloc.0
IL_0822: ldfld class OpenRA.World OpenRA.Network.UnitOrders/'<ProcessOrder>c__AnonStorey15'::world
IL_0827: ldloc.s 20
IL_0829: ldloc.0
IL_082a: ldfld class OpenRA.Order OpenRA.Network.UnitOrders/'<ProcessOrder>c__AnonStorey15'::order
IL_082f: callvirt instance class OpenRA.Player class OpenRA.Order::get_Player()
IL_0834: ldloc.s 21
IL_0836: call void class OpenRA.Network.UnitOrders::SetPlayerStance(class OpenRA.World, class OpenRA.Player, class OpenRA.Player, valuetype OpenRA.Traits.Stance)
IL_083b: ldstr "{0} has reciprocated"
IL_0840: ldc.i4.1
IL_0841: newarr [mscorlib]System.Object
IL_0846: dup
IL_0847: ldc.i4.0
IL_0848: ldloc.s 20
IL_084a: ldfld string OpenRA.Player::PlayerName
IL_084f: stelem.ref
IL_0850: call void class OpenRA.Game::Debug(string, object[])
IL_0855: br IL_0903
IL_085a: ldloc.0
IL_085b: ldfld class OpenRA.Network.OrderManager OpenRA.Network.UnitOrders/'<ProcessOrder>c__AnonStorey15'::orderManager
IL_0860: ldloc.0
IL_0861: ldfld class OpenRA.Order OpenRA.Network.UnitOrders/'<ProcessOrder>c__AnonStorey15'::order
IL_0866: ldfld string OpenRA.Order::TargetString
IL_086b: call class OpenRA.Order class OpenRA.Order::Pong(string)
IL_0870: callvirt instance void class OpenRA.Network.OrderManager::IssueOrder(class OpenRA.Order)
IL_0875: br IL_0903
IL_087a: ldloc.0
IL_087b: ldfld class OpenRA.Order OpenRA.Network.UnitOrders/'<ProcessOrder>c__AnonStorey15'::order
IL_0880: ldfld bool OpenRA.Order::IsImmediate
IL_0885: brtrue IL_08fe
IL_088a: ldloc.0
IL_088b: ldfld class OpenRA.Order OpenRA.Network.UnitOrders/'<ProcessOrder>c__AnonStorey15'::order
IL_0890: ldfld class OpenRA.Actor OpenRA.Order::Subject
IL_0895: stloc.s 22
IL_0897: ldloc.s 22
IL_0899: callvirt instance !!0 class OpenRA.Actor::TraitOrDefault<class OpenRA.Traits.Health> ()
IL_089e: stloc.s 23
IL_08a0: ldloc.s 23
IL_08a2: brfalse IL_08b3
IL_08a7: ldloc.s 23
IL_08a9: callvirt instance bool class OpenRA.Traits.Health::get_IsDead()
IL_08ae: brtrue IL_08fe
IL_08b3: ldloc.s 22
IL_08b5: callvirt instance class [mscorlib]System.Collections.Generic.IEnumerable`1<!!0> class OpenRA.Actor::TraitsImplementing<class OpenRA.Traits.IResolveOrder> ()
IL_08ba: callvirt instance class [mscorlib]System.Collections.Generic.IEnumerator`1<!0> class [mscorlib]System.Collections.Generic.IEnumerable`1<class OpenRA.Traits.IResolveOrder>::GetEnumerator()
IL_08bf: stloc.s 24
.try { // 0
IL_08c1: br IL_08de
IL_08c6: ldloc.s 24
IL_08c8: callvirt instance !0 class [mscorlib]System.Collections.Generic.IEnumerator`1<class OpenRA.Traits.IResolveOrder>::get_Current()
IL_08cd: stloc.s 25
IL_08cf: ldloc.s 25
IL_08d1: ldloc.s 22
IL_08d3: ldloc.0
IL_08d4: ldfld class OpenRA.Order OpenRA.Network.UnitOrders/'<ProcessOrder>c__AnonStorey15'::order
IL_08d9: callvirt instance void class OpenRA.Traits.IResolveOrder::ResolveOrder(class OpenRA.Actor, class OpenRA.Order)
IL_08de: ldloc.s 24
IL_08e0: callvirt instance bool class [mscorlib]System.Collections.IEnumerator::MoveNext()
IL_08e5: brtrue IL_08c6
IL_08ea: leave IL_08fe
} // end .try 0
finally { // 0
IL_08ef: ldloc.s 24
IL_08f1: brfalse IL_08fd
IL_08f6: ldloc.s 24
IL_08f8: callvirt instance void class [mscorlib]System.IDisposable::Dispose()
IL_08fd: endfinally
} // end handler 0
IL_08fe: br IL_0903
IL_0903: ret
} // end of method UnitOrders::ProcessOrder
// method line 29
.method private static hidebysig
default void SetPlayerStance (class OpenRA.World w, class OpenRA.Player p, class OpenRA.Player target, valuetype OpenRA.Traits.Stance s) cil managed
{
// Method begins at RVA 0x3150
// Code size 133 (0x85)
.maxstack 21
.locals init (
valuetype OpenRA.Traits.Stance V_0,
class [mscorlib]System.Collections.Generic.IEnumerator`1<valuetype OpenRA.TraitPair`1<class OpenRA.Traits.INotifyStanceChanged>> V_1,
valuetype OpenRA.TraitPair`1<class OpenRA.Traits.INotifyStanceChanged> V_2)
IL_0000: ldarg.1
IL_0001: ldfld class [mscorlib]System.Collections.Generic.Dictionary`2<class OpenRA.Player,valuetype OpenRA.Traits.Stance> OpenRA.Player::Stances
IL_0006: ldarg.2
IL_0007: callvirt instance !1 class [mscorlib]System.Collections.Generic.Dictionary`2<class OpenRA.Player, valuetype OpenRA.Traits.Stance>::get_Item(!0)
IL_000c: stloc.0
IL_000d: ldarg.1
IL_000e: ldfld class [mscorlib]System.Collections.Generic.Dictionary`2<class OpenRA.Player,valuetype OpenRA.Traits.Stance> OpenRA.Player::Stances
IL_0013: ldarg.2
IL_0014: ldarg.3
IL_0015: callvirt instance void class [mscorlib]System.Collections.Generic.Dictionary`2<class OpenRA.Player, valuetype OpenRA.Traits.Stance>::set_Item(!0, !1)
IL_001a: ldarg.2
IL_001b: ldfld class OpenRA.Traits.Shroud OpenRA.Player::Shroud
IL_0020: ldarg.0
IL_0021: ldarg.1
IL_0022: ldloc.0
IL_0023: ldarg.3
IL_0024: callvirt instance void class OpenRA.Traits.Shroud::UpdatePlayerStance(class OpenRA.World, class OpenRA.Player, valuetype OpenRA.Traits.Stance, valuetype OpenRA.Traits.Stance)
IL_0029: ldarg.1
IL_002a: ldfld class OpenRA.Traits.Shroud OpenRA.Player::Shroud
IL_002f: ldarg.0
IL_0030: ldarg.2
IL_0031: ldloc.0
IL_0032: ldarg.3
IL_0033: callvirt instance void class OpenRA.Traits.Shroud::UpdatePlayerStance(class OpenRA.World, class OpenRA.Player, valuetype OpenRA.Traits.Stance, valuetype OpenRA.Traits.Stance)
IL_0038: ldarg.0
IL_0039: callvirt instance class [mscorlib]System.Collections.Generic.IEnumerable`1<valuetype OpenRA.TraitPair`1<!!0>> class OpenRA.World::ActorsWithTrait<class OpenRA.Traits.INotifyStanceChanged> ()
IL_003e: callvirt instance class [mscorlib]System.Collections.Generic.IEnumerator`1<!0> class [mscorlib]System.Collections.Generic.IEnumerable`1<valuetype OpenRA.TraitPair`1<class OpenRA.Traits.INotifyStanceChanged>>::GetEnumerator()
IL_0043: stloc.1
.try { // 0
IL_0044: br IL_0067
IL_0049: ldloc.1
IL_004a: callvirt instance !0 class [mscorlib]System.Collections.Generic.IEnumerator`1<valuetype OpenRA.TraitPair`1<class OpenRA.Traits.INotifyStanceChanged>>::get_Current()
IL_004f: stloc.2
IL_0050: ldloca.s 2
IL_0052: ldfld !0 valuetype OpenRA.TraitPair`1<class OpenRA.Traits.INotifyStanceChanged>::Trait
IL_0057: ldloca.s 2
IL_0059: ldfld class OpenRA.Actor valuetype OpenRA.TraitPair`1<class OpenRA.Traits.INotifyStanceChanged>::Actor
IL_005e: ldarg.1
IL_005f: ldarg.2
IL_0060: ldloc.0
IL_0061: ldarg.3
IL_0062: callvirt instance void class OpenRA.Traits.INotifyStanceChanged::StanceChanged(class OpenRA.Actor, class OpenRA.Player, class OpenRA.Player, valuetype OpenRA.Traits.Stance, valuetype OpenRA.Traits.Stance)
IL_0067: ldloc.1
IL_0068: callvirt instance bool class [mscorlib]System.Collections.IEnumerator::MoveNext()
IL_006d: brtrue IL_0049
IL_0072: leave IL_0084
} // end .try 0
finally { // 0
IL_0077: ldloc.1
IL_0078: brfalse IL_0083
IL_007d: ldloc.1
IL_007e: callvirt instance void class [mscorlib]System.IDisposable::Dispose()
IL_0083: endfinally
} // end handler 0
IL_0084: ret
} // end of method UnitOrders::SetPlayerStance
// method line 30
.method private static hidebysig
default string '<ProcessOrder>m__8' (string m) cil managed
{
.custom instance void class [mscorlib]System.Runtime.CompilerServices.CompilerGeneratedAttribute::'.ctor'() = (01 00 00 00 ) // ....
// Method begins at RVA 0x3200
// Code size 40 (0x28)
.maxstack 8
IL_0000: ldstr "{0}@{1}"
IL_0005: ldc.i4.2
IL_0006: newarr [mscorlib]System.Object
IL_000b: dup
IL_000c: ldc.i4.0
IL_000d: ldarg.0
IL_000e: stelem.ref
IL_000f: dup
IL_0010: ldc.i4.1
IL_0011: ldsfld class [mscorlib]System.Collections.Generic.Dictionary`2<string,class [OpenRA.FileFormats]OpenRA.FileFormats.Mod> [OpenRA.FileFormats]OpenRA.FileFormats.Mod::AllMods
IL_0016: ldarg.0
IL_0017: callvirt instance !1 class [mscorlib]System.Collections.Generic.Dictionary`2<string, class [OpenRA.FileFormats]OpenRA.FileFormats.Mod>::get_Item(!0)
IL_001c: ldfld string [OpenRA.FileFormats]OpenRA.FileFormats.Mod::Version
IL_0021: stelem.ref
IL_0022: call string class [OpenRA.FileFormats]OpenRA.Exts::F(string, object[])
IL_0027: ret
} // end of method UnitOrders::<ProcessOrder>m__8
.class nested private auto ansi sealed beforefieldinit '<FindPlayerByClient>c__AnonStorey14'
extends [mscorlib]System.Object
{
.custom instance void class [mscorlib]System.Runtime.CompilerServices.CompilerGeneratedAttribute::'.ctor'() = (01 00 00 00 ) // ....
.field assembly class OpenRA.Network.Session/Client c
// method line 2077
.method public hidebysig specialname rtspecialname
instance default void '.ctor' () cil managed
{
// Method begins at RVA 0x2b4b0
// Code size 7 (0x7)
.maxstack 8
IL_0000: ldarg.0
IL_0001: call instance void object::'.ctor'()
IL_0006: ret
} // end of method <FindPlayerByClient>c__AnonStorey14::.ctor
// method line 2078
.method assembly hidebysig
instance default bool '<>m__6' (class OpenRA.Player p) cil managed
{
// Method begins at RVA 0x2b4b8
// Code size 37 (0x25)
.maxstack 3
IL_0000: ldarg.1
IL_0001: ldfld int32 OpenRA.Player::ClientIndex
IL_0006: ldarg.0
IL_0007: ldfld class OpenRA.Network.Session/Client OpenRA.Network.UnitOrders/'<FindPlayerByClient>c__AnonStorey14'::c
IL_000c: ldfld int32 OpenRA.Network.Session/Client::Index
IL_0011: bne.un IL_0023
IL_0016: ldarg.1
IL_0017: ldfld class [OpenRA.FileFormats]OpenRA.FileFormats.PlayerReference OpenRA.Player::PlayerReference
IL_001c: ldfld bool [OpenRA.FileFormats]OpenRA.FileFormats.PlayerReference::Playable
IL_0021: br.s IL_0024
IL_0023: ldc.i4.0
IL_0024: ret
} // end of method <FindPlayerByClient>c__AnonStorey14::<>m__6
} // end of class <FindPlayerByClient>c__AnonStorey14
.class nested private auto ansi sealed beforefieldinit '<ProcessOrder>c__AnonStorey15'
extends [mscorlib]System.Object
{
.custom instance void class [mscorlib]System.Runtime.CompilerServices.CompilerGeneratedAttribute::'.ctor'() = (01 00 00 00 ) // ....
.field assembly class OpenRA.Network.OrderManager orderManager
.field assembly class OpenRA.World world
.field assembly int32 clientId
.field assembly class OpenRA.Order order
// method line 2079
.method public hidebysig specialname rtspecialname
instance default void '.ctor' () cil managed
{
// Method begins at RVA 0x2b4ec
// Code size 7 (0x7)
.maxstack 8
IL_0000: ldarg.0
IL_0001: call instance void object::'.ctor'()
IL_0006: ret
} // end of method <ProcessOrder>c__AnonStorey15::.ctor
// method line 2080
.method assembly hidebysig
instance default bool '<>m__7' (class OpenRA.Traits.IValidateOrder vo) cil managed
{
// Method begins at RVA 0x2b4f4
// Code size 31 (0x1f)
.maxstack 8
IL_0000: ldarg.1
IL_0001: ldarg.0
IL_0002: ldfld class OpenRA.Network.OrderManager OpenRA.Network.UnitOrders/'<ProcessOrder>c__AnonStorey15'::orderManager
IL_0007: ldarg.0
IL_0008: ldfld class OpenRA.World OpenRA.Network.UnitOrders/'<ProcessOrder>c__AnonStorey15'::world
IL_000d: ldarg.0
IL_000e: ldfld int32 OpenRA.Network.UnitOrders/'<ProcessOrder>c__AnonStorey15'::clientId
IL_0013: ldarg.0
IL_0014: ldfld class OpenRA.Order OpenRA.Network.UnitOrders/'<ProcessOrder>c__AnonStorey15'::order
IL_0019: callvirt instance bool class OpenRA.Traits.IValidateOrder::OrderValidation(class OpenRA.Network.OrderManager, class OpenRA.World, int32, class OpenRA.Order)
IL_001e: ret
} // end of method <ProcessOrder>c__AnonStorey15::<>m__7
// method line 2081
.method assembly hidebysig
instance default bool '<>m__9' (class OpenRA.Player p) cil managed
{
// Method begins at RVA 0x2b514
// Code size 23 (0x17)
.maxstack 8
IL_0000: ldarg.1
IL_0001: ldfld string OpenRA.Player::InternalName
IL_0006: ldarg.0
IL_0007: ldfld class OpenRA.Order OpenRA.Network.UnitOrders/'<ProcessOrder>c__AnonStorey15'::order
IL_000c: ldfld string OpenRA.Order::TargetString
IL_0011: call bool string::op_Equality(string, string)
IL_0016: ret
} // end of method <ProcessOrder>c__AnonStorey15::<>m__9
} // end of class <ProcessOrder>c__AnonStorey15
} // end of class OpenRA.Network.UnitOrders
}
.namespace OpenRA.Network
{
.class public auto ansi beforefieldinit GameServer
extends [mscorlib]System.Object
{
.field public initonly int32 Id
.field public initonly string Name
.field public initonly string Address
.field public initonly int32 State
.field public initonly int32 Players
.field public initonly string Map
.field public initonly string[] Mods
.field public initonly int32 TTL
.field private static class [System.Core]System.Func`2<string,bool> '<>f__am$cache8'
.custom instance void class [mscorlib]System.Runtime.CompilerServices.CompilerGeneratedAttribute::'.ctor'() = (01 00 00 00 ) // ....
.field private static class [System.Core]System.Func`2<string,string> '<>f__am$cache9'
.custom instance void class [mscorlib]System.Runtime.CompilerServices.CompilerGeneratedAttribute::'.ctor'() = (01 00 00 00 ) // ....
.field private static class [System.Core]System.Func`2<string,string> '<>f__am$cacheA'
.custom instance void class [mscorlib]System.Runtime.CompilerServices.CompilerGeneratedAttribute::'.ctor'() = (01 00 00 00 ) // ....
.field private static class [System.Core]System.Func`2<valuetype [mscorlib]System.Collections.Generic.KeyValuePair`2<string,string>,bool> '<>f__am$cacheB'
.custom instance void class [mscorlib]System.Runtime.CompilerServices.CompilerGeneratedAttribute::'.ctor'() = (01 00 00 00 ) // ....
// method line 31
.method public hidebysig specialname rtspecialname
instance default void '.ctor' () cil managed
{
// Method begins at RVA 0x322c
// Code size 68 (0x44)
.maxstack 3
IL_0000: ldarg.0
IL_0001: ldc.i4.0
IL_0002: stfld int32 OpenRA.Network.GameServer::Id
IL_0007: ldarg.0
IL_0008: ldnull
IL_0009: stfld string OpenRA.Network.GameServer::Name
IL_000e: ldarg.0
IL_000f: ldnull
IL_0010: stfld string OpenRA.Network.GameServer::Address
IL_0015: ldarg.0
IL_0016: ldc.i4.0
IL_0017: stfld int32 OpenRA.Network.GameServer::State
IL_001c: ldarg.0
IL_001d: ldc.i4.0
IL_001e: stfld int32 OpenRA.Network.GameServer::Players
IL_0023: ldarg.0
IL_0024: ldnull
IL_0025: stfld string OpenRA.Network.GameServer::Map
IL_002a: ldarg.0
IL_002b: ldc.i4.0
IL_002c: newarr [mscorlib]System.String
IL_0031: stfld string[] OpenRA.Network.GameServer::Mods
IL_0036: ldarg.0
IL_0037: ldc.i4.0
IL_0038: stfld int32 OpenRA.Network.GameServer::TTL
IL_003d: ldarg.0
IL_003e: call instance void object::'.ctor'()
IL_0043: ret
} // end of method GameServer::.ctor
// method line 32
.method public hidebysig specialname
instance default class [mscorlib]System.Collections.Generic.Dictionary`2<string, string> get_UsefulMods () cil managed
{
// Method begins at RVA 0x327c
// Code size 104 (0x68)
.maxstack 9
IL_0000: ldarg.0
IL_0001: ldfld string[] OpenRA.Network.GameServer::Mods
IL_0006: ldsfld class [System.Core]System.Func`2<string,bool> OpenRA.Network.GameServer::'<>f__am$cache8'
IL_000b: brtrue.s IL_001e
IL_000d: ldnull
IL_000e: ldftn bool class OpenRA.Network.GameServer::'<get_UsefulMods>m__A'(string)
IL_0014: newobj instance void class [System.Core]System.Func`2<string, bool>::'.ctor'(object, native int)
IL_0019: stsfld class [System.Core]System.Func`2<string,bool> OpenRA.Network.GameServer::'<>f__am$cache8'
IL_001e: ldsfld class [System.Core]System.Func`2<string,bool> OpenRA.Network.GameServer::'<>f__am$cache8'
IL_0023: call class [mscorlib]System.Collections.Generic.IEnumerable`1<!!0> class [System.Core]System.Linq.Enumerable::Where<string> (class [mscorlib]System.Collections.Generic.IEnumerable`1<!!0>, class [System.Core]System.Func`2<!!0,bool>)
IL_0028: ldsfld class [System.Core]System.Func`2<string,string> OpenRA.Network.GameServer::'<>f__am$cache9'
IL_002d: brtrue.s IL_0040
IL_002f: ldnull
IL_0030: ldftn string class OpenRA.Network.GameServer::'<get_UsefulMods>m__B'(string)
IL_0036: newobj instance void class [System.Core]System.Func`2<string, string>::'.ctor'(object, native int)
IL_003b: stsfld class [System.Core]System.Func`2<string,string> OpenRA.Network.GameServer::'<>f__am$cache9'
IL_0040: ldsfld class [System.Core]System.Func`2<string,string> OpenRA.Network.GameServer::'<>f__am$cache9'
IL_0045: ldsfld class [System.Core]System.Func`2<string,string> OpenRA.Network.GameServer::'<>f__am$cacheA'
IL_004a: brtrue.s IL_005d
IL_004c: ldnull
IL_004d: ldftn string class OpenRA.Network.GameServer::'<get_UsefulMods>m__C'(string)
IL_0053: newobj instance void class [System.Core]System.Func`2<string, string>::'.ctor'(object, native int)
IL_0058: stsfld class [System.Core]System.Func`2<string,string> OpenRA.Network.GameServer::'<>f__am$cacheA'
IL_005d: ldsfld class [System.Core]System.Func`2<string,string> OpenRA.Network.GameServer::'<>f__am$cacheA'
IL_0062: call class [mscorlib]System.Collections.Generic.Dictionary`2<!!1,!!2> class [System.Core]System.Linq.Enumerable::ToDictionary<string, string, string> (class [mscorlib]System.Collections.Generic.IEnumerable`1<!!0>, class [System.Core]System.Func`2<!!0,!!1>, class [System.Core]System.Func`2<!!0,!!2>)
IL_0067: ret
} // end of method GameServer::get_UsefulMods
// method line 33
.method private static hidebysig
default bool AreVersionsCompatible (string a, string b) cil managed
{
// Method begins at RVA 0x32f0
// Code size 30 (0x1e)
.maxstack 8
IL_0000: ldsfld class OpenRA.GameRules.Settings OpenRA.Game::Settings
IL_0005: ldfld class OpenRA.GameRules.DebugSettings OpenRA.GameRules.Settings::Debug
IL_000a: ldfld bool OpenRA.GameRules.DebugSettings::IgnoreVersionMismatch
IL_000f: brfalse IL_0016
IL_0014: ldc.i4.1
IL_0015: ret
IL_0016: ldarg.0
IL_0017: ldarg.1
IL_0018: call bool string::op_Equality(string, string)
IL_001d: ret
} // end of method GameServer::AreVersionsCompatible
// method line 34
.method public hidebysig
instance default bool CanJoin () cil managed
{
// Method begins at RVA 0x3310
// Code size 97 (0x61)
.maxstack 14
IL_0000: ldarg.0
IL_0001: ldfld int32 OpenRA.Network.GameServer::State
IL_0006: ldc.i4.1
IL_0007: beq IL_000e
IL_000c: ldc.i4.0
IL_000d: ret
IL_000e: call class [mscorlib]System.Collections.Generic.Dictionary`2<string,class [OpenRA.FileFormats]OpenRA.FileFormats.Mod> class OpenRA.Game::get_CurrentMods()
IL_0013: callvirt instance int32 class [mscorlib]System.Collections.Generic.Dictionary`2<string, class [OpenRA.FileFormats]OpenRA.FileFormats.Mod>::get_Count()
IL_0018: ldarg.0
IL_0019: ldfld string[] OpenRA.Network.GameServer::Mods
IL_001e: call int32 class [System.Core]System.Linq.Enumerable::Count<string> (class [mscorlib]System.Collections.Generic.IEnumerable`1<!!0>)
IL_0023: beq IL_002a
IL_0028: ldc.i4.0
IL_0029: ret
IL_002a: ldsfld class OpenRA.ModData OpenRA.Game::modData
IL_002f: callvirt instance class [mscorlib]System.Collections.Generic.Dictionary`2<string,class OpenRA.Map> class OpenRA.ModData::get_AvailableMaps()
IL_0034: ldarg.0
IL_0035: ldfld string OpenRA.Network.GameServer::Map
IL_003a: callvirt instance bool class [mscorlib]System.Collections.Generic.Dictionary`2<string, class OpenRA.Map>::ContainsKey(!0)
IL_003f: brtrue IL_005a
IL_0044: ldsfld class OpenRA.GameRules.Settings OpenRA.Game::Settings
IL_0049: ldfld class OpenRA.GameRules.GameSettings OpenRA.GameRules.Settings::Game
IL_004e: ldfld bool OpenRA.GameRules.GameSettings::AllowDownloading
IL_0053: brtrue IL_005a
IL_0058: ldc.i4.0
IL_0059: ret
IL_005a: ldarg.0
IL_005b: call instance bool class OpenRA.Network.GameServer::CompatibleVersion()
IL_0060: ret
} // end of method GameServer::CanJoin
// method line 35
.method public hidebysig
instance default bool CompatibleVersion () cil managed
{
// Method begins at RVA 0x3380
// Code size 41 (0x29)
.maxstack 7
IL_0000: ldarg.0
IL_0001: call instance class [mscorlib]System.Collections.Generic.Dictionary`2<string,string> class OpenRA.Network.GameServer::get_UsefulMods()
IL_0006: ldsfld class [System.Core]System.Func`2<valuetype [mscorlib]System.Collections.Generic.KeyValuePair`2<string,string>,bool> OpenRA.Network.GameServer::'<>f__am$cacheB'
IL_000b: brtrue.s IL_001e
IL_000d: ldnull
IL_000e: ldftn bool class OpenRA.Network.GameServer::'<CompatibleVersion>m__D'(valuetype [mscorlib]System.Collections.Generic.KeyValuePair`2<string,string>)
IL_0014: newobj instance void class [System.Core]System.Func`2<valuetype [mscorlib]System.Collections.Generic.KeyValuePair`2<string, string>, bool>::'.ctor'(object, native int)
IL_0019: stsfld class [System.Core]System.Func`2<valuetype [mscorlib]System.Collections.Generic.KeyValuePair`2<string,string>,bool> OpenRA.Network.GameServer::'<>f__am$cacheB'
IL_001e: ldsfld class [System.Core]System.Func`2<valuetype [mscorlib]System.Collections.Generic.KeyValuePair`2<string,string>,bool> OpenRA.Network.GameServer::'<>f__am$cacheB'
IL_0023: call bool class [System.Core]System.Linq.Enumerable::All<valuetype [mscorlib]System.Collections.Generic.KeyValuePair`2<string,string>> (class [mscorlib]System.Collections.Generic.IEnumerable`1<!!0>, class [System.Core]System.Func`2<!!0,bool>)
IL_0028: ret
} // end of method GameServer::CompatibleVersion
// method line 36
.method private static hidebysig
default bool '<get_UsefulMods>m__A' (string v) cil managed
{
.custom instance void class [mscorlib]System.Runtime.CompilerServices.CompilerGeneratedAttribute::'.ctor'() = (01 00 00 00 ) // ....
// Method begins at RVA 0x33b8
// Code size 9 (0x9)
.maxstack 8
IL_0000: ldarg.0
IL_0001: ldc.i4.s 0x40
IL_0003: call bool class [System.Core]System.Linq.Enumerable::Contains<char> (class [mscorlib]System.Collections.Generic.IEnumerable`1<!!0>, !!0)
IL_0008: ret
} // end of method GameServer::<get_UsefulMods>m__A
// method line 37
.method private static hidebysig
default string '<get_UsefulMods>m__B' (string v) cil managed
{
.custom instance void class [mscorlib]System.Runtime.CompilerServices.CompilerGeneratedAttribute::'.ctor'() = (01 00 00 00 ) // ....
// Method begins at RVA 0x33c4
// Code size 20 (0x14)
.maxstack 8
IL_0000: ldarg.0
IL_0001: ldc.i4.1
IL_0002: newarr [mscorlib]System.Char
IL_0007: dup
IL_0008: ldc.i4.0
IL_0009: ldc.i4.s 0x40
IL_000b: stelem.i2
IL_000c: callvirt instance string[] string::Split(char[])
IL_0011: ldc.i4.0
IL_0012: ldelem.ref
IL_0013: ret
} // end of method GameServer::<get_UsefulMods>m__B
// method line 38
.method private static hidebysig
default string '<get_UsefulMods>m__C' (string v) cil managed
{
.custom instance void class [mscorlib]System.Runtime.CompilerServices.CompilerGeneratedAttribute::'.ctor'() = (01 00 00 00 ) // ....
// Method begins at RVA 0x33dc
// Code size 20 (0x14)
.maxstack 8
IL_0000: ldarg.0
IL_0001: ldc.i4.1
IL_0002: newarr [mscorlib]System.Char
IL_0007: dup
IL_0008: ldc.i4.0
IL_0009: ldc.i4.s 0x40
IL_000b: stelem.i2
IL_000c: callvirt instance string[] string::Split(char[])
IL_0011: ldc.i4.1
IL_0012: ldelem.ref
IL_0013: ret
} // end of method GameServer::<get_UsefulMods>m__C
// method line 39
.method private static hidebysig
default bool '<CompatibleVersion>m__D' (valuetype [mscorlib]System.Collections.Generic.KeyValuePair`2<string, string> m) cil managed
{
.custom instance void class [mscorlib]System.Runtime.CompilerServices.CompilerGeneratedAttribute::'.ctor'() = (01 00 00 00 ) // ....
// Method begins at RVA 0x33f4
// Code size 60 (0x3c)
.maxstack 15
IL_0000: call class [mscorlib]System.Collections.Generic.Dictionary`2<string,class [OpenRA.FileFormats]OpenRA.FileFormats.Mod> class OpenRA.Game::get_CurrentMods()
IL_0005: ldarga.s 0
IL_0007: call instance !0 valuetype [mscorlib]System.Collections.Generic.KeyValuePair`2<string, string>::get_Key()
IL_000c: callvirt instance bool class [mscorlib]System.Collections.Generic.Dictionary`2<string, class [OpenRA.FileFormats]OpenRA.FileFormats.Mod>::ContainsKey(!0)
IL_0011: brfalse IL_003a
IL_0016: ldarga.s 0
IL_0018: call instance !1 valuetype [mscorlib]System.Collections.Generic.KeyValuePair`2<string, string>::get_Value()
IL_001d: call class [mscorlib]System.Collections.Generic.Dictionary`2<string,class [OpenRA.FileFormats]OpenRA.FileFormats.Mod> class OpenRA.Game::get_CurrentMods()
IL_0022: ldarga.s 0
IL_0024: call instance !0 valuetype [mscorlib]System.Collections.Generic.KeyValuePair`2<string, string>::get_Key()
IL_0029: callvirt instance !1 class [mscorlib]System.Collections.Generic.Dictionary`2<string, class [OpenRA.FileFormats]OpenRA.FileFormats.Mod>::get_Item(!0)
IL_002e: ldfld string [OpenRA.FileFormats]OpenRA.FileFormats.Mod::Version
IL_0033: call bool class OpenRA.Network.GameServer::AreVersionsCompatible(string, string)
IL_0038: br.s IL_003b
IL_003a: ldc.i4.0
IL_003b: ret
} // end of method GameServer::<CompatibleVersion>m__D
.property instance class [mscorlib]System.Collections.Generic.Dictionary`2<string, string> UsefulMods ()
{
.get instance default class [mscorlib]System.Collections.Generic.Dictionary`2<string, string> OpenRA.Network.GameServer::get_UsefulMods ()
}
} // end of class OpenRA.Network.GameServer
}
.namespace OpenRA.Network
{
.class public auto ansi beforefieldinit ReplayConnection
extends [mscorlib]System.Object
implements [mscorlib]System.IDisposable, OpenRA.Network.IConnection {
.field private class [mscorlib]System.IO.FileStream replayStream
.field private class [mscorlib]System.Collections.Generic.List`1<unsigned int8[]> sync
// method line 40
.method public hidebysig specialname rtspecialname
instance default void '.ctor' (string replayFilename) cil managed
{
// Method begins at RVA 0x343c
// Code size 30 (0x1e)
.maxstack 8
IL_0000: ldarg.0
IL_0001: newobj instance void class [mscorlib]System.Collections.Generic.List`1<unsigned int8[]>::'.ctor'()
IL_0006: stfld class [mscorlib]System.Collections.Generic.List`1<unsigned int8[]> OpenRA.Network.ReplayConnection::sync
IL_000b: ldarg.0
IL_000c: call instance void object::'.ctor'()
IL_0011: ldarg.0
IL_0012: ldarg.1
IL_0013: call class [mscorlib]System.IO.FileStream class [mscorlib]System.IO.File::OpenRead(string)
IL_0018: stfld class [mscorlib]System.IO.FileStream OpenRA.Network.ReplayConnection::replayStream
IL_001d: ret
} // end of method ReplayConnection::.ctor
// method line 41
.method public final virtual hidebysig newslot specialname
instance default int32 get_LocalClientId () cil managed
{
// Method begins at RVA 0x345c
// Code size 2 (0x2)
.maxstack 8
IL_0000: ldc.i4.0
IL_0001: ret
} // end of method ReplayConnection::get_LocalClientId
// method line 42
.method public final virtual hidebysig newslot specialname
instance default valuetype OpenRA.Network.ConnectionState get_ConnectionState () cil managed
{
// Method begins at RVA 0x3460
// Code size 2 (0x2)
.maxstack 8
IL_0000: ldc.i4.3
IL_0001: ret
} // end of method ReplayConnection::get_ConnectionState
// method line 43
.method public final virtual hidebysig newslot
instance default void Send (int32 frame, class [mscorlib]System.Collections.Generic.List`1<unsigned int8[]> orders) cil managed
{
// Method begins at RVA 0x3464
// Code size 1 (0x1)
.maxstack 8
IL_0000: ret
} // end of method ReplayConnection::Send
// method line 44
.method public final virtual hidebysig newslot
instance default void SendImmediate (class [mscorlib]System.Collections.Generic.List`1<unsigned int8[]> orders) cil managed
{
// Method begins at RVA 0x3468
// Code size 1 (0x1)
.maxstack 8
IL_0000: ret
} // end of method ReplayConnection::SendImmediate
// method line 45
.method public final virtual hidebysig newslot
instance default void SendSync (int32 frame, unsigned int8[] syncData) cil managed
{
// Method begins at RVA 0x346c
// Code size 43 (0x2b)
.maxstack 8
.locals init (
class [mscorlib]System.IO.MemoryStream V_0)
IL_0000: newobj instance void class [mscorlib]System.IO.MemoryStream::'.ctor'()
IL_0005: stloc.0
IL_0006: ldloc.0
IL_0007: ldarg.1
IL_0008: call unsigned int8[] class [mscorlib]System.BitConverter::GetBytes(int32)
IL_000d: call void class OpenRA.Network.OrderIO::Write(class [mscorlib]System.IO.Stream, unsigned int8[])
IL_0012: ldloc.0
IL_0013: ldarg.2
IL_0014: call void class OpenRA.Network.OrderIO::Write(class [mscorlib]System.IO.Stream, unsigned int8[])
IL_0019: ldarg.0
IL_001a: ldfld class [mscorlib]System.Collections.Generic.List`1<unsigned int8[]> OpenRA.Network.ReplayConnection::sync
IL_001f: ldloc.0
IL_0020: callvirt instance unsigned int8[] class [mscorlib]System.IO.MemoryStream::ToArray()
IL_0025: callvirt instance void class [mscorlib]System.Collections.Generic.List`1<unsigned int8[]>::Add(!0)
IL_002a: ret
} // end of method ReplayConnection::SendSync
// method line 46
.method public final virtual hidebysig newslot
instance default void Receive (class [System.Core]System.Action`2<int32, unsigned int8[]> packetFn) cil managed
{
// Method begins at RVA 0x34a4
// Code size 151 (0x97)
.maxstack 24
.locals init (
class [mscorlib]System.IO.BinaryReader V_0,
int32 V_1,
int32 V_2,
unsigned int8[] V_3)
IL_0000: br IL_0029
IL_0005: ldarg.1
IL_0006: ldarg.0
IL_0007: call instance int32 class OpenRA.Network.ReplayConnection::get_LocalClientId()
IL_000c: ldarg.0
IL_000d: ldfld class [mscorlib]System.Collections.Generic.List`1<unsigned int8[]> OpenRA.Network.ReplayConnection::sync
IL_0012: ldc.i4.0
IL_0013: callvirt instance !0 class [mscorlib]System.Collections.Generic.List`1<unsigned int8[]>::get_Item(int32)
IL_0018: callvirt instance void class [System.Core]System.Action`2<int32, unsigned int8[]>::Invoke(!0, !1)
IL_001d: ldarg.0
IL_001e: ldfld class [mscorlib]System.Collections.Generic.List`1<unsigned int8[]> OpenRA.Network.ReplayConnection::sync
IL_0023: ldc.i4.0
IL_0024: callvirt instance void class [mscorlib]System.Collections.Generic.List`1<unsigned int8[]>::RemoveAt(int32)
IL_0029: ldarg.0
IL_002a: ldfld class [mscorlib]System.Collections.Generic.List`1<unsigned int8[]> OpenRA.Network.ReplayConnection::sync
IL_002f: callvirt instance int32 class [mscorlib]System.Collections.Generic.List`1<unsigned int8[]>::get_Count()
IL_0034: brtrue IL_0005
IL_0039: ldarg.0
IL_003a: ldfld class [mscorlib]System.IO.FileStream OpenRA.Network.ReplayConnection::replayStream
IL_003f: brtrue IL_0045
IL_0044: ret
IL_0045: ldarg.0
IL_0046: ldfld class [mscorlib]System.IO.FileStream OpenRA.Network.ReplayConnection::replayStream
IL_004b: newobj instance void class [mscorlib]System.IO.BinaryReader::'.ctor'(class [mscorlib]System.IO.Stream)
IL_0050: stloc.0
IL_0051: br IL_0074
IL_0056: ldloc.0
IL_0057: callvirt instance int32 class [mscorlib]System.IO.BinaryReader::ReadInt32()
IL_005c: stloc.1
IL_005d: ldloc.0
IL_005e: callvirt instance int32 class [mscorlib]System.IO.BinaryReader::ReadInt32()
IL_0063: stloc.2
IL_0064: ldloc.0
IL_0065: ldloc.2
IL_0066: callvirt instance unsigned int8[] class [mscorlib]System.IO.BinaryReader::ReadBytes(int32)
IL_006b: stloc.3
IL_006c: ldarg.1
IL_006d: ldloc.1
IL_006e: ldloc.3
IL_006f: callvirt instance void class [System.Core]System.Action`2<int32, unsigned int8[]>::Invoke(!0, !1)
IL_0074: ldarg.0
IL_0075: ldfld class [mscorlib]System.IO.FileStream OpenRA.Network.ReplayConnection::replayStream
IL_007a: callvirt instance int64 class [mscorlib]System.IO.Stream::get_Position()
IL_007f: ldarg.0
IL_0080: ldfld class [mscorlib]System.IO.FileStream OpenRA.Network.ReplayConnection::replayStream
IL_0085: callvirt instance int64 class [mscorlib]System.IO.Stream::get_Length()
IL_008a: blt IL_0056
IL_008f: ldarg.0
IL_0090: ldnull
IL_0091: stfld class [mscorlib]System.IO.FileStream OpenRA.Network.ReplayConnection::replayStream
IL_0096: ret
} // end of method ReplayConnection::Receive
// method line 47
.method public final virtual hidebysig newslot
instance default void Dispose () cil managed
{
// Method begins at RVA 0x3548
// Code size 1 (0x1)
.maxstack 8
IL_0000: ret
} // end of method ReplayConnection::Dispose
.property instance int32 LocalClientId ()
{
.get instance default int32 OpenRA.Network.ReplayConnection::get_LocalClientId ()
}
.property instance valuetype OpenRA.Network.ConnectionState ConnectionState ()
{
.get instance default valuetype OpenRA.Network.ConnectionState OpenRA.Network.ReplayConnection::get_ConnectionState ()
}
} // end of class OpenRA.Network.ReplayConnection
}
.namespace OpenRA.Network
{
.class private auto ansi beforefieldinit FrameData
extends [mscorlib]System.Object
{
.field private initonly class [mscorlib]System.Collections.Generic.Dictionary`2<int32,int32> clientQuitTimes
.field private initonly class [mscorlib]System.Collections.Generic.Dictionary`2<int32,class [mscorlib]System.Collections.Generic.Dictionary`2<int32,unsigned int8[]>> framePackets
.field private static class [System.Core]System.Func`2<valuetype [mscorlib]System.Collections.Generic.KeyValuePair`2<int32,int32>,int32> '<>f__am$cache2'
.custom instance void class [mscorlib]System.Runtime.CompilerServices.CompilerGeneratedAttribute::'.ctor'() = (01 00 00 00 ) // ....
.field private static class [System.Core]System.Func`2<int32,int32> '<>f__am$cache3'
.custom instance void class [mscorlib]System.Runtime.CompilerServices.CompilerGeneratedAttribute::'.ctor'() = (01 00 00 00 ) // ....
.field private static class [System.Core]System.Func`2<int32,int32> '<>f__am$cache4'
.custom instance void class [mscorlib]System.Runtime.CompilerServices.CompilerGeneratedAttribute::'.ctor'() = (01 00 00 00 ) // ....
// method line 48
.method public hidebysig specialname rtspecialname
instance default void '.ctor' () cil managed
{
// Method begins at RVA 0x354c
// Code size 29 (0x1d)
.maxstack 8
IL_0000: ldarg.0
IL_0001: newobj instance void class [mscorlib]System.Collections.Generic.Dictionary`2<int32, int32>::'.ctor'()
IL_0006: stfld class [mscorlib]System.Collections.Generic.Dictionary`2<int32,int32> OpenRA.Network.FrameData::clientQuitTimes
IL_000b: ldarg.0
IL_000c: newobj instance void class [mscorlib]System.Collections.Generic.Dictionary`2<int32, class [mscorlib]System.Collections.Generic.Dictionary`2<int32, unsigned int8[]>>::'.ctor'()
IL_0011: stfld class [mscorlib]System.Collections.Generic.Dictionary`2<int32,class [mscorlib]System.Collections.Generic.Dictionary`2<int32,unsigned int8[]>> OpenRA.Network.FrameData::framePackets
IL_0016: ldarg.0
IL_0017: call instance void object::'.ctor'()
IL_001c: ret
} // end of method FrameData::.ctor
// method line 49
.method public hidebysig
instance default class [mscorlib]System.Collections.Generic.IEnumerable`1<int32> ClientsPlayingInFrame (int32 frame) cil managed
{
// Method begins at RVA 0x356c
// Code size 105 (0x69)
.maxstack 9
.locals init (
class OpenRA.Network.FrameData/'<ClientsPlayingInFrame>c__AnonStorey16' V_0)
IL_0000: newobj instance void class OpenRA.Network.FrameData/'<ClientsPlayingInFrame>c__AnonStorey16'::'.ctor'()
IL_0005: stloc.0
IL_0006: ldloc.0
IL_0007: ldarg.1
IL_0008: stfld int32 OpenRA.Network.FrameData/'<ClientsPlayingInFrame>c__AnonStorey16'::frame
IL_000d: ldarg.0
IL_000e: ldfld class [mscorlib]System.Collections.Generic.Dictionary`2<int32,int32> OpenRA.Network.FrameData::clientQuitTimes
IL_0013: ldloc.0
IL_0014: ldftn instance bool class OpenRA.Network.FrameData/'<ClientsPlayingInFrame>c__AnonStorey16'::'<>m__E'(valuetype [mscorlib]System.Collections.Generic.KeyValuePair`2<int32,int32>)
IL_001a: newobj instance void class [System.Core]System.Func`2<valuetype [mscorlib]System.Collections.Generic.KeyValuePair`2<int32, int32>, bool>::'.ctor'(object, native int)
IL_001f: call class [mscorlib]System.Collections.Generic.IEnumerable`1<!!0> class [System.Core]System.Linq.Enumerable::Where<valuetype [mscorlib]System.Collections.Generic.KeyValuePair`2<int32,int32>> (class [mscorlib]System.Collections.Generic.IEnumerable`1<!!0>, class [System.Core]System.Func`2<!!0,bool>)
IL_0024: ldsfld class [System.Core]System.Func`2<valuetype [mscorlib]System.Collections.Generic.KeyValuePair`2<int32,int32>,int32> OpenRA.Network.FrameData::'<>f__am$cache2'
IL_0029: brtrue.s IL_003c
IL_002b: ldnull
IL_002c: ldftn int32 class OpenRA.Network.FrameData::'<ClientsPlayingInFrame>m__F'(valuetype [mscorlib]System.Collections.Generic.KeyValuePair`2<int32,int32>)
IL_0032: newobj instance void class [System.Core]System.Func`2<valuetype [mscorlib]System.Collections.Generic.KeyValuePair`2<int32, int32>, int32>::'.ctor'(object, native int)
IL_0037: stsfld class [System.Core]System.Func`2<valuetype [mscorlib]System.Collections.Generic.KeyValuePair`2<int32,int32>,int32> OpenRA.Network.FrameData::'<>f__am$cache2'
IL_003c: ldsfld class [System.Core]System.Func`2<valuetype [mscorlib]System.Collections.Generic.KeyValuePair`2<int32,int32>,int32> OpenRA.Network.FrameData::'<>f__am$cache2'
IL_0041: call class [mscorlib]System.Collections.Generic.IEnumerable`1<!!1> class [System.Core]System.Linq.Enumerable::Select<valuetype [mscorlib]System.Collections.Generic.KeyValuePair`2<int32,int32>, int32> (class [mscorlib]System.Collections.Generic.IEnumerable`1<!!0>, class [System.Core]System.Func`2<!!0,!!1>)
IL_0046: ldsfld class [System.Core]System.Func`2<int32,int32> OpenRA.Network.FrameData::'<>f__am$cache3'
IL_004b: brtrue.s IL_005e
IL_004d: ldnull
IL_004e: ldftn int32 class OpenRA.Network.FrameData::'<ClientsPlayingInFrame>m__10'(int32)
IL_0054: newobj instance void class [System.Core]System.Func`2<int32, int32>::'.ctor'(object, native int)
IL_0059: stsfld class [System.Core]System.Func`2<int32,int32> OpenRA.Network.FrameData::'<>f__am$cache3'
IL_005e: ldsfld class [System.Core]System.Func`2<int32,int32> OpenRA.Network.FrameData::'<>f__am$cache3'
IL_0063: call class [System.Core]System.Linq.IOrderedEnumerable`1<!!0> class [System.Core]System.Linq.Enumerable::OrderBy<int32, int32> (class [mscorlib]System.Collections.Generic.IEnumerable`1<!!0>, class [System.Core]System.Func`2<!!0,!!1>)
IL_0068: ret
} // end of method FrameData::ClientsPlayingInFrame
// method line 50
.method public hidebysig
instance default void ClientQuit (int32 clientId, int32 lastClientFrame) cil managed
{
// Method begins at RVA 0x35e4
// Code size 14 (0xe)
.maxstack 8
IL_0000: ldarg.0
IL_0001: ldfld class [mscorlib]System.Collections.Generic.Dictionary`2<int32,int32> OpenRA.Network.FrameData::clientQuitTimes
IL_0006: ldarg.1
IL_0007: ldarg.2
IL_0008: callvirt instance void class [mscorlib]System.Collections.Generic.Dictionary`2<int32, int32>::set_Item(!0, !1)
IL_000d: ret
} // end of method FrameData::ClientQuit
// method line 51
.method public hidebysig
instance default void AddFrameOrders (int32 clientId, int32 frame, unsigned int8[] orders) cil managed
{
// Method begins at RVA 0x35f4
// Code size 22 (0x16)
.maxstack 5
.locals init (
class [mscorlib]System.Collections.Generic.Dictionary`2<int32, unsigned int8[]> V_0)
IL_0000: ldarg.0
IL_0001: ldfld class [mscorlib]System.Collections.Generic.Dictionary`2<int32,class [mscorlib]System.Collections.Generic.Dictionary`2<int32,unsigned int8[]>> OpenRA.Network.FrameData::framePackets
IL_0006: ldarg.2
IL_0007: call !!1 class [OpenRA.FileFormats]OpenRA.Exts::GetOrAdd<int32, class [mscorlib]System.Collections.Generic.Dictionary`2<int32,unsigned int8[]>> (class [mscorlib]System.Collections.Generic.Dictionary`2<!!0,!!1>, !!0)
IL_000c: stloc.0
IL_000d: ldloc.0
IL_000e: ldarg.1
IL_000f: ldarg.3
IL_0010: callvirt instance void class [mscorlib]System.Collections.Generic.Dictionary`2<int32, unsigned int8[]>::Add(!0, !1)
IL_0015: ret
} // end of method FrameData::AddFrameOrders
// method line 52
.method public hidebysig
instance default bool IsReadyForFrame (int32 frame) cil managed
{
// Method begins at RVA 0x3618
// Code size 16 (0x10)
.maxstack 8
IL_0000: ldarg.0
IL_0001: ldarg.1
IL_0002: call instance class [mscorlib]System.Collections.Generic.IEnumerable`1<int32> class OpenRA.Network.FrameData::ClientsNotReadyForFrame(int32)
IL_0007: call bool class [System.Core]System.Linq.Enumerable::Any<int32> (class [mscorlib]System.Collections.Generic.IEnumerable`1<!!0>)
IL_000c: ldc.i4.0
IL_000d: ceq
IL_000f: ret
} // end of method FrameData::IsReadyForFrame
// method line 53
.method public hidebysig
instance default class [mscorlib]System.Collections.Generic.IEnumerable`1<int32> ClientsNotReadyForFrame (int32 frame) cil managed
{
// Method begins at RVA 0x362c
// Code size 49 (0x31)
.maxstack 8
.locals init (
class OpenRA.Network.FrameData/'<ClientsNotReadyForFrame>c__AnonStorey17' V_0)
IL_0000: newobj instance void class OpenRA.Network.FrameData/'<ClientsNotReadyForFrame>c__AnonStorey17'::'.ctor'()
IL_0005: stloc.0
IL_0006: ldloc.0
IL_0007: ldarg.0
IL_0008: ldfld class [mscorlib]System.Collections.Generic.Dictionary`2<int32,class [mscorlib]System.Collections.Generic.Dictionary`2<int32,unsigned int8[]>> OpenRA.Network.FrameData::framePackets
IL_000d: ldarg.1
IL_000e: call !!1 class [OpenRA.FileFormats]OpenRA.Exts::GetOrAdd<int32, class [mscorlib]System.Collections.Generic.Dictionary`2<int32,unsigned int8[]>> (class [mscorlib]System.Collections.Generic.Dictionary`2<!!0,!!1>, !!0)
IL_0013: stfld class [mscorlib]System.Collections.Generic.Dictionary`2<int32,unsigned int8[]> OpenRA.Network.FrameData/'<ClientsNotReadyForFrame>c__AnonStorey17'::frameData
IL_0018: ldarg.0
IL_0019: ldarg.1
IL_001a: call instance class [mscorlib]System.Collections.Generic.IEnumerable`1<int32> class OpenRA.Network.FrameData::ClientsPlayingInFrame(int32)
IL_001f: ldloc.0
IL_0020: ldftn instance bool class OpenRA.Network.FrameData/'<ClientsNotReadyForFrame>c__AnonStorey17'::'<>m__11'(int32)
IL_0026: newobj instance void class [System.Core]System.Func`2<int32, bool>::'.ctor'(object, native int)
IL_002b: call class [mscorlib]System.Collections.Generic.IEnumerable`1<!!0> class [System.Core]System.Linq.Enumerable::Where<int32> (class [mscorlib]System.Collections.Generic.IEnumerable`1<!!0>, class [System.Core]System.Func`2<!!0,bool>)
IL_0030: ret
} // end of method FrameData::ClientsNotReadyForFrame
// method line 54
.method public hidebysig
instance default class [mscorlib]System.Collections.Generic.IEnumerable`1<valuetype OpenRA.Network.FrameData/ClientOrder> OrdersForFrame (class OpenRA.World world, int32 frame) cil managed
{
// Method begins at RVA 0x366c
// Code size 104 (0x68)
.maxstack 12
.locals init (
class OpenRA.Network.FrameData/'<OrdersForFrame>c__AnonStorey18' V_0,
class [mscorlib]System.Collections.Generic.Dictionary`2<int32, unsigned int8[]> V_1)
IL_0000: newobj instance void class OpenRA.Network.FrameData/'<OrdersForFrame>c__AnonStorey18'::'.ctor'()
IL_0005: stloc.0
IL_0006: ldloc.0
IL_0007: ldarg.1
IL_0008: stfld class OpenRA.World OpenRA.Network.FrameData/'<OrdersForFrame>c__AnonStorey18'::world
IL_000d: ldloc.0
IL_000e: ldarg.0
IL_000f: ldfld class [mscorlib]System.Collections.Generic.Dictionary`2<int32,class [mscorlib]System.Collections.Generic.Dictionary`2<int32,unsigned int8[]>> OpenRA.Network.FrameData::framePackets
IL_0014: ldarg.2
IL_0015: callvirt instance !1 class [mscorlib]System.Collections.Generic.Dictionary`2<int32, class [mscorlib]System.Collections.Generic.Dictionary`2<int32, unsigned int8[]>>::get_Item(!0)
IL_001a: stfld class [mscorlib]System.Collections.Generic.Dictionary`2<int32,unsigned int8[]> OpenRA.Network.FrameData/'<OrdersForFrame>c__AnonStorey18'::frameData
IL_001f: ldarg.0
IL_0020: ldarg.2
IL_0021: call instance class [mscorlib]System.Collections.Generic.IEnumerable`1<int32> class OpenRA.Network.FrameData::ClientsPlayingInFrame(int32)
IL_0026: ldsfld class [System.Core]System.Func`2<int32,int32> OpenRA.Network.FrameData::'<>f__am$cache4'
IL_002b: brtrue.s IL_003e
IL_002d: ldnull
IL_002e: ldftn int32 class OpenRA.Network.FrameData::'<OrdersForFrame>m__12'(int32)
IL_0034: newobj instance void class [System.Core]System.Func`2<int32, int32>::'.ctor'(object, native int)
IL_0039: stsfld class [System.Core]System.Func`2<int32,int32> OpenRA.Network.FrameData::'<>f__am$cache4'
IL_003e: ldsfld class [System.Core]System.Func`2<int32,int32> OpenRA.Network.FrameData::'<>f__am$cache4'
IL_0043: ldloc.0
IL_0044: ldftn instance unsigned int8[] class OpenRA.Network.FrameData/'<OrdersForFrame>c__AnonStorey18'::'<>m__13'(int32)
IL_004a: newobj instance void class [System.Core]System.Func`2<int32, unsigned int8[]>::'.ctor'(object, native int)
IL_004f: call class [mscorlib]System.Collections.Generic.Dictionary`2<!!1,!!2> class [System.Core]System.Linq.Enumerable::ToDictionary<int32, int32, unsigned int8[]> (class [mscorlib]System.Collections.Generic.IEnumerable`1<!!0>, class [System.Core]System.Func`2<!!0,!!1>, class [System.Core]System.Func`2<!!0,!!2>)
IL_0054: stloc.1
IL_0055: ldloc.1
IL_0056: ldloc.0
IL_0057: ldftn instance class [mscorlib]System.Collections.Generic.IEnumerable`1<valuetype OpenRA.Network.FrameData/ClientOrder> class OpenRA.Network.FrameData/'<OrdersForFrame>c__AnonStorey18'::'<>m__14'(valuetype [mscorlib]System.Collections.Generic.KeyValuePair`2<int32,unsigned int8[]>)
IL_005d: newobj instance void class [System.Core]System.Func`2<valuetype [mscorlib]System.Collections.Generic.KeyValuePair`2<int32, unsigned int8[]>, class [mscorlib]System.Collections.Generic.IEnumerable`1<valuetype OpenRA.Network.FrameData/ClientOrder>>::'.ctor'(object, native int)
IL_0062: call class [mscorlib]System.Collections.Generic.IEnumerable`1<!!1> class [System.Core]System.Linq.Enumerable::SelectMany<valuetype [mscorlib]System.Collections.Generic.KeyValuePair`2<int32,unsigned int8[]>, valuetype OpenRA.Network.FrameData/ClientOrder> (class [mscorlib]System.Collections.Generic.IEnumerable`1<!!0>, class [System.Core]System.Func`2<!!0,class [mscorlib]System.Collections.Generic.IEnumerable`1<!!1>>)
IL_0067: ret
} // end of method FrameData::OrdersForFrame
// method line 55
.method private static hidebysig
default int32 '<ClientsPlayingInFrame>m__F' (valuetype [mscorlib]System.Collections.Generic.KeyValuePair`2<int32, int32> x) cil managed
{
.custom instance void class [mscorlib]System.Runtime.CompilerServices.CompilerGeneratedAttribute::'.ctor'() = (01 00 00 00 ) // ....
// Method begins at RVA 0x36e0
// Code size 8 (0x8)
.maxstack 8
IL_0000: ldarga.s 0
IL_0002: call instance !0 valuetype [mscorlib]System.Collections.Generic.KeyValuePair`2<int32, int32>::get_Key()
IL_0007: ret
} // end of method FrameData::<ClientsPlayingInFrame>m__F
// method line 56
.method private static hidebysig
default int32 '<ClientsPlayingInFrame>m__10' (int32 x) cil managed
{
.custom instance void class [mscorlib]System.Runtime.CompilerServices.CompilerGeneratedAttribute::'.ctor'() = (01 00 00 00 ) // ....
// Method begins at RVA 0x36ec
// Code size 2 (0x2)
.maxstack 8
IL_0000: ldarg.0
IL_0001: ret
} // end of method FrameData::<ClientsPlayingInFrame>m__10
// method line 57
.method private static hidebysig
default int32 '<OrdersForFrame>m__12' (int32 k) cil managed
{
.custom instance void class [mscorlib]System.Runtime.CompilerServices.CompilerGeneratedAttribute::'.ctor'() = (01 00 00 00 ) // ....
// Method begins at RVA 0x36f0
// Code size 2 (0x2)
.maxstack 8
IL_0000: ldarg.0
IL_0001: ret
} // end of method FrameData::<OrdersForFrame>m__12
.class nested public sequential ansi sealed beforefieldinit ClientOrder
extends [mscorlib]System.ValueType
{
.field public int32 Client
.field public class OpenRA.Order Order
} // end of class ClientOrder
.class nested private auto ansi sealed beforefieldinit '<ClientsPlayingInFrame>c__AnonStorey16'
extends [mscorlib]System.Object
{
.custom instance void class [mscorlib]System.Runtime.CompilerServices.CompilerGeneratedAttribute::'.ctor'() = (01 00 00 00 ) // ....
.field assembly int32 frame
// method line 2082
.method public hidebysig specialname rtspecialname
instance default void '.ctor' () cil managed
{
// Method begins at RVA 0x2b52c
// Code size 7 (0x7)
.maxstack 8
IL_0000: ldarg.0
IL_0001: call instance void object::'.ctor'()
IL_0006: ret
} // end of method <ClientsPlayingInFrame>c__AnonStorey16::.ctor
// method line 2083
.method assembly hidebysig
instance default bool '<>m__E' (valuetype [mscorlib]System.Collections.Generic.KeyValuePair`2<int32, int32> x) cil managed
{
// Method begins at RVA 0x2b534
// Code size 19 (0x13)
.maxstack 8
IL_0000: ldarg.0
IL_0001: ldfld int32 OpenRA.Network.FrameData/'<ClientsPlayingInFrame>c__AnonStorey16'::frame
IL_0006: ldarga.s 1
IL_0008: call instance !1 valuetype [mscorlib]System.Collections.Generic.KeyValuePair`2<int32, int32>::get_Value()
IL_000d: cgt
IL_000f: ldc.i4.0
IL_0010: ceq
IL_0012: ret
} // end of method <ClientsPlayingInFrame>c__AnonStorey16::<>m__E
} // end of class <ClientsPlayingInFrame>c__AnonStorey16
.class nested private auto ansi sealed beforefieldinit '<ClientsNotReadyForFrame>c__AnonStorey17'
extends [mscorlib]System.Object
{
.custom instance void class [mscorlib]System.Runtime.CompilerServices.CompilerGeneratedAttribute::'.ctor'() = (01 00 00 00 ) // ....
.field assembly class [mscorlib]System.Collections.Generic.Dictionary`2<int32,unsigned int8[]> frameData
// method line 2084
.method public hidebysig specialname rtspecialname
instance default void '.ctor' () cil managed
{
// Method begins at RVA 0x2b548
// Code size 7 (0x7)
.maxstack 8
IL_0000: ldarg.0
IL_0001: call instance void object::'.ctor'()
IL_0006: ret
} // end of method <ClientsNotReadyForFrame>c__AnonStorey17::.ctor
// method line 2085
.method assembly hidebysig
instance default bool '<>m__11' (int32 client) cil managed
{
// Method begins at RVA 0x2b550
// Code size 16 (0x10)
.maxstack 8
IL_0000: ldarg.0
IL_0001: ldfld class [mscorlib]System.Collections.Generic.Dictionary`2<int32,unsigned int8[]> OpenRA.Network.FrameData/'<ClientsNotReadyForFrame>c__AnonStorey17'::frameData
IL_0006: ldarg.1
IL_0007: callvirt instance bool class [mscorlib]System.Collections.Generic.Dictionary`2<int32, unsigned int8[]>::ContainsKey(!0)
IL_000c: ldc.i4.0
IL_000d: ceq
IL_000f: ret
} // end of method <ClientsNotReadyForFrame>c__AnonStorey17::<>m__11
} // end of class <ClientsNotReadyForFrame>c__AnonStorey17
.class nested private auto ansi sealed beforefieldinit '<OrdersForFrame>c__AnonStorey18'
extends [mscorlib]System.Object
{
.custom instance void class [mscorlib]System.Runtime.CompilerServices.CompilerGeneratedAttribute::'.ctor'() = (01 00 00 00 ) // ....
.field assembly class [mscorlib]System.Collections.Generic.Dictionary`2<int32,unsigned int8[]> frameData
.field assembly class OpenRA.World world
// method line 2086
.method public hidebysig specialname rtspecialname
instance default void '.ctor' () cil managed
{
// Method begins at RVA 0x2b564
// Code size 7 (0x7)
.maxstack 8
IL_0000: ldarg.0
IL_0001: call instance void object::'.ctor'()
IL_0006: ret
} // end of method <OrdersForFrame>c__AnonStorey18::.ctor
// method line 2087
.method assembly hidebysig
instance default unsigned int8[] '<>m__13' (int32 v) cil managed
{
// Method begins at RVA 0x2b56c
// Code size 13 (0xd)
.maxstack 8
IL_0000: ldarg.0
IL_0001: ldfld class [mscorlib]System.Collections.Generic.Dictionary`2<int32,unsigned int8[]> OpenRA.Network.FrameData/'<OrdersForFrame>c__AnonStorey18'::frameData
IL_0006: ldarg.1
IL_0007: callvirt instance !1 class [mscorlib]System.Collections.Generic.Dictionary`2<int32, unsigned int8[]>::get_Item(!0)
IL_000c: ret
} // end of method <OrdersForFrame>c__AnonStorey18::<>m__13
// method line 2088
.method assembly hidebysig
instance default class [mscorlib]System.Collections.Generic.IEnumerable`1<valuetype OpenRA.Network.FrameData/ClientOrder> '<>m__14' (valuetype [mscorlib]System.Collections.Generic.KeyValuePair`2<int32, unsigned int8[]> x) cil managed
{
// Method begins at RVA 0x2b57c
// Code size 60 (0x3c)
.maxstack 8
.locals init (
class OpenRA.Network.FrameData/'<OrdersForFrame>c__AnonStorey18'/'<OrdersForFrame>c__AnonStorey19' V_0)
IL_0000: newobj instance void class OpenRA.Network.FrameData/'<OrdersForFrame>c__AnonStorey18'/'<OrdersForFrame>c__AnonStorey19'::'.ctor'()
IL_0005: stloc.0
IL_0006: ldloc.0
IL_0007: ldarg.0
IL_0008: stfld class OpenRA.Network.FrameData/'<OrdersForFrame>c__AnonStorey18' OpenRA.Network.FrameData/'<OrdersForFrame>c__AnonStorey18'/'<OrdersForFrame>c__AnonStorey19'::'<>f__ref$24'
IL_000d: ldloc.0
IL_000e: ldarg.1
IL_000f: stfld valuetype [mscorlib]System.Collections.Generic.KeyValuePair`2<int32,unsigned int8[]> OpenRA.Network.FrameData/'<OrdersForFrame>c__AnonStorey18'/'<OrdersForFrame>c__AnonStorey19'::x
IL_0014: ldloc.0
IL_0015: ldflda valuetype [mscorlib]System.Collections.Generic.KeyValuePair`2<int32,unsigned int8[]> OpenRA.Network.FrameData/'<OrdersForFrame>c__AnonStorey18'/'<OrdersForFrame>c__AnonStorey19'::x
IL_001a: call instance !1 valuetype [mscorlib]System.Collections.Generic.KeyValuePair`2<int32, unsigned int8[]>::get_Value()
IL_001f: ldarg.0
IL_0020: ldfld class OpenRA.World OpenRA.Network.FrameData/'<OrdersForFrame>c__AnonStorey18'::world
IL_0025: call class [mscorlib]System.Collections.Generic.List`1<class OpenRA.Order> class OpenRA.Network.OrderIO::ToOrderList(unsigned int8[], class OpenRA.World)
IL_002a: ldloc.0
IL_002b: ldftn instance valuetype OpenRA.Network.FrameData/ClientOrder class OpenRA.Network.FrameData/'<OrdersForFrame>c__AnonStorey18'/'<OrdersForFrame>c__AnonStorey19'::'<>m__15'(class OpenRA.Order)
IL_0031: newobj instance void class [System.Core]System.Func`2<class OpenRA.Order, valuetype OpenRA.Network.FrameData/ClientOrder>::'.ctor'(object, native int)
IL_0036: call class [mscorlib]System.Collections.Generic.IEnumerable`1<!!1> class [System.Core]System.Linq.Enumerable::Select<class OpenRA.Order, valuetype OpenRA.Network.FrameData/ClientOrder> (class [mscorlib]System.Collections.Generic.IEnumerable`1<!!0>, class [System.Core]System.Func`2<!!0,!!1>)
IL_003b: ret
} // end of method <OrdersForFrame>c__AnonStorey18::<>m__14
.class nested private auto ansi sealed beforefieldinit '<OrdersForFrame>c__AnonStorey19'
extends [mscorlib]System.Object
{
.field assembly valuetype [mscorlib]System.Collections.Generic.KeyValuePair`2<int32,unsigned int8[]> x
.field assembly class OpenRA.Network.FrameData/'<OrdersForFrame>c__AnonStorey18' '<>f__ref$24'
// method line 2089
.method public hidebysig specialname rtspecialname
instance default void '.ctor' () cil managed
{
// Method begins at RVA 0x2b5c4
// Code size 7 (0x7)
.maxstack 8
IL_0000: ldarg.0
IL_0001: call instance void object::'.ctor'()
IL_0006: ret
} // end of method <OrdersForFrame>c__AnonStorey19::.ctor
// method line 2090
.method assembly hidebysig
instance default valuetype OpenRA.Network.FrameData/ClientOrder '<>m__15' (class OpenRA.Order o) cil managed
{
// Method begins at RVA 0x2b5cc
// Code size 36 (0x24)
.maxstack 4
.locals init (
valuetype OpenRA.Network.FrameData/ClientOrder V_0)
IL_0000: ldloca.s 0
IL_0002: initobj OpenRA.Network.FrameData/ClientOrder
IL_0008: ldloca.s 0
IL_000a: ldarg.0
IL_000b: ldflda valuetype [mscorlib]System.Collections.Generic.KeyValuePair`2<int32,unsigned int8[]> OpenRA.Network.FrameData/'<OrdersForFrame>c__AnonStorey18'/'<OrdersForFrame>c__AnonStorey19'::x
IL_0010: call instance !0 valuetype [mscorlib]System.Collections.Generic.KeyValuePair`2<int32, unsigned int8[]>::get_Key()
IL_0015: stfld int32 OpenRA.Network.FrameData/ClientOrder::Client
IL_001a: ldloca.s 0
IL_001c: ldarg.1
IL_001d: stfld class OpenRA.Order OpenRA.Network.FrameData/ClientOrder::Order
IL_0022: ldloc.0
IL_0023: ret
} // end of method <OrdersForFrame>c__AnonStorey19::<>m__15
} // end of class <OrdersForFrame>c__AnonStorey19
} // end of class <OrdersForFrame>c__AnonStorey18
} // end of class OpenRA.Network.FrameData
}
.namespace OpenRA
{
.class private auto ansi sealed OrderFields
extends [mscorlib]System.Enum
{
.custom instance void class [mscorlib]System.FlagsAttribute::'.ctor'() = (01 00 00 00 ) // ....
.field public specialname rtspecialname unsigned int8 value__
.field public static literal valuetype OpenRA.OrderFields TargetActor = int8(0x01)
.field public static literal valuetype OpenRA.OrderFields TargetLocation = int8(0x02)
.field public static literal valuetype OpenRA.OrderFields TargetString = int8(0x04)
.field public static literal valuetype OpenRA.OrderFields Queued = int8(0x08)
.field public static literal valuetype OpenRA.OrderFields ExtraLocation = int8(0x10)
.field public static literal valuetype OpenRA.OrderFields ExtraData = int8(0x20)
} // end of class OpenRA.OrderFields
}
.namespace OpenRA
{
.class private auto ansi abstract sealed beforefieldinit OrderFieldsExts
extends [mscorlib]System.Object
{
.custom instance void class [System.Core]System.Runtime.CompilerServices.ExtensionAttribute::'.ctor'() = (01 00 00 00 ) // ....
// method line 58
.method public static hidebysig
default bool HasField (valuetype OpenRA.OrderFields of, valuetype OpenRA.OrderFields f) cil managed
{
.custom instance void class [System.Core]System.Runtime.CompilerServices.ExtensionAttribute::'.ctor'() = (01 00 00 00 ) // ....
// Method begins at RVA 0x36f4
// Code size 11 (0xb)
.maxstack 8
IL_0000: ldarg.0
IL_0001: ldarg.1
IL_0002: and
IL_0003: conv.u1
IL_0004: ldc.i4.0
IL_0005: ceq
IL_0007: ldc.i4.0
IL_0008: ceq
IL_000a: ret
} // end of method OrderFieldsExts::HasField
} // end of class OpenRA.OrderFieldsExts
}
.namespace OpenRA
{
.class public auto ansi sealed beforefieldinit Order
extends [mscorlib]System.Object
{
.field public initonly string OrderString
.field public initonly class OpenRA.Actor Subject
.field public initonly bool Queued
.field public class OpenRA.Actor TargetActor
.field public valuetype OpenRA.CPos TargetLocation
.field public string TargetString
.field public valuetype OpenRA.CPos ExtraLocation
.field public unsigned int32 ExtraData
.field public bool IsImmediate
.field private static class [mscorlib]System.Collections.Generic.Dictionary`2<string,int32> '<>f__switch$map1'
.custom instance void class [mscorlib]System.Runtime.CompilerServices.CompilerGeneratedAttribute::'.ctor'() = (01 00 00 00 ) // ....
// method line 59
.method private hidebysig specialname rtspecialname
instance default void '.ctor' (string orderString, class OpenRA.Actor subject, class OpenRA.Actor targetActor, valuetype OpenRA.CPos targetLocation, string targetString, bool queued, valuetype OpenRA.CPos extraLocation, unsigned int32 extraData) cil managed
{
// Method begins at RVA 0x3700
// Code size 68 (0x44)
.maxstack 4
IL_0000: ldarg.0
IL_0001: call instance void object::'.ctor'()
IL_0006: ldarg.0
IL_0007: ldarg.1
IL_0008: stfld string OpenRA.Order::OrderString
IL_000d: ldarg.0
IL_000e: ldarg.2
IL_000f: stfld class OpenRA.Actor OpenRA.Order::Subject
IL_0014: ldarg.0
IL_0015: ldarg.3
IL_0016: stfld class OpenRA.Actor OpenRA.Order::TargetActor
IL_001b: ldarg.0
IL_001c: ldarg.s 4
IL_001e: stfld valuetype OpenRA.CPos OpenRA.Order::TargetLocation
IL_0023: ldarg.0
IL_0024: ldarg.s 5
IL_0026: stfld string OpenRA.Order::TargetString
IL_002b: ldarg.0
IL_002c: ldarg.s 6
IL_002e: stfld bool OpenRA.Order::Queued
IL_0033: ldarg.0
IL_0034: ldarg.s 7
IL_0036: stfld valuetype OpenRA.CPos OpenRA.Order::ExtraLocation
IL_003b: ldarg.0
IL_003c: ldarg.s 8
IL_003e: stfld unsigned int32 OpenRA.Order::ExtraData
IL_0043: ret
} // end of method Order::.ctor
// method line 60
.method public hidebysig specialname rtspecialname
instance default void '.ctor' () cil managed
{
// Method begins at RVA 0x3750
// Code size 23 (0x17)
.maxstack 10
IL_0000: ldarg.0
IL_0001: ldnull
IL_0002: ldnull
IL_0003: ldnull
IL_0004: ldsfld valuetype OpenRA.CPos OpenRA.CPos::Zero
IL_0009: ldnull
IL_000a: ldc.i4.0
IL_000b: ldsfld valuetype OpenRA.CPos OpenRA.CPos::Zero
IL_0010: ldc.i4.0
IL_0011: call instance void class OpenRA.Order::'.ctor'(string, class OpenRA.Actor, class OpenRA.Actor, valuetype OpenRA.CPos, string, bool, valuetype OpenRA.CPos, unsigned int32)
IL_0016: ret
} // end of method Order::.ctor
// method line 61
.method public hidebysig specialname rtspecialname
instance default void '.ctor' (string orderString, class OpenRA.Actor subject, bool queued) cil managed
{
// Method begins at RVA 0x3774
// Code size 23 (0x17)
.maxstack 10
IL_0000: ldarg.0
IL_0001: ldarg.1
IL_0002: ldarg.2
IL_0003: ldnull
IL_0004: ldsfld valuetype OpenRA.CPos OpenRA.CPos::Zero
IL_0009: ldnull
IL_000a: ldarg.3
IL_000b: ldsfld valuetype OpenRA.CPos OpenRA.CPos::Zero
IL_0010: ldc.i4.0
IL_0011: call instance void class OpenRA.Order::'.ctor'(string, class OpenRA.Actor, class OpenRA.Actor, valuetype OpenRA.CPos, string, bool, valuetype OpenRA.CPos, unsigned int32)
IL_0016: ret
} // end of method Order::.ctor
// method line 62
.method public hidebysig specialname rtspecialname
instance default void '.ctor' (string orderstring, class OpenRA.Order order) cil managed
{
// Method begins at RVA 0x3798
// Code size 50 (0x32)
.maxstack 10
IL_0000: ldarg.0
IL_0001: ldarg.1
IL_0002: ldarg.2
IL_0003: ldfld class OpenRA.Actor OpenRA.Order::Subject
IL_0008: ldarg.2
IL_0009: ldfld class OpenRA.Actor OpenRA.Order::TargetActor
IL_000e: ldarg.2
IL_000f: ldfld valuetype OpenRA.CPos OpenRA.Order::TargetLocation
IL_0014: ldarg.2
IL_0015: ldfld string OpenRA.Order::TargetString
IL_001a: ldarg.2
IL_001b: ldfld bool OpenRA.Order::Queued
IL_0020: ldarg.2
IL_0021: ldfld valuetype OpenRA.CPos OpenRA.Order::ExtraLocation
IL_0026: ldarg.2
IL_0027: ldfld unsigned int32 OpenRA.Order::ExtraData
IL_002c: call instance void class OpenRA.Order::'.ctor'(string, class OpenRA.Actor, class OpenRA.Actor, valuetype OpenRA.CPos, string, bool, valuetype OpenRA.CPos, unsigned int32)
IL_0031: ret
} // end of method Order::.ctor
// method line 63
.method public hidebysig specialname
instance default class OpenRA.Player get_Player () cil managed
{
// Method begins at RVA 0x37d8
// Code size 12 (0xc)
.maxstack 8
IL_0000: ldarg.0
IL_0001: ldfld class OpenRA.Actor OpenRA.Order::Subject
IL_0006: ldfld class OpenRA.Player OpenRA.Actor::Owner
IL_000b: ret
} // end of method Order::get_Player
// method line 64
.method public hidebysig
instance default unsigned int8[] Serialize () cil managed
{
// Method begins at RVA 0x37e8
// Code size 482 (0x1e2)
.maxstack 40
.locals init (
class [mscorlib]System.IO.MemoryStream V_0,
class [mscorlib]System.IO.BinaryWriter V_1,
string V_2,
int32 V_3,
class [mscorlib]System.IO.MemoryStream V_4,
class [mscorlib]System.IO.BinaryWriter V_5,
valuetype OpenRA.OrderFields V_6)
IL_0000: ldarg.0
IL_0001: ldfld bool OpenRA.Order::IsImmediate
IL_0006: brfalse IL_0042
IL_000b: newobj instance void class [mscorlib]System.IO.MemoryStream::'.ctor'()
IL_0010: stloc.0
IL_0011: ldloc.0
IL_0012: newobj instance void class [mscorlib]System.IO.BinaryWriter::'.ctor'(class [mscorlib]System.IO.Stream)
IL_0017: stloc.1
IL_0018: ldloc.1
IL_0019: ldc.i4 254
IL_001e: callvirt instance void class [mscorlib]System.IO.BinaryWriter::Write(unsigned int8)
IL_0023: ldloc.1
IL_0024: ldarg.0
IL_0025: ldfld string OpenRA.Order::OrderString
IL_002a: callvirt instance void class [mscorlib]System.IO.BinaryWriter::Write(string)
IL_002f: ldloc.1
IL_0030: ldarg.0
IL_0031: ldfld string OpenRA.Order::TargetString
IL_0036: callvirt instance void class [mscorlib]System.IO.BinaryWriter::Write(string)
IL_003b: ldloc.0
IL_003c: callvirt instance unsigned int8[] class [mscorlib]System.IO.MemoryStream::ToArray()
IL_0041: ret
IL_0042: ldarg.0
IL_0043: ldfld string OpenRA.Order::OrderString
IL_0048: stloc.2
IL_0049: ldloc.2
IL_004a: brfalse IL_0076
IL_004f: ldsfld class [mscorlib]System.Collections.Generic.Dictionary`2<string,int32> OpenRA.Order::'<>f__switch$map1'
IL_0054: brtrue IL_0064
IL_0059: ldc.i4.0
IL_005a: newobj instance void class [mscorlib]System.Collections.Generic.Dictionary`2<string, int32>::'.ctor'(int32)
IL_005f: stsfld class [mscorlib]System.Collections.Generic.Dictionary`2<string,int32> OpenRA.Order::'<>f__switch$map1'
IL_0064: ldsfld class [mscorlib]System.Collections.Generic.Dictionary`2<string,int32> OpenRA.Order::'<>f__switch$map1'
IL_0069: ldloc.2
IL_006a: ldloca.s 3
IL_006c: callvirt instance bool class [mscorlib]System.Collections.Generic.Dictionary`2<string, int32>::TryGetValue(!0, [out] !1&)
IL_0071: brfalse IL_0076
IL_0076: newobj instance void class [mscorlib]System.IO.MemoryStream::'.ctor'()
IL_007b: stloc.s 4
IL_007d: ldloc.s 4
IL_007f: newobj instance void class [mscorlib]System.IO.BinaryWriter::'.ctor'(class [mscorlib]System.IO.Stream)
IL_0084: stloc.s 5
IL_0086: ldloc.s 5
IL_0088: ldc.i4 255
IL_008d: callvirt instance void class [mscorlib]System.IO.BinaryWriter::Write(unsigned int8)
IL_0092: ldloc.s 5
IL_0094: ldarg.0
IL_0095: ldfld string OpenRA.Order::OrderString
IL_009a: callvirt instance void class [mscorlib]System.IO.BinaryWriter::Write(string)
IL_009f: ldloc.s 5
IL_00a1: ldarg.0
IL_00a2: ldfld class OpenRA.Actor OpenRA.Order::Subject
IL_00a7: call unsigned int32 class OpenRA.Order::UIntFromActor(class OpenRA.Actor)
IL_00ac: callvirt instance void class [mscorlib]System.IO.BinaryWriter::Write(unsigned int32)
IL_00b1: ldc.i4.0
IL_00b2: stloc.s 6
IL_00b4: ldarg.0
IL_00b5: ldfld class OpenRA.Actor OpenRA.Order::TargetActor
IL_00ba: brfalse IL_00c6
IL_00bf: ldloc.s 6
IL_00c1: ldc.i4.1
IL_00c2: or
IL_00c3: conv.u1
IL_00c4: stloc.s 6
IL_00c6: ldarg.0
IL_00c7: ldfld valuetype OpenRA.CPos OpenRA.Order::TargetLocation
IL_00cc: ldsfld valuetype OpenRA.CPos OpenRA.CPos::Zero
IL_00d1: call bool valuetype OpenRA.CPos::op_Inequality(valuetype OpenRA.CPos, valuetype OpenRA.CPos)
IL_00d6: brfalse IL_00e2
IL_00db: ldloc.s 6
IL_00dd: ldc.i4.2
IL_00de: or
IL_00df: conv.u1
IL_00e0: stloc.s 6
IL_00e2: ldarg.0
IL_00e3: ldfld string OpenRA.Order::TargetString
IL_00e8: brfalse IL_00f4
IL_00ed: ldloc.s 6
IL_00ef: ldc.i4.4
IL_00f0: or
IL_00f1: conv.u1
IL_00f2: stloc.s 6
IL_00f4: ldarg.0
IL_00f5: ldfld bool OpenRA.Order::Queued
IL_00fa: brfalse IL_0106
IL_00ff: ldloc.s 6
IL_0101: ldc.i4.8
IL_0102: or
IL_0103: conv.u1
IL_0104: stloc.s 6
IL_0106: ldarg.0
IL_0107: ldfld valuetype OpenRA.CPos OpenRA.Order::ExtraLocation
IL_010c: ldsfld valuetype OpenRA.CPos OpenRA.CPos::Zero
IL_0111: call bool valuetype OpenRA.CPos::op_Inequality(valuetype OpenRA.CPos, valuetype OpenRA.CPos)
IL_0116: brfalse IL_0123
IL_011b: ldloc.s 6
IL_011d: ldc.i4.s 0x10
IL_011f: or
IL_0120: conv.u1
IL_0121: stloc.s 6
IL_0123: ldarg.0
IL_0124: ldfld unsigned int32 OpenRA.Order::ExtraData
IL_0129: brfalse IL_0136
IL_012e: ldloc.s 6
IL_0130: ldc.i4.s 0x20
IL_0132: or
IL_0133: conv.u1
IL_0134: stloc.s 6
IL_0136: ldloc.s 5
IL_0138: ldloc.s 6
IL_013a: callvirt instance void class [mscorlib]System.IO.BinaryWriter::Write(unsigned int8)
IL_013f: ldarg.0
IL_0140: ldfld class OpenRA.Actor OpenRA.Order::TargetActor
IL_0145: brfalse IL_015c
IL_014a: ldloc.s 5
IL_014c: ldarg.0
IL_014d: ldfld class OpenRA.Actor OpenRA.Order::TargetActor
IL_0152: call unsigned int32 class OpenRA.Order::UIntFromActor(class OpenRA.Actor)
IL_0157: callvirt instance void class [mscorlib]System.IO.BinaryWriter::Write(unsigned int32)
IL_015c: ldarg.0
IL_015d: ldfld valuetype OpenRA.CPos OpenRA.Order::TargetLocation
IL_0162: ldsfld valuetype OpenRA.CPos OpenRA.CPos::Zero
IL_0167: call bool valuetype OpenRA.CPos::op_Inequality(valuetype OpenRA.CPos, valuetype OpenRA.CPos)
IL_016c: brfalse IL_0183
IL_0171: ldloc.s 5
IL_0173: ldarg.0
IL_0174: ldflda valuetype OpenRA.CPos OpenRA.Order::TargetLocation
IL_0179: call instance valuetype [OpenRA.FileFormats]OpenRA.int2 valuetype OpenRA.CPos::ToInt2()
IL_017e: call void class OpenRA.Network.OrderIO::Write(class [mscorlib]System.IO.BinaryWriter, valuetype [OpenRA.FileFormats]OpenRA.int2)
IL_0183: ldarg.0
IL_0184: ldfld string OpenRA.Order::TargetString
IL_0189: brfalse IL_019b
IL_018e: ldloc.s 5
IL_0190: ldarg.0
IL_0191: ldfld string OpenRA.Order::TargetString
IL_0196: callvirt instance void class [mscorlib]System.IO.BinaryWriter::Write(string)
IL_019b: ldarg.0
IL_019c: ldfld valuetype OpenRA.CPos OpenRA.Order::ExtraLocation
IL_01a1: ldsfld valuetype OpenRA.CPos OpenRA.CPos::Zero
IL_01a6: call bool valuetype OpenRA.CPos::op_Inequality(valuetype OpenRA.CPos, valuetype OpenRA.CPos)
IL_01ab: brfalse IL_01c2
IL_01b0: ldloc.s 5
IL_01b2: ldarg.0
IL_01b3: ldflda valuetype OpenRA.CPos OpenRA.Order::ExtraLocation
IL_01b8: call instance valuetype [OpenRA.FileFormats]OpenRA.int2 valuetype OpenRA.CPos::ToInt2()
IL_01bd: call void class OpenRA.Network.OrderIO::Write(class [mscorlib]System.IO.BinaryWriter, valuetype [OpenRA.FileFormats]OpenRA.int2)
IL_01c2: ldarg.0
IL_01c3: ldfld unsigned int32 OpenRA.Order::ExtraData
IL_01c8: brfalse IL_01da
IL_01cd: ldloc.s 5
IL_01cf: ldarg.0
IL_01d0: ldfld unsigned int32 OpenRA.Order::ExtraData
IL_01d5: callvirt instance void class [mscorlib]System.IO.BinaryWriter::Write(unsigned int32)
IL_01da: ldloc.s 4
IL_01dc: callvirt instance unsigned int8[] class [mscorlib]System.IO.MemoryStream::ToArray()
IL_01e1: ret
} // end of method Order::Serialize
// method line 65
.method public static hidebysig
default class OpenRA.Order Deserialize (class OpenRA.World world, class [mscorlib]System.IO.BinaryReader r) cil managed
{
// Method begins at RVA 0x39d8
// Code size 319 (0x13f)
.maxstack 41
.locals init (
unsigned int8 V_0,
string V_1,
unsigned int32 V_2,
valuetype OpenRA.OrderFields V_3,
unsigned int32 V_4,
valuetype OpenRA.CPos V_5,
string V_6,
bool V_7,
valuetype OpenRA.CPos V_8,
unsigned int32 V_9,
class OpenRA.Actor V_10,
class OpenRA.Actor V_11,
string V_12,
string V_13,
class OpenRA.Order V_14)
IL_0000: ldarg.1
IL_0001: callvirt instance unsigned int8 class [mscorlib]System.IO.BinaryReader::ReadByte()
IL_0006: stloc.0
IL_0007: ldloc.0
IL_0008: ldc.i4 254
IL_000d: beq IL_010a
IL_0012: ldloc.0
IL_0013: ldc.i4 255
IL_0018: beq IL_0022
IL_001d: br IL_0139
IL_0022: ldarg.1
IL_0023: callvirt instance string class [mscorlib]System.IO.BinaryReader::ReadString()
IL_0028: stloc.1
IL_0029: ldarg.1
IL_002a: callvirt instance unsigned int32 class [mscorlib]System.IO.BinaryReader::ReadUInt32()
IL_002f: stloc.2
IL_0030: ldarg.1
IL_0031: callvirt instance unsigned int8 class [mscorlib]System.IO.BinaryReader::ReadByte()
IL_0036: stloc.3
IL_0037: ldloc.3
IL_0038: ldc.i4.1
IL_0039: call bool class OpenRA.OrderFieldsExts::HasField(valuetype OpenRA.OrderFields, valuetype OpenRA.OrderFields)
IL_003e: brfalse IL_004e
IL_0043: ldarg.1
IL_0044: callvirt instance unsigned int32 class [mscorlib]System.IO.BinaryReader::ReadUInt32()
IL_0049: br IL_004f
IL_004e: ldc.i4.m1
IL_004f: stloc.s 4
IL_0051: ldloc.3
IL_0052: ldc.i4.2
IL_0053: call bool class OpenRA.OrderFieldsExts::HasField(valuetype OpenRA.OrderFields, valuetype OpenRA.OrderFields)
IL_0058: brfalse IL_0068
IL_005d: ldarg.1
IL_005e: call valuetype [OpenRA.FileFormats]OpenRA.int2 class OpenRA.Network.OrderIO::ReadInt2(class [mscorlib]System.IO.BinaryReader)
IL_0063: br IL_006d
IL_0068: ldsfld valuetype [OpenRA.FileFormats]OpenRA.int2 [OpenRA.FileFormats]OpenRA.int2::Zero
IL_006d: call valuetype OpenRA.CPos valuetype OpenRA.CPos::op_Explicit(valuetype [OpenRA.FileFormats]OpenRA.int2)
IL_0072: stloc.s 5
IL_0074: ldloc.3
IL_0075: ldc.i4.4
IL_0076: call bool class OpenRA.OrderFieldsExts::HasField(valuetype OpenRA.OrderFields, valuetype OpenRA.OrderFields)
IL_007b: brfalse IL_008b
IL_0080: ldarg.1
IL_0081: callvirt instance string class [mscorlib]System.IO.BinaryReader::ReadString()
IL_0086: br IL_008c
IL_008b: ldnull
IL_008c: stloc.s 6
IL_008e: ldloc.3
IL_008f: ldc.i4.8
IL_0090: call bool class OpenRA.OrderFieldsExts::HasField(valuetype OpenRA.OrderFields, valuetype OpenRA.OrderFields)
IL_0095: stloc.s 7
IL_0097: ldloc.3
IL_0098: ldc.i4.s 0x10
IL_009a: call bool class OpenRA.OrderFieldsExts::HasField(valuetype OpenRA.OrderFields, valuetype OpenRA.OrderFields)
IL_009f: brfalse IL_00af
IL_00a4: ldarg.1
IL_00a5: call valuetype [OpenRA.FileFormats]OpenRA.int2 class OpenRA.Network.OrderIO::ReadInt2(class [mscorlib]System.IO.BinaryReader)
IL_00aa: br IL_00b4
IL_00af: ldsfld valuetype [OpenRA.FileFormats]OpenRA.int2 [OpenRA.FileFormats]OpenRA.int2::Zero
IL_00b4: call valuetype OpenRA.CPos valuetype OpenRA.CPos::op_Explicit(valuetype [OpenRA.FileFormats]OpenRA.int2)
IL_00b9: stloc.s 8
IL_00bb: ldloc.3
IL_00bc: ldc.i4.s 0x20
IL_00be: call bool class OpenRA.OrderFieldsExts::HasField(valuetype OpenRA.OrderFields, valuetype OpenRA.OrderFields)
IL_00c3: brfalse IL_00d3
IL_00c8: ldarg.1
IL_00c9: callvirt instance unsigned int32 class [mscorlib]System.IO.BinaryReader::ReadUInt32()
IL_00ce: br IL_00d4
IL_00d3: ldc.i4.0
IL_00d4: stloc.s 9
IL_00d6: ldarg.0
IL_00d7: ldloc.2
IL_00d8: ldloca.s 10
IL_00da: call bool class OpenRA.Order::TryGetActorFromUInt(class OpenRA.World, unsigned int32, [out] class OpenRA.Actor&)
IL_00df: brfalse IL_00f3
IL_00e4: ldarg.0
IL_00e5: ldloc.s 4
IL_00e7: ldloca.s 11
IL_00e9: call bool class OpenRA.Order::TryGetActorFromUInt(class OpenRA.World, unsigned int32, [out] class OpenRA.Actor&)
IL_00ee: brtrue IL_00f5
IL_00f3: ldnull
IL_00f4: ret
IL_00f5: ldloc.1
IL_00f6: ldloc.s 10
IL_00f8: ldloc.s 11
IL_00fa: ldloc.s 5
IL_00fc: ldloc.s 6
IL_00fe: ldloc.s 7
IL_0100: ldloc.s 8
IL_0102: ldloc.s 9
IL_0104: newobj instance void class OpenRA.Order::'.ctor'(string, class OpenRA.Actor, class OpenRA.Actor, valuetype OpenRA.CPos, string, bool, valuetype OpenRA.CPos, unsigned int32)
IL_0109: ret
IL_010a: ldarg.1
IL_010b: callvirt instance string class [mscorlib]System.IO.BinaryReader::ReadString()
IL_0110: stloc.s 12
IL_0112: ldarg.1
IL_0113: callvirt instance string class [mscorlib]System.IO.BinaryReader::ReadString()
IL_0118: stloc.s 13
IL_011a: ldloc.s 12
IL_011c: ldnull
IL_011d: ldc.i4.0
IL_011e: newobj instance void class OpenRA.Order::'.ctor'(string, class OpenRA.Actor, bool)
IL_0123: stloc.s 14
IL_0125: ldloc.s 14
IL_0127: ldc.i4.1
IL_0128: stfld bool OpenRA.Order::IsImmediate
IL_012d: ldloc.s 14
IL_012f: ldloc.s 13
IL_0131: stfld string OpenRA.Order::TargetString
IL_0136: ldloc.s 14
IL_0138: ret
IL_0139: newobj instance void class [mscorlib]System.NotImplementedException::'.ctor'()
IL_013e: throw
} // end of method Order::Deserialize
// method line 66
.method public virtual hidebysig
instance default string ToString () cil managed
{
// Method begins at RVA 0x3b24
// Code size 139 (0x8b)
.maxstack 11
IL_0000: ldstr "OrderString: \"{0}\" \n\t Subject: \"{1}\". \n\t TargetActor: \"{2}\" \n\t TargetLocation: {3}.\n\t TargetString: \"{4}\".\n\t IsImmediate: {5}.\n\t Player(PlayerName): {6}\n"
IL_0005: ldc.i4.7
IL_0006: newarr [mscorlib]System.Object
IL_000b: dup
IL_000c: ldc.i4.0
IL_000d: ldarg.0
IL_000e: ldfld string OpenRA.Order::OrderString
IL_0013: stelem.ref
IL_0014: dup
IL_0015: ldc.i4.1
IL_0016: ldarg.0
IL_0017: ldfld class OpenRA.Actor OpenRA.Order::Subject
IL_001c: stelem.ref
IL_001d: dup
IL_001e: ldc.i4.2
IL_001f: ldarg.0
IL_0020: ldfld class OpenRA.Actor OpenRA.Order::TargetActor
IL_0025: brfalse IL_003f
IL_002a: ldarg.0
IL_002b: ldfld class OpenRA.Actor OpenRA.Order::TargetActor
IL_0030: ldfld class OpenRA.ActorInfo OpenRA.Actor::Info
IL_0035: ldfld string OpenRA.ActorInfo::Name
IL_003a: br IL_0040
IL_003f: ldnull
IL_0040: stelem.ref
IL_0041: dup
IL_0042: ldc.i4.3
IL_0043: ldarg.0
IL_0044: ldfld valuetype OpenRA.CPos OpenRA.Order::TargetLocation
IL_0049: box OpenRA.CPos
IL_004e: stelem.ref
IL_004f: dup
IL_0050: ldc.i4.4
IL_0051: ldarg.0
IL_0052: ldfld string OpenRA.Order::TargetString
IL_0057: stelem.ref
IL_0058: dup
IL_0059: ldc.i4.5
IL_005a: ldarg.0
IL_005b: ldfld bool OpenRA.Order::IsImmediate
IL_0060: box [mscorlib]System.Boolean
IL_0065: stelem.ref
IL_0066: dup
IL_0067: ldc.i4.6
IL_0068: ldarg.0
IL_0069: call instance class OpenRA.Player class OpenRA.Order::get_Player()
IL_006e: brfalse IL_0083
IL_0073: ldarg.0
IL_0074: call instance class OpenRA.Player class OpenRA.Order::get_Player()
IL_0079: ldfld string OpenRA.Player::PlayerName
IL_007e: br IL_0084
IL_0083: ldnull
IL_0084: stelem.ref
IL_0085: call string class [OpenRA.FileFormats]OpenRA.Exts::F(string, object[])
IL_008a: ret
} // end of method Order::ToString
// method line 67
.method private static hidebysig
default unsigned int32 UIntFromActor (class OpenRA.Actor a) cil managed
{
// Method begins at RVA 0x3bbc
// Code size 15 (0xf)
.maxstack 8
IL_0000: ldarg.0
IL_0001: brtrue IL_0008
IL_0006: ldc.i4.m1
IL_0007: ret
IL_0008: ldarg.0
IL_0009: ldfld unsigned int32 OpenRA.Actor::ActorID
IL_000e: ret
} // end of method Order::UIntFromActor
// method line 68
.method private static hidebysig
default bool TryGetActorFromUInt (class OpenRA.World world, unsigned int32 aID, [out] class OpenRA.Actor& 'ret') cil managed
{
// Method begins at RVA 0x3bcc
// Code size 117 (0x75)
.maxstack 15
.locals init (
class OpenRA.Order/'<TryGetActorFromUInt>c__AnonStorey1A' V_0,
class [mscorlib]System.Collections.Generic.IEnumerator`1<class OpenRA.Actor> V_1,
class OpenRA.Actor V_2,
bool V_3)
IL_0000: newobj instance void class OpenRA.Order/'<TryGetActorFromUInt>c__AnonStorey1A'::'.ctor'()
IL_0005: stloc.0
IL_0006: ldloc.0
IL_0007: ldarg.1
IL_0008: stfld unsigned int32 OpenRA.Order/'<TryGetActorFromUInt>c__AnonStorey1A'::aID
IL_000d: ldloc.0
IL_000e: ldfld unsigned int32 OpenRA.Order/'<TryGetActorFromUInt>c__AnonStorey1A'::aID
IL_0013: ldc.i4.m1
IL_0014: bne.un IL_001e
IL_0019: ldarg.2
IL_001a: ldnull
IL_001b: stind.ref
IL_001c: ldc.i4.1
IL_001d: ret
IL_001e: ldarg.0
IL_001f: callvirt instance class [mscorlib]System.Collections.Generic.IEnumerable`1<class OpenRA.Actor> class OpenRA.World::get_Actors()
IL_0024: ldloc.0
IL_0025: ldftn instance bool class OpenRA.Order/'<TryGetActorFromUInt>c__AnonStorey1A'::'<>m__16'(class OpenRA.Actor)
IL_002b: newobj instance void class [System.Core]System.Func`2<class OpenRA.Actor, bool>::'.ctor'(object, native int)
IL_0030: call class [mscorlib]System.Collections.Generic.IEnumerable`1<!!0> class [System.Core]System.Linq.Enumerable::Where<class OpenRA.Actor> (class [mscorlib]System.Collections.Generic.IEnumerable`1<!!0>, class [System.Core]System.Func`2<!!0,bool>)
IL_0035: callvirt instance class [mscorlib]System.Collections.Generic.IEnumerator`1<!0> class [mscorlib]System.Collections.Generic.IEnumerable`1<class OpenRA.Actor>::GetEnumerator()
IL_003a: stloc.1
.try { // 0
IL_003b: br IL_0051
IL_0040: ldloc.1
IL_0041: callvirt instance !0 class [mscorlib]System.Collections.Generic.IEnumerator`1<class OpenRA.Actor>::get_Current()
IL_0046: stloc.2
IL_0047: ldarg.2
IL_0048: ldloc.2
IL_0049: stind.ref
IL_004a: ldc.i4.1
IL_004b: stloc.3
IL_004c: leave IL_0073
IL_0051: ldloc.1
IL_0052: callvirt instance bool class [mscorlib]System.Collections.IEnumerator::MoveNext()
IL_0057: brtrue IL_0040
IL_005c: leave IL_006e
} // end .try 0
finally { // 0
IL_0061: ldloc.1
IL_0062: brfalse IL_006d
IL_0067: ldloc.1
IL_0068: callvirt instance void class [mscorlib]System.IDisposable::Dispose()
IL_006d: endfinally
} // end handler 0
IL_006e: ldarg.2
IL_006f: ldnull
IL_0070: stind.ref
IL_0071: ldc.i4.0
IL_0072: ret
IL_0073: ldloc.3
IL_0074: ret
} // end of method Order::TryGetActorFromUInt
// method line 69
.method public static hidebysig
default class OpenRA.Order Chat (bool team, string text) cil managed
{
// Method begins at RVA 0x3c6c
// Code size 45 (0x2d)
.maxstack 5
.locals init (
class OpenRA.Order V_0)
IL_0000: ldarg.0
IL_0001: brfalse IL_0010
IL_0006: ldstr "TeamChat"
IL_000b: br IL_0015
IL_0010: ldstr "Chat"
IL_0015: ldnull
IL_0016: ldc.i4.0
IL_0017: newobj instance void class OpenRA.Order::'.ctor'(string, class OpenRA.Actor, bool)
IL_001c: stloc.0
IL_001d: ldloc.0
IL_001e: ldc.i4.1
IL_001f: stfld bool OpenRA.Order::IsImmediate
IL_0024: ldloc.0
IL_0025: ldarg.1
IL_0026: stfld string OpenRA.Order::TargetString
IL_002b: ldloc.0
IL_002c: ret
} // end of method Order::Chat
// method line 70
.method public static hidebysig
default class OpenRA.Order HandshakeResponse (string text) cil managed
{
// Method begins at RVA 0x3ca8
// Code size 29 (0x1d)
.maxstack 4
.locals init (
class OpenRA.Order V_0)
IL_0000: ldstr "HandshakeResponse"
IL_0005: ldnull
IL_0006: ldc.i4.0
IL_0007: newobj instance void class OpenRA.Order::'.ctor'(string, class OpenRA.Actor, bool)
IL_000c: stloc.0
IL_000d: ldloc.0
IL_000e: ldc.i4.1
IL_000f: stfld bool OpenRA.Order::IsImmediate
IL_0014: ldloc.0
IL_0015: ldarg.0
IL_0016: stfld string OpenRA.Order::TargetString
IL_001b: ldloc.0
IL_001c: ret
} // end of method Order::HandshakeResponse
// method line 71
.method public static hidebysig
default class OpenRA.Order Pong (string pingTime) cil managed
{
// Method begins at RVA 0x3cd4
// Code size 29 (0x1d)
.maxstack 4
.locals init (
class OpenRA.Order V_0)
IL_0000: ldstr "Pong"
IL_0005: ldnull
IL_0006: ldc.i4.0
IL_0007: newobj instance void class OpenRA.Order::'.ctor'(string, class OpenRA.Actor, bool)
IL_000c: stloc.0
IL_000d: ldloc.0
IL_000e: ldc.i4.1
IL_000f: stfld bool OpenRA.Order::IsImmediate
IL_0014: ldloc.0
IL_0015: ldarg.0
IL_0016: stfld string OpenRA.Order::TargetString
IL_001b: ldloc.0
IL_001c: ret
} // end of method Order::Pong
// method line 72
.method public static hidebysig
default class OpenRA.Order PauseGame (bool paused) cil managed
{
// Method begins at RVA 0x3d00
// Code size 42 (0x2a)
.maxstack 4
.locals init (
class OpenRA.Order V_0)
IL_0000: ldstr "PauseGame"
IL_0005: ldnull
IL_0006: ldc.i4.0
IL_0007: newobj instance void class OpenRA.Order::'.ctor'(string, class OpenRA.Actor, bool)
IL_000c: stloc.0
IL_000d: ldloc.0
IL_000e: ldarg.0
IL_000f: brfalse IL_001e
IL_0014: ldstr "Pause"
IL_0019: br IL_0023
IL_001e: ldstr "UnPause"
IL_0023: stfld string OpenRA.Order::TargetString
IL_0028: ldloc.0
IL_0029: ret
} // end of method Order::PauseGame
// method line 73
.method public static hidebysig
default class OpenRA.Order Command (string text) cil managed
{
// Method begins at RVA 0x3d38
// Code size 29 (0x1d)
.maxstack 4
.locals init (
class OpenRA.Order V_0)
IL_0000: ldstr "Command"
IL_0005: ldnull
IL_0006: ldc.i4.0
IL_0007: newobj instance void class OpenRA.Order::'.ctor'(string, class OpenRA.Actor, bool)
IL_000c: stloc.0
IL_000d: ldloc.0
IL_000e: ldc.i4.1
IL_000f: stfld bool OpenRA.Order::IsImmediate
IL_0014: ldloc.0
IL_0015: ldarg.0
IL_0016: stfld string OpenRA.Order::TargetString
IL_001b: ldloc.0
IL_001c: ret
} // end of method Order::Command
// method line 74
.method public static hidebysig
default class OpenRA.Order StartProduction (class OpenRA.Actor subject, string item, int32 count) cil managed
{
// Method begins at RVA 0x3d64
// Code size 35 (0x23)
.maxstack 4
.locals init (
class OpenRA.Order V_0)
IL_0000: ldstr "StartProduction"
IL_0005: ldarg.0
IL_0006: ldc.i4.0
IL_0007: newobj instance void class OpenRA.Order::'.ctor'(string, class OpenRA.Actor, bool)
IL_000c: stloc.0
IL_000d: ldloc.0
IL_000e: ldarg.2
IL_000f: ldc.i4.0
IL_0010: newobj instance void valuetype OpenRA.CPos::'.ctor'(int32, int32)
IL_0015: stfld valuetype OpenRA.CPos OpenRA.Order::TargetLocation
IL_001a: ldloc.0
IL_001b: ldarg.1
IL_001c: stfld string OpenRA.Order::TargetString
IL_0021: ldloc.0
IL_0022: ret
} // end of method Order::StartProduction
// method line 75
.method public static hidebysig
default class OpenRA.Order PauseProduction (class OpenRA.Actor subject, string item, bool pause) cil managed
{
// Method begins at RVA 0x3d94
// Code size 47 (0x2f)
.maxstack 5
.locals init (
class OpenRA.Order V_0)
IL_0000: ldstr "PauseProduction"
IL_0005: ldarg.0
IL_0006: ldc.i4.0
IL_0007: newobj instance void class OpenRA.Order::'.ctor'(string, class OpenRA.Actor, bool)
IL_000c: stloc.0
IL_000d: ldloc.0
IL_000e: ldarg.2
IL_000f: brfalse IL_001a
IL_0014: ldc.i4.1
IL_0015: br IL_001b
IL_001a: ldc.i4.0
IL_001b: ldc.i4.0
IL_001c: newobj instance void valuetype OpenRA.CPos::'.ctor'(int32, int32)
IL_0021: stfld valuetype OpenRA.CPos OpenRA.Order::TargetLocation
IL_0026: ldloc.0
IL_0027: ldarg.1
IL_0028: stfld string OpenRA.Order::TargetString
IL_002d: ldloc.0
IL_002e: ret
} // end of method Order::PauseProduction
// method line 76
.method public static hidebysig
default class OpenRA.Order CancelProduction (class OpenRA.Actor subject, string item, int32 count) cil managed
{
// Method begins at RVA 0x3dd0
// Code size 35 (0x23)
.maxstack 4
.locals init (
class OpenRA.Order V_0)
IL_0000: ldstr "CancelProduction"
IL_0005: ldarg.0
IL_0006: ldc.i4.0
IL_0007: newobj instance void class OpenRA.Order::'.ctor'(string, class OpenRA.Actor, bool)
IL_000c: stloc.0
IL_000d: ldloc.0
IL_000e: ldarg.2
IL_000f: ldc.i4.0
IL_0010: newobj instance void valuetype OpenRA.CPos::'.ctor'(int32, int32)
IL_0015: stfld valuetype OpenRA.CPos OpenRA.Order::TargetLocation
IL_001a: ldloc.0
IL_001b: ldarg.1
IL_001c: stfld string OpenRA.Order::TargetString
IL_0021: ldloc.0
IL_0022: ret
} // end of method Order::CancelProduction
.property instance class OpenRA.Player Player ()
{
.get instance default class OpenRA.Player OpenRA.Order::get_Player ()
}
.class nested private auto ansi sealed beforefieldinit '<TryGetActorFromUInt>c__AnonStorey1A'
extends [mscorlib]System.Object
{
.custom instance void class [mscorlib]System.Runtime.CompilerServices.CompilerGeneratedAttribute::'.ctor'() = (01 00 00 00 ) // ....
.field assembly unsigned int32 aID
// method line 2091
.method public hidebysig specialname rtspecialname
instance default void '.ctor' () cil managed
{
// Method begins at RVA 0x2b5fc
// Code size 7 (0x7)
.maxstack 8
IL_0000: ldarg.0
IL_0001: call instance void object::'.ctor'()
IL_0006: ret
} // end of method <TryGetActorFromUInt>c__AnonStorey1A::.ctor
// method line 2092
.method assembly hidebysig
instance default bool '<>m__16' (class OpenRA.Actor x) cil managed
{
// Method begins at RVA 0x2b604
// Code size 15 (0xf)
.maxstack 8
IL_0000: ldarg.1
IL_0001: ldfld unsigned int32 OpenRA.Actor::ActorID
IL_0006: ldarg.0
IL_0007: ldfld unsigned int32 OpenRA.Order/'<TryGetActorFromUInt>c__AnonStorey1A'::aID
IL_000c: ceq
IL_000e: ret
} // end of method <TryGetActorFromUInt>c__AnonStorey1A::<>m__16
} // end of class <TryGetActorFromUInt>c__AnonStorey1A
} // end of class OpenRA.Order
}
.namespace OpenRA.Network
{
.class private auto ansi beforefieldinit ReplayRecorderConnection
extends [mscorlib]System.Object
implements [mscorlib]System.IDisposable, OpenRA.Network.IConnection {
.field private class OpenRA.Network.IConnection inner
.field private class [mscorlib]System.IO.BinaryWriter writer
.field private class [System.Core]System.Func`1<string> chooseFilename
.field private class [mscorlib]System.IO.MemoryStream preStartBuffer
.field private bool disposed
.field private static class [System.Core]System.Func`2<class OpenRA.Order,bool> '<>f__am$cache5'
.custom instance void class [mscorlib]System.Runtime.CompilerServices.CompilerGeneratedAttribute::'.ctor'() = (01 00 00 00 ) // ....
// method line 77
.method public hidebysig specialname rtspecialname
instance default void '.ctor' (class OpenRA.Network.IConnection inner, class [System.Core]System.Func`1<string> chooseFilename) cil managed
{
// Method begins at RVA 0x3e00
// Code size 49 (0x31)
.maxstack 5
IL_0000: ldarg.0
IL_0001: newobj instance void class [mscorlib]System.IO.MemoryStream::'.ctor'()
IL_0006: stfld class [mscorlib]System.IO.MemoryStream OpenRA.Network.ReplayRecorderConnection::preStartBuffer
IL_000b: ldarg.0
IL_000c: call instance void object::'.ctor'()
IL_0011: ldarg.0
IL_0012: ldarg.2
IL_0013: stfld class [System.Core]System.Func`1<string> OpenRA.Network.ReplayRecorderConnection::chooseFilename
IL_0018: ldarg.0
IL_0019: ldarg.1
IL_001a: stfld class OpenRA.Network.IConnection OpenRA.Network.ReplayRecorderConnection::inner
IL_001f: ldarg.0
IL_0020: ldarg.0
IL_0021: ldfld class [mscorlib]System.IO.MemoryStream OpenRA.Network.ReplayRecorderConnection::preStartBuffer
IL_0026: newobj instance void class [mscorlib]System.IO.BinaryWriter::'.ctor'(class [mscorlib]System.IO.Stream)
IL_002b: stfld class [mscorlib]System.IO.BinaryWriter OpenRA.Network.ReplayRecorderConnection::writer
IL_0030: ret
} // end of method ReplayRecorderConnection::.ctor
// method line 78
.method private hidebysig
instance default void StartSavingReplay (unsigned int8[] initialContent) cil managed
{
// Method begins at RVA 0x3e40
// Code size 213 (0xd5)
.maxstack 18
.locals init (
string V_0,
string V_1,
class [mscorlib]System.IO.FileStream V_2,
int32 V_3,
string V_4)
IL_0000: ldarg.0
IL_0001: ldfld class [System.Core]System.Func`1<string> OpenRA.Network.ReplayRecorderConnection::chooseFilename
IL_0006: callvirt instance !0 class [System.Core]System.Func`1<string>::Invoke()
IL_000b: stloc.0
IL_000c: ldc.i4.4
IL_000d: newarr [mscorlib]System.String
IL_0012: dup
IL_0013: ldc.i4.0
IL_0014: call string class [OpenRA.FileFormats]OpenRA.Platform::get_SupportDir()
IL_0019: stelem.ref
IL_001a: dup
IL_001b: ldc.i4.1
IL_001c: ldstr "Replays"
IL_0021: stelem.ref
IL_0022: dup
IL_0023: ldc.i4.2
IL_0024: call string class OpenRA.Widgets.WidgetUtils::ActiveModId()
IL_0029: stelem.ref
IL_002a: dup
IL_002b: ldc.i4.3
IL_002c: call string class OpenRA.Widgets.WidgetUtils::ActiveModVersion()
IL_0031: stelem.ref
IL_0032: ldnull
IL_0033: ldftn string class [mscorlib]System.IO.Path::Combine(string, string)
IL_0039: newobj instance void class [System.Core]System.Func`3<string, string, string>::'.ctor'(object, native int)
IL_003e: call !!0 class [System.Core]System.Linq.Enumerable::Aggregate<string> (class [mscorlib]System.Collections.Generic.IEnumerable`1<!!0>, class [System.Core]System.Func`3<!!0,!!0,!!0>)
IL_0043: stloc.1
IL_0044: ldloc.1
IL_0045: call bool class [mscorlib]System.IO.Directory::Exists(string)
IL_004a: brtrue IL_0056
IL_004f: ldloc.1
IL_0050: call class [mscorlib]System.IO.DirectoryInfo class [mscorlib]System.IO.Directory::CreateDirectory(string)
IL_0055: pop
IL_0056: ldnull
IL_0057: stloc.2
IL_0058: ldc.i4.m1
IL_0059: stloc.3
IL_005a: br IL_00bb
IL_005f: ldloc.1
IL_0060: ldloc.3
IL_0061: ldc.i4.0
IL_0062: bge IL_0080
IL_0067: ldstr "{0}.rep"
IL_006c: ldc.i4.1
IL_006d: newarr [mscorlib]System.Object
IL_0072: dup
IL_0073: ldc.i4.0
IL_0074: ldloc.0
IL_0075: stelem.ref
IL_0076: call string class [OpenRA.FileFormats]OpenRA.Exts::F(string, object[])
IL_007b: br IL_009d
IL_0080: ldstr "{0}-{1}.rep"
IL_0085: ldc.i4.2
IL_0086: newarr [mscorlib]System.Object
IL_008b: dup
IL_008c: ldc.i4.0
IL_008d: ldloc.0
IL_008e: stelem.ref
IL_008f: dup
IL_0090: ldc.i4.1
IL_0091: ldloc.3
IL_0092: box [mscorlib]System.Int32
IL_0097: stelem.ref
IL_0098: call string class [OpenRA.FileFormats]OpenRA.Exts::F(string, object[])
IL_009d: call string class [mscorlib]System.IO.Path::Combine(string, string)
IL_00a2: stloc.s 4
IL_00a4: ldloc.3
IL_00a5: ldc.i4.1
IL_00a6: add
IL_00a7: stloc.3
.try { // 0
IL_00a8: ldloc.s 4
IL_00aa: call class [mscorlib]System.IO.FileStream class [mscorlib]System.IO.File::Create(string)
IL_00af: stloc.2
IL_00b0: leave IL_00bb
} // end .try 0
catch class [mscorlib]System.IO.IOException { // 0
IL_00b5: pop
IL_00b6: leave IL_00bb
} // end handler 0
IL_00bb: ldloc.2
IL_00bc: brfalse IL_005f
IL_00c1: ldloc.2
IL_00c2: ldarg.1
IL_00c3: call void class OpenRA.Network.OrderIO::Write(class [mscorlib]System.IO.Stream, unsigned int8[])
IL_00c8: ldarg.0
IL_00c9: ldloc.2
IL_00ca: newobj instance void class [mscorlib]System.IO.BinaryWriter::'.ctor'(class [mscorlib]System.IO.Stream)
IL_00cf: stfld class [mscorlib]System.IO.BinaryWriter OpenRA.Network.ReplayRecorderConnection::writer
IL_00d4: ret
} // end of method ReplayRecorderConnection::StartSavingReplay
// method line 79
.method public final virtual hidebysig newslot specialname
instance default int32 get_LocalClientId () cil managed
{
// Method begins at RVA 0x3f40
// Code size 12 (0xc)
.maxstack 8
IL_0000: ldarg.0
IL_0001: ldfld class OpenRA.Network.IConnection OpenRA.Network.ReplayRecorderConnection::inner
IL_0006: callvirt instance int32 class OpenRA.Network.IConnection::get_LocalClientId()
IL_000b: ret
} // end of method ReplayRecorderConnection::get_LocalClientId
// method line 80
.method public final virtual hidebysig newslot specialname
instance default valuetype OpenRA.Network.ConnectionState get_ConnectionState () cil managed
{
// Method begins at RVA 0x3f50
// Code size 12 (0xc)
.maxstack 8
IL_0000: ldarg.0
IL_0001: ldfld class OpenRA.Network.IConnection OpenRA.Network.ReplayRecorderConnection::inner
IL_0006: callvirt instance valuetype OpenRA.Network.ConnectionState class OpenRA.Network.IConnection::get_ConnectionState()
IL_000b: ret
} // end of method ReplayRecorderConnection::get_ConnectionState
// method line 81
.method public final virtual hidebysig newslot
instance default void Send (int32 frame, class [mscorlib]System.Collections.Generic.List`1<unsigned int8[]> orders) cil managed
{
// Method begins at RVA 0x3f60
// Code size 14 (0xe)
.maxstack 8
IL_0000: ldarg.0
IL_0001: ldfld class OpenRA.Network.IConnection OpenRA.Network.ReplayRecorderConnection::inner
IL_0006: ldarg.1
IL_0007: ldarg.2
IL_0008: callvirt instance void class OpenRA.Network.IConnection::Send(int32, class [mscorlib]System.Collections.Generic.List`1<unsigned int8[]>)
IL_000d: ret
} // end of method ReplayRecorderConnection::Send
// method line 82
.method public final virtual hidebysig newslot
instance default void SendImmediate (class [mscorlib]System.Collections.Generic.List`1<unsigned int8[]> orders) cil managed
{
// Method begins at RVA 0x3f70
// Code size 13 (0xd)
.maxstack 8
IL_0000: ldarg.0
IL_0001: ldfld class OpenRA.Network.IConnection OpenRA.Network.ReplayRecorderConnection::inner
IL_0006: ldarg.1
IL_0007: callvirt instance void class OpenRA.Network.IConnection::SendImmediate(class [mscorlib]System.Collections.Generic.List`1<unsigned int8[]>)
IL_000c: ret
} // end of method ReplayRecorderConnection::SendImmediate
// method line 83
.method public final virtual hidebysig newslot
instance default void SendSync (int32 frame, unsigned int8[] syncData) cil managed
{
// Method begins at RVA 0x3f80
// Code size 14 (0xe)
.maxstack 8
IL_0000: ldarg.0
IL_0001: ldfld class OpenRA.Network.IConnection OpenRA.Network.ReplayRecorderConnection::inner
IL_0006: ldarg.1
IL_0007: ldarg.2
IL_0008: callvirt instance void class OpenRA.Network.IConnection::SendSync(int32, unsigned int8[])
IL_000d: ret
} // end of method ReplayRecorderConnection::SendSync
// method line 84
.method public final virtual hidebysig newslot
instance default void Receive (class [System.Core]System.Action`2<int32, unsigned int8[]> packetFn) cil managed
{
// Method begins at RVA 0x3f90
// Code size 44 (0x2c)
.maxstack 4
.locals init (
class OpenRA.Network.ReplayRecorderConnection/'<Receive>c__AnonStorey1B' V_0)
IL_0000: newobj instance void class OpenRA.Network.ReplayRecorderConnection/'<Receive>c__AnonStorey1B'::'.ctor'()
IL_0005: stloc.0
IL_0006: ldloc.0
IL_0007: ldarg.1
IL_0008: stfld class [System.Core]System.Action`2<int32,unsigned int8[]> OpenRA.Network.ReplayRecorderConnection/'<Receive>c__AnonStorey1B'::packetFn
IL_000d: ldloc.0
IL_000e: ldarg.0
IL_000f: stfld class OpenRA.Network.ReplayRecorderConnection OpenRA.Network.ReplayRecorderConnection/'<Receive>c__AnonStorey1B'::'<>f__this'
IL_0014: ldarg.0
IL_0015: ldfld class OpenRA.Network.IConnection OpenRA.Network.ReplayRecorderConnection::inner
IL_001a: ldloc.0
IL_001b: ldftn instance void class OpenRA.Network.ReplayRecorderConnection/'<Receive>c__AnonStorey1B'::'<>m__17'(int32, unsigned int8[])
IL_0021: newobj instance void class [System.Core]System.Action`2<int32, unsigned int8[]>::'.ctor'(object, native int)
IL_0026: callvirt instance void class OpenRA.Network.IConnection::Receive(class [System.Core]System.Action`2<int32,unsigned int8[]>)
IL_002b: ret
} // end of method ReplayRecorderConnection::Receive
// method line 85
.method private hidebysig
instance default bool IsGameStart (unsigned int8[] data) cil managed
{
// Method begins at RVA 0x3fc8
// Code size 104 (0x68)
.maxstack 9
.locals init (
int32 V_0)
IL_0000: ldarg.1
IL_0001: ldlen
IL_0002: conv.i4
IL_0003: ldc.i4.5
IL_0004: bne.un IL_0018
IL_0009: ldarg.1
IL_000a: ldc.i4.4
IL_000b: ldelem.u1
IL_000c: ldc.i4 191
IL_0011: bne.un IL_0018
IL_0016: ldc.i4.0
IL_0017: ret
IL_0018: ldarg.1
IL_0019: ldlen
IL_001a: conv.i4
IL_001b: ldc.i4.5
IL_001c: blt IL_002d
IL_0021: ldarg.1
IL_0022: ldc.i4.4
IL_0023: ldelem.u1
IL_0024: ldc.i4.s 0x65
IL_0026: bne.un IL_002d
IL_002b: ldc.i4.0
IL_002c: ret
IL_002d: ldarg.1
IL_002e: ldc.i4.0
IL_002f: call int32 class [mscorlib]System.BitConverter::ToInt32(unsigned int8[], int32)
IL_0034: stloc.0
IL_0035: ldloc.0
IL_0036: brtrue IL_0066
IL_003b: ldarg.1
IL_003c: ldnull
IL_003d: call class [mscorlib]System.Collections.Generic.List`1<class OpenRA.Order> class OpenRA.Network.OrderIO::ToOrderList(unsigned int8[], class OpenRA.World)
IL_0042: ldsfld class [System.Core]System.Func`2<class OpenRA.Order,bool> OpenRA.Network.ReplayRecorderConnection::'<>f__am$cache5'
IL_0047: brtrue.s IL_005a
IL_0049: ldnull
IL_004a: ldftn bool class OpenRA.Network.ReplayRecorderConnection::'<IsGameStart>m__18'(class OpenRA.Order)
IL_0050: newobj instance void class [System.Core]System.Func`2<class OpenRA.Order, bool>::'.ctor'(object, native int)
IL_0055: stsfld class [System.Core]System.Func`2<class OpenRA.Order,bool> OpenRA.Network.ReplayRecorderConnection::'<>f__am$cache5'
IL_005a: ldsfld class [System.Core]System.Func`2<class OpenRA.Order,bool> OpenRA.Network.ReplayRecorderConnection::'<>f__am$cache5'
IL_005f: call bool class [System.Core]System.Linq.Enumerable::Any<class OpenRA.Order> (class [mscorlib]System.Collections.Generic.IEnumerable`1<!!0>, class [System.Core]System.Func`2<!!0,bool>)
IL_0064: br.s IL_0067
IL_0066: ldc.i4.0
IL_0067: ret
} // end of method ReplayRecorderConnection::IsGameStart
// method line 86
.method public final virtual hidebysig newslot
instance default void Dispose () cil managed
{
// Method begins at RVA 0x403c
// Code size 42 (0x2a)
.maxstack 8
IL_0000: ldarg.0
IL_0001: ldfld bool OpenRA.Network.ReplayRecorderConnection::disposed
IL_0006: brfalse IL_000c
IL_000b: ret
IL_000c: ldarg.0
IL_000d: ldfld class [mscorlib]System.IO.BinaryWriter OpenRA.Network.ReplayRecorderConnection::writer
IL_0012: callvirt instance void class [mscorlib]System.IO.BinaryWriter::Close()
IL_0017: ldarg.0
IL_0018: ldfld class OpenRA.Network.IConnection OpenRA.Network.ReplayRecorderConnection::inner
IL_001d: callvirt instance void class [mscorlib]System.IDisposable::Dispose()
IL_0022: ldarg.0
IL_0023: ldc.i4.1
IL_0024: stfld bool OpenRA.Network.ReplayRecorderConnection::disposed
IL_0029: ret
} // end of method ReplayRecorderConnection::Dispose
// method line 87
.method family virtual hidebysig
instance default void Finalize () cil managed
{
// Method begins at RVA 0x4068
// Code size 19 (0x13)
.maxstack 4
.try { // 0
IL_0000: ldarg.0
IL_0001: call instance void class OpenRA.Network.ReplayRecorderConnection::Dispose()
IL_0006: leave IL_0012
} // end .try 0
finally { // 0
IL_000b: ldarg.0
IL_000c: call instance void object::Finalize()
IL_0011: endfinally
} // end handler 0
IL_0012: ret
} // end of method ReplayRecorderConnection::Finalize
// method line 88
.method private static hidebysig
default bool '<IsGameStart>m__18' (class OpenRA.Order o) cil managed
{
.custom instance void class [mscorlib]System.Runtime.CompilerServices.CompilerGeneratedAttribute::'.ctor'() = (01 00 00 00 ) // ....
// Method begins at RVA 0x40a4
// Code size 17 (0x11)
.maxstack 8
IL_0000: ldarg.0
IL_0001: ldfld string OpenRA.Order::OrderString
IL_0006: ldstr "StartGame"
IL_000b: call bool string::op_Equality(string, string)
IL_0010: ret
} // end of method ReplayRecorderConnection::<IsGameStart>m__18
.property instance int32 LocalClientId ()
{
.get instance default int32 OpenRA.Network.ReplayRecorderConnection::get_LocalClientId ()
}
.property instance valuetype OpenRA.Network.ConnectionState ConnectionState ()
{
.get instance default valuetype OpenRA.Network.ConnectionState OpenRA.Network.ReplayRecorderConnection::get_ConnectionState ()
}
.class nested private auto ansi sealed beforefieldinit '<Receive>c__AnonStorey1B'
extends [mscorlib]System.Object
{
.custom instance void class [mscorlib]System.Runtime.CompilerServices.CompilerGeneratedAttribute::'.ctor'() = (01 00 00 00 ) // ....
.field assembly class [System.Core]System.Action`2<int32,unsigned int8[]> packetFn
.field assembly class OpenRA.Network.ReplayRecorderConnection '<>f__this'
// method line 2093
.method public hidebysig specialname rtspecialname
instance default void '.ctor' () cil managed
{
// Method begins at RVA 0x2b614
// Code size 7 (0x7)
.maxstack 8
IL_0000: ldarg.0
IL_0001: call instance void object::'.ctor'()
IL_0006: ret
} // end of method <Receive>c__AnonStorey1B::.ctor
// method line 2094
.method assembly hidebysig
instance default void '<>m__17' (int32 client, unsigned int8[] data) cil managed
{
// Method begins at RVA 0x2b61c
// Code size 157 (0x9d)
.maxstack 18
.locals init (
unsigned int8[] V_0)
IL_0000: ldarg.0
IL_0001: ldfld class OpenRA.Network.ReplayRecorderConnection OpenRA.Network.ReplayRecorderConnection/'<Receive>c__AnonStorey1B'::'<>f__this'
IL_0006: ldfld class [mscorlib]System.IO.MemoryStream OpenRA.Network.ReplayRecorderConnection::preStartBuffer
IL_000b: brfalse IL_005a
IL_0010: ldarg.0
IL_0011: ldfld class OpenRA.Network.ReplayRecorderConnection OpenRA.Network.ReplayRecorderConnection/'<Receive>c__AnonStorey1B'::'<>f__this'
IL_0016: ldarg.2
IL_0017: call instance bool class OpenRA.Network.ReplayRecorderConnection::IsGameStart(unsigned int8[])
IL_001c: brfalse IL_005a
IL_0021: ldarg.0
IL_0022: ldfld class OpenRA.Network.ReplayRecorderConnection OpenRA.Network.ReplayRecorderConnection/'<Receive>c__AnonStorey1B'::'<>f__this'
IL_0027: ldfld class [mscorlib]System.IO.BinaryWriter OpenRA.Network.ReplayRecorderConnection::writer
IL_002c: callvirt instance void class [mscorlib]System.IO.BinaryWriter::Flush()
IL_0031: ldarg.0
IL_0032: ldfld class OpenRA.Network.ReplayRecorderConnection OpenRA.Network.ReplayRecorderConnection/'<Receive>c__AnonStorey1B'::'<>f__this'
IL_0037: ldfld class [mscorlib]System.IO.MemoryStream OpenRA.Network.ReplayRecorderConnection::preStartBuffer
IL_003c: callvirt instance unsigned int8[] class [mscorlib]System.IO.MemoryStream::ToArray()
IL_0041: stloc.0
IL_0042: ldarg.0
IL_0043: ldfld class OpenRA.Network.ReplayRecorderConnection OpenRA.Network.ReplayRecorderConnection/'<Receive>c__AnonStorey1B'::'<>f__this'
IL_0048: ldnull
IL_0049: stfld class [mscorlib]System.IO.MemoryStream OpenRA.Network.ReplayRecorderConnection::preStartBuffer
IL_004e: ldarg.0
IL_004f: ldfld class OpenRA.Network.ReplayRecorderConnection OpenRA.Network.ReplayRecorderConnection/'<Receive>c__AnonStorey1B'::'<>f__this'
IL_0054: ldloc.0
IL_0055: call instance void class OpenRA.Network.ReplayRecorderConnection::StartSavingReplay(unsigned int8[])
IL_005a: ldarg.0
IL_005b: ldfld class OpenRA.Network.ReplayRecorderConnection OpenRA.Network.ReplayRecorderConnection/'<Receive>c__AnonStorey1B'::'<>f__this'
IL_0060: ldfld class [mscorlib]System.IO.BinaryWriter OpenRA.Network.ReplayRecorderConnection::writer
IL_0065: ldarg.1
IL_0066: callvirt instance void class [mscorlib]System.IO.BinaryWriter::Write(int32)
IL_006b: ldarg.0
IL_006c: ldfld class OpenRA.Network.ReplayRecorderConnection OpenRA.Network.ReplayRecorderConnection/'<Receive>c__AnonStorey1B'::'<>f__this'
IL_0071: ldfld class [mscorlib]System.IO.BinaryWriter OpenRA.Network.ReplayRecorderConnection::writer
IL_0076: ldarg.2
IL_0077: ldlen
IL_0078: conv.i4
IL_0079: callvirt instance void class [mscorlib]System.IO.BinaryWriter::Write(int32)
IL_007e: ldarg.0
IL_007f: ldfld class OpenRA.Network.ReplayRecorderConnection OpenRA.Network.ReplayRecorderConnection/'<Receive>c__AnonStorey1B'::'<>f__this'
IL_0084: ldfld class [mscorlib]System.IO.BinaryWriter OpenRA.Network.ReplayRecorderConnection::writer
IL_0089: ldarg.2
IL_008a: callvirt instance void class [mscorlib]System.IO.BinaryWriter::Write(unsigned int8[])
IL_008f: ldarg.0
IL_0090: ldfld class [System.Core]System.Action`2<int32,unsigned int8[]> OpenRA.Network.ReplayRecorderConnection/'<Receive>c__AnonStorey1B'::packetFn
IL_0095: ldarg.1
IL_0096: ldarg.2
IL_0097: callvirt instance void class [System.Core]System.Action`2<int32, unsigned int8[]>::Invoke(!0, !1)
IL_009c: ret
} // end of method <Receive>c__AnonStorey1B::<>m__17
} // end of class <Receive>c__AnonStorey1B
} // end of class OpenRA.Network.ReplayRecorderConnection
}
.namespace OpenRA.Network
{
.class private auto ansi beforefieldinit SyncReport
extends [mscorlib]System.Object
{
.field private static literal int32 NumSyncReports = int32(0x00000005)
.field private static class [OpenRA.FileFormats]OpenRA.FileFormats.Cache`2<class [mscorlib]System.Type,class [System.Core]System.Func`2<object,class [mscorlib]System.Collections.Generic.Dictionary`2<string,string>>> dumpFuncCache
.field private initonly class OpenRA.Network.OrderManager orderManager
.field private class OpenRA.Network.SyncReport/Report[] syncReports
.field private int32 curIndex
.field private static class [System.Core]System.Func`2<class [mscorlib]System.Type,class [System.Core]System.Func`2<object,class [mscorlib]System.Collections.Generic.Dictionary`2<string,string>>> '<>f__am$cache4'
.custom instance void class [mscorlib]System.Runtime.CompilerServices.CompilerGeneratedAttribute::'.ctor'() = (01 00 00 00 ) // ....
.field private static class [System.Core]System.Func`2<class [mscorlib]System.Reflection.FieldInfo,bool> '<>f__am$cache5'
.custom instance void class [mscorlib]System.Runtime.CompilerServices.CompilerGeneratedAttribute::'.ctor'() = (01 00 00 00 ) // ....
.field private static class [System.Core]System.Func`2<class [mscorlib]System.Reflection.PropertyInfo,bool> '<>f__am$cache6'
.custom instance void class [mscorlib]System.Runtime.CompilerServices.CompilerGeneratedAttribute::'.ctor'() = (01 00 00 00 ) // ....
// method line 89
.method public hidebysig specialname rtspecialname
instance default void '.ctor' (class OpenRA.Network.OrderManager orderManager) cil managed
{
// Method begins at RVA 0x40b8
// Code size 64 (0x40)
.maxstack 5
.locals init (
int32 V_0)
IL_0000: ldarg.0
IL_0001: ldc.i4.5
IL_0002: newarr OpenRA.Network.SyncReport/Report
IL_0007: stfld class OpenRA.Network.SyncReport/Report[] OpenRA.Network.SyncReport::syncReports
IL_000c: ldarg.0
IL_000d: ldc.i4.0
IL_000e: stfld int32 OpenRA.Network.SyncReport::curIndex
IL_0013: ldarg.0
IL_0014: call instance void object::'.ctor'()
IL_0019: ldarg.0
IL_001a: ldarg.1
IL_001b: stfld class OpenRA.Network.OrderManager OpenRA.Network.SyncReport::orderManager
IL_0020: ldc.i4.0
IL_0021: stloc.0
IL_0022: br IL_0038
IL_0027: ldarg.0
IL_0028: ldfld class OpenRA.Network.SyncReport/Report[] OpenRA.Network.SyncReport::syncReports
IL_002d: ldloc.0
IL_002e: newobj instance void class OpenRA.Network.SyncReport/Report::'.ctor'()
IL_0033: stelem.ref
IL_0034: ldloc.0
IL_0035: ldc.i4.1
IL_0036: add
IL_0037: stloc.0
IL_0038: ldloc.0
IL_0039: ldc.i4.5
IL_003a: blt IL_0027
IL_003f: ret
} // end of method SyncReport::.ctor
// method line 90
.method private static specialname rtspecialname
default void '.cctor' () cil managed
{
// Method begins at RVA 0x4104
// Code size 40 (0x28)
.maxstack 8
IL_0000: ldsfld class [System.Core]System.Func`2<class [mscorlib]System.Type,class [System.Core]System.Func`2<object,class [mscorlib]System.Collections.Generic.Dictionary`2<string,string>>> OpenRA.Network.SyncReport::'<>f__am$cache4'
IL_0005: brtrue.s IL_0018
IL_0007: ldnull
IL_0008: ldftn class [System.Core]System.Func`2<object,class [mscorlib]System.Collections.Generic.Dictionary`2<string,string>> class OpenRA.Network.SyncReport::'<dumpFuncCache>m__19'(class [mscorlib]System.Type)
IL_000e: newobj instance void class [System.Core]System.Func`2<class [mscorlib]System.Type, class [System.Core]System.Func`2<object, class [mscorlib]System.Collections.Generic.Dictionary`2<string, string>>>::'.ctor'(object, native int)
IL_0013: stsfld class [System.Core]System.Func`2<class [mscorlib]System.Type,class [System.Core]System.Func`2<object,class [mscorlib]System.Collections.Generic.Dictionary`2<string,string>>> OpenRA.Network.SyncReport::'<>f__am$cache4'
IL_0018: ldsfld class [System.Core]System.Func`2<class [mscorlib]System.Type,class [System.Core]System.Func`2<object,class [mscorlib]System.Collections.Generic.Dictionary`2<string,string>>> OpenRA.Network.SyncReport::'<>f__am$cache4'
IL_001d: newobj instance void class [OpenRA.FileFormats]OpenRA.FileFormats.Cache`2<class [mscorlib]System.Type, class [System.Core]System.Func`2<object, class [mscorlib]System.Collections.Generic.Dictionary`2<string, string>>>::'.ctor'(class [System.Core]System.Func`2<!0,!1>)
IL_0022: stsfld class [OpenRA.FileFormats]OpenRA.FileFormats.Cache`2<class [mscorlib]System.Type,class [System.Core]System.Func`2<object,class [mscorlib]System.Collections.Generic.Dictionary`2<string,string>>> OpenRA.Network.SyncReport::dumpFuncCache
IL_0027: ret
} // end of method SyncReport::.cctor
// method line 91
.method assembly hidebysig
instance default void UpdateSyncReport () cil managed
{
// Method begins at RVA 0x4130
// Code size 45 (0x2d)
.maxstack 7
.locals init (
int32 V_0)
IL_0000: ldarg.0
IL_0001: ldarg.0
IL_0002: ldfld class OpenRA.Network.SyncReport/Report[] OpenRA.Network.SyncReport::syncReports
IL_0007: ldarg.0
IL_0008: ldfld int32 OpenRA.Network.SyncReport::curIndex
IL_000d: ldelem.ref
IL_000e: call instance void class OpenRA.Network.SyncReport::GenerateSyncReport(class OpenRA.Network.SyncReport/Report)
IL_0013: ldarg.0
IL_0014: ldarg.0
IL_0015: dup
IL_0016: ldfld int32 OpenRA.Network.SyncReport::curIndex
IL_001b: ldc.i4.1
IL_001c: add
IL_001d: dup
IL_001e: stloc.0
IL_001f: stfld int32 OpenRA.Network.SyncReport::curIndex
IL_0024: ldloc.0
IL_0025: ldc.i4.5
IL_0026: rem
IL_0027: stfld int32 OpenRA.Network.SyncReport::curIndex
IL_002c: ret
} // end of method SyncReport::UpdateSyncReport
// method line 92
.method public static hidebysig
default class [mscorlib]System.Collections.Generic.Dictionary`2<string, string> DumpSyncTrait (object obj) cil managed
{
// Method begins at RVA 0x416c
// Code size 23 (0x17)
.maxstack 8
IL_0000: ldsfld class [OpenRA.FileFormats]OpenRA.FileFormats.Cache`2<class [mscorlib]System.Type,class [System.Core]System.Func`2<object,class [mscorlib]System.Collections.Generic.Dictionary`2<string,string>>> OpenRA.Network.SyncReport::dumpFuncCache
IL_0005: ldarg.0
IL_0006: callvirt instance class [mscorlib]System.Type object::GetType()
IL_000b: callvirt instance !1 class [OpenRA.FileFormats]OpenRA.FileFormats.Cache`2<class [mscorlib]System.Type, class [System.Core]System.Func`2<object, class [mscorlib]System.Collections.Generic.Dictionary`2<string, string>>>::get_Item(!0)
IL_0010: ldarg.0
IL_0011: callvirt instance !1 class [System.Core]System.Func`2<object, class [mscorlib]System.Collections.Generic.Dictionary`2<string, string>>::Invoke(!0)
IL_0016: ret
} // end of method SyncReport::DumpSyncTrait
// method line 93
.method public static hidebysig
default class [System.Core]System.Func`2<object, class [mscorlib]System.Collections.Generic.Dictionary`2<string, string>> GenerateDumpFunc (class [mscorlib]System.Type t) cil managed
{
// Method begins at RVA 0x4184
// Code size 911 (0x38f)
.maxstack 146
.locals init (
class [mscorlib]System.Type V_0,
class [mscorlib]System.Reflection.Emit.DynamicMethod V_1,
class [mscorlib]System.Reflection.Emit.ILGenerator V_2,
int32 V_3,
int32 V_4,
int32 V_5,
class [mscorlib]System.Reflection.MethodInfo V_6,
class [mscorlib]System.Reflection.ConstructorInfo V_7,
class [mscorlib]System.Reflection.MethodInfo V_8,
class [mscorlib]System.Collections.Generic.IEnumerator`1<class [mscorlib]System.Reflection.FieldInfo> V_9,
class [mscorlib]System.Reflection.FieldInfo V_10,
valuetype [mscorlib]System.Reflection.Emit.Label V_11,
class [mscorlib]System.Collections.Generic.IEnumerator`1<class [mscorlib]System.Reflection.PropertyInfo> V_12,
class [mscorlib]System.Reflection.PropertyInfo V_13,
valuetype [mscorlib]System.Reflection.Emit.Label V_14)
IL_0000: ldtoken class [mscorlib]System.Collections.Generic.Dictionary`2<string,string>
IL_0005: call class [mscorlib]System.Type class [mscorlib]System.Type::GetTypeFromHandle(valuetype [mscorlib]System.RuntimeTypeHandle)
IL_000a: stloc.0
IL_000b: ldstr "dump_{0}"
IL_0010: ldc.i4.1
IL_0011: newarr [mscorlib]System.Object
IL_0016: dup
IL_0017: ldc.i4.0
IL_0018: ldarg.0
IL_0019: callvirt instance string class [mscorlib]System.Reflection.MemberInfo::get_Name()
IL_001e: stelem.ref
IL_001f: call string class [OpenRA.FileFormats]OpenRA.Exts::F(string, object[])
IL_0024: ldloc.0
IL_0025: ldc.i4.1
IL_0026: newarr [mscorlib]System.Type
IL_002b: dup
IL_002c: ldc.i4.0
IL_002d: ldtoken [mscorlib]System.Object
IL_0032: call class [mscorlib]System.Type class [mscorlib]System.Type::GetTypeFromHandle(valuetype [mscorlib]System.RuntimeTypeHandle)
IL_0037: stelem.ref
IL_0038: ldarg.0
IL_0039: newobj instance void class [mscorlib]System.Reflection.Emit.DynamicMethod::'.ctor'(string, class [mscorlib]System.Type, class [mscorlib]System.Type[], class [mscorlib]System.Type)
IL_003e: stloc.1
IL_003f: ldloc.1
IL_0040: callvirt instance class [mscorlib]System.Reflection.Emit.ILGenerator class [mscorlib]System.Reflection.Emit.DynamicMethod::GetILGenerator()
IL_0045: stloc.2
IL_0046: ldloc.2
IL_0047: ldarg.0
IL_0048: callvirt instance class [mscorlib]System.Reflection.Emit.LocalBuilder class [mscorlib]System.Reflection.Emit.ILGenerator::DeclareLocal(class [mscorlib]System.Type)
IL_004d: callvirt instance int32 class [mscorlib]System.Reflection.LocalVariableInfo::get_LocalIndex()
IL_0052: stloc.3
IL_0053: ldloc.2
IL_0054: ldloc.0
IL_0055: callvirt instance class [mscorlib]System.Reflection.Emit.LocalBuilder class [mscorlib]System.Reflection.Emit.ILGenerator::DeclareLocal(class [mscorlib]System.Type)
IL_005a: callvirt instance int32 class [mscorlib]System.Reflection.LocalVariableInfo::get_LocalIndex()
IL_005f: stloc.s 4
IL_0061: ldloc.2
IL_0062: ldtoken [mscorlib]System.Object
IL_0067: call class [mscorlib]System.Type class [mscorlib]System.Type::GetTypeFromHandle(valuetype [mscorlib]System.RuntimeTypeHandle)
IL_006c: callvirt instance class [mscorlib]System.Reflection.Emit.LocalBuilder class [mscorlib]System.Reflection.Emit.ILGenerator::DeclareLocal(class [mscorlib]System.Type)
IL_0071: callvirt instance int32 class [mscorlib]System.Reflection.LocalVariableInfo::get_LocalIndex()
IL_0076: stloc.s 5
IL_0078: ldloc.2
IL_0079: ldsfld valuetype [mscorlib]System.Reflection.Emit.OpCode [mscorlib]System.Reflection.Emit.OpCodes::Ldarg_0
IL_007e: callvirt instance void class [mscorlib]System.Reflection.Emit.ILGenerator::Emit(valuetype [mscorlib]System.Reflection.Emit.OpCode)
IL_0083: ldloc.2
IL_0084: ldsfld valuetype [mscorlib]System.Reflection.Emit.OpCode [mscorlib]System.Reflection.Emit.OpCodes::Castclass
IL_0089: ldarg.0
IL_008a: callvirt instance void class [mscorlib]System.Reflection.Emit.ILGenerator::Emit(valuetype [mscorlib]System.Reflection.Emit.OpCode, class [mscorlib]System.Type)
IL_008f: ldloc.2
IL_0090: ldsfld valuetype [mscorlib]System.Reflection.Emit.OpCode [mscorlib]System.Reflection.Emit.OpCodes::Stloc
IL_0095: ldloc.3
IL_0096: callvirt instance void class [mscorlib]System.Reflection.Emit.ILGenerator::Emit(valuetype [mscorlib]System.Reflection.Emit.OpCode, int32)
IL_009b: ldloc.0
IL_009c: ldstr "Add"
IL_00a1: ldc.i4.s 0x14
IL_00a3: ldnull
IL_00a4: ldc.i4.2
IL_00a5: newarr [mscorlib]System.Type
IL_00aa: dup
IL_00ab: ldc.i4.0
IL_00ac: ldtoken [mscorlib]System.String
IL_00b1: call class [mscorlib]System.Type class [mscorlib]System.Type::GetTypeFromHandle(valuetype [mscorlib]System.RuntimeTypeHandle)
IL_00b6: stelem.ref
IL_00b7: dup
IL_00b8: ldc.i4.1
IL_00b9: ldtoken [mscorlib]System.String
IL_00be: call class [mscorlib]System.Type class [mscorlib]System.Type::GetTypeFromHandle(valuetype [mscorlib]System.RuntimeTypeHandle)
IL_00c3: stelem.ref
IL_00c4: ldnull
IL_00c5: callvirt instance class [mscorlib]System.Reflection.MethodInfo class [mscorlib]System.Type::GetMethod(string, valuetype [mscorlib]System.Reflection.BindingFlags, class [mscorlib]System.Reflection.Binder, class [mscorlib]System.Type[], valuetype [mscorlib]System.Reflection.ParameterModifier[])
IL_00ca: stloc.s 6
IL_00cc: ldloc.0
IL_00cd: ldsfld class [mscorlib]System.Type[] [mscorlib]System.Type::EmptyTypes
IL_00d2: callvirt instance class [mscorlib]System.Reflection.ConstructorInfo class [mscorlib]System.Type::GetConstructor(class [mscorlib]System.Type[])
IL_00d7: stloc.s 7
IL_00d9: ldtoken [mscorlib]System.Object
IL_00de: call class [mscorlib]System.Type class [mscorlib]System.Type::GetTypeFromHandle(valuetype [mscorlib]System.RuntimeTypeHandle)
IL_00e3: ldstr "ToString"
IL_00e8: ldc.i4.s 0x14
IL_00ea: ldnull
IL_00eb: ldsfld class [mscorlib]System.Type[] [mscorlib]System.Type::EmptyTypes
IL_00f0: ldnull
IL_00f1: callvirt instance class [mscorlib]System.Reflection.MethodInfo class [mscorlib]System.Type::GetMethod(string, valuetype [mscorlib]System.Reflection.BindingFlags, class [mscorlib]System.Reflection.Binder, class [mscorlib]System.Type[], valuetype [mscorlib]System.Reflection.ParameterModifier[])
IL_00f6: stloc.s 8
IL_00f8: ldloc.2
IL_00f9: ldsfld valuetype [mscorlib]System.Reflection.Emit.OpCode [mscorlib]System.Reflection.Emit.OpCodes::Newobj
IL_00fe: ldloc.s 7
IL_0100: callvirt instance void class [mscorlib]System.Reflection.Emit.ILGenerator::Emit(valuetype [mscorlib]System.Reflection.Emit.OpCode, class [mscorlib]System.Reflection.ConstructorInfo)
IL_0105: ldloc.2
IL_0106: ldsfld valuetype [mscorlib]System.Reflection.Emit.OpCode [mscorlib]System.Reflection.Emit.OpCodes::Stloc
IL_010b: ldloc.s 4
IL_010d: callvirt instance void class [mscorlib]System.Reflection.Emit.ILGenerator::Emit(valuetype [mscorlib]System.Reflection.Emit.OpCode, int32)
IL_0112: ldarg.0
IL_0113: ldc.i4.s 0x34
IL_0115: callvirt instance class [mscorlib]System.Reflection.FieldInfo[] class [mscorlib]System.Type::GetFields(valuetype [mscorlib]System.Reflection.BindingFlags)
IL_011a: ldsfld class [System.Core]System.Func`2<class [mscorlib]System.Reflection.FieldInfo,bool> OpenRA.Network.SyncReport::'<>f__am$cache5'
IL_011f: brtrue.s IL_0132
IL_0121: ldnull
IL_0122: ldftn bool class OpenRA.Network.SyncReport::'<GenerateDumpFunc>m__1A'(class [mscorlib]System.Reflection.FieldInfo)
IL_0128: newobj instance void class [System.Core]System.Func`2<class [mscorlib]System.Reflection.FieldInfo, bool>::'.ctor'(object, native int)
IL_012d: stsfld class [System.Core]System.Func`2<class [mscorlib]System.Reflection.FieldInfo,bool> OpenRA.Network.SyncReport::'<>f__am$cache5'
IL_0132: ldsfld class [System.Core]System.Func`2<class [mscorlib]System.Reflection.FieldInfo,bool> OpenRA.Network.SyncReport::'<>f__am$cache5'
IL_0137: call class [mscorlib]System.Collections.Generic.IEnumerable`1<!!0> class [System.Core]System.Linq.Enumerable::Where<class [mscorlib]System.Reflection.FieldInfo> (class [mscorlib]System.Collections.Generic.IEnumerable`1<!!0>, class [System.Core]System.Func`2<!!0,bool>)
IL_013c: callvirt instance class [mscorlib]System.Collections.Generic.IEnumerator`1<!0> class [mscorlib]System.Collections.Generic.IEnumerable`1<class [mscorlib]System.Reflection.FieldInfo>::GetEnumerator()
IL_0141: stloc.s 9
.try { // 1
IL_0143: br IL_0225
IL_0148: ldloc.s 9
IL_014a: callvirt instance !0 class [mscorlib]System.Collections.Generic.IEnumerator`1<class [mscorlib]System.Reflection.FieldInfo>::get_Current()
IL_014f: stloc.s 10
IL_0151: ldloc.s 10
IL_0153: callvirt instance bool class [mscorlib]System.Reflection.FieldInfo::get_IsLiteral()
IL_0158: brtrue IL_0169
IL_015d: ldloc.s 10
IL_015f: callvirt instance bool class [mscorlib]System.Reflection.FieldInfo::get_IsStatic()
IL_0164: brfalse IL_016e
IL_0169: br IL_0225
IL_016e: ldloc.2
IL_016f: callvirt instance valuetype [mscorlib]System.Reflection.Emit.Label class [mscorlib]System.Reflection.Emit.ILGenerator::DefineLabel()
IL_0174: stloc.s 11
IL_0176: ldloc.2
IL_0177: ldsfld valuetype [mscorlib]System.Reflection.Emit.OpCode [mscorlib]System.Reflection.Emit.OpCodes::Ldloc
IL_017c: ldloc.3
IL_017d: callvirt instance void class [mscorlib]System.Reflection.Emit.ILGenerator::Emit(valuetype [mscorlib]System.Reflection.Emit.OpCode, int32)
IL_0182: ldloc.2
IL_0183: ldsfld valuetype [mscorlib]System.Reflection.Emit.OpCode [mscorlib]System.Reflection.Emit.OpCodes::Ldfld
IL_0188: ldloc.s 10
IL_018a: callvirt instance void class [mscorlib]System.Reflection.Emit.ILGenerator::Emit(valuetype [mscorlib]System.Reflection.Emit.OpCode, class [mscorlib]System.Reflection.FieldInfo)
IL_018f: ldloc.s 10
IL_0191: callvirt instance class [mscorlib]System.Type class [mscorlib]System.Reflection.FieldInfo::get_FieldType()
IL_0196: callvirt instance bool class [mscorlib]System.Type::get_IsValueType()
IL_019b: brfalse IL_01b2
IL_01a0: ldloc.2
IL_01a1: ldsfld valuetype [mscorlib]System.Reflection.Emit.OpCode [mscorlib]System.Reflection.Emit.OpCodes::Box
IL_01a6: ldloc.s 10
IL_01a8: callvirt instance class [mscorlib]System.Type class [mscorlib]System.Reflection.FieldInfo::get_FieldType()
IL_01ad: callvirt instance void class [mscorlib]System.Reflection.Emit.ILGenerator::Emit(valuetype [mscorlib]System.Reflection.Emit.OpCode, class [mscorlib]System.Type)
IL_01b2: ldloc.2
IL_01b3: ldsfld valuetype [mscorlib]System.Reflection.Emit.OpCode [mscorlib]System.Reflection.Emit.OpCodes::Dup
IL_01b8: callvirt instance void class [mscorlib]System.Reflection.Emit.ILGenerator::Emit(valuetype [mscorlib]System.Reflection.Emit.OpCode)
IL_01bd: ldloc.2
IL_01be: ldsfld valuetype [mscorlib]System.Reflection.Emit.OpCode [mscorlib]System.Reflection.Emit.OpCodes::Stloc
IL_01c3: ldloc.s 5
IL_01c5: callvirt instance void class [mscorlib]System.Reflection.Emit.ILGenerator::Emit(valuetype [mscorlib]System.Reflection.Emit.OpCode, int32)
IL_01ca: ldloc.2
IL_01cb: ldsfld valuetype [mscorlib]System.Reflection.Emit.OpCode [mscorlib]System.Reflection.Emit.OpCodes::Brfalse
IL_01d0: ldloc.s 11
IL_01d2: callvirt instance void class [mscorlib]System.Reflection.Emit.ILGenerator::Emit(valuetype [mscorlib]System.Reflection.Emit.OpCode, valuetype [mscorlib]System.Reflection.Emit.Label)
IL_01d7: ldloc.2
IL_01d8: ldsfld valuetype [mscorlib]System.Reflection.Emit.OpCode [mscorlib]System.Reflection.Emit.OpCodes::Ldloc
IL_01dd: ldloc.s 4
IL_01df: callvirt instance void class [mscorlib]System.Reflection.Emit.ILGenerator::Emit(valuetype [mscorlib]System.Reflection.Emit.OpCode, int32)
IL_01e4: ldloc.2
IL_01e5: ldsfld valuetype [mscorlib]System.Reflection.Emit.OpCode [mscorlib]System.Reflection.Emit.OpCodes::Ldstr
IL_01ea: ldloc.s 10
IL_01ec: callvirt instance string class [mscorlib]System.Reflection.MemberInfo::get_Name()
IL_01f1: callvirt instance void class [mscorlib]System.Reflection.Emit.ILGenerator::Emit(valuetype [mscorlib]System.Reflection.Emit.OpCode, string)
IL_01f6: ldloc.2
IL_01f7: ldsfld valuetype [mscorlib]System.Reflection.Emit.OpCode [mscorlib]System.Reflection.Emit.OpCodes::Ldloc
IL_01fc: ldloc.s 5
IL_01fe: callvirt instance void class [mscorlib]System.Reflection.Emit.ILGenerator::Emit(valuetype [mscorlib]System.Reflection.Emit.OpCode, int32)
IL_0203: ldloc.2
IL_0204: ldsfld valuetype [mscorlib]System.Reflection.Emit.OpCode [mscorlib]System.Reflection.Emit.OpCodes::Callvirt
IL_0209: ldloc.s 8
IL_020b: callvirt instance void class [mscorlib]System.Reflection.Emit.ILGenerator::Emit(valuetype [mscorlib]System.Reflection.Emit.OpCode, class [mscorlib]System.Reflection.MethodInfo)
IL_0210: ldloc.2
IL_0211: ldsfld valuetype [mscorlib]System.Reflection.Emit.OpCode [mscorlib]System.Reflection.Emit.OpCodes::Callvirt
IL_0216: ldloc.s 6
IL_0218: callvirt instance void class [mscorlib]System.Reflection.Emit.ILGenerator::Emit(valuetype [mscorlib]System.Reflection.Emit.OpCode, class [mscorlib]System.Reflection.MethodInfo)
IL_021d: ldloc.2
IL_021e: ldloc.s 11
IL_0220: callvirt instance void class [mscorlib]System.Reflection.Emit.ILGenerator::MarkLabel(valuetype [mscorlib]System.Reflection.Emit.Label)
IL_0225: ldloc.s 9
IL_0227: callvirt instance bool class [mscorlib]System.Collections.IEnumerator::MoveNext()
IL_022c: brtrue IL_0148
IL_0231: leave IL_0245
} // end .try 1
finally { // 1
IL_0236: ldloc.s 9
IL_0238: brfalse IL_0244
IL_023d: ldloc.s 9
IL_023f: callvirt instance void class [mscorlib]System.IDisposable::Dispose()
IL_0244: endfinally
} // end handler 1
IL_0245: ldarg.0
IL_0246: ldc.i4.s 0x34
IL_0248: callvirt instance class [mscorlib]System.Reflection.PropertyInfo[] class [mscorlib]System.Type::GetProperties(valuetype [mscorlib]System.Reflection.BindingFlags)
IL_024d: ldsfld class [System.Core]System.Func`2<class [mscorlib]System.Reflection.PropertyInfo,bool> OpenRA.Network.SyncReport::'<>f__am$cache6'
IL_0252: brtrue.s IL_0265
IL_0254: ldnull
IL_0255: ldftn bool class OpenRA.Network.SyncReport::'<GenerateDumpFunc>m__1B'(class [mscorlib]System.Reflection.PropertyInfo)
IL_025b: newobj instance void class [System.Core]System.Func`2<class [mscorlib]System.Reflection.PropertyInfo, bool>::'.ctor'(object, native int)
IL_0260: stsfld class [System.Core]System.Func`2<class [mscorlib]System.Reflection.PropertyInfo,bool> OpenRA.Network.SyncReport::'<>f__am$cache6'
IL_0265: ldsfld class [System.Core]System.Func`2<class [mscorlib]System.Reflection.PropertyInfo,bool> OpenRA.Network.SyncReport::'<>f__am$cache6'
IL_026a: call class [mscorlib]System.Collections.Generic.IEnumerable`1<!!0> class [System.Core]System.Linq.Enumerable::Where<class [mscorlib]System.Reflection.PropertyInfo> (class [mscorlib]System.Collections.Generic.IEnumerable`1<!!0>, class [System.Core]System.Func`2<!!0,bool>)
IL_026f: callvirt instance class [mscorlib]System.Collections.Generic.IEnumerator`1<!0> class [mscorlib]System.Collections.Generic.IEnumerable`1<class [mscorlib]System.Reflection.PropertyInfo>::GetEnumerator()
IL_0274: stloc.s 12
.try { // 0
IL_0276: br IL_0341
IL_027b: ldloc.s 12
IL_027d: callvirt instance !0 class [mscorlib]System.Collections.Generic.IEnumerator`1<class [mscorlib]System.Reflection.PropertyInfo>::get_Current()
IL_0282: stloc.s 13
IL_0284: ldloc.2
IL_0285: callvirt instance valuetype [mscorlib]System.Reflection.Emit.Label class [mscorlib]System.Reflection.Emit.ILGenerator::DefineLabel()
IL_028a: stloc.s 14
IL_028c: ldloc.2
IL_028d: ldsfld valuetype [mscorlib]System.Reflection.Emit.OpCode [mscorlib]System.Reflection.Emit.OpCodes::Ldloc
IL_0292: ldloc.3
IL_0293: callvirt instance void class [mscorlib]System.Reflection.Emit.ILGenerator::Emit(valuetype [mscorlib]System.Reflection.Emit.OpCode, int32)
IL_0298: ldloc.2
IL_0299: ldsfld valuetype [mscorlib]System.Reflection.Emit.OpCode [mscorlib]System.Reflection.Emit.OpCodes::Call
IL_029e: ldloc.s 13
IL_02a0: callvirt instance class [mscorlib]System.Reflection.MethodInfo class [mscorlib]System.Reflection.PropertyInfo::GetGetMethod()
IL_02a5: ldnull
IL_02a6: callvirt instance void class [mscorlib]System.Reflection.Emit.ILGenerator::EmitCall(valuetype [mscorlib]System.Reflection.Emit.OpCode, class [mscorlib]System.Reflection.MethodInfo, class [mscorlib]System.Type[])
IL_02ab: ldloc.s 13
IL_02ad: callvirt instance class [mscorlib]System.Type class [mscorlib]System.Reflection.PropertyInfo::get_PropertyType()
IL_02b2: callvirt instance bool class [mscorlib]System.Type::get_IsValueType()
IL_02b7: brfalse IL_02ce
IL_02bc: ldloc.2
IL_02bd: ldsfld valuetype [mscorlib]System.Reflection.Emit.OpCode [mscorlib]System.Reflection.Emit.OpCodes::Box
IL_02c2: ldloc.s 13
IL_02c4: callvirt instance class [mscorlib]System.Type class [mscorlib]System.Reflection.PropertyInfo::get_PropertyType()
IL_02c9: callvirt instance void class [mscorlib]System.Reflection.Emit.ILGenerator::Emit(valuetype [mscorlib]System.Reflection.Emit.OpCode, class [mscorlib]System.Type)
IL_02ce: ldloc.2
IL_02cf: ldsfld valuetype [mscorlib]System.Reflection.Emit.OpCode [mscorlib]System.Reflection.Emit.OpCodes::Dup
IL_02d4: callvirt instance void class [mscorlib]System.Reflection.Emit.ILGenerator::Emit(valuetype [mscorlib]System.Reflection.Emit.OpCode)
IL_02d9: ldloc.2
IL_02da: ldsfld valuetype [mscorlib]System.Reflection.Emit.OpCode [mscorlib]System.Reflection.Emit.OpCodes::Stloc
IL_02df: ldloc.s 5
IL_02e1: callvirt instance void class [mscorlib]System.Reflection.Emit.ILGenerator::Emit(valuetype [mscorlib]System.Reflection.Emit.OpCode, int32)
IL_02e6: ldloc.2
IL_02e7: ldsfld valuetype [mscorlib]System.Reflection.Emit.OpCode [mscorlib]System.Reflection.Emit.OpCodes::Brfalse
IL_02ec: ldloc.s 14
IL_02ee: callvirt instance void class [mscorlib]System.Reflection.Emit.ILGenerator::Emit(valuetype [mscorlib]System.Reflection.Emit.OpCode, valuetype [mscorlib]System.Reflection.Emit.Label)
IL_02f3: ldloc.2
IL_02f4: ldsfld valuetype [mscorlib]System.Reflection.Emit.OpCode [mscorlib]System.Reflection.Emit.OpCodes::Ldloc
IL_02f9: ldloc.s 4
IL_02fb: callvirt instance void class [mscorlib]System.Reflection.Emit.ILGenerator::Emit(valuetype [mscorlib]System.Reflection.Emit.OpCode, int32)
IL_0300: ldloc.2
IL_0301: ldsfld valuetype [mscorlib]System.Reflection.Emit.OpCode [mscorlib]System.Reflection.Emit.OpCodes::Ldstr
IL_0306: ldloc.s 13
IL_0308: callvirt instance string class [mscorlib]System.Reflection.MemberInfo::get_Name()
IL_030d: callvirt instance void class [mscorlib]System.Reflection.Emit.ILGenerator::Emit(valuetype [mscorlib]System.Reflection.Emit.OpCode, string)
IL_0312: ldloc.2
IL_0313: ldsfld valuetype [mscorlib]System.Reflection.Emit.OpCode [mscorlib]System.Reflection.Emit.OpCodes::Ldloc
IL_0318: ldloc.s 5
IL_031a: callvirt instance void class [mscorlib]System.Reflection.Emit.ILGenerator::Emit(valuetype [mscorlib]System.Reflection.Emit.OpCode, int32)
IL_031f: ldloc.2
IL_0320: ldsfld valuetype [mscorlib]System.Reflection.Emit.OpCode [mscorlib]System.Reflection.Emit.OpCodes::Callvirt
IL_0325: ldloc.s 8
IL_0327: callvirt instance void class [mscorlib]System.Reflection.Emit.ILGenerator::Emit(valuetype [mscorlib]System.Reflection.Emit.OpCode, class [mscorlib]System.Reflection.MethodInfo)
IL_032c: ldloc.2
IL_032d: ldsfld valuetype [mscorlib]System.Reflection.Emit.OpCode [mscorlib]System.Reflection.Emit.OpCodes::Callvirt
IL_0332: ldloc.s 6
IL_0334: callvirt instance void class [mscorlib]System.Reflection.Emit.ILGenerator::Emit(valuetype [mscorlib]System.Reflection.Emit.OpCode, class [mscorlib]System.Reflection.MethodInfo)
IL_0339: ldloc.2
IL_033a: ldloc.s 14
IL_033c: callvirt instance void class [mscorlib]System.Reflection.Emit.ILGenerator::MarkLabel(valuetype [mscorlib]System.Reflection.Emit.Label)
IL_0341: ldloc.s 12
IL_0343: callvirt instance bool class [mscorlib]System.Collections.IEnumerator::MoveNext()
IL_0348: brtrue IL_027b
IL_034d: leave IL_0361
} // end .try 0
finally { // 0
IL_0352: ldloc.s 12
IL_0354: brfalse IL_0360
IL_0359: ldloc.s 12
IL_035b: callvirt instance void class [mscorlib]System.IDisposable::Dispose()
IL_0360: endfinally
} // end handler 0
IL_0361: ldloc.2
IL_0362: ldsfld valuetype [mscorlib]System.Reflection.Emit.OpCode [mscorlib]System.Reflection.Emit.OpCodes::Ldloc
IL_0367: ldloc.s 4
IL_0369: callvirt instance void class [mscorlib]System.Reflection.Emit.ILGenerator::Emit(valuetype [mscorlib]System.Reflection.Emit.OpCode, int32)
IL_036e: ldloc.2
IL_036f: ldsfld valuetype [mscorlib]System.Reflection.Emit.OpCode [mscorlib]System.Reflection.Emit.OpCodes::Ret
IL_0374: callvirt instance void class [mscorlib]System.Reflection.Emit.ILGenerator::Emit(valuetype [mscorlib]System.Reflection.Emit.OpCode)
IL_0379: ldloc.1
IL_037a: ldtoken class [System.Core]System.Func`2<object,class [mscorlib]System.Collections.Generic.Dictionary`2<string,string>>
IL_037f: call class [mscorlib]System.Type class [mscorlib]System.Type::GetTypeFromHandle(valuetype [mscorlib]System.RuntimeTypeHandle)
IL_0384: callvirt instance class [mscorlib]System.Delegate class [mscorlib]System.Reflection.Emit.DynamicMethod::CreateDelegate(class [mscorlib]System.Type)
IL_0389: castclass class [System.Core]System.Func`2<object,class [mscorlib]System.Collections.Generic.Dictionary`2<string,string>>
IL_038e: ret
} // end of method SyncReport::GenerateDumpFunc
// method line 94
.method private hidebysig
instance default void GenerateSyncReport (class OpenRA.Network.SyncReport/Report report) cil managed
{
// Method begins at RVA 0x4554
// Code size 524 (0x20c)
.maxstack 42
.locals init (
class [mscorlib]System.Collections.Generic.IEnumerator`1<valuetype OpenRA.TraitPair`1<class OpenRA.ISync>> V_0,
valuetype OpenRA.TraitPair`1<class OpenRA.ISync> V_1,
int32 V_2,
valuetype OpenRA.Network.SyncReport/TraitReport V_3,
valuetype OpenRA.Network.SyncReport/TraitReport V_4,
class [mscorlib]System.Collections.Generic.IEnumerator`1<class OpenRA.Effects.IEffect> V_5,
class OpenRA.Effects.IEffect V_6,
class OpenRA.ISync V_7,
int32 V_8,
valuetype OpenRA.Network.SyncReport/EffectReport V_9,
valuetype OpenRA.Network.SyncReport/EffectReport V_10)
IL_0000: ldarg.1
IL_0001: ldarg.0
IL_0002: ldfld class OpenRA.Network.OrderManager OpenRA.Network.SyncReport::orderManager
IL_0007: callvirt instance int32 class OpenRA.Network.OrderManager::get_NetFrameNumber()
IL_000c: stfld int32 OpenRA.Network.SyncReport/Report::Frame
IL_0011: ldarg.1
IL_0012: ldarg.0
IL_0013: ldfld class OpenRA.Network.OrderManager OpenRA.Network.SyncReport::orderManager
IL_0018: ldfld class OpenRA.World OpenRA.Network.OrderManager::world
IL_001d: ldfld class [OpenRA.FileFormats]OpenRA.Thirdparty.Random OpenRA.World::SharedRandom
IL_0022: ldfld int32 [OpenRA.FileFormats]OpenRA.Thirdparty.Random::Last
IL_0027: stfld int32 OpenRA.Network.SyncReport/Report::SyncedRandom
IL_002c: ldarg.1
IL_002d: ldarg.0
IL_002e: ldfld class OpenRA.Network.OrderManager OpenRA.Network.SyncReport::orderManager
IL_0033: ldfld class OpenRA.World OpenRA.Network.OrderManager::world
IL_0038: ldfld class [OpenRA.FileFormats]OpenRA.Thirdparty.Random OpenRA.World::SharedRandom
IL_003d: ldfld int32 [OpenRA.FileFormats]OpenRA.Thirdparty.Random::TotalCount
IL_0042: stfld int32 OpenRA.Network.SyncReport/Report::TotalCount
IL_0047: ldarg.1
IL_0048: ldfld class [mscorlib]System.Collections.Generic.List`1<valuetype OpenRA.Network.SyncReport/TraitReport> OpenRA.Network.SyncReport/Report::Traits
IL_004d: callvirt instance void class [mscorlib]System.Collections.Generic.List`1<valuetype OpenRA.Network.SyncReport/TraitReport>::Clear()
IL_0052: ldarg.0
IL_0053: ldfld class OpenRA.Network.OrderManager OpenRA.Network.SyncReport::orderManager
IL_0058: ldfld class OpenRA.World OpenRA.Network.OrderManager::world
IL_005d: callvirt instance class [mscorlib]System.Collections.Generic.IEnumerable`1<valuetype OpenRA.TraitPair`1<!!0>> class OpenRA.World::ActorsWithTrait<class OpenRA.ISync> ()
IL_0062: callvirt instance class [mscorlib]System.Collections.Generic.IEnumerator`1<!0> class [mscorlib]System.Collections.Generic.IEnumerable`1<valuetype OpenRA.TraitPair`1<class OpenRA.ISync>>::GetEnumerator()
IL_0067: stloc.0
.try { // 1
IL_0068: br IL_0132
IL_006d: ldloc.0
IL_006e: callvirt instance !0 class [mscorlib]System.Collections.Generic.IEnumerator`1<valuetype OpenRA.TraitPair`1<class OpenRA.ISync>>::get_Current()
IL_0073: stloc.1
IL_0074: ldloca.s 1
IL_0076: ldfld !0 valuetype OpenRA.TraitPair`1<class OpenRA.ISync>::Trait
IL_007b: call int32 class OpenRA.Sync::CalculateSyncHash(object)
IL_0080: stloc.2
IL_0081: ldloc.2
IL_0082: brfalse IL_0132
IL_0087: ldloca.s 3
IL_0089: initobj OpenRA.Network.SyncReport/TraitReport
IL_008f: ldloc.3
IL_0090: stloc.s 4
IL_0092: ldloca.s 4
IL_0094: ldloca.s 1
IL_0096: ldfld class OpenRA.Actor valuetype OpenRA.TraitPair`1<class OpenRA.ISync>::Actor
IL_009b: ldfld unsigned int32 OpenRA.Actor::ActorID
IL_00a0: stfld unsigned int32 OpenRA.Network.SyncReport/TraitReport::ActorID
IL_00a5: ldloca.s 4
IL_00a7: ldloca.s 1
IL_00a9: ldfld class OpenRA.Actor valuetype OpenRA.TraitPair`1<class OpenRA.ISync>::Actor
IL_00ae: ldfld class OpenRA.ActorInfo OpenRA.Actor::Info
IL_00b3: ldfld string OpenRA.ActorInfo::Name
IL_00b8: stfld string OpenRA.Network.SyncReport/TraitReport::Type
IL_00bd: ldloca.s 4
IL_00bf: ldloca.s 1
IL_00c1: ldfld class OpenRA.Actor valuetype OpenRA.TraitPair`1<class OpenRA.ISync>::Actor
IL_00c6: ldfld class OpenRA.Player OpenRA.Actor::Owner
IL_00cb: brtrue IL_00da
IL_00d0: ldstr "null"
IL_00d5: br IL_00eb
IL_00da: ldloca.s 1
IL_00dc: ldfld class OpenRA.Actor valuetype OpenRA.TraitPair`1<class OpenRA.ISync>::Actor
IL_00e1: ldfld class OpenRA.Player OpenRA.Actor::Owner
IL_00e6: ldfld string OpenRA.Player::PlayerName
IL_00eb: stfld string OpenRA.Network.SyncReport/TraitReport::Owner
IL_00f0: ldloca.s 4
IL_00f2: ldloca.s 1
IL_00f4: ldfld !0 valuetype OpenRA.TraitPair`1<class OpenRA.ISync>::Trait
IL_00f9: callvirt instance class [mscorlib]System.Type object::GetType()
IL_00fe: callvirt instance string class [mscorlib]System.Reflection.MemberInfo::get_Name()
IL_0103: stfld string OpenRA.Network.SyncReport/TraitReport::Trait
IL_0108: ldloca.s 4
IL_010a: ldloc.2
IL_010b: stfld int32 OpenRA.Network.SyncReport/TraitReport::Hash
IL_0110: ldloc.s 4
IL_0112: stloc.3
IL_0113: ldloca.s 3
IL_0115: ldloca.s 1
IL_0117: ldfld !0 valuetype OpenRA.TraitPair`1<class OpenRA.ISync>::Trait
IL_011c: call class [mscorlib]System.Collections.Generic.Dictionary`2<string,string> class OpenRA.Network.SyncReport::DumpSyncTrait(object)
IL_0121: stfld class [mscorlib]System.Collections.Generic.Dictionary`2<string,string> OpenRA.Network.SyncReport/TraitReport::Fields
IL_0126: ldarg.1
IL_0127: ldfld class [mscorlib]System.Collections.Generic.List`1<valuetype OpenRA.Network.SyncReport/TraitReport> OpenRA.Network.SyncReport/Report::Traits
IL_012c: ldloc.3
IL_012d: callvirt instance void class [mscorlib]System.Collections.Generic.List`1<valuetype OpenRA.Network.SyncReport/TraitReport>::Add(!0)
IL_0132: ldloc.0
IL_0133: callvirt instance bool class [mscorlib]System.Collections.IEnumerator::MoveNext()
IL_0138: brtrue IL_006d
IL_013d: leave IL_014f
} // end .try 1
finally { // 1
IL_0142: ldloc.0
IL_0143: brfalse IL_014e
IL_0148: ldloc.0
IL_0149: callvirt instance void class [mscorlib]System.IDisposable::Dispose()
IL_014e: endfinally
} // end handler 1
IL_014f: ldarg.0
IL_0150: ldfld class OpenRA.Network.OrderManager OpenRA.Network.SyncReport::orderManager
IL_0155: ldfld class OpenRA.World OpenRA.Network.OrderManager::world
IL_015a: callvirt instance class [mscorlib]System.Collections.Generic.IEnumerable`1<class OpenRA.Effects.IEffect> class OpenRA.World::get_Effects()
IL_015f: callvirt instance class [mscorlib]System.Collections.Generic.IEnumerator`1<!0> class [mscorlib]System.Collections.Generic.IEnumerable`1<class OpenRA.Effects.IEffect>::GetEnumerator()
IL_0164: stloc.s 5
.try { // 0
IL_0166: br IL_01eb
IL_016b: ldloc.s 5
IL_016d: callvirt instance !0 class [mscorlib]System.Collections.Generic.IEnumerator`1<class OpenRA.Effects.IEffect>::get_Current()
IL_0172: stloc.s 6
IL_0174: ldloc.s 6
IL_0176: isinst OpenRA.ISync
IL_017b: stloc.s 7
IL_017d: ldloc.s 7
IL_017f: brfalse IL_01eb
IL_0184: ldloc.s 7
IL_0186: call int32 class OpenRA.Sync::CalculateSyncHash(object)
IL_018b: stloc.s 8
IL_018d: ldloc.s 8
IL_018f: brfalse IL_01eb
IL_0194: ldloca.s 9
IL_0196: initobj OpenRA.Network.SyncReport/EffectReport
IL_019c: ldloc.s 9
IL_019e: stloc.s 10
IL_01a0: ldloca.s 10
IL_01a2: ldloc.s 7
IL_01a4: callvirt instance string object::ToString()
IL_01a9: ldc.i4.1
IL_01aa: newarr [mscorlib]System.Char
IL_01af: dup
IL_01b0: ldc.i4.0
IL_01b1: ldc.i4.s 0x2e
IL_01b3: stelem.i2
IL_01b4: callvirt instance string[] string::Split(char[])
IL_01b9: call !!0 class [System.Core]System.Linq.Enumerable::Last<string> (class [mscorlib]System.Collections.Generic.IEnumerable`1<!!0>)
IL_01be: stfld string OpenRA.Network.SyncReport/EffectReport::Name
IL_01c3: ldloca.s 10
IL_01c5: ldloc.s 8
IL_01c7: stfld int32 OpenRA.Network.SyncReport/EffectReport::Hash
IL_01cc: ldloc.s 10
IL_01ce: stloc.s 9
IL_01d0: ldloca.s 9
IL_01d2: ldloc.s 7
IL_01d4: call class [mscorlib]System.Collections.Generic.Dictionary`2<string,string> class OpenRA.Network.SyncReport::DumpSyncTrait(object)
IL_01d9: stfld class [mscorlib]System.Collections.Generic.Dictionary`2<string,string> OpenRA.Network.SyncReport/EffectReport::Fields
IL_01de: ldarg.1
IL_01df: ldfld class [mscorlib]System.Collections.Generic.List`1<valuetype OpenRA.Network.SyncReport/EffectReport> OpenRA.Network.SyncReport/Report::Effects
IL_01e4: ldloc.s 9
IL_01e6: callvirt instance void class [mscorlib]System.Collections.Generic.List`1<valuetype OpenRA.Network.SyncReport/EffectReport>::Add(!0)
IL_01eb: ldloc.s 5
IL_01ed: callvirt instance bool class [mscorlib]System.Collections.IEnumerator::MoveNext()
IL_01f2: brtrue IL_016b
IL_01f7: leave IL_020b
} // end .try 0
finally { // 0
IL_01fc: ldloc.s 5
IL_01fe: brfalse IL_020a
IL_0203: ldloc.s 5
IL_0205: callvirt instance void class [mscorlib]System.IDisposable::Dispose()
IL_020a: endfinally
} // end handler 0
IL_020b: ret
} // end of method SyncReport::GenerateSyncReport
// method line 95
.method assembly hidebysig
instance default void DumpSyncReport (int32 frame) cil managed
{
// Method begins at RVA 0x47a0
// Code size 819 (0x333)
.maxstack 64
.locals init (
class OpenRA.Network.SyncReport/Report[] V_0,
int32 V_1,
class OpenRA.Network.SyncReport/Report V_2,
class [OpenRA.FileFormats]OpenRA.FileFormats.Mod V_3,
valuetype [mscorlib]System.Collections.Generic.KeyValuePair`2<string, class [OpenRA.FileFormats]OpenRA.FileFormats.Mod> V_4,
valuetype [mscorlib]System.Collections.Generic.List`1/Enumerator<valuetype OpenRA.Network.SyncReport/TraitReport> V_5,
valuetype OpenRA.Network.SyncReport/TraitReport V_6,
valuetype [mscorlib]System.Collections.Generic.Dictionary`2/Enumerator<string, string> V_7,
valuetype [mscorlib]System.Collections.Generic.KeyValuePair`2<string, string> V_8,
valuetype [mscorlib]System.Collections.Generic.List`1/Enumerator<valuetype OpenRA.Network.SyncReport/EffectReport> V_9,
valuetype OpenRA.Network.SyncReport/EffectReport V_10,
valuetype [mscorlib]System.Collections.Generic.Dictionary`2/Enumerator<string, string> V_11,
valuetype [mscorlib]System.Collections.Generic.KeyValuePair`2<string, string> V_12)
IL_0000: ldarg.0
IL_0001: ldfld class OpenRA.Network.SyncReport/Report[] OpenRA.Network.SyncReport::syncReports
IL_0006: stloc.0
IL_0007: ldc.i4.0
IL_0008: stloc.1
IL_0009: br IL_0314
IL_000e: ldloc.0
IL_000f: ldloc.1
IL_0010: ldelem.ref
IL_0011: stloc.2
IL_0012: ldloc.2
IL_0013: ldfld int32 OpenRA.Network.SyncReport/Report::Frame
IL_0018: ldarg.1
IL_0019: bne.un IL_0310
IL_001e: ldstr "sync"
IL_0023: ldstr "Player: {0} ({1} {2} {3})"
IL_0028: ldc.i4.4
IL_0029: newarr [mscorlib]System.Object
IL_002e: dup
IL_002f: ldc.i4.0
IL_0030: ldsfld class OpenRA.GameRules.Settings OpenRA.Game::Settings
IL_0035: ldfld class OpenRA.GameRules.PlayerSettings OpenRA.GameRules.Settings::Player
IL_003a: ldfld string OpenRA.GameRules.PlayerSettings::Name
IL_003f: stelem.ref
IL_0040: dup
IL_0041: ldc.i4.1
IL_0042: call valuetype [OpenRA.FileFormats]OpenRA.PlatformType class [OpenRA.FileFormats]OpenRA.Platform::get_CurrentPlatform()
IL_0047: box [OpenRA.FileFormats]OpenRA.PlatformType
IL_004c: stelem.ref
IL_004d: dup
IL_004e: ldc.i4.2
IL_004f: call class [mscorlib]System.OperatingSystem class [mscorlib]System.Environment::get_OSVersion()
IL_0054: stelem.ref
IL_0055: dup
IL_0056: ldc.i4.3
IL_0057: call string class [OpenRA.FileFormats]OpenRA.Platform::get_RuntimeVersion()
IL_005c: stelem.ref
IL_005d: call void class [OpenRA.FileFormats]OpenRA.Log::Write(string, string, object[])
IL_0062: call class [mscorlib]System.Collections.Generic.Dictionary`2<string,class [OpenRA.FileFormats]OpenRA.FileFormats.Mod> class OpenRA.Game::get_CurrentMods()
IL_0067: call !!0 class [System.Core]System.Linq.Enumerable::First<valuetype [mscorlib]System.Collections.Generic.KeyValuePair`2<string,class [OpenRA.FileFormats]OpenRA.FileFormats.Mod>> (class [mscorlib]System.Collections.Generic.IEnumerable`1<!!0>)
IL_006c: stloc.s 4
IL_006e: ldloca.s 4
IL_0070: call instance !1 valuetype [mscorlib]System.Collections.Generic.KeyValuePair`2<string, class [OpenRA.FileFormats]OpenRA.FileFormats.Mod>::get_Value()
IL_0075: stloc.3
IL_0076: ldstr "sync"
IL_007b: ldstr "Game ID: {0} (Mod: {1} at Version {2})"
IL_0080: ldc.i4.3
IL_0081: newarr [mscorlib]System.Object
IL_0086: dup
IL_0087: ldc.i4.0
IL_0088: ldarg.0
IL_0089: ldfld class OpenRA.Network.OrderManager OpenRA.Network.SyncReport::orderManager
IL_008e: ldfld class OpenRA.Network.Session OpenRA.Network.OrderManager::LobbyInfo
IL_0093: ldfld class OpenRA.Network.Session/Global OpenRA.Network.Session::GlobalSettings
IL_0098: ldfld string OpenRA.Network.Session/Global::GameUid
IL_009d: stelem.ref
IL_009e: dup
IL_009f: ldc.i4.1
IL_00a0: ldloc.3
IL_00a1: ldfld string [OpenRA.FileFormats]OpenRA.FileFormats.Mod::Title
IL_00a6: stelem.ref
IL_00a7: dup
IL_00a8: ldc.i4.2
IL_00a9: ldloc.3
IL_00aa: ldfld string [OpenRA.FileFormats]OpenRA.FileFormats.Mod::Version
IL_00af: stelem.ref
IL_00b0: call void class [OpenRA.FileFormats]OpenRA.Log::Write(string, string, object[])
IL_00b5: ldstr "sync"
IL_00ba: ldstr "Sync for net frame {0} -------------"
IL_00bf: ldc.i4.1
IL_00c0: newarr [mscorlib]System.Object
IL_00c5: dup
IL_00c6: ldc.i4.0
IL_00c7: ldloc.2
IL_00c8: ldfld int32 OpenRA.Network.SyncReport/Report::Frame
IL_00cd: box [mscorlib]System.Int32
IL_00d2: stelem.ref
IL_00d3: call void class [OpenRA.FileFormats]OpenRA.Log::Write(string, string, object[])
IL_00d8: ldstr "sync"
IL_00dd: ldstr "SharedRandom: {0} (#{1})"
IL_00e2: ldc.i4.2
IL_00e3: newarr [mscorlib]System.Object
IL_00e8: dup
IL_00e9: ldc.i4.0
IL_00ea: ldloc.2
IL_00eb: ldfld int32 OpenRA.Network.SyncReport/Report::SyncedRandom
IL_00f0: box [mscorlib]System.Int32
IL_00f5: stelem.ref
IL_00f6: dup
IL_00f7: ldc.i4.1
IL_00f8: ldloc.2
IL_00f9: ldfld int32 OpenRA.Network.SyncReport/Report::TotalCount
IL_00fe: box [mscorlib]System.Int32
IL_0103: stelem.ref
IL_0104: call void class [OpenRA.FileFormats]OpenRA.Log::Write(string, string, object[])
IL_0109: ldstr "sync"
IL_010e: ldstr "Synced Traits:"
IL_0113: ldc.i4.0
IL_0114: newarr [mscorlib]System.Object
IL_0119: call void class [OpenRA.FileFormats]OpenRA.Log::Write(string, string, object[])
IL_011e: ldloc.2
IL_011f: ldfld class [mscorlib]System.Collections.Generic.List`1<valuetype OpenRA.Network.SyncReport/TraitReport> OpenRA.Network.SyncReport/Report::Traits
IL_0124: callvirt instance valuetype [mscorlib]System.Collections.Generic.List`1/Enumerator<!0> class [mscorlib]System.Collections.Generic.List`1<valuetype OpenRA.Network.SyncReport/TraitReport>::GetEnumerator()
IL_0129: stloc.s 5
.try { // 3
IL_012b: br IL_0204
IL_0130: ldloca.s 5
IL_0132: call instance !0 valuetype [mscorlib]System.Collections.Generic.List`1/Enumerator<valuetype OpenRA.Network.SyncReport/TraitReport>::get_Current()
IL_0137: stloc.s 6
IL_0139: ldstr "sync"
IL_013e: ldstr "\t {0} {1} {2} {3} ({4})"
IL_0143: ldc.i4.5
IL_0144: newarr [mscorlib]System.Object
IL_0149: dup
IL_014a: ldc.i4.0
IL_014b: ldloca.s 6
IL_014d: ldfld unsigned int32 OpenRA.Network.SyncReport/TraitReport::ActorID
IL_0152: box [mscorlib]System.UInt32
IL_0157: stelem.ref
IL_0158: dup
IL_0159: ldc.i4.1
IL_015a: ldloca.s 6
IL_015c: ldfld string OpenRA.Network.SyncReport/TraitReport::Type
IL_0161: stelem.ref
IL_0162: dup
IL_0163: ldc.i4.2
IL_0164: ldloca.s 6
IL_0166: ldfld string OpenRA.Network.SyncReport/TraitReport::Owner
IL_016b: stelem.ref
IL_016c: dup
IL_016d: ldc.i4.3
IL_016e: ldloca.s 6
IL_0170: ldfld string OpenRA.Network.SyncReport/TraitReport::Trait
IL_0175: stelem.ref
IL_0176: dup
IL_0177: ldc.i4.4
IL_0178: ldloca.s 6
IL_017a: ldfld int32 OpenRA.Network.SyncReport/TraitReport::Hash
IL_017f: box [mscorlib]System.Int32
IL_0184: stelem.ref
IL_0185: call string class [OpenRA.FileFormats]OpenRA.Exts::F(string, object[])
IL_018a: ldc.i4.0
IL_018b: newarr [mscorlib]System.Object
IL_0190: call void class [OpenRA.FileFormats]OpenRA.Log::Write(string, string, object[])
IL_0195: ldloca.s 6
IL_0197: ldfld class [mscorlib]System.Collections.Generic.Dictionary`2<string,string> OpenRA.Network.SyncReport/TraitReport::Fields
IL_019c: callvirt instance valuetype [mscorlib]System.Collections.Generic.Dictionary`2/Enumerator<!0,!1> class [mscorlib]System.Collections.Generic.Dictionary`2<string, string>::GetEnumerator()
IL_01a1: stloc.s 7
.try { // 2
IL_01a3: br IL_01e5
IL_01a8: ldloca.s 7
IL_01aa: call instance valuetype [mscorlib]System.Collections.Generic.KeyValuePair`2<!0,!1> valuetype [mscorlib]System.Collections.Generic.Dictionary`2/Enumerator<string, string>::get_Current()
IL_01af: stloc.s 8
IL_01b1: ldstr "sync"
IL_01b6: ldstr "\t\t {0}: {1}"
IL_01bb: ldc.i4.2
IL_01bc: newarr [mscorlib]System.Object
IL_01c1: dup
IL_01c2: ldc.i4.0
IL_01c3: ldloca.s 8
IL_01c5: call instance !0 valuetype [mscorlib]System.Collections.Generic.KeyValuePair`2<string, string>::get_Key()
IL_01ca: stelem.ref
IL_01cb: dup
IL_01cc: ldc.i4.1
IL_01cd: ldloca.s 8
IL_01cf: call instance !1 valuetype [mscorlib]System.Collections.Generic.KeyValuePair`2<string, string>::get_Value()
IL_01d4: stelem.ref
IL_01d5: call string class [OpenRA.FileFormats]OpenRA.Exts::F(string, object[])
IL_01da: ldc.i4.0
IL_01db: newarr [mscorlib]System.Object
IL_01e0: call void class [OpenRA.FileFormats]OpenRA.Log::Write(string, string, object[])
IL_01e5: ldloca.s 7
IL_01e7: call instance bool valuetype [mscorlib]System.Collections.Generic.Dictionary`2/Enumerator<string, string>::MoveNext()
IL_01ec: brtrue IL_01a8
IL_01f1: leave IL_0204
} // end .try 2
finally { // 2
IL_01f6: ldloca.s 7
IL_01f8: constrained. valuetype [mscorlib]System.Collections.Generic.Dictionary`2/Enumerator<string,string>
IL_01fe: callvirt instance void class [mscorlib]System.IDisposable::Dispose()
IL_0203: endfinally
} // end handler 2
IL_0204: ldloca.s 5
IL_0206: call instance bool valuetype [mscorlib]System.Collections.Generic.List`1/Enumerator<valuetype OpenRA.Network.SyncReport/TraitReport>::MoveNext()
IL_020b: brtrue IL_0130
IL_0210: leave IL_0223
} // end .try 3
finally { // 3
IL_0215: ldloca.s 5
IL_0217: constrained. valuetype [mscorlib]System.Collections.Generic.List`1/Enumerator<valuetype OpenRA.Network.SyncReport/TraitReport>
IL_021d: callvirt instance void class [mscorlib]System.IDisposable::Dispose()
IL_0222: endfinally
} // end handler 3
IL_0223: ldstr "sync"
IL_0228: ldstr "Synced Effects:"
IL_022d: ldc.i4.0
IL_022e: newarr [mscorlib]System.Object
IL_0233: call void class [OpenRA.FileFormats]OpenRA.Log::Write(string, string, object[])
IL_0238: ldloc.2
IL_0239: ldfld class [mscorlib]System.Collections.Generic.List`1<valuetype OpenRA.Network.SyncReport/EffectReport> OpenRA.Network.SyncReport/Report::Effects
IL_023e: callvirt instance valuetype [mscorlib]System.Collections.Generic.List`1/Enumerator<!0> class [mscorlib]System.Collections.Generic.List`1<valuetype OpenRA.Network.SyncReport/EffectReport>::GetEnumerator()
IL_0243: stloc.s 9
.try { // 1
IL_0245: br IL_02f0
IL_024a: ldloca.s 9
IL_024c: call instance !0 valuetype [mscorlib]System.Collections.Generic.List`1/Enumerator<valuetype OpenRA.Network.SyncReport/EffectReport>::get_Current()
IL_0251: stloc.s 10
IL_0253: ldstr "sync"
IL_0258: ldstr "\t {0} ({1})"
IL_025d: ldc.i4.2
IL_025e: newarr [mscorlib]System.Object
IL_0263: dup
IL_0264: ldc.i4.0
IL_0265: ldloca.s 10
IL_0267: ldfld string OpenRA.Network.SyncReport/EffectReport::Name
IL_026c: stelem.ref
IL_026d: dup
IL_026e: ldc.i4.1
IL_026f: ldloca.s 10
IL_0271: ldfld int32 OpenRA.Network.SyncReport/EffectReport::Hash
IL_0276: box [mscorlib]System.Int32
IL_027b: stelem.ref
IL_027c: call void class [OpenRA.FileFormats]OpenRA.Log::Write(string, string, object[])
IL_0281: ldloca.s 10
IL_0283: ldfld class [mscorlib]System.Collections.Generic.Dictionary`2<string,string> OpenRA.Network.SyncReport/EffectReport::Fields
IL_0288: callvirt instance valuetype [mscorlib]System.Collections.Generic.Dictionary`2/Enumerator<!0,!1> class [mscorlib]System.Collections.Generic.Dictionary`2<string, string>::GetEnumerator()
IL_028d: stloc.s 11
.try { // 0
IL_028f: br IL_02d1
IL_0294: ldloca.s 11
IL_0296: call instance valuetype [mscorlib]System.Collections.Generic.KeyValuePair`2<!0,!1> valuetype [mscorlib]System.Collections.Generic.Dictionary`2/Enumerator<string, string>::get_Current()
IL_029b: stloc.s 12
IL_029d: ldstr "sync"
IL_02a2: ldstr "\t\t {0}: {1}"
IL_02a7: ldc.i4.2
IL_02a8: newarr [mscorlib]System.Object
IL_02ad: dup
IL_02ae: ldc.i4.0
IL_02af: ldloca.s 12
IL_02b1: call instance !0 valuetype [mscorlib]System.Collections.Generic.KeyValuePair`2<string, string>::get_Key()
IL_02b6: stelem.ref
IL_02b7: dup
IL_02b8: ldc.i4.1
IL_02b9: ldloca.s 12
IL_02bb: call instance !1 valuetype [mscorlib]System.Collections.Generic.KeyValuePair`2<string, string>::get_Value()
IL_02c0: stelem.ref
IL_02c1: call string class [OpenRA.FileFormats]OpenRA.Exts::F(string, object[])
IL_02c6: ldc.i4.0
IL_02c7: newarr [mscorlib]System.Object
IL_02cc: call void class [OpenRA.FileFormats]OpenRA.Log::Write(string, string, object[])
IL_02d1: ldloca.s 11
IL_02d3: call instance bool valuetype [mscorlib]System.Collections.Generic.Dictionary`2/Enumerator<string, string>::MoveNext()
IL_02d8: brtrue IL_0294
IL_02dd: leave IL_02f0
} // end .try 0
finally { // 0
IL_02e2: ldloca.s 11
IL_02e4: constrained. valuetype [mscorlib]System.Collections.Generic.Dictionary`2/Enumerator<string,string>
IL_02ea: callvirt instance void class [mscorlib]System.IDisposable::Dispose()
IL_02ef: endfinally
} // end handler 0
IL_02f0: ldloca.s 9
IL_02f2: call instance bool valuetype [mscorlib]System.Collections.Generic.List`1/Enumerator<valuetype OpenRA.Network.SyncReport/EffectReport>::MoveNext()
IL_02f7: brtrue IL_024a
IL_02fc: leave IL_030f
} // end .try 1
finally { // 1
IL_0301: ldloca.s 9
IL_0303: constrained. valuetype [mscorlib]System.Collections.Generic.List`1/Enumerator<valuetype OpenRA.Network.SyncReport/EffectReport>
IL_0309: callvirt instance void class [mscorlib]System.IDisposable::Dispose()
IL_030e: endfinally
} // end handler 1
IL_030f: ret
IL_0310: ldloc.1
IL_0311: ldc.i4.1
IL_0312: add
IL_0313: stloc.1
IL_0314: ldloc.1
IL_0315: ldloc.0
IL_0316: ldlen
IL_0317: conv.i4
IL_0318: blt IL_000e
IL_031d: ldstr "sync"
IL_0322: ldstr "No sync report available!"
IL_0327: ldc.i4.0
IL_0328: newarr [mscorlib]System.Object
IL_032d: call void class [OpenRA.FileFormats]OpenRA.Log::Write(string, string, object[])
IL_0332: ret
} // end of method SyncReport::DumpSyncReport
// method line 96
.method private static hidebysig
default class [System.Core]System.Func`2<object, class [mscorlib]System.Collections.Generic.Dictionary`2<string, string>> '<dumpFuncCache>m__19' (class [mscorlib]System.Type t) cil managed
{
.custom instance void class [mscorlib]System.Runtime.CompilerServices.CompilerGeneratedAttribute::'.ctor'() = (01 00 00 00 ) // ....
// Method begins at RVA 0x4b44
// Code size 7 (0x7)
.maxstack 8
IL_0000: ldarg.0
IL_0001: call class [System.Core]System.Func`2<object,class [mscorlib]System.Collections.Generic.Dictionary`2<string,string>> class OpenRA.Network.SyncReport::GenerateDumpFunc(class [mscorlib]System.Type)
IL_0006: ret
} // end of method SyncReport::<dumpFuncCache>m__19
// method line 97
.method private static hidebysig
default bool '<GenerateDumpFunc>m__1A' (class [mscorlib]System.Reflection.FieldInfo x) cil managed
{
.custom instance void class [mscorlib]System.Runtime.CompilerServices.CompilerGeneratedAttribute::'.ctor'() = (01 00 00 00 ) // ....
// Method begins at RVA 0x4b4c
// Code size 7 (0x7)
.maxstack 8
IL_0000: ldarg.0
IL_0001: call bool class [OpenRA.FileFormats]OpenRA.Exts::HasAttribute<class OpenRA.SyncAttribute> (class [mscorlib]System.Reflection.MemberInfo)
IL_0006: ret
} // end of method SyncReport::<GenerateDumpFunc>m__1A
// method line 98
.method private static hidebysig
default bool '<GenerateDumpFunc>m__1B' (class [mscorlib]System.Reflection.PropertyInfo x) cil managed
{
.custom instance void class [mscorlib]System.Runtime.CompilerServices.CompilerGeneratedAttribute::'.ctor'() = (01 00 00 00 ) // ....
// Method begins at RVA 0x4b54
// Code size 7 (0x7)
.maxstack 8
IL_0000: ldarg.0
IL_0001: call bool class [OpenRA.FileFormats]OpenRA.Exts::HasAttribute<class OpenRA.SyncAttribute> (class [mscorlib]System.Reflection.MemberInfo)
IL_0006: ret
} // end of method SyncReport::<GenerateDumpFunc>m__1B
.class nested private auto ansi beforefieldinit Report
extends [mscorlib]System.Object
{
.field public int32 Frame
.field public int32 SyncedRandom
.field public int32 TotalCount
.field public class [mscorlib]System.Collections.Generic.List`1<valuetype OpenRA.Network.SyncReport/TraitReport> Traits
.field public class [mscorlib]System.Collections.Generic.List`1<valuetype OpenRA.Network.SyncReport/EffectReport> Effects
// method line 99
.method public hidebysig specialname rtspecialname
instance default void '.ctor' () cil managed
{
// Method begins at RVA 0x4b5c
// Code size 29 (0x1d)
.maxstack 8
IL_0000: ldarg.0
IL_0001: newobj instance void class [mscorlib]System.Collections.Generic.List`1<valuetype OpenRA.Network.SyncReport/TraitReport>::'.ctor'()
IL_0006: stfld class [mscorlib]System.Collections.Generic.List`1<valuetype OpenRA.Network.SyncReport/TraitReport> OpenRA.Network.SyncReport/Report::Traits
IL_000b: ldarg.0
IL_000c: newobj instance void class [mscorlib]System.Collections.Generic.List`1<valuetype OpenRA.Network.SyncReport/EffectReport>::'.ctor'()
IL_0011: stfld class [mscorlib]System.Collections.Generic.List`1<valuetype OpenRA.Network.SyncReport/EffectReport> OpenRA.Network.SyncReport/Report::Effects
IL_0016: ldarg.0
IL_0017: call instance void object::'.ctor'()
IL_001c: ret
} // end of method Report::.ctor
} // end of class Report
.class nested private sequential ansi sealed beforefieldinit TraitReport
extends [mscorlib]System.ValueType
{
.field public unsigned int32 ActorID
.field public string Type
.field public string Owner
.field public string Trait
.field public int32 Hash
.field public class [mscorlib]System.Collections.Generic.Dictionary`2<string,string> Fields
} // end of class TraitReport
.class nested private sequential ansi sealed beforefieldinit EffectReport
extends [mscorlib]System.ValueType
{
.field public string Name
.field public int32 Hash
.field public class [mscorlib]System.Collections.Generic.Dictionary`2<string,string> Fields
} // end of class EffectReport
} // end of class OpenRA.Network.SyncReport
}
.namespace OpenRA.Network
{
.class public auto ansi abstract sealed beforefieldinit OrderIO
extends [mscorlib]System.Object
{
.custom instance void class [System.Core]System.Runtime.CompilerServices.ExtensionAttribute::'.ctor'() = (01 00 00 00 ) // ....
// method line 100
.method public static hidebysig
default void Write (class [mscorlib]System.IO.Stream s, unsigned int8[] buf) cil managed
{
.custom instance void class [System.Core]System.Runtime.CompilerServices.ExtensionAttribute::'.ctor'() = (01 00 00 00 ) // ....
// Method begins at RVA 0x4b7c
// Code size 12 (0xc)
.maxstack 8
IL_0000: ldarg.0
IL_0001: ldarg.1
IL_0002: ldc.i4.0
IL_0003: ldarg.1
IL_0004: ldlen
IL_0005: conv.i4
IL_0006: callvirt instance void class [mscorlib]System.IO.Stream::Write(unsigned int8[], int32, int32)
IL_000b: ret
} // end of method OrderIO::Write
// method line 101
.method public static hidebysig
default class [mscorlib]System.Collections.Generic.List`1<class OpenRA.Order> ToOrderList (unsigned int8[] bytes, class OpenRA.World world) cil managed
{
.custom instance void class [System.Core]System.Runtime.CompilerServices.ExtensionAttribute::'.ctor'() = (01 00 00 00 ) // ....
// Method begins at RVA 0x4b8c
// Code size 71 (0x47)
.maxstack 9
.locals init (
class [mscorlib]System.IO.MemoryStream V_0,
class [mscorlib]System.IO.BinaryReader V_1,
class [mscorlib]System.Collections.Generic.List`1<class OpenRA.Order> V_2,
class OpenRA.Order V_3)
IL_0000: ldarg.0
IL_0001: ldc.i4.4
IL_0002: ldarg.0
IL_0003: ldlen
IL_0004: conv.i4
IL_0005: ldc.i4.4
IL_0006: sub
IL_0007: newobj instance void class [mscorlib]System.IO.MemoryStream::'.ctor'(unsigned int8[], int32, int32)
IL_000c: stloc.0
IL_000d: ldloc.0
IL_000e: newobj instance void class [mscorlib]System.IO.BinaryReader::'.ctor'(class [mscorlib]System.IO.Stream)
IL_0013: stloc.1
IL_0014: newobj instance void class [mscorlib]System.Collections.Generic.List`1<class OpenRA.Order>::'.ctor'()
IL_0019: stloc.2
IL_001a: br IL_0034
IL_001f: ldarg.1
IL_0020: ldloc.1
IL_0021: call class OpenRA.Order class OpenRA.Order::Deserialize(class OpenRA.World, class [mscorlib]System.IO.BinaryReader)
IL_0026: stloc.3
IL_0027: ldloc.3
IL_0028: brfalse IL_0034
IL_002d: ldloc.2
IL_002e: ldloc.3
IL_002f: callvirt instance void class [mscorlib]System.Collections.Generic.List`1<class OpenRA.Order>::Add(!0)
IL_0034: ldloc.0
IL_0035: callvirt instance int64 class [mscorlib]System.IO.Stream::get_Position()
IL_003a: ldloc.0
IL_003b: callvirt instance int64 class [mscorlib]System.IO.Stream::get_Length()
IL_0040: blt IL_001f
IL_0045: ldloc.2
IL_0046: ret
} // end of method OrderIO::ToOrderList
// method line 102
.method public static hidebysig
default unsigned int8[] SerializeSync (class [mscorlib]System.Collections.Generic.List`1<int32> sync) cil managed
{
.custom instance void class [System.Core]System.Runtime.CompilerServices.ExtensionAttribute::'.ctor'() = (01 00 00 00 ) // ....
// Method begins at RVA 0x4be0
// Code size 104 (0x68)
.maxstack 17
.locals init (
class [mscorlib]System.IO.MemoryStream V_0,
class [mscorlib]System.IO.BinaryWriter V_1,
valuetype [mscorlib]System.Collections.Generic.List`1/Enumerator<int32> V_2,
int32 V_3)
IL_0000: newobj instance void class [mscorlib]System.IO.MemoryStream::'.ctor'()
IL_0005: stloc.0
IL_0006: ldloc.0
IL_0007: newobj instance void class [mscorlib]System.IO.BinaryWriter::'.ctor'(class [mscorlib]System.IO.Stream)
IL_000c: stloc.1
.try { // 1
IL_000d: ldloc.1
IL_000e: ldc.i4.s 0x65
IL_0010: callvirt instance void class [mscorlib]System.IO.BinaryWriter::Write(unsigned int8)
IL_0015: ldarg.0
IL_0016: callvirt instance valuetype [mscorlib]System.Collections.Generic.List`1/Enumerator<!0> class [mscorlib]System.Collections.Generic.List`1<int32>::GetEnumerator()
IL_001b: stloc.2
.try { // 0
IL_001c: br IL_0030
IL_0021: ldloca.s 2
IL_0023: call instance !0 valuetype [mscorlib]System.Collections.Generic.List`1/Enumerator<int32>::get_Current()
IL_0028: stloc.3
IL_0029: ldloc.1
IL_002a: ldloc.3
IL_002b: callvirt instance void class [mscorlib]System.IO.BinaryWriter::Write(int32)
IL_0030: ldloca.s 2
IL_0032: call instance bool valuetype [mscorlib]System.Collections.Generic.List`1/Enumerator<int32>::MoveNext()
IL_0037: brtrue IL_0021
IL_003c: leave IL_004f
} // end .try 0
finally { // 0
IL_0041: ldloca.s 2
IL_0043: constrained. valuetype [mscorlib]System.Collections.Generic.List`1/Enumerator<int32>
IL_0049: callvirt instance void class [mscorlib]System.IDisposable::Dispose()
IL_004e: endfinally
} // end handler 0
IL_004f: leave IL_0061
} // end .try 1
finally { // 1
IL_0054: ldloc.1
IL_0055: brfalse IL_0060
IL_005a: ldloc.1
IL_005b: callvirt instance void class [mscorlib]System.IDisposable::Dispose()
IL_0060: endfinally
} // end handler 1
IL_0061: ldloc.0
IL_0062: callvirt instance unsigned int8[] class [mscorlib]System.IO.MemoryStream::ToArray()
IL_0067: ret
} // end of method OrderIO::SerializeSync
// method line 103
.method public static hidebysig
default valuetype [OpenRA.FileFormats]OpenRA.int2 ReadInt2 (class [mscorlib]System.IO.BinaryReader r) cil managed
{
.custom instance void class [System.Core]System.Runtime.CompilerServices.ExtensionAttribute::'.ctor'() = (01 00 00 00 ) // ....
// Method begins at RVA 0x4c88
// Code size 22 (0x16)
.maxstack 7
.locals init (
int32 V_0,
int32 V_1)
IL_0000: ldarg.0
IL_0001: callvirt instance int32 class [mscorlib]System.IO.BinaryReader::ReadInt32()
IL_0006: stloc.0
IL_0007: ldarg.0
IL_0008: callvirt instance int32 class [mscorlib]System.IO.BinaryReader::ReadInt32()
IL_000d: stloc.1
IL_000e: ldloc.0
IL_000f: ldloc.1
IL_0010: newobj instance void valuetype [OpenRA.FileFormats]OpenRA.int2::'.ctor'(int32, int32)
IL_0015: ret
} // end of method OrderIO::ReadInt2
// method line 104
.method public static hidebysig
default void Write (class [mscorlib]System.IO.BinaryWriter w, valuetype [OpenRA.FileFormats]OpenRA.int2 p) cil managed
{
.custom instance void class [System.Core]System.Runtime.CompilerServices.ExtensionAttribute::'.ctor'() = (01 00 00 00 ) // ....
// Method begins at RVA 0x4cac
// Code size 27 (0x1b)
.maxstack 8
IL_0000: ldarg.0
IL_0001: ldarga.s 1
IL_0003: ldfld int32 [OpenRA.FileFormats]OpenRA.int2::X
IL_0008: callvirt instance void class [mscorlib]System.IO.BinaryWriter::Write(int32)
IL_000d: ldarg.0
IL_000e: ldarga.s 1
IL_0010: ldfld int32 [OpenRA.FileFormats]OpenRA.int2::Y
IL_0015: callvirt instance void class [mscorlib]System.IO.BinaryWriter::Write(int32)
IL_001a: ret
} // end of method OrderIO::Write
} // end of class OpenRA.Network.OrderIO
}
.namespace OpenRA.Network
{
.class public auto ansi abstract sealed beforefieldinit ServerList
extends [mscorlib]System.Object
{
// method line 105
.method public static hidebysig
default void Query (class [mscorlib]System.Action`1<class OpenRA.Network.GameServer[]> onComplete) cil managed
{
// Method begins at RVA 0x4cc8
// Code size 66 (0x42)
.maxstack 4
.locals init (
class OpenRA.Network.ServerList/'<Query>c__AnonStorey1C' V_0,
class [mscorlib]System.Threading.Thread V_1)
IL_0000: newobj instance void class OpenRA.Network.ServerList/'<Query>c__AnonStorey1C'::'.ctor'()
IL_0005: stloc.0
IL_0006: ldloc.0
IL_0007: ldarg.0
IL_0008: stfld class [mscorlib]System.Action`1<class OpenRA.Network.GameServer[]> OpenRA.Network.ServerList/'<Query>c__AnonStorey1C'::onComplete
IL_000d: ldloc.0
IL_000e: ldsfld class OpenRA.GameRules.Settings OpenRA.Game::Settings
IL_0013: ldfld class OpenRA.GameRules.ServerSettings OpenRA.GameRules.Settings::Server
IL_0018: ldfld string OpenRA.GameRules.ServerSettings::MasterServer
IL_001d: stfld string OpenRA.Network.ServerList/'<Query>c__AnonStorey1C'::masterServerUrl
IL_0022: ldloc.0
IL_0023: ldftn instance void class OpenRA.Network.ServerList/'<Query>c__AnonStorey1C'::'<>m__1C'()
IL_0029: newobj instance void class [mscorlib]System.Threading.ThreadStart::'.ctor'(object, native int)
IL_002e: newobj instance void class [mscorlib]System.Threading.Thread::'.ctor'(class [mscorlib]System.Threading.ThreadStart)
IL_0033: stloc.1
IL_0034: ldloc.1
IL_0035: ldc.i4.1
IL_0036: callvirt instance void class [mscorlib]System.Threading.Thread::set_IsBackground(bool)
IL_003b: ldloc.1
IL_003c: call instance void class [mscorlib]System.Threading.Thread::Start()
IL_0041: ret
} // end of method ServerList::Query
// method line 106
.method private static hidebysig
default string GetData (class [System]System.Uri uri) cil managed
{
// Method begins at RVA 0x4d18
// Code size 33 (0x21)
.maxstack 8
.locals init (
class [System]System.Net.WebClient V_0,
unsigned int8[] V_1)
IL_0000: newobj instance void class [System]System.Net.WebClient::'.ctor'()
IL_0005: stloc.0
IL_0006: ldloc.0
IL_0007: ldnull
IL_0008: callvirt instance void class [System]System.Net.WebClient::set_Proxy(class [System]System.Net.IWebProxy)
IL_000d: ldloc.0
IL_000e: ldarg.0
IL_000f: callvirt instance unsigned int8[] class [System]System.Net.WebClient::DownloadData(class [System]System.Uri)
IL_0014: stloc.1
IL_0015: call class [mscorlib]System.Text.Encoding class [mscorlib]System.Text.Encoding::get_UTF8()
IL_001a: ldloc.1
IL_001b: callvirt instance string class [mscorlib]System.Text.Encoding::GetString(unsigned int8[])
IL_0020: ret
} // end of method ServerList::GetData
.class nested private auto ansi sealed beforefieldinit '<Query>c__AnonStorey1C'
extends [mscorlib]System.Object
{
.custom instance void class [mscorlib]System.Runtime.CompilerServices.CompilerGeneratedAttribute::'.ctor'() = (01 00 00 00 ) // ....
.field assembly string masterServerUrl
.field assembly class [mscorlib]System.Action`1<class OpenRA.Network.GameServer[]> onComplete
.field private static class [System.Core]System.Func`2<class [OpenRA.FileFormats]OpenRA.FileFormats.MiniYamlNode,class OpenRA.Network.GameServer> '<>f__am$cache2'
.field private static class [System.Core]System.Func`2<class OpenRA.Network.GameServer,bool> '<>f__am$cache3'
// method line 2095
.method public hidebysig specialname rtspecialname
instance default void '.ctor' () cil managed
{
// Method begins at RVA 0x2b6c8
// Code size 7 (0x7)
.maxstack 8
IL_0000: ldarg.0
IL_0001: call instance void object::'.ctor'()
IL_0006: ret
} // end of method <Query>c__AnonStorey1C::.ctor
// method line 2096
.method assembly hidebysig
instance default void '<>m__1C' () cil managed
{
// Method begins at RVA 0x2b6d0
// Code size 163 (0xa3)
.maxstack 11
.locals init (
class OpenRA.Network.ServerList/'<Query>c__AnonStorey1C'/'<Query>c__AnonStorey1D' V_0,
string V_1,
class [mscorlib]System.Collections.Generic.List`1<class [OpenRA.FileFormats]OpenRA.FileFormats.MiniYamlNode> V_2)
IL_0000: newobj instance void class OpenRA.Network.ServerList/'<Query>c__AnonStorey1C'/'<Query>c__AnonStorey1D'::'.ctor'()
IL_0005: stloc.0
IL_0006: ldloc.0
IL_0007: ldarg.0
IL_0008: stfld class OpenRA.Network.ServerList/'<Query>c__AnonStorey1C' OpenRA.Network.ServerList/'<Query>c__AnonStorey1C'/'<Query>c__AnonStorey1D'::'<>f__ref$28'
IL_000d: ldloc.0
IL_000e: ldnull
IL_000f: stfld class OpenRA.Network.GameServer[] OpenRA.Network.ServerList/'<Query>c__AnonStorey1C'/'<Query>c__AnonStorey1D'::games
.try { // 0
IL_0014: ldarg.0
IL_0015: ldfld string OpenRA.Network.ServerList/'<Query>c__AnonStorey1C'::masterServerUrl
IL_001a: ldstr "list.php"
IL_001f: call string string::Concat(string, string)
IL_0024: newobj instance void class [System]System.Uri::'.ctor'(string)
IL_0029: call string class OpenRA.Network.ServerList::GetData(class [System]System.Uri)
IL_002e: stloc.1
IL_002f: ldloc.1
IL_0030: call class [mscorlib]System.Collections.Generic.List`1<class [OpenRA.FileFormats]OpenRA.FileFormats.MiniYamlNode> class [OpenRA.FileFormats]OpenRA.FileFormats.MiniYaml::FromString(string)
IL_0035: stloc.2
IL_0036: ldloc.0
IL_0037: ldloc.2
IL_0038: ldsfld class [System.Core]System.Func`2<class [OpenRA.FileFormats]OpenRA.FileFormats.MiniYamlNode,class OpenRA.Network.GameServer> OpenRA.Network.ServerList/'<Query>c__AnonStorey1C'::'<>f__am$cache2'
IL_003d: brtrue.s IL_0050
IL_003f: ldnull
IL_0040: ldftn class OpenRA.Network.GameServer class OpenRA.Network.ServerList/'<Query>c__AnonStorey1C'::'<>m__1D'(class [OpenRA.FileFormats]OpenRA.FileFormats.MiniYamlNode)
IL_0046: newobj instance void class [System.Core]System.Func`2<class [OpenRA.FileFormats]OpenRA.FileFormats.MiniYamlNode, class OpenRA.Network.GameServer>::'.ctor'(object, native int)
IL_004b: stsfld class [System.Core]System.Func`2<class [OpenRA.FileFormats]OpenRA.FileFormats.MiniYamlNode,class OpenRA.Network.GameServer> OpenRA.Network.ServerList/'<Query>c__AnonStorey1C'::'<>f__am$cache2'
IL_0050: ldsfld class [System.Core]System.Func`2<class [OpenRA.FileFormats]OpenRA.FileFormats.MiniYamlNode,class OpenRA.Network.GameServer> OpenRA.Network.ServerList/'<Query>c__AnonStorey1C'::'<>f__am$cache2'
IL_0055: call class [mscorlib]System.Collections.Generic.IEnumerable`1<!!1> class [System.Core]System.Linq.Enumerable::Select<class [OpenRA.FileFormats]OpenRA.FileFormats.MiniYamlNode, class OpenRA.Network.GameServer> (class [mscorlib]System.Collections.Generic.IEnumerable`1<!!0>, class [System.Core]System.Func`2<!!0,!!1>)
IL_005a: ldsfld class [System.Core]System.Func`2<class OpenRA.Network.GameServer,bool> OpenRA.Network.ServerList/'<Query>c__AnonStorey1C'::'<>f__am$cache3'
IL_005f: brtrue.s IL_0072
IL_0061: ldnull
IL_0062: ldftn bool class OpenRA.Network.ServerList/'<Query>c__AnonStorey1C'::'<>m__1E'(class OpenRA.Network.GameServer)
IL_0068: newobj instance void class [System.Core]System.Func`2<class OpenRA.Network.GameServer, bool>::'.ctor'(object, native int)
IL_006d: stsfld class [System.Core]System.Func`2<class OpenRA.Network.GameServer,bool> OpenRA.Network.ServerList/'<Query>c__AnonStorey1C'::'<>f__am$cache3'
IL_0072: ldsfld class [System.Core]System.Func`2<class OpenRA.Network.GameServer,bool> OpenRA.Network.ServerList/'<Query>c__AnonStorey1C'::'<>f__am$cache3'
IL_0077: call class [mscorlib]System.Collections.Generic.IEnumerable`1<!!0> class [System.Core]System.Linq.Enumerable::Where<class OpenRA.Network.GameServer> (class [mscorlib]System.Collections.Generic.IEnumerable`1<!!0>, class [System.Core]System.Func`2<!!0,bool>)
IL_007c: call !!0[] class [System.Core]System.Linq.Enumerable::ToArray<class OpenRA.Network.GameServer> (class [mscorlib]System.Collections.Generic.IEnumerable`1<!!0>)
IL_0081: stfld class OpenRA.Network.GameServer[] OpenRA.Network.ServerList/'<Query>c__AnonStorey1C'/'<Query>c__AnonStorey1D'::games
IL_0086: leave IL_0091
} // end .try 0
catch class [mscorlib]System.Object { // 0
IL_008b: pop
IL_008c: leave IL_0091
} // end handler 0
IL_0091: ldloc.0
IL_0092: ldftn instance void class OpenRA.Network.ServerList/'<Query>c__AnonStorey1C'/'<Query>c__AnonStorey1D'::'<>m__1F'()
IL_0098: newobj instance void class [System.Core]System.Action::'.ctor'(object, native int)
IL_009d: call void class OpenRA.Game::RunAfterTick(class [System.Core]System.Action)
IL_00a2: ret
} // end of method <Query>c__AnonStorey1C::<>m__1C
// method line 2097
.method private static hidebysig
default class OpenRA.Network.GameServer '<>m__1D' (class [OpenRA.FileFormats]OpenRA.FileFormats.MiniYamlNode a) cil managed
{
// Method begins at RVA 0x2b79c
// Code size 12 (0xc)
.maxstack 8
IL_0000: ldarg.0
IL_0001: ldfld class [OpenRA.FileFormats]OpenRA.FileFormats.MiniYaml [OpenRA.FileFormats]OpenRA.FileFormats.MiniYamlNode::Value
IL_0006: call !!0 class [OpenRA.FileFormats]OpenRA.FileFormats.FieldLoader::Load<class OpenRA.Network.GameServer> (class [OpenRA.FileFormats]OpenRA.FileFormats.MiniYaml)
IL_000b: ret
} // end of method <Query>c__AnonStorey1C::<>m__1D
// method line 2098
.method private static hidebysig
default bool '<>m__1E' (class OpenRA.Network.GameServer gs) cil managed
{
// Method begins at RVA 0x2b7ac
// Code size 13 (0xd)
.maxstack 8
IL_0000: ldarg.0
IL_0001: ldfld string OpenRA.Network.GameServer::Address
IL_0006: ldnull
IL_0007: ceq
IL_0009: ldc.i4.0
IL_000a: ceq
IL_000c: ret
} // end of method <Query>c__AnonStorey1C::<>m__1E
.class nested private auto ansi sealed beforefieldinit '<Query>c__AnonStorey1D'
extends [mscorlib]System.Object
{
.field assembly class OpenRA.Network.GameServer[] games
.field assembly class OpenRA.Network.ServerList/'<Query>c__AnonStorey1C' '<>f__ref$28'
// method line 2099
.method public hidebysig specialname rtspecialname
instance default void '.ctor' () cil managed
{
// Method begins at RVA 0x2b7bc
// Code size 7 (0x7)
.maxstack 8
IL_0000: ldarg.0
IL_0001: call instance void object::'.ctor'()
IL_0006: ret
} // end of method <Query>c__AnonStorey1D::.ctor
// method line 2100
.method assembly hidebysig
instance default void '<>m__1F' () cil managed
{
// Method begins at RVA 0x2b7c4
// Code size 23 (0x17)
.maxstack 8
IL_0000: ldarg.0
IL_0001: ldfld class OpenRA.Network.ServerList/'<Query>c__AnonStorey1C' OpenRA.Network.ServerList/'<Query>c__AnonStorey1C'/'<Query>c__AnonStorey1D'::'<>f__ref$28'
IL_0006: ldfld class [mscorlib]System.Action`1<class OpenRA.Network.GameServer[]> OpenRA.Network.ServerList/'<Query>c__AnonStorey1C'::onComplete
IL_000b: ldarg.0
IL_000c: ldfld class OpenRA.Network.GameServer[] OpenRA.Network.ServerList/'<Query>c__AnonStorey1C'/'<Query>c__AnonStorey1D'::games
IL_0011: callvirt instance void class [mscorlib]System.Action`1<class OpenRA.Network.GameServer[]>::Invoke(!0)
IL_0016: ret
} // end of method <Query>c__AnonStorey1D::<>m__1F
} // end of class <Query>c__AnonStorey1D
} // end of class <Query>c__AnonStorey1C
} // end of class OpenRA.Network.ServerList
}
.namespace OpenRA.Network
{
.class public auto ansi beforefieldinit HandshakeRequest
extends [mscorlib]System.Object
{
.field public string[] Mods
.field public string Map
// method line 107
.method public hidebysig specialname rtspecialname
instance default void '.ctor' () cil managed
{
// Method begins at RVA 0x4d48
// Code size 7 (0x7)
.maxstack 8
IL_0000: ldarg.0
IL_0001: call instance void object::'.ctor'()
IL_0006: ret
} // end of method HandshakeRequest::.ctor
// method line 108
.method public hidebysig
instance default string Serialize () cil managed
{
// Method begins at RVA 0x4d50
// Code size 35 (0x23)
.maxstack 5
.locals init (
class [mscorlib]System.Collections.Generic.List`1<class [OpenRA.FileFormats]OpenRA.FileFormats.MiniYamlNode> V_0)
IL_0000: newobj instance void class [mscorlib]System.Collections.Generic.List`1<class [OpenRA.FileFormats]OpenRA.FileFormats.MiniYamlNode>::'.ctor'()
IL_0005: stloc.0
IL_0006: ldloc.0
IL_0007: ldstr "Handshake"
IL_000c: ldarg.0
IL_000d: call class [OpenRA.FileFormats]OpenRA.FileFormats.MiniYaml class [OpenRA.FileFormats]OpenRA.FileFormats.FieldSaver::Save(object)
IL_0012: newobj instance void class [OpenRA.FileFormats]OpenRA.FileFormats.MiniYamlNode::'.ctor'(string, class [OpenRA.FileFormats]OpenRA.FileFormats.MiniYaml)
IL_0017: callvirt instance void class [mscorlib]System.Collections.Generic.List`1<class [OpenRA.FileFormats]OpenRA.FileFormats.MiniYamlNode>::Add(!0)
IL_001c: ldloc.0
IL_001d: call string class [OpenRA.FileFormats]OpenRA.FileFormats.MiniYamlExts::WriteToString(class [mscorlib]System.Collections.Generic.List`1<class [OpenRA.FileFormats]OpenRA.FileFormats.MiniYamlNode>)
IL_0022: ret
} // end of method HandshakeRequest::Serialize
// method line 109
.method public static hidebysig
default class OpenRA.Network.HandshakeRequest Deserialize (string data) cil managed
{
// Method begins at RVA 0x4d80
// Code size 30 (0x1e)
.maxstack 5
.locals init (
class OpenRA.Network.HandshakeRequest V_0)
IL_0000: newobj instance void class OpenRA.Network.HandshakeRequest::'.ctor'()
IL_0005: stloc.0
IL_0006: ldloc.0
IL_0007: ldarg.0
IL_0008: call class [mscorlib]System.Collections.Generic.List`1<class [OpenRA.FileFormats]OpenRA.FileFormats.MiniYamlNode> class [OpenRA.FileFormats]OpenRA.FileFormats.MiniYaml::FromString(string)
IL_000d: call !!0 class [System.Core]System.Linq.Enumerable::First<class [OpenRA.FileFormats]OpenRA.FileFormats.MiniYamlNode> (class [mscorlib]System.Collections.Generic.IEnumerable`1<!!0>)
IL_0012: ldfld class [OpenRA.FileFormats]OpenRA.FileFormats.MiniYaml [OpenRA.FileFormats]OpenRA.FileFormats.MiniYamlNode::Value
IL_0017: call void class [OpenRA.FileFormats]OpenRA.FileFormats.FieldLoader::Load(object, class [OpenRA.FileFormats]OpenRA.FileFormats.MiniYaml)
IL_001c: ldloc.0
IL_001d: ret
} // end of method HandshakeRequest::Deserialize
} // end of class OpenRA.Network.HandshakeRequest
}
.namespace OpenRA.Network
{
.class public auto ansi beforefieldinit HandshakeResponse
extends [mscorlib]System.Object
{
.field public string[] Mods
.field public string Password
.field public class OpenRA.Network.Session/Client Client
.custom instance void class [OpenRA.FileFormats]OpenRA.FileFormats.FieldLoader/IgnoreAttribute::'.ctor'() = (01 00 00 00 ) // ....
.field private static class [mscorlib]System.Collections.Generic.Dictionary`2<string,int32> '<>f__switch$map2'
.custom instance void class [mscorlib]System.Runtime.CompilerServices.CompilerGeneratedAttribute::'.ctor'() = (01 00 00 00 ) // ....
// method line 110
.method public hidebysig specialname rtspecialname
instance default void '.ctor' () cil managed
{
// Method begins at RVA 0x4dac
// Code size 7 (0x7)
.maxstack 8
IL_0000: ldarg.0
IL_0001: call instance void object::'.ctor'()
IL_0006: ret
} // end of method HandshakeResponse::.ctor
// method line 111
.method public hidebysig
instance default string Serialize () cil managed
{
// Method begins at RVA 0x4db4
// Code size 101 (0x65)
.maxstack 10
.locals init (
class [mscorlib]System.Collections.Generic.List`1<class [OpenRA.FileFormats]OpenRA.FileFormats.MiniYamlNode> V_0)
IL_0000: newobj instance void class [mscorlib]System.Collections.Generic.List`1<class [OpenRA.FileFormats]OpenRA.FileFormats.MiniYamlNode>::'.ctor'()
IL_0005: stloc.0
IL_0006: ldloc.0
IL_0007: ldstr "Handshake"
IL_000c: ldnull
IL_000d: ldc.i4.2
IL_000e: newarr [mscorlib]System.String
IL_0013: dup
IL_0014: ldc.i4.0
IL_0015: ldstr "Mods"
IL_001a: stelem.ref
IL_001b: dup
IL_001c: ldc.i4.1
IL_001d: ldstr "Password"
IL_0022: stelem.ref
IL_0023: ldarg.0
IL_0024: ldftn instance class [OpenRA.FileFormats]OpenRA.FileFormats.MiniYamlNode class OpenRA.Network.HandshakeResponse::'<Serialize>m__20'(string)
IL_002a: newobj instance void class [System.Core]System.Func`2<string, class [OpenRA.FileFormats]OpenRA.FileFormats.MiniYamlNode>::'.ctor'(object, native int)
IL_002f: call class [mscorlib]System.Collections.Generic.IEnumerable`1<!!1> class [System.Core]System.Linq.Enumerable::Select<string, class [OpenRA.FileFormats]OpenRA.FileFormats.MiniYamlNode> (class [mscorlib]System.Collections.Generic.IEnumerable`1<!!0>, class [System.Core]System.Func`2<!!0,!!1>)
IL_0034: call class [mscorlib]System.Collections.Generic.List`1<!!0> class [System.Core]System.Linq.Enumerable::ToList<class [OpenRA.FileFormats]OpenRA.FileFormats.MiniYamlNode> (class [mscorlib]System.Collections.Generic.IEnumerable`1<!!0>)
IL_0039: newobj instance void class [OpenRA.FileFormats]OpenRA.FileFormats.MiniYamlNode::'.ctor'(string, string, class [mscorlib]System.Collections.Generic.List`1<class [OpenRA.FileFormats]OpenRA.FileFormats.MiniYamlNode>)
IL_003e: callvirt instance void class [mscorlib]System.Collections.Generic.List`1<class [OpenRA.FileFormats]OpenRA.FileFormats.MiniYamlNode>::Add(!0)
IL_0043: ldloc.0
IL_0044: ldstr "Client"
IL_0049: ldarg.0
IL_004a: ldfld class OpenRA.Network.Session/Client OpenRA.Network.HandshakeResponse::Client
IL_004f: call class [OpenRA.FileFormats]OpenRA.FileFormats.MiniYaml class [OpenRA.FileFormats]OpenRA.FileFormats.FieldSaver::Save(object)
IL_0054: newobj instance void class [OpenRA.FileFormats]OpenRA.FileFormats.MiniYamlNode::'.ctor'(string, class [OpenRA.FileFormats]OpenRA.FileFormats.MiniYaml)
IL_0059: callvirt instance void class [mscorlib]System.Collections.Generic.List`1<class [OpenRA.FileFormats]OpenRA.FileFormats.MiniYamlNode>::Add(!0)
IL_005e: ldloc.0
IL_005f: call string class [OpenRA.FileFormats]OpenRA.FileFormats.MiniYamlExts::WriteToString(class [mscorlib]System.Collections.Generic.List`1<class [OpenRA.FileFormats]OpenRA.FileFormats.MiniYamlNode>)
IL_0064: ret
} // end of method HandshakeResponse::Serialize
// method line 112
.method public static hidebysig
default class OpenRA.Network.HandshakeResponse Deserialize (string data) cil managed
{
// Method begins at RVA 0x4e28
// Code size 221 (0xdd)
.maxstack 18
.locals init (
class OpenRA.Network.HandshakeResponse V_0,
class [mscorlib]System.Collections.Generic.List`1<class [OpenRA.FileFormats]OpenRA.FileFormats.MiniYamlNode> V_1,
valuetype [mscorlib]System.Collections.Generic.List`1/Enumerator<class [OpenRA.FileFormats]OpenRA.FileFormats.MiniYamlNode> V_2,
class [OpenRA.FileFormats]OpenRA.FileFormats.MiniYamlNode V_3,
string V_4,
class [mscorlib]System.Collections.Generic.Dictionary`2<string, int32> V_5,
int32 V_6)
IL_0000: newobj instance void class OpenRA.Network.HandshakeResponse::'.ctor'()
IL_0005: stloc.0
IL_0006: ldloc.0
IL_0007: newobj instance void class OpenRA.Network.Session/Client::'.ctor'()
IL_000c: stfld class OpenRA.Network.Session/Client OpenRA.Network.HandshakeResponse::Client
IL_0011: ldarg.0
IL_0012: call class [mscorlib]System.Collections.Generic.List`1<class [OpenRA.FileFormats]OpenRA.FileFormats.MiniYamlNode> class [OpenRA.FileFormats]OpenRA.FileFormats.MiniYaml::FromString(string)
IL_0017: stloc.1
IL_0018: ldloc.1
IL_0019: callvirt instance valuetype [mscorlib]System.Collections.Generic.List`1/Enumerator<!0> class [mscorlib]System.Collections.Generic.List`1<class [OpenRA.FileFormats]OpenRA.FileFormats.MiniYamlNode>::GetEnumerator()
IL_001e: stloc.2
.try { // 0
IL_001f: br IL_00bc
IL_0024: ldloca.s 2
IL_0026: call instance !0 valuetype [mscorlib]System.Collections.Generic.List`1/Enumerator<class [OpenRA.FileFormats]OpenRA.FileFormats.MiniYamlNode>::get_Current()
IL_002b: stloc.3
IL_002c: ldloc.3
IL_002d: ldfld string [OpenRA.FileFormats]OpenRA.FileFormats.MiniYamlNode::Key
IL_0032: stloc.s 4
IL_0034: ldloc.s 4
IL_0036: brfalse IL_00bc
IL_003b: ldsfld class [mscorlib]System.Collections.Generic.Dictionary`2<string,int32> OpenRA.Network.HandshakeResponse::'<>f__switch$map2'
IL_0040: brtrue IL_006e
IL_0045: ldc.i4.2
IL_0046: newobj instance void class [mscorlib]System.Collections.Generic.Dictionary`2<string, int32>::'.ctor'(int32)
IL_004b: stloc.s 5
IL_004d: ldloc.s 5
IL_004f: ldstr "Handshake"
IL_0054: ldc.i4.0
IL_0055: callvirt instance void class [mscorlib]System.Collections.Generic.Dictionary`2<string, int32>::Add(!0, !1)
IL_005a: ldloc.s 5
IL_005c: ldstr "Client"
IL_0061: ldc.i4.1
IL_0062: callvirt instance void class [mscorlib]System.Collections.Generic.Dictionary`2<string, int32>::Add(!0, !1)
IL_0067: ldloc.s 5
IL_0069: stsfld class [mscorlib]System.Collections.Generic.Dictionary`2<string,int32> OpenRA.Network.HandshakeResponse::'<>f__switch$map2'
IL_006e: ldsfld class [mscorlib]System.Collections.Generic.Dictionary`2<string,int32> OpenRA.Network.HandshakeResponse::'<>f__switch$map2'
IL_0073: ldloc.s 4
IL_0075: ldloca.s 6
IL_0077: callvirt instance bool class [mscorlib]System.Collections.Generic.Dictionary`2<string, int32>::TryGetValue(!0, [out] !1&)
IL_007c: brfalse IL_00bc
IL_0081: ldloc.s 6
IL_0083: brfalse IL_0095
IL_0088: ldloc.s 6
IL_008a: ldc.i4.1
IL_008b: beq IL_00a6
IL_0090: br IL_00bc
IL_0095: ldloc.0
IL_0096: ldloc.3
IL_0097: ldfld class [OpenRA.FileFormats]OpenRA.FileFormats.MiniYaml [OpenRA.FileFormats]OpenRA.FileFormats.MiniYamlNode::Value
IL_009c: call void class [OpenRA.FileFormats]OpenRA.FileFormats.FieldLoader::Load(object, class [OpenRA.FileFormats]OpenRA.FileFormats.MiniYaml)
IL_00a1: br IL_00bc
IL_00a6: ldloc.0
IL_00a7: ldfld class OpenRA.Network.Session/Client OpenRA.Network.HandshakeResponse::Client
IL_00ac: ldloc.3
IL_00ad: ldfld class [OpenRA.FileFormats]OpenRA.FileFormats.MiniYaml [OpenRA.FileFormats]OpenRA.FileFormats.MiniYamlNode::Value
IL_00b2: call void class [OpenRA.FileFormats]OpenRA.FileFormats.FieldLoader::Load(object, class [OpenRA.FileFormats]OpenRA.FileFormats.MiniYaml)
IL_00b7: br IL_00bc
IL_00bc: ldloca.s 2
IL_00be: call instance bool valuetype [mscorlib]System.Collections.Generic.List`1/Enumerator<class [OpenRA.FileFormats]OpenRA.FileFormats.MiniYamlNode>::MoveNext()
IL_00c3: brtrue IL_0024
IL_00c8: leave IL_00db
} // end .try 0
finally { // 0
IL_00cd: ldloca.s 2
IL_00cf: constrained. valuetype [mscorlib]System.Collections.Generic.List`1/Enumerator<class [OpenRA.FileFormats]OpenRA.FileFormats.MiniYamlNode>
IL_00d5: callvirt instance void class [mscorlib]System.IDisposable::Dispose()
IL_00da: endfinally
} // end handler 0
IL_00db: ldloc.0
IL_00dc: ret
} // end of method HandshakeResponse::Deserialize
// method line 113
.method private hidebysig
instance default class [OpenRA.FileFormats]OpenRA.FileFormats.MiniYamlNode '<Serialize>m__20' (string p) cil managed
{
.custom instance void class [mscorlib]System.Runtime.CompilerServices.CompilerGeneratedAttribute::'.ctor'() = (01 00 00 00 ) // ....
// Method begins at RVA 0x4f30
// Code size 8 (0x8)
.maxstack 8
IL_0000: ldarg.0
IL_0001: ldarg.1
IL_0002: call class [OpenRA.FileFormats]OpenRA.FileFormats.MiniYamlNode class [OpenRA.FileFormats]OpenRA.FileFormats.FieldSaver::SaveField(object, string)
IL_0007: ret
} // end of method HandshakeResponse::<Serialize>m__20
} // end of class OpenRA.Network.HandshakeResponse
}
.namespace OpenRA.Network
{
.class public auto ansi beforefieldinit Session
extends [mscorlib]System.Object
{
.field public class [mscorlib]System.Collections.Generic.List`1<class OpenRA.Network.Session/Client> Clients
.field public class [mscorlib]System.Collections.Generic.Dictionary`2<string,class OpenRA.Network.Session/Slot> Slots
.field public class OpenRA.Network.Session/Global GlobalSettings
.field private static class [System.Core]System.Func`2<class OpenRA.Network.Session/Client,bool> '<>f__am$cache3'
.custom instance void class [mscorlib]System.Runtime.CompilerServices.CompilerGeneratedAttribute::'.ctor'() = (01 00 00 00 ) // ....
.field private static class [mscorlib]System.Collections.Generic.Dictionary`2<string,int32> '<>f__switch$map3'
.custom instance void class [mscorlib]System.Runtime.CompilerServices.CompilerGeneratedAttribute::'.ctor'() = (01 00 00 00 ) // ....
// method line 114
.method public hidebysig specialname rtspecialname
instance default void '.ctor' (string[] mods) cil managed
{
// Method begins at RVA 0x4f3c
// Code size 81 (0x51)
.maxstack 8
.locals init (
valuetype [mscorlib]System.Guid V_0)
IL_0000: ldarg.0
IL_0001: newobj instance void class [mscorlib]System.Collections.Generic.List`1<class OpenRA.Network.Session/Client>::'.ctor'()
IL_0006: stfld class [mscorlib]System.Collections.Generic.List`1<class OpenRA.Network.Session/Client> OpenRA.Network.Session::Clients
IL_000b: ldarg.0
IL_000c: newobj instance void class [mscorlib]System.Collections.Generic.Dictionary`2<string, class OpenRA.Network.Session/Slot>::'.ctor'()
IL_0011: stfld class [mscorlib]System.Collections.Generic.Dictionary`2<string,class OpenRA.Network.Session/Slot> OpenRA.Network.Session::Slots
IL_0016: ldarg.0
IL_0017: newobj instance void class OpenRA.Network.Session/Global::'.ctor'()
IL_001c: stfld class OpenRA.Network.Session/Global OpenRA.Network.Session::GlobalSettings
IL_0021: ldarg.0
IL_0022: call instance void object::'.ctor'()
IL_0027: ldarg.0
IL_0028: ldfld class OpenRA.Network.Session/Global OpenRA.Network.Session::GlobalSettings
IL_002d: ldarg.1
IL_002e: call !!0[] class [System.Core]System.Linq.Enumerable::ToArray<string> (class [mscorlib]System.Collections.Generic.IEnumerable`1<!!0>)
IL_0033: stfld string[] OpenRA.Network.Session/Global::Mods
IL_0038: ldarg.0
IL_0039: ldfld class OpenRA.Network.Session/Global OpenRA.Network.Session::GlobalSettings
IL_003e: call valuetype [mscorlib]System.Guid valuetype [mscorlib]System.Guid::NewGuid()
IL_0043: stloc.0
IL_0044: ldloca.s 0
IL_0046: call instance string valuetype [mscorlib]System.Guid::ToString()
IL_004b: stfld string OpenRA.Network.Session/Global::GameUid
IL_0050: ret
} // end of method Session::.ctor
// method line 115
.method public static hidebysig
default class OpenRA.Network.Session Deserialize (string data) cil managed
{
// Method begins at RVA 0x4f9c
// Code size 370 (0x172)
.maxstack 27
.locals init (
class OpenRA.Network.Session V_0,
class [mscorlib]System.Collections.Generic.List`1<class [OpenRA.FileFormats]OpenRA.FileFormats.MiniYamlNode> V_1,
valuetype [mscorlib]System.Collections.Generic.List`1/Enumerator<class [OpenRA.FileFormats]OpenRA.FileFormats.MiniYamlNode> V_2,
class [OpenRA.FileFormats]OpenRA.FileFormats.MiniYamlNode V_3,
string[] V_4,
string V_5,
class [mscorlib]System.Collections.Generic.Dictionary`2<string, int32> V_6,
int32 V_7,
class OpenRA.Network.Session/Slot V_8,
class OpenRA.Network.Session V_9)
.try { // 1
IL_0000: ldsfld class OpenRA.GameRules.Settings OpenRA.Game::Settings
IL_0005: ldfld class OpenRA.GameRules.GameSettings OpenRA.GameRules.Settings::Game
IL_000a: ldfld string[] OpenRA.GameRules.GameSettings::Mods
IL_000f: newobj instance void class OpenRA.Network.Session::'.ctor'(string[])
IL_0014: stloc.0
IL_0015: ldarg.0
IL_0016: call class [mscorlib]System.Collections.Generic.List`1<class [OpenRA.FileFormats]OpenRA.FileFormats.MiniYamlNode> class [OpenRA.FileFormats]OpenRA.FileFormats.MiniYaml::FromString(string)
IL_001b: stloc.1
IL_001c: ldloc.1
IL_001d: callvirt instance valuetype [mscorlib]System.Collections.Generic.List`1/Enumerator<!0> class [mscorlib]System.Collections.Generic.List`1<class [OpenRA.FileFormats]OpenRA.FileFormats.MiniYamlNode>::GetEnumerator()
IL_0022: stloc.2
.try { // 0
IL_0023: br IL_0117
IL_0028: ldloca.s 2
IL_002a: call instance !0 valuetype [mscorlib]System.Collections.Generic.List`1/Enumerator<class [OpenRA.FileFormats]OpenRA.FileFormats.MiniYamlNode>::get_Current()
IL_002f: stloc.3
IL_0030: ldloc.3
IL_0031: ldfld string [OpenRA.FileFormats]OpenRA.FileFormats.MiniYamlNode::Key
IL_0036: ldc.i4.1
IL_0037: newarr [mscorlib]System.Char
IL_003c: dup
IL_003d: ldc.i4.0
IL_003e: ldc.i4.s 0x40
IL_0040: stelem.i2
IL_0041: callvirt instance string[] string::Split(char[])
IL_0046: stloc.s 4
IL_0048: ldloc.s 4
IL_004a: ldc.i4.0
IL_004b: ldelem.ref
IL_004c: stloc.s 5
IL_004e: ldloc.s 5
IL_0050: brfalse IL_0117
IL_0055: ldsfld class [mscorlib]System.Collections.Generic.Dictionary`2<string,int32> OpenRA.Network.Session::'<>f__switch$map3'
IL_005a: brtrue IL_0095
IL_005f: ldc.i4.3
IL_0060: newobj instance void class [mscorlib]System.Collections.Generic.Dictionary`2<string, int32>::'.ctor'(int32)
IL_0065: stloc.s 6
IL_0067: ldloc.s 6
IL_0069: ldstr "GlobalSettings"
IL_006e: ldc.i4.0
IL_006f: callvirt instance void class [mscorlib]System.Collections.Generic.Dictionary`2<string, int32>::Add(!0, !1)
IL_0074: ldloc.s 6
IL_0076: ldstr "Client"
IL_007b: ldc.i4.1
IL_007c: callvirt instance void class [mscorlib]System.Collections.Generic.Dictionary`2<string, int32>::Add(!0, !1)
IL_0081: ldloc.s 6
IL_0083: ldstr "Slot"
IL_0088: ldc.i4.2
IL_0089: callvirt instance void class [mscorlib]System.Collections.Generic.Dictionary`2<string, int32>::Add(!0, !1)
IL_008e: ldloc.s 6
IL_0090: stsfld class [mscorlib]System.Collections.Generic.Dictionary`2<string,int32> OpenRA.Network.Session::'<>f__switch$map3'
IL_0095: ldsfld class [mscorlib]System.Collections.Generic.Dictionary`2<string,int32> OpenRA.Network.Session::'<>f__switch$map3'
IL_009a: ldloc.s 5
IL_009c: ldloca.s 7
IL_009e: callvirt instance bool class [mscorlib]System.Collections.Generic.Dictionary`2<string, int32>::TryGetValue(!0, [out] !1&)
IL_00a3: brfalse IL_0117
IL_00a8: ldloc.s 7
IL_00aa: switch (
IL_00c0,
IL_00d6,
IL_00f1)
IL_00bb: br IL_0117
IL_00c0: ldloc.0
IL_00c1: ldfld class OpenRA.Network.Session/Global OpenRA.Network.Session::GlobalSettings
IL_00c6: ldloc.3
IL_00c7: ldfld class [OpenRA.FileFormats]OpenRA.FileFormats.MiniYaml [OpenRA.FileFormats]OpenRA.FileFormats.MiniYamlNode::Value
IL_00cc: call void class [OpenRA.FileFormats]OpenRA.FileFormats.FieldLoader::Load(object, class [OpenRA.FileFormats]OpenRA.FileFormats.MiniYaml)
IL_00d1: br IL_0117
IL_00d6: ldloc.0
IL_00d7: ldfld class [mscorlib]System.Collections.Generic.List`1<class OpenRA.Network.Session/Client> OpenRA.Network.Session::Clients
IL_00dc: ldloc.3
IL_00dd: ldfld class [OpenRA.FileFormats]OpenRA.FileFormats.MiniYaml [OpenRA.FileFormats]OpenRA.FileFormats.MiniYamlNode::Value
IL_00e2: call !!0 class [OpenRA.FileFormats]OpenRA.FileFormats.FieldLoader::Load<class OpenRA.Network.Session/Client> (class [OpenRA.FileFormats]OpenRA.FileFormats.MiniYaml)
IL_00e7: callvirt instance void class [mscorlib]System.Collections.Generic.List`1<class OpenRA.Network.Session/Client>::Add(!0)
IL_00ec: br IL_0117
IL_00f1: ldloc.3
IL_00f2: ldfld class [OpenRA.FileFormats]OpenRA.FileFormats.MiniYaml [OpenRA.FileFormats]OpenRA.FileFormats.MiniYamlNode::Value
IL_00f7: call !!0 class [OpenRA.FileFormats]OpenRA.FileFormats.FieldLoader::Load<class OpenRA.Network.Session/Slot> (class [OpenRA.FileFormats]OpenRA.FileFormats.MiniYaml)
IL_00fc: stloc.s 8
IL_00fe: ldloc.0
IL_00ff: ldfld class [mscorlib]System.Collections.Generic.Dictionary`2<string,class OpenRA.Network.Session/Slot> OpenRA.Network.Session::Slots
IL_0104: ldloc.s 8
IL_0106: ldfld string OpenRA.Network.Session/Slot::PlayerReference
IL_010b: ldloc.s 8
IL_010d: callvirt instance void class [mscorlib]System.Collections.Generic.Dictionary`2<string, class OpenRA.Network.Session/Slot>::Add(!0, !1)
IL_0112: br IL_0117
IL_0117: ldloca.s 2
IL_0119: call instance bool valuetype [mscorlib]System.Collections.Generic.List`1/Enumerator<class [OpenRA.FileFormats]OpenRA.FileFormats.MiniYamlNode>::MoveNext()
IL_011e: brtrue IL_0028
IL_0123: leave IL_0136
} // end .try 0
finally { // 0
IL_0128: ldloca.s 2
IL_012a: constrained. valuetype [mscorlib]System.Collections.Generic.List`1/Enumerator<class [OpenRA.FileFormats]OpenRA.FileFormats.MiniYamlNode>
IL_0130: callvirt instance void class [mscorlib]System.IDisposable::Dispose()
IL_0135: endfinally
} // end handler 0
IL_0136: ldloc.0
IL_0137: stloc.s 9
IL_0139: leave IL_016f
IL_013e: leave IL_016f
} // end .try 1
catch class [mscorlib]System.InvalidOperationException { // 1
IL_0143: pop
IL_0144: ldstr "exception"
IL_0149: ldstr "Session deserialized invalid MiniYaml:\n{0}"
IL_014e: ldc.i4.1
IL_014f: newarr [mscorlib]System.Object
IL_0154: dup
IL_0155: ldc.i4.0
IL_0156: ldarg.0
IL_0157: stelem.ref
IL_0158: call string class [OpenRA.FileFormats]OpenRA.Exts::F(string, object[])
IL_015d: ldc.i4.0
IL_015e: newarr [mscorlib]System.Object
IL_0163: call void class [OpenRA.FileFormats]OpenRA.Log::Write(string, string, object[])
IL_0168: rethrow
IL_016a: leave IL_016f
} // end handler 1
IL_016f: ldloc.s 9
IL_0171: ret
} // end of method Session::Deserialize
// method line 116
.method public hidebysig
instance default class OpenRA.Network.Session/Client ClientWithIndex (int32 clientID) cil managed
{
// Method begins at RVA 0x5150
// Code size 37 (0x25)
.maxstack 5
.locals init (
class OpenRA.Network.Session/'<ClientWithIndex>c__AnonStorey1E' V_0)
IL_0000: newobj instance void class OpenRA.Network.Session/'<ClientWithIndex>c__AnonStorey1E'::'.ctor'()
IL_0005: stloc.0
IL_0006: ldloc.0
IL_0007: ldarg.1
IL_0008: stfld int32 OpenRA.Network.Session/'<ClientWithIndex>c__AnonStorey1E'::clientID
IL_000d: ldarg.0
IL_000e: ldfld class [mscorlib]System.Collections.Generic.List`1<class OpenRA.Network.Session/Client> OpenRA.Network.Session::Clients
IL_0013: ldloc.0
IL_0014: ldftn instance bool class OpenRA.Network.Session/'<ClientWithIndex>c__AnonStorey1E'::'<>m__22'(class OpenRA.Network.Session/Client)
IL_001a: newobj instance void class [System.Core]System.Func`2<class OpenRA.Network.Session/Client, bool>::'.ctor'(object, native int)
IL_001f: call !!0 class [System.Core]System.Linq.Enumerable::SingleOrDefault<class OpenRA.Network.Session/Client> (class [mscorlib]System.Collections.Generic.IEnumerable`1<!!0>, class [System.Core]System.Func`2<!!0,bool>)
IL_0024: ret
} // end of method Session::ClientWithIndex
// method line 117
.method public hidebysig
instance default class OpenRA.Network.Session/Client ClientInSlot (string slot) cil managed
{
// Method begins at RVA 0x5184
// Code size 37 (0x25)
.maxstack 5
.locals init (
class OpenRA.Network.Session/'<ClientInSlot>c__AnonStorey1F' V_0)
IL_0000: newobj instance void class OpenRA.Network.Session/'<ClientInSlot>c__AnonStorey1F'::'.ctor'()
IL_0005: stloc.0
IL_0006: ldloc.0
IL_0007: ldarg.1
IL_0008: stfld string OpenRA.Network.Session/'<ClientInSlot>c__AnonStorey1F'::slot
IL_000d: ldarg.0
IL_000e: ldfld class [mscorlib]System.Collections.Generic.List`1<class OpenRA.Network.Session/Client> OpenRA.Network.Session::Clients
IL_0013: ldloc.0
IL_0014: ldftn instance bool class OpenRA.Network.Session/'<ClientInSlot>c__AnonStorey1F'::'<>m__23'(class OpenRA.Network.Session/Client)
IL_001a: newobj instance void class [System.Core]System.Func`2<class OpenRA.Network.Session/Client, bool>::'.ctor'(object, native int)
IL_001f: call !!0 class [System.Core]System.Linq.Enumerable::SingleOrDefault<class OpenRA.Network.Session/Client> (class [mscorlib]System.Collections.Generic.IEnumerable`1<!!0>, class [System.Core]System.Func`2<!!0,bool>)
IL_0024: ret
} // end of method Session::ClientInSlot
// method line 118
.method public hidebysig
instance default string FirstEmptySlot () cil managed
{
// Method begins at RVA 0x51b8
// Code size 32 (0x20)
.maxstack 5
.locals init (
valuetype [mscorlib]System.Collections.Generic.KeyValuePair`2<string, class OpenRA.Network.Session/Slot> V_0)
IL_0000: ldarg.0
IL_0001: ldfld class [mscorlib]System.Collections.Generic.Dictionary`2<string,class OpenRA.Network.Session/Slot> OpenRA.Network.Session::Slots
IL_0006: ldarg.0
IL_0007: ldftn instance bool class OpenRA.Network.Session::'<FirstEmptySlot>m__24'(valuetype [mscorlib]System.Collections.Generic.KeyValuePair`2<string,class OpenRA.Network.Session/Slot>)
IL_000d: newobj instance void class [System.Core]System.Func`2<valuetype [mscorlib]System.Collections.Generic.KeyValuePair`2<string, class OpenRA.Network.Session/Slot>, bool>::'.ctor'(object, native int)
IL_0012: call !!0 class [System.Core]System.Linq.Enumerable::FirstOrDefault<valuetype [mscorlib]System.Collections.Generic.KeyValuePair`2<string,class OpenRA.Network.Session/Slot>> (class [mscorlib]System.Collections.Generic.IEnumerable`1<!!0>, class [System.Core]System.Func`2<!!0,bool>)
IL_0017: stloc.0
IL_0018: ldloca.s 0
IL_001a: call instance !0 valuetype [mscorlib]System.Collections.Generic.KeyValuePair`2<string, class OpenRA.Network.Session/Slot>::get_Key()
IL_001f: ret
} // end of method Session::FirstEmptySlot
// method line 119
.method public hidebysig specialname
instance default bool get_IsSinglePlayer () cil managed
{
// Method begins at RVA 0x51e4
// Code size 44 (0x2c)
.maxstack 8
IL_0000: ldarg.0
IL_0001: ldfld class [mscorlib]System.Collections.Generic.List`1<class OpenRA.Network.Session/Client> OpenRA.Network.Session::Clients
IL_0006: ldsfld class [System.Core]System.Func`2<class OpenRA.Network.Session/Client,bool> OpenRA.Network.Session::'<>f__am$cache3'
IL_000b: brtrue.s IL_001e
IL_000d: ldnull
IL_000e: ldftn bool class OpenRA.Network.Session::'<get_IsSinglePlayer>m__21'(class OpenRA.Network.Session/Client)
IL_0014: newobj instance void class [System.Core]System.Func`2<class OpenRA.Network.Session/Client, bool>::'.ctor'(object, native int)
IL_0019: stsfld class [System.Core]System.Func`2<class OpenRA.Network.Session/Client,bool> OpenRA.Network.Session::'<>f__am$cache3'
IL_001e: ldsfld class [System.Core]System.Func`2<class OpenRA.Network.Session/Client,bool> OpenRA.Network.Session::'<>f__am$cache3'
IL_0023: call int32 class [System.Core]System.Linq.Enumerable::Count<class OpenRA.Network.Session/Client> (class [mscorlib]System.Collections.Generic.IEnumerable`1<!!0>, class [System.Core]System.Func`2<!!0,bool>)
IL_0028: ldc.i4.1
IL_0029: ceq
IL_002b: ret
} // end of method Session::get_IsSinglePlayer
// method line 120
.method public hidebysig
instance default string Serialize () cil managed
{
// Method begins at RVA 0x5214
// Code size 249 (0xf9)
.maxstack 33
.locals init (
class [mscorlib]System.Collections.Generic.List`1<class [OpenRA.FileFormats]OpenRA.FileFormats.MiniYamlNode> V_0,
valuetype [mscorlib]System.Collections.Generic.List`1/Enumerator<class OpenRA.Network.Session/Client> V_1,
class OpenRA.Network.Session/Client V_2,
valuetype [mscorlib]System.Collections.Generic.Dictionary`2/Enumerator<string, class OpenRA.Network.Session/Slot> V_3,
valuetype [mscorlib]System.Collections.Generic.KeyValuePair`2<string, class OpenRA.Network.Session/Slot> V_4)
IL_0000: newobj instance void class [mscorlib]System.Collections.Generic.List`1<class [OpenRA.FileFormats]OpenRA.FileFormats.MiniYamlNode>::'.ctor'()
IL_0005: stloc.0
IL_0006: ldarg.0
IL_0007: ldfld class [mscorlib]System.Collections.Generic.List`1<class OpenRA.Network.Session/Client> OpenRA.Network.Session::Clients
IL_000c: callvirt instance valuetype [mscorlib]System.Collections.Generic.List`1/Enumerator<!0> class [mscorlib]System.Collections.Generic.List`1<class OpenRA.Network.Session/Client>::GetEnumerator()
IL_0011: stloc.1
.try { // 1
IL_0012: br IL_004e
IL_0017: ldloca.s 1
IL_0019: call instance !0 valuetype [mscorlib]System.Collections.Generic.List`1/Enumerator<class OpenRA.Network.Session/Client>::get_Current()
IL_001e: stloc.2
IL_001f: ldloc.0
IL_0020: ldstr "Client@{0}"
IL_0025: ldc.i4.1
IL_0026: newarr [mscorlib]System.Object
IL_002b: dup
IL_002c: ldc.i4.0
IL_002d: ldloc.2
IL_002e: ldfld int32 OpenRA.Network.Session/Client::Index
IL_0033: box [mscorlib]System.Int32
IL_0038: stelem.ref
IL_0039: call string class [OpenRA.FileFormats]OpenRA.Exts::F(string, object[])
IL_003e: ldloc.2
IL_003f: call class [OpenRA.FileFormats]OpenRA.FileFormats.MiniYaml class [OpenRA.FileFormats]OpenRA.FileFormats.FieldSaver::Save(object)
IL_0044: newobj instance void class [OpenRA.FileFormats]OpenRA.FileFormats.MiniYamlNode::'.ctor'(string, class [OpenRA.FileFormats]OpenRA.FileFormats.MiniYaml)
IL_0049: callvirt instance void class [mscorlib]System.Collections.Generic.List`1<class [OpenRA.FileFormats]OpenRA.FileFormats.MiniYamlNode>::Add(!0)
IL_004e: ldloca.s 1
IL_0050: call instance bool valuetype [mscorlib]System.Collections.Generic.List`1/Enumerator<class OpenRA.Network.Session/Client>::MoveNext()
IL_0055: brtrue IL_0017
IL_005a: leave IL_006d
} // end .try 1
finally { // 1
IL_005f: ldloca.s 1
IL_0061: constrained. valuetype [mscorlib]System.Collections.Generic.List`1/Enumerator<class OpenRA.Network.Session/Client>
IL_0067: callvirt instance void class [mscorlib]System.IDisposable::Dispose()
IL_006c: endfinally
} // end handler 1
IL_006d: ldarg.0
IL_006e: ldfld class [mscorlib]System.Collections.Generic.Dictionary`2<string,class OpenRA.Network.Session/Slot> OpenRA.Network.Session::Slots
IL_0073: callvirt instance valuetype [mscorlib]System.Collections.Generic.Dictionary`2/Enumerator<!0,!1> class [mscorlib]System.Collections.Generic.Dictionary`2<string, class OpenRA.Network.Session/Slot>::GetEnumerator()
IL_0078: stloc.3
.try { // 0
IL_0079: br IL_00b8
IL_007e: ldloca.s 3
IL_0080: call instance valuetype [mscorlib]System.Collections.Generic.KeyValuePair`2<!0,!1> valuetype [mscorlib]System.Collections.Generic.Dictionary`2/Enumerator<string, class OpenRA.Network.Session/Slot>::get_Current()
IL_0085: stloc.s 4
IL_0087: ldloc.0
IL_0088: ldstr "Slot@{0}"
IL_008d: ldc.i4.1
IL_008e: newarr [mscorlib]System.Object
IL_0093: dup
IL_0094: ldc.i4.0
IL_0095: ldloca.s 4
IL_0097: call instance !0 valuetype [mscorlib]System.Collections.Generic.KeyValuePair`2<string, class OpenRA.Network.Session/Slot>::get_Key()
IL_009c: stelem.ref
IL_009d: call string class [OpenRA.FileFormats]OpenRA.Exts::F(string, object[])
IL_00a2: ldloca.s 4
IL_00a4: call instance !1 valuetype [mscorlib]System.Collections.Generic.KeyValuePair`2<string, class OpenRA.Network.Session/Slot>::get_Value()
IL_00a9: call class [OpenRA.FileFormats]OpenRA.FileFormats.MiniYaml class [OpenRA.FileFormats]OpenRA.FileFormats.FieldSaver::Save(object)
IL_00ae: newobj instance void class [OpenRA.FileFormats]OpenRA.FileFormats.MiniYamlNode::'.ctor'(string, class [OpenRA.FileFormats]OpenRA.FileFormats.MiniYaml)
IL_00b3: callvirt instance void class [mscorlib]System.Collections.Generic.List`1<class [OpenRA.FileFormats]OpenRA.FileFormats.MiniYamlNode>::Add(!0)
IL_00b8: ldloca.s 3
IL_00ba: call instance bool valuetype [mscorlib]System.Collections.Generic.Dictionary`2/Enumerator<string, class OpenRA.Network.Session/Slot>::MoveNext()
IL_00bf: brtrue IL_007e
IL_00c4: leave IL_00d7
} // end .try 0
finally { // 0
IL_00c9: ldloca.s 3
IL_00cb: constrained. valuetype [mscorlib]System.Collections.Generic.Dictionary`2/Enumerator<string,class OpenRA.Network.Session/Slot>
IL_00d1: callvirt instance void class [mscorlib]System.IDisposable::Dispose()
IL_00d6: endfinally
} // end handler 0
IL_00d7: ldloc.0
IL_00d8: ldstr "GlobalSettings"
IL_00dd: ldarg.0
IL_00de: ldfld class OpenRA.Network.Session/Global OpenRA.Network.Session::GlobalSettings
IL_00e3: call class [OpenRA.FileFormats]OpenRA.FileFormats.MiniYaml class [OpenRA.FileFormats]OpenRA.FileFormats.FieldSaver::Save(object)
IL_00e8: newobj instance void class [OpenRA.FileFormats]OpenRA.FileFormats.MiniYamlNode::'.ctor'(string, class [OpenRA.FileFormats]OpenRA.FileFormats.MiniYaml)
IL_00ed: callvirt instance void class [mscorlib]System.Collections.Generic.List`1<class [OpenRA.FileFormats]OpenRA.FileFormats.MiniYamlNode>::Add(!0)
IL_00f2: ldloc.0
IL_00f3: call string class [OpenRA.FileFormats]OpenRA.FileFormats.MiniYamlExts::WriteToString(class [mscorlib]System.Collections.Generic.List`1<class [OpenRA.FileFormats]OpenRA.FileFormats.MiniYamlNode>)
IL_00f8: ret
} // end of method Session::Serialize
// method line 121
.method private static hidebysig
default bool '<get_IsSinglePlayer>m__21' (class OpenRA.Network.Session/Client c) cil managed
{
.custom instance void class [mscorlib]System.Runtime.CompilerServices.CompilerGeneratedAttribute::'.ctor'() = (01 00 00 00 ) // ....
// Method begins at RVA 0x5350
// Code size 10 (0xa)
.maxstack 8
IL_0000: ldarg.0
IL_0001: ldfld string OpenRA.Network.Session/Client::Bot
IL_0006: ldnull
IL_0007: ceq
IL_0009: ret
} // end of method Session::<get_IsSinglePlayer>m__21
// method line 122
.method private hidebysig
instance default bool '<FirstEmptySlot>m__24' (valuetype [mscorlib]System.Collections.Generic.KeyValuePair`2<string, class OpenRA.Network.Session/Slot> s) cil managed
{
.custom instance void class [mscorlib]System.Runtime.CompilerServices.CompilerGeneratedAttribute::'.ctor'() = (01 00 00 00 ) // ....
// Method begins at RVA 0x535c
// Code size 37 (0x25)
.maxstack 9
IL_0000: ldarga.s 1
IL_0002: call instance !1 valuetype [mscorlib]System.Collections.Generic.KeyValuePair`2<string, class OpenRA.Network.Session/Slot>::get_Value()
IL_0007: ldfld bool OpenRA.Network.Session/Slot::Closed
IL_000c: brtrue IL_0023
IL_0011: ldarg.0
IL_0012: ldarga.s 1
IL_0014: call instance !0 valuetype [mscorlib]System.Collections.Generic.KeyValuePair`2<string, class OpenRA.Network.Session/Slot>::get_Key()
IL_0019: call instance class OpenRA.Network.Session/Client class OpenRA.Network.Session::ClientInSlot(string)
IL_001e: ldnull
IL_001f: ceq
IL_0021: br.s IL_0024
IL_0023: ldc.i4.0
IL_0024: ret
} // end of method Session::<FirstEmptySlot>m__24
.property instance bool IsSinglePlayer ()
{
.get instance default bool OpenRA.Network.Session::get_IsSinglePlayer ()
}
.class nested public auto ansi sealed ClientState
extends [mscorlib]System.Enum
{
.field public specialname rtspecialname int32 value__
.field public static literal valuetype OpenRA.Network.Session/ClientState NotReady = int32(0x00000000)
.field public static literal valuetype OpenRA.Network.Session/ClientState Ready = int32(0x00000001)
.field public static literal valuetype OpenRA.Network.Session/ClientState Disconnected = int32(0x000003e8)
} // end of class ClientState
.class nested public auto ansi beforefieldinit Client
extends [mscorlib]System.Object
{
.field public int32 Index
.field public valuetype [OpenRA.FileFormats]OpenRA.FileFormats.HSLColor PreferredColor
.field public valuetype [OpenRA.FileFormats]OpenRA.FileFormats.HSLColor Color
.field public string Country
.field public int32 SpawnPoint
.field public string Name
.field public string IpAddress
.field public valuetype OpenRA.Network.Session/ClientState State
.field public int32 Team
.field public string Slot
.field public string Bot
.field public int32 BotControllerClientIndex
.field public bool IsAdmin
.field public int32 Latency
.field public int32 LatencyJitter
.field public int32[] LatencyHistory
// method line 123
.method public hidebysig specialname rtspecialname
instance default void '.ctor' () cil managed
{
// Method begins at RVA 0x5390
// Code size 33 (0x21)
.maxstack 3
IL_0000: ldarg.0
IL_0001: ldc.i4.m1
IL_0002: stfld int32 OpenRA.Network.Session/Client::Latency
IL_0007: ldarg.0
IL_0008: ldc.i4.m1
IL_0009: stfld int32 OpenRA.Network.Session/Client::LatencyJitter
IL_000e: ldarg.0
IL_000f: ldc.i4.0
IL_0010: newarr [mscorlib]System.Int32
IL_0015: stfld int32[] OpenRA.Network.Session/Client::LatencyHistory
IL_001a: ldarg.0
IL_001b: call instance void object::'.ctor'()
IL_0020: ret
} // end of method Client::.ctor
// method line 124
.method public hidebysig specialname
instance default bool get_IsReady () cil managed
{
// Method begins at RVA 0x53c0
// Code size 10 (0xa)
.maxstack 8
IL_0000: ldarg.0
IL_0001: ldfld valuetype OpenRA.Network.Session/ClientState OpenRA.Network.Session/Client::State
IL_0006: ldc.i4.1
IL_0007: ceq
IL_0009: ret
} // end of method Client::get_IsReady
// method line 125
.method public hidebysig specialname
instance default bool get_IsObserver () cil managed
{
// Method begins at RVA 0x53cc
// Code size 10 (0xa)
.maxstack 8
IL_0000: ldarg.0
IL_0001: ldfld string OpenRA.Network.Session/Client::Slot
IL_0006: ldnull
IL_0007: ceq
IL_0009: ret
} // end of method Client::get_IsObserver
.property instance bool IsReady ()
{
.get instance default bool OpenRA.Network.Session/Client::get_IsReady ()
}
.property instance bool IsObserver ()
{
.get instance default bool OpenRA.Network.Session/Client::get_IsObserver ()
}
} // end of class Client
.class nested public auto ansi beforefieldinit Slot
extends [mscorlib]System.Object
{
.field public string PlayerReference
.field public bool Closed
.field public bool AllowBots
.field public bool LockRace
.field public bool LockColor
.field public bool LockTeam
.field public bool LockSpawn
.field public bool Required
// method line 126
.method public hidebysig specialname rtspecialname
instance default void '.ctor' () cil managed
{
// Method begins at RVA 0x53d8
// Code size 7 (0x7)
.maxstack 8
IL_0000: ldarg.0
IL_0001: call instance void object::'.ctor'()
IL_0006: ret
} // end of method Slot::.ctor
} // end of class Slot
.class nested public auto ansi beforefieldinit Global
extends [mscorlib]System.Object
{
.field public string ServerName
.field public string Map
.field public string[] Mods
.field public int32 OrderLatency
.field public int32 RandomSeed
.field public bool FragileAlliances
.field public bool AllowCheats
.field public bool Dedicated
.field public string Difficulty
.field public bool Crates
.field public bool Shroud
.field public bool Fog
.field public bool AllyBuildRadius
.field public int32 StartingCash
.field public string StartingUnitsClass
.field public bool AllowVersionMismatch
.field public string GameUid
// method line 127
.method public hidebysig specialname rtspecialname
instance default void '.ctor' () cil managed
{
// Method begins at RVA 0x53e0
// Code size 105 (0x69)
.maxstack 5
IL_0000: ldarg.0
IL_0001: ldc.i4.1
IL_0002: newarr [mscorlib]System.String
IL_0007: dup
IL_0008: ldc.i4.0
IL_0009: ldstr "ra"
IL_000e: stelem.ref
IL_000f: stfld string[] OpenRA.Network.Session/Global::Mods
IL_0014: ldarg.0
IL_0015: ldc.i4.3
IL_0016: stfld int32 OpenRA.Network.Session/Global::OrderLatency
IL_001b: ldarg.0
IL_001c: ldc.i4.0
IL_001d: stfld int32 OpenRA.Network.Session/Global::RandomSeed
IL_0022: ldarg.0
IL_0023: ldc.i4.0
IL_0024: stfld bool OpenRA.Network.Session/Global::FragileAlliances
IL_0029: ldarg.0
IL_002a: ldc.i4.0
IL_002b: stfld bool OpenRA.Network.Session/Global::AllowCheats
IL_0030: ldarg.0
IL_0031: ldc.i4.1
IL_0032: stfld bool OpenRA.Network.Session/Global::Crates
IL_0037: ldarg.0
IL_0038: ldc.i4.1
IL_0039: stfld bool OpenRA.Network.Session/Global::Shroud
IL_003e: ldarg.0
IL_003f: ldc.i4.1
IL_0040: stfld bool OpenRA.Network.Session/Global::Fog
IL_0045: ldarg.0
IL_0046: ldc.i4.1
IL_0047: stfld bool OpenRA.Network.Session/Global::AllyBuildRadius
IL_004c: ldarg.0
IL_004d: ldc.i4 5000
IL_0052: stfld int32 OpenRA.Network.Session/Global::StartingCash
IL_0057: ldarg.0
IL_0058: ldstr "none"
IL_005d: stfld string OpenRA.Network.Session/Global::StartingUnitsClass
IL_0062: ldarg.0
IL_0063: call instance void object::'.ctor'()
IL_0068: ret
} // end of method Global::.ctor
} // end of class Global
.class nested private auto ansi sealed beforefieldinit '<ClientWithIndex>c__AnonStorey1E'
extends [mscorlib]System.Object
{
.custom instance void class [mscorlib]System.Runtime.CompilerServices.CompilerGeneratedAttribute::'.ctor'() = (01 00 00 00 ) // ....
.field assembly int32 clientID
// method line 2101
.method public hidebysig specialname rtspecialname
instance default void '.ctor' () cil managed
{
// Method begins at RVA 0x2b7dc
// Code size 7 (0x7)
.maxstack 8
IL_0000: ldarg.0
IL_0001: call instance void object::'.ctor'()
IL_0006: ret
} // end of method <ClientWithIndex>c__AnonStorey1E::.ctor
// method line 2102
.method assembly hidebysig
instance default bool '<>m__22' (class OpenRA.Network.Session/Client c) cil managed
{
// Method begins at RVA 0x2b7e4
// Code size 15 (0xf)
.maxstack 8
IL_0000: ldarg.1
IL_0001: ldfld int32 OpenRA.Network.Session/Client::Index
IL_0006: ldarg.0
IL_0007: ldfld int32 OpenRA.Network.Session/'<ClientWithIndex>c__AnonStorey1E'::clientID
IL_000c: ceq
IL_000e: ret
} // end of method <ClientWithIndex>c__AnonStorey1E::<>m__22
} // end of class <ClientWithIndex>c__AnonStorey1E
.class nested private auto ansi sealed beforefieldinit '<ClientInSlot>c__AnonStorey1F'
extends [mscorlib]System.Object
{
.custom instance void class [mscorlib]System.Runtime.CompilerServices.CompilerGeneratedAttribute::'.ctor'() = (01 00 00 00 ) // ....
.field assembly string slot
// method line 2103
.method public hidebysig specialname rtspecialname
instance default void '.ctor' () cil managed
{
// Method begins at RVA 0x2b7f4
// Code size 7 (0x7)
.maxstack 8
IL_0000: ldarg.0
IL_0001: call instance void object::'.ctor'()
IL_0006: ret
} // end of method <ClientInSlot>c__AnonStorey1F::.ctor
// method line 2104
.method assembly hidebysig
instance default bool '<>m__23' (class OpenRA.Network.Session/Client c) cil managed
{
// Method begins at RVA 0x2b7fc
// Code size 18 (0x12)
.maxstack 8
IL_0000: ldarg.1
IL_0001: ldfld string OpenRA.Network.Session/Client::Slot
IL_0006: ldarg.0
IL_0007: ldfld string OpenRA.Network.Session/'<ClientInSlot>c__AnonStorey1F'::slot
IL_000c: call bool string::op_Equality(string, string)
IL_0011: ret
} // end of method <ClientInSlot>c__AnonStorey1F::<>m__23
} // end of class <ClientInSlot>c__AnonStorey1F
} // end of class OpenRA.Network.Session
}
.namespace OpenRA.Network
{
.class public auto ansi sealed ConnectionState
extends [mscorlib]System.Enum
{
.field public specialname rtspecialname int32 value__
.field public static literal valuetype OpenRA.Network.ConnectionState PreConnecting = int32(0x00000000)
.field public static literal valuetype OpenRA.Network.ConnectionState NotConnected = int32(0x00000001)
.field public static literal valuetype OpenRA.Network.ConnectionState Connecting = int32(0x00000002)
.field public static literal valuetype OpenRA.Network.ConnectionState Connected = int32(0x00000003)
} // end of class OpenRA.Network.ConnectionState
}
.namespace OpenRA.Network
{
.class interface public auto ansi abstract IConnection
implements [mscorlib]System.IDisposable {
// method line 128
.method public virtual hidebysig newslot abstract specialname
instance default int32 get_LocalClientId () cil managed
{
// Method begins at RVA 0x0
} // end of method IConnection::get_LocalClientId
// method line 129
.method public virtual hidebysig newslot abstract specialname
instance default valuetype OpenRA.Network.ConnectionState get_ConnectionState () cil managed
{
// Method begins at RVA 0x0
} // end of method IConnection::get_ConnectionState
// method line 130
.method public virtual hidebysig newslot abstract
instance default void Send (int32 frame, class [mscorlib]System.Collections.Generic.List`1<unsigned int8[]> orders) cil managed
{
// Method begins at RVA 0x0
} // end of method IConnection::Send
// method line 131
.method public virtual hidebysig newslot abstract
instance default void SendImmediate (class [mscorlib]System.Collections.Generic.List`1<unsigned int8[]> orders) cil managed
{
// Method begins at RVA 0x0
} // end of method IConnection::SendImmediate
// method line 132
.method public virtual hidebysig newslot abstract
instance default void SendSync (int32 frame, unsigned int8[] syncData) cil managed
{
// Method begins at RVA 0x0
} // end of method IConnection::SendSync
// method line 133
.method public virtual hidebysig newslot abstract
instance default void Receive (class [System.Core]System.Action`2<int32, unsigned int8[]> packetFn) cil managed
{
// Method begins at RVA 0x0
} // end of method IConnection::Receive
.property instance int32 LocalClientId ()
{
.get instance default int32 OpenRA.Network.IConnection::get_LocalClientId ()
}
.property instance valuetype OpenRA.Network.ConnectionState ConnectionState ()
{
.get instance default valuetype OpenRA.Network.ConnectionState OpenRA.Network.IConnection::get_ConnectionState ()
}
} // end of class OpenRA.Network.IConnection
}
.namespace OpenRA.Network
{
.class private auto ansi beforefieldinit EchoConnection
extends [mscorlib]System.Object
implements [mscorlib]System.IDisposable, OpenRA.Network.IConnection {
.field family class [mscorlib]System.Collections.Generic.List`1<valuetype OpenRA.Network.EchoConnection/ReceivedPacket> receivedPackets
// method line 134
.method public hidebysig specialname rtspecialname
instance default void '.ctor' () cil managed
{
// Method begins at RVA 0x5458
// Code size 18 (0x12)
.maxstack 8
IL_0000: ldarg.0
IL_0001: newobj instance void class [mscorlib]System.Collections.Generic.List`1<valuetype OpenRA.Network.EchoConnection/ReceivedPacket>::'.ctor'()
IL_0006: stfld class [mscorlib]System.Collections.Generic.List`1<valuetype OpenRA.Network.EchoConnection/ReceivedPacket> OpenRA.Network.EchoConnection::receivedPackets
IL_000b: ldarg.0
IL_000c: call instance void object::'.ctor'()
IL_0011: ret
} // end of method EchoConnection::.ctor
// method line 135
.method public virtual hidebysig newslot specialname
instance default int32 get_LocalClientId () cil managed
{
// Method begins at RVA 0x546c
// Code size 2 (0x2)
.maxstack 8
IL_0000: ldc.i4.1
IL_0001: ret
} // end of method EchoConnection::get_LocalClientId
// method line 136
.method public virtual hidebysig newslot specialname
instance default valuetype OpenRA.Network.ConnectionState get_ConnectionState () cil managed
{
// Method begins at RVA 0x5470
// Code size 2 (0x2)
.maxstack 8
IL_0000: ldc.i4.0
IL_0001: ret
} // end of method EchoConnection::get_ConnectionState
// method line 137
.method public virtual hidebysig newslot
instance default void Send (int32 frame, class [mscorlib]System.Collections.Generic.List`1<unsigned int8[]> orders) cil managed
{
// Method begins at RVA 0x5474
// Code size 89 (0x59)
.maxstack 16
.locals init (
class [mscorlib]System.IO.MemoryStream V_0,
valuetype [mscorlib]System.Collections.Generic.List`1/Enumerator<unsigned int8[]> V_1,
unsigned int8[] V_2)
IL_0000: newobj instance void class [mscorlib]System.IO.MemoryStream::'.ctor'()
IL_0005: stloc.0
IL_0006: ldloc.0
IL_0007: ldarg.1
IL_0008: call unsigned int8[] class [mscorlib]System.BitConverter::GetBytes(int32)
IL_000d: call void class OpenRA.Network.OrderIO::Write(class [mscorlib]System.IO.Stream, unsigned int8[])
IL_0012: ldarg.2
IL_0013: callvirt instance valuetype [mscorlib]System.Collections.Generic.List`1/Enumerator<!0> class [mscorlib]System.Collections.Generic.List`1<unsigned int8[]>::GetEnumerator()
IL_0018: stloc.1
.try { // 0
IL_0019: br IL_002d
IL_001e: ldloca.s 1
IL_0020: call instance !0 valuetype [mscorlib]System.Collections.Generic.List`1/Enumerator<unsigned int8[]>::get_Current()
IL_0025: stloc.2
IL_0026: ldloc.0
IL_0027: ldloc.2
IL_0028: call void class OpenRA.Network.OrderIO::Write(class [mscorlib]System.IO.Stream, unsigned int8[])
IL_002d: ldloca.s 1
IL_002f: call instance bool valuetype [mscorlib]System.Collections.Generic.List`1/Enumerator<unsigned int8[]>::MoveNext()
IL_0034: brtrue IL_001e
IL_0039: leave IL_004c
} // end .try 0
finally { // 0
IL_003e: ldloca.s 1
IL_0040: constrained. valuetype [mscorlib]System.Collections.Generic.List`1/Enumerator<unsigned int8[]>
IL_0046: callvirt instance void class [mscorlib]System.IDisposable::Dispose()
IL_004b: endfinally
} // end handler 0
IL_004c: ldarg.0
IL_004d: ldloc.0
IL_004e: callvirt instance unsigned int8[] class [mscorlib]System.IO.MemoryStream::ToArray()
IL_0053: callvirt instance void class OpenRA.Network.EchoConnection::Send(unsigned int8[])
IL_0058: ret
} // end of method EchoConnection::Send
// method line 138
.method public virtual hidebysig newslot
instance default void SendImmediate (class [mscorlib]System.Collections.Generic.List`1<unsigned int8[]> orders) cil managed
{
// Method begins at RVA 0x54f8
// Code size 89 (0x59)
.maxstack 16
.locals init (
class [mscorlib]System.IO.MemoryStream V_0,
valuetype [mscorlib]System.Collections.Generic.List`1/Enumerator<unsigned int8[]> V_1,
unsigned int8[] V_2)
IL_0000: newobj instance void class [mscorlib]System.IO.MemoryStream::'.ctor'()
IL_0005: stloc.0
IL_0006: ldloc.0
IL_0007: ldc.i4.0
IL_0008: call unsigned int8[] class [mscorlib]System.BitConverter::GetBytes(int32)
IL_000d: call void class OpenRA.Network.OrderIO::Write(class [mscorlib]System.IO.Stream, unsigned int8[])
IL_0012: ldarg.1
IL_0013: callvirt instance valuetype [mscorlib]System.Collections.Generic.List`1/Enumerator<!0> class [mscorlib]System.Collections.Generic.List`1<unsigned int8[]>::GetEnumerator()
IL_0018: stloc.1
.try { // 0
IL_0019: br IL_002d
IL_001e: ldloca.s 1
IL_0020: call instance !0 valuetype [mscorlib]System.Collections.Generic.List`1/Enumerator<unsigned int8[]>::get_Current()
IL_0025: stloc.2
IL_0026: ldloc.0
IL_0027: ldloc.2
IL_0028: call void class OpenRA.Network.OrderIO::Write(class [mscorlib]System.IO.Stream, unsigned int8[])
IL_002d: ldloca.s 1
IL_002f: call instance bool valuetype [mscorlib]System.Collections.Generic.List`1/Enumerator<unsigned int8[]>::MoveNext()
IL_0034: brtrue IL_001e
IL_0039: leave IL_004c
} // end .try 0
finally { // 0
IL_003e: ldloca.s 1
IL_0040: constrained. valuetype [mscorlib]System.Collections.Generic.List`1/Enumerator<unsigned int8[]>
IL_0046: callvirt instance void class [mscorlib]System.IDisposable::Dispose()
IL_004b: endfinally
} // end handler 0
IL_004c: ldarg.0
IL_004d: ldloc.0
IL_004e: callvirt instance unsigned int8[] class [mscorlib]System.IO.MemoryStream::ToArray()
IL_0053: callvirt instance void class OpenRA.Network.EchoConnection::Send(unsigned int8[])
IL_0058: ret
} // end of method EchoConnection::SendImmediate
// method line 139
.method public virtual hidebysig newslot
instance default void SendSync (int32 frame, unsigned int8[] syncData) cil managed
{
// Method begins at RVA 0x557c
// Code size 38 (0x26)
.maxstack 8
.locals init (
class [mscorlib]System.IO.MemoryStream V_0)
IL_0000: newobj instance void class [mscorlib]System.IO.MemoryStream::'.ctor'()
IL_0005: stloc.0
IL_0006: ldloc.0
IL_0007: ldarg.1
IL_0008: call unsigned int8[] class [mscorlib]System.BitConverter::GetBytes(int32)
IL_000d: call void class OpenRA.Network.OrderIO::Write(class [mscorlib]System.IO.Stream, unsigned int8[])
IL_0012: ldloc.0
IL_0013: ldarg.2
IL_0014: call void class OpenRA.Network.OrderIO::Write(class [mscorlib]System.IO.Stream, unsigned int8[])
IL_0019: ldarg.0
IL_001a: ldloc.0
IL_001b: callvirt instance unsigned int8[] class [mscorlib]System.IO.MemoryStream::ToArray()
IL_0020: callvirt instance void class OpenRA.Network.EchoConnection::Send(unsigned int8[])
IL_0025: ret
} // end of method EchoConnection::SendSync
// method line 140
.method family virtual hidebysig newslot
instance default void Send (unsigned int8[] packet) cil managed
{
// Method begins at RVA 0x55b0
// Code size 76 (0x4c)
.maxstack 7
.locals init (
object V_0,
valuetype OpenRA.Network.EchoConnection/ReceivedPacket V_1)
IL_0000: ldarg.1
IL_0001: ldlen
IL_0002: conv.i4
IL_0003: brtrue IL_000e
IL_0008: newobj instance void class [mscorlib]System.NotImplementedException::'.ctor'()
IL_000d: throw
IL_000e: ldarg.0
IL_000f: stloc.0
IL_0010: ldloc.0
IL_0011: call void class [mscorlib]System.Threading.Monitor::Enter(object)
.try { // 0
IL_0016: ldarg.0
IL_0017: ldfld class [mscorlib]System.Collections.Generic.List`1<valuetype OpenRA.Network.EchoConnection/ReceivedPacket> OpenRA.Network.EchoConnection::receivedPackets
IL_001c: ldloca.s 1
IL_001e: initobj OpenRA.Network.EchoConnection/ReceivedPacket
IL_0024: ldloca.s 1
IL_0026: ldarg.0
IL_0027: callvirt instance int32 class OpenRA.Network.EchoConnection::get_LocalClientId()
IL_002c: stfld int32 OpenRA.Network.EchoConnection/ReceivedPacket::FromClient
IL_0031: ldloca.s 1
IL_0033: ldarg.1
IL_0034: stfld unsigned int8[] OpenRA.Network.EchoConnection/ReceivedPacket::Data
IL_0039: ldloc.1
IL_003a: callvirt instance void class [mscorlib]System.Collections.Generic.List`1<valuetype OpenRA.Network.EchoConnection/ReceivedPacket>::Add(!0)
IL_003f: leave IL_004b
} // end .try 0
finally { // 0
IL_0044: ldloc.0
IL_0045: call void class [mscorlib]System.Threading.Monitor::Exit(object)
IL_004a: endfinally
} // end handler 0
IL_004b: ret
} // end of method EchoConnection::Send
// method line 141
.method public virtual hidebysig newslot
instance default void Receive (class [System.Core]System.Action`2<int32, unsigned int8[]> packetFn) cil managed
{
// Method begins at RVA 0x5624
// Code size 110 (0x6e)
.maxstack 12
.locals init (
class [mscorlib]System.Collections.Generic.List`1<valuetype OpenRA.Network.EchoConnection/ReceivedPacket> V_0,
object V_1,
valuetype [mscorlib]System.Collections.Generic.List`1/Enumerator<valuetype OpenRA.Network.EchoConnection/ReceivedPacket> V_2,
valuetype OpenRA.Network.EchoConnection/ReceivedPacket V_3)
IL_0000: ldarg.0
IL_0001: stloc.1
IL_0002: ldloc.1
IL_0003: call void class [mscorlib]System.Threading.Monitor::Enter(object)
.try { // 1
IL_0008: ldarg.0
IL_0009: ldfld class [mscorlib]System.Collections.Generic.List`1<valuetype OpenRA.Network.EchoConnection/ReceivedPacket> OpenRA.Network.EchoConnection::receivedPackets
IL_000e: stloc.0
IL_000f: ldarg.0
IL_0010: newobj instance void class [mscorlib]System.Collections.Generic.List`1<valuetype OpenRA.Network.EchoConnection/ReceivedPacket>::'.ctor'()
IL_0015: stfld class [mscorlib]System.Collections.Generic.List`1<valuetype OpenRA.Network.EchoConnection/ReceivedPacket> OpenRA.Network.EchoConnection::receivedPackets
IL_001a: leave IL_0026
} // end .try 1
finally { // 1
IL_001f: ldloc.1
IL_0020: call void class [mscorlib]System.Threading.Monitor::Exit(object)
IL_0025: endfinally
} // end handler 1
IL_0026: ldloc.0
IL_0027: callvirt instance valuetype [mscorlib]System.Collections.Generic.List`1/Enumerator<!0> class [mscorlib]System.Collections.Generic.List`1<valuetype OpenRA.Network.EchoConnection/ReceivedPacket>::GetEnumerator()
IL_002c: stloc.2
.try { // 0
IL_002d: br IL_004e
IL_0032: ldloca.s 2
IL_0034: call instance !0 valuetype [mscorlib]System.Collections.Generic.List`1/Enumerator<valuetype OpenRA.Network.EchoConnection/ReceivedPacket>::get_Current()
IL_0039: stloc.3
IL_003a: ldarg.1
IL_003b: ldloca.s 3
IL_003d: ldfld int32 OpenRA.Network.EchoConnection/ReceivedPacket::FromClient
IL_0042: ldloca.s 3
IL_0044: ldfld unsigned int8[] OpenRA.Network.EchoConnection/ReceivedPacket::Data
IL_0049: callvirt instance void class [System.Core]System.Action`2<int32, unsigned int8[]>::Invoke(!0, !1)
IL_004e: ldloca.s 2
IL_0050: call instance bool valuetype [mscorlib]System.Collections.Generic.List`1/Enumerator<valuetype OpenRA.Network.EchoConnection/ReceivedPacket>::MoveNext()
IL_0055: brtrue IL_0032
IL_005a: leave IL_006d
} // end .try 0
finally { // 0
IL_005f: ldloca.s 2
IL_0061: constrained. valuetype [mscorlib]System.Collections.Generic.List`1/Enumerator<valuetype OpenRA.Network.EchoConnection/ReceivedPacket>
IL_0067: callvirt instance void class [mscorlib]System.IDisposable::Dispose()
IL_006c: endfinally
} // end handler 0
IL_006d: ret
} // end of method EchoConnection::Receive
// method line 142
.method public virtual hidebysig newslot
instance default void Dispose () cil managed
{
// Method begins at RVA 0x56d4
// Code size 1 (0x1)
.maxstack 8
IL_0000: ret
} // end of method EchoConnection::Dispose
.property instance int32 LocalClientId ()
{
.get instance default int32 OpenRA.Network.EchoConnection::get_LocalClientId ()
}
.property instance valuetype OpenRA.Network.ConnectionState ConnectionState ()
{
.get instance default valuetype OpenRA.Network.ConnectionState OpenRA.Network.EchoConnection::get_ConnectionState ()
}
.class nested family sequential ansi sealed beforefieldinit ReceivedPacket
extends [mscorlib]System.ValueType
{
.field public int32 FromClient
.field public unsigned int8[] Data
} // end of class ReceivedPacket
} // end of class OpenRA.Network.EchoConnection
}
.namespace OpenRA.Network
{
.class private auto ansi beforefieldinit NetworkConnection
extends OpenRA.Network.EchoConnection
{
.field private class [System]System.Net.Sockets.TcpClient socket
.field private int32 clientId
.field private valuetype OpenRA.Network.ConnectionState connectionState
.field private class [mscorlib]System.Threading.Thread t
.field private class [mscorlib]System.Collections.Generic.List`1<unsigned int8[]> queuedSyncPackets
.field private bool disposed
// method line 143
.method public hidebysig specialname rtspecialname
instance default void '.ctor' (string host, int32 port) cil managed
{
// Method begins at RVA 0x56d8
// Code size 102 (0x66)
.maxstack 6
.locals init (
class OpenRA.Network.NetworkConnection/'<NetworkConnection>c__AnonStorey20' V_0,
class [mscorlib]System.Threading.Thread V_1)
IL_0000: newobj instance void class OpenRA.Network.NetworkConnection/'<NetworkConnection>c__AnonStorey20'::'.ctor'()
IL_0005: stloc.0
IL_0006: ldloc.0
IL_0007: ldarg.1
IL_0008: stfld string OpenRA.Network.NetworkConnection/'<NetworkConnection>c__AnonStorey20'::host
IL_000d: ldloc.0
IL_000e: ldarg.2
IL_000f: stfld int32 OpenRA.Network.NetworkConnection/'<NetworkConnection>c__AnonStorey20'::port
IL_0014: ldarg.0
IL_0015: ldc.i4.2
IL_0016: stfld valuetype OpenRA.Network.ConnectionState OpenRA.Network.NetworkConnection::connectionState
IL_001b: ldarg.0
IL_001c: newobj instance void class [mscorlib]System.Collections.Generic.List`1<unsigned int8[]>::'.ctor'()
IL_0021: stfld class [mscorlib]System.Collections.Generic.List`1<unsigned int8[]> OpenRA.Network.NetworkConnection::queuedSyncPackets
IL_0026: ldarg.0
IL_0027: ldc.i4.0
IL_0028: stfld bool OpenRA.Network.NetworkConnection::disposed
IL_002d: ldarg.0
IL_002e: call instance void class OpenRA.Network.EchoConnection::'.ctor'()
IL_0033: ldloc.0
IL_0034: ldarg.0
IL_0035: stfld class OpenRA.Network.NetworkConnection OpenRA.Network.NetworkConnection/'<NetworkConnection>c__AnonStorey20'::'<>f__this'
IL_003a: ldarg.0
IL_003b: ldloc.0
IL_003c: ldftn instance void class OpenRA.Network.NetworkConnection/'<NetworkConnection>c__AnonStorey20'::'<>m__25'(object)
IL_0042: newobj instance void class [mscorlib]System.Threading.ParameterizedThreadStart::'.ctor'(object, native int)
IL_0047: newobj instance void class [mscorlib]System.Threading.Thread::'.ctor'(class [mscorlib]System.Threading.ParameterizedThreadStart)
IL_004c: stloc.1
IL_004d: ldloc.1
IL_004e: ldc.i4.1
IL_004f: callvirt instance void class [mscorlib]System.Threading.Thread::set_IsBackground(bool)
IL_0054: ldloc.1
IL_0055: stfld class [mscorlib]System.Threading.Thread OpenRA.Network.NetworkConnection::t
IL_005a: ldarg.0
IL_005b: ldfld class [mscorlib]System.Threading.Thread OpenRA.Network.NetworkConnection::t
IL_0060: callvirt instance void class [mscorlib]System.Threading.Thread::Start()
IL_0065: ret
} // end of method NetworkConnection::.ctor
// method line 144
.method public virtual hidebysig specialname
instance default int32 get_LocalClientId () cil managed
{
// Method begins at RVA 0x574c
// Code size 7 (0x7)
.maxstack 8
IL_0000: ldarg.0
IL_0001: ldfld int32 OpenRA.Network.NetworkConnection::clientId
IL_0006: ret
} // end of method NetworkConnection::get_LocalClientId
// method line 145
.method public virtual hidebysig specialname
instance default valuetype OpenRA.Network.ConnectionState get_ConnectionState () cil managed
{
// Method begins at RVA 0x5754
// Code size 7 (0x7)
.maxstack 8
IL_0000: ldarg.0
IL_0001: ldfld valuetype OpenRA.Network.ConnectionState OpenRA.Network.NetworkConnection::connectionState
IL_0006: ret
} // end of method NetworkConnection::get_ConnectionState
// method line 146
.method public virtual hidebysig
instance default void SendSync (int32 frame, unsigned int8[] syncData) cil managed
{
// Method begins at RVA 0x575c
// Code size 43 (0x2b)
.maxstack 8
.locals init (
class [mscorlib]System.IO.MemoryStream V_0)
IL_0000: newobj instance void class [mscorlib]System.IO.MemoryStream::'.ctor'()
IL_0005: stloc.0
IL_0006: ldloc.0
IL_0007: ldarg.1
IL_0008: call unsigned int8[] class [mscorlib]System.BitConverter::GetBytes(int32)
IL_000d: call void class OpenRA.Network.OrderIO::Write(class [mscorlib]System.IO.Stream, unsigned int8[])
IL_0012: ldloc.0
IL_0013: ldarg.2
IL_0014: call void class OpenRA.Network.OrderIO::Write(class [mscorlib]System.IO.Stream, unsigned int8[])
IL_0019: ldarg.0
IL_001a: ldfld class [mscorlib]System.Collections.Generic.List`1<unsigned int8[]> OpenRA.Network.NetworkConnection::queuedSyncPackets
IL_001f: ldloc.0
IL_0020: callvirt instance unsigned int8[] class [mscorlib]System.IO.MemoryStream::ToArray()
IL_0025: callvirt instance void class [mscorlib]System.Collections.Generic.List`1<unsigned int8[]>::Add(!0)
IL_002a: ret
} // end of method NetworkConnection::SendSync
// method line 147
.method family virtual hidebysig
instance default void Send (unsigned int8[] packet) cil managed
{
// Method begins at RVA 0x5794
// Code size 170 (0xaa)
.maxstack 25
.locals init (
class [mscorlib]System.IO.MemoryStream V_0,
valuetype [mscorlib]System.Collections.Generic.List`1/Enumerator<unsigned int8[]> V_1,
unsigned int8[] V_2)
IL_0000: ldarg.0
IL_0001: ldarg.1
IL_0002: call instance void class OpenRA.Network.EchoConnection::Send(unsigned int8[])
.try { // 1
IL_0007: newobj instance void class [mscorlib]System.IO.MemoryStream::'.ctor'()
IL_000c: stloc.0
IL_000d: ldloc.0
IL_000e: ldarg.1
IL_000f: ldlen
IL_0010: conv.i4
IL_0011: call unsigned int8[] class [mscorlib]System.BitConverter::GetBytes(int32)
IL_0016: call void class OpenRA.Network.OrderIO::Write(class [mscorlib]System.IO.Stream, unsigned int8[])
IL_001b: ldloc.0
IL_001c: ldarg.1
IL_001d: call void class OpenRA.Network.OrderIO::Write(class [mscorlib]System.IO.Stream, unsigned int8[])
IL_0022: ldarg.0
IL_0023: ldfld class [mscorlib]System.Collections.Generic.List`1<unsigned int8[]> OpenRA.Network.NetworkConnection::queuedSyncPackets
IL_0028: callvirt instance valuetype [mscorlib]System.Collections.Generic.List`1/Enumerator<!0> class [mscorlib]System.Collections.Generic.List`1<unsigned int8[]>::GetEnumerator()
IL_002d: stloc.1
.try { // 0
IL_002e: br IL_0057
IL_0033: ldloca.s 1
IL_0035: call instance !0 valuetype [mscorlib]System.Collections.Generic.List`1/Enumerator<unsigned int8[]>::get_Current()
IL_003a: stloc.2
IL_003b: ldloc.0
IL_003c: ldloc.2
IL_003d: ldlen
IL_003e: conv.i4
IL_003f: call unsigned int8[] class [mscorlib]System.BitConverter::GetBytes(int32)
IL_0044: call void class OpenRA.Network.OrderIO::Write(class [mscorlib]System.IO.Stream, unsigned int8[])
IL_0049: ldloc.0
IL_004a: ldloc.2
IL_004b: call void class OpenRA.Network.OrderIO::Write(class [mscorlib]System.IO.Stream, unsigned int8[])
IL_0050: ldarg.0
IL_0051: ldloc.2
IL_0052: call instance void class OpenRA.Network.EchoConnection::Send(unsigned int8[])
IL_0057: ldloca.s 1
IL_0059: call instance bool valuetype [mscorlib]System.Collections.Generic.List`1/Enumerator<unsigned int8[]>::MoveNext()
IL_005e: brtrue IL_0033
IL_0063: leave IL_0076
} // end .try 0
finally { // 0
IL_0068: ldloca.s 1
IL_006a: constrained. valuetype [mscorlib]System.Collections.Generic.List`1/Enumerator<unsigned int8[]>
IL_0070: callvirt instance void class [mscorlib]System.IDisposable::Dispose()
IL_0075: endfinally
} // end handler 0
IL_0076: ldarg.0
IL_0077: ldfld class [mscorlib]System.Collections.Generic.List`1<unsigned int8[]> OpenRA.Network.NetworkConnection::queuedSyncPackets
IL_007c: callvirt instance void class [mscorlib]System.Collections.Generic.List`1<unsigned int8[]>::Clear()
IL_0081: ldloc.0
IL_0082: ldarg.0
IL_0083: ldfld class [System]System.Net.Sockets.TcpClient OpenRA.Network.NetworkConnection::socket
IL_0088: callvirt instance class [System]System.Net.Sockets.NetworkStream class [System]System.Net.Sockets.TcpClient::GetStream()
IL_008d: callvirt instance void class [mscorlib]System.IO.MemoryStream::WriteTo(class [mscorlib]System.IO.Stream)
IL_0092: leave IL_00a9
} // end .try 1
catch class [System]System.Net.Sockets.SocketException { // 1
IL_0097: pop
IL_0098: leave IL_00a9
} // end handler 1
catch class [mscorlib]System.ObjectDisposedException { // 2
IL_009d: pop
IL_009e: leave IL_00a9
} // end handler 2
catch class [mscorlib]System.InvalidOperationException { // 3
IL_00a3: pop
IL_00a4: leave IL_00a9
} // end handler 3
IL_00a9: ret
} // end of method NetworkConnection::Send
// method line 148
.method public virtual hidebysig
instance default void Dispose () cil managed
{
// Method begins at RVA 0x58b0
// Code size 119 (0x77)
.maxstack 11
.locals init (
class OpenRA.Support.PerfSample V_0)
IL_0000: ldarg.0
IL_0001: ldfld bool OpenRA.Network.NetworkConnection::disposed
IL_0006: brfalse IL_000c
IL_000b: ret
IL_000c: ldarg.0
IL_000d: ldc.i4.1
IL_000e: stfld bool OpenRA.Network.NetworkConnection::disposed
IL_0013: ldarg.0
IL_0014: call void class [mscorlib]System.GC::SuppressFinalize(object)
IL_0019: ldarg.0
IL_001a: ldfld class [mscorlib]System.Threading.Thread OpenRA.Network.NetworkConnection::t
IL_001f: callvirt instance void class [mscorlib]System.Threading.Thread::Abort()
IL_0024: ldarg.0
IL_0025: ldfld class [System]System.Net.Sockets.TcpClient OpenRA.Network.NetworkConnection::socket
IL_002a: brfalse IL_003f
IL_002f: ldarg.0
IL_0030: ldfld class [System]System.Net.Sockets.TcpClient OpenRA.Network.NetworkConnection::socket
IL_0035: callvirt instance class [System]System.Net.Sockets.Socket class [System]System.Net.Sockets.TcpClient::get_Client()
IL_003a: callvirt instance void class [System]System.Net.Sockets.Socket::Close()
IL_003f: ldstr "Thread.Join"
IL_0044: newobj instance void class OpenRA.Support.PerfSample::'.ctor'(string)
IL_0049: stloc.0
.try { // 0
IL_004a: ldarg.0
IL_004b: ldfld class [mscorlib]System.Threading.Thread OpenRA.Network.NetworkConnection::t
IL_0050: ldc.i4 1000
IL_0055: callvirt instance bool class [mscorlib]System.Threading.Thread::Join(int32)
IL_005a: brtrue IL_0064
IL_005f: leave IL_0076
IL_0064: leave IL_0076
} // end .try 0
finally { // 0
IL_0069: ldloc.0
IL_006a: brfalse IL_0075
IL_006f: ldloc.0
IL_0070: callvirt instance void class [mscorlib]System.IDisposable::Dispose()
IL_0075: endfinally
} // end handler 0
IL_0076: ret
} // end of method NetworkConnection::Dispose
// method line 149
.method family virtual hidebysig
instance default void Finalize () cil managed
{
// Method begins at RVA 0x5950
// Code size 19 (0x13)
.maxstack 4
.try { // 0
IL_0000: ldarg.0
IL_0001: callvirt instance void class OpenRA.Network.EchoConnection::Dispose()
IL_0006: leave IL_0012
} // end .try 0
finally { // 0
IL_000b: ldarg.0
IL_000c: call instance void object::Finalize()
IL_0011: endfinally
} // end handler 0
IL_0012: ret
} // end of method NetworkConnection::Finalize
.property instance int32 LocalClientId ()
{
.get instance default int32 OpenRA.Network.NetworkConnection::get_LocalClientId ()
}
.property instance valuetype OpenRA.Network.ConnectionState ConnectionState ()
{
.get instance default valuetype OpenRA.Network.ConnectionState OpenRA.Network.NetworkConnection::get_ConnectionState ()
}
.class nested private auto ansi sealed beforefieldinit '<NetworkConnection>c__AnonStorey20'
extends [mscorlib]System.Object
{
.custom instance void class [mscorlib]System.Runtime.CompilerServices.CompilerGeneratedAttribute::'.ctor'() = (01 00 00 00 ) // ....
.field assembly string host
.field assembly int32 port
.field assembly class OpenRA.Network.NetworkConnection '<>f__this'
// method line 2105
.method public hidebysig specialname rtspecialname
instance default void '.ctor' () cil managed
{
// Method begins at RVA 0x2b810
// Code size 7 (0x7)
.maxstack 8
IL_0000: ldarg.0
IL_0001: call instance void object::'.ctor'()
IL_0006: ret
} // end of method <NetworkConnection>c__AnonStorey20::.ctor
// method line 2106
.method assembly hidebysig
instance default void '<>m__25' (object _) cil managed
{
// Method begins at RVA 0x2b818
// Code size 331 (0x14b)
.maxstack 20
.locals init (
class [mscorlib]System.IO.BinaryReader V_0,
int32 V_1,
int32 V_2,
int32 V_3,
unsigned int8[] V_4,
object V_5,
valuetype OpenRA.Network.EchoConnection/ReceivedPacket V_6)
.try { // 2
.try { // 1
IL_0000: ldarg.0
IL_0001: ldfld class OpenRA.Network.NetworkConnection OpenRA.Network.NetworkConnection/'<NetworkConnection>c__AnonStorey20'::'<>f__this'
IL_0006: ldarg.0
IL_0007: ldfld string OpenRA.Network.NetworkConnection/'<NetworkConnection>c__AnonStorey20'::host
IL_000c: ldarg.0
IL_000d: ldfld int32 OpenRA.Network.NetworkConnection/'<NetworkConnection>c__AnonStorey20'::port
IL_0012: newobj instance void class [System]System.Net.Sockets.TcpClient::'.ctor'(string, int32)
IL_0017: stfld class [System]System.Net.Sockets.TcpClient OpenRA.Network.NetworkConnection::socket
IL_001c: ldarg.0
IL_001d: ldfld class OpenRA.Network.NetworkConnection OpenRA.Network.NetworkConnection/'<NetworkConnection>c__AnonStorey20'::'<>f__this'
IL_0022: ldfld class [System]System.Net.Sockets.TcpClient OpenRA.Network.NetworkConnection::socket
IL_0027: ldc.i4.1
IL_0028: callvirt instance void class [System]System.Net.Sockets.TcpClient::set_NoDelay(bool)
IL_002d: ldarg.0
IL_002e: ldfld class OpenRA.Network.NetworkConnection OpenRA.Network.NetworkConnection/'<NetworkConnection>c__AnonStorey20'::'<>f__this'
IL_0033: ldfld class [System]System.Net.Sockets.TcpClient OpenRA.Network.NetworkConnection::socket
IL_0038: callvirt instance class [System]System.Net.Sockets.NetworkStream class [System]System.Net.Sockets.TcpClient::GetStream()
IL_003d: newobj instance void class [mscorlib]System.IO.BinaryReader::'.ctor'(class [mscorlib]System.IO.Stream)
IL_0042: stloc.0
IL_0043: ldloc.0
IL_0044: callvirt instance int32 class [mscorlib]System.IO.BinaryReader::ReadInt32()
IL_0049: stloc.1
IL_004a: ldsfld int32 OpenRA.Server.ProtocolVersion::Version
IL_004f: ldloc.1
IL_0050: beq IL_0081
IL_0055: ldstr "Protocol version mismatch. Server={0} Client={1}"
IL_005a: ldc.i4.2
IL_005b: newarr [mscorlib]System.Object
IL_0060: dup
IL_0061: ldc.i4.0
IL_0062: ldloc.1
IL_0063: box [mscorlib]System.Int32
IL_0068: stelem.ref
IL_0069: dup
IL_006a: ldc.i4.1
IL_006b: ldsfld int32 OpenRA.Server.ProtocolVersion::Version
IL_0070: box [mscorlib]System.Int32
IL_0075: stelem.ref
IL_0076: call string class [OpenRA.FileFormats]OpenRA.Exts::F(string, object[])
IL_007b: newobj instance void class [mscorlib]System.InvalidOperationException::'.ctor'(string)
IL_0080: throw
IL_0081: ldarg.0
IL_0082: ldfld class OpenRA.Network.NetworkConnection OpenRA.Network.NetworkConnection/'<NetworkConnection>c__AnonStorey20'::'<>f__this'
IL_0087: ldloc.0
IL_0088: callvirt instance int32 class [mscorlib]System.IO.BinaryReader::ReadInt32()
IL_008d: stfld int32 OpenRA.Network.NetworkConnection::clientId
IL_0092: ldarg.0
IL_0093: ldfld class OpenRA.Network.NetworkConnection OpenRA.Network.NetworkConnection/'<NetworkConnection>c__AnonStorey20'::'<>f__this'
IL_0098: ldc.i4.3
IL_0099: stfld valuetype OpenRA.Network.ConnectionState OpenRA.Network.NetworkConnection::connectionState
IL_009e: br IL_010d
IL_00a3: ldloc.0
IL_00a4: callvirt instance int32 class [mscorlib]System.IO.BinaryReader::ReadInt32()
IL_00a9: stloc.2
IL_00aa: ldloc.0
IL_00ab: callvirt instance int32 class [mscorlib]System.IO.BinaryReader::ReadInt32()
IL_00b0: stloc.3
IL_00b1: ldloc.0
IL_00b2: ldloc.2
IL_00b3: callvirt instance unsigned int8[] class [mscorlib]System.IO.BinaryReader::ReadBytes(int32)
IL_00b8: stloc.s 4
IL_00ba: ldloc.2
IL_00bb: brtrue IL_00c6
IL_00c0: newobj instance void class [mscorlib]System.NotImplementedException::'.ctor'()
IL_00c5: throw
IL_00c6: ldarg.0
IL_00c7: ldfld class OpenRA.Network.NetworkConnection OpenRA.Network.NetworkConnection/'<NetworkConnection>c__AnonStorey20'::'<>f__this'
IL_00cc: stloc.s 5
IL_00ce: ldloc.s 5
IL_00d0: call void class [mscorlib]System.Threading.Monitor::Enter(object)
.try { // 0
IL_00d5: ldarg.0
IL_00d6: ldfld class OpenRA.Network.NetworkConnection OpenRA.Network.NetworkConnection/'<NetworkConnection>c__AnonStorey20'::'<>f__this'
IL_00db: ldfld class [mscorlib]System.Collections.Generic.List`1<valuetype OpenRA.Network.EchoConnection/ReceivedPacket> OpenRA.Network.EchoConnection::receivedPackets
IL_00e0: ldloca.s 6
IL_00e2: initobj OpenRA.Network.EchoConnection/ReceivedPacket
IL_00e8: ldloca.s 6
IL_00ea: ldloc.3
IL_00eb: stfld int32 OpenRA.Network.EchoConnection/ReceivedPacket::FromClient
IL_00f0: ldloca.s 6
IL_00f2: ldloc.s 4
IL_00f4: stfld unsigned int8[] OpenRA.Network.EchoConnection/ReceivedPacket::Data
IL_00f9: ldloc.s 6
IL_00fb: callvirt instance void class [mscorlib]System.Collections.Generic.List`1<valuetype OpenRA.Network.EchoConnection/ReceivedPacket>::Add(!0)
IL_0100: leave IL_010d
} // end .try 0
finally { // 0
IL_0105: ldloc.s 5
IL_0107: call void class [mscorlib]System.Threading.Monitor::Exit(object)
IL_010c: endfinally
} // end handler 0
IL_010d: br IL_00a3
IL_0112: leave IL_014a
} // end .try 1
catch class [mscorlib]System.Object { // 1
IL_0117: pop
IL_0118: leave IL_014a
} // end handler 1
} // end .try 2
finally { // 2
IL_011d: ldarg.0
IL_011e: ldfld class OpenRA.Network.NetworkConnection OpenRA.Network.NetworkConnection/'<NetworkConnection>c__AnonStorey20'::'<>f__this'
IL_0123: ldc.i4.1
IL_0124: stfld valuetype OpenRA.Network.ConnectionState OpenRA.Network.NetworkConnection::connectionState
IL_0129: ldarg.0
IL_012a: ldfld class OpenRA.Network.NetworkConnection OpenRA.Network.NetworkConnection/'<NetworkConnection>c__AnonStorey20'::'<>f__this'
IL_012f: ldfld class [System]System.Net.Sockets.TcpClient OpenRA.Network.NetworkConnection::socket
IL_0134: brfalse IL_0149
IL_0139: ldarg.0
IL_013a: ldfld class OpenRA.Network.NetworkConnection OpenRA.Network.NetworkConnection/'<NetworkConnection>c__AnonStorey20'::'<>f__this'
IL_013f: ldfld class [System]System.Net.Sockets.TcpClient OpenRA.Network.NetworkConnection::socket
IL_0144: callvirt instance void class [System]System.Net.Sockets.TcpClient::Close()
IL_0149: endfinally
} // end handler 2
IL_014a: ret
} // end of method <NetworkConnection>c__AnonStorey20::<>m__25
} // end of class <NetworkConnection>c__AnonStorey20
} // end of class OpenRA.Network.NetworkConnection
}
.namespace OpenRA.Network
{
.class public auto ansi beforefieldinit Replay
extends [mscorlib]System.Object
{
.field public initonly string Filename
.field public initonly int32 Duration
.field public initonly class OpenRA.Network.Session LobbyInfo
// method line 150
.method public hidebysig specialname rtspecialname
instance default void '.ctor' (string filename) cil managed
{
// Method begins at RVA 0x598c
// Code size 110 (0x6e)
.maxstack 10
.locals init (
class OpenRA.Network.Replay/'<Replay>c__AnonStorey21' V_0,
class OpenRA.Network.ReplayConnection V_1)
IL_0000: newobj instance void class OpenRA.Network.Replay/'<Replay>c__AnonStorey21'::'.ctor'()
IL_0005: stloc.0
IL_0006: ldarg.0
IL_0007: call instance void object::'.ctor'()
IL_000c: ldarg.0
IL_000d: ldarg.1
IL_000e: stfld string OpenRA.Network.Replay::Filename
IL_0013: ldloc.0
IL_0014: ldc.i4.0
IL_0015: stfld int32 OpenRA.Network.Replay/'<Replay>c__AnonStorey21'::lastFrame
IL_001a: ldloc.0
IL_001b: ldc.i4.0
IL_001c: stfld bool OpenRA.Network.Replay/'<Replay>c__AnonStorey21'::hasSeenGameStart
IL_0021: ldloc.0
IL_0022: ldnull
IL_0023: stfld class OpenRA.Network.Session OpenRA.Network.Replay/'<Replay>c__AnonStorey21'::lobbyInfo
IL_0028: ldarg.1
IL_0029: newobj instance void class OpenRA.Network.ReplayConnection::'.ctor'(string)
IL_002e: stloc.1
.try { // 0
IL_002f: ldloc.1
IL_0030: ldloc.0
IL_0031: ldftn instance void class OpenRA.Network.Replay/'<Replay>c__AnonStorey21'::'<>m__26'(int32, unsigned int8[])
IL_0037: newobj instance void class [System.Core]System.Action`2<int32, unsigned int8[]>::'.ctor'(object, native int)
IL_003c: callvirt instance void class OpenRA.Network.ReplayConnection::Receive(class [System.Core]System.Action`2<int32,unsigned int8[]>)
IL_0041: leave IL_0053
} // end .try 0
finally { // 0
IL_0046: ldloc.1
IL_0047: brfalse IL_0052
IL_004c: ldloc.1
IL_004d: callvirt instance void class [mscorlib]System.IDisposable::Dispose()
IL_0052: endfinally
} // end handler 0
IL_0053: ldarg.0
IL_0054: ldloc.0
IL_0055: ldfld int32 OpenRA.Network.Replay/'<Replay>c__AnonStorey21'::lastFrame
IL_005a: ldc.i4.3
IL_005b: mul
IL_005c: stfld int32 OpenRA.Network.Replay::Duration
IL_0061: ldarg.0
IL_0062: ldloc.0
IL_0063: ldfld class OpenRA.Network.Session OpenRA.Network.Replay/'<Replay>c__AnonStorey21'::lobbyInfo
IL_0068: stfld class OpenRA.Network.Session OpenRA.Network.Replay::LobbyInfo
IL_006d: ret
} // end of method Replay::.ctor
// method line 151
.method public hidebysig
instance default class OpenRA.Map Map () cil managed
{
// Method begins at RVA 0x5a24
// Code size 70 (0x46)
.maxstack 11
.locals init (
string V_0)
IL_0000: ldarg.0
IL_0001: ldfld class OpenRA.Network.Session OpenRA.Network.Replay::LobbyInfo
IL_0006: brtrue IL_000d
IL_000b: ldnull
IL_000c: ret
IL_000d: ldarg.0
IL_000e: ldfld class OpenRA.Network.Session OpenRA.Network.Replay::LobbyInfo
IL_0013: ldfld class OpenRA.Network.Session/Global OpenRA.Network.Session::GlobalSettings
IL_0018: ldfld string OpenRA.Network.Session/Global::Map
IL_001d: stloc.0
IL_001e: ldsfld class OpenRA.ModData OpenRA.Game::modData
IL_0023: callvirt instance class [mscorlib]System.Collections.Generic.Dictionary`2<string,class OpenRA.Map> class OpenRA.ModData::get_AvailableMaps()
IL_0028: ldloc.0
IL_0029: callvirt instance bool class [mscorlib]System.Collections.Generic.Dictionary`2<string, class OpenRA.Map>::ContainsKey(!0)
IL_002e: brtrue IL_0035
IL_0033: ldnull
IL_0034: ret
IL_0035: ldsfld class OpenRA.ModData OpenRA.Game::modData
IL_003a: callvirt instance class [mscorlib]System.Collections.Generic.Dictionary`2<string,class OpenRA.Map> class OpenRA.ModData::get_AvailableMaps()
IL_003f: ldloc.0
IL_0040: callvirt instance !1 class [mscorlib]System.Collections.Generic.Dictionary`2<string, class OpenRA.Map>::get_Item(!0)
IL_0045: ret
} // end of method Replay::Map
.class nested private auto ansi sealed beforefieldinit '<Replay>c__AnonStorey21'
extends [mscorlib]System.Object
{
.custom instance void class [mscorlib]System.Runtime.CompilerServices.CompilerGeneratedAttribute::'.ctor'() = (01 00 00 00 ) // ....
.field assembly bool hasSeenGameStart
.field assembly class OpenRA.Network.Session lobbyInfo
.field assembly int32 lastFrame
// method line 2107
.method public hidebysig specialname rtspecialname
instance default void '.ctor' () cil managed
{
// Method begins at RVA 0x2b9bc
// Code size 7 (0x7)
.maxstack 8
IL_0000: ldarg.0
IL_0001: call instance void object::'.ctor'()
IL_0006: ret
} // end of method <Replay>c__AnonStorey21::.ctor
// method line 2108
.method assembly hidebysig
instance default void '<>m__26' (int32 client, unsigned int8[] packet) cil managed
{
// Method begins at RVA 0x2b9c4
// Code size 222 (0xde)
.maxstack 17
.locals init (
int32 V_0,
class [mscorlib]System.Collections.Generic.List`1<class OpenRA.Order> V_1,
valuetype [mscorlib]System.Collections.Generic.List`1/Enumerator<class OpenRA.Order> V_2,
class OpenRA.Order V_3)
IL_0000: ldarg.2
IL_0001: ldc.i4.0
IL_0002: call int32 class [mscorlib]System.BitConverter::ToInt32(unsigned int8[], int32)
IL_0007: stloc.0
IL_0008: ldarg.2
IL_0009: ldlen
IL_000a: conv.i4
IL_000b: ldc.i4.5
IL_000c: bne.un IL_001f
IL_0011: ldarg.2
IL_0012: ldc.i4.4
IL_0013: ldelem.u1
IL_0014: ldc.i4 191
IL_0019: bne.un IL_001f
IL_001e: ret
IL_001f: ldarg.2
IL_0020: ldlen
IL_0021: conv.i4
IL_0022: ldc.i4.5
IL_0023: blt IL_0033
IL_0028: ldarg.2
IL_0029: ldc.i4.4
IL_002a: ldelem.u1
IL_002b: ldc.i4.s 0x65
IL_002d: bne.un IL_0033
IL_0032: ret
IL_0033: ldloc.0
IL_0034: brtrue IL_00cb
IL_0039: ldarg.2
IL_003a: ldnull
IL_003b: call class [mscorlib]System.Collections.Generic.List`1<class OpenRA.Order> class OpenRA.Network.OrderIO::ToOrderList(unsigned int8[], class OpenRA.World)
IL_0040: stloc.1
IL_0041: ldloc.1
IL_0042: callvirt instance valuetype [mscorlib]System.Collections.Generic.List`1/Enumerator<!0> class [mscorlib]System.Collections.Generic.List`1<class OpenRA.Order>::GetEnumerator()
IL_0047: stloc.2
.try { // 0
IL_0048: br IL_00a7
IL_004d: ldloca.s 2
IL_004f: call instance !0 valuetype [mscorlib]System.Collections.Generic.List`1/Enumerator<class OpenRA.Order>::get_Current()
IL_0054: stloc.3
IL_0055: ldloc.3
IL_0056: ldfld string OpenRA.Order::OrderString
IL_005b: ldstr "StartGame"
IL_0060: call bool string::op_Equality(string, string)
IL_0065: brfalse IL_0076
IL_006a: ldarg.0
IL_006b: ldc.i4.1
IL_006c: stfld bool OpenRA.Network.Replay/'<Replay>c__AnonStorey21'::hasSeenGameStart
IL_0071: br IL_00a7
IL_0076: ldloc.3
IL_0077: ldfld string OpenRA.Order::OrderString
IL_007c: ldstr "SyncInfo"
IL_0081: call bool string::op_Equality(string, string)
IL_0086: brfalse IL_00a7
IL_008b: ldarg.0
IL_008c: ldfld bool OpenRA.Network.Replay/'<Replay>c__AnonStorey21'::hasSeenGameStart
IL_0091: brtrue IL_00a7
IL_0096: ldarg.0
IL_0097: ldloc.3
IL_0098: ldfld string OpenRA.Order::TargetString
IL_009d: call class OpenRA.Network.Session class OpenRA.Network.Session::Deserialize(string)
IL_00a2: stfld class OpenRA.Network.Session OpenRA.Network.Replay/'<Replay>c__AnonStorey21'::lobbyInfo
IL_00a7: ldloca.s 2
IL_00a9: call instance bool valuetype [mscorlib]System.Collections.Generic.List`1/Enumerator<class OpenRA.Order>::MoveNext()
IL_00ae: brtrue IL_004d
IL_00b3: leave IL_00c6
} // end .try 0
finally { // 0
IL_00b8: ldloca.s 2
IL_00ba: constrained. valuetype [mscorlib]System.Collections.Generic.List`1/Enumerator<class OpenRA.Order>
IL_00c0: callvirt instance void class [mscorlib]System.IDisposable::Dispose()
IL_00c5: endfinally
} // end handler 0
IL_00c6: br IL_00dd
IL_00cb: ldarg.0
IL_00cc: ldarg.0
IL_00cd: ldfld int32 OpenRA.Network.Replay/'<Replay>c__AnonStorey21'::lastFrame
IL_00d2: ldloc.0
IL_00d3: call int32 class [mscorlib]System.Math::Max(int32, int32)
IL_00d8: stfld int32 OpenRA.Network.Replay/'<Replay>c__AnonStorey21'::lastFrame
IL_00dd: ret
} // end of method <Replay>c__AnonStorey21::<>m__26
} // end of class <Replay>c__AnonStorey21
} // end of class OpenRA.Network.Replay
}
.namespace OpenRA.Network
{
.class public auto ansi beforefieldinit UPnP
extends [mscorlib]System.Object
{
.field public static class [Mono.Nat]Mono.Nat.INatDevice NatDevice
// method line 152
.method public hidebysig specialname rtspecialname
instance default void '.ctor' () cil managed
{
// Method begins at RVA 0x5a78
// Code size 7 (0x7)
.maxstack 8
IL_0000: ldarg.0
IL_0001: call instance void object::'.ctor'()
IL_0006: ret
} // end of method UPnP::.ctor
// method line 153
.method public static hidebysig
default void TryNatDiscovery () cil managed
{
// Method begins at RVA 0x5a80
// Code size 193 (0xc1)
.maxstack 11
.locals init (
valuetype [OpenRA.FileFormats]OpenRA.ChannelInfo V_0,
class [mscorlib]System.Exception V_1)
.try { // 0
IL_0000: ldsfld class [mscorlib]System.Collections.Generic.Dictionary`2<string,valuetype [OpenRA.FileFormats]OpenRA.ChannelInfo> [OpenRA.FileFormats]OpenRA.Log::Channels
IL_0005: ldstr "server"
IL_000a: callvirt instance !1 class [mscorlib]System.Collections.Generic.Dictionary`2<string, valuetype [OpenRA.FileFormats]OpenRA.ChannelInfo>::get_Item(!0)
IL_000f: stloc.0
IL_0010: ldloca.s 0
IL_0012: ldfld class [mscorlib]System.IO.StreamWriter [OpenRA.FileFormats]OpenRA.ChannelInfo::Writer
IL_0017: call void class [Mono.Nat]Mono.Nat.NatUtility::set_Logger(class [mscorlib]System.IO.TextWriter)
IL_001c: ldsfld class OpenRA.GameRules.Settings OpenRA.Game::Settings
IL_0021: ldfld class OpenRA.GameRules.ServerSettings OpenRA.GameRules.Settings::Server
IL_0026: ldfld bool OpenRA.GameRules.ServerSettings::VerboseNatDiscovery
IL_002b: call void class [Mono.Nat]Mono.Nat.NatUtility::set_Verbose(bool)
IL_0030: ldnull
IL_0031: ldftn void class OpenRA.Network.UPnP::DeviceFound(object, class [Mono.Nat]Mono.Nat.DeviceEventArgs)
IL_0037: newobj instance void class [mscorlib]System.EventHandler`1<class [Mono.Nat]Mono.Nat.DeviceEventArgs>::'.ctor'(object, native int)
IL_003c: call void class [Mono.Nat]Mono.Nat.NatUtility::add_DeviceFound(class [mscorlib]System.EventHandler`1<class [Mono.Nat]Mono.Nat.DeviceEventArgs>)
IL_0041: ldnull
IL_0042: ldftn void class OpenRA.Network.UPnP::DeviceLost(object, class [Mono.Nat]Mono.Nat.DeviceEventArgs)
IL_0048: newobj instance void class [mscorlib]System.EventHandler`1<class [Mono.Nat]Mono.Nat.DeviceEventArgs>::'.ctor'(object, native int)
IL_004d: call void class [Mono.Nat]Mono.Nat.NatUtility::add_DeviceLost(class [mscorlib]System.EventHandler`1<class [Mono.Nat]Mono.Nat.DeviceEventArgs>)
IL_0052: ldsfld class OpenRA.GameRules.Settings OpenRA.Game::Settings
IL_0057: ldfld class OpenRA.GameRules.ServerSettings OpenRA.GameRules.Settings::Server
IL_005c: ldc.i4.0
IL_005d: stfld bool OpenRA.GameRules.ServerSettings::NatDeviceAvailable
IL_0062: call void class [Mono.Nat]Mono.Nat.NatUtility::StartDiscovery()
IL_0067: ldstr "server"
IL_006c: ldstr "NAT discovery started."
IL_0071: ldc.i4.0
IL_0072: newarr [mscorlib]System.Object
IL_0077: call void class [OpenRA.FileFormats]OpenRA.Log::Write(string, string, object[])
IL_007c: leave IL_00c0
} // end .try 0
catch class [mscorlib]System.Exception { // 0
IL_0081: stloc.1
IL_0082: ldstr "server"
IL_0087: ldstr "Can't discover UPnP-enabled device: {0}"
IL_008c: ldc.i4.1
IL_008d: newarr [mscorlib]System.Object
IL_0092: dup
IL_0093: ldc.i4.0
IL_0094: ldloc.1
IL_0095: stelem.ref
IL_0096: call void class [OpenRA.FileFormats]OpenRA.Log::Write(string, string, object[])
IL_009b: ldsfld class OpenRA.GameRules.Settings OpenRA.Game::Settings
IL_00a0: ldfld class OpenRA.GameRules.ServerSettings OpenRA.GameRules.Settings::Server
IL_00a5: ldc.i4.0
IL_00a6: stfld bool OpenRA.GameRules.ServerSettings::NatDeviceAvailable
IL_00ab: ldsfld class OpenRA.GameRules.Settings OpenRA.Game::Settings
IL_00b0: ldfld class OpenRA.GameRules.ServerSettings OpenRA.GameRules.Settings::Server
IL_00b5: ldc.i4.0
IL_00b6: stfld bool OpenRA.GameRules.ServerSettings::AllowPortForward
IL_00bb: leave IL_00c0
} // end handler 0
IL_00c0: ret
} // end of method UPnP::TryNatDiscovery
// method line 154
.method public static hidebysig
default void TryStoppingNatDiscovery () cil managed
{
// Method begins at RVA 0x5b6c
// Code size 192 (0xc0)
.maxstack 9
.locals init (
class [mscorlib]System.Exception V_0)
IL_0000: ldstr "server"
IL_0005: ldstr "Stopping NAT discovery."
IL_000a: ldc.i4.0
IL_000b: newarr [mscorlib]System.Object
IL_0010: call void class [OpenRA.FileFormats]OpenRA.Log::Write(string, string, object[])
.try { // 0
IL_0015: call void class [Mono.Nat]Mono.Nat.NatUtility::StopDiscovery()
IL_001a: leave IL_005e
} // end .try 0
catch class [mscorlib]System.Exception { // 0
IL_001f: stloc.0
IL_0020: ldstr "server"
IL_0025: ldstr "Failed to stop NAT device discovery: {0}"
IL_002a: ldc.i4.1
IL_002b: newarr [mscorlib]System.Object
IL_0030: dup
IL_0031: ldc.i4.0
IL_0032: ldloc.0
IL_0033: stelem.ref
IL_0034: call void class [OpenRA.FileFormats]OpenRA.Log::Write(string, string, object[])
IL_0039: ldsfld class OpenRA.GameRules.Settings OpenRA.Game::Settings
IL_003e: ldfld class OpenRA.GameRules.ServerSettings OpenRA.GameRules.Settings::Server
IL_0043: ldc.i4.0
IL_0044: stfld bool OpenRA.GameRules.ServerSettings::NatDeviceAvailable
IL_0049: ldsfld class OpenRA.GameRules.Settings OpenRA.Game::Settings
IL_004e: ldfld class OpenRA.GameRules.ServerSettings OpenRA.GameRules.Settings::Server
IL_0053: ldc.i4.0
IL_0054: stfld bool OpenRA.GameRules.ServerSettings::AllowPortForward
IL_0059: leave IL_005e
} // end handler 0
IL_005e: ldsfld class [Mono.Nat]Mono.Nat.INatDevice OpenRA.Network.UPnP::NatDevice
IL_0063: brtrue IL_00bf
IL_0068: ldstr "server"
IL_006d: ldstr "No NAT devices with UPnP enabled found within {0} ms deadline. Disabling automatic port forwarding."
IL_0072: ldc.i4.1
IL_0073: newarr [mscorlib]System.Object
IL_0078: dup
IL_0079: ldc.i4.0
IL_007a: ldsfld class OpenRA.GameRules.Settings OpenRA.Game::Settings
IL_007f: ldfld class OpenRA.GameRules.ServerSettings OpenRA.GameRules.Settings::Server
IL_0084: ldfld int32 OpenRA.GameRules.ServerSettings::NatDiscoveryTimeout
IL_0089: box [mscorlib]System.Int32
IL_008e: stelem.ref
IL_008f: call string class [OpenRA.FileFormats]OpenRA.Exts::F(string, object[])
IL_0094: ldc.i4.0
IL_0095: newarr [mscorlib]System.Object
IL_009a: call void class [OpenRA.FileFormats]OpenRA.Log::Write(string, string, object[])
IL_009f: ldsfld class OpenRA.GameRules.Settings OpenRA.Game::Settings
IL_00a4: ldfld class OpenRA.GameRules.ServerSettings OpenRA.GameRules.Settings::Server
IL_00a9: ldc.i4.0
IL_00aa: stfld bool OpenRA.GameRules.ServerSettings::NatDeviceAvailable
IL_00af: ldsfld class OpenRA.GameRules.Settings OpenRA.Game::Settings
IL_00b4: ldfld class OpenRA.GameRules.ServerSettings OpenRA.GameRules.Settings::Server
IL_00b9: ldc.i4.0
IL_00ba: stfld bool OpenRA.GameRules.ServerSettings::AllowPortForward
IL_00bf: ret
} // end of method UPnP::TryStoppingNatDiscovery
// method line 155
.method public static hidebysig
default void DeviceFound (object sender, class [Mono.Nat]Mono.Nat.DeviceEventArgs args) cil managed
{
// Method begins at RVA 0x5c54
// Code size 311 (0x137)
.maxstack 26
.locals init (
class [Mono.Nat]Mono.Nat.Mapping[] V_0,
int32 V_1,
class [Mono.Nat]Mono.Nat.Mapping V_2,
class [mscorlib]System.Exception V_3)
IL_0000: ldarg.1
IL_0001: callvirt instance class [Mono.Nat]Mono.Nat.INatDevice class [Mono.Nat]Mono.Nat.DeviceEventArgs::get_Device()
IL_0006: brtrue IL_000c
IL_000b: ret
IL_000c: ldstr "server"
IL_0011: ldstr "NAT device discovered."
IL_0016: ldc.i4.0
IL_0017: newarr [mscorlib]System.Object
IL_001c: call void class [OpenRA.FileFormats]OpenRA.Log::Write(string, string, object[])
IL_0021: ldsfld class OpenRA.GameRules.Settings OpenRA.Game::Settings
IL_0026: ldfld class OpenRA.GameRules.ServerSettings OpenRA.GameRules.Settings::Server
IL_002b: ldc.i4.1
IL_002c: stfld bool OpenRA.GameRules.ServerSettings::NatDeviceAvailable
IL_0031: ldsfld class OpenRA.GameRules.Settings OpenRA.Game::Settings
IL_0036: ldfld class OpenRA.GameRules.ServerSettings OpenRA.GameRules.Settings::Server
IL_003b: ldc.i4.1
IL_003c: stfld bool OpenRA.GameRules.ServerSettings::AllowPortForward
.try { // 0
IL_0041: ldarg.1
IL_0042: callvirt instance class [Mono.Nat]Mono.Nat.INatDevice class [Mono.Nat]Mono.Nat.DeviceEventArgs::get_Device()
IL_0047: stsfld class [Mono.Nat]Mono.Nat.INatDevice OpenRA.Network.UPnP::NatDevice
IL_004c: ldstr "server"
IL_0051: ldstr "Type: {0}"
IL_0056: ldc.i4.1
IL_0057: newarr [mscorlib]System.Object
IL_005c: dup
IL_005d: ldc.i4.0
IL_005e: ldsfld class [Mono.Nat]Mono.Nat.INatDevice OpenRA.Network.UPnP::NatDevice
IL_0063: callvirt instance class [mscorlib]System.Type object::GetType()
IL_0068: stelem.ref
IL_0069: call void class [OpenRA.FileFormats]OpenRA.Log::Write(string, string, object[])
IL_006e: ldstr "server"
IL_0073: ldstr "Your external IP is: {0}"
IL_0078: ldc.i4.1
IL_0079: newarr [mscorlib]System.Object
IL_007e: dup
IL_007f: ldc.i4.0
IL_0080: ldsfld class [Mono.Nat]Mono.Nat.INatDevice OpenRA.Network.UPnP::NatDevice
IL_0085: callvirt instance class [System]System.Net.IPAddress class [Mono.Nat]Mono.Nat.INatDevice::GetExternalIP()
IL_008a: stelem.ref
IL_008b: call void class [OpenRA.FileFormats]OpenRA.Log::Write(string, string, object[])
IL_0090: ldsfld class [Mono.Nat]Mono.Nat.INatDevice OpenRA.Network.UPnP::NatDevice
IL_0095: callvirt instance class [Mono.Nat]Mono.Nat.Mapping[] class [Mono.Nat]Mono.Nat.INatDevice::GetAllMappings()
IL_009a: stloc.0
IL_009b: ldc.i4.0
IL_009c: stloc.1
IL_009d: br IL_00e9
IL_00a2: ldloc.0
IL_00a3: ldloc.1
IL_00a4: ldelem.ref
IL_00a5: stloc.2
IL_00a6: ldstr "server"
IL_00ab: ldstr "Existing port mapping: protocol={0}, public={1}, private={2}"
IL_00b0: ldc.i4.3
IL_00b1: newarr [mscorlib]System.Object
IL_00b6: dup
IL_00b7: ldc.i4.0
IL_00b8: ldloc.2
IL_00b9: callvirt instance valuetype [Mono.Nat]Mono.Nat.Protocol class [Mono.Nat]Mono.Nat.Mapping::get_Protocol()
IL_00be: box [Mono.Nat]Mono.Nat.Protocol
IL_00c3: stelem.ref
IL_00c4: dup
IL_00c5: ldc.i4.1
IL_00c6: ldloc.2
IL_00c7: callvirt instance int32 class [Mono.Nat]Mono.Nat.Mapping::get_PublicPort()
IL_00cc: box [mscorlib]System.Int32
IL_00d1: stelem.ref
IL_00d2: dup
IL_00d3: ldc.i4.2
IL_00d4: ldloc.2
IL_00d5: callvirt instance int32 class [Mono.Nat]Mono.Nat.Mapping::get_PrivatePort()
IL_00da: box [mscorlib]System.Int32
IL_00df: stelem.ref
IL_00e0: call void class [OpenRA.FileFormats]OpenRA.Log::Write(string, string, object[])
IL_00e5: ldloc.1
IL_00e6: ldc.i4.1
IL_00e7: add
IL_00e8: stloc.1
IL_00e9: ldloc.1
IL_00ea: ldloc.0
IL_00eb: ldlen
IL_00ec: conv.i4
IL_00ed: blt IL_00a2
IL_00f2: leave IL_0136
} // end .try 0
catch class [mscorlib]System.Exception { // 0
IL_00f7: stloc.3
IL_00f8: ldstr "server"
IL_00fd: ldstr "Can't fetch information from NAT device: {0}"
IL_0102: ldc.i4.1
IL_0103: newarr [mscorlib]System.Object
IL_0108: dup
IL_0109: ldc.i4.0
IL_010a: ldloc.3
IL_010b: stelem.ref
IL_010c: call void class [OpenRA.FileFormats]OpenRA.Log::Write(string, string, object[])
IL_0111: ldsfld class OpenRA.GameRules.Settings OpenRA.Game::Settings
IL_0116: ldfld class OpenRA.GameRules.ServerSettings OpenRA.GameRules.Settings::Server
IL_011b: ldc.i4.0
IL_011c: stfld bool OpenRA.GameRules.ServerSettings::NatDeviceAvailable
IL_0121: ldsfld class OpenRA.GameRules.Settings OpenRA.Game::Settings
IL_0126: ldfld class OpenRA.GameRules.ServerSettings OpenRA.GameRules.Settings::Server
IL_012b: ldc.i4.0
IL_012c: stfld bool OpenRA.GameRules.ServerSettings::AllowPortForward
IL_0131: leave IL_0136
} // end handler 0
IL_0136: ret
} // end of method UPnP::DeviceFound
// method line 156
.method public static hidebysig
default void DeviceLost (object sender, class [Mono.Nat]Mono.Nat.DeviceEventArgs args) cil managed
{
// Method begins at RVA 0x5db4
// Code size 147 (0x93)
.maxstack 13
.locals init (
class [mscorlib]System.Exception V_0)
IL_0000: ldstr "server"
IL_0005: ldstr "NAT device lost."
IL_000a: ldc.i4.0
IL_000b: newarr [mscorlib]System.Object
IL_0010: call void class [OpenRA.FileFormats]OpenRA.Log::Write(string, string, object[])
IL_0015: ldarg.1
IL_0016: callvirt instance class [Mono.Nat]Mono.Nat.INatDevice class [Mono.Nat]Mono.Nat.DeviceEventArgs::get_Device()
IL_001b: brtrue IL_0021
IL_0020: ret
.try { // 0
IL_0021: ldarg.1
IL_0022: callvirt instance class [Mono.Nat]Mono.Nat.INatDevice class [Mono.Nat]Mono.Nat.DeviceEventArgs::get_Device()
IL_0027: stsfld class [Mono.Nat]Mono.Nat.INatDevice OpenRA.Network.UPnP::NatDevice
IL_002c: ldstr "server"
IL_0031: ldstr "Type: {0}"
IL_0036: ldc.i4.1
IL_0037: newarr [mscorlib]System.Object
IL_003c: dup
IL_003d: ldc.i4.0
IL_003e: ldsfld class [Mono.Nat]Mono.Nat.INatDevice OpenRA.Network.UPnP::NatDevice
IL_0043: callvirt instance class [mscorlib]System.Type object::GetType()
IL_0048: stelem.ref
IL_0049: call void class [OpenRA.FileFormats]OpenRA.Log::Write(string, string, object[])
IL_004e: leave IL_0072
} // end .try 0
catch class [mscorlib]System.Exception { // 0
IL_0053: stloc.0
IL_0054: ldstr "server"
IL_0059: ldstr "Can't fetch type from lost NAT device: {0}"
IL_005e: ldc.i4.1
IL_005f: newarr [mscorlib]System.Object
IL_0064: dup
IL_0065: ldc.i4.0
IL_0066: ldloc.0
IL_0067: stelem.ref
IL_0068: call void class [OpenRA.FileFormats]OpenRA.Log::Write(string, string, object[])
IL_006d: leave IL_0072
} // end handler 0
IL_0072: ldsfld class OpenRA.GameRules.Settings OpenRA.Game::Settings
IL_0077: ldfld class OpenRA.GameRules.ServerSettings OpenRA.GameRules.Settings::Server
IL_007c: ldc.i4.0
IL_007d: stfld bool OpenRA.GameRules.ServerSettings::NatDeviceAvailable
IL_0082: ldsfld class OpenRA.GameRules.Settings OpenRA.Game::Settings
IL_0087: ldfld class OpenRA.GameRules.ServerSettings OpenRA.GameRules.Settings::Server
IL_008c: ldc.i4.0
IL_008d: stfld bool OpenRA.GameRules.ServerSettings::AllowPortForward
IL_0092: ret
} // end of method UPnP::DeviceLost
// method line 157
.method public static hidebysig
default void ForwardPort () cil managed
{
// Method begins at RVA 0x5e70
// Code size 164 (0xa4)
.maxstack 15
.locals init (
class [Mono.Nat]Mono.Nat.Mapping V_0,
class [mscorlib]System.Exception V_1)
.try { // 0
IL_0000: ldc.i4.0
IL_0001: ldsfld class OpenRA.GameRules.Settings OpenRA.Game::Settings
IL_0006: ldfld class OpenRA.GameRules.ServerSettings OpenRA.GameRules.Settings::Server
IL_000b: ldfld int32 OpenRA.GameRules.ServerSettings::ExternalPort
IL_0010: ldsfld class OpenRA.GameRules.Settings OpenRA.Game::Settings
IL_0015: ldfld class OpenRA.GameRules.ServerSettings OpenRA.GameRules.Settings::Server
IL_001a: ldfld int32 OpenRA.GameRules.ServerSettings::ListenPort
IL_001f: newobj instance void class [Mono.Nat]Mono.Nat.Mapping::'.ctor'(valuetype [Mono.Nat]Mono.Nat.Protocol, int32, int32)
IL_0024: stloc.0
IL_0025: ldsfld class [Mono.Nat]Mono.Nat.INatDevice OpenRA.Network.UPnP::NatDevice
IL_002a: ldloc.0
IL_002b: callvirt instance void class [Mono.Nat]Mono.Nat.INatDevice::CreatePortMap(class [Mono.Nat]Mono.Nat.Mapping)
IL_0030: ldstr "server"
IL_0035: ldstr "Create port mapping: protocol={0}, public={1}, private={2}"
IL_003a: ldc.i4.3
IL_003b: newarr [mscorlib]System.Object
IL_0040: dup
IL_0041: ldc.i4.0
IL_0042: ldloc.0
IL_0043: callvirt instance valuetype [Mono.Nat]Mono.Nat.Protocol class [Mono.Nat]Mono.Nat.Mapping::get_Protocol()
IL_0048: box [Mono.Nat]Mono.Nat.Protocol
IL_004d: stelem.ref
IL_004e: dup
IL_004f: ldc.i4.1
IL_0050: ldloc.0
IL_0051: callvirt instance int32 class [Mono.Nat]Mono.Nat.Mapping::get_PublicPort()
IL_0056: box [mscorlib]System.Int32
IL_005b: stelem.ref
IL_005c: dup
IL_005d: ldc.i4.2
IL_005e: ldloc.0
IL_005f: callvirt instance int32 class [Mono.Nat]Mono.Nat.Mapping::get_PrivatePort()
IL_0064: box [mscorlib]System.Int32
IL_0069: stelem.ref
IL_006a: call void class [OpenRA.FileFormats]OpenRA.Log::Write(string, string, object[])
IL_006f: leave IL_00a3
} // end .try 0
catch class [mscorlib]System.Exception { // 0
IL_0074: stloc.1
IL_0075: ldstr "server"
IL_007a: ldstr "Can not forward ports via UPnP: {0}"
IL_007f: ldc.i4.1
IL_0080: newarr [mscorlib]System.Object
IL_0085: dup
IL_0086: ldc.i4.0
IL_0087: ldloc.1
IL_0088: stelem.ref
IL_0089: call void class [OpenRA.FileFormats]OpenRA.Log::Write(string, string, object[])
IL_008e: ldsfld class OpenRA.GameRules.Settings OpenRA.Game::Settings
IL_0093: ldfld class OpenRA.GameRules.ServerSettings OpenRA.GameRules.Settings::Server
IL_0098: ldc.i4.0
IL_0099: stfld bool OpenRA.GameRules.ServerSettings::AllowPortForward
IL_009e: leave IL_00a3
} // end handler 0
IL_00a3: ret
} // end of method UPnP::ForwardPort
// method line 158
.method public static hidebysig
default void RemovePortforward () cil managed
{
// Method begins at RVA 0x5f3c
// Code size 164 (0xa4)
.maxstack 15
.locals init (
class [Mono.Nat]Mono.Nat.Mapping V_0,
class [mscorlib]System.Exception V_1)
.try { // 0
IL_0000: ldc.i4.0
IL_0001: ldsfld class OpenRA.GameRules.Settings OpenRA.Game::Settings
IL_0006: ldfld class OpenRA.GameRules.ServerSettings OpenRA.GameRules.Settings::Server
IL_000b: ldfld int32 OpenRA.GameRules.ServerSettings::ExternalPort
IL_0010: ldsfld class OpenRA.GameRules.Settings OpenRA.Game::Settings
IL_0015: ldfld class OpenRA.GameRules.ServerSettings OpenRA.GameRules.Settings::Server
IL_001a: ldfld int32 OpenRA.GameRules.ServerSettings::ListenPort
IL_001f: newobj instance void class [Mono.Nat]Mono.Nat.Mapping::'.ctor'(valuetype [Mono.Nat]Mono.Nat.Protocol, int32, int32)
IL_0024: stloc.0
IL_0025: ldsfld class [Mono.Nat]Mono.Nat.INatDevice OpenRA.Network.UPnP::NatDevice
IL_002a: ldloc.0
IL_002b: callvirt instance void class [Mono.Nat]Mono.Nat.INatDevice::DeletePortMap(class [Mono.Nat]Mono.Nat.Mapping)
IL_0030: ldstr "server"
IL_0035: ldstr "Remove port mapping: protocol={0}, public={1}, private={2}"
IL_003a: ldc.i4.3
IL_003b: newarr [mscorlib]System.Object
IL_0040: dup
IL_0041: ldc.i4.0
IL_0042: ldloc.0
IL_0043: callvirt instance valuetype [Mono.Nat]Mono.Nat.Protocol class [Mono.Nat]Mono.Nat.Mapping::get_Protocol()
IL_0048: box [Mono.Nat]Mono.Nat.Protocol
IL_004d: stelem.ref
IL_004e: dup
IL_004f: ldc.i4.1
IL_0050: ldloc.0
IL_0051: callvirt instance int32 class [Mono.Nat]Mono.Nat.Mapping::get_PublicPort()
IL_0056: box [mscorlib]System.Int32
IL_005b: stelem.ref
IL_005c: dup
IL_005d: ldc.i4.2
IL_005e: ldloc.0
IL_005f: callvirt instance int32 class [Mono.Nat]Mono.Nat.Mapping::get_PrivatePort()
IL_0064: box [mscorlib]System.Int32
IL_0069: stelem.ref
IL_006a: call void class [OpenRA.FileFormats]OpenRA.Log::Write(string, string, object[])
IL_006f: leave IL_00a3
} // end .try 0
catch class [mscorlib]System.Exception { // 0
IL_0074: stloc.1
IL_0075: ldstr "server"
IL_007a: ldstr "Can not remove UPnP portforwarding rules: {0}"
IL_007f: ldc.i4.1
IL_0080: newarr [mscorlib]System.Object
IL_0085: dup
IL_0086: ldc.i4.0
IL_0087: ldloc.1
IL_0088: stelem.ref
IL_0089: call void class [OpenRA.FileFormats]OpenRA.Log::Write(string, string, object[])
IL_008e: ldsfld class OpenRA.GameRules.Settings OpenRA.Game::Settings
IL_0093: ldfld class OpenRA.GameRules.ServerSettings OpenRA.GameRules.Settings::Server
IL_0098: ldc.i4.0
IL_0099: stfld bool OpenRA.GameRules.ServerSettings::AllowPortForward
IL_009e: leave IL_00a3
} // end handler 0
IL_00a3: ret
} // end of method UPnP::RemovePortforward
} // end of class OpenRA.Network.UPnP
}
.namespace OpenRA
{
.class public auto ansi beforefieldinit NullInputHandler
extends [mscorlib]System.Object
implements [OpenRA.FileFormats]OpenRA.IInputHandler {
// method line 159
.method public hidebysig specialname rtspecialname
instance default void '.ctor' () cil managed
{
// Method begins at RVA 0x6008
// Code size 7 (0x7)
.maxstack 8
IL_0000: ldarg.0
IL_0001: call instance void object::'.ctor'()
IL_0006: ret
} // end of method NullInputHandler::.ctor
// method line 160
.method public final virtual hidebysig newslot
instance default void ModifierKeys (valuetype [OpenRA.FileFormats]OpenRA.Modifiers mods) cil managed
{
// Method begins at RVA 0x6010
// Code size 1 (0x1)
.maxstack 8
IL_0000: ret
} // end of method NullInputHandler::ModifierKeys
// method line 161
.method public final virtual hidebysig newslot
instance default void OnKeyInput (valuetype [OpenRA.FileFormats]OpenRA.KeyInput input) cil managed
{
// Method begins at RVA 0x6014
// Code size 1 (0x1)
.maxstack 8
IL_0000: ret
} // end of method NullInputHandler::OnKeyInput
// method line 162
.method public final virtual hidebysig newslot
instance default void OnMouseInput (valuetype [OpenRA.FileFormats]OpenRA.MouseInput input) cil managed
{
// Method begins at RVA 0x6018
// Code size 1 (0x1)
.maxstack 8
IL_0000: ret
} // end of method NullInputHandler::OnMouseInput
} // end of class OpenRA.NullInputHandler
}
.namespace OpenRA
{
.class public auto ansi beforefieldinit DefaultInputHandler
extends [mscorlib]System.Object
implements [OpenRA.FileFormats]OpenRA.IInputHandler {
.field private initonly class OpenRA.World world
// method line 163
.method public hidebysig specialname rtspecialname
instance default void '.ctor' (class OpenRA.World world) cil managed
{
// Method begins at RVA 0x601c
// Code size 14 (0xe)
.maxstack 8
IL_0000: ldarg.0
IL_0001: call instance void object::'.ctor'()
IL_0006: ldarg.0
IL_0007: ldarg.1
IL_0008: stfld class OpenRA.World OpenRA.DefaultInputHandler::world
IL_000d: ret
} // end of method DefaultInputHandler::.ctor
// method line 164
.method public final virtual hidebysig newslot
instance default void ModifierKeys (valuetype [OpenRA.FileFormats]OpenRA.Modifiers mods) cil managed
{
// Method begins at RVA 0x602c
// Code size 7 (0x7)
.maxstack 8
IL_0000: ldarg.1
IL_0001: call void class OpenRA.Game::HandleModifierKeys(valuetype [OpenRA.FileFormats]OpenRA.Modifiers)
IL_0006: ret
} // end of method DefaultInputHandler::ModifierKeys
// method line 165
.method public final virtual hidebysig newslot
instance default void OnKeyInput (valuetype [OpenRA.FileFormats]OpenRA.KeyInput input) cil managed
{
// Method begins at RVA 0x6034
// Code size 38 (0x26)
.maxstack 5
.locals init (
class OpenRA.DefaultInputHandler/'<OnKeyInput>c__AnonStorey22' V_0)
IL_0000: newobj instance void class OpenRA.DefaultInputHandler/'<OnKeyInput>c__AnonStorey22'::'.ctor'()
IL_0005: stloc.0
IL_0006: ldloc.0
IL_0007: ldarg.1
IL_0008: stfld valuetype [OpenRA.FileFormats]OpenRA.KeyInput OpenRA.DefaultInputHandler/'<OnKeyInput>c__AnonStorey22'::input
IL_000d: ldarg.0
IL_000e: ldfld class OpenRA.World OpenRA.DefaultInputHandler::world
IL_0013: ldloc.0
IL_0014: ldftn instance bool class OpenRA.DefaultInputHandler/'<OnKeyInput>c__AnonStorey22'::'<>m__27'()
IL_001a: newobj instance void class [System.Core]System.Func`1<bool>::'.ctor'(object, native int)
IL_001f: call !!0 class OpenRA.Sync::CheckSyncUnchanged<bool> (class OpenRA.World, class [System.Core]System.Func`1<!!0>)
IL_0024: pop
IL_0025: ret
} // end of method DefaultInputHandler::OnKeyInput
// method line 166
.method public final virtual hidebysig newslot
instance default void OnMouseInput (valuetype [OpenRA.FileFormats]OpenRA.MouseInput input) cil managed
{
// Method begins at RVA 0x6068
// Code size 38 (0x26)
.maxstack 5
.locals init (
class OpenRA.DefaultInputHandler/'<OnMouseInput>c__AnonStorey23' V_0)
IL_0000: newobj instance void class OpenRA.DefaultInputHandler/'<OnMouseInput>c__AnonStorey23'::'.ctor'()
IL_0005: stloc.0
IL_0006: ldloc.0
IL_0007: ldarg.1
IL_0008: stfld valuetype [OpenRA.FileFormats]OpenRA.MouseInput OpenRA.DefaultInputHandler/'<OnMouseInput>c__AnonStorey23'::input
IL_000d: ldarg.0
IL_000e: ldfld class OpenRA.World OpenRA.DefaultInputHandler::world
IL_0013: ldloc.0
IL_0014: ldftn instance bool class OpenRA.DefaultInputHandler/'<OnMouseInput>c__AnonStorey23'::'<>m__28'()
IL_001a: newobj instance void class [System.Core]System.Func`1<bool>::'.ctor'(object, native int)
IL_001f: call !!0 class OpenRA.Sync::CheckSyncUnchanged<bool> (class OpenRA.World, class [System.Core]System.Func`1<!!0>)
IL_0024: pop
IL_0025: ret
} // end of method DefaultInputHandler::OnMouseInput
.class nested private auto ansi sealed beforefieldinit '<OnKeyInput>c__AnonStorey22'
extends [mscorlib]System.Object
{
.custom instance void class [mscorlib]System.Runtime.CompilerServices.CompilerGeneratedAttribute::'.ctor'() = (01 00 00 00 ) // ....
.field assembly valuetype [OpenRA.FileFormats]OpenRA.KeyInput input
// method line 2109
.method public hidebysig specialname rtspecialname
instance default void '.ctor' () cil managed
{
// Method begins at RVA 0x2bacc
// Code size 7 (0x7)
.maxstack 8
IL_0000: ldarg.0
IL_0001: call instance void object::'.ctor'()
IL_0006: ret
} // end of method <OnKeyInput>c__AnonStorey22::.ctor
// method line 2110
.method assembly hidebysig
instance default bool '<>m__27' () cil managed
{
// Method begins at RVA 0x2bad4
// Code size 12 (0xc)
.maxstack 8
IL_0000: ldarg.0
IL_0001: ldfld valuetype [OpenRA.FileFormats]OpenRA.KeyInput OpenRA.DefaultInputHandler/'<OnKeyInput>c__AnonStorey22'::input
IL_0006: call bool class OpenRA.Widgets.Ui::HandleKeyPress(valuetype [OpenRA.FileFormats]OpenRA.KeyInput)
IL_000b: ret
} // end of method <OnKeyInput>c__AnonStorey22::<>m__27
} // end of class <OnKeyInput>c__AnonStorey22
.class nested private auto ansi sealed beforefieldinit '<OnMouseInput>c__AnonStorey23'
extends [mscorlib]System.Object
{
.custom instance void class [mscorlib]System.Runtime.CompilerServices.CompilerGeneratedAttribute::'.ctor'() = (01 00 00 00 ) // ....
.field assembly valuetype [OpenRA.FileFormats]OpenRA.MouseInput input
// method line 2111
.method public hidebysig specialname rtspecialname
instance default void '.ctor' () cil managed
{
// Method begins at RVA 0x2bae4
// Code size 7 (0x7)
.maxstack 8
IL_0000: ldarg.0
IL_0001: call instance void object::'.ctor'()
IL_0006: ret
} // end of method <OnMouseInput>c__AnonStorey23::.ctor
// method line 2112
.method assembly hidebysig
instance default bool '<>m__28' () cil managed
{
// Method begins at RVA 0x2baec
// Code size 12 (0xc)
.maxstack 8
IL_0000: ldarg.0
IL_0001: ldfld valuetype [OpenRA.FileFormats]OpenRA.MouseInput OpenRA.DefaultInputHandler/'<OnMouseInput>c__AnonStorey23'::input
IL_0006: call bool class OpenRA.Widgets.Ui::HandleInput(valuetype [OpenRA.FileFormats]OpenRA.MouseInput)
IL_000b: ret
} // end of method <OnMouseInput>c__AnonStorey23::<>m__28
} // end of class <OnMouseInput>c__AnonStorey23
} // end of class OpenRA.DefaultInputHandler
}
.namespace OpenRA
{
.class public auto ansi beforefieldinit MouseButtonPreference
extends [mscorlib]System.Object
{
// method line 167
.method public hidebysig specialname rtspecialname
instance default void '.ctor' () cil managed
{
// Method begins at RVA 0x609c
// Code size 7 (0x7)
.maxstack 8
IL_0000: ldarg.0
IL_0001: call instance void object::'.ctor'()
IL_0006: ret
} // end of method MouseButtonPreference::.ctor
// method line 168
.method public hidebysig specialname
instance default valuetype [OpenRA.FileFormats]OpenRA.MouseButton get_Action () cil managed
{
// Method begins at RVA 0x60a4
// Code size 28 (0x1c)
.maxstack 8
IL_0000: ldsfld class OpenRA.GameRules.Settings OpenRA.Game::Settings
IL_0005: ldfld class OpenRA.GameRules.GameSettings OpenRA.GameRules.Settings::Game
IL_000a: ldfld bool OpenRA.GameRules.GameSettings::UseClassicMouseStyle
IL_000f: brfalse IL_001a
IL_0014: ldc.i4.1
IL_0015: br IL_001b
IL_001a: ldc.i4.2
IL_001b: ret
} // end of method MouseButtonPreference::get_Action
// method line 169
.method public hidebysig specialname
instance default valuetype [OpenRA.FileFormats]OpenRA.MouseButton get_Cancel () cil managed
{
// Method begins at RVA 0x60c4
// Code size 28 (0x1c)
.maxstack 8
IL_0000: ldsfld class OpenRA.GameRules.Settings OpenRA.Game::Settings
IL_0005: ldfld class OpenRA.GameRules.GameSettings OpenRA.GameRules.Settings::Game
IL_000a: ldfld bool OpenRA.GameRules.GameSettings::UseClassicMouseStyle
IL_000f: brfalse IL_001a
IL_0014: ldc.i4.2
IL_0015: br IL_001b
IL_001a: ldc.i4.1
IL_001b: ret
} // end of method MouseButtonPreference::get_Cancel
.property instance valuetype [OpenRA.FileFormats]OpenRA.MouseButton Action ()
{
.get instance default valuetype [OpenRA.FileFormats]OpenRA.MouseButton OpenRA.MouseButtonPreference::get_Action ()
}
.property instance valuetype [OpenRA.FileFormats]OpenRA.MouseButton Cancel ()
{
.get instance default valuetype [OpenRA.FileFormats]OpenRA.MouseButton OpenRA.MouseButtonPreference::get_Cancel ()
}
} // end of class OpenRA.MouseButtonPreference
}
.namespace OpenRA
{
.class public auto ansi sealed PowerState
extends [mscorlib]System.Enum
{
.field public specialname rtspecialname int32 value__
.field public static literal valuetype OpenRA.PowerState Normal = int32(0x00000000)
.field public static literal valuetype OpenRA.PowerState Low = int32(0x00000001)
.field public static literal valuetype OpenRA.PowerState Critical = int32(0x00000002)
} // end of class OpenRA.PowerState
}
.namespace OpenRA
{
.class public auto ansi sealed WinState
extends [mscorlib]System.Enum
{
.field public specialname rtspecialname int32 value__
.field public static literal valuetype OpenRA.WinState Won = int32(0x00000000)
.field public static literal valuetype OpenRA.WinState Lost = int32(0x00000001)
.field public static literal valuetype OpenRA.WinState Undefined = int32(0x00000002)
} // end of class OpenRA.WinState
}
.namespace OpenRA
{
.class public auto ansi beforefieldinit Player
extends [mscorlib]System.Object
{
.field public class OpenRA.Actor PlayerActor
.field public valuetype OpenRA.WinState WinState
.field public initonly valuetype [OpenRA.FileFormats]OpenRA.FileFormats.HSLColor Color
.field public initonly string PlayerName
.field public initonly string InternalName
.field public initonly class OpenRA.Traits.CountryInfo Country
.field public initonly bool NonCombatant
.field public initonly int32 ClientIndex
.field public initonly class [OpenRA.FileFormats]OpenRA.FileFormats.PlayerReference PlayerReference
.field public bool IsBot
.field public class OpenRA.Traits.Shroud Shroud
.field public class [mscorlib]System.Collections.Generic.Dictionary`2<class OpenRA.Player,valuetype OpenRA.Traits.Stance> Stances
.field private class OpenRA.World '<World>k__BackingField'
.custom instance void class [mscorlib]System.Runtime.CompilerServices.CompilerGeneratedAttribute::'.ctor'() = (01 00 00 00 ) // ....
.field private static class [System.Core]System.Func`2<class OpenRA.Traits.CountryInfo,bool> '<>f__am$cacheD'
.custom instance void class [mscorlib]System.Runtime.CompilerServices.CompilerGeneratedAttribute::'.ctor'() = (01 00 00 00 ) // ....
// method line 170
.method public hidebysig specialname rtspecialname
instance default void '.ctor' (class OpenRA.World world, class OpenRA.Network.Session/Client client, class OpenRA.Network.Session/Slot slot, class [OpenRA.FileFormats]OpenRA.FileFormats.PlayerReference pr) cil managed
{
// Method begins at RVA 0x60e4
// Code size 397 (0x18d)
.maxstack 26
.locals init (
class OpenRA.Player/'<Player>c__AnonStorey24' V_0,
class [OpenRA.FileFormats]OpenRA.FileFormats.TypeDictionary V_1,
class OpenRA.Traits.IBot V_2)
IL_0000: newobj instance void class OpenRA.Player/'<Player>c__AnonStorey24'::'.ctor'()
IL_0005: stloc.0
IL_0006: ldarg.0
IL_0007: ldc.i4.2
IL_0008: stfld valuetype OpenRA.WinState OpenRA.Player::WinState
IL_000d: ldarg.0
IL_000e: ldc.i4.0
IL_000f: stfld bool OpenRA.Player::NonCombatant
IL_0014: ldarg.0
IL_0015: newobj instance void class [mscorlib]System.Collections.Generic.Dictionary`2<class OpenRA.Player, valuetype OpenRA.Traits.Stance>::'.ctor'()
IL_001a: stfld class [mscorlib]System.Collections.Generic.Dictionary`2<class OpenRA.Player,valuetype OpenRA.Traits.Stance> OpenRA.Player::Stances
IL_001f: ldarg.0
IL_0020: call instance void object::'.ctor'()
IL_0025: ldarg.0
IL_0026: ldarg.1
IL_0027: call instance void class OpenRA.Player::set_World(class OpenRA.World)
IL_002c: ldarg.0
IL_002d: ldarg.s 4
IL_002f: ldfld string [OpenRA.FileFormats]OpenRA.FileFormats.PlayerReference::Name
IL_0034: stfld string OpenRA.Player::InternalName
IL_0039: ldarg.0
IL_003a: ldarg.s 4
IL_003c: stfld class [OpenRA.FileFormats]OpenRA.FileFormats.PlayerReference OpenRA.Player::PlayerReference
IL_0041: ldloc.0
IL_0042: ldnull
IL_0043: stfld string OpenRA.Player/'<Player>c__AnonStorey24'::botType
IL_0048: ldarg.2
IL_0049: brfalse IL_0095
IL_004e: ldarg.0
IL_004f: ldarg.2
IL_0050: ldfld int32 OpenRA.Network.Session/Client::Index
IL_0055: stfld int32 OpenRA.Player::ClientIndex
IL_005a: ldarg.0
IL_005b: ldarg.2
IL_005c: ldfld valuetype [OpenRA.FileFormats]OpenRA.FileFormats.HSLColor OpenRA.Network.Session/Client::Color
IL_0061: stfld valuetype [OpenRA.FileFormats]OpenRA.FileFormats.HSLColor OpenRA.Player::Color
IL_0066: ldarg.0
IL_0067: ldarg.2
IL_0068: ldfld string OpenRA.Network.Session/Client::Name
IL_006d: stfld string OpenRA.Player::PlayerName
IL_0072: ldloc.0
IL_0073: ldarg.2
IL_0074: ldfld string OpenRA.Network.Session/Client::Bot
IL_0079: stfld string OpenRA.Player/'<Player>c__AnonStorey24'::botType
IL_007e: ldarg.0
IL_007f: ldarg.1
IL_0080: ldarg.2
IL_0081: ldfld string OpenRA.Network.Session/Client::Country
IL_0086: call class OpenRA.Traits.CountryInfo class OpenRA.Player::ChooseCountry(class OpenRA.World, string)
IL_008b: stfld class OpenRA.Traits.CountryInfo OpenRA.Player::Country
IL_0090: br IL_00e3
IL_0095: ldarg.0
IL_0096: ldc.i4.0
IL_0097: stfld int32 OpenRA.Player::ClientIndex
IL_009c: ldarg.0
IL_009d: ldarg.s 4
IL_009f: callvirt instance valuetype [OpenRA.FileFormats]OpenRA.FileFormats.HSLColor class [OpenRA.FileFormats]OpenRA.FileFormats.PlayerReference::get_Color()
IL_00a4: stfld valuetype [OpenRA.FileFormats]OpenRA.FileFormats.HSLColor OpenRA.Player::Color
IL_00a9: ldarg.0
IL_00aa: ldarg.s 4
IL_00ac: ldfld string [OpenRA.FileFormats]OpenRA.FileFormats.PlayerReference::Name
IL_00b1: stfld string OpenRA.Player::PlayerName
IL_00b6: ldarg.0
IL_00b7: ldarg.s 4
IL_00b9: ldfld bool [OpenRA.FileFormats]OpenRA.FileFormats.PlayerReference::NonCombatant
IL_00be: stfld bool OpenRA.Player::NonCombatant
IL_00c3: ldloc.0
IL_00c4: ldarg.s 4
IL_00c6: ldfld string [OpenRA.FileFormats]OpenRA.FileFormats.PlayerReference::Bot
IL_00cb: stfld string OpenRA.Player/'<Player>c__AnonStorey24'::botType
IL_00d0: ldarg.0
IL_00d1: ldarg.1
IL_00d2: ldarg.s 4
IL_00d4: ldfld string [OpenRA.FileFormats]OpenRA.FileFormats.PlayerReference::Race
IL_00d9: call class OpenRA.Traits.CountryInfo class OpenRA.Player::ChooseCountry(class OpenRA.World, string)
IL_00de: stfld class OpenRA.Traits.CountryInfo OpenRA.Player::Country
IL_00e3: ldarg.0
IL_00e4: ldarg.1
IL_00e5: ldstr "Player"
IL_00ea: newobj instance void class [OpenRA.FileFormats]OpenRA.FileFormats.TypeDictionary::'.ctor'()
IL_00ef: stloc.1
IL_00f0: ldloc.1
IL_00f1: ldarg.0
IL_00f2: newobj instance void class OpenRA.OwnerInit::'.ctor'(class OpenRA.Player)
IL_00f7: callvirt instance void class [OpenRA.FileFormats]OpenRA.FileFormats.TypeDictionary::Add(object)
IL_00fc: ldloc.1
IL_00fd: callvirt instance class OpenRA.Actor class OpenRA.World::CreateActor(string, class [OpenRA.FileFormats]OpenRA.FileFormats.TypeDictionary)
IL_0102: stfld class OpenRA.Actor OpenRA.Player::PlayerActor
IL_0107: ldarg.0
IL_0108: ldarg.0
IL_0109: ldfld class OpenRA.Actor OpenRA.Player::PlayerActor
IL_010e: callvirt instance !!0 class OpenRA.Actor::Trait<class OpenRA.Traits.Shroud> ()
IL_0113: stfld class OpenRA.Traits.Shroud OpenRA.Player::Shroud
IL_0118: ldarg.0
IL_0119: ldloc.0
IL_011a: ldfld string OpenRA.Player/'<Player>c__AnonStorey24'::botType
IL_011f: ldnull
IL_0120: ceq
IL_0122: ldc.i4.0
IL_0123: ceq
IL_0125: stfld bool OpenRA.Player::IsBot
IL_012a: ldarg.0
IL_012b: ldfld bool OpenRA.Player::IsBot
IL_0130: brfalse IL_018c
IL_0135: call bool class OpenRA.Game::get_IsHost()
IL_013a: brfalse IL_018c
IL_013f: ldarg.0
IL_0140: ldfld class OpenRA.Actor OpenRA.Player::PlayerActor
IL_0145: callvirt instance class [mscorlib]System.Collections.Generic.IEnumerable`1<!!0> class OpenRA.Actor::TraitsImplementing<class OpenRA.Traits.IBot> ()
IL_014a: ldloc.0
IL_014b: ldftn instance bool class OpenRA.Player/'<Player>c__AnonStorey24'::'<>m__29'(class OpenRA.Traits.IBot)
IL_0151: newobj instance void class [System.Core]System.Func`2<class OpenRA.Traits.IBot, bool>::'.ctor'(object, native int)
IL_0156: call !!0 class [System.Core]System.Linq.Enumerable::FirstOrDefault<class OpenRA.Traits.IBot> (class [mscorlib]System.Collections.Generic.IEnumerable`1<!!0>, class [System.Core]System.Func`2<!!0,bool>)
IL_015b: stloc.2
IL_015c: ldloc.2
IL_015d: brtrue IL_0185
IL_0162: ldstr "debug"
IL_0167: ldstr "Invalid bot type: {0}"
IL_016c: ldc.i4.1
IL_016d: newarr [mscorlib]System.Object
IL_0172: dup
IL_0173: ldc.i4.0
IL_0174: ldloc.0
IL_0175: ldfld string OpenRA.Player/'<Player>c__AnonStorey24'::botType
IL_017a: stelem.ref
IL_017b: call void class [OpenRA.FileFormats]OpenRA.Log::Write(string, string, object[])
IL_0180: br IL_018c
IL_0185: ldloc.2
IL_0186: ldarg.0
IL_0187: callvirt instance void class OpenRA.Traits.IBot::Activate(class OpenRA.Player)
IL_018c: ret
} // end of method Player::.ctor
// method line 171
.method public hidebysig specialname
instance default class OpenRA.World get_World () cil managed
{
.custom instance void class [mscorlib]System.Runtime.CompilerServices.CompilerGeneratedAttribute::'.ctor'() = (01 00 00 00 ) // ....
// Method begins at RVA 0x6280
// Code size 7 (0x7)
.maxstack 8
IL_0000: ldarg.0
IL_0001: ldfld class OpenRA.World OpenRA.Player::'<World>k__BackingField'
IL_0006: ret
} // end of method Player::get_World
// method line 172
.method private hidebysig specialname
instance default void set_World (class OpenRA.World 'value') cil managed
{
.custom instance void class [mscorlib]System.Runtime.CompilerServices.CompilerGeneratedAttribute::'.ctor'() = (01 00 00 00 ) // ....
// Method begins at RVA 0x6288
// Code size 8 (0x8)
.maxstack 8
IL_0000: ldarg.0
IL_0001: ldarg.1
IL_0002: stfld class OpenRA.World OpenRA.Player::'<World>k__BackingField'
IL_0007: ret
} // end of method Player::set_World
// method line 173
.method private static hidebysig
default class OpenRA.Traits.CountryInfo ChooseCountry (class OpenRA.World world, string name) cil managed
{
// Method begins at RVA 0x6294
// Code size 116 (0x74)
.maxstack 12
.locals init (
class OpenRA.Player/'<ChooseCountry>c__AnonStorey25' V_0,
class OpenRA.Traits.CountryInfo[] V_1)
IL_0000: newobj instance void class OpenRA.Player/'<ChooseCountry>c__AnonStorey25'::'.ctor'()
IL_0005: stloc.0
IL_0006: ldloc.0
IL_0007: ldarg.1
IL_0008: stfld string OpenRA.Player/'<ChooseCountry>c__AnonStorey25'::name
IL_000d: ldsfld class [mscorlib]System.Collections.Generic.Dictionary`2<string,class OpenRA.ActorInfo> OpenRA.Rules::Info
IL_0012: ldstr "world"
IL_0017: callvirt instance !1 class [mscorlib]System.Collections.Generic.Dictionary`2<string, class OpenRA.ActorInfo>::get_Item(!0)
IL_001c: ldfld class [OpenRA.FileFormats]OpenRA.FileFormats.TypeDictionary OpenRA.ActorInfo::Traits
IL_0021: callvirt instance class [mscorlib]System.Collections.Generic.IEnumerable`1<!!0> class [OpenRA.FileFormats]OpenRA.FileFormats.TypeDictionary::WithInterface<class OpenRA.Traits.CountryInfo> ()
IL_0026: ldsfld class [System.Core]System.Func`2<class OpenRA.Traits.CountryInfo,bool> OpenRA.Player::'<>f__am$cacheD'
IL_002b: brtrue.s IL_003e
IL_002d: ldnull
IL_002e: ldftn bool class OpenRA.Player::'<ChooseCountry>m__2A'(class OpenRA.Traits.CountryInfo)
IL_0034: newobj instance void class [System.Core]System.Func`2<class OpenRA.Traits.CountryInfo, bool>::'.ctor'(object, native int)
IL_0039: stsfld class [System.Core]System.Func`2<class OpenRA.Traits.CountryInfo,bool> OpenRA.Player::'<>f__am$cacheD'
IL_003e: ldsfld class [System.Core]System.Func`2<class OpenRA.Traits.CountryInfo,bool> OpenRA.Player::'<>f__am$cacheD'
IL_0043: call class [mscorlib]System.Collections.Generic.IEnumerable`1<!!0> class [System.Core]System.Linq.Enumerable::Where<class OpenRA.Traits.CountryInfo> (class [mscorlib]System.Collections.Generic.IEnumerable`1<!!0>, class [System.Core]System.Func`2<!!0,bool>)
IL_0048: call !!0[] class [System.Core]System.Linq.Enumerable::ToArray<class OpenRA.Traits.CountryInfo> (class [mscorlib]System.Collections.Generic.IEnumerable`1<!!0>)
IL_004d: stloc.1
IL_004e: ldloc.1
IL_004f: ldloc.0
IL_0050: ldftn instance bool class OpenRA.Player/'<ChooseCountry>c__AnonStorey25'::'<>m__2B'(class OpenRA.Traits.CountryInfo)
IL_0056: newobj instance void class [System.Core]System.Func`2<class OpenRA.Traits.CountryInfo, bool>::'.ctor'(object, native int)
IL_005b: call !!0 class [System.Core]System.Linq.Enumerable::FirstOrDefault<class OpenRA.Traits.CountryInfo> (class [mscorlib]System.Collections.Generic.IEnumerable`1<!!0>, class [System.Core]System.Func`2<!!0,bool>)
IL_0060: dup
IL_0061: brtrue IL_0073
IL_0066: pop
IL_0067: ldloc.1
IL_0068: ldarg.0
IL_0069: ldfld class [OpenRA.FileFormats]OpenRA.Thirdparty.Random OpenRA.World::SharedRandom
IL_006e: call !!0 class [OpenRA.FileFormats]OpenRA.Exts::Random<class OpenRA.Traits.CountryInfo> (class [mscorlib]System.Collections.Generic.IEnumerable`1<!!0>, class [OpenRA.FileFormats]OpenRA.Thirdparty.Random)
IL_0073: ret
} // end of method Player::ChooseCountry
// method line 174
.method public virtual hidebysig
instance default string ToString () cil managed
{
// Method begins at RVA 0x6314
// Code size 40 (0x28)
.maxstack 8
IL_0000: ldstr "{0} ({1})"
IL_0005: ldc.i4.2
IL_0006: newarr [mscorlib]System.Object
IL_000b: dup
IL_000c: ldc.i4.0
IL_000d: ldarg.0
IL_000e: ldfld string OpenRA.Player::PlayerName
IL_0013: stelem.ref
IL_0014: dup
IL_0015: ldc.i4.1
IL_0016: ldarg.0
IL_0017: ldfld int32 OpenRA.Player::ClientIndex
IL_001c: box [mscorlib]System.Int32
IL_0021: stelem.ref
IL_0022: call string class [OpenRA.FileFormats]OpenRA.Exts::F(string, object[])
IL_0027: ret
} // end of method Player::ToString
// method line 175
.method public hidebysig
instance default bool IsAlliedWith (class OpenRA.Player p) cil managed
{
// Method begins at RVA 0x6340
// Code size 25 (0x19)
.maxstack 8
IL_0000: ldarg.1
IL_0001: brfalse IL_0017
IL_0006: ldarg.0
IL_0007: ldfld class [mscorlib]System.Collections.Generic.Dictionary`2<class OpenRA.Player,valuetype OpenRA.Traits.Stance> OpenRA.Player::Stances
IL_000c: ldarg.1
IL_000d: callvirt instance !1 class [mscorlib]System.Collections.Generic.Dictionary`2<class OpenRA.Player, valuetype OpenRA.Traits.Stance>::get_Item(!0)
IL_0012: ldc.i4.2
IL_0013: ceq
IL_0015: br.s IL_0018
IL_0017: ldc.i4.1
IL_0018: ret
} // end of method Player::IsAlliedWith
// method line 176
.method private static hidebysig
default bool '<ChooseCountry>m__2A' (class OpenRA.Traits.CountryInfo c) cil managed
{
.custom instance void class [mscorlib]System.Runtime.CompilerServices.CompilerGeneratedAttribute::'.ctor'() = (01 00 00 00 ) // ....
// Method begins at RVA 0x635c
// Code size 7 (0x7)
.maxstack 8
IL_0000: ldarg.0
IL_0001: ldfld bool OpenRA.Traits.CountryInfo::Selectable
IL_0006: ret
} // end of method Player::<ChooseCountry>m__2A
.property instance class OpenRA.World World ()
{
.set instance default void OpenRA.Player::set_World (class OpenRA.World 'value')
.get instance default class OpenRA.World OpenRA.Player::get_World ()
}
.class nested private auto ansi sealed beforefieldinit '<Player>c__AnonStorey24'
extends [mscorlib]System.Object
{
.custom instance void class [mscorlib]System.Runtime.CompilerServices.CompilerGeneratedAttribute::'.ctor'() = (01 00 00 00 ) // ....
.field assembly string botType
// method line 2113
.method public hidebysig specialname rtspecialname
instance default void '.ctor' () cil managed
{
// Method begins at RVA 0x2bafc
// Code size 7 (0x7)
.maxstack 8
IL_0000: ldarg.0
IL_0001: call instance void object::'.ctor'()
IL_0006: ret
} // end of method <Player>c__AnonStorey24::.ctor
// method line 2114
.method assembly hidebysig
instance default bool '<>m__29' (class OpenRA.Traits.IBot b) cil managed
{
// Method begins at RVA 0x2bb04
// Code size 23 (0x17)
.maxstack 8
IL_0000: ldarg.1
IL_0001: callvirt instance class OpenRA.Traits.IBotInfo class OpenRA.Traits.IBot::get_Info()
IL_0006: callvirt instance string class OpenRA.Traits.IBotInfo::get_Name()
IL_000b: ldarg.0
IL_000c: ldfld string OpenRA.Player/'<Player>c__AnonStorey24'::botType
IL_0011: call bool string::op_Equality(string, string)
IL_0016: ret
} // end of method <Player>c__AnonStorey24::<>m__29
} // end of class <Player>c__AnonStorey24
.class nested private auto ansi sealed beforefieldinit '<ChooseCountry>c__AnonStorey25'
extends [mscorlib]System.Object
{
.custom instance void class [mscorlib]System.Runtime.CompilerServices.CompilerGeneratedAttribute::'.ctor'() = (01 00 00 00 ) // ....
.field assembly string name
// method line 2115
.method public hidebysig specialname rtspecialname
instance default void '.ctor' () cil managed
{
// Method begins at RVA 0x2bb1c
// Code size 7 (0x7)
.maxstack 8
IL_0000: ldarg.0
IL_0001: call instance void object::'.ctor'()
IL_0006: ret
} // end of method <ChooseCountry>c__AnonStorey25::.ctor
// method line 2116
.method assembly hidebysig
instance default bool '<>m__2B' (class OpenRA.Traits.CountryInfo c) cil managed
{
// Method begins at RVA 0x2bb24
// Code size 18 (0x12)
.maxstack 8
IL_0000: ldarg.1
IL_0001: ldfld string OpenRA.Traits.CountryInfo::Race
IL_0006: ldarg.0
IL_0007: ldfld string OpenRA.Player/'<ChooseCountry>c__AnonStorey25'::name
IL_000c: call bool string::op_Equality(string, string)
IL_0011: ret
} // end of method <ChooseCountry>c__AnonStorey25::<>m__2B
} // end of class <ChooseCountry>c__AnonStorey25
} // end of class OpenRA.Player
}
.namespace OpenRA
{
.class public auto ansi beforefieldinit Download
extends [mscorlib]System.Object
{
.field private class [System]System.Net.WebClient wc
.field private bool cancelled
// method line 177
.method public hidebysig specialname rtspecialname
instance default void '.ctor' (string url, string path, class [mscorlib]System.Action`1<class [System]System.Net.DownloadProgressChangedEventArgs> onProgress, class [System.Core]System.Action`2<class [System]System.ComponentModel.AsyncCompletedEventArgs, bool> onComplete) cil managed
{
// Method begins at RVA 0x6364
// Code size 162 (0xa2)
.maxstack 15
.locals init (
class OpenRA.Download/'<Download>c__AnonStorey26' V_0)
IL_0000: newobj instance void class OpenRA.Download/'<Download>c__AnonStorey26'::'.ctor'()
IL_0005: stloc.0
IL_0006: ldloc.0
IL_0007: ldarg.3
IL_0008: stfld class [mscorlib]System.Action`1<class [System]System.Net.DownloadProgressChangedEventArgs> OpenRA.Download/'<Download>c__AnonStorey26'::onProgress
IL_000d: ldloc.0
IL_000e: ldarg.s 4
IL_0010: stfld class [System.Core]System.Action`2<class [System]System.ComponentModel.AsyncCompletedEventArgs,bool> OpenRA.Download/'<Download>c__AnonStorey26'::onComplete
IL_0015: ldarg.0
IL_0016: call instance void object::'.ctor'()
IL_001b: ldloc.0
IL_001c: ldarg.0
IL_001d: stfld class OpenRA.Download OpenRA.Download/'<Download>c__AnonStorey26'::'<>f__this'
IL_0022: ldarg.0
IL_0023: newobj instance void class [System]System.Net.WebClient::'.ctor'()
IL_0028: stfld class [System]System.Net.WebClient OpenRA.Download::wc
IL_002d: ldarg.0
IL_002e: ldfld class [System]System.Net.WebClient OpenRA.Download::wc
IL_0033: ldnull
IL_0034: callvirt instance void class [System]System.Net.WebClient::set_Proxy(class [System]System.Net.IWebProxy)
IL_0039: ldarg.0
IL_003a: ldfld class [System]System.Net.WebClient OpenRA.Download::wc
IL_003f: ldloc.0
IL_0040: ldftn instance void class OpenRA.Download/'<Download>c__AnonStorey26'::'<>m__2C'(object, class [System]System.Net.DownloadProgressChangedEventArgs)
IL_0046: newobj instance void class [System]System.Net.DownloadProgressChangedEventHandler::'.ctor'(object, native int)
IL_004b: callvirt instance void class [System]System.Net.WebClient::add_DownloadProgressChanged(class [System]System.Net.DownloadProgressChangedEventHandler)
IL_0050: ldarg.0
IL_0051: ldfld class [System]System.Net.WebClient OpenRA.Download::wc
IL_0056: ldloc.0
IL_0057: ldftn instance void class OpenRA.Download/'<Download>c__AnonStorey26'::'<>m__2D'(object, class [System]System.ComponentModel.AsyncCompletedEventArgs)
IL_005d: newobj instance void class [System]System.ComponentModel.AsyncCompletedEventHandler::'.ctor'(object, native int)
IL_0062: callvirt instance void class [System]System.Net.WebClient::add_DownloadFileCompleted(class [System]System.ComponentModel.AsyncCompletedEventHandler)
IL_0067: ldloc.0
IL_0068: ldftn instance void class OpenRA.Download/'<Download>c__AnonStorey26'::'<>m__2E'()
IL_006e: newobj instance void class [System.Core]System.Action::'.ctor'(object, native int)
IL_0073: call void class OpenRA.Game::add_OnQuit(class [System.Core]System.Action)
IL_0078: ldarg.0
IL_0079: ldfld class [System]System.Net.WebClient OpenRA.Download::wc
IL_007e: ldloc.0
IL_007f: ldftn instance void class OpenRA.Download/'<Download>c__AnonStorey26'::'<>m__2F'(object, class [System]System.ComponentModel.AsyncCompletedEventArgs)
IL_0085: newobj instance void class [System]System.ComponentModel.AsyncCompletedEventHandler::'.ctor'(object, native int)
IL_008a: callvirt instance void class [System]System.Net.WebClient::add_DownloadFileCompleted(class [System]System.ComponentModel.AsyncCompletedEventHandler)
IL_008f: ldarg.0
IL_0090: ldfld class [System]System.Net.WebClient OpenRA.Download::wc
IL_0095: ldarg.1
IL_0096: newobj instance void class [System]System.Uri::'.ctor'(string)
IL_009b: ldarg.2
IL_009c: callvirt instance void class [System]System.Net.WebClient::DownloadFileAsync(class [System]System.Uri, string)
IL_00a1: ret
} // end of method Download::.ctor
// method line 178
.method public static hidebysig
default string FormatErrorMessage (class [mscorlib]System.Exception e) cil managed
{
// Method begins at RVA 0x6414
// Code size 80 (0x50)
.maxstack 10
.locals init (
class [System]System.Net.WebException V_0,
valuetype [System]System.Net.WebExceptionStatus V_1)
IL_0000: ldarg.0
IL_0001: isinst [System]System.Net.WebException
IL_0006: stloc.0
IL_0007: ldloc.0
IL_0008: brtrue IL_0014
IL_000d: ldarg.0
IL_000e: callvirt instance string class [mscorlib]System.Exception::get_Message()
IL_0013: ret
IL_0014: ldloc.0
IL_0015: callvirt instance valuetype [System]System.Net.WebExceptionStatus class [System]System.Net.WebException::get_Status()
IL_001a: stloc.1
IL_001b: ldloc.1
IL_001c: ldc.i4.1
IL_001d: beq IL_003d
IL_0022: ldloc.1
IL_0023: ldc.i4.2
IL_0024: beq IL_003d
IL_0029: ldloc.1
IL_002a: ldc.i4.7
IL_002b: beq IL_0043
IL_0030: ldloc.1
IL_0031: ldc.i4.s 0x0e
IL_0033: beq IL_003d
IL_0038: br IL_0049
IL_003d: ldstr "Cannot connect to remote server"
IL_0042: ret
IL_0043: ldstr "File not found on remote server"
IL_0048: ret
IL_0049: ldloc.0
IL_004a: callvirt instance string class [mscorlib]System.Exception::get_Message()
IL_004f: ret
} // end of method Download::FormatErrorMessage
// method line 179
.method public hidebysig
instance default void Cancel () cil managed
{
// Method begins at RVA 0x6470
// Code size 36 (0x24)
.maxstack 8
IL_0000: ldarg.0
IL_0001: ldftn instance void class OpenRA.Download::'<Cancel>m__30'()
IL_0007: newobj instance void class [System.Core]System.Action::'.ctor'(object, native int)
IL_000c: call void class OpenRA.Game::remove_OnQuit(class [System.Core]System.Action)
IL_0011: ldarg.0
IL_0012: ldfld class [System]System.Net.WebClient OpenRA.Download::wc
IL_0017: callvirt instance void class [System]System.Net.WebClient::CancelAsync()
IL_001c: ldarg.0
IL_001d: ldc.i4.1
IL_001e: stfld bool OpenRA.Download::cancelled
IL_0023: ret
} // end of method Download::Cancel
// method line 180
.method private hidebysig
instance default void '<Cancel>m__30' () cil managed
{
.custom instance void class [mscorlib]System.Runtime.CompilerServices.CompilerGeneratedAttribute::'.ctor'() = (01 00 00 00 ) // ....
// Method begins at RVA 0x6498
// Code size 7 (0x7)
.maxstack 8
IL_0000: ldarg.0
IL_0001: call instance void class OpenRA.Download::Cancel()
IL_0006: ret
} // end of method Download::<Cancel>m__30
.class nested private auto ansi sealed beforefieldinit '<Download>c__AnonStorey26'
extends [mscorlib]System.Object
{
.custom instance void class [mscorlib]System.Runtime.CompilerServices.CompilerGeneratedAttribute::'.ctor'() = (01 00 00 00 ) // ....
.field assembly class [mscorlib]System.Action`1<class [System]System.Net.DownloadProgressChangedEventArgs> onProgress
.field assembly class [System.Core]System.Action`2<class [System]System.ComponentModel.AsyncCompletedEventArgs,bool> onComplete
.field assembly class OpenRA.Download '<>f__this'
// method line 2117
.method public hidebysig specialname rtspecialname
instance default void '.ctor' () cil managed
{
// Method begins at RVA 0x2bb38
// Code size 7 (0x7)
.maxstack 8
IL_0000: ldarg.0
IL_0001: call instance void object::'.ctor'()
IL_0006: ret
} // end of method <Download>c__AnonStorey26::.ctor
// method line 2118
.method assembly hidebysig
instance default void '<>m__2C' (object _, class [System]System.Net.DownloadProgressChangedEventArgs a) cil managed
{
// Method begins at RVA 0x2bb40
// Code size 13 (0xd)
.maxstack 8
IL_0000: ldarg.0
IL_0001: ldfld class [mscorlib]System.Action`1<class [System]System.Net.DownloadProgressChangedEventArgs> OpenRA.Download/'<Download>c__AnonStorey26'::onProgress
IL_0006: ldarg.2
IL_0007: callvirt instance void class [mscorlib]System.Action`1<class [System]System.Net.DownloadProgressChangedEventArgs>::Invoke(!0)
IL_000c: ret
} // end of method <Download>c__AnonStorey26::<>m__2C
// method line 2119
.method assembly hidebysig
instance default void '<>m__2D' (object _, class [System]System.ComponentModel.AsyncCompletedEventArgs a) cil managed
{
// Method begins at RVA 0x2bb50
// Code size 24 (0x18)
.maxstack 8
IL_0000: ldarg.0
IL_0001: ldfld class [System.Core]System.Action`2<class [System]System.ComponentModel.AsyncCompletedEventArgs,bool> OpenRA.Download/'<Download>c__AnonStorey26'::onComplete
IL_0006: ldarg.2
IL_0007: ldarg.0
IL_0008: ldfld class OpenRA.Download OpenRA.Download/'<Download>c__AnonStorey26'::'<>f__this'
IL_000d: ldfld bool OpenRA.Download::cancelled
IL_0012: callvirt instance void class [System.Core]System.Action`2<class [System]System.ComponentModel.AsyncCompletedEventArgs, bool>::Invoke(!0, !1)
IL_0017: ret
} // end of method <Download>c__AnonStorey26::<>m__2D
// method line 2120
.method assembly hidebysig
instance default void '<>m__2E' () cil managed
{
// Method begins at RVA 0x2bb6c
// Code size 12 (0xc)
.maxstack 8
IL_0000: ldarg.0
IL_0001: ldfld class OpenRA.Download OpenRA.Download/'<Download>c__AnonStorey26'::'<>f__this'
IL_0006: call instance void class OpenRA.Download::Cancel()
IL_000b: ret
} // end of method <Download>c__AnonStorey26::<>m__2E
// method line 2121
.method assembly hidebysig
instance default void '<>m__2F' (object _, class [System]System.ComponentModel.AsyncCompletedEventArgs a) cil managed
{
// Method begins at RVA 0x2bb7c
// Code size 18 (0x12)
.maxstack 8
IL_0000: ldarg.0
IL_0001: ldftn instance void class OpenRA.Download/'<Download>c__AnonStorey26'::'<>m__31'()
IL_0007: newobj instance void class [System.Core]System.Action::'.ctor'(object, native int)
IL_000c: call void class OpenRA.Game::remove_OnQuit(class [System.Core]System.Action)
IL_0011: ret
} // end of method <Download>c__AnonStorey26::<>m__2F
// method line 2122
.method assembly hidebysig
instance default void '<>m__31' () cil managed
{
// Method begins at RVA 0x2bb90
// Code size 12 (0xc)
.maxstack 8
IL_0000: ldarg.0
IL_0001: ldfld class OpenRA.Download OpenRA.Download/'<Download>c__AnonStorey26'::'<>f__this'
IL_0006: call instance void class OpenRA.Download::Cancel()
IL_000b: ret
} // end of method <Download>c__AnonStorey26::<>m__31
} // end of class <Download>c__AnonStorey26
} // end of class OpenRA.Download
}
.namespace OpenRA
{
.class public auto ansi abstract sealed beforefieldinit Sound
extends [mscorlib]System.Object
{
.field private static class OpenRA.ISoundEngine soundEngine
.field private static class [OpenRA.FileFormats]OpenRA.FileFormats.Cache`2<string,class OpenRA.ISoundSource> sounds
.field private static class OpenRA.ISoundSource rawSource
.field private static class OpenRA.ISound music
.field private static class OpenRA.ISound video
.field private static class OpenRA.GameRules.MusicInfo currentMusic
.field private static class [System.Core]System.Action OnMusicComplete
.field private static float32 soundVolumeModifier
.field private static bool '<MusicPlaying>k__BackingField'
.custom instance void class [mscorlib]System.Runtime.CompilerServices.CompilerGeneratedAttribute::'.ctor'() = (01 00 00 00 ) // ....
.field private static class [mscorlib]System.Collections.Generic.Dictionary`2<string,int32> '<>f__switch$map4'
.custom instance void class [mscorlib]System.Runtime.CompilerServices.CompilerGeneratedAttribute::'.ctor'() = (01 00 00 00 ) // ....
.field private static class [System.Core]System.Func`2<string,class OpenRA.SoundDevice> '<>f__am$cacheA'
.custom instance void class [mscorlib]System.Runtime.CompilerServices.CompilerGeneratedAttribute::'.ctor'() = (01 00 00 00 ) // ....
.field private static class [System.Core]System.Action '<>f__am$cacheB'
.custom instance void class [mscorlib]System.Runtime.CompilerServices.CompilerGeneratedAttribute::'.ctor'() = (01 00 00 00 ) // ....
// method line 181
.method private static specialname rtspecialname
default void '.cctor' () cil managed
{
// Method begins at RVA 0x64a0
// Code size 11 (0xb)
.maxstack 8
IL_0000: ldc.r4 1.
IL_0005: stsfld float32 OpenRA.Sound::soundVolumeModifier
IL_000a: ret
} // end of method Sound::.cctor
// method line 182
.method private static hidebysig
default class OpenRA.ISoundSource LoadSound (string filename) cil managed
{
// Method begins at RVA 0x64ac
// Code size 93 (0x5d)
.maxstack 14
IL_0000: ldarg.0
IL_0001: call bool class [OpenRA.FileFormats]OpenRA.FileFormats.FileSystem::Exists(string)
IL_0006: brtrue IL_0026
IL_000b: ldstr "sound"
IL_0010: ldstr "LoadSound, file does not exist: {0}"
IL_0015: ldc.i4.1
IL_0016: newarr [mscorlib]System.Object
IL_001b: dup
IL_001c: ldc.i4.0
IL_001d: ldarg.0
IL_001e: stelem.ref
IL_001f: call void class [OpenRA.FileFormats]OpenRA.Log::Write(string, string, object[])
IL_0024: ldnull
IL_0025: ret
IL_0026: ldarg.0
IL_0027: callvirt instance string string::ToLowerInvariant()
IL_002c: ldstr "wav"
IL_0031: callvirt instance bool string::EndsWith(string)
IL_0036: brfalse IL_004c
IL_003b: ldarg.0
IL_003c: call class [mscorlib]System.IO.Stream class [OpenRA.FileFormats]OpenRA.FileFormats.FileSystem::Open(string)
IL_0041: newobj instance void class [OpenRA.FileFormats]OpenRA.FileFormats.WavLoader::'.ctor'(class [mscorlib]System.IO.Stream)
IL_0046: call class OpenRA.ISoundSource class OpenRA.Sound::LoadWave(class [OpenRA.FileFormats]OpenRA.FileFormats.WavLoader)
IL_004b: ret
IL_004c: ldarg.0
IL_004d: call class [mscorlib]System.IO.Stream class [OpenRA.FileFormats]OpenRA.FileFormats.FileSystem::Open(string)
IL_0052: call unsigned int8[] class [OpenRA.FileFormats]OpenRA.FileFormats.AudLoader::LoadSound(class [mscorlib]System.IO.Stream)
IL_0057: call class OpenRA.ISoundSource class OpenRA.Sound::LoadSoundRaw(unsigned int8[])
IL_005c: ret
} // end of method Sound::LoadSound
// method line 183
.method private static hidebysig
default class OpenRA.ISoundSource LoadWave (class [OpenRA.FileFormats]OpenRA.FileFormats.WavLoader wave) cil managed
{
// Method begins at RVA 0x6518
// Code size 35 (0x23)
.maxstack 6
IL_0000: ldsfld class OpenRA.ISoundEngine OpenRA.Sound::soundEngine
IL_0005: ldarg.0
IL_0006: ldfld unsigned int8[] [OpenRA.FileFormats]OpenRA.FileFormats.WavLoader::RawOutput
IL_000b: ldarg.0
IL_000c: ldfld int32 [OpenRA.FileFormats]OpenRA.FileFormats.WavLoader::Channels
IL_0011: ldarg.0
IL_0012: ldfld int32 [OpenRA.FileFormats]OpenRA.FileFormats.WavLoader::BitsPerSample
IL_0017: ldarg.0
IL_0018: ldfld int32 [OpenRA.FileFormats]OpenRA.FileFormats.WavLoader::SampleRate
IL_001d: callvirt instance class OpenRA.ISoundSource class OpenRA.ISoundEngine::AddSoundSourceFromMemory(unsigned int8[], int32, int32, int32)
IL_0022: ret
} // end of method Sound::LoadWave
// method line 184
.method private static hidebysig
default class OpenRA.ISoundSource LoadSoundRaw (unsigned int8[] rawData) cil managed
{
// Method begins at RVA 0x6548
// Code size 20 (0x14)
.maxstack 8
IL_0000: ldsfld class OpenRA.ISoundEngine OpenRA.Sound::soundEngine
IL_0005: ldarg.0
IL_0006: ldc.i4.1
IL_0007: ldc.i4.s 0x10
IL_0009: ldc.i4 22050
IL_000e: callvirt instance class OpenRA.ISoundSource class OpenRA.ISoundEngine::AddSoundSourceFromMemory(unsigned int8[], int32, int32, int32)
IL_0013: ret
} // end of method Sound::LoadSoundRaw
// method line 185
.method private static hidebysig
default class OpenRA.ISoundEngine CreateEngine (string engine) cil managed
{
// Method begins at RVA 0x6560
// Code size 162 (0xa2)
.maxstack 14
.locals init (
string V_0,
class [mscorlib]System.Collections.Generic.Dictionary`2<string, int32> V_1,
int32 V_2)
IL_0000: ldsfld class OpenRA.GameRules.Settings OpenRA.Game::Settings
IL_0005: ldfld class OpenRA.GameRules.ServerSettings OpenRA.GameRules.Settings::Server
IL_000a: ldfld bool OpenRA.GameRules.ServerSettings::Dedicated
IL_000f: brfalse IL_001e
IL_0014: ldstr "Null"
IL_0019: br IL_001f
IL_001e: ldarg.0
IL_001f: starg.s 0
IL_0021: ldarg.0
IL_0022: stloc.0
IL_0023: ldloc.0
IL_0024: brfalse IL_0088
IL_0029: ldsfld class [mscorlib]System.Collections.Generic.Dictionary`2<string,int32> OpenRA.Sound::'<>f__switch$map4'
IL_002e: brtrue IL_0058
IL_0033: ldc.i4.2
IL_0034: newobj instance void class [mscorlib]System.Collections.Generic.Dictionary`2<string, int32>::'.ctor'(int32)
IL_0039: stloc.1
IL_003a: ldloc.1
IL_003b: ldstr "AL"
IL_0040: ldc.i4.0
IL_0041: callvirt instance void class [mscorlib]System.Collections.Generic.Dictionary`2<string, int32>::Add(!0, !1)
IL_0046: ldloc.1
IL_0047: ldstr "Null"
IL_004c: ldc.i4.1
IL_004d: callvirt instance void class [mscorlib]System.Collections.Generic.Dictionary`2<string, int32>::Add(!0, !1)
IL_0052: ldloc.1
IL_0053: stsfld class [mscorlib]System.Collections.Generic.Dictionary`2<string,int32> OpenRA.Sound::'<>f__switch$map4'
IL_0058: ldsfld class [mscorlib]System.Collections.Generic.Dictionary`2<string,int32> OpenRA.Sound::'<>f__switch$map4'
IL_005d: ldloc.0
IL_005e: ldloca.s 2
IL_0060: callvirt instance bool class [mscorlib]System.Collections.Generic.Dictionary`2<string, int32>::TryGetValue(!0, [out] !1&)
IL_0065: brfalse IL_0088
IL_006a: ldloc.2
IL_006b: brfalse IL_007c
IL_0070: ldloc.2
IL_0071: ldc.i4.1
IL_0072: beq IL_0082
IL_0077: br IL_0088
IL_007c: newobj instance void class OpenRA.OpenAlSoundEngine::'.ctor'()
IL_0081: ret
IL_0082: newobj instance void class OpenRA.NullSoundEngine::'.ctor'()
IL_0087: ret
IL_0088: ldstr "Unsupported sound engine: {0}"
IL_008d: ldc.i4.1
IL_008e: newarr [mscorlib]System.Object
IL_0093: dup
IL_0094: ldc.i4.0
IL_0095: ldarg.0
IL_0096: stelem.ref
IL_0097: call string class [OpenRA.FileFormats]OpenRA.Exts::F(string, object[])
IL_009c: newobj instance void class [mscorlib]System.InvalidOperationException::'.ctor'(string)
IL_00a1: throw
} // end of method Sound::CreateEngine
// method line 186
.method public static hidebysig
default void Create (string engine) cil managed
{
// Method begins at RVA 0x6610
// Code size 12 (0xc)
.maxstack 8
IL_0000: ldarg.0
IL_0001: call class OpenRA.ISoundEngine class OpenRA.Sound::CreateEngine(string)
IL_0006: stsfld class OpenRA.ISoundEngine OpenRA.Sound::soundEngine
IL_000b: ret
} // end of method Sound::Create
// method line 187
.method public static hidebysig
default void Initialize () cil managed
{
// Method begins at RVA 0x6620
// Code size 41 (0x29)
.maxstack 4
IL_0000: ldnull
IL_0001: ldftn class OpenRA.ISoundSource class OpenRA.Sound::LoadSound(string)
IL_0007: newobj instance void class [System.Core]System.Func`2<string, class OpenRA.ISoundSource>::'.ctor'(object, native int)
IL_000c: newobj instance void class [OpenRA.FileFormats]OpenRA.FileFormats.Cache`2<string, class OpenRA.ISoundSource>::'.ctor'(class [System.Core]System.Func`2<!0,!1>)
IL_0011: stsfld class [OpenRA.FileFormats]OpenRA.FileFormats.Cache`2<string,class OpenRA.ISoundSource> OpenRA.Sound::sounds
IL_0016: ldnull
IL_0017: stsfld class OpenRA.ISound OpenRA.Sound::music
IL_001c: ldnull
IL_001d: stsfld class OpenRA.GameRules.MusicInfo OpenRA.Sound::currentMusic
IL_0022: ldnull
IL_0023: stsfld class OpenRA.ISound OpenRA.Sound::video
IL_0028: ret
} // end of method Sound::Initialize
// method line 188
.method public static hidebysig
default class OpenRA.SoundDevice[] AvailableDevices () cil managed
{
// Method begins at RVA 0x6658
// Code size 98 (0x62)
.maxstack 7
.locals init (
class OpenRA.SoundDevice[] V_0,
class [mscorlib]System.Collections.Generic.IEnumerable`1<class OpenRA.SoundDevice> V_1)
IL_0000: ldc.i4.2
IL_0001: newarr OpenRA.SoundDevice
IL_0006: dup
IL_0007: ldc.i4.0
IL_0008: ldstr "AL"
IL_000d: ldnull
IL_000e: ldstr "Default Output"
IL_0013: newobj instance void class OpenRA.SoundDevice::'.ctor'(string, string, string)
IL_0018: stelem.ref
IL_0019: dup
IL_001a: ldc.i4.1
IL_001b: ldstr "Null"
IL_0020: ldnull
IL_0021: ldstr "Output Disabled"
IL_0026: newobj instance void class OpenRA.SoundDevice::'.ctor'(string, string, string)
IL_002b: stelem.ref
IL_002c: stloc.0
IL_002d: call string[] class OpenRA.OpenAlSoundEngine::AvailableDevices()
IL_0032: ldsfld class [System.Core]System.Func`2<string,class OpenRA.SoundDevice> OpenRA.Sound::'<>f__am$cacheA'
IL_0037: brtrue.s IL_004a
IL_0039: ldnull
IL_003a: ldftn class OpenRA.SoundDevice class OpenRA.Sound::'<AvailableDevices>m__32'(string)
IL_0040: newobj instance void class [System.Core]System.Func`2<string, class OpenRA.SoundDevice>::'.ctor'(object, native int)
IL_0045: stsfld class [System.Core]System.Func`2<string,class OpenRA.SoundDevice> OpenRA.Sound::'<>f__am$cacheA'
IL_004a: ldsfld class [System.Core]System.Func`2<string,class OpenRA.SoundDevice> OpenRA.Sound::'<>f__am$cacheA'
IL_004f: call class [mscorlib]System.Collections.Generic.IEnumerable`1<!!1> class [System.Core]System.Linq.Enumerable::Select<string, class OpenRA.SoundDevice> (class [mscorlib]System.Collections.Generic.IEnumerable`1<!!0>, class [System.Core]System.Func`2<!!0,!!1>)
IL_0054: stloc.1
IL_0055: ldloc.0
IL_0056: ldloc.1
IL_0057: call class [mscorlib]System.Collections.Generic.IEnumerable`1<!!0> class [System.Core]System.Linq.Enumerable::Concat<class OpenRA.SoundDevice> (class [mscorlib]System.Collections.Generic.IEnumerable`1<!!0>, class [mscorlib]System.Collections.Generic.IEnumerable`1<!!0>)
IL_005c: call !!0[] class [System.Core]System.Linq.Enumerable::ToArray<class OpenRA.SoundDevice> (class [mscorlib]System.Collections.Generic.IEnumerable`1<!!0>)
IL_0061: ret
} // end of method Sound::AvailableDevices
// method line 189
.method public static hidebysig
default void SetListenerPosition (valuetype [OpenRA.FileFormats]OpenRA.WPos position) cil managed
{
// Method begins at RVA 0x66c8
// Code size 12 (0xc)
.maxstack 8
IL_0000: ldsfld class OpenRA.ISoundEngine OpenRA.Sound::soundEngine
IL_0005: ldarg.0
IL_0006: callvirt instance void class OpenRA.ISoundEngine::SetListenerPosition(valuetype [OpenRA.FileFormats]OpenRA.WPos)
IL_000b: ret
} // end of method Sound::SetListenerPosition
// method line 190
.method private static hidebysig
default class OpenRA.ISound Play (class OpenRA.Player player, string name, bool headRelative, valuetype [OpenRA.FileFormats]OpenRA.WPos pos, float32 volumeModifier) cil managed
{
// Method begins at RVA 0x66d8
// Code size 72 (0x48)
.maxstack 18
IL_0000: ldarg.1
IL_0001: call bool string::IsNullOrEmpty(string)
IL_0006: brfalse IL_000d
IL_000b: ldnull
IL_000c: ret
IL_000d: ldarg.0
IL_000e: brfalse IL_0026
IL_0013: ldarg.0
IL_0014: ldarg.0
IL_0015: callvirt instance class OpenRA.World class OpenRA.Player::get_World()
IL_001a: callvirt instance class OpenRA.Player class OpenRA.World::get_LocalPlayer()
IL_001f: beq IL_0026
IL_0024: ldnull
IL_0025: ret
IL_0026: ldsfld class OpenRA.ISoundEngine OpenRA.Sound::soundEngine
IL_002b: ldsfld class [OpenRA.FileFormats]OpenRA.FileFormats.Cache`2<string,class OpenRA.ISoundSource> OpenRA.Sound::sounds
IL_0030: ldarg.1
IL_0031: callvirt instance !1 class [OpenRA.FileFormats]OpenRA.FileFormats.Cache`2<string, class OpenRA.ISoundSource>::get_Item(!0)
IL_0036: ldc.i4.0
IL_0037: ldarg.2
IL_0038: ldarg.3
IL_0039: call float32 class OpenRA.Sound::get_InternalSoundVolume()
IL_003e: ldarg.s 4
IL_0040: mul
IL_0041: ldc.i4.1
IL_0042: callvirt instance class OpenRA.ISound class OpenRA.ISoundEngine::Play2D(class OpenRA.ISoundSource, bool, bool, valuetype [OpenRA.FileFormats]OpenRA.WPos, float32, bool)
IL_0047: ret
} // end of method Sound::Play
// method line 191
.method public static hidebysig
default class OpenRA.ISound Play (string name) cil managed
{
// Method begins at RVA 0x672c
// Code size 19 (0x13)
.maxstack 8
IL_0000: ldnull
IL_0001: ldarg.0
IL_0002: ldc.i4.1
IL_0003: ldsfld valuetype [OpenRA.FileFormats]OpenRA.WPos [OpenRA.FileFormats]OpenRA.WPos::Zero
IL_0008: ldc.r4 1.
IL_000d: call class OpenRA.ISound class OpenRA.Sound::Play(class OpenRA.Player, string, bool, valuetype [OpenRA.FileFormats]OpenRA.WPos, float32)
IL_0012: ret
} // end of method Sound::Play
// method line 192
.method public static hidebysig
default class OpenRA.ISound Play (string name, valuetype [OpenRA.FileFormats]OpenRA.WPos pos) cil managed
{
// Method begins at RVA 0x6740
// Code size 15 (0xf)
.maxstack 8
IL_0000: ldnull
IL_0001: ldarg.0
IL_0002: ldc.i4.0
IL_0003: ldarg.1
IL_0004: ldc.r4 1.
IL_0009: call class OpenRA.ISound class OpenRA.Sound::Play(class OpenRA.Player, string, bool, valuetype [OpenRA.FileFormats]OpenRA.WPos, float32)
IL_000e: ret
} // end of method Sound::Play
// method line 193
.method public static hidebysig
default class OpenRA.ISound Play (string name, float32 volumeModifier) cil managed
{
// Method begins at RVA 0x6750
// Code size 15 (0xf)
.maxstack 8
IL_0000: ldnull
IL_0001: ldarg.0
IL_0002: ldc.i4.1
IL_0003: ldsfld valuetype [OpenRA.FileFormats]OpenRA.WPos [OpenRA.FileFormats]OpenRA.WPos::Zero
IL_0008: ldarg.1
IL_0009: call class OpenRA.ISound class OpenRA.Sound::Play(class OpenRA.Player, string, bool, valuetype [OpenRA.FileFormats]OpenRA.WPos, float32)
IL_000e: ret
} // end of method Sound::Play
// method line 194
.method public static hidebysig
default class OpenRA.ISound Play (string name, valuetype [OpenRA.FileFormats]OpenRA.WPos pos, float32 volumeModifier) cil managed
{
// Method begins at RVA 0x6760
// Code size 11 (0xb)
.maxstack 8
IL_0000: ldnull
IL_0001: ldarg.0
IL_0002: ldc.i4.0
IL_0003: ldarg.1
IL_0004: ldarg.2
IL_0005: call class OpenRA.ISound class OpenRA.Sound::Play(class OpenRA.Player, string, bool, valuetype [OpenRA.FileFormats]OpenRA.WPos, float32)
IL_000a: ret
} // end of method Sound::Play
// method line 195
.method public static hidebysig
default class OpenRA.ISound PlayToPlayer (class OpenRA.Player player, string name) cil managed
{
// Method begins at RVA 0x676c
// Code size 19 (0x13)
.maxstack 8
IL_0000: ldarg.0
IL_0001: ldarg.1
IL_0002: ldc.i4.1
IL_0003: ldsfld valuetype [OpenRA.FileFormats]OpenRA.WPos [OpenRA.FileFormats]OpenRA.WPos::Zero
IL_0008: ldc.r4 1.
IL_000d: call class OpenRA.ISound class OpenRA.Sound::Play(class OpenRA.Player, string, bool, valuetype [OpenRA.FileFormats]OpenRA.WPos, float32)
IL_0012: ret
} // end of method Sound::PlayToPlayer
// method line 196
.method public static hidebysig
default class OpenRA.ISound PlayToPlayer (class OpenRA.Player player, string name, valuetype [OpenRA.FileFormats]OpenRA.WPos pos) cil managed
{
// Method begins at RVA 0x6780
// Code size 15 (0xf)
.maxstack 8
IL_0000: ldarg.0
IL_0001: ldarg.1
IL_0002: ldc.i4.0
IL_0003: ldarg.2
IL_0004: ldc.r4 1.
IL_0009: call class OpenRA.ISound class OpenRA.Sound::Play(class OpenRA.Player, string, bool, valuetype [OpenRA.FileFormats]OpenRA.WPos, float32)
IL_000e: ret
} // end of method Sound::PlayToPlayer
// method line 197
.method public static hidebysig
default void PlayVideo (unsigned int8[] raw) cil managed
{
// Method begins at RVA 0x6790
// Code size 45 (0x2d)
.maxstack 10
IL_0000: ldarg.0
IL_0001: call class OpenRA.ISoundSource class OpenRA.Sound::LoadSoundRaw(unsigned int8[])
IL_0006: stsfld class OpenRA.ISoundSource OpenRA.Sound::rawSource
IL_000b: ldsfld class OpenRA.ISoundEngine OpenRA.Sound::soundEngine
IL_0010: ldsfld class OpenRA.ISoundSource OpenRA.Sound::rawSource
IL_0015: ldc.i4.0
IL_0016: ldc.i4.1
IL_0017: ldsfld valuetype [OpenRA.FileFormats]OpenRA.WPos [OpenRA.FileFormats]OpenRA.WPos::Zero
IL_001c: call float32 class OpenRA.Sound::get_InternalSoundVolume()
IL_0021: ldc.i4.0
IL_0022: callvirt instance class OpenRA.ISound class OpenRA.ISoundEngine::Play2D(class OpenRA.ISoundSource, bool, bool, valuetype [OpenRA.FileFormats]OpenRA.WPos, float32, bool)
IL_0027: stsfld class OpenRA.ISound OpenRA.Sound::video
IL_002c: ret
} // end of method Sound::PlayVideo
// method line 198
.method public static hidebysig
default void PlayVideo () cil managed
{
// Method begins at RVA 0x67cc
// Code size 27 (0x1b)
.maxstack 8
IL_0000: ldsfld class OpenRA.ISound OpenRA.Sound::video
IL_0005: brfalse IL_001a
IL_000a: ldsfld class OpenRA.ISoundEngine OpenRA.Sound::soundEngine
IL_000f: ldsfld class OpenRA.ISound OpenRA.Sound::video
IL_0014: ldc.i4.0
IL_0015: callvirt instance void class OpenRA.ISoundEngine::PauseSound(class OpenRA.ISound, bool)
IL_001a: ret
} // end of method Sound::PlayVideo
// method line 199
.method public static hidebysig
default void PauseVideo () cil managed
{
// Method begins at RVA 0x67e8
// Code size 27 (0x1b)
.maxstack 8
IL_0000: ldsfld class OpenRA.ISound OpenRA.Sound::video
IL_0005: brfalse IL_001a
IL_000a: ldsfld class OpenRA.ISoundEngine OpenRA.Sound::soundEngine
IL_000f: ldsfld class OpenRA.ISound OpenRA.Sound::video
IL_0014: ldc.i4.1
IL_0015: callvirt instance void class OpenRA.ISoundEngine::PauseSound(class OpenRA.ISound, bool)
IL_001a: ret
} // end of method Sound::PauseVideo
// method line 200
.method public static hidebysig
default void StopVideo () cil managed
{
// Method begins at RVA 0x6804
// Code size 26 (0x1a)
.maxstack 8
IL_0000: ldsfld class OpenRA.ISound OpenRA.Sound::video
IL_0005: brfalse IL_0019
IL_000a: ldsfld class OpenRA.ISoundEngine OpenRA.Sound::soundEngine
IL_000f: ldsfld class OpenRA.ISound OpenRA.Sound::video
IL_0014: callvirt instance void class OpenRA.ISoundEngine::StopSound(class OpenRA.ISound)
IL_0019: ret
} // end of method Sound::StopVideo
// method line 201
.method public static hidebysig
default void Tick () cil managed
{
// Method begins at RVA 0x6820
// Code size 41 (0x29)
.maxstack 6
IL_0000: call bool class OpenRA.Sound::get_MusicPlaying()
IL_0005: brfalse IL_0028
IL_000a: ldsfld class OpenRA.ISound OpenRA.Sound::music
IL_000f: callvirt instance bool class OpenRA.ISound::get_Playing()
IL_0014: brtrue IL_0028
IL_0019: call void class OpenRA.Sound::StopMusic()
IL_001e: ldsfld class [System.Core]System.Action OpenRA.Sound::OnMusicComplete
IL_0023: callvirt instance void class [System.Core]System.Action::Invoke()
IL_0028: ret
} // end of method Sound::Tick
// method line 202
.method public static hidebysig specialname
default bool get_MusicPlaying () cil managed
{
.custom instance void class [mscorlib]System.Runtime.CompilerServices.CompilerGeneratedAttribute::'.ctor'() = (01 00 00 00 ) // ....
// Method begins at RVA 0x6858
// Code size 6 (0x6)
.maxstack 8
IL_0000: ldsfld bool OpenRA.Sound::'<MusicPlaying>k__BackingField'
IL_0005: ret
} // end of method Sound::get_MusicPlaying
// method line 203
.method private static hidebysig specialname
default void set_MusicPlaying (bool 'value') cil managed
{
.custom instance void class [mscorlib]System.Runtime.CompilerServices.CompilerGeneratedAttribute::'.ctor'() = (01 00 00 00 ) // ....
// Method begins at RVA 0x6860
// Code size 7 (0x7)
.maxstack 8
IL_0000: ldarg.0
IL_0001: stsfld bool OpenRA.Sound::'<MusicPlaying>k__BackingField'
IL_0006: ret
} // end of method Sound::set_MusicPlaying
// method line 204
.method public static hidebysig specialname
default class OpenRA.GameRules.MusicInfo get_CurrentMusic () cil managed
{
// Method begins at RVA 0x6868
// Code size 6 (0x6)
.maxstack 8
IL_0000: ldsfld class OpenRA.GameRules.MusicInfo OpenRA.Sound::currentMusic
IL_0005: ret
} // end of method Sound::get_CurrentMusic
// method line 205
.method public static hidebysig
default void PlayMusic (class OpenRA.GameRules.MusicInfo m) cil managed
{
// Method begins at RVA 0x6870
// Code size 36 (0x24)
.maxstack 8
IL_0000: ldarg.0
IL_0001: ldsfld class [System.Core]System.Action OpenRA.Sound::'<>f__am$cacheB'
IL_0006: brtrue.s IL_0019
IL_0008: ldnull
IL_0009: ldftn void class OpenRA.Sound::'<PlayMusic>m__33'()
IL_000f: newobj instance void class [System.Core]System.Action::'.ctor'(object, native int)
IL_0014: stsfld class [System.Core]System.Action OpenRA.Sound::'<>f__am$cacheB'
IL_0019: ldsfld class [System.Core]System.Action OpenRA.Sound::'<>f__am$cacheB'
IL_001e: call void class OpenRA.Sound::PlayMusicThen(class OpenRA.GameRules.MusicInfo, class [System.Core]System.Action)
IL_0023: ret
} // end of method Sound::PlayMusic
// method line 206
.method public static hidebysig
default void PlayMusicThen (class OpenRA.GameRules.MusicInfo m, class [System.Core]System.Action then) cil managed
{
// Method begins at RVA 0x6898
// Code size 139 (0x8b)
.maxstack 17
.locals init (
class OpenRA.ISoundSource V_0)
IL_0000: ldarg.0
IL_0001: brfalse IL_0011
IL_0006: ldarg.0
IL_0007: callvirt instance bool class OpenRA.GameRules.MusicInfo::get_Exists()
IL_000c: brtrue IL_0012
IL_0011: ret
IL_0012: ldarg.1
IL_0013: stsfld class [System.Core]System.Action OpenRA.Sound::OnMusicComplete
IL_0018: ldarg.0
IL_0019: ldsfld class OpenRA.GameRules.MusicInfo OpenRA.Sound::currentMusic
IL_001e: bne.un IL_0044
IL_0023: ldsfld class OpenRA.ISound OpenRA.Sound::music
IL_0028: brfalse IL_0044
IL_002d: ldsfld class OpenRA.ISoundEngine OpenRA.Sound::soundEngine
IL_0032: ldsfld class OpenRA.ISound OpenRA.Sound::music
IL_0037: ldc.i4.0
IL_0038: callvirt instance void class OpenRA.ISoundEngine::PauseSound(class OpenRA.ISound, bool)
IL_003d: ldc.i4.1
IL_003e: call void class OpenRA.Sound::set_MusicPlaying(bool)
IL_0043: ret
IL_0044: call void class OpenRA.Sound::StopMusic()
IL_0049: ldsfld class [OpenRA.FileFormats]OpenRA.FileFormats.Cache`2<string,class OpenRA.ISoundSource> OpenRA.Sound::sounds
IL_004e: ldarg.0
IL_004f: ldfld string OpenRA.GameRules.MusicInfo::Filename
IL_0054: callvirt instance !1 class [OpenRA.FileFormats]OpenRA.FileFormats.Cache`2<string, class OpenRA.ISoundSource>::get_Item(!0)
IL_0059: stloc.0
IL_005a: ldloc.0
IL_005b: brtrue IL_0061
IL_0060: ret
IL_0061: ldsfld class OpenRA.ISoundEngine OpenRA.Sound::soundEngine
IL_0066: ldloc.0
IL_0067: ldc.i4.0
IL_0068: ldc.i4.1
IL_0069: ldsfld valuetype [OpenRA.FileFormats]OpenRA.WPos [OpenRA.FileFormats]OpenRA.WPos::Zero
IL_006e: call float32 class OpenRA.Sound::get_MusicVolume()
IL_0073: ldc.i4.0
IL_0074: callvirt instance class OpenRA.ISound class OpenRA.ISoundEngine::Play2D(class OpenRA.ISoundSource, bool, bool, valuetype [OpenRA.FileFormats]OpenRA.WPos, float32, bool)
IL_0079: stsfld class OpenRA.ISound OpenRA.Sound::music
IL_007e: ldarg.0
IL_007f: stsfld class OpenRA.GameRules.MusicInfo OpenRA.Sound::currentMusic
IL_0084: ldc.i4.1
IL_0085: call void class OpenRA.Sound::set_MusicPlaying(bool)
IL_008a: ret
} // end of method Sound::PlayMusicThen
// method line 207
.method public static hidebysig
default void PlayMusic () cil managed
{
// Method begins at RVA 0x6930
// Code size 34 (0x22)
.maxstack 8
IL_0000: ldsfld class OpenRA.ISound OpenRA.Sound::music
IL_0005: brtrue IL_000b
IL_000a: ret
IL_000b: ldc.i4.1
IL_000c: call void class OpenRA.Sound::set_MusicPlaying(bool)
IL_0011: ldsfld class OpenRA.ISoundEngine OpenRA.Sound::soundEngine
IL_0016: ldsfld class OpenRA.ISound OpenRA.Sound::music
IL_001b: ldc.i4.0
IL_001c: callvirt instance void class OpenRA.ISoundEngine::PauseSound(class OpenRA.ISound, bool)
IL_0021: ret
} // end of method Sound::PlayMusic
// method line 208
.method public static hidebysig
default void StopSound (class OpenRA.ISound sound) cil managed
{
// Method begins at RVA 0x6954
// Code size 18 (0x12)
.maxstack 8
IL_0000: ldarg.0
IL_0001: brfalse IL_0011
IL_0006: ldsfld class OpenRA.ISoundEngine OpenRA.Sound::soundEngine
IL_000b: ldarg.0
IL_000c: callvirt instance void class OpenRA.ISoundEngine::StopSound(class OpenRA.ISound)
IL_0011: ret
} // end of method Sound::StopSound
// method line 209
.method public static hidebysig
default void StopMusic () cil managed
{
// Method begins at RVA 0x6968
// Code size 38 (0x26)
.maxstack 8
IL_0000: ldsfld class OpenRA.ISound OpenRA.Sound::music
IL_0005: brfalse IL_0019
IL_000a: ldsfld class OpenRA.ISoundEngine OpenRA.Sound::soundEngine
IL_000f: ldsfld class OpenRA.ISound OpenRA.Sound::music
IL_0014: callvirt instance void class OpenRA.ISoundEngine::StopSound(class OpenRA.ISound)
IL_0019: ldc.i4.0
IL_001a: call void class OpenRA.Sound::set_MusicPlaying(bool)
IL_001f: ldnull
IL_0020: stsfld class OpenRA.GameRules.MusicInfo OpenRA.Sound::currentMusic
IL_0025: ret
} // end of method Sound::StopMusic
// method line 210
.method public static hidebysig
default void PauseMusic () cil managed
{
// Method begins at RVA 0x6990
// Code size 34 (0x22)
.maxstack 8
IL_0000: ldsfld class OpenRA.ISound OpenRA.Sound::music
IL_0005: brtrue IL_000b
IL_000a: ret
IL_000b: ldc.i4.0
IL_000c: call void class OpenRA.Sound::set_MusicPlaying(bool)
IL_0011: ldsfld class OpenRA.ISoundEngine OpenRA.Sound::soundEngine
IL_0016: ldsfld class OpenRA.ISound OpenRA.Sound::music
IL_001b: ldc.i4.1
IL_001c: callvirt instance void class OpenRA.ISoundEngine::PauseSound(class OpenRA.ISound, bool)
IL_0021: ret
} // end of method Sound::PauseMusic
// method line 211
.method public static hidebysig specialname
default float32 get_GlobalVolume () cil managed
{
// Method begins at RVA 0x69b4
// Code size 11 (0xb)
.maxstack 8
IL_0000: ldsfld class OpenRA.ISoundEngine OpenRA.Sound::soundEngine
IL_0005: callvirt instance float32 class OpenRA.ISoundEngine::get_Volume()
IL_000a: ret
} // end of method Sound::get_GlobalVolume
// method line 212
.method public static hidebysig specialname
default void set_GlobalVolume (float32 'value') cil managed
{
// Method begins at RVA 0x69c0
// Code size 12 (0xc)
.maxstack 8
IL_0000: ldsfld class OpenRA.ISoundEngine OpenRA.Sound::soundEngine
IL_0005: ldarg.0
IL_0006: callvirt instance void class OpenRA.ISoundEngine::set_Volume(float32)
IL_000b: ret
} // end of method Sound::set_GlobalVolume
// method line 213
.method public static hidebysig specialname
default float32 get_SoundVolumeModifier () cil managed
{
// Method begins at RVA 0x69d0
// Code size 6 (0x6)
.maxstack 8
IL_0000: ldsfld float32 OpenRA.Sound::soundVolumeModifier
IL_0005: ret
} // end of method Sound::get_SoundVolumeModifier
// method line 214
.method public static hidebysig specialname
default void set_SoundVolumeModifier (float32 'value') cil managed
{
// Method begins at RVA 0x69d8
// Code size 32 (0x20)
.maxstack 8
IL_0000: ldarg.0
IL_0001: stsfld float32 OpenRA.Sound::soundVolumeModifier
IL_0006: ldsfld class OpenRA.ISoundEngine OpenRA.Sound::soundEngine
IL_000b: call float32 class OpenRA.Sound::get_InternalSoundVolume()
IL_0010: ldsfld class OpenRA.ISound OpenRA.Sound::music
IL_0015: ldsfld class OpenRA.ISound OpenRA.Sound::video
IL_001a: callvirt instance void class OpenRA.ISoundEngine::SetSoundVolume(float32, class OpenRA.ISound, class OpenRA.ISound)
IL_001f: ret
} // end of method Sound::set_SoundVolumeModifier
// method line 215
.method private static hidebysig specialname
default float32 get_InternalSoundVolume () cil managed
{
// Method begins at RVA 0x69fc
// Code size 12 (0xc)
.maxstack 8
IL_0000: call float32 class OpenRA.Sound::get_SoundVolume()
IL_0005: ldsfld float32 OpenRA.Sound::soundVolumeModifier
IL_000a: mul
IL_000b: ret
} // end of method Sound::get_InternalSoundVolume
// method line 216
.method public static hidebysig specialname
default float32 get_SoundVolume () cil managed
{
// Method begins at RVA 0x6a0c
// Code size 16 (0x10)
.maxstack 8
IL_0000: ldsfld class OpenRA.GameRules.Settings OpenRA.Game::Settings
IL_0005: ldfld class OpenRA.GameRules.SoundSettings OpenRA.GameRules.Settings::Sound
IL_000a: ldfld float32 OpenRA.GameRules.SoundSettings::SoundVolume
IL_000f: ret
} // end of method Sound::get_SoundVolume
// method line 217
.method public static hidebysig specialname
default void set_SoundVolume (float32 'value') cil managed
{
// Method begins at RVA 0x6a20
// Code size 42 (0x2a)
.maxstack 8
IL_0000: ldsfld class OpenRA.GameRules.Settings OpenRA.Game::Settings
IL_0005: ldfld class OpenRA.GameRules.SoundSettings OpenRA.GameRules.Settings::Sound
IL_000a: ldarg.0
IL_000b: stfld float32 OpenRA.GameRules.SoundSettings::SoundVolume
IL_0010: ldsfld class OpenRA.ISoundEngine OpenRA.Sound::soundEngine
IL_0015: call float32 class OpenRA.Sound::get_InternalSoundVolume()
IL_001a: ldsfld class OpenRA.ISound OpenRA.Sound::music
IL_001f: ldsfld class OpenRA.ISound OpenRA.Sound::video
IL_0024: callvirt instance void class OpenRA.ISoundEngine::SetSoundVolume(float32, class OpenRA.ISound, class OpenRA.ISound)
IL_0029: ret
} // end of method Sound::set_SoundVolume
// method line 218
.method public static hidebysig specialname
default float32 get_MusicVolume () cil managed
{
// Method begins at RVA 0x6a4c
// Code size 16 (0x10)
.maxstack 8
IL_0000: ldsfld class OpenRA.GameRules.Settings OpenRA.Game::Settings
IL_0005: ldfld class OpenRA.GameRules.SoundSettings OpenRA.GameRules.Settings::Sound
IL_000a: ldfld float32 OpenRA.GameRules.SoundSettings::MusicVolume
IL_000f: ret
} // end of method Sound::get_MusicVolume
// method line 219
.method public static hidebysig specialname
default void set_MusicVolume (float32 'value') cil managed
{
// Method begins at RVA 0x6a60
// Code size 38 (0x26)
.maxstack 8
IL_0000: ldsfld class OpenRA.GameRules.Settings OpenRA.Game::Settings
IL_0005: ldfld class OpenRA.GameRules.SoundSettings OpenRA.GameRules.Settings::Sound
IL_000a: ldarg.0
IL_000b: stfld float32 OpenRA.GameRules.SoundSettings::MusicVolume
IL_0010: ldsfld class OpenRA.ISound OpenRA.Sound::music
IL_0015: brfalse IL_0025
IL_001a: ldsfld class OpenRA.ISound OpenRA.Sound::music
IL_001f: ldarg.0
IL_0020: callvirt instance void class OpenRA.ISound::set_Volume(float32)
IL_0025: ret
} // end of method Sound::set_MusicVolume
// method line 220
.method public static hidebysig specialname
default float32 get_VideoVolume () cil managed
{
// Method begins at RVA 0x6a88
// Code size 16 (0x10)
.maxstack 8
IL_0000: ldsfld class OpenRA.GameRules.Settings OpenRA.Game::Settings
IL_0005: ldfld class OpenRA.GameRules.SoundSettings OpenRA.GameRules.Settings::Sound
IL_000a: ldfld float32 OpenRA.GameRules.SoundSettings::VideoVolume
IL_000f: ret
} // end of method Sound::get_VideoVolume
// method line 221
.method public static hidebysig specialname
default void set_VideoVolume (float32 'value') cil managed
{
// Method begins at RVA 0x6a9c
// Code size 38 (0x26)
.maxstack 8
IL_0000: ldsfld class OpenRA.GameRules.Settings OpenRA.Game::Settings
IL_0005: ldfld class OpenRA.GameRules.SoundSettings OpenRA.GameRules.Settings::Sound
IL_000a: ldarg.0
IL_000b: stfld float32 OpenRA.GameRules.SoundSettings::VideoVolume
IL_0010: ldsfld class OpenRA.ISound OpenRA.Sound::video
IL_0015: brfalse IL_0025
IL_001a: ldsfld class OpenRA.ISound OpenRA.Sound::video
IL_001f: ldarg.0
IL_0020: callvirt instance void class OpenRA.ISound::set_Volume(float32)
IL_0025: ret
} // end of method Sound::set_VideoVolume
// method line 222
.method public static hidebysig specialname
default float32 get_MusicSeekPosition () cil managed
{
// Method begins at RVA 0x6ac4
// Code size 31 (0x1f)
.maxstack 8
IL_0000: ldsfld class OpenRA.ISound OpenRA.Sound::music
IL_0005: brfalse IL_0019
IL_000a: ldsfld class OpenRA.ISound OpenRA.Sound::music
IL_000f: callvirt instance float32 class OpenRA.ISound::get_SeekPosition()
IL_0014: br IL_001e
IL_0019: ldc.r4 0.
IL_001e: ret
} // end of method Sound::get_MusicSeekPosition
// method line 223
.method public static hidebysig specialname
default float32 get_VideoSeekPosition () cil managed
{
// Method begins at RVA 0x6ae4
// Code size 31 (0x1f)
.maxstack 8
IL_0000: ldsfld class OpenRA.ISound OpenRA.Sound::video
IL_0005: brfalse IL_0019
IL_000a: ldsfld class OpenRA.ISound OpenRA.Sound::video
IL_000f: callvirt instance float32 class OpenRA.ISound::get_SeekPosition()
IL_0014: br IL_001e
IL_0019: ldc.r4 0.
IL_001e: ret
} // end of method Sound::get_VideoSeekPosition
// method line 224
.method public static hidebysig
default bool PlayPredefined (class OpenRA.Player p, class OpenRA.Actor voicedUnit, string 'type', string definition, string 'variant', bool attentuateVolume) cil managed
{
// Method begins at RVA 0x6b04
// Code size 643 (0x283)
.maxstack 89
.locals init (
class OpenRA.GameRules.SoundInfo V_0,
unsigned int32 V_1,
string V_2,
string V_3,
string V_4,
string V_5)
IL_0000: ldarg.3
IL_0001: brtrue IL_0008
IL_0006: ldc.i4.0
IL_0007: ret
IL_0008: ldsfld class [mscorlib]System.Collections.Generic.Dictionary`2<string,class OpenRA.GameRules.SoundInfo> OpenRA.Rules::Voices
IL_000d: brtrue IL_0014
IL_0012: ldc.i4.0
IL_0013: ret
IL_0014: ldsfld class [mscorlib]System.Collections.Generic.Dictionary`2<string,class OpenRA.GameRules.SoundInfo> OpenRA.Rules::Notifications
IL_0019: brtrue IL_0020
IL_001e: ldc.i4.0
IL_001f: ret
IL_0020: ldarg.1
IL_0021: brfalse IL_0036
IL_0026: ldsfld class [mscorlib]System.Collections.Generic.Dictionary`2<string,class OpenRA.GameRules.SoundInfo> OpenRA.Rules::Voices
IL_002b: ldarg.2
IL_002c: callvirt instance !1 class [mscorlib]System.Collections.Generic.Dictionary`2<string, class OpenRA.GameRules.SoundInfo>::get_Item(!0)
IL_0031: br IL_0041
IL_0036: ldsfld class [mscorlib]System.Collections.Generic.Dictionary`2<string,class OpenRA.GameRules.SoundInfo> OpenRA.Rules::Notifications
IL_003b: ldarg.2
IL_003c: callvirt instance !1 class [mscorlib]System.Collections.Generic.Dictionary`2<string, class OpenRA.GameRules.SoundInfo>::get_Item(!0)
IL_0041: stloc.0
IL_0042: ldloc.0
IL_0043: brtrue IL_004a
IL_0048: ldc.i4.0
IL_0049: ret
IL_004a: ldarg.1
IL_004b: brfalse IL_005b
IL_0050: ldarg.1
IL_0051: ldfld unsigned int32 OpenRA.Actor::ActorID
IL_0056: br IL_005c
IL_005b: ldc.i4.0
IL_005c: stloc.1
IL_005d: ldloc.0
IL_005e: ldfld string OpenRA.GameRules.SoundInfo::DefaultVariant
IL_0063: stloc.3
IL_0064: ldloc.0
IL_0065: ldfld string OpenRA.GameRules.SoundInfo::DefaultPrefix
IL_006a: stloc.s 4
IL_006c: ldarg.1
IL_006d: brfalse IL_0146
IL_0072: ldloc.0
IL_0073: ldfld class [OpenRA.FileFormats]OpenRA.FileFormats.Lazy`1<class [mscorlib]System.Collections.Generic.Dictionary`2<string,class OpenRA.GameRules.SoundPool>> OpenRA.GameRules.SoundInfo::VoicePools
IL_0078: callvirt instance !0 class [OpenRA.FileFormats]OpenRA.FileFormats.Lazy`1<class [mscorlib]System.Collections.Generic.Dictionary`2<string, class OpenRA.GameRules.SoundPool>>::get_Value()
IL_007d: ldstr "Attack"
IL_0082: callvirt instance bool class [mscorlib]System.Collections.Generic.Dictionary`2<string, class OpenRA.GameRules.SoundPool>::ContainsKey(!0)
IL_0087: brtrue IL_00b6
IL_008c: ldloc.0
IL_008d: ldfld class [OpenRA.FileFormats]OpenRA.FileFormats.Lazy`1<class [mscorlib]System.Collections.Generic.Dictionary`2<string,class OpenRA.GameRules.SoundPool>> OpenRA.GameRules.SoundInfo::VoicePools
IL_0092: callvirt instance !0 class [OpenRA.FileFormats]OpenRA.FileFormats.Lazy`1<class [mscorlib]System.Collections.Generic.Dictionary`2<string, class OpenRA.GameRules.SoundPool>>::get_Value()
IL_0097: ldstr "Attack"
IL_009c: ldloc.0
IL_009d: ldfld class [OpenRA.FileFormats]OpenRA.FileFormats.Lazy`1<class [mscorlib]System.Collections.Generic.Dictionary`2<string,class OpenRA.GameRules.SoundPool>> OpenRA.GameRules.SoundInfo::VoicePools
IL_00a2: callvirt instance !0 class [OpenRA.FileFormats]OpenRA.FileFormats.Lazy`1<class [mscorlib]System.Collections.Generic.Dictionary`2<string, class OpenRA.GameRules.SoundPool>>::get_Value()
IL_00a7: ldstr "Move"
IL_00ac: callvirt instance !1 class [mscorlib]System.Collections.Generic.Dictionary`2<string, class OpenRA.GameRules.SoundPool>::get_Item(!0)
IL_00b1: callvirt instance void class [mscorlib]System.Collections.Generic.Dictionary`2<string, class OpenRA.GameRules.SoundPool>::Add(!0, !1)
IL_00b6: ldloc.0
IL_00b7: ldfld class [OpenRA.FileFormats]OpenRA.FileFormats.Lazy`1<class [mscorlib]System.Collections.Generic.Dictionary`2<string,class OpenRA.GameRules.SoundPool>> OpenRA.GameRules.SoundInfo::VoicePools
IL_00bc: callvirt instance !0 class [OpenRA.FileFormats]OpenRA.FileFormats.Lazy`1<class [mscorlib]System.Collections.Generic.Dictionary`2<string, class OpenRA.GameRules.SoundPool>>::get_Value()
IL_00c1: ldstr "AttackMove"
IL_00c6: callvirt instance bool class [mscorlib]System.Collections.Generic.Dictionary`2<string, class OpenRA.GameRules.SoundPool>::ContainsKey(!0)
IL_00cb: brtrue IL_00fa
IL_00d0: ldloc.0
IL_00d1: ldfld class [OpenRA.FileFormats]OpenRA.FileFormats.Lazy`1<class [mscorlib]System.Collections.Generic.Dictionary`2<string,class OpenRA.GameRules.SoundPool>> OpenRA.GameRules.SoundInfo::VoicePools
IL_00d6: callvirt instance !0 class [OpenRA.FileFormats]OpenRA.FileFormats.Lazy`1<class [mscorlib]System.Collections.Generic.Dictionary`2<string, class OpenRA.GameRules.SoundPool>>::get_Value()
IL_00db: ldstr "AttackMove"
IL_00e0: ldloc.0
IL_00e1: ldfld class [OpenRA.FileFormats]OpenRA.FileFormats.Lazy`1<class [mscorlib]System.Collections.Generic.Dictionary`2<string,class OpenRA.GameRules.SoundPool>> OpenRA.GameRules.SoundInfo::VoicePools
IL_00e6: callvirt instance !0 class [OpenRA.FileFormats]OpenRA.FileFormats.Lazy`1<class [mscorlib]System.Collections.Generic.Dictionary`2<string, class OpenRA.GameRules.SoundPool>>::get_Value()
IL_00eb: ldstr "Move"
IL_00f0: callvirt instance !1 class [mscorlib]System.Collections.Generic.Dictionary`2<string, class OpenRA.GameRules.SoundPool>::get_Item(!0)
IL_00f5: callvirt instance void class [mscorlib]System.Collections.Generic.Dictionary`2<string, class OpenRA.GameRules.SoundPool>::Add(!0, !1)
IL_00fa: ldloc.0
IL_00fb: ldfld class [OpenRA.FileFormats]OpenRA.FileFormats.Lazy`1<class [mscorlib]System.Collections.Generic.Dictionary`2<string,class OpenRA.GameRules.SoundPool>> OpenRA.GameRules.SoundInfo::VoicePools
IL_0100: callvirt instance !0 class [OpenRA.FileFormats]OpenRA.FileFormats.Lazy`1<class [mscorlib]System.Collections.Generic.Dictionary`2<string, class OpenRA.GameRules.SoundPool>>::get_Value()
IL_0105: ldarg.3
IL_0106: callvirt instance bool class [mscorlib]System.Collections.Generic.Dictionary`2<string, class OpenRA.GameRules.SoundPool>::ContainsKey(!0)
IL_010b: brtrue IL_012a
IL_0110: ldstr "Can't find {0} in voice pool."
IL_0115: ldc.i4.1
IL_0116: newarr [mscorlib]System.Object
IL_011b: dup
IL_011c: ldc.i4.0
IL_011d: ldarg.3
IL_011e: stelem.ref
IL_011f: call string class [OpenRA.FileFormats]OpenRA.Exts::F(string, object[])
IL_0124: newobj instance void class [mscorlib]System.InvalidOperationException::'.ctor'(string)
IL_0129: throw
IL_012a: ldloc.0
IL_012b: ldfld class [OpenRA.FileFormats]OpenRA.FileFormats.Lazy`1<class [mscorlib]System.Collections.Generic.Dictionary`2<string,class OpenRA.GameRules.SoundPool>> OpenRA.GameRules.SoundInfo::VoicePools
IL_0130: callvirt instance !0 class [OpenRA.FileFormats]OpenRA.FileFormats.Lazy`1<class [mscorlib]System.Collections.Generic.Dictionary`2<string, class OpenRA.GameRules.SoundPool>>::get_Value()
IL_0135: ldarg.3
IL_0136: callvirt instance !1 class [mscorlib]System.Collections.Generic.Dictionary`2<string, class OpenRA.GameRules.SoundPool>::get_Item(!0)
IL_013b: callvirt instance string class OpenRA.GameRules.SoundPool::GetNext()
IL_0140: stloc.2
IL_0141: br IL_018d
IL_0146: ldloc.0
IL_0147: ldfld class [OpenRA.FileFormats]OpenRA.FileFormats.Lazy`1<class [mscorlib]System.Collections.Generic.Dictionary`2<string,class OpenRA.GameRules.SoundPool>> OpenRA.GameRules.SoundInfo::NotificationsPools
IL_014c: callvirt instance !0 class [OpenRA.FileFormats]OpenRA.FileFormats.Lazy`1<class [mscorlib]System.Collections.Generic.Dictionary`2<string, class OpenRA.GameRules.SoundPool>>::get_Value()
IL_0151: ldarg.3
IL_0152: callvirt instance bool class [mscorlib]System.Collections.Generic.Dictionary`2<string, class OpenRA.GameRules.SoundPool>::ContainsKey(!0)
IL_0157: brtrue IL_0176
IL_015c: ldstr "Can't find {0} in notification pool."
IL_0161: ldc.i4.1
IL_0162: newarr [mscorlib]System.Object
IL_0167: dup
IL_0168: ldc.i4.0
IL_0169: ldarg.3
IL_016a: stelem.ref
IL_016b: call string class [OpenRA.FileFormats]OpenRA.Exts::F(string, object[])
IL_0170: newobj instance void class [mscorlib]System.InvalidOperationException::'.ctor'(string)
IL_0175: throw
IL_0176: ldloc.0
IL_0177: ldfld class [OpenRA.FileFormats]OpenRA.FileFormats.Lazy`1<class [mscorlib]System.Collections.Generic.Dictionary`2<string,class OpenRA.GameRules.SoundPool>> OpenRA.GameRules.SoundInfo::NotificationsPools
IL_017c: callvirt instance !0 class [OpenRA.FileFormats]OpenRA.FileFormats.Lazy`1<class [mscorlib]System.Collections.Generic.Dictionary`2<string, class OpenRA.GameRules.SoundPool>>::get_Value()
IL_0181: ldarg.3
IL_0182: callvirt instance !1 class [mscorlib]System.Collections.Generic.Dictionary`2<string, class OpenRA.GameRules.SoundPool>::get_Item(!0)
IL_0187: callvirt instance string class OpenRA.GameRules.SoundPool::GetNext()
IL_018c: stloc.2
IL_018d: ldloc.2
IL_018e: call bool string::IsNullOrEmpty(string)
IL_0193: brfalse IL_019a
IL_0198: ldc.i4.0
IL_0199: ret
IL_019a: ldarg.s 4
IL_019c: brfalse IL_022e
IL_01a1: ldloc.0
IL_01a2: ldfld class [mscorlib]System.Collections.Generic.Dictionary`2<string,string[]> OpenRA.GameRules.SoundInfo::Variants
IL_01a7: ldarg.s 4
IL_01a9: callvirt instance bool class [mscorlib]System.Collections.Generic.Dictionary`2<string, string[]>::ContainsKey(!0)
IL_01ae: brfalse IL_01e7
IL_01b3: ldloc.0
IL_01b4: ldfld string[] OpenRA.GameRules.SoundInfo::DisableVariants
IL_01b9: ldarg.3
IL_01ba: call bool class [System.Core]System.Linq.Enumerable::Contains<string> (class [mscorlib]System.Collections.Generic.IEnumerable`1<!!0>, !!0)
IL_01bf: brtrue IL_01e7
IL_01c4: ldloc.0
IL_01c5: ldfld class [mscorlib]System.Collections.Generic.Dictionary`2<string,string[]> OpenRA.GameRules.SoundInfo::Variants
IL_01ca: ldarg.s 4
IL_01cc: callvirt instance !1 class [mscorlib]System.Collections.Generic.Dictionary`2<string, string[]>::get_Item(!0)
IL_01d1: ldloc.1
IL_01d2: conv.u8
IL_01d3: ldloc.0
IL_01d4: ldfld class [mscorlib]System.Collections.Generic.Dictionary`2<string,string[]> OpenRA.GameRules.SoundInfo::Variants
IL_01d9: ldarg.s 4
IL_01db: callvirt instance !1 class [mscorlib]System.Collections.Generic.Dictionary`2<string, string[]>::get_Item(!0)
IL_01e0: ldlen
IL_01e1: conv.i4
IL_01e2: conv.i8
IL_01e3: rem
IL_01e4: conv.ovf.i
IL_01e5: ldelem.ref
IL_01e6: stloc.3
IL_01e7: ldloc.0
IL_01e8: ldfld class [mscorlib]System.Collections.Generic.Dictionary`2<string,string[]> OpenRA.GameRules.SoundInfo::Prefixes
IL_01ed: ldarg.s 4
IL_01ef: callvirt instance bool class [mscorlib]System.Collections.Generic.Dictionary`2<string, string[]>::ContainsKey(!0)
IL_01f4: brfalse IL_022e
IL_01f9: ldloc.0
IL_01fa: ldfld string[] OpenRA.GameRules.SoundInfo::DisablePrefixes
IL_01ff: ldarg.3
IL_0200: call bool class [System.Core]System.Linq.Enumerable::Contains<string> (class [mscorlib]System.Collections.Generic.IEnumerable`1<!!0>, !!0)
IL_0205: brtrue IL_022e
IL_020a: ldloc.0
IL_020b: ldfld class [mscorlib]System.Collections.Generic.Dictionary`2<string,string[]> OpenRA.GameRules.SoundInfo::Prefixes
IL_0210: ldarg.s 4
IL_0212: callvirt instance !1 class [mscorlib]System.Collections.Generic.Dictionary`2<string, string[]>::get_Item(!0)
IL_0217: ldloc.1
IL_0218: conv.u8
IL_0219: ldloc.0
IL_021a: ldfld class [mscorlib]System.Collections.Generic.Dictionary`2<string,string[]> OpenRA.GameRules.SoundInfo::Prefixes
IL_021f: ldarg.s 4
IL_0221: callvirt instance !1 class [mscorlib]System.Collections.Generic.Dictionary`2<string, string[]>::get_Item(!0)
IL_0226: ldlen
IL_0227: conv.i4
IL_0228: conv.i8
IL_0229: rem
IL_022a: conv.ovf.i
IL_022b: ldelem.ref
IL_022c: stloc.s 4
IL_022e: ldloc.s 4
IL_0230: ldloc.2
IL_0231: ldloc.3
IL_0232: call string string::Concat(string, string, string)
IL_0237: stloc.s 5
IL_0239: ldloc.s 5
IL_023b: call bool string::IsNullOrEmpty(string)
IL_0240: brtrue IL_0281
IL_0245: ldarg.0
IL_0246: brfalse IL_025c
IL_024b: ldarg.0
IL_024c: ldarg.0
IL_024d: callvirt instance class OpenRA.World class OpenRA.Player::get_World()
IL_0252: callvirt instance class OpenRA.Player class OpenRA.World::get_LocalPlayer()
IL_0257: bne.un IL_0281
IL_025c: ldsfld class OpenRA.ISoundEngine OpenRA.Sound::soundEngine
IL_0261: ldsfld class [OpenRA.FileFormats]OpenRA.FileFormats.Cache`2<string,class OpenRA.ISoundSource> OpenRA.Sound::sounds
IL_0266: ldloc.s 5
IL_0268: callvirt instance !1 class [OpenRA.FileFormats]OpenRA.FileFormats.Cache`2<string, class OpenRA.ISoundSource>::get_Item(!0)
IL_026d: ldc.i4.0
IL_026e: ldc.i4.1
IL_026f: ldsfld valuetype [OpenRA.FileFormats]OpenRA.WPos [OpenRA.FileFormats]OpenRA.WPos::Zero
IL_0274: call float32 class OpenRA.Sound::get_InternalSoundVolume()
IL_0279: ldarg.s 5
IL_027b: callvirt instance class OpenRA.ISound class OpenRA.ISoundEngine::Play2D(class OpenRA.ISoundSource, bool, bool, valuetype [OpenRA.FileFormats]OpenRA.WPos, float32, bool)
IL_0280: pop
IL_0281: ldc.i4.1
IL_0282: ret
} // end of method Sound::PlayPredefined
// method line 225
.method public static hidebysig
default bool PlayVoice (string phrase, class OpenRA.Actor voicedUnit, string 'variant') cil managed
{
// Method begins at RVA 0x6d94
// Code size 78 (0x4e)
.maxstack 15
.locals init (
class OpenRA.Traits.SelectableInfo V_0,
string V_1)
IL_0000: ldarg.1
IL_0001: brtrue IL_0008
IL_0006: ldc.i4.0
IL_0007: ret
IL_0008: ldarg.0
IL_0009: brtrue IL_0010
IL_000e: ldc.i4.0
IL_000f: ret
IL_0010: ldarg.1
IL_0011: ldfld class OpenRA.ActorInfo OpenRA.Actor::Info
IL_0016: ldfld class [OpenRA.FileFormats]OpenRA.FileFormats.TypeDictionary OpenRA.ActorInfo::Traits
IL_001b: callvirt instance !!0 class [OpenRA.FileFormats]OpenRA.FileFormats.TypeDictionary::GetOrDefault<class OpenRA.Traits.SelectableInfo> ()
IL_0020: stloc.0
IL_0021: ldloc.0
IL_0022: brtrue IL_0029
IL_0027: ldc.i4.0
IL_0028: ret
IL_0029: ldloc.0
IL_002a: ldfld string OpenRA.Traits.SelectableInfo::Voice
IL_002f: brtrue IL_0036
IL_0034: ldc.i4.0
IL_0035: ret
IL_0036: ldloc.0
IL_0037: ldfld string OpenRA.Traits.SelectableInfo::Voice
IL_003c: callvirt instance string string::ToLowerInvariant()
IL_0041: stloc.1
IL_0042: ldnull
IL_0043: ldarg.1
IL_0044: ldloc.1
IL_0045: ldarg.0
IL_0046: ldarg.2
IL_0047: ldc.i4.1
IL_0048: call bool class OpenRA.Sound::PlayPredefined(class OpenRA.Player, class OpenRA.Actor, string, string, string, bool)
IL_004d: ret
} // end of method Sound::PlayVoice
// method line 226
.method public static hidebysig
default bool PlayNotification (class OpenRA.Player player, string 'type', string notification, string 'variant') cil managed
{
// Method begins at RVA 0x6df0
// Code size 33 (0x21)
.maxstack 11
IL_0000: ldarg.1
IL_0001: brtrue IL_0008
IL_0006: ldc.i4.0
IL_0007: ret
IL_0008: ldarg.2
IL_0009: brtrue IL_0010
IL_000e: ldc.i4.0
IL_000f: ret
IL_0010: ldarg.0
IL_0011: ldnull
IL_0012: ldarg.1
IL_0013: callvirt instance string string::ToLowerInvariant()
IL_0018: ldarg.2
IL_0019: ldarg.3
IL_001a: ldc.i4.0
IL_001b: call bool class OpenRA.Sound::PlayPredefined(class OpenRA.Player, class OpenRA.Actor, string, string, string, bool)
IL_0020: ret
} // end of method Sound::PlayNotification
// method line 227
.method private static hidebysig
default class OpenRA.SoundDevice '<AvailableDevices>m__32' (string d) cil managed
{
.custom instance void class [mscorlib]System.Runtime.CompilerServices.CompilerGeneratedAttribute::'.ctor'() = (01 00 00 00 ) // ....
// Method begins at RVA 0x6e20
// Code size 13 (0xd)
.maxstack 8
IL_0000: ldstr "AL"
IL_0005: ldarg.0
IL_0006: ldarg.0
IL_0007: newobj instance void class OpenRA.SoundDevice::'.ctor'(string, string, string)
IL_000c: ret
} // end of method Sound::<AvailableDevices>m__32
// method line 228
.method private static hidebysig
default void '<PlayMusic>m__33' () cil managed
{
.custom instance void class [mscorlib]System.Runtime.CompilerServices.CompilerGeneratedAttribute::'.ctor'() = (01 00 00 00 ) // ....
// Method begins at RVA 0x6e30
// Code size 1 (0x1)
.maxstack 8
IL_0000: ret
} // end of method Sound::<PlayMusic>m__33
.property bool MusicPlaying ()
{
.set default void OpenRA.Sound::set_MusicPlaying (bool 'value')
.get default bool OpenRA.Sound::get_MusicPlaying ()
}
.property class OpenRA.GameRules.MusicInfo CurrentMusic ()
{
.get default class OpenRA.GameRules.MusicInfo OpenRA.Sound::get_CurrentMusic ()
}
.property float32 GlobalVolume ()
{
.set default void OpenRA.Sound::set_GlobalVolume (float32 'value')
.get default float32 OpenRA.Sound::get_GlobalVolume ()
}
.property float32 SoundVolumeModifier ()
{
.set default void OpenRA.Sound::set_SoundVolumeModifier (float32 'value')
.get default float32 OpenRA.Sound::get_SoundVolumeModifier ()
}
.property float32 InternalSoundVolume ()
{
.get default float32 OpenRA.Sound::get_InternalSoundVolume ()
}
.property float32 SoundVolume ()
{
.set default void OpenRA.Sound::set_SoundVolume (float32 'value')
.get default float32 OpenRA.Sound::get_SoundVolume ()
}
.property float32 MusicVolume ()
{
.set default void OpenRA.Sound::set_MusicVolume (float32 'value')
.get default float32 OpenRA.Sound::get_MusicVolume ()
}
.property float32 VideoVolume ()
{
.set default void OpenRA.Sound::set_VideoVolume (float32 'value')
.get default float32 OpenRA.Sound::get_VideoVolume ()
}
.property float32 MusicSeekPosition ()
{
.get default float32 OpenRA.Sound::get_MusicSeekPosition ()
}
.property float32 VideoSeekPosition ()
{
.get default float32 OpenRA.Sound::get_VideoSeekPosition ()
}
} // end of class OpenRA.Sound
}
.namespace OpenRA
{
.class interface private auto ansi abstract ISoundEngine
{
// method line 229
.method public virtual hidebysig newslot abstract
instance default class OpenRA.ISoundSource AddSoundSourceFromMemory (unsigned int8[] data, int32 channels, int32 sampleBits, int32 sampleRate) cil managed
{
// Method begins at RVA 0x0
} // end of method ISoundEngine::AddSoundSourceFromMemory
// method line 230
.method public virtual hidebysig newslot abstract
instance default class OpenRA.ISound Play2D (class OpenRA.ISoundSource sound, bool loop, bool relative, valuetype [OpenRA.FileFormats]OpenRA.WPos pos, float32 volume, bool attenuateVolume) cil managed
{
// Method begins at RVA 0x0
} // end of method ISoundEngine::Play2D
// method line 231
.method public virtual hidebysig newslot abstract specialname
instance default float32 get_Volume () cil managed
{
// Method begins at RVA 0x0
} // end of method ISoundEngine::get_Volume
// method line 232
.method public virtual hidebysig newslot abstract specialname
instance default void set_Volume (float32 'value') cil managed
{
// Method begins at RVA 0x0
} // end of method ISoundEngine::set_Volume
// method line 233
.method public virtual hidebysig newslot abstract
instance default void PauseSound (class OpenRA.ISound sound, bool paused) cil managed
{
// Method begins at RVA 0x0
} // end of method ISoundEngine::PauseSound
// method line 234
.method public virtual hidebysig newslot abstract
instance default void StopSound (class OpenRA.ISound sound) cil managed
{
// Method begins at RVA 0x0
} // end of method ISoundEngine::StopSound
// method line 235
.method public virtual hidebysig newslot abstract
instance default void SetAllSoundsPaused (bool paused) cil managed
{
// Method begins at RVA 0x0
} // end of method ISoundEngine::SetAllSoundsPaused
// method line 236
.method public virtual hidebysig newslot abstract
instance default void StopAllSounds () cil managed
{
// Method begins at RVA 0x0
} // end of method ISoundEngine::StopAllSounds
// method line 237
.method public virtual hidebysig newslot abstract
instance default void SetListenerPosition (valuetype [OpenRA.FileFormats]OpenRA.WPos position) cil managed
{
// Method begins at RVA 0x0
} // end of method ISoundEngine::SetListenerPosition
// method line 238
.method public virtual hidebysig newslot abstract
instance default void SetSoundVolume (float32 volume, class OpenRA.ISound music, class OpenRA.ISound video) cil managed
{
// Method begins at RVA 0x0
} // end of method ISoundEngine::SetSoundVolume
.property instance float32 Volume ()
{
.set instance default void OpenRA.ISoundEngine::set_Volume (float32 'value')
.get instance default float32 OpenRA.ISoundEngine::get_Volume ()
}
} // end of class OpenRA.ISoundEngine
}
.namespace OpenRA
{
.class public auto ansi beforefieldinit SoundDevice
extends [mscorlib]System.Object
{
.field public initonly string Engine
.field public initonly string Device
.field public initonly string Label
// method line 239
.method public hidebysig specialname rtspecialname
instance default void '.ctor' (string engine, string device, string label) cil managed
{
// Method begins at RVA 0x6e34
// Code size 87 (0x57)
.maxstack 12
IL_0000: ldarg.0
IL_0001: call instance void object::'.ctor'()
IL_0006: ldarg.0
IL_0007: ldarg.1
IL_0008: stfld string OpenRA.SoundDevice::Engine
IL_000d: ldarg.0
IL_000e: ldarg.2
IL_000f: stfld string OpenRA.SoundDevice::Device
IL_0014: ldarg.0
IL_0015: ldarg.3
IL_0016: stfld string OpenRA.SoundDevice::Label
IL_001b: ldarg.0
IL_001c: ldfld string OpenRA.SoundDevice::Label
IL_0021: callvirt instance int32 string::get_Length()
IL_0026: ldc.i4.s 0x20
IL_0028: ble IL_0056
IL_002d: ldarg.0
IL_002e: ldstr "..."
IL_0033: ldarg.0
IL_0034: ldfld string OpenRA.SoundDevice::Label
IL_0039: ldarg.0
IL_003a: ldfld string OpenRA.SoundDevice::Label
IL_003f: callvirt instance int32 string::get_Length()
IL_0044: ldc.i4.s 0x20
IL_0046: sub
IL_0047: callvirt instance string string::Substring(int32)
IL_004c: call string string::Concat(string, string)
IL_0051: stfld string OpenRA.SoundDevice::Label
IL_0056: ret
} // end of method SoundDevice::.ctor
} // end of class OpenRA.SoundDevice
}
.namespace OpenRA
{
.class interface private auto ansi abstract ISoundSource
{
} // end of class OpenRA.ISoundSource
}
.namespace OpenRA
{
.class interface public auto ansi abstract ISound
{
// method line 240
.method public virtual hidebysig newslot abstract specialname
instance default float32 get_Volume () cil managed
{
// Method begins at RVA 0x0
} // end of method ISound::get_Volume
// method line 241
.method public virtual hidebysig newslot abstract specialname
instance default void set_Volume (float32 'value') cil managed
{
// Method begins at RVA 0x0
} // end of method ISound::set_Volume
// method line 242
.method public virtual hidebysig newslot abstract specialname
instance default float32 get_SeekPosition () cil managed
{
// Method begins at RVA 0x0
} // end of method ISound::get_SeekPosition
// method line 243
.method public virtual hidebysig newslot abstract specialname
instance default bool get_Playing () cil managed
{
// Method begins at RVA 0x0
} // end of method ISound::get_Playing
.property instance float32 Volume ()
{
.set instance default void OpenRA.ISound::set_Volume (float32 'value')
.get instance default float32 OpenRA.ISound::get_Volume ()
}
.property instance float32 SeekPosition ()
{
.get instance default float32 OpenRA.ISound::get_SeekPosition ()
}
.property instance bool Playing ()
{
.get instance default bool OpenRA.ISound::get_Playing ()
}
} // end of class OpenRA.ISound
}
.namespace OpenRA
{
.class private auto ansi beforefieldinit OpenAlSoundEngine
extends [mscorlib]System.Object
implements OpenRA.ISoundEngine {
.field private static literal int32 POOL_SIZE = int32(0x00000020)
.field private static literal int32 maxInstancesPerFrame = int32(0x00000003)
.field private static literal int32 groupDistance = int32(0x00000aaa)
.field private static literal int32 groupDistanceSqr = int32(0x0071b8e4)
.field private float32 volume
.field private class [mscorlib]System.Collections.Generic.Dictionary`2<int32,class OpenRA.OpenAlSoundEngine/PoolSlot> sourcePool
.field private static class [System.Core]System.Func`2<valuetype [mscorlib]System.Collections.Generic.KeyValuePair`2<int32,class OpenRA.OpenAlSoundEngine/PoolSlot>,int32> '<>f__am$cache2'
.custom instance void class [mscorlib]System.Runtime.CompilerServices.CompilerGeneratedAttribute::'.ctor'() = (01 00 00 00 ) // ....
// method line 244
.method public hidebysig specialname rtspecialname
instance default void '.ctor' () cil managed
{
// Method begins at RVA 0x6e98
// Code size 325 (0x145)
.maxstack 22
.locals init (
native int V_0,
native int V_1,
int32 V_2,
int32 V_3,
class OpenRA.OpenAlSoundEngine/PoolSlot V_4)
IL_0000: ldarg.0
IL_0001: ldc.r4 1.
IL_0006: stfld float32 OpenRA.OpenAlSoundEngine::volume
IL_000b: ldarg.0
IL_000c: newobj instance void class [mscorlib]System.Collections.Generic.Dictionary`2<int32, class OpenRA.OpenAlSoundEngine/PoolSlot>::'.ctor'()
IL_0011: stfld class [mscorlib]System.Collections.Generic.Dictionary`2<int32,class OpenRA.OpenAlSoundEngine/PoolSlot> OpenRA.OpenAlSoundEngine::sourcePool
IL_0016: ldarg.0
IL_0017: call instance void object::'.ctor'()
IL_001c: ldstr "Using OpenAL sound engine"
IL_0021: call void class [mscorlib]System.Console::WriteLine(string)
IL_0026: ldsfld class OpenRA.GameRules.Settings OpenRA.Game::Settings
IL_002b: ldfld class OpenRA.GameRules.SoundSettings OpenRA.GameRules.Settings::Sound
IL_0030: ldfld string OpenRA.GameRules.SoundSettings::Device
IL_0035: brfalse IL_0058
IL_003a: ldstr "Using device `{0}`"
IL_003f: ldsfld class OpenRA.GameRules.Settings OpenRA.Game::Settings
IL_0044: ldfld class OpenRA.GameRules.SoundSettings OpenRA.GameRules.Settings::Sound
IL_0049: ldfld string OpenRA.GameRules.SoundSettings::Device
IL_004e: call void class [mscorlib]System.Console::WriteLine(string, object)
IL_0053: br IL_0062
IL_0058: ldstr "Using default device"
IL_005d: call void class [mscorlib]System.Console::WriteLine(string)
IL_0062: ldsfld class OpenRA.GameRules.Settings OpenRA.Game::Settings
IL_0067: ldfld class OpenRA.GameRules.SoundSettings OpenRA.GameRules.Settings::Sound
IL_006c: ldfld string OpenRA.GameRules.SoundSettings::Device
IL_0071: call native int class [Tao.OpenAl]Tao.OpenAl.Alc::alcOpenDevice(string)
IL_0076: stloc.0
IL_0077: ldloc.0
IL_0078: ldsfld native int [mscorlib]System.IntPtr::Zero
IL_007d: call bool native int::op_Equality(native int, native int)
IL_0082: brfalse IL_00b3
IL_0087: ldstr "Failed to open device. Falling back to default"
IL_008c: call void class [mscorlib]System.Console::WriteLine(string)
IL_0091: ldnull
IL_0092: call native int class [Tao.OpenAl]Tao.OpenAl.Alc::alcOpenDevice(string)
IL_0097: stloc.0
IL_0098: ldloc.0
IL_0099: ldsfld native int [mscorlib]System.IntPtr::Zero
IL_009e: call bool native int::op_Equality(native int, native int)
IL_00a3: brfalse IL_00b3
IL_00a8: ldstr "Can't create OpenAL device"
IL_00ad: newobj instance void class [mscorlib]System.InvalidOperationException::'.ctor'(string)
IL_00b2: throw
IL_00b3: ldloc.0
IL_00b4: ldsfld native int [mscorlib]System.IntPtr::Zero
IL_00b9: call native int class [Tao.OpenAl]Tao.OpenAl.Alc::alcCreateContext(native int, native int)
IL_00be: stloc.1
IL_00bf: ldloc.1
IL_00c0: ldsfld native int [mscorlib]System.IntPtr::Zero
IL_00c5: call bool native int::op_Equality(native int, native int)
IL_00ca: brfalse IL_00da
IL_00cf: ldstr "Can't create OpenAL context"
IL_00d4: newobj instance void class [mscorlib]System.InvalidOperationException::'.ctor'(string)
IL_00d9: throw
IL_00da: ldloc.1
IL_00db: call int32 class [Tao.OpenAl]Tao.OpenAl.Alc::alcMakeContextCurrent(native int)
IL_00e0: pop
IL_00e1: ldc.i4.0
IL_00e2: stloc.2
IL_00e3: br IL_013c
IL_00e8: ldc.i4.0
IL_00e9: stloc.3
IL_00ea: ldc.i4.1
IL_00eb: ldloca.s 3
IL_00ed: call void class [Tao.OpenAl]Tao.OpenAl.Al::alGenSources(int32, [out] int32&)
IL_00f2: call int32 class [Tao.OpenAl]Tao.OpenAl.Al::alGetError()
IL_00f7: brfalse IL_011b
IL_00fc: ldstr "sound"
IL_0101: ldstr "Failed generating OpenAL source {0}"
IL_0106: ldc.i4.1
IL_0107: newarr [mscorlib]System.Object
IL_010c: dup
IL_010d: ldc.i4.0
IL_010e: ldloc.2
IL_010f: box [mscorlib]System.Int32
IL_0114: stelem.ref
IL_0115: call void class [OpenRA.FileFormats]OpenRA.Log::Write(string, string, object[])
IL_011a: ret
IL_011b: ldarg.0
IL_011c: ldfld class [mscorlib]System.Collections.Generic.Dictionary`2<int32,class OpenRA.OpenAlSoundEngine/PoolSlot> OpenRA.OpenAlSoundEngine::sourcePool
IL_0121: ldloc.3
IL_0122: newobj instance void class OpenRA.OpenAlSoundEngine/PoolSlot::'.ctor'()
IL_0127: stloc.s 4
IL_0129: ldloc.s 4
IL_012b: ldc.i4.0
IL_012c: stfld bool OpenRA.OpenAlSoundEngine/PoolSlot::isActive
IL_0131: ldloc.s 4
IL_0133: callvirt instance void class [mscorlib]System.Collections.Generic.Dictionary`2<int32, class OpenRA.OpenAlSoundEngine/PoolSlot>::Add(!0, !1)
IL_0138: ldloc.2
IL_0139: ldc.i4.1
IL_013a: add
IL_013b: stloc.2
IL_013c: ldloc.2
IL_013d: ldc.i4.s 0x20
IL_013f: blt IL_00e8
IL_0144: ret
} // end of method OpenAlSoundEngine::.ctor
// method line 245
.method private static hidebysig
default string[] QueryDevices (string label, int32 'type') cil managed
{
// Method begins at RVA 0x6fec
// Code size 62 (0x3e)
.maxstack 9
.locals init (
string[] V_0)
IL_0000: call int32 class [Tao.OpenAl]Tao.OpenAl.Al::alGetError()
IL_0005: pop
IL_0006: ldsfld native int [mscorlib]System.IntPtr::Zero
IL_000b: ldarg.1
IL_000c: call string[] class [Tao.OpenAl]Tao.OpenAl.Alc::alcGetStringv(native int, int32)
IL_0011: stloc.0
IL_0012: call int32 class [Tao.OpenAl]Tao.OpenAl.Al::alGetError()
IL_0017: brfalse IL_003c
IL_001c: ldstr "sound"
IL_0021: ldstr "Failed to query OpenAL device list using {0}"
IL_0026: ldc.i4.1
IL_0027: newarr [mscorlib]System.Object
IL_002c: dup
IL_002d: ldc.i4.0
IL_002e: ldarg.0
IL_002f: stelem.ref
IL_0030: call void class [OpenRA.FileFormats]OpenRA.Log::Write(string, string, object[])
IL_0035: ldc.i4.0
IL_0036: newarr [mscorlib]System.String
IL_003b: ret
IL_003c: ldloc.0
IL_003d: ret
} // end of method OpenAlSoundEngine::QueryDevices
// method line 246
.method public static hidebysig
default string[] AvailableDevices () cil managed
{
// Method begins at RVA 0x7038
// Code size 81 (0x51)
.maxstack 8
IL_0000: ldsfld native int [mscorlib]System.IntPtr::Zero
IL_0005: ldstr "ALC_ENUMERATE_ALL_EXT"
IL_000a: call int32 class [Tao.OpenAl]Tao.OpenAl.Alc::alcIsExtensionPresent(native int, string)
IL_000f: ldc.i4.1
IL_0010: bne.un IL_0025
IL_0015: ldstr "ALC_ENUMERATE_ALL_EXT"
IL_001a: ldc.i4 4115
IL_001f: call string[] class OpenRA.OpenAlSoundEngine::QueryDevices(string, int32)
IL_0024: ret
IL_0025: ldsfld native int [mscorlib]System.IntPtr::Zero
IL_002a: ldstr "ALC_ENUMERATION_EXT"
IL_002f: call int32 class [Tao.OpenAl]Tao.OpenAl.Alc::alcIsExtensionPresent(native int, string)
IL_0034: ldc.i4.1
IL_0035: bne.un IL_004a
IL_003a: ldstr "ALC_ENUMERATION_EXT"
IL_003f: ldc.i4 4101
IL_0044: call string[] class OpenRA.OpenAlSoundEngine::QueryDevices(string, int32)
IL_0049: ret
IL_004a: ldc.i4.0
IL_004b: newarr [mscorlib]System.String
IL_0050: ret
} // end of method OpenAlSoundEngine::AvailableDevices
// method line 247
.method private hidebysig
instance default int32 GetSourceFromPool () cil managed
{
// Method begins at RVA 0x7098
// Code size 344 (0x158)
.maxstack 50
.locals init (
valuetype [mscorlib]System.Collections.Generic.Dictionary`2/Enumerator<int32, class OpenRA.OpenAlSoundEngine/PoolSlot> V_0,
valuetype [mscorlib]System.Collections.Generic.KeyValuePair`2<int32, class OpenRA.OpenAlSoundEngine/PoolSlot> V_1,
int32 V_2,
class [mscorlib]System.Collections.Generic.List`1<int32> V_3,
valuetype [mscorlib]System.Collections.Generic.Dictionary`2/KeyCollection/Enumerator<int32, class OpenRA.OpenAlSoundEngine/PoolSlot> V_4,
int32 V_5,
int32 V_6,
valuetype [mscorlib]System.Collections.Generic.List`1/Enumerator<int32> V_7,
int32 V_8)
IL_0000: ldarg.0
IL_0001: ldfld class [mscorlib]System.Collections.Generic.Dictionary`2<int32,class OpenRA.OpenAlSoundEngine/PoolSlot> OpenRA.OpenAlSoundEngine::sourcePool
IL_0006: callvirt instance valuetype [mscorlib]System.Collections.Generic.Dictionary`2/Enumerator<!0,!1> class [mscorlib]System.Collections.Generic.Dictionary`2<int32, class OpenRA.OpenAlSoundEngine/PoolSlot>::GetEnumerator()
IL_000b: stloc.0
.try { // 2
IL_000c: br IL_004f
IL_0011: ldloca.s 0
IL_0013: call instance valuetype [mscorlib]System.Collections.Generic.KeyValuePair`2<!0,!1> valuetype [mscorlib]System.Collections.Generic.Dictionary`2/Enumerator<int32, class OpenRA.OpenAlSoundEngine/PoolSlot>::get_Current()
IL_0018: stloc.1
IL_0019: ldloca.s 1
IL_001b: call instance !1 valuetype [mscorlib]System.Collections.Generic.KeyValuePair`2<int32, class OpenRA.OpenAlSoundEngine/PoolSlot>::get_Value()
IL_0020: ldfld bool OpenRA.OpenAlSoundEngine/PoolSlot::isActive
IL_0025: brtrue IL_004f
IL_002a: ldarg.0
IL_002b: ldfld class [mscorlib]System.Collections.Generic.Dictionary`2<int32,class OpenRA.OpenAlSoundEngine/PoolSlot> OpenRA.OpenAlSoundEngine::sourcePool
IL_0030: ldloca.s 1
IL_0032: call instance !0 valuetype [mscorlib]System.Collections.Generic.KeyValuePair`2<int32, class OpenRA.OpenAlSoundEngine/PoolSlot>::get_Key()
IL_0037: callvirt instance !1 class [mscorlib]System.Collections.Generic.Dictionary`2<int32, class OpenRA.OpenAlSoundEngine/PoolSlot>::get_Item(!0)
IL_003c: ldc.i4.1
IL_003d: stfld bool OpenRA.OpenAlSoundEngine/PoolSlot::isActive
IL_0042: ldloca.s 1
IL_0044: call instance !0 valuetype [mscorlib]System.Collections.Generic.KeyValuePair`2<int32, class OpenRA.OpenAlSoundEngine/PoolSlot>::get_Key()
IL_0049: stloc.2
IL_004a: leave IL_0156
IL_004f: ldloca.s 0
IL_0051: call instance bool valuetype [mscorlib]System.Collections.Generic.Dictionary`2/Enumerator<int32, class OpenRA.OpenAlSoundEngine/PoolSlot>::MoveNext()
IL_0056: brtrue IL_0011
IL_005b: leave IL_006e
} // end .try 2
finally { // 2
IL_0060: ldloca.s 0
IL_0062: constrained. valuetype [mscorlib]System.Collections.Generic.Dictionary`2/Enumerator<int32,class OpenRA.OpenAlSoundEngine/PoolSlot>
IL_0068: callvirt instance void class [mscorlib]System.IDisposable::Dispose()
IL_006d: endfinally
} // end handler 2
IL_006e: newobj instance void class [mscorlib]System.Collections.Generic.List`1<int32>::'.ctor'()
IL_0073: stloc.3
IL_0074: ldarg.0
IL_0075: ldfld class [mscorlib]System.Collections.Generic.Dictionary`2<int32,class OpenRA.OpenAlSoundEngine/PoolSlot> OpenRA.OpenAlSoundEngine::sourcePool
IL_007a: callvirt instance class [mscorlib]System.Collections.Generic.Dictionary`2/KeyCollection<!0,!1> class [mscorlib]System.Collections.Generic.Dictionary`2<int32, class OpenRA.OpenAlSoundEngine/PoolSlot>::get_Keys()
IL_007f: callvirt instance valuetype [mscorlib]System.Collections.Generic.Dictionary`2/KeyCollection/Enumerator<!0,!1> class [mscorlib]System.Collections.Generic.Dictionary`2/KeyCollection<int32, class OpenRA.OpenAlSoundEngine/PoolSlot>::GetEnumerator()
IL_0084: stloc.s 4
.try { // 1
IL_0086: br IL_00c2
IL_008b: ldloca.s 4
IL_008d: call instance !0 valuetype [mscorlib]System.Collections.Generic.Dictionary`2/KeyCollection/Enumerator<int32, class OpenRA.OpenAlSoundEngine/PoolSlot>::get_Current()
IL_0092: stloc.s 5
IL_0094: ldloc.s 5
IL_0096: ldc.i4 4112
IL_009b: ldloca.s 6
IL_009d: call void class [Tao.OpenAl]Tao.OpenAl.Al::alGetSourcei(int32, int32, [out] int32&)
IL_00a2: ldloc.s 6
IL_00a4: ldc.i4 4114
IL_00a9: beq IL_00c2
IL_00ae: ldloc.s 6
IL_00b0: ldc.i4 4115
IL_00b5: beq IL_00c2
IL_00ba: ldloc.3
IL_00bb: ldloc.s 5
IL_00bd: callvirt instance void class [mscorlib]System.Collections.Generic.List`1<int32>::Add(!0)
IL_00c2: ldloca.s 4
IL_00c4: call instance bool valuetype [mscorlib]System.Collections.Generic.Dictionary`2/KeyCollection/Enumerator<int32, class OpenRA.OpenAlSoundEngine/PoolSlot>::MoveNext()
IL_00c9: brtrue IL_008b
IL_00ce: leave IL_00e1
} // end .try 1
finally { // 1
IL_00d3: ldloca.s 4
IL_00d5: constrained. valuetype [mscorlib]System.Collections.Generic.Dictionary`2/KeyCollection/Enumerator<int32,class OpenRA.OpenAlSoundEngine/PoolSlot>
IL_00db: callvirt instance void class [mscorlib]System.IDisposable::Dispose()
IL_00e0: endfinally
} // end handler 1
IL_00e1: ldloc.3
IL_00e2: callvirt instance int32 class [mscorlib]System.Collections.Generic.List`1<int32>::get_Count()
IL_00e7: brtrue IL_00ee
IL_00ec: ldc.i4.m1
IL_00ed: ret
IL_00ee: ldloc.3
IL_00ef: callvirt instance valuetype [mscorlib]System.Collections.Generic.List`1/Enumerator<!0> class [mscorlib]System.Collections.Generic.List`1<int32>::GetEnumerator()
IL_00f4: stloc.s 7
.try { // 0
IL_00f6: br IL_0117
IL_00fb: ldloca.s 7
IL_00fd: call instance !0 valuetype [mscorlib]System.Collections.Generic.List`1/Enumerator<int32>::get_Current()
IL_0102: stloc.s 8
IL_0104: ldarg.0
IL_0105: ldfld class [mscorlib]System.Collections.Generic.Dictionary`2<int32,class OpenRA.OpenAlSoundEngine/PoolSlot> OpenRA.OpenAlSoundEngine::sourcePool
IL_010a: ldloc.s 8
IL_010c: callvirt instance !1 class [mscorlib]System.Collections.Generic.Dictionary`2<int32, class OpenRA.OpenAlSoundEngine/PoolSlot>::get_Item(!0)
IL_0111: ldc.i4.0
IL_0112: stfld bool OpenRA.OpenAlSoundEngine/PoolSlot::isActive
IL_0117: ldloca.s 7
IL_0119: call instance bool valuetype [mscorlib]System.Collections.Generic.List`1/Enumerator<int32>::MoveNext()
IL_011e: brtrue IL_00fb
IL_0123: leave IL_0136
} // end .try 0
finally { // 0
IL_0128: ldloca.s 7
IL_012a: constrained. valuetype [mscorlib]System.Collections.Generic.List`1/Enumerator<int32>
IL_0130: callvirt instance void class [mscorlib]System.IDisposable::Dispose()
IL_0135: endfinally
} // end handler 0
IL_0136: ldarg.0
IL_0137: ldfld class [mscorlib]System.Collections.Generic.Dictionary`2<int32,class OpenRA.OpenAlSoundEngine/PoolSlot> OpenRA.OpenAlSoundEngine::sourcePool
IL_013c: ldloc.3
IL_013d: ldc.i4.0
IL_013e: callvirt instance !0 class [mscorlib]System.Collections.Generic.List`1<int32>::get_Item(int32)
IL_0143: callvirt instance !1 class [mscorlib]System.Collections.Generic.Dictionary`2<int32, class OpenRA.OpenAlSoundEngine/PoolSlot>::get_Item(!0)
IL_0148: ldc.i4.1
IL_0149: stfld bool OpenRA.OpenAlSoundEngine/PoolSlot::isActive
IL_014e: ldloc.3
IL_014f: ldc.i4.0
IL_0150: callvirt instance !0 class [mscorlib]System.Collections.Generic.List`1<int32>::get_Item(int32)
IL_0155: ret
IL_0156: ldloc.2
IL_0157: ret
} // end of method OpenAlSoundEngine::GetSourceFromPool
// method line 248
.method public final virtual hidebysig newslot
instance default class OpenRA.ISoundSource AddSoundSourceFromMemory (unsigned int8[] data, int32 channels, int32 sampleBits, int32 sampleRate) cil managed
{
// Method begins at RVA 0x7248
// Code size 11 (0xb)
.maxstack 8
IL_0000: ldarg.1
IL_0001: ldarg.2
IL_0002: ldarg.3
IL_0003: ldarg.s 4
IL_0005: newobj instance void class OpenRA.OpenAlSoundSource::'.ctor'(unsigned int8[], int32, int32, int32)
IL_000a: ret
} // end of method OpenAlSoundEngine::AddSoundSourceFromMemory
// method line 249
.method public final virtual hidebysig newslot
instance default class OpenRA.ISound Play2D (class OpenRA.ISoundSource sound, bool loop, bool relative, valuetype [OpenRA.FileFormats]OpenRA.WPos pos, float32 volume, bool attenuateVolume) cil managed
{
// Method begins at RVA 0x7254
// Code size 405 (0x195)
.maxstack 31
.locals init (
class OpenRA.World V_0,
int32 V_1,
float32 V_2,
int32 V_3,
int32 V_4,
valuetype [mscorlib]System.Collections.Generic.Dictionary`2/ValueCollection/Enumerator<int32, class OpenRA.OpenAlSoundEngine/PoolSlot> V_5,
class OpenRA.OpenAlSoundEngine/PoolSlot V_6,
int64 V_7,
valuetype [OpenRA.FileFormats]OpenRA.WVec V_8,
class OpenRA.ISound V_9,
int32 V_10,
class OpenRA.OpenAlSoundEngine/PoolSlot V_11)
IL_0000: ldarg.1
IL_0001: brtrue IL_001d
IL_0006: ldstr "sound"
IL_000b: ldstr "Attempt to Play2D a null `ISoundSource`"
IL_0010: ldc.i4.0
IL_0011: newarr [mscorlib]System.Object
IL_0016: call void class [OpenRA.FileFormats]OpenRA.Log::Write(string, string, object[])
IL_001b: ldnull
IL_001c: ret
IL_001d: ldsfld class OpenRA.Network.OrderManager OpenRA.Game::orderManager
IL_0022: ldfld class OpenRA.World OpenRA.Network.OrderManager::world
IL_0027: stloc.0
IL_0028: ldloc.0
IL_0029: brfalse IL_0039
IL_002e: ldloc.0
IL_002f: callvirt instance int32 class OpenRA.World::get_FrameNumber()
IL_0034: br IL_003a
IL_0039: ldc.i4.0
IL_003a: stloc.1
IL_003b: ldc.r4 1.
IL_0040: stloc.2
IL_0041: ldarg.s 6
IL_0043: brfalse IL_0135
IL_0048: ldc.i4.0
IL_0049: stloc.3
IL_004a: ldc.i4.0
IL_004b: stloc.s 4
IL_004d: ldarg.0
IL_004e: ldfld class [mscorlib]System.Collections.Generic.Dictionary`2<int32,class OpenRA.OpenAlSoundEngine/PoolSlot> OpenRA.OpenAlSoundEngine::sourcePool
IL_0053: callvirt instance class [mscorlib]System.Collections.Generic.Dictionary`2/ValueCollection<!0,!1> class [mscorlib]System.Collections.Generic.Dictionary`2<int32, class OpenRA.OpenAlSoundEngine/PoolSlot>::get_Values()
IL_0058: callvirt instance valuetype [mscorlib]System.Collections.Generic.Dictionary`2/ValueCollection/Enumerator<!0,!1> class [mscorlib]System.Collections.Generic.Dictionary`2/ValueCollection<int32, class OpenRA.OpenAlSoundEngine/PoolSlot>::GetEnumerator()
IL_005d: stloc.s 5
.try { // 0
IL_005f: br IL_00fa
IL_0064: ldloca.s 5
IL_0066: call instance !1 valuetype [mscorlib]System.Collections.Generic.Dictionary`2/ValueCollection/Enumerator<int32, class OpenRA.OpenAlSoundEngine/PoolSlot>::get_Current()
IL_006b: stloc.s 6
IL_006d: ldloc.s 6
IL_006f: ldfld bool OpenRA.OpenAlSoundEngine/PoolSlot::isActive
IL_0074: brtrue IL_007e
IL_0079: br IL_00fa
IL_007e: ldloc.s 6
IL_0080: ldfld bool OpenRA.OpenAlSoundEngine/PoolSlot::isRelative
IL_0085: ldarg.3
IL_0086: beq IL_0090
IL_008b: br IL_00fa
IL_0090: ldloc.s 4
IL_0092: ldc.i4.1
IL_0093: add
IL_0094: stloc.s 4
IL_0096: ldloc.s 6
IL_0098: ldfld class OpenRA.ISoundSource OpenRA.OpenAlSoundEngine/PoolSlot::sound
IL_009d: ldarg.1
IL_009e: beq IL_00a8
IL_00a3: br IL_00fa
IL_00a8: ldloc.1
IL_00a9: ldloc.s 6
IL_00ab: ldfld int32 OpenRA.OpenAlSoundEngine/PoolSlot::frameStarted
IL_00b0: sub
IL_00b1: ldc.i4.5
IL_00b2: blt IL_00bc
IL_00b7: br IL_00fa
IL_00bc: ldloc.s 6
IL_00be: ldfld valuetype [OpenRA.FileFormats]OpenRA.WPos OpenRA.OpenAlSoundEngine/PoolSlot::pos
IL_00c3: ldarg.s 4
IL_00c5: call valuetype [OpenRA.FileFormats]OpenRA.WVec valuetype [OpenRA.FileFormats]OpenRA.WPos::op_Subtraction(valuetype [OpenRA.FileFormats]OpenRA.WPos, valuetype [OpenRA.FileFormats]OpenRA.WPos)
IL_00ca: stloc.s 8
IL_00cc: ldloca.s 8
IL_00ce: call instance int64 valuetype [OpenRA.FileFormats]OpenRA.WVec::get_LengthSquared()
IL_00d3: stloc.s 7
IL_00d5: ldloc.s 7
IL_00d7: ldc.i4 7452900
IL_00dc: conv.i8
IL_00dd: blt IL_00e7
IL_00e2: br IL_00fa
IL_00e7: ldloc.3
IL_00e8: ldc.i4.1
IL_00e9: add
IL_00ea: dup
IL_00eb: stloc.3
IL_00ec: ldc.i4.3
IL_00ed: bne.un IL_00fa
IL_00f2: ldnull
IL_00f3: stloc.s 9
IL_00f5: leave IL_0192
IL_00fa: ldloca.s 5
IL_00fc: call instance bool valuetype [mscorlib]System.Collections.Generic.Dictionary`2/ValueCollection/Enumerator<int32, class OpenRA.OpenAlSoundEngine/PoolSlot>::MoveNext()
IL_0101: brtrue IL_0064
IL_0106: leave IL_0119
} // end .try 0
finally { // 0
IL_010b: ldloca.s 5
IL_010d: constrained. valuetype [mscorlib]System.Collections.Generic.Dictionary`2/ValueCollection/Enumerator<int32,class OpenRA.OpenAlSoundEngine/PoolSlot>
IL_0113: callvirt instance void class [mscorlib]System.IDisposable::Dispose()
IL_0118: endfinally
} // end handler 0
IL_0119: ldc.r4 0.6600000262260437
IL_011e: ldc.r4 32.
IL_0123: ldloc.s 4
IL_0125: conv.r4
IL_0126: ldc.r4 0.5
IL_012b: mul
IL_012c: sub
IL_012d: ldc.r4 32.
IL_0132: div
IL_0133: mul
IL_0134: stloc.2
IL_0135: ldarg.0
IL_0136: call instance int32 class OpenRA.OpenAlSoundEngine::GetSourceFromPool()
IL_013b: stloc.s 10
IL_013d: ldloc.s 10
IL_013f: ldc.i4.m1
IL_0140: bne.un IL_0147
IL_0145: ldnull
IL_0146: ret
IL_0147: ldarg.0
IL_0148: ldfld class [mscorlib]System.Collections.Generic.Dictionary`2<int32,class OpenRA.OpenAlSoundEngine/PoolSlot> OpenRA.OpenAlSoundEngine::sourcePool
IL_014d: ldloc.s 10
IL_014f: callvirt instance !1 class [mscorlib]System.Collections.Generic.Dictionary`2<int32, class OpenRA.OpenAlSoundEngine/PoolSlot>::get_Item(!0)
IL_0154: stloc.s 11
IL_0156: ldloc.s 11
IL_0158: ldarg.s 4
IL_015a: stfld valuetype [OpenRA.FileFormats]OpenRA.WPos OpenRA.OpenAlSoundEngine/PoolSlot::pos
IL_015f: ldloc.s 11
IL_0161: ldloc.1
IL_0162: stfld int32 OpenRA.OpenAlSoundEngine/PoolSlot::frameStarted
IL_0167: ldloc.s 11
IL_0169: ldarg.1
IL_016a: stfld class OpenRA.ISoundSource OpenRA.OpenAlSoundEngine/PoolSlot::sound
IL_016f: ldloc.s 11
IL_0171: ldarg.3
IL_0172: stfld bool OpenRA.OpenAlSoundEngine/PoolSlot::isRelative
IL_0177: ldloc.s 10
IL_0179: ldarg.1
IL_017a: isinst OpenRA.OpenAlSoundSource
IL_017f: ldfld int32 OpenRA.OpenAlSoundSource::buffer
IL_0184: ldarg.2
IL_0185: ldarg.3
IL_0186: ldarg.s 4
IL_0188: ldarg.s 5
IL_018a: ldloc.2
IL_018b: mul
IL_018c: newobj instance void class OpenRA.OpenAlSound::'.ctor'(int32, int32, bool, bool, valuetype [OpenRA.FileFormats]OpenRA.WPos, float32)
IL_0191: ret
IL_0192: ldloc.s 9
IL_0194: ret
} // end of method OpenAlSoundEngine::Play2D
// method line 250
.method public final virtual hidebysig newslot specialname
instance default float32 get_Volume () cil managed
{
// Method begins at RVA 0x7414
// Code size 7 (0x7)
.maxstack 8
IL_0000: ldarg.0
IL_0001: ldfld float32 OpenRA.OpenAlSoundEngine::volume
IL_0006: ret
} // end of method OpenAlSoundEngine::get_Volume
// method line 251
.method public final virtual hidebysig newslot specialname
instance default void set_Volume (float32 'value') cil managed
{
// Method begins at RVA 0x741c
// Code size 21 (0x15)
.maxstack 5
.locals init (
float32 V_0)
IL_0000: ldc.i4 4106
IL_0005: ldarg.0
IL_0006: ldarg.1
IL_0007: dup
IL_0008: stloc.0
IL_0009: stfld float32 OpenRA.OpenAlSoundEngine::volume
IL_000e: ldloc.0
IL_000f: call void class [Tao.OpenAl]Tao.OpenAl.Al::alListenerf(int32, float32)
IL_0014: ret
} // end of method OpenAlSoundEngine::set_Volume
// method line 252
.method public final virtual hidebysig newslot
instance default void PauseSound (class OpenRA.ISound sound, bool paused) cil managed
{
// Method begins at RVA 0x7440
// Code size 84 (0x54)
.maxstack 4
.locals init (
int32 V_0,
int32 V_1)
IL_0000: ldarg.1
IL_0001: brtrue IL_0007
IL_0006: ret
IL_0007: ldarg.1
IL_0008: castclass OpenRA.OpenAlSound
IL_000d: ldfld int32 OpenRA.OpenAlSound::source
IL_0012: stloc.0
IL_0013: ldloc.0
IL_0014: ldc.i4 4112
IL_0019: ldloca.s 1
IL_001b: call void class [Tao.OpenAl]Tao.OpenAl.Al::alGetSourcei(int32, int32, [out] int32&)
IL_0020: ldloc.1
IL_0021: ldc.i4 4114
IL_0026: bne.un IL_003c
IL_002b: ldarg.2
IL_002c: brfalse IL_003c
IL_0031: ldloc.0
IL_0032: call void class [Tao.OpenAl]Tao.OpenAl.Al::alSourcePause(int32)
IL_0037: br IL_0053
IL_003c: ldloc.1
IL_003d: ldc.i4 4115
IL_0042: bne.un IL_0053
IL_0047: ldarg.2
IL_0048: brtrue IL_0053
IL_004d: ldloc.0
IL_004e: call void class [Tao.OpenAl]Tao.OpenAl.Al::alSourcePlay(int32)
IL_0053: ret
} // end of method OpenAlSoundEngine::PauseSound
// method line 253
.method public final virtual hidebysig newslot
instance default void SetAllSoundsPaused (bool paused) cil managed
{
// Method begins at RVA 0x74a0
// Code size 126 (0x7e)
.maxstack 13
.locals init (
valuetype [mscorlib]System.Collections.Generic.Dictionary`2/KeyCollection/Enumerator<int32, class OpenRA.OpenAlSoundEngine/PoolSlot> V_0,
int32 V_1,
int32 V_2)
IL_0000: ldarg.0
IL_0001: ldfld class [mscorlib]System.Collections.Generic.Dictionary`2<int32,class OpenRA.OpenAlSoundEngine/PoolSlot> OpenRA.OpenAlSoundEngine::sourcePool
IL_0006: callvirt instance class [mscorlib]System.Collections.Generic.Dictionary`2/KeyCollection<!0,!1> class [mscorlib]System.Collections.Generic.Dictionary`2<int32, class OpenRA.OpenAlSoundEngine/PoolSlot>::get_Keys()
IL_000b: callvirt instance valuetype [mscorlib]System.Collections.Generic.Dictionary`2/KeyCollection/Enumerator<!0,!1> class [mscorlib]System.Collections.Generic.Dictionary`2/KeyCollection<int32, class OpenRA.OpenAlSoundEngine/PoolSlot>::GetEnumerator()
IL_0010: stloc.0
.try { // 0
IL_0011: br IL_005e
IL_0016: ldloca.s 0
IL_0018: call instance !0 valuetype [mscorlib]System.Collections.Generic.Dictionary`2/KeyCollection/Enumerator<int32, class OpenRA.OpenAlSoundEngine/PoolSlot>::get_Current()
IL_001d: stloc.1
IL_001e: ldloc.1
IL_001f: ldc.i4 4112
IL_0024: ldloca.s 2
IL_0026: call void class [Tao.OpenAl]Tao.OpenAl.Al::alGetSourcei(int32, int32, [out] int32&)
IL_002b: ldloc.2
IL_002c: ldc.i4 4114
IL_0031: bne.un IL_0047
IL_0036: ldarg.1
IL_0037: brfalse IL_0047
IL_003c: ldloc.1
IL_003d: call void class [Tao.OpenAl]Tao.OpenAl.Al::alSourcePause(int32)
IL_0042: br IL_005e
IL_0047: ldloc.2
IL_0048: ldc.i4 4115
IL_004d: bne.un IL_005e
IL_0052: ldarg.1
IL_0053: brtrue IL_005e
IL_0058: ldloc.1
IL_0059: call void class [Tao.OpenAl]Tao.OpenAl.Al::alSourcePlay(int32)
IL_005e: ldloca.s 0
IL_0060: call instance bool valuetype [mscorlib]System.Collections.Generic.Dictionary`2/KeyCollection/Enumerator<int32, class OpenRA.OpenAlSoundEngine/PoolSlot>::MoveNext()
IL_0065: brtrue IL_0016
IL_006a: leave IL_007d
} // end .try 0
finally { // 0
IL_006f: ldloca.s 0
IL_0071: constrained. valuetype [mscorlib]System.Collections.Generic.Dictionary`2/KeyCollection/Enumerator<int32,class OpenRA.OpenAlSoundEngine/PoolSlot>
IL_0077: callvirt instance void class [mscorlib]System.IDisposable::Dispose()
IL_007c: endfinally
} // end handler 0
IL_007d: ret
} // end of method OpenAlSoundEngine::SetAllSoundsPaused
// method line 254
.method public final virtual hidebysig newslot
instance default void SetSoundVolume (float32 volume, class OpenRA.ISound music, class OpenRA.ISound video) cil managed
{
// Method begins at RVA 0x7548
// Code size 147 (0x93)
.maxstack 14
.locals init (
class OpenRA.OpenAlSoundEngine/'<SetSoundVolume>c__AnonStorey27' V_0,
class [mscorlib]System.Collections.Generic.List`1<int32> V_1,
valuetype [mscorlib]System.Collections.Generic.List`1/Enumerator<int32> V_2,
int32 V_3)
IL_0000: newobj instance void class OpenRA.OpenAlSoundEngine/'<SetSoundVolume>c__AnonStorey27'::'.ctor'()
IL_0005: stloc.0
IL_0006: ldloc.0
IL_0007: ldarg.2
IL_0008: stfld class OpenRA.ISound OpenRA.OpenAlSoundEngine/'<SetSoundVolume>c__AnonStorey27'::music
IL_000d: ldloc.0
IL_000e: ldarg.3
IL_000f: stfld class OpenRA.ISound OpenRA.OpenAlSoundEngine/'<SetSoundVolume>c__AnonStorey27'::video
IL_0014: ldarg.0
IL_0015: ldfld class [mscorlib]System.Collections.Generic.Dictionary`2<int32,class OpenRA.OpenAlSoundEngine/PoolSlot> OpenRA.OpenAlSoundEngine::sourcePool
IL_001a: ldsfld class [System.Core]System.Func`2<valuetype [mscorlib]System.Collections.Generic.KeyValuePair`2<int32,class OpenRA.OpenAlSoundEngine/PoolSlot>,int32> OpenRA.OpenAlSoundEngine::'<>f__am$cache2'
IL_001f: brtrue.s IL_0032
IL_0021: ldnull
IL_0022: ldftn int32 class OpenRA.OpenAlSoundEngine::'<SetSoundVolume>m__34'(valuetype [mscorlib]System.Collections.Generic.KeyValuePair`2<int32,class OpenRA.OpenAlSoundEngine/PoolSlot>)
IL_0028: newobj instance void class [System.Core]System.Func`2<valuetype [mscorlib]System.Collections.Generic.KeyValuePair`2<int32, class OpenRA.OpenAlSoundEngine/PoolSlot>, int32>::'.ctor'(object, native int)
IL_002d: stsfld class [System.Core]System.Func`2<valuetype [mscorlib]System.Collections.Generic.KeyValuePair`2<int32,class OpenRA.OpenAlSoundEngine/PoolSlot>,int32> OpenRA.OpenAlSoundEngine::'<>f__am$cache2'
IL_0032: ldsfld class [System.Core]System.Func`2<valuetype [mscorlib]System.Collections.Generic.KeyValuePair`2<int32,class OpenRA.OpenAlSoundEngine/PoolSlot>,int32> OpenRA.OpenAlSoundEngine::'<>f__am$cache2'
IL_0037: call class [mscorlib]System.Collections.Generic.IEnumerable`1<!!1> class [System.Core]System.Linq.Enumerable::Select<valuetype [mscorlib]System.Collections.Generic.KeyValuePair`2<int32,class OpenRA.OpenAlSoundEngine/PoolSlot>, int32> (class [mscorlib]System.Collections.Generic.IEnumerable`1<!!0>, class [System.Core]System.Func`2<!!0,!!1>)
IL_003c: ldloc.0
IL_003d: ldftn instance bool class OpenRA.OpenAlSoundEngine/'<SetSoundVolume>c__AnonStorey27'::'<>m__35'(int32)
IL_0043: newobj instance void class [System.Core]System.Func`2<int32, bool>::'.ctor'(object, native int)
IL_0048: call class [mscorlib]System.Collections.Generic.IEnumerable`1<!!0> class [System.Core]System.Linq.Enumerable::Where<int32> (class [mscorlib]System.Collections.Generic.IEnumerable`1<!!0>, class [System.Core]System.Func`2<!!0,bool>)
IL_004d: call class [mscorlib]System.Collections.Generic.List`1<!!0> class [System.Core]System.Linq.Enumerable::ToList<int32> (class [mscorlib]System.Collections.Generic.IEnumerable`1<!!0>)
IL_0052: stloc.1
IL_0053: ldloc.1
IL_0054: callvirt instance valuetype [mscorlib]System.Collections.Generic.List`1/Enumerator<!0> class [mscorlib]System.Collections.Generic.List`1<int32>::GetEnumerator()
IL_0059: stloc.2
.try { // 0
IL_005a: br IL_0073
IL_005f: ldloca.s 2
IL_0061: call instance !0 valuetype [mscorlib]System.Collections.Generic.List`1/Enumerator<int32>::get_Current()
IL_0066: stloc.3
IL_0067: ldloc.3
IL_0068: ldc.i4 4106
IL_006d: ldarg.1
IL_006e: call void class [Tao.OpenAl]Tao.OpenAl.Al::alSourcef(int32, int32, float32)
IL_0073: ldloca.s 2
IL_0075: call instance bool valuetype [mscorlib]System.Collections.Generic.List`1/Enumerator<int32>::MoveNext()
IL_007a: brtrue IL_005f
IL_007f: leave IL_0092
} // end .try 0
finally { // 0
IL_0084: ldloca.s 2
IL_0086: constrained. valuetype [mscorlib]System.Collections.Generic.List`1/Enumerator<int32>
IL_008c: callvirt instance void class [mscorlib]System.IDisposable::Dispose()
IL_0091: endfinally
} // end handler 0
IL_0092: ret
} // end of method OpenAlSoundEngine::SetSoundVolume
// method line 255
.method public final virtual hidebysig newslot
instance default void StopSound (class OpenRA.ISound sound) cil managed
{
// Method begins at RVA 0x7604
// Code size 61 (0x3d)
.maxstack 4
.locals init (
int32 V_0,
int32 V_1)
IL_0000: ldarg.1
IL_0001: brtrue IL_0007
IL_0006: ret
IL_0007: ldarg.1
IL_0008: castclass OpenRA.OpenAlSound
IL_000d: ldfld int32 OpenRA.OpenAlSound::source
IL_0012: stloc.0
IL_0013: ldloc.0
IL_0014: ldc.i4 4112
IL_0019: ldloca.s 1
IL_001b: call void class [Tao.OpenAl]Tao.OpenAl.Al::alGetSourcei(int32, int32, [out] int32&)
IL_0020: ldloc.1
IL_0021: ldc.i4 4114
IL_0026: beq IL_0036
IL_002b: ldloc.1
IL_002c: ldc.i4 4115
IL_0031: bne.un IL_003c
IL_0036: ldloc.0
IL_0037: call void class [Tao.OpenAl]Tao.OpenAl.Al::alSourceStop(int32)
IL_003c: ret
} // end of method OpenAlSoundEngine::StopSound
// method line 256
.method public final virtual hidebysig newslot
instance default void StopAllSounds () cil managed
{
// Method begins at RVA 0x7650
// Code size 103 (0x67)
.maxstack 12
.locals init (
valuetype [mscorlib]System.Collections.Generic.Dictionary`2/KeyCollection/Enumerator<int32, class OpenRA.OpenAlSoundEngine/PoolSlot> V_0,
int32 V_1,
int32 V_2)
IL_0000: ldarg.0
IL_0001: ldfld class [mscorlib]System.Collections.Generic.Dictionary`2<int32,class OpenRA.OpenAlSoundEngine/PoolSlot> OpenRA.OpenAlSoundEngine::sourcePool
IL_0006: callvirt instance class [mscorlib]System.Collections.Generic.Dictionary`2/KeyCollection<!0,!1> class [mscorlib]System.Collections.Generic.Dictionary`2<int32, class OpenRA.OpenAlSoundEngine/PoolSlot>::get_Keys()
IL_000b: callvirt instance valuetype [mscorlib]System.Collections.Generic.Dictionary`2/KeyCollection/Enumerator<!0,!1> class [mscorlib]System.Collections.Generic.Dictionary`2/KeyCollection<int32, class OpenRA.OpenAlSoundEngine/PoolSlot>::GetEnumerator()
IL_0010: stloc.0
.try { // 0
IL_0011: br IL_0047
IL_0016: ldloca.s 0
IL_0018: call instance !0 valuetype [mscorlib]System.Collections.Generic.Dictionary`2/KeyCollection/Enumerator<int32, class OpenRA.OpenAlSoundEngine/PoolSlot>::get_Current()
IL_001d: stloc.1
IL_001e: ldloc.1
IL_001f: ldc.i4 4112
IL_0024: ldloca.s 2
IL_0026: call void class [Tao.OpenAl]Tao.OpenAl.Al::alGetSourcei(int32, int32, [out] int32&)
IL_002b: ldloc.2
IL_002c: ldc.i4 4114
IL_0031: beq IL_0041
IL_0036: ldloc.2
IL_0037: ldc.i4 4115
IL_003c: bne.un IL_0047
IL_0041: ldloc.1
IL_0042: call void class [Tao.OpenAl]Tao.OpenAl.Al::alSourceStop(int32)
IL_0047: ldloca.s 0
IL_0049: call instance bool valuetype [mscorlib]System.Collections.Generic.Dictionary`2/KeyCollection/Enumerator<int32, class OpenRA.OpenAlSoundEngine/PoolSlot>::MoveNext()
IL_004e: brtrue IL_0016
IL_0053: leave IL_0066
} // end .try 0
finally { // 0
IL_0058: ldloca.s 0
IL_005a: constrained. valuetype [mscorlib]System.Collections.Generic.Dictionary`2/KeyCollection/Enumerator<int32,class OpenRA.OpenAlSoundEngine/PoolSlot>
IL_0060: callvirt instance void class [mscorlib]System.IDisposable::Dispose()
IL_0065: endfinally
} // end handler 0
IL_0066: ret
} // end of method OpenAlSoundEngine::StopAllSounds
// method line 257
.method public final virtual hidebysig newslot
instance default void SetListenerPosition (valuetype [OpenRA.FileFormats]OpenRA.WPos position) cil managed
{
// Method begins at RVA 0x76e0
// Code size 91 (0x5b)
.maxstack 6
.locals init (
float32[] V_0)
IL_0000: ldc.i4 4100
IL_0005: ldarga.s 1
IL_0007: ldfld int32 [OpenRA.FileFormats]OpenRA.WPos::X
IL_000c: conv.r4
IL_000d: ldarga.s 1
IL_000f: ldfld int32 [OpenRA.FileFormats]OpenRA.WPos::Y
IL_0014: conv.r4
IL_0015: ldarga.s 1
IL_0017: ldfld int32 [OpenRA.FileFormats]OpenRA.WPos::Z
IL_001c: ldc.i4 2133
IL_0021: add
IL_0022: conv.r4
IL_0023: call void class [Tao.OpenAl]Tao.OpenAl.Al::alListener3f(int32, float32, float32, float32)
IL_0028: ldc.i4.6
IL_0029: newarr [mscorlib]System.Single
IL_002e: dup
IL_002f: ldtoken field valuetype '<PrivateImplementationDetails>{21866c67-48c2-4985-9320-c7d882f85d3c}'/'$ArrayType=24' '<PrivateImplementationDetails>{21866c67-48c2-4985-9320-c7d882f85d3c}'::'$field-0'
IL_0034: call void class [mscorlib]System.Runtime.CompilerServices.RuntimeHelpers::InitializeArray(class [mscorlib]System.Array, valuetype [mscorlib]System.RuntimeFieldHandle)
IL_0039: stloc.0
IL_003a: ldc.i4 4111
IL_003f: ldloc.0
IL_0040: ldc.i4.0
IL_0041: ldelema [mscorlib]System.Single
IL_0046: call void class [Tao.OpenAl]Tao.OpenAl.Al::alListenerfv(int32, [out] float32&)
IL_004b: ldc.i4 131076
IL_0050: ldc.r4 0.0099999997764825821
IL_0055: call void class [Tao.OpenAl]Tao.OpenAl.Al::alListenerf(int32, float32)
IL_005a: ret
} // end of method OpenAlSoundEngine::SetListenerPosition
// method line 258
.method private static hidebysig
default int32 '<SetSoundVolume>m__34' (valuetype [mscorlib]System.Collections.Generic.KeyValuePair`2<int32, class OpenRA.OpenAlSoundEngine/PoolSlot> s) cil managed
{
.custom instance void class [mscorlib]System.Runtime.CompilerServices.CompilerGeneratedAttribute::'.ctor'() = (01 00 00 00 ) // ....
// Method begins at RVA 0x7748
// Code size 8 (0x8)
.maxstack 8
IL_0000: ldarga.s 0
IL_0002: call instance !0 valuetype [mscorlib]System.Collections.Generic.KeyValuePair`2<int32, class OpenRA.OpenAlSoundEngine/PoolSlot>::get_Key()
IL_0007: ret
} // end of method OpenAlSoundEngine::<SetSoundVolume>m__34
.property instance float32 Volume ()
{
.set instance default void OpenRA.OpenAlSoundEngine::set_Volume (float32 'value')
.get instance default float32 OpenRA.OpenAlSoundEngine::get_Volume ()
}
.class nested private auto ansi beforefieldinit PoolSlot
extends [mscorlib]System.Object
{
.field public bool isActive
.field public int32 frameStarted
.field public valuetype [OpenRA.FileFormats]OpenRA.WPos pos
.field public bool isRelative
.field public class OpenRA.ISoundSource sound
// method line 259
.method public hidebysig specialname rtspecialname
instance default void '.ctor' () cil managed
{
// Method begins at RVA 0x7754
// Code size 7 (0x7)
.maxstack 8
IL_0000: ldarg.0
IL_0001: call instance void object::'.ctor'()
IL_0006: ret
} // end of method PoolSlot::.ctor
} // end of class PoolSlot
.class nested private auto ansi sealed beforefieldinit '<SetSoundVolume>c__AnonStorey27'
extends [mscorlib]System.Object
{
.custom instance void class [mscorlib]System.Runtime.CompilerServices.CompilerGeneratedAttribute::'.ctor'() = (01 00 00 00 ) // ....
.field assembly class OpenRA.ISound music
.field assembly class OpenRA.ISound video
// method line 2123
.method public hidebysig specialname rtspecialname
instance default void '.ctor' () cil managed
{
// Method begins at RVA 0x2bba0
// Code size 7 (0x7)
.maxstack 8
IL_0000: ldarg.0
IL_0001: call instance void object::'.ctor'()
IL_0006: ret
} // end of method <SetSoundVolume>c__AnonStorey27::.ctor
// method line 2124
.method assembly hidebysig
instance default bool '<>m__35' (int32 b) cil managed
{
// Method begins at RVA 0x2bba8
// Code size 122 (0x7a)
.maxstack 5
.locals init (
int32 V_0)
IL_0000: ldarg.1
IL_0001: ldc.i4 4112
IL_0006: ldloca.s 0
IL_0008: call void class [Tao.OpenAl]Tao.OpenAl.Al::alGetSourcei(int32, int32, [out] int32&)
IL_000d: ldloc.0
IL_000e: ldc.i4 4114
IL_0013: beq IL_0023
IL_0018: ldloc.0
IL_0019: ldc.i4 4115
IL_001e: bne.un IL_0078
IL_0023: ldarg.0
IL_0024: ldfld class OpenRA.ISound OpenRA.OpenAlSoundEngine/'<SetSoundVolume>c__AnonStorey27'::music
IL_0029: brfalse IL_0049
IL_002e: ldarg.1
IL_002f: ldarg.0
IL_0030: ldfld class OpenRA.ISound OpenRA.OpenAlSoundEngine/'<SetSoundVolume>c__AnonStorey27'::music
IL_0035: castclass OpenRA.OpenAlSound
IL_003a: ldfld int32 OpenRA.OpenAlSound::source
IL_003f: ceq
IL_0041: ldc.i4.0
IL_0042: ceq
IL_0044: br IL_004a
IL_0049: ldc.i4.1
IL_004a: brfalse IL_0078
IL_004f: ldarg.0
IL_0050: ldfld class OpenRA.ISound OpenRA.OpenAlSoundEngine/'<SetSoundVolume>c__AnonStorey27'::video
IL_0055: brfalse IL_0075
IL_005a: ldarg.1
IL_005b: ldarg.0
IL_005c: ldfld class OpenRA.ISound OpenRA.OpenAlSoundEngine/'<SetSoundVolume>c__AnonStorey27'::video
IL_0061: castclass OpenRA.OpenAlSound
IL_0066: ldfld int32 OpenRA.OpenAlSound::source
IL_006b: ceq
IL_006d: ldc.i4.0
IL_006e: ceq
IL_0070: br IL_0076
IL_0075: ldc.i4.1
IL_0076: br.s IL_0079
IL_0078: ldc.i4.0
IL_0079: ret
} // end of method <SetSoundVolume>c__AnonStorey27::<>m__35
} // end of class <SetSoundVolume>c__AnonStorey27
} // end of class OpenRA.OpenAlSoundEngine
}
.namespace OpenRA
{
.class private auto ansi beforefieldinit OpenAlSoundSource
extends [mscorlib]System.Object
implements OpenRA.ISoundSource {
.field public initonly int32 buffer
// method line 260
.method public hidebysig specialname rtspecialname
instance default void '.ctor' (unsigned int8[] data, int32 channels, int32 sampleBits, int32 sampleRate) cil managed
{
// Method begins at RVA 0x775c
// Code size 43 (0x2b)
.maxstack 10
IL_0000: ldarg.0
IL_0001: call instance void object::'.ctor'()
IL_0006: ldc.i4.1
IL_0007: ldarg.0
IL_0008: ldflda int32 OpenRA.OpenAlSoundSource::buffer
IL_000d: call void class [Tao.OpenAl]Tao.OpenAl.Al::alGenBuffers(int32, [out] int32&)
IL_0012: ldarg.0
IL_0013: ldfld int32 OpenRA.OpenAlSoundSource::buffer
IL_0018: ldarg.2
IL_0019: ldarg.3
IL_001a: call int32 class OpenRA.OpenAlSoundSource::MakeALFormat(int32, int32)
IL_001f: ldarg.1
IL_0020: ldarg.1
IL_0021: ldlen
IL_0022: conv.i4
IL_0023: ldarg.s 4
IL_0025: call void class [Tao.OpenAl]Tao.OpenAl.Al::alBufferData(int32, int32, unsigned int8[], int32, int32)
IL_002a: ret
} // end of method OpenAlSoundSource::.ctor
// method line 261
.method private static hidebysig
default int32 MakeALFormat (int32 channels, int32 bits) cil managed
{
// Method begins at RVA 0x7794
// Code size 55 (0x37)
.maxstack 4
IL_0000: ldarg.0
IL_0001: ldc.i4.1
IL_0002: bne.un IL_001f
IL_0007: ldarg.1
IL_0008: ldc.i4.s 0x10
IL_000a: bne.un IL_0019
IL_000f: ldc.i4 4353
IL_0014: br IL_001e
IL_0019: ldc.i4 4352
IL_001e: ret
IL_001f: ldarg.1
IL_0020: ldc.i4.s 0x10
IL_0022: bne.un IL_0031
IL_0027: ldc.i4 4355
IL_002c: br IL_0036
IL_0031: ldc.i4 4354
IL_0036: ret
} // end of method OpenAlSoundSource::MakeALFormat
} // end of class OpenRA.OpenAlSoundSource
}
.namespace OpenRA
{
.class private auto ansi beforefieldinit OpenAlSound
extends [mscorlib]System.Object
implements OpenRA.ISound {
.field public initonly int32 source
.field private float32 volume
// method line 262
.method public hidebysig specialname rtspecialname
instance default void '.ctor' (int32 source, int32 buffer, bool looping, bool relative, valuetype [OpenRA.FileFormats]OpenRA.WPos pos, float32 volume) cil managed
{
// Method begins at RVA 0x77d8
// Code size 224 (0xe0)
.maxstack 17
IL_0000: ldarg.0
IL_0001: ldc.i4.m1
IL_0002: stfld int32 OpenRA.OpenAlSound::source
IL_0007: ldarg.0
IL_0008: ldc.r4 1.
IL_000d: stfld float32 OpenRA.OpenAlSound::volume
IL_0012: ldarg.0
IL_0013: call instance void object::'.ctor'()
IL_0018: ldarg.1
IL_0019: ldc.i4.m1
IL_001a: bne.un IL_0020
IL_001f: ret
IL_0020: ldarg.0
IL_0021: ldarg.1
IL_0022: stfld int32 OpenRA.OpenAlSound::source
IL_0027: ldarg.1
IL_0028: ldc.i4 4099
IL_002d: ldc.r4 1.
IL_0032: call void class [Tao.OpenAl]Tao.OpenAl.Al::alSourcef(int32, int32, float32)
IL_0037: ldarg.0
IL_0038: ldarg.s 6
IL_003a: call instance void class OpenRA.OpenAlSound::set_Volume(float32)
IL_003f: ldarg.1
IL_0040: ldc.i4 4100
IL_0045: ldarga.s 5
IL_0047: ldfld int32 [OpenRA.FileFormats]OpenRA.WPos::X
IL_004c: conv.r4
IL_004d: ldarga.s 5
IL_004f: ldfld int32 [OpenRA.FileFormats]OpenRA.WPos::Y
IL_0054: conv.r4
IL_0055: ldarga.s 5
IL_0057: ldfld int32 [OpenRA.FileFormats]OpenRA.WPos::Z
IL_005c: conv.r4
IL_005d: call void class [Tao.OpenAl]Tao.OpenAl.Al::alSource3f(int32, int32, float32, float32, float32)
IL_0062: ldarg.1
IL_0063: ldc.i4 4102
IL_0068: ldc.r4 0.
IL_006d: ldc.r4 0.
IL_0072: ldc.r4 0.
IL_0077: call void class [Tao.OpenAl]Tao.OpenAl.Al::alSource3f(int32, int32, float32, float32, float32)
IL_007c: ldarg.1
IL_007d: ldc.i4 4105
IL_0082: ldarg.2
IL_0083: call void class [Tao.OpenAl]Tao.OpenAl.Al::alSourcei(int32, int32, int32)
IL_0088: ldarg.1
IL_0089: ldc.i4 4103
IL_008e: ldarg.3
IL_008f: brfalse IL_009a
IL_0094: ldc.i4.1
IL_0095: br IL_009b
IL_009a: ldc.i4.0
IL_009b: call void class [Tao.OpenAl]Tao.OpenAl.Al::alSourcei(int32, int32, int32)
IL_00a0: ldarg.1
IL_00a1: ldc.i4 514
IL_00a6: ldarg.s 4
IL_00a8: brfalse IL_00b3
IL_00ad: ldc.i4.1
IL_00ae: br IL_00b4
IL_00b3: ldc.i4.0
IL_00b4: call void class [Tao.OpenAl]Tao.OpenAl.Al::alSourcei(int32, int32, int32)
IL_00b9: ldarg.1
IL_00ba: ldc.i4 4128
IL_00bf: ldc.r4 6826.
IL_00c4: call void class [Tao.OpenAl]Tao.OpenAl.Al::alSourcef(int32, int32, float32)
IL_00c9: ldarg.1
IL_00ca: ldc.i4 4131
IL_00cf: ldc.r4 136533.
IL_00d4: call void class [Tao.OpenAl]Tao.OpenAl.Al::alSourcef(int32, int32, float32)
IL_00d9: ldarg.1
IL_00da: call void class [Tao.OpenAl]Tao.OpenAl.Al::alSourcePlay(int32)
IL_00df: ret
} // end of method OpenAlSound::.ctor
// method line 263
.method public final virtual hidebysig newslot specialname
instance default float32 get_Volume () cil managed
{
// Method begins at RVA 0x78c4
// Code size 7 (0x7)
.maxstack 8
IL_0000: ldarg.0
IL_0001: ldfld float32 OpenRA.OpenAlSound::volume
IL_0006: ret
} // end of method OpenAlSound::get_Volume
// method line 264
.method public final virtual hidebysig newslot specialname
instance default void set_Volume (float32 'value') cil managed
{
// Method begins at RVA 0x78cc
// Code size 39 (0x27)
.maxstack 6
.locals init (
float32 V_0)
IL_0000: ldarg.0
IL_0001: ldfld int32 OpenRA.OpenAlSound::source
IL_0006: ldc.i4.m1
IL_0007: beq IL_0026
IL_000c: ldarg.0
IL_000d: ldfld int32 OpenRA.OpenAlSound::source
IL_0012: ldc.i4 4106
IL_0017: ldarg.0
IL_0018: ldarg.1
IL_0019: dup
IL_001a: stloc.0
IL_001b: stfld float32 OpenRA.OpenAlSound::volume
IL_0020: ldloc.0
IL_0021: call void class [Tao.OpenAl]Tao.OpenAl.Al::alSourcef(int32, int32, float32)
IL_0026: ret
} // end of method OpenAlSound::set_Volume
// method line 265
.method public final virtual hidebysig newslot specialname
instance default float32 get_SeekPosition () cil managed
{
// Method begins at RVA 0x7900
// Code size 26 (0x1a)
.maxstack 4
.locals init (
float32 V_0)
IL_0000: ldarg.0
IL_0001: ldfld int32 OpenRA.OpenAlSound::source
IL_0006: ldc.i4 4133
IL_000b: ldloca.s 0
IL_000d: call void class [Tao.OpenAl]Tao.OpenAl.Al::alGetSourcef(int32, int32, [out] float32&)
IL_0012: ldloc.0
IL_0013: ldc.r4 22050.
IL_0018: div
IL_0019: ret
} // end of method OpenAlSound::get_SeekPosition
// method line 266
.method public final virtual hidebysig newslot specialname
instance default bool get_Playing () cil managed
{
// Method begins at RVA 0x7928
// Code size 27 (0x1b)
.maxstack 4
.locals init (
int32 V_0)
IL_0000: ldarg.0
IL_0001: ldfld int32 OpenRA.OpenAlSound::source
IL_0006: ldc.i4 4112
IL_000b: ldloca.s 0
IL_000d: call void class [Tao.OpenAl]Tao.OpenAl.Al::alGetSourcei(int32, int32, [out] int32&)
IL_0012: ldloc.0
IL_0013: ldc.i4 4114
IL_0018: ceq
IL_001a: ret
} // end of method OpenAlSound::get_Playing
.property instance float32 Volume ()
{
.set instance default void OpenRA.OpenAlSound::set_Volume (float32 'value')
.get instance default float32 OpenRA.OpenAlSound::get_Volume ()
}
.property instance float32 SeekPosition ()
{
.get instance default float32 OpenRA.OpenAlSound::get_SeekPosition ()
}
.property instance bool Playing ()
{
.get instance default bool OpenRA.OpenAlSound::get_Playing ()
}
} // end of class OpenRA.OpenAlSound
}
.namespace OpenRA
{
.class private auto ansi beforefieldinit NullSoundEngine
extends [mscorlib]System.Object
implements OpenRA.ISoundEngine {
.field private float32 '<Volume>k__BackingField'
.custom instance void class [mscorlib]System.Runtime.CompilerServices.CompilerGeneratedAttribute::'.ctor'() = (01 00 00 00 ) // ....
// method line 267
.method public hidebysig specialname rtspecialname
instance default void '.ctor' () cil managed
{
// Method begins at RVA 0x7950
// Code size 17 (0x11)
.maxstack 8
IL_0000: ldarg.0
IL_0001: call instance void object::'.ctor'()
IL_0006: ldstr "Using Null sound engine which disables SFX completely"
IL_000b: call void class [mscorlib]System.Console::WriteLine(string)
IL_0010: ret
} // end of method NullSoundEngine::.ctor
// method line 268
.method public final virtual hidebysig newslot
instance default class OpenRA.ISoundSource AddSoundSourceFromMemory (unsigned int8[] data, int32 channels, int32 sampleBits, int32 sampleRate) cil managed
{
// Method begins at RVA 0x7964
// Code size 6 (0x6)
.maxstack 8
IL_0000: newobj instance void class OpenRA.NullSoundSource::'.ctor'()
IL_0005: ret
} // end of method NullSoundEngine::AddSoundSourceFromMemory
// method line 269
.method public final virtual hidebysig newslot
instance default class OpenRA.ISound Play2D (class OpenRA.ISoundSource sound, bool loop, bool relative, valuetype [OpenRA.FileFormats]OpenRA.WPos pos, float32 volume, bool attenuateVolume) cil managed
{
// Method begins at RVA 0x796c
// Code size 6 (0x6)
.maxstack 8
IL_0000: newobj instance void class OpenRA.NullSound::'.ctor'()
IL_0005: ret
} // end of method NullSoundEngine::Play2D
// method line 270
.method public final virtual hidebysig newslot
instance default void PauseSound (class OpenRA.ISound sound, bool paused) cil managed
{
// Method begins at RVA 0x7974
// Code size 1 (0x1)
.maxstack 8
IL_0000: ret
} // end of method NullSoundEngine::PauseSound
// method line 271
.method public final virtual hidebysig newslot
instance default void StopSound (class OpenRA.ISound sound) cil managed
{
// Method begins at RVA 0x7978
// Code size 1 (0x1)
.maxstack 8
IL_0000: ret
} // end of method NullSoundEngine::StopSound
// method line 272
.method public final virtual hidebysig newslot
instance default void SetAllSoundsPaused (bool paused) cil managed
{
// Method begins at RVA 0x797c
// Code size 1 (0x1)
.maxstack 8
IL_0000: ret
} // end of method NullSoundEngine::SetAllSoundsPaused
// method line 273
.method public final virtual hidebysig newslot
instance default void StopAllSounds () cil managed
{
// Method begins at RVA 0x7980
// Code size 1 (0x1)
.maxstack 8
IL_0000: ret
} // end of method NullSoundEngine::StopAllSounds
// method line 274
.method public final virtual hidebysig newslot
instance default void SetListenerPosition (valuetype [OpenRA.FileFormats]OpenRA.WPos position) cil managed
{
// Method begins at RVA 0x7984
// Code size 1 (0x1)
.maxstack 8
IL_0000: ret
} // end of method NullSoundEngine::SetListenerPosition
// method line 275
.method public final virtual hidebysig newslot
instance default void SetSoundVolume (float32 volume, class OpenRA.ISound music, class OpenRA.ISound video) cil managed
{
// Method begins at RVA 0x7988
// Code size 1 (0x1)
.maxstack 8
IL_0000: ret
} // end of method NullSoundEngine::SetSoundVolume
// method line 276
.method public final virtual hidebysig newslot specialname
instance default float32 get_Volume () cil managed
{
.custom instance void class [mscorlib]System.Runtime.CompilerServices.CompilerGeneratedAttribute::'.ctor'() = (01 00 00 00 ) // ....
// Method begins at RVA 0x798c
// Code size 7 (0x7)
.maxstack 8
IL_0000: ldarg.0
IL_0001: ldfld float32 OpenRA.NullSoundEngine::'<Volume>k__BackingField'
IL_0006: ret
} // end of method NullSoundEngine::get_Volume
// method line 277
.method public final virtual hidebysig newslot specialname
instance default void set_Volume (float32 'value') cil managed
{
.custom instance void class [mscorlib]System.Runtime.CompilerServices.CompilerGeneratedAttribute::'.ctor'() = (01 00 00 00 ) // ....
// Method begins at RVA 0x7994
// Code size 8 (0x8)
.maxstack 8
IL_0000: ldarg.0
IL_0001: ldarg.1
IL_0002: stfld float32 OpenRA.NullSoundEngine::'<Volume>k__BackingField'
IL_0007: ret
} // end of method NullSoundEngine::set_Volume
.property instance float32 Volume ()
{
.set instance default void OpenRA.NullSoundEngine::set_Volume (float32 'value')
.get instance default float32 OpenRA.NullSoundEngine::get_Volume ()
}
} // end of class OpenRA.NullSoundEngine
}
.namespace OpenRA
{
.class private auto ansi beforefieldinit NullSoundSource
extends [mscorlib]System.Object
implements OpenRA.ISoundSource {
// method line 278
.method public hidebysig specialname rtspecialname
instance default void '.ctor' () cil managed
{
// Method begins at RVA 0x79a0
// Code size 7 (0x7)
.maxstack 8
IL_0000: ldarg.0
IL_0001: call instance void object::'.ctor'()
IL_0006: ret
} // end of method NullSoundSource::.ctor
} // end of class OpenRA.NullSoundSource
}
.namespace OpenRA
{
.class private auto ansi beforefieldinit NullSound
extends [mscorlib]System.Object
implements OpenRA.ISound {
.field private float32 '<Volume>k__BackingField'
.custom instance void class [mscorlib]System.Runtime.CompilerServices.CompilerGeneratedAttribute::'.ctor'() = (01 00 00 00 ) // ....
// method line 279
.method public hidebysig specialname rtspecialname
instance default void '.ctor' () cil managed
{
// Method begins at RVA 0x79a8
// Code size 7 (0x7)
.maxstack 8
IL_0000: ldarg.0
IL_0001: call instance void object::'.ctor'()
IL_0006: ret
} // end of method NullSound::.ctor
// method line 280
.method public final virtual hidebysig newslot specialname
instance default float32 get_Volume () cil managed
{
.custom instance void class [mscorlib]System.Runtime.CompilerServices.CompilerGeneratedAttribute::'.ctor'() = (01 00 00 00 ) // ....
// Method begins at RVA 0x79b0
// Code size 7 (0x7)
.maxstack 8
IL_0000: ldarg.0
IL_0001: ldfld float32 OpenRA.NullSound::'<Volume>k__BackingField'
IL_0006: ret
} // end of method NullSound::get_Volume
// method line 281
.method public final virtual hidebysig newslot specialname
instance default void set_Volume (float32 'value') cil managed
{
.custom instance void class [mscorlib]System.Runtime.CompilerServices.CompilerGeneratedAttribute::'.ctor'() = (01 00 00 00 ) // ....
// Method begins at RVA 0x79b8
// Code size 8 (0x8)
.maxstack 8
IL_0000: ldarg.0
IL_0001: ldarg.1
IL_0002: stfld float32 OpenRA.NullSound::'<Volume>k__BackingField'
IL_0007: ret
} // end of method NullSound::set_Volume
// method line 282
.method public final virtual hidebysig newslot specialname
instance default float32 get_SeekPosition () cil managed
{
// Method begins at RVA 0x79c4
// Code size 6 (0x6)
.maxstack 8
IL_0000: ldc.r4 0.
IL_0005: ret
} // end of method NullSound::get_SeekPosition
// method line 283
.method public final virtual hidebysig newslot specialname
instance default bool get_Playing () cil managed
{
// Method begins at RVA 0x79cc
// Code size 2 (0x2)
.maxstack 8
IL_0000: ldc.i4.0
IL_0001: ret
} // end of method NullSound::get_Playing
.property instance float32 Volume ()
{
.set instance default void OpenRA.NullSound::set_Volume (float32 'value')
.get instance default float32 OpenRA.NullSound::get_Volume ()
}
.property instance float32 SeekPosition ()
{
.get instance default float32 OpenRA.NullSound::get_SeekPosition ()
}
.property instance bool Playing ()
{
.get instance default bool OpenRA.NullSound::get_Playing ()
}
} // end of class OpenRA.NullSound
}
.namespace OpenRA
{
.class public sequential ansi sealed beforefieldinit CVec
extends [mscorlib]System.ValueType
{
.field public initonly int32 X
.field public initonly int32 Y
.field public static initonly valuetype OpenRA.CVec Zero
.field public static initonly valuetype OpenRA.CVec[] directions
// method line 284
.method public hidebysig specialname rtspecialname
instance default void '.ctor' (int32 x, int32 y) cil managed
{
// Method begins at RVA 0x79d0
// Code size 15 (0xf)
.maxstack 8
IL_0000: ldarg.0
IL_0001: ldarg.1
IL_0002: stfld int32 OpenRA.CVec::X
IL_0007: ldarg.0
IL_0008: ldarg.2
IL_0009: stfld int32 OpenRA.CVec::Y
IL_000e: ret
} // end of method CVec::.ctor
// method line 285
.method public hidebysig specialname rtspecialname
instance default void '.ctor' (valuetype [System.Drawing]System.Drawing.Size p) cil managed
{
// Method begins at RVA 0x79e0
// Code size 27 (0x1b)
.maxstack 8
IL_0000: ldarg.0
IL_0001: ldarga.s 1
IL_0003: call instance int32 valuetype [System.Drawing]System.Drawing.Size::get_Width()
IL_0008: stfld int32 OpenRA.CVec::X
IL_000d: ldarg.0
IL_000e: ldarga.s 1
IL_0010: call instance int32 valuetype [System.Drawing]System.Drawing.Size::get_Height()
IL_0015: stfld int32 OpenRA.CVec::Y
IL_001a: ret
} // end of method CVec::.ctor
// method line 286
.method private static specialname rtspecialname
default void '.cctor' () cil managed
{
// Method begins at RVA 0x79fc
// Code size 176 (0xb0)
.maxstack 5
IL_0000: ldc.i4.0
IL_0001: ldc.i4.0
IL_0002: newobj instance void valuetype OpenRA.CVec::'.ctor'(int32, int32)
IL_0007: stsfld valuetype OpenRA.CVec OpenRA.CVec::Zero
IL_000c: ldc.i4.8
IL_000d: newarr OpenRA.CVec
IL_0012: dup
IL_0013: ldc.i4.0
IL_0014: ldelema OpenRA.CVec
IL_0019: ldc.i4.m1
IL_001a: ldc.i4.m1
IL_001b: newobj instance void valuetype OpenRA.CVec::'.ctor'(int32, int32)
IL_0020: stobj OpenRA.CVec
IL_0025: dup
IL_0026: ldc.i4.1
IL_0027: ldelema OpenRA.CVec
IL_002c: ldc.i4.m1
IL_002d: ldc.i4.0
IL_002e: newobj instance void valuetype OpenRA.CVec::'.ctor'(int32, int32)
IL_0033: stobj OpenRA.CVec
IL_0038: dup
IL_0039: ldc.i4.2
IL_003a: ldelema OpenRA.CVec
IL_003f: ldc.i4.m1
IL_0040: ldc.i4.1
IL_0041: newobj instance void valuetype OpenRA.CVec::'.ctor'(int32, int32)
IL_0046: stobj OpenRA.CVec
IL_004b: dup
IL_004c: ldc.i4.3
IL_004d: ldelema OpenRA.CVec
IL_0052: ldc.i4.0
IL_0053: ldc.i4.m1
IL_0054: newobj instance void valuetype OpenRA.CVec::'.ctor'(int32, int32)
IL_0059: stobj OpenRA.CVec
IL_005e: dup
IL_005f: ldc.i4.4
IL_0060: ldelema OpenRA.CVec
IL_0065: ldc.i4.0
IL_0066: ldc.i4.1
IL_0067: newobj instance void valuetype OpenRA.CVec::'.ctor'(int32, int32)
IL_006c: stobj OpenRA.CVec
IL_0071: dup
IL_0072: ldc.i4.5
IL_0073: ldelema OpenRA.CVec
IL_0078: ldc.i4.1
IL_0079: ldc.i4.m1
IL_007a: newobj instance void valuetype OpenRA.CVec::'.ctor'(int32, int32)
IL_007f: stobj OpenRA.CVec
IL_0084: dup
IL_0085: ldc.i4.6
IL_0086: ldelema OpenRA.CVec
IL_008b: ldc.i4.1
IL_008c: ldc.i4.0
IL_008d: newobj instance void valuetype OpenRA.CVec::'.ctor'(int32, int32)
IL_0092: stobj OpenRA.CVec
IL_0097: dup
IL_0098: ldc.i4.7
IL_0099: ldelema OpenRA.CVec
IL_009e: ldc.i4.1
IL_009f: ldc.i4.1
IL_00a0: newobj instance void valuetype OpenRA.CVec::'.ctor'(int32, int32)
IL_00a5: stobj OpenRA.CVec
IL_00aa: stsfld valuetype OpenRA.CVec[] OpenRA.CVec::directions
IL_00af: ret
} // end of method CVec::.cctor
// method line 287
.method public static hidebysig
default valuetype OpenRA.CVec Max (valuetype OpenRA.CVec a, valuetype OpenRA.CVec b) cil managed
{
// Method begins at RVA 0x7ab8
// Code size 44 (0x2c)
.maxstack 8
IL_0000: ldarga.s 0
IL_0002: ldfld int32 OpenRA.CVec::X
IL_0007: ldarga.s 1
IL_0009: ldfld int32 OpenRA.CVec::X
IL_000e: call int32 class [mscorlib]System.Math::Max(int32, int32)
IL_0013: ldarga.s 0
IL_0015: ldfld int32 OpenRA.CVec::Y
IL_001a: ldarga.s 1
IL_001c: ldfld int32 OpenRA.CVec::Y
IL_0021: call int32 class [mscorlib]System.Math::Max(int32, int32)
IL_0026: newobj instance void valuetype OpenRA.CVec::'.ctor'(int32, int32)
IL_002b: ret
} // end of method CVec::Max
// method line 288
.method public static hidebysig
default valuetype OpenRA.CVec Min (valuetype OpenRA.CVec a, valuetype OpenRA.CVec b) cil managed
{
// Method begins at RVA 0x7ae8
// Code size 44 (0x2c)
.maxstack 8
IL_0000: ldarga.s 0
IL_0002: ldfld int32 OpenRA.CVec::X
IL_0007: ldarga.s 1
IL_0009: ldfld int32 OpenRA.CVec::X
IL_000e: call int32 class [mscorlib]System.Math::Min(int32, int32)
IL_0013: ldarga.s 0
IL_0015: ldfld int32 OpenRA.CVec::Y
IL_001a: ldarga.s 1
IL_001c: ldfld int32 OpenRA.CVec::Y
IL_0021: call int32 class [mscorlib]System.Math::Min(int32, int32)
IL_0026: newobj instance void valuetype OpenRA.CVec::'.ctor'(int32, int32)
IL_002b: ret
} // end of method CVec::Min
// method line 289
.method public static hidebysig
default int32 Dot (valuetype OpenRA.CVec a, valuetype OpenRA.CVec b) cil managed
{
// Method begins at RVA 0x7b18
// Code size 32 (0x20)
.maxstack 8
IL_0000: ldarga.s 0
IL_0002: ldfld int32 OpenRA.CVec::X
IL_0007: ldarga.s 1
IL_0009: ldfld int32 OpenRA.CVec::X
IL_000e: mul
IL_000f: ldarga.s 0
IL_0011: ldfld int32 OpenRA.CVec::Y
IL_0016: ldarga.s 1
IL_0018: ldfld int32 OpenRA.CVec::Y
IL_001d: mul
IL_001e: add
IL_001f: ret
} // end of method CVec::Dot
// method line 290
.method public hidebysig
instance default valuetype OpenRA.CVec Sign () cil managed
{
// Method begins at RVA 0x7b3c
// Code size 28 (0x1c)
.maxstack 8
IL_0000: ldarg.0
IL_0001: ldfld int32 OpenRA.CVec::X
IL_0006: call int32 class [mscorlib]System.Math::Sign(int32)
IL_000b: ldarg.0
IL_000c: ldfld int32 OpenRA.CVec::Y
IL_0011: call int32 class [mscorlib]System.Math::Sign(int32)
IL_0016: newobj instance void valuetype OpenRA.CVec::'.ctor'(int32, int32)
IL_001b: ret
} // end of method CVec::Sign
// method line 291
.method public hidebysig
instance default valuetype OpenRA.CVec Abs () cil managed
{
// Method begins at RVA 0x7b5c
// Code size 28 (0x1c)
.maxstack 8
IL_0000: ldarg.0
IL_0001: ldfld int32 OpenRA.CVec::X
IL_0006: call int32 class [mscorlib]System.Math::Abs(int32)
IL_000b: ldarg.0
IL_000c: ldfld int32 OpenRA.CVec::Y
IL_0011: call int32 class [mscorlib]System.Math::Abs(int32)
IL_0016: newobj instance void valuetype OpenRA.CVec::'.ctor'(int32, int32)
IL_001b: ret
} // end of method CVec::Abs
// method line 292
.method public hidebysig specialname
instance default int32 get_LengthSquared () cil managed
{
// Method begins at RVA 0x7b7c
// Code size 28 (0x1c)
.maxstack 8
IL_0000: ldarg.0
IL_0001: ldfld int32 OpenRA.CVec::X
IL_0006: ldarg.0
IL_0007: ldfld int32 OpenRA.CVec::X
IL_000c: mul
IL_000d: ldarg.0
IL_000e: ldfld int32 OpenRA.CVec::Y
IL_0013: ldarg.0
IL_0014: ldfld int32 OpenRA.CVec::Y
IL_0019: mul
IL_001a: add
IL_001b: ret
} // end of method CVec::get_LengthSquared
// method line 293
.method public hidebysig specialname
instance default int32 get_Length () cil managed
{
// Method begins at RVA 0x7b9c
// Code size 14 (0xe)
.maxstack 8
IL_0000: ldarg.0
IL_0001: call instance int32 valuetype OpenRA.CVec::get_LengthSquared()
IL_0006: conv.r8
IL_0007: call float64 class [mscorlib]System.Math::Sqrt(float64)
IL_000c: conv.i4
IL_000d: ret
} // end of method CVec::get_Length
// method line 294
.method public hidebysig
instance default valuetype [OpenRA.FileFormats]OpenRA.float2 ToFloat2 () cil managed
{
// Method begins at RVA 0x7bac
// Code size 20 (0x14)
.maxstack 8
IL_0000: ldarg.0
IL_0001: ldfld int32 OpenRA.CVec::X
IL_0006: conv.r4
IL_0007: ldarg.0
IL_0008: ldfld int32 OpenRA.CVec::Y
IL_000d: conv.r4
IL_000e: newobj instance void valuetype [OpenRA.FileFormats]OpenRA.float2::'.ctor'(float32, float32)
IL_0013: ret
} // end of method CVec::ToFloat2
// method line 295
.method public hidebysig
instance default valuetype [OpenRA.FileFormats]OpenRA.int2 ToInt2 () cil managed
{
// Method begins at RVA 0x7bc4
// Code size 18 (0x12)
.maxstack 8
IL_0000: ldarg.0
IL_0001: ldfld int32 OpenRA.CVec::X
IL_0006: ldarg.0
IL_0007: ldfld int32 OpenRA.CVec::Y
IL_000c: newobj instance void valuetype [OpenRA.FileFormats]OpenRA.int2::'.ctor'(int32, int32)
IL_0011: ret
} // end of method CVec::ToInt2
// method line 296
.method public hidebysig
instance default valuetype [OpenRA.FileFormats]OpenRA.WVec ToWVec () cil managed
{
// Method begins at RVA 0x7bd8
// Code size 31 (0x1f)
.maxstack 8
IL_0000: ldarg.0
IL_0001: ldfld int32 OpenRA.CVec::X
IL_0006: ldc.i4 1024
IL_000b: mul
IL_000c: ldarg.0
IL_000d: ldfld int32 OpenRA.CVec::Y
IL_0012: ldc.i4 1024
IL_0017: mul
IL_0018: ldc.i4.0
IL_0019: newobj instance void valuetype [OpenRA.FileFormats]OpenRA.WVec::'.ctor'(int32, int32, int32)
IL_001e: ret
} // end of method CVec::ToWVec
// method line 297
.method public hidebysig
instance default valuetype OpenRA.CVec Clamp (valuetype [System.Drawing]System.Drawing.Rectangle r) cil managed
{
// Method begins at RVA 0x7bf8
// Code size 66 (0x42)
.maxstack 15
IL_0000: ldarga.s 1
IL_0002: call instance int32 valuetype [System.Drawing]System.Drawing.Rectangle::get_Right()
IL_0007: ldarg.0
IL_0008: ldfld int32 OpenRA.CVec::X
IL_000d: ldarga.s 1
IL_000f: call instance int32 valuetype [System.Drawing]System.Drawing.Rectangle::get_Left()
IL_0014: call int32 class [mscorlib]System.Math::Max(int32, int32)
IL_0019: call int32 class [mscorlib]System.Math::Min(int32, int32)
IL_001e: ldarga.s 1
IL_0020: call instance int32 valuetype [System.Drawing]System.Drawing.Rectangle::get_Bottom()
IL_0025: ldarg.0
IL_0026: ldfld int32 OpenRA.CVec::Y
IL_002b: ldarga.s 1
IL_002d: call instance int32 valuetype [System.Drawing]System.Drawing.Rectangle::get_Top()
IL_0032: call int32 class [mscorlib]System.Math::Max(int32, int32)
IL_0037: call int32 class [mscorlib]System.Math::Min(int32, int32)
IL_003c: newobj instance void valuetype OpenRA.CVec::'.ctor'(int32, int32)
IL_0041: ret
} // end of method CVec::Clamp
// method line 298
.method public virtual hidebysig
instance default int32 GetHashCode () cil managed
{
// Method begins at RVA 0x7c48
// Code size 30 (0x1e)
.maxstack 7
.locals init (
int32 V_0,
int32 V_1)
IL_0000: ldarg.0
IL_0001: ldfld int32 OpenRA.CVec::X
IL_0006: stloc.0
IL_0007: ldloca.s 0
IL_0009: call instance int32 int32::GetHashCode()
IL_000e: ldarg.0
IL_000f: ldfld int32 OpenRA.CVec::Y
IL_0014: stloc.1
IL_0015: ldloca.s 1
IL_0017: call instance int32 int32::GetHashCode()
IL_001c: xor
IL_001d: ret
} // end of method CVec::GetHashCode
// method line 299
.method public virtual hidebysig
instance default bool Equals (object obj) cil managed
{
// Method begins at RVA 0x7c74
// Code size 28 (0x1c)
.maxstack 4
.locals init (
valuetype OpenRA.CVec V_0)
IL_0000: ldarg.1
IL_0001: brtrue IL_0008
IL_0006: ldc.i4.0
IL_0007: ret
IL_0008: ldarg.1
IL_0009: unbox.any OpenRA.CVec
IL_000e: stloc.0
IL_000f: ldloc.0
IL_0010: ldarg.0
IL_0011: ldobj OpenRA.CVec
IL_0016: call bool valuetype OpenRA.CVec::op_Equality(valuetype OpenRA.CVec, valuetype OpenRA.CVec)
IL_001b: ret
} // end of method CVec::Equals
// method line 300
.method public virtual hidebysig
instance default string ToString () cil managed
{
// Method begins at RVA 0x7c9c
// Code size 45 (0x2d)
.maxstack 6
IL_0000: ldstr "{0},{1}"
IL_0005: ldc.i4.2
IL_0006: newarr [mscorlib]System.Object
IL_000b: dup
IL_000c: ldc.i4.0
IL_000d: ldarg.0
IL_000e: ldfld int32 OpenRA.CVec::X
IL_0013: box [mscorlib]System.Int32
IL_0018: stelem.ref
IL_0019: dup
IL_001a: ldc.i4.1
IL_001b: ldarg.0
IL_001c: ldfld int32 OpenRA.CVec::Y
IL_0021: box [mscorlib]System.Int32
IL_0026: stelem.ref
IL_0027: call string class [OpenRA.FileFormats]OpenRA.Exts::F(string, object[])
IL_002c: ret
} // end of method CVec::ToString
// method line 301
.method public static hidebysig specialname
default valuetype OpenRA.CVec op_Explicit (valuetype [OpenRA.FileFormats]OpenRA.int2 a) cil managed
{
// Method begins at RVA 0x7cd8
// Code size 20 (0x14)
.maxstack 8
IL_0000: ldarga.s 0
IL_0002: ldfld int32 [OpenRA.FileFormats]OpenRA.int2::X
IL_0007: ldarga.s 0
IL_0009: ldfld int32 [OpenRA.FileFormats]OpenRA.int2::Y
IL_000e: newobj instance void valuetype OpenRA.CVec::'.ctor'(int32, int32)
IL_0013: ret
} // end of method CVec::op_Explicit
// method line 302
.method public static hidebysig specialname
default valuetype OpenRA.CVec op_Explicit (valuetype [OpenRA.FileFormats]OpenRA.float2 a) cil managed
{
// Method begins at RVA 0x7cf0
// Code size 22 (0x16)
.maxstack 8
IL_0000: ldarga.s 0
IL_0002: ldfld float32 [OpenRA.FileFormats]OpenRA.float2::X
IL_0007: conv.i4
IL_0008: ldarga.s 0
IL_000a: ldfld float32 [OpenRA.FileFormats]OpenRA.float2::Y
IL_000f: conv.i4
IL_0010: newobj instance void valuetype OpenRA.CVec::'.ctor'(int32, int32)
IL_0015: ret
} // end of method CVec::op_Explicit
// method line 303
.method public static hidebysig specialname
default valuetype OpenRA.CVec op_Addition (valuetype OpenRA.CVec a, valuetype OpenRA.CVec b) cil managed
{
// Method begins at RVA 0x7d08
// Code size 36 (0x24)
.maxstack 8
IL_0000: ldarga.s 0
IL_0002: ldfld int32 OpenRA.CVec::X
IL_0007: ldarga.s 1
IL_0009: ldfld int32 OpenRA.CVec::X
IL_000e: add
IL_000f: ldarga.s 0
IL_0011: ldfld int32 OpenRA.CVec::Y
IL_0016: ldarga.s 1
IL_0018: ldfld int32 OpenRA.CVec::Y
IL_001d: add
IL_001e: newobj instance void valuetype OpenRA.CVec::'.ctor'(int32, int32)
IL_0023: ret
} // end of method CVec::op_Addition
// method line 304
.method public static hidebysig specialname
default valuetype OpenRA.CVec op_Subtraction (valuetype OpenRA.CVec a, valuetype OpenRA.CVec b) cil managed
{
// Method begins at RVA 0x7d30
// Code size 36 (0x24)
.maxstack 8
IL_0000: ldarga.s 0
IL_0002: ldfld int32 OpenRA.CVec::X
IL_0007: ldarga.s 1
IL_0009: ldfld int32 OpenRA.CVec::X
IL_000e: sub
IL_000f: ldarga.s 0
IL_0011: ldfld int32 OpenRA.CVec::Y
IL_0016: ldarga.s 1
IL_0018: ldfld int32 OpenRA.CVec::Y
IL_001d: sub
IL_001e: newobj instance void valuetype OpenRA.CVec::'.ctor'(int32, int32)
IL_0023: ret
} // end of method CVec::op_Subtraction
// method line 305
.method public static hidebysig specialname
default valuetype OpenRA.CVec op_Multiply (int32 a, valuetype OpenRA.CVec b) cil managed
{
// Method begins at RVA 0x7d58
// Code size 24 (0x18)
.maxstack 8
IL_0000: ldarg.0
IL_0001: ldarga.s 1
IL_0003: ldfld int32 OpenRA.CVec::X
IL_0008: mul
IL_0009: ldarg.0
IL_000a: ldarga.s 1
IL_000c: ldfld int32 OpenRA.CVec::Y
IL_0011: mul
IL_0012: newobj instance void valuetype OpenRA.CVec::'.ctor'(int32, int32)
IL_0017: ret
} // end of method CVec::op_Multiply
// method line 306
.method public static hidebysig specialname
default valuetype OpenRA.CVec op_Multiply (valuetype OpenRA.CVec b, int32 a) cil managed
{
// Method begins at RVA 0x7d74
// Code size 24 (0x18)
.maxstack 8
IL_0000: ldarg.1
IL_0001: ldarga.s 0
IL_0003: ldfld int32 OpenRA.CVec::X
IL_0008: mul
IL_0009: ldarg.1
IL_000a: ldarga.s 0
IL_000c: ldfld int32 OpenRA.CVec::Y
IL_0011: mul
IL_0012: newobj instance void valuetype OpenRA.CVec::'.ctor'(int32, int32)
IL_0017: ret
} // end of method CVec::op_Multiply
// method line 307
.method public static hidebysig specialname
default valuetype OpenRA.CVec op_Division (valuetype OpenRA.CVec a, int32 b) cil managed
{
// Method begins at RVA 0x7d90
// Code size 24 (0x18)
.maxstack 8
IL_0000: ldarga.s 0
IL_0002: ldfld int32 OpenRA.CVec::X
IL_0007: ldarg.1
IL_0008: div
IL_0009: ldarga.s 0
IL_000b: ldfld int32 OpenRA.CVec::Y
IL_0010: ldarg.1
IL_0011: div
IL_0012: newobj instance void valuetype OpenRA.CVec::'.ctor'(int32, int32)
IL_0017: ret
} // end of method CVec::op_Division
// method line 308
.method public static hidebysig specialname
default valuetype OpenRA.CVec op_UnaryNegation (valuetype OpenRA.CVec a) cil managed
{
// Method begins at RVA 0x7dac
// Code size 22 (0x16)
.maxstack 8
IL_0000: ldarga.s 0
IL_0002: ldfld int32 OpenRA.CVec::X
IL_0007: neg
IL_0008: ldarga.s 0
IL_000a: ldfld int32 OpenRA.CVec::Y
IL_000f: neg
IL_0010: newobj instance void valuetype OpenRA.CVec::'.ctor'(int32, int32)
IL_0015: ret
} // end of method CVec::op_UnaryNegation
// method line 309
.method public static hidebysig specialname
default bool op_Equality (valuetype OpenRA.CVec me, valuetype OpenRA.CVec other) cil managed
{
// Method begins at RVA 0x7dc4
// Code size 39 (0x27)
.maxstack 3
IL_0000: ldarga.s 0
IL_0002: ldfld int32 OpenRA.CVec::X
IL_0007: ldarga.s 1
IL_0009: ldfld int32 OpenRA.CVec::X
IL_000e: bne.un IL_0025
IL_0013: ldarga.s 0
IL_0015: ldfld int32 OpenRA.CVec::Y
IL_001a: ldarga.s 1
IL_001c: ldfld int32 OpenRA.CVec::Y
IL_0021: ceq
IL_0023: br.s IL_0026
IL_0025: ldc.i4.0
IL_0026: ret
} // end of method CVec::op_Equality
// method line 310
.method public static hidebysig specialname
default bool op_Inequality (valuetype OpenRA.CVec me, valuetype OpenRA.CVec other) cil managed
{
// Method begins at RVA 0x7df8
// Code size 11 (0xb)
.maxstack 8
IL_0000: ldarg.0
IL_0001: ldarg.1
IL_0002: call bool valuetype OpenRA.CVec::op_Equality(valuetype OpenRA.CVec, valuetype OpenRA.CVec)
IL_0007: ldc.i4.0
IL_0008: ceq
IL_000a: ret
} // end of method CVec::op_Inequality
.property instance int32 LengthSquared ()
{
.get instance default int32 OpenRA.CVec::get_LengthSquared ()
}
.property instance int32 Length ()
{
.get instance default int32 OpenRA.CVec::get_Length ()
}
} // end of class OpenRA.CVec
}
.namespace OpenRA.FileFormats
{
.class public auto ansi beforefieldinit ActorReference
extends [mscorlib]System.Object
implements [mscorlib]System.Collections.IEnumerable {
.field public string Type
.field public class [OpenRA.FileFormats]OpenRA.FileFormats.TypeDictionary InitDict
// method line 311
.method public hidebysig specialname rtspecialname
instance default void '.ctor' (string 'type') cil managed
{
// Method begins at RVA 0x7e04
// Code size 13 (0xd)
.maxstack 8
IL_0000: ldarg.0
IL_0001: ldarg.1
IL_0002: newobj instance void class [mscorlib]System.Collections.Generic.Dictionary`2<string, class [OpenRA.FileFormats]OpenRA.FileFormats.MiniYaml>::'.ctor'()
IL_0007: call instance void class OpenRA.FileFormats.ActorReference::'.ctor'(string, class [mscorlib]System.Collections.Generic.Dictionary`2<string,class [OpenRA.FileFormats]OpenRA.FileFormats.MiniYaml>)
IL_000c: ret
} // end of method ActorReference::.ctor
// method line 312
.method public hidebysig specialname rtspecialname
instance default void '.ctor' (string 'type', class [mscorlib]System.Collections.Generic.Dictionary`2<string, class [OpenRA.FileFormats]OpenRA.FileFormats.MiniYaml> inits) cil managed
{
// Method begins at RVA 0x7e14
// Code size 106 (0x6a)
.maxstack 17
.locals init (
valuetype [mscorlib]System.Collections.Generic.Dictionary`2/Enumerator<string, class [OpenRA.FileFormats]OpenRA.FileFormats.MiniYaml> V_0,
valuetype [mscorlib]System.Collections.Generic.KeyValuePair`2<string, class [OpenRA.FileFormats]OpenRA.FileFormats.MiniYaml> V_1)
IL_0000: ldarg.0
IL_0001: call instance void object::'.ctor'()
IL_0006: ldarg.0
IL_0007: ldarg.1
IL_0008: stfld string OpenRA.FileFormats.ActorReference::Type
IL_000d: ldarg.0
IL_000e: newobj instance void class [OpenRA.FileFormats]OpenRA.FileFormats.TypeDictionary::'.ctor'()
IL_0013: stfld class [OpenRA.FileFormats]OpenRA.FileFormats.TypeDictionary OpenRA.FileFormats.ActorReference::InitDict
IL_0018: ldarg.2
IL_0019: callvirt instance valuetype [mscorlib]System.Collections.Generic.Dictionary`2/Enumerator<!0,!1> class [mscorlib]System.Collections.Generic.Dictionary`2<string, class [OpenRA.FileFormats]OpenRA.FileFormats.MiniYaml>::GetEnumerator()
IL_001e: stloc.0
.try { // 0
IL_001f: br IL_004a
IL_0024: ldloca.s 0
IL_0026: call instance valuetype [mscorlib]System.Collections.Generic.KeyValuePair`2<!0,!1> valuetype [mscorlib]System.Collections.Generic.Dictionary`2/Enumerator<string, class [OpenRA.FileFormats]OpenRA.FileFormats.MiniYaml>::get_Current()
IL_002b: stloc.1
IL_002c: ldarg.0
IL_002d: ldfld class [OpenRA.FileFormats]OpenRA.FileFormats.TypeDictionary OpenRA.FileFormats.ActorReference::InitDict
IL_0032: ldloca.s 1
IL_0034: call instance !0 valuetype [mscorlib]System.Collections.Generic.KeyValuePair`2<string, class [OpenRA.FileFormats]OpenRA.FileFormats.MiniYaml>::get_Key()
IL_0039: ldloca.s 1
IL_003b: call instance !1 valuetype [mscorlib]System.Collections.Generic.KeyValuePair`2<string, class [OpenRA.FileFormats]OpenRA.FileFormats.MiniYaml>::get_Value()
IL_0040: call class OpenRA.IActorInit class OpenRA.FileFormats.ActorReference::LoadInit(string, class [OpenRA.FileFormats]OpenRA.FileFormats.MiniYaml)
IL_0045: callvirt instance void class [OpenRA.FileFormats]OpenRA.FileFormats.TypeDictionary::Add(object)
IL_004a: ldloca.s 0
IL_004c: call instance bool valuetype [mscorlib]System.Collections.Generic.Dictionary`2/Enumerator<string, class [OpenRA.FileFormats]OpenRA.FileFormats.MiniYaml>::MoveNext()
IL_0051: brtrue IL_0024
IL_0056: leave IL_0069
} // end .try 0
finally { // 0
IL_005b: ldloca.s 0
IL_005d: constrained. valuetype [mscorlib]System.Collections.Generic.Dictionary`2/Enumerator<string,class [OpenRA.FileFormats]OpenRA.FileFormats.MiniYaml>
IL_0063: callvirt instance void class [mscorlib]System.IDisposable::Dispose()
IL_0068: endfinally
} // end handler 0
IL_0069: ret
} // end of method ActorReference::.ctor
// method line 313
.method private static hidebysig
default class OpenRA.IActorInit LoadInit (string traitName, class [OpenRA.FileFormats]OpenRA.FileFormats.MiniYaml my) cil managed
{
// Method begins at RVA 0x7ea8
// Code size 26 (0x1a)
.maxstack 5
.locals init (
class OpenRA.IActorInit V_0)
IL_0000: ldarg.0
IL_0001: ldstr "Init"
IL_0006: call string string::Concat(string, string)
IL_000b: call !!0 class OpenRA.Game::CreateObject<class OpenRA.IActorInit> (string)
IL_0010: stloc.0
IL_0011: ldloc.0
IL_0012: ldarg.1
IL_0013: call void class [OpenRA.FileFormats]OpenRA.FileFormats.FieldLoader::Load(object, class [OpenRA.FileFormats]OpenRA.FileFormats.MiniYaml)
IL_0018: ldloc.0
IL_0019: ret
} // end of method ActorReference::LoadInit
// method line 314
.method public hidebysig
instance default class [OpenRA.FileFormats]OpenRA.FileFormats.MiniYaml Save () cil managed
{
// Method begins at RVA 0x7ed0
// Code size 125 (0x7d)
.maxstack 20
.locals init (
class [OpenRA.FileFormats]OpenRA.FileFormats.MiniYaml V_0,
class [mscorlib]System.Collections.IEnumerator V_1,
object V_2,
string V_3,
class [mscorlib]System.IDisposable V_4)
IL_0000: ldarg.0
IL_0001: ldfld string OpenRA.FileFormats.ActorReference::Type
IL_0006: newobj instance void class [OpenRA.FileFormats]OpenRA.FileFormats.MiniYaml::'.ctor'(string)
IL_000b: stloc.0
IL_000c: ldarg.0
IL_000d: ldfld class [OpenRA.FileFormats]OpenRA.FileFormats.TypeDictionary OpenRA.FileFormats.ActorReference::InitDict
IL_0012: callvirt instance class [mscorlib]System.Collections.IEnumerator class [OpenRA.FileFormats]OpenRA.FileFormats.TypeDictionary::GetEnumerator()
IL_0017: stloc.1
.try { // 0
IL_0018: br IL_0055
IL_001d: ldloc.1
IL_001e: callvirt instance object class [mscorlib]System.Collections.IEnumerator::get_Current()
IL_0023: stloc.2
IL_0024: ldloc.2
IL_0025: callvirt instance class [mscorlib]System.Type object::GetType()
IL_002a: callvirt instance string class [mscorlib]System.Reflection.MemberInfo::get_Name()
IL_002f: stloc.3
IL_0030: ldloc.0
IL_0031: ldfld class [mscorlib]System.Collections.Generic.List`1<class [OpenRA.FileFormats]OpenRA.FileFormats.MiniYamlNode> [OpenRA.FileFormats]OpenRA.FileFormats.MiniYaml::Nodes
IL_0036: ldloc.3
IL_0037: ldc.i4.0
IL_0038: ldloc.3
IL_0039: callvirt instance int32 string::get_Length()
IL_003e: ldc.i4.4
IL_003f: sub
IL_0040: callvirt instance string string::Substring(int32, int32)
IL_0045: ldloc.2
IL_0046: call class [OpenRA.FileFormats]OpenRA.FileFormats.MiniYaml class [OpenRA.FileFormats]OpenRA.FileFormats.FieldSaver::Save(object)
IL_004b: newobj instance void class [OpenRA.FileFormats]OpenRA.FileFormats.MiniYamlNode::'.ctor'(string, class [OpenRA.FileFormats]OpenRA.FileFormats.MiniYaml)
IL_0050: callvirt instance void class [mscorlib]System.Collections.Generic.List`1<class [OpenRA.FileFormats]OpenRA.FileFormats.MiniYamlNode>::Add(!0)
IL_0055: ldloc.1
IL_0056: callvirt instance bool class [mscorlib]System.Collections.IEnumerator::MoveNext()
IL_005b: brtrue IL_001d
IL_0060: leave IL_007b
} // end .try 0
finally { // 0
IL_0065: ldloc.1
IL_0066: isinst [mscorlib]System.IDisposable
IL_006b: dup
IL_006c: stloc.s 4
IL_006e: brfalse IL_007a
IL_0073: ldloc.s 4
IL_0075: callvirt instance void class [mscorlib]System.IDisposable::Dispose()
IL_007a: endfinally
} // end handler 0
IL_007b: ldloc.0
IL_007c: ret
} // end of method ActorReference::Save
// method line 315
.method public hidebysig
instance default void Add (object o) cil managed
{
// Method begins at RVA 0x7f78
// Code size 13 (0xd)
.maxstack 8
IL_0000: ldarg.0
IL_0001: ldfld class [OpenRA.FileFormats]OpenRA.FileFormats.TypeDictionary OpenRA.FileFormats.ActorReference::InitDict
IL_0006: ldarg.1
IL_0007: callvirt instance void class [OpenRA.FileFormats]OpenRA.FileFormats.TypeDictionary::Add(object)
IL_000c: ret
} // end of method ActorReference::Add
// method line 316
.method public final virtual hidebysig newslot
instance default class [mscorlib]System.Collections.IEnumerator GetEnumerator () cil managed
{
// Method begins at RVA 0x7f88
// Code size 12 (0xc)
.maxstack 8
IL_0000: ldarg.0
IL_0001: ldfld class [OpenRA.FileFormats]OpenRA.FileFormats.TypeDictionary OpenRA.FileFormats.ActorReference::InitDict
IL_0006: callvirt instance class [mscorlib]System.Collections.IEnumerator class [OpenRA.FileFormats]OpenRA.FileFormats.TypeDictionary::GetEnumerator()
IL_000b: ret
} // end of method ActorReference::GetEnumerator
} // end of class OpenRA.FileFormats.ActorReference
}
.namespace OpenRA.GameRules
{
.class public auto ansi sealed MouseScrollType
extends [mscorlib]System.Enum
{
.field public specialname rtspecialname int32 value__
.field public static literal valuetype OpenRA.GameRules.MouseScrollType Disabled = int32(0x00000000)
.field public static literal valuetype OpenRA.GameRules.MouseScrollType Standard = int32(0x00000001)
.field public static literal valuetype OpenRA.GameRules.MouseScrollType Inverted = int32(0x00000002)
} // end of class OpenRA.GameRules.MouseScrollType
}
.namespace OpenRA.GameRules
{
.class public auto ansi sealed SoundCashTicks
extends [mscorlib]System.Enum
{
.field public specialname rtspecialname int32 value__
.field public static literal valuetype OpenRA.GameRules.SoundCashTicks Disabled = int32(0x00000000)
.field public static literal valuetype OpenRA.GameRules.SoundCashTicks Normal = int32(0x00000001)
.field public static literal valuetype OpenRA.GameRules.SoundCashTicks Extreme = int32(0x00000002)
} // end of class OpenRA.GameRules.SoundCashTicks
}
.namespace OpenRA.GameRules
{
.class public auto ansi beforefieldinit ServerSettings
extends [mscorlib]System.Object
{
.field public string Name
.field public int32 ListenPort
.field public int32 ExternalPort
.field public bool AdvertiseOnline
.field public string Password
.field public string MasterServer
.field public bool DiscoverNatDevices
.field public bool AllowPortForward
.field public bool NatDeviceAvailable
.field public int32 NatDiscoveryTimeout
.field public bool VerboseNatDiscovery
.field public bool AllowCheats
.field public string Map
.field public string[] Ban
.field public int32 TimeOut
.field public bool Dedicated
.field public bool DedicatedLoop
.field public bool LockBots
.field public bool AllowVersionMismatch
// method line 317
.method public hidebysig specialname rtspecialname
instance default void '.ctor' () cil managed
{
// Method begins at RVA 0x7f98
// Code size 169 (0xa9)
.maxstack 3
IL_0000: ldarg.0
IL_0001: ldstr "OpenRA Game"
IL_0006: stfld string OpenRA.GameRules.ServerSettings::Name
IL_000b: ldarg.0
IL_000c: ldc.i4 1234
IL_0011: stfld int32 OpenRA.GameRules.ServerSettings::ListenPort
IL_0016: ldarg.0
IL_0017: ldc.i4 1234
IL_001c: stfld int32 OpenRA.GameRules.ServerSettings::ExternalPort
IL_0021: ldarg.0
IL_0022: ldc.i4.1
IL_0023: stfld bool OpenRA.GameRules.ServerSettings::AdvertiseOnline
IL_0028: ldarg.0
IL_0029: ldstr ""
IL_002e: stfld string OpenRA.GameRules.ServerSettings::Password
IL_0033: ldarg.0
IL_0034: ldstr "http://master.open-ra.org/"
IL_0039: stfld string OpenRA.GameRules.ServerSettings::MasterServer
IL_003e: ldarg.0
IL_003f: ldc.i4.0
IL_0040: stfld bool OpenRA.GameRules.ServerSettings::DiscoverNatDevices
IL_0045: ldarg.0
IL_0046: ldc.i4.1
IL_0047: stfld bool OpenRA.GameRules.ServerSettings::AllowPortForward
IL_004c: ldarg.0
IL_004d: ldc.i4.0
IL_004e: stfld bool OpenRA.GameRules.ServerSettings::NatDeviceAvailable
IL_0053: ldarg.0
IL_0054: ldc.i4 1000
IL_0059: stfld int32 OpenRA.GameRules.ServerSettings::NatDiscoveryTimeout
IL_005e: ldarg.0
IL_005f: ldc.i4.0
IL_0060: stfld bool OpenRA.GameRules.ServerSettings::VerboseNatDiscovery
IL_0065: ldarg.0
IL_0066: ldc.i4.0
IL_0067: stfld bool OpenRA.GameRules.ServerSettings::AllowCheats
IL_006c: ldarg.0
IL_006d: ldnull
IL_006e: stfld string OpenRA.GameRules.ServerSettings::Map
IL_0073: ldarg.0
IL_0074: ldc.i4.0
IL_0075: newarr [mscorlib]System.String
IL_007a: stfld string[] OpenRA.GameRules.ServerSettings::Ban
IL_007f: ldarg.0
IL_0080: ldc.i4.0
IL_0081: stfld int32 OpenRA.GameRules.ServerSettings::TimeOut
IL_0086: ldarg.0
IL_0087: ldc.i4.0
IL_0088: stfld bool OpenRA.GameRules.ServerSettings::Dedicated
IL_008d: ldarg.0
IL_008e: ldc.i4.1
IL_008f: stfld bool OpenRA.GameRules.ServerSettings::DedicatedLoop
IL_0094: ldarg.0
IL_0095: ldc.i4.0
IL_0096: stfld bool OpenRA.GameRules.ServerSettings::LockBots
IL_009b: ldarg.0
IL_009c: ldc.i4.0
IL_009d: stfld bool OpenRA.GameRules.ServerSettings::AllowVersionMismatch
IL_00a2: ldarg.0
IL_00a3: call instance void object::'.ctor'()
IL_00a8: ret
} // end of method ServerSettings::.ctor
// method line 318
.method public hidebysig specialname rtspecialname
instance default void '.ctor' (class OpenRA.GameRules.ServerSettings other) cil managed
{
// Method begins at RVA 0x8050
// Code size 397 (0x18d)
.maxstack 5
IL_0000: ldarg.0
IL_0001: ldstr "OpenRA Game"
IL_0006: stfld string OpenRA.GameRules.ServerSettings::Name
IL_000b: ldarg.0
IL_000c: ldc.i4 1234
IL_0011: stfld int32 OpenRA.GameRules.ServerSettings::ListenPort
IL_0016: ldarg.0
IL_0017: ldc.i4 1234
IL_001c: stfld int32 OpenRA.GameRules.ServerSettings::ExternalPort
IL_0021: ldarg.0
IL_0022: ldc.i4.1
IL_0023: stfld bool OpenRA.GameRules.ServerSettings::AdvertiseOnline
IL_0028: ldarg.0
IL_0029: ldstr ""
IL_002e: stfld string OpenRA.GameRules.ServerSettings::Password
IL_0033: ldarg.0
IL_0034: ldstr "http://master.open-ra.org/"
IL_0039: stfld string OpenRA.GameRules.ServerSettings::MasterServer
IL_003e: ldarg.0
IL_003f: ldc.i4.0
IL_0040: stfld bool OpenRA.GameRules.ServerSettings::DiscoverNatDevices
IL_0045: ldarg.0
IL_0046: ldc.i4.1
IL_0047: stfld bool OpenRA.GameRules.ServerSettings::AllowPortForward
IL_004c: ldarg.0
IL_004d: ldc.i4.0
IL_004e: stfld bool OpenRA.GameRules.ServerSettings::NatDeviceAvailable
IL_0053: ldarg.0
IL_0054: ldc.i4 1000
IL_0059: stfld int32 OpenRA.GameRules.ServerSettings::NatDiscoveryTimeout
IL_005e: ldarg.0
IL_005f: ldc.i4.0
IL_0060: stfld bool OpenRA.GameRules.ServerSettings::VerboseNatDiscovery
IL_0065: ldarg.0
IL_0066: ldc.i4.0
IL_0067: stfld bool OpenRA.GameRules.ServerSettings::AllowCheats
IL_006c: ldarg.0
IL_006d: ldnull
IL_006e: stfld string OpenRA.GameRules.ServerSettings::Map
IL_0073: ldarg.0
IL_0074: ldc.i4.0
IL_0075: newarr [mscorlib]System.String
IL_007a: stfld string[] OpenRA.GameRules.ServerSettings::Ban
IL_007f: ldarg.0
IL_0080: ldc.i4.0
IL_0081: stfld int32 OpenRA.GameRules.ServerSettings::TimeOut
IL_0086: ldarg.0
IL_0087: ldc.i4.0
IL_0088: stfld bool OpenRA.GameRules.ServerSettings::Dedicated
IL_008d: ldarg.0
IL_008e: ldc.i4.1
IL_008f: stfld bool OpenRA.GameRules.ServerSettings::DedicatedLoop
IL_0094: ldarg.0
IL_0095: ldc.i4.0
IL_0096: stfld bool OpenRA.GameRules.ServerSettings::LockBots
IL_009b: ldarg.0
IL_009c: ldc.i4.0
IL_009d: stfld bool OpenRA.GameRules.ServerSettings::AllowVersionMismatch
IL_00a2: ldarg.0
IL_00a3: call instance void object::'.ctor'()
IL_00a8: ldarg.0
IL_00a9: ldarg.1
IL_00aa: ldfld string OpenRA.GameRules.ServerSettings::Name
IL_00af: stfld string OpenRA.GameRules.ServerSettings::Name
IL_00b4: ldarg.0
IL_00b5: ldarg.1
IL_00b6: ldfld int32 OpenRA.GameRules.ServerSettings::ListenPort
IL_00bb: stfld int32 OpenRA.GameRules.ServerSettings::ListenPort
IL_00c0: ldarg.0
IL_00c1: ldarg.1
IL_00c2: ldfld int32 OpenRA.GameRules.ServerSettings::ExternalPort
IL_00c7: stfld int32 OpenRA.GameRules.ServerSettings::ExternalPort
IL_00cc: ldarg.0
IL_00cd: ldarg.1
IL_00ce: ldfld bool OpenRA.GameRules.ServerSettings::AdvertiseOnline
IL_00d3: stfld bool OpenRA.GameRules.ServerSettings::AdvertiseOnline
IL_00d8: ldarg.0
IL_00d9: ldarg.1
IL_00da: ldfld string OpenRA.GameRules.ServerSettings::Password
IL_00df: stfld string OpenRA.GameRules.ServerSettings::Password
IL_00e4: ldarg.0
IL_00e5: ldarg.1
IL_00e6: ldfld string OpenRA.GameRules.ServerSettings::MasterServer
IL_00eb: stfld string OpenRA.GameRules.ServerSettings::MasterServer
IL_00f0: ldarg.0
IL_00f1: ldarg.1
IL_00f2: ldfld bool OpenRA.GameRules.ServerSettings::DiscoverNatDevices
IL_00f7: stfld bool OpenRA.GameRules.ServerSettings::DiscoverNatDevices
IL_00fc: ldarg.0
IL_00fd: ldarg.1
IL_00fe: ldfld bool OpenRA.GameRules.ServerSettings::AllowPortForward
IL_0103: stfld bool OpenRA.GameRules.ServerSettings::AllowPortForward
IL_0108: ldarg.0
IL_0109: ldarg.1
IL_010a: ldfld bool OpenRA.GameRules.ServerSettings::NatDeviceAvailable
IL_010f: stfld bool OpenRA.GameRules.ServerSettings::NatDeviceAvailable
IL_0114: ldarg.0
IL_0115: ldarg.1
IL_0116: ldfld int32 OpenRA.GameRules.ServerSettings::NatDiscoveryTimeout
IL_011b: stfld int32 OpenRA.GameRules.ServerSettings::NatDiscoveryTimeout
IL_0120: ldarg.0
IL_0121: ldarg.1
IL_0122: ldfld bool OpenRA.GameRules.ServerSettings::VerboseNatDiscovery
IL_0127: stfld bool OpenRA.GameRules.ServerSettings::VerboseNatDiscovery
IL_012c: ldarg.0
IL_012d: ldarg.1
IL_012e: ldfld bool OpenRA.GameRules.ServerSettings::AllowCheats
IL_0133: stfld bool OpenRA.GameRules.ServerSettings::AllowCheats
IL_0138: ldarg.0
IL_0139: ldarg.1
IL_013a: ldfld string OpenRA.GameRules.ServerSettings::Map
IL_013f: stfld string OpenRA.GameRules.ServerSettings::Map
IL_0144: ldarg.0
IL_0145: ldarg.1
IL_0146: ldfld string[] OpenRA.GameRules.ServerSettings::Ban
IL_014b: stfld string[] OpenRA.GameRules.ServerSettings::Ban
IL_0150: ldarg.0
IL_0151: ldarg.1
IL_0152: ldfld int32 OpenRA.GameRules.ServerSettings::TimeOut
IL_0157: stfld int32 OpenRA.GameRules.ServerSettings::TimeOut
IL_015c: ldarg.0
IL_015d: ldarg.1
IL_015e: ldfld bool OpenRA.GameRules.ServerSettings::Dedicated
IL_0163: stfld bool OpenRA.GameRules.ServerSettings::Dedicated
IL_0168: ldarg.0
IL_0169: ldarg.1
IL_016a: ldfld bool OpenRA.GameRules.ServerSettings::DedicatedLoop
IL_016f: stfld bool OpenRA.GameRules.ServerSettings::DedicatedLoop
IL_0174: ldarg.0
IL_0175: ldarg.1
IL_0176: ldfld bool OpenRA.GameRules.ServerSettings::LockBots
IL_017b: stfld bool OpenRA.GameRules.ServerSettings::LockBots
IL_0180: ldarg.0
IL_0181: ldarg.1
IL_0182: ldfld bool OpenRA.GameRules.ServerSettings::AllowVersionMismatch
IL_0187: stfld bool OpenRA.GameRules.ServerSettings::AllowVersionMismatch
IL_018c: ret
} // end of method ServerSettings::.ctor
} // end of class OpenRA.GameRules.ServerSettings
}
.namespace OpenRA.GameRules
{
.class public auto ansi beforefieldinit DebugSettings
extends [mscorlib]System.Object
{
.field public bool BotDebug
.field public bool PerfText
.field public bool PerfGraph
.field public float32 LongTickThreshold
.field public bool SanityCheckUnsyncedCode
.field public int32 Samples
.field public bool IgnoreVersionMismatch
.field public bool DeveloperMenu
.field public bool ShowFatalErrorDialog
.field public string FatalErrorDialogFaq
// method line 319
.method public hidebysig specialname rtspecialname
instance default void '.ctor' () cil managed
{
// Method begins at RVA 0x81ec
// Code size 86 (0x56)
.maxstack 2
IL_0000: ldarg.0
IL_0001: ldc.i4.0
IL_0002: stfld bool OpenRA.GameRules.DebugSettings::BotDebug
IL_0007: ldarg.0
IL_0008: ldc.i4.0
IL_0009: stfld bool OpenRA.GameRules.DebugSettings::PerfText
IL_000e: ldarg.0
IL_000f: ldc.i4.0
IL_0010: stfld bool OpenRA.GameRules.DebugSettings::PerfGraph
IL_0015: ldarg.0
IL_0016: ldc.r4 0.0010000000474974513
IL_001b: stfld float32 OpenRA.GameRules.DebugSettings::LongTickThreshold
IL_0020: ldarg.0
IL_0021: ldc.i4.0
IL_0022: stfld bool OpenRA.GameRules.DebugSettings::SanityCheckUnsyncedCode
IL_0027: ldarg.0
IL_0028: ldc.i4.s 0x19
IL_002a: stfld int32 OpenRA.GameRules.DebugSettings::Samples
IL_002f: ldarg.0
IL_0030: ldc.i4.0
IL_0031: stfld bool OpenRA.GameRules.DebugSettings::IgnoreVersionMismatch
IL_0036: ldarg.0
IL_0037: ldc.i4.0
IL_0038: stfld bool OpenRA.GameRules.DebugSettings::DeveloperMenu
IL_003d: ldarg.0
IL_003e: ldc.i4.1
IL_003f: stfld bool OpenRA.GameRules.DebugSettings::ShowFatalErrorDialog
IL_0044: ldarg.0
IL_0045: ldstr "http://github.com/OpenRA/OpenRA/wiki/FAQ"
IL_004a: stfld string OpenRA.GameRules.DebugSettings::FatalErrorDialogFaq
IL_004f: ldarg.0
IL_0050: call instance void object::'.ctor'()
IL_0055: ret
} // end of method DebugSettings::.ctor
} // end of class OpenRA.GameRules.DebugSettings
}
.namespace OpenRA.GameRules
{
.class public auto ansi beforefieldinit GraphicSettings
extends [mscorlib]System.Object
{
.field public string Renderer
.field public valuetype [OpenRA.FileFormats]OpenRA.FileFormats.Graphics.WindowMode Mode
.field public valuetype [OpenRA.FileFormats]OpenRA.int2 FullscreenSize
.field public valuetype [OpenRA.FileFormats]OpenRA.int2 WindowedSize
.field public bool PixelDouble
.field public bool CapFramerate
.field public int32 MaxFramerate
.field public int32 BatchSize
.field public int32 NumTempBuffers
.field public int32 SheetSize
.field public string Language
.field public string DefaultLanguage
// method line 320
.method public hidebysig specialname rtspecialname
instance default void '.ctor' () cil managed
{
// Method begins at RVA 0x8250
// Code size 132 (0x84)
.maxstack 4
IL_0000: ldarg.0
IL_0001: ldstr "Gl"
IL_0006: stfld string OpenRA.GameRules.GraphicSettings::Renderer
IL_000b: ldarg.0
IL_000c: ldc.i4.2
IL_000d: stfld valuetype [OpenRA.FileFormats]OpenRA.FileFormats.Graphics.WindowMode OpenRA.GameRules.GraphicSettings::Mode
IL_0012: ldarg.0
IL_0013: ldc.i4.0
IL_0014: ldc.i4.0
IL_0015: newobj instance void valuetype [OpenRA.FileFormats]OpenRA.int2::'.ctor'(int32, int32)
IL_001a: stfld valuetype [OpenRA.FileFormats]OpenRA.int2 OpenRA.GameRules.GraphicSettings::FullscreenSize
IL_001f: ldarg.0
IL_0020: ldc.i4 1024
IL_0025: ldc.i4 768
IL_002a: newobj instance void valuetype [OpenRA.FileFormats]OpenRA.int2::'.ctor'(int32, int32)
IL_002f: stfld valuetype [OpenRA.FileFormats]OpenRA.int2 OpenRA.GameRules.GraphicSettings::WindowedSize
IL_0034: ldarg.0
IL_0035: ldc.i4.0
IL_0036: stfld bool OpenRA.GameRules.GraphicSettings::PixelDouble
IL_003b: ldarg.0
IL_003c: ldc.i4.0
IL_003d: stfld bool OpenRA.GameRules.GraphicSettings::CapFramerate
IL_0042: ldarg.0
IL_0043: ldc.i4.s 0x3c
IL_0045: stfld int32 OpenRA.GameRules.GraphicSettings::MaxFramerate
IL_004a: ldarg.0
IL_004b: ldc.i4 8192
IL_0050: stfld int32 OpenRA.GameRules.GraphicSettings::BatchSize
IL_0055: ldarg.0
IL_0056: ldc.i4.8
IL_0057: stfld int32 OpenRA.GameRules.GraphicSettings::NumTempBuffers
IL_005c: ldarg.0
IL_005d: ldc.i4 2048
IL_0062: stfld int32 OpenRA.GameRules.GraphicSettings::SheetSize
IL_0067: ldarg.0
IL_0068: ldstr "english"
IL_006d: stfld string OpenRA.GameRules.GraphicSettings::Language
IL_0072: ldarg.0
IL_0073: ldstr "english"
IL_0078: stfld string OpenRA.GameRules.GraphicSettings::DefaultLanguage
IL_007d: ldarg.0
IL_007e: call instance void object::'.ctor'()
IL_0083: ret
} // end of method GraphicSettings::.ctor
} // end of class OpenRA.GameRules.GraphicSettings
}
.namespace OpenRA.GameRules
{
.class public auto ansi beforefieldinit SoundSettings
extends [mscorlib]System.Object
{
.field public float32 SoundVolume
.field public float32 MusicVolume
.field public float32 VideoVolume
.field public bool Shuffle
.field public bool Repeat
.field public bool MapMusic
.field public string Engine
.field public string Device
.field public valuetype OpenRA.GameRules.SoundCashTicks SoundCashTickType
// method line 321
.method public hidebysig specialname rtspecialname
instance default void '.ctor' () cil managed
{
// Method begins at RVA 0x82e0
// Code size 86 (0x56)
.maxstack 2
IL_0000: ldarg.0
IL_0001: ldc.r4 0.5
IL_0006: stfld float32 OpenRA.GameRules.SoundSettings::SoundVolume
IL_000b: ldarg.0
IL_000c: ldc.r4 0.5
IL_0011: stfld float32 OpenRA.GameRules.SoundSettings::MusicVolume
IL_0016: ldarg.0
IL_0017: ldc.r4 0.5
IL_001c: stfld float32 OpenRA.GameRules.SoundSettings::VideoVolume
IL_0021: ldarg.0
IL_0022: ldc.i4.0
IL_0023: stfld bool OpenRA.GameRules.SoundSettings::Shuffle
IL_0028: ldarg.0
IL_0029: ldc.i4.0
IL_002a: stfld bool OpenRA.GameRules.SoundSettings::Repeat
IL_002f: ldarg.0
IL_0030: ldc.i4.1
IL_0031: stfld bool OpenRA.GameRules.SoundSettings::MapMusic
IL_0036: ldarg.0
IL_0037: ldstr "AL"
IL_003c: stfld string OpenRA.GameRules.SoundSettings::Engine
IL_0041: ldarg.0
IL_0042: ldnull
IL_0043: stfld string OpenRA.GameRules.SoundSettings::Device
IL_0048: ldarg.0
IL_0049: ldc.i4.2
IL_004a: stfld valuetype OpenRA.GameRules.SoundCashTicks OpenRA.GameRules.SoundSettings::SoundCashTickType
IL_004f: ldarg.0
IL_0050: call instance void object::'.ctor'()
IL_0055: ret
} // end of method SoundSettings::.ctor
} // end of class OpenRA.GameRules.SoundSettings
}
.namespace OpenRA.GameRules
{
.class public auto ansi beforefieldinit PlayerSettings
extends [mscorlib]System.Object
{
.field public string Name
.field public valuetype [OpenRA.FileFormats]OpenRA.FileFormats.HSLColor Color
.field public string LastServer
// method line 322
.method public hidebysig specialname rtspecialname
instance default void '.ctor' () cil managed
{
// Method begins at RVA 0x8344
// Code size 52 (0x34)
.maxstack 8
IL_0000: ldarg.0
IL_0001: ldstr "Newbie"
IL_0006: stfld string OpenRA.GameRules.PlayerSettings::Name
IL_000b: ldarg.0
IL_000c: ldc.i4.s 0x4b
IL_000e: ldc.i4 255
IL_0013: ldc.i4 180
IL_0018: newobj instance void valuetype [OpenRA.FileFormats]OpenRA.FileFormats.HSLColor::'.ctor'(unsigned int8, unsigned int8, unsigned int8)
IL_001d: stfld valuetype [OpenRA.FileFormats]OpenRA.FileFormats.HSLColor OpenRA.GameRules.PlayerSettings::Color
IL_0022: ldarg.0
IL_0023: ldstr "localhost:1234"
IL_0028: stfld string OpenRA.GameRules.PlayerSettings::LastServer
IL_002d: ldarg.0
IL_002e: call instance void object::'.ctor'()
IL_0033: ret
} // end of method PlayerSettings::.ctor
} // end of class OpenRA.GameRules.PlayerSettings
}
.namespace OpenRA.GameRules
{
.class public auto ansi beforefieldinit GameSettings
extends [mscorlib]System.Object
{
.field public string[] Mods
.field public bool TeamChatToggle
.field public bool ShowShellmap
.field public bool ViewportEdgeScroll
.field public valuetype OpenRA.GameRules.MouseScrollType MouseScroll
.field public float32 ViewportEdgeScrollStep
.field public bool UseClassicMouseStyle
.field public int32 Timestep
.field public bool AllowDownloading
.field public string MapRepository
// method line 323
.method public hidebysig specialname rtspecialname
instance default void '.ctor' () cil managed
{
// Method begins at RVA 0x837c
// Code size 99 (0x63)
.maxstack 5
IL_0000: ldarg.0
IL_0001: ldc.i4.1
IL_0002: newarr [mscorlib]System.String
IL_0007: dup
IL_0008: ldc.i4.0
IL_0009: ldstr "ra"
IL_000e: stelem.ref
IL_000f: stfld string[] OpenRA.GameRules.GameSettings::Mods
IL_0014: ldarg.0
IL_0015: ldc.i4.0
IL_0016: stfld bool OpenRA.GameRules.GameSettings::TeamChatToggle
IL_001b: ldarg.0
IL_001c: ldc.i4.1
IL_001d: stfld bool OpenRA.GameRules.GameSettings::ShowShellmap
IL_0022: ldarg.0
IL_0023: ldc.i4.1
IL_0024: stfld bool OpenRA.GameRules.GameSettings::ViewportEdgeScroll
IL_0029: ldarg.0
IL_002a: ldc.i4.1
IL_002b: stfld valuetype OpenRA.GameRules.MouseScrollType OpenRA.GameRules.GameSettings::MouseScroll
IL_0030: ldarg.0
IL_0031: ldc.r4 10.
IL_0036: stfld float32 OpenRA.GameRules.GameSettings::ViewportEdgeScrollStep
IL_003b: ldarg.0
IL_003c: ldc.i4.0
IL_003d: stfld bool OpenRA.GameRules.GameSettings::UseClassicMouseStyle
IL_0042: ldarg.0
IL_0043: ldc.i4.s 0x28
IL_0045: stfld int32 OpenRA.GameRules.GameSettings::Timestep
IL_004a: ldarg.0
IL_004b: ldc.i4.1
IL_004c: stfld bool OpenRA.GameRules.GameSettings::AllowDownloading
IL_0051: ldarg.0
IL_0052: ldstr "http://content.open-ra.org/map/"
IL_0057: stfld string OpenRA.GameRules.GameSettings::MapRepository
IL_005c: ldarg.0
IL_005d: call instance void object::'.ctor'()
IL_0062: ret
} // end of method GameSettings::.ctor
} // end of class OpenRA.GameRules.GameSettings
}
.namespace OpenRA.GameRules
{
.class public auto ansi beforefieldinit KeySettings
extends [mscorlib]System.Object
{
.field public string CycleBaseKey
.field public string ToLastEventKey
.field public string ToSelectionKey
.field public string PauseKey
.field public string SellKey
.field public string PowerDownKey
.field public string RepairKey
.field public string AttackMoveKey
.field public string StopKey
.field public string ScatterKey
.field public string DeployKey
.field public string StanceCycleKey
.field public string GuardKey
.field public string CycleTabsKey
// method line 324
.method public hidebysig specialname rtspecialname
instance default void '.ctor' () cil managed
{
// Method begins at RVA 0x83ec
// Code size 161 (0xa1)
.maxstack 2
IL_0000: ldarg.0
IL_0001: ldstr "backspace"
IL_0006: stfld string OpenRA.GameRules.KeySettings::CycleBaseKey
IL_000b: ldarg.0
IL_000c: ldstr "space"
IL_0011: stfld string OpenRA.GameRules.KeySettings::ToLastEventKey
IL_0016: ldarg.0
IL_0017: ldstr "home"
IL_001c: stfld string OpenRA.GameRules.KeySettings::ToSelectionKey
IL_0021: ldarg.0
IL_0022: ldstr "f9"
IL_0027: stfld string OpenRA.GameRules.KeySettings::PauseKey
IL_002c: ldarg.0
IL_002d: ldstr "f10"
IL_0032: stfld string OpenRA.GameRules.KeySettings::SellKey
IL_0037: ldarg.0
IL_0038: ldstr "f11"
IL_003d: stfld string OpenRA.GameRules.KeySettings::PowerDownKey
IL_0042: ldarg.0
IL_0043: ldstr "f12"
IL_0048: stfld string OpenRA.GameRules.KeySettings::RepairKey
IL_004d: ldarg.0
IL_004e: ldstr "a"
IL_0053: stfld string OpenRA.GameRules.KeySettings::AttackMoveKey
IL_0058: ldarg.0
IL_0059: ldstr "s"
IL_005e: stfld string OpenRA.GameRules.KeySettings::StopKey
IL_0063: ldarg.0
IL_0064: ldstr "x"
IL_0069: stfld string OpenRA.GameRules.KeySettings::ScatterKey
IL_006e: ldarg.0
IL_006f: ldstr "f"
IL_0074: stfld string OpenRA.GameRules.KeySettings::DeployKey
IL_0079: ldarg.0
IL_007a: ldstr "z"
IL_007f: stfld string OpenRA.GameRules.KeySettings::StanceCycleKey
IL_0084: ldarg.0
IL_0085: ldstr "d"
IL_008a: stfld string OpenRA.GameRules.KeySettings::GuardKey
IL_008f: ldarg.0
IL_0090: ldstr "tab"
IL_0095: stfld string OpenRA.GameRules.KeySettings::CycleTabsKey
IL_009a: ldarg.0
IL_009b: call instance void object::'.ctor'()
IL_00a0: ret
} // end of method KeySettings::.ctor
} // end of class OpenRA.GameRules.KeySettings
}
.namespace OpenRA.GameRules
{
.class public auto ansi beforefieldinit IrcSettings
extends [mscorlib]System.Object
{
.field public string Hostname
.field public int32 Port
.field public string Nickname
.field public string Username
.field public string Realname
.field public string DefaultNickname
.field public string Channel
.field public string TimestampFormat
.field public int32 ReconnectDelay
.field public int32 ConnectionTimeout
.field public bool Debug
.field public bool ConnectAutomatically
// method line 325
.method public hidebysig specialname rtspecialname
instance default void '.ctor' () cil managed
{
// Method begins at RVA 0x849c
// Code size 123 (0x7b)
.maxstack 2
IL_0000: ldarg.0
IL_0001: ldstr "irc.open-ra.org"
IL_0006: stfld string OpenRA.GameRules.IrcSettings::Hostname
IL_000b: ldarg.0
IL_000c: ldc.i4 6667
IL_0011: stfld int32 OpenRA.GameRules.IrcSettings::Port
IL_0016: ldarg.0
IL_0017: ldnull
IL_0018: stfld string OpenRA.GameRules.IrcSettings::Nickname
IL_001d: ldarg.0
IL_001e: ldstr "openra"
IL_0023: stfld string OpenRA.GameRules.IrcSettings::Username
IL_0028: ldarg.0
IL_0029: ldnull
IL_002a: stfld string OpenRA.GameRules.IrcSettings::Realname
IL_002f: ldarg.0
IL_0030: ldstr "Newbie"
IL_0035: stfld string OpenRA.GameRules.IrcSettings::DefaultNickname
IL_003a: ldarg.0
IL_003b: ldstr "global"
IL_0040: stfld string OpenRA.GameRules.IrcSettings::Channel
IL_0045: ldarg.0
IL_0046: ldstr "HH:mm:ss"
IL_004b: stfld string OpenRA.GameRules.IrcSettings::TimestampFormat
IL_0050: ldarg.0
IL_0051: ldc.i4 10000
IL_0056: stfld int32 OpenRA.GameRules.IrcSettings::ReconnectDelay
IL_005b: ldarg.0
IL_005c: ldc.i4 300000
IL_0061: stfld int32 OpenRA.GameRules.IrcSettings::ConnectionTimeout
IL_0066: ldarg.0
IL_0067: ldc.i4.0
IL_0068: stfld bool OpenRA.GameRules.IrcSettings::Debug
IL_006d: ldarg.0
IL_006e: ldc.i4.0
IL_006f: stfld bool OpenRA.GameRules.IrcSettings::ConnectAutomatically
IL_0074: ldarg.0
IL_0075: call instance void object::'.ctor'()
IL_007a: ret
} // end of method IrcSettings::.ctor
} // end of class OpenRA.GameRules.IrcSettings
}
.namespace OpenRA.GameRules
{
.class public auto ansi beforefieldinit Settings
extends [mscorlib]System.Object
{
.field private string SettingsFile
.field public class OpenRA.GameRules.PlayerSettings Player
.field public class OpenRA.GameRules.GameSettings Game
.field public class OpenRA.GameRules.SoundSettings Sound
.field public class OpenRA.GameRules.GraphicSettings Graphics
.field public class OpenRA.GameRules.ServerSettings Server
.field public class OpenRA.GameRules.DebugSettings Debug
.field public class OpenRA.GameRules.KeySettings Keys
.field public class OpenRA.GameRules.IrcSettings Irc
.field public class [mscorlib]System.Collections.Generic.Dictionary`2<string,object> Sections
.field private static class [System.Core]System.Action`2<string,class [mscorlib]System.Type> '<>f__am$cacheA'
.custom instance void class [mscorlib]System.Runtime.CompilerServices.CompilerGeneratedAttribute::'.ctor'() = (01 00 00 00 ) // ....
// method line 326
.method public hidebysig specialname rtspecialname
instance default void '.ctor' (string file, class OpenRA.Arguments args) cil managed
{
// Method begins at RVA 0x8524
// Code size 637 (0x27d)
.maxstack 74
.locals init (
class [mscorlib]System.Collections.Generic.Dictionary`2<string, object> V_0,
class [System.Core]System.Action`2<string, class [mscorlib]System.Type> V_1,
class [System.Core]System.Func`4<string, class [mscorlib]System.Type, string, object> V_2,
class [mscorlib]System.Collections.Generic.Dictionary`2<string, class [OpenRA.FileFormats]OpenRA.FileFormats.MiniYaml> V_3,
valuetype [mscorlib]System.Collections.Generic.Dictionary`2/Enumerator<string, object> V_4,
valuetype [mscorlib]System.Collections.Generic.KeyValuePair`2<string, object> V_5,
valuetype [mscorlib]System.Collections.Generic.Dictionary`2/Enumerator<string, object> V_6,
valuetype [mscorlib]System.Collections.Generic.KeyValuePair`2<string, object> V_7,
class [mscorlib]System.Reflection.FieldInfo[] V_8,
int32 V_9,
class [mscorlib]System.Reflection.FieldInfo V_10)
IL_0000: ldarg.0
IL_0001: newobj instance void class OpenRA.GameRules.PlayerSettings::'.ctor'()
IL_0006: stfld class OpenRA.GameRules.PlayerSettings OpenRA.GameRules.Settings::Player
IL_000b: ldarg.0
IL_000c: newobj instance void class OpenRA.GameRules.GameSettings::'.ctor'()
IL_0011: stfld class OpenRA.GameRules.GameSettings OpenRA.GameRules.Settings::Game
IL_0016: ldarg.0
IL_0017: newobj instance void class OpenRA.GameRules.SoundSettings::'.ctor'()
IL_001c: stfld class OpenRA.GameRules.SoundSettings OpenRA.GameRules.Settings::Sound
IL_0021: ldarg.0
IL_0022: newobj instance void class OpenRA.GameRules.GraphicSettings::'.ctor'()
IL_0027: stfld class OpenRA.GameRules.GraphicSettings OpenRA.GameRules.Settings::Graphics
IL_002c: ldarg.0
IL_002d: newobj instance void class OpenRA.GameRules.ServerSettings::'.ctor'()
IL_0032: stfld class OpenRA.GameRules.ServerSettings OpenRA.GameRules.Settings::Server
IL_0037: ldarg.0
IL_0038: newobj instance void class OpenRA.GameRules.DebugSettings::'.ctor'()
IL_003d: stfld class OpenRA.GameRules.DebugSettings OpenRA.GameRules.Settings::Debug
IL_0042: ldarg.0
IL_0043: newobj instance void class OpenRA.GameRules.KeySettings::'.ctor'()
IL_0048: stfld class OpenRA.GameRules.KeySettings OpenRA.GameRules.Settings::Keys
IL_004d: ldarg.0
IL_004e: newobj instance void class OpenRA.GameRules.IrcSettings::'.ctor'()
IL_0053: stfld class OpenRA.GameRules.IrcSettings OpenRA.GameRules.Settings::Irc
IL_0058: ldarg.0
IL_0059: call instance void object::'.ctor'()
IL_005e: ldarg.0
IL_005f: ldarg.1
IL_0060: stfld string OpenRA.GameRules.Settings::SettingsFile
IL_0065: ldarg.0
IL_0066: newobj instance void class [mscorlib]System.Collections.Generic.Dictionary`2<string, object>::'.ctor'()
IL_006b: stloc.0
IL_006c: ldloc.0
IL_006d: ldstr "Player"
IL_0072: ldarg.0
IL_0073: ldfld class OpenRA.GameRules.PlayerSettings OpenRA.GameRules.Settings::Player
IL_0078: callvirt instance void class [mscorlib]System.Collections.Generic.Dictionary`2<string, object>::Add(!0, !1)
IL_007d: ldloc.0
IL_007e: ldstr "Game"
IL_0083: ldarg.0
IL_0084: ldfld class OpenRA.GameRules.GameSettings OpenRA.GameRules.Settings::Game
IL_0089: callvirt instance void class [mscorlib]System.Collections.Generic.Dictionary`2<string, object>::Add(!0, !1)
IL_008e: ldloc.0
IL_008f: ldstr "Sound"
IL_0094: ldarg.0
IL_0095: ldfld class OpenRA.GameRules.SoundSettings OpenRA.GameRules.Settings::Sound
IL_009a: callvirt instance void class [mscorlib]System.Collections.Generic.Dictionary`2<string, object>::Add(!0, !1)
IL_009f: ldloc.0
IL_00a0: ldstr "Graphics"
IL_00a5: ldarg.0
IL_00a6: ldfld class OpenRA.GameRules.GraphicSettings OpenRA.GameRules.Settings::Graphics
IL_00ab: callvirt instance void class [mscorlib]System.Collections.Generic.Dictionary`2<string, object>::Add(!0, !1)
IL_00b0: ldloc.0
IL_00b1: ldstr "Server"
IL_00b6: ldarg.0
IL_00b7: ldfld class OpenRA.GameRules.ServerSettings OpenRA.GameRules.Settings::Server
IL_00bc: callvirt instance void class [mscorlib]System.Collections.Generic.Dictionary`2<string, object>::Add(!0, !1)
IL_00c1: ldloc.0
IL_00c2: ldstr "Debug"
IL_00c7: ldarg.0
IL_00c8: ldfld class OpenRA.GameRules.DebugSettings OpenRA.GameRules.Settings::Debug
IL_00cd: callvirt instance void class [mscorlib]System.Collections.Generic.Dictionary`2<string, object>::Add(!0, !1)
IL_00d2: ldloc.0
IL_00d3: ldstr "Keys"
IL_00d8: ldarg.0
IL_00d9: ldfld class OpenRA.GameRules.KeySettings OpenRA.GameRules.Settings::Keys
IL_00de: callvirt instance void class [mscorlib]System.Collections.Generic.Dictionary`2<string, object>::Add(!0, !1)
IL_00e3: ldloc.0
IL_00e4: ldstr "Irc"
IL_00e9: ldarg.0
IL_00ea: ldfld class OpenRA.GameRules.IrcSettings OpenRA.GameRules.Settings::Irc
IL_00ef: callvirt instance void class [mscorlib]System.Collections.Generic.Dictionary`2<string, object>::Add(!0, !1)
IL_00f4: ldloc.0
IL_00f5: stfld class [mscorlib]System.Collections.Generic.Dictionary`2<string,object> OpenRA.GameRules.Settings::Sections
IL_00fa: ldsfld class [System.Core]System.Action`2<string,class [mscorlib]System.Type> [OpenRA.FileFormats]OpenRA.FileFormats.FieldLoader::UnknownFieldAction
IL_00ff: stloc.1
IL_0100: ldsfld class [System.Core]System.Func`4<string,class [mscorlib]System.Type,string,object> [OpenRA.FileFormats]OpenRA.FileFormats.FieldLoader::InvalidValueAction
IL_0105: stloc.2
IL_0106: ldsfld class [System.Core]System.Action`2<string,class [mscorlib]System.Type> OpenRA.GameRules.Settings::'<>f__am$cacheA'
IL_010b: brtrue.s IL_011e
IL_010d: ldnull
IL_010e: ldftn void class OpenRA.GameRules.Settings::'<Settings>m__36'(string, class [mscorlib]System.Type)
IL_0114: newobj instance void class [System.Core]System.Action`2<string, class [mscorlib]System.Type>::'.ctor'(object, native int)
IL_0119: stsfld class [System.Core]System.Action`2<string,class [mscorlib]System.Type> OpenRA.GameRules.Settings::'<>f__am$cacheA'
IL_011e: ldsfld class [System.Core]System.Action`2<string,class [mscorlib]System.Type> OpenRA.GameRules.Settings::'<>f__am$cacheA'
IL_0123: stsfld class [System.Core]System.Action`2<string,class [mscorlib]System.Type> [OpenRA.FileFormats]OpenRA.FileFormats.FieldLoader::UnknownFieldAction
IL_0128: ldarg.0
IL_0129: ldfld string OpenRA.GameRules.Settings::SettingsFile
IL_012e: call bool class [mscorlib]System.IO.File::Exists(string)
IL_0133: brfalse IL_01aa
IL_0138: ldarg.0
IL_0139: ldfld string OpenRA.GameRules.Settings::SettingsFile
IL_013e: call class [mscorlib]System.Collections.Generic.Dictionary`2<string,class [OpenRA.FileFormats]OpenRA.FileFormats.MiniYaml> class [OpenRA.FileFormats]OpenRA.FileFormats.MiniYaml::DictFromFile(string)
IL_0143: stloc.3
IL_0144: ldarg.0
IL_0145: ldfld class [mscorlib]System.Collections.Generic.Dictionary`2<string,object> OpenRA.GameRules.Settings::Sections
IL_014a: callvirt instance valuetype [mscorlib]System.Collections.Generic.Dictionary`2/Enumerator<!0,!1> class [mscorlib]System.Collections.Generic.Dictionary`2<string, object>::GetEnumerator()
IL_014f: stloc.s 4
.try { // 1
IL_0151: br IL_018b
IL_0156: ldloca.s 4
IL_0158: call instance valuetype [mscorlib]System.Collections.Generic.KeyValuePair`2<!0,!1> valuetype [mscorlib]System.Collections.Generic.Dictionary`2/Enumerator<string, object>::get_Current()
IL_015d: stloc.s 5
IL_015f: ldloc.3
IL_0160: ldloca.s 5
IL_0162: call instance !0 valuetype [mscorlib]System.Collections.Generic.KeyValuePair`2<string, object>::get_Key()
IL_0167: callvirt instance bool class [mscorlib]System.Collections.Generic.Dictionary`2<string, class [OpenRA.FileFormats]OpenRA.FileFormats.MiniYaml>::ContainsKey(!0)
IL_016c: brfalse IL_018b
IL_0171: ldarg.0
IL_0172: ldloc.3
IL_0173: ldloca.s 5
IL_0175: call instance !0 valuetype [mscorlib]System.Collections.Generic.KeyValuePair`2<string, object>::get_Key()
IL_017a: callvirt instance !1 class [mscorlib]System.Collections.Generic.Dictionary`2<string, class [OpenRA.FileFormats]OpenRA.FileFormats.MiniYaml>::get_Item(!0)
IL_017f: ldloca.s 5
IL_0181: call instance !1 valuetype [mscorlib]System.Collections.Generic.KeyValuePair`2<string, object>::get_Value()
IL_0186: call instance void class OpenRA.GameRules.Settings::LoadSectionYaml(class [OpenRA.FileFormats]OpenRA.FileFormats.MiniYaml, object)
IL_018b: ldloca.s 4
IL_018d: call instance bool valuetype [mscorlib]System.Collections.Generic.Dictionary`2/Enumerator<string, object>::MoveNext()
IL_0192: brtrue IL_0156
IL_0197: leave IL_01aa
} // end .try 1
finally { // 1
IL_019c: ldloca.s 4
IL_019e: constrained. valuetype [mscorlib]System.Collections.Generic.Dictionary`2/Enumerator<string,object>
IL_01a4: callvirt instance void class [mscorlib]System.IDisposable::Dispose()
IL_01a9: endfinally
} // end handler 1
IL_01aa: ldarg.0
IL_01ab: ldfld class [mscorlib]System.Collections.Generic.Dictionary`2<string,object> OpenRA.GameRules.Settings::Sections
IL_01b0: callvirt instance valuetype [mscorlib]System.Collections.Generic.Dictionary`2/Enumerator<!0,!1> class [mscorlib]System.Collections.Generic.Dictionary`2<string, object>::GetEnumerator()
IL_01b5: stloc.s 6
.try { // 0
IL_01b7: br IL_0251
IL_01bc: ldloca.s 6
IL_01be: call instance valuetype [mscorlib]System.Collections.Generic.KeyValuePair`2<!0,!1> valuetype [mscorlib]System.Collections.Generic.Dictionary`2/Enumerator<string, object>::get_Current()
IL_01c3: stloc.s 7
IL_01c5: ldloca.s 7
IL_01c7: call instance !1 valuetype [mscorlib]System.Collections.Generic.KeyValuePair`2<string, object>::get_Value()
IL_01cc: callvirt instance class [mscorlib]System.Type object::GetType()
IL_01d1: callvirt instance class [mscorlib]System.Reflection.FieldInfo[] class [mscorlib]System.Type::GetFields()
IL_01d6: stloc.s 8
IL_01d8: ldc.i4.0
IL_01d9: stloc.s 9
IL_01db: br IL_0246
IL_01e0: ldloc.s 8
IL_01e2: ldloc.s 9
IL_01e4: ldelem.ref
IL_01e5: stloc.s 10
IL_01e7: ldarg.2
IL_01e8: ldloca.s 7
IL_01ea: call instance !0 valuetype [mscorlib]System.Collections.Generic.KeyValuePair`2<string, object>::get_Key()
IL_01ef: ldstr "."
IL_01f4: ldloc.s 10
IL_01f6: callvirt instance string class [mscorlib]System.Reflection.MemberInfo::get_Name()
IL_01fb: call string string::Concat(string, string, string)
IL_0200: callvirt instance bool class OpenRA.Arguments::Contains(string)
IL_0205: brfalse IL_0240
IL_020a: ldloca.s 7
IL_020c: call instance !1 valuetype [mscorlib]System.Collections.Generic.KeyValuePair`2<string, object>::get_Value()
IL_0211: ldloc.s 10
IL_0213: callvirt instance string class [mscorlib]System.Reflection.MemberInfo::get_Name()
IL_0218: ldarg.2
IL_0219: ldloca.s 7
IL_021b: call instance !0 valuetype [mscorlib]System.Collections.Generic.KeyValuePair`2<string, object>::get_Key()
IL_0220: ldstr "."
IL_0225: ldloc.s 10
IL_0227: callvirt instance string class [mscorlib]System.Reflection.MemberInfo::get_Name()
IL_022c: call string string::Concat(string, string, string)
IL_0231: ldstr ""
IL_0236: callvirt instance string class OpenRA.Arguments::GetValue(string, string)
IL_023b: call void class [OpenRA.FileFormats]OpenRA.FileFormats.FieldLoader::LoadField(object, string, string)
IL_0240: ldloc.s 9
IL_0242: ldc.i4.1
IL_0243: add
IL_0244: stloc.s 9
IL_0246: ldloc.s 9
IL_0248: ldloc.s 8
IL_024a: ldlen
IL_024b: conv.i4
IL_024c: blt IL_01e0
IL_0251: ldloca.s 6
IL_0253: call instance bool valuetype [mscorlib]System.Collections.Generic.Dictionary`2/Enumerator<string, object>::MoveNext()
IL_0258: brtrue IL_01bc
IL_025d: leave IL_0270
} // end .try 0
finally { // 0
IL_0262: ldloca.s 6
IL_0264: constrained. valuetype [mscorlib]System.Collections.Generic.Dictionary`2/Enumerator<string,object>
IL_026a: callvirt instance void class [mscorlib]System.IDisposable::Dispose()
IL_026f: endfinally
} // end handler 0
IL_0270: ldloc.1
IL_0271: stsfld class [System.Core]System.Action`2<string,class [mscorlib]System.Type> [OpenRA.FileFormats]OpenRA.FileFormats.FieldLoader::UnknownFieldAction
IL_0276: ldloc.2
IL_0277: stsfld class [System.Core]System.Func`4<string,class [mscorlib]System.Type,string,object> [OpenRA.FileFormats]OpenRA.FileFormats.FieldLoader::InvalidValueAction
IL_027c: ret
} // end of method Settings::.ctor
// method line 327
.method public hidebysig
instance default void Save () cil managed
{
// Method begins at RVA 0x87e4
// Code size 122 (0x7a)
.maxstack 23
.locals init (
class [mscorlib]System.Collections.Generic.List`1<class [OpenRA.FileFormats]OpenRA.FileFormats.MiniYamlNode> V_0,
valuetype [mscorlib]System.Collections.Generic.Dictionary`2/Enumerator<string, object> V_1,
valuetype [mscorlib]System.Collections.Generic.KeyValuePair`2<string, object> V_2)
IL_0000: newobj instance void class [mscorlib]System.Collections.Generic.List`1<class [OpenRA.FileFormats]OpenRA.FileFormats.MiniYamlNode>::'.ctor'()
IL_0005: stloc.0
IL_0006: ldarg.0
IL_0007: ldfld class [mscorlib]System.Collections.Generic.Dictionary`2<string,object> OpenRA.GameRules.Settings::Sections
IL_000c: callvirt instance valuetype [mscorlib]System.Collections.Generic.Dictionary`2/Enumerator<!0,!1> class [mscorlib]System.Collections.Generic.Dictionary`2<string, object>::GetEnumerator()
IL_0011: stloc.1
.try { // 0
IL_0012: br IL_004e
IL_0017: ldloca.s 1
IL_0019: call instance valuetype [mscorlib]System.Collections.Generic.KeyValuePair`2<!0,!1> valuetype [mscorlib]System.Collections.Generic.Dictionary`2/Enumerator<string, object>::get_Current()
IL_001e: stloc.2
IL_001f: ldloc.0
IL_0020: ldloca.s 2
IL_0022: call instance !0 valuetype [mscorlib]System.Collections.Generic.KeyValuePair`2<string, object>::get_Key()
IL_0027: ldloca.s 2
IL_0029: call instance !1 valuetype [mscorlib]System.Collections.Generic.KeyValuePair`2<string, object>::get_Value()
IL_002e: ldloca.s 2
IL_0030: call instance !1 valuetype [mscorlib]System.Collections.Generic.KeyValuePair`2<string, object>::get_Value()
IL_0035: callvirt instance class [mscorlib]System.Type object::GetType()
IL_003a: call object class [mscorlib]System.Activator::CreateInstance(class [mscorlib]System.Type)
IL_003f: call class [OpenRA.FileFormats]OpenRA.FileFormats.MiniYaml class [OpenRA.FileFormats]OpenRA.FileFormats.FieldSaver::SaveDifferences(object, object)
IL_0044: newobj instance void class [OpenRA.FileFormats]OpenRA.FileFormats.MiniYamlNode::'.ctor'(string, class [OpenRA.FileFormats]OpenRA.FileFormats.MiniYaml)
IL_0049: callvirt instance void class [mscorlib]System.Collections.Generic.List`1<class [OpenRA.FileFormats]OpenRA.FileFormats.MiniYamlNode>::Add(!0)
IL_004e: ldloca.s 1
IL_0050: call instance bool valuetype [mscorlib]System.Collections.Generic.Dictionary`2/Enumerator<string, object>::MoveNext()
IL_0055: brtrue IL_0017
IL_005a: leave IL_006d
} // end .try 0
finally { // 0
IL_005f: ldloca.s 1
IL_0061: constrained. valuetype [mscorlib]System.Collections.Generic.Dictionary`2/Enumerator<string,object>
IL_0067: callvirt instance void class [mscorlib]System.IDisposable::Dispose()
IL_006c: endfinally
} // end handler 0
IL_006d: ldloc.0
IL_006e: ldarg.0
IL_006f: ldfld string OpenRA.GameRules.Settings::SettingsFile
IL_0074: call void class [OpenRA.FileFormats]OpenRA.FileFormats.MiniYamlExts::WriteToFile(class [mscorlib]System.Collections.Generic.List`1<class [OpenRA.FileFormats]OpenRA.FileFormats.MiniYamlNode>, string)
IL_0079: ret
} // end of method Settings::Save
// method line 328
.method private hidebysig
instance default void LoadSectionYaml (class [OpenRA.FileFormats]OpenRA.FileFormats.MiniYaml yaml, object section) cil managed
{
// Method begins at RVA 0x8888
// Code size 48 (0x30)
.maxstack 7
.locals init (
class OpenRA.GameRules.Settings/'<LoadSectionYaml>c__AnonStorey28' V_0)
IL_0000: newobj instance void class OpenRA.GameRules.Settings/'<LoadSectionYaml>c__AnonStorey28'::'.ctor'()
IL_0005: stloc.0
IL_0006: ldloc.0
IL_0007: ldarg.2
IL_0008: callvirt instance class [mscorlib]System.Type object::GetType()
IL_000d: call object class [mscorlib]System.Activator::CreateInstance(class [mscorlib]System.Type)
IL_0012: stfld object OpenRA.GameRules.Settings/'<LoadSectionYaml>c__AnonStorey28'::defaults
IL_0017: ldloc.0
IL_0018: ldftn instance object class OpenRA.GameRules.Settings/'<LoadSectionYaml>c__AnonStorey28'::'<>m__37'(string, class [mscorlib]System.Type, string)
IL_001e: newobj instance void class [System.Core]System.Func`4<string, class [mscorlib]System.Type, string, object>::'.ctor'(object, native int)
IL_0023: stsfld class [System.Core]System.Func`4<string,class [mscorlib]System.Type,string,object> [OpenRA.FileFormats]OpenRA.FileFormats.FieldLoader::InvalidValueAction
IL_0028: ldarg.2
IL_0029: ldarg.1
IL_002a: call void class [OpenRA.FileFormats]OpenRA.FileFormats.FieldLoader::Load(object, class [OpenRA.FileFormats]OpenRA.FileFormats.MiniYaml)
IL_002f: ret
} // end of method Settings::LoadSectionYaml
// method line 329
.method private static hidebysig
default void '<Settings>m__36' (string s, class [mscorlib]System.Type f) cil managed
{
.custom instance void class [mscorlib]System.Runtime.CompilerServices.CompilerGeneratedAttribute::'.ctor'() = (01 00 00 00 ) // ....
// Method begins at RVA 0x88c4
// Code size 35 (0x23)
.maxstack 7
IL_0000: ldstr "Ignoring unknown field `{0}` on `{1}`"
IL_0005: ldc.i4.2
IL_0006: newarr [mscorlib]System.Object
IL_000b: dup
IL_000c: ldc.i4.0
IL_000d: ldarg.0
IL_000e: stelem.ref
IL_000f: dup
IL_0010: ldc.i4.1
IL_0011: ldarg.1
IL_0012: callvirt instance string class [mscorlib]System.Reflection.MemberInfo::get_Name()
IL_0017: stelem.ref
IL_0018: call string class [OpenRA.FileFormats]OpenRA.Exts::F(string, object[])
IL_001d: call void class [mscorlib]System.Console::WriteLine(string)
IL_0022: ret
} // end of method Settings::<Settings>m__36
.class nested private auto ansi sealed beforefieldinit '<LoadSectionYaml>c__AnonStorey28'
extends [mscorlib]System.Object
{
.custom instance void class [mscorlib]System.Runtime.CompilerServices.CompilerGeneratedAttribute::'.ctor'() = (01 00 00 00 ) // ....
.field assembly object defaults
// method line 2125
.method public hidebysig specialname rtspecialname
instance default void '.ctor' () cil managed
{
// Method begins at RVA 0x2be30
// Code size 7 (0x7)
.maxstack 8
IL_0000: ldarg.0
IL_0001: call instance void object::'.ctor'()
IL_0006: ret
} // end of method <LoadSectionYaml>c__AnonStorey28::.ctor
// method line 2126
.method assembly hidebysig
instance default object '<>m__37' (string s, class [mscorlib]System.Type t, string f) cil managed
{
// Method begins at RVA 0x2be38
// Code size 73 (0x49)
.maxstack 13
.locals init (
object V_0)
IL_0000: ldarg.0
IL_0001: ldfld object OpenRA.GameRules.Settings/'<LoadSectionYaml>c__AnonStorey28'::defaults
IL_0006: callvirt instance class [mscorlib]System.Type object::GetType()
IL_000b: ldarg.3
IL_000c: callvirt instance class [mscorlib]System.Reflection.FieldInfo class [mscorlib]System.Type::GetField(string)
IL_0011: ldarg.0
IL_0012: ldfld object OpenRA.GameRules.Settings/'<LoadSectionYaml>c__AnonStorey28'::defaults
IL_0017: callvirt instance object class [mscorlib]System.Reflection.FieldInfo::GetValue(object)
IL_001c: stloc.0
IL_001d: ldstr "FieldLoader: Cannot parse `{0}` into `{2}:{1}`; substituting default `{3}`"
IL_0022: ldc.i4.4
IL_0023: newarr [mscorlib]System.Object
IL_0028: dup
IL_0029: ldc.i4.0
IL_002a: ldarg.1
IL_002b: stelem.ref
IL_002c: dup
IL_002d: ldc.i4.1
IL_002e: ldarg.2
IL_002f: callvirt instance string class [mscorlib]System.Reflection.MemberInfo::get_Name()
IL_0034: stelem.ref
IL_0035: dup
IL_0036: ldc.i4.2
IL_0037: ldarg.3
IL_0038: stelem.ref
IL_0039: dup
IL_003a: ldc.i4.3
IL_003b: ldloc.0
IL_003c: stelem.ref
IL_003d: call string class [OpenRA.FileFormats]OpenRA.Exts::F(string, object[])
IL_0042: call void class [mscorlib]System.Console::WriteLine(string)
IL_0047: ldloc.0
IL_0048: ret
} // end of method <LoadSectionYaml>c__AnonStorey28::<>m__37
} // end of class <LoadSectionYaml>c__AnonStorey28
} // end of class OpenRA.GameRules.Settings
}
.namespace OpenRA
{
.class public auto ansi abstract sealed beforefieldinit Rules
extends [mscorlib]System.Object
{
.field public static class [mscorlib]System.Collections.Generic.Dictionary`2<string,class OpenRA.ActorInfo> Info
.field public static class [mscorlib]System.Collections.Generic.Dictionary`2<string,class OpenRA.GameRules.WeaponInfo> Weapons
.field public static class [mscorlib]System.Collections.Generic.Dictionary`2<string,class OpenRA.GameRules.SoundInfo> Voices
.field public static class [mscorlib]System.Collections.Generic.Dictionary`2<string,class OpenRA.GameRules.SoundInfo> Notifications
.field public static class [mscorlib]System.Collections.Generic.Dictionary`2<string,class OpenRA.GameRules.MusicInfo> Music
.field public static class [mscorlib]System.Collections.Generic.Dictionary`2<string,string> Movies
.field public static class [mscorlib]System.Collections.Generic.Dictionary`2<string,class [OpenRA.FileFormats]OpenRA.FileFormats.TileSet> TileSets
.field private static class [System.Core]System.Func`2<valuetype [mscorlib]System.Collections.Generic.KeyValuePair`2<string,class OpenRA.GameRules.MusicInfo>,bool> '<>f__am$cache7'
.custom instance void class [mscorlib]System.Runtime.CompilerServices.CompilerGeneratedAttribute::'.ctor'() = (01 00 00 00 ) // ....
.field private static class [System.Core]System.Func`3<class [OpenRA.FileFormats]OpenRA.FileFormats.MiniYamlNode,class [mscorlib]System.Collections.Generic.Dictionary`2<string,class [OpenRA.FileFormats]OpenRA.FileFormats.MiniYaml>,class OpenRA.ActorInfo> '<>f__am$cache8'
.custom instance void class [mscorlib]System.Runtime.CompilerServices.CompilerGeneratedAttribute::'.ctor'() = (01 00 00 00 ) // ....
.field private static class [System.Core]System.Func`3<class [OpenRA.FileFormats]OpenRA.FileFormats.MiniYamlNode,class [mscorlib]System.Collections.Generic.Dictionary`2<string,class [OpenRA.FileFormats]OpenRA.FileFormats.MiniYaml>,class OpenRA.GameRules.WeaponInfo> '<>f__am$cache9'
.custom instance void class [mscorlib]System.Runtime.CompilerServices.CompilerGeneratedAttribute::'.ctor'() = (01 00 00 00 ) // ....
.field private static class [System.Core]System.Func`3<class [OpenRA.FileFormats]OpenRA.FileFormats.MiniYamlNode,class [mscorlib]System.Collections.Generic.Dictionary`2<string,class [OpenRA.FileFormats]OpenRA.FileFormats.MiniYaml>,class OpenRA.GameRules.SoundInfo> '<>f__am$cacheA'
.custom instance void class [mscorlib]System.Runtime.CompilerServices.CompilerGeneratedAttribute::'.ctor'() = (01 00 00 00 ) // ....
.field private static class [System.Core]System.Func`3<class [OpenRA.FileFormats]OpenRA.FileFormats.MiniYamlNode,class [mscorlib]System.Collections.Generic.Dictionary`2<string,class [OpenRA.FileFormats]OpenRA.FileFormats.MiniYaml>,class OpenRA.GameRules.SoundInfo> '<>f__am$cacheB'
.custom instance void class [mscorlib]System.Runtime.CompilerServices.CompilerGeneratedAttribute::'.ctor'() = (01 00 00 00 ) // ....
.field private static class [System.Core]System.Func`3<class [OpenRA.FileFormats]OpenRA.FileFormats.MiniYamlNode,class [mscorlib]System.Collections.Generic.Dictionary`2<string,class [OpenRA.FileFormats]OpenRA.FileFormats.MiniYaml>,class OpenRA.GameRules.MusicInfo> '<>f__am$cacheC'
.custom instance void class [mscorlib]System.Runtime.CompilerServices.CompilerGeneratedAttribute::'.ctor'() = (01 00 00 00 ) // ....
.field private static class [System.Core]System.Func`3<class [OpenRA.FileFormats]OpenRA.FileFormats.MiniYamlNode,class [mscorlib]System.Collections.Generic.Dictionary`2<string,class [OpenRA.FileFormats]OpenRA.FileFormats.MiniYaml>,string> '<>f__am$cacheD'
.custom instance void class [mscorlib]System.Runtime.CompilerServices.CompilerGeneratedAttribute::'.ctor'() = (01 00 00 00 ) // ....
// method line 330
.method public static hidebysig
default void LoadRules (class [OpenRA.FileFormats]OpenRA.FileFormats.Manifest m, class OpenRA.Map map) cil managed
{
// Method begins at RVA 0x88f4
// Code size 370 (0x172)
.maxstack 17
.locals init (
string[] V_0,
int32 V_1,
string V_2,
class [OpenRA.FileFormats]OpenRA.FileFormats.TileSet V_3)
IL_0000: ldarg.0
IL_0001: ldfld string[] [OpenRA.FileFormats]OpenRA.FileFormats.Manifest::Rules
IL_0006: ldarg.1
IL_0007: ldfld class [mscorlib]System.Collections.Generic.List`1<class [OpenRA.FileFormats]OpenRA.FileFormats.MiniYamlNode> OpenRA.Map::Rules
IL_000c: ldsfld class [System.Core]System.Func`3<class [OpenRA.FileFormats]OpenRA.FileFormats.MiniYamlNode,class [mscorlib]System.Collections.Generic.Dictionary`2<string,class [OpenRA.FileFormats]OpenRA.FileFormats.MiniYaml>,class OpenRA.ActorInfo> OpenRA.Rules::'<>f__am$cache8'
IL_0011: brtrue.s IL_0024
IL_0013: ldnull
IL_0014: ldftn class OpenRA.ActorInfo class OpenRA.Rules::'<LoadRules>m__39'(class [OpenRA.FileFormats]OpenRA.FileFormats.MiniYamlNode, class [mscorlib]System.Collections.Generic.Dictionary`2<string,class [OpenRA.FileFormats]OpenRA.FileFormats.MiniYaml>)
IL_001a: newobj instance void class [System.Core]System.Func`3<class [OpenRA.FileFormats]OpenRA.FileFormats.MiniYamlNode, class [mscorlib]System.Collections.Generic.Dictionary`2<string, class [OpenRA.FileFormats]OpenRA.FileFormats.MiniYaml>, class OpenRA.ActorInfo>::'.ctor'(object, native int)
IL_001f: stsfld class [System.Core]System.Func`3<class [OpenRA.FileFormats]OpenRA.FileFormats.MiniYamlNode,class [mscorlib]System.Collections.Generic.Dictionary`2<string,class [OpenRA.FileFormats]OpenRA.FileFormats.MiniYaml>,class OpenRA.ActorInfo> OpenRA.Rules::'<>f__am$cache8'
IL_0024: ldsfld class [System.Core]System.Func`3<class [OpenRA.FileFormats]OpenRA.FileFormats.MiniYamlNode,class [mscorlib]System.Collections.Generic.Dictionary`2<string,class [OpenRA.FileFormats]OpenRA.FileFormats.MiniYaml>,class OpenRA.ActorInfo> OpenRA.Rules::'<>f__am$cache8'
IL_0029: call class [mscorlib]System.Collections.Generic.Dictionary`2<string,!!0> class OpenRA.Rules::LoadYamlRules<class OpenRA.ActorInfo> (string[], class [mscorlib]System.Collections.Generic.List`1<class [OpenRA.FileFormats]OpenRA.FileFormats.MiniYamlNode>, class [System.Core]System.Func`3<class [OpenRA.FileFormats]OpenRA.FileFormats.MiniYamlNode,class [mscorlib]System.Collections.Generic.Dictionary`2<string,class [OpenRA.FileFormats]OpenRA.FileFormats.MiniYaml>,!!0>)
IL_002e: stsfld class [mscorlib]System.Collections.Generic.Dictionary`2<string,class OpenRA.ActorInfo> OpenRA.Rules::Info
IL_0033: ldarg.0
IL_0034: ldfld string[] [OpenRA.FileFormats]OpenRA.FileFormats.Manifest::Weapons
IL_0039: ldarg.1
IL_003a: ldfld class [mscorlib]System.Collections.Generic.List`1<class [OpenRA.FileFormats]OpenRA.FileFormats.MiniYamlNode> OpenRA.Map::Weapons
IL_003f: ldsfld class [System.Core]System.Func`3<class [OpenRA.FileFormats]OpenRA.FileFormats.MiniYamlNode,class [mscorlib]System.Collections.Generic.Dictionary`2<string,class [OpenRA.FileFormats]OpenRA.FileFormats.MiniYaml>,class OpenRA.GameRules.WeaponInfo> OpenRA.Rules::'<>f__am$cache9'
IL_0044: brtrue.s IL_0057
IL_0046: ldnull
IL_0047: ldftn class OpenRA.GameRules.WeaponInfo class OpenRA.Rules::'<LoadRules>m__3A'(class [OpenRA.FileFormats]OpenRA.FileFormats.MiniYamlNode, class [mscorlib]System.Collections.Generic.Dictionary`2<string,class [OpenRA.FileFormats]OpenRA.FileFormats.MiniYaml>)
IL_004d: newobj instance void class [System.Core]System.Func`3<class [OpenRA.FileFormats]OpenRA.FileFormats.MiniYamlNode, class [mscorlib]System.Collections.Generic.Dictionary`2<string, class [OpenRA.FileFormats]OpenRA.FileFormats.MiniYaml>, class OpenRA.GameRules.WeaponInfo>::'.ctor'(object, native int)
IL_0052: stsfld class [System.Core]System.Func`3<class [OpenRA.FileFormats]OpenRA.FileFormats.MiniYamlNode,class [mscorlib]System.Collections.Generic.Dictionary`2<string,class [OpenRA.FileFormats]OpenRA.FileFormats.MiniYaml>,class OpenRA.GameRules.WeaponInfo> OpenRA.Rules::'<>f__am$cache9'
IL_0057: ldsfld class [System.Core]System.Func`3<class [OpenRA.FileFormats]OpenRA.FileFormats.MiniYamlNode,class [mscorlib]System.Collections.Generic.Dictionary`2<string,class [OpenRA.FileFormats]OpenRA.FileFormats.MiniYaml>,class OpenRA.GameRules.WeaponInfo> OpenRA.Rules::'<>f__am$cache9'
IL_005c: call class [mscorlib]System.Collections.Generic.Dictionary`2<string,!!0> class OpenRA.Rules::LoadYamlRules<class OpenRA.GameRules.WeaponInfo> (string[], class [mscorlib]System.Collections.Generic.List`1<class [OpenRA.FileFormats]OpenRA.FileFormats.MiniYamlNode>, class [System.Core]System.Func`3<class [OpenRA.FileFormats]OpenRA.FileFormats.MiniYamlNode,class [mscorlib]System.Collections.Generic.Dictionary`2<string,class [OpenRA.FileFormats]OpenRA.FileFormats.MiniYaml>,!!0>)
IL_0061: stsfld class [mscorlib]System.Collections.Generic.Dictionary`2<string,class OpenRA.GameRules.WeaponInfo> OpenRA.Rules::Weapons
IL_0066: ldarg.0
IL_0067: ldfld string[] [OpenRA.FileFormats]OpenRA.FileFormats.Manifest::Voices
IL_006c: ldarg.1
IL_006d: ldfld class [mscorlib]System.Collections.Generic.List`1<class [OpenRA.FileFormats]OpenRA.FileFormats.MiniYamlNode> OpenRA.Map::Voices
IL_0072: ldsfld class [System.Core]System.Func`3<class [OpenRA.FileFormats]OpenRA.FileFormats.MiniYamlNode,class [mscorlib]System.Collections.Generic.Dictionary`2<string,class [OpenRA.FileFormats]OpenRA.FileFormats.MiniYaml>,class OpenRA.GameRules.SoundInfo> OpenRA.Rules::'<>f__am$cacheA'
IL_0077: brtrue.s IL_008a
IL_0079: ldnull
IL_007a: ldftn class OpenRA.GameRules.SoundInfo class OpenRA.Rules::'<LoadRules>m__3B'(class [OpenRA.FileFormats]OpenRA.FileFormats.MiniYamlNode, class [mscorlib]System.Collections.Generic.Dictionary`2<string,class [OpenRA.FileFormats]OpenRA.FileFormats.MiniYaml>)
IL_0080: newobj instance void class [System.Core]System.Func`3<class [OpenRA.FileFormats]OpenRA.FileFormats.MiniYamlNode, class [mscorlib]System.Collections.Generic.Dictionary`2<string, class [OpenRA.FileFormats]OpenRA.FileFormats.MiniYaml>, class OpenRA.GameRules.SoundInfo>::'.ctor'(object, native int)
IL_0085: stsfld class [System.Core]System.Func`3<class [OpenRA.FileFormats]OpenRA.FileFormats.MiniYamlNode,class [mscorlib]System.Collections.Generic.Dictionary`2<string,class [OpenRA.FileFormats]OpenRA.FileFormats.MiniYaml>,class OpenRA.GameRules.SoundInfo> OpenRA.Rules::'<>f__am$cacheA'
IL_008a: ldsfld class [System.Core]System.Func`3<class [OpenRA.FileFormats]OpenRA.FileFormats.MiniYamlNode,class [mscorlib]System.Collections.Generic.Dictionary`2<string,class [OpenRA.FileFormats]OpenRA.FileFormats.MiniYaml>,class OpenRA.GameRules.SoundInfo> OpenRA.Rules::'<>f__am$cacheA'
IL_008f: call class [mscorlib]System.Collections.Generic.Dictionary`2<string,!!0> class OpenRA.Rules::LoadYamlRules<class OpenRA.GameRules.SoundInfo> (string[], class [mscorlib]System.Collections.Generic.List`1<class [OpenRA.FileFormats]OpenRA.FileFormats.MiniYamlNode>, class [System.Core]System.Func`3<class [OpenRA.FileFormats]OpenRA.FileFormats.MiniYamlNode,class [mscorlib]System.Collections.Generic.Dictionary`2<string,class [OpenRA.FileFormats]OpenRA.FileFormats.MiniYaml>,!!0>)
IL_0094: stsfld class [mscorlib]System.Collections.Generic.Dictionary`2<string,class OpenRA.GameRules.SoundInfo> OpenRA.Rules::Voices
IL_0099: ldarg.0
IL_009a: ldfld string[] [OpenRA.FileFormats]OpenRA.FileFormats.Manifest::Notifications
IL_009f: ldarg.1
IL_00a0: ldfld class [mscorlib]System.Collections.Generic.List`1<class [OpenRA.FileFormats]OpenRA.FileFormats.MiniYamlNode> OpenRA.Map::Notifications
IL_00a5: ldsfld class [System.Core]System.Func`3<class [OpenRA.FileFormats]OpenRA.FileFormats.MiniYamlNode,class [mscorlib]System.Collections.Generic.Dictionary`2<string,class [OpenRA.FileFormats]OpenRA.FileFormats.MiniYaml>,class OpenRA.GameRules.SoundInfo> OpenRA.Rules::'<>f__am$cacheB'
IL_00aa: brtrue.s IL_00bd
IL_00ac: ldnull
IL_00ad: ldftn class OpenRA.GameRules.SoundInfo class OpenRA.Rules::'<LoadRules>m__3C'(class [OpenRA.FileFormats]OpenRA.FileFormats.MiniYamlNode, class [mscorlib]System.Collections.Generic.Dictionary`2<string,class [OpenRA.FileFormats]OpenRA.FileFormats.MiniYaml>)
IL_00b3: newobj instance void class [System.Core]System.Func`3<class [OpenRA.FileFormats]OpenRA.FileFormats.MiniYamlNode, class [mscorlib]System.Collections.Generic.Dictionary`2<string, class [OpenRA.FileFormats]OpenRA.FileFormats.MiniYaml>, class OpenRA.GameRules.SoundInfo>::'.ctor'(object, native int)
IL_00b8: stsfld class [System.Core]System.Func`3<class [OpenRA.FileFormats]OpenRA.FileFormats.MiniYamlNode,class [mscorlib]System.Collections.Generic.Dictionary`2<string,class [OpenRA.FileFormats]OpenRA.FileFormats.MiniYaml>,class OpenRA.GameRules.SoundInfo> OpenRA.Rules::'<>f__am$cacheB'
IL_00bd: ldsfld class [System.Core]System.Func`3<class [OpenRA.FileFormats]OpenRA.FileFormats.MiniYamlNode,class [mscorlib]System.Collections.Generic.Dictionary`2<string,class [OpenRA.FileFormats]OpenRA.FileFormats.MiniYaml>,class OpenRA.GameRules.SoundInfo> OpenRA.Rules::'<>f__am$cacheB'
IL_00c2: call class [mscorlib]System.Collections.Generic.Dictionary`2<string,!!0> class OpenRA.Rules::LoadYamlRules<class OpenRA.GameRules.SoundInfo> (string[], class [mscorlib]System.Collections.Generic.List`1<class [OpenRA.FileFormats]OpenRA.FileFormats.MiniYamlNode>, class [System.Core]System.Func`3<class [OpenRA.FileFormats]OpenRA.FileFormats.MiniYamlNode,class [mscorlib]System.Collections.Generic.Dictionary`2<string,class [OpenRA.FileFormats]OpenRA.FileFormats.MiniYaml>,!!0>)
IL_00c7: stsfld class [mscorlib]System.Collections.Generic.Dictionary`2<string,class OpenRA.GameRules.SoundInfo> OpenRA.Rules::Notifications
IL_00cc: ldarg.0
IL_00cd: ldfld string[] [OpenRA.FileFormats]OpenRA.FileFormats.Manifest::Music
IL_00d2: newobj instance void class [mscorlib]System.Collections.Generic.List`1<class [OpenRA.FileFormats]OpenRA.FileFormats.MiniYamlNode>::'.ctor'()
IL_00d7: ldsfld class [System.Core]System.Func`3<class [OpenRA.FileFormats]OpenRA.FileFormats.MiniYamlNode,class [mscorlib]System.Collections.Generic.Dictionary`2<string,class [OpenRA.FileFormats]OpenRA.FileFormats.MiniYaml>,class OpenRA.GameRules.MusicInfo> OpenRA.Rules::'<>f__am$cacheC'
IL_00dc: brtrue.s IL_00ef
IL_00de: ldnull
IL_00df: ldftn class OpenRA.GameRules.MusicInfo class OpenRA.Rules::'<LoadRules>m__3D'(class [OpenRA.FileFormats]OpenRA.FileFormats.MiniYamlNode, class [mscorlib]System.Collections.Generic.Dictionary`2<string,class [OpenRA.FileFormats]OpenRA.FileFormats.MiniYaml>)
IL_00e5: newobj instance void class [System.Core]System.Func`3<class [OpenRA.FileFormats]OpenRA.FileFormats.MiniYamlNode, class [mscorlib]System.Collections.Generic.Dictionary`2<string, class [OpenRA.FileFormats]OpenRA.FileFormats.MiniYaml>, class OpenRA.GameRules.MusicInfo>::'.ctor'(object, native int)
IL_00ea: stsfld class [System.Core]System.Func`3<class [OpenRA.FileFormats]OpenRA.FileFormats.MiniYamlNode,class [mscorlib]System.Collections.Generic.Dictionary`2<string,class [OpenRA.FileFormats]OpenRA.FileFormats.MiniYaml>,class OpenRA.GameRules.MusicInfo> OpenRA.Rules::'<>f__am$cacheC'
IL_00ef: ldsfld class [System.Core]System.Func`3<class [OpenRA.FileFormats]OpenRA.FileFormats.MiniYamlNode,class [mscorlib]System.Collections.Generic.Dictionary`2<string,class [OpenRA.FileFormats]OpenRA.FileFormats.MiniYaml>,class OpenRA.GameRules.MusicInfo> OpenRA.Rules::'<>f__am$cacheC'
IL_00f4: call class [mscorlib]System.Collections.Generic.Dictionary`2<string,!!0> class OpenRA.Rules::LoadYamlRules<class OpenRA.GameRules.MusicInfo> (string[], class [mscorlib]System.Collections.Generic.List`1<class [OpenRA.FileFormats]OpenRA.FileFormats.MiniYamlNode>, class [System.Core]System.Func`3<class [OpenRA.FileFormats]OpenRA.FileFormats.MiniYamlNode,class [mscorlib]System.Collections.Generic.Dictionary`2<string,class [OpenRA.FileFormats]OpenRA.FileFormats.MiniYaml>,!!0>)
IL_00f9: stsfld class [mscorlib]System.Collections.Generic.Dictionary`2<string,class OpenRA.GameRules.MusicInfo> OpenRA.Rules::Music
IL_00fe: ldarg.0
IL_00ff: ldfld string[] [OpenRA.FileFormats]OpenRA.FileFormats.Manifest::Movies
IL_0104: newobj instance void class [mscorlib]System.Collections.Generic.List`1<class [OpenRA.FileFormats]OpenRA.FileFormats.MiniYamlNode>::'.ctor'()
IL_0109: ldsfld class [System.Core]System.Func`3<class [OpenRA.FileFormats]OpenRA.FileFormats.MiniYamlNode,class [mscorlib]System.Collections.Generic.Dictionary`2<string,class [OpenRA.FileFormats]OpenRA.FileFormats.MiniYaml>,string> OpenRA.Rules::'<>f__am$cacheD'
IL_010e: brtrue.s IL_0121
IL_0110: ldnull
IL_0111: ldftn string class OpenRA.Rules::'<LoadRules>m__3E'(class [OpenRA.FileFormats]OpenRA.FileFormats.MiniYamlNode, class [mscorlib]System.Collections.Generic.Dictionary`2<string,class [OpenRA.FileFormats]OpenRA.FileFormats.MiniYaml>)
IL_0117: newobj instance void class [System.Core]System.Func`3<class [OpenRA.FileFormats]OpenRA.FileFormats.MiniYamlNode, class [mscorlib]System.Collections.Generic.Dictionary`2<string, class [OpenRA.FileFormats]OpenRA.FileFormats.MiniYaml>, string>::'.ctor'(object, native int)
IL_011c: stsfld class [System.Core]System.Func`3<class [OpenRA.FileFormats]OpenRA.FileFormats.MiniYamlNode,class [mscorlib]System.Collections.Generic.Dictionary`2<string,class [OpenRA.FileFormats]OpenRA.FileFormats.MiniYaml>,string> OpenRA.Rules::'<>f__am$cacheD'
IL_0121: ldsfld class [System.Core]System.Func`3<class [OpenRA.FileFormats]OpenRA.FileFormats.MiniYamlNode,class [mscorlib]System.Collections.Generic.Dictionary`2<string,class [OpenRA.FileFormats]OpenRA.FileFormats.MiniYaml>,string> OpenRA.Rules::'<>f__am$cacheD'
IL_0126: call class [mscorlib]System.Collections.Generic.Dictionary`2<string,!!0> class OpenRA.Rules::LoadYamlRules<string> (string[], class [mscorlib]System.Collections.Generic.List`1<class [OpenRA.FileFormats]OpenRA.FileFormats.MiniYamlNode>, class [System.Core]System.Func`3<class [OpenRA.FileFormats]OpenRA.FileFormats.MiniYamlNode,class [mscorlib]System.Collections.Generic.Dictionary`2<string,class [OpenRA.FileFormats]OpenRA.FileFormats.MiniYaml>,!!0>)
IL_012b: stsfld class [mscorlib]System.Collections.Generic.Dictionary`2<string,string> OpenRA.Rules::Movies
IL_0130: newobj instance void class [mscorlib]System.Collections.Generic.Dictionary`2<string, class [OpenRA.FileFormats]OpenRA.FileFormats.TileSet>::'.ctor'()
IL_0135: stsfld class [mscorlib]System.Collections.Generic.Dictionary`2<string,class [OpenRA.FileFormats]OpenRA.FileFormats.TileSet> OpenRA.Rules::TileSets
IL_013a: ldarg.0
IL_013b: ldfld string[] [OpenRA.FileFormats]OpenRA.FileFormats.Manifest::TileSets
IL_0140: stloc.0
IL_0141: ldc.i4.0
IL_0142: stloc.1
IL_0143: br IL_0168
IL_0148: ldloc.0
IL_0149: ldloc.1
IL_014a: ldelem.ref
IL_014b: stloc.2
IL_014c: ldloc.2
IL_014d: newobj instance void class [OpenRA.FileFormats]OpenRA.FileFormats.TileSet::'.ctor'(string)
IL_0152: stloc.3
IL_0153: ldsfld class [mscorlib]System.Collections.Generic.Dictionary`2<string,class [OpenRA.FileFormats]OpenRA.FileFormats.TileSet> OpenRA.Rules::TileSets
IL_0158: ldloc.3
IL_0159: ldfld string [OpenRA.FileFormats]OpenRA.FileFormats.TileSet::Id
IL_015e: ldloc.3
IL_015f: callvirt instance void class [mscorlib]System.Collections.Generic.Dictionary`2<string, class [OpenRA.FileFormats]OpenRA.FileFormats.TileSet>::Add(!0, !1)
IL_0164: ldloc.1
IL_0165: ldc.i4.1
IL_0166: add
IL_0167: stloc.1
IL_0168: ldloc.1
IL_0169: ldloc.0
IL_016a: ldlen
IL_016b: conv.i4
IL_016c: blt IL_0148
IL_0171: ret
} // end of method Rules::LoadRules
// method line 331
.method private static hidebysig
default class [mscorlib]System.Collections.Generic.Dictionary`2<string, !!T> LoadYamlRules<T> (string[] files, class [mscorlib]System.Collections.Generic.List`1<class [OpenRA.FileFormats]OpenRA.FileFormats.MiniYamlNode> dict, class [System.Core]System.Func`3<class [OpenRA.FileFormats]OpenRA.FileFormats.MiniYamlNode, class [mscorlib]System.Collections.Generic.Dictionary`2<string, class [OpenRA.FileFormats]OpenRA.FileFormats.MiniYaml>, !!T> f) cil managed
{
// Method begins at RVA 0x8a74
// Code size 124 (0x7c)
.maxstack 16
.locals init (
class OpenRA.Rules/'<LoadYamlRules>c__AnonStorey29`1'<!!T> V_0,
class [mscorlib]System.Collections.Generic.List`1<class [OpenRA.FileFormats]OpenRA.FileFormats.MiniYamlNode> V_1)
IL_0000: newobj instance void class OpenRA.Rules/'<LoadYamlRules>c__AnonStorey29`1'<!!T>::'.ctor'()
IL_0005: stloc.0
IL_0006: ldloc.0
IL_0007: ldarg.2
IL_0008: stfld class [System.Core]System.Func`3<class [OpenRA.FileFormats]OpenRA.FileFormats.MiniYamlNode,class [mscorlib]System.Collections.Generic.Dictionary`2<string,class [OpenRA.FileFormats]OpenRA.FileFormats.MiniYaml>,!0> class OpenRA.Rules/'<LoadYamlRules>c__AnonStorey29`1'<!!0>::f
IL_000d: ldarg.0
IL_000e: ldnull
IL_000f: ldftn class [mscorlib]System.Collections.Generic.List`1<class [OpenRA.FileFormats]OpenRA.FileFormats.MiniYamlNode> class [OpenRA.FileFormats]OpenRA.FileFormats.MiniYaml::FromFile(string)
IL_0015: newobj instance void class [System.Core]System.Func`2<string, class [mscorlib]System.Collections.Generic.List`1<class [OpenRA.FileFormats]OpenRA.FileFormats.MiniYamlNode>>::'.ctor'(object, native int)
IL_001a: call class [mscorlib]System.Collections.Generic.IEnumerable`1<!!1> class [System.Core]System.Linq.Enumerable::Select<string, class [mscorlib]System.Collections.Generic.List`1<class [OpenRA.FileFormats]OpenRA.FileFormats.MiniYamlNode>> (class [mscorlib]System.Collections.Generic.IEnumerable`1<!!0>, class [System.Core]System.Func`2<!!0,!!1>)
IL_001f: ldarg.1
IL_0020: ldnull
IL_0021: ldftn class [mscorlib]System.Collections.Generic.List`1<class [OpenRA.FileFormats]OpenRA.FileFormats.MiniYamlNode> class [OpenRA.FileFormats]OpenRA.FileFormats.MiniYaml::MergeLiberal(class [mscorlib]System.Collections.Generic.List`1<class [OpenRA.FileFormats]OpenRA.FileFormats.MiniYamlNode>, class [mscorlib]System.Collections.Generic.List`1<class [OpenRA.FileFormats]OpenRA.FileFormats.MiniYamlNode>)
IL_0027: newobj instance void class [System.Core]System.Func`3<class [mscorlib]System.Collections.Generic.List`1<class [OpenRA.FileFormats]OpenRA.FileFormats.MiniYamlNode>, class [mscorlib]System.Collections.Generic.List`1<class [OpenRA.FileFormats]OpenRA.FileFormats.MiniYamlNode>, class [mscorlib]System.Collections.Generic.List`1<class [OpenRA.FileFormats]OpenRA.FileFormats.MiniYamlNode>>::'.ctor'(object, native int)
IL_002c: call !!1 class [System.Core]System.Linq.Enumerable::Aggregate<class [mscorlib]System.Collections.Generic.List`1<class [OpenRA.FileFormats]OpenRA.FileFormats.MiniYamlNode>, class [mscorlib]System.Collections.Generic.List`1<class [OpenRA.FileFormats]OpenRA.FileFormats.MiniYamlNode>> (class [mscorlib]System.Collections.Generic.IEnumerable`1<!!0>, !!1, class [System.Core]System.Func`3<!!1,!!0,!!1>)
IL_0031: stloc.1
IL_0032: ldloc.0
IL_0033: ldloc.1
IL_0034: ldnull
IL_0035: ldftn string class OpenRA.Rules::'<LoadYamlRules`1>m__3F'<!!0> (class [OpenRA.FileFormats]OpenRA.FileFormats.MiniYamlNode)
IL_003b: newobj instance void class [System.Core]System.Func`2<class [OpenRA.FileFormats]OpenRA.FileFormats.MiniYamlNode, string>::'.ctor'(object, native int)
IL_0040: ldnull
IL_0041: ldftn class [OpenRA.FileFormats]OpenRA.FileFormats.MiniYaml class OpenRA.Rules::'<LoadYamlRules`1>m__40'<!!0> (class [OpenRA.FileFormats]OpenRA.FileFormats.MiniYamlNode)
IL_0047: newobj instance void class [System.Core]System.Func`2<class [OpenRA.FileFormats]OpenRA.FileFormats.MiniYamlNode, class [OpenRA.FileFormats]OpenRA.FileFormats.MiniYaml>::'.ctor'(object, native int)
IL_004c: call class [mscorlib]System.Collections.Generic.Dictionary`2<!!1,!!2> class [System.Core]System.Linq.Enumerable::ToDictionary<class [OpenRA.FileFormats]OpenRA.FileFormats.MiniYamlNode, string, class [OpenRA.FileFormats]OpenRA.FileFormats.MiniYaml> (class [mscorlib]System.Collections.Generic.IEnumerable`1<!!0>, class [System.Core]System.Func`2<!!0,!!1>, class [System.Core]System.Func`2<!!0,!!2>)
IL_0051: stfld class [mscorlib]System.Collections.Generic.Dictionary`2<string,class [OpenRA.FileFormats]OpenRA.FileFormats.MiniYaml> class OpenRA.Rules/'<LoadYamlRules>c__AnonStorey29`1'<!!0>::yy
IL_0056: ldloc.1
IL_0057: ldnull
IL_0058: ldftn string class OpenRA.Rules::'<LoadYamlRules`1>m__41'<!!0> (class [OpenRA.FileFormats]OpenRA.FileFormats.MiniYamlNode)
IL_005e: newobj instance void class [System.Core]System.Func`2<class [OpenRA.FileFormats]OpenRA.FileFormats.MiniYamlNode, string>::'.ctor'(object, native int)
IL_0063: ldloc.0
IL_0064: ldftn instance !0 class OpenRA.Rules/'<LoadYamlRules>c__AnonStorey29`1'<!!T>::'<>m__42'(class [OpenRA.FileFormats]OpenRA.FileFormats.MiniYamlNode)
IL_006a: newobj instance void class [System.Core]System.Func`2<class [OpenRA.FileFormats]OpenRA.FileFormats.MiniYamlNode, !!T>::'.ctor'(object, native int)
IL_006f: ldstr "LoadYamlRules"
IL_0074: ldnull
IL_0075: ldnull
IL_0076: call class [mscorlib]System.Collections.Generic.Dictionary`2<!!1,!!2> class [OpenRA.FileFormats]OpenRA.Exts::ToDictionaryWithConflictLog<class [OpenRA.FileFormats]OpenRA.FileFormats.MiniYamlNode, string, !!0> (class [mscorlib]System.Collections.Generic.IEnumerable`1<!!0>, class [System.Core]System.Func`2<!!0,!!1>, class [System.Core]System.Func`2<!!0,!!2>, string, class [System.Core]System.Func`2<!!1,string>, class [System.Core]System.Func`2<!!2,string>)
IL_007b: ret
} // end of method Rules::LoadYamlRules
// method line 332
.method public static hidebysig specialname
default class [mscorlib]System.Collections.Generic.IEnumerable`1<valuetype [mscorlib]System.Collections.Generic.KeyValuePair`2<string, class OpenRA.GameRules.MusicInfo>> get_InstalledMusic () cil managed
{
// Method begins at RVA 0x8afc
// Code size 40 (0x28)
.maxstack 8
IL_0000: ldsfld class [mscorlib]System.Collections.Generic.Dictionary`2<string,class OpenRA.GameRules.MusicInfo> OpenRA.Rules::Music
IL_0005: ldsfld class [System.Core]System.Func`2<valuetype [mscorlib]System.Collections.Generic.KeyValuePair`2<string,class OpenRA.GameRules.MusicInfo>,bool> OpenRA.Rules::'<>f__am$cache7'
IL_000a: brtrue.s IL_001d
IL_000c: ldnull
IL_000d: ldftn bool class OpenRA.Rules::'<get_InstalledMusic>m__38'(valuetype [mscorlib]System.Collections.Generic.KeyValuePair`2<string,class OpenRA.GameRules.MusicInfo>)
IL_0013: newobj instance void class [System.Core]System.Func`2<valuetype [mscorlib]System.Collections.Generic.KeyValuePair`2<string, class OpenRA.GameRules.MusicInfo>, bool>::'.ctor'(object, native int)
IL_0018: stsfld class [System.Core]System.Func`2<valuetype [mscorlib]System.Collections.Generic.KeyValuePair`2<string,class OpenRA.GameRules.MusicInfo>,bool> OpenRA.Rules::'<>f__am$cache7'
IL_001d: ldsfld class [System.Core]System.Func`2<valuetype [mscorlib]System.Collections.Generic.KeyValuePair`2<string,class OpenRA.GameRules.MusicInfo>,bool> OpenRA.Rules::'<>f__am$cache7'
IL_0022: call class [mscorlib]System.Collections.Generic.IEnumerable`1<!!0> class [System.Core]System.Linq.Enumerable::Where<valuetype [mscorlib]System.Collections.Generic.KeyValuePair`2<string,class OpenRA.GameRules.MusicInfo>> (class [mscorlib]System.Collections.Generic.IEnumerable`1<!!0>, class [System.Core]System.Func`2<!!0,bool>)
IL_0027: ret
} // end of method Rules::get_InstalledMusic
// method line 333
.method private static hidebysig
default bool '<get_InstalledMusic>m__38' (valuetype [mscorlib]System.Collections.Generic.KeyValuePair`2<string, class OpenRA.GameRules.MusicInfo> m) cil managed
{
.custom instance void class [mscorlib]System.Runtime.CompilerServices.CompilerGeneratedAttribute::'.ctor'() = (01 00 00 00 ) // ....
// Method begins at RVA 0x8b28
// Code size 13 (0xd)
.maxstack 8
IL_0000: ldarga.s 0
IL_0002: call instance !1 valuetype [mscorlib]System.Collections.Generic.KeyValuePair`2<string, class OpenRA.GameRules.MusicInfo>::get_Value()
IL_0007: callvirt instance bool class OpenRA.GameRules.MusicInfo::get_Exists()
IL_000c: ret
} // end of method Rules::<get_InstalledMusic>m__38
// method line 334
.method private static hidebysig
default class OpenRA.ActorInfo '<LoadRules>m__39' (class [OpenRA.FileFormats]OpenRA.FileFormats.MiniYamlNode k, class [mscorlib]System.Collections.Generic.Dictionary`2<string, class [OpenRA.FileFormats]OpenRA.FileFormats.MiniYaml> y) cil managed
{
.custom instance void class [mscorlib]System.Runtime.CompilerServices.CompilerGeneratedAttribute::'.ctor'() = (01 00 00 00 ) // ....
// Method begins at RVA 0x8b38
// Code size 24 (0x18)
.maxstack 8
IL_0000: ldarg.0
IL_0001: ldfld string [OpenRA.FileFormats]OpenRA.FileFormats.MiniYamlNode::Key
IL_0006: callvirt instance string string::ToLowerInvariant()
IL_000b: ldarg.0
IL_000c: ldfld class [OpenRA.FileFormats]OpenRA.FileFormats.MiniYaml [OpenRA.FileFormats]OpenRA.FileFormats.MiniYamlNode::Value
IL_0011: ldarg.1
IL_0012: newobj instance void class OpenRA.ActorInfo::'.ctor'(string, class [OpenRA.FileFormats]OpenRA.FileFormats.MiniYaml, class [mscorlib]System.Collections.Generic.Dictionary`2<string,class [OpenRA.FileFormats]OpenRA.FileFormats.MiniYaml>)
IL_0017: ret
} // end of method Rules::<LoadRules>m__39
// method line 335
.method private static hidebysig
default class OpenRA.GameRules.WeaponInfo '<LoadRules>m__3A' (class [OpenRA.FileFormats]OpenRA.FileFormats.MiniYamlNode k, class [mscorlib]System.Collections.Generic.Dictionary`2<string, class [OpenRA.FileFormats]OpenRA.FileFormats.MiniYaml> _) cil managed
{
.custom instance void class [mscorlib]System.Runtime.CompilerServices.CompilerGeneratedAttribute::'.ctor'() = (01 00 00 00 ) // ....
// Method begins at RVA 0x8b54
// Code size 23 (0x17)
.maxstack 8
IL_0000: ldarg.0
IL_0001: ldfld string [OpenRA.FileFormats]OpenRA.FileFormats.MiniYamlNode::Key
IL_0006: callvirt instance string string::ToLowerInvariant()
IL_000b: ldarg.0
IL_000c: ldfld class [OpenRA.FileFormats]OpenRA.FileFormats.MiniYaml [OpenRA.FileFormats]OpenRA.FileFormats.MiniYamlNode::Value
IL_0011: newobj instance void class OpenRA.GameRules.WeaponInfo::'.ctor'(string, class [OpenRA.FileFormats]OpenRA.FileFormats.MiniYaml)
IL_0016: ret
} // end of method Rules::<LoadRules>m__3A
// method line 336
.method private static hidebysig
default class OpenRA.GameRules.SoundInfo '<LoadRules>m__3B' (class [OpenRA.FileFormats]OpenRA.FileFormats.MiniYamlNode k, class [mscorlib]System.Collections.Generic.Dictionary`2<string, class [OpenRA.FileFormats]OpenRA.FileFormats.MiniYaml> _) cil managed
{
.custom instance void class [mscorlib]System.Runtime.CompilerServices.CompilerGeneratedAttribute::'.ctor'() = (01 00 00 00 ) // ....
// Method begins at RVA 0x8b6c
// Code size 12 (0xc)
.maxstack 8
IL_0000: ldarg.0
IL_0001: ldfld class [OpenRA.FileFormats]OpenRA.FileFormats.MiniYaml [OpenRA.FileFormats]OpenRA.FileFormats.MiniYamlNode::Value
IL_0006: newobj instance void class OpenRA.GameRules.SoundInfo::'.ctor'(class [OpenRA.FileFormats]OpenRA.FileFormats.MiniYaml)
IL_000b: ret
} // end of method Rules::<LoadRules>m__3B
// method line 337
.method private static hidebysig
default class OpenRA.GameRules.SoundInfo '<LoadRules>m__3C' (class [OpenRA.FileFormats]OpenRA.FileFormats.MiniYamlNode k, class [mscorlib]System.Collections.Generic.Dictionary`2<string, class [OpenRA.FileFormats]OpenRA.FileFormats.MiniYaml> _) cil managed
{
.custom instance void class [mscorlib]System.Runtime.CompilerServices.CompilerGeneratedAttribute::'.ctor'() = (01 00 00 00 ) // ....
// Method begins at RVA 0x8b7c
// Code size 12 (0xc)
.maxstack 8
IL_0000: ldarg.0
IL_0001: ldfld class [OpenRA.FileFormats]OpenRA.FileFormats.MiniYaml [OpenRA.FileFormats]OpenRA.FileFormats.MiniYamlNode::Value
IL_0006: newobj instance void class OpenRA.GameRules.SoundInfo::'.ctor'(class [OpenRA.FileFormats]OpenRA.FileFormats.MiniYaml)
IL_000b: ret
} // end of method Rules::<LoadRules>m__3C
// method line 338
.method private static hidebysig
default class OpenRA.GameRules.MusicInfo '<LoadRules>m__3D' (class [OpenRA.FileFormats]OpenRA.FileFormats.MiniYamlNode k, class [mscorlib]System.Collections.Generic.Dictionary`2<string, class [OpenRA.FileFormats]OpenRA.FileFormats.MiniYaml> _) cil managed
{
.custom instance void class [mscorlib]System.Runtime.CompilerServices.CompilerGeneratedAttribute::'.ctor'() = (01 00 00 00 ) // ....
// Method begins at RVA 0x8b8c
// Code size 18 (0x12)
.maxstack 8
IL_0000: ldarg.0
IL_0001: ldfld string [OpenRA.FileFormats]OpenRA.FileFormats.MiniYamlNode::Key
IL_0006: ldarg.0
IL_0007: ldfld class [OpenRA.FileFormats]OpenRA.FileFormats.MiniYaml [OpenRA.FileFormats]OpenRA.FileFormats.MiniYamlNode::Value
IL_000c: newobj instance void class OpenRA.GameRules.MusicInfo::'.ctor'(string, class [OpenRA.FileFormats]OpenRA.FileFormats.MiniYaml)
IL_0011: ret
} // end of method Rules::<LoadRules>m__3D
// method line 339
.method private static hidebysig
default string '<LoadRules>m__3E' (class [OpenRA.FileFormats]OpenRA.FileFormats.MiniYamlNode k, class [mscorlib]System.Collections.Generic.Dictionary`2<string, class [OpenRA.FileFormats]OpenRA.FileFormats.MiniYaml> v) cil managed
{
.custom instance void class [mscorlib]System.Runtime.CompilerServices.CompilerGeneratedAttribute::'.ctor'() = (01 00 00 00 ) // ....
// Method begins at RVA 0x8ba0
// Code size 12 (0xc)
.maxstack 8
IL_0000: ldarg.0
IL_0001: ldfld class [OpenRA.FileFormats]OpenRA.FileFormats.MiniYaml [OpenRA.FileFormats]OpenRA.FileFormats.MiniYamlNode::Value
IL_0006: ldfld string [OpenRA.FileFormats]OpenRA.FileFormats.MiniYaml::Value
IL_000b: ret
} // end of method Rules::<LoadRules>m__3E
// method line 340
.method private static hidebysig
default string '<LoadYamlRules`1>m__3F'<T> (class [OpenRA.FileFormats]OpenRA.FileFormats.MiniYamlNode x) cil managed
{
.custom instance void class [mscorlib]System.Runtime.CompilerServices.CompilerGeneratedAttribute::'.ctor'() = (01 00 00 00 ) // ....
// Method begins at RVA 0x8bb0
// Code size 7 (0x7)
.maxstack 8
IL_0000: ldarg.0
IL_0001: ldfld string [OpenRA.FileFormats]OpenRA.FileFormats.MiniYamlNode::Key
IL_0006: ret
} // end of method Rules::<LoadYamlRules`1>m__3F
// method line 341
.method private static hidebysig
default class [OpenRA.FileFormats]OpenRA.FileFormats.MiniYaml '<LoadYamlRules`1>m__40'<T> (class [OpenRA.FileFormats]OpenRA.FileFormats.MiniYamlNode x) cil managed
{
.custom instance void class [mscorlib]System.Runtime.CompilerServices.CompilerGeneratedAttribute::'.ctor'() = (01 00 00 00 ) // ....
// Method begins at RVA 0x8bb8
// Code size 7 (0x7)
.maxstack 8
IL_0000: ldarg.0
IL_0001: ldfld class [OpenRA.FileFormats]OpenRA.FileFormats.MiniYaml [OpenRA.FileFormats]OpenRA.FileFormats.MiniYamlNode::Value
IL_0006: ret
} // end of method Rules::<LoadYamlRules`1>m__40
// method line 342
.method private static hidebysig
default string '<LoadYamlRules`1>m__41'<T> (class [OpenRA.FileFormats]OpenRA.FileFormats.MiniYamlNode kv) cil managed
{
.custom instance void class [mscorlib]System.Runtime.CompilerServices.CompilerGeneratedAttribute::'.ctor'() = (01 00 00 00 ) // ....
// Method begins at RVA 0x8bc0
// Code size 12 (0xc)
.maxstack 8
IL_0000: ldarg.0
IL_0001: ldfld string [OpenRA.FileFormats]OpenRA.FileFormats.MiniYamlNode::Key
IL_0006: callvirt instance string string::ToLowerInvariant()
IL_000b: ret
} // end of method Rules::<LoadYamlRules`1>m__41
.property class [mscorlib]System.Collections.Generic.IEnumerable`1<valuetype [mscorlib]System.Collections.Generic.KeyValuePair`2<string, class OpenRA.GameRules.MusicInfo>> InstalledMusic ()
{
.get default class [mscorlib]System.Collections.Generic.IEnumerable`1<valuetype [mscorlib]System.Collections.Generic.KeyValuePair`2<string, class OpenRA.GameRules.MusicInfo>> OpenRA.Rules::get_InstalledMusic ()
}
.class nested private auto ansi sealed beforefieldinit '<LoadYamlRules>c__AnonStorey29`1'<T>
extends [mscorlib]System.Object
{
.custom instance void class [mscorlib]System.Runtime.CompilerServices.CompilerGeneratedAttribute::'.ctor'() = (01 00 00 00 ) // ....
.field assembly class [System.Core]System.Func`3<class [OpenRA.FileFormats]OpenRA.FileFormats.MiniYamlNode,class [mscorlib]System.Collections.Generic.Dictionary`2<string,class [OpenRA.FileFormats]OpenRA.FileFormats.MiniYaml>,!0> f
.field assembly class [mscorlib]System.Collections.Generic.Dictionary`2<string,class [OpenRA.FileFormats]OpenRA.FileFormats.MiniYaml> yy
// method line 2127
.method public hidebysig specialname rtspecialname
instance default void '.ctor' () cil managed
{
// Method begins at RVA 0x2be90
// Code size 7 (0x7)
.maxstack 8
IL_0000: ldarg.0
IL_0001: call instance void object::'.ctor'()
IL_0006: ret
} // end of method <LoadYamlRules>c__AnonStorey29`1::.ctor
// method line 2128
.method assembly hidebysig
instance default !T '<>m__42' (class [OpenRA.FileFormats]OpenRA.FileFormats.MiniYamlNode kv) cil managed
{
// Method begins at RVA 0x2be98
// Code size 19 (0x13)
.maxstack 8
IL_0000: ldarg.0
IL_0001: ldfld class [System.Core]System.Func`3<class [OpenRA.FileFormats]OpenRA.FileFormats.MiniYamlNode,class [mscorlib]System.Collections.Generic.Dictionary`2<string,class [OpenRA.FileFormats]OpenRA.FileFormats.MiniYaml>,!0> class OpenRA.Rules/'<LoadYamlRules>c__AnonStorey29`1'<!0>::f
IL_0006: ldarg.1
IL_0007: ldarg.0
IL_0008: ldfld class [mscorlib]System.Collections.Generic.Dictionary`2<string,class [OpenRA.FileFormats]OpenRA.FileFormats.MiniYaml> class OpenRA.Rules/'<LoadYamlRules>c__AnonStorey29`1'<!0>::yy
IL_000d: callvirt instance !2 class [System.Core]System.Func`3<class [OpenRA.FileFormats]OpenRA.FileFormats.MiniYamlNode, class [mscorlib]System.Collections.Generic.Dictionary`2<string, class [OpenRA.FileFormats]OpenRA.FileFormats.MiniYaml>, !T>::Invoke(!0, !1)
IL_0012: ret
} // end of method <LoadYamlRules>c__AnonStorey29`1::<>m__42
} // end of class <LoadYamlRules>c__AnonStorey29`1
} // end of class OpenRA.Rules
}
.namespace OpenRA.GameRules
{
.class public auto ansi beforefieldinit MusicInfo
extends [mscorlib]System.Object
{
.field public initonly string Filename
.field public initonly string Title
.field private int32 '<Length>k__BackingField'
.custom instance void class [mscorlib]System.Runtime.CompilerServices.CompilerGeneratedAttribute::'.ctor'() = (01 00 00 00 ) // ....
.field private bool '<Exists>k__BackingField'
.custom instance void class [mscorlib]System.Runtime.CompilerServices.CompilerGeneratedAttribute::'.ctor'() = (01 00 00 00 ) // ....
// method line 343
.method public hidebysig specialname rtspecialname
instance default void '.ctor' (string key, class [OpenRA.FileFormats]OpenRA.FileFormats.MiniYaml 'value') cil managed
{
// Method begins at RVA 0x8bd0
// Code size 185 (0xb9)
.maxstack 23
.locals init (
class [mscorlib]System.Collections.Generic.Dictionary`2<string, class [OpenRA.FileFormats]OpenRA.FileFormats.MiniYaml> V_0,
string V_1)
IL_0000: ldarg.0
IL_0001: ldnull
IL_0002: stfld string OpenRA.GameRules.MusicInfo::Filename
IL_0007: ldarg.0
IL_0008: ldnull
IL_0009: stfld string OpenRA.GameRules.MusicInfo::Title
IL_000e: ldarg.0
IL_000f: call instance void object::'.ctor'()
IL_0014: ldarg.0
IL_0015: ldarg.2
IL_0016: ldfld string [OpenRA.FileFormats]OpenRA.FileFormats.MiniYaml::Value
IL_001b: stfld string OpenRA.GameRules.MusicInfo::Title
IL_0020: ldarg.2
IL_0021: callvirt instance class [mscorlib]System.Collections.Generic.Dictionary`2<string,class [OpenRA.FileFormats]OpenRA.FileFormats.MiniYaml> class [OpenRA.FileFormats]OpenRA.FileFormats.MiniYaml::get_NodesDict()
IL_0026: stloc.0
IL_0027: ldloc.0
IL_0028: ldstr "Extension"
IL_002d: callvirt instance bool class [mscorlib]System.Collections.Generic.Dictionary`2<string, class [OpenRA.FileFormats]OpenRA.FileFormats.MiniYaml>::ContainsKey(!0)
IL_0032: brfalse IL_004c
IL_0037: ldloc.0
IL_0038: ldstr "Extension"
IL_003d: callvirt instance !1 class [mscorlib]System.Collections.Generic.Dictionary`2<string, class [OpenRA.FileFormats]OpenRA.FileFormats.MiniYaml>::get_Item(!0)
IL_0042: ldfld string [OpenRA.FileFormats]OpenRA.FileFormats.MiniYaml::Value
IL_0047: br IL_0051
IL_004c: ldstr "aud"
IL_0051: stloc.1
IL_0052: ldarg.0
IL_0053: ldloc.0
IL_0054: ldstr "Filename"
IL_0059: callvirt instance bool class [mscorlib]System.Collections.Generic.Dictionary`2<string, class [OpenRA.FileFormats]OpenRA.FileFormats.MiniYaml>::ContainsKey(!0)
IL_005e: brfalse IL_0078
IL_0063: ldloc.0
IL_0064: ldstr "Filename"
IL_0069: callvirt instance !1 class [mscorlib]System.Collections.Generic.Dictionary`2<string, class [OpenRA.FileFormats]OpenRA.FileFormats.MiniYaml>::get_Item(!0)
IL_006e: ldfld string [OpenRA.FileFormats]OpenRA.FileFormats.MiniYaml::Value
IL_0073: br IL_0079
IL_0078: ldarg.1
IL_0079: ldstr "."
IL_007e: ldloc.1
IL_007f: call string string::Concat(string, string, string)
IL_0084: stfld string OpenRA.GameRules.MusicInfo::Filename
IL_0089: ldarg.0
IL_008a: ldfld string OpenRA.GameRules.MusicInfo::Filename
IL_008f: call bool class [OpenRA.FileFormats]OpenRA.FileFormats.FileSystem::Exists(string)
IL_0094: brtrue IL_009a
IL_0099: ret
IL_009a: ldarg.0
IL_009b: ldc.i4.1
IL_009c: call instance void class OpenRA.GameRules.MusicInfo::set_Exists(bool)
IL_00a1: ldarg.0
IL_00a2: ldarg.0
IL_00a3: ldfld string OpenRA.GameRules.MusicInfo::Filename
IL_00a8: call class [mscorlib]System.IO.Stream class [OpenRA.FileFormats]OpenRA.FileFormats.FileSystem::Open(string)
IL_00ad: call float32 class [OpenRA.FileFormats]OpenRA.FileFormats.AudLoader::SoundLength(class [mscorlib]System.IO.Stream)
IL_00b2: conv.i4
IL_00b3: call instance void class OpenRA.GameRules.MusicInfo::set_Length(int32)
IL_00b8: ret
} // end of method MusicInfo::.ctor
// method line 344
.method public hidebysig specialname
instance default int32 get_Length () cil managed
{
.custom instance void class [mscorlib]System.Runtime.CompilerServices.CompilerGeneratedAttribute::'.ctor'() = (01 00 00 00 ) // ....
// Method begins at RVA 0x8c98
// Code size 7 (0x7)
.maxstack 8
IL_0000: ldarg.0
IL_0001: ldfld int32 OpenRA.GameRules.MusicInfo::'<Length>k__BackingField'
IL_0006: ret
} // end of method MusicInfo::get_Length
// method line 345
.method private hidebysig specialname
instance default void set_Length (int32 'value') cil managed
{
.custom instance void class [mscorlib]System.Runtime.CompilerServices.CompilerGeneratedAttribute::'.ctor'() = (01 00 00 00 ) // ....
// Method begins at RVA 0x8ca0
// Code size 8 (0x8)
.maxstack 8
IL_0000: ldarg.0
IL_0001: ldarg.1
IL_0002: stfld int32 OpenRA.GameRules.MusicInfo::'<Length>k__BackingField'
IL_0007: ret
} // end of method MusicInfo::set_Length
// method line 346
.method public hidebysig specialname
instance default bool get_Exists () cil managed
{
.custom instance void class [mscorlib]System.Runtime.CompilerServices.CompilerGeneratedAttribute::'.ctor'() = (01 00 00 00 ) // ....
// Method begins at RVA 0x8cac
// Code size 7 (0x7)
.maxstack 8
IL_0000: ldarg.0
IL_0001: ldfld bool OpenRA.GameRules.MusicInfo::'<Exists>k__BackingField'
IL_0006: ret
} // end of method MusicInfo::get_Exists
// method line 347
.method private hidebysig specialname
instance default void set_Exists (bool 'value') cil managed
{
.custom instance void class [mscorlib]System.Runtime.CompilerServices.CompilerGeneratedAttribute::'.ctor'() = (01 00 00 00 ) // ....
// Method begins at RVA 0x8cb4
// Code size 8 (0x8)
.maxstack 8
IL_0000: ldarg.0
IL_0001: ldarg.1
IL_0002: stfld bool OpenRA.GameRules.MusicInfo::'<Exists>k__BackingField'
IL_0007: ret
} // end of method MusicInfo::set_Exists
// method line 348
.method public hidebysig
instance default void Reload () cil managed
{
// Method begins at RVA 0x8cc0
// Code size 48 (0x30)
.maxstack 8
IL_0000: ldarg.0
IL_0001: ldfld string OpenRA.GameRules.MusicInfo::Filename
IL_0006: call bool class [OpenRA.FileFormats]OpenRA.FileFormats.FileSystem::Exists(string)
IL_000b: brtrue IL_0011
IL_0010: ret
IL_0011: ldarg.0
IL_0012: ldc.i4.1
IL_0013: call instance void class OpenRA.GameRules.MusicInfo::set_Exists(bool)
IL_0018: ldarg.0
IL_0019: ldarg.0
IL_001a: ldfld string OpenRA.GameRules.MusicInfo::Filename
IL_001f: call class [mscorlib]System.IO.Stream class [OpenRA.FileFormats]OpenRA.FileFormats.FileSystem::Open(string)
IL_0024: call float32 class [OpenRA.FileFormats]OpenRA.FileFormats.AudLoader::SoundLength(class [mscorlib]System.IO.Stream)
IL_0029: conv.i4
IL_002a: call instance void class OpenRA.GameRules.MusicInfo::set_Length(int32)
IL_002f: ret
} // end of method MusicInfo::Reload
.property instance int32 Length ()
{
.set instance default void OpenRA.GameRules.MusicInfo::set_Length (int32 'value')
.get instance default int32 OpenRA.GameRules.MusicInfo::get_Length ()
}
.property instance bool Exists ()
{
.set instance default void OpenRA.GameRules.MusicInfo::set_Exists (bool 'value')
.get instance default bool OpenRA.GameRules.MusicInfo::get_Exists ()
}
} // end of class OpenRA.GameRules.MusicInfo
}
.namespace OpenRA.GameRules
{
.class public auto ansi beforefieldinit WarheadInfo
extends [mscorlib]System.Object
{
.field public initonly int32 Spread
.custom instance void class [OpenRA.FileFormats]OpenRA.FileFormats.DescAttribute::'.ctor'(string[]) = (
01 00 01 00 00 00 46 44 69 73 74 61 6E 63 65 20 // ......FDistance
28 69 6E 20 70 69 78 65 6C 73 29 20 66 72 6F 6D // (in pixels) from
20 74 68 65 20 65 78 70 6C 6F 73 69 6F 6E 20 63 // the explosion c
65 6E 74 65 72 20 61 74 20 77 68 69 63 68 20 64 // enter at which d
61 6D 61 67 65 20 69 73 20 31 2F 32 2E 00 00 ) // amage is 1/2...
.field public initonly class [mscorlib]System.Collections.Generic.Dictionary`2<string,float32> Versus
.custom instance void class [OpenRA.FileFormats]OpenRA.FileFormats.FieldLoader/LoadUsingAttribute::'.ctor'(string) = (01 00 0A 4C 6F 61 64 56 65 72 73 75 73 00 00 ) // ...LoadVersus..
.custom instance void class [OpenRA.FileFormats]OpenRA.FileFormats.DescAttribute::'.ctor'(string[]) = (
01 00 01 00 00 00 2C 44 61 6D 61 67 65 20 76 73 // ......,Damage vs
20 65 61 63 68 20 61 72 6D 6F 72 74 79 70 65 2E // each armortype.
20 30 25 20 3D 20 63 61 6E 27 74 20 74 61 72 67 // 0% = can't targ
65 74 2E 00 00 ) // et...
.field public initonly bool Ore
.custom instance void class [OpenRA.FileFormats]OpenRA.FileFormats.DescAttribute::'.ctor'(string[]) = (
01 00 01 00 00 00 14 43 61 6E 20 74 68 69 73 20 // .......Can this
64 61 6D 61 67 65 20 6F 72 65 3F 00 00 ) // damage ore?..
.field public initonly string Explosion
.custom instance void class [OpenRA.FileFormats]OpenRA.FileFormats.DescAttribute::'.ctor'(string[]) = (
01 00 01 00 00 00 18 45 78 70 6C 6F 73 69 6F 6E // .......Explosion
20 65 66 66 65 63 74 20 74 6F 20 75 73 65 2E 00 // effect to use..
00 ) // .
.field public initonly string WaterExplosion
.custom instance void class [OpenRA.FileFormats]OpenRA.FileFormats.DescAttribute::'.ctor'(string[]) = (
01 00 01 00 00 00 35 45 78 70 6C 6F 73 69 6F 6E // ......5Explosion
20 65 66 66 65 63 74 20 6F 6E 20 68 69 74 74 69 // effect on hitti
6E 67 20 77 61 74 65 72 20 28 75 73 75 61 6C 6C // ng water (usuall
79 20 61 20 73 70 6C 61 73 68 29 2E 00 00 ) // y a splash)...
.field public initonly string[] SmudgeType
.custom instance void class [OpenRA.FileFormats]OpenRA.FileFormats.DescAttribute::'.ctor'(string[]) = (
01 00 01 00 00 00 23 54 79 70 65 20 6F 66 20 73 // ......#Type of s
6D 75 64 67 65 20 74 6F 20 61 70 70 6C 79 20 74 // mudge to apply t
6F 20 74 65 72 72 61 69 6E 2E 00 00 ) // o terrain...
.field public initonly int32[] Size
.custom instance void class [OpenRA.FileFormats]OpenRA.FileFormats.DescAttribute::'.ctor'(string[]) = (
01 00 01 00 00 00 48 53 69 7A 65 20 6F 66 20 74 // ......HSize of t
68 65 20 65 78 70 6C 6F 73 69 6F 6E 2E 20 70 72 // he explosion. pr
6F 76 69 64 65 20 32 20 76 61 6C 75 65 73 20 66 // ovide 2 values f
6F 72 20 61 20 72 69 6E 67 20 65 66 66 65 63 74 // or a ring effect
20 28 6F 75 74 65 72 2F 69 6E 6E 65 72 29 2E 00 // (outer/inner)..
00 ) // .
.field public initonly int32 InfDeath
.custom instance void class [OpenRA.FileFormats]OpenRA.FileFormats.DescAttribute::'.ctor'(string[]) = (
01 00 01 00 00 00 1F 49 6E 66 61 6E 74 72 79 20 // .......Infantry
64 65 61 74 68 20 61 6E 69 6D 61 74 69 6F 6E 20 // death animation
74 6F 20 75 73 65 00 00 ) // to use..
.field public initonly string ImpactSound
.custom instance void class [OpenRA.FileFormats]OpenRA.FileFormats.DescAttribute::'.ctor'(string[]) = (
01 00 01 00 00 00 18 53 6F 75 6E 64 20 74 6F 20 // .......Sound to
70 6C 61 79 20 6F 6E 20 69 6D 70 61 63 74 2E 00 // play on impact..
00 ) // .
.field public initonly string WaterImpactSound
.custom instance void class [OpenRA.FileFormats]OpenRA.FileFormats.DescAttribute::'.ctor'(string[]) = (
01 00 01 00 00 00 22 53 6F 75 6E 64 20 74 6F 20 // ......"Sound to
70 6C 61 79 20 6F 6E 20 69 6D 70 61 63 74 20 77 // play on impact w
69 74 68 20 77 61 74 65 72 00 00 ) // ith water..
.field public initonly int32 Damage
.custom instance void class [OpenRA.FileFormats]OpenRA.FileFormats.DescAttribute::'.ctor'(string[]) = (
01 00 01 00 00 00 1D 48 6F 77 20 6D 75 63 68 20 // .......How much
28 72 61 77 29 20 64 61 6D 61 67 65 20 74 6F 20 // (raw) damage to
64 65 61 6C 00 00 ) // deal..
.field public initonly int32 Delay
.custom instance void class [OpenRA.FileFormats]OpenRA.FileFormats.DescAttribute::'.ctor'(string[]) = (
01 00 01 00 00 00 42 44 65 6C 61 79 20 69 6E 20 // ......BDelay in
74 69 63 6B 73 20 62 65 66 6F 72 65 20 64 65 61 // ticks before dea
6C 69 6E 67 20 74 68 65 20 64 61 6D 61 67 65 2C // ling the damage,
20 30 20 3D 20 69 6E 73 74 61 6E 74 20 28 6F 6C // 0 = instant (ol
64 20 6D 6F 64 65 6C 29 2E 00 00 ) // d model)...
.field public initonly valuetype OpenRA.GameRules.DamageModel DamageModel
.custom instance void class [OpenRA.FileFormats]OpenRA.FileFormats.DescAttribute::'.ctor'(string[]) = (
01 00 01 00 00 00 1A 57 68 69 63 68 20 64 61 6D // .......Which dam
61 67 65 20 6D 6F 64 65 6C 20 74 6F 20 75 73 65 // age model to use
2E 00 00 ) // ...
.field public initonly bool PreventProne
.custom instance void class [OpenRA.FileFormats]OpenRA.FileFormats.DescAttribute::'.ctor'(string[]) = (
01 00 01 00 00 00 36 57 68 65 74 68 65 72 20 77 // ......6Whether w
65 20 73 68 6F 75 6C 64 20 70 72 65 76 65 6E 74 // e should prevent
20 70 72 6F 6E 65 20 72 65 73 70 6F 6E 73 65 20 // prone response
66 6F 72 20 69 6E 66 61 6E 74 72 79 2E 00 00 ) // for infantry...
.field private static class [System.Core]System.Func`2<valuetype [mscorlib]System.Collections.Generic.KeyValuePair`2<string,class [OpenRA.FileFormats]OpenRA.FileFormats.MiniYaml>,string> '<>f__am$cacheE'
.custom instance void class [mscorlib]System.Runtime.CompilerServices.CompilerGeneratedAttribute::'.ctor'() = (01 00 00 00 ) // ....
.field private static class [System.Core]System.Func`2<valuetype [mscorlib]System.Collections.Generic.KeyValuePair`2<string,class [OpenRA.FileFormats]OpenRA.FileFormats.MiniYaml>,float32> '<>f__am$cacheF'
.custom instance void class [mscorlib]System.Runtime.CompilerServices.CompilerGeneratedAttribute::'.ctor'() = (01 00 00 00 ) // ....
// method line 349
.method public hidebysig specialname rtspecialname
instance default void '.ctor' (class [OpenRA.FileFormats]OpenRA.FileFormats.MiniYaml yaml) cil managed
{
// Method begins at RVA 0x8cf4
// Code size 115 (0x73)
.maxstack 5
IL_0000: ldarg.0
IL_0001: ldc.i4.1
IL_0002: stfld int32 OpenRA.GameRules.WarheadInfo::Spread
IL_0007: ldarg.0
IL_0008: ldc.i4.0
IL_0009: stfld bool OpenRA.GameRules.WarheadInfo::Ore
IL_000e: ldarg.0
IL_000f: ldnull
IL_0010: stfld string OpenRA.GameRules.WarheadInfo::Explosion
IL_0015: ldarg.0
IL_0016: ldnull
IL_0017: stfld string OpenRA.GameRules.WarheadInfo::WaterExplosion
IL_001c: ldarg.0
IL_001d: ldc.i4.0
IL_001e: newarr [mscorlib]System.String
IL_0023: stfld string[] OpenRA.GameRules.WarheadInfo::SmudgeType
IL_0028: ldarg.0
IL_0029: ldc.i4.2
IL_002a: newarr [mscorlib]System.Int32
IL_002f: stfld int32[] OpenRA.GameRules.WarheadInfo::Size
IL_0034: ldarg.0
IL_0035: ldc.i4.1
IL_0036: stfld int32 OpenRA.GameRules.WarheadInfo::InfDeath
IL_003b: ldarg.0
IL_003c: ldnull
IL_003d: stfld string OpenRA.GameRules.WarheadInfo::ImpactSound
IL_0042: ldarg.0
IL_0043: ldnull
IL_0044: stfld string OpenRA.GameRules.WarheadInfo::WaterImpactSound
IL_0049: ldarg.0
IL_004a: ldc.i4.0
IL_004b: stfld int32 OpenRA.GameRules.WarheadInfo::Damage
IL_0050: ldarg.0
IL_0051: ldc.i4.0
IL_0052: stfld int32 OpenRA.GameRules.WarheadInfo::Delay
IL_0057: ldarg.0
IL_0058: ldc.i4.0
IL_0059: stfld valuetype OpenRA.GameRules.DamageModel OpenRA.GameRules.WarheadInfo::DamageModel
IL_005e: ldarg.0
IL_005f: ldc.i4.0
IL_0060: stfld bool OpenRA.GameRules.WarheadInfo::PreventProne
IL_0065: ldarg.0
IL_0066: call instance void object::'.ctor'()
IL_006b: ldarg.0
IL_006c: ldarg.1
IL_006d: call void class [OpenRA.FileFormats]OpenRA.FileFormats.FieldLoader::Load(object, class [OpenRA.FileFormats]OpenRA.FileFormats.MiniYaml)
IL_0072: ret
} // end of method WarheadInfo::.ctor
// method line 350
.method public hidebysig
instance default float32 EffectivenessAgainst (class OpenRA.ActorInfo ai) cil managed
{
// Method begins at RVA 0x8d74
// Code size 95 (0x5f)
.maxstack 10
.locals init (
class OpenRA.Traits.HealthInfo V_0,
class OpenRA.Traits.ArmorInfo V_1,
float32 V_2)
IL_0000: ldarg.1
IL_0001: ldfld class [OpenRA.FileFormats]OpenRA.FileFormats.TypeDictionary OpenRA.ActorInfo::Traits
IL_0006: callvirt instance !!0 class [OpenRA.FileFormats]OpenRA.FileFormats.TypeDictionary::GetOrDefault<class OpenRA.Traits.HealthInfo> ()
IL_000b: stloc.0
IL_000c: ldloc.0
IL_000d: brtrue IL_0018
IL_0012: ldc.r4 0.
IL_0017: ret
IL_0018: ldarg.1
IL_0019: ldfld class [OpenRA.FileFormats]OpenRA.FileFormats.TypeDictionary OpenRA.ActorInfo::Traits
IL_001e: callvirt instance !!0 class [OpenRA.FileFormats]OpenRA.FileFormats.TypeDictionary::GetOrDefault<class OpenRA.Traits.ArmorInfo> ()
IL_0023: stloc.1
IL_0024: ldloc.1
IL_0025: brfalse IL_0035
IL_002a: ldloc.1
IL_002b: ldfld string OpenRA.Traits.ArmorInfo::Type
IL_0030: brtrue IL_003b
IL_0035: ldc.r4 1.
IL_003a: ret
IL_003b: ldarg.0
IL_003c: ldfld class [mscorlib]System.Collections.Generic.Dictionary`2<string,float32> OpenRA.GameRules.WarheadInfo::Versus
IL_0041: ldloc.1
IL_0042: ldfld string OpenRA.Traits.ArmorInfo::Type
IL_0047: ldloca.s 2
IL_0049: callvirt instance bool class [mscorlib]System.Collections.Generic.Dictionary`2<string, float32>::TryGetValue(!0, [out] !1&)
IL_004e: brfalse IL_0059
IL_0053: ldloc.2
IL_0054: br IL_005e
IL_0059: ldc.r4 1.
IL_005e: ret
} // end of method WarheadInfo::EffectivenessAgainst
// method line 351
.method private static hidebysig
default object LoadVersus (class [OpenRA.FileFormats]OpenRA.FileFormats.MiniYaml y) cil managed
{
// Method begins at RVA 0x8de0
// Code size 116 (0x74)
.maxstack 17
IL_0000: ldarg.0
IL_0001: callvirt instance class [mscorlib]System.Collections.Generic.Dictionary`2<string,class [OpenRA.FileFormats]OpenRA.FileFormats.MiniYaml> class [OpenRA.FileFormats]OpenRA.FileFormats.MiniYaml::get_NodesDict()
IL_0006: ldstr "Versus"
IL_000b: callvirt instance bool class [mscorlib]System.Collections.Generic.Dictionary`2<string, class [OpenRA.FileFormats]OpenRA.FileFormats.MiniYaml>::ContainsKey(!0)
IL_0010: brfalse IL_006e
IL_0015: ldarg.0
IL_0016: callvirt instance class [mscorlib]System.Collections.Generic.Dictionary`2<string,class [OpenRA.FileFormats]OpenRA.FileFormats.MiniYaml> class [OpenRA.FileFormats]OpenRA.FileFormats.MiniYaml::get_NodesDict()
IL_001b: ldstr "Versus"
IL_0020: callvirt instance !1 class [mscorlib]System.Collections.Generic.Dictionary`2<string, class [OpenRA.FileFormats]OpenRA.FileFormats.MiniYaml>::get_Item(!0)
IL_0025: callvirt instance class [mscorlib]System.Collections.Generic.Dictionary`2<string,class [OpenRA.FileFormats]OpenRA.FileFormats.MiniYaml> class [OpenRA.FileFormats]OpenRA.FileFormats.MiniYaml::get_NodesDict()
IL_002a: ldsfld class [System.Core]System.Func`2<valuetype [mscorlib]System.Collections.Generic.KeyValuePair`2<string,class [OpenRA.FileFormats]OpenRA.FileFormats.MiniYaml>,string> OpenRA.GameRules.WarheadInfo::'<>f__am$cacheE'
IL_002f: brtrue.s IL_0042
IL_0031: ldnull
IL_0032: ldftn string class OpenRA.GameRules.WarheadInfo::'<LoadVersus>m__43'(valuetype [mscorlib]System.Collections.Generic.KeyValuePair`2<string,class [OpenRA.FileFormats]OpenRA.FileFormats.MiniYaml>)
IL_0038: newobj instance void class [System.Core]System.Func`2<valuetype [mscorlib]System.Collections.Generic.KeyValuePair`2<string, class [OpenRA.FileFormats]OpenRA.FileFormats.MiniYaml>, string>::'.ctor'(object, native int)
IL_003d: stsfld class [System.Core]System.Func`2<valuetype [mscorlib]System.Collections.Generic.KeyValuePair`2<string,class [OpenRA.FileFormats]OpenRA.FileFormats.MiniYaml>,string> OpenRA.GameRules.WarheadInfo::'<>f__am$cacheE'
IL_0042: ldsfld class [System.Core]System.Func`2<valuetype [mscorlib]System.Collections.Generic.KeyValuePair`2<string,class [OpenRA.FileFormats]OpenRA.FileFormats.MiniYaml>,string> OpenRA.GameRules.WarheadInfo::'<>f__am$cacheE'
IL_0047: ldsfld class [System.Core]System.Func`2<valuetype [mscorlib]System.Collections.Generic.KeyValuePair`2<string,class [OpenRA.FileFormats]OpenRA.FileFormats.MiniYaml>,float32> OpenRA.GameRules.WarheadInfo::'<>f__am$cacheF'
IL_004c: brtrue.s IL_005f
IL_004e: ldnull
IL_004f: ldftn float32 class OpenRA.GameRules.WarheadInfo::'<LoadVersus>m__44'(valuetype [mscorlib]System.Collections.Generic.KeyValuePair`2<string,class [OpenRA.FileFormats]OpenRA.FileFormats.MiniYaml>)
IL_0055: newobj instance void class [System.Core]System.Func`2<valuetype [mscorlib]System.Collections.Generic.KeyValuePair`2<string, class [OpenRA.FileFormats]OpenRA.FileFormats.MiniYaml>, float32>::'.ctor'(object, native int)
IL_005a: stsfld class [System.Core]System.Func`2<valuetype [mscorlib]System.Collections.Generic.KeyValuePair`2<string,class [OpenRA.FileFormats]OpenRA.FileFormats.MiniYaml>,float32> OpenRA.GameRules.WarheadInfo::'<>f__am$cacheF'
IL_005f: ldsfld class [System.Core]System.Func`2<valuetype [mscorlib]System.Collections.Generic.KeyValuePair`2<string,class [OpenRA.FileFormats]OpenRA.FileFormats.MiniYaml>,float32> OpenRA.GameRules.WarheadInfo::'<>f__am$cacheF'
IL_0064: call class [mscorlib]System.Collections.Generic.Dictionary`2<!!1,!!2> class [System.Core]System.Linq.Enumerable::ToDictionary<valuetype [mscorlib]System.Collections.Generic.KeyValuePair`2<string,class [OpenRA.FileFormats]OpenRA.FileFormats.MiniYaml>, string, float32> (class [mscorlib]System.Collections.Generic.IEnumerable`1<!!0>, class [System.Core]System.Func`2<!!0,!!1>, class [System.Core]System.Func`2<!!0,!!2>)
IL_0069: br IL_0073
IL_006e: newobj instance void class [mscorlib]System.Collections.Generic.Dictionary`2<string, float32>::'.ctor'()
IL_0073: ret
} // end of method WarheadInfo::LoadVersus
// method line 352
.method private static hidebysig
default string '<LoadVersus>m__43' (valuetype [mscorlib]System.Collections.Generic.KeyValuePair`2<string, class [OpenRA.FileFormats]OpenRA.FileFormats.MiniYaml> a) cil managed
{
.custom instance void class [mscorlib]System.Runtime.CompilerServices.CompilerGeneratedAttribute::'.ctor'() = (01 00 00 00 ) // ....
// Method begins at RVA 0x8e60
// Code size 8 (0x8)
.maxstack 8
IL_0000: ldarga.s 0
IL_0002: call instance !0 valuetype [mscorlib]System.Collections.Generic.KeyValuePair`2<string, class [OpenRA.FileFormats]OpenRA.FileFormats.MiniYaml>::get_Key()
IL_0007: ret
} // end of method WarheadInfo::<LoadVersus>m__43
// method line 353
.method private static hidebysig
default float32 '<LoadVersus>m__44' (valuetype [mscorlib]System.Collections.Generic.KeyValuePair`2<string, class [OpenRA.FileFormats]OpenRA.FileFormats.MiniYaml> a) cil managed
{
.custom instance void class [mscorlib]System.Runtime.CompilerServices.CompilerGeneratedAttribute::'.ctor'() = (01 00 00 00 ) // ....
// Method begins at RVA 0x8e6c
// Code size 23 (0x17)
.maxstack 8
IL_0000: ldstr "(value)"
IL_0005: ldarga.s 0
IL_0007: call instance !1 valuetype [mscorlib]System.Collections.Generic.KeyValuePair`2<string, class [OpenRA.FileFormats]OpenRA.FileFormats.MiniYaml>::get_Value()
IL_000c: ldfld string [OpenRA.FileFormats]OpenRA.FileFormats.MiniYaml::Value
IL_0011: call !!0 class [OpenRA.FileFormats]OpenRA.FileFormats.FieldLoader::GetValue<float32> (string, string)
IL_0016: ret
} // end of method WarheadInfo::<LoadVersus>m__44
} // end of class OpenRA.GameRules.WarheadInfo
}
.namespace OpenRA.GameRules
{
.class public auto ansi sealed DamageModel
extends [mscorlib]System.Enum
{
.field public specialname rtspecialname int32 value__
.field public static literal valuetype OpenRA.GameRules.DamageModel Normal = int32(0x00000000)
.field public static literal valuetype OpenRA.GameRules.DamageModel PerCell = int32(0x00000001)
} // end of class OpenRA.GameRules.DamageModel
}
.namespace OpenRA.GameRules
{
.class public auto ansi beforefieldinit ProjectileArgs
extends [mscorlib]System.Object
{
.field public class OpenRA.GameRules.WeaponInfo Weapon
.field public float32 FirepowerModifier
.field public int32 Facing
.field public valuetype [OpenRA.FileFormats]OpenRA.WPos Source
.field public class OpenRA.Actor SourceActor
.field public valuetype [OpenRA.FileFormats]OpenRA.WPos PassiveTarget
.field public valuetype OpenRA.Traits.Target GuidedTarget
// method line 354
.method public hidebysig specialname rtspecialname
instance default void '.ctor' () cil managed
{
// Method begins at RVA 0x8e84
// Code size 18 (0x12)
.maxstack 8
IL_0000: ldarg.0
IL_0001: ldc.r4 1.
IL_0006: stfld float32 OpenRA.GameRules.ProjectileArgs::FirepowerModifier
IL_000b: ldarg.0
IL_000c: call instance void object::'.ctor'()
IL_0011: ret
} // end of method ProjectileArgs::.ctor
} // end of class OpenRA.GameRules.ProjectileArgs
}
.namespace OpenRA.GameRules
{
.class interface public auto ansi abstract IProjectileInfo
{
// method line 355
.method public virtual hidebysig newslot abstract
instance default class OpenRA.Effects.IEffect Create (class OpenRA.GameRules.ProjectileArgs args) cil managed
{
// Method begins at RVA 0x0
} // end of method IProjectileInfo::Create
} // end of class OpenRA.GameRules.IProjectileInfo
}
.namespace OpenRA.GameRules
{
.class public auto ansi beforefieldinit WeaponInfo
extends [mscorlib]System.Object
{
.field public initonly float32 Range
.field public initonly string[] Report
.field public initonly int32 ROF
.custom instance void class [OpenRA.FileFormats]OpenRA.FileFormats.DescAttribute::'.ctor'(string[]) = (
01 00 01 00 00 00 0C 52 61 74 65 20 6F 66 20 46 // .......Rate of F
69 72 65 00 00 ) // ire..
.field public initonly int32 Burst
.field public initonly bool Charges
.field public initonly bool Underwater
.field public initonly string[] ValidTargets
.field public initonly int32 BurstDelay
.field public initonly float32 MinRange
.field public class OpenRA.GameRules.IProjectileInfo Projectile
.custom instance void class [OpenRA.FileFormats]OpenRA.FileFormats.FieldLoader/LoadUsingAttribute::'.ctor'(string) = (
01 00 0E 4C 6F 61 64 50 72 6F 6A 65 63 74 69 6C // ...LoadProjectil
65 00 00 ) // e..
.field public class [mscorlib]System.Collections.Generic.List`1<class OpenRA.GameRules.WarheadInfo> Warheads
.custom instance void class [OpenRA.FileFormats]OpenRA.FileFormats.FieldLoader/LoadUsingAttribute::'.ctor'(string) = (
01 00 0C 4C 6F 61 64 57 61 72 68 65 61 64 73 00 // ...LoadWarheads.
00 ) // .
// method line 356
.method public hidebysig specialname rtspecialname
instance default void '.ctor' (string name, class [OpenRA.FileFormats]OpenRA.FileFormats.MiniYaml content) cil managed
{
// Method begins at RVA 0x8e98
// Code size 106 (0x6a)
.maxstack 5
IL_0000: ldarg.0
IL_0001: ldc.r4 0.
IL_0006: stfld float32 OpenRA.GameRules.WeaponInfo::Range
IL_000b: ldarg.0
IL_000c: ldnull
IL_000d: stfld string[] OpenRA.GameRules.WeaponInfo::Report
IL_0012: ldarg.0
IL_0013: ldc.i4.1
IL_0014: stfld int32 OpenRA.GameRules.WeaponInfo::ROF
IL_0019: ldarg.0
IL_001a: ldc.i4.1
IL_001b: stfld int32 OpenRA.GameRules.WeaponInfo::Burst
IL_0020: ldarg.0
IL_0021: ldc.i4.0
IL_0022: stfld bool OpenRA.GameRules.WeaponInfo::Charges
IL_0027: ldarg.0
IL_0028: ldc.i4.0
IL_0029: stfld bool OpenRA.GameRules.WeaponInfo::Underwater
IL_002e: ldarg.0
IL_002f: ldc.i4.2
IL_0030: newarr [mscorlib]System.String
IL_0035: dup
IL_0036: ldc.i4.0
IL_0037: ldstr "Ground"
IL_003c: stelem.ref
IL_003d: dup
IL_003e: ldc.i4.1
IL_003f: ldstr "Water"
IL_0044: stelem.ref
IL_0045: stfld string[] OpenRA.GameRules.WeaponInfo::ValidTargets
IL_004a: ldarg.0
IL_004b: ldc.i4.5
IL_004c: stfld int32 OpenRA.GameRules.WeaponInfo::BurstDelay
IL_0051: ldarg.0
IL_0052: ldc.r4 0.
IL_0057: stfld float32 OpenRA.GameRules.WeaponInfo::MinRange
IL_005c: ldarg.0
IL_005d: call instance void object::'.ctor'()
IL_0062: ldarg.0
IL_0063: ldarg.2
IL_0064: call void class [OpenRA.FileFormats]OpenRA.FileFormats.FieldLoader::Load(object, class [OpenRA.FileFormats]OpenRA.FileFormats.MiniYaml)
IL_0069: ret
} // end of method WeaponInfo::.ctor
// method line 357
.method private static hidebysig
default object LoadProjectile (class [OpenRA.FileFormats]OpenRA.FileFormats.MiniYaml yaml) cil managed
{
// Method begins at RVA 0x8f10
// Code size 56 (0x38)
.maxstack 10
.locals init (
class [OpenRA.FileFormats]OpenRA.FileFormats.MiniYaml V_0,
class OpenRA.GameRules.IProjectileInfo V_1)
IL_0000: ldarg.0
IL_0001: callvirt instance class [mscorlib]System.Collections.Generic.Dictionary`2<string,class [OpenRA.FileFormats]OpenRA.FileFormats.MiniYaml> class [OpenRA.FileFormats]OpenRA.FileFormats.MiniYaml::get_NodesDict()
IL_0006: ldstr "Projectile"
IL_000b: ldloca.s 0
IL_000d: callvirt instance bool class [mscorlib]System.Collections.Generic.Dictionary`2<string, class [OpenRA.FileFormats]OpenRA.FileFormats.MiniYaml>::TryGetValue(!0, [out] !1&)
IL_0012: brtrue IL_0019
IL_0017: ldnull
IL_0018: ret
IL_0019: ldloc.0
IL_001a: ldfld string [OpenRA.FileFormats]OpenRA.FileFormats.MiniYaml::Value
IL_001f: ldstr "Info"
IL_0024: call string string::Concat(string, string)
IL_0029: call !!0 class OpenRA.Game::CreateObject<class OpenRA.GameRules.IProjectileInfo> (string)
IL_002e: stloc.1
IL_002f: ldloc.1
IL_0030: ldloc.0
IL_0031: call void class [OpenRA.FileFormats]OpenRA.FileFormats.FieldLoader::Load(object, class [OpenRA.FileFormats]OpenRA.FileFormats.MiniYaml)
IL_0036: ldloc.1
IL_0037: ret
} // end of method WeaponInfo::LoadProjectile
// method line 358
.method private static hidebysig
default object LoadWarheads (class [OpenRA.FileFormats]OpenRA.FileFormats.MiniYaml yaml) cil managed
{
// Method begins at RVA 0x8f54
// Code size 120 (0x78)
.maxstack 14
.locals init (
class [mscorlib]System.Collections.Generic.List`1<class OpenRA.GameRules.WarheadInfo> V_0,
valuetype [mscorlib]System.Collections.Generic.List`1/Enumerator<class [OpenRA.FileFormats]OpenRA.FileFormats.MiniYamlNode> V_1,
class [OpenRA.FileFormats]OpenRA.FileFormats.MiniYamlNode V_2)
IL_0000: newobj instance void class [mscorlib]System.Collections.Generic.List`1<class OpenRA.GameRules.WarheadInfo>::'.ctor'()
IL_0005: stloc.0
IL_0006: ldarg.0
IL_0007: ldfld class [mscorlib]System.Collections.Generic.List`1<class [OpenRA.FileFormats]OpenRA.FileFormats.MiniYamlNode> [OpenRA.FileFormats]OpenRA.FileFormats.MiniYaml::Nodes
IL_000c: callvirt instance valuetype [mscorlib]System.Collections.Generic.List`1/Enumerator<!0> class [mscorlib]System.Collections.Generic.List`1<class [OpenRA.FileFormats]OpenRA.FileFormats.MiniYamlNode>::GetEnumerator()
IL_0011: stloc.1
.try { // 0
IL_0012: br IL_0057
IL_0017: ldloca.s 1
IL_0019: call instance !0 valuetype [mscorlib]System.Collections.Generic.List`1/Enumerator<class [OpenRA.FileFormats]OpenRA.FileFormats.MiniYamlNode>::get_Current()
IL_001e: stloc.2
IL_001f: ldloc.2
IL_0020: ldfld string [OpenRA.FileFormats]OpenRA.FileFormats.MiniYamlNode::Key
IL_0025: ldc.i4.1
IL_0026: newarr [mscorlib]System.Char
IL_002b: dup
IL_002c: ldc.i4.0
IL_002d: ldc.i4.s 0x40
IL_002f: stelem.i2
IL_0030: callvirt instance string[] string::Split(char[])
IL_0035: ldc.i4.0
IL_0036: ldelem.ref
IL_0037: ldstr "Warhead"
IL_003c: call bool string::op_Equality(string, string)
IL_0041: brfalse IL_0057
IL_0046: ldloc.0
IL_0047: ldloc.2
IL_0048: ldfld class [OpenRA.FileFormats]OpenRA.FileFormats.MiniYaml [OpenRA.FileFormats]OpenRA.FileFormats.MiniYamlNode::Value
IL_004d: newobj instance void class OpenRA.GameRules.WarheadInfo::'.ctor'(class [OpenRA.FileFormats]OpenRA.FileFormats.MiniYaml)
IL_0052: callvirt instance void class [mscorlib]System.Collections.Generic.List`1<class OpenRA.GameRules.WarheadInfo>::Add(!0)
IL_0057: ldloca.s 1
IL_0059: call instance bool valuetype [mscorlib]System.Collections.Generic.List`1/Enumerator<class [OpenRA.FileFormats]OpenRA.FileFormats.MiniYamlNode>::MoveNext()
IL_005e: brtrue IL_0017
IL_0063: leave IL_0076
} // end .try 0
finally { // 0
IL_0068: ldloca.s 1
IL_006a: constrained. valuetype [mscorlib]System.Collections.Generic.List`1/Enumerator<class [OpenRA.FileFormats]OpenRA.FileFormats.MiniYamlNode>
IL_0070: callvirt instance void class [mscorlib]System.IDisposable::Dispose()
IL_0075: endfinally
} // end handler 0
IL_0076: ldloc.0
IL_0077: ret
} // end of method WeaponInfo::LoadWarheads
// method line 359
.method public hidebysig
instance default bool IsValidAgainst (class OpenRA.Actor a) cil managed
{
// Method begins at RVA 0x8ff4
// Code size 92 (0x5c)
.maxstack 12
.locals init (
class OpenRA.GameRules.WeaponInfo/'<IsValidAgainst>c__AnonStorey2A' V_0,
class OpenRA.Traits.ITargetable V_1)
IL_0000: newobj instance void class OpenRA.GameRules.WeaponInfo/'<IsValidAgainst>c__AnonStorey2A'::'.ctor'()
IL_0005: stloc.0
IL_0006: ldloc.0
IL_0007: ldarg.1
IL_0008: stfld class OpenRA.Actor OpenRA.GameRules.WeaponInfo/'<IsValidAgainst>c__AnonStorey2A'::a
IL_000d: ldloc.0
IL_000e: ldfld class OpenRA.Actor OpenRA.GameRules.WeaponInfo/'<IsValidAgainst>c__AnonStorey2A'::a
IL_0013: callvirt instance !!0 class OpenRA.Actor::TraitOrDefault<class OpenRA.Traits.ITargetable> ()
IL_0018: stloc.1
IL_0019: ldloc.1
IL_001a: brfalse IL_003a
IL_001f: ldarg.0
IL_0020: ldfld string[] OpenRA.GameRules.WeaponInfo::ValidTargets
IL_0025: ldloc.1
IL_0026: callvirt instance string[] class OpenRA.Traits.ITargetable::get_TargetTypes()
IL_002b: call class [mscorlib]System.Collections.Generic.IEnumerable`1<!!0> class [System.Core]System.Linq.Enumerable::Intersect<string> (class [mscorlib]System.Collections.Generic.IEnumerable`1<!!0>, class [mscorlib]System.Collections.Generic.IEnumerable`1<!!0>)
IL_0030: call bool class [System.Core]System.Linq.Enumerable::Any<string> (class [mscorlib]System.Collections.Generic.IEnumerable`1<!!0>)
IL_0035: brtrue IL_003c
IL_003a: ldc.i4.0
IL_003b: ret
IL_003c: ldarg.0
IL_003d: ldfld class [mscorlib]System.Collections.Generic.List`1<class OpenRA.GameRules.WarheadInfo> OpenRA.GameRules.WeaponInfo::Warheads
IL_0042: ldloc.0
IL_0043: ldftn instance bool class OpenRA.GameRules.WeaponInfo/'<IsValidAgainst>c__AnonStorey2A'::'<>m__45'(class OpenRA.GameRules.WarheadInfo)
IL_0049: newobj instance void class [System.Core]System.Func`2<class OpenRA.GameRules.WarheadInfo, bool>::'.ctor'(object, native int)
IL_004e: call bool class [System.Core]System.Linq.Enumerable::All<class OpenRA.GameRules.WarheadInfo> (class [mscorlib]System.Collections.Generic.IEnumerable`1<!!0>, class [System.Core]System.Func`2<!!0,bool>)
IL_0053: brfalse IL_005a
IL_0058: ldc.i4.0
IL_0059: ret
IL_005a: ldc.i4.1
IL_005b: ret
} // end of method WeaponInfo::IsValidAgainst
// method line 360
.method public hidebysig
instance default bool IsValidAgainst (class OpenRA.Traits.FrozenActor a) cil managed
{
// Method begins at RVA 0x905c
// Code size 102 (0x66)
.maxstack 14
.locals init (
class OpenRA.GameRules.WeaponInfo/'<IsValidAgainst>c__AnonStorey2B' V_0,
class OpenRA.Traits.ITargetableInfo V_1)
IL_0000: newobj instance void class OpenRA.GameRules.WeaponInfo/'<IsValidAgainst>c__AnonStorey2B'::'.ctor'()
IL_0005: stloc.0
IL_0006: ldloc.0
IL_0007: ldarg.1
IL_0008: stfld class OpenRA.Traits.FrozenActor OpenRA.GameRules.WeaponInfo/'<IsValidAgainst>c__AnonStorey2B'::a
IL_000d: ldloc.0
IL_000e: ldfld class OpenRA.Traits.FrozenActor OpenRA.GameRules.WeaponInfo/'<IsValidAgainst>c__AnonStorey2B'::a
IL_0013: callvirt instance class OpenRA.ActorInfo class OpenRA.Traits.FrozenActor::get_Info()
IL_0018: ldfld class [OpenRA.FileFormats]OpenRA.FileFormats.TypeDictionary OpenRA.ActorInfo::Traits
IL_001d: callvirt instance !!0 class [OpenRA.FileFormats]OpenRA.FileFormats.TypeDictionary::GetOrDefault<class OpenRA.Traits.ITargetableInfo> ()
IL_0022: stloc.1
IL_0023: ldloc.1
IL_0024: brfalse IL_0044
IL_0029: ldarg.0
IL_002a: ldfld string[] OpenRA.GameRules.WeaponInfo::ValidTargets
IL_002f: ldloc.1
IL_0030: callvirt instance string[] class OpenRA.Traits.ITargetableInfo::GetTargetTypes()
IL_0035: call class [mscorlib]System.Collections.Generic.IEnumerable`1<!!0> class [System.Core]System.Linq.Enumerable::Intersect<string> (class [mscorlib]System.Collections.Generic.IEnumerable`1<!!0>, class [mscorlib]System.Collections.Generic.IEnumerable`1<!!0>)
IL_003a: call bool class [System.Core]System.Linq.Enumerable::Any<string> (class [mscorlib]System.Collections.Generic.IEnumerable`1<!!0>)
IL_003f: brtrue IL_0046
IL_0044: ldc.i4.0
IL_0045: ret
IL_0046: ldarg.0
IL_0047: ldfld class [mscorlib]System.Collections.Generic.List`1<class OpenRA.GameRules.WarheadInfo> OpenRA.GameRules.WeaponInfo::Warheads
IL_004c: ldloc.0
IL_004d: ldftn instance bool class OpenRA.GameRules.WeaponInfo/'<IsValidAgainst>c__AnonStorey2B'::'<>m__46'(class OpenRA.GameRules.WarheadInfo)
IL_0053: newobj instance void class [System.Core]System.Func`2<class OpenRA.GameRules.WarheadInfo, bool>::'.ctor'(object, native int)
IL_0058: call bool class [System.Core]System.Linq.Enumerable::All<class OpenRA.GameRules.WarheadInfo> (class [mscorlib]System.Collections.Generic.IEnumerable`1<!!0>, class [System.Core]System.Func`2<!!0,bool>)
IL_005d: brfalse IL_0064
IL_0062: ldc.i4.0
IL_0063: ret
IL_0064: ldc.i4.1
IL_0065: ret
} // end of method WeaponInfo::IsValidAgainst
// method line 361
.method public hidebysig
instance default bool IsValidAgainst (valuetype OpenRA.Traits.Target target, class OpenRA.World world) cil managed
{
// Method begins at RVA 0x90d0
// Code size 174 (0xae)
.maxstack 29
.locals init (
valuetype OpenRA.CPos V_0)
IL_0000: ldarga.s 1
IL_0002: call instance valuetype OpenRA.Traits.TargetType valuetype OpenRA.Traits.Target::get_Type()
IL_0007: ldc.i4.1
IL_0008: bne.un IL_001b
IL_000d: ldarg.0
IL_000e: ldarga.s 1
IL_0010: call instance class OpenRA.Actor valuetype OpenRA.Traits.Target::get_Actor()
IL_0015: call instance bool class OpenRA.GameRules.WeaponInfo::IsValidAgainst(class OpenRA.Actor)
IL_001a: ret
IL_001b: ldarga.s 1
IL_001d: call instance valuetype OpenRA.Traits.TargetType valuetype OpenRA.Traits.Target::get_Type()
IL_0022: ldc.i4.3
IL_0023: bne.un IL_0036
IL_0028: ldarg.0
IL_0029: ldarga.s 1
IL_002b: call instance class OpenRA.Traits.FrozenActor valuetype OpenRA.Traits.Target::get_FrozenActor()
IL_0030: call instance bool class OpenRA.GameRules.WeaponInfo::IsValidAgainst(class OpenRA.Traits.FrozenActor)
IL_0035: ret
IL_0036: ldarga.s 1
IL_0038: call instance valuetype OpenRA.Traits.TargetType valuetype OpenRA.Traits.Target::get_Type()
IL_003d: ldc.i4.2
IL_003e: bne.un IL_00ac
IL_0043: ldarga.s 1
IL_0045: call instance valuetype [OpenRA.FileFormats]OpenRA.WPos valuetype OpenRA.Traits.Target::get_CenterPosition()
IL_004a: call valuetype OpenRA.CPos class OpenRA.WorldCoordinateExtensions::ToCPos(valuetype [OpenRA.FileFormats]OpenRA.WPos)
IL_004f: stloc.0
IL_0050: ldarg.0
IL_0051: ldfld string[] OpenRA.GameRules.WeaponInfo::ValidTargets
IL_0056: ldstr "Ground"
IL_005b: call bool class [System.Core]System.Linq.Enumerable::Contains<string> (class [mscorlib]System.Collections.Generic.IEnumerable`1<!!0>, !!0)
IL_0060: brfalse IL_007d
IL_0065: ldarg.2
IL_0066: ldloc.0
IL_0067: call string class OpenRA.WorldUtils::GetTerrainType(class OpenRA.World, valuetype OpenRA.CPos)
IL_006c: ldstr "Water"
IL_0071: call bool string::op_Inequality(string, string)
IL_0076: brfalse IL_007d
IL_007b: ldc.i4.1
IL_007c: ret
IL_007d: ldarg.0
IL_007e: ldfld string[] OpenRA.GameRules.WeaponInfo::ValidTargets
IL_0083: ldstr "Water"
IL_0088: call bool class [System.Core]System.Linq.Enumerable::Contains<string> (class [mscorlib]System.Collections.Generic.IEnumerable`1<!!0>, !!0)
IL_008d: brfalse IL_00aa
IL_0092: ldarg.2
IL_0093: ldloc.0
IL_0094: call string class OpenRA.WorldUtils::GetTerrainType(class OpenRA.World, valuetype OpenRA.CPos)
IL_0099: ldstr "Water"
IL_009e: call bool string::op_Equality(string, string)
IL_00a3: brfalse IL_00aa
IL_00a8: ldc.i4.1
IL_00a9: ret
IL_00aa: ldc.i4.0
IL_00ab: ret
IL_00ac: ldc.i4.0
IL_00ad: ret
} // end of method WeaponInfo::IsValidAgainst
.class nested private auto ansi sealed beforefieldinit '<IsValidAgainst>c__AnonStorey2A'
extends [mscorlib]System.Object
{
.custom instance void class [mscorlib]System.Runtime.CompilerServices.CompilerGeneratedAttribute::'.ctor'() = (01 00 00 00 ) // ....
.field assembly class OpenRA.Actor a
// method line 2129
.method public hidebysig specialname rtspecialname
instance default void '.ctor' () cil managed
{
// Method begins at RVA 0x2beac
// Code size 7 (0x7)
.maxstack 8
IL_0000: ldarg.0
IL_0001: call instance void object::'.ctor'()
IL_0006: ret
} // end of method <IsValidAgainst>c__AnonStorey2A::.ctor
// method line 2130
.method assembly hidebysig
instance default bool '<>m__45' (class OpenRA.GameRules.WarheadInfo w) cil managed
{
// Method begins at RVA 0x2beb4
// Code size 28 (0x1c)
.maxstack 8
IL_0000: ldarg.1
IL_0001: ldarg.0
IL_0002: ldfld class OpenRA.Actor OpenRA.GameRules.WeaponInfo/'<IsValidAgainst>c__AnonStorey2A'::a
IL_0007: ldfld class OpenRA.ActorInfo OpenRA.Actor::Info
IL_000c: callvirt instance float32 class OpenRA.GameRules.WarheadInfo::EffectivenessAgainst(class OpenRA.ActorInfo)
IL_0011: ldc.r4 0.
IL_0016: cgt.un
IL_0018: ldc.i4.0
IL_0019: ceq
IL_001b: ret
} // end of method <IsValidAgainst>c__AnonStorey2A::<>m__45
} // end of class <IsValidAgainst>c__AnonStorey2A
.class nested private auto ansi sealed beforefieldinit '<IsValidAgainst>c__AnonStorey2B'
extends [mscorlib]System.Object
{
.custom instance void class [mscorlib]System.Runtime.CompilerServices.CompilerGeneratedAttribute::'.ctor'() = (01 00 00 00 ) // ....
.field assembly class OpenRA.Traits.FrozenActor a
// method line 2131
.method public hidebysig specialname rtspecialname
instance default void '.ctor' () cil managed
{
// Method begins at RVA 0x2bed4
// Code size 7 (0x7)
.maxstack 8
IL_0000: ldarg.0
IL_0001: call instance void object::'.ctor'()
IL_0006: ret
} // end of method <IsValidAgainst>c__AnonStorey2B::.ctor
// method line 2132
.method assembly hidebysig
instance default bool '<>m__46' (class OpenRA.GameRules.WarheadInfo w) cil managed
{
// Method begins at RVA 0x2bedc
// Code size 28 (0x1c)
.maxstack 8
IL_0000: ldarg.1
IL_0001: ldarg.0
IL_0002: ldfld class OpenRA.Traits.FrozenActor OpenRA.GameRules.WeaponInfo/'<IsValidAgainst>c__AnonStorey2B'::a
IL_0007: callvirt instance class OpenRA.ActorInfo class OpenRA.Traits.FrozenActor::get_Info()
IL_000c: callvirt instance float32 class OpenRA.GameRules.WarheadInfo::EffectivenessAgainst(class OpenRA.ActorInfo)
IL_0011: ldc.r4 0.
IL_0016: cgt.un
IL_0018: ldc.i4.0
IL_0019: ceq
IL_001b: ret
} // end of method <IsValidAgainst>c__AnonStorey2B::<>m__46
} // end of class <IsValidAgainst>c__AnonStorey2B
} // end of class OpenRA.GameRules.WeaponInfo
}
.namespace OpenRA.GameRules
{
.class public auto ansi beforefieldinit SoundInfo
extends [mscorlib]System.Object
{
.field public initonly class [mscorlib]System.Collections.Generic.Dictionary`2<string,string[]> Variants
.custom instance void class [OpenRA.FileFormats]OpenRA.FileFormats.FieldLoader/IgnoreAttribute::'.ctor'() = (01 00 00 00 ) // ....
.field public initonly class [mscorlib]System.Collections.Generic.Dictionary`2<string,string[]> Prefixes
.custom instance void class [OpenRA.FileFormats]OpenRA.FileFormats.FieldLoader/IgnoreAttribute::'.ctor'() = (01 00 00 00 ) // ....
.field public initonly class [mscorlib]System.Collections.Generic.Dictionary`2<string,string[]> Voices
.custom instance void class [OpenRA.FileFormats]OpenRA.FileFormats.FieldLoader/IgnoreAttribute::'.ctor'() = (01 00 00 00 ) // ....
.field public initonly class [mscorlib]System.Collections.Generic.Dictionary`2<string,string[]> Notifications
.custom instance void class [OpenRA.FileFormats]OpenRA.FileFormats.FieldLoader/IgnoreAttribute::'.ctor'() = (01 00 00 00 ) // ....
.field public initonly string DefaultVariant
.field public initonly string DefaultPrefix
.field public initonly string[] DisableVariants
.field public initonly string[] DisablePrefixes
.field public initonly class [OpenRA.FileFormats]OpenRA.FileFormats.Lazy`1<class [mscorlib]System.Collections.Generic.Dictionary`2<string,class OpenRA.GameRules.SoundPool>> VoicePools
.field public initonly class [OpenRA.FileFormats]OpenRA.FileFormats.Lazy`1<class [mscorlib]System.Collections.Generic.Dictionary`2<string,class OpenRA.GameRules.SoundPool>> NotificationsPools
.field private static class [System.Core]System.Func`2<valuetype [mscorlib]System.Collections.Generic.KeyValuePair`2<string,class [OpenRA.FileFormats]OpenRA.FileFormats.MiniYaml>,string> '<>f__am$cacheA'
.custom instance void class [mscorlib]System.Runtime.CompilerServices.CompilerGeneratedAttribute::'.ctor'() = (01 00 00 00 ) // ....
.field private static class [System.Core]System.Func`2<valuetype [mscorlib]System.Collections.Generic.KeyValuePair`2<string,class [OpenRA.FileFormats]OpenRA.FileFormats.MiniYaml>,string[]> '<>f__am$cacheB'
.custom instance void class [mscorlib]System.Runtime.CompilerServices.CompilerGeneratedAttribute::'.ctor'() = (01 00 00 00 ) // ....
.field private static class [System.Core]System.Func`2<valuetype [mscorlib]System.Collections.Generic.KeyValuePair`2<string,string[]>,string> '<>f__am$cacheC'
.custom instance void class [mscorlib]System.Runtime.CompilerServices.CompilerGeneratedAttribute::'.ctor'() = (01 00 00 00 ) // ....
.field private static class [System.Core]System.Func`2<valuetype [mscorlib]System.Collections.Generic.KeyValuePair`2<string,string[]>,class OpenRA.GameRules.SoundPool> '<>f__am$cacheD'
.custom instance void class [mscorlib]System.Runtime.CompilerServices.CompilerGeneratedAttribute::'.ctor'() = (01 00 00 00 ) // ....
.field private static class [System.Core]System.Func`2<valuetype [mscorlib]System.Collections.Generic.KeyValuePair`2<string,string[]>,string> '<>f__am$cacheE'
.custom instance void class [mscorlib]System.Runtime.CompilerServices.CompilerGeneratedAttribute::'.ctor'() = (01 00 00 00 ) // ....
.field private static class [System.Core]System.Func`2<valuetype [mscorlib]System.Collections.Generic.KeyValuePair`2<string,string[]>,class OpenRA.GameRules.SoundPool> '<>f__am$cacheF'
.custom instance void class [mscorlib]System.Runtime.CompilerServices.CompilerGeneratedAttribute::'.ctor'() = (01 00 00 00 ) // ....
// method line 362
.method public hidebysig specialname rtspecialname
instance default void '.ctor' (class [OpenRA.FileFormats]OpenRA.FileFormats.MiniYaml y) cil managed
{
// Method begins at RVA 0x918c
// Code size 174 (0xae)
.maxstack 14
IL_0000: ldarg.0
IL_0001: ldstr ".aud"
IL_0006: stfld string OpenRA.GameRules.SoundInfo::DefaultVariant
IL_000b: ldarg.0
IL_000c: ldstr ""
IL_0011: stfld string OpenRA.GameRules.SoundInfo::DefaultPrefix
IL_0016: ldarg.0
IL_0017: ldc.i4.0
IL_0018: newarr [mscorlib]System.String
IL_001d: stfld string[] OpenRA.GameRules.SoundInfo::DisableVariants
IL_0022: ldarg.0
IL_0023: ldc.i4.0
IL_0024: newarr [mscorlib]System.String
IL_0029: stfld string[] OpenRA.GameRules.SoundInfo::DisablePrefixes
IL_002e: ldarg.0
IL_002f: call instance void object::'.ctor'()
IL_0034: ldarg.0
IL_0035: ldarg.1
IL_0036: call void class [OpenRA.FileFormats]OpenRA.FileFormats.FieldLoader::Load(object, class [OpenRA.FileFormats]OpenRA.FileFormats.MiniYaml)
IL_003b: ldarg.0
IL_003c: ldarg.1
IL_003d: ldstr "Variants"
IL_0042: call class [mscorlib]System.Collections.Generic.Dictionary`2<string,string[]> class OpenRA.GameRules.SoundInfo::Load(class [OpenRA.FileFormats]OpenRA.FileFormats.MiniYaml, string)
IL_0047: stfld class [mscorlib]System.Collections.Generic.Dictionary`2<string,string[]> OpenRA.GameRules.SoundInfo::Variants
IL_004c: ldarg.0
IL_004d: ldarg.1
IL_004e: ldstr "Prefixes"
IL_0053: call class [mscorlib]System.Collections.Generic.Dictionary`2<string,string[]> class OpenRA.GameRules.SoundInfo::Load(class [OpenRA.FileFormats]OpenRA.FileFormats.MiniYaml, string)
IL_0058: stfld class [mscorlib]System.Collections.Generic.Dictionary`2<string,string[]> OpenRA.GameRules.SoundInfo::Prefixes
IL_005d: ldarg.0
IL_005e: ldarg.1
IL_005f: ldstr "Voices"
IL_0064: call class [mscorlib]System.Collections.Generic.Dictionary`2<string,string[]> class OpenRA.GameRules.SoundInfo::Load(class [OpenRA.FileFormats]OpenRA.FileFormats.MiniYaml, string)
IL_0069: stfld class [mscorlib]System.Collections.Generic.Dictionary`2<string,string[]> OpenRA.GameRules.SoundInfo::Voices
IL_006e: ldarg.0
IL_006f: ldarg.1
IL_0070: ldstr "Notifications"
IL_0075: call class [mscorlib]System.Collections.Generic.Dictionary`2<string,string[]> class OpenRA.GameRules.SoundInfo::Load(class [OpenRA.FileFormats]OpenRA.FileFormats.MiniYaml, string)
IL_007a: stfld class [mscorlib]System.Collections.Generic.Dictionary`2<string,string[]> OpenRA.GameRules.SoundInfo::Notifications
IL_007f: ldarg.0
IL_0080: ldarg.0
IL_0081: ldftn instance class [mscorlib]System.Collections.Generic.Dictionary`2<string,class OpenRA.GameRules.SoundPool> class OpenRA.GameRules.SoundInfo::'<SoundInfo>m__47'()
IL_0087: newobj instance void class [System.Core]System.Func`1<class [mscorlib]System.Collections.Generic.Dictionary`2<string, class OpenRA.GameRules.SoundPool>>::'.ctor'(object, native int)
IL_008c: call class [OpenRA.FileFormats]OpenRA.FileFormats.Lazy`1<!!0> class [OpenRA.FileFormats]OpenRA.FileFormats.Lazy::New<class [mscorlib]System.Collections.Generic.Dictionary`2<string,class OpenRA.GameRules.SoundPool>> (class [System.Core]System.Func`1<!!0>)
IL_0091: stfld class [OpenRA.FileFormats]OpenRA.FileFormats.Lazy`1<class [mscorlib]System.Collections.Generic.Dictionary`2<string,class OpenRA.GameRules.SoundPool>> OpenRA.GameRules.SoundInfo::VoicePools
IL_0096: ldarg.0
IL_0097: ldarg.0
IL_0098: ldftn instance class [mscorlib]System.Collections.Generic.Dictionary`2<string,class OpenRA.GameRules.SoundPool> class OpenRA.GameRules.SoundInfo::'<SoundInfo>m__48'()
IL_009e: newobj instance void class [System.Core]System.Func`1<class [mscorlib]System.Collections.Generic.Dictionary`2<string, class OpenRA.GameRules.SoundPool>>::'.ctor'(object, native int)
IL_00a3: call class [OpenRA.FileFormats]OpenRA.FileFormats.Lazy`1<!!0> class [OpenRA.FileFormats]OpenRA.FileFormats.Lazy::New<class [mscorlib]System.Collections.Generic.Dictionary`2<string,class OpenRA.GameRules.SoundPool>> (class [System.Core]System.Func`1<!!0>)
IL_00a8: stfld class [OpenRA.FileFormats]OpenRA.FileFormats.Lazy`1<class [mscorlib]System.Collections.Generic.Dictionary`2<string,class OpenRA.GameRules.SoundPool>> OpenRA.GameRules.SoundInfo::NotificationsPools
IL_00ad: ret
} // end of method SoundInfo::.ctor
// method line 363
.method private static hidebysig
default class [mscorlib]System.Collections.Generic.Dictionary`2<string, string[]> Load (class [OpenRA.FileFormats]OpenRA.FileFormats.MiniYaml y, string name) cil managed
{
// Method begins at RVA 0x9248
// Code size 108 (0x6c)
.maxstack 17
IL_0000: ldarg.0
IL_0001: callvirt instance class [mscorlib]System.Collections.Generic.Dictionary`2<string,class [OpenRA.FileFormats]OpenRA.FileFormats.MiniYaml> class [OpenRA.FileFormats]OpenRA.FileFormats.MiniYaml::get_NodesDict()
IL_0006: ldarg.1
IL_0007: callvirt instance bool class [mscorlib]System.Collections.Generic.Dictionary`2<string, class [OpenRA.FileFormats]OpenRA.FileFormats.MiniYaml>::ContainsKey(!0)
IL_000c: brfalse IL_0066
IL_0011: ldarg.0
IL_0012: callvirt instance class [mscorlib]System.Collections.Generic.Dictionary`2<string,class [OpenRA.FileFormats]OpenRA.FileFormats.MiniYaml> class [OpenRA.FileFormats]OpenRA.FileFormats.MiniYaml::get_NodesDict()
IL_0017: ldarg.1
IL_0018: callvirt instance !1 class [mscorlib]System.Collections.Generic.Dictionary`2<string, class [OpenRA.FileFormats]OpenRA.FileFormats.MiniYaml>::get_Item(!0)
IL_001d: callvirt instance class [mscorlib]System.Collections.Generic.Dictionary`2<string,class [OpenRA.FileFormats]OpenRA.FileFormats.MiniYaml> class [OpenRA.FileFormats]OpenRA.FileFormats.MiniYaml::get_NodesDict()
IL_0022: ldsfld class [System.Core]System.Func`2<valuetype [mscorlib]System.Collections.Generic.KeyValuePair`2<string,class [OpenRA.FileFormats]OpenRA.FileFormats.MiniYaml>,string> OpenRA.GameRules.SoundInfo::'<>f__am$cacheA'
IL_0027: brtrue.s IL_003a
IL_0029: ldnull
IL_002a: ldftn string class OpenRA.GameRules.SoundInfo::'<Load>m__49'(valuetype [mscorlib]System.Collections.Generic.KeyValuePair`2<string,class [OpenRA.FileFormats]OpenRA.FileFormats.MiniYaml>)
IL_0030: newobj instance void class [System.Core]System.Func`2<valuetype [mscorlib]System.Collections.Generic.KeyValuePair`2<string, class [OpenRA.FileFormats]OpenRA.FileFormats.MiniYaml>, string>::'.ctor'(object, native int)
IL_0035: stsfld class [System.Core]System.Func`2<valuetype [mscorlib]System.Collections.Generic.KeyValuePair`2<string,class [OpenRA.FileFormats]OpenRA.FileFormats.MiniYaml>,string> OpenRA.GameRules.SoundInfo::'<>f__am$cacheA'
IL_003a: ldsfld class [System.Core]System.Func`2<valuetype [mscorlib]System.Collections.Generic.KeyValuePair`2<string,class [OpenRA.FileFormats]OpenRA.FileFormats.MiniYaml>,string> OpenRA.GameRules.SoundInfo::'<>f__am$cacheA'
IL_003f: ldsfld class [System.Core]System.Func`2<valuetype [mscorlib]System.Collections.Generic.KeyValuePair`2<string,class [OpenRA.FileFormats]OpenRA.FileFormats.MiniYaml>,string[]> OpenRA.GameRules.SoundInfo::'<>f__am$cacheB'
IL_0044: brtrue.s IL_0057
IL_0046: ldnull
IL_0047: ldftn string[] class OpenRA.GameRules.SoundInfo::'<Load>m__4A'(valuetype [mscorlib]System.Collections.Generic.KeyValuePair`2<string,class [OpenRA.FileFormats]OpenRA.FileFormats.MiniYaml>)
IL_004d: newobj instance void class [System.Core]System.Func`2<valuetype [mscorlib]System.Collections.Generic.KeyValuePair`2<string, class [OpenRA.FileFormats]OpenRA.FileFormats.MiniYaml>, string[]>::'.ctor'(object, native int)
IL_0052: stsfld class [System.Core]System.Func`2<valuetype [mscorlib]System.Collections.Generic.KeyValuePair`2<string,class [OpenRA.FileFormats]OpenRA.FileFormats.MiniYaml>,string[]> OpenRA.GameRules.SoundInfo::'<>f__am$cacheB'
IL_0057: ldsfld class [System.Core]System.Func`2<valuetype [mscorlib]System.Collections.Generic.KeyValuePair`2<string,class [OpenRA.FileFormats]OpenRA.FileFormats.MiniYaml>,string[]> OpenRA.GameRules.SoundInfo::'<>f__am$cacheB'
IL_005c: call class [mscorlib]System.Collections.Generic.Dictionary`2<!!1,!!2> class [System.Core]System.Linq.Enumerable::ToDictionary<valuetype [mscorlib]System.Collections.Generic.KeyValuePair`2<string,class [OpenRA.FileFormats]OpenRA.FileFormats.MiniYaml>, string, string[]> (class [mscorlib]System.Collections.Generic.IEnumerable`1<!!0>, class [System.Core]System.Func`2<!!0,!!1>, class [System.Core]System.Func`2<!!0,!!2>)
IL_0061: br IL_006b
IL_0066: newobj instance void class [mscorlib]System.Collections.Generic.Dictionary`2<string, string[]>::'.ctor'()
IL_006b: ret
} // end of method SoundInfo::Load
// method line 364
.method private hidebysig
instance default class [mscorlib]System.Collections.Generic.Dictionary`2<string, class OpenRA.GameRules.SoundPool> '<SoundInfo>m__47' () cil managed
{
.custom instance void class [mscorlib]System.Runtime.CompilerServices.CompilerGeneratedAttribute::'.ctor'() = (01 00 00 00 ) // ....
// Method begins at RVA 0x92c0
// Code size 70 (0x46)
.maxstack 7
IL_0000: ldarg.0
IL_0001: ldfld class [mscorlib]System.Collections.Generic.Dictionary`2<string,string[]> OpenRA.GameRules.SoundInfo::Voices
IL_0006: ldsfld class [System.Core]System.Func`2<valuetype [mscorlib]System.Collections.Generic.KeyValuePair`2<string,string[]>,string> OpenRA.GameRules.SoundInfo::'<>f__am$cacheC'
IL_000b: brtrue.s IL_001e
IL_000d: ldnull
IL_000e: ldftn string class OpenRA.GameRules.SoundInfo::'<SoundInfo>m__4B'(valuetype [mscorlib]System.Collections.Generic.KeyValuePair`2<string,string[]>)
IL_0014: newobj instance void class [System.Core]System.Func`2<valuetype [mscorlib]System.Collections.Generic.KeyValuePair`2<string, string[]>, string>::'.ctor'(object, native int)
IL_0019: stsfld class [System.Core]System.Func`2<valuetype [mscorlib]System.Collections.Generic.KeyValuePair`2<string,string[]>,string> OpenRA.GameRules.SoundInfo::'<>f__am$cacheC'
IL_001e: ldsfld class [System.Core]System.Func`2<valuetype [mscorlib]System.Collections.Generic.KeyValuePair`2<string,string[]>,string> OpenRA.GameRules.SoundInfo::'<>f__am$cacheC'
IL_0023: ldsfld class [System.Core]System.Func`2<valuetype [mscorlib]System.Collections.Generic.KeyValuePair`2<string,string[]>,class OpenRA.GameRules.SoundPool> OpenRA.GameRules.SoundInfo::'<>f__am$cacheD'
IL_0028: brtrue.s IL_003b
IL_002a: ldnull
IL_002b: ldftn class OpenRA.GameRules.SoundPool class OpenRA.GameRules.SoundInfo::'<SoundInfo>m__4C'(valuetype [mscorlib]System.Collections.Generic.KeyValuePair`2<string,string[]>)
IL_0031: newobj instance void class [System.Core]System.Func`2<valuetype [mscorlib]System.Collections.Generic.KeyValuePair`2<string, string[]>, class OpenRA.GameRules.SoundPool>::'.ctor'(object, native int)
IL_0036: stsfld class [System.Core]System.Func`2<valuetype [mscorlib]System.Collections.Generic.KeyValuePair`2<string,string[]>,class OpenRA.GameRules.SoundPool> OpenRA.GameRules.SoundInfo::'<>f__am$cacheD'
IL_003b: ldsfld class [System.Core]System.Func`2<valuetype [mscorlib]System.Collections.Generic.KeyValuePair`2<string,string[]>,class OpenRA.GameRules.SoundPool> OpenRA.GameRules.SoundInfo::'<>f__am$cacheD'
IL_0040: call class [mscorlib]System.Collections.Generic.Dictionary`2<!!1,!!2> class [System.Core]System.Linq.Enumerable::ToDictionary<valuetype [mscorlib]System.Collections.Generic.KeyValuePair`2<string,string[]>, string, class OpenRA.GameRules.SoundPool> (class [mscorlib]System.Collections.Generic.IEnumerable`1<!!0>, class [System.Core]System.Func`2<!!0,!!1>, class [System.Core]System.Func`2<!!0,!!2>)
IL_0045: ret
} // end of method SoundInfo::<SoundInfo>m__47
// method line 365
.method private hidebysig
instance default class [mscorlib]System.Collections.Generic.Dictionary`2<string, class OpenRA.GameRules.SoundPool> '<SoundInfo>m__48' () cil managed
{
.custom instance void class [mscorlib]System.Runtime.CompilerServices.CompilerGeneratedAttribute::'.ctor'() = (01 00 00 00 ) // ....
// Method begins at RVA 0x9314
// Code size 70 (0x46)
.maxstack 7
IL_0000: ldarg.0
IL_0001: ldfld class [mscorlib]System.Collections.Generic.Dictionary`2<string,string[]> OpenRA.GameRules.SoundInfo::Notifications
IL_0006: ldsfld class [System.Core]System.Func`2<valuetype [mscorlib]System.Collections.Generic.KeyValuePair`2<string,string[]>,string> OpenRA.GameRules.SoundInfo::'<>f__am$cacheE'
IL_000b: brtrue.s IL_001e
IL_000d: ldnull
IL_000e: ldftn string class OpenRA.GameRules.SoundInfo::'<SoundInfo>m__4D'(valuetype [mscorlib]System.Collections.Generic.KeyValuePair`2<string,string[]>)
IL_0014: newobj instance void class [System.Core]System.Func`2<valuetype [mscorlib]System.Collections.Generic.KeyValuePair`2<string, string[]>, string>::'.ctor'(object, native int)
IL_0019: stsfld class [System.Core]System.Func`2<valuetype [mscorlib]System.Collections.Generic.KeyValuePair`2<string,string[]>,string> OpenRA.GameRules.SoundInfo::'<>f__am$cacheE'
IL_001e: ldsfld class [System.Core]System.Func`2<valuetype [mscorlib]System.Collections.Generic.KeyValuePair`2<string,string[]>,string> OpenRA.GameRules.SoundInfo::'<>f__am$cacheE'
IL_0023: ldsfld class [System.Core]System.Func`2<valuetype [mscorlib]System.Collections.Generic.KeyValuePair`2<string,string[]>,class OpenRA.GameRules.SoundPool> OpenRA.GameRules.SoundInfo::'<>f__am$cacheF'
IL_0028: brtrue.s IL_003b
IL_002a: ldnull
IL_002b: ldftn class OpenRA.GameRules.SoundPool class OpenRA.GameRules.SoundInfo::'<SoundInfo>m__4E'(valuetype [mscorlib]System.Collections.Generic.KeyValuePair`2<string,string[]>)
IL_0031: newobj instance void class [System.Core]System.Func`2<valuetype [mscorlib]System.Collections.Generic.KeyValuePair`2<string, string[]>, class OpenRA.GameRules.SoundPool>::'.ctor'(object, native int)
IL_0036: stsfld class [System.Core]System.Func`2<valuetype [mscorlib]System.Collections.Generic.KeyValuePair`2<string,string[]>,class OpenRA.GameRules.SoundPool> OpenRA.GameRules.SoundInfo::'<>f__am$cacheF'
IL_003b: ldsfld class [System.Core]System.Func`2<valuetype [mscorlib]System.Collections.Generic.KeyValuePair`2<string,string[]>,class OpenRA.GameRules.SoundPool> OpenRA.GameRules.SoundInfo::'<>f__am$cacheF'
IL_0040: call class [mscorlib]System.Collections.Generic.Dictionary`2<!!1,!!2> class [System.Core]System.Linq.Enumerable::ToDictionary<valuetype [mscorlib]System.Collections.Generic.KeyValuePair`2<string,string[]>, string, class OpenRA.GameRules.SoundPool> (class [mscorlib]System.Collections.Generic.IEnumerable`1<!!0>, class [System.Core]System.Func`2<!!0,!!1>, class [System.Core]System.Func`2<!!0,!!2>)
IL_0045: ret
} // end of method SoundInfo::<SoundInfo>m__48
// method line 366
.method private static hidebysig
default string '<Load>m__49' (valuetype [mscorlib]System.Collections.Generic.KeyValuePair`2<string, class [OpenRA.FileFormats]OpenRA.FileFormats.MiniYaml> a) cil managed
{
.custom instance void class [mscorlib]System.Runtime.CompilerServices.CompilerGeneratedAttribute::'.ctor'() = (01 00 00 00 ) // ....
// Method begins at RVA 0x9368
// Code size 8 (0x8)
.maxstack 8
IL_0000: ldarga.s 0
IL_0002: call instance !0 valuetype [mscorlib]System.Collections.Generic.KeyValuePair`2<string, class [OpenRA.FileFormats]OpenRA.FileFormats.MiniYaml>::get_Key()
IL_0007: ret
} // end of method SoundInfo::<Load>m__49
// method line 367
.method private static hidebysig
default string[] '<Load>m__4A' (valuetype [mscorlib]System.Collections.Generic.KeyValuePair`2<string, class [OpenRA.FileFormats]OpenRA.FileFormats.MiniYaml> a) cil managed
{
.custom instance void class [mscorlib]System.Runtime.CompilerServices.CompilerGeneratedAttribute::'.ctor'() = (01 00 00 00 ) // ....
// Method begins at RVA 0x9374
// Code size 23 (0x17)
.maxstack 8
IL_0000: ldstr "(value)"
IL_0005: ldarga.s 0
IL_0007: call instance !1 valuetype [mscorlib]System.Collections.Generic.KeyValuePair`2<string, class [OpenRA.FileFormats]OpenRA.FileFormats.MiniYaml>::get_Value()
IL_000c: ldfld string [OpenRA.FileFormats]OpenRA.FileFormats.MiniYaml::Value
IL_0011: call !!0 class [OpenRA.FileFormats]OpenRA.FileFormats.FieldLoader::GetValue<string[]> (string, string)
IL_0016: ret
} // end of method SoundInfo::<Load>m__4A
// method line 368
.method private static hidebysig
default string '<SoundInfo>m__4B' (valuetype [mscorlib]System.Collections.Generic.KeyValuePair`2<string, string[]> a) cil managed
{
.custom instance void class [mscorlib]System.Runtime.CompilerServices.CompilerGeneratedAttribute::'.ctor'() = (01 00 00 00 ) // ....
// Method begins at RVA 0x938c
// Code size 8 (0x8)
.maxstack 8
IL_0000: ldarga.s 0
IL_0002: call instance !0 valuetype [mscorlib]System.Collections.Generic.KeyValuePair`2<string, string[]>::get_Key()
IL_0007: ret
} // end of method SoundInfo::<SoundInfo>m__4B
// method line 369
.method private static hidebysig
default class OpenRA.GameRules.SoundPool '<SoundInfo>m__4C' (valuetype [mscorlib]System.Collections.Generic.KeyValuePair`2<string, string[]> a) cil managed
{
.custom instance void class [mscorlib]System.Runtime.CompilerServices.CompilerGeneratedAttribute::'.ctor'() = (01 00 00 00 ) // ....
// Method begins at RVA 0x9398
// Code size 13 (0xd)
.maxstack 8
IL_0000: ldarga.s 0
IL_0002: call instance !1 valuetype [mscorlib]System.Collections.Generic.KeyValuePair`2<string, string[]>::get_Value()
IL_0007: newobj instance void class OpenRA.GameRules.SoundPool::'.ctor'(string[])
IL_000c: ret
} // end of method SoundInfo::<SoundInfo>m__4C
// method line 370
.method private static hidebysig
default string '<SoundInfo>m__4D' (valuetype [mscorlib]System.Collections.Generic.KeyValuePair`2<string, string[]> a) cil managed
{
.custom instance void class [mscorlib]System.Runtime.CompilerServices.CompilerGeneratedAttribute::'.ctor'() = (01 00 00 00 ) // ....
// Method begins at RVA 0x93a8
// Code size 8 (0x8)
.maxstack 8
IL_0000: ldarga.s 0
IL_0002: call instance !0 valuetype [mscorlib]System.Collections.Generic.KeyValuePair`2<string, string[]>::get_Key()
IL_0007: ret
} // end of method SoundInfo::<SoundInfo>m__4D
// method line 371
.method private static hidebysig
default class OpenRA.GameRules.SoundPool '<SoundInfo>m__4E' (valuetype [mscorlib]System.Collections.Generic.KeyValuePair`2<string, string[]> a) cil managed
{
.custom instance void class [mscorlib]System.Runtime.CompilerServices.CompilerGeneratedAttribute::'.ctor'() = (01 00 00 00 ) // ....
// Method begins at RVA 0x93b4
// Code size 13 (0xd)
.maxstack 8
IL_0000: ldarga.s 0
IL_0002: call instance !1 valuetype [mscorlib]System.Collections.Generic.KeyValuePair`2<string, string[]>::get_Value()
IL_0007: newobj instance void class OpenRA.GameRules.SoundPool::'.ctor'(string[])
IL_000c: ret
} // end of method SoundInfo::<SoundInfo>m__4E
} // end of class OpenRA.GameRules.SoundInfo
}
.namespace OpenRA.GameRules
{
.class public auto ansi beforefieldinit SoundPool
extends [mscorlib]System.Object
{
.field private initonly string[] clips
.field private initonly class [mscorlib]System.Collections.Generic.List`1<string> liveclips
// method line 372
.method public hidebysig specialname rtspecialname
instance default void '.ctor' (string[] clips) cil managed
{
.param [1]
.custom instance void class [mscorlib]System.ParamArrayAttribute::'.ctor'() = (01 00 00 00 ) // ....
// Method begins at RVA 0x93c4
// Code size 25 (0x19)
.maxstack 8
IL_0000: ldarg.0
IL_0001: newobj instance void class [mscorlib]System.Collections.Generic.List`1<string>::'.ctor'()
IL_0006: stfld class [mscorlib]System.Collections.Generic.List`1<string> OpenRA.GameRules.SoundPool::liveclips
IL_000b: ldarg.0
IL_000c: call instance void object::'.ctor'()
IL_0011: ldarg.0
IL_0012: ldarg.1
IL_0013: stfld string[] OpenRA.GameRules.SoundPool::clips
IL_0018: ret
} // end of method SoundPool::.ctor
// method line 373
.method public hidebysig
instance default string GetNext () cil managed
{
// Method begins at RVA 0x93e0
// Code size 100 (0x64)
.maxstack 16
.locals init (
int32 V_0,
string V_1)
IL_0000: ldarg.0
IL_0001: ldfld class [mscorlib]System.Collections.Generic.List`1<string> OpenRA.GameRules.SoundPool::liveclips
IL_0006: callvirt instance int32 class [mscorlib]System.Collections.Generic.List`1<string>::get_Count()
IL_000b: brtrue IL_0021
IL_0010: ldarg.0
IL_0011: ldfld class [mscorlib]System.Collections.Generic.List`1<string> OpenRA.GameRules.SoundPool::liveclips
IL_0016: ldarg.0
IL_0017: ldfld string[] OpenRA.GameRules.SoundPool::clips
IL_001c: callvirt instance void class [mscorlib]System.Collections.Generic.List`1<string>::AddRange(class [mscorlib]System.Collections.Generic.IEnumerable`1<!0>)
IL_0021: ldarg.0
IL_0022: ldfld class [mscorlib]System.Collections.Generic.List`1<string> OpenRA.GameRules.SoundPool::liveclips
IL_0027: callvirt instance int32 class [mscorlib]System.Collections.Generic.List`1<string>::get_Count()
IL_002c: brtrue IL_0033
IL_0031: ldnull
IL_0032: ret
IL_0033: ldsfld class [OpenRA.FileFormats]OpenRA.Thirdparty.Random OpenRA.Game::CosmeticRandom
IL_0038: ldarg.0
IL_0039: ldfld class [mscorlib]System.Collections.Generic.List`1<string> OpenRA.GameRules.SoundPool::liveclips
IL_003e: callvirt instance int32 class [mscorlib]System.Collections.Generic.List`1<string>::get_Count()
IL_0043: callvirt instance int32 class [OpenRA.FileFormats]OpenRA.Thirdparty.Random::Next(int32)
IL_0048: stloc.0
IL_0049: ldarg.0
IL_004a: ldfld class [mscorlib]System.Collections.Generic.List`1<string> OpenRA.GameRules.SoundPool::liveclips
IL_004f: ldloc.0
IL_0050: callvirt instance !0 class [mscorlib]System.Collections.Generic.List`1<string>::get_Item(int32)
IL_0055: stloc.1
IL_0056: ldarg.0
IL_0057: ldfld class [mscorlib]System.Collections.Generic.List`1<string> OpenRA.GameRules.SoundPool::liveclips
IL_005c: ldloc.0
IL_005d: callvirt instance void class [mscorlib]System.Collections.Generic.List`1<string>::RemoveAt(int32)
IL_0062: ldloc.1
IL_0063: ret
} // end of method SoundPool::GetNext
} // end of class OpenRA.GameRules.SoundPool
}
.namespace OpenRA
{
.class public auto ansi beforefieldinit ActorInfo
extends [mscorlib]System.Object
{
.custom instance void class [OpenRA.FileFormats]OpenRA.FileFormats.DescAttribute::'.ctor'(string[]) = (
01 00 02 00 00 00 52 41 20 75 6E 69 74 2F 62 75 // ......RA unit/bu
69 6C 64 69 6E 67 20 69 6E 73 69 64 65 20 74 68 // ilding inside th
65 20 67 61 6D 65 2E 20 45 76 65 72 79 20 72 75 // e game. Every ru
6C 65 73 20 73 74 61 72 74 73 20 77 69 74 68 20 // les starts with
6F 6E 65 20 61 6E 64 20 61 64 64 73 20 74 72 61 // one and adds tra
69 74 20 74 6F 20 69 74 2E 5D 53 70 65 63 69 61 // it to it.]Specia
6C 20 61 63 74 6F 72 73 20 6C 69 6B 65 20 77 6F // l actors like wo
72 6C 64 20 6F 72 20 70 6C 61 79 65 72 20 61 72 // rld or player ar
65 20 75 73 75 61 6C 6C 79 20 64 65 66 69 6E 65 // e usually define
64 20 69 6E 20 73 79 73 74 65 6D 2E 79 61 6D 6C // d in system.yaml
20 61 6E 64 20 61 66 66 65 63 74 20 65 76 65 72 // and affect ever
79 74 68 69 6E 67 2E 00 00 ) // ything...
.field public initonly string Name
.custom instance void class [OpenRA.FileFormats]OpenRA.FileFormats.DescAttribute::'.ctor'(string[]) = (
01 00 04 00 00 00 60 54 68 65 20 61 63 74 6F 72 // ......`The actor
20 6E 61 6D 65 20 63 61 6E 20 62 65 20 61 6E 79 // name can be any
74 68 69 6E 67 2C 20 62 75 74 20 74 68 65 20 73 // thing, but the s
70 72 69 74 65 73 20 75 73 65 64 20 69 6E 20 74 // prites used in t
68 65 20 52 65 6E 64 65 72 2A 3A 20 74 72 61 69 // he Render*: trai
74 73 20 64 65 66 61 75 6C 74 20 74 6F 20 74 68 // ts default to th
69 73 20 6F 6E 65 2E 5E 49 66 20 79 6F 75 20 61 // is one.^If you a
64 64 20 61 6E 20 5E 20 69 6E 20 66 72 6F 6E 74 // dd an ^ in front
20 6F 66 20 74 68 65 20 6E 61 6D 65 2C 20 74 68 // of the name, th
65 20 65 6E 67 69 6E 65 20 77 69 6C 6C 20 72 65 // e engine will re
63 6F 67 6E 69 7A 65 20 74 68 69 73 20 61 73 20 // cognize this as
61 20 63 6F 6C 6C 65 63 74 69 6F 6E 20 6F 66 20 // a collection of
74 72 61 69 74 73 46 74 68 61 74 20 63 61 6E 20 // traitsFthat can
62 65 20 69 6E 68 65 72 69 74 65 64 20 62 79 20 // be inherited by
6F 74 68 65 72 73 20 28 75 73 69 6E 67 20 49 6E // others (using In
68 65 72 69 74 73 3A 29 20 61 6E 64 20 6E 6F 74 // herits:) and not
20 61 20 72 65 61 6C 20 75 6E 69 74 2E 76 59 6F // a real unit.vYo
75 20 63 61 6E 20 72 65 6D 6F 76 65 20 69 6E 68 // u can remove inh
65 72 69 74 65 64 20 74 72 61 69 74 73 20 62 79 // erited traits by
20 61 64 64 69 6E 67 20 61 20 2D 20 69 6E 66 72 // adding a - infr
6F 6E 74 20 6F 66 20 74 68 65 6D 20 61 73 20 69 // ont of them as i
6E 20 2D 54 72 61 69 74 4E 61 6D 65 3A 20 74 6F // n -TraitName: to
20 69 6E 68 65 72 69 74 20 65 76 65 72 79 74 68 // inherit everyth
69 6E 67 2C 20 62 75 74 20 74 68 69 73 20 74 72 // ing, but this tr
61 69 74 2E 00 00 ) // ait...
.field public initonly class [OpenRA.FileFormats]OpenRA.FileFormats.TypeDictionary Traits
.field private static class [mscorlib]System.Predicate`1<class [OpenRA.FileFormats]OpenRA.FileFormats.MiniYamlNode> '<>f__am$cache2'
.custom instance void class [mscorlib]System.Runtime.CompilerServices.CompilerGeneratedAttribute::'.ctor'() = (01 00 00 00 ) // ....
.field private static class [System.Core]System.Func`2<class OpenRA.Traits.ITraitInfo,string> '<>f__am$cache3'
.custom instance void class [mscorlib]System.Runtime.CompilerServices.CompilerGeneratedAttribute::'.ctor'() = (01 00 00 00 ) // ....
.field private static class [System.Core]System.Func`2<class [mscorlib]System.Type,string> '<>f__am$cache4'
.custom instance void class [mscorlib]System.Runtime.CompilerServices.CompilerGeneratedAttribute::'.ctor'() = (01 00 00 00 ) // ....
.field private static class [System.Core]System.Func`2<class [mscorlib]System.Type,bool> '<>f__am$cache5'
.custom instance void class [mscorlib]System.Runtime.CompilerServices.CompilerGeneratedAttribute::'.ctor'() = (01 00 00 00 ) // ....
.field private static class [System.Core]System.Func`2<class [mscorlib]System.Type,class [mscorlib]System.Type> '<>f__am$cache6'
.custom instance void class [mscorlib]System.Runtime.CompilerServices.CompilerGeneratedAttribute::'.ctor'() = (01 00 00 00 ) // ....
.field private static class [System.Core]System.Func`2<class OpenRA.Traits.ITraitInfo,class [mscorlib]System.Collections.Generic.IEnumerable`1<class [mscorlib]System.Type>> '<>f__am$cache7'
.custom instance void class [mscorlib]System.Runtime.CompilerServices.CompilerGeneratedAttribute::'.ctor'() = (01 00 00 00 ) // ....
.field private static class [System.Core]System.Func`2<class [mscorlib]System.Type,valuetype [OpenRA.FileFormats]OpenRA.FileFormats.Pair`2<string,class [mscorlib]System.Type>> '<>f__am$cache8'
.custom instance void class [mscorlib]System.Runtime.CompilerServices.CompilerGeneratedAttribute::'.ctor'() = (01 00 00 00 ) // ....
.field private static class [System.Core]System.Func`2<class [mscorlib]System.Type,bool> '<>f__am$cache9'
.custom instance void class [mscorlib]System.Runtime.CompilerServices.CompilerGeneratedAttribute::'.ctor'() = (01 00 00 00 ) // ....
.field private static class [System.Core]System.Func`2<class [mscorlib]System.Type,class [mscorlib]System.Type> '<>f__am$cacheA'
.custom instance void class [mscorlib]System.Runtime.CompilerServices.CompilerGeneratedAttribute::'.ctor'() = (01 00 00 00 ) // ....
// method line 374
.method public hidebysig specialname rtspecialname
instance default void '.ctor' (string name, class [OpenRA.FileFormats]OpenRA.FileFormats.MiniYaml node, class [mscorlib]System.Collections.Generic.Dictionary`2<string, class [OpenRA.FileFormats]OpenRA.FileFormats.MiniYaml> allUnits) cil managed
{
// Method begins at RVA 0x9450
// Code size 227 (0xe3)
.maxstack 29
.locals init (
class [mscorlib]System.Collections.Generic.Dictionary`2<string, class [OpenRA.FileFormats]OpenRA.FileFormats.MiniYaml> V_0,
valuetype [mscorlib]System.Collections.Generic.Dictionary`2/Enumerator<string, class [OpenRA.FileFormats]OpenRA.FileFormats.MiniYaml> V_1,
valuetype [mscorlib]System.Collections.Generic.KeyValuePair`2<string, class [OpenRA.FileFormats]OpenRA.FileFormats.MiniYaml> V_2,
class [OpenRA.FileFormats]OpenRA.FileFormats.YamlException V_3)
IL_0000: ldarg.0
IL_0001: newobj instance void class [OpenRA.FileFormats]OpenRA.FileFormats.TypeDictionary::'.ctor'()
IL_0006: stfld class [OpenRA.FileFormats]OpenRA.FileFormats.TypeDictionary OpenRA.ActorInfo::Traits
IL_000b: ldarg.0
IL_000c: call instance void object::'.ctor'()
.try { // 1
IL_0011: ldarg.2
IL_0012: ldarg.3
IL_0013: call class [OpenRA.FileFormats]OpenRA.FileFormats.MiniYaml class OpenRA.ActorInfo::MergeWithParent(class [OpenRA.FileFormats]OpenRA.FileFormats.MiniYaml, class [mscorlib]System.Collections.Generic.Dictionary`2<string,class [OpenRA.FileFormats]OpenRA.FileFormats.MiniYaml>)
IL_0018: callvirt instance class [mscorlib]System.Collections.Generic.Dictionary`2<string,class [OpenRA.FileFormats]OpenRA.FileFormats.MiniYaml> class [OpenRA.FileFormats]OpenRA.FileFormats.MiniYaml::get_NodesDict()
IL_001d: stloc.0
IL_001e: ldarg.0
IL_001f: ldarg.1
IL_0020: stfld string OpenRA.ActorInfo::Name
IL_0025: ldloc.0
IL_0026: callvirt instance valuetype [mscorlib]System.Collections.Generic.Dictionary`2/Enumerator<!0,!1> class [mscorlib]System.Collections.Generic.Dictionary`2<string, class [OpenRA.FileFormats]OpenRA.FileFormats.MiniYaml>::GetEnumerator()
IL_002b: stloc.1
.try { // 0
IL_002c: br IL_0095
IL_0031: ldloca.s 1
IL_0033: call instance valuetype [mscorlib]System.Collections.Generic.KeyValuePair`2<!0,!1> valuetype [mscorlib]System.Collections.Generic.Dictionary`2/Enumerator<string, class [OpenRA.FileFormats]OpenRA.FileFormats.MiniYaml>::get_Current()
IL_0038: stloc.2
IL_0039: ldloca.s 2
IL_003b: call instance !0 valuetype [mscorlib]System.Collections.Generic.KeyValuePair`2<string, class [OpenRA.FileFormats]OpenRA.FileFormats.MiniYaml>::get_Key()
IL_0040: ldstr "Inherits"
IL_0045: call bool string::op_Inequality(string, string)
IL_004a: brfalse IL_0095
IL_004f: ldloca.s 2
IL_0051: call instance !0 valuetype [mscorlib]System.Collections.Generic.KeyValuePair`2<string, class [OpenRA.FileFormats]OpenRA.FileFormats.MiniYaml>::get_Key()
IL_0056: ldstr "-"
IL_005b: callvirt instance bool string::StartsWith(string)
IL_0060: brtrue IL_0095
IL_0065: ldarg.0
IL_0066: ldfld class [OpenRA.FileFormats]OpenRA.FileFormats.TypeDictionary OpenRA.ActorInfo::Traits
IL_006b: ldloca.s 2
IL_006d: call instance !0 valuetype [mscorlib]System.Collections.Generic.KeyValuePair`2<string, class [OpenRA.FileFormats]OpenRA.FileFormats.MiniYaml>::get_Key()
IL_0072: ldc.i4.1
IL_0073: newarr [mscorlib]System.Char
IL_0078: dup
IL_0079: ldc.i4.0
IL_007a: ldc.i4.s 0x40
IL_007c: stelem.i2
IL_007d: callvirt instance string[] string::Split(char[])
IL_0082: ldc.i4.0
IL_0083: ldelem.ref
IL_0084: ldloca.s 2
IL_0086: call instance !1 valuetype [mscorlib]System.Collections.Generic.KeyValuePair`2<string, class [OpenRA.FileFormats]OpenRA.FileFormats.MiniYaml>::get_Value()
IL_008b: call class OpenRA.Traits.ITraitInfo class OpenRA.ActorInfo::LoadTraitInfo(string, class [OpenRA.FileFormats]OpenRA.FileFormats.MiniYaml)
IL_0090: callvirt instance void class [OpenRA.FileFormats]OpenRA.FileFormats.TypeDictionary::Add(object)
IL_0095: ldloca.s 1
IL_0097: call instance bool valuetype [mscorlib]System.Collections.Generic.Dictionary`2/Enumerator<string, class [OpenRA.FileFormats]OpenRA.FileFormats.MiniYaml>::MoveNext()
IL_009c: brtrue IL_0031
IL_00a1: leave IL_00b4
} // end .try 0
finally { // 0
IL_00a6: ldloca.s 1
IL_00a8: constrained. valuetype [mscorlib]System.Collections.Generic.Dictionary`2/Enumerator<string,class [OpenRA.FileFormats]OpenRA.FileFormats.MiniYaml>
IL_00ae: callvirt instance void class [mscorlib]System.IDisposable::Dispose()
IL_00b3: endfinally
} // end handler 0
IL_00b4: leave IL_00e2
} // end .try 1
catch class [OpenRA.FileFormats]OpenRA.FileFormats.YamlException { // 1
IL_00b9: stloc.3
IL_00ba: ldstr "Actor type {0}: {1}"
IL_00bf: ldc.i4.2
IL_00c0: newarr [mscorlib]System.Object
IL_00c5: dup
IL_00c6: ldc.i4.0
IL_00c7: ldarg.1
IL_00c8: stelem.ref
IL_00c9: dup
IL_00ca: ldc.i4.1
IL_00cb: ldloc.3
IL_00cc: callvirt instance string class [mscorlib]System.Exception::get_Message()
IL_00d1: stelem.ref
IL_00d2: call string class [OpenRA.FileFormats]OpenRA.Exts::F(string, object[])
IL_00d7: newobj instance void class [OpenRA.FileFormats]OpenRA.FileFormats.YamlException::'.ctor'(string)
IL_00dc: throw
IL_00dd: leave IL_00e2
} // end handler 1
IL_00e2: ret
} // end of method ActorInfo::.ctor
// method line 375
.method private static hidebysig
default class [OpenRA.FileFormats]OpenRA.FileFormats.MiniYaml GetParent (class [OpenRA.FileFormats]OpenRA.FileFormats.MiniYaml node, class [mscorlib]System.Collections.Generic.Dictionary`2<string, class [OpenRA.FileFormats]OpenRA.FileFormats.MiniYaml> allUnits) cil managed
{
// Method begins at RVA 0x9574
// Code size 97 (0x61)
.maxstack 14
.locals init (
class [OpenRA.FileFormats]OpenRA.FileFormats.MiniYaml V_0,
class [OpenRA.FileFormats]OpenRA.FileFormats.MiniYaml V_1)
IL_0000: ldarg.0
IL_0001: callvirt instance class [mscorlib]System.Collections.Generic.Dictionary`2<string,class [OpenRA.FileFormats]OpenRA.FileFormats.MiniYaml> class [OpenRA.FileFormats]OpenRA.FileFormats.MiniYaml::get_NodesDict()
IL_0006: ldstr "Inherits"
IL_000b: ldloca.s 0
IL_000d: callvirt instance bool class [mscorlib]System.Collections.Generic.Dictionary`2<string, class [OpenRA.FileFormats]OpenRA.FileFormats.MiniYaml>::TryGetValue(!0, [out] !1&)
IL_0012: pop
IL_0013: ldloc.0
IL_0014: brfalse IL_0029
IL_0019: ldloc.0
IL_001a: ldfld string [OpenRA.FileFormats]OpenRA.FileFormats.MiniYaml::Value
IL_001f: call bool string::IsNullOrEmpty(string)
IL_0024: brfalse IL_002b
IL_0029: ldnull
IL_002a: ret
IL_002b: ldarg.1
IL_002c: ldloc.0
IL_002d: ldfld string [OpenRA.FileFormats]OpenRA.FileFormats.MiniYaml::Value
IL_0032: ldloca.s 1
IL_0034: callvirt instance bool class [mscorlib]System.Collections.Generic.Dictionary`2<string, class [OpenRA.FileFormats]OpenRA.FileFormats.MiniYaml>::TryGetValue(!0, [out] !1&)
IL_0039: pop
IL_003a: ldloc.1
IL_003b: brtrue IL_005f
IL_0040: ldstr "Bogus inheritance -- actor type {0} does not exist"
IL_0045: ldc.i4.1
IL_0046: newarr [mscorlib]System.Object
IL_004b: dup
IL_004c: ldc.i4.0
IL_004d: ldloc.0
IL_004e: ldfld string [OpenRA.FileFormats]OpenRA.FileFormats.MiniYaml::Value
IL_0053: stelem.ref
IL_0054: call string class [OpenRA.FileFormats]OpenRA.Exts::F(string, object[])
IL_0059: newobj instance void class [mscorlib]System.InvalidOperationException::'.ctor'(string)
IL_005e: throw
IL_005f: ldloc.1
IL_0060: ret
} // end of method ActorInfo::GetParent
// method line 376
.method private static hidebysig
default class [OpenRA.FileFormats]OpenRA.FileFormats.MiniYaml MergeWithParent (class [OpenRA.FileFormats]OpenRA.FileFormats.MiniYaml node, class [mscorlib]System.Collections.Generic.Dictionary`2<string, class [OpenRA.FileFormats]OpenRA.FileFormats.MiniYaml> allUnits) cil managed
{
// Method begins at RVA 0x95e4
// Code size 73 (0x49)
.maxstack 8
.locals init (
class [OpenRA.FileFormats]OpenRA.FileFormats.MiniYaml V_0,
class [OpenRA.FileFormats]OpenRA.FileFormats.MiniYaml V_1)
IL_0000: ldarg.0
IL_0001: ldarg.1
IL_0002: call class [OpenRA.FileFormats]OpenRA.FileFormats.MiniYaml class OpenRA.ActorInfo::GetParent(class [OpenRA.FileFormats]OpenRA.FileFormats.MiniYaml, class [mscorlib]System.Collections.Generic.Dictionary`2<string,class [OpenRA.FileFormats]OpenRA.FileFormats.MiniYaml>)
IL_0007: stloc.0
IL_0008: ldloc.0
IL_0009: brfalse IL_0047
IL_000e: ldarg.0
IL_000f: ldloc.0
IL_0010: ldarg.1
IL_0011: call class [OpenRA.FileFormats]OpenRA.FileFormats.MiniYaml class OpenRA.ActorInfo::MergeWithParent(class [OpenRA.FileFormats]OpenRA.FileFormats.MiniYaml, class [mscorlib]System.Collections.Generic.Dictionary`2<string,class [OpenRA.FileFormats]OpenRA.FileFormats.MiniYaml>)
IL_0016: call class [OpenRA.FileFormats]OpenRA.FileFormats.MiniYaml class [OpenRA.FileFormats]OpenRA.FileFormats.MiniYaml::MergeStrict(class [OpenRA.FileFormats]OpenRA.FileFormats.MiniYaml, class [OpenRA.FileFormats]OpenRA.FileFormats.MiniYaml)
IL_001b: stloc.1
IL_001c: ldloc.1
IL_001d: ldfld class [mscorlib]System.Collections.Generic.List`1<class [OpenRA.FileFormats]OpenRA.FileFormats.MiniYamlNode> [OpenRA.FileFormats]OpenRA.FileFormats.MiniYaml::Nodes
IL_0022: ldsfld class [mscorlib]System.Predicate`1<class [OpenRA.FileFormats]OpenRA.FileFormats.MiniYamlNode> OpenRA.ActorInfo::'<>f__am$cache2'
IL_0027: brtrue.s IL_003a
IL_0029: ldnull
IL_002a: ldftn bool class OpenRA.ActorInfo::'<MergeWithParent>m__4F'(class [OpenRA.FileFormats]OpenRA.FileFormats.MiniYamlNode)
IL_0030: newobj instance void class [mscorlib]System.Predicate`1<class [OpenRA.FileFormats]OpenRA.FileFormats.MiniYamlNode>::'.ctor'(object, native int)
IL_0035: stsfld class [mscorlib]System.Predicate`1<class [OpenRA.FileFormats]OpenRA.FileFormats.MiniYamlNode> OpenRA.ActorInfo::'<>f__am$cache2'
IL_003a: ldsfld class [mscorlib]System.Predicate`1<class [OpenRA.FileFormats]OpenRA.FileFormats.MiniYamlNode> OpenRA.ActorInfo::'<>f__am$cache2'
IL_003f: callvirt instance int32 class [mscorlib]System.Collections.Generic.List`1<class [OpenRA.FileFormats]OpenRA.FileFormats.MiniYamlNode>::RemoveAll(class [mscorlib]System.Predicate`1<!0>)
IL_0044: pop
IL_0045: ldloc.1
IL_0046: ret
IL_0047: ldarg.0
IL_0048: ret
} // end of method ActorInfo::MergeWithParent
// method line 377
.method private static hidebysig
default class OpenRA.Traits.ITraitInfo LoadTraitInfo (string traitName, class [OpenRA.FileFormats]OpenRA.FileFormats.MiniYaml my) cil managed
{
// Method begins at RVA 0x963c
// Code size 77 (0x4d)
.maxstack 7
.locals init (
class OpenRA.Traits.ITraitInfo V_0)
IL_0000: ldarg.1
IL_0001: ldfld string [OpenRA.FileFormats]OpenRA.FileFormats.MiniYaml::Value
IL_0006: call bool string::IsNullOrEmpty(string)
IL_000b: brtrue IL_0033
IL_0010: ldstr "Junk value `{0}` on trait node {1}"
IL_0015: ldc.i4.2
IL_0016: newarr [mscorlib]System.Object
IL_001b: dup
IL_001c: ldc.i4.0
IL_001d: ldarg.1
IL_001e: ldfld string [OpenRA.FileFormats]OpenRA.FileFormats.MiniYaml::Value
IL_0023: stelem.ref
IL_0024: dup
IL_0025: ldc.i4.1
IL_0026: ldarg.0
IL_0027: stelem.ref
IL_0028: call string class [OpenRA.FileFormats]OpenRA.Exts::F(string, object[])
IL_002d: newobj instance void class [OpenRA.FileFormats]OpenRA.FileFormats.YamlException::'.ctor'(string)
IL_0032: throw
IL_0033: ldarg.0
IL_0034: ldstr "Info"
IL_0039: call string string::Concat(string, string)
IL_003e: call !!0 class OpenRA.Game::CreateObject<class OpenRA.Traits.ITraitInfo> (string)
IL_0043: stloc.0
IL_0044: ldloc.0
IL_0045: ldarg.1
IL_0046: call void class [OpenRA.FileFormats]OpenRA.FileFormats.FieldLoader::Load(object, class [OpenRA.FileFormats]OpenRA.FileFormats.MiniYaml)
IL_004b: ldloc.0
IL_004c: ret
} // end of method ActorInfo::LoadTraitInfo
// method line 378
.method public hidebysig
instance default class [mscorlib]System.Collections.Generic.IEnumerable`1<class OpenRA.Traits.ITraitInfo> TraitsInConstructOrder () cil managed
{
// Method begins at RVA 0x9698
// Code size 280 (0x118)
.maxstack 29
.locals init (
class OpenRA.ActorInfo/'<TraitsInConstructOrder>c__AnonStorey2C' V_0,
class [mscorlib]System.Collections.Generic.List`1<class OpenRA.Traits.ITraitInfo> V_1,
int32 V_2,
class [mscorlib]System.Collections.Generic.List`1<class [mscorlib]System.Type> V_3,
class [mscorlib]System.Collections.Generic.IEnumerable`1<class [mscorlib]System.Type> V_4)
IL_0000: newobj instance void class OpenRA.ActorInfo/'<TraitsInConstructOrder>c__AnonStorey2C'::'.ctor'()
IL_0005: stloc.0
IL_0006: ldloc.0
IL_0007: newobj instance void class [mscorlib]System.Collections.Generic.List`1<class OpenRA.Traits.ITraitInfo>::'.ctor'()
IL_000c: stfld class [mscorlib]System.Collections.Generic.List`1<class OpenRA.Traits.ITraitInfo> OpenRA.ActorInfo/'<TraitsInConstructOrder>c__AnonStorey2C'::'ret'
IL_0011: ldarg.0
IL_0012: ldfld class [OpenRA.FileFormats]OpenRA.FileFormats.TypeDictionary OpenRA.ActorInfo::Traits
IL_0017: callvirt instance class [mscorlib]System.Collections.Generic.IEnumerable`1<!!0> class [OpenRA.FileFormats]OpenRA.FileFormats.TypeDictionary::WithInterface<class OpenRA.Traits.ITraitInfo> ()
IL_001c: call class [mscorlib]System.Collections.Generic.List`1<!!0> class [System.Core]System.Linq.Enumerable::ToList<class OpenRA.Traits.ITraitInfo> (class [mscorlib]System.Collections.Generic.IEnumerable`1<!!0>)
IL_0021: stloc.1
IL_0022: ldc.i4.0
IL_0023: stloc.2
IL_0024: br IL_0106
IL_0029: ldloc.1
IL_002a: ldloc.2
IL_002b: callvirt instance !0 class [mscorlib]System.Collections.Generic.List`1<class OpenRA.Traits.ITraitInfo>::get_Item(int32)
IL_0030: call class [mscorlib]System.Collections.Generic.List`1<class [mscorlib]System.Type> class OpenRA.ActorInfo::PrerequisitesOf(class OpenRA.Traits.ITraitInfo)
IL_0035: stloc.3
IL_0036: ldloc.3
IL_0037: ldloc.0
IL_0038: ldftn instance bool class OpenRA.ActorInfo/'<TraitsInConstructOrder>c__AnonStorey2C'::'<>m__50'(class [mscorlib]System.Type)
IL_003e: newobj instance void class [System.Core]System.Func`2<class [mscorlib]System.Type, bool>::'.ctor'(object, native int)
IL_0043: call class [mscorlib]System.Collections.Generic.IEnumerable`1<!!0> class [System.Core]System.Linq.Enumerable::Where<class [mscorlib]System.Type> (class [mscorlib]System.Collections.Generic.IEnumerable`1<!!0>, class [System.Core]System.Func`2<!!0,bool>)
IL_0048: stloc.s 4
IL_004a: ldloc.s 4
IL_004c: call bool class [System.Core]System.Linq.Enumerable::Any<class [mscorlib]System.Type> (class [mscorlib]System.Collections.Generic.IEnumerable`1<!!0>)
IL_0051: brtrue IL_0076
IL_0056: ldloc.0
IL_0057: ldfld class [mscorlib]System.Collections.Generic.List`1<class OpenRA.Traits.ITraitInfo> OpenRA.ActorInfo/'<TraitsInConstructOrder>c__AnonStorey2C'::'ret'
IL_005c: ldloc.1
IL_005d: ldloc.2
IL_005e: callvirt instance !0 class [mscorlib]System.Collections.Generic.List`1<class OpenRA.Traits.ITraitInfo>::get_Item(int32)
IL_0063: callvirt instance void class [mscorlib]System.Collections.Generic.List`1<class OpenRA.Traits.ITraitInfo>::Add(!0)
IL_0068: ldloc.1
IL_0069: ldloc.2
IL_006a: callvirt instance void class [mscorlib]System.Collections.Generic.List`1<class OpenRA.Traits.ITraitInfo>::RemoveAt(int32)
IL_006f: ldc.i4.0
IL_0070: stloc.2
IL_0071: br IL_0106
IL_0076: ldloc.2
IL_0077: ldc.i4.1
IL_0078: add
IL_0079: dup
IL_007a: stloc.2
IL_007b: ldloc.1
IL_007c: callvirt instance int32 class [mscorlib]System.Collections.Generic.List`1<class OpenRA.Traits.ITraitInfo>::get_Count()
IL_0081: blt IL_0106
IL_0086: ldstr "Trait prerequisites not satisfied (or prerequisite loop) Actor={0} Unresolved={1} Missing={2}"
IL_008b: ldc.i4.3
IL_008c: newarr [mscorlib]System.Object
IL_0091: dup
IL_0092: ldc.i4.0
IL_0093: ldarg.0
IL_0094: ldfld string OpenRA.ActorInfo::Name
IL_0099: stelem.ref
IL_009a: dup
IL_009b: ldc.i4.1
IL_009c: ldloc.1
IL_009d: ldsfld class [System.Core]System.Func`2<class OpenRA.Traits.ITraitInfo,string> OpenRA.ActorInfo::'<>f__am$cache3'
IL_00a2: brtrue.s IL_00b5
IL_00a4: ldnull
IL_00a5: ldftn string class OpenRA.ActorInfo::'<TraitsInConstructOrder>m__51'(class OpenRA.Traits.ITraitInfo)
IL_00ab: newobj instance void class [System.Core]System.Func`2<class OpenRA.Traits.ITraitInfo, string>::'.ctor'(object, native int)
IL_00b0: stsfld class [System.Core]System.Func`2<class OpenRA.Traits.ITraitInfo,string> OpenRA.ActorInfo::'<>f__am$cache3'
IL_00b5: ldsfld class [System.Core]System.Func`2<class OpenRA.Traits.ITraitInfo,string> OpenRA.ActorInfo::'<>f__am$cache3'
IL_00ba: call class [mscorlib]System.Collections.Generic.IEnumerable`1<!!1> class [System.Core]System.Linq.Enumerable::Select<class OpenRA.Traits.ITraitInfo, string> (class [mscorlib]System.Collections.Generic.IEnumerable`1<!!0>, class [System.Core]System.Func`2<!!0,!!1>)
IL_00bf: ldstr ","
IL_00c4: call string class [OpenRA.FileFormats]OpenRA.Exts::JoinWith<string> (class [mscorlib]System.Collections.Generic.IEnumerable`1<!!0>, string)
IL_00c9: stelem.ref
IL_00ca: dup
IL_00cb: ldc.i4.2
IL_00cc: ldloc.s 4
IL_00ce: ldsfld class [System.Core]System.Func`2<class [mscorlib]System.Type,string> OpenRA.ActorInfo::'<>f__am$cache4'
IL_00d3: brtrue.s IL_00e6
IL_00d5: ldnull
IL_00d6: ldftn string class OpenRA.ActorInfo::'<TraitsInConstructOrder>m__52'(class [mscorlib]System.Type)
IL_00dc: newobj instance void class [System.Core]System.Func`2<class [mscorlib]System.Type, string>::'.ctor'(object, native int)
IL_00e1: stsfld class [System.Core]System.Func`2<class [mscorlib]System.Type,string> OpenRA.ActorInfo::'<>f__am$cache4'
IL_00e6: ldsfld class [System.Core]System.Func`2<class [mscorlib]System.Type,string> OpenRA.ActorInfo::'<>f__am$cache4'
IL_00eb: call class [mscorlib]System.Collections.Generic.IEnumerable`1<!!1> class [System.Core]System.Linq.Enumerable::Select<class [mscorlib]System.Type, string> (class [mscorlib]System.Collections.Generic.IEnumerable`1<!!0>, class [System.Core]System.Func`2<!!0,!!1>)
IL_00f0: ldstr ","
IL_00f5: call string class [OpenRA.FileFormats]OpenRA.Exts::JoinWith<string> (class [mscorlib]System.Collections.Generic.IEnumerable`1<!!0>, string)
IL_00fa: stelem.ref
IL_00fb: call string class [OpenRA.FileFormats]OpenRA.Exts::F(string, object[])
IL_0100: newobj instance void class [mscorlib]System.InvalidOperationException::'.ctor'(string)
IL_0105: throw
IL_0106: ldloc.1
IL_0107: callvirt instance int32 class [mscorlib]System.Collections.Generic.List`1<class OpenRA.Traits.ITraitInfo>::get_Count()
IL_010c: brtrue IL_0029
IL_0111: ldloc.0
IL_0112: ldfld class [mscorlib]System.Collections.Generic.List`1<class OpenRA.Traits.ITraitInfo> OpenRA.ActorInfo/'<TraitsInConstructOrder>c__AnonStorey2C'::'ret'
IL_0117: ret
} // end of method ActorInfo::TraitsInConstructOrder
// method line 379
.method private static hidebysig
default class [mscorlib]System.Collections.Generic.List`1<class [mscorlib]System.Type> PrerequisitesOf (class OpenRA.Traits.ITraitInfo info) cil managed
{
// Method begins at RVA 0x97bc
// Code size 85 (0x55)
.maxstack 11
IL_0000: ldarg.0
IL_0001: callvirt instance class [mscorlib]System.Type object::GetType()
IL_0006: callvirt instance class [mscorlib]System.Type[] class [mscorlib]System.Type::GetInterfaces()
IL_000b: ldsfld class [System.Core]System.Func`2<class [mscorlib]System.Type,bool> OpenRA.ActorInfo::'<>f__am$cache5'
IL_0010: brtrue.s IL_0023
IL_0012: ldnull
IL_0013: ldftn bool class OpenRA.ActorInfo::'<PrerequisitesOf>m__53'(class [mscorlib]System.Type)
IL_0019: newobj instance void class [System.Core]System.Func`2<class [mscorlib]System.Type, bool>::'.ctor'(object, native int)
IL_001e: stsfld class [System.Core]System.Func`2<class [mscorlib]System.Type,bool> OpenRA.ActorInfo::'<>f__am$cache5'
IL_0023: ldsfld class [System.Core]System.Func`2<class [mscorlib]System.Type,bool> OpenRA.ActorInfo::'<>f__am$cache5'
IL_0028: call class [mscorlib]System.Collections.Generic.IEnumerable`1<!!0> class [System.Core]System.Linq.Enumerable::Where<class [mscorlib]System.Type> (class [mscorlib]System.Collections.Generic.IEnumerable`1<!!0>, class [System.Core]System.Func`2<!!0,bool>)
IL_002d: ldsfld class [System.Core]System.Func`2<class [mscorlib]System.Type,class [mscorlib]System.Type> OpenRA.ActorInfo::'<>f__am$cache6'
IL_0032: brtrue.s IL_0045
IL_0034: ldnull
IL_0035: ldftn class [mscorlib]System.Type class OpenRA.ActorInfo::'<PrerequisitesOf>m__54'(class [mscorlib]System.Type)
IL_003b: newobj instance void class [System.Core]System.Func`2<class [mscorlib]System.Type, class [mscorlib]System.Type>::'.ctor'(object, native int)
IL_0040: stsfld class [System.Core]System.Func`2<class [mscorlib]System.Type,class [mscorlib]System.Type> OpenRA.ActorInfo::'<>f__am$cache6'
IL_0045: ldsfld class [System.Core]System.Func`2<class [mscorlib]System.Type,class [mscorlib]System.Type> OpenRA.ActorInfo::'<>f__am$cache6'
IL_004a: call class [mscorlib]System.Collections.Generic.IEnumerable`1<!!1> class [System.Core]System.Linq.Enumerable::Select<class [mscorlib]System.Type, class [mscorlib]System.Type> (class [mscorlib]System.Collections.Generic.IEnumerable`1<!!0>, class [System.Core]System.Func`2<!!0,!!1>)
IL_004f: call class [mscorlib]System.Collections.Generic.List`1<!!0> class [System.Core]System.Linq.Enumerable::ToList<class [mscorlib]System.Type> (class [mscorlib]System.Collections.Generic.IEnumerable`1<!!0>)
IL_0054: ret
} // end of method ActorInfo::PrerequisitesOf
// method line 380
.method public hidebysig
instance default class [mscorlib]System.Collections.Generic.IEnumerable`1<valuetype [OpenRA.FileFormats]OpenRA.FileFormats.Pair`2<string, class [mscorlib]System.Type>> GetInitKeys () cil managed
{
// Method begins at RVA 0x9820
// Code size 103 (0x67)
.maxstack 13
.locals init (
class [mscorlib]System.Collections.Generic.List`1<class [mscorlib]System.Type> V_0)
IL_0000: ldarg.0
IL_0001: ldfld class [OpenRA.FileFormats]OpenRA.FileFormats.TypeDictionary OpenRA.ActorInfo::Traits
IL_0006: callvirt instance class [mscorlib]System.Collections.Generic.IEnumerable`1<!!0> class [OpenRA.FileFormats]OpenRA.FileFormats.TypeDictionary::WithInterface<class OpenRA.Traits.ITraitInfo> ()
IL_000b: ldsfld class [System.Core]System.Func`2<class OpenRA.Traits.ITraitInfo,class [mscorlib]System.Collections.Generic.IEnumerable`1<class [mscorlib]System.Type>> OpenRA.ActorInfo::'<>f__am$cache7'
IL_0010: brtrue.s IL_0023
IL_0012: ldnull
IL_0013: ldftn class [mscorlib]System.Collections.Generic.IEnumerable`1<class [mscorlib]System.Type> class OpenRA.ActorInfo::'<GetInitKeys>m__55'(class OpenRA.Traits.ITraitInfo)
IL_0019: newobj instance void class [System.Core]System.Func`2<class OpenRA.Traits.ITraitInfo, class [mscorlib]System.Collections.Generic.IEnumerable`1<class [mscorlib]System.Type>>::'.ctor'(object, native int)
IL_001e: stsfld class [System.Core]System.Func`2<class OpenRA.Traits.ITraitInfo,class [mscorlib]System.Collections.Generic.IEnumerable`1<class [mscorlib]System.Type>> OpenRA.ActorInfo::'<>f__am$cache7'
IL_0023: ldsfld class [System.Core]System.Func`2<class OpenRA.Traits.ITraitInfo,class [mscorlib]System.Collections.Generic.IEnumerable`1<class [mscorlib]System.Type>> OpenRA.ActorInfo::'<>f__am$cache7'
IL_0028: call class [mscorlib]System.Collections.Generic.IEnumerable`1<!!1> class [System.Core]System.Linq.Enumerable::SelectMany<class OpenRA.Traits.ITraitInfo, class [mscorlib]System.Type> (class [mscorlib]System.Collections.Generic.IEnumerable`1<!!0>, class [System.Core]System.Func`2<!!0,class [mscorlib]System.Collections.Generic.IEnumerable`1<!!1>>)
IL_002d: call class [mscorlib]System.Collections.Generic.List`1<!!0> class [System.Core]System.Linq.Enumerable::ToList<class [mscorlib]System.Type> (class [mscorlib]System.Collections.Generic.IEnumerable`1<!!0>)
IL_0032: stloc.0
IL_0033: ldloc.0
IL_0034: ldtoken OpenRA.OwnerInit
IL_0039: call class [mscorlib]System.Type class [mscorlib]System.Type::GetTypeFromHandle(valuetype [mscorlib]System.RuntimeTypeHandle)
IL_003e: callvirt instance void class [mscorlib]System.Collections.Generic.List`1<class [mscorlib]System.Type>::Add(!0)
IL_0043: ldloc.0
IL_0044: ldsfld class [System.Core]System.Func`2<class [mscorlib]System.Type,valuetype [OpenRA.FileFormats]OpenRA.FileFormats.Pair`2<string,class [mscorlib]System.Type>> OpenRA.ActorInfo::'<>f__am$cache8'
IL_0049: brtrue.s IL_005c
IL_004b: ldnull
IL_004c: ldftn valuetype [OpenRA.FileFormats]OpenRA.FileFormats.Pair`2<string,class [mscorlib]System.Type> class OpenRA.ActorInfo::'<GetInitKeys>m__56'(class [mscorlib]System.Type)
IL_0052: newobj instance void class [System.Core]System.Func`2<class [mscorlib]System.Type, valuetype [OpenRA.FileFormats]OpenRA.FileFormats.Pair`2<string, class [mscorlib]System.Type>>::'.ctor'(object, native int)
IL_0057: stsfld class [System.Core]System.Func`2<class [mscorlib]System.Type,valuetype [OpenRA.FileFormats]OpenRA.FileFormats.Pair`2<string,class [mscorlib]System.Type>> OpenRA.ActorInfo::'<>f__am$cache8'
IL_005c: ldsfld class [System.Core]System.Func`2<class [mscorlib]System.Type,valuetype [OpenRA.FileFormats]OpenRA.FileFormats.Pair`2<string,class [mscorlib]System.Type>> OpenRA.ActorInfo::'<>f__am$cache8'
IL_0061: call class [mscorlib]System.Collections.Generic.IEnumerable`1<!!1> class [System.Core]System.Linq.Enumerable::Select<class [mscorlib]System.Type, valuetype [OpenRA.FileFormats]OpenRA.FileFormats.Pair`2<string,class [mscorlib]System.Type>> (class [mscorlib]System.Collections.Generic.IEnumerable`1<!!0>, class [System.Core]System.Func`2<!!0,!!1>)
IL_0066: ret
} // end of method ActorInfo::GetInitKeys
// method line 381
.method private static hidebysig
default bool '<MergeWithParent>m__4F' (class [OpenRA.FileFormats]OpenRA.FileFormats.MiniYamlNode a) cil managed
{
.custom instance void class [mscorlib]System.Runtime.CompilerServices.CompilerGeneratedAttribute::'.ctor'() = (01 00 00 00 ) // ....
// Method begins at RVA 0x9894
// Code size 17 (0x11)
.maxstack 8
IL_0000: ldarg.0
IL_0001: ldfld string [OpenRA.FileFormats]OpenRA.FileFormats.MiniYamlNode::Key
IL_0006: ldstr "-"
IL_000b: callvirt instance bool string::StartsWith(string)
IL_0010: ret
} // end of method ActorInfo::<MergeWithParent>m__4F
// method line 382
.method private static hidebysig
default string '<TraitsInConstructOrder>m__51' (class OpenRA.Traits.ITraitInfo x) cil managed
{
.custom instance void class [mscorlib]System.Runtime.CompilerServices.CompilerGeneratedAttribute::'.ctor'() = (01 00 00 00 ) // ....
// Method begins at RVA 0x98a8
// Code size 12 (0xc)
.maxstack 8
IL_0000: ldarg.0
IL_0001: callvirt instance class [mscorlib]System.Type object::GetType()
IL_0006: callvirt instance string class [mscorlib]System.Reflection.MemberInfo::get_Name()
IL_000b: ret
} // end of method ActorInfo::<TraitsInConstructOrder>m__51
// method line 383
.method private static hidebysig
default string '<TraitsInConstructOrder>m__52' (class [mscorlib]System.Type x) cil managed
{
.custom instance void class [mscorlib]System.Runtime.CompilerServices.CompilerGeneratedAttribute::'.ctor'() = (01 00 00 00 ) // ....
// Method begins at RVA 0x98b8
// Code size 7 (0x7)
.maxstack 8
IL_0000: ldarg.0
IL_0001: callvirt instance string class [mscorlib]System.Reflection.MemberInfo::get_Name()
IL_0006: ret
} // end of method ActorInfo::<TraitsInConstructOrder>m__52
// method line 384
.method private static hidebysig
default bool '<PrerequisitesOf>m__53' (class [mscorlib]System.Type t) cil managed
{
.custom instance void class [mscorlib]System.Runtime.CompilerServices.CompilerGeneratedAttribute::'.ctor'() = (01 00 00 00 ) // ....
// Method begins at RVA 0x98c0
// Code size 33 (0x21)
.maxstack 8
IL_0000: ldarg.0
IL_0001: callvirt instance bool class [mscorlib]System.Type::get_IsGenericType()
IL_0006: brfalse IL_001f
IL_000b: ldarg.0
IL_000c: callvirt instance class [mscorlib]System.Type class [mscorlib]System.Type::GetGenericTypeDefinition()
IL_0011: ldtoken OpenRA.Traits.Requires`1
IL_0016: call class [mscorlib]System.Type class [mscorlib]System.Type::GetTypeFromHandle(valuetype [mscorlib]System.RuntimeTypeHandle)
IL_001b: ceq
IL_001d: br.s IL_0020
IL_001f: ldc.i4.0
IL_0020: ret
} // end of method ActorInfo::<PrerequisitesOf>m__53
// method line 385
.method private static hidebysig
default class [mscorlib]System.Type '<PrerequisitesOf>m__54' (class [mscorlib]System.Type t) cil managed
{
.custom instance void class [mscorlib]System.Runtime.CompilerServices.CompilerGeneratedAttribute::'.ctor'() = (01 00 00 00 ) // ....
// Method begins at RVA 0x98f0
// Code size 9 (0x9)
.maxstack 8
IL_0000: ldarg.0
IL_0001: callvirt instance class [mscorlib]System.Type[] class [mscorlib]System.Type::GetGenericArguments()
IL_0006: ldc.i4.0
IL_0007: ldelem.ref
IL_0008: ret
} // end of method ActorInfo::<PrerequisitesOf>m__54
// method line 386
.method private static hidebysig
default class [mscorlib]System.Collections.Generic.IEnumerable`1<class [mscorlib]System.Type> '<GetInitKeys>m__55' (class OpenRA.Traits.ITraitInfo t) cil managed
{
.custom instance void class [mscorlib]System.Runtime.CompilerServices.CompilerGeneratedAttribute::'.ctor'() = (01 00 00 00 ) // ....
// Method begins at RVA 0x98fc
// Code size 80 (0x50)
.maxstack 11
IL_0000: ldarg.0
IL_0001: callvirt instance class [mscorlib]System.Type object::GetType()
IL_0006: callvirt instance class [mscorlib]System.Type[] class [mscorlib]System.Type::GetInterfaces()
IL_000b: ldsfld class [System.Core]System.Func`2<class [mscorlib]System.Type,bool> OpenRA.ActorInfo::'<>f__am$cache9'
IL_0010: brtrue.s IL_0023
IL_0012: ldnull
IL_0013: ldftn bool class OpenRA.ActorInfo::'<GetInitKeys>m__57'(class [mscorlib]System.Type)
IL_0019: newobj instance void class [System.Core]System.Func`2<class [mscorlib]System.Type, bool>::'.ctor'(object, native int)
IL_001e: stsfld class [System.Core]System.Func`2<class [mscorlib]System.Type,bool> OpenRA.ActorInfo::'<>f__am$cache9'
IL_0023: ldsfld class [System.Core]System.Func`2<class [mscorlib]System.Type,bool> OpenRA.ActorInfo::'<>f__am$cache9'
IL_0028: call class [mscorlib]System.Collections.Generic.IEnumerable`1<!!0> class [System.Core]System.Linq.Enumerable::Where<class [mscorlib]System.Type> (class [mscorlib]System.Collections.Generic.IEnumerable`1<!!0>, class [System.Core]System.Func`2<!!0,bool>)
IL_002d: ldsfld class [System.Core]System.Func`2<class [mscorlib]System.Type,class [mscorlib]System.Type> OpenRA.ActorInfo::'<>f__am$cacheA'
IL_0032: brtrue.s IL_0045
IL_0034: ldnull
IL_0035: ldftn class [mscorlib]System.Type class OpenRA.ActorInfo::'<GetInitKeys>m__58'(class [mscorlib]System.Type)
IL_003b: newobj instance void class [System.Core]System.Func`2<class [mscorlib]System.Type, class [mscorlib]System.Type>::'.ctor'(object, native int)
IL_0040: stsfld class [System.Core]System.Func`2<class [mscorlib]System.Type,class [mscorlib]System.Type> OpenRA.ActorInfo::'<>f__am$cacheA'
IL_0045: ldsfld class [System.Core]System.Func`2<class [mscorlib]System.Type,class [mscorlib]System.Type> OpenRA.ActorInfo::'<>f__am$cacheA'
IL_004a: call class [mscorlib]System.Collections.Generic.IEnumerable`1<!!1> class [System.Core]System.Linq.Enumerable::Select<class [mscorlib]System.Type, class [mscorlib]System.Type> (class [mscorlib]System.Collections.Generic.IEnumerable`1<!!0>, class [System.Core]System.Func`2<!!0,!!1>)
IL_004f: ret
} // end of method ActorInfo::<GetInitKeys>m__55
// method line 387
.method private static hidebysig
default valuetype [OpenRA.FileFormats]OpenRA.FileFormats.Pair`2<string, class [mscorlib]System.Type> '<GetInitKeys>m__56' (class [mscorlib]System.Type i) cil managed
{
.custom instance void class [mscorlib]System.Runtime.CompilerServices.CompilerGeneratedAttribute::'.ctor'() = (01 00 00 00 ) // ....
// Method begins at RVA 0x9958
// Code size 28 (0x1c)
.maxstack 8
IL_0000: ldarg.0
IL_0001: callvirt instance string class [mscorlib]System.Reflection.MemberInfo::get_Name()
IL_0006: ldstr "Init"
IL_000b: ldstr ""
IL_0010: callvirt instance string string::Replace(string, string)
IL_0015: ldarg.0
IL_0016: call valuetype [OpenRA.FileFormats]OpenRA.FileFormats.Pair`2<!!0,!!1> class [OpenRA.FileFormats]OpenRA.FileFormats.Pair::New<string, class [mscorlib]System.Type> (!!0, !!1)
IL_001b: ret
} // end of method ActorInfo::<GetInitKeys>m__56
// method line 388
.method private static hidebysig
default bool '<GetInitKeys>m__57' (class [mscorlib]System.Type i) cil managed
{
.custom instance void class [mscorlib]System.Runtime.CompilerServices.CompilerGeneratedAttribute::'.ctor'() = (01 00 00 00 ) // ....
// Method begins at RVA 0x9978
// Code size 33 (0x21)
.maxstack 8
IL_0000: ldarg.0
IL_0001: callvirt instance bool class [mscorlib]System.Type::get_IsGenericType()
IL_0006: brfalse IL_001f
IL_000b: ldarg.0
IL_000c: callvirt instance class [mscorlib]System.Type class [mscorlib]System.Type::GetGenericTypeDefinition()
IL_0011: ldtoken OpenRA.Traits.UsesInit`1
IL_0016: call class [mscorlib]System.Type class [mscorlib]System.Type::GetTypeFromHandle(valuetype [mscorlib]System.RuntimeTypeHandle)
IL_001b: ceq
IL_001d: br.s IL_0020
IL_001f: ldc.i4.0
IL_0020: ret
} // end of method ActorInfo::<GetInitKeys>m__57
// method line 389
.method private static hidebysig
default class [mscorlib]System.Type '<GetInitKeys>m__58' (class [mscorlib]System.Type i) cil managed
{
.custom instance void class [mscorlib]System.Runtime.CompilerServices.CompilerGeneratedAttribute::'.ctor'() = (01 00 00 00 ) // ....
// Method begins at RVA 0x99a8
// Code size 9 (0x9)
.maxstack 8
IL_0000: ldarg.0
IL_0001: callvirt instance class [mscorlib]System.Type[] class [mscorlib]System.Type::GetGenericArguments()
IL_0006: ldc.i4.0
IL_0007: ldelem.ref
IL_0008: ret
} // end of method ActorInfo::<GetInitKeys>m__58
.class nested private auto ansi sealed beforefieldinit '<TraitsInConstructOrder>c__AnonStorey2C'
extends [mscorlib]System.Object
{
.custom instance void class [mscorlib]System.Runtime.CompilerServices.CompilerGeneratedAttribute::'.ctor'() = (01 00 00 00 ) // ....
.field assembly class [mscorlib]System.Collections.Generic.List`1<class OpenRA.Traits.ITraitInfo> 'ret'
// method line 2133
.method public hidebysig specialname rtspecialname
instance default void '.ctor' () cil managed
{
// Method begins at RVA 0x2befc
// Code size 7 (0x7)
.maxstack 8
IL_0000: ldarg.0
IL_0001: call instance void object::'.ctor'()
IL_0006: ret
} // end of method <TraitsInConstructOrder>c__AnonStorey2C::.ctor
// method line 2134
.method assembly hidebysig
instance default bool '<>m__50' (class [mscorlib]System.Type n) cil managed
{
// Method begins at RVA 0x2bf04
// Code size 47 (0x2f)
.maxstack 5
.locals init (
class OpenRA.ActorInfo/'<TraitsInConstructOrder>c__AnonStorey2C'/'<TraitsInConstructOrder>c__AnonStorey2D' V_0)
IL_0000: newobj instance void class OpenRA.ActorInfo/'<TraitsInConstructOrder>c__AnonStorey2C'/'<TraitsInConstructOrder>c__AnonStorey2D'::'.ctor'()
IL_0005: stloc.0
IL_0006: ldloc.0
IL_0007: ldarg.0
IL_0008: stfld class OpenRA.ActorInfo/'<TraitsInConstructOrder>c__AnonStorey2C' OpenRA.ActorInfo/'<TraitsInConstructOrder>c__AnonStorey2C'/'<TraitsInConstructOrder>c__AnonStorey2D'::'<>f__ref$44'
IL_000d: ldloc.0
IL_000e: ldarg.1
IL_000f: stfld class [mscorlib]System.Type OpenRA.ActorInfo/'<TraitsInConstructOrder>c__AnonStorey2C'/'<TraitsInConstructOrder>c__AnonStorey2D'::n
IL_0014: ldarg.0
IL_0015: ldfld class [mscorlib]System.Collections.Generic.List`1<class OpenRA.Traits.ITraitInfo> OpenRA.ActorInfo/'<TraitsInConstructOrder>c__AnonStorey2C'::'ret'
IL_001a: ldloc.0
IL_001b: ldftn instance bool class OpenRA.ActorInfo/'<TraitsInConstructOrder>c__AnonStorey2C'/'<TraitsInConstructOrder>c__AnonStorey2D'::'<>m__59'(class OpenRA.Traits.ITraitInfo)
IL_0021: newobj instance void class [System.Core]System.Func`2<class OpenRA.Traits.ITraitInfo, bool>::'.ctor'(object, native int)
IL_0026: call bool class [System.Core]System.Linq.Enumerable::Any<class OpenRA.Traits.ITraitInfo> (class [mscorlib]System.Collections.Generic.IEnumerable`1<!!0>, class [System.Core]System.Func`2<!!0,bool>)
IL_002b: ldc.i4.0
IL_002c: ceq
IL_002e: ret
} // end of method <TraitsInConstructOrder>c__AnonStorey2C::<>m__50
.class nested private auto ansi sealed beforefieldinit '<TraitsInConstructOrder>c__AnonStorey2D'
extends [mscorlib]System.Object
{
.field assembly class [mscorlib]System.Type n
.field assembly class OpenRA.ActorInfo/'<TraitsInConstructOrder>c__AnonStorey2C' '<>f__ref$44'
// method line 2135
.method public hidebysig specialname rtspecialname
instance default void '.ctor' () cil managed
{
// Method begins at RVA 0x2bf40
// Code size 7 (0x7)
.maxstack 8
IL_0000: ldarg.0
IL_0001: call instance void object::'.ctor'()
IL_0006: ret
} // end of method <TraitsInConstructOrder>c__AnonStorey2D::.ctor
// method line 2136
.method assembly hidebysig
instance default bool '<>m__59' (class OpenRA.Traits.ITraitInfo x) cil managed
{
// Method begins at RVA 0x2bf48
// Code size 38 (0x26)
.maxstack 8
IL_0000: ldarg.1
IL_0001: callvirt instance class [mscorlib]System.Type object::GetType()
IL_0006: ldarg.0
IL_0007: ldfld class [mscorlib]System.Type OpenRA.ActorInfo/'<TraitsInConstructOrder>c__AnonStorey2C'/'<TraitsInConstructOrder>c__AnonStorey2D'::n
IL_000c: beq IL_0024
IL_0011: ldarg.0
IL_0012: ldfld class [mscorlib]System.Type OpenRA.ActorInfo/'<TraitsInConstructOrder>c__AnonStorey2C'/'<TraitsInConstructOrder>c__AnonStorey2D'::n
IL_0017: ldarg.1
IL_0018: callvirt instance class [mscorlib]System.Type object::GetType()
IL_001d: callvirt instance bool class [mscorlib]System.Type::IsAssignableFrom(class [mscorlib]System.Type)
IL_0022: br.s IL_0025
IL_0024: ldc.i4.1
IL_0025: ret
} // end of method <TraitsInConstructOrder>c__AnonStorey2D::<>m__59
} // end of class <TraitsInConstructOrder>c__AnonStorey2D
} // end of class <TraitsInConstructOrder>c__AnonStorey2C
} // end of class OpenRA.ActorInfo
}
.namespace OpenRA
{
.class public sequential ansi sealed beforefieldinit CPos
extends [mscorlib]System.ValueType
{
.field public initonly int32 X
.field public initonly int32 Y
.field public static initonly valuetype OpenRA.CPos Zero
// method line 390
.method public hidebysig specialname rtspecialname
instance default void '.ctor' (int32 x, int32 y) cil managed
{
// Method begins at RVA 0x99b4
// Code size 15 (0xf)
.maxstack 8
IL_0000: ldarg.0
IL_0001: ldarg.1
IL_0002: stfld int32 OpenRA.CPos::X
IL_0007: ldarg.0
IL_0008: ldarg.2
IL_0009: stfld int32 OpenRA.CPos::Y
IL_000e: ret
} // end of method CPos::.ctor
// method line 391
.method private static specialname rtspecialname
default void '.cctor' () cil managed
{
// Method begins at RVA 0x99c4
// Code size 13 (0xd)
.maxstack 8
IL_0000: ldc.i4.0
IL_0001: ldc.i4.0
IL_0002: newobj instance void valuetype OpenRA.CPos::'.ctor'(int32, int32)
IL_0007: stsfld valuetype OpenRA.CPos OpenRA.CPos::Zero
IL_000c: ret
} // end of method CPos::.cctor
// method line 392
.method public static hidebysig
default valuetype OpenRA.CPos Max (valuetype OpenRA.CPos a, valuetype OpenRA.CPos b) cil managed
{
// Method begins at RVA 0x99d4
// Code size 44 (0x2c)
.maxstack 8
IL_0000: ldarga.s 0
IL_0002: ldfld int32 OpenRA.CPos::X
IL_0007: ldarga.s 1
IL_0009: ldfld int32 OpenRA.CPos::X
IL_000e: call int32 class [mscorlib]System.Math::Max(int32, int32)
IL_0013: ldarga.s 0
IL_0015: ldfld int32 OpenRA.CPos::Y
IL_001a: ldarga.s 1
IL_001c: ldfld int32 OpenRA.CPos::Y
IL_0021: call int32 class [mscorlib]System.Math::Max(int32, int32)
IL_0026: newobj instance void valuetype OpenRA.CPos::'.ctor'(int32, int32)
IL_002b: ret
} // end of method CPos::Max
// method line 393
.method public static hidebysig
default valuetype OpenRA.CPos Min (valuetype OpenRA.CPos a, valuetype OpenRA.CPos b) cil managed
{
// Method begins at RVA 0x9a04
// Code size 44 (0x2c)
.maxstack 8
IL_0000: ldarga.s 0
IL_0002: ldfld int32 OpenRA.CPos::X
IL_0007: ldarga.s 1
IL_0009: ldfld int32 OpenRA.CPos::X
IL_000e: call int32 class [mscorlib]System.Math::Min(int32, int32)
IL_0013: ldarga.s 0
IL_0015: ldfld int32 OpenRA.CPos::Y
IL_001a: ldarga.s 1
IL_001c: ldfld int32 OpenRA.CPos::Y
IL_0021: call int32 class [mscorlib]System.Math::Min(int32, int32)
IL_0026: newobj instance void valuetype OpenRA.CPos::'.ctor'(int32, int32)
IL_002b: ret
} // end of method CPos::Min
// method line 394
.method public hidebysig
instance default valuetype [OpenRA.FileFormats]OpenRA.float2 ToFloat2 () cil managed
{
// Method begins at RVA 0x9a34
// Code size 20 (0x14)
.maxstack 8
IL_0000: ldarg.0
IL_0001: ldfld int32 OpenRA.CPos::X
IL_0006: conv.r4
IL_0007: ldarg.0
IL_0008: ldfld int32 OpenRA.CPos::Y
IL_000d: conv.r4
IL_000e: newobj instance void valuetype [OpenRA.FileFormats]OpenRA.float2::'.ctor'(float32, float32)
IL_0013: ret
} // end of method CPos::ToFloat2
// method line 395
.method public hidebysig
instance default valuetype [OpenRA.FileFormats]OpenRA.int2 ToInt2 () cil managed
{
// Method begins at RVA 0x9a4c
// Code size 18 (0x12)
.maxstack 8
IL_0000: ldarg.0
IL_0001: ldfld int32 OpenRA.CPos::X
IL_0006: ldarg.0
IL_0007: ldfld int32 OpenRA.CPos::Y
IL_000c: newobj instance void valuetype [OpenRA.FileFormats]OpenRA.int2::'.ctor'(int32, int32)
IL_0011: ret
} // end of method CPos::ToInt2
// method line 396
.method public hidebysig specialname
instance default valuetype [OpenRA.FileFormats]OpenRA.WPos get_CenterPosition () cil managed
{
// Method begins at RVA 0x9a60
// Code size 43 (0x2b)
.maxstack 4
IL_0000: ldc.i4 1024
IL_0005: ldarg.0
IL_0006: ldfld int32 OpenRA.CPos::X
IL_000b: mul
IL_000c: ldc.i4 512
IL_0011: add
IL_0012: ldc.i4 1024
IL_0017: ldarg.0
IL_0018: ldfld int32 OpenRA.CPos::Y
IL_001d: mul
IL_001e: ldc.i4 512
IL_0023: add
IL_0024: ldc.i4.0
IL_0025: newobj instance void valuetype [OpenRA.FileFormats]OpenRA.WPos::'.ctor'(int32, int32, int32)
IL_002a: ret
} // end of method CPos::get_CenterPosition
// method line 397
.method public hidebysig specialname
instance default valuetype [OpenRA.FileFormats]OpenRA.WPos get_TopLeft () cil managed
{
// Method begins at RVA 0x9a98
// Code size 31 (0x1f)
.maxstack 8
IL_0000: ldc.i4 1024
IL_0005: ldarg.0
IL_0006: ldfld int32 OpenRA.CPos::X
IL_000b: mul
IL_000c: ldc.i4 1024
IL_0011: ldarg.0
IL_0012: ldfld int32 OpenRA.CPos::Y
IL_0017: mul
IL_0018: ldc.i4.0
IL_0019: newobj instance void valuetype [OpenRA.FileFormats]OpenRA.WPos::'.ctor'(int32, int32, int32)
IL_001e: ret
} // end of method CPos::get_TopLeft
// method line 398
.method public hidebysig specialname
instance default valuetype [OpenRA.FileFormats]OpenRA.WPos get_BottomRight () cil managed
{
// Method begins at RVA 0x9ab8
// Code size 43 (0x2b)
.maxstack 4
IL_0000: ldc.i4 1024
IL_0005: ldarg.0
IL_0006: ldfld int32 OpenRA.CPos::X
IL_000b: mul
IL_000c: ldc.i4 1023
IL_0011: add
IL_0012: ldc.i4 1024
IL_0017: ldarg.0
IL_0018: ldfld int32 OpenRA.CPos::Y
IL_001d: mul
IL_001e: ldc.i4 1023
IL_0023: add
IL_0024: ldc.i4.0
IL_0025: newobj instance void valuetype [OpenRA.FileFormats]OpenRA.WPos::'.ctor'(int32, int32, int32)
IL_002a: ret
} // end of method CPos::get_BottomRight
// method line 399
.method public hidebysig
instance default valuetype OpenRA.CPos Clamp (valuetype [System.Drawing]System.Drawing.Rectangle r) cil managed
{
// Method begins at RVA 0x9af0
// Code size 66 (0x42)
.maxstack 15
IL_0000: ldarga.s 1
IL_0002: call instance int32 valuetype [System.Drawing]System.Drawing.Rectangle::get_Right()
IL_0007: ldarg.0
IL_0008: ldfld int32 OpenRA.CPos::X
IL_000d: ldarga.s 1
IL_000f: call instance int32 valuetype [System.Drawing]System.Drawing.Rectangle::get_Left()
IL_0014: call int32 class [mscorlib]System.Math::Max(int32, int32)
IL_0019: call int32 class [mscorlib]System.Math::Min(int32, int32)
IL_001e: ldarga.s 1
IL_0020: call instance int32 valuetype [System.Drawing]System.Drawing.Rectangle::get_Bottom()
IL_0025: ldarg.0
IL_0026: ldfld int32 OpenRA.CPos::Y
IL_002b: ldarga.s 1
IL_002d: call instance int32 valuetype [System.Drawing]System.Drawing.Rectangle::get_Top()
IL_0032: call int32 class [mscorlib]System.Math::Max(int32, int32)
IL_0037: call int32 class [mscorlib]System.Math::Min(int32, int32)
IL_003c: newobj instance void valuetype OpenRA.CPos::'.ctor'(int32, int32)
IL_0041: ret
} // end of method CPos::Clamp
// method line 400
.method public virtual hidebysig
instance default int32 GetHashCode () cil managed
{
// Method begins at RVA 0x9b40
// Code size 30 (0x1e)
.maxstack 7
.locals init (
int32 V_0,
int32 V_1)
IL_0000: ldarg.0
IL_0001: ldfld int32 OpenRA.CPos::X
IL_0006: stloc.0
IL_0007: ldloca.s 0
IL_0009: call instance int32 int32::GetHashCode()
IL_000e: ldarg.0
IL_000f: ldfld int32 OpenRA.CPos::Y
IL_0014: stloc.1
IL_0015: ldloca.s 1
IL_0017: call instance int32 int32::GetHashCode()
IL_001c: xor
IL_001d: ret
} // end of method CPos::GetHashCode
// method line 401
.method public virtual hidebysig
instance default bool Equals (object obj) cil managed
{
// Method begins at RVA 0x9b6c
// Code size 28 (0x1c)
.maxstack 4
.locals init (
valuetype OpenRA.CPos V_0)
IL_0000: ldarg.1
IL_0001: brtrue IL_0008
IL_0006: ldc.i4.0
IL_0007: ret
IL_0008: ldarg.1
IL_0009: unbox.any OpenRA.CPos
IL_000e: stloc.0
IL_000f: ldloc.0
IL_0010: ldarg.0
IL_0011: ldobj OpenRA.CPos
IL_0016: call bool valuetype OpenRA.CPos::op_Equality(valuetype OpenRA.CPos, valuetype OpenRA.CPos)
IL_001b: ret
} // end of method CPos::Equals
// method line 402
.method public virtual hidebysig
instance default string ToString () cil managed
{
// Method begins at RVA 0x9b94
// Code size 45 (0x2d)
.maxstack 6
IL_0000: ldstr "{0},{1}"
IL_0005: ldc.i4.2
IL_0006: newarr [mscorlib]System.Object
IL_000b: dup
IL_000c: ldc.i4.0
IL_000d: ldarg.0
IL_000e: ldfld int32 OpenRA.CPos::X
IL_0013: box [mscorlib]System.Int32
IL_0018: stelem.ref
IL_0019: dup
IL_001a: ldc.i4.1
IL_001b: ldarg.0
IL_001c: ldfld int32 OpenRA.CPos::Y
IL_0021: box [mscorlib]System.Int32
IL_0026: stelem.ref
IL_0027: call string class [OpenRA.FileFormats]OpenRA.Exts::F(string, object[])
IL_002c: ret
} // end of method CPos::ToString
// method line 403
.method public static hidebysig specialname
default valuetype OpenRA.CPos op_Explicit (valuetype [OpenRA.FileFormats]OpenRA.int2 a) cil managed
{
// Method begins at RVA 0x9bd0
// Code size 20 (0x14)
.maxstack 8
IL_0000: ldarga.s 0
IL_0002: ldfld int32 [OpenRA.FileFormats]OpenRA.int2::X
IL_0007: ldarga.s 0
IL_0009: ldfld int32 [OpenRA.FileFormats]OpenRA.int2::Y
IL_000e: newobj instance void valuetype OpenRA.CPos::'.ctor'(int32, int32)
IL_0013: ret
} // end of method CPos::op_Explicit
// method line 404
.method public static hidebysig specialname
default valuetype OpenRA.CPos op_Addition (valuetype OpenRA.CVec a, valuetype OpenRA.CPos b) cil managed
{
// Method begins at RVA 0x9be8
// Code size 36 (0x24)
.maxstack 8
IL_0000: ldarga.s 0
IL_0002: ldfld int32 OpenRA.CVec::X
IL_0007: ldarga.s 1
IL_0009: ldfld int32 OpenRA.CPos::X
IL_000e: add
IL_000f: ldarga.s 0
IL_0011: ldfld int32 OpenRA.CVec::Y
IL_0016: ldarga.s 1
IL_0018: ldfld int32 OpenRA.CPos::Y
IL_001d: add
IL_001e: newobj instance void valuetype OpenRA.CPos::'.ctor'(int32, int32)
IL_0023: ret
} // end of method CPos::op_Addition
// method line 405
.method public static hidebysig specialname
default valuetype OpenRA.CPos op_Addition (valuetype OpenRA.CPos a, valuetype OpenRA.CVec b) cil managed
{
// Method begins at RVA 0x9c10
// Code size 36 (0x24)
.maxstack 8
IL_0000: ldarga.s 0
IL_0002: ldfld int32 OpenRA.CPos::X
IL_0007: ldarga.s 1
IL_0009: ldfld int32 OpenRA.CVec::X
IL_000e: add
IL_000f: ldarga.s 0
IL_0011: ldfld int32 OpenRA.CPos::Y
IL_0016: ldarga.s 1
IL_0018: ldfld int32 OpenRA.CVec::Y
IL_001d: add
IL_001e: newobj instance void valuetype OpenRA.CPos::'.ctor'(int32, int32)
IL_0023: ret
} // end of method CPos::op_Addition
// method line 406
.method public static hidebysig specialname
default valuetype OpenRA.CPos op_Subtraction (valuetype OpenRA.CPos a, valuetype OpenRA.CVec b) cil managed
{
// Method begins at RVA 0x9c38
// Code size 36 (0x24)
.maxstack 8
IL_0000: ldarga.s 0
IL_0002: ldfld int32 OpenRA.CPos::X
IL_0007: ldarga.s 1
IL_0009: ldfld int32 OpenRA.CVec::X
IL_000e: sub
IL_000f: ldarga.s 0
IL_0011: ldfld int32 OpenRA.CPos::Y
IL_0016: ldarga.s 1
IL_0018: ldfld int32 OpenRA.CVec::Y
IL_001d: sub
IL_001e: newobj instance void valuetype OpenRA.CPos::'.ctor'(int32, int32)
IL_0023: ret
} // end of method CPos::op_Subtraction
// method line 407
.method public static hidebysig specialname
default valuetype OpenRA.CVec op_Subtraction (valuetype OpenRA.CPos a, valuetype OpenRA.CPos b) cil managed
{
// Method begins at RVA 0x9c60
// Code size 36 (0x24)
.maxstack 8
IL_0000: ldarga.s 0
IL_0002: ldfld int32 OpenRA.CPos::X
IL_0007: ldarga.s 1
IL_0009: ldfld int32 OpenRA.CPos::X
IL_000e: sub
IL_000f: ldarga.s 0
IL_0011: ldfld int32 OpenRA.CPos::Y
IL_0016: ldarga.s 1
IL_0018: ldfld int32 OpenRA.CPos::Y
IL_001d: sub
IL_001e: newobj instance void valuetype OpenRA.CVec::'.ctor'(int32, int32)
IL_0023: ret
} // end of method CPos::op_Subtraction
// method line 408
.method public static hidebysig specialname
default bool op_Equality (valuetype OpenRA.CPos me, valuetype OpenRA.CPos other) cil managed
{
// Method begins at RVA 0x9c88
// Code size 39 (0x27)
.maxstack 3
IL_0000: ldarga.s 0
IL_0002: ldfld int32 OpenRA.CPos::X
IL_0007: ldarga.s 1
IL_0009: ldfld int32 OpenRA.CPos::X
IL_000e: bne.un IL_0025
IL_0013: ldarga.s 0
IL_0015: ldfld int32 OpenRA.CPos::Y
IL_001a: ldarga.s 1
IL_001c: ldfld int32 OpenRA.CPos::Y
IL_0021: ceq
IL_0023: br.s IL_0026
IL_0025: ldc.i4.0
IL_0026: ret
} // end of method CPos::op_Equality
// method line 409
.method public static hidebysig specialname
default bool op_Inequality (valuetype OpenRA.CPos me, valuetype OpenRA.CPos other) cil managed
{
// Method begins at RVA 0x9cbc
// Code size 11 (0xb)
.maxstack 8
IL_0000: ldarg.0
IL_0001: ldarg.1
IL_0002: call bool valuetype OpenRA.CPos::op_Equality(valuetype OpenRA.CPos, valuetype OpenRA.CPos)
IL_0007: ldc.i4.0
IL_0008: ceq
IL_000a: ret
} // end of method CPos::op_Inequality
.property instance valuetype [OpenRA.FileFormats]OpenRA.WPos CenterPosition ()
{
.get instance default valuetype [OpenRA.FileFormats]OpenRA.WPos OpenRA.CPos::get_CenterPosition ()
}
.property instance valuetype [OpenRA.FileFormats]OpenRA.WPos TopLeft ()
{
.get instance default valuetype [OpenRA.FileFormats]OpenRA.WPos OpenRA.CPos::get_TopLeft ()
}
.property instance valuetype [OpenRA.FileFormats]OpenRA.WPos BottomRight ()
{
.get instance default valuetype [OpenRA.FileFormats]OpenRA.WPos OpenRA.CPos::get_BottomRight ()
}
} // end of class OpenRA.CPos
}
.namespace OpenRA
{
.class public auto ansi abstract sealed beforefieldinit RectangleExtensions
extends [mscorlib]System.Object
{
.custom instance void class [System.Core]System.Runtime.CompilerServices.ExtensionAttribute::'.ctor'() = (01 00 00 00 ) // ....
// method line 410
.method public static hidebysig
default valuetype OpenRA.CPos TopLeftAsCPos (valuetype [System.Drawing]System.Drawing.Rectangle r) cil managed
{
.custom instance void class [System.Core]System.Runtime.CompilerServices.ExtensionAttribute::'.ctor'() = (01 00 00 00 ) // ....
// Method begins at RVA 0x9cc8
// Code size 20 (0x14)
.maxstack 8
IL_0000: ldarga.s 0
IL_0002: call instance int32 valuetype [System.Drawing]System.Drawing.Rectangle::get_Left()
IL_0007: ldarga.s 0
IL_0009: call instance int32 valuetype [System.Drawing]System.Drawing.Rectangle::get_Top()
IL_000e: newobj instance void valuetype OpenRA.CPos::'.ctor'(int32, int32)
IL_0013: ret
} // end of method RectangleExtensions::TopLeftAsCPos
// method line 411
.method public static hidebysig
default valuetype OpenRA.CPos BottomRightAsCPos (valuetype [System.Drawing]System.Drawing.Rectangle r) cil managed
{
.custom instance void class [System.Core]System.Runtime.CompilerServices.ExtensionAttribute::'.ctor'() = (01 00 00 00 ) // ....
// Method begins at RVA 0x9ce0
// Code size 20 (0x14)
.maxstack 8
IL_0000: ldarga.s 0
IL_0002: call instance int32 valuetype [System.Drawing]System.Drawing.Rectangle::get_Right()
IL_0007: ldarga.s 0
IL_0009: call instance int32 valuetype [System.Drawing]System.Drawing.Rectangle::get_Bottom()
IL_000e: newobj instance void valuetype OpenRA.CPos::'.ctor'(int32, int32)
IL_0013: ret
} // end of method RectangleExtensions::BottomRightAsCPos
} // end of class OpenRA.RectangleExtensions
}
.namespace OpenRA
{
.class public auto ansi abstract sealed beforefieldinit WorldCoordinateExtensions
extends [mscorlib]System.Object
{
.custom instance void class [System.Core]System.Runtime.CompilerServices.ExtensionAttribute::'.ctor'() = (01 00 00 00 ) // ....
// method line 412
.method public static hidebysig
default valuetype OpenRA.CPos ToCPos (valuetype [OpenRA.FileFormats]OpenRA.WPos a) cil managed
{
.custom instance void class [System.Core]System.Runtime.CompilerServices.ExtensionAttribute::'.ctor'() = (01 00 00 00 ) // ....
// Method begins at RVA 0x9cf8
// Code size 32 (0x20)
.maxstack 8
IL_0000: ldarga.s 0
IL_0002: ldfld int32 [OpenRA.FileFormats]OpenRA.WPos::X
IL_0007: ldc.i4 1024
IL_000c: div
IL_000d: ldarga.s 0
IL_000f: ldfld int32 [OpenRA.FileFormats]OpenRA.WPos::Y
IL_0014: ldc.i4 1024
IL_0019: div
IL_001a: newobj instance void valuetype OpenRA.CPos::'.ctor'(int32, int32)
IL_001f: ret
} // end of method WorldCoordinateExtensions::ToCPos
// method line 413
.method public static hidebysig
default valuetype OpenRA.CVec ToCVec (valuetype [OpenRA.FileFormats]OpenRA.WVec a) cil managed
{
.custom instance void class [System.Core]System.Runtime.CompilerServices.ExtensionAttribute::'.ctor'() = (01 00 00 00 ) // ....
// Method begins at RVA 0x9d1c
// Code size 32 (0x20)
.maxstack 8
IL_0000: ldarga.s 0
IL_0002: ldfld int32 [OpenRA.FileFormats]OpenRA.WVec::X
IL_0007: ldc.i4 1024
IL_000c: div
IL_000d: ldarga.s 0
IL_000f: ldfld int32 [OpenRA.FileFormats]OpenRA.WVec::Y
IL_0014: ldc.i4 1024
IL_0019: div
IL_001a: newobj instance void valuetype OpenRA.CVec::'.ctor'(int32, int32)
IL_001f: ret
} // end of method WorldCoordinateExtensions::ToCVec
} // end of class OpenRA.WorldCoordinateExtensions
}
.namespace OpenRA
{
.class public auto ansi beforefieldinit ObjectCreator
extends [mscorlib]System.Object
{
.field private valuetype [OpenRA.FileFormats]OpenRA.FileFormats.Pair`2<class [mscorlib]System.Reflection.Assembly, string>[] modAssemblies
.field public static class [mscorlib]System.Action`1<string> MissingTypeAction
.field private static class [System.Core]System.Func`2<string,valuetype [OpenRA.FileFormats]OpenRA.FileFormats.Pair`2<class [mscorlib]System.Reflection.Assembly,string>> '<>f__am$cache2'
.custom instance void class [mscorlib]System.Runtime.CompilerServices.CompilerGeneratedAttribute::'.ctor'() = (01 00 00 00 ) // ....
.field private static class [mscorlib]System.Action`1<string> '<>f__am$cache3'
.custom instance void class [mscorlib]System.Runtime.CompilerServices.CompilerGeneratedAttribute::'.ctor'() = (01 00 00 00 ) // ....
// method line 414
.method public hidebysig specialname rtspecialname
instance default void '.ctor' (class [OpenRA.FileFormats]OpenRA.FileFormats.Manifest manifest) cil managed
{
// Method begins at RVA 0x9d40
// Code size 171 (0xab)
.maxstack 20
.locals init (
class [mscorlib]System.Collections.Generic.List`1<valuetype [OpenRA.FileFormats]OpenRA.FileFormats.Pair`2<class [mscorlib]System.Reflection.Assembly, string>> V_0,
string[] V_1,
int32 V_2,
string V_3,
class OpenRA.ObjectCreator/'<ObjectCreator>c__AnonStorey2E' V_4)
IL_0000: ldarg.0
IL_0001: call instance void object::'.ctor'()
IL_0006: ldtoken OpenRA.Game
IL_000b: call class [mscorlib]System.Type class [mscorlib]System.Type::GetTypeFromHandle(valuetype [mscorlib]System.RuntimeTypeHandle)
IL_0010: callvirt instance class [mscorlib]System.Reflection.Assembly class [mscorlib]System.Type::get_Assembly()
IL_0015: call class [mscorlib]System.Collections.Generic.IEnumerable`1<string> class [OpenRA.FileFormats]OpenRA.Exts::GetNamespaces(class [mscorlib]System.Reflection.Assembly)
IL_001a: ldsfld class [System.Core]System.Func`2<string,valuetype [OpenRA.FileFormats]OpenRA.FileFormats.Pair`2<class [mscorlib]System.Reflection.Assembly,string>> OpenRA.ObjectCreator::'<>f__am$cache2'
IL_001f: brtrue.s IL_0032
IL_0021: ldnull
IL_0022: ldftn valuetype [OpenRA.FileFormats]OpenRA.FileFormats.Pair`2<class [mscorlib]System.Reflection.Assembly,string> class OpenRA.ObjectCreator::'<ObjectCreator>m__5A'(string)
IL_0028: newobj instance void class [System.Core]System.Func`2<string, valuetype [OpenRA.FileFormats]OpenRA.FileFormats.Pair`2<class [mscorlib]System.Reflection.Assembly, string>>::'.ctor'(object, native int)
IL_002d: stsfld class [System.Core]System.Func`2<string,valuetype [OpenRA.FileFormats]OpenRA.FileFormats.Pair`2<class [mscorlib]System.Reflection.Assembly,string>> OpenRA.ObjectCreator::'<>f__am$cache2'
IL_0032: ldsfld class [System.Core]System.Func`2<string,valuetype [OpenRA.FileFormats]OpenRA.FileFormats.Pair`2<class [mscorlib]System.Reflection.Assembly,string>> OpenRA.ObjectCreator::'<>f__am$cache2'
IL_0037: call class [mscorlib]System.Collections.Generic.IEnumerable`1<!!1> class [System.Core]System.Linq.Enumerable::Select<string, valuetype [OpenRA.FileFormats]OpenRA.FileFormats.Pair`2<class [mscorlib]System.Reflection.Assembly,string>> (class [mscorlib]System.Collections.Generic.IEnumerable`1<!!0>, class [System.Core]System.Func`2<!!0,!!1>)
IL_003c: call class [mscorlib]System.Collections.Generic.List`1<!!0> class [System.Core]System.Linq.Enumerable::ToList<valuetype [OpenRA.FileFormats]OpenRA.FileFormats.Pair`2<class [mscorlib]System.Reflection.Assembly,string>> (class [mscorlib]System.Collections.Generic.IEnumerable`1<!!0>)
IL_0041: stloc.0
IL_0042: ldarg.1
IL_0043: ldfld string[] [OpenRA.FileFormats]OpenRA.FileFormats.Manifest::Assemblies
IL_0048: stloc.1
IL_0049: ldc.i4.0
IL_004a: stloc.2
IL_004b: br IL_0095
IL_0050: ldloc.1
IL_0051: ldloc.2
IL_0052: ldelem.ref
IL_0053: stloc.3
IL_0054: newobj instance void class OpenRA.ObjectCreator/'<ObjectCreator>c__AnonStorey2E'::'.ctor'()
IL_0059: stloc.s 4
IL_005b: ldloc.s 4
IL_005d: ldloc.3
IL_005e: call string class [mscorlib]System.IO.Path::GetFullPath(string)
IL_0063: call class [mscorlib]System.Reflection.Assembly class [mscorlib]System.Reflection.Assembly::LoadFile(string)
IL_0068: stfld class [mscorlib]System.Reflection.Assembly OpenRA.ObjectCreator/'<ObjectCreator>c__AnonStorey2E'::asm
IL_006d: ldloc.0
IL_006e: ldloc.s 4
IL_0070: ldfld class [mscorlib]System.Reflection.Assembly OpenRA.ObjectCreator/'<ObjectCreator>c__AnonStorey2E'::asm
IL_0075: call class [mscorlib]System.Collections.Generic.IEnumerable`1<string> class [OpenRA.FileFormats]OpenRA.Exts::GetNamespaces(class [mscorlib]System.Reflection.Assembly)
IL_007a: ldloc.s 4
IL_007c: ldftn instance valuetype [OpenRA.FileFormats]OpenRA.FileFormats.Pair`2<class [mscorlib]System.Reflection.Assembly,string> class OpenRA.ObjectCreator/'<ObjectCreator>c__AnonStorey2E'::'<>m__5B'(string)
IL_0082: newobj instance void class [System.Core]System.Func`2<string, valuetype [OpenRA.FileFormats]OpenRA.FileFormats.Pair`2<class [mscorlib]System.Reflection.Assembly, string>>::'.ctor'(object, native int)
IL_0087: call class [mscorlib]System.Collections.Generic.IEnumerable`1<!!1> class [System.Core]System.Linq.Enumerable::Select<string, valuetype [OpenRA.FileFormats]OpenRA.FileFormats.Pair`2<class [mscorlib]System.Reflection.Assembly,string>> (class [mscorlib]System.Collections.Generic.IEnumerable`1<!!0>, class [System.Core]System.Func`2<!!0,!!1>)
IL_008c: callvirt instance void class [mscorlib]System.Collections.Generic.List`1<valuetype [OpenRA.FileFormats]OpenRA.FileFormats.Pair`2<class [mscorlib]System.Reflection.Assembly, string>>::AddRange(class [mscorlib]System.Collections.Generic.IEnumerable`1<!0>)
IL_0091: ldloc.2
IL_0092: ldc.i4.1
IL_0093: add
IL_0094: stloc.2
IL_0095: ldloc.2
IL_0096: ldloc.1
IL_0097: ldlen
IL_0098: conv.i4
IL_0099: blt IL_0050
IL_009e: ldarg.0
IL_009f: ldloc.0
IL_00a0: callvirt instance !0[] class [mscorlib]System.Collections.Generic.List`1<valuetype [OpenRA.FileFormats]OpenRA.FileFormats.Pair`2<class [mscorlib]System.Reflection.Assembly, string>>::ToArray()
IL_00a5: stfld valuetype [OpenRA.FileFormats]OpenRA.FileFormats.Pair`2<class [mscorlib]System.Reflection.Assembly, string>[] OpenRA.ObjectCreator::modAssemblies
IL_00aa: ret
} // end of method ObjectCreator::.ctor
// method line 415
.method private static specialname rtspecialname
default void '.cctor' () cil managed
{
// Method begins at RVA 0x9df8
// Code size 35 (0x23)
.maxstack 3
IL_0000: ldsfld class [mscorlib]System.Action`1<string> OpenRA.ObjectCreator::'<>f__am$cache3'
IL_0005: brtrue.s IL_0018
IL_0007: ldnull
IL_0008: ldftn void class OpenRA.ObjectCreator::'<MissingTypeAction>m__5C'(string)
IL_000e: newobj instance void class [mscorlib]System.Action`1<string>::'.ctor'(object, native int)
IL_0013: stsfld class [mscorlib]System.Action`1<string> OpenRA.ObjectCreator::'<>f__am$cache3'
IL_0018: ldsfld class [mscorlib]System.Action`1<string> OpenRA.ObjectCreator::'<>f__am$cache3'
IL_001d: stsfld class [mscorlib]System.Action`1<string> OpenRA.ObjectCreator::MissingTypeAction
IL_0022: ret
} // end of method ObjectCreator::.cctor
// method line 416
.method public hidebysig
instance default !!T CreateObject<T> (string className) cil managed
{
// Method begins at RVA 0x9e28
// Code size 13 (0xd)
.maxstack 8
IL_0000: ldarg.0
IL_0001: ldarg.1
IL_0002: newobj instance void class [mscorlib]System.Collections.Generic.Dictionary`2<string, object>::'.ctor'()
IL_0007: call instance !!0 class OpenRA.ObjectCreator::CreateObject<!!0> (string, class [mscorlib]System.Collections.Generic.Dictionary`2<string,object>)
IL_000c: ret
} // end of method ObjectCreator::CreateObject
// method line 417
.method public hidebysig
instance default !!T CreateObject<T> (string className, class [mscorlib]System.Collections.Generic.Dictionary`2<string, object> args) cil managed
{
// Method begins at RVA 0x9e38
// Code size 211 (0xd3)
.maxstack 23
.locals init (
valuetype [OpenRA.FileFormats]OpenRA.FileFormats.Pair`2<class [mscorlib]System.Reflection.Assembly, string>[] V_0,
int32 V_1,
valuetype [OpenRA.FileFormats]OpenRA.FileFormats.Pair`2<class [mscorlib]System.Reflection.Assembly, string> V_2,
class [mscorlib]System.Type V_3,
valuetype [mscorlib]System.Reflection.BindingFlags V_4,
class [mscorlib]System.Collections.Generic.List`1<class [mscorlib]System.Reflection.ConstructorInfo> V_5,
!!T V_6)
IL_0000: ldarg.0
IL_0001: ldfld valuetype [OpenRA.FileFormats]OpenRA.FileFormats.Pair`2<class [mscorlib]System.Reflection.Assembly, string>[] OpenRA.ObjectCreator::modAssemblies
IL_0006: stloc.0
IL_0007: ldc.i4.0
IL_0008: stloc.1
IL_0009: br IL_00b4
IL_000e: ldloc.0
IL_000f: ldloc.1
IL_0010: ldelema valuetype [OpenRA.FileFormats]OpenRA.FileFormats.Pair`2<class [mscorlib]System.Reflection.Assembly,string>
IL_0015: ldobj valuetype [OpenRA.FileFormats]OpenRA.FileFormats.Pair`2<class [mscorlib]System.Reflection.Assembly,string>
IL_001a: stloc.2
IL_001b: ldloca.s 2
IL_001d: ldfld !0 valuetype [OpenRA.FileFormats]OpenRA.FileFormats.Pair`2<class [mscorlib]System.Reflection.Assembly,string>::First
IL_0022: ldloca.s 2
IL_0024: ldfld !1 valuetype [OpenRA.FileFormats]OpenRA.FileFormats.Pair`2<class [mscorlib]System.Reflection.Assembly,string>::Second
IL_0029: ldstr "."
IL_002e: ldarg.1
IL_002f: call string string::Concat(string, string, string)
IL_0034: ldc.i4.0
IL_0035: callvirt instance class [mscorlib]System.Type class [mscorlib]System.Reflection.Assembly::GetType(string, bool)
IL_003a: stloc.3
IL_003b: ldloc.3
IL_003c: brtrue IL_0046
IL_0041: br IL_00b0
IL_0046: ldc.i4.s 0x34
IL_0048: stloc.s 4
IL_004a: ldloc.3
IL_004b: ldloc.s 4
IL_004d: callvirt instance class [mscorlib]System.Reflection.ConstructorInfo[] class [mscorlib]System.Type::GetConstructors(valuetype [mscorlib]System.Reflection.BindingFlags)
IL_0052: ldnull
IL_0053: ldftn bool class OpenRA.ObjectCreator::'<CreateObject`1>m__5D'<!!0> (class [mscorlib]System.Reflection.ConstructorInfo)
IL_0059: newobj instance void class [System.Core]System.Func`2<class [mscorlib]System.Reflection.ConstructorInfo, bool>::'.ctor'(object, native int)
IL_005e: call class [mscorlib]System.Collections.Generic.IEnumerable`1<!!0> class [System.Core]System.Linq.Enumerable::Where<class [mscorlib]System.Reflection.ConstructorInfo> (class [mscorlib]System.Collections.Generic.IEnumerable`1<!!0>, class [System.Core]System.Func`2<!!0,bool>)
IL_0063: call class [mscorlib]System.Collections.Generic.List`1<!!0> class [System.Core]System.Linq.Enumerable::ToList<class [mscorlib]System.Reflection.ConstructorInfo> (class [mscorlib]System.Collections.Generic.IEnumerable`1<!!0>)
IL_0068: stloc.s 5
IL_006a: ldloc.s 5
IL_006c: callvirt instance int32 class [mscorlib]System.Collections.Generic.List`1<class [mscorlib]System.Reflection.ConstructorInfo>::get_Count()
IL_0071: brtrue IL_0083
IL_0076: ldarg.0
IL_0077: ldloc.3
IL_0078: call instance object class OpenRA.ObjectCreator::CreateBasic(class [mscorlib]System.Type)
IL_007d: unbox.any !!0
IL_0082: ret
IL_0083: ldloc.s 5
IL_0085: callvirt instance int32 class [mscorlib]System.Collections.Generic.List`1<class [mscorlib]System.Reflection.ConstructorInfo>::get_Count()
IL_008a: ldc.i4.1
IL_008b: bne.un IL_00a5
IL_0090: ldarg.0
IL_0091: ldloc.s 5
IL_0093: ldc.i4.0
IL_0094: callvirt instance !0 class [mscorlib]System.Collections.Generic.List`1<class [mscorlib]System.Reflection.ConstructorInfo>::get_Item(int32)
IL_0099: ldarg.2
IL_009a: call instance object class OpenRA.ObjectCreator::CreateUsingArgs(class [mscorlib]System.Reflection.ConstructorInfo, class [mscorlib]System.Collections.Generic.Dictionary`2<string,object>)
IL_009f: unbox.any !!0
IL_00a4: ret
IL_00a5: ldstr "ObjectCreator: UseCtor on multiple constructors; invalid."
IL_00aa: newobj instance void class [mscorlib]System.InvalidOperationException::'.ctor'(string)
IL_00af: throw
IL_00b0: ldloc.1
IL_00b1: ldc.i4.1
IL_00b2: add
IL_00b3: stloc.1
IL_00b4: ldloc.1
IL_00b5: ldloc.0
IL_00b6: ldlen
IL_00b7: conv.i4
IL_00b8: blt IL_000e
IL_00bd: ldsfld class [mscorlib]System.Action`1<string> OpenRA.ObjectCreator::MissingTypeAction
IL_00c2: ldarg.1
IL_00c3: callvirt instance void class [mscorlib]System.Action`1<string>::Invoke(!0)
IL_00c8: ldloca.s 6
IL_00ca: initobj !!0
IL_00d0: ldloc.s 6
IL_00d2: ret
} // end of method ObjectCreator::CreateObject
// method line 418
.method public hidebysig
instance default object CreateBasic (class [mscorlib]System.Type 'type') cil managed
{
// Method begins at RVA 0x9f18
// Code size 24 (0x18)
.maxstack 8
IL_0000: ldarg.1
IL_0001: ldc.i4.0
IL_0002: newarr [mscorlib]System.Type
IL_0007: callvirt instance class [mscorlib]System.Reflection.ConstructorInfo class [mscorlib]System.Type::GetConstructor(class [mscorlib]System.Type[])
IL_000c: ldc.i4.0
IL_000d: newarr [mscorlib]System.Object
IL_0012: callvirt instance object class [mscorlib]System.Reflection.ConstructorInfo::Invoke(object[])
IL_0017: ret
} // end of method ObjectCreator::CreateBasic
// method line 419
.method public hidebysig
instance default object CreateUsingArgs (class [mscorlib]System.Reflection.ConstructorInfo ctor, class [mscorlib]System.Collections.Generic.Dictionary`2<string, object> args) cil managed
{
// Method begins at RVA 0x9f34
// Code size 101 (0x65)
.maxstack 12
.locals init (
class [mscorlib]System.Reflection.ParameterInfo[] V_0,
object[] V_1,
int32 V_2,
string V_3)
IL_0000: ldarg.1
IL_0001: callvirt instance class [mscorlib]System.Reflection.ParameterInfo[] class [mscorlib]System.Reflection.MethodBase::GetParameters()
IL_0006: stloc.0
IL_0007: ldloc.0
IL_0008: ldlen
IL_0009: conv.i4
IL_000a: newarr [mscorlib]System.Object
IL_000f: stloc.1
IL_0010: ldc.i4.0
IL_0011: stloc.2
IL_0012: br IL_0054
IL_0017: ldloc.0
IL_0018: ldloc.2
IL_0019: ldelem.ref
IL_001a: callvirt instance string class [mscorlib]System.Reflection.ParameterInfo::get_Name()
IL_001f: stloc.3
IL_0020: ldarg.2
IL_0021: ldloc.3
IL_0022: callvirt instance bool class [mscorlib]System.Collections.Generic.Dictionary`2<string, object>::ContainsKey(!0)
IL_0027: brtrue IL_0046
IL_002c: ldstr "ObjectCreator: key `{0}' not found"
IL_0031: ldc.i4.1
IL_0032: newarr [mscorlib]System.Object
IL_0037: dup
IL_0038: ldc.i4.0
IL_0039: ldloc.3
IL_003a: stelem.ref
IL_003b: call string class [OpenRA.FileFormats]OpenRA.Exts::F(string, object[])
IL_0040: newobj instance void class [mscorlib]System.InvalidOperationException::'.ctor'(string)
IL_0045: throw
IL_0046: ldloc.1
IL_0047: ldloc.2
IL_0048: ldarg.2
IL_0049: ldloc.3
IL_004a: callvirt instance !1 class [mscorlib]System.Collections.Generic.Dictionary`2<string, object>::get_Item(!0)
IL_004f: stelem.ref
IL_0050: ldloc.2
IL_0051: ldc.i4.1
IL_0052: add
IL_0053: stloc.2
IL_0054: ldloc.2
IL_0055: ldloc.0
IL_0056: ldlen
IL_0057: conv.i4
IL_0058: blt IL_0017
IL_005d: ldarg.1
IL_005e: ldloc.1
IL_005f: callvirt instance object class [mscorlib]System.Reflection.ConstructorInfo::Invoke(object[])
IL_0064: ret
} // end of method ObjectCreator::CreateUsingArgs
// method line 420
.method public hidebysig
instance default class [mscorlib]System.Collections.Generic.IEnumerable`1<class [mscorlib]System.Type> GetTypesImplementing<T> () cil managed
{
// Method begins at RVA 0x9fa8
// Code size 68 (0x44)
.maxstack 9
.locals init (
class OpenRA.ObjectCreator/'<GetTypesImplementing>c__AnonStorey2F`1'<!!T> V_0)
IL_0000: newobj instance void class OpenRA.ObjectCreator/'<GetTypesImplementing>c__AnonStorey2F`1'<!!T>::'.ctor'()
IL_0005: stloc.0
IL_0006: ldloc.0
IL_0007: ldtoken !!T
IL_000c: call class [mscorlib]System.Type class [mscorlib]System.Type::GetTypeFromHandle(valuetype [mscorlib]System.RuntimeTypeHandle)
IL_0011: stfld class [mscorlib]System.Type class OpenRA.ObjectCreator/'<GetTypesImplementing>c__AnonStorey2F`1'<!!0>::it
IL_0016: ldarg.0
IL_0017: ldfld valuetype [OpenRA.FileFormats]OpenRA.FileFormats.Pair`2<class [mscorlib]System.Reflection.Assembly, string>[] OpenRA.ObjectCreator::modAssemblies
IL_001c: ldnull
IL_001d: ldftn class [mscorlib]System.Reflection.Assembly class OpenRA.ObjectCreator::'<GetTypesImplementing`1>m__5E'<!!0> (valuetype [OpenRA.FileFormats]OpenRA.FileFormats.Pair`2<class [mscorlib]System.Reflection.Assembly,string>)
IL_0023: newobj instance void class [System.Core]System.Func`2<valuetype [OpenRA.FileFormats]OpenRA.FileFormats.Pair`2<class [mscorlib]System.Reflection.Assembly, string>, class [mscorlib]System.Reflection.Assembly>::'.ctor'(object, native int)
IL_0028: call class [mscorlib]System.Collections.Generic.IEnumerable`1<!!1> class [System.Core]System.Linq.Enumerable::Select<valuetype [OpenRA.FileFormats]OpenRA.FileFormats.Pair`2<class [mscorlib]System.Reflection.Assembly,string>, class [mscorlib]System.Reflection.Assembly> (class [mscorlib]System.Collections.Generic.IEnumerable`1<!!0>, class [System.Core]System.Func`2<!!0,!!1>)
IL_002d: call class [mscorlib]System.Collections.Generic.IEnumerable`1<!!0> class [System.Core]System.Linq.Enumerable::Distinct<class [mscorlib]System.Reflection.Assembly> (class [mscorlib]System.Collections.Generic.IEnumerable`1<!!0>)
IL_0032: ldloc.0
IL_0033: ldftn instance class [mscorlib]System.Collections.Generic.IEnumerable`1<class [mscorlib]System.Type> class OpenRA.ObjectCreator/'<GetTypesImplementing>c__AnonStorey2F`1'<!!T>::'<>m__5F'(class [mscorlib]System.Reflection.Assembly)
IL_0039: newobj instance void class [System.Core]System.Func`2<class [mscorlib]System.Reflection.Assembly, class [mscorlib]System.Collections.Generic.IEnumerable`1<class [mscorlib]System.Type>>::'.ctor'(object, native int)
IL_003e: call class [mscorlib]System.Collections.Generic.IEnumerable`1<!!1> class [System.Core]System.Linq.Enumerable::SelectMany<class [mscorlib]System.Reflection.Assembly, class [mscorlib]System.Type> (class [mscorlib]System.Collections.Generic.IEnumerable`1<!!0>, class [System.Core]System.Func`2<!!0,class [mscorlib]System.Collections.Generic.IEnumerable`1<!!1>>)
IL_0043: ret
} // end of method ObjectCreator::GetTypesImplementing
// method line 421
.method private static hidebysig
default valuetype [OpenRA.FileFormats]OpenRA.FileFormats.Pair`2<class [mscorlib]System.Reflection.Assembly, string> '<ObjectCreator>m__5A' (string c) cil managed
{
.custom instance void class [mscorlib]System.Runtime.CompilerServices.CompilerGeneratedAttribute::'.ctor'() = (01 00 00 00 ) // ....
// Method begins at RVA 0x9ff8
// Code size 22 (0x16)
.maxstack 8
IL_0000: ldtoken OpenRA.Game
IL_0005: call class [mscorlib]System.Type class [mscorlib]System.Type::GetTypeFromHandle(valuetype [mscorlib]System.RuntimeTypeHandle)
IL_000a: callvirt instance class [mscorlib]System.Reflection.Assembly class [mscorlib]System.Type::get_Assembly()
IL_000f: ldarg.0
IL_0010: call valuetype [OpenRA.FileFormats]OpenRA.FileFormats.Pair`2<!!0,!!1> class [OpenRA.FileFormats]OpenRA.FileFormats.Pair::New<class [mscorlib]System.Reflection.Assembly, string> (!!0, !!1)
IL_0015: ret
} // end of method ObjectCreator::<ObjectCreator>m__5A
// method line 422
.method private static hidebysig
default void '<MissingTypeAction>m__5C' (string s) cil managed
{
.custom instance void class [mscorlib]System.Runtime.CompilerServices.CompilerGeneratedAttribute::'.ctor'() = (01 00 00 00 ) // ....
// Method begins at RVA 0xa010
// Code size 26 (0x1a)
.maxstack 8
IL_0000: ldstr "Cannot locate type: {0}"
IL_0005: ldc.i4.1
IL_0006: newarr [mscorlib]System.Object
IL_000b: dup
IL_000c: ldc.i4.0
IL_000d: ldarg.0
IL_000e: stelem.ref
IL_000f: call string class [OpenRA.FileFormats]OpenRA.Exts::F(string, object[])
IL_0014: newobj instance void class [mscorlib]System.InvalidOperationException::'.ctor'(string)
IL_0019: throw
} // end of method ObjectCreator::<MissingTypeAction>m__5C
// method line 423
.method private static hidebysig
default bool '<CreateObject`1>m__5D'<T> (class [mscorlib]System.Reflection.ConstructorInfo x) cil managed
{
.custom instance void class [mscorlib]System.Runtime.CompilerServices.CompilerGeneratedAttribute::'.ctor'() = (01 00 00 00 ) // ....
// Method begins at RVA 0xa02c
// Code size 7 (0x7)
.maxstack 8
IL_0000: ldarg.0
IL_0001: call bool class [OpenRA.FileFormats]OpenRA.Exts::HasAttribute<class OpenRA.ObjectCreator/UseCtorAttribute> (class [mscorlib]System.Reflection.MemberInfo)
IL_0006: ret
} // end of method ObjectCreator::<CreateObject`1>m__5D
// method line 424
.method private static hidebysig
default class [mscorlib]System.Reflection.Assembly '<GetTypesImplementing`1>m__5E'<T> (valuetype [OpenRA.FileFormats]OpenRA.FileFormats.Pair`2<class [mscorlib]System.Reflection.Assembly, string> ma) cil managed
{
.custom instance void class [mscorlib]System.Runtime.CompilerServices.CompilerGeneratedAttribute::'.ctor'() = (01 00 00 00 ) // ....
// Method begins at RVA 0xa034
// Code size 8 (0x8)
.maxstack 8
IL_0000: ldarga.s 0
IL_0002: ldfld !0 valuetype [OpenRA.FileFormats]OpenRA.FileFormats.Pair`2<class [mscorlib]System.Reflection.Assembly,string>::First
IL_0007: ret
} // end of method ObjectCreator::<GetTypesImplementing`1>m__5E
.class nested public auto ansi beforefieldinit UseCtorAttribute
extends [mscorlib]System.Attribute
{
.custom instance void class [mscorlib]System.AttributeUsageAttribute::'.ctor'(valuetype [mscorlib]System.AttributeTargets) = (01 00 20 00 00 00 00 00 ) // .. .....
// method line 425
.method public hidebysig specialname rtspecialname
instance default void '.ctor' () cil managed
{
// Method begins at RVA 0xa040
// Code size 7 (0x7)
.maxstack 8
IL_0000: ldarg.0
IL_0001: call instance void class [mscorlib]System.Attribute::'.ctor'()
IL_0006: ret
} // end of method UseCtorAttribute::.ctor
} // end of class UseCtorAttribute
.class nested private auto ansi sealed beforefieldinit '<ObjectCreator>c__AnonStorey2E'
extends [mscorlib]System.Object
{
.custom instance void class [mscorlib]System.Runtime.CompilerServices.CompilerGeneratedAttribute::'.ctor'() = (01 00 00 00 ) // ....
.field assembly class [mscorlib]System.Reflection.Assembly asm
// method line 2137
.method public hidebysig specialname rtspecialname
instance default void '.ctor' () cil managed
{
// Method begins at RVA 0x2bf70
// Code size 7 (0x7)
.maxstack 8
IL_0000: ldarg.0
IL_0001: call instance void object::'.ctor'()
IL_0006: ret
} // end of method <ObjectCreator>c__AnonStorey2E::.ctor
// method line 2138
.method assembly hidebysig
instance default valuetype [OpenRA.FileFormats]OpenRA.FileFormats.Pair`2<class [mscorlib]System.Reflection.Assembly, string> '<>m__5B' (string ns) cil managed
{
// Method begins at RVA 0x2bf78
// Code size 13 (0xd)
.maxstack 8
IL_0000: ldarg.0
IL_0001: ldfld class [mscorlib]System.Reflection.Assembly OpenRA.ObjectCreator/'<ObjectCreator>c__AnonStorey2E'::asm
IL_0006: ldarg.1
IL_0007: call valuetype [OpenRA.FileFormats]OpenRA.FileFormats.Pair`2<!!0,!!1> class [OpenRA.FileFormats]OpenRA.FileFormats.Pair::New<class [mscorlib]System.Reflection.Assembly, string> (!!0, !!1)
IL_000c: ret
} // end of method <ObjectCreator>c__AnonStorey2E::<>m__5B
} // end of class <ObjectCreator>c__AnonStorey2E
.class nested private auto ansi sealed beforefieldinit '<GetTypesImplementing>c__AnonStorey2F`1'<T>
extends [mscorlib]System.Object
{
.custom instance void class [mscorlib]System.Runtime.CompilerServices.CompilerGeneratedAttribute::'.ctor'() = (01 00 00 00 ) // ....
.field assembly class [mscorlib]System.Type it
// method line 2139
.method public hidebysig specialname rtspecialname
instance default void '.ctor' () cil managed
{
// Method begins at RVA 0x2bf88
// Code size 7 (0x7)
.maxstack 8
IL_0000: ldarg.0
IL_0001: call instance void object::'.ctor'()
IL_0006: ret
} // end of method <GetTypesImplementing>c__AnonStorey2F`1::.ctor
// method line 2140
.method assembly hidebysig
instance default class [mscorlib]System.Collections.Generic.IEnumerable`1<class [mscorlib]System.Type> '<>m__5F' (class [mscorlib]System.Reflection.Assembly ma) cil managed
{
// Method begins at RVA 0x2bf90
// Code size 24 (0x18)
.maxstack 8
IL_0000: ldarg.1
IL_0001: callvirt instance class [mscorlib]System.Type[] class [mscorlib]System.Reflection.Assembly::GetTypes()
IL_0006: ldarg.0
IL_0007: ldftn instance bool class OpenRA.ObjectCreator/'<GetTypesImplementing>c__AnonStorey2F`1'<!T>::'<>m__60'(class [mscorlib]System.Type)
IL_000d: newobj instance void class [System.Core]System.Func`2<class [mscorlib]System.Type, bool>::'.ctor'(object, native int)
IL_0012: call class [mscorlib]System.Collections.Generic.IEnumerable`1<!!0> class [System.Core]System.Linq.Enumerable::Where<class [mscorlib]System.Type> (class [mscorlib]System.Collections.Generic.IEnumerable`1<!!0>, class [System.Core]System.Func`2<!!0,bool>)
IL_0017: ret
} // end of method <GetTypesImplementing>c__AnonStorey2F`1::<>m__5F
// method line 2141
.method assembly hidebysig
instance default bool '<>m__60' (class [mscorlib]System.Type t) cil managed
{
// Method begins at RVA 0x2bfac
// Code size 28 (0x1c)
.maxstack 8
IL_0000: ldarg.1
IL_0001: ldarg.0
IL_0002: ldfld class [mscorlib]System.Type class OpenRA.ObjectCreator/'<GetTypesImplementing>c__AnonStorey2F`1'<!0>::it
IL_0007: beq IL_001a
IL_000c: ldarg.0
IL_000d: ldfld class [mscorlib]System.Type class OpenRA.ObjectCreator/'<GetTypesImplementing>c__AnonStorey2F`1'<!0>::it
IL_0012: ldarg.1
IL_0013: callvirt instance bool class [mscorlib]System.Type::IsAssignableFrom(class [mscorlib]System.Type)
IL_0018: br.s IL_001b
IL_001a: ldc.i4.0
IL_001b: ret
} // end of method <GetTypesImplementing>c__AnonStorey2F`1::<>m__60
} // end of class <GetTypesImplementing>c__AnonStorey2F`1
} // end of class OpenRA.ObjectCreator
}
.namespace OpenRA
{
.class public auto ansi beforefieldinit Selection
extends [mscorlib]System.Object
{
.field private class [mscorlib]System.Collections.Generic.List`1<class OpenRA.Actor> actors
.field private class [OpenRA.FileFormats]OpenRA.FileFormats.Cache`2<int32,class [mscorlib]System.Collections.Generic.List`1<class OpenRA.Actor>> controlGroups
.field private static class [System.Core]System.Func`2<int32,class [mscorlib]System.Collections.Generic.List`1<class OpenRA.Actor>> '<>f__am$cache2'
.custom instance void class [mscorlib]System.Runtime.CompilerServices.CompilerGeneratedAttribute::'.ctor'() = (01 00 00 00 ) // ....
.field private static class [mscorlib]System.Predicate`1<class OpenRA.Actor> '<>f__am$cache3'
.custom instance void class [mscorlib]System.Runtime.CompilerServices.CompilerGeneratedAttribute::'.ctor'() = (01 00 00 00 ) // ....
.field private static class [mscorlib]System.Predicate`1<class OpenRA.Actor> '<>f__am$cache4'
.custom instance void class [mscorlib]System.Runtime.CompilerServices.CompilerGeneratedAttribute::'.ctor'() = (01 00 00 00 ) // ....
.field private static class [System.Core]System.Func`2<valuetype [mscorlib]System.Collections.Generic.KeyValuePair`2<int32,class [mscorlib]System.Collections.Generic.List`1<class OpenRA.Actor>>,valuetype [mscorlib]System.Nullable`1<int32>> '<>f__am$cache5'
.custom instance void class [mscorlib]System.Runtime.CompilerServices.CompilerGeneratedAttribute::'.ctor'() = (01 00 00 00 ) // ....
// method line 426
.method public hidebysig specialname rtspecialname
instance default void '.ctor' () cil managed
{
// Method begins at RVA 0xa048
// Code size 58 (0x3a)
.maxstack 8
IL_0000: ldarg.0
IL_0001: newobj instance void class [mscorlib]System.Collections.Generic.List`1<class OpenRA.Actor>::'.ctor'()
IL_0006: stfld class [mscorlib]System.Collections.Generic.List`1<class OpenRA.Actor> OpenRA.Selection::actors
IL_000b: ldarg.0
IL_000c: ldsfld class [System.Core]System.Func`2<int32,class [mscorlib]System.Collections.Generic.List`1<class OpenRA.Actor>> OpenRA.Selection::'<>f__am$cache2'
IL_0011: brtrue.s IL_0024
IL_0013: ldnull
IL_0014: ldftn class [mscorlib]System.Collections.Generic.List`1<class OpenRA.Actor> class OpenRA.Selection::'<controlGroups>m__61'(int32)
IL_001a: newobj instance void class [System.Core]System.Func`2<int32, class [mscorlib]System.Collections.Generic.List`1<class OpenRA.Actor>>::'.ctor'(object, native int)
IL_001f: stsfld class [System.Core]System.Func`2<int32,class [mscorlib]System.Collections.Generic.List`1<class OpenRA.Actor>> OpenRA.Selection::'<>f__am$cache2'
IL_0024: ldsfld class [System.Core]System.Func`2<int32,class [mscorlib]System.Collections.Generic.List`1<class OpenRA.Actor>> OpenRA.Selection::'<>f__am$cache2'
IL_0029: newobj instance void class [OpenRA.FileFormats]OpenRA.FileFormats.Cache`2<int32, class [mscorlib]System.Collections.Generic.List`1<class OpenRA.Actor>>::'.ctor'(class [System.Core]System.Func`2<!0,!1>)
IL_002e: stfld class [OpenRA.FileFormats]OpenRA.FileFormats.Cache`2<int32,class [mscorlib]System.Collections.Generic.List`1<class OpenRA.Actor>> OpenRA.Selection::controlGroups
IL_0033: ldarg.0
IL_0034: call instance void object::'.ctor'()
IL_0039: ret
} // end of method Selection::.ctor
// method line 427
.method public hidebysig
instance default void Add (class OpenRA.World w, class OpenRA.Actor a) cil managed
{
// Method begins at RVA 0xa084
// Code size 77 (0x4d)
.maxstack 14
.locals init (
class [mscorlib]System.Collections.Generic.IEnumerator`1<class OpenRA.Traits.INotifySelection> V_0,
class OpenRA.Traits.INotifySelection V_1)
IL_0000: ldarg.0
IL_0001: ldfld class [mscorlib]System.Collections.Generic.List`1<class OpenRA.Actor> OpenRA.Selection::actors
IL_0006: ldarg.2
IL_0007: callvirt instance void class [mscorlib]System.Collections.Generic.List`1<class OpenRA.Actor>::Add(!0)
IL_000c: ldarg.1
IL_000d: ldfld class OpenRA.Actor OpenRA.World::WorldActor
IL_0012: callvirt instance class [mscorlib]System.Collections.Generic.IEnumerable`1<!!0> class OpenRA.Actor::TraitsImplementing<class OpenRA.Traits.INotifySelection> ()
IL_0017: callvirt instance class [mscorlib]System.Collections.Generic.IEnumerator`1<!0> class [mscorlib]System.Collections.Generic.IEnumerable`1<class OpenRA.Traits.INotifySelection>::GetEnumerator()
IL_001c: stloc.0
.try { // 0
IL_001d: br IL_002f
IL_0022: ldloc.0
IL_0023: callvirt instance !0 class [mscorlib]System.Collections.Generic.IEnumerator`1<class OpenRA.Traits.INotifySelection>::get_Current()
IL_0028: stloc.1
IL_0029: ldloc.1
IL_002a: callvirt instance void class OpenRA.Traits.INotifySelection::SelectionChanged()
IL_002f: ldloc.0
IL_0030: callvirt instance bool class [mscorlib]System.Collections.IEnumerator::MoveNext()
IL_0035: brtrue IL_0022
IL_003a: leave IL_004c
} // end .try 0
finally { // 0
IL_003f: ldloc.0
IL_0040: brfalse IL_004b
IL_0045: ldloc.0
IL_0046: callvirt instance void class [mscorlib]System.IDisposable::Dispose()
IL_004b: endfinally
} // end handler 0
IL_004c: ret
} // end of method Selection::Add
// method line 428
.method public hidebysig
instance default bool Contains (class OpenRA.Actor a) cil managed
{
// Method begins at RVA 0xa0fc
// Code size 18 (0x12)
.maxstack 8
IL_0000: ldarg.0
IL_0001: ldfld class [mscorlib]System.Collections.Generic.List`1<class OpenRA.Actor> OpenRA.Selection::actors
IL_0006: call class [mscorlib]System.Collections.Generic.IEnumerable`1<!!0> class [System.Core]System.Linq.Enumerable::AsEnumerable<class OpenRA.Actor> (class [mscorlib]System.Collections.Generic.IEnumerable`1<!!0>)
IL_000b: ldarg.1
IL_000c: call bool class [System.Core]System.Linq.Enumerable::Contains<class OpenRA.Actor> (class [mscorlib]System.Collections.Generic.IEnumerable`1<!!0>, !!0)
IL_0011: ret
} // end of method Selection::Contains
// method line 429
.method public hidebysig
instance default void Combine (class OpenRA.World world, class [mscorlib]System.Collections.Generic.IEnumerable`1<class OpenRA.Actor> newSelection, bool isCombine, bool isClick) cil managed
{
// Method begins at RVA 0xa110
// Code size 248 (0xf8)
.maxstack 23
.locals init (
class OpenRA.Selection/'<Combine>c__AnonStorey30' V_0,
class [mscorlib]System.Collections.Generic.IEnumerable`1<class OpenRA.Actor> V_1,
class [mscorlib]System.Collections.Generic.IEnumerable`1<class OpenRA.Actor> V_2,
class [mscorlib]System.Collections.Generic.IEnumerable`1<class OpenRA.Actor> V_3,
class OpenRA.Actor V_4,
class [mscorlib]System.Collections.Generic.IEnumerator`1<class OpenRA.Traits.INotifySelection> V_5,
class OpenRA.Traits.INotifySelection V_6)
IL_0000: newobj instance void class OpenRA.Selection/'<Combine>c__AnonStorey30'::'.ctor'()
IL_0005: stloc.0
IL_0006: ldloc.0
IL_0007: ldarg.1
IL_0008: stfld class OpenRA.World OpenRA.Selection/'<Combine>c__AnonStorey30'::world
IL_000d: ldarg.0
IL_000e: ldfld class [mscorlib]System.Collections.Generic.List`1<class OpenRA.Actor> OpenRA.Selection::actors
IL_0013: call class [mscorlib]System.Collections.Generic.IEnumerable`1<!!0> class [System.Core]System.Linq.Enumerable::AsEnumerable<class OpenRA.Actor> (class [mscorlib]System.Collections.Generic.IEnumerable`1<!!0>)
IL_0018: stloc.1
IL_0019: ldarg.s 4
IL_001b: brfalse IL_004d
IL_0020: ldarg.2
IL_0021: ldc.i4.1
IL_0022: call class [mscorlib]System.Collections.Generic.IEnumerable`1<!!0> class [System.Core]System.Linq.Enumerable::Take<class OpenRA.Actor> (class [mscorlib]System.Collections.Generic.IEnumerable`1<!!0>, int32)
IL_0027: stloc.2
IL_0028: ldarg.0
IL_0029: ldarg.3
IL_002a: brfalse IL_003d
IL_002f: ldloc.1
IL_0030: ldloc.2
IL_0031: call class [mscorlib]System.Collections.Generic.IEnumerable`1<!!0> class [OpenRA.FileFormats]OpenRA.Exts::SymmetricDifference<class OpenRA.Actor> (class [mscorlib]System.Collections.Generic.IEnumerable`1<!!0>, class [mscorlib]System.Collections.Generic.IEnumerable`1<!!0>)
IL_0036: stloc.3
IL_0037: ldloc.3
IL_0038: br IL_003e
IL_003d: ldloc.2
IL_003e: call class [mscorlib]System.Collections.Generic.List`1<!!0> class [System.Core]System.Linq.Enumerable::ToList<class OpenRA.Actor> (class [mscorlib]System.Collections.Generic.IEnumerable`1<!!0>)
IL_0043: stfld class [mscorlib]System.Collections.Generic.List`1<class OpenRA.Actor> OpenRA.Selection::actors
IL_0048: br IL_006d
IL_004d: ldarg.0
IL_004e: ldarg.3
IL_004f: brfalse IL_0062
IL_0054: ldloc.1
IL_0055: ldarg.2
IL_0056: call class [mscorlib]System.Collections.Generic.IEnumerable`1<!!0> class [System.Core]System.Linq.Enumerable::Union<class OpenRA.Actor> (class [mscorlib]System.Collections.Generic.IEnumerable`1<!!0>, class [mscorlib]System.Collections.Generic.IEnumerable`1<!!0>)
IL_005b: stloc.3
IL_005c: ldloc.3
IL_005d: br IL_0063
IL_0062: ldarg.2
IL_0063: call class [mscorlib]System.Collections.Generic.List`1<!!0> class [System.Core]System.Linq.Enumerable::ToList<class OpenRA.Actor> (class [mscorlib]System.Collections.Generic.IEnumerable`1<!!0>)
IL_0068: stfld class [mscorlib]System.Collections.Generic.List`1<class OpenRA.Actor> OpenRA.Selection::actors
IL_006d: ldarg.0
IL_006e: ldfld class [mscorlib]System.Collections.Generic.List`1<class OpenRA.Actor> OpenRA.Selection::actors
IL_0073: ldloc.0
IL_0074: ldftn instance bool class OpenRA.Selection/'<Combine>c__AnonStorey30'::'<>m__62'(class OpenRA.Actor)
IL_007a: newobj instance void class [System.Core]System.Func`2<class OpenRA.Actor, bool>::'.ctor'(object, native int)
IL_007f: call !!0 class [System.Core]System.Linq.Enumerable::FirstOrDefault<class OpenRA.Actor> (class [mscorlib]System.Collections.Generic.IEnumerable`1<!!0>, class [System.Core]System.Func`2<!!0,bool>)
IL_0084: stloc.s 4
IL_0086: ldloc.s 4
IL_0088: brfalse IL_00ab
IL_008d: ldstr "Select"
IL_0092: ldloc.s 4
IL_0094: ldloc.s 4
IL_0096: ldfld class OpenRA.Player OpenRA.Actor::Owner
IL_009b: ldfld class OpenRA.Traits.CountryInfo OpenRA.Player::Country
IL_00a0: ldfld string OpenRA.Traits.CountryInfo::Race
IL_00a5: call bool class OpenRA.Sound::PlayVoice(string, class OpenRA.Actor, string)
IL_00aa: pop
IL_00ab: ldloc.0
IL_00ac: ldfld class OpenRA.World OpenRA.Selection/'<Combine>c__AnonStorey30'::world
IL_00b1: ldfld class OpenRA.Actor OpenRA.World::WorldActor
IL_00b6: callvirt instance class [mscorlib]System.Collections.Generic.IEnumerable`1<!!0> class OpenRA.Actor::TraitsImplementing<class OpenRA.Traits.INotifySelection> ()
IL_00bb: callvirt instance class [mscorlib]System.Collections.Generic.IEnumerator`1<!0> class [mscorlib]System.Collections.Generic.IEnumerable`1<class OpenRA.Traits.INotifySelection>::GetEnumerator()
IL_00c0: stloc.s 5
.try { // 0
IL_00c2: br IL_00d7
IL_00c7: ldloc.s 5
IL_00c9: callvirt instance !0 class [mscorlib]System.Collections.Generic.IEnumerator`1<class OpenRA.Traits.INotifySelection>::get_Current()
IL_00ce: stloc.s 6
IL_00d0: ldloc.s 6
IL_00d2: callvirt instance void class OpenRA.Traits.INotifySelection::SelectionChanged()
IL_00d7: ldloc.s 5
IL_00d9: callvirt instance bool class [mscorlib]System.Collections.IEnumerator::MoveNext()
IL_00de: brtrue IL_00c7
IL_00e3: leave IL_00f7
} // end .try 0
finally { // 0
IL_00e8: ldloc.s 5
IL_00ea: brfalse IL_00f6
IL_00ef: ldloc.s 5
IL_00f1: callvirt instance void class [mscorlib]System.IDisposable::Dispose()
IL_00f6: endfinally
} // end handler 0
IL_00f7: ret
} // end of method Selection::Combine
// method line 430
.method public hidebysig specialname
instance default class [mscorlib]System.Collections.Generic.IEnumerable`1<class OpenRA.Actor> get_Actors () cil managed
{
// Method begins at RVA 0xa230
// Code size 7 (0x7)
.maxstack 8
IL_0000: ldarg.0
IL_0001: ldfld class [mscorlib]System.Collections.Generic.List`1<class OpenRA.Actor> OpenRA.Selection::actors
IL_0006: ret
} // end of method Selection::get_Actors
// method line 431
.method public hidebysig
instance default void Clear () cil managed
{
// Method begins at RVA 0xa238
// Code size 12 (0xc)
.maxstack 8
IL_0000: ldarg.0
IL_0001: newobj instance void class [mscorlib]System.Collections.Generic.List`1<class OpenRA.Actor>::'.ctor'()
IL_0006: stfld class [mscorlib]System.Collections.Generic.List`1<class OpenRA.Actor> OpenRA.Selection::actors
IL_000b: ret
} // end of method Selection::Clear
// method line 432
.method public hidebysig
instance default void Tick (class OpenRA.World world) cil managed
{
// Method begins at RVA 0xa248
// Code size 136 (0x88)
.maxstack 16
.locals init (
class [mscorlib]System.Collections.Generic.IEnumerator`1<class [mscorlib]System.Collections.Generic.List`1<class OpenRA.Actor>> V_0,
class [mscorlib]System.Collections.Generic.List`1<class OpenRA.Actor> V_1)
IL_0000: ldarg.0
IL_0001: ldfld class [mscorlib]System.Collections.Generic.List`1<class OpenRA.Actor> OpenRA.Selection::actors
IL_0006: ldsfld class [mscorlib]System.Predicate`1<class OpenRA.Actor> OpenRA.Selection::'<>f__am$cache3'
IL_000b: brtrue.s IL_001e
IL_000d: ldnull
IL_000e: ldftn bool class OpenRA.Selection::'<Tick>m__63'(class OpenRA.Actor)
IL_0014: newobj instance void class [mscorlib]System.Predicate`1<class OpenRA.Actor>::'.ctor'(object, native int)
IL_0019: stsfld class [mscorlib]System.Predicate`1<class OpenRA.Actor> OpenRA.Selection::'<>f__am$cache3'
IL_001e: ldsfld class [mscorlib]System.Predicate`1<class OpenRA.Actor> OpenRA.Selection::'<>f__am$cache3'
IL_0023: callvirt instance int32 class [mscorlib]System.Collections.Generic.List`1<class OpenRA.Actor>::RemoveAll(class [mscorlib]System.Predicate`1<!0>)
IL_0028: pop
IL_0029: ldarg.0
IL_002a: ldfld class [OpenRA.FileFormats]OpenRA.FileFormats.Cache`2<int32,class [mscorlib]System.Collections.Generic.List`1<class OpenRA.Actor>> OpenRA.Selection::controlGroups
IL_002f: callvirt instance class [mscorlib]System.Collections.Generic.IEnumerable`1<!1> class [OpenRA.FileFormats]OpenRA.FileFormats.Cache`2<int32, class [mscorlib]System.Collections.Generic.List`1<class OpenRA.Actor>>::get_Values()
IL_0034: callvirt instance class [mscorlib]System.Collections.Generic.IEnumerator`1<!0> class [mscorlib]System.Collections.Generic.IEnumerable`1<class [mscorlib]System.Collections.Generic.List`1<class OpenRA.Actor>>::GetEnumerator()
IL_0039: stloc.0
.try { // 0
IL_003a: br IL_006a
IL_003f: ldloc.0
IL_0040: callvirt instance !0 class [mscorlib]System.Collections.Generic.IEnumerator`1<class [mscorlib]System.Collections.Generic.List`1<class OpenRA.Actor>>::get_Current()
IL_0045: stloc.1
IL_0046: ldloc.1
IL_0047: ldsfld class [mscorlib]System.Predicate`1<class OpenRA.Actor> OpenRA.Selection::'<>f__am$cache4'
IL_004c: brtrue.s IL_005f
IL_004e: ldnull
IL_004f: ldftn bool class OpenRA.Selection::'<Tick>m__64'(class OpenRA.Actor)
IL_0055: newobj instance void class [mscorlib]System.Predicate`1<class OpenRA.Actor>::'.ctor'(object, native int)
IL_005a: stsfld class [mscorlib]System.Predicate`1<class OpenRA.Actor> OpenRA.Selection::'<>f__am$cache4'
IL_005f: ldsfld class [mscorlib]System.Predicate`1<class OpenRA.Actor> OpenRA.Selection::'<>f__am$cache4'
IL_0064: callvirt instance int32 class [mscorlib]System.Collections.Generic.List`1<class OpenRA.Actor>::RemoveAll(class [mscorlib]System.Predicate`1<!0>)
IL_0069: pop
IL_006a: ldloc.0
IL_006b: callvirt instance bool class [mscorlib]System.Collections.IEnumerator::MoveNext()
IL_0070: brtrue IL_003f
IL_0075: leave IL_0087
} // end .try 0
finally { // 0
IL_007a: ldloc.0
IL_007b: brfalse IL_0086
IL_0080: ldloc.0
IL_0081: callvirt instance void class [mscorlib]System.IDisposable::Dispose()
IL_0086: endfinally
} // end handler 0
IL_0087: ret
} // end of method Selection::Tick
// method line 433
.method public hidebysig
instance default void DoControlGroup (class OpenRA.World world, class OpenRA.Graphics.WorldRenderer worldRenderer, int32 group, valuetype [OpenRA.FileFormats]OpenRA.Modifiers mods, int32 MultiTapCount) cil managed
{
// Method begins at RVA 0xa2f8
// Code size 226 (0xe2)
.maxstack 35
.locals init (
valuetype [OpenRA.FileFormats]OpenRA.Modifiers V_0,
int32 V_1)
IL_0000: call valuetype [OpenRA.FileFormats]OpenRA.PlatformType class [OpenRA.FileFormats]OpenRA.Platform::get_CurrentPlatform()
IL_0005: ldc.i4.2
IL_0006: bne.un IL_0011
IL_000b: ldc.i4.8
IL_000c: br IL_0012
IL_0011: ldc.i4.4
IL_0012: stloc.0
IL_0013: ldarg.s 4
IL_0015: ldloc.0
IL_0016: call bool class [OpenRA.FileFormats]OpenRA.Exts::HasModifier(valuetype [OpenRA.FileFormats]OpenRA.Modifiers, valuetype [OpenRA.FileFormats]OpenRA.Modifiers)
IL_001b: brfalse IL_0098
IL_0020: ldarg.0
IL_0021: ldfld class [mscorlib]System.Collections.Generic.List`1<class OpenRA.Actor> OpenRA.Selection::actors
IL_0026: callvirt instance int32 class [mscorlib]System.Collections.Generic.List`1<class OpenRA.Actor>::get_Count()
IL_002b: brtrue IL_0031
IL_0030: ret
IL_0031: ldarg.s 4
IL_0033: ldc.i4.1
IL_0034: call bool class [OpenRA.FileFormats]OpenRA.Exts::HasModifier(valuetype [OpenRA.FileFormats]OpenRA.Modifiers, valuetype [OpenRA.FileFormats]OpenRA.Modifiers)
IL_0039: brtrue IL_004f
IL_003e: ldarg.0
IL_003f: ldfld class [OpenRA.FileFormats]OpenRA.FileFormats.Cache`2<int32,class [mscorlib]System.Collections.Generic.List`1<class OpenRA.Actor>> OpenRA.Selection::controlGroups
IL_0044: ldarg.3
IL_0045: callvirt instance !1 class [OpenRA.FileFormats]OpenRA.FileFormats.Cache`2<int32, class [mscorlib]System.Collections.Generic.List`1<class OpenRA.Actor>>::get_Item(!0)
IL_004a: callvirt instance void class [mscorlib]System.Collections.Generic.List`1<class OpenRA.Actor>::Clear()
IL_004f: ldc.i4.0
IL_0050: stloc.1
IL_0051: br IL_0078
IL_0056: ldarg.0
IL_0057: ldfld class [OpenRA.FileFormats]OpenRA.FileFormats.Cache`2<int32,class [mscorlib]System.Collections.Generic.List`1<class OpenRA.Actor>> OpenRA.Selection::controlGroups
IL_005c: ldloc.1
IL_005d: callvirt instance !1 class [OpenRA.FileFormats]OpenRA.FileFormats.Cache`2<int32, class [mscorlib]System.Collections.Generic.List`1<class OpenRA.Actor>>::get_Item(!0)
IL_0062: ldarg.0
IL_0063: ldftn instance bool class OpenRA.Selection::'<DoControlGroup>m__65'(class OpenRA.Actor)
IL_0069: newobj instance void class [mscorlib]System.Predicate`1<class OpenRA.Actor>::'.ctor'(object, native int)
IL_006e: callvirt instance int32 class [mscorlib]System.Collections.Generic.List`1<class OpenRA.Actor>::RemoveAll(class [mscorlib]System.Predicate`1<!0>)
IL_0073: pop
IL_0074: ldloc.1
IL_0075: ldc.i4.1
IL_0076: add
IL_0077: stloc.1
IL_0078: ldloc.1
IL_0079: ldc.i4.s 0x0a
IL_007b: blt IL_0056
IL_0080: ldarg.0
IL_0081: ldfld class [OpenRA.FileFormats]OpenRA.FileFormats.Cache`2<int32,class [mscorlib]System.Collections.Generic.List`1<class OpenRA.Actor>> OpenRA.Selection::controlGroups
IL_0086: ldarg.3
IL_0087: callvirt instance !1 class [OpenRA.FileFormats]OpenRA.FileFormats.Cache`2<int32, class [mscorlib]System.Collections.Generic.List`1<class OpenRA.Actor>>::get_Item(!0)
IL_008c: ldarg.0
IL_008d: ldfld class [mscorlib]System.Collections.Generic.List`1<class OpenRA.Actor> OpenRA.Selection::actors
IL_0092: callvirt instance void class [mscorlib]System.Collections.Generic.List`1<class OpenRA.Actor>::AddRange(class [mscorlib]System.Collections.Generic.IEnumerable`1<!0>)
IL_0097: ret
IL_0098: ldarg.s 4
IL_009a: ldc.i4.2
IL_009b: call bool class [OpenRA.FileFormats]OpenRA.Exts::HasModifier(valuetype [OpenRA.FileFormats]OpenRA.Modifiers, valuetype [OpenRA.FileFormats]OpenRA.Modifiers)
IL_00a0: brtrue IL_00ad
IL_00a5: ldarg.s 5
IL_00a7: ldc.i4.2
IL_00a8: blt IL_00c5
IL_00ad: ldarg.2
IL_00ae: callvirt instance class OpenRA.Graphics.Viewport class OpenRA.Graphics.WorldRenderer::get_Viewport()
IL_00b3: ldarg.0
IL_00b4: ldfld class [OpenRA.FileFormats]OpenRA.FileFormats.Cache`2<int32,class [mscorlib]System.Collections.Generic.List`1<class OpenRA.Actor>> OpenRA.Selection::controlGroups
IL_00b9: ldarg.3
IL_00ba: callvirt instance !1 class [OpenRA.FileFormats]OpenRA.FileFormats.Cache`2<int32, class [mscorlib]System.Collections.Generic.List`1<class OpenRA.Actor>>::get_Item(!0)
IL_00bf: callvirt instance void class OpenRA.Graphics.Viewport::Center(class [mscorlib]System.Collections.Generic.IEnumerable`1<class OpenRA.Actor>)
IL_00c4: ret
IL_00c5: ldarg.0
IL_00c6: ldarg.1
IL_00c7: ldarg.0
IL_00c8: ldfld class [OpenRA.FileFormats]OpenRA.FileFormats.Cache`2<int32,class [mscorlib]System.Collections.Generic.List`1<class OpenRA.Actor>> OpenRA.Selection::controlGroups
IL_00cd: ldarg.3
IL_00ce: callvirt instance !1 class [OpenRA.FileFormats]OpenRA.FileFormats.Cache`2<int32, class [mscorlib]System.Collections.Generic.List`1<class OpenRA.Actor>>::get_Item(!0)
IL_00d3: ldarg.s 4
IL_00d5: ldc.i4.1
IL_00d6: call bool class [OpenRA.FileFormats]OpenRA.Exts::HasModifier(valuetype [OpenRA.FileFormats]OpenRA.Modifiers, valuetype [OpenRA.FileFormats]OpenRA.Modifiers)
IL_00db: ldc.i4.0
IL_00dc: call instance void class OpenRA.Selection::Combine(class OpenRA.World, class [mscorlib]System.Collections.Generic.IEnumerable`1<class OpenRA.Actor>, bool, bool)
IL_00e1: ret
} // end of method Selection::DoControlGroup
// method line 434
.method public hidebysig
instance default valuetype [mscorlib]System.Nullable`1<int32> GetControlGroupForActor (class OpenRA.Actor a) cil managed
{
// Method begins at RVA 0xa3e8
// Code size 76 (0x4c)
.maxstack 7
.locals init (
class OpenRA.Selection/'<GetControlGroupForActor>c__AnonStorey31' V_0)
IL_0000: newobj instance void class OpenRA.Selection/'<GetControlGroupForActor>c__AnonStorey31'::'.ctor'()
IL_0005: stloc.0
IL_0006: ldloc.0
IL_0007: ldarg.1
IL_0008: stfld class OpenRA.Actor OpenRA.Selection/'<GetControlGroupForActor>c__AnonStorey31'::a
IL_000d: ldarg.0
IL_000e: ldfld class [OpenRA.FileFormats]OpenRA.FileFormats.Cache`2<int32,class [mscorlib]System.Collections.Generic.List`1<class OpenRA.Actor>> OpenRA.Selection::controlGroups
IL_0013: ldloc.0
IL_0014: ldftn instance bool class OpenRA.Selection/'<GetControlGroupForActor>c__AnonStorey31'::'<>m__66'(valuetype [mscorlib]System.Collections.Generic.KeyValuePair`2<int32,class [mscorlib]System.Collections.Generic.List`1<class OpenRA.Actor>>)
IL_001a: newobj instance void class [System.Core]System.Func`2<valuetype [mscorlib]System.Collections.Generic.KeyValuePair`2<int32, class [mscorlib]System.Collections.Generic.List`1<class OpenRA.Actor>>, bool>::'.ctor'(object, native int)
IL_001f: call class [mscorlib]System.Collections.Generic.IEnumerable`1<!!0> class [System.Core]System.Linq.Enumerable::Where<valuetype [mscorlib]System.Collections.Generic.KeyValuePair`2<int32,class [mscorlib]System.Collections.Generic.List`1<class OpenRA.Actor>>> (class [mscorlib]System.Collections.Generic.IEnumerable`1<!!0>, class [System.Core]System.Func`2<!!0,bool>)
IL_0024: ldsfld class [System.Core]System.Func`2<valuetype [mscorlib]System.Collections.Generic.KeyValuePair`2<int32,class [mscorlib]System.Collections.Generic.List`1<class OpenRA.Actor>>,valuetype [mscorlib]System.Nullable`1<int32>> OpenRA.Selection::'<>f__am$cache5'
IL_0029: brtrue.s IL_003c
IL_002b: ldnull
IL_002c: ldftn valuetype [mscorlib]System.Nullable`1<int32> class OpenRA.Selection::'<GetControlGroupForActor>m__67'(valuetype [mscorlib]System.Collections.Generic.KeyValuePair`2<int32,class [mscorlib]System.Collections.Generic.List`1<class OpenRA.Actor>>)
IL_0032: newobj instance void class [System.Core]System.Func`2<valuetype [mscorlib]System.Collections.Generic.KeyValuePair`2<int32, class [mscorlib]System.Collections.Generic.List`1<class OpenRA.Actor>>, valuetype [mscorlib]System.Nullable`1<int32>>::'.ctor'(object, native int)
IL_0037: stsfld class [System.Core]System.Func`2<valuetype [mscorlib]System.Collections.Generic.KeyValuePair`2<int32,class [mscorlib]System.Collections.Generic.List`1<class OpenRA.Actor>>,valuetype [mscorlib]System.Nullable`1<int32>> OpenRA.Selection::'<>f__am$cache5'
IL_003c: ldsfld class [System.Core]System.Func`2<valuetype [mscorlib]System.Collections.Generic.KeyValuePair`2<int32,class [mscorlib]System.Collections.Generic.List`1<class OpenRA.Actor>>,valuetype [mscorlib]System.Nullable`1<int32>> OpenRA.Selection::'<>f__am$cache5'
IL_0041: call class [mscorlib]System.Collections.Generic.IEnumerable`1<!!1> class [System.Core]System.Linq.Enumerable::Select<valuetype [mscorlib]System.Collections.Generic.KeyValuePair`2<int32,class [mscorlib]System.Collections.Generic.List`1<class OpenRA.Actor>>, valuetype [mscorlib]System.Nullable`1<int32>> (class [mscorlib]System.Collections.Generic.IEnumerable`1<!!0>, class [System.Core]System.Func`2<!!0,!!1>)
IL_0046: call !!0 class [System.Core]System.Linq.Enumerable::FirstOrDefault<valuetype [mscorlib]System.Nullable`1<int32>> (class [mscorlib]System.Collections.Generic.IEnumerable`1<!!0>)
IL_004b: ret
} // end of method Selection::GetControlGroupForActor
// method line 435
.method private static hidebysig
default class [mscorlib]System.Collections.Generic.List`1<class OpenRA.Actor> '<controlGroups>m__61' (int32 _) cil managed
{
.custom instance void class [mscorlib]System.Runtime.CompilerServices.CompilerGeneratedAttribute::'.ctor'() = (01 00 00 00 ) // ....
// Method begins at RVA 0xa440
// Code size 6 (0x6)
.maxstack 8
IL_0000: newobj instance void class [mscorlib]System.Collections.Generic.List`1<class OpenRA.Actor>::'.ctor'()
IL_0005: ret
} // end of method Selection::<controlGroups>m__61
// method line 436
.method private static hidebysig
default bool '<Tick>m__63' (class OpenRA.Actor a) cil managed
{
.custom instance void class [mscorlib]System.Runtime.CompilerServices.CompilerGeneratedAttribute::'.ctor'() = (01 00 00 00 ) // ....
// Method begins at RVA 0xa448
// Code size 10 (0xa)
.maxstack 8
IL_0000: ldarg.0
IL_0001: callvirt instance bool class OpenRA.Actor::get_IsInWorld()
IL_0006: ldc.i4.0
IL_0007: ceq
IL_0009: ret
} // end of method Selection::<Tick>m__63
// method line 437
.method private static hidebysig
default bool '<Tick>m__64' (class OpenRA.Actor a) cil managed
{
.custom instance void class [mscorlib]System.Runtime.CompilerServices.CompilerGeneratedAttribute::'.ctor'() = (01 00 00 00 ) // ....
// Method begins at RVA 0xa454
// Code size 7 (0x7)
.maxstack 8
IL_0000: ldarg.0
IL_0001: callvirt instance bool class OpenRA.Actor::get_Destroyed()
IL_0006: ret
} // end of method Selection::<Tick>m__64
// method line 438
.method private hidebysig
instance default bool '<DoControlGroup>m__65' (class OpenRA.Actor a) cil managed
{
.custom instance void class [mscorlib]System.Runtime.CompilerServices.CompilerGeneratedAttribute::'.ctor'() = (01 00 00 00 ) // ....
// Method begins at RVA 0xa45c
// Code size 13 (0xd)
.maxstack 8
IL_0000: ldarg.0
IL_0001: ldfld class [mscorlib]System.Collections.Generic.List`1<class OpenRA.Actor> OpenRA.Selection::actors
IL_0006: ldarg.1
IL_0007: callvirt instance bool class [mscorlib]System.Collections.Generic.List`1<class OpenRA.Actor>::Contains(!0)
IL_000c: ret
} // end of method Selection::<DoControlGroup>m__65
// method line 439
.method private static hidebysig
default valuetype [mscorlib]System.Nullable`1<int32> '<GetControlGroupForActor>m__67' (valuetype [mscorlib]System.Collections.Generic.KeyValuePair`2<int32, class [mscorlib]System.Collections.Generic.List`1<class OpenRA.Actor>> g) cil managed
{
.custom instance void class [mscorlib]System.Runtime.CompilerServices.CompilerGeneratedAttribute::'.ctor'() = (01 00 00 00 ) // ....
// Method begins at RVA 0xa46c
// Code size 13 (0xd)
.maxstack 8
IL_0000: ldarga.s 0
IL_0002: call instance !0 valuetype [mscorlib]System.Collections.Generic.KeyValuePair`2<int32, class [mscorlib]System.Collections.Generic.List`1<class OpenRA.Actor>>::get_Key()
IL_0007: newobj instance void valuetype [mscorlib]System.Nullable`1<int32>::'.ctor'(!0)
IL_000c: ret
} // end of method Selection::<GetControlGroupForActor>m__67
.property instance class [mscorlib]System.Collections.Generic.IEnumerable`1<class OpenRA.Actor> Actors ()
{
.get instance default class [mscorlib]System.Collections.Generic.IEnumerable`1<class OpenRA.Actor> OpenRA.Selection::get_Actors ()
}
.class nested private auto ansi sealed beforefieldinit '<Combine>c__AnonStorey30'
extends [mscorlib]System.Object
{
.custom instance void class [mscorlib]System.Runtime.CompilerServices.CompilerGeneratedAttribute::'.ctor'() = (01 00 00 00 ) // ....
.field assembly class OpenRA.World world
// method line 2142
.method public hidebysig specialname rtspecialname
instance default void '.ctor' () cil managed
{
// Method begins at RVA 0x2bfcc
// Code size 7 (0x7)
.maxstack 8
IL_0000: ldarg.0
IL_0001: call instance void object::'.ctor'()
IL_0006: ret
} // end of method <Combine>c__AnonStorey30::.ctor
// method line 2143
.method assembly hidebysig
instance default bool '<>m__62' (class OpenRA.Actor a) cil managed
{
// Method begins at RVA 0x2bfd4
// Code size 43 (0x2b)
.maxstack 7
IL_0000: ldarg.1
IL_0001: ldfld class OpenRA.Player OpenRA.Actor::Owner
IL_0006: ldarg.0
IL_0007: ldfld class OpenRA.World OpenRA.Selection/'<Combine>c__AnonStorey30'::world
IL_000c: callvirt instance class OpenRA.Player class OpenRA.World::get_LocalPlayer()
IL_0011: bne.un IL_0029
IL_0016: ldarg.1
IL_0017: callvirt instance bool class OpenRA.Actor::get_IsInWorld()
IL_001c: brfalse IL_0029
IL_0021: ldarg.1
IL_0022: call bool class OpenRA.WorldUtils::HasVoices(class OpenRA.Actor)
IL_0027: br.s IL_002a
IL_0029: ldc.i4.0
IL_002a: ret
} // end of method <Combine>c__AnonStorey30::<>m__62
} // end of class <Combine>c__AnonStorey30
.class nested private auto ansi sealed beforefieldinit '<GetControlGroupForActor>c__AnonStorey31'
extends [mscorlib]System.Object
{
.custom instance void class [mscorlib]System.Runtime.CompilerServices.CompilerGeneratedAttribute::'.ctor'() = (01 00 00 00 ) // ....
.field assembly class OpenRA.Actor a
// method line 2144
.method public hidebysig specialname rtspecialname
instance default void '.ctor' () cil managed
{
// Method begins at RVA 0x2c00c
// Code size 7 (0x7)
.maxstack 8
IL_0000: ldarg.0
IL_0001: call instance void object::'.ctor'()
IL_0006: ret
} // end of method <GetControlGroupForActor>c__AnonStorey31::.ctor
// method line 2145
.method assembly hidebysig
instance default bool '<>m__66' (valuetype [mscorlib]System.Collections.Generic.KeyValuePair`2<int32, class [mscorlib]System.Collections.Generic.List`1<class OpenRA.Actor>> g) cil managed
{
// Method begins at RVA 0x2c014
// Code size 19 (0x13)
.maxstack 8
IL_0000: ldarga.s 1
IL_0002: call instance !1 valuetype [mscorlib]System.Collections.Generic.KeyValuePair`2<int32, class [mscorlib]System.Collections.Generic.List`1<class OpenRA.Actor>>::get_Value()
IL_0007: ldarg.0
IL_0008: ldfld class OpenRA.Actor OpenRA.Selection/'<GetControlGroupForActor>c__AnonStorey31'::a
IL_000d: callvirt instance bool class [mscorlib]System.Collections.Generic.List`1<class OpenRA.Actor>::Contains(!0)
IL_0012: ret
} // end of method <GetControlGroupForActor>c__AnonStorey31::<>m__66
} // end of class <GetControlGroupForActor>c__AnonStorey31
} // end of class OpenRA.Selection
}
.namespace OpenRA
{
.class public auto ansi abstract sealed beforefieldinit FatalErrorDialog
extends [mscorlib]System.Object
{
// method line 440
.method public static hidebysig
default void Show () cil managed
{
// Method begins at RVA 0xa47c
// Code size 516 (0x204)
.maxstack 80
.locals init (
class OpenRA.FatalErrorDialog/'<Show>c__AnonStorey32' V_0,
class [System.Windows.Forms]System.Windows.Forms.Form V_1,
class [System.Windows.Forms]System.Windows.Forms.Form V_2,
class [System.Windows.Forms]System.Windows.Forms.Label V_3,
class [System.Windows.Forms]System.Windows.Forms.Label V_4,
class [System.Windows.Forms]System.Windows.Forms.CheckBox V_5,
class [System.Windows.Forms]System.Windows.Forms.Button V_6,
class [System.Windows.Forms]System.Windows.Forms.Button V_7,
class [System.Windows.Forms]System.Windows.Forms.Button V_8,
class [System.Windows.Forms]System.Windows.Forms.Button V_9)
IL_0000: newobj instance void class OpenRA.FatalErrorDialog/'<Show>c__AnonStorey32'::'.ctor'()
IL_0005: stloc.0
IL_0006: newobj instance void class [System.Windows.Forms]System.Windows.Forms.Form::'.ctor'()
IL_000b: stloc.2
IL_000c: ldloc.2
IL_000d: ldc.i4 315
IL_0012: ldc.i4 140
IL_0017: newobj instance void valuetype [System.Drawing]System.Drawing.Size::'.ctor'(int32, int32)
IL_001c: callvirt instance void class [System.Windows.Forms]System.Windows.Forms.Form::set_Size(valuetype [System.Drawing]System.Drawing.Size)
IL_0021: ldloc.2
IL_0022: ldstr "Fatal Error"
IL_0027: callvirt instance void class [System.Windows.Forms]System.Windows.Forms.Control::set_Text(string)
IL_002c: ldloc.2
IL_002d: ldc.i4.0
IL_002e: callvirt instance void class [System.Windows.Forms]System.Windows.Forms.Form::set_MinimizeBox(bool)
IL_0033: ldloc.2
IL_0034: ldc.i4.0
IL_0035: callvirt instance void class [System.Windows.Forms]System.Windows.Forms.Form::set_MaximizeBox(bool)
IL_003a: ldloc.2
IL_003b: ldc.i4.3
IL_003c: callvirt instance void class [System.Windows.Forms]System.Windows.Forms.Form::set_FormBorderStyle(valuetype [System.Windows.Forms]System.Windows.Forms.FormBorderStyle)
IL_0041: ldloc.2
IL_0042: ldc.i4.1
IL_0043: callvirt instance void class [System.Windows.Forms]System.Windows.Forms.Form::set_StartPosition(valuetype [System.Windows.Forms]System.Windows.Forms.FormStartPosition)
IL_0048: ldloc.2
IL_0049: stloc.1
IL_004a: newobj instance void class [System.Windows.Forms]System.Windows.Forms.Label::'.ctor'()
IL_004f: stloc.s 4
IL_0051: ldloc.s 4
IL_0053: ldc.i4.s 0x0a
IL_0055: ldc.i4.s 0x0a
IL_0057: newobj instance void valuetype [System.Drawing]System.Drawing.Point::'.ctor'(int32, int32)
IL_005c: callvirt instance void class [System.Windows.Forms]System.Windows.Forms.Control::set_Location(valuetype [System.Drawing]System.Drawing.Point)
IL_0061: ldloc.s 4
IL_0063: ldc.i4.1
IL_0064: callvirt instance void class [System.Windows.Forms]System.Windows.Forms.Control::set_AutoSize(bool)
IL_0069: ldloc.s 4
IL_006b: ldstr "OpenRA has encountered a fatal error and must close.{0}Refer to the crash logs and FAQ for more information."
IL_0070: ldc.i4.1
IL_0071: newarr [mscorlib]System.Object
IL_0076: dup
IL_0077: ldc.i4.0
IL_0078: call string class [mscorlib]System.Environment::get_NewLine()
IL_007d: stelem.ref
IL_007e: call string class [OpenRA.FileFormats]OpenRA.Exts::F(string, object[])
IL_0083: callvirt instance void class [System.Windows.Forms]System.Windows.Forms.Control::set_Text(string)
IL_0088: ldloc.s 4
IL_008a: ldc.i4.2
IL_008b: callvirt instance void class [System.Windows.Forms]System.Windows.Forms.Label::set_TextAlign(valuetype [System.Drawing]System.Drawing.ContentAlignment)
IL_0090: ldloc.s 4
IL_0092: stloc.3
IL_0093: ldloc.1
IL_0094: callvirt instance class [System.Windows.Forms]System.Windows.Forms.Control/ControlCollection class [System.Windows.Forms]System.Windows.Forms.Control::get_Controls()
IL_0099: ldloc.3
IL_009a: callvirt instance void class [System.Windows.Forms]System.Windows.Forms.Control/ControlCollection::Add(class [System.Windows.Forms]System.Windows.Forms.Control)
IL_009f: ldloc.0
IL_00a0: newobj instance void class [System.Windows.Forms]System.Windows.Forms.CheckBox::'.ctor'()
IL_00a5: stloc.s 5
IL_00a7: ldloc.s 5
IL_00a9: ldc.i4.s 0x19
IL_00ab: ldc.i4.s 0x32
IL_00ad: newobj instance void valuetype [System.Drawing]System.Drawing.Point::'.ctor'(int32, int32)
IL_00b2: callvirt instance void class [System.Windows.Forms]System.Windows.Forms.Control::set_Location(valuetype [System.Drawing]System.Drawing.Point)
IL_00b7: ldloc.s 5
IL_00b9: ldc.i4.1
IL_00ba: callvirt instance void class [System.Windows.Forms]System.Windows.Forms.Control::set_AutoSize(bool)
IL_00bf: ldloc.s 5
IL_00c1: ldstr "Don't show this message again"
IL_00c6: callvirt instance void class [System.Windows.Forms]System.Windows.Forms.Control::set_Text(string)
IL_00cb: ldloc.s 5
IL_00cd: stfld class [System.Windows.Forms]System.Windows.Forms.CheckBox OpenRA.FatalErrorDialog/'<Show>c__AnonStorey32'::dontShowAgain
IL_00d2: ldloc.1
IL_00d3: callvirt instance class [System.Windows.Forms]System.Windows.Forms.Control/ControlCollection class [System.Windows.Forms]System.Windows.Forms.Control::get_Controls()
IL_00d8: ldloc.0
IL_00d9: ldfld class [System.Windows.Forms]System.Windows.Forms.CheckBox OpenRA.FatalErrorDialog/'<Show>c__AnonStorey32'::dontShowAgain
IL_00de: callvirt instance void class [System.Windows.Forms]System.Windows.Forms.Control/ControlCollection::Add(class [System.Windows.Forms]System.Windows.Forms.Control)
IL_00e3: newobj instance void class [System.Windows.Forms]System.Windows.Forms.Button::'.ctor'()
IL_00e8: stloc.s 7
IL_00ea: ldloc.s 7
IL_00ec: ldc.i4.s 0x0a
IL_00ee: ldc.i4.s 0x50
IL_00f0: newobj instance void valuetype [System.Drawing]System.Drawing.Point::'.ctor'(int32, int32)
IL_00f5: callvirt instance void class [System.Windows.Forms]System.Windows.Forms.Control::set_Location(valuetype [System.Drawing]System.Drawing.Point)
IL_00fa: ldloc.s 7
IL_00fc: ldc.i4.s 0x4b
IL_00fe: ldc.i4.s 0x17
IL_0100: newobj instance void valuetype [System.Drawing]System.Drawing.Size::'.ctor'(int32, int32)
IL_0105: callvirt instance void class [System.Windows.Forms]System.Windows.Forms.Control::set_Size(valuetype [System.Drawing]System.Drawing.Size)
IL_010a: ldloc.s 7
IL_010c: ldstr "View Logs"
IL_0111: callvirt instance void class [System.Windows.Forms]System.Windows.Forms.Control::set_Text(string)
IL_0116: ldloc.s 7
IL_0118: stloc.s 6
IL_011a: ldloc.s 6
IL_011c: ldnull
IL_011d: ldftn void class OpenRA.FatalErrorDialog::ViewLogsClicked(object, class [mscorlib]System.EventArgs)
IL_0123: newobj instance void class [mscorlib]System.EventHandler::'.ctor'(object, native int)
IL_0128: callvirt instance void class [System.Windows.Forms]System.Windows.Forms.Control::add_Click(class [mscorlib]System.EventHandler)
IL_012d: ldloc.1
IL_012e: callvirt instance class [System.Windows.Forms]System.Windows.Forms.Control/ControlCollection class [System.Windows.Forms]System.Windows.Forms.Control::get_Controls()
IL_0133: ldloc.s 6
IL_0135: callvirt instance void class [System.Windows.Forms]System.Windows.Forms.Control/ControlCollection::Add(class [System.Windows.Forms]System.Windows.Forms.Control)
IL_013a: newobj instance void class [System.Windows.Forms]System.Windows.Forms.Button::'.ctor'()
IL_013f: stloc.s 7
IL_0141: ldloc.s 7
IL_0143: ldc.i4.s 0x5a
IL_0145: ldc.i4.s 0x50
IL_0147: newobj instance void valuetype [System.Drawing]System.Drawing.Point::'.ctor'(int32, int32)
IL_014c: callvirt instance void class [System.Windows.Forms]System.Windows.Forms.Control::set_Location(valuetype [System.Drawing]System.Drawing.Point)
IL_0151: ldloc.s 7
IL_0153: ldc.i4.s 0x4b
IL_0155: ldc.i4.s 0x17
IL_0157: newobj instance void valuetype [System.Drawing]System.Drawing.Size::'.ctor'(int32, int32)
IL_015c: callvirt instance void class [System.Windows.Forms]System.Windows.Forms.Control::set_Size(valuetype [System.Drawing]System.Drawing.Size)
IL_0161: ldloc.s 7
IL_0163: ldstr "View FAQ"
IL_0168: callvirt instance void class [System.Windows.Forms]System.Windows.Forms.Control::set_Text(string)
IL_016d: ldloc.s 7
IL_016f: stloc.s 8
IL_0171: ldloc.s 8
IL_0173: ldnull
IL_0174: ldftn void class OpenRA.FatalErrorDialog::ViewFaqClicked(object, class [mscorlib]System.EventArgs)
IL_017a: newobj instance void class [mscorlib]System.EventHandler::'.ctor'(object, native int)
IL_017f: callvirt instance void class [System.Windows.Forms]System.Windows.Forms.Control::add_Click(class [mscorlib]System.EventHandler)
IL_0184: ldloc.1
IL_0185: callvirt instance class [System.Windows.Forms]System.Windows.Forms.Control/ControlCollection class [System.Windows.Forms]System.Windows.Forms.Control::get_Controls()
IL_018a: ldloc.s 8
IL_018c: callvirt instance void class [System.Windows.Forms]System.Windows.Forms.Control/ControlCollection::Add(class [System.Windows.Forms]System.Windows.Forms.Control)
IL_0191: newobj instance void class [System.Windows.Forms]System.Windows.Forms.Button::'.ctor'()
IL_0196: stloc.s 7
IL_0198: ldloc.s 7
IL_019a: ldc.i4 225
IL_019f: ldc.i4.s 0x50
IL_01a1: newobj instance void valuetype [System.Drawing]System.Drawing.Point::'.ctor'(int32, int32)
IL_01a6: callvirt instance void class [System.Windows.Forms]System.Windows.Forms.Control::set_Location(valuetype [System.Drawing]System.Drawing.Point)
IL_01ab: ldloc.s 7
IL_01ad: ldc.i4.s 0x4b
IL_01af: ldc.i4.s 0x17
IL_01b1: newobj instance void valuetype [System.Drawing]System.Drawing.Size::'.ctor'(int32, int32)
IL_01b6: callvirt instance void class [System.Windows.Forms]System.Windows.Forms.Control::set_Size(valuetype [System.Drawing]System.Drawing.Size)
IL_01bb: ldloc.s 7
IL_01bd: ldstr "Quit"
IL_01c2: callvirt instance void class [System.Windows.Forms]System.Windows.Forms.Control::set_Text(string)
IL_01c7: ldloc.s 7
IL_01c9: stloc.s 9
IL_01cb: ldloc.s 9
IL_01cd: ldc.i4.2
IL_01ce: callvirt instance void class [System.Windows.Forms]System.Windows.Forms.Button::set_DialogResult(valuetype [System.Windows.Forms]System.Windows.Forms.DialogResult)
IL_01d3: ldloc.1
IL_01d4: callvirt instance class [System.Windows.Forms]System.Windows.Forms.Control/ControlCollection class [System.Windows.Forms]System.Windows.Forms.Control::get_Controls()
IL_01d9: ldloc.s 9
IL_01db: callvirt instance void class [System.Windows.Forms]System.Windows.Forms.Control/ControlCollection::Add(class [System.Windows.Forms]System.Windows.Forms.Control)
IL_01e0: ldloc.1
IL_01e1: ldloc.0
IL_01e2: ldftn instance void class OpenRA.FatalErrorDialog/'<Show>c__AnonStorey32'::'<>m__68'(object, class [System.Windows.Forms]System.Windows.Forms.FormClosedEventArgs)
IL_01e8: newobj instance void class [System.Windows.Forms]System.Windows.Forms.FormClosedEventHandler::'.ctor'(object, native int)
IL_01ed: callvirt instance void class [System.Windows.Forms]System.Windows.Forms.Form::add_FormClosed(class [System.Windows.Forms]System.Windows.Forms.FormClosedEventHandler)
IL_01f2: call class [System]System.Media.SystemSound class [System]System.Media.SystemSounds::get_Exclamation()
IL_01f7: callvirt instance void class [System]System.Media.SystemSound::Play()
IL_01fc: ldloc.1
IL_01fd: callvirt instance valuetype [System.Windows.Forms]System.Windows.Forms.DialogResult class [System.Windows.Forms]System.Windows.Forms.Form::ShowDialog()
IL_0202: pop
IL_0203: ret
} // end of method FatalErrorDialog::Show
// method line 441
.method private static hidebysig
default void ViewLogsClicked (object sender, class [mscorlib]System.EventArgs e) cil managed
{
// Method begins at RVA 0xa68c
// Code size 23 (0x17)
.maxstack 3
.try { // 0
IL_0000: call string class [OpenRA.FileFormats]OpenRA.Log::get_LogPath()
IL_0005: call class [System]System.Diagnostics.Process class [System]System.Diagnostics.Process::Start(string)
IL_000a: pop
IL_000b: leave IL_0016
} // end .try 0
catch class [mscorlib]System.Object { // 0
IL_0010: pop
IL_0011: leave IL_0016
} // end handler 0
IL_0016: ret
} // end of method FatalErrorDialog::ViewLogsClicked
// method line 442
.method private static hidebysig
default void ViewFaqClicked (object sender, class [mscorlib]System.EventArgs e) cil managed
{
// Method begins at RVA 0xa6cc
// Code size 33 (0x21)
.maxstack 2
.try { // 0
IL_0000: ldsfld class OpenRA.GameRules.Settings OpenRA.Game::Settings
IL_0005: ldfld class OpenRA.GameRules.DebugSettings OpenRA.GameRules.Settings::Debug
IL_000a: ldfld string OpenRA.GameRules.DebugSettings::FatalErrorDialogFaq
IL_000f: call class [System]System.Diagnostics.Process class [System]System.Diagnostics.Process::Start(string)
IL_0014: pop
IL_0015: leave IL_0020
} // end .try 0
catch class [mscorlib]System.Object { // 0
IL_001a: pop
IL_001b: leave IL_0020
} // end handler 0
IL_0020: ret
} // end of method FatalErrorDialog::ViewFaqClicked
.class nested private auto ansi sealed beforefieldinit '<Show>c__AnonStorey32'
extends [mscorlib]System.Object
{
.custom instance void class [mscorlib]System.Runtime.CompilerServices.CompilerGeneratedAttribute::'.ctor'() = (01 00 00 00 ) // ....
.field assembly class [System.Windows.Forms]System.Windows.Forms.CheckBox dontShowAgain
// method line 2146
.method public hidebysig specialname rtspecialname
instance default void '.ctor' () cil managed
{
// Method begins at RVA 0x2c028
// Code size 7 (0x7)
.maxstack 8
IL_0000: ldarg.0
IL_0001: call instance void object::'.ctor'()
IL_0006: ret
} // end of method <Show>c__AnonStorey32::.ctor
// method line 2147
.method assembly hidebysig
instance default void '<>m__68' (object sender, class [System.Windows.Forms]System.Windows.Forms.FormClosedEventArgs e) cil managed
{
// Method begins at RVA 0x2c030
// Code size 40 (0x28)
.maxstack 8
IL_0000: ldsfld class OpenRA.GameRules.Settings OpenRA.Game::Settings
IL_0005: ldfld class OpenRA.GameRules.DebugSettings OpenRA.GameRules.Settings::Debug
IL_000a: ldarg.0
IL_000b: ldfld class [System.Windows.Forms]System.Windows.Forms.CheckBox OpenRA.FatalErrorDialog/'<Show>c__AnonStorey32'::dontShowAgain
IL_0010: callvirt instance bool class [System.Windows.Forms]System.Windows.Forms.CheckBox::get_Checked()
IL_0015: ldc.i4.0
IL_0016: ceq
IL_0018: stfld bool OpenRA.GameRules.DebugSettings::ShowFatalErrorDialog
IL_001d: ldsfld class OpenRA.GameRules.Settings OpenRA.Game::Settings
IL_0022: callvirt instance void class OpenRA.GameRules.Settings::Save()
IL_0027: ret
} // end of method <Show>c__AnonStorey32::<>m__68
} // end of class <Show>c__AnonStorey32
} // end of class OpenRA.FatalErrorDialog
}
.namespace OpenRA
{
.class public auto ansi beforefieldinit Arguments
extends [mscorlib]System.Object
{
.field private class [mscorlib]System.Collections.Generic.Dictionary`2<string,string> args
// method line 443
.method public hidebysig specialname rtspecialname
instance default void '.ctor' (string[] src) cil managed
{
.param [1]
.custom instance void class [mscorlib]System.ParamArrayAttribute::'.ctor'() = (01 00 00 00 ) // ....
// Method begins at RVA 0xa718
// Code size 135 (0x87)
.maxstack 23
.locals init (
class [System]System.Text.RegularExpressions.Regex V_0,
string[] V_1,
int32 V_2,
string V_3,
class [System]System.Text.RegularExpressions.Match V_4)
IL_0000: ldarg.0
IL_0001: newobj instance void class [mscorlib]System.Collections.Generic.Dictionary`2<string, string>::'.ctor'()
IL_0006: stfld class [mscorlib]System.Collections.Generic.Dictionary`2<string,string> OpenRA.Arguments::args
IL_000b: ldarg.0
IL_000c: call instance void object::'.ctor'()
IL_0011: ldstr "([^=]+)=(.*)"
IL_0016: newobj instance void class [System]System.Text.RegularExpressions.Regex::'.ctor'(string)
IL_001b: stloc.0
IL_001c: ldarg.1
IL_001d: stloc.1
IL_001e: ldc.i4.0
IL_001f: stloc.2
IL_0020: br IL_007d
IL_0025: ldloc.1
IL_0026: ldloc.2
IL_0027: ldelem.ref
IL_0028: stloc.3
IL_0029: ldloc.0
IL_002a: ldloc.3
IL_002b: callvirt instance class [System]System.Text.RegularExpressions.Match class [System]System.Text.RegularExpressions.Regex::Match(string)
IL_0030: stloc.s 4
IL_0032: ldloc.s 4
IL_0034: brfalse IL_0045
IL_0039: ldloc.s 4
IL_003b: callvirt instance bool class [System]System.Text.RegularExpressions.Group::get_Success()
IL_0040: brtrue IL_004a
IL_0045: br IL_0079
IL_004a: ldarg.0
IL_004b: ldfld class [mscorlib]System.Collections.Generic.Dictionary`2<string,string> OpenRA.Arguments::args
IL_0050: ldloc.s 4
IL_0052: callvirt instance class [System]System.Text.RegularExpressions.GroupCollection class [System]System.Text.RegularExpressions.Match::get_Groups()
IL_0057: ldc.i4.1
IL_0058: callvirt instance class [System]System.Text.RegularExpressions.Group class [System]System.Text.RegularExpressions.GroupCollection::get_Item(int32)
IL_005d: callvirt instance string class [System]System.Text.RegularExpressions.Capture::get_Value()
IL_0062: ldloc.s 4
IL_0064: callvirt instance class [System]System.Text.RegularExpressions.GroupCollection class [System]System.Text.RegularExpressions.Match::get_Groups()
IL_0069: ldc.i4.2
IL_006a: callvirt instance class [System]System.Text.RegularExpressions.Group class [System]System.Text.RegularExpressions.GroupCollection::get_Item(int32)
IL_006f: callvirt instance string class [System]System.Text.RegularExpressions.Capture::get_Value()
IL_0074: callvirt instance void class [mscorlib]System.Collections.Generic.Dictionary`2<string, string>::set_Item(!0, !1)
IL_0079: ldloc.2
IL_007a: ldc.i4.1
IL_007b: add
IL_007c: stloc.2
IL_007d: ldloc.2
IL_007e: ldloc.1
IL_007f: ldlen
IL_0080: conv.i4
IL_0081: blt IL_0025
IL_0086: ret
} // end of method Arguments::.ctor
// method line 444
.method public static hidebysig specialname
default class OpenRA.Arguments get_Empty () cil managed
{
// Method begins at RVA 0xa7ac
// Code size 12 (0xc)
.maxstack 8
IL_0000: ldc.i4.0
IL_0001: newarr [mscorlib]System.String
IL_0006: newobj instance void class OpenRA.Arguments::'.ctor'(string[])
IL_000b: ret
} // end of method Arguments::get_Empty
// method line 445
.method public hidebysig
instance default bool Contains (string key) cil managed
{
// Method begins at RVA 0xa7bc
// Code size 13 (0xd)
.maxstack 8
IL_0000: ldarg.0
IL_0001: ldfld class [mscorlib]System.Collections.Generic.Dictionary`2<string,string> OpenRA.Arguments::args
IL_0006: ldarg.1
IL_0007: callvirt instance bool class [mscorlib]System.Collections.Generic.Dictionary`2<string, string>::ContainsKey(!0)
IL_000c: ret
} // end of method Arguments::Contains
// method line 446
.method public hidebysig
instance default string GetValue (string key, string defaultValue) cil managed
{
// Method begins at RVA 0xa7cc
// Code size 31 (0x1f)
.maxstack 8
IL_0000: ldarg.0
IL_0001: ldarg.1
IL_0002: call instance bool class OpenRA.Arguments::Contains(string)
IL_0007: brfalse IL_001d
IL_000c: ldarg.0
IL_000d: ldfld class [mscorlib]System.Collections.Generic.Dictionary`2<string,string> OpenRA.Arguments::args
IL_0012: ldarg.1
IL_0013: callvirt instance !1 class [mscorlib]System.Collections.Generic.Dictionary`2<string, string>::get_Item(!0)
IL_0018: br IL_001e
IL_001d: ldarg.2
IL_001e: ret
} // end of method Arguments::GetValue
.property class OpenRA.Arguments Empty ()
{
.get default class OpenRA.Arguments OpenRA.Arguments::get_Empty ()
}
} // end of class OpenRA.Arguments
}
.namespace OpenRA
{
.class private auto ansi abstract sealed beforefieldinit Program
extends [mscorlib]System.Object
{
.field private static class [mscorlib]System.UnhandledExceptionEventHandler '<>f__am$cache0'
.custom instance void class [mscorlib]System.Runtime.CompilerServices.CompilerGeneratedAttribute::'.ctor'() = (01 00 00 00 ) // ....
// method line 447
.method private static hidebysig
default void Main (string[] args) cil managed
{
.custom instance void class [mscorlib]System.STAThreadAttribute::'.ctor'() = (01 00 00 00 ) // ....
// Method begins at RVA 0xa7ec
.entrypoint
// Code size 106 (0x6a)
.maxstack 10
.locals init (
class [mscorlib]System.Exception V_0)
IL_0000: call class [mscorlib]System.Globalization.CultureInfo class [mscorlib]System.Globalization.CultureInfo::get_InvariantCulture()
IL_0005: call void class [System.Windows.Forms]System.Windows.Forms.Application::set_CurrentCulture(class [mscorlib]System.Globalization.CultureInfo)
IL_000a: call bool class [mscorlib]System.Diagnostics.Debugger::get_IsAttached()
IL_000f: brtrue IL_0024
IL_0014: ldarg.0
IL_0015: ldstr "--just-die"
IL_001a: call bool class [System.Core]System.Linq.Enumerable::Contains<string> (class [mscorlib]System.Collections.Generic.IEnumerable`1<!!0>, !!0)
IL_001f: brfalse IL_002b
IL_0024: ldarg.0
IL_0025: call void class OpenRA.Program::Run(string[])
IL_002a: ret
IL_002b: call class [mscorlib]System.AppDomain class [mscorlib]System.AppDomain::get_CurrentDomain()
IL_0030: ldsfld class [mscorlib]System.UnhandledExceptionEventHandler OpenRA.Program::'<>f__am$cache0'
IL_0035: brtrue.s IL_0048
IL_0037: ldnull
IL_0038: ldftn void class OpenRA.Program::'<Main>m__69'(object, class [mscorlib]System.UnhandledExceptionEventArgs)
IL_003e: newobj instance void class [mscorlib]System.UnhandledExceptionEventHandler::'.ctor'(object, native int)
IL_0043: stsfld class [mscorlib]System.UnhandledExceptionEventHandler OpenRA.Program::'<>f__am$cache0'
IL_0048: ldsfld class [mscorlib]System.UnhandledExceptionEventHandler OpenRA.Program::'<>f__am$cache0'
IL_004d: callvirt instance void class [mscorlib]System.AppDomain::add_UnhandledException(class [mscorlib]System.UnhandledExceptionEventHandler)
.try { // 0
IL_0052: ldarg.0
IL_0053: call void class OpenRA.Program::Run(string[])
IL_0058: leave IL_0069
} // end .try 0
catch class [mscorlib]System.Exception { // 0
IL_005d: stloc.0
IL_005e: ldloc.0
IL_005f: call void class OpenRA.Program::FatalError(class [mscorlib]System.Exception)
IL_0064: leave IL_0069
} // end handler 0
IL_0069: ret
} // end of method Program::Main
// method line 448
.method private static hidebysig
default void FatalError (class [mscorlib]System.Exception e) cil managed
{
// Method begins at RVA 0xa880
// Code size 253 (0xfd)
.maxstack 23
.locals init (
class [OpenRA.FileFormats]OpenRA.FileFormats.Mod V_0,
valuetype [mscorlib]System.Collections.Generic.KeyValuePair`2<string, class [OpenRA.FileFormats]OpenRA.FileFormats.Mod> V_1,
string V_2)
IL_0000: ldstr "exception"
IL_0005: ldstr "exception.log"
IL_000a: call void class [OpenRA.FileFormats]OpenRA.Log::AddChannel(string, string)
IL_000f: call class [mscorlib]System.Collections.Generic.Dictionary`2<string,class [OpenRA.FileFormats]OpenRA.FileFormats.Mod> class OpenRA.Game::get_CurrentMods()
IL_0014: call !!0 class [System.Core]System.Linq.Enumerable::First<valuetype [mscorlib]System.Collections.Generic.KeyValuePair`2<string,class [OpenRA.FileFormats]OpenRA.FileFormats.Mod>> (class [mscorlib]System.Collections.Generic.IEnumerable`1<!!0>)
IL_0019: stloc.1
IL_001a: ldloca.s 1
IL_001c: call instance !1 valuetype [mscorlib]System.Collections.Generic.KeyValuePair`2<string, class [OpenRA.FileFormats]OpenRA.FileFormats.Mod>::get_Value()
IL_0021: stloc.0
IL_0022: ldstr "exception"
IL_0027: ldstr "{0} Mod at Version {1}"
IL_002c: ldc.i4.2
IL_002d: newarr [mscorlib]System.Object
IL_0032: dup
IL_0033: ldc.i4.0
IL_0034: ldloc.0
IL_0035: ldfld string [OpenRA.FileFormats]OpenRA.FileFormats.Mod::Title
IL_003a: stelem.ref
IL_003b: dup
IL_003c: ldc.i4.1
IL_003d: ldloc.0
IL_003e: ldfld string [OpenRA.FileFormats]OpenRA.FileFormats.Mod::Version
IL_0043: stelem.ref
IL_0044: call void class [OpenRA.FileFormats]OpenRA.Log::Write(string, string, object[])
IL_0049: ldstr "exception"
IL_004e: ldstr "Operating System: {0} ({1})"
IL_0053: ldc.i4.2
IL_0054: newarr [mscorlib]System.Object
IL_0059: dup
IL_005a: ldc.i4.0
IL_005b: call valuetype [OpenRA.FileFormats]OpenRA.PlatformType class [OpenRA.FileFormats]OpenRA.Platform::get_CurrentPlatform()
IL_0060: box [OpenRA.FileFormats]OpenRA.PlatformType
IL_0065: stelem.ref
IL_0066: dup
IL_0067: ldc.i4.1
IL_0068: call class [mscorlib]System.OperatingSystem class [mscorlib]System.Environment::get_OSVersion()
IL_006d: stelem.ref
IL_006e: call void class [OpenRA.FileFormats]OpenRA.Log::Write(string, string, object[])
IL_0073: ldstr "exception"
IL_0078: ldstr "Runtime Version: {0}"
IL_007d: ldc.i4.1
IL_007e: newarr [mscorlib]System.Object
IL_0083: dup
IL_0084: ldc.i4.0
IL_0085: call string class [OpenRA.FileFormats]OpenRA.Platform::get_RuntimeVersion()
IL_008a: stelem.ref
IL_008b: call void class [OpenRA.FileFormats]OpenRA.Log::Write(string, string, object[])
IL_0090: ldarg.0
IL_0091: call class [mscorlib]System.Text.StringBuilder class OpenRA.Program::BuildExceptionReport(class [mscorlib]System.Exception)
IL_0096: callvirt instance string object::ToString()
IL_009b: stloc.2
IL_009c: ldstr "exception"
IL_00a1: ldstr "{0}"
IL_00a6: ldc.i4.1
IL_00a7: newarr [mscorlib]System.Object
IL_00ac: dup
IL_00ad: ldc.i4.0
IL_00ae: ldloc.2
IL_00af: stelem.ref
IL_00b0: call void class [OpenRA.FileFormats]OpenRA.Log::Write(string, string, object[])
IL_00b5: call class [mscorlib]System.IO.TextWriter class [mscorlib]System.Console::get_Error()
IL_00ba: ldloc.2
IL_00bb: callvirt instance void class [mscorlib]System.IO.TextWriter::WriteLine(string)
IL_00c0: ldsfld class OpenRA.GameRules.Settings OpenRA.Game::Settings
IL_00c5: ldfld class OpenRA.GameRules.DebugSettings OpenRA.GameRules.Settings::Debug
IL_00ca: ldfld bool OpenRA.GameRules.DebugSettings::ShowFatalErrorDialog
IL_00cf: brfalse IL_00fc
IL_00d4: ldsfld class OpenRA.GameRules.Settings OpenRA.Game::Settings
IL_00d9: ldfld class OpenRA.GameRules.ServerSettings OpenRA.GameRules.Settings::Server
IL_00de: ldfld bool OpenRA.GameRules.ServerSettings::Dedicated
IL_00e3: brtrue IL_00fc
IL_00e8: ldsfld class OpenRA.Graphics.Renderer OpenRA.Game::Renderer
IL_00ed: callvirt instance class [OpenRA.FileFormats]OpenRA.FileFormats.Graphics.IGraphicsDevice class OpenRA.Graphics.Renderer::get_Device()
IL_00f2: callvirt instance void class [OpenRA.FileFormats]OpenRA.FileFormats.Graphics.IGraphicsDevice::Quit()
IL_00f7: call void class OpenRA.FatalErrorDialog::Show()
IL_00fc: ret
} // end of method Program::FatalError
// method line 449
.method private static hidebysig
default class [mscorlib]System.Text.StringBuilder BuildExceptionReport (class [mscorlib]System.Exception e) cil managed
{
// Method begins at RVA 0xa98c
// Code size 13 (0xd)
.maxstack 8
IL_0000: ldarg.0
IL_0001: newobj instance void class [mscorlib]System.Text.StringBuilder::'.ctor'()
IL_0006: ldc.i4.0
IL_0007: call class [mscorlib]System.Text.StringBuilder class OpenRA.Program::BuildExceptionReport(class [mscorlib]System.Exception, class [mscorlib]System.Text.StringBuilder, int32)
IL_000c: ret
} // end of method Program::BuildExceptionReport
// method line 450
.method private static hidebysig
default void Indent (class [mscorlib]System.Text.StringBuilder sb, int32 d) cil managed
{
// Method begins at RVA 0xa99c
// Code size 18 (0x12)
.maxstack 8
IL_0000: ldarg.0
IL_0001: ldc.i4.s 0x20
IL_0003: ldarg.1
IL_0004: ldc.i4.2
IL_0005: mul
IL_0006: newobj instance void string::'.ctor'(char, int32)
IL_000b: callvirt instance class [mscorlib]System.Text.StringBuilder class [mscorlib]System.Text.StringBuilder::Append(string)
IL_0010: pop
IL_0011: ret
} // end of method Program::Indent
// method line 451
.method private static hidebysig
default class [mscorlib]System.Text.StringBuilder BuildExceptionReport (class [mscorlib]System.Exception e, class [mscorlib]System.Text.StringBuilder sb, int32 d) cil managed
{
// Method begins at RVA 0xa9b0
// Code size 174 (0xae)
.maxstack 34
.locals init (
class [mscorlib]System.TypeLoadException V_0)
IL_0000: ldarg.0
IL_0001: brtrue IL_0008
IL_0006: ldarg.1
IL_0007: ret
IL_0008: ldarg.1
IL_0009: ldstr "Exception of type `{0}`: {1}"
IL_000e: ldarg.0
IL_000f: callvirt instance class [mscorlib]System.Type class [mscorlib]System.Exception::GetType()
IL_0014: callvirt instance string class [mscorlib]System.Type::get_FullName()
IL_0019: ldarg.0
IL_001a: callvirt instance string class [mscorlib]System.Exception::get_Message()
IL_001f: callvirt instance class [mscorlib]System.Text.StringBuilder class [mscorlib]System.Text.StringBuilder::AppendFormat(string, object, object)
IL_0024: pop
IL_0025: ldarg.0
IL_0026: isinst [mscorlib]System.TypeLoadException
IL_002b: brfalse IL_005c
IL_0030: ldarg.0
IL_0031: castclass [mscorlib]System.TypeLoadException
IL_0036: stloc.0
IL_0037: ldarg.1
IL_0038: callvirt instance class [mscorlib]System.Text.StringBuilder class [mscorlib]System.Text.StringBuilder::AppendLine()
IL_003d: pop
IL_003e: ldarg.1
IL_003f: ldarg.2
IL_0040: call void class OpenRA.Program::Indent(class [mscorlib]System.Text.StringBuilder, int32)
IL_0045: ldarg.1
IL_0046: ldstr "TypeName=`{0}`"
IL_004b: ldloc.0
IL_004c: callvirt instance string class [mscorlib]System.TypeLoadException::get_TypeName()
IL_0051: callvirt instance class [mscorlib]System.Text.StringBuilder class [mscorlib]System.Text.StringBuilder::AppendFormat(string, object)
IL_0056: pop
IL_0057: br IL_005c
IL_005c: ldarg.0
IL_005d: callvirt instance class [mscorlib]System.Exception class [mscorlib]System.Exception::get_InnerException()
IL_0062: brfalse IL_0091
IL_0067: ldarg.1
IL_0068: callvirt instance class [mscorlib]System.Text.StringBuilder class [mscorlib]System.Text.StringBuilder::AppendLine()
IL_006d: pop
IL_006e: ldarg.1
IL_006f: ldarg.2
IL_0070: call void class OpenRA.Program::Indent(class [mscorlib]System.Text.StringBuilder, int32)
IL_0075: ldarg.1
IL_0076: ldstr "Inner "
IL_007b: callvirt instance class [mscorlib]System.Text.StringBuilder class [mscorlib]System.Text.StringBuilder::Append(string)
IL_0080: pop
IL_0081: ldarg.0
IL_0082: callvirt instance class [mscorlib]System.Exception class [mscorlib]System.Exception::get_InnerException()
IL_0087: ldarg.1
IL_0088: ldarg.2
IL_0089: ldc.i4.1
IL_008a: add
IL_008b: call class [mscorlib]System.Text.StringBuilder class OpenRA.Program::BuildExceptionReport(class [mscorlib]System.Exception, class [mscorlib]System.Text.StringBuilder, int32)
IL_0090: pop
IL_0091: ldarg.1
IL_0092: callvirt instance class [mscorlib]System.Text.StringBuilder class [mscorlib]System.Text.StringBuilder::AppendLine()
IL_0097: pop
IL_0098: ldarg.1
IL_0099: ldarg.2
IL_009a: call void class OpenRA.Program::Indent(class [mscorlib]System.Text.StringBuilder, int32)
IL_009f: ldarg.1
IL_00a0: ldarg.0
IL_00a1: callvirt instance string class [mscorlib]System.Exception::get_StackTrace()
IL_00a6: callvirt instance class [mscorlib]System.Text.StringBuilder class [mscorlib]System.Text.StringBuilder::Append(string)
IL_00ab: pop
IL_00ac: ldarg.1
IL_00ad: ret
} // end of method Program::BuildExceptionReport
// method line 452
.method private static hidebysig
default void Run (string[] args) cil managed
{
// Method begins at RVA 0xaa6c
// Code size 22 (0x16)
.maxstack 8
IL_0000: ldarg.0
IL_0001: newobj instance void class OpenRA.Arguments::'.ctor'(string[])
IL_0006: call void class OpenRA.Game::Initialize(class OpenRA.Arguments)
IL_000b: call void class [mscorlib]System.GC::Collect()
IL_0010: call void class OpenRA.Game::Run()
IL_0015: ret
} // end of method Program::Run
// method line 453
.method private static hidebysig
default void '<Main>m__69' (object _, class [mscorlib]System.UnhandledExceptionEventArgs e) cil managed
{
.custom instance void class [mscorlib]System.Runtime.CompilerServices.CompilerGeneratedAttribute::'.ctor'() = (01 00 00 00 ) // ....
// Method begins at RVA 0xaa84
// Code size 17 (0x11)
.maxstack 8
IL_0000: ldarg.1
IL_0001: callvirt instance object class [mscorlib]System.UnhandledExceptionEventArgs::get_ExceptionObject()
IL_0006: castclass [mscorlib]System.Exception
IL_000b: call void class OpenRA.Program::FatalError(class [mscorlib]System.Exception)
IL_0010: ret
} // end of method Program::<Main>m__69
} // end of class OpenRA.Program
}
.namespace OpenRA.Support
{
.class public auto ansi abstract sealed beforefieldinit PerfHistory
extends [mscorlib]System.Object
{
.field private static initonly valuetype [System.Drawing]System.Drawing.Color[] colors
.field private static int32 nextColor
.field public static class [OpenRA.FileFormats]OpenRA.FileFormats.Cache`2<string,class OpenRA.Support.PerfItem> items
.field private static class [System.Core]System.Func`2<string,class OpenRA.Support.PerfItem> '<>f__am$cache3'
.custom instance void class [mscorlib]System.Runtime.CompilerServices.CompilerGeneratedAttribute::'.ctor'() = (01 00 00 00 ) // ....
// method line 454
.method private static specialname rtspecialname
default void '.cctor' () cil managed
{
// Method begins at RVA 0xaa98
// Code size 223 (0xdf)
.maxstack 14
IL_0000: ldc.i4.s 0x0a
IL_0002: newarr [System.Drawing]System.Drawing.Color
IL_0007: dup
IL_0008: ldc.i4.0
IL_0009: ldelema [System.Drawing]System.Drawing.Color
IL_000e: call valuetype [System.Drawing]System.Drawing.Color valuetype [System.Drawing]System.Drawing.Color::get_Red()
IL_0013: stobj [System.Drawing]System.Drawing.Color
IL_0018: dup
IL_0019: ldc.i4.1
IL_001a: ldelema [System.Drawing]System.Drawing.Color
IL_001f: call valuetype [System.Drawing]System.Drawing.Color valuetype [System.Drawing]System.Drawing.Color::get_Green()
IL_0024: stobj [System.Drawing]System.Drawing.Color
IL_0029: dup
IL_002a: ldc.i4.2
IL_002b: ldelema [System.Drawing]System.Drawing.Color
IL_0030: call valuetype [System.Drawing]System.Drawing.Color valuetype [System.Drawing]System.Drawing.Color::get_Orange()
IL_0035: stobj [System.Drawing]System.Drawing.Color
IL_003a: dup
IL_003b: ldc.i4.3
IL_003c: ldelema [System.Drawing]System.Drawing.Color
IL_0041: call valuetype [System.Drawing]System.Drawing.Color valuetype [System.Drawing]System.Drawing.Color::get_Yellow()
IL_0046: stobj [System.Drawing]System.Drawing.Color
IL_004b: dup
IL_004c: ldc.i4.4
IL_004d: ldelema [System.Drawing]System.Drawing.Color
IL_0052: call valuetype [System.Drawing]System.Drawing.Color valuetype [System.Drawing]System.Drawing.Color::get_Fuchsia()
IL_0057: stobj [System.Drawing]System.Drawing.Color
IL_005c: dup
IL_005d: ldc.i4.5
IL_005e: ldelema [System.Drawing]System.Drawing.Color
IL_0063: call valuetype [System.Drawing]System.Drawing.Color valuetype [System.Drawing]System.Drawing.Color::get_Lime()
IL_0068: stobj [System.Drawing]System.Drawing.Color
IL_006d: dup
IL_006e: ldc.i4.6
IL_006f: ldelema [System.Drawing]System.Drawing.Color
IL_0074: call valuetype [System.Drawing]System.Drawing.Color valuetype [System.Drawing]System.Drawing.Color::get_LightBlue()
IL_0079: stobj [System.Drawing]System.Drawing.Color
IL_007e: dup
IL_007f: ldc.i4.7
IL_0080: ldelema [System.Drawing]System.Drawing.Color
IL_0085: call valuetype [System.Drawing]System.Drawing.Color valuetype [System.Drawing]System.Drawing.Color::get_Blue()
IL_008a: stobj [System.Drawing]System.Drawing.Color
IL_008f: dup
IL_0090: ldc.i4.8
IL_0091: ldelema [System.Drawing]System.Drawing.Color
IL_0096: call valuetype [System.Drawing]System.Drawing.Color valuetype [System.Drawing]System.Drawing.Color::get_White()
IL_009b: stobj [System.Drawing]System.Drawing.Color
IL_00a0: dup
IL_00a1: ldc.i4.s 0x09
IL_00a3: ldelema [System.Drawing]System.Drawing.Color
IL_00a8: call valuetype [System.Drawing]System.Drawing.Color valuetype [System.Drawing]System.Drawing.Color::get_Teal()
IL_00ad: stobj [System.Drawing]System.Drawing.Color
IL_00b2: stsfld valuetype [System.Drawing]System.Drawing.Color[] OpenRA.Support.PerfHistory::colors
IL_00b7: ldsfld class [System.Core]System.Func`2<string,class OpenRA.Support.PerfItem> OpenRA.Support.PerfHistory::'<>f__am$cache3'
IL_00bc: brtrue.s IL_00cf
IL_00be: ldnull
IL_00bf: ldftn class OpenRA.Support.PerfItem class OpenRA.Support.PerfHistory::'<items>m__6A'(string)
IL_00c5: newobj instance void class [System.Core]System.Func`2<string, class OpenRA.Support.PerfItem>::'.ctor'(object, native int)
IL_00ca: stsfld class [System.Core]System.Func`2<string,class OpenRA.Support.PerfItem> OpenRA.Support.PerfHistory::'<>f__am$cache3'
IL_00cf: ldsfld class [System.Core]System.Func`2<string,class OpenRA.Support.PerfItem> OpenRA.Support.PerfHistory::'<>f__am$cache3'
IL_00d4: newobj instance void class [OpenRA.FileFormats]OpenRA.FileFormats.Cache`2<string, class OpenRA.Support.PerfItem>::'.ctor'(class [System.Core]System.Func`2<!0,!1>)
IL_00d9: stsfld class [OpenRA.FileFormats]OpenRA.FileFormats.Cache`2<string,class OpenRA.Support.PerfItem> OpenRA.Support.PerfHistory::items
IL_00de: ret
} // end of method PerfHistory::.cctor
// method line 455
.method public static hidebysig
default void Increment (string item, float64 x) cil managed
{
// Method begins at RVA 0xab84
// Code size 25 (0x19)
.maxstack 8
IL_0000: ldsfld class [OpenRA.FileFormats]OpenRA.FileFormats.Cache`2<string,class OpenRA.Support.PerfItem> OpenRA.Support.PerfHistory::items
IL_0005: ldarg.0
IL_0006: callvirt instance !1 class [OpenRA.FileFormats]OpenRA.FileFormats.Cache`2<string, class OpenRA.Support.PerfItem>::get_Item(!0)
IL_000b: dup
IL_000c: ldfld float64 OpenRA.Support.PerfItem::val
IL_0011: ldarg.1
IL_0012: add
IL_0013: stfld float64 OpenRA.Support.PerfItem::val
IL_0018: ret
} // end of method PerfHistory::Increment
// method line 456
.method public static hidebysig
default void Tick () cil managed
{
// Method begins at RVA 0xaba0
// Code size 75 (0x4b)
.maxstack 12
.locals init (
class [mscorlib]System.Collections.Generic.IEnumerator`1<class OpenRA.Support.PerfItem> V_0,
class OpenRA.Support.PerfItem V_1)
IL_0000: ldsfld class [OpenRA.FileFormats]OpenRA.FileFormats.Cache`2<string,class OpenRA.Support.PerfItem> OpenRA.Support.PerfHistory::items
IL_0005: callvirt instance class [mscorlib]System.Collections.Generic.IEnumerable`1<!1> class [OpenRA.FileFormats]OpenRA.FileFormats.Cache`2<string, class OpenRA.Support.PerfItem>::get_Values()
IL_000a: callvirt instance class [mscorlib]System.Collections.Generic.IEnumerator`1<!0> class [mscorlib]System.Collections.Generic.IEnumerable`1<class OpenRA.Support.PerfItem>::GetEnumerator()
IL_000f: stloc.0
.try { // 0
IL_0010: br IL_002d
IL_0015: ldloc.0
IL_0016: callvirt instance !0 class [mscorlib]System.Collections.Generic.IEnumerator`1<class OpenRA.Support.PerfItem>::get_Current()
IL_001b: stloc.1
IL_001c: ldloc.1
IL_001d: ldfld bool OpenRA.Support.PerfItem::hasNormalTick
IL_0022: brfalse IL_002d
IL_0027: ldloc.1
IL_0028: callvirt instance void class OpenRA.Support.PerfItem::Tick()
IL_002d: ldloc.0
IL_002e: callvirt instance bool class [mscorlib]System.Collections.IEnumerator::MoveNext()
IL_0033: brtrue IL_0015
IL_0038: leave IL_004a
} // end .try 0
finally { // 0
IL_003d: ldloc.0
IL_003e: brfalse IL_0049
IL_0043: ldloc.0
IL_0044: callvirt instance void class [mscorlib]System.IDisposable::Dispose()
IL_0049: endfinally
} // end handler 0
IL_004a: ret
} // end of method PerfHistory::Tick
// method line 457
.method private static hidebysig
default class OpenRA.Support.PerfItem '<items>m__6A' (string s) cil managed
{
.custom instance void class [mscorlib]System.Runtime.CompilerServices.CompilerGeneratedAttribute::'.ctor'() = (01 00 00 00 ) // ....
// Method begins at RVA 0xac14
// Code size 60 (0x3c)
.maxstack 6
.locals init (
class OpenRA.Support.PerfItem V_0)
IL_0000: ldarg.0
IL_0001: ldsfld valuetype [System.Drawing]System.Drawing.Color[] OpenRA.Support.PerfHistory::colors
IL_0006: ldsfld int32 OpenRA.Support.PerfHistory::nextColor
IL_000b: dup
IL_000c: ldc.i4.1
IL_000d: add
IL_000e: stsfld int32 OpenRA.Support.PerfHistory::nextColor
IL_0013: ldelema [System.Drawing]System.Drawing.Color
IL_0018: ldobj [System.Drawing]System.Drawing.Color
IL_001d: newobj instance void class OpenRA.Support.PerfItem::'.ctor'(string, valuetype [System.Drawing]System.Drawing.Color)
IL_0022: stloc.0
IL_0023: ldsfld int32 OpenRA.Support.PerfHistory::nextColor
IL_0028: ldsfld valuetype [System.Drawing]System.Drawing.Color[] OpenRA.Support.PerfHistory::colors
IL_002d: ldlen
IL_002e: conv.i4
IL_002f: blt IL_003a
IL_0034: ldc.i4.0
IL_0035: stsfld int32 OpenRA.Support.PerfHistory::nextColor
IL_003a: ldloc.0
IL_003b: ret
} // end of method PerfHistory::<items>m__6A
} // end of class OpenRA.Support.PerfHistory
}
.namespace OpenRA.Support
{
.class public auto ansi beforefieldinit PerfItem
extends [mscorlib]System.Object
{
.field public initonly valuetype [System.Drawing]System.Drawing.Color c
.field public initonly string Name
.field public float64[] samples
.field public float64 val
.field private int32 head
.field private int32 tail
.field public bool hasNormalTick
// method line 458
.method public hidebysig specialname rtspecialname
instance default void '.ctor' (string name, valuetype [System.Drawing]System.Drawing.Color c) cil managed
{
// Method begins at RVA 0xac5c
// Code size 70 (0x46)
.maxstack 4
IL_0000: ldarg.0
IL_0001: ldc.i4.s 0x64
IL_0003: newarr [mscorlib]System.Double
IL_0008: stfld float64[] OpenRA.Support.PerfItem::samples
IL_000d: ldarg.0
IL_000e: ldc.r8 0.
IL_0017: stfld float64 OpenRA.Support.PerfItem::val
IL_001c: ldarg.0
IL_001d: ldc.i4.1
IL_001e: stfld int32 OpenRA.Support.PerfItem::head
IL_0023: ldarg.0
IL_0024: ldc.i4.0
IL_0025: stfld int32 OpenRA.Support.PerfItem::tail
IL_002a: ldarg.0
IL_002b: ldc.i4.1
IL_002c: stfld bool OpenRA.Support.PerfItem::hasNormalTick
IL_0031: ldarg.0
IL_0032: call instance void object::'.ctor'()
IL_0037: ldarg.0
IL_0038: ldarg.1
IL_0039: stfld string OpenRA.Support.PerfItem::Name
IL_003e: ldarg.0
IL_003f: ldarg.2
IL_0040: stfld valuetype [System.Drawing]System.Drawing.Color OpenRA.Support.PerfItem::c
IL_0045: ret
} // end of method PerfItem::.ctor
// method line 459
.method public hidebysig
instance default void Tick () cil managed
{
// Method begins at RVA 0xacb0
// Code size 126 (0x7e)
.maxstack 5
.locals init (
int32 V_0)
IL_0000: ldarg.0
IL_0001: ldfld float64[] OpenRA.Support.PerfItem::samples
IL_0006: ldarg.0
IL_0007: dup
IL_0008: ldfld int32 OpenRA.Support.PerfItem::head
IL_000d: dup
IL_000e: stloc.0
IL_000f: ldc.i4.1
IL_0010: add
IL_0011: stfld int32 OpenRA.Support.PerfItem::head
IL_0016: ldloc.0
IL_0017: ldarg.0
IL_0018: ldfld float64 OpenRA.Support.PerfItem::val
IL_001d: stelem.r8
IL_001e: ldarg.0
IL_001f: ldfld int32 OpenRA.Support.PerfItem::head
IL_0024: ldarg.0
IL_0025: ldfld float64[] OpenRA.Support.PerfItem::samples
IL_002a: ldlen
IL_002b: conv.i4
IL_002c: bne.un IL_0038
IL_0031: ldarg.0
IL_0032: ldc.i4.0
IL_0033: stfld int32 OpenRA.Support.PerfItem::head
IL_0038: ldarg.0
IL_0039: ldfld int32 OpenRA.Support.PerfItem::head
IL_003e: ldarg.0
IL_003f: ldfld int32 OpenRA.Support.PerfItem::tail
IL_0044: bne.un IL_006e
IL_0049: ldarg.0
IL_004a: dup
IL_004b: ldfld int32 OpenRA.Support.PerfItem::tail
IL_0050: ldc.i4.1
IL_0051: add
IL_0052: dup
IL_0053: stloc.0
IL_0054: stfld int32 OpenRA.Support.PerfItem::tail
IL_0059: ldloc.0
IL_005a: ldarg.0
IL_005b: ldfld float64[] OpenRA.Support.PerfItem::samples
IL_0060: ldlen
IL_0061: conv.i4
IL_0062: bne.un IL_006e
IL_0067: ldarg.0
IL_0068: ldc.i4.0
IL_0069: stfld int32 OpenRA.Support.PerfItem::tail
IL_006e: ldarg.0
IL_006f: ldc.r8 0.
IL_0078: stfld float64 OpenRA.Support.PerfItem::val
IL_007d: ret
} // end of method PerfItem::Tick
// method line 460
.method public hidebysig
instance default class [mscorlib]System.Collections.Generic.IEnumerable`1<float64> Samples () cil managed
{
.custom instance void class [mscorlib]System.Diagnostics.DebuggerHiddenAttribute::'.ctor'() = (01 00 00 00 ) // ....
// Method begins at RVA 0xad3c
// Code size 23 (0x17)
.maxstack 3
.locals init (
class OpenRA.Support.PerfItem/'<Samples>c__Iterator0' V_0)
IL_0000: newobj instance void class OpenRA.Support.PerfItem/'<Samples>c__Iterator0'::'.ctor'()
IL_0005: stloc.0
IL_0006: ldloc.0
IL_0007: ldarg.0
IL_0008: stfld class OpenRA.Support.PerfItem OpenRA.Support.PerfItem/'<Samples>c__Iterator0'::'<>f__this'
IL_000d: ldloc.0
IL_000e: dup
IL_000f: ldc.i4.s 0xfffffffe
IL_0011: stfld int32 OpenRA.Support.PerfItem/'<Samples>c__Iterator0'::$PC
IL_0016: ret
} // end of method PerfItem::Samples
// method line 461
.method public hidebysig
instance default float64 Average (int32 count) cil managed
{
// Method begins at RVA 0xad60
// Code size 85 (0x55)
.maxstack 4
.locals init (
int32 V_0,
int32 V_1,
float64 V_2)
IL_0000: ldc.i4.0
IL_0001: stloc.0
IL_0002: ldarg.0
IL_0003: ldfld int32 OpenRA.Support.PerfItem::head
IL_0008: stloc.1
IL_0009: ldc.r8 0.
IL_0012: stloc.2
IL_0013: br IL_003d
IL_0018: ldloc.1
IL_0019: ldc.i4.1
IL_001a: sub
IL_001b: dup
IL_001c: stloc.1
IL_001d: ldc.i4.0
IL_001e: bge IL_002e
IL_0023: ldarg.0
IL_0024: ldfld float64[] OpenRA.Support.PerfItem::samples
IL_0029: ldlen
IL_002a: conv.i4
IL_002b: ldc.i4.1
IL_002c: sub
IL_002d: stloc.1
IL_002e: ldloc.2
IL_002f: ldarg.0
IL_0030: ldfld float64[] OpenRA.Support.PerfItem::samples
IL_0035: ldloc.1
IL_0036: ldelem.r8
IL_0037: add
IL_0038: stloc.2
IL_0039: ldloc.0
IL_003a: ldc.i4.1
IL_003b: add
IL_003c: stloc.0
IL_003d: ldloc.0
IL_003e: ldarg.1
IL_003f: bge IL_0050
IL_0044: ldloc.1
IL_0045: ldarg.0
IL_0046: ldfld int32 OpenRA.Support.PerfItem::tail
IL_004b: bne.un IL_0018
IL_0050: ldloc.2
IL_0051: ldloc.0
IL_0052: conv.r8
IL_0053: div
IL_0054: ret
} // end of method PerfItem::Average
// method line 462
.method public hidebysig specialname
instance default float64 get_LastValue () cil managed
{
// Method begins at RVA 0xadc4
// Code size 38 (0x26)
.maxstack 3
.locals init (
int32 V_0)
IL_0000: ldarg.0
IL_0001: ldfld int32 OpenRA.Support.PerfItem::head
IL_0006: stloc.0
IL_0007: ldloc.0
IL_0008: ldc.i4.1
IL_0009: sub
IL_000a: dup
IL_000b: stloc.0
IL_000c: ldc.i4.0
IL_000d: bge IL_001d
IL_0012: ldarg.0
IL_0013: ldfld float64[] OpenRA.Support.PerfItem::samples
IL_0018: ldlen
IL_0019: conv.i4
IL_001a: ldc.i4.1
IL_001b: sub
IL_001c: stloc.0
IL_001d: ldarg.0
IL_001e: ldfld float64[] OpenRA.Support.PerfItem::samples
IL_0023: ldloc.0
IL_0024: ldelem.r8
IL_0025: ret
} // end of method PerfItem::get_LastValue
.property instance float64 LastValue ()
{
.get instance default float64 OpenRA.Support.PerfItem::get_LastValue ()
}
.class nested private auto ansi sealed beforefieldinit '<Samples>c__Iterator0'
extends [mscorlib]System.Object
implements [mscorlib]System.IDisposable, [mscorlib]System.Collections.IEnumerator, [mscorlib]System.Collections.IEnumerable, class [mscorlib]System.Collections.Generic.IEnumerable`1<float64>, class [mscorlib]System.Collections.Generic.IEnumerator`1<float64> {
.custom instance void class [mscorlib]System.Runtime.CompilerServices.CompilerGeneratedAttribute::'.ctor'() = (01 00 00 00 ) // ....
.field assembly int32 '<n>__0'
.field assembly int32 $PC
.field assembly float64 $current
.field assembly class OpenRA.Support.PerfItem '<>f__this'
// method line 2148
.method public hidebysig specialname rtspecialname
instance default void '.ctor' () cil managed
{
// Method begins at RVA 0x2c05c
// Code size 7 (0x7)
.maxstack 8
IL_0000: ldarg.0
IL_0001: call instance void object::'.ctor'()
IL_0006: ret
} // end of method <Samples>c__Iterator0::.ctor
// method line 2149
.method private final virtual hidebysig newslot specialname
instance default float64 'System.Collections.Generic.IEnumerator<double>.get_Current' () cil managed
{
.custom instance void class [mscorlib]System.Diagnostics.DebuggerHiddenAttribute::'.ctor'() = (01 00 00 00 ) // ....
// Method begins at RVA 0x2c064
.override method instance !0 class [mscorlib]System.Collections.Generic.IEnumerator`1<float64>::get_Current()
// Code size 7 (0x7)
.maxstack 8
IL_0000: ldarg.0
IL_0001: ldfld float64 OpenRA.Support.PerfItem/'<Samples>c__Iterator0'::$current
IL_0006: ret
} // end of method <Samples>c__Iterator0::System.Collections.Generic.IEnumerator<double>.get_Current
// method line 2150
.method private final virtual hidebysig newslot specialname
instance default object System.Collections.IEnumerator.get_Current () cil managed
{
.custom instance void class [mscorlib]System.Diagnostics.DebuggerHiddenAttribute::'.ctor'() = (01 00 00 00 ) // ....
// Method begins at RVA 0x2c06c
.override class [mscorlib]System.Collections.IEnumerator::get_Current
// Code size 12 (0xc)
.maxstack 8
IL_0000: ldarg.0
IL_0001: ldfld float64 OpenRA.Support.PerfItem/'<Samples>c__Iterator0'::$current
IL_0006: box [mscorlib]System.Double
IL_000b: ret
} // end of method <Samples>c__Iterator0::System.Collections.IEnumerator.get_Current
// method line 2151
.method private final virtual hidebysig newslot
instance default class [mscorlib]System.Collections.IEnumerator System.Collections.IEnumerable.GetEnumerator () cil managed
{
// Method begins at RVA 0x2c07c
.override class [mscorlib]System.Collections.IEnumerable::GetEnumerator
// Code size 7 (0x7)
.maxstack 8
IL_0000: ldarg.0
IL_0001: call instance class [mscorlib]System.Collections.Generic.IEnumerator`1<float64> class OpenRA.Support.PerfItem/'<Samples>c__Iterator0'::'System.Collections.Generic.IEnumerable<double>.GetEnumerator'()
IL_0006: ret
} // end of method <Samples>c__Iterator0::System.Collections.IEnumerable.GetEnumerator
// method line 2152
.method private final virtual hidebysig newslot
instance default class [mscorlib]System.Collections.Generic.IEnumerator`1<float64> 'System.Collections.Generic.IEnumerable<double>.GetEnumerator' () cil managed
{
.custom instance void class [mscorlib]System.Diagnostics.DebuggerHiddenAttribute::'.ctor'() = (01 00 00 00 ) // ....
// Method begins at RVA 0x2c084
.override method instance class [mscorlib]System.Collections.Generic.IEnumerator`1<!0> class [mscorlib]System.Collections.Generic.IEnumerable`1<float64>::GetEnumerator()
// Code size 40 (0x28)
.maxstack 5
.locals init (
class OpenRA.Support.PerfItem/'<Samples>c__Iterator0' V_0)
IL_0000: ldarg.0
IL_0001: ldflda int32 OpenRA.Support.PerfItem/'<Samples>c__Iterator0'::$PC
IL_0006: ldc.i4.0
IL_0007: ldc.i4.s 0xfffffffe
IL_0009: call int32 class [mscorlib]System.Threading.Interlocked::CompareExchange([out] int32&, int32, int32)
IL_000e: ldc.i4.s 0xfffffffe
IL_0010: bne.un.s IL_0014
IL_0012: ldarg.0
IL_0013: ret
IL_0014: newobj instance void class OpenRA.Support.PerfItem/'<Samples>c__Iterator0'::'.ctor'()
IL_0019: stloc.0
IL_001a: ldloc.0
IL_001b: ldarg.0
IL_001c: ldfld class OpenRA.Support.PerfItem OpenRA.Support.PerfItem/'<Samples>c__Iterator0'::'<>f__this'
IL_0021: stfld class OpenRA.Support.PerfItem OpenRA.Support.PerfItem/'<Samples>c__Iterator0'::'<>f__this'
IL_0026: ldloc.0
IL_0027: ret
} // end of method <Samples>c__Iterator0::System.Collections.Generic.IEnumerable<double>.GetEnumerator
// method line 2153
.method public final virtual hidebysig newslot
instance default bool MoveNext () cil managed
{
// Method begins at RVA 0x2c0b8
// Code size 171 (0xab)
.maxstack 4
.locals init (
unsigned int32 V_0)
IL_0000: ldarg.0
IL_0001: ldfld int32 OpenRA.Support.PerfItem/'<Samples>c__Iterator0'::$PC
IL_0006: stloc.0
IL_0007: ldarg.0
IL_0008: ldc.i4.m1
IL_0009: stfld int32 OpenRA.Support.PerfItem/'<Samples>c__Iterator0'::$PC
IL_000e: ldloc.0
IL_000f: switch (
IL_0021,
IL_008a)
IL_001c: br IL_00a7
IL_0021: ldarg.0
IL_0022: ldarg.0
IL_0023: ldfld class OpenRA.Support.PerfItem OpenRA.Support.PerfItem/'<Samples>c__Iterator0'::'<>f__this'
IL_0028: ldfld int32 OpenRA.Support.PerfItem::head
IL_002d: stfld int32 OpenRA.Support.PerfItem/'<Samples>c__Iterator0'::'<n>__0'
IL_0032: br IL_008a
IL_0037: ldarg.0
IL_0038: ldarg.0
IL_0039: ldfld int32 OpenRA.Support.PerfItem/'<Samples>c__Iterator0'::'<n>__0'
IL_003e: ldc.i4.1
IL_003f: sub
IL_0040: stfld int32 OpenRA.Support.PerfItem/'<Samples>c__Iterator0'::'<n>__0'
IL_0045: ldarg.0
IL_0046: ldfld int32 OpenRA.Support.PerfItem/'<Samples>c__Iterator0'::'<n>__0'
IL_004b: ldc.i4.0
IL_004c: bge IL_0066
IL_0051: ldarg.0
IL_0052: ldarg.0
IL_0053: ldfld class OpenRA.Support.PerfItem OpenRA.Support.PerfItem/'<Samples>c__Iterator0'::'<>f__this'
IL_0058: ldfld float64[] OpenRA.Support.PerfItem::samples
IL_005d: ldlen
IL_005e: conv.i4
IL_005f: ldc.i4.1
IL_0060: sub
IL_0061: stfld int32 OpenRA.Support.PerfItem/'<Samples>c__Iterator0'::'<n>__0'
IL_0066: ldarg.0
IL_0067: ldarg.0
IL_0068: ldfld class OpenRA.Support.PerfItem OpenRA.Support.PerfItem/'<Samples>c__Iterator0'::'<>f__this'
IL_006d: ldfld float64[] OpenRA.Support.PerfItem::samples
IL_0072: ldarg.0
IL_0073: ldfld int32 OpenRA.Support.PerfItem/'<Samples>c__Iterator0'::'<n>__0'
IL_0078: ldelem.r8
IL_0079: stfld float64 OpenRA.Support.PerfItem/'<Samples>c__Iterator0'::$current
IL_007e: ldarg.0
IL_007f: ldc.i4.1
IL_0080: stfld int32 OpenRA.Support.PerfItem/'<Samples>c__Iterator0'::$PC
IL_0085: br IL_00a9
IL_008a: ldarg.0
IL_008b: ldfld int32 OpenRA.Support.PerfItem/'<Samples>c__Iterator0'::'<n>__0'
IL_0090: ldarg.0
IL_0091: ldfld class OpenRA.Support.PerfItem OpenRA.Support.PerfItem/'<Samples>c__Iterator0'::'<>f__this'
IL_0096: ldfld int32 OpenRA.Support.PerfItem::tail
IL_009b: bne.un IL_0037
IL_00a0: ldarg.0
IL_00a1: ldc.i4.m1
IL_00a2: stfld int32 OpenRA.Support.PerfItem/'<Samples>c__Iterator0'::$PC
IL_00a7: ldc.i4.0
IL_00a8: ret
IL_00a9: ldc.i4.1
IL_00aa: ret
} // end of method <Samples>c__Iterator0::MoveNext
// method line 2154
.method public final virtual hidebysig newslot
instance default void Dispose () cil managed
{
.custom instance void class [mscorlib]System.Diagnostics.DebuggerHiddenAttribute::'.ctor'() = (01 00 00 00 ) // ....
// Method begins at RVA 0x2c170
// Code size 8 (0x8)
.maxstack 8
IL_0000: ldarg.0
IL_0001: ldc.i4.m1
IL_0002: stfld int32 OpenRA.Support.PerfItem/'<Samples>c__Iterator0'::$PC
IL_0007: ret
} // end of method <Samples>c__Iterator0::Dispose
// method line 2155
.method public final virtual hidebysig newslot
instance default void Reset () cil managed
{
.custom instance void class [mscorlib]System.Diagnostics.DebuggerHiddenAttribute::'.ctor'() = (01 00 00 00 ) // ....
// Method begins at RVA 0x2c17c
// Code size 6 (0x6)
.maxstack 8
IL_0000: newobj instance void class [mscorlib]System.NotSupportedException::'.ctor'()
IL_0005: throw
} // end of method <Samples>c__Iterator0::Reset
.property instance float64 'System.Collections.Generic.IEnumerator<double>.Current' ()
{
.get instance default float64 OpenRA.Support.PerfItem/'<Samples>c__Iterator0'::'System.Collections.Generic.IEnumerator<double>.get_Current' ()
}
.property instance object System.Collections.IEnumerator.Current ()
{
.get instance default object OpenRA.Support.PerfItem/'<Samples>c__Iterator0'::System.Collections.IEnumerator.get_Current ()
}
} // end of class <Samples>c__Iterator0
} // end of class OpenRA.Support.PerfItem
}
.namespace OpenRA.Support
{
.class public auto ansi beforefieldinit PerfSample
extends [mscorlib]System.Object
implements [mscorlib]System.IDisposable {
.field private initonly class [OpenRA.FileFormats]OpenRA.Support.Stopwatch sw
.field private initonly string Item
// method line 463
.method public hidebysig specialname rtspecialname
instance default void '.ctor' (string item) cil managed
{
// Method begins at RVA 0xadf8
// Code size 25 (0x19)
.maxstack 8
IL_0000: ldarg.0
IL_0001: newobj instance void class [OpenRA.FileFormats]OpenRA.Support.Stopwatch::'.ctor'()
IL_0006: stfld class [OpenRA.FileFormats]OpenRA.Support.Stopwatch OpenRA.Support.PerfSample::sw
IL_000b: ldarg.0
IL_000c: call instance void object::'.ctor'()
IL_0011: ldarg.0
IL_0012: ldarg.1
IL_0013: stfld string OpenRA.Support.PerfSample::Item
IL_0018: ret
} // end of method PerfSample::.ctor
// method line 464
.method public final virtual hidebysig newslot
instance default void Dispose () cil managed
{
// Method begins at RVA 0xae14
// Code size 33 (0x21)
.maxstack 6
IL_0000: ldarg.0
IL_0001: ldfld string OpenRA.Support.PerfSample::Item
IL_0006: ldarg.0
IL_0007: ldfld class [OpenRA.FileFormats]OpenRA.Support.Stopwatch OpenRA.Support.PerfSample::sw
IL_000c: callvirt instance float64 class [OpenRA.FileFormats]OpenRA.Support.Stopwatch::ElapsedTime()
IL_0011: ldc.r8 1000.
IL_001a: mul
IL_001b: call void class OpenRA.Support.PerfHistory::Increment(string, float64)
IL_0020: ret
} // end of method PerfSample::Dispose
} // end of class OpenRA.Support.PerfSample
}
.namespace OpenRA
{
.class public auto ansi beforefieldinit SyncAttribute
extends [mscorlib]System.Attribute
{
.custom instance void class [mscorlib]System.AttributeUsageAttribute::'.ctor'(valuetype [mscorlib]System.AttributeTargets) = (01 00 80 01 00 00 00 00 ) // ........
// method line 465
.method public hidebysig specialname rtspecialname
instance default void '.ctor' () cil managed
{
// Method begins at RVA 0xae44
// Code size 7 (0x7)
.maxstack 8
IL_0000: ldarg.0
IL_0001: call instance void class [mscorlib]System.Attribute::'.ctor'()
IL_0006: ret
} // end of method SyncAttribute::.ctor
} // end of class OpenRA.SyncAttribute
}
.namespace OpenRA
{
.class interface public auto ansi abstract ISync
{
} // end of class OpenRA.ISync
}
.namespace OpenRA
{
.class public auto ansi abstract sealed beforefieldinit Sync
extends [mscorlib]System.Object
{
.field private static class [OpenRA.FileFormats]OpenRA.FileFormats.Cache`2<class [mscorlib]System.Type,class [System.Core]System.Func`2<object,int32>> hashFuncCache
.field private static class [mscorlib]System.Collections.Generic.Dictionary`2<class [mscorlib]System.Type,class [mscorlib]System.Reflection.MethodInfo> hashFunctions
.field private static bool inUnsyncedCode
.field private static class [System.Core]System.Func`2<class [mscorlib]System.Type,class [System.Core]System.Func`2<object,int32>> '<>f__am$cache3'
.custom instance void class [mscorlib]System.Runtime.CompilerServices.CompilerGeneratedAttribute::'.ctor'() = (01 00 00 00 ) // ....
.field private static class [System.Core]System.Func`2<class [mscorlib]System.Reflection.FieldInfo,bool> '<>f__am$cache4'
.custom instance void class [mscorlib]System.Runtime.CompilerServices.CompilerGeneratedAttribute::'.ctor'() = (01 00 00 00 ) // ....
.field private static class [System.Core]System.Func`2<class [mscorlib]System.Reflection.PropertyInfo,bool> '<>f__am$cache5'
.custom instance void class [mscorlib]System.Runtime.CompilerServices.CompilerGeneratedAttribute::'.ctor'() = (01 00 00 00 ) // ....
// method line 466
.method private static specialname rtspecialname
default void '.cctor' () cil managed
{
// Method begins at RVA 0xae4c
// Code size 454 (0x1c6)
.maxstack 75
.locals init (
class [mscorlib]System.Collections.Generic.Dictionary`2<class [mscorlib]System.Type, class [mscorlib]System.Reflection.MethodInfo> V_0)
IL_0000: ldsfld class [System.Core]System.Func`2<class [mscorlib]System.Type,class [System.Core]System.Func`2<object,int32>> OpenRA.Sync::'<>f__am$cache3'
IL_0005: brtrue.s IL_0018
IL_0007: ldnull
IL_0008: ldftn class [System.Core]System.Func`2<object,int32> class OpenRA.Sync::'<hashFuncCache>m__6B'(class [mscorlib]System.Type)
IL_000e: newobj instance void class [System.Core]System.Func`2<class [mscorlib]System.Type, class [System.Core]System.Func`2<object, int32>>::'.ctor'(object, native int)
IL_0013: stsfld class [System.Core]System.Func`2<class [mscorlib]System.Type,class [System.Core]System.Func`2<object,int32>> OpenRA.Sync::'<>f__am$cache3'
IL_0018: ldsfld class [System.Core]System.Func`2<class [mscorlib]System.Type,class [System.Core]System.Func`2<object,int32>> OpenRA.Sync::'<>f__am$cache3'
IL_001d: newobj instance void class [OpenRA.FileFormats]OpenRA.FileFormats.Cache`2<class [mscorlib]System.Type, class [System.Core]System.Func`2<object, int32>>::'.ctor'(class [System.Core]System.Func`2<!0,!1>)
IL_0022: stsfld class [OpenRA.FileFormats]OpenRA.FileFormats.Cache`2<class [mscorlib]System.Type,class [System.Core]System.Func`2<object,int32>> OpenRA.Sync::hashFuncCache
IL_0027: newobj instance void class [mscorlib]System.Collections.Generic.Dictionary`2<class [mscorlib]System.Type, class [mscorlib]System.Reflection.MethodInfo>::'.ctor'()
IL_002c: stloc.0
IL_002d: ldloc.0
IL_002e: ldtoken [OpenRA.FileFormats]OpenRA.int2
IL_0033: call class [mscorlib]System.Type class [mscorlib]System.Type::GetTypeFromHandle(valuetype [mscorlib]System.RuntimeTypeHandle)
IL_0038: ldnull
IL_0039: ldftn int32 class OpenRA.Sync::hash_int2(valuetype [OpenRA.FileFormats]OpenRA.int2)
IL_003f: newobj instance void class [System.Core]System.Func`2<valuetype [OpenRA.FileFormats]OpenRA.int2, int32>::'.ctor'(object, native int)
IL_0044: call instance class [mscorlib]System.Reflection.MethodInfo class [mscorlib]System.Delegate::get_Method()
IL_0049: callvirt instance void class [mscorlib]System.Collections.Generic.Dictionary`2<class [mscorlib]System.Type, class [mscorlib]System.Reflection.MethodInfo>::Add(!0, !1)
IL_004e: ldloc.0
IL_004f: ldtoken OpenRA.CPos
IL_0054: call class [mscorlib]System.Type class [mscorlib]System.Type::GetTypeFromHandle(valuetype [mscorlib]System.RuntimeTypeHandle)
IL_0059: ldnull
IL_005a: ldftn int32 class OpenRA.Sync::hash_CPos(valuetype OpenRA.CPos)
IL_0060: newobj instance void class [System.Core]System.Func`2<valuetype OpenRA.CPos, int32>::'.ctor'(object, native int)
IL_0065: call instance class [mscorlib]System.Reflection.MethodInfo class [mscorlib]System.Delegate::get_Method()
IL_006a: callvirt instance void class [mscorlib]System.Collections.Generic.Dictionary`2<class [mscorlib]System.Type, class [mscorlib]System.Reflection.MethodInfo>::Add(!0, !1)
IL_006f: ldloc.0
IL_0070: ldtoken OpenRA.CVec
IL_0075: call class [mscorlib]System.Type class [mscorlib]System.Type::GetTypeFromHandle(valuetype [mscorlib]System.RuntimeTypeHandle)
IL_007a: ldnull
IL_007b: ldftn int32 class OpenRA.Sync::hash_CVec(valuetype OpenRA.CVec)
IL_0081: newobj instance void class [System.Core]System.Func`2<valuetype OpenRA.CVec, int32>::'.ctor'(object, native int)
IL_0086: call instance class [mscorlib]System.Reflection.MethodInfo class [mscorlib]System.Delegate::get_Method()
IL_008b: callvirt instance void class [mscorlib]System.Collections.Generic.Dictionary`2<class [mscorlib]System.Type, class [mscorlib]System.Reflection.MethodInfo>::Add(!0, !1)
IL_0090: ldloc.0
IL_0091: ldtoken [OpenRA.FileFormats]OpenRA.WRange
IL_0096: call class [mscorlib]System.Type class [mscorlib]System.Type::GetTypeFromHandle(valuetype [mscorlib]System.RuntimeTypeHandle)
IL_009b: ldnull
IL_009c: ldftn int32 class OpenRA.Sync::hash<valuetype [OpenRA.FileFormats]OpenRA.WRange> (!!0)
IL_00a2: newobj instance void class [System.Core]System.Func`2<valuetype [OpenRA.FileFormats]OpenRA.WRange, int32>::'.ctor'(object, native int)
IL_00a7: call instance class [mscorlib]System.Reflection.MethodInfo class [mscorlib]System.Delegate::get_Method()
IL_00ac: callvirt instance void class [mscorlib]System.Collections.Generic.Dictionary`2<class [mscorlib]System.Type, class [mscorlib]System.Reflection.MethodInfo>::Add(!0, !1)
IL_00b1: ldloc.0
IL_00b2: ldtoken [OpenRA.FileFormats]OpenRA.WPos
IL_00b7: call class [mscorlib]System.Type class [mscorlib]System.Type::GetTypeFromHandle(valuetype [mscorlib]System.RuntimeTypeHandle)
IL_00bc: ldnull
IL_00bd: ldftn int32 class OpenRA.Sync::hash<valuetype [OpenRA.FileFormats]OpenRA.WPos> (!!0)
IL_00c3: newobj instance void class [System.Core]System.Func`2<valuetype [OpenRA.FileFormats]OpenRA.WPos, int32>::'.ctor'(object, native int)
IL_00c8: call instance class [mscorlib]System.Reflection.MethodInfo class [mscorlib]System.Delegate::get_Method()
IL_00cd: callvirt instance void class [mscorlib]System.Collections.Generic.Dictionary`2<class [mscorlib]System.Type, class [mscorlib]System.Reflection.MethodInfo>::Add(!0, !1)
IL_00d2: ldloc.0
IL_00d3: ldtoken [OpenRA.FileFormats]OpenRA.WVec
IL_00d8: call class [mscorlib]System.Type class [mscorlib]System.Type::GetTypeFromHandle(valuetype [mscorlib]System.RuntimeTypeHandle)
IL_00dd: ldnull
IL_00de: ldftn int32 class OpenRA.Sync::hash<valuetype [OpenRA.FileFormats]OpenRA.WVec> (!!0)
IL_00e4: newobj instance void class [System.Core]System.Func`2<valuetype [OpenRA.FileFormats]OpenRA.WVec, int32>::'.ctor'(object, native int)
IL_00e9: call instance class [mscorlib]System.Reflection.MethodInfo class [mscorlib]System.Delegate::get_Method()
IL_00ee: callvirt instance void class [mscorlib]System.Collections.Generic.Dictionary`2<class [mscorlib]System.Type, class [mscorlib]System.Reflection.MethodInfo>::Add(!0, !1)
IL_00f3: ldloc.0
IL_00f4: ldtoken [OpenRA.FileFormats]OpenRA.WAngle
IL_00f9: call class [mscorlib]System.Type class [mscorlib]System.Type::GetTypeFromHandle(valuetype [mscorlib]System.RuntimeTypeHandle)
IL_00fe: ldnull
IL_00ff: ldftn int32 class OpenRA.Sync::hash<valuetype [OpenRA.FileFormats]OpenRA.WAngle> (!!0)
IL_0105: newobj instance void class [System.Core]System.Func`2<valuetype [OpenRA.FileFormats]OpenRA.WAngle, int32>::'.ctor'(object, native int)
IL_010a: call instance class [mscorlib]System.Reflection.MethodInfo class [mscorlib]System.Delegate::get_Method()
IL_010f: callvirt instance void class [mscorlib]System.Collections.Generic.Dictionary`2<class [mscorlib]System.Type, class [mscorlib]System.Reflection.MethodInfo>::Add(!0, !1)
IL_0114: ldloc.0
IL_0115: ldtoken [OpenRA.FileFormats]OpenRA.WRot
IL_011a: call class [mscorlib]System.Type class [mscorlib]System.Type::GetTypeFromHandle(valuetype [mscorlib]System.RuntimeTypeHandle)
IL_011f: ldnull
IL_0120: ldftn int32 class OpenRA.Sync::hash<valuetype [OpenRA.FileFormats]OpenRA.WRot> (!!0)
IL_0126: newobj instance void class [System.Core]System.Func`2<valuetype [OpenRA.FileFormats]OpenRA.WRot, int32>::'.ctor'(object, native int)
IL_012b: call instance class [mscorlib]System.Reflection.MethodInfo class [mscorlib]System.Delegate::get_Method()
IL_0130: callvirt instance void class [mscorlib]System.Collections.Generic.Dictionary`2<class [mscorlib]System.Type, class [mscorlib]System.Reflection.MethodInfo>::Add(!0, !1)
IL_0135: ldloc.0
IL_0136: ldtoken [OpenRA.FileFormats]OpenRA.FileFormats.TypeDictionary
IL_013b: call class [mscorlib]System.Type class [mscorlib]System.Type::GetTypeFromHandle(valuetype [mscorlib]System.RuntimeTypeHandle)
IL_0140: ldnull
IL_0141: ldftn int32 class OpenRA.Sync::hash_tdict(class [OpenRA.FileFormats]OpenRA.FileFormats.TypeDictionary)
IL_0147: newobj instance void class [System.Core]System.Func`2<class [OpenRA.FileFormats]OpenRA.FileFormats.TypeDictionary, int32>::'.ctor'(object, native int)
IL_014c: call instance class [mscorlib]System.Reflection.MethodInfo class [mscorlib]System.Delegate::get_Method()
IL_0151: callvirt instance void class [mscorlib]System.Collections.Generic.Dictionary`2<class [mscorlib]System.Type, class [mscorlib]System.Reflection.MethodInfo>::Add(!0, !1)
IL_0156: ldloc.0
IL_0157: ldtoken OpenRA.Actor
IL_015c: call class [mscorlib]System.Type class [mscorlib]System.Type::GetT
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment