version 1.114 | | version 1.115 |
---|
| | |
/* | | /* |
* static char *rcsid_apply_c = | | * static char *rcsid_apply_c = |
* "$Id: apply.c,v 1.114 2004/10/18 06:54:36 mwedel Exp $"; | | * "$Id: apply.c,v 1.115 2004/12/29 08:45:07 mwedel Exp $"; |
*/ | | */ |
/* | | /* |
CrossFire, A Multiplayer game for X-windows | | CrossFire, A Multiplayer game for X-windows |
| | |
} | | } |
} | | } |
| | |
if (QUERY_FLAG(op, FLAG_UNPAID)) { | | /* Don't teleport things like spell effects */ |
| | if (QUERY_FLAG(op, FLAG_NO_PICK)) return 0; |
| | |
| | /* unpaid objects, or non living objects, can't transfer by |
| | * shop mats. Instead, put it on a nearby space. |
| | */ |
| | if (QUERY_FLAG(op, FLAG_UNPAID) || !QUERY_FLAG(op, FLAG_ALIVE)) { |
| | |
/* Somebody dropped an unpaid item, just move to an adjacent place. */ | | /* Somebody dropped an unpaid item, just move to an adjacent place. */ |
int i = find_free_spot (op->arch, op->map, op->x, op->y, 1, 9); | | int i = find_free_spot (op->arch, op->map, op->x, op->y, 1, 9); |
| | |
rv = transfer_ob (op, op->x + freearr_x[i], op->y + freearr_y[i], 0, | | rv = transfer_ob (op, op->x + freearr_x[i], op->y + freearr_y[i], 0, |
shop_mat); | | shop_mat); |
} | | } |
| | return 0; |
} | | } |
/* Don't teleport things like spell effects */ | | |
if (QUERY_FLAG(op, FLAG_NO_PICK)) return 0; | | |
| | |
/* Removed code that checked for multipart objects - it appears that | | /* Removed code that checked for multipart objects - it appears that |
* the teleport function should be able to handle this just fine. | | * the teleport function should be able to handle this just fine. |
*/ | | */ |