Add -I flag to SDL Frotz to allow for setting the interpreter number.
authorDavid Griffith <dave@661.org>
Wed, 1 Aug 2018 04:21:59 +0000 (21:21 -0700)
committerDavid Griffith <dave@661.org>
Wed, 1 Aug 2018 04:35:42 +0000 (21:35 -0700)
src/sdl/sf_resource.c
src/sdl/sf_util.c

index ec6a10775f358c4b86e3cb30d039d9631f41a9d7..a65f3d278b1655974bed4e7027a98cd011c5c1e8 100644 (file)
@@ -449,7 +449,11 @@ void sf_readsettings(void)
   ResSnd = sf_GetProfileString("Resources","Snd",ResSnd);
 
 //printf("sf_readsettings\n");
-  h_interpreter_number = sf_GetProfileInt("Interpreter","Number",INTERP_AMIGA);
+  if (f_setup.interpreter_number == 0)
+    h_interpreter_number = sf_GetProfileInt("Interpreter","Number",INTERP_AMIGA);
+  else
+    h_interpreter_number = f_setup.interpreter_number;
+
   f_setup.err_report_mode = sf_GetProfileInt("Interpreter","Error Reporting",ERR_REPORT_ONCE);
   f_setup.ignore_errors = sf_GetProfileInt("Interpreter","Ignore Errors",0);
   f_setup.expand_abbreviations = sf_GetProfileInt("Interpreter","Expand Abbreviations",0);
@@ -1031,6 +1035,7 @@ void os_init_setup(void)
     f_setup.left_margin = 0;
     f_setup.right_margin = 0;
     f_setup.ignore_errors = 0;
+    f_setup.interpreter_number = 0;
     f_setup.piracy = 0;             /* enable the piracy opcode */
     f_setup.undo_slots = MAX_UNDO_SLOTS;
     f_setup.expand_abbreviations = 0;
index 1e5df1df3a889409c3750701d974be0f90c24c90..4ff43d97d9beb7e163a98ad13b274edfc6fae425 100644 (file)
@@ -121,6 +121,7 @@ static char *infos[] = {
        "-F   fullscreen mode",
        "-h # screen height",
        "-i   ignore runtime errors",
+       "-I # interpreter number",
        "-l # left margin",
        "-L   use local resources",
        "-o   watch object movement",
@@ -234,6 +235,8 @@ static void parse_options (int argc, char **argv)
            user_screen_height = num;
        if (c == 'i')
            f_setup.ignore_errors = 1;
+       if (c == 'I')
+           f_setup.interpreter_number = num;
        if (c == 'l')
            f_setup.left_margin = num;
        if (c == 'L')