Planet
navi homePPSaboutscreenshotsdownloaddevelopmentforum

source: orxonox.OLD/orxonox/branches/bensch/orxonox_gui_file.c @ 1831

Last change on this file since 1831 was 1831, checked in by bensch, 20 years ago

orxonox/branches/bensch: fixed bug in orxonox_gui_load (doens't load if file does not exist instead of segmantation fault)

File size: 4.2 KB
Line 
1#include <sys/stat.h>
2#include "orxonox_gui_file.h"
3
4
5void orxonox_gui_file_default (struct settings *orxonox_settings)
6{
7  if (verbose >= 1)
8    printf("Setting orxonox to it's default settings.\n");
9
10  orxonox_settings->video_fullscreen = 1;
11  orxonox_settings->video_wireframe = 0;
12 
13  orxonox_settings->audio_enable_sound = 1;
14  orxonox_settings->audio_music_volume = 80;
15  orxonox_settings->audio_effects_volume = 80;
16 
17  orxonox_settings->exec_save_settings = 1;
18  orxonox_settings->exec_show_menu = 0;
19
20  return;
21}
22
23void orxonox_gui_file_save (char *config_file, struct settings *orxonox_settings)
24{
25  FILE *IOFILE;
26  char local_config_file[1000];
27
28  sprintf(local_config_file,"%s", config_file);
29  if (!strncmp (local_config_file,"~/", 2))
30  {
31    char buffer[100];
32    char *homedir = getenv("HOME");
33    sprintf(buffer, local_config_file);
34    sprintf (local_config_file,"%s/%s", homedir,buffer+2);
35  }
36
37  IOFILE = fopen( local_config_file, "w");
38  if (IOFILE)
39    {
40      if (verbose >= 1)
41        printf ("Saving settings to '%s'\n", local_config_file);
42     
43      fprintf (IOFILE, "%s\n", "Configuration file of orxonox (do not edit if ou do not know what you are doing)");
44      fprintf (IOFILE, "orxonox_settings->video_fullscreen = %i\n", orxonox_settings->video_fullscreen);
45      fprintf (IOFILE, "orxonox_settings->video_wireframe = %i\n", orxonox_settings->video_wireframe);
46     
47      fprintf (IOFILE, "orxonox_settings->audio_enable_sound = %i\n", orxonox_settings->audio_enable_sound);
48      fprintf (IOFILE, "orxonox_settings->audio_music_volume = %i\n", orxonox_settings->audio_music_volume);
49      fprintf (IOFILE, "orxonox_settings->audio_effects_volume = %i\n", orxonox_settings->audio_effects_volume);
50     
51      fprintf (IOFILE, "orxonox_settings->exec_save_settings = %i\n", orxonox_settings->exec_save_settings);
52      fprintf (IOFILE, "orxonox_settings->exec_show_menu = %i\n", orxonox_settings->exec_show_menu);
53     
54      fprintf (IOFILE, "orxonox_settings->verbose = %i\n", verbose);
55     
56      fclose( IOFILE );
57      return;
58    }
59  else
60    {
61      if (verbose >= 1)
62        printf ("Settingsfile '%s' does not exist.\n", local_config_file);
63    }
64}
65
66void orxonox_gui_file_load (char *config_file, struct settings *orxonox_settings)
67{
68  FILE *IOFILE;
69  char variable[100];
70  char equals[5];
71  char value[100];
72  char buffer[100];
73  char local_config_file[1000];
74 
75  sprintf(local_config_file,"%s", config_file);
76  if (!strncmp (config_file, "~/", 2))
77    {
78      char *homedir = getenv("HOME");
79      sprintf(buffer, local_config_file);
80      sprintf (local_config_file,"%s/%s", homedir, buffer+2);
81    }
82 
83
84  IOFILE = fopen(local_config_file, "r");
85  if (IOFILE)
86    {
87      if (verbose >= 1)
88        printf ("Loading settings from '%s'\n", local_config_file);
89     
90      fscanf (IOFILE, "Configuration file of orxonox (do not edit if ou do not know what you are doing)");
91      while (fscanf (IOFILE,"%s %s %s", variable, equals, value) != EOF)
92        {
93          if ( !strcmp (variable, "orxonox_settings->video_fullscreen"))
94            {
95              orxonox_settings->video_fullscreen = atoi (value);
96            }
97          else if ( !strcmp (variable, "orxonox_settings->video_wireframe"))
98            {
99              orxonox_settings->video_wireframe = atoi (value);
100            }
101         
102          else if ( !strcmp (variable, "orxonox_settings->audio_enable_sound"))
103            {
104              orxonox_settings->audio_enable_sound = atoi (value);
105            }
106          else if ( !strcmp (variable, "orxonox_settings->audio_music_volume"))
107            {
108              orxonox_settings->audio_music_volume = atoi (value);
109            }
110          else if ( !strcmp (variable, "orxonox_settings->audio_effects_volume"))
111            {
112              orxonox_settings->audio_effects_volume = atoi (value);
113            }
114         
115          else if ( !strcmp (variable, "orxonox_settings->exec_save_settings"))
116            {
117              orxonox_settings->exec_save_settings = atoi (value);
118            }
119          else if ( !strcmp (variable, "orxonox_settings->exec_show_menu"))
120            {
121              orxonox_settings->exec_show_menu = atoi (value);
122            }
123         
124          else if ( !strcmp (variable, "orxonox_settings->verbose"))
125            {
126              verbose = atoi (value);
127            }
128         
129        }
130      fclose( IOFILE );     
131      return;
132    }
133
134  else
135    {
136      if (verbose >= 1)
137        printf ("File '%s' does not exist. Can not load orxonox-states.\n", local_config_file);
138    }
139}
Note: See TracBrowser for help on using the repository browser.