modded class ArmaReforgerScripted
{
 protected bool m_ERRWelcomeServerReady;
 protected float m_ERRWelcomeProbeElapsed;
 protected float m_ERRWelcomeProbeNext;
 protected bool m_ERRWelcomeLoadingReleased;
 override void OnUpdate(BaseWorld world, float timeslice)
 {
  super.OnUpdate(world, timeslice);
  ERR_GameMode mode = ERR_GameMode.Get();
  if (!mode || !mode.Active()) return;
  if (System.IsConsoleApp())
  {
   if (!m_ERRWelcomeServerReady) { Print("ERR WELCOME MISSION SERVER READY"); m_ERRWelcomeServerReady = true; }
   return;
  }
  if (m_ERRWelcomeProbeElapsed == 0)
  {
   AudioSystem.SetMasterVolume(AudioSystem.SFX, 1);
   AudioSystem.SetMasterVolume(AudioSystem.Music, 0);
  }
  m_ERRWelcomeProbeElapsed += timeslice;
  if (GetPlayerController() && m_ERRWelcomeProbeElapsed > 8 && !m_ERRWelcomeLoadingReleased)
  {
   // The no-backend server has no player identity and cannot admit a soldier.
   // Release only this fixture's spawn placeholder after proving the real gate waits.
   SCR_RespawnSystemComponent respawn = SCR_RespawnSystemComponent.GetInstance();
   if (respawn) respawn.DestroyLoadingPlaceholder();
   m_ERRWelcomeLoadingReleased = true;
   Print("ERR WELCOME MISSION FIXTURE LOADING RELEASED");
  }
  if (m_ERRWelcomeProbeElapsed >= m_ERRWelcomeProbeNext)
  {
   m_ERRWelcomeProbeNext = m_ERRWelcomeProbeElapsed + 10;
   PrintFormat("ERR WELCOME MISSION STATE active=%1 controller=%2 menu=%3 url=%4", mode.Active(), GetPlayerController() != null, GetMenuManager().GetTopMenu() != null, mode.ERR_WelcomeVoiceURL());
  }
 }
}
