Skip to content

Commit

Permalink
Use a single path for the editor and data files.
Browse files Browse the repository at this point in the history
  • Loading branch information
bobbens committed Apr 28, 2024
1 parent 8647ba9 commit b2681d9
Show file tree
Hide file tree
Showing 8 changed files with 24 additions and 34 deletions.
22 changes: 6 additions & 16 deletions src/conf.c
Original file line number Diff line number Diff line change
Expand Up @@ -172,9 +172,7 @@ void conf_setDefaults( void )
conf.fpu_except = 0; /* Causes many issues. */

/* Editor. */
conf.dev_save_sys = strdup( DEV_SAVE_SYSTEM_DEFAULT );
conf.dev_save_map = strdup( DEV_SAVE_MAP_DEFAULT );
conf.dev_save_spob = strdup( DEV_SAVE_SPOB_DEFAULT );
conf.dev_data_dir = strdup( DEV_DATA_DIR_DEFAULT );
}

/**
Expand Down Expand Up @@ -443,9 +441,7 @@ int conf_loadConfig( const char *file )
conf_loadBool( lEnv, "fpu_except", conf.fpu_except );

/* Editor. */
conf_loadString( lEnv, "dev_save_sys", conf.dev_save_sys );
conf_loadString( lEnv, "dev_save_map", conf.dev_save_map );
conf_loadString( lEnv, "dev_save_spob", conf.dev_save_spob );
conf_loadString( lEnv, "dev_data_dir", conf.dev_data_dir );

/*
* Keybindings.
Expand Down Expand Up @@ -1194,10 +1190,8 @@ int conf_saveConfig( const char *file )
conf_saveEmptyLine();

/* Editor. */
conf_saveComment( _( "Paths for saving different files from the editor" ) );
conf_saveString( "dev_save_sys", conf.dev_save_sys );
conf_saveString( "dev_save_map", conf.dev_save_map );
conf_saveString( "dev_save_spob", conf.dev_save_spob );
conf_saveComment( _( "Path where the main data is stored at" ) );
conf_saveString( "dev_data_dir", conf.dev_data_dir );
conf_saveEmptyLine();

/*
Expand Down Expand Up @@ -1340,9 +1334,7 @@ void conf_copy( PlayerConf_t *dest, const PlayerConf_t *src )
STRDUP( language );
STRDUP( joystick_nam );
STRDUP( lastversion );
STRDUP( dev_save_sys );
STRDUP( dev_save_map );
STRDUP( dev_save_spob );
STRDUP( dev_data_dir );
if ( src->difficulty != NULL )
STRDUP( difficulty );
#undef STRDUP
Expand All @@ -1358,9 +1350,7 @@ void conf_free( PlayerConf_t *config )
free( config->language );
free( config->joystick_nam );
free( config->lastversion );
free( config->dev_save_sys );
free( config->dev_save_map );
free( config->dev_save_spob );
free( config->dev_data_dir );
free( config->difficulty );

/* Clear memory. */
Expand Down
9 changes: 3 additions & 6 deletions src/conf.h
Original file line number Diff line number Diff line change
Expand Up @@ -83,9 +83,8 @@
#define MUSIC_VOLUME_DEFAULT 0.8 /**< Default music volume. */
#define ENGINE_VOLUME_DEFAULT 0.8 /**< Default engine volume. */
/* Editor Options */
#define DEV_SAVE_SYSTEM_DEFAULT "../dat/ssys/"
#define DEV_SAVE_SPOB_DEFAULT "../dat/spob/"
#define DEV_SAVE_MAP_DEFAULT "../dat/outfits/maps/"
#define DEV_DATA_DIR_DEFAULT \
"../dat/" /* Default data directory, will try to save things there. */

/**
* @brief Struct containing player options.
Expand Down Expand Up @@ -206,9 +205,7 @@ typedef struct PlayerConf_s {
int fpu_except; /**< Enable FPU exceptions? */

/* Editor. */
char *dev_save_sys; /**< Path to save systems to. */
char *dev_save_map; /**< Path to save maps to. */
char *dev_save_spob; /**< Path to save spobs to. */
char *dev_data_dir; /**< Path where most data should be. */
} PlayerConf_t;
extern PlayerConf_t conf; /**< Player configuration. */

Expand Down
2 changes: 1 addition & 1 deletion src/dev_mapedit.c
Original file line number Diff line number Diff line change
Expand Up @@ -1168,7 +1168,7 @@ static int mapedit_saveMap( StarSystem **uniedit_sys, mapOutfitsList_t *ns )
xmlFreeTextWriter( writer );

/* Actually write data */
SDL_asprintf( &file, "%s/%s", conf.dev_save_map, ns->fileName );
SDL_asprintf( &file, "%s/outfits/maps/%s", conf.dev_data_dir, ns->fileName );
if ( xmlSaveFileEnc( file, doc, "UTF-8" ) < 0 )
WARN( _( "Failed writing '%s'!" ), file );
free( file );
Expand Down
2 changes: 1 addition & 1 deletion src/dev_spob.c
Original file line number Diff line number Diff line change
Expand Up @@ -153,7 +153,7 @@ int dpl_saveSpob( const Spob *p )

/* Write data. */
cleanName = uniedit_nameFilter( p->name );
SDL_asprintf( &file, "%s/%s.xml", conf.dev_save_spob, cleanName );
SDL_asprintf( &file, "%s/spob/%s.xml", conf.dev_data_dir, cleanName );
if ( xmlSaveFileEnc( file, doc, "UTF-8" ) < 0 ) {
WARN( "Failed to write '%s'!", file );
ret = -1;
Expand Down
11 changes: 7 additions & 4 deletions src/dev_sysedit.c
Original file line number Diff line number Diff line change
Expand Up @@ -616,11 +616,13 @@ static void sysedit_btnRename( unsigned int wid_unused, const char *unused )

/* Rename. */
filtered = uniedit_nameFilter( p->name );
SDL_asprintf( &oldName, "%s/%s.xml", conf.dev_save_spob, filtered );
SDL_asprintf( &oldName, "%s/spob/%s.xml", conf.dev_data_dir,
filtered );
free( filtered );

filtered = uniedit_nameFilter( name );
SDL_asprintf( &newName, "%s/%s.xml", conf.dev_save_spob, filtered );
SDL_asprintf( &newName, "%s/spob/%s.xml", conf.dev_data_dir,
filtered );
free( filtered );

if ( rename( oldName, newName ) )
Expand Down Expand Up @@ -680,11 +682,12 @@ static void sysedit_btnRemove( unsigned int wid_unused, const char *unused )
if ( dialogue_YesNo( _( "Remove selected objects (excluding jumps)?" ),
_( "This can not be undone." ) ) ) {
for ( int i = 0; i < sysedit_nselect; i++ ) {
Select_t *sel = &sysedit_select[i];
const Select_t *sel = &sysedit_select[i];
if ( sel->type == SELECT_SPOB ) {
const Spob *sp = sysedit_sys->spobs[sel->u.spob];
char *filtered = uniedit_nameFilter( sp->name );
SDL_asprintf( &file, "%s/%s.xml", conf.dev_save_spob, filtered );
SDL_asprintf( &file, "%s/spob/%s.xml", conf.dev_data_dir,
filtered );
remove( file );

free( filtered );
Expand Down
2 changes: 1 addition & 1 deletion src/dev_system.c
Original file line number Diff line number Diff line change
Expand Up @@ -271,7 +271,7 @@ int dsys_saveSystem( StarSystem *sys )

/* Write data. */
cleanName = uniedit_nameFilter( sys->name );
SDL_asprintf( &file, "%s/%s.xml", conf.dev_save_sys, cleanName );
SDL_asprintf( &file, "%s/ssys/%s.xml", conf.dev_data_dir, cleanName );
if ( xmlSaveFileEnc( file, doc, "UTF-8" ) < 0 )
WARN( "Failed writing '%s'!", file );

Expand Down
6 changes: 4 additions & 2 deletions src/dev_uniedit.c
Original file line number Diff line number Diff line change
Expand Up @@ -1525,11 +1525,13 @@ static void uniedit_renameSys( void )

/* Change the name. */
filtered = uniedit_nameFilter( sys->name );
SDL_asprintf( &oldName, "%s/%s.xml", conf.dev_save_sys, filtered );
SDL_asprintf( &oldName, "%s/ssys/%s.xml", conf.dev_data_dir,
filtered );
free( filtered );

filtered = uniedit_nameFilter( name );
SDL_asprintf( &newName, "%s/%s.xml", conf.dev_save_sys, filtered );
SDL_asprintf( &newName, "%s/ssys/%s.xml", conf.dev_data_dir,
filtered );
free( filtered );

if ( rename( oldName, newName ) )
Expand Down
4 changes: 1 addition & 3 deletions src/nlua_naev.c
Original file line number Diff line number Diff line change
Expand Up @@ -574,9 +574,7 @@ static int naevL_conf( lua_State *L )
PUSH_STRING( L, "last_version", conf.lastversion );
PUSH_BOOL( L, "translation_warning_seen", conf.translation_warning_seen );
PUSH_BOOL( L, "fpu_except", conf.fpu_except );
PUSH_STRING( L, "dev_save_sys", conf.dev_save_sys );
PUSH_STRING( L, "dev_save_map", conf.dev_save_map );
PUSH_STRING( L, "dev_save_spob", conf.dev_save_spob );
PUSH_STRING( L, "dev_data_dir", conf.dev_data_dir );
return 1;
}
#undef PUSH_STRING
Expand Down

0 comments on commit b2681d9

Please sign in to comment.