I have done a few small things today, most notably I have changed the InSim.Send(IEnumerable<ISendable>) method to be InSim.Send(params ISendable[]) instead.
This makes sending packets in batches simpler. Now you can just do this:
<?php
insim.Send(
new IS_TINY { ReqI=1, SubT=TinyType.TINY_NCN },
new IS_TINY { ReqI=1, SubT=TinyType.TINY_NPL },
new IS_MST { Msg="Hello, world!" }
);
?>
Sending multiple packets in a single Send call uses less bandwidth than sending them individually. You should always look for ways to batch send your packets.
This is a slight breaking change as that method used to accept IEnumerable<ISendable>, which meant you could pass pretty much any .NET collection into it, however I think this new syntax is much neater. If you want to pass in an List<ISendable> or whatever you can just call its List<ISendable>.ToArray() LINQ method.
<?php
var packets = new List<ISendable>();
packets.Add(new IS_TINY { ReqI=1, SubT=TinyType.TINY_NCN });
packets.Add(new IS_MST { Msg="Hello, world!" });
insim.Send(packets.ToArray());
?>
Aside from that just some minor updates. I rewrote the TrackHelper class, as I was adding Rockingham it was very confusing as I had to add the new configs in four different places. Now I've simplified it so there is only one track list and the reversed/open stuff is worked out programmatically.
As I am in the mood to update the library let me know of any features you want added or bugs you want fixed.