}
#endif
-void set_config_changed (void)
+void set_config_changed(int flags)
{
+ if (!config_changed) {
+ config_changed_flags = 0;
+ }
config_changed = 1;
+ config_changed_flags |= flags;
}
void config_check_vsync (void)
}
#endif
config_changed++;
- if (config_changed >= 3)
+ if (config_changed >= 3) {
config_changed = 0;
+ config_changed_flags = 0;
+ }
}
}
int input_device_match_mask;
};
-extern int config_changed;
-extern void config_check_vsync (void);
-extern void set_config_changed (void);
+extern int config_changed, config_changed_flags;
+extern void config_check_vsync(void);
+extern void set_config_changed(int flags = 0);
/* Contains the filename of .uaerc */
extern TCHAR optionsfile[];
0, 0, 0, 0,
-1
};
-static void *filtervars[] = {
+static void *filtervars_wp[] = {
&workprefs.gf[0].gfx_filter, &workprefs.gf[0].gfx_filter_filtermodeh,
&workprefs.gf[0].gfx_filter_vert_zoom, &workprefs.gf[0].gfx_filter_horiz_zoom,
&workprefs.gf[0].gfx_filter_vert_zoom_mult, &workprefs.gf[0].gfx_filter_horiz_zoom_mult,
&workprefs.gf[0].gfx_filter_left_border, &workprefs.gf[0].gfx_filter_right_border, &workprefs.gf[0].gfx_filter_top_border, &workprefs.gf[0].gfx_filter_bottom_border,
NULL
};
-static void *filtervars2[] = {
+static void *filtervars_cp[] = {
NULL, &currprefs.gf[0].gfx_filter_filtermodeh,
&currprefs.gf[0].gfx_filter_vert_zoom, &currprefs.gf[0].gfx_filter_horiz_zoom,
&currprefs.gf[0].gfx_filter_vert_zoom_mult, &currprefs.gf[0].gfx_filter_horiz_zoom_mult,
ok = 1;
} else {
TCHAR *p = tmp2;
- for (i = 0; filtervars[i]; i++) {
+ for (i = 0; filtervars_wp[i]; i++) {
if (i > 0) {
_tcscat (p, _T(","));
p++;
if (wParam == IDC_FILTERPRESETSAVE && userfilter && fkey) {
TCHAR *p = tmp2;
- for (i = 0; filtervars[i]; i++) {
+ for (i = 0; filtervars_wp[i]; i++) {
if (i > 0) {
_tcscat (p, _T(","));
p++;
}
if (filtertypes[i])
- _stprintf (p, _T("%f"), *((float*)filtervars[i]));
+ _stprintf (p, _T("%f"), *((float*)filtervars_wp[i]));
else
- _stprintf (p, _T("%d"), *((int*)filtervars[i]));
+ _stprintf (p, _T("%d"), *((int*)filtervars_wp[i]));
p += _tcslen (p);
}
if (ok == 0) {
_tcscat (s, _T(","));
t = _tcschr (s, ',');
*t++ = 0;
- for (i = 0; filtervars[i]; i++) {
+ for (i = 0; filtervars_wp[i]; i++) {
if (filtertypes[i])
- *((float*)filtervars[i]) = (float)_tstof (s);
+ *((float*)filtervars_wp[i]) = (float)_tstof (s);
else
- *((int*)filtervars[i]) = _tstol (s);
- if (filtervars2[i]) {
+ *((int*)filtervars_wp[i]) = _tstol (s);
+ if (filtervars_cp[i]) {
if (filtertypes[i])
- *((float*)filtervars2[i]) = *((float*)filtervars[i]);
+ *((float*)filtervars_cp[i]) = *((float*)filtervars_wp[i]);
else
- *((int*)filtervars2[i]) = *((int*)filtervars[i]);
+ *((int*)filtervars_cp[i]) = *((int*)filtervars_wp[i]);
}
s = t;
t = _tcschr (s, ',');
break;
*t++ = 0;
}
+ set_config_changed(4);
}
}
end: