move common functions with no home to common.qc

master
an 2019-09-18 10:16:58 -04:00
parent a2b4ae8a15
commit d7ef811865
5 changed files with 83 additions and 86 deletions

View File

@ -1,6 +1,7 @@
progs.dat
source/defs.qc
source/common.qc
source/fight.qc
source/subs.qc

View File

@ -90,83 +90,6 @@ void() t_movetarget = {
};
//============================================================================
/*
=============
range
returns the range catagorization of an entity reletive to self
0 melee range, will become hostile even if back is turned
1 visibility and infront, or visibility and show hostile
2 infront and show hostile
3 only triggered by damage
=============
*/
float(entity targ) range = {
vector spot1, spot2;
float r;
spot1 = self.origin + self.view_ofs;
spot2 = targ.origin + targ.view_ofs;
r = vlen(spot1 - spot2);
if(r < 120) {
return RANGE_MELEE;
}
if(r < 500) {
return RANGE_NEAR;
}
if(r < 1000) {
return RANGE_MID;
}
return RANGE_FAR;
};
/*
=============
visible
returns 1 if the entity is visible to self, even if not infront()
=============
*/
float(entity targ) visible = {
vector spot1, spot2;
spot1 = self.origin + self.view_ofs;
spot2 = targ.origin + targ.view_ofs;
traceline(spot1, spot2, TRUE, self); // see through other monsters
if(trace_inopen && trace_inwater) {
return FALSE; // sight line crossed contents
}
if(trace_fraction == 1) {
return TRUE;
}
return FALSE;
};
/*
=============
infront
returns 1 if the entity is in front(in sight) of self
=============
*/
float(entity targ) infront = {
vector vec;
float dot;
makevectors(self.angles);
vec = normalize(targ.origin - self.origin);
dot = vec * v_forward;
if(dot > 0.3) {
return TRUE;
}
return FALSE;
};
//============================================================================
void() HuntTarget = {

82
source/common.qc Normal file
View File

@ -0,0 +1,82 @@
// common.qc: common functions
float() crandom = {
return 2 * (random() - 0.5);
};
/*
=============
range
returns the range catagorization of an entity reletive to self
0 melee range, will become hostile even if back is turned
1 visibility and infront, or visibility and show hostile
2 infront and show hostile
3 only triggered by damage
=============
*/
float(entity targ) range = {
vector spot1, spot2;
float r;
spot1 = self.origin + self.view_ofs;
spot2 = targ.origin + targ.view_ofs;
r = vlen(spot1 - spot2);
if(r < 120) {
return RANGE_MELEE;
}
if(r < 500) {
return RANGE_NEAR;
}
if(r < 1000) {
return RANGE_MID;
}
return RANGE_FAR;
};
/*
=============
visible
returns 1 if the entity is visible to self, even if not infront()
=============
*/
float(entity targ) visible = {
vector spot1, spot2;
spot1 = self.origin + self.view_ofs;
spot2 = targ.origin + targ.view_ofs;
traceline(spot1, spot2, TRUE, self); // see through other monsters
if(trace_inopen && trace_inwater) {
return FALSE; // sight line crossed contents
}
if(trace_fraction == 1) {
return TRUE;
}
return FALSE;
};
/*
=============
infront
returns 1 if the entity is in front(in sight) of self
=============
*/
float(entity targ) infront = {
vector vec;
float dot;
makevectors(self.angles);
vec = normalize(targ.origin - self.origin);
dot = vec * v_forward;
if(dot > 0.3) {
return TRUE;
}
return FALSE;
};
// EOF

View File

@ -676,12 +676,7 @@ void() ShalHome;
void() ShalMissile;
void() ShalMissileTouch;
float() crandom;
float(entity targ) infront;
float(entity targ) range;
float(entity targ) visible;
float(entity targ, entity attacker) SameTeam;
float(float v) anglemod;
void() DecodeLevelParms;
void(entity ent) CopyToBodyQue;
void() InitBodyQue;

View File

@ -16,10 +16,6 @@ void() W_Precache = {
precache_sound("weapons/shotgn2.wav"); // super shotgun
};
float() crandom = {
return 2 * (random() - 0.5);
};
/*
================
W_FireAxe