From 6d503701f17909d1fccbfc88921ed0e5d716a283 Mon Sep 17 00:00:00 2001 From: Jonathan Bayer Date: Sat, 10 Jun 2017 22:55:49 -0400 Subject: [PATCH] Updated for 1.3 --- .../ProbeControlRoom/ProbeControlRoom.dll | Bin 18432 -> 27136 bytes .../ProbeControlRoomToolbar.dll | Bin 6144 -> 6144 bytes ProbeControlRoom/DynamicEmitFields.cs | 146 +++++++++--------- ProbeControlRoom/ProbeControlRoom.cs | 8 +- ProbeControlRoom/ProbeControlRoom.csproj | 29 ++-- .../ProbeControlRoomToolbar.csproj | 12 +- 6 files changed, 100 insertions(+), 95 deletions(-) diff --git a/GameData/ProbeControlRoom/ProbeControlRoom.dll b/GameData/ProbeControlRoom/ProbeControlRoom.dll index 08f3e238ca9540c7233a844476cc7e73b0b79f52..5ffc6f47aa4d612c2b32102a446332fa2c50119a 100644 GIT binary patch literal 27136 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 ArvLx| literal 18432 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 diff --git a/GameData/ProbeControlRoom/ProbeControlRoomToolbar.dll b/GameData/ProbeControlRoom/ProbeControlRoomToolbar.dll index 5a8270b6cc2e5dacb059dfa71ce22c835315a77d..134d2ce42cbc7e6036eb8a7148d3060c102032ed 100644 GIT binary patch delta 1874 zcmZuyYiv_h9RHnj@7i^b(%$Y-T-A<+t?W@c#@t{+U>%Q%=%5xiE#f*Sk4*09fCQ0s zC=dx~Z0-k5BnS~>G!SEIVy20~EG8l(lAs2I9}MvW!4D>yAo^kYJEz;C(X-v({lA~L z_fEtnVz0eyuDjedkUJTYTUv7OZ}FNfz@y+<1(;^8Hc<97P)7br6A*H0WwSFN8f2>6 zc~Okd@1(Ul>v>5OA-Dke$O8zc)!X6pNps~8H3INsyc{SgaW(ftM!Y05l#XU-J8I7( zd&pouc~D`dLkWEp!g)p3Wc{QTP83mNTS|yV1Y!o_I_EzkcOnv?z9LdVEOj?GFjFPT z=8{MiZ&lNxNmNBlzyO-Y0?U5ujQN!&YIX`zaWX@k{zA+x$DJ4gp*3T<5fZ)1Bt zwZ^ny4m!<4A%tPyGwY-hw9fjdz*RFg@*wA6+BMp+sbWql=cHLQJ})x^oXH_&Dl=aw zQt4$Rq}&>#W5sM_f}NR-3uJ_iP^b$PXqZi^JJ!YNDcScGGL{#HX5UY?o?hLFhq{H@ z7>`=}{w3LHEZQFHSi-G#7-+?9yTH#uaxkRz@MTG+?7htiGra~lqK*n(G089RViC##0AdO z+AbBZ_IXs)8!r5+(GUS+9@a9B3)LbcUD%t zvqqA-(HZVLBst*=wNO($7QD+Q3|!I5TyR=u$X(amtnMexy~MKj>xm1zK~I638mpxT zcR6W4(Zv!3I5AhTtH~@z> zIcgV^UL@NwN$o0p4#!wSdLcIA64Jy;_+*$iC)oJ`Okfl7Bs)ET`HZkf$3L!dlGAk2 zer1+MQIz5ZVgN^pH8@AC!v$g!z9P11?9v#=RZ2GCHZeg-98cm8u4o8`2%!t+gqjNH z5{ySV8lEXWFZ`c7Phi~~4dj}O#aoWwUDM>|Q#E@&)((Pxl4TZ7zm^#)RzB%|SU8^) zU(KKMoD%ufrEOxXT{3jzde^s)92?&F+wIbiOPL1y&d?tBhAKe>OU(wbA*#tf|B; zRDmIZYUiS-+KHF9j(7zA;-T2oN)qaGqU=-`w8brcH*WFWzd6y9Se|q@^i4 zy(`r-oZh!x@j+wsnKVB&r>*9h50T2eR?*>HZI$e7aqg7==y-kOrSa&^pxPJj`PY5h vgue|Ph;g~C{OiP0wB_B_oBtzr@_~;38owv* delta 1768 zcmZuyUu;uV82_DfyF1!#U3*uyZp^K749i-Zj!m~kFl-<&95~oOryv&6z+_vootO!< zor=M1i8l8^4M?WogT|PcYSch5d%+;QXpH)(iw{I!)aV|3K!4}lvcx}Ma)0Oh{l4#> z^L^jFz0Jq-@mJ2c-n!KFNMWu~Hbo2X?)Bb?01tt-5pcN*Ej6wufJ*x*Zx z$F=sBh=|%SH!)>4NFmJI&Gy~SDbWgNP1Q5fK3O6SBu1>#VMc0|ik&y2mLtd$Y{Hdl zRO)R-E-S}ndX$}Xhy-B`}d$;zFrw*!Y8XFJ~bAE0*_)~O(GgQYn*l)UOav^$Eyp+Q6l?po| zodQjq7o&!W3aQW#Ta0QbV zNp8^0Xz^i)kpZ|+PUSs3O1z};Gr1r4B8UVhkrPN_D5N%-!TT&k;FA)&&MpOhEwRfw zX0|w)UmJsr-C1JaV31SZuGx#hh?*3RXjTYz7-M8p|A?K`?0L2^kz-KR|C+`{jdAHl z#1QZkP1F-TSWEPwLu0STK8*t!cWE5en9w*zT#1*6Cf>ozMk78z2F>^sk7G4ky()cp zozYx`WS{K70>j<7hO5SU`fb>ZFL98#fVHxbIaj#R4D$Rc%wUfF&R~#ROzQ&*8W%WJ zllk{ECx!~{7eftB5?A3Yu@x7I5oW~DsqsE6+*8_QkTIoUfSmZ=2V`?Yvee{F6>puTewrKYf=!?Y@S?ciIa_p)}`8>=Ex!k(xadU7lKiS2w~ zWVz~Ssk{y9t0OSt4J?N?k7bUHC#H9@KcBiMv>XX_xdr~BaaJxpxZn9la@)M>?;=!a zsS{BxtP4|D3 VFNlCF#7%d|`D}*P7e!!6{0*+$4XXeE diff --git a/ProbeControlRoom/DynamicEmitFields.cs b/ProbeControlRoom/DynamicEmitFields.cs index 8db0e22..804ab09 100644 --- a/ProbeControlRoom/DynamicEmitFields.cs +++ b/ProbeControlRoom/DynamicEmitFields.cs @@ -1,73 +1,73 @@ -/* -VirindiHelpers.DynamicEmitFields -Copyright (C) 2017 Virindi - -This program is free software: you can redistribute it and/or modify -it under the terms of the GNU General Public License as published by -the Free Software Foundation, either version 3 of the License, or -(at your option) any later version. - -This program is distributed in the hope that it will be useful, -but WITHOUT ANY WARRANTY; without even the implied warranty of -MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the -GNU General Public License for more details. - -You should have received a copy of the GNU General Public License -along with this program. If not, see . -*/ -using System; -using System.Reflection; -using System.Reflection.Emit; - -namespace VirindiHelpers -{ - static class DynamicEmitFields - { - public delegate T delCreateDynamicInstanceFieldGet(Cls c); - public static delCreateDynamicInstanceFieldGet CreateDynamicInstanceFieldGet(string fieldname) - { - string newname = string.Format("__DynGet__{0}__{1}", typeof(Cls), fieldname); - - FieldInfo fi = typeof(Cls).GetField(fieldname, BindingFlags.NonPublic | BindingFlags.Instance | BindingFlags.Public); - if (fi == null) - throw new ArgumentException ("Instance field not found.", "fieldname"); - if (typeof(T) != fi.FieldType) - throw new ArgumentException ("Instance field is of the wrong type.", "fieldname"); - - DynamicMethod temp = new DynamicMethod(newname, MethodAttributes.Static | MethodAttributes.Public, CallingConventions.Standard, typeof(T), new Type[] { typeof(Cls) }, MethodBase.GetCurrentMethod().DeclaringType, true); - - ILGenerator gen = temp.GetILGenerator(); - gen.Emit(OpCodes.Ldarg_0); - gen.Emit(OpCodes.Ldfld, fi); - gen.Emit(OpCodes.Ret); - - delCreateDynamicInstanceFieldGet ret = (delCreateDynamicInstanceFieldGet)temp.CreateDelegate(typeof(delCreateDynamicInstanceFieldGet)); - - return ret; - } - - public delegate void delCreateDynamicInstanceFieldSet(Cls c, T val); - public static delCreateDynamicInstanceFieldSet CreateDynamicInstanceFieldSet(string fieldname) - { - string newname = string.Format("__DynSet__{0}__{1}", typeof(Cls), fieldname); - - FieldInfo fi = typeof(Cls).GetField(fieldname, BindingFlags.NonPublic | BindingFlags.Instance | BindingFlags.Public); - if (fi == null) - throw new ArgumentException ("Instance field not found.", "fieldname"); - if (typeof(T) != fi.FieldType) - throw new ArgumentException ("Instance field is of the wrong type.", "fieldname"); - - DynamicMethod temp = new DynamicMethod(newname, MethodAttributes.Static | MethodAttributes.Public, CallingConventions.Standard, null, new Type[] { typeof(Cls), typeof(T) }, MethodBase.GetCurrentMethod().DeclaringType, true); - - ILGenerator gen = temp.GetILGenerator(); - gen.Emit(OpCodes.Ldarg_0); - gen.Emit(OpCodes.Ldarg_1); - gen.Emit(OpCodes.Stfld, fi); - gen.Emit(OpCodes.Ret); - - delCreateDynamicInstanceFieldSet ret = (delCreateDynamicInstanceFieldSet)temp.CreateDelegate(typeof(delCreateDynamicInstanceFieldSet)); - return ret; - } - } -} - +/* +VirindiHelpers.DynamicEmitFields +Copyright (C) 2017 Virindi + +This program is free software: you can redistribute it and/or modify +it under the terms of the GNU General Public License as published by +the Free Software Foundation, either version 3 of the License, or +(at your option) any later version. + +This program is distributed in the hope that it will be useful, +but WITHOUT ANY WARRANTY; without even the implied warranty of +MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the +GNU General Public License for more details. + +You should have received a copy of the GNU General Public License +along with this program. If not, see . +*/ +using System; +using System.Reflection; +using System.Reflection.Emit; + +namespace VirindiHelpers +{ + static class DynamicEmitFields + { + public delegate T delCreateDynamicInstanceFieldGet(Cls c); + public static delCreateDynamicInstanceFieldGet CreateDynamicInstanceFieldGet(string fieldname) + { + string newname = string.Format("__DynGet__{0}__{1}", typeof(Cls), fieldname); + + FieldInfo fi = typeof(Cls).GetField(fieldname, BindingFlags.NonPublic | BindingFlags.Instance | BindingFlags.Public); + if (fi == null) + throw new ArgumentException ("Instance field not found.", "fieldname"); + if (typeof(T) != fi.FieldType) + throw new ArgumentException ("Instance field is of the wrong type.", "fieldname"); + + DynamicMethod temp = new DynamicMethod(newname, MethodAttributes.Static | MethodAttributes.Public, CallingConventions.Standard, typeof(T), new Type[] { typeof(Cls) }, MethodBase.GetCurrentMethod().DeclaringType, true); + + ILGenerator gen = temp.GetILGenerator(); + gen.Emit(OpCodes.Ldarg_0); + gen.Emit(OpCodes.Ldfld, fi); + gen.Emit(OpCodes.Ret); + + delCreateDynamicInstanceFieldGet ret = (delCreateDynamicInstanceFieldGet)temp.CreateDelegate(typeof(delCreateDynamicInstanceFieldGet)); + + return ret; + } + + public delegate void delCreateDynamicInstanceFieldSet(Cls c, T val); + public static delCreateDynamicInstanceFieldSet CreateDynamicInstanceFieldSet(string fieldname) + { + string newname = string.Format("__DynSet__{0}__{1}", typeof(Cls), fieldname); + + FieldInfo fi = typeof(Cls).GetField(fieldname, BindingFlags.NonPublic | BindingFlags.Instance | BindingFlags.Public); + if (fi == null) + throw new ArgumentException ("Instance field not found.", "fieldname"); + if (typeof(T) != fi.FieldType) + throw new ArgumentException ("Instance field is of the wrong type.", "fieldname"); + + DynamicMethod temp = new DynamicMethod(newname, MethodAttributes.Static | MethodAttributes.Public, CallingConventions.Standard, null, new Type[] { typeof(Cls), typeof(T) }, MethodBase.GetCurrentMethod().DeclaringType, true); + + ILGenerator gen = temp.GetILGenerator(); + gen.Emit(OpCodes.Ldarg_0); + gen.Emit(OpCodes.Ldarg_1); + gen.Emit(OpCodes.Stfld, fi); + gen.Emit(OpCodes.Ret); + + delCreateDynamicInstanceFieldSet ret = (delCreateDynamicInstanceFieldSet)temp.CreateDelegate(typeof(delCreateDynamicInstanceFieldSet)); + return ret; + } + } +} + diff --git a/ProbeControlRoom/ProbeControlRoom.cs b/ProbeControlRoom/ProbeControlRoom.cs index 6e3393c..fc476d4 100644 --- a/ProbeControlRoom/ProbeControlRoom.cs +++ b/ProbeControlRoom/ProbeControlRoom.cs @@ -61,8 +61,8 @@ public class ProbeControlRoom : MonoBehaviour bool HasCachedVesselLabelsSetting = false; bool CachedVesselLabelsSetting = false; bool VesselLabelKeyDisabled = false; - KeyCode CachedLabelPrimaryKey = GameSettings.TOGGLE_LABELS.primary; - KeyCode CachedLabelSecondaryKey = GameSettings.TOGGLE_LABELS.secondary; + KeyCodeExtended CachedLabelPrimaryKey = GameSettings.TOGGLE_LABELS.primary; + KeyCodeExtended CachedLabelSecondaryKey = GameSettings.TOGGLE_LABELS.secondary; private static System.Reflection.MethodInfo method_vessellabels_enablealllabels = null; private static System.Reflection.MethodInfo method_vessellabels_disablealllabels = null; @@ -467,8 +467,8 @@ public bool startIVA() VesselLabelKeyDisabled = true; CachedLabelPrimaryKey = GameSettings.TOGGLE_LABELS.primary; CachedLabelSecondaryKey = GameSettings.TOGGLE_LABELS.secondary; - GameSettings.TOGGLE_LABELS.primary = KeyCode.None; - GameSettings.TOGGLE_LABELS.secondary = KeyCode.None; + GameSettings.TOGGLE_LABELS.primary = new KeyCodeExtended(KeyCode.None); + GameSettings.TOGGLE_LABELS.secondary = new KeyCodeExtended(KeyCode.None); } SetVesselLabelsValue (false); diff --git a/ProbeControlRoom/ProbeControlRoom.csproj b/ProbeControlRoom/ProbeControlRoom.csproj index 0170308..f6c830c 100644 --- a/ProbeControlRoom/ProbeControlRoom.csproj +++ b/ProbeControlRoom/ProbeControlRoom.csproj @@ -37,31 +37,30 @@ - + + + + + + + + - ..\..\..\ksp-win64-1.2.2 - Copy\KSP_win64\KSP_x64_Data\Managed\Assembly-CSharp.dll + R:\KSP_1.3.0_dev\KSP_x64_Data\Managed\Assembly-CSharp.dll - ..\..\..\ksp-win64-1.2.2 - Copy\KSP_win64\KSP_x64_Data\Managed\Assembly-CSharp-firstpass.dll + R:\KSP_1.3.0_dev\KSP_x64_Data\Managed\Assembly-CSharp-firstpass.dll - - ..\..\..\ksp-win64-1.2.2 - Copy\KSP_win64\KSP_x64_Data\Managed\KSPAssets.dll + + R:\KSP_1.3.0_dev\KSP_x64_Data\Managed\System.dll - ..\..\..\ksp-win64-1.2.2 - Copy\KSP_win64\KSP_x64_Data\Managed\UnityEngine.dll + R:\KSP_1.3.0_dev\KSP_x64_Data\Managed\UnityEngine.dll - ..\..\..\ksp-win64-1.2.2 - Copy\KSP_win64\KSP_x64_Data\Managed\UnityEngine.UI.dll + R:\KSP_1.3.0_dev\KSP_x64_Data\Managed\UnityEngine.UI.dll - - - - - - - - xcopy /Y "$(TargetDir)$(TargetFileName)" "$(SolutionDir)GameData\ProbeControlRoom\$(TargetFileName)" diff --git a/ProbeControlRoomToolbar/ProbeControlRoomToolbar.csproj b/ProbeControlRoomToolbar/ProbeControlRoomToolbar.csproj index 5eaf028..7b80312 100644 --- a/ProbeControlRoomToolbar/ProbeControlRoomToolbar.csproj +++ b/ProbeControlRoomToolbar/ProbeControlRoomToolbar.csproj @@ -38,14 +38,20 @@ - ..\..\..\..\..\..\Development\Kerbal Space Program\KSP_x64_Data\Managed\Assembly-CSharp.dll + R:\KSP_1.3.0_dev\KSP_x64_Data\Managed\Assembly-CSharp.dll + + + R:\KSP_1.3.0_dev\KSP_x64_Data\Managed\Assembly-CSharp-firstpass.dll - F:\Development\Kerbal Space Program\GameData\000_Toolbar\Toolbar.dll + R:\KSP_1.3.0_dev\GameData\000_Toolbar\Toolbar.dll - ..\..\..\..\..\..\Development\Kerbal Space Program\KSP_x64_Data\Managed\UnityEngine.dll + R:\KSP_1.3.0_dev\KSP_x64_Data\Managed\UnityEngine.dll + + + R:\KSP_1.3.0_dev\KSP_x64_Data\Managed\UnityEngine.UI.dll