aboutsummaryrefslogtreecommitdiff
path: root/src/server_reqs.c
diff options
context:
space:
mode:
authorFranklin Wei <git@fwei.tk>2016-03-26 20:47:42 -0400
committerFranklin Wei <git@fwei.tk>2016-03-26 20:47:42 -0400
commitf6ced470369099e3d837e661b59f9dc539ebde70 (patch)
tree19b10984b9670f21a421f61d11a29fb83b51db6f /src/server_reqs.c
parenteb8b5907df2cf3c4b593197d40d10e83e6943ee3 (diff)
downloadnetcosm-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.c13
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;
}