--- deliantra/server/common/object.C 2007/07/05 08:10:29 1.164 +++ deliantra/server/common/object.C 2007/08/01 01:53:13 1.170 @@ -301,14 +301,14 @@ return 0; } - //TODO: generate an event or call into perl for additional checks if (ob1->self || ob2->self) { ob1->optimise (); ob2->optimise (); if (ob1->self || ob2->self) - return 0; + if (!cfperl_can_merge (ob1, ob2)) + return 0; } /* Everything passes, must be OK. */ @@ -962,6 +962,8 @@ if (destroy_inventory) destroy_inv (false); + play_sound (sound_die); + attachable::destroy (); } @@ -1377,7 +1379,6 @@ top = last->below; } } /* If objects on this space */ - if (flag & INS_MAP_LOAD) top = ms.top; @@ -2642,13 +2643,10 @@ const materialtype_t * object::dominant_material () const { - if (materialtype_t *mat = name_to_material (materialname)) - return mat; - - // omfg this is slow, this has to be temporary :) - shstr unknown ("unknown"); + if (materialtype_t *mt = name_to_material (materialname)) + return mt; - return name_to_material (unknown); + return name_to_material (shstr_unknown); } void @@ -2734,4 +2732,3 @@ insert (force); } -