+ /** Checks the SLOPE attribute. Returns "true" if set, "false" otherwise. */
+ bool is_slope() const
+ {
+ return attributes & SLOPE;
+ }
+
+ /** Determine the solidity of a tile. This version behaves correctly for
+ * unisolid tiles by taking position and movement of the object in question
+ * into account. Because creating the arguments for this function can be
+ * expensive, you should handle trivial cases using the "is_solid()" and
+ * "is_unisolid()" methods first. */
+ bool is_solid (const Rectf& tile_bbox, const Rectf& position, const Vector& movement) const;
+
+ /** This version only checks the SOLID flag to determine the solidity of a
+ * tile. This means it will always return "true" for unisolid tiles. To
+ * determine the *current* solidity of unisolid tiles, use the "is_solid"
+ * method that takes position and movement into account (see above). */
+ bool is_solid() const
+ {
+ return attributes & SOLID;
+ }
+
+ /** Checks the UNISOLID attribute. Returns "true" if set, "false" otherwise. */
+ bool is_unisolid() const
+ {
+ return attributes & UNISOLID;
+ }
+