Difference between revisions of "FF8/WorldMap charaone"

From Final Fantasy Inside
< FF8
Jump to navigation Jump to search
my_wiki>MaKi
(section 12 (arg4 == 0x12))
my_wiki>MaKi
(section 12 (arg4 == 0x12))
Line 58: Line 58:
 
! Description
 
! Description
 
|-
 
|-
| 0x00 + ( i==0?0: sizeof(entry[i-1]) *
+
| 0x00 + ( i==0 ? 0 : sizeof(entry[i-1]))
 
| sizeof(entry)
 
| sizeof(entry)
 
| while entry.countOfEntries != null
 
| while entry.countOfEntries != null

Revision as of 17:25, 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
?? (after TIM textures, usually two?) 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 ushort boneEntity


boneEntity:

Offset Length Description
0x00 ushort count of entities
0x02 ushort count of bone rotations
0x04 + (entityID * (countOfBoneRot * 6) + 6) ushort entityObject

entityObject:

Offset Length Description
0x00 short Idle X offset
0x02 short Idle Z offset
0x04 short Idle Y (up) offset
0x06 + (boneID*6) short Bone[boneID].RotX
0x08 + (boneID*6) short Bone[boneID].RotZ
0x0A + (boneID*6) short Bone[boneID].RotY