mapping save() { ACCESS_CHECK(GAME()); return ([ "archetypes": query_archetypes(), "capacity": query_capacity(), "density": query_density(), "environment": query_environment(), "flexible": query_flexible(), "id": query_id(), "inventory": query_inventory(), "mass": query_mass(), "max_mass": query_max_mass(), "name": query_object_name(), "properties": query_local_properties(), "virtual": query_virtual() ]); }
static nomask void thing_destruct() { int sz; int index; object env; object *children; destructing = 1; children = query_inventory(); env = query_environment(); sz = sizeof(children); for (index = 0; index < sz; index++) { children[index]->move(env); } if (env) { env->bulk_invalidate(); } clear_archetypes(); }