Adds little hack for GetOwner.
This commit is contained in:
		| @@ -18,10 +18,9 @@ static void PrintObjectTypeDef(asITypeInfo* type, const std::filesystem::path& d | ||||
|     std::fstream fs; | ||||
|     fs.open((dir / name).concat(".astypedef"), std::fstream::out); | ||||
|  | ||||
|     if ((type->GetFlags() & asOBJ_VALUE) != 0 && (type->GetFlags() & asOBJ_ASHANDLE) == 0){ | ||||
|     if ((type->GetFlags() & asOBJ_VALUE) != 0 && (type->GetFlags() & asOBJ_ASHANDLE) == 0) { | ||||
|         fs << "valuetype"; | ||||
|     } | ||||
|     else{ | ||||
|     } else { | ||||
|         fs << "type"; | ||||
|     } | ||||
|  | ||||
| @@ -117,24 +116,27 @@ static void PrintScriptObject(asITypeInfo* type, const std::filesystem::path& di | ||||
|             auto name = std::string(method->GetName()); | ||||
|             if (name == "opAssign") | ||||
|                 continue; | ||||
|             if (name == "GetOwner") { | ||||
|                 fs << "\tref@ __owner;" << std::endl << std::endl; | ||||
|             } | ||||
|             auto decl = std::string(method->GetDeclaration(false, true, true)); | ||||
|             replace(decl, "&in", " &in"); | ||||
|             replace(decl, "&out", " &out"); | ||||
|             replace(decl, "ref", "ref@"); | ||||
|             fs << "\t" << decl; | ||||
|             if (isAbstract){ | ||||
|                 if (method->GetReturnTypeId() == 0){ | ||||
|             if (isAbstract) { | ||||
|                 if (method->GetReturnTypeId() == 0) { | ||||
|                     fs << "{};" << std::endl; | ||||
|                 } | ||||
|                 else{ | ||||
|                     if (method->GetReturnTypeId() == asTYPEID_BOOL){ | ||||
|                 } else { | ||||
|                     if (name == "GetOwner") { | ||||
|                         fs << "{ return __owner; };" << std::endl; | ||||
|                     } else if (method->GetReturnTypeId() == asTYPEID_BOOL) { | ||||
|                         fs << "{ return false; };" << std::endl; | ||||
|                     } | ||||
|                     else{ | ||||
|                     } else { | ||||
|                         fs << "{ return 0; };" << std::endl; | ||||
|                     } | ||||
|                 } | ||||
|             } | ||||
|             else | ||||
|             } else | ||||
|                 fs << ";" << std::endl; | ||||
|         } | ||||
|     } | ||||
| @@ -187,7 +189,7 @@ void ScriptHeadersExporter::Export(const std::string& outPath) { | ||||
|     } | ||||
|  | ||||
|     auto globalFuncs = engine->GetGlobalFunctionCount(); | ||||
|     if (globalFuncs > 0){ | ||||
|     if (globalFuncs > 0) { | ||||
|         std::fstream fs; | ||||
|         fs.open((dir / "globals").concat(".astypedef"), std::fstream::out); | ||||
|  | ||||
| @@ -196,5 +198,4 @@ void ScriptHeadersExporter::Export(const std::string& outPath) { | ||||
|             fs << "func " << func->GetDeclaration(false, false, true) << ";" << std::endl; | ||||
|         } | ||||
|     } | ||||
|  | ||||
| } | ||||
		Reference in New Issue
	
	Block a user