NScumm.Scumm.ScummEngine7.ActorTalk C# (CSharp) Метод

ActorTalk() защищенный Метод

protected ActorTalk ( byte msg ) : void
msg byte
Результат void
        protected override void ActorTalk(byte[] msg)
        {
            var stringWrap = false;

            ConvertMessageToString(msg, _charsetBuffer, 0);

            // Play associated speech, if any
            PlaySpeech(_lastStringTag);

            if (Game.GameId == GameId.Dig || Game.GameId == GameId.CurseOfMonkeyIsland)
            {
                if (Variables[VariableHaveMessage.Value] != 0)
                    StopTalk();
            }
            else
            {
                if (!_keepText)
                    StopTalk();
            }
            if (_actorToPrintStrFor == 0xFF)
            {
                TalkingActor = 0xFF;
                _charsetColor = String[0].Color;
            }
            else
            {
                var a = Actors[_actorToPrintStrFor];
                TalkingActor = a.Number;
                if (!String[0].NoTalkAnim)
                {
                    a.RunActorTalkScript(a.TalkStartFrame);
                }
                _charsetColor = a.TalkColor;
            }

            _charsetBufPos = 0;
            _talkDelay = 0;
            _haveMsg = 1;
            if (Game.GameId == GameId.FullThrottle)
                Variables[VariableHaveMessage.Value] = 0xFF;
            _haveActorSpeechMsg = (Game.GameId == GameId.FullThrottle) ? true : (!Sound.IsSoundRunning(Sound.TalkSoundID));
            if (Game.GameId == GameId.Dig || Game.GameId == GameId.CurseOfMonkeyIsland)
            {
                stringWrap = String[0].Wrapping;
                String[0].Wrapping = true;
            }
            Charset();
            if (Game.GameId == GameId.Dig || Game.GameId == GameId.CurseOfMonkeyIsland)
            {
                if (Game.Version == 8)
                    Variables[VariableHaveMessage.Value] = (String[0].NoTalkAnim) ? 2 : 1;
                else
                    Variables[VariableHaveMessage.Value] = 1;
                String[0].Wrapping = stringWrap;
            }
        }