diff --git a/progs.src b/progs.src index 01332da..0dbf056 100644 --- a/progs.src +++ b/progs.src @@ -1,6 +1,7 @@ progs.dat source/defs.qc +source/common.qc source/fight.qc source/subs.qc diff --git a/source/ai.qc b/source/ai.qc index bffb071..18da6ab 100644 --- a/source/ai.qc +++ b/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 = { diff --git a/source/common.qc b/source/common.qc new file mode 100644 index 0000000..980a924 --- /dev/null +++ b/source/common.qc @@ -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 diff --git a/source/defs.qc b/source/defs.qc index b77d72c..d279e1b 100644 --- a/source/defs.qc +++ b/source/defs.qc @@ -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; diff --git a/source/weapons.qc b/source/weapons.qc index d6eb049..bc1724c 100644 --- a/source/weapons.qc +++ b/source/weapons.qc @@ -16,10 +16,6 @@ void() W_Precache = { precache_sound("weapons/shotgn2.wav"); // super shotgun }; -float() crandom = { - return 2 * (random() - 0.5); -}; - /* ================ W_FireAxe