[Library] TagInterface .NET

This forum is for uploading new building blocks for maps such as tags and new models. Please do not post any copyrighted material (ie, models/textures from other games).
Post Reply
User avatar
kornman00




ONI New Age

Posts: 146
Joined: Fri Dec 12, 2003 6:30 pm
Contact:

[Library] TagInterface .NET

Post by kornman00 »

Download Update
TagInterface .NET Library by Kornman00

TagInterface.dll - v1.0.6 : .NET 1.1
TagInterfaceV2.dll - v2.0.0 : .NET 2

This provides a generic way to interface with blam engine tags.
The TagInterface assemblies hold the code for loading\saving things.

This is a modeified version of the code I started using
in my personal halo IDE tool almost a year ago (removed loading from map files code)

TagInterfaceDoc.chm has the current info of all the types in TagInterface.dll.

Only 2 or 3 method signatures have changed when upgrading to .NET 2, so I didn't
see the need to create a whole new chm file for it. Also V2.dll hasn't been offically tested, though
no functionality code has been changed drasticly so it should be OK.

Also added a new field called 'Skip' to work with non-byte swapped fields



BlamInterface .NET Library by Kornman00

BlamInterface.dll - v0.2.0.0 : .NET 1.1 (need to build the project to get this DLL)

BlamInterface has some examples of setting up the Tag group collections for a certain game, and defining
tag group definitions for a certain game. The csproj file for this class library was made with VS.NET 2003, but
like always, can be upgraded to the newest verion of VS.NET
Included Tag Groups:
-bitmap
-gbxmodal (although refered as model in the code)
-model_collision_geometry
-model_animation
-sound
-unicode\string_list
-structure_bsp*

* Note: There is bad definition data in this group. Appeas to be a few bytes off in the main definition data (child blocks should be fine though)
Although you could use this for Halo2 tag definitions (they would have to have the same file structure as Halo1 source tag definitions), more people would probably end up using it for CE, so I just posted it here.

Sample code for loading a tag definition:

Code: Select all

static void Main(string[] args)
		{
			BlamInterface.Halo1.model_group model = new BlamInterface.Halo1.model_group();
			Console.WriteLine("Loading...");
			TagInterface.EndianReader tagdef = new TagInterface.EndianReader(@"C:\Program Files\Microsoft Games\Halo Custom Edition\tags\untitled tag.gbxmodel", TagInterface.EndianState.Big);
			tagdef.Position += 64;
			model.Load(tagdef);
			Console.WriteLine("Done");
			Console.WriteLine(model.GetShader(0).Shader.Value);
			Console.ReadLine();
		}
All you have to do is supply the field info (no offsets or annoying shit like that) and it will be able to do things like loading\saving for you.

I got tired of all the hacks people made in their code for accessing tags, decided it was time to set somethings straight.
User avatar
Veegie[Temp]




Firestorm

Posts: 2849
Joined: Thu Jan 29, 2004 11:30 pm
Location: Logan
Contact:

Post by Veegie[Temp] »

Fix the sbsp definition data ;X
Image
Hijikata wrote:The fact you love Jesus doesn't change the fact you're a fucking mental patient. It just means you're a mental patient with a great imaginary friend.
User avatar
kornman00




ONI New Age

Posts: 146
Joined: Fri Dec 12, 2003 6:30 pm
Contact:

Post by kornman00 »

Veegie wrote:Fix the sbsp definition data ;X
Learn to program.
User avatar
kornman00




ONI New Age

Posts: 146
Joined: Fri Dec 12, 2003 6:30 pm
Contact:

Post by kornman00 »

Uninstalled mambo, so you have to get from this part of my site now:
http://kornner.epgservers.net/downloads/Source/
Post Reply