… | |
… | |
667 | object::instantiate () |
667 | object::instantiate () |
668 | { |
668 | { |
669 | if (!uuid.seq) // HACK |
669 | if (!uuid.seq) // HACK |
670 | uuid = UUID::gen (); |
670 | uuid = UUID::gen (); |
671 | |
671 | |
672 | // TODO: unclean state changes, should nt be done in copy_to AND instantiate |
672 | // TODO: unclean state changes, should not be done in copy_to AND instantiate |
673 | if (flag [FLAG_RANDOM_SPEED] && speed) |
673 | if (flag [FLAG_RANDOM_SPEED] && speed) |
674 | speed_left = - speed - rndm (); // TODO animation |
674 | speed_left = - speed - rndm (); // TODO animation |
675 | else |
675 | else |
676 | speed_left = -1.; |
676 | speed_left = -1.; |
677 | |
677 | |
… | |
… | |
1182 | |
1182 | |
1183 | if (pl && pl->is_player ()) |
1183 | if (pl && pl->is_player ()) |
1184 | { |
1184 | { |
1185 | if (expect_false (pl->contr->combat_ob == this)) |
1185 | if (expect_false (pl->contr->combat_ob == this)) |
1186 | { |
1186 | { |
1187 | pl->apply (pl->contr->combat_ob, AP_UNAPPLY); |
1187 | pl->apply (pl->contr->combat_ob, AP_UNAPPLY | AP_IGNORE_CURSE); |
1188 | pl->contr->combat_ob = 0; |
1188 | pl->contr->combat_ob = 0; |
1189 | if (pl->contr->ranged_ob) pl->apply (pl->contr->ranged_ob); |
1189 | if (pl->contr->ranged_ob) pl->apply (pl->contr->ranged_ob); |
1190 | } |
1190 | } |
1191 | |
1191 | |
1192 | if (expect_false (pl->contr->ranged_ob == this)) |
1192 | if (expect_false (pl->contr->ranged_ob == this)) |
1193 | { |
1193 | { |
1194 | pl->apply (pl->contr->ranged_ob, AP_UNAPPLY); |
1194 | pl->apply (pl->contr->ranged_ob, AP_UNAPPLY | AP_IGNORE_CURSE); |
1195 | pl->contr->ranged_ob = 0; |
1195 | pl->contr->ranged_ob = 0; |
1196 | if (pl->contr->combat_ob) pl->apply (pl->contr->combat_ob); |
1196 | if (pl->contr->combat_ob) pl->apply (pl->contr->combat_ob); |
1197 | } |
1197 | } |
1198 | |
1198 | |
1199 | pl->contr->queue_stats_update (); |
1199 | pl->contr->queue_stats_update (); |
… | |
… | |
2816 | return contr->mark; |
2816 | return contr->mark; |
2817 | else |
2817 | else |
2818 | return 0; |
2818 | return 0; |
2819 | } |
2819 | } |
2820 | |
2820 | |
|
|
2821 | // put marked object first in the inventory |
|
|
2822 | // this is used by identify-like spells so players can influence |
|
|
2823 | // the order a bit. |
|
|
2824 | void |
|
|
2825 | object::splay_marked () |
|
|
2826 | { |
|
|
2827 | if (object *marked = mark ()) |
|
|
2828 | splay (marked); |
|
|
2829 | } |
|
|
2830 | |