Jump to content

OBD:BINA/OBJC: Difference between revisions

clarified that unknown flags don't matter because they're runtime flags for Tool mode; updated some terminology to current practices
m (link fix)
(clarified that unknown flags don't matter because they're runtime flags for Tool mode; updated some terminology to current practices)
Line 2: Line 2:


==Introduction==
==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 is really a wrapper for other tags. OBJCs are lists composed of a standard wrapper 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.
"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==
==File description==
;Example file
;Example file
:[[OBD:BINA/OBJC/PWRU|CJBOPowerUp.BINA]] from level 3
:[[OBD:BINA/OBJC/PWRU|BINACJBOPowerUp]] from level3
;Offsets
;Offsets
:Offsets are given with respect to the start of the raw file's data part.
:Offsets are given with respect to the start of the raw file's data part.
Line 14: Line 14:
{{table}}
{{table}}
{{OBDth}}
{{OBDth}}
{{OBDtr|0x00|4CC|FF0000|43 4A 42 4F|OBJC|objects}}
{{OBDtr|0x00|char[4]|FF0000|43 4A 42 4F|OBJC|tag}}
{{OBDtr|0x04|int32|FFFF00|18 02 00 00|536|size to end of object list from 0x08, in bytes}}
{{OBDtr|0x04|int32 |FFFF00|18 02 00 00|536|size to end of object list from 0x08, in bytes}}
{{OBDtr|0x08|int32|00FF00|27 00 00 00|39|object format version}}
{{OBDtr|0x08|int32 |00FF00|27 00 00 00|39|object format version}}
{{OBDtr|0x0C|int32|00FFFF|28 00 00 00|40|size of next object (black outline)}}
{{OBDtr|0x0C|int32 |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|int32|FFFFFF|28 00 00 00|40|size of next object}}
{{OBDtr|0x38|int32 |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
Line 35: Line 35:
{{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 | int32    |FFFFC8| AC 1C 00 00 | 7340      | object ID }}
{{OBDtr| 0x04 | int32    |FFFFC8| AC 1C 00 00 | 7340      | object ID }}
{{OBDtr| 0x08 |         |C8FFC8| 00 00 00 00 | 0x00      | object flags; used values:
{{OBDtr| 0x08 | bitset32 |C8FFC8| 00 00 00 00 | 0x00      | object flags, only used at runtime in [[Tool mode]]}}
:0x'''01''' 00 00 00 - unknown
{{OBDtr| 0x0C | float    |C8FFFF| E8 92 77 44 | 990.254    | x position }}
:0x'''08''' 00 00 00 - unknown }}
{{OBDtr| 0x10 | float    |C8FFFF| 00 00 D8 41 | 27.000000  | y position }}
{{OBDtr| 0x0C | float    |C8FFFF| E8 92 77 44 | 990.254    | x-position }}
{{OBDtr| 0x14 | float    |C8FFFF| 71 DD 98 43 | 305.73    | z position }}
{{OBDtr| 0x10 | float    |C8FFFF| 00 00 D8 41 | 27.000000  | y-position }}
{{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-position }}
{{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-axis in degrees }}
{{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-axis in degrees }}
{{OBDtr| 0x20 | float    |FFC8FF| 00 00 00 00 | 0.000000  | rotation on the z-axis in degrees }}
|}
|}


Line 54: Line 52:
!Type!!Long name!!File name
!Type!!Long name!!File name
|-
|-
|[[OBD:BINA/OBJC/CHAR|CHAR]]||Character||CJBO'''Character'''.BINA
|[[OBD:BINA/OBJC/CHAR|CHAR]]||Character||BINACJBO'''Character'''
|-
|-
|[[OBD:BINA/OBJC/CMBT|CMBT]]||Combat profile||CJBO'''Combat'''.BINA
|[[OBD:BINA/OBJC/CMBT|CMBT]]||Combat profile||BINACJBO'''Combat'''
|-
|-
|[[OBD:BINA/OBJC/CONS|CONS]]||Console||CJBO'''Console'''.BINA
|[[OBD:BINA/OBJC/CONS|CONS]]||Console||BINACJBO'''Console'''
|-
|-
|[[OBD:BINA/OBJC/DOOR|DOOR]]||Door||CJBO'''Door'''.BINA
|[[OBD:BINA/OBJC/DOOR|DOOR]]||Door||BINACJBO'''Door'''
|-
|-
|[[OBD:BINA/OBJC/FLAG|FLAG]]||Flag||CJBO'''Flag'''.BINA
|[[OBD:BINA/OBJC/FLAG|FLAG]]||Flag||BINACJBO'''Flag'''
|-
|-
|[[OBD:BINA/OBJC/FURN|FURN]]||Furniture||CJBO'''Furniture'''.BINA
|[[OBD:BINA/OBJC/FURN|FURN]]||Furniture||BINACJBO'''Furniture'''
|-
|-
|[[OBD:BINA/OBJC/MELE|MELE]]||Melee profile||CJBO'''Melee Profile'''.BINA
|[[OBD:BINA/OBJC/MELE|MELE]]||Melee profile||BINACJBO'''Melee Profile'''
|-
|-
|[[OBD:BINA/OBJC/NEUT|NEUT]]||Neutral behaviour||CJBO'''Neutral'''.BINA
|[[OBD:BINA/OBJC/NEUT|NEUT]]||Neutral behaviour||BINACJBO'''Neutral'''
|-
|-
|[[OBD:BINA/OBJC/PART|PART]]||Particle||CJBO'''Particle'''.BINA
|[[OBD:BINA/OBJC/PART|PART]]||Particle||BINACJBO'''Particle'''
|-
|-
|[[OBD:BINA/OBJC/PATR|PATR]]||Patrol path||CJBO'''Patrol_Path'''.BINA
|[[OBD:BINA/OBJC/PATR|PATR]]||Patrol path||BINACJBO'''Patrol_Path'''
|-
|-
|[[OBD:BINA/OBJC/PWRU|PWRU]]||Powerup||CJBO'''PowerUp'''.BINA
|[[OBD:BINA/OBJC/PWRU|PWRU]]||Powerup||BINACJBO'''PowerUp'''
|-
|-
|[[OBD:BINA/OBJC/SNDG|SNDG]]||Sound Group||CJBO'''Sound'''.BINA
|[[OBD:BINA/OBJC/SNDG|SNDG]]||Sound Group||BINACJBO'''Sound'''
|-
|-
|[[OBD:BINA/OBJC/TRGV|TRGV]]||Trigger Volume||CJBO'''Trigger_Volume'''.BINA
|[[OBD:BINA/OBJC/TRGV|TRGV]]||Trigger Volume||BINACJBO'''Trigger_Volume'''
|-
|-
|[[OBD:BINA/OBJC/TRIG|TRIG]]||Trigger||CJBO'''Trigger'''.BINA
|[[OBD:BINA/OBJC/TRIG|TRIG]]||Trigger||BINACJBO'''Trigger'''
|-
|-
|[[OBD:BINA/OBJC/TURR|TURR]]||Turret||CJBO'''Turret'''.BINA
|[[OBD:BINA/OBJC/TURR|TURR]]||Turret||BINACJBO'''Turret'''
|-
|-
|[[OBD:BINA/OBJC/WEAP|WEAP]]||Weapon||CJBO'''Weapon'''.BINA
|[[OBD:BINA/OBJC/WEAP|WEAP]]||Weapon||BINACJBO'''Weapon'''
|}
|}
|}
|}