Initialize Refactor
This commit is contained in:
@@ -14,5 +14,6 @@
|
||||
#define GC_QUEUED_FOR_HARD_DEL -2
|
||||
#define GC_CURRENTLY_BEING_QDELETED -3
|
||||
|
||||
#define QDELETED(X) (!X || X.gc_destroyed)
|
||||
#define QDELING(X) (X.gc_destroyed)
|
||||
#define QDELETED(X) (!X || QDELING(X))
|
||||
#define QDESTROYING(X) (!X || X.gc_destroyed == GC_CURRENTLY_BEING_QDELETED)
|
||||
|
||||
@@ -0,0 +1,18 @@
|
||||
diff a/code/__DEFINES/subsystems.dm b/code/__DEFINES/subsystems.dm (rejected hunks)
|
||||
@@ -26,4 +26,13 @@
|
||||
|
||||
#define INITIALIZE_HINT_NORMAL 0 //Nothing happens
|
||||
#define INITIALIZE_HINT_LATELOAD 1 //Call LateInitialize
|
||||
-#define INITIALIZE_HINT_QDEL 2 //Call qdel on the atom
|
||||
\ No newline at end of file
|
||||
+#define INITIALIZE_HINT_QDEL 2 //Call qdel on the atom
|
||||
+
|
||||
+//type and all subtypes should always call Initialize in New()
|
||||
+#define INITIALIZE_IMMEDIATE(X) ##X/New(loc, ...){\
|
||||
+ ..();\
|
||||
+ if(!initialized) {\
|
||||
+ args[1] = TRUE;\
|
||||
+ SSatoms.InitAtom(src, args);\
|
||||
+ }\
|
||||
+}
|
||||
\ No newline at end of file
|
||||
Reference in New Issue
Block a user