LBA2:Entity information
Entity information | |
---|---|
Extension |
F3D |
Occurence |
LBA2 |
Programs supporting this format | |
References | |
This is the LBA 2 equivalent to the LBA 1 File3d.hqr file. It contains entities of the game Actors.
Specification
This page may need some cleanup. It should be reformatted to use wikitext instead of <pre> tags. |
-------------------------------------------------------------------------------- L I T T L E B I G A D V E N T U R E 2 LBA File3D format Revision 1 Author: Alexandre Fontoura [alexfont] Email: [email protected] Last Modification: 13.11.2005 [#] [ INFORMATION ] ------------------------------------------------------------ This document describes the format in which the LBA2\Twinsen Odyssey File3D character informations) are stored in. [#] [ NOTE ] ------------------------------------------------------------------- In LBA2 this only exists in one unique file which as all this information inside. This file can be found inside Ress.HQR in the entry 44 (LBA2 Character Informations). [#] [ FORMAT ] ----------------------------------------------------------------- s32 = signed int (32bit) u16 = unsigned short (16bit) s16 = signed short (16bit) byte (8bit) + = to add previeous bytes count The file is laid out like an HQR file, but does not have the size/compression header at each offset given. Refer to the HQR document on how to read the intro. 00: s32 First offset Do this "number of entries" times [ Entries ] First of all you need to read the entry content for each entry of course. I'll assume you know this. Also you need to create a variable or structures to handle the anim and body content and count. Do the next block while the read byte is not 0xFF (End of each entry content). [ Content ] +00: byte Opcode Opcode = 1 -> Body content Opcode = 3 -> Anim content [ Body = 1 ] +00: byte Body index 01: byte Body data size - 1 (only take the following values) |-> 0x04 (4) -> When no collision box is used |--> 0x11 (17) -> When used a collision box 02: s16 Body real index (in BODY.HQR) 04: byte Collision box flag |-> flag = 0x00 (0) -> Model doesn't use collision box |--> flag = 0x01 (1) -> Model use collision box [ IF Collision box flag is set ] 05: byte Number of bytes to read minus 2. In this case the value is always 0x0E, so it will have more 0x0E-0x02 = 0x0C bytes 06: u16 X (bottom left) 08: u16 Y (bottom left) 0A: u16 Z (bottom left) 0C: u16 X (top right) 0E: u16 Y (top right) 10: u16 Z (top right) [ /IF ] [ / Body ] [ Anim = 3 ] +00: byte Anim index 01: byte Anim real index (in ANIM.HQR) 02: byte Data size - 3 03 until Data Size: ?? [ / Anim ] [ / Content ] [ / Entries ]
Information provided by: Alexfont