Difference between revisions of "Binary IPL"
(→File Format) |
|||
Line 1: | Line 1: | ||
− | ''' | + | '''Binary [[IPL|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 == | == File Format == | ||
− | Each | + | 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 - | + | 4b - CHAR[4] - always 'bnry' |
− | 4b - | + | 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 there are only [[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 do have a size of '''40 bytes''' per structure, and cars got '''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 - UINT32 - [[IDE#Object_Flags|Flags]] | ||
+ | |||
+ | <!-- Are those flags realy IDE flags? This appears very strange, so you can assign different flags to one item, which goes against the internal core rule, that flags are controlled by the IDE pool and applied to the rendering engine using the object id... straaaange ^^ - Got to check this! --> | ||
''Rotation information as [[Wikipedia:Quarternion|Quarternion]]'' | ''Rotation information as [[Wikipedia:Quarternion|Quarternion]]'' | ||
− | + | ===CARS Structure=== | |
− | 4b | + | 4b - FLOAT - PosX |
− | + | 4b - FLOAT - PosY | |
− | 4b | + | 4b - FLOAT - PosZ |
− | + | 4b - FLOAT - Angle (Around Z-Axis) | |
− | 4b | + | 4b - INT32 - Object ID |
− | + | 28b - INT32[7] - Unknown flags (See [[Item_Placement#CARS|IPL file specification]]) | |
− | 4b | ||
− | |||
− | |||
− | 4b | ||
− | |||
− | |||
− | |||
− | |||
− | + | == Tools == | |
− | + | * [http://www.gta.ocram-net.de/index_all.php?downloadsa=11 Binary (De-)Compiler] - by {{U|ocram88}} | |
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | + | == See also == | |
− | + | * [[INST]] | |
− | + | * [[CARS (IPL Section)]] | |
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | * [[ | ||
− | == External | + | == External Links == |
− | * {{GTAF| | + | * {{GTAF|202532|IPL documentation}} – by {{U|spaceeinstein}} |
+ | * [http://people.freenet.de/steve-m/binipl.rar Binary IPL's decompiled] - by {{U|steve-m}} | ||
− | {{ | + | {{file-stub}} |
− | {{ | + | {{SA-navi}} |
− | [[Category: | + | [[Category:Map_Formats]] |
Revision as of 13:29, 25 July 2009
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 there are only 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 do have a size of 40 bytes per structure, and cars got 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 - UINT32 - Flags
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 28b - INT32[7] - Unknown flags (See IPL file specification)
Tools
See also
External Links
- GTAForums: IPL documentation – by spaceeinstein
- Binary IPL's decompiled - by steve-m