704 13. Introduction to Gameplay Systems
the value in the grid causes the property value to be updated in all selected
objects. If the att ribute’s value diff ers from object to object within the selection,
the property grid typically shows no value at all. In this case, if a new value is
typed into the fi eld in the grid, it will overwrite the values in all selected ob-
jects, bringing them all into agreement. Another problem arises when the se-
lection contains a heterogeneous collection of objects (i.e., objects whose types
diff er). Each type of object can potentially have a diff erent set of att ributes, so
the property grid must only display those att ributes that are common to all
object types in the selection. This can still be useful, however, because game
object types oft en inherit from a common base type. For example, most objects
have a position and orientation. In a heterogeneous selection, the user can still
edit these shared att ributes even though more-specifi c att ributes are tempo-
rarily hidden from view.
Free-Form Properties
Normally, the set of properties associated with an object, and the data types of
those properties, are defi ned on a per-object-type basis. For example, a render-
Figure 13.6. A typical property grid.