bool armory_t::download_slot( item_t& item, const std::string& id_str, int cache_only ) { player_t* p = item.player; xml_node_t* slot_xml = download_item_tooltip( p, id_str, item.slot, cache_only ); if ( ! slot_xml ) { if ( ! cache_only ) item.sim -> errorf( "Unable to download item %s from armory at slot %d for player %s\n", id_str.c_str(), item.slot, p -> name() ); return false; } if ( ! parse_item_name( item, slot_xml ) ) { item.sim -> errorf( "Player %s unable to parse name for item %s at slot %s.\n", p -> name(), id_str.c_str(), item.slot_name() ); return false; } if ( ! parse_item_heroic( item, slot_xml ) ) { item.sim -> errorf( "Player %s unable to parse heroic flag for item %s at slot %s.\n", p -> name(), id_str.c_str(), item.slot_name() ); return false; } if ( ! parse_item_stats( item, slot_xml ) ) { item.sim -> errorf( "Player %s unable to parse stats for item \"%s\" at slot %s.\n", p -> name(), item.name(), item.slot_name() ); return false; } if ( ! parse_item_gems( item, slot_xml ) ) { item.sim -> errorf( "Player %s unable to parse gems for item \"%s\" at slot %s.\n", p -> name(), item.name(), item.slot_name() ); return false; } if ( ! parse_item_enchant( item, slot_xml ) ) { item.sim -> errorf( "Player %s unable to parse enchant for item \"%s\" at slot %s.\n", p -> name(), item.name(), item.slot_name() ); return false; } if ( ! parse_item_weapon( item, slot_xml ) ) { item.sim -> errorf( "Player %s unable to parse weapon info for item \"%s\" at slot %s.\n", p -> name(), item.name(), item.slot_name() ); return false; } return true; }
bool item_database_t::load_item_from_data( item_t& item, const item_data_t* item_data ) { if ( ! item_data ) return false; parse_item_name( item, item_data ); parse_item_quality( item, item_data ); parse_item_level( item, item_data ); parse_item_heroic( item, item_data ); parse_item_lfr( item, item_data ); parse_item_armor_type( item, item_data ); parse_item_stats( item, item_data ); parse_weapon_type( item, item_data ); return true; }
bool wowhead_t::download_slot( item_t& item, const std::string& item_id, const std::string& enchant_id, const std::string& addon_id, const std::string& reforge_id, const std::string& rsuffix_id, const std::string gem_ids[ 3 ], bool ptr, cache::behavior_t caching ) { player_t* p = item.player; xml_node_t* node = download_id( item.sim, item_id, caching, ptr ); if ( ! node ) { if ( caching != cache::ONLY ) item.sim -> errorf( "Player %s unable to download item id '%s' from wowhead at slot %s.\n", p -> name(), item_id.c_str(), item.slot_name() ); return false; } if ( ! parse_item_name( item, node ) ) { item.sim -> errorf( "Player %s unable to determine item name for id '%s' at slot %s.\n", p -> name(), item_id.c_str(), item.slot_name() ); return false; } if ( ! parse_item_quality( item, node ) ) { item.sim -> errorf( "Player %s unable to determine item quality for id '%s' at slot %s.\n", p -> name(), item_id.c_str(), item.slot_name() ); return false; } if ( ! parse_item_level( item, node ) ) { item.sim -> errorf( "Player %s unable to determine item level for id '%s' at slot %s.\n", p -> name(), item_id.c_str(), item.slot_name() ); return false; } if ( ! parse_item_heroic( item, node ) ) { item.sim -> errorf( "Player %s unable to determine heroic flag for id '%s' at slot %s.\n", p -> name(), item_id.c_str(), item.slot_name() ); return false; } if ( ! parse_item_lfr( item, node ) ) { item.sim -> errorf( "Player %s unable to determine LFR flag for id '%s' at slot %s.\n", p -> name(), item_id.c_str(), item.slot_name() ); return false; } if ( ! parse_item_armor_type( item, node ) ) { item.sim -> errorf( "Player %s unable to determine armor type for id %s at slot %s.\n", p -> name(), item_id.c_str(), item.slot_name() ); return false; } if ( ! parse_item_stats( item, node ) ) { item.sim -> errorf( "Player %s unable to determine stats for item '%s' at slot %s.\n", p -> name(), item.name(), item.slot_name() ); return false; } if ( ! parse_weapon( item, node ) ) { item.sim -> errorf( "Player %s unable to determine weapon info for item '%s' at slot %s.\n", p -> name(), item.name(), item.slot_name() ); return false; } if ( ! parse_item_reforge( item, node ) ) { item.sim -> errorf( "Player %s unable to determine reforge for item '%s' at slot %s.\n", p -> name(), item.name(), item.slot_name() ); return false; } if ( ! parse_gems( item, node, gem_ids ) ) { item.sim -> errorf( "Player %s unable to determine gems for item '%s' at slot %s.\n", p -> name(), item.name(), item.slot_name() ); return false; } if ( ! enchant_t::download( item, enchant_id ) ) { item.sim -> errorf( "Player %s unable to parse enchant id %s for item \"%s\" at slot %s.\n", p -> name(), enchant_id.c_str(), item.name(), item.slot_name() ); //return false; } if ( ! enchant_t::download_addon( item, addon_id ) ) { item.sim -> errorf( "Player %s unable to parse addon id %s for item \"%s\" at slot %s.\n", p -> name(), addon_id.c_str(), item.name(), item.slot_name() ); //return false; } if ( ! enchant_t::download_reforge( item, reforge_id ) ) { item.sim -> errorf( "Player %s unable to parse reforge id %s for item \"%s\" at slot %s.\n", p -> name(), reforge_id.c_str(), item.name(), item.slot_name() ); //return false; } if ( ! enchant_t::download_rsuffix( item, rsuffix_id ) ) { item.sim -> errorf( "Player %s unable to determine random suffix '%s' for item '%s' at slot %s.\n", p -> name(), rsuffix_id.c_str(), item.name(), item.slot_name() ); return false; } return true; }
bool wowhead_t::download_item( item_t& item, const std::string& item_id, bool ptr, cache::behavior_t caching ) { player_t* p = item.player; xml_node_t* node = download_id( item.sim, item_id, caching, ptr ); if ( ! node ) { if ( caching != cache::ONLY ) item.sim -> errorf( "Player %s unable to download item id '%s'' from wowhead at slot %s.\n", p -> name(), item_id.c_str(), item.slot_name() ); return false; } if ( ! parse_item_name( item, node ) ) { item.sim -> errorf( "Player %s unable to determine item name for id '%s'' at slot %s.\n", p -> name(), item_id.c_str(), item.slot_name() ); return false; } if ( ! parse_item_quality( item, node ) ) { item.sim -> errorf( "Player %s unable to determine item quality for id '%s' at slot %s.\n", p -> name(), item_id.c_str(), item.slot_name() ); return false; } if ( ! parse_item_level( item, node ) ) { item.sim -> errorf( "Player %s unable to determine item level for id '%s' at slot %s.\n", p -> name(), item_id.c_str(), item.slot_name() ); return false; } if ( ! parse_item_heroic( item, node ) ) { item.sim -> errorf( "Player %s unable to determine heroic flag for id %s at slot %s.\n", p -> name(), item_id.c_str(), item.slot_name() ); return false; } if ( ! parse_item_lfr( item, node ) ) { item.sim -> errorf( "Player %s unable to determine LFR flag for id %s at slot %s.\n", p -> name(), item_id.c_str(), item.slot_name() ); return false; } if ( ! parse_item_armor_type( item, node ) ) { item.sim -> errorf( "Player %s unable to determine armor type for id %s at slot %s.\n", p -> name(), item_id.c_str(), item.slot_name() ); return false; } if ( ! parse_item_stats( item, node ) ) { item.sim -> errorf( "Player %s unable to determine stats for item '%s' at slot %s.\n", p -> name(), item.name(), item.slot_name() ); return false; } if ( ! parse_weapon( item, node ) ) { item.sim -> errorf( "Player %s unable to determine weapon info for item '%s' at slot %s.\n", p -> name(), item.name(), item.slot_name() ); return false; } return true; }