EQExtractor2 Changelog. All changes since the 1.0 release.

==02/13/2013==
Derision: Added decoder to support packet dumps from current Live client. SQL generation NOT SUPPORTED YET.
Derision: Added boolean to patch decoders to indicate if they support SQL generation or not.

==02/10/2013==
Derision: Added decoder to support packet dumps from for the current Test Server client. SQL generation not tested.

==01/30/2013==
Derision: Added support in netcode for fragmented Client->Server packets.

==01/28/2013==
Derision: Added decoder to support packet dumps from for the current Test Server client. SQL generation not tested.

==01/25/2013==
Derision: Updated .conf files for RoF and current live client (Thanks Trevius).

==01/18/2013==
Derision: Added support for January 16 2013 client (with help from posts on the SEQ boards).

==12/18/2012==
Derision: Fixed crash when generating SQL for a spawn that is a destructible object that has no 'bodytype' field.

==12/17/2012==
Derision: Support for December 10 2012 client.

==08/22/2012==
Derision: Changed Base1/Base2 in AA dump to signed Int32

==08/17/2012==
Derision: Support for August 15 2012 client.

==07/19/2012==
Derision: Support for July 13 2012 client.

==06/30/2012==
Derision: Support for June 25 2012 client.

==03/24/2012==
Derision: Corrected spawn packet parsing per post by Razzle on ShowEQ forums.

==03/19/2012==
Derision: Support for March 15 2012 client. Credit to fransick and Newby on the ShowEQ forums for the PP and most of the opcode changes.

==12/03/2011==
Derision: Support for November 17 2011 client.
Derision: Added checkbox on SQL generation form to include invisible NPCs (race 127), default is false.

==08/06/2011==
Derision: Support for August 04 2011 client (currently on test).

==05/25/2011==
Derision: Support for May 24 2011 client.

==05/16/2011==
Derision: Fixed DumpAA option for May 12 client. There are two new uint32s in the SendAATable struct, one after Current Level and one after SpellType.

==05/15/2011==
Derision: Support for May 12 2011 client. Based on info by posters on the ShowEQ forums.

==03/21/2011==
Derision: Support for March 15 2011 client

==02/10/2011==
Derision: Support for Feb 8 2011 client
Derision: Corrected Identifier for Feb 8 2011 patch
Derision: Corrected OP_SendAATable for Feb 8 2011 patch

==01/29/2011==
Derision: Doors with opentype 57 are no longer automatically changed to type 58.
Derision: Handling of opcodes with zero low-byte (e.g. 0x4200).
Derision: Band-aid for crash when parsing OP_ZoneEntry for player with Otherdata & 0x01 set.

==12/25/2010==
Derision: Heading appears to be multiplied by 2 in ZonePoint packets.

==12/21/2010==
Derision: OP_SendFindableNPCS

==12/08/2010==
Derision: Added support for client Dec  7 2010 14:04:53

==11/22/2010==
Derision: Netcode fix highlighted by live patch supplied by robregen.
Derision: Handled spawns with otherdata & 2 set the same as otherdata & 1 (destructable object data present), based on live patch supplied
		  by robregen.

==10/23/2010==
Derision: Support for 20th October Live patch.

==09/23/2010==
Derision: Support for 22nd September Test Server client. Don't think I have OP_ShopEnd correct.

==09/17/2010==
Derision: Passed packet direction to Explorers.

==09/11/2010==
Derision: Identified a few more 'Area' IDs for the new Item slot numbering system.
Derision: Explorer methods are now called with the packet payload as a ByteStream rather than byte[]

==09/10/2010==
Derision: Addded ability to call 'Explorer' methods during Packet Dump for use while figuring out packet formats.

==09/08/2010==
Derision: Moved item packet decode into a separate method.

==09/03/2010==
Derision: Added support for version currently on test server (seems like a lot of opcodes have changed values).
Derision: Fixed item Quantity field for Sep 1 patch. Fixed typo in patch .conf file
Derision: Debug text box now resizes with it's parent form.

==08/29/2010==
Derision: Added handling of unencapsulated application packets with flags which were previously being interpreted as unknown opcodes.
		  (Seems to only have affects position update packets).

Derision: Construct grids from both OP_NPCMoveUpdate and OP_MobUpdate packets. Previously, if OP_NPCMoveUpdate packets were sent for a mob,
		  i.e. high-resolution updates, any OP_MobUpdate packets for that mob where ignored.

Derision: Added facility in Options to specify a file to write low level netcode debug information to.
Derision: Decoded Crypto flag from OP_SessionRequest to identify and ignore compressed UCS stream.
Derision: Added error checking when opening netcode debug file.

==08/27/2010==
Derision: Redesigned the UI. Use the menu bar, or the following shortcuts:

			Ctrl-L	Load .PCAP file
			Ctrl-S	Generate SQL
			Ctrl-P	Dump Packets
			Ctrl-V	View Packets
			Ctrl-A	Dump AA
			Ctrl-D	Show Debug Window (hidden by default. Change in Options).
			Ctrl-O	Set Options (these settings persist across sessions).			

Derision: Added the ability to disable removal of redundant waypoints.
Derision: Added an option to only generate SQL for spawns whose name contains a given string.
Derision: Added optional timestamps to packet dump. Added capture date to SQL output.
Derision: Fixed crash when Debug log was closed rather than just hidden.

==07/16/2010==
Derision: Replaced HexDump method with a considerably faster version.

==07/14/2010==
Derision: Renamed PatchTestJune242010Decoder to PatchJuly132010Decoder. 
Derision: Updated patch_May12-2010.conf with current EQEmu patch_Live.conf. Updated version number to 2.0.5

==06/26/2010==
Derision: Removed the need to duplicate certain methods when deriving a new decoder.
Derision: Moved patch specific variable setting (PPLength, Name etc.) into the decoder constructor

==06/25/2010==
Derision: Added support for current Test Server version (only PP length appears to have changed, no OPCode changes).

==06/12/2010==

Derision: Updated version to 2.0 SVN
Derision: Fixed a bug in GenerateZoneSQL where it was using the ZoneID from the NewZone packet rather than from the PP.

------------------------------------------------------------------------------------------------------------
==06/11/2010==

More refactoring. Should be possible to support .pcaps generated from mulitple client versions.
Refactoring and cleanup about as done as I can be bothered to before releasing the source :)

Merchant items that have a quantity other than -1 (mostly player sold items) are included in the SQL, but commented out.

==06/10/2010==

More refactoring.

==06/08/2010==

More refactoring.
Began to move code that may change with EQClient patch versions out into a separate class to allow easier handling of new patches.

==06/07/2010==

Changed GenerateSpawnsSQL to use BitConverter instead of memory streams;
Refactored some code.

Initial implementation of ByteStream class.

==06/06/2010==

For doors of opentype 57 and 58 (ports), the destination zone and coordinates are populated in the doors table, if a matching
zone point exists with the door param of that door. Doortype 57 is also changed to 58 if a matching zp is found.

Processing a capture file which was started while already in a zone and then zoning *should* now process packets for the
second zone correctly.

Released as version 1.9

==06/05/2010==

Reset expected sequence numbers when switching streams.


==06/05/2010==

Permalocked onto stream using C->S OP_ZoneEntry to reduce chance of multi-boxing messing the collect up.
Version clause is appended to query when updating existing npc_types.
Selecting the update existing npc types option will automatically uncheck all other options.
Reworked texture/helm parsing, so hopefully NPCs should look as close as possible to live now (as close as we can without having textures for each armor slot in npc_types).
Added 'experimental option to add texture colors to npc_types_tint so that different armor slots can have different colors.

Released as version 1.8

-------------------------------

==06/04/2010==

Fixed bug introduced in v1.6 that broke merchant SQL generation.
Gender is now updated for existing npc_types.
Guard races are now included when updating existing npc_types.
Obtained the ZoneID number from the Player Profile instead of the NewZone_Struct.

Released as version 1.7

-------------------------------

==06/03/2010==

The zone long name should no longer be truncated at 32 characters.
Apostrophes in the zone long name are escaped, i.e. Dranik's Hollows should be Dranik\'s Hollows.
The 'Update Existing NPC Types' option is now available. If selected, the following columns:

  texture, helmtexture, size, face, luclin_hairstyle, luclin_haircolor, luclin_eyecolor, luclin_eyecolor2, luclin_beardcolor,
  luclin_beard, drakkin_heritage, drakkin_tattoo, drakkin_details, armortint_red, armortint_green, armortint_blue,
  d_meele_texture1, d_meele_texture2, findable

  will be updated for existing rows in the npc_types table that meet the following criteria:

    Their ID falls within the range specified.
	The NPC is a playable race (Race <= 12 || Race == 128 || Race == 130 || Race == 330 || Race == 522)
	The NPC name is unique in the sense that only one NPC with the given first name was seen in the packet collect.

Released as version 1.6


==06/02/2010==

Implemented in 1.5 but not mentioned in changelog: Player mounts no longer included in SQL.

----------------------

==06/02/2010==

Fixed bug which caused the first spawn to always be skipped.
Update generated for fog_density column in zone table.
Populated Drakkin specific fields in npc_types.
Did some work on updating existing npc_types but left it disabled until an issue is resolved.

Released as version 1.5

==06/01/2010==

Changed doors and object/ground spawn extractors to use Bitconverter instead of memory streams.

==05/31/2010==

If zone config and/or zone points are selected, the generated SQL will no longer be commented out.
---------------------------------

==05/31/2010==
Populated Melee texture columns.
For playable races, equip_chest2 is set based on the equipped chest item, if one is equipped.
Set armour tint columns based on the colour field for the chest slot.

The starting IDs for database inserts are now set as variables at the top of the SQL:
  Note the Door ID has changed meaning. Instead of being the value for the id column in the doors table,
  it is now the base value for the doorid column. The id column will just use the next autoincrement id.

If the version number is none-zero, The base doorid = Version * 1000 and all other insert IDs are
  set to ZoneID * 1000 + (Version * 100).

If the version number is none-zero, deletes for npc_types and the spawn tables will only be generated from
  the starting InsertID to starting ID + 99.

Moved the Version NumericUpDown control to before the InsertID textboxes as changing the version will
 auto-change the InsertIDs.

Corrected a bug where IT10805 objects were flagged as ovens instead of brew barrels.
Added checkboxes (default unchecked) for zone config (fog, safe point, etc) and zone points.

Released as version 1.4
------------------------------------

==05/30/2010==
Added ZonePoint SQL generation.
Added generation of SQL to update zone table.
Obtained ZoneID from the OP_NewZone packet instead of from a lookup table.
Set findable column in npc_types based on OP_SendFindableNPCs packets from server.
Added Version field to UI which is used to populate the version column in the doors, npc_types, spawn2, ground_spawns and object tables.
Released as version 1.1
-------------------------------------------

Added apostrophes around short name in zone UPDATE statement.
Added Dump AA button to dump AA info.
FogDensity is reported along with the other OP_NewZone stuff
Released as version 1.2

-------------------------------------------
Fixed bug where incorrect Insert IDs were being using for spawngroups
Version 1.3
-------------------------------------------





