Dependencies are simple. They're a unique value that represents a specific tag in the mapfile. What Halo probably does, as does my new program and Eschaton, is it reads in the tags for the maps and then creates a hash for the identities of certain tags (the dependencies). Thus, when you want to get a tag for a identity, you simply call a lookup function for the hash. In other words, identities are values used for quickly looking up a tag.
Dependencies are references to the identity of a tag. They usually begin with the little-endian ASCII for high tag class (ie cmti or ihev) followed by a 4 byte reflexive to the string name of the tag being referenced, then 4 bytes of 00's, and finally the 4 byte identity.
ex of a struct
Code: Select all
You know, I don't think I'll ever finish this essay I'm working on.