/* Copyright (C) 1999-2006 Id Software, Inc. and contributors. For a list of contributors, see the accompanying CONTRIBUTORS file. This file is part of GtkRadiant. GtkRadiant 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. GtkRadiant 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 GtkRadiant; if not, write to the Free Software Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301 USA */ #if 0 /* ** ReindexTriangle ** ** Given a triangle_t, find which indices match into the associated ** surface's base triangles. */ static void ReindexTriangle( int surfno, triangle_t *pTri, int indices[3] ){ int t, i; md3SurfaceData_t *pSurfData = &g_data.surfData[surfno]; int matches[3][3]; int numMatches = 0; indices[0] = -1; indices[1] = -1; indices[2] = -1; for ( i = 0; i < 3; i++ ) { numMatches = 0; matches[i][0] = -1; matches[i][1] = -1; matches[i][2] = -1; for ( t = 0; t < pSurfData->header.numVerts; t++ ) { if ( !VectorCompare( pTri->verts[i], pSurfData->baseVertexes[t].xyz ) ) { continue; } /* if ( !VectorCompare( pTri->normals[i], pSurfData->baseVertexes[t].normal ) ) continue; if ( pTri->texcoords[i][0] != pSurfData->baseVertexes[t].st[0] ) continue; if ( pTri->texcoords[i][1] != pSurfData->baseVertexes[t].st[1] ) continue; */ matches[i][numMatches++] = t; } if ( indices[i] == -1 ) { // Error( "Could not ReindexTriangle, vertex not found" ); } } #if 0 for ( t = 0; t < psets[i].numtriangles; t++ ) { int b; bTri = &g_data.surfData[i].baseTriangles[t]; for ( j = 0 ; j < 3 ; j++ ) { bVert = &bTri->v[j]; // get the xyz index for ( k = 0; k < g_data.surfData[i].header.numVerts; k++ ) { if ( ( g_data.surfData[i].baseVertexes[k].st[0] == bVert->st[0] ) && ( g_data.surfData[i].baseVertexes[k].st[1] == bVert->st[1] ) && ( VectorCompare( bVert->xyz, g_data.surfData[i].baseVertexes[k].xyz ) ) && ( VectorCompare( bVert->normal, g_data.surfData[i].baseVertexes[k].normal ) ) ) { break; // this vertex is already in the base vertex list } } if ( k == g_data.surfData[i].header.numVerts ) { // new index g_data.surfData[i].baseVertexes[g_data.surfData[i].header.numVerts] = *bVert; g_data.surfData[i].header.numVerts++; } bVert->index = k; } } #endif } const char *FindFrameFile( const char *frame ){ int time1; char file1[1024]; static char retname[1024]; char base[32]; char suffix[32]; const char *s; if ( strstr( frame, "." ) ) { return frame; // allready in dot format } // split 'run1' into 'run' and '1' s = frame + strlen( frame ) - 1; while ( s != frame && *s >= '0' && *s <= '9' ) s--; strcpy( suffix, s + 1 ); strcpy( base, frame ); base[s - frame + 1] = 0; // check for 'run1.tri' sprintf( file1, "%s/%s%s.tri", g_cddir, base, suffix ); time1 = FileTime( file1 ); if ( time1 != -1 ) { sprintf( retname, "%s%s.tri", base, suffix ); return retname; } // check for 'run.1' sprintf( file1, "%s/%s.%s",g_cddir, base, suffix ); time1 = FileTime( file1 ); if ( time1 != -1 ) { sprintf( retname, "%s.%s", base, suffix ); return retname; } Error( "frame %s could not be found",frame ); return NULL; } #endif