]> git.xonotic.org Git - xonotic/xonotic-data.pk3dir.git/blob - qcsrc/common/triggers/func/ladder.qc
Move more stuff around
[xonotic/xonotic-data.pk3dir.git] / qcsrc / common / triggers / func / ladder.qc
1 void func_ladder_touch()
2 {
3 #ifdef SVQC
4         if (!other.iscreature)
5                 return;
6         if (other.vehicle_flags & VHF_ISVEHICLE)
7                 return;
8 #endif
9 #ifdef CSQC
10         if(other.classname != "csqcmodel")
11                 return;
12 #endif
13
14         EXACTTRIGGER_TOUCH;
15
16         other.ladder_time = time + 0.1;
17         other.ladder_entity = self;
18 }
19
20 #ifdef SVQC
21 float func_ladder_send(entity to, float sf)
22 {
23         WriteByte(MSG_ENTITY, ENT_CLIENT_LADDER);
24
25         WriteString(MSG_ENTITY, self.classname);
26         WriteByte(MSG_ENTITY, self.skin);
27         WriteByte(MSG_ENTITY, self.speed);
28
29         trigger_common_write(false);
30
31         return true;
32 }
33
34 void func_ladder_link()
35 {
36         Net_LinkEntity(self, false, 0, func_ladder_send);
37 }
38
39 void spawnfunc_func_ladder()
40 {
41         EXACTTRIGGER_INIT;
42         self.touch = func_ladder_touch;
43
44         func_ladder_link();
45 }
46
47 void spawnfunc_func_water()
48 {
49         EXACTTRIGGER_INIT;
50         self.touch = func_ladder_touch;
51
52         func_ladder_link();
53 }
54
55 #elif defined(CSQC)
56 .float speed;
57
58 void ent_func_ladder()
59 {
60         self.classname = strzone(ReadString());
61         self.skin = ReadByte();
62         self.speed = ReadByte();
63
64         trigger_common_read(false);
65
66         self.solid = SOLID_TRIGGER;
67         self.draw = trigger_draw_generic;
68         self.trigger_touch = func_ladder_touch;
69         self.drawmask = MASK_NORMAL;
70         self.move_time = time;
71         self.entremove = trigger_remove_generic;
72 }
73 #endif