27 void addZone (
const zenkit::VZoneMusic& vob);
28 void addSound (
const zenkit::VSound& vob);
30 Sound addDlgSound(std::string_view s,
const Tempest::Vec3& pos,
float range, uint64_t &timeLen);
32 void aiOutput(
const Tempest::Vec3& pos, std::string_view outputname);
47 Tempest::SoundEffect eff;
56 void setOcclusion(
float occ);
57 void setVolume(
float v);
60 using PEffect = std::shared_ptr<Effect>;
62 void tickSoundZone(
Npc& player);
63 void tickSlot(std::vector<PEffect>& eff);
64 void tickSlot(
Effect& slot);
65 void initSlot(
Effect& slot);
68 Sound implAddSound(
const SoundFx& s,
const Tempest::Vec3& pos,
float rangeMax);
69 Sound implAddSound(Tempest::SoundEffect&& s,
const Tempest::Vec3& pos,
float rangeMax);
74 std::vector<Zone> zones;
75 std::unique_ptr<Zone> def;
77 uint64_t nextSoundUpdate=0;
78 Zone* currentZone =
nullptr;
83 std::unordered_map<std::string,PEffect> freeSlot;
84 std::vector<PEffect> effect;
85 std::vector<PEffect> effect3d;
86 std::vector<WSound> worldEff;
90 static const float maxDist;