Exemplo n.º 1
0
 public LevelObject(SonicGame game, Level level, LevelObjectDefinition definition)
     : this(game, level)
 {
     mDefinition    = definition;
     mDisplacementX = definition.DisplacementX;
     mDisplacementY = definition.DisplacementY;
 }
Exemplo n.º 2
0
 public Spikes(SonicGame game, Level level, LevelObjectDefinition definition)
     : base(game, level, definition)
 {
     mSubType = definition.SubType;
     mFlipX   = definition.FlipX;
     mFlipY   = definition.FlipY;
 }
Exemplo n.º 3
0
        public Masher(SonicGame game, Level level, LevelObjectDefinition definition)
            : base(game, level, definition)
        {
            mAnimation = new Animation(AnimationData);

            RadiusX = 12;
            RadiusY = 16;
        }
Exemplo n.º 4
0
        public Coconuts(SonicGame game, Level level, LevelObjectDefinition definition)
            : base(game, level, definition)
        {
            mAnimation = new Animation(AnimationData);

            RadiusX = 6;
            RadiusY = 8;
        }
Exemplo n.º 5
0
        public Monitor(SonicGame game, Level level, LevelObjectDefinition definition)
            : base(game, level, definition)
        {
            RadiusX = 16;
            RadiusY = 16;

            mRoutine = 2;
            mSubType = definition.SubType;
        }
Exemplo n.º 6
0
        public EHZPlatform(SonicGame game, Level level, LevelObjectDefinition definition)
            : base(game, level, definition)
        {
            OscillateNumInit();

            RadiusX = 32;
            RadiusY = 8;

            mSubType = definition.SubType;
        }
Exemplo n.º 7
0
        public Ring(SonicGame game, Level level, LevelObjectDefinition definition)
            : base(game, level, definition)
        {
            mAnimation = new Animation(AnimationData);

            mTimeLeft = 256;

            // DrawPriority = 50;
            RadiusX = 6;
            RadiusY = 6;
        }
Exemplo n.º 8
0
        private void LoadLayout(string path)
        {
            FileStream   fs = new FileStream(path, FileMode.Open);
            BinaryReader br = new BinaryReader(fs);

            br.ReadString();
            br.ReadString();

            // Chunk layout
            mChunkColumns = br.ReadInt32();
            mChunkRows    = br.ReadInt32();
            mChunkLayout  = new byte[mChunkColumns, mChunkRows];
            for (int y = 0; y < mChunkRows; y++)
            {
                for (int x = 0; x < mChunkColumns; x++)
                {
                    mChunkLayout[x, y] = br.ReadByte();
                }
            }

            // Objects
            mObjectDefinitions.Clear();
            int numObjects = br.ReadInt32();

            for (int i = 0; i < numObjects; i++)
            {
                LevelObjectDefinition definition = new LevelObjectDefinition();

                definition.Id            = br.ReadInt32();
                definition.SubType       = br.ReadInt32();
                definition.DisplacementX = br.ReadInt32();
                definition.DisplacementY = br.ReadInt32();
                definition.Respawn       = br.ReadBoolean();
                definition.FlipY         = br.ReadBoolean();
                definition.FlipX         = br.ReadBoolean();

                if (definition.Id == 1)
                {
                    mStartX = definition.DisplacementX;
                    mStartY = definition.DisplacementY;
                }

                LevelObject obj = LevelObject.Create(mGame, this, definition);
                if (obj != null)
                {
                    mObjects.Add(obj);
                }

                mObjectDefinitions.Add(definition);
            }

            br.Close();
            fs.Close();
        }
Exemplo n.º 9
0
        public static LevelObject Create(SonicGame game, Level level, LevelObjectDefinition definition)
        {
            LevelObject obj;

            switch (definition.Id)
            {
            case 3:
                obj = new CollisionPlaneSwitcher(game, level, definition);
                break;

            case 6:
                obj = new EHZSpiralPathway(game, level, definition);
                break;

            case 13:
                obj = new Signpost(game, level, definition);
                break;

            case 17:
                obj = new LogBridge(game, level, definition);
                break;

            case 24:
                obj = new EHZPlatform(game, level, definition);
                break;

            case 37:
                obj = new Ring(game, level, definition);
                break;

            case 38:
                obj = new Monitor(game, level, definition);
                break;

            case 54:
                obj = new Spikes(game, level, definition);
                break;

            case 65:
                obj = new Spring(game, level, definition);
                break;

            case 75:
                obj = new Buzzer(game, level, definition);
                break;

            case 92:
                obj = new Masher(game, level, definition);
                break;

            case 121:
                obj = new Starpost(game, level, definition);
                break;

            case 157:
                obj = new Coconuts(game, level, definition);
                break;

            default:
                return(null);
            }

            return(obj);
        }
Exemplo n.º 10
0
 public CollisionPlaneSwitcher(SonicGame game, Level level, LevelObjectDefinition definition)
     : base(game, level, definition)
 {
     mSubType = definition.SubType;
     mFlipX   = definition.FlipX;
 }
Exemplo n.º 11
0
 public LogBridge(SonicGame game, Level level, LevelObjectDefinition definition)
     : base(game, level, definition)
 {
     mSubType = definition.SubType;
 }
Exemplo n.º 12
0
 public Platform(SonicGame game, Level level, LevelObjectDefinition definition)
     : base(game, level, definition)
 {
 }
Exemplo n.º 13
0
 public Badnik(SonicGame game, Level level, LevelObjectDefinition definition)
     : base(game, level, definition)
 {
 }
Exemplo n.º 14
0
 public Starpost(SonicGame game, Level level, LevelObjectDefinition definition)
     : base(game, level, definition)
 {
     mIndex = definition.SubType;
 }
Exemplo n.º 15
0
 public SolidObject(SonicGame game, Level level, LevelObjectDefinition definition)
     : base(game, level, definition)
 {
 }
Exemplo n.º 16
0
 public EHZSpiralPathway(SonicGame game, Level level, LevelObjectDefinition definition)
     : base(game, level, definition)
 {
 }