Binary IPL

From GTAMods Wiki
Revision as of 13:37, 17 July 2010 by Aschratt (talk | contribs) (Undo revision 8472 by Aschratt (Talk))
Jump to navigation Jump to search

Binary item placement files are only present in San Andreas and can be only opened or edited using a special editor. Binary item placement files are also present in GTA IV, where they are called WPL files and have another format.

File Format

Each binary item placement file starts with a 4 byte identifier, followed by a short header which contains the number of instances in a block. All in all a binary ipl file has the same format as an uncompiled one, just with the difference that the information is stored binary instead as plain text.

4b  - CHAR[4]   - always 'bnry'
4b  - INT32     - number of item instances
4b  - INT32     - number of unknown 1
4b  - INT32     - number of unknown 2
4b  - INT32     - number of unknown 3
4b  - INT32     - number of parked cars
4b  - INT32     - number of unknown 4
4b  - INT32     - offset of item instances (should be 76)
4b  - INT32     - unused size (always 0)
4b  - INT32     - offset of unknown 1
4b  - INT32     - unused size (always 0)
4b  - INT32     - offset of unknown 2
4b  - INT32     - unused size (always 0)
4b  - INT32     - offset of unknown 3
4b  - INT32     - unused size (always 0)
4b  - INT32     - offset of parked cars
4b  - INT32     - unused size (always 0)
4b  - INT32     - offset of unknown 4
4b  - INT32     - unused size (always 0)

However, only the INST and CARS sections are used in binary IPL's, so the rest of the format is unknown.

The header is followed by the arrays of the objects. INST arrays have a size of 40 bytes per structure, and cars have 48 bytes.

INST Structure

4b  - FLOAT    - PosX
4b  - FLOAT    - PosY
4b  - FLOAT    - PosZ
4b  - FLOAT    - RotX
4b  - FLOAT    - RotY
4b  - FLOAT    - RotZ
4b  - FLOAT    - RotW
4b  - INT32    - Object ID
4b  - INT32    - Interior
4b  - INT32    - LOD index

Rotation information as Quarternion

CARS Structure

4b  - FLOAT    - PosX
4b  - FLOAT    - PosY
4b  - FLOAT    - PosZ
4b  - FLOAT    - Angle (Around Z-Axis)
4b  - INT32    - Object ID (See Vehicle ID List)
4b  - INT32    - Primary color
4b  - INT32    - Secundary color
4b  - INT32    - Force spawn (Windows BOOL &ndash see WinDef.h)
4b  - INT32    - Alarm propability
4b  - INT32    - Locked propability
4b  - INT32    - Unknown1 (Could be tertiery color)
4b  - INT32    - Unknown2 (Could be quarternery color)

Tools

See also

External Links