From dc9350fcc56c30e4f87ec177400a9a978f3dfc01 Mon Sep 17 00:00:00 2001 From: David Anderson Date: Sun, 19 Mar 2006 21:40:24 +0000 Subject: [PATCH] committed changes for new file format --- plugins/BinLogReader/BinLog.cs | 26 ++++++-- plugins/BinLogReader/BinLogReader.exe | Bin 45056 -> 45056 bytes plugins/BinLogReader/Form1.cs | 26 +------- plugins/BinLogReader/PluginDb.cs | 90 ++++++++------------------ 4 files changed, 51 insertions(+), 91 deletions(-) diff --git a/plugins/BinLogReader/BinLog.cs b/plugins/BinLogReader/BinLog.cs index e97bd83f..cf6cac36 100644 --- a/plugins/BinLogReader/BinLog.cs +++ b/plugins/BinLogReader/BinLog.cs @@ -11,9 +11,10 @@ namespace BinLogReader public class BinLog { private static uint BINLOG_MAGIC = 0x414D424C; - private static short BINLOG_VERSION = 0x0100; + private static short BINLOG_VERSION = 0x0200; private ArrayList oplist; + private PluginDb plugdb; public ArrayList OpList { @@ -28,7 +29,12 @@ public ArrayList OpList oplist = new ArrayList(init_size); } - public static BinLog FromFile(string filename, PluginDb db) + public PluginDb GetPluginDB() + { + return plugdb; + } + + public static BinLog FromFile(string filename) { if (!File.Exists(filename)) return null; @@ -68,6 +74,12 @@ public static BinLog FromFile(string filename, PluginDb db) else bl = new BinLog( (int)(fi.Length / 6) ); + bl.plugdb = PluginDb.FromFile(br); + PluginDb db = bl.plugdb; + + if (db == null) + throw new Exception("Plugin database read failure"); + do { opcode = (BinLogOp)br.ReadByte(); @@ -246,14 +258,18 @@ public static BinLog FromFile(string filename, PluginDb db) } while (opcode != BinLogOp.BinLog_End); opcode =BinLogOp.BinLog_End; } - catch + catch (Exception e) { - if (bl != null) + if (bl != null && bl.plugdb != null) { BinLogSimple bs = new BinLogSimple(BinLogOp.BinLog_Invalid, gametime, realtime, pl); bl.oplist.Add(bs); + } + else + { + throw new Exception(e.Message); } - } + } finally { br.Close(); diff --git a/plugins/BinLogReader/BinLogReader.exe b/plugins/BinLogReader/BinLogReader.exe index 52a9ce4e30ec44a76d0c4505080a3d9959d00ab6..72069d60bc2d599d1be3a68d5c52b26c664e104e 100644 GIT binary patch delta 10553 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 delta 11430 zcma)B3wTuZl|T0}cOJ=1a%aL!LI{~a5+)Cl5I|lcgohC1DFMNP5Fmx{y5S}u7|A6q zzACojrB&Brt?RDR-S$&sTkT_4YqeI<&vxzBt`(&(ZFSq)?$%m$+21+$&SXOAW4*}pHYHyz#ef;JMb@|ETUsxOa<7bIh6Mpv)^@NUBCEO}yliG23 z=wr%2thVJOtB4lkPsQIOJwyu{i4@S&iHwffL>ni&?^zp-D74` zk!Bj!N*E=A;lxaHru(e9$cZ+DgVt!G$j(I6BNDNoRRTexC}-9D7iY%cVHPLN zBCCQ0rWrM3rfCLD-3<07Ichv)p$x-}TVr8SJAJf9WEM0=f>s%OB!)93{0t>Q$1KUF z80DoHl{8Dd6iG8-CjA76U?ft0f|Q@&Yv=(aSm-AxGt0VrW1OlqnHbYh$=K8I#Fe`FF(hb$VbZjzFX^zETsabifdN@WJ zG16w*tZ4mDztTFcw92e9ORWhY{gSKvl0zuj4>^vX4yqmR_eOQltj=~ujn^49NweDP zj9PP?Io_=GlVHS+!~{R~1V8o{(fg&o0h(zfGQL5^H#i0ZKY5*5CzejIw}?&aebaj1 zbjz@5gW2E*O|WI7Z`tTuPKRaQC{N^3j$;t^CMKE_eMih4BhlnLHu;X{FlB>|%)Laj zUsj9RY_|ALX?B|AJ5BPPo`X}E4N7{YiLIf2%rf0<_4WV4L9J0d2_^^4$=U9l;>)H6 z&8b=0MI6S#^W%CIUk}gD{3>yZH+2TYfKU_9;=gJ4>q_wpaVH1?$!lkP=)c ztS|YgdLX7}{N!vTdX3ik`oEI=i}}eB&mU*aekD)QAD7HBxSIV_udK?lI>%3mbtAH$NQP^R5`F)$H*~cA{x&KS%K9kY>-wQ;g`ZD{_ian!P8-z@0N& z8;k*(!6DFa1{pd`y-#b;= zr7j)R>OwIm!F235&zKu(g zk%sA*8_XCMPUVONCx4^Bnqs-t07+_nbD@^ERT!ytk$ipY*R=e7joi|T>g?#$A_ztY zQ<@h5CQo*dy8NO?uE2g=WAyCu|9P%rRLOy|J#K1wD}zI46*W1<47hMMZ`(t=&g)S$ z7nPjXdm?mCSJXRyX@?k5Ut2C4lCiIsOtZW4708`aSUE*~qD7}jZs7EQY*Mi0K~~+9 zV@EqP;izVCk%_38X}q;@wOGjV(;5?MKU*{wcu#908)_LGvk?gsq>FH51$gfD;-HQk z#!%{NFAm2B}m;X$V&1e<5WF>MdBj>p7Ts{d!q#-Q}h zg2cL5#2h*0m%y}r%WynSR_g1RwvUh0Ask|l2*=IKhGQBn!eux$+$0R;a0A%FJ~nb7@YMv=-%PbRKH=J8!XwrF5?q zJUjgoSUS2gnO_2n?Ef7uf%)`}oc79GS}!X!4!X2G7vC<>QTY<#IZ4X8EJr7;r8&CX zT9%_z*76*k98m~INLnj$TDzR1d;P*XF3PQ_4m#2kUP+#h*AZR?E5%<%$ZI{XLcjGa zJ+JjFvL_8EV*bLdXHAM5?_gqx+oIvtbCPT;nYO#3}QEyVO=AKF4$5Za6?3BxNurT8dp=_42vef;Zaa4QuUG zfO;}ALG1A$y_tx$0DEsOWY$WjvwzaMLTH}eS(-=Dr;{00`^QfKc|YF9jm&yc@Y$0T zF-}#r}Lx|%$UZNxj*;ov)Gu5_=dsc?8!S|5?rLT&(QZ3JkgO@>ywsdO^V zFCI+mD#?TMPp46>|-y2G;D-0Q}$Nctg zL&Tuf<)$Z8IRP^u_qfW)mAxP3?7_-dB9u&o8=CNjAC{|MA1(@Ng5S*zGn5G-wi&ct zG}61%m|=Xz37hz^AdyMoHkZlW&j|Cw!{%~c z`gfQm^)oXQL3;=x5+U^2)v#TNSWzw%QPw%yT>!fYAS=&Q?K@8a_FhahCOkZ zEd@K9S^Iu>Ufq|H4G7h$mcSU(M%TO{Z+DIQv3V*SEW@gq^^1+mAg~(T8|%kj!Q}b( ze-AbIAF_h}GZZwjG`w%L{)e{& zR)+W%g!qe=6EVX{GbA6c%!paQYk-d{BT*PK3%&2b(PSdl&~l-WX4LyCmJ7l662pvP zy~ObSH!|(nWTNP=x;n$@EnHp<{-&HLGK=q#p?|3jdprNeCFm{|~P4H~pj z@POcP!7m6tDR@TkJ;8X0?HdG_2yS=e@w{;&WY9l_7#|e;H^JuwUk!1x_l2GweoZxK zeV8Si1a}F3UhwPT2f`6*j&QjPf%nsr2u6W!h*aZ^@oten0{llh4SAgY6mi~)#3@to zRwP0nFJQMvfpK~ok~lpl_yeFp&4nCdUSUvapdE#nEp#*J2;DAtpWvgw-_ujj{+`|j zHqZxRSrKK+dckSH810R&h{k9zx?(CGHwbg5;3IS|a2LvAh>hvwOANZU)0DMUuL@8G}S~DK| z1V5n-fWA%WJGEbe_9PyCw`d;_?ZbjEXsxh$Nh=1D&T;a613E`26kMlI!5Ht-rvvv3 zI)XRp4vSo2{#Cyi^n*e_rOyTZqTnlnKNWmeUjTV5uozesSPE?BFrW;1;w=rHcgT8_gK4|2BBc-ZOa2-qnj~ zWg7bpT^|}$N+8)L++gW3g(url;XXsRDP!>+{&Wpn9xuI1sYO@+R=A_EybfHcoRy!U zAF8+DrsOpG?0f2`F_C`kbGr69Dx_@_IL!4SQ#(aPbkOIdYm|> zaKrK}*{_^l%JZwBpXDsyrV1*l8@3!zCwz`G)X;r(xF4g12>LGA(|M-#bTJo|Q2oyfCnrTaX~&^J(aD}6iX7r|P3JI`+#?dF%MY>F9lZ38Fd6eU=> zpB2vQnc4KV&vD&zh#JK*^j}&DxDuaxQyZ(yA^u>OjX9U5dpg9tj^@%zU&m$7r)R(+ zzt`Oh>E)bhwX%>x6TL8OdKq0S-1VVR`dMrzxB6VA-mEO6`+Tkry5;n!&rOAHIh_{H zYs3m_X_B&~m{qixImb`mLF;nL4yA(*3ioa52&@BlpKyb;Gti-|p*Q7jah#3?Y6&l* zcu6E|+II!Ip{w?}e+G92P4~I41bUS9bj0VL2pmwZqz=5WA^#vf57Q0w4Bi1b%T9v2D*U!-01y2l}(3roTaBWJ*WSMN}EQ;E--!Ml|`v{*RaOzuK_3*_0H`8#aRip?)1&aZ(w9SCFo2PCL*fuNoPn`$s+2X0f~0+#0> zSHJIuw?#h4y#h4Qds|BRkYEu}u~6j!-70JKfk~J5W7uw39?ML$FP- zQ?OldmEd~8Hf36*LupqwM)s+zlwFal)fvS%46v;5 zD74PF!gb0+FzrwtQZ&H zDOKvJ=zMLG8jrL?^mKHkHUsoptxaX;cJ(LGjd1>Dbeq;mT5OlL3fg_3i(^-7ijt0< zrS$o~5@3c_02}eD6T+osJ#Y#+SK%?8wgNAv z9l*J?2e^Q2;8F>+QUY~Ih;_vFA4nQfIE}8%#fwP+J*73_-I#H!;4Hy%!O4P`34TOy zzTj$lYMz!>CL_>X!Oen?2UzmDAQ?=j1u6KXI*Z;?R;pXoJ?hWYG1@1!2eilCL2H6@ zuTqc0XrcBbaJlv!;2P~TaJTj<@Z;Lgf!`7QgT|I^I!hJ_K5sDneZiLnUl)ACVBf~z ztJp;p>_{pu$N^vk_huDM4g+I&sub_WE18NnyCPsM?zIX{5Nt-DsOTTY7F=)@ngmpF zX-k1_!y;7CyL^G4PvxNJ2`<33RmH$n0+(UA>PL7xBYGwD!d33AJ(ruGQ{Te&>-|`9 z=g{waKA{wE@9NvMqGxG$Zyz;n?X&Emd+g^lqi6U2?c25t?L2U^GHG7>@&)rYEo)oU zKA${#?ZV4fx35@E>^tAuzqgMTb@i=;OZVP+huXIdjX&6{6mHu>s}J?|b?s?tU*UfG zP*vf)?!BG%q075Ew{_X>mk-@FwBedxX^wBx(RHw|>GH1a`*(NR3lH|#UA?{C*4|!% zsOz94y0m+D*YeIiU9_yTZ|e?PWLx`tM6r7R)~zu2B=fD^ySujb!B=!*)l2g`d;0d< zUFRuTS_N@VPu|xZns4ph+S!NPJ-a)%x~m2z6>v+JAxY=EoXH-3w@W5H~oZFtqL!?Ou@w%w4?o=dSIb%XALE=_%~Ow&iji+Rt#6YJ*? zxNWfQ!`~MC^}?gkw`K3WknO=UP5VLHpte$m)9yvEYrt;9&{KgIa2rBUn2Qi$JNgsNeet@I zxSpoCsizesgjEv{#o|kcKD=(GqAYc%+%SI(KCr}>#zN^pC>9C@LOS-!7~AcOnfu)n zH#DTy1!u+g#Sg{tB@|!j_A5%*6wRyamli4U5w0J061 z2{S4rOocF2_$H>s@H5i<@KkjHIMskw@F=E$IT(l!hGQ{vaFRJVwJaDGK@@T0gQMbu z74gBUSp3LfEEO!4nwExx;cy^O5eSFfbvG3!D1A~oLf{gn)5oilYRk!?+irSW9g5w0 ziBj;wRjj!#pf(=fGKu@kq_G-?^T>$W-PiQG5bS?3uwpZHOMx^niAdCzZ( Ij<*E=AB=?L^#A|> diff --git a/plugins/BinLogReader/Form1.cs b/plugins/BinLogReader/Form1.cs index 91f0dfd3..e4a24e6b 100644 --- a/plugins/BinLogReader/Form1.cs +++ b/plugins/BinLogReader/Form1.cs @@ -5,7 +5,6 @@ using System.Windows.Forms; using System.Data; using System.Text; -using System.Text.RegularExpressions; namespace BinLogReader { @@ -61,7 +60,6 @@ protected override void Dispose( bool disposing ) base.Dispose( disposing ); } - private PluginDb plugdb; private BinLog binlog; #region Windows Form Designer generated code @@ -250,7 +248,6 @@ static void Main() private void Form1_Load(object sender, System.EventArgs e) { - plugdb = null; binlog = null; g_UpdateViews = ViewAreas.Update_All; } @@ -281,8 +278,9 @@ private void UpdateViews(ViewAreas v, BinLogFlags b) if (v == ViewAreas.Update_All || ((v & ViewAreas.Update_Plugins) == ViewAreas.Update_Plugins) - && (plugdb != null)) + && (binlog.GetPluginDB() != null)) { + PluginDb plugdb = binlog.GetPluginDB(); PluginList.View = View.Details; PluginList.Columns.Add("Number", 60, HorizontalAlignment.Left); PluginList.Columns.Add("File", 100, HorizontalAlignment.Left); @@ -333,25 +331,7 @@ private void MenuFileOpen_Click(object sender, System.EventArgs e) try { - /* try to open the accompanying database file */ - Regex r = new Regex(@"binlog(\d+)\.blg"); - Match m = r.Match(ofd.FileName); - if (!m.Success) - { - throw new Exception("Failed to find binary database, filename unrecognized!"); - } - Group g = m.Groups[1]; - CaptureCollection cc = g.Captures; - Capture c = cc[0]; - string dbfile = r.Replace(ofd.FileName, "bindb" + c.ToString() + ".bdb", 1); - - plugdb = PluginDb.FromFile(dbfile); - if (plugdb == null) - { - throw new Exception("Stream failure in database file"); - } - - binlog = BinLog.FromFile(ofd.FileName, plugdb); + binlog = BinLog.FromFile(ofd.FileName); if (binlog == null) { throw new Exception("Stream failure in log file"); diff --git a/plugins/BinLogReader/PluginDb.cs b/plugins/BinLogReader/PluginDb.cs index 9c464a26..9621b7fc 100644 --- a/plugins/BinLogReader/PluginDb.cs +++ b/plugins/BinLogReader/PluginDb.cs @@ -10,8 +10,6 @@ namespace BinLogReader /// public class PluginDb { - private static uint BINDB_MAGIC = 0x414D4244; - private static short BINDB_VERSION = 0x0100; private ArrayList PluginList; public int Count @@ -40,72 +38,38 @@ public Plugin GetPluginById(int id) return (Plugin)PluginList[id]; } - public static PluginDb FromFile(string filename) + public static PluginDb FromFile(BinaryReader br) { - if (!File.Exists(filename)) - return null; - - System.IO.FileStream stream = File.Open(filename, System.IO.FileMode.Open); - if (stream == null) - return null; - BinaryReader br = new BinaryReader(stream); - if (br == null) - return null; - - PluginDb db; - - try + //read plugins + uint plugins = br.ReadUInt32(); + PluginDb db = new PluginDb(plugins); + for (uint i=0; i BINDB_VERSION) - throw new Exception("Unknown DB version"); - //read plugins - uint plugins = br.ReadUInt32(); - db = new PluginDb(plugins); - for (uint i=0; i