]> de.git.xonotic.org Git - xonotic/xonotic-data.pk3dir.git/blob - qcsrc/common/triggers/func/ladder.qc
Merge branch 'master' into Mario/bulldozer
[xonotic/xonotic-data.pk3dir.git] / qcsrc / common / triggers / func / ladder.qc
1 REGISTER_NET_LINKED(ENT_CLIENT_LADDER)
2
3 void func_ladder_touch()
4 {SELFPARAM();
5 #ifdef SVQC
6         if (!other.iscreature)
7                 return;
8         if(IS_VEHICLE(other))
9                 return;
10 #endif
11 #ifdef CSQC
12         if(other.classname != "csqcmodel")
13                 return;
14 #endif
15
16         EXACTTRIGGER_TOUCH;
17
18         other.ladder_time = time + 0.1;
19         other.ladder_entity = self;
20 }
21
22 #ifdef SVQC
23 bool func_ladder_send(entity this, entity to, float sf)
24 {
25         WriteHeader(MSG_ENTITY, ENT_CLIENT_LADDER);
26
27         WriteString(MSG_ENTITY, self.classname);
28         WriteByte(MSG_ENTITY, self.skin);
29         WriteByte(MSG_ENTITY, self.speed);
30         WriteString(MSG_ENTITY, self.mdl);
31
32         trigger_common_write(false);
33
34         return true;
35 }
36
37 void func_ladder_link()
38 {
39         //self.SendEntity = func_ladder_send;
40         //self.SendFlags = 0xFFFFFF;
41         //self.model = "null";
42 }
43
44 spawnfunc(func_ladder)
45 {
46         self.mdl = self.model;
47         EXACTTRIGGER_INIT;
48         self.touch = func_ladder_touch;
49
50         func_ladder_link();
51 }
52
53 spawnfunc(func_water)
54 {
55         self.mdl = self.model;
56         EXACTTRIGGER_INIT;
57         self.touch = func_ladder_touch;
58
59         func_ladder_link();
60 }
61
62 #elif defined(CSQC)
63 .float speed;
64
65 NET_HANDLE(ENT_CLIENT_LADDER, bool isnew)
66 {
67         self.classname = strzone(ReadString());
68         self.skin = ReadByte();
69         self.speed = ReadByte();
70         self.model = strzone(ReadString());
71
72         trigger_common_read(false);
73
74         return = true;
75
76         self.mins = self.maxs = '0 0 0';
77
78         self.solid = SOLID_TRIGGER;
79         self.draw = trigger_draw_generic;
80         self.trigger_touch = func_ladder_touch;
81         self.drawmask = MASK_NORMAL;
82         self.move_time = time;
83         self.entremove = trigger_remove_generic;
84
85         //precache_model(self.mdl);
86         EXACTTRIGGER_INIT;
87 }
88 #endif