static void print_game_configs(FILE *out, const game_driver *game, const input_port_config *portlist) { const input_port_config *port; const input_field_config *field; /* iterate looking for configurations */ for (port = portlist; port != NULL; port = port->next) for (field = port->fieldlist; field != NULL; field = field->next) if (field->type == IPT_CONFIG) { const input_setting_config *setting; /* output the configuration name information */ fprintf(out, "\t\t<configuration name=\"%s\">\n", xml_normalize_string(input_field_name(field))); /* loop over settings */ for (setting = field->settinglist; setting != NULL; setting = setting->next) { fprintf(out, "\t\t\t<confsetting name=\"%s\"", xml_normalize_string(setting->name)); if (setting->value == field->defvalue) fprintf(out, " default=\"yes\""); fprintf(out, "/>\n"); } /* terminate the configuration entry */ fprintf(out, "\t\t</configuration>\n"); } }
void info_xml_creator::output_switches(const ioport_list &portlist, int type, const char *outertag, const char *innertag) { // iterate looking for DIP switches for (input_port_config *port = portlist.first(); port != NULL; port = port->next()) for (input_field_config *field = port->fieldlist().first(); field != NULL; field = field->next()) if (field->type == type) { // output the switch name information fprintf(m_output, "\t\t<%s name=\"%s\"", outertag, xml_normalize_string(input_field_name(field))); fprintf(m_output, " tag=\"%s\"", xml_normalize_string(field->port().tag())); fprintf(m_output, " mask=\"%u\"", field->mask); fprintf(m_output, ">\n"); // loop over settings for (input_setting_config *setting = field->settinglist().first(); setting != NULL; setting = setting->next()) { fprintf(m_output, "\t\t\t<%s name=\"%s\"", innertag, xml_normalize_string(setting->name)); fprintf(m_output, " value=\"%u\"", setting->value); if (setting->value == field->defvalue) fprintf(m_output, " default=\"yes\""); fprintf(m_output, "/>\n"); } // terminate the switch entry fprintf(m_output, "\t\t</%s>\n", outertag); } }
static const input_setting_config *find_switch(running_machine &machine, const char *switch_name, const char *switch_setting, int switch_type, int *found_field) { int found = FALSE; const input_port_config *port; const input_field_config *field = NULL; const input_setting_config *setting = NULL; /* find switch with the name */ found = FALSE; for (port = machine.m_portlist.first(); !found && (port != NULL); port = port->next()) { for (field = port->fieldlist; !found && (field != NULL); field = field->next) { if (field->type == switch_type && input_field_name(field) && !mame_stricmp(input_field_name(field), switch_name)) found = TRUE; } } /* did we find the field? */ if (field != NULL) { /* we did find the field - now find the setting */ for (setting = field->settinglist; setting != NULL; setting = setting->next) { if (setting->name != NULL && !mame_stricmp(setting->name, switch_setting)) break; } } /* return whether the field was found at all, if we're asked that */ if (found_field != NULL) *found_field = (field != NULL); return setting; }
void info_xml_creator::output_categories(const ioport_list &portlist) { // iterate looking for Categories for (input_port_config *port = portlist.first(); port != NULL; port = port->next()) for (input_field_config *field = port->fieldlist().first(); field != NULL; field = field->next()) if (field->type == IPT_CATEGORY) { // output the category name information fprintf(m_output, "\t\t<category name=\"%s\">\n", xml_normalize_string(input_field_name(field))); // loop over item settings for (input_setting_config *setting = field->settinglist().first(); setting != NULL; setting = setting->next()) { fprintf(m_output, "\t\t\t<item name=\"%s\"", xml_normalize_string(setting->name)); if (setting->value == field->defvalue) fprintf(m_output, " default=\"yes\""); fprintf(m_output, "/>\n"); } // terminate the category entry fprintf(m_output, "\t\t</category>\n"); } }
static void print_game_adjusters(FILE *out, const game_driver *game, const input_port_config *portlist) { const input_port_config *port; const input_field_config *field; /* iterate looking for Adjusters */ for (port = portlist; port != NULL; port = port->next) for (field = port->fieldlist; field != NULL; field = field->next) if (field->type == IPT_ADJUSTER) { /* output the adjuster information */ fprintf(out, "\t\t<adjuster name=\"%s\" default=\"%d\"/>\n", xml_normalize_string(input_field_name(field)), field->defvalue); } }
void info_xml_creator::output_adjusters(const ioport_list &portlist) { // iterate looking for Adjusters for (input_port_config *port = portlist.first(); port != NULL; port = port->next()) for (input_field_config *field = port->fieldlist().first(); field != NULL; field = field->next()) if (field->type == IPT_ADJUSTER) fprintf(m_output, "\t\t<adjuster name=\"%s\" default=\"%d\"/>\n", xml_normalize_string(input_field_name(field)), field->defvalue); }