Ejemplo n.º 1
0
        public override void Process(string includePath)
        {
            // Read File
            var fileStr = ReadThisFile(includePath);

            // Replace Main stuff
            fileStr.BaseStr.Replace("/*!!INCLUDE!!*/", TargetLang.GetFileHeader(_include, false));
            fileStr.BaseStr.Replace("/*!!FOOTER!!*/", TargetLang.GetFileFooter());

            // Replace
            fileStr.BaseStr.Replace("/*!!DEFINE!!*/", "");
            if (!Generator.GameModule.Empty())
            {
                long gObjectsOffset = ObjectsStore.GObjects.Address.ToInt64() - Generator.GameModuleBase.ToInt64();
                long gNamesOffset   = NamesStore.GNames.Address.ToInt64() - Generator.GameModuleBase.ToInt64();
                fileStr.BaseStr.Replace("/*!!AUTO_INIT_SDK!!*/", $"InitSdk(\"{Generator.GameModule}\", 0x{gObjectsOffset:X}, 0x{gNamesOffset:X});");
            }
            else
            {
                fileStr.BaseStr.Replace("/*!!AUTO_INIT_SDK!!*/", "throw std::exception(\"Don't use this func.\");");
            }

            // Write File
            CopyToSdk(fileStr);
        }
Ejemplo n.º 2
0
        public override void Process(string includePath)
        {
            // Read File
            var fileStr = ReadThisFile(includePath);

            // Replace Main stuff
            fileStr.BaseStr.Replace("/*!!INCLUDE!!*/", TargetLang.GetFileHeader(_pragmas, _include, true));
            fileStr.BaseStr.Replace("/*!!FOOTER!!*/", TargetLang.GetFileFooter());

            var    jStruct         = JsonReflector.GetStruct("FUObjectItem");
            string fUObjectItemStr = string.Empty;

            // Replace
            foreach (var(_, var) in jStruct.Vars)
            {
                fUObjectItemStr += var.VarType.All(char.IsDigit)
                    ? $"\tunsigned char {var.Name} [{var.VarType}];{Utils.NLine}"
                    : $"\t{var.VarType} {var.Name};{Utils.NLine}";
            }

            fileStr.BaseStr.Replace("/*!!DEFINE!!*/", Generator.IsGObjectsChunks ? "#define GOBJECTS_CHUNKS" : "");
            fileStr.BaseStr.Replace("/*!!POINTER_SIZE!!*/", Utils.GamePointerSize().ToString());
            fileStr.BaseStr.Replace("/*!!FUObjectItem_MEMBERS!!*/", fUObjectItemStr);

            // Write File
            CopyToSdk(fileStr);
        }
Ejemplo n.º 3
0
 public CcWalker(CSharpSourceCode src, TargetLang lang) : base(SyntaxWalkerDepth.StructuredTrivia)
 {
     this.src  = src;
     this.lang = lang;
 }