- Object Collection
- The collection's header structure (first 16 bytes) and collection layout is common to all 16 OBJC types.
- A collection consists of a variable number of objects, the size of which can also vary.
- The size (in bytes) of the next object is announced by the field immediately preceding it (long, 4 bytes)
- The total size to the end of the collection is announced in the header.
- 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.
- HERE is the additional information provided by those menus about the structure of a few OBJC types.
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
|
|
0x00 - 0x0F
- HEADER
- Example file : CJBOPowerUp.BINA from dunno where (level 3, probably)
- Offsets
- Offsets are given with respect to RAW part size.
Offset
|
Hex
|
Translation
|
Meaning
|
0x00
|
43 4A 42 4F
|
OBJC
|
Object Collection
|
0x04
|
18 02 00 00
|
536
|
size of the collection in bytes, counting from 0x08
|
0x08
|
27 00 00 00
|
39
|
identification number for the weapon classes; in every level the same; do not change it
|
0x0C
|
28 00 00 00
|
40
|
size of next (first) object (outlined in black)
|
0x10 - 0x37
|
First object (40 bytes)
|
0x38
|
28 00 00 00
|
40
|
size of next (second) object
|
0x3C - ...
|
Second object (40 bytes), etc
|
|
- Collection end
- After the last object, the end of the collection is signaled by a null next object size.
- "Weapon classes?"
- If anyone can explain me WTF weapon classes have to do with it, I'd be greatly appreciative. geyser