Ejemplo n.º 1
0
    ArrayList generateTrackWithMinimalHoles()
    {
        ArrayList trackSeq = TrackGenerationUtility.generateArrayListWithThreeEmptyArrayLists();

        //patterned means the track will have one straigh line of holes horizontally or 1 holes vertically
        if (TrackGenerationUtility.shouldPatternizeOrNot())
        {
            switch (TrackGenerationUtility.getLimitedPatternType())
            {
            case LimitedPatternType.HORIZONTALLINE:
                int   firstRow   = TrackGenerationUtility.randomNumber(0, 4);
                int[] rowsOfHole = new int[2] {
                    firstRow, TrackGenerationUtility.randomNumber(firstRow + 2, 8)
                };
                PatternUtility.horizontalLinePatternizer(ref trackSeq, rowsOfHole, TrackGenerationUtility.MAX_UNITS_BLOCK_PER_LANE, ResourceItemType.HOLE, true);
                break;

            case LimitedPatternType.ZIGZAG_LEFT:

                break;
            }
        }
        else
        {
        }

        return(trackSeq);
    }
Ejemplo n.º 2
0
        // AC / CF
        public void GeneratePatternBitmap(byte[] importData = null, bool decode = true)
        {
            var patternRawData = importData ?? (_saveFile.SaveType == SaveType.CityFolk ? _saveFile.ReadByteArray(_offset, 0x200) : _saveFile.ReadByteArray(_offset + 0x20, 0x200));
            var paletteData    = _saveFile.SaveType == SaveType.CityFolk ? PatternData.CfPaletteData : PatternData.AcPaletteData;

            if (decode)
            {
                DecodedData = PatternUtility.DecodeC4(patternRawData);
            }

            PatternBitmap = PatternUtility.C4PaletteMapToBitmap(DecodedData, paletteData[Palette], 32, 32);
        }
Ejemplo n.º 3
0
        // AC / CF
        public void GeneratePatternBitmap(byte[] Import_Data = null, bool Decode = true)
        {
            byte[]   patternRawData = Import_Data ?? (Save_File.Save_Type == SaveType.City_Folk ? Save_File.ReadByteArray(Offset, 0x200) : Save_File.ReadByteArray(Offset + 0x20, 0x200));
            uint[][] Palette_Data   = Save_File.Save_Type == SaveType.City_Folk ? PatternData.CF_Palette_Data : PatternData.AC_Palette_Data;

            if (Decode)
            {
                DecodedData = PatternUtility.DecodeC4(patternRawData);
            }

            Pattern_Bitmap = PatternUtility.C4PaletteMapToBitmap(DecodedData, Palette_Data[Palette], 32, 32);
        }
Ejemplo n.º 4
0
        public void Write()
        {
            switch (Save.SaveInstance.SaveGeneration)
            {
            case SaveGeneration.GCN:
            case SaveGeneration.Wii:
                Write(PatternUtility.EncodeC4(DecodedData));
                break;

            case SaveGeneration.NDS:
            case SaveGeneration.N3DS:
                Write(PatternUtility.CondenseNonBlockPattern(DecodedData));
                break;
            }
        }
Ejemplo n.º 5
0
        public void Import(uint[] bitmapBuffer)
        {
            // Convert to nibble map array of bytes
            var patternBuffer = new byte[bitmapBuffer.Length / 2];

            if (_saveFile.SaveGeneration == SaveGeneration.NDS || _saveFile.SaveGeneration == SaveGeneration.N3DS)
            {
                for (var i = 0; i < patternBuffer.Length; i++)
                {
                    var idx = i * 2;
                    patternBuffer[i] = (byte)((PatternData.ClosestColorRgb(bitmapBuffer[idx + 1], PaletteData) << 4) |
                                              PatternData.ClosestColorRgb(bitmapBuffer[idx], PaletteData));
                }
            }
            else
            {
                var convertedBuffer = new byte[bitmapBuffer.Length];
                for (var i = 0; i < convertedBuffer.Length; i++)
                {
                    convertedBuffer[i] = PatternData.ClosestColorRgb(bitmapBuffer[i], PaletteData,
                                                                     _saveFile.SaveGeneration == SaveGeneration.GCN);
                }
                patternBuffer = PatternUtility.EncodeC4(convertedBuffer);
            }

            switch (_saveFile.SaveGeneration)
            {
            case SaveGeneration.GCN:
            case SaveGeneration.Wii:
                GeneratePatternBitmap(patternBuffer);
                break;

            case SaveGeneration.NDS:
                GenerateWwPatternBitmap(patternBuffer);
                break;

            case SaveGeneration.N3DS:
                GenerateNlPatternBitmap(patternBuffer);
                break;
            }

            Write(patternBuffer);
        }
Ejemplo n.º 6
0
        public void Import(uint[] Bitmap_Buffer)
        {
            // Convert to nibble map array of bytes
            byte[] Pattern_Buffer = new byte[Bitmap_Buffer.Length / 2];

            if (Save_File.Save_Generation == SaveGeneration.NDS || Save_File.Save_Generation == SaveGeneration.N3DS)
            {
                for (int i = 0; i < Pattern_Buffer.Length; i++)
                {
                    int idx = i * 2;
                    Pattern_Buffer[i] = (byte)((PatternData.ClosestColorRGB(Bitmap_Buffer[idx + 1], PaletteData) << 4) | PatternData.ClosestColorRGB(Bitmap_Buffer[idx], PaletteData)); // these are reversed
                }
            }
            else
            {
                byte[] ConvertedBuffer = new byte[Bitmap_Buffer.Length];
                for (int i = 0; i < ConvertedBuffer.Length; i++)
                {
                    ConvertedBuffer[i] = PatternData.ClosestColorRGB(Bitmap_Buffer[i], PaletteData);
                }
                Pattern_Buffer = PatternUtility.EncodeC4(ConvertedBuffer);
            }

            switch (Save_File.Save_Generation)
            {
            case SaveGeneration.GCN:
            case SaveGeneration.Wii:
                GeneratePatternBitmap(Pattern_Buffer);
                break;

            case SaveGeneration.NDS:
                GenerateWWPatternBitmap(Pattern_Buffer);
                break;

            case SaveGeneration.N3DS:
                GenerateNLPatternBitmap(Pattern_Buffer);
                break;
            }

            Write(Pattern_Buffer);
        }
Ejemplo n.º 7
0
        public void RedrawBitmap()
        {
            switch (_saveFile.SaveGeneration)
            {
            case SaveGeneration.GCN:
            case SaveGeneration.Wii:
                GeneratePatternBitmap(DecodedData, false);
                Write(PatternUtility.EncodeC4(DecodedData, 32, 32));
                break;

            case SaveGeneration.NDS:
                GenerateWwPatternBitmap(DecodedData, false);
                Write(PatternUtility.CondenseNonBlockPattern(DecodedData));
                break;

            case SaveGeneration.N3DS:
                GenerateNlPatternBitmap(DecodedData, false);
                Write(PatternUtility.CondenseNonBlockPattern(DecodedData));
                break;
            }
        }