mirror of
https://github.com/id-Software/quake-rerelease-qc.git
synced 2024-11-10 07:22:06 +00:00
231 lines
7.3 KiB
C++
231 lines
7.3 KiB
C++
|
/* Copyright (C) 1996-2022 id Software LLC
|
||
|
|
||
|
This program is free software; you can redistribute it and/or modify
|
||
|
it under the terms of the GNU General Public License as published by
|
||
|
the Free Software Foundation; either version 2 of the License, or
|
||
|
(at your option) any later version.
|
||
|
|
||
|
This program is distributed in the hope that it will be useful,
|
||
|
but WITHOUT ANY WARRANTY; without even the implied warranty of
|
||
|
MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
|
||
|
GNU General Public License for more details.
|
||
|
|
||
|
You should have received a copy of the GNU General Public License
|
||
|
along with this program; if not, write to the Free Software
|
||
|
Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA
|
||
|
|
||
|
See file, 'COPYING', for details.
|
||
|
*/
|
||
|
|
||
|
//=========================
|
||
|
//
|
||
|
// Hipnotic Sub-routines
|
||
|
//
|
||
|
//=========================
|
||
|
|
||
|
|
||
|
//=========================
|
||
|
//
|
||
|
// SUB_CopyEntity
|
||
|
//
|
||
|
//=========================
|
||
|
|
||
|
void (entity srcent, entity destent) SUB_CopyEntity =
|
||
|
{
|
||
|
destent.modelindex=srcent.modelindex;
|
||
|
destent.absmin=srcent.absmin;
|
||
|
destent.absmax=srcent.absmax;
|
||
|
destent.ltime=srcent.ltime;
|
||
|
destent.movetype=srcent.movetype;
|
||
|
destent.solid=srcent.solid;
|
||
|
destent.origin=srcent.origin;
|
||
|
destent.oldorigin=srcent.oldorigin;
|
||
|
destent.velocity=srcent.velocity;
|
||
|
destent.angles=srcent.angles;
|
||
|
destent.avelocity=srcent.avelocity;
|
||
|
destent.punchangle=srcent.punchangle;
|
||
|
destent.classname=srcent.classname;
|
||
|
destent.model=srcent.model;
|
||
|
destent.frame=srcent.frame;
|
||
|
destent.skin=srcent.skin;
|
||
|
destent.effects=srcent.effects;
|
||
|
destent.mins=srcent.mins;
|
||
|
destent.maxs=srcent.maxs;
|
||
|
destent.size=srcent.size;
|
||
|
destent.touch=srcent.touch;
|
||
|
destent.use=srcent.use;
|
||
|
destent.think=srcent.think;
|
||
|
destent.blocked=srcent.blocked;
|
||
|
destent.nextthink=srcent.nextthink;
|
||
|
destent.groundentity=srcent.groundentity;
|
||
|
destent.health=srcent.health;
|
||
|
destent.frags=srcent.frags;
|
||
|
destent.weapon=srcent.weapon;
|
||
|
destent.weaponmodel=srcent.weaponmodel;
|
||
|
destent.weaponframe=srcent.weaponframe;
|
||
|
destent.currentammo=srcent.currentammo;
|
||
|
destent.ammo_shells=srcent.ammo_shells;
|
||
|
destent.ammo_nails=srcent.ammo_nails;
|
||
|
destent.ammo_rockets=srcent.ammo_rockets;
|
||
|
destent.ammo_cells=srcent.ammo_cells;
|
||
|
destent.items=srcent.items;
|
||
|
destent.takedamage=srcent.takedamage;
|
||
|
destent.chain=srcent.chain;
|
||
|
destent.deadflag=srcent.deadflag;
|
||
|
destent.view_ofs=srcent.view_ofs;
|
||
|
destent.button0=srcent.button0;
|
||
|
destent.button1=srcent.button1;
|
||
|
destent.button2=srcent.button2;
|
||
|
destent.impulse=srcent.impulse;
|
||
|
destent.fixangle=srcent.fixangle;
|
||
|
destent.v_angle=srcent.v_angle;
|
||
|
destent.idealpitch=srcent.idealpitch;
|
||
|
destent.netname=srcent.netname;
|
||
|
destent.enemy=srcent.enemy;
|
||
|
destent.flags=srcent.flags;
|
||
|
destent.colormap=srcent.colormap;
|
||
|
destent.team=srcent.team;
|
||
|
destent.max_health=srcent.max_health;
|
||
|
destent.teleport_time=srcent.teleport_time;
|
||
|
destent.armortype=srcent.armortype;
|
||
|
destent.armorvalue=srcent.armorvalue;
|
||
|
destent.waterlevel=srcent.waterlevel;
|
||
|
destent.watertype=srcent.watertype;
|
||
|
destent.ideal_yaw=srcent.ideal_yaw;
|
||
|
destent.yaw_speed=srcent.yaw_speed;
|
||
|
destent.aiment=srcent.aiment;
|
||
|
destent.goalentity=srcent.goalentity;
|
||
|
destent.spawnflags=srcent.spawnflags;
|
||
|
destent.target=srcent.target;
|
||
|
destent.targetname=srcent.targetname;
|
||
|
destent.dmg_take=srcent.dmg_take;
|
||
|
destent.dmg_save=srcent.dmg_save;
|
||
|
destent.dmg_inflictor=srcent.dmg_inflictor;
|
||
|
destent.owner=srcent.owner;
|
||
|
destent.movedir=srcent.movedir;
|
||
|
destent.message=srcent.message;
|
||
|
destent.sounds=srcent.sounds;
|
||
|
destent.noise=srcent.noise;
|
||
|
destent.noise1=srcent.noise1;
|
||
|
destent.noise2=srcent.noise2;
|
||
|
destent.noise3=srcent.noise3;
|
||
|
destent.wad=srcent.wad;
|
||
|
destent.map=srcent.map;
|
||
|
destent.worldtype=srcent.worldtype;
|
||
|
destent.killtarget=srcent.killtarget;
|
||
|
destent.light_lev=srcent.light_lev;
|
||
|
destent.style=srcent.style;
|
||
|
destent.th_stand=srcent.th_stand;
|
||
|
destent.th_walk=srcent.th_walk;
|
||
|
destent.th_run=srcent.th_run;
|
||
|
destent.th_missile=srcent.th_missile;
|
||
|
destent.th_melee=srcent.th_melee;
|
||
|
destent.th_pain=srcent.th_pain;
|
||
|
destent.th_die=srcent.th_die;
|
||
|
destent.th_turn=srcent.th_turn;
|
||
|
destent.oldenemy=srcent.oldenemy;
|
||
|
destent.speed=srcent.speed;
|
||
|
destent.lefty=srcent.lefty;
|
||
|
destent.search_time=srcent.search_time;
|
||
|
destent.attack_state=srcent.attack_state;
|
||
|
destent.walkframe=srcent.walkframe;
|
||
|
destent.attack_finished=srcent.attack_finished;
|
||
|
destent.pain_finished=srcent.pain_finished;
|
||
|
destent.invincible_finished=srcent.invincible_finished;
|
||
|
destent.invisible_finished=srcent.invisible_finished;
|
||
|
destent.super_damage_finished=srcent.super_damage_finished;
|
||
|
destent.radsuit_finished=srcent.radsuit_finished;
|
||
|
destent.invincible_time=srcent.invincible_time;
|
||
|
destent.invincible_sound=srcent.invincible_sound;
|
||
|
destent.invisible_time=srcent.invisible_time;
|
||
|
destent.invisible_sound=srcent.invisible_sound;
|
||
|
destent.super_time=srcent.super_time;
|
||
|
destent.super_sound=srcent.super_sound;
|
||
|
destent.rad_time=srcent.rad_time;
|
||
|
destent.fly_sound=srcent.fly_sound;
|
||
|
destent.axhitme=srcent.axhitme;
|
||
|
destent.show_hostile=srcent.show_hostile;
|
||
|
destent.jump_flag=srcent.jump_flag;
|
||
|
destent.swim_flag=srcent.swim_flag;
|
||
|
destent.air_finished=srcent.air_finished;
|
||
|
destent.bubble_count=srcent.bubble_count;
|
||
|
destent.deathtype=srcent.deathtype;
|
||
|
destent.mdl=srcent.mdl;
|
||
|
destent.mangle=srcent.mangle;
|
||
|
destent.oldorigin=srcent.oldorigin;
|
||
|
destent.t_length=srcent.t_length;
|
||
|
destent.t_width=srcent.t_width;
|
||
|
destent.dest=srcent.dest;
|
||
|
destent.dest1=srcent.dest1;
|
||
|
destent.dest2=srcent.dest2;
|
||
|
destent.wait=srcent.wait;
|
||
|
destent.delay=srcent.delay;
|
||
|
destent.trigger_field=srcent.trigger_field;
|
||
|
destent.noise4=srcent.noise4;
|
||
|
destent.pausetime=srcent.pausetime;
|
||
|
destent.movetarget=srcent.movetarget;
|
||
|
destent.aflag=srcent.aflag;
|
||
|
destent.dmg=srcent.dmg;
|
||
|
destent.cnt=srcent.cnt;
|
||
|
destent.think1=srcent.think1;
|
||
|
destent.finaldest=srcent.finaldest;
|
||
|
destent.finalangle=srcent.finalangle;
|
||
|
destent.count=srcent.count;
|
||
|
destent.lip=srcent.lip;
|
||
|
destent.state=srcent.state;
|
||
|
destent.pos1=srcent.pos1;
|
||
|
destent.pos2=srcent.pos2;
|
||
|
destent.height=srcent.height;
|
||
|
destent.waitmin=srcent.waitmin;
|
||
|
destent.waitmax=srcent.waitmax;
|
||
|
destent.distance=srcent.distance;
|
||
|
destent.volume=srcent.volume;
|
||
|
destent.gorging=srcent.gorging;
|
||
|
destent.stoleweapon=srcent.stoleweapon;
|
||
|
destent.spawnfunction=srcent.spawnfunction;
|
||
|
destent.spawnthink=srcent.spawnthink;
|
||
|
destent.spawnmodel=srcent.spawnmodel;
|
||
|
destent.spawnsolidtype=srcent.spawnsolidtype;
|
||
|
destent.spawnmins=srcent.spawnmins;
|
||
|
destent.spawnmaxs=srcent.spawnmaxs;
|
||
|
destent.spawnclassname=srcent.spawnclassname;
|
||
|
};
|
||
|
|
||
|
//=========================
|
||
|
//
|
||
|
// SUB_NormalizeAngles
|
||
|
//
|
||
|
//=========================
|
||
|
|
||
|
vector ( vector ang ) SUB_NormalizeAngles =
|
||
|
{
|
||
|
while( ang_x > 360 )
|
||
|
{
|
||
|
ang_x = ang_x - 360;
|
||
|
}
|
||
|
while( ang_x < 0 )
|
||
|
{
|
||
|
ang_x = ang_x + 360;
|
||
|
}
|
||
|
|
||
|
while( ang_y > 360 )
|
||
|
{
|
||
|
ang_y = ang_y - 360;
|
||
|
}
|
||
|
while( ang_y < 0 )
|
||
|
{
|
||
|
ang_y = ang_y + 360;
|
||
|
}
|
||
|
|
||
|
while( ang_z > 360 )
|
||
|
{
|
||
|
ang_z = ang_z - 360;
|
||
|
}
|
||
|
while( ang_z < 0 )
|
||
|
{
|
||
|
ang_z = ang_z + 360;
|
||
|
}
|
||
|
|
||
|
return ang;
|
||
|
};
|