示例#1
0
	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)
					);
				}
			}
		}
	}
示例#2
0
	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);
				}
			}
		}
	}