int db_meters(t_engine *e) { int i; if (!xml_next("meters")) return (put_error("Not found meters in xml")); e->db.meters = (t_base_meter*)xmalloc(sizeof(*e->db.meters)); i = 0; while (i < e->db.nb_meters) { if (!xml_next("meter")) return (put_error("Not enough meter with the index table\n")); e->db.meters[i].name = xml_getstr("name"); e->db.meters[i].type = xml_getstr("type"); e->db.meters[i].value = xml_getint("value"); e->db.meters[i].rr = xml_getint("rr"); e->db.meters[i].is = xml_getint("is"); e->db.meters[i].sr = xml_getint("sr"); e->db.meters[i].sx = xml_getint("sx"); e->db.meters[i].kv = xml_getint("kv"); e->db.meters[i].min = xml_getint("min"); e->db.meters[i++].max = xml_getint("max"); e->db.meters = (t_base_meter*)xrealloc(e->db.meters, sizeof(*e->db.meters) * (i + 1)); xml_out(); } e->db.meters[i].name = 0; xml_out(); return (0); }
int db_weapon(t_engine *e, t_db_ind *ind) { int i; char *buf; int n; if (!xml_next("weapons")) return (put_error("Weapons not found in xml")); for (i = 0; i < ind->nb[TYPE_WEAPONS]; i++) { if (!xml_next("weapon")) return (put_error("Not enough weapon in xml")); if (!(e->db.weapons[i].name = xml_getstr("name"))) return (put_error("Weapon without name !")); e->db.weapons[i].dmg = xml_getint("damage"); e->db.weapons[i].rof = xml_getint("rof"); e->db.weapons[i].range = xml_getint("range"); buf = xml_getstr("projectile"); for (n = 0; n < e->db.nb_instants; n++) if (!strcmp(e->db.instants[n].name, buf)) break; free(buf); if (n && n >= e->db.nb_instants) return (put_error("Weapon with Projectile not found")); e->db.weapons[i].projectile = &e->db.instants[n]; if (!xml_next("types")) return (put_error("Weapon without type was found")); e->db.weapons[i].allowed = db_get_types(e); xml_out(); xml_out(); } xml_out(); return (0); }
int main(void){ char line[100]; char text[10000] = ""; FILE * fr = fopen("musicians.xml", "r"); while(fgets(line, 100, fr)){ strcat(text, line); } list_t *teachers = list_new(); xml_extract(text, teachers); xml_out(text); http_request_startServer(teachers); list_free(teachers); return 0; }
int db_base_instant(t_engine *e, t_db_ind *ind) { int i; for (i = 0; i < ind->nb[TYPE_INSTANTS]; i++) { if (!xml_next("instant")) return (put_error("Not found instants in xml")); e->db.instants[i].name = xml_getstr("name"); e->db.instants[i].idsprite = unpack_sprite(xml_getstr("sprite")); e->db.instants[i].idtaunt = unpack_taunt(xml_getstr("taunt")); e->db.instants[i].damage = xml_getint("damage"); e->db.instants[i].splash = xml_getint("splash"); e->db.instants[i].speed = xml_getint("speed"); e->db.instants[i].time = xml_getint("time"); xml_out(); } return (0); }