Exemple #1
0
        private void ReadMainScript(Block romData, StringCodec codec)
        {
            var stream = romData.ToBinaryStream(RomConfig.GetOffset("Text.MainScript", romData));

            MainScript = new List <List <string> >();

            var offsetTableReader = new WideOffsetTableReader(stream);

            while (!offsetTableReader.EndOfTable)
            {
                MainScript.Add(offsetTableReader.ReadStringOffsetTable(codec, true, false));
            }
        }
        public static List <string> ReadStringOffsetTable(this WideOffsetTableReader offsetTableReader, StringCodec codec,
                                                          bool isScript, bool multiplyByTwo)
        {
            int offsetPointer = offsetTableReader.NextPointer();
            int dataPointer   = offsetTableReader.NextPointer();
            var stream        = offsetTableReader.Stream;

            if (offsetPointer != 0 && dataPointer != 0)
            {
                stream.Position = offsetPointer;
                return(stream.ReadStringOffsetTable(codec, isScript, multiplyByTwo, dataPointer));
            }
            else
            {
                return(null);
            }
        }
Exemple #3
0
        private void ReadTextBank(Block romData, StringCodec codec)
        {
            var stream            = romData.ToBinaryStream(RomConfig.GetOffset("Text.Bank", romData));
            var offsetTableReader = new WideOffsetTableReader(stream);

            RoomDescriptions  = offsetTableReader.ReadStringOffsetTable(codec, false, false);
            ItemNames         = offsetTableReader.ReadStringTable(codec);
            ItemDescriptions  = offsetTableReader.ReadStringOffsetTable(codec, false, false);
            CharNames         = offsetTableReader.ReadStringTable(codec);
            PartyCharNames    = offsetTableReader.ReadStringTable(codec);
            EnemyNames        = offsetTableReader.ReadStringTable(codec);
            PsiNames          = offsetTableReader.ReadStringTable(codec);
            PsiDescriptions   = offsetTableReader.ReadStringOffsetTable(codec, false, false);
            Statuses          = offsetTableReader.ReadStringTable(codec);
            DefaultCharNames  = offsetTableReader.ReadStringTable(codec);
            Skills            = offsetTableReader.ReadStringTable(codec);
            SkillDescriptions = offsetTableReader.ReadStringOffsetTable(codec, false, false);
        }
 public static StringTable ReadStringTable(this WideOffsetTableReader offsetTableReader, StringCodec codec)
 {
     offsetTableReader.Next();
     return(offsetTableReader.Stream.ReadStringTable(codec));
 }