279
edits
m (→OBJC types: added a link to the folder with all bluebox images) |
m (...) |
||
(12 intermediate revisions by one other user not shown) | |||
Line 1: | Line 1: | ||
{{OBD BINA Header|prev=TMBD|type=OBJC|next=ONIE|name= | {{OBD BINA Header|prev=TMBD|type=OBJC|next=ONIE|name=Objects|onistuff=bina}} | ||
==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 | ;Example file | ||
:[[OBD:BINA/OBJC/PWRU| | :[[OBD:BINA/OBJC/PWRU|BINACJBOPowerUp]] from level3 | ||
;Offsets | ;Offsets | ||
:Offsets are given with respect to | :Offsets are given with respect to the start of the raw file's data part. | ||
[[Image:Bin r pu.gif]] | |||
{{table}} | {{table}} | ||
{{OBDth}} | {{OBDth}} | ||
{{OBDtr|0x00| | {{OBDtr|0x00|char[4]|FF0000|43 4A 42 4F|OBJC|tag}} | ||
{{OBDtr|0x04| | {{OBDtr|0x04|uint32 |FFFF00|18 02 00 00|536|size to end of object list from 0x08, in bytes}} | ||
{{OBDtr|0x08| | {{OBDtr|0x08|uint32 |00FF00|27 00 00 00|39|object format version}} | ||
{{OBDtr|0x0C| | {{OBDtr|0x0C|uint32 |00FFFF|28 00 00 00|40|size of next object (black outline)}} | ||
{{OBDtrBK|0x10 - 0x37 : first object (40 bytes)}} | {{OBDtrBK|0x10 - 0x37 : first object (40 bytes)}} | ||
{{OBDtr|0x38| | {{OBDtr|0x38|uint32 |FFFFFF|28 00 00 00|40|size of next object}} | ||
{{OBDtrBK|0x3C - ... : second object (40 bytes), etc}} | {{OBDtrBK|0x3C - ... : second object (40 bytes), etc.}} | ||
|} | |} | ||
;General layout | ;General layout | ||
:The | :The list's header (first 16 bytes) and layout is common to all 16 OBJC types (see below). | ||
:*The size of the whole | :*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). | :*Unlike ONIE and TMBD (which are arrays), OBJC announces the size of every object (int32). | ||
:*After the last object, the end of the | :*After the last object, the end of the list is signaled by a null next object size. | ||
;Object header | ;Object header | ||
Line 33: | Line 34: | ||
{{OBDth}} | {{OBDth}} | ||
{{OBDtr| 0x00 | char[4] |FFC8C8| 52 52 57 50 | PWRU | object type }} | {{OBDtr| 0x00 | char[4] |FFC8C8| 52 52 57 50 | PWRU | object type }} | ||
{{OBDtr| 0x04 | | {{OBDtr| 0x04 | uint32 |FFFFC8| AC 1C 00 00 | 7340 | object ID }} | ||
{{OBDtr| 0x08 | | {{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| 0x0C | float |C8FFFF| E8 92 77 44 | 990.254 | x | {{OBDtr| 0x14 | float |C8FFFF| 71 DD 98 43 | 305.73 | z position }} | ||
{{OBDtr| 0x10 | float |C8FFFF| 00 00 D8 41 | 27.000000 | y | {{OBDtr| 0x18 | float |FFC8FF| 00 00 00 00 | 0.000000 | rotation on the x axis in degrees }} | ||
{{OBDtr| 0x14 | float |C8FFFF| 71 DD 98 43 | 305.73 | z | {{OBDtr| 0x1C | float |FFC8FF| 00 00 00 00 | 0.000000 | rotation on the y axis in degrees }} | ||
{{OBDtr| 0x18 | float |FFC8FF| 00 00 00 00 | 0.000000 | rotation on the x | {{OBDtr| 0x20 | float |FFC8FF| 00 00 00 00 | 0.000000 | rotation on the z axis in degrees }} | ||
{{OBDtr| 0x1C | float |FFC8FF| 00 00 00 00 | 0.000000 | rotation on the y | |||
{{OBDtr| 0x20 | float |FFC8FF| 00 00 00 00 | 0.000000 | rotation on the z | |||
|} | |} | ||
==OBJC types== | ==OBJC types== | ||
A given | A given list can only hold objects of one type, which can be: | ||
{| | {| | ||
| | | | ||
{|{{OBDtable}} | {|{{OBDtable}} | ||
|-bgcolor=#E9E9E9 | |-bgcolor=#E9E9E9 | ||
!Type!!Long name!! | !Type!!Long name!!File name | ||
|- | |- | ||
|[[OBD:BINA/OBJC/CHAR|CHAR]]||Character|| | |[[OBD:BINA/OBJC/CHAR|CHAR]]||Character||BINACJBO'''Character''' | ||
|- | |- | ||
|[[OBD:BINA/OBJC/CMBT|CMBT]]||Combat profile|| | |[[OBD:BINA/OBJC/CMBT|CMBT]]||Combat profile||BINACJBO'''Combat''' | ||
|- | |- | ||
|[[OBD:BINA/OBJC/CONS|CONS]]||Console|| | |[[OBD:BINA/OBJC/CONS|CONS]]||Console||BINACJBO'''Console''' | ||
|- | |- | ||
|[[OBD:BINA/OBJC/DOOR|DOOR]]||Door|| | |[[OBD:BINA/OBJC/DOOR|DOOR]]||Door||BINACJBO'''Door''' | ||
|- | |- | ||
|[[OBD:BINA/OBJC/FLAG|FLAG]]||Flag|| | |[[OBD:BINA/OBJC/FLAG|FLAG]]||Flag||BINACJBO'''Flag''' | ||
|- | |- | ||
|[[OBD:BINA/OBJC/FURN|FURN]]||Furniture|| | |[[OBD:BINA/OBJC/FURN|FURN]]||Furniture||BINACJBO'''Furniture''' | ||
|- | |- | ||
|[[OBD:BINA/OBJC/MELE|MELE]]||Melee profile|| | |[[OBD:BINA/OBJC/MELE|MELE]]||Melee profile||BINACJBO'''Melee Profile''' | ||
|- | |- | ||
|[[OBD:BINA/OBJC/NEUT|NEUT]]||Neutral behaviour|| | |[[OBD:BINA/OBJC/NEUT|NEUT]]||Neutral behaviour||BINACJBO'''Neutral''' | ||
|- | |- | ||
|[[OBD:BINA/OBJC/PART|PART]]||Particle|| | |[[OBD:BINA/OBJC/PART|PART]]||Particle||BINACJBO'''Particle''' | ||
|- | |- | ||
|[[OBD:BINA/OBJC/PATR|PATR]]||Patrol path|| | |[[OBD:BINA/OBJC/PATR|PATR]]||Patrol path||BINACJBO'''Patrol_Path''' | ||
|- | |- | ||
|[[OBD:BINA/OBJC/PWRU|PWRU]]||Powerup|| | |[[OBD:BINA/OBJC/PWRU|PWRU]]||Powerup||BINACJBO'''PowerUp''' | ||
|- | |- | ||
|[[OBD:BINA/OBJC/SNDG|SNDG]]||Sound Group|| | |[[OBD:BINA/OBJC/SNDG|SNDG]]||Sound Group||BINACJBO'''Sound''' | ||
|- | |- | ||
|[[OBD:BINA/OBJC/TRGV|TRGV]]||Trigger Volume|| | |[[OBD:BINA/OBJC/TRGV|TRGV]]||Trigger Volume||BINACJBO'''Trigger_Volume''' | ||
|- | |- | ||
|[[OBD:BINA/OBJC/TRIG|TRIG]]||Trigger|| | |[[OBD:BINA/OBJC/TRIG|TRIG]]||Trigger||BINACJBO'''Trigger''' | ||
|- | |- | ||
|[[OBD:BINA/OBJC/TURR|TURR]]||Turret|| | |[[OBD:BINA/OBJC/TURR|TURR]]||Turret||BINACJBO'''Turret''' | ||
|- | |- | ||
|[[OBD:BINA/OBJC/WEAP|WEAP]]||Weapon|| | |[[OBD:BINA/OBJC/WEAP|WEAP]]||Weapon||BINACJBO'''Weapon''' | ||
|} | |} | ||
|} | |} | ||
{{OBD BINA Footer|prev=TMBD|type=OBJC|next=ONIE|name= | {{OBD BINA Footer|prev=TMBD|type=OBJC|next=ONIE|name=Objects|family=General}} | ||
{{OBD}} |
edits