2 void Teleport_Touch (void)
6 if (other.classname != "player") // FIXME: Make missiles firable through the teleport too
9 // Make teleport effect where the player left
10 sound (other, CHAN_ITEM, "misc/teleport.wav", 1, ATTN_NORM);
11 te_teleport (other.origin);
13 dest = find (world, targetname, self.target);
15 objerror ("Teleporter with nonexistant target");
17 // Make teleport effect where the player arrived
18 sound (other, CHAN_ITEM, "misc/teleport.wav", 1, ATTN_NORM);
19 makevectors (dest.mangle);
20 te_teleport (dest.origin + v_forward * 32);
22 // Relocate the player
23 //setorigin (other, dest.origin);
24 setorigin (other, dest.origin + '0 0 1' * (1 - other.mins_z - 24));
25 other.angles = dest.mangle;
26 other.fixangle = TRUE;
28 other.velocity = '0 0 0';
30 other.flags = other.flags - (other.flags & FL_ONGROUND);
33 void info_teleport_destination (void)
35 self.mangle = self.angles;
36 self.angles = '0 0 0';
38 //setorigin (self, self.origin + '0 0 27'); // To fix a mappers' habit as old as Quake
39 setorigin (self, self.origin);
42 objerror ("Teleport destination without a targetname");
45 void misc_teleporter_dest (void)
47 info_teleport_destination();
50 void trigger_teleport (void)
52 self.angles = '0 0 0';
54 self.solid = SOLID_TRIGGER;
55 self.movetype = MOVETYPE_NONE;
57 setmodel (self, self.model);
62 self.touch = Teleport_Touch;
65 objerror ("Teleporter with no target");