Please ignore the following:
Code:
STRING md_wp1 = "sword1.mdl";

define _eWp1, skill70;
ENTITY* e1;

STRING* sAni1;
var nAniStep = 0;
var nAniMode = 0;
var nAniPer = 0;
var n1 = 0;		// temp var


function wpf_valid1() {
	e1 = NULL;
	if (my._eWp1 == 0) { return(0); }
	e1 = ptr_for_handle(my._eWp1);
	if (e1 == NULL) {
		return(0); 
	}
	return(1);
}
function wpf_align1(_bScale) {
	if (e1 == NULL) { return(0); }
	if (_bScale) { vec_set(e1.scale_x, my.scale_x); }
	vec_set(e1.x, my.x);
	vec_set(e1.pan, my.pan);
	return(1);
}
function wpf_new1(_s, _bAlign, _bScale) {
	if (my._eWp1 != 0) { return(0); }
	if (_s == 0) { return(0); }
	e1 = ent_create(_s, my.x, NULL);
	if (e1 == NULL) { return(0); }
	my._eWp1 = handle(e1);
	e1.passable = ON;
	if (_bAlign) {
		wpf_align1(_bScale);
	}
	return(1);
}
function actorf_ani1(_s, _nStep, &_nPer, _mode) {
	_nPer[0] += _nStep * time_step;
	//_nPer[0] %= 100;
	ent_animate(me, _s, _nStep, _nPer[0], _mode);
	if (wpf_valid1() == 0) { return(1); }

	wpf_align1(0);
	ent_animate(e1, _s, _nStep, _nPer[0], _mode); 
	return(2);
}
function actorf_ani2() {
	n1 = actorf_ani1(sAni1, nAniStep, nAniPer, nAniMode);
	return(n1);
}
action aPlayer {
	wpf_new1(md_wp1, 1, 1);
	while(me != 	NULL) {
		// set nAni sAni, etc.
		actorf_ani2();
		//dump globals back to entity skills
		wait(1);
	}
}