function morph_target(ENTITY* e, ENTITY* m, p)
{
VECTOR Current; //Current Mesh Vert Pos
VECTOR Target; //Morph1 Vert Pos
VECTOR Base; //Base or unchanged mesh vert pos
VECTOR Diff;
VECTOR morph;
var vert;
var vert_cnt = ent_status(e,0);
for(vert=1;vert<vert_cnt;vert++)
{
//Base Model Postions
CONTACT* c1 = ent_getvertex(e,NULL,vert);
Base.x = c1.x;
Base.y = c1.y;
Base.z = c1.z;
//Target Models Postions
CONTACT* c2 = ent_getvertex(m,NULL,vert);
Target.x = c2.x;
Target.y = c2.y;
Target.z = c2.z;
vec_set(morph.x,Base.x);
vec_lerp(Diff.x,Base.x,Target.x,p);
morph.x += Diff.x - Base.x;
morph.y += Diff.y - Base.y;
morph.z += Diff.z - Base.z;
c1.v = NULL;
c1.x = morph.x;
c1.y = morph.y;
c1.z = morph.z;
ent_setvertex(e,c1,vert);
}
ent_fixnormals(e,0);
c_updatehull(e,0);
}