|
if not Platform.developer and not Platform.debug then |
|
return |
|
end |
|
|
|
if FirstLoad then |
|
PlayingSoundsTextsThread = false |
|
PlayingSoundsTextsMap = false |
|
ListenerText = false |
|
end |
|
|
|
function OnMsg.ChangeMap() |
|
DeleteThread(PlayingSoundsTextsThread) |
|
PlayingSoundsTextsMap = false |
|
end |
|
|
|
local function SetRenderStatistics(s) |
|
if hr.RenderStatistics ~= nil then |
|
hr.RenderStatistics = s |
|
end |
|
end |
|
|
|
function ToggleSoundDebug() |
|
local debug = listener and listener.Debug |
|
if not debug then return end |
|
listener.Debug = debug < 4 and ((debug + 1) % (listener.MaxDebug + 1)) or 1 |
|
hr.AudioVolumeDebug = listener.Debug ~= 0 |
|
|
|
UpdateSoundDebug() |
|
local info |
|
if listener.Debug == 0 then |
|
info = "disabled" |
|
elseif listener.Debug == 1 then |
|
info = "listener circle + vector to playing objects" |
|
elseif listener.Debug == 2 then |
|
info = " + loud distance circle + volume visualization" |
|
elseif listener.Debug == 3 then |
|
info = " + sound texts for all map sound" |
|
end |
|
printf("Sound debug %d/%d: %s.", listener.Debug, listener.MaxDebug, info) |
|
end |
|
|
|
function UpdateSoundDebug() |
|
local debug = listener and listener.Debug |
|
if not debug then |
|
return |
|
end |
|
if debug == 0 then |
|
SetRenderStatistics(0) |
|
else |
|
SetRenderStatistics(1<<8 | 1<<9) |
|
end |
|
if GetMap() == "" then |
|
return |
|
end |
|
MapForEach("map", "SoundSource", SoundSource.UpdateMesh) |
|
end |
|
|
|
OnMsg.NewMapLoaded = UpdateSoundDebug |
|
|
|
function OnMsg.GameExitEditor() |
|
MapForEach("map", "SoundSource", function(sound) |
|
if sound.editor_interrupted then |
|
sound.editor_interrupted = false |
|
sound:ReplaySound(sound.FadeTime) |
|
end |
|
end) |
|
end |
|
|
|
function ToggleListenerUpdate() |
|
if not listener then return end |
|
local disable = listener.DebugDisableUpdate == 0 |
|
listener.DebugDisableUpdate = disable and 1 or 0 |
|
printf("Listener update", disable and "disabled" or "enabled") |
|
end |