]> de.git.xonotic.org Git - xonotic/xonotic-data.pk3dir.git/blobdiff - qcsrc/server/g_triggers.qc
#include this
[xonotic/xonotic-data.pk3dir.git] / qcsrc / server / g_triggers.qc
index 3a7bb364c5e9347eaf60f23cfbb1990eddba70f9..cacb434d3d76cd00e04d8e0728272b7b68349eca 100644 (file)
@@ -1,3 +1,22 @@
+#if defined(CSQC)
+#elif defined(MENUQC)
+#elif defined(SVQC)
+       #include "../dpdefs/progsdefs.qc"
+    #include "../dpdefs/dpextensions.qc"
+    #include "../warpzonelib/util_server.qh"
+    #include "../common/constants.qh"
+    #include "../common/util.qh"
+    #include "../common/monsters/monsters.qh"
+    #include "../common/weapons/weapons.qh"
+    #include "weapons/csqcprojectile.qh"
+    #include "autocvars.qh"
+    #include "constants.qh"
+    #include "defs.qh"
+    #include "../common/notifications.qh"
+    #include "../common/deathtypes.qh"
+    #include "../common/mapinfo.qh"
+#endif
+
 void SUB_DontUseTargets()
 {
 }
@@ -61,14 +80,13 @@ void SUB_UseTargets()
 //
 // print the message
 //
-       if (IS_PLAYER(activator) && self.message != "")
+       if(self)
+       if(IS_PLAYER(activator) && self.message != "")
+       if(IS_REAL_CLIENT(activator))
        {
-               if(IS_REAL_CLIENT(activator))
-               {
-                       centerprint (activator, self.message);
-                       if (self.noise == "")
-                               play2(activator, "misc/talk.wav");
-               }
+               centerprint(activator, self.message);
+               if (self.noise == "")
+                       play2(activator, "misc/talk.wav");
        }
 
 //
@@ -205,8 +223,8 @@ void multi_use()
 
 void multi_touch()
 {
-       if (!(self.spawnflags & 2))
-               if (!other.iscreature)
+       if(!(self.spawnflags & 2))
+       if(!other.iscreature)
                        return;
 
        if(self.team)
@@ -378,32 +396,26 @@ void spawnfunc_trigger_delay()
 
 void counter_use()
 {
-       self.count = self.count - 1;
+       self.count -= 1;
        if (self.count < 0)
                return;
 
-       if (self.count != 0)
+       if (self.count == 0)
        {
-               if (IS_PLAYER(activator)
-               && (self.spawnflags & SPAWNFLAG_NOMESSAGE) == 0)
-               {
-                       if (self.count >= 4)
-                               centerprint (activator, "There are more to go...");
-                       else if (self.count == 3)
-                               centerprint (activator, "Only 3 more to go...");
-                       else if (self.count == 2)
-                               centerprint (activator, "Only 2 more to go...");
-                       else
-                               centerprint (activator, "Only 1 more to go...");
-               }
-               return;
-       }
+               if(IS_PLAYER(activator) && (self.spawnflags & SPAWNFLAG_NOMESSAGE) == 0)
+                       Send_Notification(NOTIF_ONE, activator, MSG_CENTER, CENTER_SEQUENCE_COMPLETED);
 
-       if (IS_PLAYER(activator)
-       && (self.spawnflags & SPAWNFLAG_NOMESSAGE) == 0)
-               centerprint(activator, "Sequence completed!");
-       self.enemy = activator;
-       multi_trigger ();
+               self.enemy = activator;
+               multi_trigger ();
+       }
+       else
+       {
+               if(IS_PLAYER(activator) && (self.spawnflags & SPAWNFLAG_NOMESSAGE) == 0)
+               if(self.count >= 4)
+                       Send_Notification(NOTIF_ONE, activator, MSG_CENTER, CENTER_SEQUENCE_COUNTER);
+               else
+                       Send_Notification(NOTIF_ONE, activator, MSG_CENTER, CENTER_SEQUENCE_COUNTER_FEWMORE, self.count);
+       }
 }
 
 void counter_reset()
@@ -516,9 +528,9 @@ float tracebox_hits_trigger_hurt(vector start, vector mi, vector ma, vector end)
 
        for(th = trigger_hurt_first; th; th = th.trigger_hurt_next)
                if(tracebox_hits_box(start, mi, ma, end, th.absmin, th.absmax))
-                       return TRUE;
+                       return true;
 
-       return FALSE;
+       return false;
 }
 
 //////////////////////////////////////////////////////////////
@@ -621,7 +633,7 @@ void trigger_gravity_touch()
 {
        float g;
 
-       if(self.state != TRUE)
+       if(self.state != true)
                return;
 
        EXACTTRIGGER_TOUCH;
@@ -675,12 +687,12 @@ void spawnfunc_trigger_gravity()
        if(self.noise != "")
                precache_sound(self.noise);
 
-       self.state = TRUE;
+       self.state = true;
        IFTARGETED
        {
                self.use = trigger_gravity_use;
                if(self.spawnflags & 2)
-                       self.state = FALSE;
+                       self.state = false;
        }
 }
 
@@ -854,9 +866,9 @@ float pointparticles_SendEntity(entity to, float fl)
        }
        if(fl & 4)
        {
-               WriteCoord(MSG_ENTITY, self.origin_x);
-               WriteCoord(MSG_ENTITY, self.origin_y);
-               WriteCoord(MSG_ENTITY, self.origin_z);
+               WriteCoord(MSG_ENTITY, self.origin.x);
+               WriteCoord(MSG_ENTITY, self.origin.y);
+               WriteCoord(MSG_ENTITY, self.origin.z);
        }
        if(fl & 1)
        {
@@ -865,12 +877,12 @@ float pointparticles_SendEntity(entity to, float fl)
                        WriteShort(MSG_ENTITY, self.modelindex);
                        if(fl & 0x80)
                        {
-                               WriteCoord(MSG_ENTITY, self.mins_x);
-                               WriteCoord(MSG_ENTITY, self.mins_y);
-                               WriteCoord(MSG_ENTITY, self.mins_z);
-                               WriteCoord(MSG_ENTITY, self.maxs_x);
-                               WriteCoord(MSG_ENTITY, self.maxs_y);
-                               WriteCoord(MSG_ENTITY, self.maxs_z);
+                               WriteCoord(MSG_ENTITY, self.mins.x);
+                               WriteCoord(MSG_ENTITY, self.mins.y);
+                               WriteCoord(MSG_ENTITY, self.mins.z);
+                               WriteCoord(MSG_ENTITY, self.maxs.x);
+                               WriteCoord(MSG_ENTITY, self.maxs.y);
+                               WriteCoord(MSG_ENTITY, self.maxs.z);
                        }
                }
                else
@@ -878,9 +890,9 @@ float pointparticles_SendEntity(entity to, float fl)
                        WriteShort(MSG_ENTITY, 0);
                        if(fl & 0x80)
                        {
-                               WriteCoord(MSG_ENTITY, self.maxs_x);
-                               WriteCoord(MSG_ENTITY, self.maxs_y);
-                               WriteCoord(MSG_ENTITY, self.maxs_z);
+                               WriteCoord(MSG_ENTITY, self.maxs.x);
+                               WriteCoord(MSG_ENTITY, self.maxs.y);
+                               WriteCoord(MSG_ENTITY, self.maxs.z);
                        }
                }
                WriteShort(MSG_ENTITY, self.cnt);
@@ -1010,12 +1022,12 @@ float rainsnow_SendEntity(entity to, float sf)
 {
        WriteByte(MSG_ENTITY, ENT_CLIENT_RAINSNOW);
        WriteByte(MSG_ENTITY, self.state);
-       WriteCoord(MSG_ENTITY, self.origin_x + self.mins_x);
-       WriteCoord(MSG_ENTITY, self.origin_y + self.mins_y);
-       WriteCoord(MSG_ENTITY, self.origin_z + self.mins_z);
-       WriteCoord(MSG_ENTITY, self.maxs_x - self.mins_x);
-       WriteCoord(MSG_ENTITY, self.maxs_y - self.mins_y);
-       WriteCoord(MSG_ENTITY, self.maxs_z - self.mins_z);
+       WriteCoord(MSG_ENTITY, self.origin.x + self.mins.x);
+       WriteCoord(MSG_ENTITY, self.origin.y + self.mins.y);
+       WriteCoord(MSG_ENTITY, self.origin.z + self.mins.z);
+       WriteCoord(MSG_ENTITY, self.maxs.x - self.mins.x);
+       WriteCoord(MSG_ENTITY, self.maxs.y - self.mins.y);
+       WriteCoord(MSG_ENTITY, self.maxs.z - self.mins.z);
        WriteShort(MSG_ENTITY, compressShortVector(self.dest));
        WriteShort(MSG_ENTITY, self.count);
        WriteByte(MSG_ENTITY, self.cnt);
@@ -1047,7 +1059,7 @@ void spawnfunc_func_rain()
                self.cnt = 12;
        if (!self.count)
                self.count = 2000;
-       self.count = 0.01 * self.count * (self.size_x / 1024) * (self.size_y / 1024);
+       self.count = 0.01 * self.count * (self.size.x / 1024) * (self.size.y / 1024);
        if (self.count < 1)
                self.count = 1;
        if(self.count > 65535)
@@ -1056,7 +1068,7 @@ void spawnfunc_func_rain()
        self.state = 1; // 1 is rain, 0 is snow
        self.Version = 1;
 
-       Net_LinkEntity(self, FALSE, 0, rainsnow_SendEntity);
+       Net_LinkEntity(self, false, 0, rainsnow_SendEntity);
 }
 
 
@@ -1085,7 +1097,7 @@ void spawnfunc_func_snow()
                self.cnt = 12;
        if (!self.count)
                self.count = 2000;
-       self.count = 0.01 * self.count * (self.size_x / 1024) * (self.size_y / 1024);
+       self.count = 0.01 * self.count * (self.size.x / 1024) * (self.size.y / 1024);
        if (self.count < 1)
                self.count = 1;
        if(self.count > 65535)
@@ -1094,7 +1106,7 @@ void spawnfunc_func_snow()
        self.state = 0; // 1 is rain, 0 is snow
        self.Version = 1;
 
-       Net_LinkEntity(self, FALSE, 0, rainsnow_SendEntity);
+       Net_LinkEntity(self, false, 0, rainsnow_SendEntity);
 }
 
 .float modelscale;
@@ -1114,7 +1126,7 @@ void misc_laser_aim()
                else
                {
                        a = vectoangles(self.enemy.origin - self.origin);
-                       a_x = -a_x;
+                       a_x = -a.x;
                        if(a != self.mangle)
                        {
                                self.mangle = a;
@@ -1233,15 +1245,15 @@ float laser_SendEntity(entity to, float fl)
        WriteByte(MSG_ENTITY, fl);
        if(fl & 1)
        {
-               WriteCoord(MSG_ENTITY, self.origin_x);
-               WriteCoord(MSG_ENTITY, self.origin_y);
-               WriteCoord(MSG_ENTITY, self.origin_z);
+               WriteCoord(MSG_ENTITY, self.origin.x);
+               WriteCoord(MSG_ENTITY, self.origin.y);
+               WriteCoord(MSG_ENTITY, self.origin.z);
        }
        if(fl & 8)
        {
-               WriteByte(MSG_ENTITY, self.colormod_x * 255.0);
-               WriteByte(MSG_ENTITY, self.colormod_y * 255.0);
-               WriteByte(MSG_ENTITY, self.colormod_z * 255.0);
+               WriteByte(MSG_ENTITY, self.colormod.x * 255.0);
+               WriteByte(MSG_ENTITY, self.colormod.y * 255.0);
+               WriteByte(MSG_ENTITY, self.colormod.z * 255.0);
                if(fl & 0x40)
                        WriteByte(MSG_ENTITY, self.alpha * 255.0);
                if(fl & 0x20)
@@ -1256,14 +1268,14 @@ float laser_SendEntity(entity to, float fl)
        {
                if(fl & 0x80)
                {
-                       WriteCoord(MSG_ENTITY, self.enemy.origin_x);
-                       WriteCoord(MSG_ENTITY, self.enemy.origin_y);
-                       WriteCoord(MSG_ENTITY, self.enemy.origin_z);
+                       WriteCoord(MSG_ENTITY, self.enemy.origin.x);
+                       WriteCoord(MSG_ENTITY, self.enemy.origin.y);
+                       WriteCoord(MSG_ENTITY, self.enemy.origin.z);
                }
                else
                {
-                       WriteAngle(MSG_ENTITY, self.mangle_x);
-                       WriteAngle(MSG_ENTITY, self.mangle_y);
+                       WriteAngle(MSG_ENTITY, self.mangle.x);
+                       WriteAngle(MSG_ENTITY, self.mangle.y);
                }
        }
        if(fl & 4)
@@ -1341,7 +1353,7 @@ void spawnfunc_misc_laser()
 
        self.mangle = self.angles;
 
-       Net_LinkEntity(self, FALSE, 0, laser_SendEntity);
+       Net_LinkEntity(self, false, 0, laser_SendEntity);
 
        IFTARGETED
        {
@@ -1778,7 +1790,7 @@ void target_voicescript_next(entity pl)
                        if(pl.voicescript_index < vs.cnt)
                                i = pl.voicescript_index * 2;
                        else if(n > vs.cnt * 2)
-                               i = mod(pl.voicescript_index - vs.cnt, (n - vs.cnt * 2 - 1) / 2) * 2 + vs.cnt * 2 + 1;
+                               i = ((pl.voicescript_index - vs.cnt) % ((n - vs.cnt * 2 - 1) / 2)) * 2 + vs.cnt * 2 + 1;
                        else
                                i = -1;
 
@@ -1910,7 +1922,7 @@ string trigger_magicear_processmessage(entity ear, entity source, float teamsay,
        entity oldself;
        string savemessage;
 
-       magicear_matched = FALSE;
+       magicear_matched = false;
 
        dotrigger = ((IS_PLAYER(source)) && (source.deadflag == DEAD_NO) && ((ear.radius == 0) || (vlen(source.origin - ear.origin) <= ear.radius)));
        domatch = ((ear.spawnflags & 32) || dotrigger);
@@ -1924,10 +1936,10 @@ string trigger_magicear_processmessage(entity ear, entity source, float teamsay,
                if (!(ear.spawnflags & 256))
                        return msgin;
 
-               if(!W_Tuba_HasPlayed(source, ear.message, ear.movedir_x, !(ear.spawnflags & 512), ear.movedir_y, ear.movedir_z))
+               if(!W_Tuba_HasPlayed(source, ear.message, ear.movedir.x, !(ear.spawnflags & 512), ear.movedir.y, ear.movedir.z))
                        return msgin;
 
-               magicear_matched = TRUE;
+               magicear_matched = true;
 
                if(dotrigger)
                {
@@ -2018,7 +2030,7 @@ string trigger_magicear_processmessage(entity ear, entity source, float teamsay,
        if(matchstart == -1) // no match
                return msgin;
 
-       magicear_matched = TRUE;
+       magicear_matched = true;
 
        if(dotrigger)
        {
@@ -2059,9 +2071,9 @@ string trigger_magicear_processmessage_forallears(entity source, float teamsay,
        for(ear = magicears; ear; ear = ear.enemy)
        {
                msgout = trigger_magicear_processmessage(ear, source, teamsay, privatesay, msgin);
-               if (!(ear.spawnflags & 64))
-                       if(magicear_matched)
-                               return msgout;
+               if(!(ear.spawnflags & 64))
+               if(magicear_matched)
+                       return msgout;
                msgin = msgout;
        }
        return msgin;