Ejemplo n.º 1
0
        public virtual short GetValue(VMStackObjectVariable var)
        {
            switch (var) //special cases
            {
            case VMStackObjectVariable.ObjectId:
                return(ObjectID);

            case VMStackObjectVariable.Direction:
                switch (this.Direction)
                {
                case tso.world.model.Direction.WEST:
                    return(6);

                case tso.world.model.Direction.SOUTH:
                    return(4);

                case tso.world.model.Direction.EAST:
                    return(2);

                case tso.world.model.Direction.NORTH:
                    return(0);

                default:
                    return(0);
                }
            }
            if ((short)var > 79)
            {
                throw new Exception("Object Data out of range!");
            }
            return(ObjectData[(short)var]);
        }
Ejemplo n.º 2
0
        public virtual short GetValue(VMStackObjectVariable var)
        {
            switch (var) //special cases
            {
            case VMStackObjectVariable.ObjectId:
                return(ObjectID);
            }
            if ((short)var > 79)
            {
                throw new Exception("Object Data out of range!");
            }
            return(ObjectData[(short)var]);


            /*case VMStackObjectVariable.DirtyLevel:
             *  return DirtyLevel;
             * case VMStackObjectVariable.RoomImpact:
             *  return RoomImpact;
             * case VMStackObjectVariable.Flags:
             *  return (short)Flags;
             * case VMStackObjectVariable.LockoutCount:
             *  return LockoutCount;
             * }
             */
        }
Ejemplo n.º 3
0
        public virtual bool SetValue(VMStackObjectVariable var, short value)
        {
            if ((short)var > 79)
            {
                throw new Exception("Object Data out of range!");
            }
            ObjectData[(short)var] = value;
            return(true);

            /*switch (var){
             *  case VMStackObjectVariable.DirtyLevel:
             *      DirtyLevel = value;
             *      return true;
             *  case VMStackObjectVariable.RoomImpact:
             *      RoomImpact = value;
             *      return true;
             *  case VMStackObjectVariable.Flags:
             *      Flags = (VMEntityFlags)value;
             *      return true;
             *  case VMStackObjectVariable.LockoutCount:
             *      LockoutCount = value;
             *      return true;
             *  default:
             *      throw new Exception("I dont understand how to set variable " + var);
             * }*/
        }
Ejemplo n.º 4
0
 public override short GetValue(VMStackObjectVariable var)
 {
     switch (var)
     {
         case VMStackObjectVariable.Graphic:
             return 0;
         default:
             return base.GetValue(var);
     }
 }
Ejemplo n.º 5
0
        public virtual bool SetValue(VMStackObjectVariable var,short value)
        {
            switch (var) //special cases
            {
            case VMStackObjectVariable.Direction:
                value = (short)(((int)value + 65536) % 8);
                switch (value)
                {
                case 6:
                    Direction = FSO.LotView.Model.Direction.WEST;
                    return(true);

                case 4:
                    Direction = FSO.LotView.Model.Direction.SOUTH;
                    return(true);

                case 2:
                    Direction = FSO.LotView.Model.Direction.EAST;
                    return(true);

                case 0:
                    Direction = FSO.LotView.Model.Direction.NORTH;
                    return(true);

                default:
                    return(true);
                    //throw new Exception("Diagonal Set Not Implemented!");
                }

            case VMStackObjectVariable.Hidden:
                if (UseWorld)
                {
                    WorldUI.Visible = value == 0;
                }
                break;
            }

            if ((short)var > 79)
            {
                throw new Exception("Object Data out of range!");
            }
            ObjectData[(short)var] = value;
            return(true);
        }
Ejemplo n.º 6
0
        public virtual short GetValue(VMStackObjectVariable var)
        {
            switch (var) //special cases
            {
            case VMStackObjectVariable.ObjectId:
                return(ObjectID);

            case VMStackObjectVariable.Direction:
                switch (this.Direction)
                {
                case FSO.LotView.Model.Direction.WEST:
                    return(6);

                case FSO.LotView.Model.Direction.SOUTH:
                    return(4);

                case FSO.LotView.Model.Direction.EAST:
                    return(2);

                case FSO.LotView.Model.Direction.NORTH:
                    return(0);

                default:
                    return(0);
                }

            case VMStackObjectVariable.ContainerId:
            case VMStackObjectVariable.ParentId:     //TODO: different?
                return((Container == null) ? (short)0 : Container.ObjectID);

            case VMStackObjectVariable.SlotNumber:
                return((Container == null) ? (short)-1 : ContainerSlot);

            case VMStackObjectVariable.SlotCount:
                return((short)TotalSlots());
            }
            if ((short)var > 79)
            {
                throw new Exception("Object Data out of range!");
            }
            return(ObjectData[(short)var]);
        }
Ejemplo n.º 7
0
        public override bool SetValue(VMStackObjectVariable var, short value)
        {
            switch (var)
            {
            case VMStackObjectVariable.Flags:
                var flags = (VMEntityFlags)value;
                if (UseWorld)
                {
                    ((ObjectComponent)WorldUI).HideForCutaway = (flags & VMEntityFlags.HideForCutaway) > 0;
                }
                //            || ((VMEntityFlags2)GetValue(VMStackObjectVariable.FlagField2) & VMEntityFlags2.ArchitectualDoor) > 0;
                break;

            case VMStackObjectVariable.FlagField2:
                /*
                 * var flags2 = (VMEntityFlags2)value;
                 * if (UseWorld)
                 *  ((ObjectComponent)WorldUI).HideForCutaway = (flags2 & VMEntityFlags2.ArchitectualDoor) > 0
                 || ((VMEntityFlags)GetValue(VMStackObjectVariable.Flags) & VMEntityFlags.HideForCutaway) > 0; */
                break;
            }
            return(base.SetValue(var, value));
        }
Ejemplo n.º 8
0
        public virtual bool SetValue(VMStackObjectVariable var,short value)
        {
            switch (var) //special cases
            {
            case VMStackObjectVariable.Direction:
                value = (short)(((int)value + 65536) % 8);
                switch (value)
                {
                case 6:
                    Direction = tso.world.model.Direction.WEST;
                    return(true);

                case 4:
                    Direction = tso.world.model.Direction.SOUTH;
                    return(true);

                case 2:
                    Direction = tso.world.model.Direction.EAST;
                    return(true);

                case 0:
                    Direction = tso.world.model.Direction.NORTH;
                    return(true);

                default:
                    return(true);
                    //throw new Exception("Diagonal Set Not Implemented!");
                }
            }

            if ((short)var > 79)
            {
                throw new Exception("Object Data out of range!");
            }
            ObjectData[(short)var] = value;
            return(true);
        }
Ejemplo n.º 9
0
 public override bool SetValue(VMStackObjectVariable var, short value)
 {
     return(base.SetValue(var, value));
 }
Ejemplo n.º 10
0
 public override bool SetValue(VMStackObjectVariable var, short value)
 {
     return base.SetValue(var, value);
 }
Ejemplo n.º 11
0
 public override short GetValue(VMStackObjectVariable var)
 {
     return base.GetValue(var);
 }
Ejemplo n.º 12
0
        public virtual bool SetValue(VMStackObjectVariable var, short value)
        {
            if ((short)var > 79) throw new Exception("Object Data out of range!");
            ObjectData[(short)var] = value;
            return true;

            /*switch (var){
                case VMStackObjectVariable.DirtyLevel:
                    DirtyLevel = value;
                    return true;
                case VMStackObjectVariable.RoomImpact:
                    RoomImpact = value;
                    return true;
                case VMStackObjectVariable.Flags:
                    Flags = (VMEntityFlags)value;
                    return true;
                case VMStackObjectVariable.LockoutCount:
                    LockoutCount = value;
                    return true;
                default:
                    throw new Exception("I dont understand how to set variable " + var);
            }*/
        }
Ejemplo n.º 13
0
        public virtual short GetValue(VMStackObjectVariable var)
        {
            switch (var) //special cases
            {
                case VMStackObjectVariable.ObjectId:
                    return ObjectID;
            }
            if ((short)var > 79) throw new Exception("Object Data out of range!");
            return ObjectData[(short)var];

                /*case VMStackObjectVariable.DirtyLevel:
                    return DirtyLevel;
                case VMStackObjectVariable.RoomImpact:
                    return RoomImpact;
                case VMStackObjectVariable.Flags:
                    return (short)Flags;
                case VMStackObjectVariable.LockoutCount:
                    return LockoutCount;
            }
            */
        }
Ejemplo n.º 14
0
        public virtual bool SetValue(VMStackObjectVariable var, short value)
        {
            switch (var) //special cases
            {
                case VMStackObjectVariable.Direction:
                    value = (short)(((int)value + 65536) % 8);
                    switch (value) {
                        case 6:
                            Direction = tso.world.model.Direction.WEST;
                            return true;
                        case 4:
                            Direction = tso.world.model.Direction.SOUTH;
                            return true;
                        case 2:
                            Direction = tso.world.model.Direction.EAST;
                            return true;
                        case 0:
                            Direction = tso.world.model.Direction.NORTH;
                            return true;
                        default:
                            return true;
                            //throw new Exception("Diagonal Set Not Implemented!");
                    }
            }

            if ((short)var > 79) throw new Exception("Object Data out of range!");
            ObjectData[(short)var] = value;
            return true;
        }
Ejemplo n.º 15
0
 public virtual short GetValue(VMStackObjectVariable var)
 {
     switch (var) //special cases
     {
         case VMStackObjectVariable.ObjectId:
             return ObjectID;
         case VMStackObjectVariable.Direction:
             switch (this.Direction)
             {
                 case tso.world.model.Direction.WEST:
                     return 6;
                 case tso.world.model.Direction.SOUTH:
                     return 4;
                 case tso.world.model.Direction.EAST:
                     return 2;
                 case tso.world.model.Direction.NORTH:
                     return 0;
                 default:
                     return 0;
             }
         case VMStackObjectVariable.ContainerId:
             return (Container == null) ? (short)0 : Container.ObjectID;
         case VMStackObjectVariable.SlotNumber:
             return (Container == null) ? (short)-1 : ContainerSlot;
     }
     if ((short)var > 79) throw new Exception("Object Data out of range!");
     return ObjectData[(short)var];
 }
Ejemplo n.º 16
0
 public virtual short GetValue(VMStackObjectVariable var)
 {
     switch (var) //special cases
     {
         case VMStackObjectVariable.ObjectId:
             return ObjectID;
         case VMStackObjectVariable.Direction:
             switch (this.Direction)
             {
                 case FSO.LotView.Model.Direction.WEST:
                     return 6;
                 case FSO.LotView.Model.Direction.SOUTH:
                     return 4;
                 case FSO.LotView.Model.Direction.EAST:
                     return 2;
                 case FSO.LotView.Model.Direction.NORTH:
                     return 0;
                 default:
                     return 0;
             }
         case VMStackObjectVariable.ContainerId:
         case VMStackObjectVariable.ParentId: //TODO: different?
             return (Container == null) ? (short)0 : Container.ObjectID;
         case VMStackObjectVariable.SlotNumber:
             return (Container == null) ? (short)-1 : ContainerSlot;
         case VMStackObjectVariable.SlotCount:
             return (short)TotalSlots();
     }
     if ((short)var > 79) throw new Exception("Object Data out of range!");
     return ObjectData[(short)var];
 }
Ejemplo n.º 17
0
 public override bool SetValue(VMStackObjectVariable var, short value)
 {
     switch (var){
         case VMStackObjectVariable.Graphic:
             var newGraphic = Object.OBJ.BaseGraphicID + value;
             var dgrp = Object.Resource.Get<DGRP>((ushort)newGraphic);
             if (dgrp != null){
                 WorldUI.DGRP = dgrp;
                 return true;
             }
             return false;
         default:
             return base.SetValue(var, value);
     }
 }
Ejemplo n.º 18
0
 public virtual short GetValue(VMStackObjectVariable var)
 {
     switch (var){
         case VMStackObjectVariable.ObjectId:
             return ObjectID;
         case VMStackObjectVariable.DirtyLevel:
             return DirtyLevel;
         case VMStackObjectVariable.RoomImpact:
             return RoomImpact;
         case VMStackObjectVariable.Flags:
             return (short)Flags;
         case VMStackObjectVariable.LockoutCount:
             return LockoutCount;
     }
     throw new Exception("I dont understand how to get variable " + var);
 }
Ejemplo n.º 19
0
 public override short GetValue(VMStackObjectVariable var)
 {
     return(base.GetValue(var));
 }
Ejemplo n.º 20
0
        public virtual bool SetValue(VMStackObjectVariable var, short value)
        {
            switch (var) //special cases
            {
                case VMStackObjectVariable.Direction:
                    value = (short)(((int)value + 65536) % 8);
                    switch (value) {
                        case 6:
                            Direction = FSO.LotView.Model.Direction.WEST;
                            return true;
                        case 4:
                            Direction = FSO.LotView.Model.Direction.SOUTH;
                            return true;
                        case 2:
                            Direction = FSO.LotView.Model.Direction.EAST;
                            return true;
                        case 0:
                            Direction = FSO.LotView.Model.Direction.NORTH;
                            return true;
                        default:
                            return true;
                            //throw new Exception("Diagonal Set Not Implemented!");
                    }
                case VMStackObjectVariable.Hidden:
                    if (UseWorld) WorldUI.Visible = value == 0;
                    break;
            }

            if ((short)var > 79) throw new Exception("Object Data out of range!");
            ObjectData[(short)var] = value;
            return true;
        }