]> de.git.xonotic.org Git - xonotic/netradiant.git/blob - tools/quake3/q3data/oldstuff.c
transfer from internal tree r5311 branches/1.4-gpl
[xonotic/netradiant.git] / tools / quake3 / q3data / oldstuff.c
1 #if 0\r
2 \r
3 /*\r
4 ** ReindexTriangle\r
5 **\r
6 ** Given a triangle_t, find which indices match into the associated\r
7 ** surface's base triangles.\r
8 */\r
9 static void ReindexTriangle( int surfno, triangle_t *pTri, int indices[3] )\r
10 {\r
11         int t, i;\r
12         md3SurfaceData_t *pSurfData = &g_data.surfData[surfno];\r
13         int matches[3][3];\r
14         int numMatches = 0;\r
15                 \r
16 \r
17         indices[0] = -1;\r
18         indices[1] = -1;\r
19         indices[2] = -1;\r
20 \r
21         for ( i = 0; i < 3; i++ )\r
22         {\r
23                 numMatches = 0;\r
24 \r
25                 matches[i][0] = -1;\r
26                 matches[i][1] = -1;\r
27                 matches[i][2] = -1;\r
28 \r
29                 for ( t = 0; t < pSurfData->header.numVerts; t++ )\r
30                 {\r
31                         if ( !VectorCompare( pTri->verts[i], pSurfData->baseVertexes[t].xyz ) )\r
32                                 continue;\r
33 \r
34 /*                               \r
35                         if ( !VectorCompare( pTri->normals[i], pSurfData->baseVertexes[t].normal ) )\r
36                                 continue;\r
37                         if ( pTri->texcoords[i][0] != pSurfData->baseVertexes[t].st[0] )\r
38                                 continue;\r
39                         if ( pTri->texcoords[i][1] != pSurfData->baseVertexes[t].st[1] ) \r
40                                 continue;\r
41 */\r
42 \r
43                         matches[i][numMatches++] = t;\r
44                 }\r
45 \r
46                 if ( indices[i] == -1 )\r
47                 {\r
48 //                      Error( "Could not ReindexTriangle, vertex not found" );\r
49                 }\r
50         }\r
51 \r
52 #if 0\r
53                 for ( t = 0; t < psets[i].numtriangles; t++ )\r
54                 {\r
55                         int b;\r
56 \r
57                         bTri = &g_data.surfData[i].baseTriangles[t];\r
58 \r
59                         for (j=0 ; j<3 ; j++)\r
60                         {\r
61                                 bVert = &bTri->v[j];\r
62 \r
63                                 // get the xyz index\r
64                                 for ( k = 0; k < g_data.surfData[i].header.numVerts; k++ )\r
65                                 {\r
66                                         if ( ( g_data.surfData[i].baseVertexes[k].st[0] == bVert->st[0] ) &&\r
67                                                  ( g_data.surfData[i].baseVertexes[k].st[1] == bVert->st[1] ) &&\r
68                                                  ( VectorCompare (bVert->xyz, g_data.surfData[i].baseVertexes[k].xyz) ) &&\r
69                                                  ( VectorCompare (bVert->normal, g_data.surfData[i].baseVertexes[k].normal) ) )\r
70                                         {\r
71                                                 break;  // this vertex is already in the base vertex list\r
72                                         }\r
73                                 }\r
74 \r
75                                 if (k == g_data.surfData[i].header.numVerts)    { // new index\r
76                                         g_data.surfData[i].baseVertexes[g_data.surfData[i].header.numVerts] = *bVert;\r
77                                         g_data.surfData[i].header.numVerts++;\r
78                                 }\r
79 \r
80                                 bVert->index = k;\r
81                         }\r
82                 }\r
83 #endif\r
84 }\r
85 \r
86 const char      *FindFrameFile (const char *frame)\r
87 {\r
88         int                     time1;\r
89         char    file1[1024];\r
90         static char     retname[1024];\r
91         char    base[32];\r
92         char    suffix[32];\r
93         const char      *s;\r
94 \r
95         if (strstr (frame, "."))\r
96                 return frame;           // allready in dot format\r
97 \r
98         // split 'run1' into 'run' and '1'\r
99         s = frame + strlen(frame)-1;\r
100 \r
101         while (s != frame && *s >= '0' && *s <= '9')\r
102                 s--;\r
103 \r
104         strcpy (suffix, s+1);\r
105         strcpy (base, frame);\r
106         base[s-frame+1] = 0;\r
107 \r
108         // check for 'run1.tri'\r
109         sprintf (file1, "%s/%s%s.tri", g_cddir, base, suffix);\r
110         time1 = FileTime (file1);\r
111         if (time1 != -1)\r
112         {\r
113                 sprintf (retname, "%s%s.tri", base, suffix);\r
114                 return retname;\r
115         }\r
116 \r
117         // check for 'run.1'\r
118         sprintf (file1, "%s/%s.%s",g_cddir, base, suffix);\r
119         time1 = FileTime (file1);\r
120         if (time1 != -1)\r
121         {\r
122                 sprintf (retname, "%s.%s", base, suffix);\r
123                 return retname;\r
124         }\r
125 \r
126         Error ("frame %s could not be found",frame);\r
127         return NULL;\r
128 }\r
129 \r
130 #endif\r