cyberjunk / meridian59-dotnet

New 3D client and tools for Meridian 59
GNU General Public License v3.0
34 stars 36 forks source link

Sounds that originate at a battler are cut off when that battler leaves the room (is killed). #324

Open MorbusM59 opened 3 years ago

MorbusM59 commented 3 years ago

Most notably, this cuts off the sound of any killing blow on a mob. (The death scream originates at the corpse object and can be heard.)

This may sound like a low priority fix but feels super annoying in game. It takes away from the experience when the smackiness of a killing blow is gone and you are left wondering where the mob went because the lack of sound indicates a miss, not a hit.

Note: The sounds play when this part from RemoteNode.cpp (line 112) is removed. Not a solution of course. (Del already informed me that this would cause a memory leak.)

  // cleanup attached sounds
  if (sounds)
  {
     for(std::list<ISound*>::iterator it = sounds->begin(); it != sounds->end(); ++it)
     {
        ISound* sound = *it;
        sound->stop();
        sound->drop();
     }
     sounds->clear();
     delete sounds;
   }