+#include "magicear.qh"
#ifdef SVQC
float magicear_matched;
-float W_Tuba_HasPlayed(entity pl, string melody, float instrument, float ignorepitch, float mintempo, float maxtempo);
+float W_Tuba_HasPlayed(entity pl, .entity weaponentity, string melody, float instrument, float ignorepitch, float mintempo, float maxtempo);
string trigger_magicear_processmessage(entity ear, entity source, float teamsay, entity privatesay, string msgin)
-{SELFPARAM();
+{
float domatch, dotrigger, matchstart, l;
string s, msg;
string savemessage;
if (!(ear.spawnflags & 256))
return msgin;
- if(!W_Tuba_HasPlayed(source, ear.message, ear.movedir_x, !(ear.spawnflags & 512), ear.movedir_y, ear.movedir_z))
- return msgin;
+ for(int slot = 0; slot < MAX_WEAPONSLOTS; ++slot)
+ {
+ .entity weaponentity = weaponentities[slot];
+ if(!W_Tuba_HasPlayed(source, weaponentity, ear.message, ear.movedir_x, !(ear.spawnflags & 512), ear.movedir_y, ear.movedir_z))
+ return msgin;
+ }
magicear_matched = true;
if(dotrigger)
{
- savemessage = self.message;
- self.message = string_null;
+ savemessage = ear.message;
+ ear.message = string_null;
SUB_UseTargets(ear, source, NULL);
- self.message = savemessage;
+ ear.message = savemessage;
}
if(ear.netname != "")
if(dotrigger)
{
- savemessage = self.message;
- self.message = string_null;
+ savemessage = ear.message;
+ ear.message = string_null;
SUB_UseTargets(ear, source, NULL);
- self.message = savemessage;
+ ear.message = savemessage;
}
if(ear.spawnflags & 16)
spawnfunc(trigger_magicear)
{
- self.enemy = magicears;
- magicears = self;
+ this.enemy = magicears;
+ magicears = this;
// actually handled in "say" processing
// spawnflags:
// movedir:
// for spawnflags 256, defines 'instrument+1 mintempo maxtempo' (zero component doesn't matter)
- self.movedir_x -= 1; // map to tuba instrument numbers
+ this.movedir_x -= 1; // map to tuba instrument numbers
}
#endif