/** * @brief Creates a new system. */ static void uniedit_newSys( double x, double y ) { char *name; StarSystem *sys; /* Get name. */ name = dialogue_inputRaw( "New Star System Creation", 1, 32, "What do you want to name the new system?" ); /* Abort. */ if (name == NULL) { dialogue_alert( "Star System creation aborted!" ); return; } /* Make sure there is no collision. */ if (uniedit_checkName( name )) { free(name); uniedit_newSys( x, y ); return; } /* Create the system. */ sys = system_new(); sys->name = name; sys->pos.x = x; sys->pos.y = y; sys->stars = 400; sys->radius = 10000.; /* Select new system. */ uniedit_deselect(); uniedit_selectAdd( sys ); }
/** * @brief Renames all the currently selected systems. */ static void uniedit_renameSys (void) { int i; char *name; StarSystem *sys; for (i=0; i<uniedit_nsys; i++) { sys = uniedit_sys[i]; /* Get name. */ name = dialogue_input( "Rename Star System", 1, 32, "What do you want to rename \er%s\e0?", sys->name ); /* Keep current name. */ if (name == NULL) continue; /* Try again. */ if (uniedit_checkName( name )) { free(name); i--; continue; } /* Change the name. */ free(sys->name); sys->name = name; } }
/** * @brief Renames all the currently selected systems. */ static void uniedit_renameSys (void) { int i, j; char *name, *oldName, *newName; StarSystem *sys; for (i=0; i<uniedit_nsys; i++) { sys = uniedit_sys[i]; /* Get name. */ name = dialogue_input( "Rename Star System", 1, 32, "What do you want to rename \er%s\e0?", sys->name ); /* Keep current name. */ if (name == NULL) continue; /* Try again. */ if (uniedit_checkName( name )) { free(name); i--; continue; } /* Change the name. */ oldName = malloc((14+strlen(sys->name))); nsnprintf(oldName,14+strlen(sys->name),"dat/ssys/%s.xml", uniedit_nameFilter(sys->name) ); newName = malloc(14+strlen(name)); nsnprintf(newName,14+strlen(name),"dat/ssys/%s.xml", uniedit_nameFilter(name) ); nfile_rename(oldName,newName); free(oldName); free(newName); free(sys->name); sys->name = name; if (conf.devautosave) { dsys_saveSystem(sys); /* Re-save adjacent systems. */ for (j=0; j<sys->njumps; j++) dsys_saveSystem( sys->jumps[j].target ); } } }
/** * @brief Creates a new system. */ static void uniedit_newSys( double x, double y ) { char *name; StarSystem *sys; /* Get name. */ name = dialogue_inputRaw( "New Star System Creation", 1, 32, "What do you want to name the new system?" ); /* Abort. */ if (name == NULL) { dialogue_alert( "Star System creation aborted!" ); return; } /* Make sure there is no collision. */ if (uniedit_checkName( name )) { free(name); uniedit_newSys( x, y ); return; } /* Transform coordinates back to normal if zoomed */ x /= uniedit_zoom; y /= uniedit_zoom; /* Create the system. */ sys = system_new(); sys->name = name; sys->pos.x = x; sys->pos.y = y; sys->stars = STARS_DENSITY_DEFAULT; sys->radius = RADIUS_DEFAULT; /* Select new system. */ uniedit_deselect(); uniedit_selectAdd( sys ); if (conf.devautosave) dsys_saveSystem( sys ); }
/** * @brief Renames all the currently selected systems. */ static void uniedit_renameSys (void) { int i; char *name, *oldName, *newName; StarSystem *sys; for (i=0; i<uniedit_nsys; i++) { sys = uniedit_sys[i]; /* Get name. */ name = dialogue_input( "Rename Star System", 1, 32, "What do you want to rename \er%s\e0?", sys->name ); /* Keep current name. */ if (name == NULL) continue; /* Try again. */ if (uniedit_checkName( name )) { free(name); i--; continue; } /* Change the name. */ oldName = malloc((16+strlen(sys->name))*sizeof(char)); nsnprintf(oldName,15+strlen(sys->name),"dat/ssys/%s.xml",sys->name); newName = malloc((16+strlen(name))*sizeof(char)); nsnprintf(newName,15+strlen(name),"dat/ssys/%s.xml",name); nfile_rename(oldName,newName); free(oldName); free(newName); free(sys->name); sys->name = name; dsys_saveSystem(sys); } }