INCY Online Tag Format Development

Everything about HD, MD, and their mods.

Moderator: Halo Moderators

Post Reply
Sparky
Delta Force
Posts: 4194
Joined: Wed Mar 31, 2004 8:59 pm
Location: New Jersey, USA
Contact:

INCY Online Tag Format Development

Post by Sparky » Fri Feb 11, 2011 10:06 am

I briefly glanced through the XML Tutorials at W3 Schools (see the left navigation menu) (EDIT: Forget w3schools, use other online resources instead.), and I figured now would be a nice time to present the INCY Online tag format plans.

Eschaton uses .meta files that are partnered with .xml files. Here is what one of those .xml files looks like:
Cyborg COLL Tag wrote:

Code: Select all

<?xml version="1.0" encoding="UTF-8"?>
<!-- Eschaton: Meta Structure File v2.1 -->
<Results>
	<Map name="bloodgulch" version="6" magic="0x4B6BEC12"/>
	<Tag class1="lloc" class2="FFFF" class3="FFFF" tagoffset="0xA26598"/>
	<Filename name="characters\cyborg\cyborg"/>
	<Reflexive location="0x234" chunkcount="4" translation="0x298"/>
	<Reflexive location="0x240" chunkcount="1" translation="0x3B8"/>
	<Reflexive location="0x280" chunkcount="1" translation="0x42C"/>
	<Reflexive location="0x28C" chunkcount="19" translation="0x44C"/>
	<Reflexive location="0x400" chunkcount="1" translation="0x40C"/>
	<Reflexive location="0x480" chunkcount="1" translation="0x90C"/>
	<Reflexive location="0x4C0" chunkcount="1" translation="0xD9C"/>
	<Reflexive location="0x500" chunkcount="1" translation="0x127C"/>
	<Reflexive location="0x540" chunkcount="1" translation="0x175C"/>
	<Reflexive location="0x580" chunkcount="1" translation="0x2064"/>
	<Reflexive location="0x5C0" chunkcount="1" translation="0x2594"/>
	<Reflexive location="0x600" chunkcount="1" translation="0x2AC4"/>
	<Reflexive location="0x680" chunkcount="1" translation="0x3590"/>
	<Reflexive location="0x740" chunkcount="1" translation="0x3980"/>
	<Reflexive location="0x780" chunkcount="1" translation="0x3D70"/>
	<Reflexive location="0x7C0" chunkcount="1" translation="0x4570"/>
	<Reflexive location="0x800" chunkcount="1" translation="0x4AA0"/>
	<Reflexive location="0x840" chunkcount="1" translation="0x4FD0"/>
	<Reflexive location="0x880" chunkcount="1" translation="0x5500"/>
	<Reflexive location="0x8C0" chunkcount="1" translation="0x5A30"/>
	<Reflexive location="0x900" chunkcount="1" translation="0x5F60"/>
	<Reflexive location="0x90C" chunkcount="10" translation="0x96C"/>
	<Reflexive location="0x918" chunkcount="10" translation="0x9E4"/>
	<Reflexive location="0x924" chunkcount="10" translation="0xA84"/>
	<Reflexive location="0x930" chunkcount="10" translation="0xAD4"/>
	<Reflexive location="0x948" chunkcount="10" translation="0xB24"/>
	<Reflexive location="0x954" chunkcount="16" translation="0xB9C"/>
	<Reflexive location="0x960" chunkcount="8" translation="0xD1C"/>
	<Reflexive location="0xD9C" chunkcount="11" translation="0xDFC"/>
	<Reflexive location="0xDA8" chunkcount="11" translation="0xE80"/>
	<Reflexive location="0xDB4" chunkcount="11" translation="0xF30"/>
	<Reflexive location="0xDC0" chunkcount="11" translation="0xF88"/>
	<Reflexive location="0xDD8" chunkcount="11" translation="0xFE0"/>
	<Reflexive location="0xDE4" chunkcount="17" translation="0x1064"/>
	<Reflexive location="0xDF0" chunkcount="8" translation="0x11FC"/>
	<Reflexive location="0x127C" chunkcount="11" translation="0x12DC"/>
	<Reflexive location="0x1288" chunkcount="11" translation="0x1360"/>
	<Reflexive location="0x1294" chunkcount="11" translation="0x1410"/>
	<Reflexive location="0x12A0" chunkcount="11" translation="0x1468"/>
	<Reflexive location="0x12B8" chunkcount="11" translation="0x14C0"/>
	<Reflexive location="0x12C4" chunkcount="17" translation="0x1544"/>
	<Reflexive location="0x12D0" chunkcount="8" translation="0x16DC"/>
	<Reflexive location="0x175C" chunkcount="19" translation="0x17BC"/>
	<Reflexive location="0x1768" chunkcount="15" translation="0x18A0"/>
	<Reflexive location="0x1774" chunkcount="16" translation="0x1990"/>
	<Reflexive location="0x1780" chunkcount="19" translation="0x1A10"/>
	<Reflexive location="0x178C" chunkcount="6" translation="0x1AA8"/>
	<Reflexive location="0x1798" chunkcount="21" translation="0x1B20"/>
	<Reflexive location="0x17A4" chunkcount="35" translation="0x1C1C"/>
	<Reflexive location="0x17B0" chunkcount="16" translation="0x1F64"/>
	<Reflexive location="0x2064" chunkcount="12" translation="0x20C4"/>
	<Reflexive location="0x2070" chunkcount="12" translation="0x2154"/>
	<Reflexive location="0x207C" chunkcount="12" translation="0x2214"/>
	<Reflexive location="0x2088" chunkcount="12" translation="0x2274"/>
	<Reflexive location="0x20A0" chunkcount="12" translation="0x22D4"/>
	<Reflexive location="0x20AC" chunkcount="18" translation="0x2364"/>
	<Reflexive location="0x20B8" chunkcount="8" translation="0x2514"/>
	<Reflexive location="0x2594" chunkcount="12" translation="0x25F4"/>
	<Reflexive location="0x25A0" chunkcount="12" translation="0x2684"/>
	<Reflexive location="0x25AC" chunkcount="12" translation="0x2744"/>
	<Reflexive location="0x25B8" chunkcount="12" translation="0x27A4"/>
	<Reflexive location="0x25D0" chunkcount="12" translation="0x2804"/>
	<Reflexive location="0x25DC" chunkcount="18" translation="0x2894"/>
	<Reflexive location="0x25E8" chunkcount="8" translation="0x2A44"/>
	<Reflexive location="0x2AC4" chunkcount="32" translation="0x2B24"/>
	<Reflexive location="0x2AD0" chunkcount="23" translation="0x2CA4"/>
	<Reflexive location="0x2ADC" chunkcount="30" translation="0x2E14"/>
	<Reflexive location="0x2AE8" chunkcount="32" translation="0x2F04"/>
	<Reflexive location="0x2B00" chunkcount="23" translation="0x3004"/>
	<Reflexive location="0x2B0C" chunkcount="37" translation="0x3118"/>
	<Reflexive location="0x2B18" chunkcount="16" translation="0x3490"/>
	<Reflexive location="0x3590" chunkcount="8" translation="0x35F0"/>
	<Reflexive location="0x359C" chunkcount="8" translation="0x3650"/>
	<Reflexive location="0x35A8" chunkcount="8" translation="0x36D0"/>
	<Reflexive location="0x35B4" chunkcount="8" translation="0x3710"/>
	<Reflexive location="0x35CC" chunkcount="8" translation="0x3750"/>
	<Reflexive location="0x35D8" chunkcount="14" translation="0x37B0"/>
	<Reflexive location="0x35E4" chunkcount="8" translation="0x3900"/>
	<Reflexive location="0x3980" chunkcount="8" translation="0x39E0"/>
	<Reflexive location="0x398C" chunkcount="8" translation="0x3A40"/>
	<Reflexive location="0x3998" chunkcount="8" translation="0x3AC0"/>
	<Reflexive location="0x39A4" chunkcount="8" translation="0x3B00"/>
	<Reflexive location="0x39BC" chunkcount="8" translation="0x3B40"/>
	<Reflexive location="0x39C8" chunkcount="14" translation="0x3BA0"/>
	<Reflexive location="0x39D4" chunkcount="8" translation="0x3CF0"/>
	<Reflexive location="0x3D70" chunkcount="18" translation="0x3DD0"/>
	<Reflexive location="0x3D7C" chunkcount="18" translation="0x3EA8"/>
	<Reflexive location="0x3D88" chunkcount="18" translation="0x3FC8"/>
	<Reflexive location="0x3D94" chunkcount="18" translation="0x4058"/>
	<Reflexive location="0x3DAC" chunkcount="18" translation="0x40E8"/>
	<Reflexive location="0x3DB8" chunkcount="30" translation="0x41C0"/>
	<Reflexive location="0x3DC4" chunkcount="14" translation="0x4490"/>
	<Reflexive location="0x4570" chunkcount="12" translation="0x45D0"/>
	<Reflexive location="0x457C" chunkcount="12" translation="0x4660"/>
	<Reflexive location="0x4588" chunkcount="12" translation="0x4720"/>
	<Reflexive location="0x4594" chunkcount="12" translation="0x4780"/>
	<Reflexive location="0x45AC" chunkcount="12" translation="0x47E0"/>
	<Reflexive location="0x45B8" chunkcount="18" translation="0x4870"/>
	<Reflexive location="0x45C4" chunkcount="8" translation="0x4A20"/>
	<Reflexive location="0x4AA0" chunkcount="12" translation="0x4B00"/>
	<Reflexive location="0x4AAC" chunkcount="12" translation="0x4B90"/>
	<Reflexive location="0x4AB8" chunkcount="12" translation="0x4C50"/>
	<Reflexive location="0x4AC4" chunkcount="12" translation="0x4CB0"/>
	<Reflexive location="0x4ADC" chunkcount="12" translation="0x4D10"/>
	<Reflexive location="0x4AE8" chunkcount="18" translation="0x4DA0"/>
	<Reflexive location="0x4AF4" chunkcount="8" translation="0x4F50"/>
	<Reflexive location="0x4FD0" chunkcount="12" translation="0x5030"/>
	<Reflexive location="0x4FDC" chunkcount="12" translation="0x50C0"/>
	<Reflexive location="0x4FE8" chunkcount="12" translation="0x5180"/>
	<Reflexive location="0x4FF4" chunkcount="12" translation="0x51E0"/>
	<Reflexive location="0x500C" chunkcount="12" translation="0x5240"/>
	<Reflexive location="0x5018" chunkcount="18" translation="0x52D0"/>
	<Reflexive location="0x5024" chunkcount="8" translation="0x5480"/>
	<Reflexive location="0x5500" chunkcount="12" translation="0x5560"/>
	<Reflexive location="0x550C" chunkcount="12" translation="0x55F0"/>
	<Reflexive location="0x5518" chunkcount="12" translation="0x56B0"/>
	<Reflexive location="0x5524" chunkcount="12" translation="0x5710"/>
	<Reflexive location="0x553C" chunkcount="12" translation="0x5770"/>
	<Reflexive location="0x5548" chunkcount="18" translation="0x5800"/>
	<Reflexive location="0x5554" chunkcount="8" translation="0x59B0"/>
	<Reflexive location="0x5A30" chunkcount="12" translation="0x5A90"/>
	<Reflexive location="0x5A3C" chunkcount="12" translation="0x5B20"/>
	<Reflexive location="0x5A48" chunkcount="12" translation="0x5BE0"/>
	<Reflexive location="0x5A54" chunkcount="12" translation="0x5C40"/>
	<Reflexive location="0x5A6C" chunkcount="12" translation="0x5CA0"/>
	<Reflexive location="0x5A78" chunkcount="18" translation="0x5D30"/>
	<Reflexive location="0x5A84" chunkcount="8" translation="0x5EE0"/>
	<Reflexive location="0x5F60" chunkcount="12" translation="0x5FC0"/>
	<Reflexive location="0x5F6C" chunkcount="12" translation="0x6050"/>
	<Reflexive location="0x5F78" chunkcount="12" translation="0x6110"/>
	<Reflexive location="0x5F84" chunkcount="12" translation="0x6170"/>
	<Reflexive location="0x5F9C" chunkcount="12" translation="0x61D0"/>
	<Reflexive location="0x5FA8" chunkcount="18" translation="0x6260"/>
	<Reflexive location="0x5FB4" chunkcount="8" translation="0x6410"/>
	<Dependency location="0x70" tagclass="effe" filename="characters\cyborg\localized damage"/>
	<Dependency location="0x84" tagclass="effe" filename="effects\blood aoe human"/>
	<Dependency location="0x98" tagclass="effe" filename="nulled out"/>
	<Dependency location="0xA8" tagclass="effe" filename="nulled out"/>
	<Dependency location="0xBC" tagclass="effe" filename="nulled out"/>
	<Dependency location="0x188" tagclass="effe" filename="nulled out"/>
	<Dependency location="0x198" tagclass="effe" filename="characters\cyborg\cyborg shield depletion"/>
	<Dependency location="0x1A8" tagclass="effe" filename="nulled out"/>
	<Dependency location="0x3F0" tagclass="effe" filename="nulled out"/>
</Results>
That xml tag is simple to understand. It shows Reflexives and Dependencies, and uses attributes for each element item such as offset location, chunk count, tag class, filename path, and translation. It seems pretty appropriate to use attributes rather than elements, although that's still something worth discussing.

There are web design standards that allow parsing and formatting of such xml tags in online applications, and that could be possible with the INCY Online -- to be able to display Eschaton tag information. However, I'd like to include more fields and maybe make this more extensible. Perhaps the following?

Code: Select all

<?xml version="1.0" encoding="UTF-8"?>
<!DOCTYPE incytag PUBLIC "-//Halo Demo Mods//DTD INCYTAG 1.0//EN" "http://www.halodemomods.com/DTDs/Incyclopedia_Tag.dtd">

<incy version="1.0">

<incytag>

	<map>
		<name>bloodgulch</name>
		<version>6</version>
		<magic>0x4B6BEC12</magic>
	</map>
	
	<class1>coll</class1>
	<class2></class2>
	<class3></class3>
	<offset>0xA26598</offset>
	
	<title>Cyborg Collision Model</title>
	<path>"characters\cyborg\cyborg"</path>
	
	<meta>
		<reflexive>
			<offset>0x234</offset>
			<chunkcount>4</chunkcount>
			<translation>0x298</translation>
		</reflexive>
		(…)
		<dependency>
			<offset>0x70</offset>
			<class>effe</class>
			<title>Cyborg Localized Damage</title>
			<path>"characters\cyborg\localized damage"</path>
		</dependency>
		(…)
	</meta>
</incytag>
I don't know what class1, class2 and class3 are meant to reference, since each tag has only one class type attributed to it. Altimit, Modzy, nil, or anyone else want to fill me in on this, please?
Last edited by Sparky on Sat Feb 12, 2011 4:28 pm, edited 1 time in total.
Either you are groping for answers, or you are asking God and listening to Jesus.

dirk

Re: INCY Online Tag Format Development

Post by dirk » Fri Feb 11, 2011 5:34 pm

it is silly to create an incompatible system with what already exists.

Modzy
Green Beret
Posts: 3058
Joined: Fri Feb 22, 2008 11:06 pm
Location: Portland, OR

Re: INCY Online Tag Format Development

Post by Modzy » Fri Feb 11, 2011 5:38 pm

Sparky wrote:I don't know what class1, class2 and class3 are meant to reference, since each tag has only one class type attributed to it. Altimit, Modzy, nil, or anyone else want to fill me in on this, please?
Class 1: Your main class; weap, vehi, bipd, etc.
Class 2 (Only used with objects that will be spawned): Identifies what type of object it is; item, unit.
Class 3 (Only used with objects that will be spawned): Object statement; obje.

Sparky
Delta Force
Posts: 4194
Joined: Wed Mar 31, 2004 8:59 pm
Location: New Jersey, USA
Contact:

Re: INCY Online Tag Format Development

Post by Sparky » Sat Feb 12, 2011 4:25 pm

dirk wrote:it is silly to create an incompatible system with what already exists.
Of course, and I'm glad that didn't escape your notice. I think it would be nice to add more options for the INCY Online, like giving a legible name to each tag, and I want some opinions upon whether Eschaton's tag formats are thorough.
Modzy wrote:
Sparky wrote:I don't know what class1, class2 and class3 are meant to reference, since each tag has only one class type attributed to it. Altimit, Modzy, nil, or anyone else want to fill me in on this, please?
Class 1: Your main class; weap, vehi, bipd, etc.
Class 2 (Only used with objects that will be spawned): Identifies what type of object it is; item, unit.
Class 3 (Only used with objects that will be spawned): Object statement; obje.
I would think that Class 2 should be an attribute or element used inside the Dependency, not something stuck at the beginning of the xml file.
I don't know what "Object statement" means, since obje tags aren't even useable within the game engine, even though the tag type exists.

In sum, I need to figure out whether I should upload my directory of extracted Eschaton tags to HDM, or if I should convert them to a better format first. The question is if a better format can be made.

EDIT: By the way, the complete directory is here: viewtopic.php?f=100&t=7116&p=199090#p199090
Either you are groping for answers, or you are asking God and listening to Jesus.

Modzy
Green Beret
Posts: 3058
Joined: Fri Feb 22, 2008 11:06 pm
Location: Portland, OR

Re: INCY Online Tag Format Development

Post by Modzy » Sun Feb 13, 2011 12:27 pm

Sparky wrote:I would think that Class 2 should be an attribute or element used inside the Dependency, not something stuck at the beginning of the xml file.
I don't know what "Object statement" means, since obje tags aren't even useable within the game engine, even though the tag type exists.

In sum, I need to figure out whether I should upload my directory of extracted Eschaton tags to HDM, or if I should convert them to a better format first. The question is if a better format can be made.

EDIT: By the way, the complete directory is here: viewtopic.php?f=100&t=7116&p=199090#p199090
All the classes are in the beginning of the .xml file because they are all related data, they are three 32-bit integers, one after another when read in the map file.
Object statement, is just that. It's stating that this tag will become an object when spawned.

Post Reply

Who is online

Users browsing this forum: No registered users and 15 guests