… | |
… | |
514 | * temporarily to allow player to aviod exits/archs that are not |
514 | * temporarily to allow player to aviod exits/archs that are not |
515 | * fly_on, fly_off. This will also prevent pickup of objects |
515 | * fly_on, fly_off. This will also prevent pickup of objects |
516 | * while jumping over them. |
516 | * while jumping over them. |
517 | */ |
517 | */ |
518 | |
518 | |
519 | remove_ob (pl); |
519 | pl->remove (); |
520 | |
520 | |
521 | /* |
521 | /* |
522 | * I don't think this is actually needed - all the movement |
522 | * I don't think this is actually needed - all the movement |
523 | * code is handled in this function, and I don't see anyplace |
523 | * code is handled in this function, and I don't see anyplace |
524 | * that cares about the move_type being flying. |
524 | * that cares about the move_type being flying. |
… | |
… | |
1388 | if (newscroll->inv) |
1388 | if (newscroll->inv) |
1389 | { |
1389 | { |
1390 | object *ninv; |
1390 | object *ninv; |
1391 | |
1391 | |
1392 | ninv = newscroll->inv; |
1392 | ninv = newscroll->inv; |
1393 | remove_ob (ninv); |
1393 | ninv->remove (); |
1394 | free_object (ninv); |
1394 | ninv->destroy (0); |
1395 | } |
1395 | } |
1396 | tmp = get_object (); |
1396 | tmp = get_object (); |
1397 | copy_object (chosen_spell, tmp); |
1397 | copy_object (chosen_spell, tmp); |
1398 | insert_ob_in_ob (tmp, newscroll); |
1398 | insert_ob_in_ob (tmp, newscroll); |
1399 | |
1399 | |
… | |
… | |
1405 | |
1405 | |
1406 | /* wait until finished manipulating the scroll before inserting it */ |
1406 | /* wait until finished manipulating the scroll before inserting it */ |
1407 | if (newscroll == scroll) |
1407 | if (newscroll == scroll) |
1408 | { |
1408 | { |
1409 | /* Remove to correctly merge with other items which may exist in inventory */ |
1409 | /* Remove to correctly merge with other items which may exist in inventory */ |
1410 | remove_ob (newscroll); |
1410 | newscroll->remove (); |
1411 | esrv_del_item (pl->contr, newscroll->count); |
1411 | esrv_del_item (pl->contr, newscroll->count); |
1412 | } |
1412 | } |
1413 | newscroll = insert_ob_in_ob (newscroll, pl); |
1413 | newscroll = insert_ob_in_ob (newscroll, pl); |
1414 | esrv_send_item (pl, newscroll); |
1414 | esrv_send_item (pl, newscroll); |
1415 | success = calc_skill_exp (pl, newscroll, skill); |
1415 | success = calc_skill_exp (pl, newscroll, skill); |
… | |
… | |
1700 | |
1700 | |
1701 | if (!dir || (eff_str <= 1) || (mflags & P_OUT_OF_MAP) || (GET_MAP_MOVE_BLOCK (m, sx, sy) & MOVE_FLY_LOW)) |
1701 | if (!dir || (eff_str <= 1) || (mflags & P_OUT_OF_MAP) || (GET_MAP_MOVE_BLOCK (m, sx, sy) & MOVE_FLY_LOW)) |
1702 | { |
1702 | { |
1703 | |
1703 | |
1704 | /* bounces off 'wall', and drops to feet */ |
1704 | /* bounces off 'wall', and drops to feet */ |
1705 | remove_ob (throw_ob); |
1705 | throw_ob->remove (); |
1706 | throw_ob->x = part->x; |
1706 | throw_ob->x = part->x; |
1707 | throw_ob->y = part->y; |
1707 | throw_ob->y = part->y; |
1708 | insert_ob_in_map (throw_ob, part->map, op, 0); |
1708 | insert_ob_in_map (throw_ob, part->map, op, 0); |
1709 | if (op->type == PLAYER) |
1709 | if (op->type == PLAYER) |
1710 | { |
1710 | { |
… | |
… | |
1729 | */ |
1729 | */ |
1730 | |
1730 | |
1731 | if ((throw_ob = get_split_ob (throw_ob, 1)) == NULL) |
1731 | if ((throw_ob = get_split_ob (throw_ob, 1)) == NULL) |
1732 | { |
1732 | { |
1733 | throw_ob = left; |
1733 | throw_ob = left; |
1734 | remove_ob (left); |
1734 | left->remove (); |
1735 | if (op->type == PLAYER) |
1735 | if (op->type == PLAYER) |
1736 | esrv_del_item (op->contr, left->count); |
1736 | esrv_del_item (op->contr, left->count); |
1737 | } |
1737 | } |
1738 | else if (op->type == PLAYER) |
1738 | else if (op->type == PLAYER) |
1739 | { |
1739 | { |