Page 1 of 1

INCY Online Tag Format Development

Posted: Fri Feb 11, 2011 10:06 am
by Sparky
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?

Re: INCY Online Tag Format Development

Posted: Fri Feb 11, 2011 5:34 pm
by dirk
it is silly to create an incompatible system with what already exists.

Re: INCY Online Tag Format Development

Posted: Fri Feb 11, 2011 5:38 pm
by Modzy
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.

Re: INCY Online Tag Format Development

Posted: Sat Feb 12, 2011 4:25 pm
by Sparky
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

Re: INCY Online Tag Format Development

Posted: Sun Feb 13, 2011 12:27 pm
by Modzy
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.