]> de.git.xonotic.org Git - xonotic/netradiant.git/blob - tools/quake2/qdata_heretic2/common/qfiles.c
transfer from internal tree r5311 branches/1.4-gpl
[xonotic/netradiant.git] / tools / quake2 / qdata_heretic2 / common / qfiles.c
1 /*\r
2 Copyright (C) 1999-2007 id Software, Inc. and contributors.\r
3 For a list of contributors, see the accompanying CONTRIBUTORS file.\r
4 \r
5 This file is part of GtkRadiant.\r
6 \r
7 GtkRadiant is free software; you can redistribute it and/or modify\r
8 it under the terms of the GNU General Public License as published by\r
9 the Free Software Foundation; either version 2 of the License, or\r
10 (at your option) any later version.\r
11 \r
12 GtkRadiant is distributed in the hope that it will be useful,\r
13 but WITHOUT ANY WARRANTY; without even the implied warranty of\r
14 MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the\r
15 GNU General Public License for more details.\r
16 \r
17 You should have received a copy of the GNU General Public License\r
18 along with GtkRadiant; if not, write to the Free Software\r
19 Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, MA  02110-1301  USA\r
20 */\r
21 \r
22 #include "qfiles.h"\r
23 #include "scriplib.h"\r
24 //#include <windows.h>\r
25 \r
26 materialtype_t  defaultmaterialtypes[] =\r
27 {\r
28         {"gravel",      MATERIAL_GRAVEL},\r
29         {"metal",       MATERIAL_METAL},\r
30         {"stone",       MATERIAL_STONE},\r
31         {"wood",        MATERIAL_WOOD},\r
32         {NULL,          0}\r
33 };\r
34 \r
35 materialtype_t  *materialtypes;\r
36 \r
37 void QFile_ReadMaterialTypes(char* filename)\r
38 {\r
39         int             i;\r
40         FILE    *f;\r
41 \r
42         f = fopen (filename, "rb");\r
43         if (!f)\r
44         {\r
45                 materialtypes = defaultmaterialtypes;\r
46                 return;\r
47         }\r
48         fclose (f);\r
49 \r
50         free(materialtypes);\r
51         materialtypes = (materialtype_t*)malloc(256 * sizeof(materialtype_t));\r
52 \r
53         LoadScriptFile(filename);\r
54         i = 0;\r
55         \r
56         while (i < 255)\r
57         {\r
58                 GetScriptToken (true);\r
59                 if (endofscript)\r
60                 {\r
61                         break;\r
62                 }\r
63                 if (strcmp(token, "material") != 0)\r
64                 {\r
65                         while (ScriptTokenAvailable())\r
66                         {\r
67                                 GetScriptToken(false);\r
68                         }\r
69                 }\r
70                 else\r
71                 {\r
72                         GetScriptToken(false);\r
73                         materialtypes[i].name = (char*)malloc(strlen(token) + 1);\r
74                         strcpy(materialtypes[i].name, token);\r
75                         GetScriptToken (false);\r
76                         materialtypes[i].value = atoi(token);\r
77                 }\r
78                 i++;\r
79         }\r
80         materialtypes[i].name = NULL;\r
81         materialtypes[i].value = 0;\r
82 }\r