]> git.xonotic.org Git - xonotic/xonotic-data.pk3dir.git/commitdiff
Propagate this
authorTimePath <andrew.hardaker1995@gmail.com>
Sun, 27 Mar 2016 08:22:43 +0000 (19:22 +1100)
committerTimePath <andrew.hardaker1995@gmail.com>
Sun, 27 Mar 2016 08:22:43 +0000 (19:22 +1100)
41 files changed:
qcsrc/common/gamemodes/gamemode/nexball/nexball.qc
qcsrc/common/gamemodes/gamemode/onslaught/onslaught.qc
qcsrc/common/mutators/mutator/buffs/buffs.qc
qcsrc/common/net_notice.qc
qcsrc/common/t_items.qc
qcsrc/common/t_items.qh
qcsrc/common/triggers/func/door.qc
qcsrc/common/triggers/func/door_rotating.qc
qcsrc/common/triggers/func/plat.qc
qcsrc/common/triggers/func/train.qc
qcsrc/common/triggers/func/vectormamamam.qc
qcsrc/common/triggers/misc/follow.qc
qcsrc/common/triggers/misc/laser.qc
qcsrc/common/triggers/target/spawn.qc
qcsrc/common/triggers/teleporters.qc
qcsrc/common/triggers/teleporters.qh
qcsrc/common/triggers/trigger/gamestart.qc
qcsrc/common/triggers/trigger/jumppads.qc
qcsrc/common/triggers/trigger/jumppads.qh
qcsrc/common/triggers/trigger/viewloc.qc
qcsrc/common/turrets/turret/walker.qc
qcsrc/lib/defer.qh
qcsrc/lib/self.qh
qcsrc/server/cheats.qc
qcsrc/server/g_lights.qc
qcsrc/server/g_models.qc
qcsrc/server/g_subs.qc
qcsrc/server/g_subs.qh
qcsrc/server/miscfunctions.qc
qcsrc/server/miscfunctions.qh
qcsrc/server/mutators/mutator/gamemode_assault.qc
qcsrc/server/mutators/mutator/gamemode_ctf.qc
qcsrc/server/mutators/mutator/gamemode_domination.qc
qcsrc/server/mutators/mutator/gamemode_invasion.qc
qcsrc/server/mutators/mutator/gamemode_keepaway.qc
qcsrc/server/mutators/mutator/gamemode_tdm.qc
qcsrc/server/race.qc
qcsrc/server/t_quake3.qc
qcsrc/server/teamplay.qc
qcsrc/server/teamplay.qh
qcsrc/server/tests.qc

index 14ab8b470a4229d5b71deeae20e0a70e2791e4d9..1d500c1a6d601b067e37ee5fadb0666b2ff21816 100644 (file)
@@ -498,7 +498,7 @@ void nb_spawnteams()
        }
 }
 
-void nb_delayedinit()
+void nb_delayedinit(entity this)
 {
        if(find(world, classname, "nexball_team") == world)
                nb_spawnteams();
index 4fc4a982cbefefb330b95d5cdafa979d2e769b96..5271beba1fe51290edeb9fc4a0deba0373f7b9a2 100644 (file)
@@ -414,8 +414,8 @@ void ons_Link_CheckUpdate()
        self.nextthink = time;
 }
 
-void ons_DelayedLinkSetup()
-{SELFPARAM();
+void ons_DelayedLinkSetup(entity this)
+{
        self.goalentity = find(world, targetname, self.target);
        self.enemy = find(world, targetname, self.target2);
        if(!self.goalentity) { objerror("can not find target\n"); }
@@ -855,8 +855,8 @@ void ons_ControlPoint_Reset(entity this)
        CSQCMODEL_AUTOUPDATE(this);
 }
 
-void ons_DelayedControlPoint_Setup()
-{SELFPARAM();
+void ons_DelayedControlPoint_Setup(entity this)
+{
        onslaught_updatelinks();
 
        // captureshield setup
@@ -1081,8 +1081,8 @@ void ons_GeneratorReset(entity this)
        onslaught_updatelinks();
 }
 
-void ons_DelayedGeneratorSetup()
-{SELFPARAM();
+void ons_DelayedGeneratorSetup(entity this)
+{
        // bot waypoints
        waypoint_spawnforitem_force(self, self.origin);
        self.nearestwaypointtimeout = 0; // activate waypointing again
@@ -1951,8 +1951,8 @@ MUTATOR_HOOKFUNCTION(ons, MonsterMove)
        return false;
 }
 
-void ons_MonsterSpawn_Delayed()
-{SELFPARAM();
+void ons_MonsterSpawn_Delayed(entity this)
+{
        entity e, own = self.owner;
 
        if(!own) { remove(self); return; }
@@ -1981,8 +1981,8 @@ MUTATOR_HOOKFUNCTION(ons, MonsterSpawn)
        return false;
 }
 
-void ons_TurretSpawn_Delayed()
-{SELFPARAM();
+void ons_TurretSpawn_Delayed(entity this)
+{
        entity e, own = self.owner;
 
        if(!own) { remove(self); return; }
@@ -2253,7 +2253,7 @@ void ons_ScoreRules()
        ScoreRules_basics_end();
 }
 
-void ons_DelayedInit() // Do this check with a delay so we can wait for teams to be set up
+void ons_DelayedInit(entity this) // Do this check with a delay so we can wait for teams to be set up
 {
        ons_ScoreRules();
 
index 7de2a906201ff55964e6971440fc383ee8b7e838..15b725ee4b18d2bcd934728a6e0b2c2c8b233496 100644 (file)
@@ -82,7 +82,7 @@ const vector BUFF_MAX = ('16 16 20');
 #include <common/gamemodes/all.qh>
 
 .float buff_time = _STAT(BUFF_TIME);
-void buffs_DelayedInit();
+void buffs_DelayedInit(entity this);
 
 REGISTER_MUTATOR(buffs, cvar("g_buffs"))
 {
@@ -1045,7 +1045,7 @@ MUTATOR_HOOKFUNCTION(buffs, BuildMutatorsPrettyString)
        return false;
 }
 
-void buffs_DelayedInit()
+void buffs_DelayedInit(entity this)
 {
        if(autocvar_g_buffs_spawn_count > 0)
        if(find(world, classname, "item_buff") == world)
index d67a1de3d8f7a230d8620f1ffd9b815d834a8ddf..1e1726ae452fe716041d291f30581eb3a1d3cab9 100644 (file)
@@ -3,9 +3,8 @@
 REGISTER_NET_TEMP(TE_CSQC_SVNOTICE)
 
 #ifdef SVQC
-void sv_notice_join_think()
+void sv_notice_join_think(entity this)
 {
-    SELFPARAM();
     int argc = tokenizebyseparator(autocvar_sv_join_notices, "|");
     if (argc <= 0) return;
     for (int i = 0; i < argc; ++i)
index 75fec0103e7ccbe6cb04b804baf5b315c8a664b6..87623da3630d62f7a98e1e20bea14cbf960accf6 100644 (file)
@@ -863,8 +863,8 @@ void Item_Reset(entity this)
 }
 void Item_Reset_self() { SELFPARAM(); Item_Reset(this); }
 
-void Item_FindTeam()
-{SELFPARAM();
+void Item_FindTeam(entity this)
+{
        entity e;
 
        if(self.effects & EF_NODRAW)
index d6c97445f6be572cbe87f2ebcf7d2cfbbf6cb4f1..1eb4b182dee07359b7fd7d0baf8b2948c877071a 100644 (file)
@@ -92,7 +92,7 @@ void Item_Touch();
 
 void Item_Reset(entity this);
 
-void Item_FindTeam();
+void Item_FindTeam(entity this);
 // Savage: used for item garbage-collection
 
 bool ItemSend(entity this, entity to, int sf);
index 0b250ef32e1d1f74fd2f04c5628dce82b8e6bd65..1e19dfafc7205e3e74d9c1aad7daa23f34adf567 100644 (file)
@@ -506,8 +506,8 @@ bool LinkDoors_isconnected(entity e1, entity e2, entity pass)
 #ifdef SVQC
 void door_link();
 #endif
-void LinkDoors()
-{SELFPARAM();
+void LinkDoors(entity this)
+{
        entity  t;
        vector  cmins, cmaxs;
 
@@ -693,8 +693,8 @@ void door_link()
 }
 #endif
 
-void door_init_startopen()
-{SELFPARAM();
+void door_init_startopen(entity this)
+{
        SUB_SETORIGIN(self, self.pos2);
        self.pos2 = self.pos1;
        self.pos1 = self.origin;
@@ -850,10 +850,10 @@ NET_HANDLE(ENT_CLIENT_DOOR, bool isnew)
                this.drawmask = MASK_NORMAL;
                this.use = door_use;
 
-               LinkDoors();
+               LinkDoors(this);
 
                if(this.spawnflags & DOOR_START_OPEN)
-                       door_init_startopen();
+                       door_init_startopen(this);
 
                this.move_time = time;
                this.move_origin = this.origin;
index 4f88e9e9b5ae02c595511f9a96625ee1406d72e2..4c97fe6a8aa7c1d7584c4fb63d7c024a247c968e 100644 (file)
@@ -36,8 +36,8 @@ void door_rotating_reset(entity this)
        this.nextthink = 0;
 }
 
-void door_rotating_init_startopen()
-{SELFPARAM();
+void door_rotating_init_startopen(entity this)
+{
        self.angles = self.movedir;
        self.pos2 = '0 0 0';
        self.pos1 = self.movedir;
index ea546164ce71fb0589b03f12f8fea3962c82f214..14cfa564134b74e0c6633ac53d5862a05c4db6d7 100644 (file)
@@ -3,7 +3,7 @@ REGISTER_NET_LINKED(ENT_CLIENT_PLAT)
 #ifdef SVQC
 void plat_link();
 
-void plat_delayedinit()
+void plat_delayedinit(entity this)
 {
        plat_link();
        plat_spawn_inside_trigger(); // the "start moving" trigger
index 26ecc81f148411626551012622434f73a024f361..2b27c7355ce5b814bc1ceac5dff541aacee79a4e 100644 (file)
@@ -184,8 +184,8 @@ void train_use()
        self.use = func_null; // not again
 }
 
-void func_train_find()
-{SELFPARAM();
+void func_train_find(entity this)
+{
        entity targ;
        targ = find(world, targetname, self.target);
        self.target = targ.target;
index 5c2086477475abe8e6541374f1d6b12843a996a9..2dfa1ac98f9817d4b4cc07b1d245416db3ca00ee 100644 (file)
@@ -71,8 +71,8 @@ void func_vectormamamam_controller_think()
                self.owner.velocity = (self.owner.destvec + func_vectormamamam_origin(self.owner, 0.1) - self.owner.origin) * 10;
 }
 
-void func_vectormamamam_findtarget()
-{SELFPARAM();
+void func_vectormamamam_findtarget(entity this)
+{
        if(self.target != "")
                self.wp00 = find(world, targetname, self.target);
 
index 842248a4b31f0acc93a7b91f32a784dea7c1978c..2ac304a212d08fbfaa28183353538040cee7716f 100644 (file)
@@ -1,8 +1,8 @@
 // the way this entity works makes it no use to CSQC, as it removes itself instantly
 
 #ifdef SVQC
-void follow_init()
-{SELFPARAM();
+void follow_init(entity this)
+{
        entity src, dst;
        src = world;
        dst = world;
index 0f05ce72a82772123100b4a2bb017a3047cdd7f0..48e23a287d68de3c00eeeb1af9bf9a1531da0882 100644 (file)
@@ -49,8 +49,8 @@ void misc_laser_aim()
        }
 }
 
-void misc_laser_init()
-{SELFPARAM();
+void misc_laser_init(entity this)
+{
        if(self.target != "")
                self.enemy = find(world, targetname, self.target);
 }
index 960e818b6d8c69dd8cfbabd8c5481dba7daa62c8..82793c9367f969c04b4ecc6a7361e84cc89d9923 100644 (file)
@@ -297,8 +297,8 @@ void target_spawn_use()
        }
 }
 
-void target_spawn_spawnfirst()
-{SELFPARAM();
+void target_spawn_spawnfirst(entity this)
+{
        activator = self.target_spawn_activator;
        if(self.spawnflags & 2)
                target_spawn_use();
index afeabfcddc3cba2cf3da9d779b5007a79176505c..04667f4cc228391eefab47954ab56695e99d3f10 100644 (file)
@@ -247,9 +247,8 @@ entity Simple_TeleportPlayer(entity teleporter, entity player)
        return e;
 }
 
-void teleport_findtarget()
+void teleport_findtarget(entity this)
 {
-    SELFPARAM();
        int n = 0;
        entity e;
        for(e = world; (e = find(e, targetname, self.target)); )
index 0e9e23572f323df37678c4bb9eacd98a9b85c361..b0571dc310b4e2c333d8dab4142b62bf0a425f15 100644 (file)
@@ -19,7 +19,7 @@ entity Simple_TeleportPlayer(entity teleporter, entity player);
 
 void Teleport_Touch ();
 
-void teleport_findtarget();
+void teleport_findtarget(entity this);
 
 entity Teleport_Find(vector mi, vector ma);
 
index d90e3418caab154454fbafeb36a6c350827bd177..9c0c0791ab3443c3b25672c1dda77b42add84dba 100644 (file)
@@ -1,6 +1,6 @@
 #ifdef SVQC
-void gamestart_use()
-{SELFPARAM();
+void gamestart_use(entity this)
+{
        activator = self;
        SUB_UseTargets();
        remove(self);
@@ -9,7 +9,7 @@ void gamestart_use()
 void self_spawnfunc_trigger_gamestart();
 spawnfunc(trigger_gamestart)
 {
-       this.use = gamestart_use;
+       setuse(this, gamestart_use);
        this.reset2 = self_spawnfunc_trigger_gamestart;
 
        if(this.wait)
index 7b82c39590e2bc1e3e192f69161d2894f0d0be49..556fe66358ed00fae0eda7d5bd4786824b43f8d1 100644 (file)
@@ -274,10 +274,10 @@ void trigger_push_touch()
 
 #ifdef SVQC
 void trigger_push_link();
-void trigger_push_updatelink();
+void trigger_push_updatelink(entity this);
 #endif
-void trigger_push_findtarget()
-{SELFPARAM();
+void trigger_push_findtarget(entity this)
+{
        entity t;
        vector org;
 
@@ -354,8 +354,8 @@ float trigger_push_send(entity this, entity to, float sf)
        return true;
 }
 
-void trigger_push_updatelink()
-{SELFPARAM();
+void trigger_push_updatelink(entity this)
+{
        this.SendFlags |= 1;
 }
 
index 0c4180849667aeef916314c2c128486052954367..07973614b88a23ae9a24ed8a6a70030706ede592 100644 (file)
@@ -38,7 +38,7 @@ vector trigger_push_calculatevelocity(vector org, entity tgt, float ht);
 void trigger_push_touch();
 
 .vector dest;
-void trigger_push_findtarget();
+void trigger_push_findtarget(entity this);
 
 /*
  * ENTITY PARAMETERS:
index f7e69495228b97987d3dbd636c93015c1ca2e4b8..db75434bfb6f98bd226f81bc72c07bbec718683b 100644 (file)
@@ -55,8 +55,8 @@ bool trigger_viewloc_send(entity this, entity to, int sf)
        return true;
 }
 
-void viewloc_init()
-{SELFPARAM();
+void viewloc_init(entity this)
+{
        entity e;
        for(e = world; (e = find(e, targetname, self.target)); )
                if(e.classname == "target_viewlocation_start")
index 491b5bbd920065c21d02b2fa61c8b0a27a5be559..918ce4ca3a1bbc91c1c14de41af6595399379855 100644 (file)
@@ -73,8 +73,8 @@ float walker_firecheck()
     return turret_firecheck();
 }
 
-void walker_melee_do_dmg()
-{SELFPARAM();
+void walker_melee_do_dmg(entity this)
+{
     vector where;
     entity e;
 
@@ -92,8 +92,8 @@ void walker_melee_do_dmg()
     }
 }
 
-void walker_setnoanim()
-{SELFPARAM();
+void walker_setnoanim(entity this)
+{
     turrets_setframe(ANIM_NO, false);
     self.animflag = self.frame;
 }
index 56014121f8936bf128492fcb0a4ac5e35c0754eb..d4c1eadac75db7a4dbbd87a738892b7e0f039565 100644 (file)
                SELFPARAM();
                this.think     = SUB_Remove_self;
                this.nextthink = time;
-               WITHSELF(this.owner, this.use());
+               WITHSELF(this.owner, this.selfthink(this));
        }
 
-/*
-    Execute func() after time + fdelay.
-    self when func is executed = self when defer is called
-*/
-       void defer(entity this, float fdelay, void() func)
+    /**
+     * Execute func() after time + fdelay.
+     * self when func is executed = self when defer is called
+     */
+       void defer(entity this, float fdelay, void(entity this) func)
        {
                entity e    = new_pure(deferred);
                e.owner     = this;
-               e.use       = func;
+               setthink(e, func);
                e.think     = defer_think;
                e.nextthink = time + fdelay;
        }
index 5d53694c72294ed2c5b077f586ad1ee0e0ad422e..76607c7e44db0920cd16398d4dfeb30ab633c7f3 100644 (file)
 #endif
 
 // Step 6: Remove SELFPARAM in favor of a parameter
+
+.void(entity this) selftouch;
+void touch_self() { SELFPARAM(); this.selftouch(this); }
+#define settouch(e, f) (e.use = touch_self, e.selftouch = f)
+
+.void(entity this) selfuse;
+void use_self() { SELFPARAM(); this.selfuse(this); }
+#define setuse(e, f) (e.use = use_self, e.selfuse = f)
+
+.void(entity this) selfthink;
+void think_self() { SELFPARAM(); this.selfthink(this); }
+#define setthink(e, f) (e.think = think_self, e.selfthink = f)
index 933f4ac63c6cf2cb4452827b33aae1c185ec3f37..e13678dce5995e6381c3dd248cdb275aecc174a8 100644 (file)
@@ -104,8 +104,8 @@ float CheatsAllowed(float i, float argc, float fr) // the cheat gets passed as a
                break
 
 float num_autoscreenshot;
-void info_autoscreenshot_findtarget()
-{SELFPARAM();
+void info_autoscreenshot_findtarget(entity this)
+{
        entity e;
        e = find(world, targetname, self.target);
        if(!e)
@@ -696,7 +696,7 @@ float CheatCommand(float argc)
                        setself(new(cheattriggerteleport));
                        setorigin(self, self.origin);
                        self.target = argv(1);
-                       teleport_findtarget();
+                       teleport_findtarget(self);
                        if(!wasfreed(self))
                        {
                                Simple_TeleportPlayer(self, this);
index 74e03b7a0d6c3f4a133f8dd6b6593e47819eed47..5e9273f7cd43702f62592c461ea8ecabefe9ab66 100644 (file)
@@ -42,9 +42,8 @@ void dynlight_think()
 
        self.nextthink = time + 0.1;
 }
-void dynlight_find_aiment()
+void dynlight_find_aiment(entity this)
 {
-    SELFPARAM();
        entity targ;
        if (!self.target)
                objerror ("dynlight: no target to follow");
@@ -59,9 +58,8 @@ void dynlight_find_aiment()
        self.think = dynlight_think;
        self.nextthink = time + 0.1;
 }
-void dynlight_find_path()
+void dynlight_find_path(entity this)
 {
-    SELFPARAM();
        entity targ;
        if (!self.target)
                objerror ("dynlight: no target to follow");
@@ -72,9 +70,8 @@ void dynlight_find_path()
        self.think = train_next;
        self.nextthink = time + 0.1;
 }
-void dynlight_find_target()
+void dynlight_find_target(entity this)
 {
-    SELFPARAM();
        entity targ;
        if (!self.target)
                objerror ("dynlight: no target to follow");
index 6612b837c1542ff8b7991051cf4d54f868f5ceae..baca561786a00bcf9da35e7883100fd622242951 100644 (file)
@@ -51,8 +51,8 @@ void g_clientmodel_use()
        g_clientmodel_setcolormaptoactivator();
 }
 
-void g_model_dropbyspawnflags()
-{SELFPARAM();
+void g_model_dropbyspawnflags(entity this)
+{
        if((self.spawnflags & 3) == 1) // ALIGN_ORIGIN
        {
                traceline(self.origin, self.origin - '0 0 4096', MOVE_NOMONSTERS, self);
@@ -70,11 +70,11 @@ void g_model_dropbyspawnflags()
        }
 }
 
-void g_clientmodel_dropbyspawnflags()
-{SELFPARAM();
+void g_clientmodel_dropbyspawnflags(entity this)
+{
        vector o0;
        o0 = self.origin;
-       g_model_dropbyspawnflags();
+       g_model_dropbyspawnflags(self);
        if(self.origin != o0)
                self.SendFlags |= 2;
 }
index c6a9d787fe2c6b602c7f7d788ec211ca67fe6804..a2cbc5a431e4d2fd9ad6bb3ed462ac9d4c5dffc5 100644 (file)
@@ -265,8 +265,8 @@ void LOD_uncustomize()
        this.modelindex = this.lodmodelindex0;
 }
 
-void LODmodel_attach()
-{SELFPARAM();
+void LODmodel_attach(entity this)
+{
        entity e;
 
        if(!this.loddistance1)
index 90378d510d07bec60f75228bc7021c02e7fd6651..49bcd8904f86e7bf07a9e791d9835a4ef145aa4f 100644 (file)
@@ -143,7 +143,7 @@ float LOD_customize();
 
 void LOD_uncustomize();
 
-void LODmodel_attach();
+void LODmodel_attach(entity this);
 
 void ApplyMinMaxScaleAngles(entity e);
 
index bb5f176b6090f48bf7e9d48cde65f446f5f0a730..72747037dee0c8739223fe5f2ca1744351138841 100644 (file)
@@ -851,7 +851,7 @@ void remove_safely(entity e)
     builtin_remove(e);
 }
 
-void InitializeEntity(entity e, void() func, float order)
+void InitializeEntity(entity e, void(entity this) func, float order)
 {
     entity prev, cur;
 
@@ -885,7 +885,7 @@ void InitializeEntity(entity e, void() func, float order)
     }
 }
 void InitializeEntitiesRun()
-{SELFPARAM();
+{
     entity startoflist = initialize_entity_first;
     initialize_entity_first = NULL;
     remove = remove_except_protected;
@@ -899,7 +899,7 @@ void InitializeEntitiesRun()
         e.initialize_entity_order = 0;
        entity next = e.initialize_entity_next;
         e.initialize_entity_next = NULL;
-        var void() func = e.initialize_entity;
+        var void(entity this) func = e.initialize_entity;
         e.initialize_entity = func_null;
         if (e.classname == "initialize_entity")
         {
@@ -910,7 +910,7 @@ void InitializeEntitiesRun()
         //dprint("Delayed initialization: ", e.classname, "\n");
         if (func)
         {
-               WITHSELF(e, func());
+               WITHSELF(e, func(e));
         }
         else
         {
@@ -987,8 +987,8 @@ void adaptor_think2use_hittype_splash() // for timed projectile detonation
 }
 
 // deferred dropping
-void DropToFloor_Handler()
-{SELFPARAM();
+void DropToFloor_Handler(entity this)
+{
     builtin_droptofloor();
     self.dropped_origin = self.origin;
 }
index d828d70f900257421daefaa973ceef1581b76b47..04221e439ef8f85fef2017e998cc26481e6b0c62 100644 (file)
@@ -357,7 +357,7 @@ const float INITPRIO_SETLOCATION            = 90;
 const float INITPRIO_LINKDOORS                         = 91;
 const float INITPRIO_LAST                              = 99;
 
-.void() initialize_entity;
+.void(entity this) initialize_entity;
 .float initialize_entity_order;
 .entity initialize_entity_next;
 entity initialize_entity_first;
@@ -367,5 +367,5 @@ entity initialize_entity_first;
 
 
 float sound_allowed(float dest, entity e);
-void InitializeEntity(entity e, void() func, float order);
+void InitializeEntity(entity e, void(entity this) func, float order);
 void SetCustomizer(entity e, float() customizer, void() uncustomizer);
index e017f8a17f5ca05f11a3d00d8e59b5fd685e32fe..34c19d425178a0d9c02e3f844d1aa6edb6730034 100644 (file)
@@ -147,8 +147,8 @@ void assault_objective_decrease_use()
        }
 }
 
-void assault_setenemytoobjective()
-{SELFPARAM();
+void assault_setenemytoobjective(entity this)
+{
        entity objective;
        for(objective = world; (objective = find(objective, targetname, self.target)); )
        {
@@ -208,9 +208,9 @@ void target_objective_decrease_activate()
        }
 }
 
-void target_objective_decrease_findtarget()
+void target_objective_decrease_findtarget(entity this)
 {
-       assault_setenemytoobjective();
+       assault_setenemytoobjective(this);
 }
 
 void target_assault_roundend_reset(entity this)
@@ -225,8 +225,8 @@ void target_assault_roundend_use()
        self.winning = 1; // round has been won by attackers
 }
 
-void assault_roundstart_use()
-{SELFPARAM();
+void assault_roundstart_use(entity this)
+{
        activator = self;
        SUB_UseTargets();
 
@@ -242,6 +242,11 @@ void assault_roundstart_use()
                WITHSELF(it, turret_respawn());
        ));
 }
+void assault_roundstart_use_self()
+{
+    SELFPARAM();
+    assault_roundstart_use(this);
+}
 
 void assault_wall_think()
 {SELFPARAM();
@@ -432,8 +437,8 @@ spawnfunc(target_assault_roundstart)
 
        assault_attacker_team = NUM_TEAM_1;
        self.classname = "target_assault_roundstart";
-       self.use = assault_roundstart_use;
-       self.reset2 = assault_roundstart_use;
+       self.use = assault_roundstart_use_self;
+       self.reset2 = assault_roundstart_use_self;
        InitializeEntity(self, assault_roundstart_use, INITPRIO_FINDTARGET);
 }
 
index 9cd6e37726230d6ddfe5ff4d49469c888bce3793..a7d6fb2a1b26f7e6d1376b259ca5a5d91323ed93 100644 (file)
@@ -1158,8 +1158,8 @@ void ctf_Reset(entity this)
        ctf_RespawnFlag(this);
 }
 
-void ctf_DelayedFlagSetup() // called after a flag is placed on a map by ctf_FlagSetup()
-{SELFPARAM();
+void ctf_DelayedFlagSetup(entity this) // called after a flag is placed on a map by ctf_FlagSetup()
+{
        // bot waypoints
        waypoint_spawnforitem_force(self, self.origin);
        self.nearestwaypointtimeout = 0; // activate waypointing again
@@ -2554,7 +2554,7 @@ void ctf_SpawnTeam (string teamname, int teamcolor)
        WITHSELF(this, spawnfunc_ctf_team(this));
 }
 
-void ctf_DelayedInit() // Do this check with a delay so we can wait for teams to be set up.
+void ctf_DelayedInit(entity this) // Do this check with a delay so we can wait for teams to be set up.
 {
        ctf_teams = 2;
 
index ba6a48f354decfe842607c6a127fe43c41fd8045..01f17ec9feee1d09cd86b2e02bf000eba020b89d 100644 (file)
@@ -681,7 +681,7 @@ void dom_spawnteams(int teams)
        dom_spawnteam("", 0, "models/domination/dom_unclaimed.md3", 0, SND_Null, "", "");
 }
 
-void dom_DelayedInit() // Do this check with a delay so we can wait for teams to be set up.
+void dom_DelayedInit(entity this) // Do this check with a delay so we can wait for teams to be set up.
 {
        // if no teams are found, spawn defaults
        if(find(world, classname, "dom_team") == world || autocvar_g_domination_teams_override >= 2)
index 7b2972c84c5b07be474e905fc62c06012e15e76d..efb6842e5dedb8137e9c6201f7d5e8f83e1c1d5f 100644 (file)
@@ -482,7 +482,7 @@ void invasion_ScoreRules(float inv_teams)
        ScoreRules_basics_end();
 }
 
-void invasion_DelayedInit() // Do this check with a delay so we can wait for teams to be set up.
+void invasion_DelayedInit(entity this) // Do this check with a delay so we can wait for teams to be set up.
 {
        if(autocvar_g_invasion_teams)
                invasion_teams = bound(2, autocvar_g_invasion_teams, 4);
index 4654795608ff7566a9461b12cc8c5ce7880b2d84..66ac8a80e38619e61012ce18b3185cda04556926 100644 (file)
@@ -82,8 +82,8 @@ void ka_EventLog(string mode, entity actor) // use an alias for easy changing an
 }
 
 void ka_TouchEvent();
-void ka_RespawnBall() // runs whenever the ball needs to be relocated
-{SELFPARAM();
+void ka_RespawnBall(entity this) // runs whenever the ball needs to be relocated
+{
        if(gameover) { return; }
        vector oldballorigin = self.origin;
 
@@ -100,7 +100,7 @@ void ka_RespawnBall() // runs whenever the ball needs to be relocated
        self.angles = '0 0 0';
        self.effects = autocvar_g_keepawayball_effects;
        self.touch = ka_TouchEvent;
-       self.think = ka_RespawnBall;
+       setthink(self, ka_RespawnBall);
        self.nextthink = time + autocvar_g_keepawayball_respawntime;
 
        Send_Effect(EFFECT_ELECTRO_COMBO, oldballorigin, '0 0 0', 1);
@@ -130,7 +130,7 @@ void ka_TouchEvent() // runs any time that the ball comes in contact with someth
        if(!self) { return; }
        if(trace_dphitq3surfaceflags & Q3SURFACEFLAG_NOIMPACT)
        { // The ball fell off the map, respawn it since players can't get to it
-               ka_RespawnBall();
+               ka_RespawnBall(self);
                return;
        }
        if(IS_DEAD(other)) { return; }
@@ -193,7 +193,7 @@ void ka_DropEvent(entity plyr) // runs any time that a player is supposed to los
        ball.movetype = MOVETYPE_BOUNCE;
        ball.wait = time + 1;
        ball.touch = ka_TouchEvent;
-       ball.think = ka_RespawnBall;
+       setthink(ball, ka_RespawnBall);
        ball.nextthink = time + autocvar_g_keepawayball_respawntime;
        ball.takedamage = DAMAGE_YES;
        ball.effects &= ~EF_NODRAW;
@@ -230,12 +230,12 @@ void ka_Reset(entity this)
 
        if(time < game_starttime)
        {
-               this.think = ka_RespawnBall;
+               setthink(this, ka_RespawnBall);
                this.touch = func_null;
                this.nextthink = game_starttime;
        }
        else
-               ka_RespawnBall();
+               ka_RespawnBall(this);
 }
 
 
index 2ba975c0da4f25141d569a8eaf1f182d665773db..078e3517d08bb5dcfdc42eee5db23236a657077c 100644 (file)
@@ -5,7 +5,7 @@
 int autocvar_g_tdm_point_limit;
 int autocvar_g_tdm_point_leadlimit;
 bool autocvar_g_tdm_team_spawns;
-void tdm_DelayedInit();
+void tdm_DelayedInit(entity this);
 
 REGISTER_MUTATOR(tdm, false)
 {
@@ -67,7 +67,7 @@ void tdm_SpawnTeam (string teamname, float teamcolor)
        WITHSELF(this, spawnfunc_tdm_team(this));
 }
 
-void tdm_DelayedInit()
+void tdm_DelayedInit(entity this)
 {
        // if no teams are found, spawn defaults
        if(find(world, classname, "tdm_team") == world)
index 8b46c210b8450cd1150d30345336007411198131..79dc8d4b88e5b9bb9f4d2b064471e0881d242a82 100644 (file)
@@ -727,8 +727,8 @@ float race_waypointsprite_visible_for_player(entity e)
 }
 
 float have_verified;
-void trigger_race_checkpoint_verify()
-{SELFPARAM();
+void trigger_race_checkpoint_verify(entity this)
+{
        entity cp;
        float i, p;
        float qual;
index d6f3559cdc27f1ea69150e53d6397e9b00f8df6b..ef614c7ac3eaf55885ae4bb8d99246e8ac9d09f3 100644 (file)
@@ -68,7 +68,7 @@ spawnfunc(item_enviro)         { spawnfunc_item_invincible(this);     }
 .float delay;
 
 // weapon remove ent from df
-void target_init_verify()
+void target_init_verify(entity this)
 {
        entity trigger, targ;
        for(trigger = world; (trigger = find(trigger, classname, "trigger_multiple")); )
@@ -95,8 +95,8 @@ spawnfunc(target_init)
 }
 
 // weapon give ent from defrag
-void target_give_init()
-{SELFPARAM();
+void target_give_init(entity this)
+{
        entity targ;
        for (targ = world; (targ = find(targ, targetname, self.target)); ) {
                if (targ.classname == "weapon_rocketlauncher" || targ.classname == "weapon_devastator") {
index fabeaeced96f4e41b2476aaad022b9e4176eac82..8dd4667117e8d745d12cc62e19fb2fef1add64ff 100644 (file)
@@ -31,7 +31,7 @@ void LogTeamchange(float player_id, float team_number, float type)
        GameLogEcho(strcat(":team:", ftos(player_id), ":", ftos(team_number), ":", ftos(type)));
 }
 
-void default_delayedinit()
+void default_delayedinit(entity this)
 {
        if(!scores_initialized)
                ScoreRules_generic();
index e24005a3211336bc53a8c082751df9bf82eeac74..2a3a528fea537dd16a59c839f5e6b373415c84e6 100644 (file)
@@ -16,7 +16,7 @@ void TeamchangeFrags(entity e);
 
 void LogTeamchange(float player_id, float team_number, float type);
 
-void default_delayedinit();
+void default_delayedinit(entity this);
 
 void ActivateTeamplay();
 
index b0e21e746f0cf39433ddeb1cd486f13146eaa8c8..7bbf00dc51c335262f6b3a757b3d97188d5692c5 100644 (file)
@@ -1,7 +1,7 @@
 #include "tests.qh"
 
-void test_weapons_hurt() {
-    SELFPARAM();
+void test_weapons_hurt(entity this)
+{
     EXPECT_NE(100, this.health);
     remove(this.enemy);
     remove(this);