From f6ced470369099e3d837e661b59f9dc539ebde70 Mon Sep 17 00:00:00 2001 From: Franklin Wei Date: Sat, 26 Mar 2016 20:47:42 -0400 Subject: fix drop bug --- src/server_reqs.c | 13 ++++++++----- 1 file changed, 8 insertions(+), 5 deletions(-) (limited to 'src/server_reqs.c') diff --git a/src/server_reqs.c b/src/server_reqs.c index fffdee1..f76b8a7 100644 --- a/src/server_reqs.c +++ b/src/server_reqs.c @@ -466,14 +466,17 @@ static void req_drop(unsigned char *data, size_t datalen, struct child_data *sen const struct multimap_list *next = iter->next; struct object_t *obj = iter->val; - if(!obj->class->hook_drop || (obj->class->hook_drop && obj->class->hook_drop(obj, sender))) + room_obj_add(sender->room, obj_dup(obj)); + userdb_del_obj_by_ptr(sender->user, obj); + + if(obj->class->hook_drop && !obj->class->hook_drop(obj, sender)) { - send_msg(sender, "Dropped.\n"); - room_obj_add(sender->room, obj_dup(obj)); - userdb_del_obj_by_ptr(sender->user, obj); + send_msg(sender, "You cannot drop that.\n"); + userdb_add_obj(sender->user, obj_dup(obj)); + room_obj_del_by_ptr(sender->room, obj); } else - send_msg(sender, "You cannot drop that.\n"); + send_msg(sender, "Dropped.\n"); iter = next; } -- cgit v1.1