18,739
edits
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 | "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| | :[[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| | {{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 | | {{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 | |||
|} | |} | ||
Line 54: | Line 52: | ||
!Type!!Long name!!File 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''' | ||
|} | |} | ||
|} | |} |