X-Git-Url: https://notaz.gp2x.de/cgi-bin/gitweb.cgi?a=blobdiff_plain;f=platform%2Fcommon%2Fconfig.c;h=e2a23955e65b71869e0415d1f09a8f84a1d9b689;hb=08fe8094f754d7d7da4d9183d7a0c07abd4fc8b6;hp=534fb4000dea7abad9d5df987933a38f3fc32f86;hpb=1ca2ea4f60d990a4240a387fdde78a87f77f30f1;p=picodrive.git diff --git a/platform/common/config.c b/platform/common/config.c index 534fb40..e2a2395 100644 --- a/platform/common/config.c +++ b/platform/common/config.c @@ -21,10 +21,10 @@ extern const int cdopt_entry_count; static menu_entry *cfg_opts[] = { opt_entries, opt2_entries, cdopt_entries }; static const int *cfg_opt_counts[] = { &opt_entry_count, &opt2_entry_count, &cdopt_entry_count }; -#define NL "\n" +#define NL "\r\n" -static void mystrip(char *str) +static char *mystrip(char *str) { int i, len; @@ -32,10 +32,13 @@ static void mystrip(char *str) for (i = 0; i < len; i++) if (str[i] != ' ') break; if (i > 0) memmove(str, str + i, len - i + 1); + len = strlen(str); for (i = len - 1; i >= 0; i--) if (str[i] != ' ') break; str[i+1] = 0; + + return str; } @@ -167,22 +170,18 @@ static void keys_write(FILE *fn, const char *bind_str, const int binds[32], #endif for (i = 0; i < sizeof(me_ctrl_actions) / sizeof(me_ctrl_actions[0]); i++) { if (me_ctrl_actions[i].mask & binds[t]) { - sprintf(act, "player%i ", ((binds[t]>>16)&1)+1); - strncpy(act + 8, me_ctrl_actions[i].name, 31); - break; + strncpy(act, me_ctrl_actions[i].name, 31); + fprintf(fn, "%s %s = player%i %s" NL, bind_str, names[t], + ((binds[t]>>16)&1)+1, mystrip(act)); } } - if (act[0] == 0) - { - for (i = 0; emuctrl_actions[i].name != NULL; i++) - if (emuctrl_actions[i].mask & binds[t]) { - strncpy(act, emuctrl_actions[i].name, 31); - break; - } - } - mystrip(act); - fprintf(fn, "%s %s = %s" NL, bind_str, names[t], act); + for (i = 0; emuctrl_actions[i].name != NULL; i++) { + if (emuctrl_actions[i].mask & binds[t]) { + strncpy(act, emuctrl_actions[i].name, 31); + fprintf(fn, "%s %s = %s" NL, bind_str, names[t], mystrip(act)); + } + } } } @@ -323,6 +322,9 @@ write: keys_write(fn, "bind_joy2", currentConfig.JoyBinds[2], defaultConfig.JoyBinds[2], joyKeyNames, 1); keys_write(fn, "bind_joy3", currentConfig.JoyBinds[3], defaultConfig.JoyBinds[3], joyKeyNames, 1); + if (section == NULL) + fprintf(fn, "Sound Volume = %i" NL, currentConfig.volume); + fprintf(fn, NL); if (fo != NULL) @@ -351,7 +353,7 @@ int config_writelrom(const char *fname) int size; FILE *f; - if (strlen(lastRomFile) == 0) return 0; + if (strlen(lastRomFile) == 0) return -1; f = fopen(fname, "r"); if (f != NULL) @@ -566,9 +568,11 @@ static int custom_read(menu_entry *me, const char *var, const char *val) } +static unsigned int keys_encountered = 0; + static void keys_parse(const char *var, const char *val, int binds[32], const char *names[32]) { - int t, i, keys_encountered = 0; + int t, i; unsigned int player; for (t = 0; t < 32; t++) @@ -580,7 +584,7 @@ static void keys_parse(const char *var, const char *val, int binds[32], const ch return; } - if (!(keys_encountered & (1<