- char *token_w1 = "viewport.window.width";
- char *token_w2 = "viewport.window.height";
- char *token_01 = "viewport.playfield.x";
- char *token_02 = "viewport.playfield.y";
- char *token_03 = "viewport.playfield.width";
- char *token_04 = "viewport.playfield.height";
- char *token_05 = "viewport.playfield.border_size";
- char *token_06 = "viewport.door_1.x";
- char *token_07 = "viewport.door_1.y";
- char *token_08 = "viewport.door_1.width";
- char *token_09 = "viewport.door_1.height";
- char *token_10 = "viewport.door_1.border_size";
- char *token_11 = "viewport.door_2.x";
- char *token_12 = "viewport.door_2.y";
- char *token_13 = "viewport.door_2.width";
- char *token_14 = "viewport.door_2.height";
- char *token_15 = "viewport.door_2.border_size";
- char *value_w1 = getHashEntry(setup_file_hash, token_w1);
- char *value_w2 = getHashEntry(setup_file_hash, token_w2);
- char *value_01 = getHashEntry(setup_file_hash, token_01);
- char *value_02 = getHashEntry(setup_file_hash, token_02);
- char *value_03 = getHashEntry(setup_file_hash, token_03);
- char *value_04 = getHashEntry(setup_file_hash, token_04);
- char *value_05 = getHashEntry(setup_file_hash, token_05);
- char *value_06 = getHashEntry(setup_file_hash, token_06);
- char *value_07 = getHashEntry(setup_file_hash, token_07);
- char *value_08 = getHashEntry(setup_file_hash, token_08);
- char *value_09 = getHashEntry(setup_file_hash, token_09);
- char *value_10 = getHashEntry(setup_file_hash, token_10);
- char *value_11 = getHashEntry(setup_file_hash, token_11);
- char *value_12 = getHashEntry(setup_file_hash, token_12);
- char *value_13 = getHashEntry(setup_file_hash, token_13);
- char *value_14 = getHashEntry(setup_file_hash, token_14);
- char *value_15 = getHashEntry(setup_file_hash, token_15);
-
- if (value_w1 != NULL)
- viewport.window[i].width = get_token_parameter_value(token_w1, value_w1);
- if (value_w2 != NULL)
- viewport.window[i].height = get_token_parameter_value(token_w2, value_w2);
- if (value_01 != NULL)
- viewport.playfield[i].x = get_token_parameter_value(token_01, value_01);
- if (value_02 != NULL)
- viewport.playfield[i].y = get_token_parameter_value(token_02, value_02);
- if (value_03 != NULL)
- viewport.playfield[i].width = get_token_parameter_value(token_03,
- value_03);
- if (value_04 != NULL)
- viewport.playfield[i].height = get_token_parameter_value(token_04,
- value_04);
- if (value_05 != NULL)
- viewport.playfield[i].border_size = get_token_parameter_value(token_05,
- value_05);
- if (value_06 != NULL)
- viewport.door_1[i].x = get_token_parameter_value(token_06, value_06);
- if (value_07 != NULL)
- viewport.door_1[i].y = get_token_parameter_value(token_07, value_07);
- if (value_08 != NULL)
- viewport.door_1[i].width = get_token_parameter_value(token_08, value_08);
- if (value_09 != NULL)
- viewport.door_1[i].height = get_token_parameter_value(token_09, value_09);
- if (value_10 != NULL)
- viewport.door_1[i].border_size = get_token_parameter_value(token_10,
- value_10);
- if (value_11 != NULL)
- viewport.door_2[i].x = get_token_parameter_value(token_11, value_11);
- if (value_12 != NULL)
- viewport.door_2[i].y = get_token_parameter_value(token_12, value_12);
- if (value_13 != NULL)
- viewport.door_2[i].width = get_token_parameter_value(token_13, value_13);
- if (value_14 != NULL)
- viewport.door_2[i].height = get_token_parameter_value(token_14, value_14);
- if (value_15 != NULL)
- viewport.door_1[i].border_size = get_token_parameter_value(token_15,
- value_15);
+ struct
+ {
+ char *token_prefix;
+ struct RectWithBorder *struct_ptr;
+ }
+ vp_struct[] =
+ {
+ { "viewport.window", &viewport.window[i] },
+ { "viewport.playfield", &viewport.playfield[i] },
+ { "viewport.door_1", &viewport.door_1[i] },
+ { "viewport.door_2", &viewport.door_2[i] }
+ };
+
+ for (j = 0; j < ARRAY_SIZE(vp_struct); j++)
+ {
+ struct TokenIntPtrInfo vp_config[] =
+ {
+ { ".x", &vp_struct[j].struct_ptr->x },
+ { ".y", &vp_struct[j].struct_ptr->y },
+ { ".width", &vp_struct[j].struct_ptr->width },
+ { ".height", &vp_struct[j].struct_ptr->height },
+ { ".border_size", &vp_struct[j].struct_ptr->border_size }
+ };
+
+ for (k = 0; k < ARRAY_SIZE(vp_config); k++)
+ {
+ char *token = getStringCat2(vp_struct[j].token_prefix,
+ vp_config[k].token);
+ char *value = getHashEntry(setup_file_hash, token);
+
+ if (value != NULL)
+ *vp_config[k].value = get_token_parameter_value(token, value);
+
+ free(token);
+ }
+ }