Makes GBA ROM pointers from ROM offsets
Inheritance: IPointerMaker
Ejemplo n.º 1
0
        public static void LoadCodes(string rawsFolder, string extension, bool isDirectory, bool collectDocCodes)
        {
            languages = new Dictionary<string, EACodeLanguage>();
            LanguageProcessor pro = new LanguageProcessor(collectDocCodes,
                new TemplateComparer(), stringComparer);
            IPointerMaker<int> ptrMaker = new GBAPointerMaker();
            if (isDirectory)
            {
                pro.ProcessCode(rawsFolder, extension);
            }
            else
            {
                pro.ProcessCode(rawsFolder);
            }
            foreach (KeyValuePair<string, ICodeTemplateStorer> item in pro.Languages)
            {
                Tuple<string, List<Priority>>[][] pointerList;

                switch (item.Key)
                {
                    case "FE6":
                        pointerList = FE6CodeLanguage.PointerList;
                        break;
                    case "FE7":
                        pointerList = FE7CodeLanguage.PointerList;
                        break;
                    case "FE8":
                        pointerList = FE8CodeLanguage.PointerList;
                        break;
                    default:
                        throw new NotSupportedException("Language " + item.Key + " not supported.");
                }
                ICodeTemplateStorer storer = item.Value;
                if (item.Key == "FE8")
                {
                    storer.AddCode(new GenericFE8Template(), Priority.none);
                }
                EACodeLanguage language = new EACodeLanguage(
                    item.Key, ptrMaker,
                    pointerList,
                    storer, stringComparer
                    );
                languages[item.Key] = language;
            }
        }
Ejemplo n.º 2
0
        public static void LoadCodes()
        {
            if (languages != null)
            {
                languages.Clear();
            }
            else
            {
                languages = new Dictionary<String, EACodeLanguage>();
            }

            LanguageProcessor processor = new LanguageProcessor(false,
                new TemplateComparer(), stringComparer);
            processor.ProcessCode("Language raws", ".txt");

            IPointerMaker ptrMaker = new GBAPointerMaker();

            foreach (KeyValuePair<string, ICodeTemplateStorer> item in processor.Languages)
            {
                Tuple<string, List<Priority>>[][] pointerList;

                switch (item.Key)
                {
                    case "FE6":
                        pointerList = FE6CodeLanguage.PointerList;
                        break;
                    case "FE7":
                        pointerList = FE7CodeLanguage.PointerList;
                        break;
                    case "FE8":
                        pointerList = FE8CodeLanguage.PointerList;
                        break;
                    default:
                        throw new NotSupportedException("Language " + item.Key + " not supported.");
                }
                EACodeLanguage language = new EACodeLanguage(
                    item.Key, ptrMaker,
                    pointerList,
                    item.Value, stringComparer
                    );
                language.MessageLog = messageLog;
                languages[item.Key] = language;
            }
        }