Example #1
0
        //=============================================================================
        /// <summary></summary>
        private void parseLine(string line)
        {
            if (String.IsNullOrWhiteSpace(line))
            {
                return;                                                 // blank lines
            }
            // line should be like  "character - offset"
            string[] parts = line.Split('-');
            if (parts.Length != 2)
            {
                return;
            }

            // create and add character
            NameAndAddressInfo cInfo = new NameAndAddressInfo();

            cInfo.name = parts[0].Trim();
            Int64.TryParse(parts[1].Trim(), NumberStyles.HexNumber, CultureInfo.CurrentCulture, out cInfo.offset);

            Characters.Add(cInfo);

            // update offsets
            if (cInfo.offset < _minAddress || _minAddress == 0)
            {
                _minAddress = cInfo.offset;
            }
            if (cInfo.offset > _maxAddress || _maxAddress == 0)
            {
                _maxAddress = cInfo.offset;
            }
        }
Example #2
0
        public CharacterData(NameAndAddressInfo info, long minAddress, byte[] rawData)
        {
            Name        = info.name;
            BaseAddress = info.offset;
            MaxAddress  = BaseAddress + 0x12;
            Str         = high(rawData[0]);
            Mag         = low(rawData[0]);
            Prot        = high(rawData[1]);
            Mdf         = low(rawData[1]);
            Tech        = high(rawData[2]);
            Spd         = low(rawData[2]);
            Luck        = high(rawData[3]);
            Hp          = low(rawData[3]);

            FireAff         = high(rawData[8]);
            WaterAff        = low(rawData[8]);
            WindAff         = high(rawData[9]);
            EarthAff        = low(rawData[9]);
            LightningAff    = high(rawData[10]);
            ResurrectionAff = low(rawData[10]);
            DarkAff         = high(rawData[11]);
            BrightAff       = low(rawData[11]);

            HeadLev = rawData[0xe];
            RHLev   = rawData[0xf];
            LHLev   = rawData[0x10];

            // build raw data
            string str = "Raw data:\r\n";

            for (int i = 0; i < 0x12; i++)
            {
                str += String.Format("{0} - {1}      (0x{1:X2})\r\n", i, rawData[i]);
            }
            RawDataString = str;
            RawData       = rawData;
        }