--- deliantra/server/common/object.C 2009/11/10 16:29:20 1.304 +++ deliantra/server/common/object.C 2009/11/11 04:45:22 1.305 @@ -1128,18 +1128,13 @@ below = 0; env = 0; - /* NO_FIX_PLAYER is set when a great many changes are being - * made to players inventory. If set, avoiding the call - * to save cpu time. - */ - if (pl) - if (pl->is_player () && (glow_radius || !QUERY_FLAG (pl, FLAG_NO_FIX_PLAYER))) - { - pl->update_stats (); + if (pl && pl->is_player ()) + { + pl->contr->queue_stats_update (); - if (glow_radius && pl->is_on_map ()) - update_all_los (pl->map, pl->x, pl->y); - } + if (glow_radius && pl->is_on_map ()) + update_all_los (pl->map, pl->x, pl->y); + } } else if (map) { @@ -1740,9 +1735,9 @@ update_stats (); update_all_los (map, x, y); } - else if (is_player () && !flag [FLAG_NO_FIX_PLAYER]) + else if (is_player ()) // if this is a player's inventory, update stats - update_stats (); + contr->queue_stats_update (); INVOKE_OBJECT (INSERT, this);