10 // when triggered, the music is overridden for activator until lifetime (or forever, if lifetime is 0)
11 // when targetname is not set, THIS ONE is default
12 void target_music_sendto(float to, float is)
14 WriteByte(to, SVC_TEMPENTITY);
15 WriteByte(to, TE_CSQC_TARGET_MUSIC);
16 WriteShort(to, num_for_edict(self));
17 WriteByte(to, self.volume * 255.0 * is);
18 WriteByte(to, self.fade_time * 16.0);
19 WriteByte(to, self.fade_rate * 16.0);
20 WriteByte(to, self.lifetime);
21 WriteString(to, self.noise);
23 void target_music_reset()
25 if(self.targetname == "")
26 target_music_sendto(MSG_ALL, 1);
28 void target_music_use()
32 if(IS_REAL_CLIENT(activator))
34 msg_entity = activator;
35 target_music_sendto(MSG_ONE, 1);
38 FOR_EACH_SPEC(head) if(head.enemy == activator) { msg_entity = head; target_music_sendto(MSG_ONE, 1); }
40 void spawnfunc_target_music()
42 self.use = target_music_use;
43 self.reset = target_music_reset;
46 if(self.targetname == "")
47 target_music_sendto(MSG_INIT, 1);
49 target_music_sendto(MSG_INIT, 0);
51 void TargetMusic_RestoreGame()
53 for(self = world; (self = find(self, classname, "target_music")); )
55 if(self.targetname == "")
56 target_music_sendto(MSG_INIT, 1);
58 target_music_sendto(MSG_INIT, 0);
68 // when triggered, it is disabled/enabled for everyone
69 float trigger_music_SendEntity(entity to, float sf)
71 WriteByte(MSG_ENTITY, ENT_CLIENT_TRIGGER_MUSIC);
75 WriteByte(MSG_ENTITY, sf);
78 WriteCoord(MSG_ENTITY, self.origin_x);
79 WriteCoord(MSG_ENTITY, self.origin_y);
80 WriteCoord(MSG_ENTITY, self.origin_z);
84 if(self.model != "null")
86 WriteShort(MSG_ENTITY, self.modelindex);
87 WriteCoord(MSG_ENTITY, self.mins_x);
88 WriteCoord(MSG_ENTITY, self.mins_y);
89 WriteCoord(MSG_ENTITY, self.mins_z);
90 WriteCoord(MSG_ENTITY, self.maxs_x);
91 WriteCoord(MSG_ENTITY, self.maxs_y);
92 WriteCoord(MSG_ENTITY, self.maxs_z);
96 WriteShort(MSG_ENTITY, 0);
97 WriteCoord(MSG_ENTITY, self.maxs_x);
98 WriteCoord(MSG_ENTITY, self.maxs_y);
99 WriteCoord(MSG_ENTITY, self.maxs_z);
101 WriteByte(MSG_ENTITY, self.volume * 255.0);
102 WriteByte(MSG_ENTITY, self.fade_time * 16.0);
103 WriteByte(MSG_ENTITY, self.fade_rate * 16.0);
104 WriteString(MSG_ENTITY, self.noise);
108 void trigger_music_reset()
110 self.cnt = !(self.spawnflags & 1);
111 self.SendFlags |= 0x80;
113 void trigger_music_use()
115 self.cnt = !self.cnt;
116 self.SendFlags |= 0x80;
118 void spawnfunc_trigger_music()
121 setmodel(self, self.model);
126 setorigin(self, self.origin + self.mins);
127 setsize(self, '0 0 0', self.maxs - self.mins);
129 trigger_music_reset();
131 self.use = trigger_music_use;
132 self.reset = trigger_music_reset;
134 Net_LinkEntity(self, FALSE, 0, trigger_music_SendEntity);