void BlendVertexNew(D3DVECTOR* result,D3DVECTOR* normal,CharVertex* vec0, 
					D3DMATRIX* mat0, D3DMATRIX* mat1)
{
	D3DVECTOR	locVec0, locVec1 ;
	D3DMATRIX	norMat0 = *mat0,norMat1 = *mat1 ;

	MulVecMat(&locVec0,&vec0->vertex,mat0) ;
	MulVecMat(&locVec1,&vec0->vertex,mat1) ;

	// blend vertex
	result->x = (vec0->fWeight * locVec0.x) + ((1.0f-vec0->fWeight)*(locVec1.x)) ;
	result->y = (vec0->fWeight * locVec0.y) + ((1.0f-vec0->fWeight)*(locVec1.y)) ;
	result->z = (vec0->fWeight * locVec0.z) + ((1.0f-vec0->fWeight)*(locVec1.z)) ;

	MAKETRANSMAT(norMat0,0,0,0) ;	// zero translations
	MAKETRANSMAT(norMat1,0,0,0) ;	// zero translations

	MulVecMat(&locVec0,&vec0->normal,&norMat0) ;
	MulVecMat(&locVec1,&vec0->normal,&norMat1) ;

	// blend normals
	normal->x = (vec0->fWeight * locVec0.x) + ((1.0f-vec0->fWeight)*(locVec1.x)) ;
	normal->y = (vec0->fWeight * locVec0.y) + ((1.0f-vec0->fWeight)*(locVec1.y)) ;
	normal->z = (vec0->fWeight * locVec0.z) + ((1.0f-vec0->fWeight)*(locVec1.z)) ;
}


void DisplayCharacterVB(Character* const chr, D3DMATRIX ZeeMatrix[NUM_BONES])
{
	register unsigned int		l ;
	UNLITTXCLRVERTEX*		dst = g_unlitVer ;
	CharVertex*			chrVertex = chr->cmd->vlist ;
	
	for( l = 0 ; l < chr->cmd->dwVertices ; l++ )
	{
		BlendVertexNew( (D3DVECTOR*)&dst->x, (D3DVECTOR*)&dst->nx, chrVertex, 
				&ZeeMatrix[chrVertex->id0], &ZeeMatrix[chrVertex->id1]) ;

		dst->clr = CLR_WHITE ;
		dst->tu = chrVertex->tu ;
		dst->tv = chrVertex->tv ;

		dst++ ;
		chrVertex++ ;
	}
}