]> git.xonotic.org Git - xonotic/xonotic-data.pk3dir.git/blobdiff - qcsrc/client/Main.qc
Various fixes for spawnpoint effects
[xonotic/xonotic-data.pk3dir.git] / qcsrc / client / Main.qc
index fb3106c29985c1a0070f46f3d5b0f8a393bb40e7..930ea1b76d1be99eee2b0ac94f7b8eac3c221b33 100644 (file)
@@ -704,27 +704,17 @@ void Spawn_Draw(void)
 void Ent_ReadSpawnPoint(float is_new) // entity for spawnpoint
 {
        float teamnum = (ReadByte() - 1);
-       self.origin_x = ReadShort();
-       self.origin_y = ReadShort();
-       self.origin_z = ReadShort();
+       vector spn_origin;
+       spn_origin_x = ReadShort();
+       spn_origin_y = ReadShort();
+       spn_origin_z = ReadShort();
        
        if(is_new)
        {
+               self.origin = spn_origin;
                setsize(self, PL_MIN, PL_MAX);
                droptofloor();
 
-               if(autocvar_cl_spawn_point_particles)
-               {
-                       switch(teamnum)
-                       {
-                               case NUM_TEAM_1: self.cnt = particleeffectnum("spawn_point_red"); break;
-                               case NUM_TEAM_2: self.cnt = particleeffectnum("spawn_point_blue"); break;
-                               case NUM_TEAM_3: self.cnt = particleeffectnum("spawn_point_yellow"); break;
-                               case NUM_TEAM_4: self.cnt = particleeffectnum("spawn_point_pink"); break;
-                               default: self.cnt = particleeffectnum("spawn_point_neutral"); break;
-                       }
-                       self.draw = Spawn_Draw;
-               }
                /*if(autocvar_cl_spawn_point_model) // needs a model first
                {
                        self.mdl = "models/spawnpoint.md3";
@@ -735,6 +725,23 @@ void Ent_ReadSpawnPoint(float is_new) // entity for spawnpoint
                        //self.movetype = MOVETYPE_NOCLIP;
                        //self.draw = Spawn_Draw;
                }*/
+               if(autocvar_cl_spawn_point_particles)
+               {
+                       if(teamplay)
+                       {
+                               switch(teamnum)
+                               {
+                                       case NUM_TEAM_1: self.cnt = particleeffectnum("spawn_point_red"); break;
+                                       case NUM_TEAM_2: self.cnt = particleeffectnum("spawn_point_blue"); break;
+                                       case NUM_TEAM_3: self.cnt = particleeffectnum("spawn_point_yellow"); break;
+                                       case NUM_TEAM_4: self.cnt = particleeffectnum("spawn_point_pink"); break;
+                                       default: self.cnt = particleeffectnum("spawn_point_neutral"); break;
+                               }
+                       }
+                       else { self.cnt = particleeffectnum("spawn_point_neutral"); }
+                       
+                       self.draw = Spawn_Draw;
+               }
        }
 
        //print(sprintf("Ent_ReadSpawnPoint(is_new = %d); origin = %s, team = %d, effect = %d\n", is_new, vtos(self.origin), teamnum, self.cnt));
@@ -757,10 +764,6 @@ void Ent_ReadSpawnEvent(float is_new)
                {
                        float teamnum = GetPlayerColor(entnum - 1);
 
-                       if(autocvar_cl_spawn_event_sound)
-                       {
-                               sound(self, CH_TRIGGER, "misc/spawn.wav", VOL_BASE, ATTN_NORM);
-                       }
                        if(autocvar_cl_spawn_event_particles)
                        {
                                switch(teamnum)
@@ -772,6 +775,10 @@ void Ent_ReadSpawnEvent(float is_new)
                                        default: pointparticles(particleeffectnum("spawn_event_neutral"), self.origin, '0 0 0', 1); break;
                                }
                        }
+                       if(autocvar_cl_spawn_event_sound)
+                       {
+                               sound(self, CH_TRIGGER, "misc/spawn.wav", VOL_BASE, ATTN_NORM);
+                       }
                }
        }