]> de.git.xonotic.org Git - xonotic/xonotic-data.pk3dir.git/blobdiff - qcsrc/lib/defer.qh
Hopefully fix silly compilation test unit
[xonotic/xonotic-data.pk3dir.git] / qcsrc / lib / defer.qh
index eb56dce080da74004f103933483f7f21fe09fb7d..b923062bc9a9a35115ea48cbec1aef192d27ccff 100644 (file)
@@ -1,5 +1,5 @@
-#ifndef DEFER_H
-#define DEFER_H
+#pragma once
+
 #ifndef MENUQC
 
        #include "oo.qh"
        class(Defer).void() think;
        class(Defer).float nextthink;
 
-/*
-==================
-SUB_Remove
+       /** Remove self */
+       void SUB_Remove(entity this)
+       {
+               remove(this);
+       }
 
-Remove self
-==================
-*/
-       void SUB_Remove()
+       /** Remove self */
+       void SUB_Remove_self()
        {
                SELFPARAM();
-               remove(self);
+               remove(this);
        }
 
        void defer_think()
        {
                SELFPARAM();
-               self.think     = SUB_Remove;
-               self.nextthink = time;
-               WITH(entity, self, self.owner, self.use());
+               this.think     = SUB_Remove_self;
+               this.nextthink = time;
+               WITH(entity, self, this.owner, this.use());
        }
 
 /*
     Execute func() after time + fdelay.
     self when func is executed = self when defer is called
 */
-       void defer(float fdelay, void() func)
+       void defer(entity this, float fdelay, void() func)
        {
-               SELFPARAM();
-               entity e;
-
-               e           = spawn();
-               e.owner     = self;
+               entity e    = new_pure(deferred);
+               e.owner     = this;
                e.use       = func;
                e.think     = defer_think;
                e.nextthink = time + fdelay;
        }
 
 #endif
-#endif