- #define new(class) ((class) __spawn( #class, __FILE__, __LINE__, false))
+ #define _new(class, pure) ((class) __spawn( #class, __FILE__ ":" STR(__LINE__), pure))
+#endif
+/** entities you care about seeing (.origin works) */
+#define new(class) _new(class, false)
+/** purely logical entities (.origin doesn't work) */
+#define new_pure(class) _new(class, true)
+#define spawn() __spawn("entity", __FILE__ ":" STR(__LINE__), false)
+
+[[accumulate]] void ONREMOVE(entity this) {}
+
+#ifndef SVQC
+ #define delete_fn builtin_remove