1 #include "initfiles.h"
2 
3 #include <Windows.h>
4 
5 #define SETFILE "settings.ini"
6 
loadSettings()7 void loadSettings()
8 {
9 	cout<<"LOAD SETTINGS"<<endl;
10 	DEBUG_MODE = 0;
11 
12 	ifstream ifs(SETFILE, ios::in);
13 
14 		char *contents = new char[200];
15 
16 	for (int i=0; ifs.getline(contents, 200); i++)
17 		if ( contents[0] != '#' && strlen(contents) > 2)
18 		{
19 			interpreteLine(contents);
20 		}
21 
22 	ifs.close();
23 	delete(contents);
24 }
25 
interpreteLine(char * command)26 void interpreteLine(char *command)
27 {
28 	int count = 0;
29 	int len = 0, i = 0;
30 	char *str = command;
31 
32 	str += strspn(str," ");
33 
34 	while (*str)
35 	{
36 		count++;
37 		str += strcspn(str," ");
38 		str += strspn(str," ");
39 	}
40 
41 	str = command;
42 
43 	char **parts = new char*[ count ];
44 
45 	str += strspn(str," ");
46 
47 	while (*str)
48 	{
49 		int len = (int)(strcspn(str," "));
50 		parts[i] = new char[len + 2];
51 		memcpy(parts[i],str,len);
52 		parts[i][len] = 0;
53 		str += len + strspn(str+len," ");
54 		i++;
55 	}
56 
57 	for(i=0;i<count;i++)
58 		cout<<parts[i]<<" ";
59 		cout<<endl;
60 
61 	if ( strcmp (parts[0], "DebugMode") == 0)
62 	{
63 		if(atoi(parts[1])!=0)DEBUG_MODE = 1;
64 	}
65 	else if ( strcmp (parts[0], "framedisplay") == 0)
66 	{
67 		if(atoi(parts[1])!=1)NoFrameCheck = 0;
68 	}
69 	else if ( strcmp (parts[0], "sound") == 0)
70 	{
71 		if(atoi(parts[1])!=1)sound = 0;
72 	}
73 
74 
75 	//SCREENFLAGS:
76 		else if ( strcmp (parts[0], "I_WANT_FULLSCREEN") == 0)
77 		{
78 			Screen_Flags = SDL_FULLSCREEN | SDL_DOUBLEBUF | SDL_SRCCOLORKEY | SDL_RLEACCEL | SDL_SRCALPHA | SDL_HWSURFACE | SDL_HWSURFACE;
79 		}
80 		else if ( strcmp (parts[0], "GIMME_DOUBLEBUF") == 0)
81 		{
82 			Screen_Flags |= SDL_DOUBLEBUF;
83 		}
84 		else if ( strcmp (parts[0], "USE_COLORKEY") == 0)
85 		{
86 			Screen_Flags |= SDL_SRCCOLORKEY;
87 		}
88 		else if ( strcmp (parts[0], "I_NEED_MORE_RLESPEED") == 0)
89 		{
90 			Screen_Flags |= SDL_RLEACCEL;
91 		}
92 		else if ( strcmp (parts[0], "ASYNCBLIT_ROXXX") == 0)
93 		{
94 			Screen_Flags |= SDL_ASYNCBLIT;
95 		}
96 		else if ( strcmp (parts[0], "THERE_MUST_BE_SRCALPHA") == 0)
97 		{
98 			Screen_Flags |= SDL_SRCALPHA;
99 		}
100 		else if ( strcmp (parts[0], "NO_HARDWAREACCEL_WOULD_BE_BAD") == 0)
101 		{
102 			Screen_Flags |= SDL_HWACCEL;
103 		}
104 		else if ( strcmp (parts[0], "NO_HARDWARESURFACE_WOULD_BE_VERY_BAD") == 0)
105 		{
106 			Screen_Flags |= SDL_HWSURFACE;
107 		}
108 
109 
110 	for (i = 0; i < count ;i++)
111 		delete(parts[i]);
112 
113 	delete(parts);
114 }
115