From 5b47da7cee176fbdfba859ec55da0f321f459ac4 Mon Sep 17 00:00:00 2001 From: David Anderson Date: Mon, 21 Aug 2006 04:18:13 +0000 Subject: [PATCH] Finalized binlogging update by removing another unnecessary opcode and updating the reader --- amxmodx/binlog.cpp | 9 ---- amxmodx/binlog.h | 2 +- plugins/BinLogReader/BinLog.cs | 16 ++++-- plugins/BinLogReader/BinLogOps.cs | 70 ++++++++++++++++++++------ plugins/BinLogReader/BinLogReader.exe | Bin 45056 -> 45056 bytes plugins/BinLogReader/Form1.cs | 50 ++++++++---------- plugins/BinLogReader/Form1.resx | 42 +++++----------- plugins/BinLogReader/Plugin.cs | 23 ++++++++- plugins/BinLogReader/PluginDb.cs | 22 ++++++-- 9 files changed, 140 insertions(+), 94 deletions(-) diff --git a/amxmodx/binlog.cpp b/amxmodx/binlog.cpp index 72861f08..4dd61dc2 100644 --- a/amxmodx/binlog.cpp +++ b/amxmodx/binlog.cpp @@ -187,17 +187,8 @@ void BinLog::WriteOp(BinLogOp op, int plug, ...) } case BinLog_NativeRet: { - int file; cell retval = va_arg(ap, cell); fwrite(&retval, sizeof(cell), 1, fp); - if (debug) - { - file = LookupFile(dbg, amx->cip); - fwrite(&file, sizeof(int), 1, fp); - } else { - file = 0; - fwrite(&file, sizeof(int), 1, fp); - } break; } case BinLog_NativeError: diff --git a/amxmodx/binlog.h b/amxmodx/binlog.h index 22d34b6f..616adef7 100644 --- a/amxmodx/binlog.h +++ b/amxmodx/binlog.h @@ -48,7 +48,7 @@ enum BinLogOp BinLog_End, BinLog_NativeCall, // BinLog_NativeError, // - BinLog_NativeRet, // + BinLog_NativeRet, // BinLog_CallPubFunc, // BinLog_SetLine, // BinLog_Registered, // diff --git a/plugins/BinLogReader/BinLog.cs b/plugins/BinLogReader/BinLog.cs index cf6cac36..3948ac5b 100644 --- a/plugins/BinLogReader/BinLog.cs +++ b/plugins/BinLogReader/BinLog.cs @@ -11,7 +11,8 @@ namespace BinLogReader public class BinLog { private static uint BINLOG_MAGIC = 0x414D424C; - private static short BINLOG_VERSION = 0x0200; + private static short BINLOG_VERSION = 0x0300; + private static short BINLOG_MIN_VERSION = 0x0300; private ArrayList oplist; private PluginDb plugdb; @@ -60,7 +61,7 @@ public static BinLog FromFile(string filename) throw new Exception("Invalid magic log number"); ushort version = br.ReadUInt16(); - if (version > BINLOG_VERSION) + if (version > BINLOG_VERSION || version < BINLOG_MIN_VERSION) throw new Exception("Unknown log version number"); byte timesize = br.ReadByte(); @@ -182,19 +183,22 @@ public static BinLog FromFile(string filename) case BinLogOp.BinLog_SetLine: { int line = br.ReadInt32(); + int file = br.ReadInt32(); BinLogSetLine bsl = - new BinLogSetLine(line, gametime, realtime, pl); + new BinLogSetLine(line, gametime, realtime, pl, file); bl.OpList.Add(bsl); break; } case BinLogOp.BinLog_CallPubFunc: { int pubidx = br.ReadInt32(); + int fileid = br.ReadInt32(); BinLogPublic bp = new BinLogPublic(pubidx, gametime, realtime, - pl); + pl, + fileid); bl.OpList.Add(bp); break; } @@ -214,12 +218,14 @@ public static BinLog FromFile(string filename) { int native = br.ReadInt32(); int parms = br.ReadInt32(); + int file = br.ReadInt32(); BinLogNativeCall bn = new BinLogNativeCall(native, parms, gametime, realtime, - pl); + pl, + file); bl.OpList.Add(bn); break; } diff --git a/plugins/BinLogReader/BinLogOps.cs b/plugins/BinLogReader/BinLogOps.cs index e881029d..33a6b1a2 100644 --- a/plugins/BinLogReader/BinLogOps.cs +++ b/plugins/BinLogReader/BinLogOps.cs @@ -10,16 +10,16 @@ public enum BinLogOp BinLog_Invalid=0, BinLog_Start=1, BinLog_End, - BinLog_NativeCall, // - BinLog_NativeError, - BinLog_NativeRet, - BinLog_CallPubFunc, // - BinLog_SetLine, // + BinLog_NativeCall, // + BinLog_NativeError, // + BinLog_NativeRet, // + BinLog_CallPubFunc, // + BinLog_SetLine, // BinLog_Registered, // - BinLog_FormatString, - BinLog_NativeParams, - BinLog_GetString, - BinLog_SetString, + BinLog_FormatString, // + BinLog_NativeParams, // + BinLog_GetString, // + BinLog_SetString, // }; public enum BinLogFlags @@ -72,6 +72,40 @@ public static void PluginText(StringBuilder sb, Plugin pl, BinLogFlags flags) } } + public static void PluginText(StringBuilder sb, Plugin pl, BinLogFlags flags, int fileid) + { + if (HasFlag(flags, BinLogFlags.Show_PlugId) + && HasFlag(flags, BinLogFlags.Show_PlugFile)) + { + sb.Append("\""); + sb.Append(pl.File); + if (pl.IsDebug()) + { + sb.Append(", "); + sb.Append(pl.FindFile(fileid)); + } + sb.Append("\""); + sb.Append(" ("); + sb.Append(pl.Index); + sb.Append(")"); + } + else if (HasFlag(flags, BinLogFlags.Show_PlugId)) + { + sb.Append(pl.Index); + } + else if (HasFlag(flags, BinLogFlags.Show_PlugFile)) + { + sb.Append("\""); + sb.Append(pl.File); + if (pl.IsDebug()) + { + sb.Append(", "); + sb.Append(pl.FindFile(fileid)); + } + sb.Append("\""); + } + } + public static void BinLogString(StringBuilder sb, BinLogEntry ble, BinLogFlags flags) { bool realtime = false; @@ -130,6 +164,7 @@ public long realtime public class BinLogSetLine : BinLogEntry { private int line; + private int fileid; public int Line { @@ -139,16 +174,17 @@ public int Line } } - public BinLogSetLine(int _line, float gt, long rt, Plugin _pl) + public BinLogSetLine(int _line, float gt, long rt, Plugin _pl, int file) : base(gt, rt, _pl) { line = _line; + fileid = file; } public override void ToLogString(StringBuilder sb, BinLogFlags flags) { sb.Append("Plugin "); - BinLogEntry.PluginText(sb, plugin, flags); + BinLogEntry.PluginText(sb, plugin, flags, fileid); sb.Append(" hit line "); sb.Append(Line); sb.Append("."); @@ -163,6 +199,7 @@ public override BinLogOp Op() public class BinLogPublic : BinLogEntry { private int pubidx; + private int fileid; public string Public { @@ -172,16 +209,17 @@ public string Public } } - public BinLogPublic(int pi, float gt, long rt, Plugin _pl) + public BinLogPublic(int pi, float gt, long rt, Plugin _pl, int _file) : base(gt, rt, _pl) { pubidx = pi; + fileid = _file; } public override void ToLogString(StringBuilder sb, BinLogFlags flags) { sb.Append("Plugin "); - BinLogEntry.PluginText(sb, plugin, flags); + BinLogEntry.PluginText(sb, plugin, flags, fileid); sb.Append(" had public function \""); sb.Append(Public); sb.Append("\" ("); @@ -283,6 +321,7 @@ public class BinLogNativeCall : BinLogEntry { private int nativeidx; private int numparams; + private int fileid; public string Native { @@ -292,17 +331,18 @@ public string Native } } - public BinLogNativeCall(int na, int nu, float gt, long rt, Plugin _pl) + public BinLogNativeCall(int na, int nu, float gt, long rt, Plugin _pl, int _file) : base(gt, rt, _pl) { nativeidx = na; numparams = nu; + fileid = _file; } public override void ToLogString(StringBuilder sb, BinLogFlags flags) { sb.Append("Plugin "); - BinLogEntry.PluginText(sb, plugin, flags); + BinLogEntry.PluginText(sb, plugin, flags, fileid); sb.Append(" called native \""); sb.Append(Native); sb.Append("\" ("); diff --git a/plugins/BinLogReader/BinLogReader.exe b/plugins/BinLogReader/BinLogReader.exe index 72069d60bc2d599d1be3a68d5c52b26c664e104e..9d6d30d888ead0a27a3e2617164b5a650f760673 100644 GIT binary patch delta 10652 zcmbVS3wRXuwLkxv-PzsQO~_iNM)!S07R?%v&c-4Mtee_nVy|r5Wu5a$|oS7sGa=+g1?#KM* zywCYR=RXtrUf23w*KXLOkDK(Dz27X<7VqDC&x*{CzeBW~@H;@XDY&;J>XfJ!t$ADj z%2L z=0p(V736;fd2h%48hEzjJ^|MkkbRE(F5I7mosA2TsP0Nf&u)&zIZ!lcLu*)3dnA!L zwyw_EkbQP6pH*>B757vxInQJ}MHQ?XWsS0O?J|&_%_z@itdok)Nma8=!c!$Y)luY$ zTYk%D1-iztL78Vz<{8`rgMgifGNR?)y}~MYJ*TxfYo5v zKy1%q59TH^HwRELGUla`@tWp&PIEou8KL-$S3f&(BA)Tu)adkJ0c6d%Fgo(%l~d%D#G+A5 z^FCPliis&)zH;ZRSZo+Z)TjA+F^hbfzc=4$i_KAu&ONbG)#N-I8wLC@HmakMn>ZRh zGFD68h1KoSyfSrq+soz4OJI>2m0NrxU1CGJt)|;UL3Dd5TjpuW`v-$*y5C+jlz46v zr!3`^8 z@-1=><;R^J@$4M-(t5C9eD-3HUPLz)OF321P^#6Os@O}#axWG7-5Up_8t!aH^!>RJ zCpR~Yadt{`D~1(wFkf#8-~7F!oYlD{s@Unvjpwmwpt3HN7ANAImshGrIWOkcI@S5v zPH|p=8tqKaD^#wg)alEcqQ*Es&np4Glvm#5wg#Q*vlkAv2J2aVnm^N*=}#EkWWATI zP|!HOWg5K++`ZOsO>ZR2y+)4E(uynLMrKMXnHYMqR&#b0=7gIDt;(H;^UGt{Xx+dX zVbbx8x3r!z=d=7Jeo;9`3#*(R1!s;$c3U z%fkGbcnTm~v_>ODaC=Yh72(Mb!11TE6QT2~cwT-_dKEqCX{w!NBjakkbMeSUsWTBo zOP~d&mZ;}(};b5Q|n<5kA!ZLM<-k*S8v1Ej9-U6OqoVZ>)~eHY2;`WnJmwB6m)=KnK=RPpGX|x3MX@fdOw*n@C`#h6w}~IBo@4PIY-7de zDx$90Y&l0XDUKPl=MI`Br?49y7G9DZd)^=&v*!=e`S#g^bdJ4XkdB>H2$vb-eawrN zoHJAu>xxsSt;%&Qgm?SPcT%<(!v+%^w& z04Et}DAP#?I&8(h##nBwYYA%N2QLa^<;g7<^ZSP?VE!}}qz0UAx3%JSWT*mOfv2>M zMaf5pA~S!Q$Oz1uT(4>3_3}_)Ue86t?9?);pE=v@Seaz*%u17T&v@OPCgq@M(xU33 zY#0eBNqn8P$*`X`C1kxMb3nRl0EsXpZlc6Wwv$yD zvsVet-7-MCHHtiz;2RzRif~GjUl(>NBXJ&!<&iYZ6&H~&9+*k=iS4oNU zoy*1)rg%Bn7f3=OSA(=$0D8RI(Bm!fNqDUA%(2%`V%PBG&5_onPT3lw=Ym>ss zBZv?Q*hMg_%nl|GD zdUI3jnSuN~`Qlo<$aK?;5n<66Es{_H10Et@J)?=xJENsMXFOrP zYA8ZJXyKXe+2OI~t1^;R25l#knN2jr#wH}+8i6c83r)6PQmlJ$bxTc@zxy<3-vC<*b6kq4CbB%0nSMhUA0Z z2It7)qW(`SAJUu$#;GD{z6G0Kz~@5PKMlLrp_>TV3B-B_cm8(SJgom;Cu9ZG zWXGC1+?icl>|Y%tDi!YY`Yi3sn3FlROuH?|Q4LXN;nY%XdfZ7u@@iZpho+YLdvl4# zItSqYUsJQS!aOKy)i0dQ5G-nlX&2;+<+g@W?TdWp_J%Tb+l>vwomaq5FLbnNh*juR zO{>s)M>^+D%a0Ud1J1K)EwvF|BWt6+M<8%^Ejre}etLPVzi7qkkki*vI{j9QX!K4j zI4r<6>>i_+cPBeHuH#;#^~FRh(d^OZET_lD5@kU)y6K$xvvEHL{$A&emhl;wK7TAfvEQKk{G~Wn%nnQq z7_=qO2E1PI2ZE0Zz9RUMU{;WADgUXYU84#ArRH3|1rkb}M;_?F;DK~5G8v3zOB zuN$;E#FDLo*9-ne@Q9F7t(Y^?|L6<~0#Lh@SRnS4~t|mPJ+N9?NUl%+M{0FHFqJI!S zEh?xEXws?-wp=UN1)N0tGbo0-p2*;!FNorG!4I8JTFX)fbPBV$nd&jYhlAUNVO;~x zPr0lEw;tSZDgedYWx|bwgt@DQE2g+`-w|#!L~+sEomrw9Ig<)5jBc#0(5>nM_sN?xJ9&#ENVor zShN@&X3+&eMb{~APHLY*n~i7H8MLDBML4YJ`?KIb1iuu_(pWxPaI#>N;0nPG!5xA( z2;Ko4i1`z3CwzY;_&dQr0Dbh1b~*5aly((vpK5zh%a!^Wz-t6=Pood(S3&+ukvy({ z4%(Ht^ik2iAlg5sd3~nW!&3RUl~q2DoE~AKkK@$)QhdA0HxE-_zi%P%PQiNxe=hhd z!IynYp?y{84}Hy`4gX4@Q`2z+L{$z+3&7s)7Enc3w>wy?KaBPMj>pZ`e+lk$k6WTYHuzEhasT=H zZ(WY_KkjeQp8=ay#zA)nZ_wYw;wp7Hl=f$E3x#_ePrhd;mkxLwhsmcyp5MRd$H6_9 z=9f<&r}-6A8$a^tabmww)C~^#cO%6Kum?RQr$|s~#gJ(^O%{$VO;t|kdpfopPfw>= zPM}u?Er+WK^m&@)6e_J8idjpOnMMW}BbZj|`_M}Y?-ts9QKrU#Aw(K~Kl&mr)$wS9u6$`i|o-sg)kL&^Jphrx_l%0=i~ucDYpWLMWT5 zLs&QAIrOxvlw!V4fAVxZYUk4NL0yMBmxklzo#-*z?q3gXhH$%RkH15mM+JD*!(69( z{8e-wO%`q!J?P&K-BOQBJqGpyYV+7*{yx=0_j=qP{kzo~x)vX3@F!Jz50)3w%6gak z5?mYY5pH*IgK-=ui(5Tzi*ScLuFsgI*3x4h_YLUQ(Muk8Qwqv;^jD9)6Uq*%daYw;zqIW#*dE*wfnF{b$jF|KqxFjw0 zxVMeeEvk#I^wYV|QGqw9o1Swy6mt-kfA=ga13y%kk`G@EI7MaP zKDCAFgyU`JXKE{5i&tmv!)1X-)HYCx4h0z>O3CfJA-u=XZ9tt402Lh+$=yQ#Ker0!pijK~lECm9ZQ;Rsc(1~I*Wgy&1(TvlSTX#y# z6nDa@t#5#ll6IUtDCzAuTLLYT#7lwytle%*7t`XTPLrlt(tj($L-1{&qICLJkuYlH z&X06$I-Q=;6pMo>x53nhObCwiG=6S=@K*= z9Dkj$i|$sl)HQ;8f$P=HOsCWxBKo1={elk)9ua&}@b`i*3xtoCrF#ou-A}1T#1EpUP6J zLhk`D3VnbC8$zETP;clswAX|>)F*;v>c&tNmC^m77LBo8%TKP-~_45v`RzhfOPGM!u)z(zwWz!0CbuBcFgi2l7U>Iu%*3?w3w`P<f7>k0_>}6g+} z@p>70s}RG)-LAC0jHP<3`ew#)6m(CJvO5NCr!a1!oAZap}PG+D!UVU83#O_Gl-xTHSwzew}`Yv&$Zr`Yq0DM3?9<0K4^< zfj#f&~HgT@BQ*zv#R}@bd=W3J4s?47`TBT+BfQ98a+h<%rmyApYg!n*{8%v;yO@PqsQ;5qYm_;2{^Es8 znpzgkU);YmIZ89ucCK&lZ0q0LZL7l0uI?3`?OSQ-`b*b!Zd?eK7TW8Y+qZQ$w_fOE zZ5d&LWii;Xpwk>Y$?%d*%ko7;XwNTICG_#V^Sj$OEbqLmU6|$V>)S8t zZf~2vv8{a@wYIf6?{A6qzq#YM@=4%hJICFaD(Wvujr2K7uIMf(Tu7JFMbwFJL#>$m zvoMc0;yam*H~)6${VNvXlTItN8!?|->B4^d$|Wl6riUIpd(MC4FZlM^i?``F|M-~m z+*Nnu1BXv#kI0^9Wd)rryQi3;V!sMT%S^I%c03r&E-Kce09p6=jRzf z#rtJ82%O1u@!pb{R&TBRFO;W+A1dozW1-(J5gDaF)=4$2~Wmk ltphcs|CSpYP9t{Sc4|*!JbvHHVQpz$zjfgKVS8%={{vi7yE^~? delta 10330 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

aIoeO6q>w^r`rcBvTMDLMYiGI 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 diff --git a/plugins/BinLogReader/Form1.cs b/plugins/BinLogReader/Form1.cs index e4a24e6b..0b07eded 100644 --- a/plugins/BinLogReader/Form1.cs +++ b/plugins/BinLogReader/Form1.cs @@ -22,11 +22,10 @@ public class Form1 : System.Windows.Forms.Form private System.Windows.Forms.OpenFileDialog ofd; private System.Windows.Forms.MenuItem MenuFileOpen; private System.Windows.Forms.TabPage PluginsTab; - private System.Windows.Forms.TabPage LogTextTab; - private System.Windows.Forms.TabPage ViewTab; - private System.Windows.Forms.TabPage LogListTab; private System.Windows.Forms.ListView PluginList; + private System.Windows.Forms.TabPage LogTextTab; private System.Windows.Forms.RichTextBox TextLog; + private System.Windows.Forms.TabPage LogListTab; private System.Windows.Forms.TabControl MainTab; ///

/// Required designer variable. @@ -77,16 +76,15 @@ private void InitializeComponent() this.menuItem5 = new System.Windows.Forms.MenuItem(); this.menuItem6 = new System.Windows.Forms.MenuItem(); this.ofd = new System.Windows.Forms.OpenFileDialog(); - this.MainTab = new System.Windows.Forms.TabControl(); this.PluginsTab = new System.Windows.Forms.TabPage(); this.PluginList = new System.Windows.Forms.ListView(); this.LogTextTab = new System.Windows.Forms.TabPage(); this.TextLog = new System.Windows.Forms.RichTextBox(); this.LogListTab = new System.Windows.Forms.TabPage(); - this.ViewTab = new System.Windows.Forms.TabPage(); - this.MainTab.SuspendLayout(); + this.MainTab = new System.Windows.Forms.TabControl(); this.PluginsTab.SuspendLayout(); this.LogTextTab.SuspendLayout(); + this.MainTab.SuspendLayout(); this.SuspendLayout(); // // mainMenu1 @@ -137,22 +135,6 @@ private void InitializeComponent() // this.ofd.Filter = "Binary Log Files|*.blg"; // - // MainTab - // - this.MainTab.Anchor = ((System.Windows.Forms.AnchorStyles)((((System.Windows.Forms.AnchorStyles.Top | System.Windows.Forms.AnchorStyles.Bottom) - | System.Windows.Forms.AnchorStyles.Left) - | System.Windows.Forms.AnchorStyles.Right))); - this.MainTab.Controls.Add(this.PluginsTab); - this.MainTab.Controls.Add(this.LogTextTab); - this.MainTab.Controls.Add(this.LogListTab); - this.MainTab.Controls.Add(this.ViewTab); - this.MainTab.Location = new System.Drawing.Point(8, 12); - this.MainTab.Name = "MainTab"; - this.MainTab.SelectedIndex = 0; - this.MainTab.Size = new System.Drawing.Size(656, 372); - this.MainTab.TabIndex = 0; - this.MainTab.SelectedIndexChanged += new System.EventHandler(this.MainTab_SelectedIndexChanged); - // // PluginsTab // this.PluginsTab.Controls.Add(this.PluginList); @@ -187,7 +169,7 @@ private void InitializeComponent() // TextLog // this.TextLog.Dock = System.Windows.Forms.DockStyle.Fill; - this.TextLog.Font = new System.Drawing.Font("Lucida Sans Typewriter", 8.25F, System.Drawing.FontStyle.Regular, System.Drawing.GraphicsUnit.Point, ((System.Byte)(0))); + this.TextLog.Font = new System.Drawing.Font("Lucida Console", 8.25F, System.Drawing.FontStyle.Regular, System.Drawing.GraphicsUnit.Point, ((System.Byte)(0))); this.TextLog.Location = new System.Drawing.Point(0, 0); this.TextLog.Name = "TextLog"; this.TextLog.Size = new System.Drawing.Size(648, 346); @@ -202,13 +184,21 @@ private void InitializeComponent() this.LogListTab.TabIndex = 3; this.LogListTab.Text = "Event Log (List)"; // - // ViewTab + // MainTab // - this.ViewTab.Location = new System.Drawing.Point(4, 22); - this.ViewTab.Name = "ViewTab"; - this.ViewTab.Size = new System.Drawing.Size(648, 346); - this.ViewTab.TabIndex = 2; - this.ViewTab.Text = "View Configuration"; + this.MainTab.Anchor = ((System.Windows.Forms.AnchorStyles)((((System.Windows.Forms.AnchorStyles.Top | System.Windows.Forms.AnchorStyles.Bottom) + | System.Windows.Forms.AnchorStyles.Left) + | System.Windows.Forms.AnchorStyles.Right))); + this.MainTab.Controls.Add(this.PluginsTab); + this.MainTab.Controls.Add(this.LogTextTab); + this.MainTab.Controls.Add(this.LogListTab); + this.MainTab.ItemSize = new System.Drawing.Size(46, 18); + this.MainTab.Location = new System.Drawing.Point(8, 12); + this.MainTab.Name = "MainTab"; + this.MainTab.SelectedIndex = 0; + this.MainTab.Size = new System.Drawing.Size(656, 372); + this.MainTab.TabIndex = 0; + this.MainTab.SelectedIndexChanged += new System.EventHandler(this.MainTab_SelectedIndexChanged); // // Form1 // @@ -219,9 +209,9 @@ private void InitializeComponent() this.Name = "Form1"; this.Text = "AMX Mod X BinLogReader"; this.Load += new System.EventHandler(this.Form1_Load); - this.MainTab.ResumeLayout(false); this.PluginsTab.ResumeLayout(false); this.LogTextTab.ResumeLayout(false); + this.MainTab.ResumeLayout(false); this.ResumeLayout(false); } diff --git a/plugins/BinLogReader/Form1.resx b/plugins/BinLogReader/Form1.resx index 761a42bb..a3cd0240 100644 --- a/plugins/BinLogReader/Form1.resx +++ b/plugins/BinLogReader/Form1.resx @@ -151,24 +151,6 @@ 126, 17 - - True - - - False - - - True - - - Private - - - Private - - - 4, 4 - False @@ -241,27 +223,30 @@ 8, 8 - + + True + + False - + True - - True - - + Private - + Private - - 8, 8 + + 4, 4 False + + Form1 + (Default) @@ -283,9 +268,6 @@ True - - Form1 - Private diff --git a/plugins/BinLogReader/Plugin.cs b/plugins/BinLogReader/Plugin.cs index 58a0ae96..015b1e6e 100644 --- a/plugins/BinLogReader/Plugin.cs +++ b/plugins/BinLogReader/Plugin.cs @@ -12,6 +12,7 @@ public class Plugin private string Filename; private ArrayList Natives; private ArrayList Publics; + private ArrayList Files; private string title; private string version; private int index; @@ -70,11 +71,12 @@ public int Index } } - public Plugin(string name, int natives, int publics, byte _status, int _index) + public Plugin(string name, int natives, int publics, int files, byte _status, int _index) { Filename = name; Natives = new ArrayList(natives); Publics = new ArrayList(publics); + Files = new ArrayList(files+1); status = _status; index = _index; } @@ -89,18 +91,37 @@ public void AddPublic(string pubname) Publics.Add(pubname); } + public void AddFile(string filename) + { + Files.Add(filename); + } + public string FindNative(int id) { if (id < 0 || id >= Natives.Count) + { return null; + } return (string)Natives[id]; } + public string FindFile(int id) + { + if (id < 0 || id >= Files.Count) + { + return null; + } + + return (string)Files[id]; + } + public string FindPublic(int id) { if (id < 0 || id >= Publics.Count) + { return null; + } return (string)Publics[id]; } diff --git a/plugins/BinLogReader/PluginDb.cs b/plugins/BinLogReader/PluginDb.cs index 9621b7fc..dd6f912a 100644 --- a/plugins/BinLogReader/PluginDb.cs +++ b/plugins/BinLogReader/PluginDb.cs @@ -47,16 +47,32 @@ public static PluginDb FromFile(BinaryReader br) { byte status = br.ReadByte(); byte length = br.ReadByte(); + uint files = 0; byte [] name = br.ReadBytes(length + 1); + if (status == 2) + { + files = br.ReadUInt32(); + } uint natives = br.ReadUInt32(); uint publics = br.ReadUInt32(); int id = db.CreatePlugin( Encoding.ASCII.GetString(name, 0, length), (int)natives, - (int)publics, + (int)publics, + (int)files, status, (int)i); Plugin pl = db.GetPluginById(id); + for (uint j=0; j