AtelierElieScripter.Dialogue.DialogueModule.InitializeTextBlock C# (CSharp) Метод

InitializeTextBlock() приватный Метод

private InitializeTextBlock ( uint pointer, BinaryReader file, int blockNo, int textBlockNo ) : void
pointer uint
file System.IO.BinaryReader
blockNo int
textBlockNo int
Результат void
        void InitializeTextBlock(uint pointer, BinaryReader file, int blockNo, int textBlockNo)
        {
            uint commandPointer = (uint)(pointer + blockNo * 12);
            uint textBlocksPointer = (uint)(pointer + blockNo * 12 + 4);

            commandPointer = Lib.Tools.GetPointerFromFile(commandPointer, RAMOFFSET, file);
            commandPointer -= (RAMOFFSET);

            textBlocksPointer = Lib.Tools.GetPointerFromFile(textBlocksPointer, RAMOFFSET, file);
            textBlocksPointer -= (RAMOFFSET);

            //Debug.WriteLine(blockNo.ToString() + " - " + (commandPointer).ToString("X2") + " - " + textBlocksPointer.ToString("X2"));

            file.BaseStream.Seek(textBlocksPointer, SeekOrigin.Begin);

            int nameNo;
            int unknown1;
            int voiceNo;
            int unknown2;
            uint textPointer;
            string text;

            textBlockNo = 0;

            while (true)
            {
                file.BaseStream.Seek(textBlocksPointer, SeekOrigin.Begin);

                if (file.BaseStream.Position == file.BaseStream.Length)
                    break;

                nameNo = Lib.Tools.GetHalfWordFromFile(file);
                unknown1 = Lib.Tools.GetHalfWordFromFile(file);
                voiceNo = Lib.Tools.GetHalfWordFromFile(file);
                unknown2 = Lib.Tools.GetHalfWordFromFile(file);
                textPointer = Lib.Tools.GetPointerFromFile(file);

                textBlocksPointer = (uint)file.BaseStream.Position;

                if (textPointer < 0x8014B700 || textPointer > 0x80170000)
                    break;

                text = Lib.Tools.GetTextFromFile(textPointer, RAMOFFSET, file);

                mainBlocks[blockNo][textBlockNo] = new DialogueEntry(nameNo, voiceNo, unknown1, unknown2, text, textBlocksPointer - 4);
                textBlockNo += 1;

            }
        }