+ return content_features(m).solidness;
+}
+// Objects collide with walkable contents
+// NOTE: Don't use, use "content_features(m).whatever" instead
+inline bool content_walkable(u8 m)
+{
+ return content_features(m).walkable;
+}
+// NOTE: Don't use, use "content_features(m).whatever" instead
+inline bool content_liquid(u8 m)
+{
+ return content_features(m).liquid_type != LIQUID_NONE;
+}
+// NOTE: Don't use, use "content_features(m).whatever" instead
+inline bool content_flowing_liquid(u8 m)
+{
+ return content_features(m).liquid_type == LIQUID_FLOWING;
+}
+// NOTE: Don't use, use "content_features(m).whatever" instead
+inline bool content_liquid_source(u8 m)
+{
+ return content_features(m).liquid_type == LIQUID_SOURCE;
+}
+// CONTENT_WATER || CONTENT_WATERSOURCE -> CONTENT_WATER
+// CONTENT_LAVA || CONTENT_LAVASOURCE -> CONTENT_LAVA
+// NOTE: Don't use, use "content_features(m).whatever" instead
+inline u8 make_liquid_flowing(u8 m)
+{
+ u8 c = content_features(m).liquid_alternative_flowing;
+ assert(c != CONTENT_IGNORE);
+ return c;
+}
+// Pointable contents can be pointed to in the map
+// NOTE: Don't use, use "content_features(m).whatever" instead
+inline bool content_pointable(u8 m)
+{
+ return content_features(m).pointable;
+}
+// NOTE: Don't use, use "content_features(m).whatever" instead
+inline bool content_diggable(u8 m)
+{
+ return content_features(m).diggable;
+}
+// NOTE: Don't use, use "content_features(m).whatever" instead
+inline bool content_buildable_to(u8 m)
+{
+ return content_features(m).buildable_to;