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); }
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); }