]> de.git.xonotic.org Git - xonotic/xonotic-data.pk3dir.git/blob - qcsrc/server/item_key.qc
item_key initial commit
[xonotic/xonotic-data.pk3dir.git] / qcsrc / server / item_key.qc
1 /*
2 Touch handler.
3 */
4 void item_key_touch(void) {
5         if (other.classname != "player")
6                 return;
7                 
8         // player already picked up this key
9         if (other.itemkeys & self.itemkeys)
10                 return;
11         
12         other.itemkeys |= self.itemkeys;
13         
14         if (self.message)
15                 centerprint(other, self.message);
16 }
17
18 /*
19 Spawn a key with given model, key code and color.
20 */
21 void spawn_item_key(float key_code) {
22         self.itemkeys = key_code;
23         precache_model(self.model);
24         
25         if(self.spawnflags & 1)
26                 self.noalign = 1;
27         if (self.noalign)
28                 self.movetype = MOVETYPE_NONE;
29         else
30                 self.movetype = MOVETYPE_TOSS;
31                 
32         setsize(self, '-16 -16 -24', '16 16 32');
33         setmodel(self, self.model);
34         self.modelflags |= MF_ROTATE;
35         
36         if (!self.noalign)
37         {
38                 // first nudge it off the floor a little bit to avoid math errors
39                 setorigin(self, self.origin + '0 0 1');
40                 // note droptofloor returns FALSE if stuck/or would fall too far
41                 droptofloor();
42         }
43
44         self.touch = item_key_touch;
45 }
46
47
48 /*
49 Spawn silver key.
50 */
51 void spawnfunc_item_key1(void) {
52         if (!self.model)
53                 self.model = "models/keys/key.md3";
54         
55         if (!self.colormod)
56                 self.colormod = '.9 .9 .9';
57                         
58         if (!self.message)
59                 self.message = "You've picked up the silver key!";
60                 
61         spawn_item_key(KEYS_SILVER_KEY);
62 }
63
64 /*
65 Spawn gold key.
66 */
67 void spawnfunc_item_key2(void) {
68         if (!self.model)
69                 self.model = "models/keys/key.md3";
70                 
71         if (!self.colormod)
72                 self.colormod = '1 .9 0';
73         
74         if (!self.message)
75                 self.message = "You've picked up the gold key!";
76                 
77         spawn_item_key(KEYS_GOLD_KEY);
78 }
79
80