Config::iterator drops = map->world->drops_config.find(util::to_string(this->id));
if (drops != map->world->drops_config.end())
{
std::vector<std::string> parts = util::explode(',', static_cast<std::string>((*drops).second));
if (parts.size() > 1)
{
if (parts.size() % 4 != 0)
{
Console::Wrn("skipping invalid drop data for NPC #%i", id);
return;
}
this->drops.resize(parts.size() / 4);
for (std::size_t i = 0; i < parts.size(); i += 4)
{
NPC_Drop *drop(new NPC_Drop);
drop->id = util::to_int(parts[i]);
drop->min = util::to_int(parts[i+1]);
drop->max = util::to_int(parts[i+2]);
drop->chance = util::to_float(parts[i+3]);
this->drops[i/4] = drop;
}
}
}