arma:file_formats:p3d_odol
Differences
This shows you the differences between two versions of the page.
| Both sides previous revisionPrevious revisionNext revision | Previous revision | ||
| arma:file_formats:p3d_odol [2007/07/10 09:52] – external edit 127.0.0.1 | arma:file_formats:p3d_odol [2024/08/01 08:02] (current) – links added. snakeman | ||
|---|---|---|---|
| Line 1: | Line 1: | ||
| - | ====== ODOL ====== | + | ====== |
| + | |||
| + | [[https:// | ||
| + | |||
| + | **ArmA 1** aka Armed Assault (ArmA) | ||
| P3D File Format - ODOL v40 used in ArmA. | P3D File Format - ODOL v40 used in ArmA. | ||
| - | The following information has been provided by BxBx and included by Mikero | + | The following information has been provided by BxBx and included by Mikero. |
| - | < | + | < |
| - | //Legend | + | //Legend |
| - | //byte = 1 char = 8 bits | + | //byte = 1 char = 8 bits |
| //int = 4 byte = 32 bits; signed integer | //int = 4 byte = 32 bits; signed integer | ||
| - | //ulong = unsigned long, 4 bytes | + | //ulong = unsigned long, 4 bytes |
| - | //ushort = unsigned short 2 bytes | + | //ushort = unsigned short 2 bytes |
| - | //asciiz = variable length zero terminated string. | + | //asciiz = variable length zero terminated string. |
| //float = 4 bytes (single precision) | //float = 4 bytes (single precision) | ||
| //bool8 = 1 byte = 8 bits; boolean; 0 or 1 | //bool8 = 1 byte = 8 bits; boolean; 0 or 1 | ||
| + | Blocks in Odol V40 are quite similar to Odol v7 but placed in reverse order. | ||
| - | Blocks in Odol V40 are quite similar to Odol v7 but placed in reverse order. | + | Resolution table, |
| - | + | ||
| - | Resolution table, | + | |
| LOD tables last to first | LOD tables last to first | ||
| - | + | ||
| The same LZ compression is used for LODs as ODOL v7 | The same LZ compression is used for LODs as ODOL v7 | ||
| - | known data: | + | known data: |
| Beginning of file (Header signature) | Beginning of file (Header signature) | ||
| Line 40: | Line 43: | ||
| byte | byte | ||
| - | Asciiz skeleton_name // Note: A Skeleton may not exist | + | Asciiz skeleton_name // Note: A Skeleton may not exist |
| if (*skeleton_name) | if (*skeleton_name) | ||
| { | { | ||
| Line 48: | Line 51: | ||
| { | { | ||
| | | ||
| - | | + | } |
| } | } | ||
| char u7[0x26] | char u7[0x26] | ||
| - | Asciiz modelclass, modelparent // I think purpose this data found values ' | + | Asciiz modelclass, modelparent // I think purpose this data found values ' |
| - | // | + | // |
| char u8[5] // unknown data | char u8[5] // unknown data | ||
| bool8 exist_anims | bool8 exist_anims | ||
| Line 72: | Line 75: | ||
| struct lod[lod_count] | struct lod[lod_count] | ||
| { | { | ||
| - | | + | |
| | | ||
| if (ub1) char uch[11] | if (ub1) char uch[11] | ||
| Line 90: | Line 93: | ||
| | | ||
| } | } | ||
| - | char uch[0x34*textres_count] // some struct with same length | + | char uch[0x34*textres_count] // some struct with same length |
| - | //as textures_in_material | + | //as textures_in_material |
| // I dont work with material now, I skip it. | // I dont work with material now, I skip it. | ||
| } | } | ||
| Line 109: | Line 112: | ||
| char *name; | char *name; | ||
| int selected_faces_count | int selected_faces_count | ||
| - | ushort selected_faces[selected_faces_count] // if selected_faces_count > 0x100 | + | ushort selected_faces[selected_faces_count] // if selected_faces_count > 0x100 |
| // then compresed by LZ | // then compresed by LZ | ||
| int u14; | int u14; | ||
| Line 146: | Line 149: | ||
| </ | </ | ||
| - | I cannot find face.texture_index | + | I cannot find face.texture_index |
| - | + | ||
| - | ====== See Also ====== | + | |
| - | First ArmA MLOD model on [[http:// | ||
arma/file_formats/p3d_odol.1184061153.txt.gz · Last modified: 2010/07/12 08:00 (external edit)
