Difference between revisions of "FF8/WorldMap charaone"
< FF8
Jump to navigation
Jump to search
my_wiki>MaKi (→section 12 (arg4 == 0x12)) |
my_wiki>MaKi (→Header) |
||
| Line 16: | Line 16: | ||
| TIM texture | | TIM texture | ||
|- | |- | ||
| − | | | + | | *(this) != x 10 00 00 00 08 00 00 00 |
| − | | | + | | Varies |
| Chara | | Chara | ||
|} | |} | ||
Revision as of 18:21, 16 February 2019
file is different than field [ONE]
Header
| Offset | Length | Description |
|---|---|---|
| 0x00 | uint | EOF |
| 0x04 | (TIM_height * (TIM_width * 4) ) / 2 + 64 | TIM texture |
| *(this) != x 10 00 00 00 08 00 00 00 | Varies | Chara |
Chara
| Offset | Length | Description |
|---|---|---|
| 0x00 | uint | bone section? length (shift left 6) |
| 0x04 | uint | unknown struct size. Multiply by 8 |
| 0x08 | uint | unknown size |
| ?? | uint | 32 * *(dword_24FEE48[v24] + 36)) |
| 0x38 | uint | section 12 pointer + 2 |
section 12 (arg4 == 0x12)
names are WIP, I'm not quite sure if it's animation, geometry or bones...
| Offset | Length | Description |
|---|---|---|
| 0x00 + ( i==0 ? 0 : sizeof(entry[i-1])) | sizeof(entry) | while entry.countOfEntries != null |
- there's no count for these objects, so you have to read all entries one-by-one. In order to understand when to stop you have to check if reading new entry.countOfEntities == 0
Entry:
| Offset | Length | Description |
|---|---|---|
| 0x00 | ushort | count of entities |
| 0x02 | ushort | count of bone rotations |
| 0x04 + (entityID * (countOfBoneRot * 6) + 6) | 6 + (countOfBoneRotations*6) | entityObject |
entityObject:
| Offset | Length | Description |
|---|---|---|
| 0x00 | short | X offset |
| 0x02 | short | Z offset |
| 0x04 | short | Y (up) offset |
| 0x06 + (boneID*6) | short | Bone[boneID].RotX |
| 0x08 + (boneID*6) | short | Bone[boneID].RotZ |
| 0x0A + (boneID*6) | short | Bone[boneID].RotY |