示例#1
0
        public ParseState Parse(XmlElement element, ParseState parseState)
        {
            string name = element.Attributes["name"].InnerText;
            string docs = element.Attributes["docs"].InnerText;

            EngineStruct engineStruct = new EngineStruct(name)
            {
                Docs  = docs,
                Scope = parseState.Scope
            };

            foreach (XmlElement childNode in element.ChildNodes)
            {
                if (!childNode.Name.Equals("fields"))
                {
                    continue;
                }
                foreach (XmlElement fieldNode in childNode.ChildNodes)
                {
                    engineStruct.Add(new EngineStruct.Field()
                    {
                        Name        = fieldNode.Attributes["name"].InnerText,
                        TypeName    = fieldNode.Attributes["type"].InnerText,
                        Offset      = fieldNode.Attributes["offset"].InnerText,
                        Docs        = fieldNode.Attributes["docs"].InnerText,
                        IndexedSize = int.Parse(fieldNode.Attributes["indexedSize"].InnerText)
                    });
                }
            }

            parseState.Structs.Add(engineStruct);
            return(parseState);
        }
示例#2
0
        static void Main(string[] args)
        {
            EngineStruct engine   = new EngineStruct();
            ICar         car      = new Mercedes();
            AbstractCar  car2     = new Mercedes();
            Mercedes     mercedes = new Mercedes();

            Mercedes.StartEngine();

            Mercedes m1 = new Mercedes();

            Console.WriteLine("Remaining km: " + m1.ShowRemainingNoOfKM(13, 8));

            Mercedes m2 = new Mercedes();

            m2.StartEngine(10);

            double km = m2.CalculateConsumption(10);

            Console.WriteLine(km);


            Console.WriteLine("Mercedes is " + mercedes.Description);
            Console.WriteLine("Mercedes costs " + mercedes.Price);

            Console.WriteLine("This is my first C# project!");
            Console.ReadKey();
        }
示例#3
0
        static void Main(string[] args)
        {
            Mercedes     mercedes = new Mercedes();     // instantiem clasa Mercedes
            EngineStruct engine   = new EngineStruct(); // instantiem struct EngineStruct

            // abstract classes cannot be instantiated
            // AbstractCar aCar = new AbstractCar();

            ICar        car  = new Mercedes();
            AbstractCar car2 = new Mercedes();

            Console.WriteLine("This is my first C# project!");

            // accesam proprietatile publice ale clasei Mercedes
            Console.WriteLine("Mercedes is " + mercedes.Description);
            Console.WriteLine("Mercedes costs " + mercedes.Price);
            Console.WriteLine("Mercedes fuel type is  " + mercedes.fuelType);
            Console.WriteLine("Mercedes year of construction is  " + mercedes.yearOfConstruction);

            // proprietatile private nu sunt vizibile

            /*
             * Console.WriteLine("Mercedes is " + mercedes._description);
             * Console.WriteLine("Mercedes costs " + mercedes._price);
             */

            // proprietati interne

            /*
             * Console.WriteLine("Mercedes is " + mercedes.InternalNameName);
             * Console.WriteLine("Mercedes description " + mercedes.InternalDescription);
             */

            // proprietati protected

            /*
             * Console.WriteLine("Mercedes is " + mercedes.ProtectedName);
             * Console.WriteLine("Mercedes description " + mercedes.ProtectedDescription);
             */

            Console.WriteLine(mercedes.StartEngine());
            Console.WriteLine(mercedes.StartEngine(10));

            Console.WriteLine(mercedes.ShowRemainingNoOfKM(100, 6));

            // showing remaining no of Km by reading values directy as input
            Console.WriteLine(mercedes.ReturnRemainingNoOfKM());

            // CalculateConsumption method that takes variable number of parameters
            Console.WriteLine(mercedes.CalculateConsumption(10, 2, 5));
            Console.WriteLine(mercedes.CalculateConsumption(100, 56, 3, 12, 5, 69));

            Console.ReadKey();
        }
        static void Main(string[] args)
        {
            // AbstractCar aCar = new AbstractCar(); Nu se poate instantia
            Mercedes     mercedes = new Mercedes();
            EngineStruct engine   = new EngineStruct();
            ICar         car      = new Mercedes();
            AbstractCar  car2     = new Mercedes();

            Console.WriteLine("This is my first application");
            Console.WriteLine("Mercedes is " + mercedes.Description);
            Console.WriteLine("Mercedes costs " + mercedes.Price);
            Console.ReadKey();
        }
示例#5
0
        static void Main(string[] args)
        {
            Mercedes     _mercedes = new Mercedes();
            EngineStruct engine    = new EngineStruct();
            ICar         _car      = new Mercedes();
            AbstractCar  car2      = new Mercedes();
            Mercedes     _m        = new Mercedes(4, "verde");

            Console.WriteLine("This is my first C# project!");
            Console.WriteLine("Mercedes is: " + _mercedes.Description + " and has the price: " + _mercedes.Price);
            Console.WriteLine("Culoare: " + _m.color + ", nr. roti: " + _m.wheelsNumber);
            Audi a = new Audi();

            Console.WriteLine(a.carStarted);
            Console.ReadLine();
        }
示例#6
0
        static void Main(string[] args)
        {
            // AbstractCar aCar = new AbstractCar(); Nu se poate instantia
            Mercedes     mercedes = new Mercedes();
            EngineStruct engine   = new EngineStruct();

            mercedes.StartEngine();
            mercedes.ShowRemainingNoOfKM(100, 50);
            ICar        car  = new Mercedes();
            AbstractCar car2 = new Mercedes();

            Console.WriteLine("This is my first application");
            Console.WriteLine("Mercedes is " + mercedes.Description);
            Console.WriteLine("Mercedes costs " + mercedes.Price);
            Console.WriteLine(mercedes.StartEngine(1000));
            Console.WriteLine("The consumption is " + mercedes.CalculateConsumption(12, 25, 35));
            Console.ReadKey();
        }
        static void Main(string[] args)
        {
            Mercedes mercedes = new Mercedes();
            Audi     audi     = new Audi();

            Console.WriteLine("Viteza e: " + audi.vitezometru(1));
            audi.carStart();
            ShowRemainingNoOfKM(1000, 5);
            StartEngine();
            EngineStruct engineStruct = new EngineStruct();
            ICar         car          = new Mercedes();

            Console.WriteLine("This is my first C# project");
            Console.WriteLine("Mercedes is " + mercedes.Description);
            Console.WriteLine("Mercedes costs " + mercedes.Price);
            PrintLogo();
            PrintMax(2, 3);
            Console.ReadKey();
        }
示例#8
0
        public async Task LoadFix()
        {
            data = files_array[SMem.Data] as ROMBIN;
            Reader reader = files_array[SMem.Data].reader;

            reader.ReadUInt16();
            reader.ReadUInt16();
            ushort num_textureTables = reader.ReadUInt16();             // for texture data. not referenced in fat.bin
            ushort flags             = reader.ReadUInt16();
            ushort num_levels        = reader.ReadUInt16();

            reader.ReadUInt16();

            if (Settings.s.platform == Settings.Platform.DS || Settings.s.platform == Settings.Platform.N64)
            {
                loadingState = "Loading texture tables";
                await WaitIfNecessary();

                for (int i = 0; i < 18; i++)
                {
                    Pointer off_list = Pointer.Read(reader);
                    uint    num_list = reader.ReadUInt32();
                }
                Pointer off_table_i4   = Pointer.Read(reader);
                uint    sz_table_i4    = reader.ReadUInt32() >> 2;
                Pointer off_table_i8   = Pointer.Read(reader);
                uint    sz_table_i8    = reader.ReadUInt32() >> 2;
                Pointer off_table_rgba = Pointer.Read(reader);
                uint    sz_table_rgba  = reader.ReadUInt32() >> 2;
                ind_textureTable_i4   = 0;
                ind_textureTable_i8   = ind_textureTable_i4 + (sz_table_i4);
                ind_textureTable_rgba = ind_textureTable_i8 + (sz_table_i8);
                uint totalSz = ind_textureTable_rgba + (sz_table_rgba);
                texturesTable = new Pointer[totalSz];
                Pointer.DoAt(ref reader, off_table_i4, () => {
                    for (int i = 0; i < sz_table_i4; i++)
                    {
                        texturesTable[ind_textureTable_i4 + i] = Pointer.Read(reader);
                    }
                });
                Pointer.DoAt(ref reader, off_table_i8, () => {
                    for (int i = 0; i < sz_table_i8; i++)
                    {
                        texturesTable[ind_textureTable_i8 + i] = Pointer.Read(reader);
                    }
                });
                Pointer.DoAt(ref reader, off_table_rgba, () => {
                    for (int i = 0; i < sz_table_rgba; i++)
                    {
                        texturesTable[ind_textureTable_rgba + i] = Pointer.Read(reader);
                    }
                });
                Pointer off_palettesTable = Pointer.Read(reader);
                if (Settings.s.platform == Settings.Platform.DS)
                {
                    uint sz_palettesTable = reader.ReadUInt32() >> 2;
                    palettesTable = new Pointer[sz_palettesTable];
                    print(texturesTable.Length + " - " + palettesTable.Length);
                    Pointer.DoAt(ref reader, off_palettesTable, () => {
                        for (int i = 0; i < sz_palettesTable; i++)
                        {
                            palettesTable[i] = Pointer.Read(reader);
                        }
                    });
                }
                else
                {
                    palettesTable = new Pointer[0];
                }
            }

            // Read fix texture list
            loadingState = "Loading engine structure";
            await WaitIfNecessary();

            EngineStruct engineStruct = GetOrRead <EngineStruct>(reader, (ushort)(0 | FATEntry.Flag.Fix));

            // Read languages table
            loadingState = "Loading language tables";
            await WaitIfNecessary();

            NumLanguages numLanguages = GetOrRead <NumLanguages>(reader, 0);

            print("Number of languages: " + numLanguages.num_languages);
            localizationROM = new LanguageTable[numLanguages.num_languages];
            for (ushort i = 0; i < numLanguages.num_languages; i++)
            {
                loadingState = "Loading language table " + (i + 1) + "/" + numLanguages.num_languages;
                await WaitIfNecessary();

                localizationROM[i] = GetOrRead <LanguageTable>(reader, i);
                if (localizationROM[i] != null)
                {
                    print(localizationROM[i].name);
                }
            }

            // Load level list
            loadingState = "Loading level list";
            await WaitIfNecessary();

            LevelList levelList = GetOrRead <LevelList>(reader, (ushort)(0 | FATEntry.Flag.Fix), l => l.num_levels = num_levels);

            for (int i = 0; i < num_levels; i++)
            {
                if (levelList.levels[i].name.ToLower() == lvlName.ToLower())
                {
                    CurrentLevel = i;
                    break;
                }
            }
        }