35
edits
(6 intermediate revisions by 2 users not shown) | |||
Line 1: | Line 1: | ||
=== | === SCUMM V1 and V2 === | ||
In v6 objects are | The object resources part of [[SCUMM/Technical_Reference/Room resources#Object_content|the room resource]]. | ||
=== 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. | |||
==== OBIM ==== | ==== OBIM ==== | ||
Line 19: | Line 92: | ||
num imnn : 16le | num imnn : 16le | ||
num zpnn : 16le (per IMnn block) | num zpnn : 16le (per IMnn block) | ||
unknown : | flags : 8 | ||
unknown : 8 | |||
x : 16le | x : 16le | ||
y : 16le | y : 16le | ||
Line 52: | Line 126: | ||
flags : 8 | flags : 8 | ||
parent : 8 | parent : 8 | ||
walk_x : 16le signed | |||
walk_y : 16le signed | |||
actor dir : 8 (direction the actor will look at when standing in front | actor dir : 8 (direction the actor will look at when standing in front | ||
of the object) | of the object) |
edits