Dependencies

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:

Dependencies

Post by Sparky » Wed May 15, 2013 12:01 pm

Update to my understanding of the dependency struct type, based upon research today:

Code: Select all

dependency			external tag reference	|	4 chars for the tag class, a 4-byte 32-bit unsigned integer that when modified by magic points to the tag name (in tag files, a number generated by Guerilla that is not random, but something like a hash based upon the string name of the tag but does not seem all that significant so long as it is unique), 4 bytes of zero (in tag files, tag name string length as 32-bit unsigned integer used to parse the dependency tag name strings listed at the end of the file), and a 4-byte unsigned 32-bit integer unique tag ID (in tag files, 0xFFFFFFFF or 4294967295 which would be -1 if it were a signed integer)
So basically a 4-character string and three unsigned 32-bit integers.
Either you are groping for answers, or you are asking God and listening to Jesus.

rEsTnPeAcEz
Veteran
Posts: 291
Joined: Sat Sep 01, 2012 12:34 pm
Location: Canada EHH

Re: Dependencies

Post by rEsTnPeAcEz » Wed May 15, 2013 12:16 pm

Omg thank you, i want to know that so I can make cheats :P with The Cheat.

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

Re: Dependencies

Post by Modzy » Wed May 15, 2013 2:33 pm

Traditionally the first four bytes, the tag class, is read as a 32-bit int (hence why the byte order gets reversed when loaded into memory as big endian).

The next four bytes make up a pointer to the tag name in memory (we modify this by a "magic" value in most map editors to compensate for not loading it into memory).

Next four are unused.

The last four are the tag's ID.

Post Reply

Who is online

Users browsing this forum: Ahrefs [Bot] and 43 guests