279
edits
mNo edit summary |
m (...) |
||
(21 intermediate revisions by 4 users not shown) | |||
Line 1: | Line 1: | ||
{| | {{OBD BINA Header|prev=TMBD|type=OBJC|next=ONIE|name=Objects|onistuff=bina}} | ||
![[OBD: | |||
==Introduction== | |||
"OBJC" is short for "Objects", which refers to lists of files which are stored in the [[separate file]] when available (Windows demo, Mac) or in the [[raw file]] otherwise (Windows). OBJC is registered as a tag (and is also a sub-tag of [[BINA]]), but it serves as a wrapper for other tags. OBJCs are lists composed of a standard wrapper with a little header data and then elements of specific data types which have their own tags. Objects listed in OBJCs could be edited in-game by the developers using the GUI which was discovered by fans in the [[European Mac releases]] of Oni. Screenshots of the editing interface are shown on the pages of each type which the interface could edit. | |||
==File description== | |||
;Example file | |||
:[[OBD:BINA/OBJC/PWRU|BINACJBOPowerUp]] from level3 | |||
;Offsets | |||
:Offsets are given with respect to the start of the raw file's data part. | |||
[[Image:Bin r pu.gif]] | |||
{{table}} | |||
{{OBDth}} | |||
{{OBDtr|0x00|char[4]|FF0000|43 4A 42 4F|OBJC|tag}} | |||
{{OBDtr|0x04|uint32 |FFFF00|18 02 00 00|536|size to end of object list from 0x08, in bytes}} | |||
{{OBDtr|0x08|uint32 |00FF00|27 00 00 00|39|object format version}} | |||
{{OBDtr|0x0C|uint32 |00FFFF|28 00 00 00|40|size of next object (black outline)}} | |||
{{OBDtrBK|0x10 - 0x37 : first object (40 bytes)}} | |||
{{OBDtr|0x38|uint32 |FFFFFF|28 00 00 00|40|size of next object}} | |||
{{OBDtrBK|0x3C - ... : second object (40 bytes), etc.}} | |||
|} | |||
;General layout | |||
:The list's header (first 16 bytes) and layout is common to all 16 OBJC types (see below). | |||
:*The size of the whole list is announced at 0x04 (int32), followed by the list. | |||
:*Unlike ONIE and TMBD (which are arrays), OBJC announces the size of every object (int32). | |||
:*After the last object, the end of the list is signaled by a null next object size. | |||
;Object header | |||
:All objects start with the following header: | |||
{{Table}} | |||
{{OBDth}} | |||
{{OBDtr| 0x00 | char[4] |FFC8C8| 52 52 57 50 | PWRU | object type }} | |||
{{OBDtr| 0x04 | uint32 |FFFFC8| AC 1C 00 00 | 7340 | object ID }} | |||
{{OBDtr| 0x08 | bitset32 |C8FFC8| 00 00 00 00 | 0x00 | object flags, only used at runtime in [[Tool mode]]}} | |||
{{OBDtr| 0x0C | float |C8FFFF| E8 92 77 44 | 990.254 | x position }} | |||
{{OBDtr| 0x10 | float |C8FFFF| 00 00 D8 41 | 27.000000 | y position }} | |||
{{OBDtr| 0x14 | float |C8FFFF| 71 DD 98 43 | 305.73 | z position }} | |||
{{OBDtr| 0x18 | float |FFC8FF| 00 00 00 00 | 0.000000 | rotation on the x axis in degrees }} | |||
{{OBDtr| 0x1C | float |FFC8FF| 00 00 00 00 | 0.000000 | rotation on the y axis in degrees }} | |||
{{OBDtr| 0x20 | float |FFC8FF| 00 00 00 00 | 0.000000 | rotation on the z axis in degrees }} | |||
|} | |||
==OBJC types== | |||
A given list can only hold objects of one type, which can be: | |||
{| | |||
| | |||
{|{{OBDtable}} | |||
|-bgcolor=#E9E9E9 | |||
!Type!!Long name!!File name | |||
|- | |||
|[[OBD:BINA/OBJC/CHAR|CHAR]]||Character||BINACJBO'''Character''' | |||
|- | |||
|[[OBD:BINA/OBJC/CMBT|CMBT]]||Combat profile||BINACJBO'''Combat''' | |||
|- | |||
|[[OBD:BINA/OBJC/CONS|CONS]]||Console||BINACJBO'''Console''' | |||
|- | |||
|[[OBD:BINA/OBJC/DOOR|DOOR]]||Door||BINACJBO'''Door''' | |||
|- | |||
|[[OBD:BINA/OBJC/FLAG|FLAG]]||Flag||BINACJBO'''Flag''' | |||
|- | |||
|[[OBD:BINA/OBJC/FURN|FURN]]||Furniture||BINACJBO'''Furniture''' | |||
|- | |||
|[[OBD:BINA/OBJC/MELE|MELE]]||Melee profile||BINACJBO'''Melee Profile''' | |||
|- | |||
|[[OBD:BINA/OBJC/NEUT|NEUT]]||Neutral behaviour||BINACJBO'''Neutral''' | |||
|- | |||
|[[OBD:BINA/OBJC/PART|PART]]||Particle||BINACJBO'''Particle''' | |||
|- | |||
|[[OBD:BINA/OBJC/PATR|PATR]]||Patrol path||BINACJBO'''Patrol_Path''' | |||
|- | |||
|[[OBD:BINA/OBJC/PWRU|PWRU]]||Powerup||BINACJBO'''PowerUp''' | |||
|- | |- | ||
|[[OBD:BINA/OBJC/SNDG|SNDG]]||Sound Group||BINACJBO'''Sound''' | |||
|- | |- | ||
|[[OBD:BINA/OBJC/TRGV|TRGV]]||Trigger Volume||BINACJBO'''Trigger_Volume''' | |||
|- | |- | ||
|[[OBD:BINA/OBJC/TRIG|TRIG]]||Trigger||BINACJBO'''Trigger''' | |||
|- | |- | ||
|[[OBD:BINA/OBJC/TURR|TURR]]||Turret||BINACJBO'''Turret''' | |||
|- | |- | ||
|[[OBD:BINA/OBJC/WEAP|WEAP]]||Weapon||BINACJBO'''Weapon''' | |||
|} | |||
|} | |} | ||
{{OBD BINA Footer|prev=TMBD|type=OBJC|next=ONIE|name=Objects|family=General}} | |||
{{OBD}} | |||
edits