35
edits
Jestar jokin (talk | contribs) (Add info on SCUMM v4 object code blocks) |
|||
Line 1: | Line 1: | ||
=== V6 Objects === | |||
=== SCUMM V4 === | |||
In v4 objects are split in 2 chunks: OI and OC. OC does not have any sub-blocks like v5 or v6 objects; it contains all header information and the SCUMM script. | |||
===== OC ===== | |||
<pre> | |||
obj id : 16le | |||
unknown : 8 | |||
x : 8 | |||
y, parent state : 8 (parent state is AND 0x80, y is AND 0x7F) | |||
width : 8 | |||
parent : 8 | |||
walk_x : 16le signed(?) | |||
walk_y : 16le signed(?) | |||
height, actor dir : 8 (height is AND 0xF8, actor dir is AND 0x07) | |||
name offset : 8 (point to location of object name, from start of OC block) | |||
verb table : variable | |||
object name : variable, null-terminated string | |||
SCUMM script : variable | |||
</pre> | |||
The verb table is made up of multiple entries, each looks like this: | |||
<pre> | |||
verb ID : 8 | |||
offset : 16le (from start of script?) | |||
</pre> | |||
The number of entries will vary depending on the interactions defined for the object. | |||
=== SCUMM V5 === | |||
V5 objects are a lot like V6 Objects, with minor differences. | |||
===== IMHD ===== | |||
<pre> | |||
obj id : 16le | |||
num imnn : 16le | |||
num zpnn : 16le (per IMnn block) | |||
flags : 8 | |||
unknown : 8 | |||
x : 16le | |||
y : 16le | |||
width : 16le | |||
height : 16le | |||
</pre> | |||
IMHD omits the hotspots. | |||
===== CDHD ===== | |||
<pre> | |||
obj id : 16le | |||
x : 8 | |||
y : 8 | |||
width : 8 | |||
height : 8 | |||
flags : 8 | |||
parent : 8 | |||
walk_x : 16le signed | |||
walk_y : 16le signed | |||
actor dir : 8 (direction the actor will look at when standing in front | |||
of the object) | |||
</pre> | |||
x, y, width, and height are bytes. Their values should be multiplied by 8 (the size of an image strip). | |||
=== SCUMM V6 === | |||
In v6 objects are split in 2 chunks: OBIM and OBCD. OBIM store the images, zplanes, etc, while OBCD mostly store the scripts. | In v6 objects are split in 2 chunks: OBIM and OBCD. OBIM store the images, zplanes, etc, while OBCD mostly store the scripts. | ||
Line 74: | Line 144: | ||
The OBNA chunk simply contain a null terminated string. | The OBNA chunk simply contain a null terminated string. | ||
edits