X-Git-Url: https://git.artsoft.org/?a=blobdiff_plain;ds=sidebyside;f=src%2Ffiles.c;h=9f92ad68cb84300f0e09883ac808a6803a4b153a;hb=4179dabc517f32c163c5d2c9aec2e15c57225d42;hp=91e597b1fb680e5367cb6ce4700311321b2bf6b0;hpb=5cdf02eb2a6d9627f7461ab9d386698cb7596096;p=rocksndiamonds.git diff --git a/src/files.c b/src/files.c index 91e597b1..9f92ad68 100644 --- a/src/files.c +++ b/src/files.c @@ -9807,6 +9807,15 @@ static void InitMenuDesignSettings_SpecialPreProcessing() menu.enter_screen[i] = menu.enter_screen[GFX_SPECIAL_ARG_DEFAULT]; menu.leave_screen[i] = menu.leave_screen[GFX_SPECIAL_ARG_DEFAULT]; } + + /* special case: initialize "ARG_DEFAULT" values in static default config */ + /* (eg, init "viewport.door_1.MAIN.xyz" from "viewport.door_1.xyz") */ + for (i = 0; i < NUM_SPECIAL_GFX_ARGS; i++) + { + viewport.playfield[i] = viewport.playfield[GFX_SPECIAL_ARG_DEFAULT]; + viewport.door_1[i] = viewport.door_1[GFX_SPECIAL_ARG_DEFAULT]; + viewport.door_2[i] = viewport.door_2[GFX_SPECIAL_ARG_DEFAULT]; + } } static void InitMenuDesignSettings_SpecialPostProcessing() @@ -9944,6 +9953,37 @@ static void LoadMenuDesignSettingsFromFilename(char *filename) value_6); } + /* special case: initialize with default values that may be overwritten */ + /* (eg, init "viewport.door_1.MAIN.xyz" from "viewport.door_1.xyz") */ + for (i = 0; i < NUM_SPECIAL_GFX_ARGS; i++) + { + char *token_1 = "viewport.playfield.width"; + char *token_2 = "viewport.playfield.height"; + char *token_3 = "viewport.door_1.x"; + char *token_4 = "viewport.door_1.y"; + char *token_5 = "viewport.door_2.x"; + char *token_6 = "viewport.door_2.y"; + char *value_1 = getHashEntry(setup_file_hash, token_1); + char *value_2 = getHashEntry(setup_file_hash, token_2); + char *value_3 = getHashEntry(setup_file_hash, token_3); + char *value_4 = getHashEntry(setup_file_hash, token_4); + char *value_5 = getHashEntry(setup_file_hash, token_5); + char *value_6 = getHashEntry(setup_file_hash, token_6); + + if (value_1 != NULL) + viewport.playfield[i].width = get_token_parameter_value(token_1,value_1); + if (value_2 != NULL) + viewport.playfield[i].height = get_token_parameter_value(token_2,value_2); + if (value_3 != NULL) + viewport.door_1[i].x = get_token_parameter_value(token_3, value_3); + if (value_4 != NULL) + viewport.door_1[i].y = get_token_parameter_value(token_4, value_4); + if (value_5 != NULL) + viewport.door_2[i].x = get_token_parameter_value(token_5, value_5); + if (value_6 != NULL) + viewport.door_2[i].y = get_token_parameter_value(token_6, value_6); + } + /* special case: initialize with default values that may be overwritten */ /* (e.g., init "titlemessage_1.fade_mode" from "[titlemessage].fade_mode") */ for (i = 0; titlemessage_arrays[i].array != NULL; i++)