1 #include "teleport_dest.qh"
2 REGISTER_NET_LINKED(ENT_CLIENT_TELEPORT_DEST)
6 bool teleport_dest_send(entity this, entity to, int sf)
8 WriteHeader(MSG_ENTITY, ENT_CLIENT_TELEPORT_DEST);
9 WriteByte(MSG_ENTITY, sf);
13 WriteByte(MSG_ENTITY, this.cnt);
14 WriteCoord(MSG_ENTITY, this.speed);
15 WriteString(MSG_ENTITY, this.targetname);
16 WriteCoord(MSG_ENTITY, this.origin_x);
17 WriteCoord(MSG_ENTITY, this.origin_y);
18 WriteCoord(MSG_ENTITY, this.origin_z);
20 WriteAngle(MSG_ENTITY, this.mangle_x);
21 WriteAngle(MSG_ENTITY, this.mangle_y);
22 WriteAngle(MSG_ENTITY, this.mangle_z);
28 void teleport_dest_link(entity this)
30 Net_LinkEntity(this, false, 0, teleport_dest_send);
31 this.SendFlags |= 1; // update
34 spawnfunc(info_teleport_destination)
36 this.classname = "info_teleport_destination";
38 this.mangle = this.angles;
39 this.angles = '0 0 0';
41 //setorigin(this, this.origin + '0 0 27'); // To fix a mappers' habit as old as Quake
42 setorigin(this, this.origin);
48 objerror (this, "^3Teleport destination without a targetname");
50 teleport_dest_link(this);
53 spawnfunc(misc_teleporter_dest)
55 spawnfunc_info_teleport_destination(this);
58 spawnfunc(target_teleporter)
60 spawnfunc_info_teleport_destination(this);
65 void teleport_dest_remove(entity this)
68 //strunzone(this.classname);
69 //this.classname = string_null;
72 strunzone(this.targetname);
73 this.targetname = string_null;
76 NET_HANDLE(ENT_CLIENT_TELEPORT_DEST, bool isnew)
82 this.classname = "info_teleport_destination";
83 this.cnt = ReadByte();
84 this.speed = ReadCoord();
85 this.targetname = strzone(ReadString());
86 this.origin_x = ReadCoord();
87 this.origin_y = ReadCoord();
88 this.origin_z = ReadCoord();
90 this.mangle_x = ReadAngle();
91 this.mangle_y = ReadAngle();
92 this.mangle_z = ReadAngle();
94 setorigin(this, this.origin);
96 this.drawmask = MASK_NORMAL;
97 this.entremove = teleport_dest_remove;