Пример #1
0
 public eListConversation(byte[] Bytes)
 {
     using (BinaryReader br = new BinaryReader(new MemoryStream(Bytes)))
     {
         DialogCount = br.ReadInt32();
         Dialogs     = new eDialog[DialogCount];
         for (int d = 0; d < DialogCount; d++)
         {
             Dialogs[d]               = new eDialog();
             Dialogs[d].DialogID      = br.ReadInt32();
             Dialogs[d].DialogName    = br.ReadBytes(128);
             Dialogs[d].QuestionCount = br.ReadInt32();
             Dialogs[d].Questions     = new eQuestion[Dialogs[d].QuestionCount];
             for (int q = 0; q < Dialogs[d].QuestionCount; q++)
             {
                 Dialogs[d].Questions[q]                    = new eQuestion();
                 Dialogs[d].Questions[q].QuestionID         = br.ReadInt32();
                 Dialogs[d].Questions[q].Control            = br.ReadInt32();
                 Dialogs[d].Questions[q].QuestionTextLength = br.ReadInt32();
                 Dialogs[d].Questions[q].QuestionText       = br.ReadBytes(2 * Dialogs[d].Questions[q].QuestionTextLength);
                 Dialogs[d].Questions[q].ChoiceQount        = br.ReadInt32();
                 Dialogs[d].Questions[q].Choices            = new eChoice[Dialogs[d].Questions[q].ChoiceQount];
                 for (int c = 0; c < Dialogs[d].Questions[q].ChoiceQount; c++)
                 {
                     Dialogs[d].Questions[q].Choices[c]              = new eChoice();
                     Dialogs[d].Questions[q].Choices[c].Control      = br.ReadInt32();
                     Dialogs[d].Questions[q].Choices[c].ChoiceText   = br.ReadBytes(128);
                     Dialogs[d].Questions[q].Choices[c].PARAM_OPTION = br.ReadInt32();
                 }
             }
         }
     }
 }
Пример #2
0
        public eListConversationSW(byte[] Bytes)
        {
            MemoryStream ms = new MemoryStream(Bytes);
            BinaryReader br = new BinaryReader(ms);

            DialogCount = br.ReadInt32();         // Количество диалогов
            Dialogs     = new eDialog[DialogCount];
            for (int d = 0; d < DialogCount; d++) // Структура диалогов
            {
                Dialogs[d]               = new eDialog();
                Dialogs[d].DialogID      = br.ReadInt32();    // ID
                Dialogs[d].DialogName    = br.ReadBytes(128); // Name
                Dialogs[d].QuestionCount = br.ReadInt32();    // NUM_WINDOWS
                Dialogs[d].Questions     = new eQuestion[Dialogs[d].QuestionCount];
                for (int q = 0; q < Dialogs[d].QuestionCount; q++)
                {
                    Dialogs[d].Questions[q]                    = new eQuestion();
                    Dialogs[d].Questions[q].QuestionID         = br.ReadInt32();                                               // ID_WINDOW
                    Dialogs[d].Questions[q].Control            = br.ReadInt32();                                               // ID_WINDOW_PARENT
                    Dialogs[d].Questions[q].QuestionTextLength = br.ReadInt32();                                               // TALK_TEXT_LEN
                    Dialogs[d].Questions[q].QuestionText       = br.ReadBytes(2 * Dialogs[d].Questions[q].QuestionTextLength); // TALK_TEXT (TALK_TEXT_LEN * 2)
                    Dialogs[d].Questions[q].ChoiceQount        = br.ReadInt32();                                               // NUM_OPTION
                    Dialogs[d].Questions[q].Choices            = new eChoice[Dialogs[d].Questions[q].ChoiceQount];
                    for (int c = 0; c < Dialogs[d].Questions[q].ChoiceQount; c++)
                    {
                        Dialogs[d].Questions[q].Choices[c]              = new eChoice();
                        Dialogs[d].Questions[q].Choices[c].Control      = br.ReadInt32();    // ID_OPTION
                        Dialogs[d].Questions[q].Choices[c].ChoiceText   = br.ReadBytes(128); // TEXT_OPTION
                        Dialogs[d].Questions[q].Choices[c].PARAM_OPTION = br.ReadInt32();    // PARAM_OPTION
                    }
                }
                Dialogs[d].TALK_PROC_TYPE = br.ReadInt32(); // TALK_PROC_TYPE
                Dialogs[d].ID_PATH        = br.ReadInt32(); // ID_PATH
            }
            AfterTalkLen = br.ReadInt32();
            AfterTalk    = br.ReadBytes(AfterTalkLen);

            br.Close();
            ms.Close();
        }