/**********************************************************************
This file is part of Crack dot Com's free source code release of Golgotha.
for information about compiling & licensing issues visit this URL
 If that doesn't help, contact Jonathan Clark at 
  golgotha_source@usa.net (Subject should have "GOLG" in it) 
***********************************************************************/

#include "sound/sound3d.hh"

i4_3d_vector i4_3d_sound_parameters::null(0,0,0);

class i4_null_3d_voice_class : public i4_3d_voice_class
//{{{
{
protected:
  completion_function_type complete;
  void *context;
public:
  i4_null_3d_voice_class() : i4_3d_voice_class(), complete(0), context(0) {}

  virtual void set_completer(completion_function_type _complete, void *_context)
  //{{{
  {
    complete = _complete;
    context = _context;
  }
  //}}}
  virtual void play() { if (complete) (*complete)(this); }
  virtual void update() {}
};
//}}}

class i4_null_3d_sound_class : public i4_3d_sound_manager_class
//{{{
{
public:
  i4_null_3d_voice_class null_3d_voice;

  I4_SOUND_NAME("No 3D sound");

  virtual void init() {}
  virtual void load_sounds(w32 max_sounds) { }

  virtual i4_3d_voice_class *alloc(i4_sound_id sound_id, const i4_3d_sound_parameters& param)
  //{{{
  {
    return &null_3d_voice;
  }
  //}}}
};
//}}}

i4_null_3d_sound_class i4_null_3d_sound;

i4_3d_sound_manager_class *i4_3d_sound_man = &i4_null_3d_sound;

//{{{ Emacs Locals
// Local Variables:
// folded-file: t
// End:
//}}}