CorTruck.cob typedef struct tagCOBHeader { long VersionSignature; long NumberOfScripts; long NumberOfPieces; long Unknown_0; long Unknown_1; long Unknown_2; /* Always seems to be 0 */ long OffsetToScriptCodeIndexArray; long OffsetToScriptNameOffsetArray; long OffsetToPieceNameOffsetArray; long OffsetToScriptCode; long Unknown_3; /* Always seems to point to first script name */ } COBHeader; From CorTruct.cob: 00000000 COBHeader 00000004 VersionSignature; 00000003 NumberOfScripts; 00000001 NumberOfPieces; 000000A5 Unknown_0; 00000000 Unknown_1; 00000000 Unknown_2; /* Always seems to be 0 */ 000002C0 OffsetToScriptCodeIndexArray; 000002CC OffsetToScriptNameOffsetArray; 000002D8 OffsetToPieceNameOffsetArray; 0000002C OffsetToScriptCode; 000002DC Unknown_3; /* Always seems to point to first script name */ Offset to a script is calculated by: OffsetToScriptCode + (ScriptCodeIndexArray[ScriptNumber] * 4) 000002C0 ScriptCodeIndexArray 00 00 00 00 00000000 index to SmokeUnit code 53 00 00 00 00000053 index to Create code 56 00 00 00 00000056 index to Killed code 000002CC ScriptNameOffsetArray DC 02 00 00 000002DC "SmokeUnit" E6 02 00 00 000002E6 "Create" ED 02 00 00 000002ED "Killed" 000002D8 PieceNameOffsetArray F4 02 00 00 000002F4 "base" commands: format: one dword commands: value name ( -- ) two dword commands: value name ( -- ) where: value is the value in hex name is the name of the command constant is the description of the constant use by the command (if any) stack_in is the description of the values on the stack used by this command stack_out is the description of the valuse on the stack created by this command 1000F000 emit_sfx_from_piece ( -- ) 10013000 sleep (