This repository has been archived on 2022-06-27. You can view files and clone it, but cannot push or open issues or pull requests.
Xash3DArchive/vprogs/ents/ccam.c

67 lines
1.9 KiB
C
Raw Normal View History

2007-09-04 22:00:00 +02:00
/*
====================================================
= New Ccam - www.inside3d.com/qctut/lesson-39.shtml=
====================================================
*/
void () CCam;
void () CCamChasePlayer =
{
2007-09-16 22:00:00 +02:00
makevectors (pev->v_angle);
traceline ((pev->origin + pev->view_ofs),((((pev->origin + pev->view_ofs) + (v_forward * pev->camview_z)) + (v_up * pev->camview_x)) + (v_right * pev->camview_y)),FALSE,pev);
setorigin (pev->trigger_field,trace_endpos);
2007-09-04 22:00:00 +02:00
MsgBegin( 5 );
2007-09-16 22:00:00 +02:00
WriteEntity (pev->trigger_field);
MsgEnd( MSG_ONE, '0 0 0', pev );
pev->weaponmodel = "";
2007-09-04 22:00:00 +02:00
};
void () CCam =
{
local entity camera;
local entity spot;
2007-09-16 22:00:00 +02:00
if (pev->aflag == FALSE)
2007-09-04 22:00:00 +02:00
{
2007-09-16 22:00:00 +02:00
pev->aflag = TRUE;
2007-09-04 22:00:00 +02:00
camera = spawn ();
spot = spawn ();
2007-09-16 22:00:00 +02:00
pev->trigger_field = camera;
2007-09-04 22:00:00 +02:00
camera.classname = "camera";
camera.movetype = MOVETYPE_FLY;
camera.solid = SOLID_NOT;
setmodel (camera,"progs/eyes.mdl");
setsize (camera,'0 0 0','0 0 0');
2007-09-16 22:00:00 +02:00
makevectors (pev->v_angle);
traceline ((pev->origin + pev->view_ofs),(((pev->origin + pev->view_ofs)
+ (v_forward * -64.000))),FALSE,pev);
pev->camview = '0 0 -64'; // added
2007-09-04 22:00:00 +02:00
setorigin (camera,trace_endpos);
2007-09-16 22:00:00 +02:00
camera.angles = pev->angles;
pev->weaponmodel = "";
2007-09-04 22:00:00 +02:00
MsgBegin( 5 );
WriteEntity (camera);
WriteByte (10.000);
WriteAngle (camera.angles_x);
WriteAngle (camera.angles_y);
WriteAngle (camera.angles_z);
2007-09-16 22:00:00 +02:00
MsgEnd( MSG_ONE, '0 0 0', pev );
sprint (pev,"Chase Cam On\n");
2007-09-04 22:00:00 +02:00
}
else
{
2007-09-16 22:00:00 +02:00
pev->aflag = FALSE;
2007-09-04 22:00:00 +02:00
MsgBegin( 5 );
2007-09-16 22:00:00 +02:00
WriteEntity (pev);
2007-09-04 22:00:00 +02:00
WriteByte (10);
WriteAngle (camera.angles_x);
WriteAngle (camera.angles_y);
WriteAngle (camera.angles_z);
2007-09-16 22:00:00 +02:00
MsgEnd( MSG_ONE, '0 0 0', pev );
remove (pev->trigger_field);
sprint (pev,"Chase Cam Off\n");
2007-09-04 22:00:00 +02:00
//W_SetCurrentAmmo ();
}
};