#include "mapentity.h"

.float soundflags;
.float trace_multiplier;

#ifdef SSQC

float SpeakerDynamic_SendEntity(entity to, float sendflags);

class info_speaker_static : map_entity_c
{
    info_speaker_static();

    virtual void GuardedConstructor();

    // .float soundflags;       <--- inherited
    // .float trace_multiplier; <--- inherited
};

class info_speaker_dynamic : map_entity_c
{
    info_speaker_dynamic();

    virtual void GuardedConstructor();

    void SpeakerDynamic_Use();
    void SpeakerDynamic_On();
    void SpeakerDynamic_Think();
    void SpeakerDynamic_Off();

    // .float soundflags;       <--- inherited
    // .float trace_multiplier; <--- inherited
};

class info_speaker : map_entity_c
{
    info_speaker();

    virtual void GuardedConstructor();

    void info_speaker_activate();
};
#endif

#ifdef CSQC

#define occlude_vol lerp_frac
#define occlude_attn lerp_time
#define occlude_vol_goal lerp_checktime
#define occlude_attn_goal lerp_stepsize
.float ltime;

void SoundSpace_AudioFlush();
void EntUpdate_SoundSpace(float is_new);
void EntUpdate_SpeakerDynamic(float is_new);
float SoundSpace_Physics();

class misc_soundspace : map_entity_c
{
    misc_soundspace();

    virtual void GuardedConstructor();

    // float ltime; <-- inherited
};
#endif