All information here is available in the Unofficial Jedi Knight Specifications at DarkJedi. But here, I give a little explanation as to how to put them in your 3DOs and combine 'em.
There are 3 places in a 3DO where Flags and Types are used. The first is in the Faces section where a face can have any number of types, the second and third are in the Hierarchy section.
Let's first look at Face Types:
Hex | Meaning |
---|---|
0x0000 | This is a "normal" face as in it takes on the default values given by the JK engine. |
0x0001 | This face is translucent. This means that the player can "see through" it. Other than that, this face is normal. |
0x0002 | This face is two-sided. This means that even if it is "facing away" from the camera/player it will be drawn. This is useful if you are creating something like a cape that has no real thickness. Other than that, this face is normal. |
0x0004 | Objects collide with this face, OR this flag could mean that the face is Magsealed. Look below to figureout what I'm talking about. Other than that, it is normal. |
But wait, what if you want a two-sided translucent face? That is no problem. All you have to do is "add" values. So you would add 0x1 to 0x2 to get 0x3 (1+2=3). This is the easiest method to take. To be honest, you're really doing a bitwise OR operation on the values, but let's not confuse the situation!
Note on 0x2: Other factors may judge whether the face is truly translucent, so you may have to play around with MAT files and CMPs to get the desired effect!
Note on 0x4: This is my "best guess" at what this could mean. I assume it means collide because of the 3DOs it is used in (the top of the table in 00tabl.3do). Though, when I tested an object with 0x4 faces, I noticed no substantial difference between it an 0x0 objects. What's that mean? Well two things, other environmental variables take precedence over it, or it is flat out ignored. I think we'll stick with option 1.
Now let's move onto Hierarchy Flags:
Hex | Meaning |
---|---|
0x0000 | This is a "normal" node. |
Hmm, lot's of choices there :-) This is probably some sort of internal variable used in the JK engine, or can be accessed with COG functions.
Last, but not least, Hierarchy Types:
Hex | Meaning |
---|---|
0x00001 | This node is apart of the upper body (torso). |
0x00010 | This node is apart of the lower body (hip). |
0x00002 | This node is apart of the left arm (lforearm,lhand,lshoulder). |
0x00020 | This node is apart of the left leg (lcalf,lfoot,lthigh). |
0x00004 | This node is apart of the right arm (rforearm,rhand,rshoulder). |
0x00040 | This node is apart of the right leg (rcalf,rfoot,rthigh). |
0x00008 | This node is apart of the head (head,neck). |
These are all pretty self explanatory. Just a couple notes. You can not have a type 0x0 node. If you have an object that isn't humanoid (doesn't have legs, feet, or whatever), the use 0x1 for each node type. Also, types can not be combined as in Face types.