void MapDrops::sendspawn(const DropSpawn& spawn) { int32_t oid = spawn.getoid(); Optional<Drop> drop = getdrop(oid); if (drop) { drop->makeactive(); } else { int32_t itemid = spawn.getitemid(); bool meso = spawn.ismeso(); if (meso) { MesoIcons::Type mesotype = (itemid > 999) ? MesoIcons::BAG : (itemid > 99) ? MesoIcons::BUNDLE : (itemid > 49) ? MesoIcons::GOLD : MesoIcons::BRONZE; drops.add( spawn.instantiate(meso_icons.get(mesotype)) ); } else { auto& itemdata = DataFactory::get().getitemdata(itemid); if (itemdata.isloaded()) { auto& icon = itemdata.geticon(true); drops.add( spawn.instantiate(&icon) ); } } } }
void MapDrops::sendspawn(const DropSpawn& spawn) { int32_t oid = spawn.getoid(); Optional<Drop> drop = getdrop(oid); if (drop) { drop->makeactive(); } else { int32_t itemid = spawn.getitemid(); bool meso = spawn.ismeso(); if (meso) { MesoType mesotype = (itemid > 999) ? BAG : (itemid > 99) ? BUNDLE : (itemid > 49) ? GOLD : BRONZE; if (mesoicons.count(mesotype)) { MesoDrop* newdrop = spawn.instantiate(&mesoicons[mesotype]); add(newdrop); } } else { auto& itemdata = DataFactory::get().getitemdata(itemid); if (itemdata.isloaded()) { auto& icon = itemdata.geticon(true); ItemDrop* newdrop = spawn.instantiate(&icon); add(newdrop); } } } }