예제 #1
0
        public int GetBytesNeededFor(ScreenObjectType objType)
        {
            // If there is not an enemy data marker, one may need to be created: 1 byte
            int bytesForFD = HasEnemyDataSegment ? 0 : 1;
            // If room is empty, we have to factor in mem needed for DefaultColorAttribute and FF terminator
            int bytesForHeaderFooter = (Size > 0) ? 0 : 2;

            switch (objType)
            {
            case ScreenObjectType.Struct:
                // 3 bytes for obj
                return(bytesForHeaderFooter + 3);

            case ScreenObjectType.Enemy:
                // 3 bytes for enemy data
                return(bytesForHeaderFooter + bytesForFD + 3);

            case ScreenObjectType.Door:
                // 2 bytes for door data
                return(bytesForHeaderFooter + bytesForFD + 2);

            case ScreenObjectType.Bridge:
                // 1 byte for bridge data
                return(bytesForHeaderFooter + bytesForFD + 1);

            default:
                throw new ArgumentException("Invalid object type.");
            }
        }
예제 #2
0
        internal void AddScreenObjects(ScreenObjectType type, int numObjects, bool hasMovement)
        {
            ICGEScreenObject tmp;

            for (int i = 1; i <= numObjects; i++)
            {
                switch (type)
                {
                case ScreenObjectType.Bat:
                    tmp = new CGEScreenObjectBat(SelectedBackground);
                    break;

                default:
                    tmp = new CGEScreenObjectTree(SelectedBackground);
                    break;
                }

                if (tmp != null)
                {
                    tmp.HasMovement = hasMovement;
                    AddScreenObject(tmp);
                }
            }
        }
예제 #3
0
        internal void AddScreenObjects(ScreenObjectType type, int numObjects, bool hasMovement)
        {
            ICGEScreenObject tmp;

            for (int i = 1; i <= numObjects; i++)
            {

                switch (type)
                {
                    case ScreenObjectType.Bat:
                        tmp = new CGEScreenObjectBat(SelectedBackground);
                        break;
                    default:
                        tmp = new CGEScreenObjectTree(SelectedBackground);
                        break;
                }

                if (tmp != null)
                {
                    tmp.HasMovement = hasMovement;
                    AddScreenObject(tmp);
                }

            }
        }