- Example file
- CJBOPowerUp.BINA from dunno where (level 3, probably)
- Offsets
- Offsets are given with respect to the start of the raw file's data part.
Offset |
Type |
Raw Hex |
Value |
Description
|
0x00 |
4CC |
43 4A 42 4F |
OBJC |
object collection
|
0x04 |
int32 |
18 02 00 00 |
536 |
size to end of OBJC from 0x08, in bytes
|
0x08 |
int32 |
27 00 00 00 |
39 |
object collection version
|
0x0C |
int32 |
28 00 00 00 |
40 |
size of next (first) object (black outline)
|
0x10 - 0x37 : first object (40 bytes)
|
0x38 |
int32 |
28 00 00 00 |
40 |
size of next (second) object
|
0x3C - ... : second object (40 bytes), etc
|
- General layout
- The collection's header (first 16 bytes) and layout is common to all 16 OBJC types (see below).
- The size of the whole collection is announced at 0x04 (int32), followed by the collection.
- Unlike ONIE and TMBD (which are arrays), OBJC announces the size of every object (int32).
- After the last object, the end of the collection is signaled by a null next object size.
- Object header
- All objects start with the following header:
Offset |
Type |
Raw Hex |
Value |
Description
|
0x00 |
char[4] |
52 52 57 50 |
PWRU |
object type
|
0x04 |
int32 |
AC 1C 00 00 |
7340 |
object ID
|
0x08 |
|
00 00 00 00 |
0x00 |
object flags; used values:
- 0x01 00 00 00 - unknown
- 0x08 00 00 00 - unknown
|
0x0C |
float |
E8 92 77 44 |
990.254 |
x-position
|
0x10 |
float |
00 00 D8 41 |
27.000000 |
y-position
|
0x14 |
float |
71 DD 98 43 |
305.73 |
z-position
|
0x18 |
float |
00 00 00 00 |
0.000000 |
rotation on the x-axis in degrees
|
0x1C |
float |
00 00 00 00 |
0.000000 |
rotation on the y-axis in degrees
|
0x20 |
float |
00 00 00 00 |
0.000000 |
rotation on the z-axis in degrees
|
OBJC types
A given collection can only hold objects of a specific type, which can be :
Type |
Long name |
Filename
|
CHAR |
Character |
CJBOCharacter.BINA
|
CMBT |
Combat profile |
CJBOCombat.BINA
|
CONS |
Console |
CJBOConsole.BINA
|
DOOR |
Door |
CJBODoor.BINA
|
FLAG |
Flag |
CJBOFlag.BINA
|
FURN |
Furniture |
CJBOFurniture.BINA
|
MELE |
Melee profile |
CJBOMelee Profile.BINA
|
NEUT |
Neutral behaviour |
CJBONeutral.BINA
|
PART |
Particle |
CJBOParticle.BINA
|
PATR |
Patrol path |
CJBOPatrol_Path.BINA
|
PWRU |
Powerup |
CJBOPowerUp.BINA
|
SNDG |
Sound Group |
CJBOSound.BINA
|
TRGV |
Trigger Volume |
CJBOTrigger_Volume.BINA
|
TRIG |
Trigger |
CJBOTrigger.BINA
|
TURR |
Turret |
CJBOTurret.BINA
|
WEAP |
Weapon |
CJBOWeapon.BINA
|
|
- Blue Box Beta "revelations"
- A German Mac Beta version was released as part of a compilation of old Mac games.
- The version contained extra WMDD files, part of Oni's developer GUI.
- Supposedly it allowed developers to edit OBJC files while running the game.
- Those menus provide additional information about the structure of a few OBJC types.