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 65: Line 65:
 
*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
 
*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:
 
{| class="wikitable"
 
! Offset
 
! Length
 
! Description
 
|-
 
| 0x00
 
| ushort
 
| count of entities
 
|-
 
| 0x02
 
| ushort
 
| count of bone rotations
 
|-
 
| 0x04
 
| ushort
 
| boneEntity
 
|}
 
  
 
+
Entry:
boneEntity:
 
 
{| class="wikitable"
 
{| class="wikitable"
 
! Offset
 
! Offset

Revision as of 17:32, 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 + (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