Dereference the pointer:
Still, this is no good - you created an XP object and then forgot about it. The server is leaking memory. You need to add the XP object into the world's list of entities, so that the world object will keep track of it and eventually destroy it.
Finally, I got this megacommit off my chest. I've more or less rewritten the entire furnace entity, and it was pain in the ***. Who would've thought furnaces are so complicated?
Note that the furnace.txt file has changed, too, the time units used are different now, so unless you want to spend ages waiting for items to smelt, you need to update yours to the svn version, too. Furnaces now use integral ticks, rather than seconds, to measure time for smelting and burning.
m_World->BroadcastExperienceOrb(*XP, (int)(GetPosX() * 8), (int)(GetPosY() * 8), (int)(GetPosZ() * 8), 2 );
Still, this is no good - you created an XP object and then forgot about it. The server is leaking memory. You need to add the XP object into the world's list of entities, so that the world object will keep track of it and eventually destroy it.
Finally, I got this megacommit off my chest. I've more or less rewritten the entire furnace entity, and it was pain in the ***. Who would've thought furnaces are so complicated?
Note that the furnace.txt file has changed, too, the time units used are different now, so unless you want to spend ages waiting for items to smelt, you need to update yours to the svn version, too. Furnaces now use integral ticks, rather than seconds, to measure time for smelting and burning.