Sign Up
Log In
Log In
or
Sign Up
Places
All Projects
Status Monitor
Collapse sidebar
home:RedDwarf:remakes
deflektor_x4
deflektor_x4-1.0-dirs.patch
Overview
Repositories
Revisions
Requests
Users
Attributes
Meta
File deflektor_x4-1.0-dirs.patch of Package deflektor_x4
Read data from DATADIR and config from $HOME/.deflektor_x4 --- audio.c +++ audio.c @@ -42,8 +42,8 @@ FMOD_System_Create(&sistema); FMOD_System_Init(sistema, 16, FMOD_INIT_NORMAL, NULL); - f_msc = load_datafile("msc.dat"); - f_audio = load_datafile("snd.dat"); + f_msc = load_datafile(DATADIR "/msc.dat"); + f_audio = load_datafile(DATADIR "/snd.dat"); } //****************************************************************************** --- deflektor.c +++ deflektor.c @@ -15,6 +15,9 @@ //****************************************************************************** // Includes. //****************************************************************************** +#define _GNU_SOURCE +#include <stdio.h> +#include <sys/stat.h> #include <time.h> #include <allegro.h> #include "deflekto.h" @@ -44,6 +47,7 @@ char max_txt[29*9]; int max_pnt[9]; char max_cod[13*9]; +char *homeDirectory; char ini_allegro(void); void fin_allegro(void); @@ -78,6 +82,13 @@ { char f; + asprintf(&homeDirectory,"%s/.deflektor_x4",getenv("HOME")); + if ((mkdir(homeDirectory,S_IRWXU|S_IRGRP|S_IXGRP|S_IROTH|S_IXOTH) != 0) && (errno != EEXIST)) + { + printf("Couldn't create required directory '%s'",homeDirectory); + exit(1); + } + if(ini_allegro()) return -1; ini_tiempo(); ini_audio(); @@ -99,6 +110,7 @@ fin_audio(); fin_allegro(); + free(homeDirectory); return 0; } END_OF_MAIN(); @@ -132,8 +144,8 @@ set_display_switch_mode(SWITCH_AMNESIA); set_trans_blender(0,0,0,240); clear_bitmap(buffer=create_bitmap(RES_X,RES_Y)); - f_grf=load_datafile("grf.dat"); - f_fnt=load_datafile("fuentes.dat"); + f_grf=load_datafile(DATADIR "/grf.dat"); + f_fnt=load_datafile(DATADIR "/fuentes.dat"); for(l=0;l<=IMG_X*IMG_Y;loseta[l++]=NULL); borde[0]=(BITMAP *)(f_grf[0].dat); @@ -165,7 +177,7 @@ char no_encontrado=0; PACKFILE *f_dat=NULL; - if(f_dat=pack_fopen("grf.dat",F_READ)) + if(f_dat=pack_fopen(DATADIR "/grf.dat",F_READ)) pack_fclose(f_dat); else { @@ -173,7 +185,7 @@ allegro_message("ERROR: fichero grf.dat no encontrado\nERROR: file grf.dat not found"); } - if(f_dat=pack_fopen("fuentes.dat",F_READ)) + if(f_dat=pack_fopen(DATADIR "/fuentes.dat",F_READ)) pack_fclose(f_dat); else { @@ -181,7 +193,7 @@ allegro_message("ERROR: fichero fuentes.dat no encontrado\nERROR: file fuentes.dat not found"); } - if(f_dat=pack_fopen("intro.dat",F_READ)) + if(f_dat=pack_fopen(DATADIR "/intro.dat",F_READ)) pack_fclose(f_dat); else { @@ -189,7 +201,7 @@ allegro_message("ERROR: fichero intro.dat no encontrado\nERROR: file intro.dat not found"); } - if(f_dat=pack_fopen("msc.dat",F_READ)) + if(f_dat=pack_fopen(DATADIR "/msc.dat",F_READ)) pack_fclose(f_dat); else { @@ -197,7 +209,7 @@ allegro_message("ERROR: fichero msc.dat no encontrado\nERROR: file msc.dat not found"); } - if(f_dat=pack_fopen("snd.dat",F_READ)) + if(f_dat=pack_fopen(DATADIR "/snd.dat",F_READ)) pack_fclose(f_dat); else { @@ -965,7 +977,7 @@ short x,y,contador; BITMAP *mapa_intro=NULL; char voz=-1; - DATAFILE *f_intro=load_datafile("intro.dat"); + DATAFILE *f_intro=load_datafile(DATADIR "/intro.dat"); parar_musica(); mapa_intro=(BITMAP *)(f_intro[0].dat); @@ -1190,7 +1202,10 @@ //****************************************************************************** void leer_cfg(void) { - PACKFILE *cfg=pack_fopen("cfg.dat",F_READ); + char *tmp; + asprintf(&tmp,"%s/cfg.dat",homeDirectory); + PACKFILE *cfg=pack_fopen(tmp,F_READ); + free(tmp); if(cfg) { @@ -1230,7 +1245,10 @@ //****************************************************************************** void escribir_cfg(void) { - PACKFILE *cfg=pack_fopen("cfg.dat",F_WRITE); + char *tmp; + asprintf(&tmp,"%s/cfg.dat",homeDirectory); + PACKFILE *cfg=pack_fopen(tmp,F_WRITE); + free(tmp); pack_fwrite(&idioma, sizeof(char), cfg); pack_fwrite(&volson, sizeof(char), cfg); pack_fwrite(&volmus, sizeof(char), cfg); @@ -1247,7 +1265,10 @@ short f; int fin, pot; char c; - PACKFILE *pnt=pack_fopen("pnt.txt",F_READ); + char *tmp; + asprintf(&tmp,"%s/pnt.dat",homeDirectory); + PACKFILE *pnt=pack_fopen(tmp,F_READ); + free(tmp); for(f=0;f<29*9;max_txt[f++]=0); for(f=0;f<9; max_pnt[f++]=0); @@ -1280,7 +1301,10 @@ void escribir_pnt(void) { char f,n; - PACKFILE *pnt=pack_fopen("pnt.txt",F_WRITE); + char *tmp; + asprintf(&tmp,"%s/pnt.dat",homeDirectory); + PACKFILE *pnt=pack_fopen(tmp,F_WRITE); + free(tmp); for(f=0;f<9 && max_pnt[f];f++) {
Locations
Projects
Search
Status Monitor
Help
OpenBuildService.org
Documentation
API Documentation
Code of Conduct
Contact
Support
@OBShq
Terms
openSUSE Build Service is sponsored by
The Open Build Service is an
openSUSE project
.
Sign Up
Log In
Places
Places
All Projects
Status Monitor