move common functions with no home to common.qc
This commit is contained in:
parent
a2b4ae8a15
commit
d7ef811865
|
@ -1,6 +1,7 @@
|
|||
progs.dat
|
||||
|
||||
source/defs.qc
|
||||
source/common.qc
|
||||
|
||||
source/fight.qc
|
||||
source/subs.qc
|
||||
|
|
77
source/ai.qc
77
source/ai.qc
|
@ -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
82
source/common.qc
Normal 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
|
|
@ -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;
|
||||
|
|
|
@ -16,10 +16,6 @@ void() W_Precache = {
|
|||
precache_sound("weapons/shotgn2.wav"); // super shotgun
|
||||
};
|
||||
|
||||
float() crandom = {
|
||||
return 2 * (random() - 0.5);
|
||||
};
|
||||
|
||||
/*
|
||||
================
|
||||
W_FireAxe
|
||||
|
|
Loading…
Reference in New Issue
Block a user