Esempio n. 1
0
            public DLGEntry(BinaryReaderEx br, Dictionary <int, string> strings,
                            Dictionary <int, SHAPEntry> shapEntries, Dictionary <int, CTRLEntry> ctrlEntries, Dictionary <int, DLGOEntry> dlgoEntries)
            {
                int nameOffset = br.ReadInt32();
                int shapOffset = br.ReadInt32();
                int ctrlOffset = br.ReadInt32();

                br.AssertInt32(0);
                br.AssertInt32(0);
                br.AssertInt32(0);
                br.AssertInt32(0);
                br.AssertInt32(0);
                Unk9 = br.ReadInt32();
                int dlgoOffset = br.ReadInt32();

                LeftEdge   = br.ReadInt16();
                TopEdge    = br.ReadInt16();
                RightEdge  = br.ReadInt16();
                BottomEdge = br.ReadInt16();
                Unk14      = br.ReadInt16();
                br.AssertInt16(-1);
                br.AssertInt32(-1);
                br.AssertInt16(-1);
                br.AssertInt16(0);
                br.AssertInt32(0);

                Name    = strings[nameOffset];
                Shape   = shapEntries[shapOffset];
                Control = ctrlEntries[ctrlOffset];
                DLGO    = dlgoEntries[dlgoOffset];
            }
Esempio n. 2
0
        private static Dictionary <int, DLGOEntry> ReadDLGO(BinaryReaderEx br, Dictionary <int, string> strings, Dictionary <int, SHAPEntry> shapEntries, Dictionary <int, CTRLEntry> ctrlEntries)
        {
            ReadSectionHeader(br, "DLGO", out int entrySize, out int entryCount);

            int startPosition = (int)br.Position;
            Dictionary <int, DLGOEntry> dlgoEntries = new Dictionary <int, DLGOEntry>();

            for (int i = 0; i < entryCount; i++)
            {
                int offset = (int)br.Position - startPosition;
                dlgoEntries[offset] = new DLGOEntry(br, strings, shapEntries, ctrlEntries);
            }

            br.Pad(0x10);
            return(dlgoEntries);
        }