示例#1
0
        public UIHeadlineRenderer(VMRuntimeHeadline headline)
            : base(headline)
        {
            if (Sprites == null)
            {
                Sprites = new Files.Formats.IFF.IffFile(Content.Content.Get().GetPath("objectdata/globals/sprites.iff"));
                WhitePx = TextureGenerator.GetPxWhite(GameFacade.GraphicsDevice);
            }

            if (Headline.Operand.Group != VMSetBalloonHeadlineOperandGroup.Algorithmic)
                Sprite = Sprites.Get<SPR>((ushort)(GroupOffsets[(int)Headline.Operand.Group] + Headline.Index));

            if (Headline.Operand.Type != 255 && Headline.Operand.Type != 3)
                BGSprite = Sprites.Get<SPR>((ushort)(GroupOffsets[(int)VMSetBalloonHeadlineOperandGroup.Balloon] + Headline.Operand.Type));

            LastZoom = WorldZoom.Near;
            RecalculateTarget();
        }
示例#2
0
 public VMHeadlineRenderer Get(VMRuntimeHeadline headline)
 {
     return(new VMHeadlineRenderer(headline));
 }
示例#3
0
 public VMHeadlineRenderer(VMRuntimeHeadline headline)
 {
     Headline = headline;
 }
示例#4
0
        public virtual void Tick()
        {
            //decrement lockout count

            if (Thread != null)
            {
                Thread.TicksThisFrame = 0;
                Thread.Tick();
                if (SoundThreads.Count > 0) TickSounds();
            }
            if (Headline != null)
            {
                var over = HeadlineRenderer.Update();
                if (over)
                {
                    HeadlineRenderer.Dispose();
                    Headline = null;
                    HeadlineRenderer = null;
                }
                else if (UseWorld)
                {
                    WorldUI.Headline = HeadlineRenderer.DrawFrame(Thread.Context.World);
                }
            }
            if (UseWorld && Headline == null && WorldUI.Headline != null)
            {
                WorldUI.Headline = null;
            }
            if (ObjectData[(int)VMStackObjectVariable.LockoutCount] > 0) ObjectData[(int)VMStackObjectVariable.LockoutCount]--;
        }
示例#5
0
        public virtual void LoadCrossRef(VMEntityMarshal input, VMContext context)
        {
            Contained = new VMEntity[input.Contained.Length];
            int i = 0;
            foreach (var item in input.Contained) Contained[i++] = context.VM.GetObjectById(item);

            Container = context.VM.GetObjectById(input.Container);
            if (UseWorld && Container != null)
            {
                WorldUI.Container = Container.WorldUI;
                WorldUI.ContainerSlot = ContainerSlot;
            }

            if (input.Headline != null)
            {
                Headline = new VMRuntimeHeadline(input.Headline, context);
                HeadlineRenderer = context.VM.Headline.Get(Headline);
            }
        }
示例#6
0
 public VMHeadlineRenderer Get(VMRuntimeHeadline headline)
 {
     return new UIHeadlineRenderer(headline);
 }
示例#7
0
 public VMHeadlineRenderer(VMRuntimeHeadline headline)
 {
     Headline = headline;
 }