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