1 | /* |
1 | /* |
2 | * This file is part of Deliantra, the Roguelike Realtime MMORPG. |
2 | * This file is part of Deliantra, the Roguelike Realtime MMORPG. |
3 | * |
3 | * |
4 | * Copyright (©) 2005,2006,2007 Marc Alexander Lehmann / Robin Redeker / the Deliantra team |
4 | * Copyright (©) 2005,2006,2007,2008 Marc Alexander Lehmann / Robin Redeker / the Deliantra team |
5 | * Copyright (©) 2003,2007 Mark Wedel & Crossfire Development Team |
5 | * Copyright (©) 2003,2007 Mark Wedel & Crossfire Development Team |
6 | * Copyright (©) 1992,2007 Frank Tore Johansen |
6 | * Copyright (©) 1992,2007 Frank Tore Johansen |
7 | * |
7 | * |
8 | * Deliantra is free software: you can redistribute it and/or modify |
8 | * Deliantra is free software: you can redistribute it and/or modify |
9 | * it under the terms of the GNU General Public License as published by |
9 | * it under the terms of the GNU General Public License as published by |
… | |
… | |
179 | /* for players, play_sound: steals item */ |
179 | /* for players, play_sound: steals item */ |
180 | success = tmp; |
180 | success = tmp; |
181 | CLEAR_FLAG (tmp, FLAG_INV_LOCKED); |
181 | CLEAR_FLAG (tmp, FLAG_INV_LOCKED); |
182 | |
182 | |
183 | /* Don't delete it from target player until we know |
183 | /* Don't delete it from target player until we know |
184 | * the thief has picked it up. can't just look at tmp->count, |
184 | * the thief has picked it up. can't just look at tmp->count, |
185 | * as it's possible that it got merged when picked up. |
185 | * as it's possible that it got merged when picked up. |
186 | */ |
186 | */ |
187 | if (op->type == PLAYER) |
187 | if (op->type == PLAYER) |
188 | esrv_del_item (op->contr, tmp->count); |
188 | esrv_del_item (op->contr, tmp->count); |
189 | } |
189 | } |
… | |
… | |
1678 | */ |
1678 | */ |
1679 | if (!(throw_ob = throw_ob->split ())) |
1679 | if (!(throw_ob = throw_ob->split ())) |
1680 | { |
1680 | { |
1681 | throw_ob = left; |
1681 | throw_ob = left; |
1682 | left->remove (); |
1682 | left->remove (); |
1683 | if (op->type == PLAYER) |
|
|
1684 | esrv_del_item (op->contr, left->count); |
|
|
1685 | } |
|
|
1686 | else if (op->type == PLAYER) |
|
|
1687 | { |
|
|
1688 | if (left->destroyed ()) |
|
|
1689 | esrv_del_item (op->contr, left->count); |
|
|
1690 | else |
|
|
1691 | esrv_update_item (UPD_NROF, op, left); |
|
|
1692 | } |
1683 | } |
1693 | |
1684 | |
1694 | /* special case: throwing powdery substances like dust, dirt */ |
1685 | /* special case: throwing powdery substances like dust, dirt */ |
1695 | if (throw_ob->type == POTION && throw_ob->subtype == POT_DUST) |
1686 | if (throw_ob->type == POTION && throw_ob->subtype == POT_DUST) |
1696 | { |
1687 | { |