FSO.HIT.HITThread.Tick C# (CSharp) Method

Tick() public method

public Tick ( ) : bool
return bool
        public override bool Tick()
        {
            if (EverHadOwners && Owners.Count == 0)
            {
                KillVocals();
                Dead = true;
                return false;
            }

            if (VolumeSet)
            {
                for (int i = 0; i < Notes.Count; i++)
                {
                    var inst = Notes[i].instance;
                    inst.Pan = Pan;
                    inst.Volume = Volume;
                }
            }

            VolumeSet = false;

            if (SimpleMode)
            {
                if (PlaySimple)
                {
                    NoteOn();
                    PlaySimple = false;
                }
                if (NoteActive(LastNote)) return true;
                else
                {
                    Dead = true;
                    return false;
                }
            }
            else
            {
                try {
                    while (true)
                    {
                        var opcode = Src.Data[PC++];
                        if (opcode > HITInterpreter.Instructions.Length) opcode = 0;
                        var result = HITInterpreter.Instructions[opcode](this);
                        if (result == HITResult.HALT) return true;
                        else if (result == HITResult.KILL)
                        {
                            Dead = true;
                            return false;
                        }
                    }
                } catch (Exception)
                {
                    return false;
                }
            }
        }