diff options
-rw-r--r-- | src/game-server/state.cpp | 17 |
1 files changed, 17 insertions, 0 deletions
diff --git a/src/game-server/state.cpp b/src/game-server/state.cpp index 2972bd06..3cfb0e76 100644 --- a/src/game-server/state.cpp +++ b/src/game-server/state.cpp @@ -360,6 +360,23 @@ void State::remove(Thing *ptr) } } } + else if (ptr->getType() == OBJECT_ITEM) + { + Item *obj = static_cast< Item * >(ptr); + Point pos = obj->getPosition(); + MessageOut msg(GPMSG_ITEMS); + msg.writeShort(0); + msg.writeShort(pos.x); + msg.writeShort(pos.y); + + for (PlayerIterator p(map->getAroundObjectIterator(obj, AROUND_AREA)); p; ++p) + { + if (pos.inRangeOf((*p)->getPosition(), AROUND_AREA)) + { + gameHandler->sendTo(*p, msg); + } + } + } map->remove(ptr); } |