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
QFile_ReadMaterialTypes(char * filename)37 void QFile_ReadMaterialTypes( char* filename ){
38 int i;
39 FILE *f;
40
41 f = fopen( filename, "rb" );
42 if ( !f ) {
43 materialtypes = defaultmaterialtypes;
44 return;
45 }
46 fclose( f );
47
48 free( materialtypes );
49 materialtypes = (materialtype_t*)malloc( 256 * sizeof( materialtype_t ) );
50
51 LoadScriptFile( filename );
52 i = 0;
53
54 while ( i < 255 )
55 {
56 GetScriptToken( true );
57 if ( endofscript ) {
58 break;
59 }
60 if ( strcmp( token, "material" ) != 0 ) {
61 while ( ScriptTokenAvailable() )
62 {
63 GetScriptToken( false );
64 }
65 }
66 else
67 {
68 GetScriptToken( false );
69 materialtypes[i].name = (char*)malloc( strlen( token ) + 1 );
70 strcpy( materialtypes[i].name, token );
71 GetScriptToken( false );
72 materialtypes[i].value = atoi( token );
73 }
74 i++;
75 }
76 materialtypes[i].name = NULL;
77 materialtypes[i].value = 0;
78 }
79