Version 1.0.4.70: August 22, 2001
Greg:	- Added BumpEnv mapper
		- Added NPatch enable flag for meshes (in the w3dtools command panel)
Ian:	- Added BumpEnv setting to the shader (in primary gradient)

Version 1.0.4.69: January 4, 2001
Greg:	- Modified the "bone picker" that the WWSkin space warp uses to allow Max bones to 
          be used.

Version 1.0.4.68: December 7, 2000
Andre:	- Added a Static Sort Level parameter to the Surface Properties rollup page of the
		  material editor. This parameter must be the same across all materials assigned to
		  one mesh, and is enforced on export. The value is written out as part of the mesh
		  header to which the material is assigned.

Version 1.0.4.67: December 6, 2000
Greg:	- Added 'Vehicle' collision bit.  This will allow us to create meshes which constrain vehicles
          to certain parts of a level without constraining characters or projectiles.

Version 1.0.4.66: November 7, 2000
Greg:	- Disabled the "optimize meshes" feature because recent developments in the run-time code
		  seem to have made it un-necessary (and possibly even undesireable due to the extra mesh overhead)
		  The main reason for disabling the feature is that the automatic nature of it makes some of
		  our processes harder to debug.  Mesh names are lost so the artist has no way of figuring out
		  which mesh is causing problems when one of the other tools complains about something.
		- modified the mesh export code to reject meshes that are using multi-pass transparent materials.
		- fixed error message boxes so they pop on top of all windows (they were appearing behind the log window)

Version 1.0.4.65: October 31, 2000
Greg:	- Finished code re-organization.
		- Pat provided new UI for the main export dialog
		- Fixed the "smooth across meshes" feature
		- Added the export log window.

Version 1.0.4.64: October 20, 2000
Greg:	- Fixed a bug in the name editing dialog in the W3D utility panel
		- Modified the VAlpha behavior so that only the *last* pass with alpha blending
		gets the vertex alpha (instead of all passes with alpha blending)
		- Added the Aggregate geometry type.  This lets you request external
		W3D objects to be attached to bones in your model.
		- Added preliminary mesh optimization features.  During the export, meshes can be split
		into single-material meshes and then meshes which use the same materials
		can be combined into larger meshes.

Version 1.0.4.63: October 19, 2000
Greg:	Re-organized the entire DoExport function.  
		- First I unified all of the code to go through the "DoOriginBasedExport" 
		code by using the scene root as the origin when there were no user-defined 
		origins.
		- Re-organized the Export_Geometry function to use a new abstract
		class: GeometryExporTaskClass which encapsulates a lot of code that was
		cut-and-pasted many times through the w3dexp.cpp module.
		- Broke several classes and functions out of w3dexp.cpp into their own
		modules.
		- Modified/Cleaned HierarchySaveClass and MeshConnections class.

Version 1.0.4.62: October 11, 2000
Greg:	Re-organised the W3DUtility plugin.  Moved several dialog boxes 
		used by it into their own modules and created a modeless dialog
		containing the w3d settings that can be left up when the user
		is not in Max's utility panel.

Version 1.0.4.61: September 26, 2000
Greg:	Added copying of the dazzle app data structure to the MaxScript
		extensions.

Version 1.0.4.60: September 22, 2000
Greg:	Added dazzle exporting to the plugin.  Modified MeshConnnections
		class and the w3d file format so that HModels are exported in a
		slightly simpler manner and so that they can support dazzles.  The
		"auxiliary" header for hmodels is now obsolete.

Version 1.0.4.59: September 18, 2000
Greg:	Modified the code so that collections are exported even when no 
		meshes or other render objects are present.  This is used to create
		collections of proxy objects for the renegade level editor.  Also 
		modified the "origin" export code to support exporting collections
		with origins.

Version 1.0.4.58: August 25, 2000
Greg:	Fixed a crash bug that happens if you create a PS2 material.  The
		bug was caused by the modifications to the texture pane to replace
		the NoMipMap and Resize buttons with a single NoLOD button.  For some
		reason, the PS2 material uses a separate dialog template for its 
		texture pane which is the same as the dialog template for the 
		normal material.  Since the PS2 version of the template was not updated, 
		the code would crash when initializing the NoLOD button.

Version 1.0.4.57: August 18, 2000
Andre:	Fixed the loading of version 4 ParameterBlocks so that the value
		for Stage1MappingType is correct.

Version 1.0.4.56: August 16,2000
Greg:	Removed the texture flags and buttons for No-Mipmapping and enable
		resizing.  These are all lumped into the setting for No-LOD now.
		The GameMtl still has the entries in its parameter block for 
		No-Mipmapping and Resize and I use the No-Mipmap setting to set
		the initial state of the No-LOD flag...  This also required a flag
		in GameMtl indicating that the conversion had been done.  Ug... :-)

Version 1.0.4.55: August 6, 2000
Greg:	Added new colliison type: camera.  In renegade we have some physically
		collideable meshes which the camera should not collide with so I had
		to make a separate flag for camera collision.  When the appdata chunk
		is first converted to the new version, the camera collision flag is
		set to the same setting as the current state of physical collision.

		Added light-glare geometry type.  This currently only exports the 
		position of the pivot point of the max object.  It will be used to
		indicate where there should be fancy light glare effects in the level

		Added NoLOD option to textures in the W3D material.  This setting will
		be used on textures which should not scale down even when texture
		reduction is being used.

		Fixed serious bug in the parameter block description for the W3D
		material plugin (GameMtl.cpp)

Version 1.0.4.54: July 13, 2000
Greg:	Fixed a bug related to user-defined origins not working when they
		are rotate or moved from 0,0,0.

Version 1.0.4.53: July 12, 2000
Andre:	Added support for a different mappers on stage 0/1 of the Vertex
		Material. Added support for the new silhouette mapper type.
		These changes can be found in the VertexMaterial panel in the
		W3d material editor.

Version 1.0.4.52: May 30, 2000
Greg:	Added support for Max's multiple mapping channels.  This can be
        found in the VertexMaterial panel in the W3d material editor.

Version 1.0.4.51: May 22, 2000
Greg:	Added AABTree exporting so that we don't have to generate AABTrees
		at run-time.  This is controlled by the "Optimize Collision Detection"
		checkbox on the exporter options dialog box.
		Added prefix and suffix features to the naming tool.
		Added detatch vertices feature to the skin modifier.

Version 1.0.4.50: May 8, 2000
Andre:	Added a new MAX Script extension: wwInputBox
		This is a generic way of getting user input in a Windows-like
		manner (as opposed to typing it in the Listener window as
		MAX wants to force you to do).

Version 1.0.4.49: May 2, 2000
Greg:	Fixed a bug in vchannel.cpp.  Was writing out garbage animation
		channels which would crash wdump.
		
Version 1.0.4.48: May 1, 2000
Greg:	Changed the way skins are exported so that their vertices are
		sorted with respect to the bone they are attached to.  Also
		made it so vertices are secondarily sorted by vertex material 
		(this means that non-skinned meshes will sort by vertex
		material only.)

Version 1.0.4.47: April 19 2000
Greg:	Added a new geometry option for "shatterable" objects.  Wrote
		a new W3DAppData2Struct which replaces the old AppData1Struct.
		Whenever the old format app data is encountered, a new one
		is created to replace it.  This new app data chunk has more 
		space in it for future expansion.
		Also fixed a crash bug in the skin modifier related to deleting
		bones from the space warp.

Version 1.0.4.46: March 28, 2000
Greg:	Added "Transform Nodes" to the collection export.  We already had
		"Placeholder" objects which were signified by a '~' after the
		name.  Now we have "Transform Nodes" which are signified by a '*'
		after the name.  Transform Nodes instruct one of the Renegade tools
		to merge another W3D collection into the file at a given transform.
		The purpose was to allow us to lightmap certain building interiors
		only once and then merge them into many levels...

Version 1.0.4.45: March 8, 2000
Andre:	Changed the Is_Origin() test to check for hidden nodes. If a
		node is hidden, it will not be accepted as an origin. This
		means that hiding an LOD prevents it from being exported (as
		you would expect).

Version unchanged: early March
Andre:	Fixed a couple of crash bugs related to animation exporting.

Version 1.0.4.43: February 29, 2000
Greg:	Fixed a bug which caused all meshes marked to cast shadows to
		not get texture coordinates.  
		Fixed meshsave.cpp to detect and properly handle mirrored meshes.

Version 1.0.4.42: January 24, 2000
Lytle:  Added Playstation 2 material support, including converting W3D
		materials to PS2 materials.  Added support for vertex colors and
		vertex alpha to exist concurrently.

Version 1.0.4.41: January 13, 2000
Andre:	Fixed a nasty memory overwriting bug in MeshConnectionsClass
		that only reared its head under very unique circumstances.
		It was a copy/paste bug that would lead to writing a W3D
		file with incorrect data. It would manifest itself by crashing
		the viewer (and potentially the game engines) when trying to
		load the file.

Version 1.0.4.40: December 16, 1999
Ian:	Added 'Export Utilites' group to W3D Utility panel and added a
		'Export with Std Mtls' button to this group. This button will
		first convert all W3D materials in the scene to standard
		materials, then call the export feature, then, after export,
		convert materials back to W3D materials. The purpose of this
		utility is to make it possible to export W3D material attributes
		to third party file formats (eg. Lightscape Preparation files).
		
Version 1.0.4.39: November 15, 1999
Andre:	Changed the mesh LOD naming convention so that we use numbers
		that correspond to the LOD number (highest-to-lowest) instead
		of letters that went from lowest-to-highest.

Version 1.0.4.38: November 12, 1999
Greg:	Updated MeshConnections class and the hmodel chunk definitions
		in w3d_file class to not treat shadow meshes as a different type
		of mesh.

Version 1.0.4.37: November 11, 1999
Greg:	Removed the GEOMETRY_TYPE_SHADOW settings and UI.  Added a
		EXPORT_CAST_SHADOW flag.  This basically means that rather than
		shadow casting being a completely different "type" of mesh it
		is now an option on any mesh.  This required some tweaking
		of the AppData structure we're saving and to the w3dutil code.

Version 1.0.4.35: November 3, 1999
Andre:	Exposed another script extension, called "wwDuplicateSkinWSM".
		This extension allows the SceneSetup script to copy bone
		information from the base object's skin WSM to the LODs.
		Meshes are still unaffected, since the artist will be munging
		the meshes to reduce their poly counts.

Version 1.0.4.34: November 2, 1999
Andre:	Exposed two new script extensions, named "wwCopySkinInfo" and
		"wwFindSkinNode". These extensions allow the SceneSetup script
		to copy the skin/vertex/bone binding information from the base
		model to the LOD and Damage models.

Version 1.0.4.33: October 18, 1999
Andre:	Merged WWScript.dlx into the exporter, so now WWScript is
		unnessesary and should be deleted. The code in that DLX was
		ported from MFC to Win32 code during the merge. GetW3DAppData0
		and GetW3DAppData1 are no longer exported from the DLE.

Version 1.0.4.32: October 11, 1999
Andre:	Correct NULL object handling was implemented when exporting HLODs.
		NULL object chunks are only written when using the old-style LOD
		setup (one per file), otherwise the name "NULL" is put in the HLOD
		and no NULL object chunk is written.

Version 1.0.4.31: October 5, 1999
Andre:	Fixed a bug in MeshBuilder where a division by zero occurred if the
		extents of a triangle was zero in one dimension.

Version 1.0.4.30: October 1, 1999
Andre:	- Added support for the "suppressPrompts" flag during export. If
		Max passes in a TRUE value, we will go with the previous export
		settings instead of showing the export options dialog. This makes
		non-interactive batch exporting possible.
		- Moved W3dExportOptionsStruct from w3ddlg.h to w3dutil.h so that
		WWScript can access it easily.

Version 1.0.4.29: September 27, 1999
Andre:	- Fixed a skin bug that occurred in LOD exporting when a vertex in a
		skin was not bound to a bone (it would be exported in unmodified
		coordinates, creating a "pop").
		- Strip off any trailing ".%d" or	"." from a name in Set_W3D_Name
		(as opposed to just ".%d").
		- If the artist sets up damage animations, then the animation on
		the	base model is no longer exported. (non-damage animations should
		still be created in separate files)
		- Exporting 2 more symbols from the DLL (GetW3DAppData0 and
		GetW3DAppData1). These functions are used by the MAXScript extension
		DLL (WWScript.dlx) to copy AppData from one node to another.

Version 1.0.4.28: September 23, 1999
Andre:	Fixed a bug in LOD exporting when the base object wasn't centered
		at the origin. Added support for placing damage models in the scene.
		Renamed "Generate LOD extensions" to "Generate extensions" since
		the same extensions are used for damage. Added a "Damage Region"
		spinner to the W3D Tools panel. With this spinner you can mark
		bones as being part of a given damage region (0 to 15, -1 means
		not part of a damage region).

Version 1.0.4.27: September 17, 1999
Greg:	Added degenerate triangle removal to MeshBuilderClass.

Version 1.0.4.26: September 17, 1999
Andre:	Modified the exporting code to allow artists to define all LODs of
		an object in one MAX file. The old way of creating LODs is still
		supported so that old art assets are still usable. Added a
		"Generate LOD extensions" button to the W3D Tools panel to make
		the Origin naming convention less painful.

Version 1.0.4.25: August 21, 1999
Greg:	Fixed a bug in Export_Geometry.  While exporting skins, one line of
		code was referring to the list of normal meshes rather than the list
		of skins.  When you do an export with only a skin and no meshes, this
		causes an access violation.

Version 1.0.4.24: July 27, 1999
Greg:	Changed the Hide/Unhide by W3D type buttons into "Select by W3D Type"
		buttons.  This should be more useable.  Also, added select alpha meshes,
		select physical, projectile and vis collision meshes.  
		Added a material naming tool.

Version 1.0.4.23: July 9, 1999
Pat:	Changed the default behavior of the collection naming tool to 
		be 'affect selected' rather than 'affect all'

Version 1.0.4.22: July 7, 1999
Pat:	The export code doesn't export the DCG array if all vertex colors
		are white (1, 1, 1), however this was a problem when using the
		new Mesh Deformer, so I added a check during export to see if
		the Deformer was modifying vertex colors.  Also modified the
		hierarchy export code so it will resize its internal array if
		the number of nodes is greater than 512.

Version 1.0.4.21: July 1, 1999
Pat:	Added code to optimze the between-mesh smoothing and added a new
		button to the export dialog that allows the user to turn this 
		smoothing feature on/off.  Also added displacement maps to the
		W3D material, however due to a bug in the NURBS Mesher modifier,
		we decided not to expose the functionality in UI at this time.

Version 1.0.4.20: June 24, 1999
Pat:	Added code to apply smoothing groups over mesh boundaries.  More
		work was done on the obj-space mesh deform modifier including save/load,
		export, undo, and vertex-alpha support.  We fixed a bug where the ErrorClass
		object that was used during exception handling was using and freeing a
		previously freed pointer. Added a new panel to the material types for
		Commando surface types.

Version 1.0.4.19: June 14, 1999
Greg:	Added the VAlpha checkbox to the W3D utility panel.  Checking this
		causes the exporter to convert vertex colors into alpha values and put 
		them in all passes that are using alpha blending.  This might be a temporary 
		solution; I'm thinking we need to extend the Utility panel (and the AppData 
		structure that we are saving) to allow for more flexible control over vertex 
		alpha, vertex color, etc.

Version 1.0.4.18: May 27, 1999
Greg:	Fixed a bug in the code which handles loading a hierarchy tree from another
		W3D file.  Made the W3D utility panel support multiple selection.  
Pat:	Added the initial mesh deform object space modifier.  Currently doesn't
		export the data.

Version 1.0.4.17: April 9, 1999
Greg:	Fixed a bug related to exporting a mesh with zero vertices.  Exporter will
		throw an exception which pops up a message box indicating the name of the
		mesh.  Made the collision boxes behave the same way as meshes when one is
		exported with geometry only - it takes on the name of the file.  Whew this
		part of the exporter code is getting uuuuuugly...

Version 1.0.4.16: April 6, 1999
Greg:	Fixed a bug related to the storing of the default export options.  If the 
		user exported a model which uses the hierarchy from another model and then
		moves the Max file, the next export would crash Max when the exporter couldn't
		find the w3d file which contains the hierarchy.

Version 1.0.4.15: Mar 18, 1999
Greg:	Fixed a bug in the AABox export.  Was using the wrong coordinate system for
		the box.  AABoxes actually seem to be of very limited use.  Possibly only
		useful as an approximation of a cylinder centered at 0,0,0 in object space
		(but moved anywhere on the z-axis) and only for objects that *only* rotate
		about the z-axis.  (characters) Ug.

Version 1.0.4.14: Mar 16, 1999
Greg:	Made meshes that are marked as AABox or OBBox export a W3D_CHUNK_BOX instead
		of a mesh.  The runtime engine can test collision with a box in about the same
		amount of time it takes to check a single triangle... so one box is much faster
		than a 12 triangle mesh :)  These boxes are only for collision detection so
		they only export a color, no other rendering information.

Version 1.0.4.13: Mar 11, 1999
Greg:	Fixed a bug in the collection exporter.  Needed to put the entire name
		of the render object into the sub object chunk.

Version 1.0.4.12: Mar 10, 1999
Naty:	Fixed minor bug with start/end animation frames in export dialog.

Version 1.0.4.11: Mar 4, 1999
Naty:	Added "Camera Oriented" mesh type (and changed the camera aligned button
		to read "Camera Parallel"). Export options are now saved in the MAX file
		(hierarchy file paths are saved in a relative form).

Version 1,0,4,10: Mar 3, 1999
Greg:	Modified so that collections are not exported when there is only a single
		mesh and forced that mesh to use the name of the file.
		Changed w3d_file.h so that meshes have a "container name" instead of
		a "hierarchy model name" and set the container name when a collection is exported

Version 1,0,4,9: Mar 3, 1999
Naty:	New Shader (took out colormaks, fogfunc, new dialog and preset system)
		Added alphatest support, added Linear offset mapper and mapper argument
		string support

Version 1,0,4,8: Feb 9, 1999
Greg:	Added the ZNormals option for forcing the normals of a mesh to be 0,0,1

Version 1,0,4,7: Feb 8, 1999
Greg:	Fixed 2 bugs in the skin code.  Added code to scan the materials used 
		by a mesh and discard un-used ones.
Naty:	Added 'Alpha-Bitmap' button to the texture dialog, added new shader presets

Version 1,0,4,8: Feb 15, 1999
Greg:	Improved the strip generation algorithm.  Now actually turns a cube into 6 
		strips instead of 12 individual triangles.  Still needs work though...