LBA2:Entity information

From LBA File Information
Revision as of 20:29, 24 July 2013 by 198.217.117.133 (talk)
Jump to navigation Jump to search
Entity information
Extension

F3D

Occurence

LBA2

Programs supporting this format
References

Find entries of this type

This is the LBA 2 equivalent to the LBA 1 File3d.hqr file. It contains entities of the game Actors.

Specification

--------------------------------------------------------------------------------
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