diff options
| author | Franklin Wei <git@fwei.tk> | 2016-03-26 20:47:42 -0400 |
|---|---|---|
| committer | Franklin Wei <git@fwei.tk> | 2016-03-26 20:47:42 -0400 |
| commit | f6ced470369099e3d837e661b59f9dc539ebde70 (patch) | |
| tree | 19b10984b9670f21a421f61d11a29fb83b51db6f /src/server_reqs.c | |
| parent | eb8b5907df2cf3c4b593197d40d10e83e6943ee3 (diff) | |
| download | netcosm-f6ced470369099e3d837e661b59f9dc539ebde70.zip netcosm-f6ced470369099e3d837e661b59f9dc539ebde70.tar.gz netcosm-f6ced470369099e3d837e661b59f9dc539ebde70.tar.bz2 netcosm-f6ced470369099e3d837e661b59f9dc539ebde70.tar.xz | |
fix drop bug
Diffstat (limited to 'src/server_reqs.c')
| -rw-r--r-- | src/server_reqs.c | 13 |
1 files changed, 8 insertions, 5 deletions
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; } |