Browse Source

AS Autobindings: Cleanup (#2798)

1vanK 4 years ago
parent
commit
946321cb6f

+ 0 - 75
Source/Urho3D/AngelScript/APITemplates.h

@@ -292,67 +292,12 @@ void RegisterImplicitlyDeclaredAssignOperatorIfPossible(asIScriptEngine* engine,
 }
 }
 
 
 // ================================================================================
 // ================================================================================
-
-static const AttributeInfo noAttributeInfoOLD{};
-
 // To keep Xcode LLVM/Clang happy - it erroneously warns on unused functions defined below which are actually being referenced in the code
 // To keep Xcode LLVM/Clang happy - it erroneously warns on unused functions defined below which are actually being referenced in the code
 #if __clang__
 #if __clang__
 #pragma clang diagnostic push
 #pragma clang diagnostic push
 #pragma clang diagnostic ignored "-Wunused-function"
 #pragma clang diagnostic ignored "-Wunused-function"
 #endif
 #endif
 
 
-static const AttributeInfo& SerializableGetAttributeInfoOLD(unsigned index, Serializable* ptr)
-{
-    const Vector<AttributeInfo>* attributes = ptr->GetAttributes();
-    if (!attributes || index >= attributes->Size())
-    {
-        GetActiveASContext()->SetException("Index out of bounds");
-        return noAttributeInfoOLD;
-    }
-    else
-        return attributes->At(index);
-}
-
-// ================================================================================
-
-// bool Resource::Load(Deserializer &source) | File: ../Resource/Resource.h
-static bool ResourceLoadOLD(File* file, Resource* ptr)
-{
-    return file && ptr->Load(*file);
-}
-
-// bool Resource::Load(Deserializer &source) | File: ../Resource/Resource.h
-static bool ResourceLoadVectorBufferOLD(VectorBuffer& buffer, Resource* ptr)
-{
-    return ptr->Load(buffer);
-}
-
-// bool Resource::LoadFile(const String &fileName) | File: ../Resource/Resource.h
-static bool ResourceLoadByNameOLD(const String& fileName, Resource* ptr)
-{
-    return ptr->LoadFile(fileName);
-}
-
-// virtual bool Resource::Save(Serializer &dest) const | File: ../Resource/Resource.h
-static bool ResourceSaveOLD(File* file, Resource* ptr)
-{
-    return file && ptr->Save(*file);
-}
-
-// virtual bool Resource::Save(Serializer &dest) const | File: ../Resource/Resource.h
-static bool ResourceSaveVectorBufferOLD(VectorBuffer& buffer, Resource* ptr)
-{
-    return ptr->Save(buffer);
-}
-
-// virtual bool Resource::SaveFile(const String &fileName) const | File: ../Resource/Resource.h
-static bool ResourceSaveByNameOLD(const String& fileName, Resource* ptr)
-{
-    return ptr->SaveFile(fileName);
-}
-
-// ================================================================================
-
 template <class T> T* ConstructObject()
 template <class T> T* ConstructObject()
 {
 {
     auto* object = new T(GetScriptContext());
     auto* object = new T(GetScriptContext());
@@ -382,26 +327,6 @@ template <class T> void RegisterNamedObjectConstructor(asIScriptEngine* engine,
     engine->RegisterObjectBehaviour(className, asBEHAVE_FACTORY, declFactoryWithName.CString(), AS_FUNCTION(ConstructNamedObject<T>), AS_CALL_CDECL);
     engine->RegisterObjectBehaviour(className, asBEHAVE_FACTORY, declFactoryWithName.CString(), AS_FUNCTION(ConstructNamedObject<T>), AS_CALL_CDECL);
 }
 }
 
 
-static bool SerializableLoad(File* file, Serializable* ptr)
-{
-    return file && ptr->Load(*file);
-}
-
-static bool SerializableLoadVectorBuffer(VectorBuffer& buffer, Serializable* ptr)
-{
-    return ptr->Load(buffer);
-}
-
-static bool SerializableSave(File* file, Serializable* ptr)
-{
-    return file && ptr->Save(*file);
-}
-
-static bool SerializableSaveVectorBuffer(VectorBuffer& buffer, Serializable* ptr)
-{
-    return ptr->Save(buffer);
-}
-
 #if __clang__
 #if __clang__
 #pragma clang diagnostic pop
 #pragma clang diagnostic pop
 #endif
 #endif

+ 0 - 13
Source/Urho3D/AngelScript/Addons.cpp

@@ -33,19 +33,6 @@
 namespace Urho3D
 namespace Urho3D
 {
 {
 
 
-bool operator ==(const asSFuncPtr& a, const asSFuncPtr& b)
-{
-    for (size_t i = 0; i < sizeof(a.ptr.dummy); i++)
-    {
-        if (a.ptr.dummy[i] != b.ptr.dummy[i])
-            return false;
-    }
-
-    return a.flag == b.flag;
-}
-
-using namespace std;
-
 // Set the default memory routines
 // Set the default memory routines
 // Use the angelscript engine's memory routines by default
 // Use the angelscript engine's memory routines by default
 static asALLOCFUNC_t userAlloc = asAllocMem;
 static asALLOCFUNC_t userAlloc = asAllocMem;

+ 0 - 2
Source/Urho3D/AngelScript/Addons.h

@@ -39,8 +39,6 @@
 namespace Urho3D
 namespace Urho3D
 {
 {
 
 
-//bool operator ==(const asSFuncPtr& a, const asSFuncPtr& b);
-
 struct SArrayBuffer;
 struct SArrayBuffer;
 struct SArrayCache;
 struct SArrayCache;
 
 

+ 0 - 36
Source/Urho3D/AngelScript/GeneratedClasses.cpp

@@ -4685,9 +4685,6 @@ static void Register_Resource(asIScriptEngine* engine)
     #ifdef REGISTER_CLASS_MANUAL_PART_Resource
     #ifdef REGISTER_CLASS_MANUAL_PART_Resource
         REGISTER_CLASS_MANUAL_PART_Resource();
         REGISTER_CLASS_MANUAL_PART_Resource();
     #endif
     #endif
-
-    // bool Resource::Load(Deserializer& source)
-    engine->RegisterObjectMethod("Resource", "bool Load(Deserializer&)", AS_METHODPR(Resource, Load, (Deserializer&), bool), AS_CALL_THISCALL);
 }
 }
 
 
 // explicit ResourceCache::ResourceCache(Context* context)
 // explicit ResourceCache::ResourceCache(Context* context)
@@ -4734,9 +4731,6 @@ static void Register_Serializable(asIScriptEngine* engine)
     #ifdef REGISTER_CLASS_MANUAL_PART_Serializable
     #ifdef REGISTER_CLASS_MANUAL_PART_Serializable
         REGISTER_CLASS_MANUAL_PART_Serializable();
         REGISTER_CLASS_MANUAL_PART_Serializable();
     #endif
     #endif
-
-    // virtual bool Serializable::LoadXML(const XMLElement& source)
-    engine->RegisterObjectMethod("Serializable", "bool LoadXML(const XMLElement&in)", AS_METHODPR(Serializable, LoadXML, (const XMLElement&), bool), AS_CALL_THISCALL);
 }
 }
 
 
 // ShaderParameterAnimationInfo::ShaderParameterAnimationInfo(Material* material, const String& name, ValueAnimation* attributeAnimation, WrapMode wrapMode, float speed)
 // ShaderParameterAnimationInfo::ShaderParameterAnimationInfo(Material* material, const String& name, ValueAnimation* attributeAnimation, WrapMode wrapMode, float speed)
@@ -5246,9 +5240,6 @@ static void Register_Animatable(asIScriptEngine* engine)
     #ifdef REGISTER_CLASS_MANUAL_PART_Animatable
     #ifdef REGISTER_CLASS_MANUAL_PART_Animatable
         REGISTER_CLASS_MANUAL_PART_Animatable();
         REGISTER_CLASS_MANUAL_PART_Animatable();
     #endif
     #endif
-
-    // bool Animatable::LoadXML(const XMLElement& source) override
-    engine->RegisterObjectMethod("Animatable", "bool LoadXML(const XMLElement&in)", AS_METHODPR(Animatable, LoadXML, (const XMLElement&), bool), AS_CALL_THISCALL);
 }
 }
 
 
 // explicit EventProfiler::EventProfiler(Context* context)
 // explicit EventProfiler::EventProfiler(Context* context)
@@ -5863,15 +5854,6 @@ static void Register_UIElement(asIScriptEngine* engine)
     engine->RegisterObjectMethod("UIElement", "bool IsSelected() const", AS_METHODPR(UIElement, IsSelected, () const, bool), AS_CALL_THISCALL);
     engine->RegisterObjectMethod("UIElement", "bool IsSelected() const", AS_METHODPR(UIElement, IsSelected, () const, bool), AS_CALL_THISCALL);
     engine->RegisterObjectMethod("UIElement", "bool get_selected() const", AS_METHODPR(UIElement, IsSelected, () const, bool), AS_CALL_THISCALL);
     engine->RegisterObjectMethod("UIElement", "bool get_selected() const", AS_METHODPR(UIElement, IsSelected, () const, bool), AS_CALL_THISCALL);
 
 
-    // bool UIElement::LoadXML(const XMLElement& source) override
-    engine->RegisterObjectMethod("UIElement", "bool LoadXML(const XMLElement&in)", AS_METHODPR(UIElement, LoadXML, (const XMLElement&), bool), AS_CALL_THISCALL);
-
-    // bool UIElement::LoadXML(Deserializer& source)
-    engine->RegisterObjectMethod("UIElement", "bool LoadXML(Deserializer&)", AS_METHODPR(UIElement, LoadXML, (Deserializer&), bool), AS_CALL_THISCALL);
-
-    // bool UIElement::SaveXML(Serializer& dest, const String& indentation = "\t") const
-    engine->RegisterObjectMethod("UIElement", "bool SaveXML(Serializer&, const String&in = \"\t\") const", AS_METHODPR(UIElement, SaveXML, (Serializer&, const String&) const, bool), AS_CALL_THISCALL);
-
     // void UIElement::SetPosition(const IntVector2& position)
     // void UIElement::SetPosition(const IntVector2& position)
     engine->RegisterObjectMethod("UIElement", "void SetPosition(const IntVector2&in)", AS_METHODPR(UIElement, SetPosition, (const IntVector2&), void), AS_CALL_THISCALL);
     engine->RegisterObjectMethod("UIElement", "void SetPosition(const IntVector2&in)", AS_METHODPR(UIElement, SetPosition, (const IntVector2&), void), AS_CALL_THISCALL);
     engine->RegisterObjectMethod("UIElement", "void set_position(const IntVector2&in)", AS_METHODPR(UIElement, SetPosition, (const IntVector2&), void), AS_CALL_THISCALL);
     engine->RegisterObjectMethod("UIElement", "void set_position(const IntVector2&in)", AS_METHODPR(UIElement, SetPosition, (const IntVector2&), void), AS_CALL_THISCALL);
@@ -5930,15 +5912,6 @@ static void Register_BorderImage(asIScriptEngine* engine)
     #ifdef REGISTER_CLASS_MANUAL_PART_BorderImage
     #ifdef REGISTER_CLASS_MANUAL_PART_BorderImage
         REGISTER_CLASS_MANUAL_PART_BorderImage();
         REGISTER_CLASS_MANUAL_PART_BorderImage();
     #endif
     #endif
-
-    // bool UIElement::LoadXML(const XMLElement& source) override
-    engine->RegisterObjectMethod("BorderImage", "bool LoadXML(const XMLElement&in)", AS_METHODPR(BorderImage, LoadXML, (const XMLElement&), bool), AS_CALL_THISCALL);
-
-    // bool UIElement::LoadXML(Deserializer& source)
-    engine->RegisterObjectMethod("BorderImage", "bool LoadXML(Deserializer&)", AS_METHODPR(BorderImage, LoadXML, (Deserializer&), bool), AS_CALL_THISCALL);
-
-    // bool UIElement::SaveXML(Serializer& dest, const String& indentation = "\t") const
-    engine->RegisterObjectMethod("BorderImage", "bool SaveXML(Serializer&, const String&in = \"\t\") const", AS_METHODPR(BorderImage, SaveXML, (Serializer&, const String&) const, bool), AS_CALL_THISCALL);
 }
 }
 
 
 // explicit Camera::Camera(Context* context)
 // explicit Camera::Camera(Context* context)
@@ -7062,15 +7035,6 @@ static void Register_Button(asIScriptEngine* engine)
     #ifdef REGISTER_CLASS_MANUAL_PART_Button
     #ifdef REGISTER_CLASS_MANUAL_PART_Button
         REGISTER_CLASS_MANUAL_PART_Button();
         REGISTER_CLASS_MANUAL_PART_Button();
     #endif
     #endif
-
-    // bool UIElement::LoadXML(const XMLElement& source) override
-    engine->RegisterObjectMethod("Button", "bool LoadXML(const XMLElement&in)", AS_METHODPR(Button, LoadXML, (const XMLElement&), bool), AS_CALL_THISCALL);
-
-    // bool UIElement::LoadXML(Deserializer& source)
-    engine->RegisterObjectMethod("Button", "bool LoadXML(Deserializer&)", AS_METHODPR(Button, LoadXML, (Deserializer&), bool), AS_CALL_THISCALL);
-
-    // bool UIElement::SaveXML(Serializer& dest, const String& indentation = "\t") const
-    engine->RegisterObjectMethod("Button", "bool SaveXML(Serializer&, const String&in = \"\t\") const", AS_METHODPR(Button, SaveXML, (Serializer&, const String&) const, bool), AS_CALL_THISCALL);
 }
 }
 
 
 // explicit CheckBox::CheckBox(Context* context)
 // explicit CheckBox::CheckBox(Context* context)

+ 12 - 161
Source/Urho3D/AngelScript/Generated_Members.h

@@ -11541,9 +11541,6 @@ template <class T> void RegisterMembers_Resource(asIScriptEngine* engine, const
 {
 {
     RegisterMembers_Object<T>(engine, className);
     RegisterMembers_Object<T>(engine, className);
 
 
-    // bool Resource::Load(Deserializer& source)
-    // Can not be registered here bacause hidden in derived classes: Material, ParticleEffect
-
     // virtual bool Resource::BeginLoad(Deserializer& source)
     // virtual bool Resource::BeginLoad(Deserializer& source)
     engine->RegisterObjectMethod(className, "bool BeginLoad(Deserializer&)", AS_METHODPR(T, BeginLoad, (Deserializer&), bool), AS_CALL_THISCALL);
     engine->RegisterObjectMethod(className, "bool BeginLoad(Deserializer&)", AS_METHODPR(T, BeginLoad, (Deserializer&), bool), AS_CALL_THISCALL);
 
 
@@ -11568,6 +11565,9 @@ template <class T> void RegisterMembers_Resource(asIScriptEngine* engine, const
     engine->RegisterObjectMethod(className, "uint GetUseTimer()", AS_METHODPR(T, GetUseTimer, (), unsigned), AS_CALL_THISCALL);
     engine->RegisterObjectMethod(className, "uint GetUseTimer()", AS_METHODPR(T, GetUseTimer, (), unsigned), AS_CALL_THISCALL);
     engine->RegisterObjectMethod(className, "uint get_useTimer()", AS_METHODPR(T, GetUseTimer, (), unsigned), AS_CALL_THISCALL);
     engine->RegisterObjectMethod(className, "uint get_useTimer()", AS_METHODPR(T, GetUseTimer, (), unsigned), AS_CALL_THISCALL);
 
 
+    // bool Resource::Load(Deserializer& source)
+    engine->RegisterObjectMethod(className, "bool Load(Deserializer&)", AS_METHODPR(T, Load, (Deserializer&), bool), AS_CALL_THISCALL);
+
     // bool Resource::LoadFile(const String& fileName)
     // bool Resource::LoadFile(const String& fileName)
     engine->RegisterObjectMethod(className, "bool LoadFile(const String&in)", AS_METHODPR(T, LoadFile, (const String&), bool), AS_CALL_THISCALL);
     engine->RegisterObjectMethod(className, "bool LoadFile(const String&in)", AS_METHODPR(T, LoadFile, (const String&), bool), AS_CALL_THISCALL);
     engine->RegisterObjectMethod(className, "bool Load(const String&in)", AS_METHODPR(T, LoadFile, (const String&), bool), AS_CALL_THISCALL);
     engine->RegisterObjectMethod(className, "bool Load(const String&in)", AS_METHODPR(T, LoadFile, (const String&), bool), AS_CALL_THISCALL);
@@ -11824,8 +11824,6 @@ template <class T> void RegisterMembers_Serializable(asIScriptEngine* engine, co
     // Error: type "const Vector<AttributeInfo>*" can not automatically bind
     // Error: type "const Vector<AttributeInfo>*" can not automatically bind
     // NetworkState* Serializable::GetNetworkState() const
     // NetworkState* Serializable::GetNetworkState() const
     // Error: type "NetworkState*" can not automatically bind
     // Error: type "NetworkState*" can not automatically bind
-    // virtual bool Serializable::LoadXML(const XMLElement& source)
-    // Can not be registered here bacause hidden in derived classes: Menu, DropDownList
 
 
     // void Serializable::AllocateNetworkState()
     // void Serializable::AllocateNetworkState()
     engine->RegisterObjectMethod(className, "void AllocateNetworkState()", AS_METHODPR(T, AllocateNetworkState, (), void), AS_CALL_THISCALL);
     engine->RegisterObjectMethod(className, "void AllocateNetworkState()", AS_METHODPR(T, AllocateNetworkState, (), void), AS_CALL_THISCALL);
@@ -11867,6 +11865,9 @@ template <class T> void RegisterMembers_Serializable(asIScriptEngine* engine, co
     // virtual bool Serializable::LoadJSON(const JSONValue& source)
     // virtual bool Serializable::LoadJSON(const JSONValue& source)
     engine->RegisterObjectMethod(className, "bool LoadJSON(const JSONValue&in)", AS_METHODPR(T, LoadJSON, (const JSONValue&), bool), AS_CALL_THISCALL);
     engine->RegisterObjectMethod(className, "bool LoadJSON(const JSONValue&in)", AS_METHODPR(T, LoadJSON, (const JSONValue&), bool), AS_CALL_THISCALL);
 
 
+    // virtual bool Serializable::LoadXML(const XMLElement& source)
+    engine->RegisterObjectMethod(className, "bool LoadXML(const XMLElement&in)", AS_METHODPR(T, LoadXML, (const XMLElement&), bool), AS_CALL_THISCALL);
+
     // virtual void Serializable::MarkNetworkUpdate()
     // virtual void Serializable::MarkNetworkUpdate()
     engine->RegisterObjectMethod(className, "void MarkNetworkUpdate()", AS_METHODPR(T, MarkNetworkUpdate, (), void), AS_CALL_THISCALL);
     engine->RegisterObjectMethod(className, "void MarkNetworkUpdate()", AS_METHODPR(T, MarkNetworkUpdate, (), void), AS_CALL_THISCALL);
 
 
@@ -13227,9 +13228,6 @@ template <class T> void RegisterMembers_Animatable(asIScriptEngine* engine, cons
 {
 {
     RegisterMembers_Serializable<T>(engine, className);
     RegisterMembers_Serializable<T>(engine, className);
 
 
-    // bool Animatable::LoadXML(const XMLElement& source) override
-    // Can not be registered here bacause hidden in derived classes: Menu, DropDownList
-
     // bool Animatable::GetAnimationEnabled() const
     // bool Animatable::GetAnimationEnabled() const
     engine->RegisterObjectMethod(className, "bool GetAnimationEnabled() const", AS_METHODPR(T, GetAnimationEnabled, () const, bool), AS_CALL_THISCALL);
     engine->RegisterObjectMethod(className, "bool GetAnimationEnabled() const", AS_METHODPR(T, GetAnimationEnabled, () const, bool), AS_CALL_THISCALL);
     engine->RegisterObjectMethod(className, "bool get_animationEnabled() const", AS_METHODPR(T, GetAnimationEnabled, () const, bool), AS_CALL_THISCALL);
     engine->RegisterObjectMethod(className, "bool get_animationEnabled() const", AS_METHODPR(T, GetAnimationEnabled, () const, bool), AS_CALL_THISCALL);
@@ -13338,9 +13336,6 @@ template <class T> void RegisterMembers_Font(asIScriptEngine* engine, const char
     // bool Font::IsSDFFont() const
     // bool Font::IsSDFFont() const
     engine->RegisterObjectMethod(className, "bool IsSDFFont() const", AS_METHODPR(T, IsSDFFont, () const, bool), AS_CALL_THISCALL);
     engine->RegisterObjectMethod(className, "bool IsSDFFont() const", AS_METHODPR(T, IsSDFFont, () const, bool), AS_CALL_THISCALL);
 
 
-    // bool Resource::Load(Deserializer& source)
-    engine->RegisterObjectMethod(className, "bool Load(Deserializer&)", AS_METHODPR(T, Load, (Deserializer&), bool), AS_CALL_THISCALL);
-
     // void Font::ReleaseFaces()
     // void Font::ReleaseFaces()
     engine->RegisterObjectMethod(className, "void ReleaseFaces()", AS_METHODPR(T, ReleaseFaces, (), void), AS_CALL_THISCALL);
     engine->RegisterObjectMethod(className, "void ReleaseFaces()", AS_METHODPR(T, ReleaseFaces, (), void), AS_CALL_THISCALL);
 
 
@@ -13502,9 +13497,6 @@ template <class T> void RegisterMembers_Image(asIScriptEngine* engine, const cha
     engine->RegisterObjectMethod(className, "bool IsSRGB() const", AS_METHODPR(T, IsSRGB, () const, bool), AS_CALL_THISCALL);
     engine->RegisterObjectMethod(className, "bool IsSRGB() const", AS_METHODPR(T, IsSRGB, () const, bool), AS_CALL_THISCALL);
     engine->RegisterObjectMethod(className, "bool get_sRGB() const", AS_METHODPR(T, IsSRGB, () const, bool), AS_CALL_THISCALL);
     engine->RegisterObjectMethod(className, "bool get_sRGB() const", AS_METHODPR(T, IsSRGB, () const, bool), AS_CALL_THISCALL);
 
 
-    // bool Resource::Load(Deserializer& source)
-    engine->RegisterObjectMethod(className, "bool Load(Deserializer&)", AS_METHODPR(T, Load, (Deserializer&), bool), AS_CALL_THISCALL);
-
     // bool Image::LoadColorLUT(Deserializer& source)
     // bool Image::LoadColorLUT(Deserializer& source)
     engine->RegisterObjectMethod(className, "bool LoadColorLUT(Deserializer&)", AS_METHODPR(T, LoadColorLUT, (Deserializer&), bool), AS_CALL_THISCALL);
     engine->RegisterObjectMethod(className, "bool LoadColorLUT(Deserializer&)", AS_METHODPR(T, LoadColorLUT, (Deserializer&), bool), AS_CALL_THISCALL);
 
 
@@ -13576,9 +13568,6 @@ template <class T> void RegisterMembers_JSONFile(asIScriptEngine* engine, const
     // const JSONValue& JSONFile::GetRoot() const
     // const JSONValue& JSONFile::GetRoot() const
     engine->RegisterObjectMethod(className, "const JSONValue& GetRoot() const", AS_METHODPR(T, GetRoot, () const, const JSONValue&), AS_CALL_THISCALL);
     engine->RegisterObjectMethod(className, "const JSONValue& GetRoot() const", AS_METHODPR(T, GetRoot, () const, const JSONValue&), AS_CALL_THISCALL);
 
 
-    // bool Resource::Load(Deserializer& source)
-    engine->RegisterObjectMethod(className, "bool Load(Deserializer&)", AS_METHODPR(T, Load, (Deserializer&), bool), AS_CALL_THISCALL);
-
     // bool JSONFile::Save(Serializer& dest, const String& indendation) const
     // bool JSONFile::Save(Serializer& dest, const String& indendation) const
     engine->RegisterObjectMethod(className, "bool Save(Serializer&, const String&in) const", AS_METHODPR(T, Save, (Serializer&, const String&) const, bool), AS_CALL_THISCALL);
     engine->RegisterObjectMethod(className, "bool Save(Serializer&, const String&in) const", AS_METHODPR(T, Save, (Serializer&, const String&) const, bool), AS_CALL_THISCALL);
 
 
@@ -13837,9 +13826,6 @@ template <class T> void RegisterMembers_ObjectAnimation(asIScriptEngine* engine,
     engine->RegisterObjectMethod(className, "WrapMode GetAttributeAnimationWrapMode(const String&in) const", AS_METHODPR(T, GetAttributeAnimationWrapMode, (const String&) const, WrapMode), AS_CALL_THISCALL);
     engine->RegisterObjectMethod(className, "WrapMode GetAttributeAnimationWrapMode(const String&in) const", AS_METHODPR(T, GetAttributeAnimationWrapMode, (const String&) const, WrapMode), AS_CALL_THISCALL);
     engine->RegisterObjectMethod(className, "WrapMode get_wrapModes(const String&in) const", AS_METHODPR(T, GetAttributeAnimationWrapMode, (const String&) const, WrapMode), AS_CALL_THISCALL);
     engine->RegisterObjectMethod(className, "WrapMode get_wrapModes(const String&in) const", AS_METHODPR(T, GetAttributeAnimationWrapMode, (const String&) const, WrapMode), AS_CALL_THISCALL);
 
 
-    // bool Resource::Load(Deserializer& source)
-    engine->RegisterObjectMethod(className, "bool Load(Deserializer&)", AS_METHODPR(T, Load, (Deserializer&), bool), AS_CALL_THISCALL);
-
     // bool ObjectAnimation::LoadJSON(const JSONValue& source)
     // bool ObjectAnimation::LoadJSON(const JSONValue& source)
     engine->RegisterObjectMethod(className, "bool LoadJSON(const JSONValue&in)", AS_METHODPR(T, LoadJSON, (const JSONValue&), bool), AS_CALL_THISCALL);
     engine->RegisterObjectMethod(className, "bool LoadJSON(const JSONValue&in)", AS_METHODPR(T, LoadJSON, (const JSONValue&), bool), AS_CALL_THISCALL);
 
 
@@ -14239,9 +14225,6 @@ template <class T> void RegisterMembers_ResourceWithMetadata(asIScriptEngine* en
     engine->RegisterObjectMethod(className, "bool HasMetadata() const", AS_METHODPR(T, HasMetadata, () const, bool), AS_CALL_THISCALL);
     engine->RegisterObjectMethod(className, "bool HasMetadata() const", AS_METHODPR(T, HasMetadata, () const, bool), AS_CALL_THISCALL);
     engine->RegisterObjectMethod(className, "bool get_hasMetadata() const", AS_METHODPR(T, HasMetadata, () const, bool), AS_CALL_THISCALL);
     engine->RegisterObjectMethod(className, "bool get_hasMetadata() const", AS_METHODPR(T, HasMetadata, () const, bool), AS_CALL_THISCALL);
 
 
-    // bool Resource::Load(Deserializer& source)
-    engine->RegisterObjectMethod(className, "bool Load(Deserializer&)", AS_METHODPR(T, Load, (Deserializer&), bool), AS_CALL_THISCALL);
-
     // void ResourceWithMetadata::RemoveAllMetadata()
     // void ResourceWithMetadata::RemoveAllMetadata()
     engine->RegisterObjectMethod(className, "void RemoveAllMetadata()", AS_METHODPR(T, RemoveAllMetadata, (), void), AS_CALL_THISCALL);
     engine->RegisterObjectMethod(className, "void RemoveAllMetadata()", AS_METHODPR(T, RemoveAllMetadata, (), void), AS_CALL_THISCALL);
 
 
@@ -14270,9 +14253,6 @@ template <class T> void RegisterMembers_Shader(asIScriptEngine* engine, const ch
     // ShaderVariation* Shader::GetVariation(ShaderType type, const String& defines)
     // ShaderVariation* Shader::GetVariation(ShaderType type, const String& defines)
     engine->RegisterObjectMethod(className, "ShaderVariation@+ GetVariation(ShaderType, const String&in)", AS_METHODPR(T, GetVariation, (ShaderType, const String&), ShaderVariation*), AS_CALL_THISCALL);
     engine->RegisterObjectMethod(className, "ShaderVariation@+ GetVariation(ShaderType, const String&in)", AS_METHODPR(T, GetVariation, (ShaderType, const String&), ShaderVariation*), AS_CALL_THISCALL);
 
 
-    // bool Resource::Load(Deserializer& source)
-    engine->RegisterObjectMethod(className, "bool Load(Deserializer&)", AS_METHODPR(T, Load, (Deserializer&), bool), AS_CALL_THISCALL);
-
     // static void Shader::RegisterObject(Context* context)
     // static void Shader::RegisterObject(Context* context)
     // Not registered because have @nobind mark
     // Not registered because have @nobind mark
 
 
@@ -14361,9 +14341,6 @@ template <class T> void RegisterMembers_Technique(asIScriptEngine* engine, const
     engine->RegisterObjectMethod(className, "bool IsSupported() const", AS_METHODPR(T, IsSupported, () const, bool), AS_CALL_THISCALL);
     engine->RegisterObjectMethod(className, "bool IsSupported() const", AS_METHODPR(T, IsSupported, () const, bool), AS_CALL_THISCALL);
     engine->RegisterObjectMethod(className, "bool get_supported() const", AS_METHODPR(T, IsSupported, () const, bool), AS_CALL_THISCALL);
     engine->RegisterObjectMethod(className, "bool get_supported() const", AS_METHODPR(T, IsSupported, () const, bool), AS_CALL_THISCALL);
 
 
-    // bool Resource::Load(Deserializer& source)
-    engine->RegisterObjectMethod(className, "bool Load(Deserializer&)", AS_METHODPR(T, Load, (Deserializer&), bool), AS_CALL_THISCALL);
-
     // void Technique::ReleaseShaders()
     // void Technique::ReleaseShaders()
     engine->RegisterObjectMethod(className, "void ReleaseShaders()", AS_METHODPR(T, ReleaseShaders, (), void), AS_CALL_THISCALL);
     engine->RegisterObjectMethod(className, "void ReleaseShaders()", AS_METHODPR(T, ReleaseShaders, (), void), AS_CALL_THISCALL);
 
 
@@ -14450,9 +14427,6 @@ template <class T> void RegisterMembers_ValueAnimation(asIScriptEngine* engine,
     // bool ValueAnimation::IsValid() const
     // bool ValueAnimation::IsValid() const
     engine->RegisterObjectMethod(className, "bool IsValid() const", AS_METHODPR(T, IsValid, () const, bool), AS_CALL_THISCALL);
     engine->RegisterObjectMethod(className, "bool IsValid() const", AS_METHODPR(T, IsValid, () const, bool), AS_CALL_THISCALL);
 
 
-    // bool Resource::Load(Deserializer& source)
-    engine->RegisterObjectMethod(className, "bool Load(Deserializer&)", AS_METHODPR(T, Load, (Deserializer&), bool), AS_CALL_THISCALL);
-
     // bool ValueAnimation::LoadJSON(const JSONValue& source)
     // bool ValueAnimation::LoadJSON(const JSONValue& source)
     engine->RegisterObjectMethod(className, "bool LoadJSON(const JSONValue&in)", AS_METHODPR(T, LoadJSON, (const JSONValue&), bool), AS_CALL_THISCALL);
     engine->RegisterObjectMethod(className, "bool LoadJSON(const JSONValue&in)", AS_METHODPR(T, LoadJSON, (const JSONValue&), bool), AS_CALL_THISCALL);
 
 
@@ -14511,9 +14485,6 @@ template <class T> void RegisterMembers_XMLFile(asIScriptEngine* engine, const c
     // XMLElement XMLFile::GetRoot(const String& name = String::EMPTY)
     // XMLElement XMLFile::GetRoot(const String& name = String::EMPTY)
     engine->RegisterObjectMethod(className, "XMLElement GetRoot(const String&in = String::EMPTY)", AS_METHODPR(T, GetRoot, (const String&), XMLElement), AS_CALL_THISCALL);
     engine->RegisterObjectMethod(className, "XMLElement GetRoot(const String&in = String::EMPTY)", AS_METHODPR(T, GetRoot, (const String&), XMLElement), AS_CALL_THISCALL);
 
 
-    // bool Resource::Load(Deserializer& source)
-    engine->RegisterObjectMethod(className, "bool Load(Deserializer&)", AS_METHODPR(T, Load, (Deserializer&), bool), AS_CALL_THISCALL);
-
     // void XMLFile::Patch(XMLFile* patchFile)
     // void XMLFile::Patch(XMLFile* patchFile)
     engine->RegisterObjectMethod(className, "void Patch(XMLFile@+)", AS_METHODPR(T, Patch, (XMLFile*), void), AS_CALL_THISCALL);
     engine->RegisterObjectMethod(className, "void Patch(XMLFile@+)", AS_METHODPR(T, Patch, (XMLFile*), void), AS_CALL_THISCALL);
 
 
@@ -14560,9 +14531,6 @@ template <class T> void RegisterMembers_AnimationSet2D(asIScriptEngine* engine,
     // bool AnimationSet2D::HasAnimation(const String& animationName) const
     // bool AnimationSet2D::HasAnimation(const String& animationName) const
     engine->RegisterObjectMethod(className, "bool HasAnimation(const String&in) const", AS_METHODPR(T, HasAnimation, (const String&) const, bool), AS_CALL_THISCALL);
     engine->RegisterObjectMethod(className, "bool HasAnimation(const String&in) const", AS_METHODPR(T, HasAnimation, (const String&) const, bool), AS_CALL_THISCALL);
 
 
-    // bool Resource::Load(Deserializer& source)
-    engine->RegisterObjectMethod(className, "bool Load(Deserializer&)", AS_METHODPR(T, Load, (Deserializer&), bool), AS_CALL_THISCALL);
-
     // static void AnimationSet2D::RegisterObject(Context* context)
     // static void AnimationSet2D::RegisterObject(Context* context)
     // Not registered because have @nobind mark
     // Not registered because have @nobind mark
 
 
@@ -14691,9 +14659,6 @@ template <class T> void RegisterMembers_ParticleEffect2D(asIScriptEngine* engine
     // float ParticleEffect2D::GetTangentialAccelVariance() const
     // float ParticleEffect2D::GetTangentialAccelVariance() const
     engine->RegisterObjectMethod(className, "float GetTangentialAccelVariance() const", AS_METHODPR(T, GetTangentialAccelVariance, () const, float), AS_CALL_THISCALL);
     engine->RegisterObjectMethod(className, "float GetTangentialAccelVariance() const", AS_METHODPR(T, GetTangentialAccelVariance, () const, float), AS_CALL_THISCALL);
 
 
-    // bool Resource::Load(Deserializer& source)
-    engine->RegisterObjectMethod(className, "bool Load(Deserializer&)", AS_METHODPR(T, Load, (Deserializer&), bool), AS_CALL_THISCALL);
-
     // void ParticleEffect2D::SetAngle(float angle)
     // void ParticleEffect2D::SetAngle(float angle)
     engine->RegisterObjectMethod(className, "void SetAngle(float)", AS_METHODPR(T, SetAngle, (float), void), AS_CALL_THISCALL);
     engine->RegisterObjectMethod(className, "void SetAngle(float)", AS_METHODPR(T, SetAngle, (float), void), AS_CALL_THISCALL);
 
 
@@ -14844,9 +14809,6 @@ template <class T> void RegisterMembers_Sprite2D(asIScriptEngine* engine, const
     // bool Sprite2D::GetTextureRectangle(Rect& rect, bool flipX = false, bool flipY = false) const
     // bool Sprite2D::GetTextureRectangle(Rect& rect, bool flipX = false, bool flipY = false) const
     engine->RegisterObjectMethod(className, "bool GetTextureRectangle(Rect&, bool = false, bool = false) const", AS_METHODPR(T, GetTextureRectangle, (Rect&, bool, bool) const, bool), AS_CALL_THISCALL);
     engine->RegisterObjectMethod(className, "bool GetTextureRectangle(Rect&, bool = false, bool = false) const", AS_METHODPR(T, GetTextureRectangle, (Rect&, bool, bool) const, bool), AS_CALL_THISCALL);
 
 
-    // bool Resource::Load(Deserializer& source)
-    engine->RegisterObjectMethod(className, "bool Load(Deserializer&)", AS_METHODPR(T, Load, (Deserializer&), bool), AS_CALL_THISCALL);
-
     // void Sprite2D::SetHotSpot(const Vector2& hotSpot)
     // void Sprite2D::SetHotSpot(const Vector2& hotSpot)
     engine->RegisterObjectMethod(className, "void SetHotSpot(const Vector2&in)", AS_METHODPR(T, SetHotSpot, (const Vector2&), void), AS_CALL_THISCALL);
     engine->RegisterObjectMethod(className, "void SetHotSpot(const Vector2&in)", AS_METHODPR(T, SetHotSpot, (const Vector2&), void), AS_CALL_THISCALL);
     engine->RegisterObjectMethod(className, "void set_hotSpot(const Vector2&in)", AS_METHODPR(T, SetHotSpot, (const Vector2&), void), AS_CALL_THISCALL);
     engine->RegisterObjectMethod(className, "void set_hotSpot(const Vector2&in)", AS_METHODPR(T, SetHotSpot, (const Vector2&), void), AS_CALL_THISCALL);
@@ -14902,9 +14864,6 @@ template <class T> void RegisterMembers_SpriteSheet2D(asIScriptEngine* engine, c
     engine->RegisterObjectMethod(className, "Texture2D@+ GetTexture() const", AS_METHODPR(T, GetTexture, () const, Texture2D*), AS_CALL_THISCALL);
     engine->RegisterObjectMethod(className, "Texture2D@+ GetTexture() const", AS_METHODPR(T, GetTexture, () const, Texture2D*), AS_CALL_THISCALL);
     engine->RegisterObjectMethod(className, "Texture2D@+ get_texture() const", AS_METHODPR(T, GetTexture, () const, Texture2D*), AS_CALL_THISCALL);
     engine->RegisterObjectMethod(className, "Texture2D@+ get_texture() const", AS_METHODPR(T, GetTexture, () const, Texture2D*), AS_CALL_THISCALL);
 
 
-    // bool Resource::Load(Deserializer& source)
-    engine->RegisterObjectMethod(className, "bool Load(Deserializer&)", AS_METHODPR(T, Load, (Deserializer&), bool), AS_CALL_THISCALL);
-
     // void SpriteSheet2D::SetTexture(Texture2D* texture)
     // void SpriteSheet2D::SetTexture(Texture2D* texture)
     engine->RegisterObjectMethod(className, "void SetTexture(Texture2D@+)", AS_METHODPR(T, SetTexture, (Texture2D*), void), AS_CALL_THISCALL);
     engine->RegisterObjectMethod(className, "void SetTexture(Texture2D@+)", AS_METHODPR(T, SetTexture, (Texture2D*), void), AS_CALL_THISCALL);
     engine->RegisterObjectMethod(className, "void set_texture(Texture2D@+)", AS_METHODPR(T, SetTexture, (Texture2D*), void), AS_CALL_THISCALL);
     engine->RegisterObjectMethod(className, "void set_texture(Texture2D@+)", AS_METHODPR(T, SetTexture, (Texture2D*), void), AS_CALL_THISCALL);
@@ -14957,9 +14916,6 @@ template <class T> void RegisterMembers_TmxFile2D(asIScriptEngine* engine, const
     // Sprite2D* TmxFile2D::GetTileSprite(unsigned gid) const
     // Sprite2D* TmxFile2D::GetTileSprite(unsigned gid) const
     engine->RegisterObjectMethod(className, "Sprite2D@+ GetTileSprite(uint) const", AS_METHODPR(T, GetTileSprite, (unsigned) const, Sprite2D*), AS_CALL_THISCALL);
     engine->RegisterObjectMethod(className, "Sprite2D@+ GetTileSprite(uint) const", AS_METHODPR(T, GetTileSprite, (unsigned) const, Sprite2D*), AS_CALL_THISCALL);
 
 
-    // bool Resource::Load(Deserializer& source)
-    engine->RegisterObjectMethod(className, "bool Load(Deserializer&)", AS_METHODPR(T, Load, (Deserializer&), bool), AS_CALL_THISCALL);
-
     // bool TmxFile2D::SetInfo(Orientation2D orientation, int width, int height, float tileWidth, float tileHeight)
     // bool TmxFile2D::SetInfo(Orientation2D orientation, int width, int height, float tileWidth, float tileHeight)
     engine->RegisterObjectMethod(className, "bool SetInfo(Orientation2D, int, int, float, float)", AS_METHODPR(T, SetInfo, (Orientation2D, int, int, float, float), bool), AS_CALL_THISCALL);
     engine->RegisterObjectMethod(className, "bool SetInfo(Orientation2D, int, int, float, float)", AS_METHODPR(T, SetInfo, (Orientation2D, int, int, float, float), bool), AS_CALL_THISCALL);
 
 
@@ -15115,9 +15071,6 @@ template <class T> void RegisterMembers_Component(asIScriptEngine* engine, const
     engine->RegisterObjectMethod(className, "bool IsReplicated() const", AS_METHODPR(T, IsReplicated, () const, bool), AS_CALL_THISCALL);
     engine->RegisterObjectMethod(className, "bool IsReplicated() const", AS_METHODPR(T, IsReplicated, () const, bool), AS_CALL_THISCALL);
     engine->RegisterObjectMethod(className, "bool get_replicated() const", AS_METHODPR(T, IsReplicated, () const, bool), AS_CALL_THISCALL);
     engine->RegisterObjectMethod(className, "bool get_replicated() const", AS_METHODPR(T, IsReplicated, () const, bool), AS_CALL_THISCALL);
 
 
-    // bool Animatable::LoadXML(const XMLElement& source) override
-    engine->RegisterObjectMethod(className, "bool LoadXML(const XMLElement&in)", AS_METHODPR(T, LoadXML, (const XMLElement&), bool), AS_CALL_THISCALL);
-
     // void Component::PrepareNetworkUpdate()
     // void Component::PrepareNetworkUpdate()
     engine->RegisterObjectMethod(className, "void PrepareNetworkUpdate()", AS_METHODPR(T, PrepareNetworkUpdate, (), void), AS_CALL_THISCALL);
     engine->RegisterObjectMethod(className, "void PrepareNetworkUpdate()", AS_METHODPR(T, PrepareNetworkUpdate, (), void), AS_CALL_THISCALL);
 
 
@@ -15623,9 +15576,6 @@ template <class T> void RegisterMembers_Node(asIScriptEngine* engine, const char
     engine->RegisterObjectMethod(className, "bool IsReplicated() const", AS_METHODPR(T, IsReplicated, () const, bool), AS_CALL_THISCALL);
     engine->RegisterObjectMethod(className, "bool IsReplicated() const", AS_METHODPR(T, IsReplicated, () const, bool), AS_CALL_THISCALL);
     engine->RegisterObjectMethod(className, "bool get_replicated() const", AS_METHODPR(T, IsReplicated, () const, bool), AS_CALL_THISCALL);
     engine->RegisterObjectMethod(className, "bool get_replicated() const", AS_METHODPR(T, IsReplicated, () const, bool), AS_CALL_THISCALL);
 
 
-    // bool Node::LoadXML(const XMLElement& source) override
-    engine->RegisterObjectMethod(className, "bool LoadXML(const XMLElement&in)", AS_METHODPR(T, LoadXML, (const XMLElement&), bool), AS_CALL_THISCALL);
-
     // Vector3 Node::LocalToWorld(const Vector3& position) const
     // Vector3 Node::LocalToWorld(const Vector3& position) const
     engine->RegisterObjectMethod(className, "Vector3 LocalToWorld(const Vector3&in) const", AS_METHODPR(T, LocalToWorld, (const Vector3&) const, Vector3), AS_CALL_THISCALL);
     engine->RegisterObjectMethod(className, "Vector3 LocalToWorld(const Vector3&in) const", AS_METHODPR(T, LocalToWorld, (const Vector3&) const, Vector3), AS_CALL_THISCALL);
 
 
@@ -16280,12 +16230,6 @@ template <class T> void RegisterMembers_UIElement(asIScriptEngine* engine, const
     // Can not be registered here bacause hidden in derived classes: Sprite
     // Can not be registered here bacause hidden in derived classes: Sprite
     // bool UIElement::IsSelected() const
     // bool UIElement::IsSelected() const
     // Can not be registered here bacause hidden in derived classes: ListView
     // Can not be registered here bacause hidden in derived classes: ListView
-    // bool UIElement::LoadXML(const XMLElement& source) override
-    // Can not be registered here bacause hidden in derived classes: Menu, DropDownList
-    // bool UIElement::LoadXML(Deserializer& source)
-    // Can not be registered here bacause hidden in derived classes: Menu, DropDownList
-    // bool UIElement::SaveXML(Serializer& dest, const String& indentation = "\t") const
-    // Can not be registered here bacause hidden in derived classes: Menu, DropDownList
     // void UIElement::SetPosition(const IntVector2& position)
     // void UIElement::SetPosition(const IntVector2& position)
     // Can not be registered here bacause hidden in derived classes: Sprite
     // Can not be registered here bacause hidden in derived classes: Sprite
     // void UIElement::SetPosition(int x, int y)
     // void UIElement::SetPosition(int x, int y)
@@ -16640,6 +16584,9 @@ template <class T> void RegisterMembers_UIElement(asIScriptEngine* engine, const
     // virtual bool UIElement::LoadXML(const XMLElement& source, XMLFile* styleFile)
     // virtual bool UIElement::LoadXML(const XMLElement& source, XMLFile* styleFile)
     engine->RegisterObjectMethod(className, "bool LoadXML(const XMLElement&in, XMLFile@+)", AS_METHODPR(T, LoadXML, (const XMLElement&, XMLFile*), bool), AS_CALL_THISCALL);
     engine->RegisterObjectMethod(className, "bool LoadXML(const XMLElement&in, XMLFile@+)", AS_METHODPR(T, LoadXML, (const XMLElement&, XMLFile*), bool), AS_CALL_THISCALL);
 
 
+    // bool UIElement::LoadXML(Deserializer& source)
+    engine->RegisterObjectMethod(className, "bool LoadXML(Deserializer&)", AS_METHODPR(T, LoadXML, (Deserializer&), bool), AS_CALL_THISCALL);
+
     // virtual void UIElement::OnClickBegin(const IntVector2& position, const IntVector2& screenPosition, MouseButton button, MouseButtonFlags buttons, QualifierFlags qualifiers, Cursor* cursor)
     // virtual void UIElement::OnClickBegin(const IntVector2& position, const IntVector2& screenPosition, MouseButton button, MouseButtonFlags buttons, QualifierFlags qualifiers, Cursor* cursor)
     engine->RegisterObjectMethod(className, "void OnClickBegin(const IntVector2&in, const IntVector2&in, MouseButton, MouseButtonFlags, QualifierFlags, Cursor@+)", AS_METHODPR(T, OnClickBegin, (const IntVector2&, const IntVector2&, MouseButton, MouseButtonFlags, QualifierFlags, Cursor*), void), AS_CALL_THISCALL);
     engine->RegisterObjectMethod(className, "void OnClickBegin(const IntVector2&in, const IntVector2&in, MouseButton, MouseButtonFlags, QualifierFlags, Cursor@+)", AS_METHODPR(T, OnClickBegin, (const IntVector2&, const IntVector2&, MouseButton, MouseButtonFlags, QualifierFlags, Cursor*), void), AS_CALL_THISCALL);
 
 
@@ -16712,6 +16659,9 @@ template <class T> void RegisterMembers_UIElement(asIScriptEngine* engine, const
     // void UIElement::ResetDeepEnabled()
     // void UIElement::ResetDeepEnabled()
     engine->RegisterObjectMethod(className, "void ResetDeepEnabled()", AS_METHODPR(T, ResetDeepEnabled, (), void), AS_CALL_THISCALL);
     engine->RegisterObjectMethod(className, "void ResetDeepEnabled()", AS_METHODPR(T, ResetDeepEnabled, (), void), AS_CALL_THISCALL);
 
 
+    // bool UIElement::SaveXML(Serializer& dest, const String& indentation = "\t") const
+    engine->RegisterObjectMethod(className, "bool SaveXML(Serializer&, const String&in = \"\t\") const", AS_METHODPR(T, SaveXML, (Serializer&, const String&) const, bool), AS_CALL_THISCALL);
+
     // virtual IntVector2 UIElement::ScreenToElement(const IntVector2& screenPosition)
     // virtual IntVector2 UIElement::ScreenToElement(const IntVector2& screenPosition)
     engine->RegisterObjectMethod(className, "IntVector2 ScreenToElement(const IntVector2&in)", AS_METHODPR(T, ScreenToElement, (const IntVector2&), IntVector2), AS_CALL_THISCALL);
     engine->RegisterObjectMethod(className, "IntVector2 ScreenToElement(const IntVector2&in)", AS_METHODPR(T, ScreenToElement, (const IntVector2&), IntVector2), AS_CALL_THISCALL);
 
 
@@ -18173,15 +18123,6 @@ template <class T> void RegisterMembers_ScrollView(asIScriptEngine* engine, cons
     engine->RegisterObjectMethod(className, "const IntVector2& GetViewPosition() const", AS_METHODPR(T, GetViewPosition, () const, const IntVector2&), AS_CALL_THISCALL);
     engine->RegisterObjectMethod(className, "const IntVector2& GetViewPosition() const", AS_METHODPR(T, GetViewPosition, () const, const IntVector2&), AS_CALL_THISCALL);
     engine->RegisterObjectMethod(className, "const IntVector2& get_viewPosition() const", AS_METHODPR(T, GetViewPosition, () const, const IntVector2&), AS_CALL_THISCALL);
     engine->RegisterObjectMethod(className, "const IntVector2& get_viewPosition() const", AS_METHODPR(T, GetViewPosition, () const, const IntVector2&), AS_CALL_THISCALL);
 
 
-    // bool UIElement::LoadXML(const XMLElement& source) override
-    engine->RegisterObjectMethod(className, "bool LoadXML(const XMLElement&in)", AS_METHODPR(T, LoadXML, (const XMLElement&), bool), AS_CALL_THISCALL);
-
-    // bool UIElement::LoadXML(Deserializer& source)
-    engine->RegisterObjectMethod(className, "bool LoadXML(Deserializer&)", AS_METHODPR(T, LoadXML, (Deserializer&), bool), AS_CALL_THISCALL);
-
-    // bool UIElement::SaveXML(Serializer& dest, const String& indentation = "\t") const
-    engine->RegisterObjectMethod(className, "bool SaveXML(Serializer&, const String&in = \"\t\") const", AS_METHODPR(T, SaveXML, (Serializer&, const String&) const, bool), AS_CALL_THISCALL);
-
     // void ScrollView::SetAutoDisableChildren(bool disable)
     // void ScrollView::SetAutoDisableChildren(bool disable)
     engine->RegisterObjectMethod(className, "void SetAutoDisableChildren(bool)", AS_METHODPR(T, SetAutoDisableChildren, (bool), void), AS_CALL_THISCALL);
     engine->RegisterObjectMethod(className, "void SetAutoDisableChildren(bool)", AS_METHODPR(T, SetAutoDisableChildren, (bool), void), AS_CALL_THISCALL);
     engine->RegisterObjectMethod(className, "void set_autoDisableChildren(bool)", AS_METHODPR(T, SetAutoDisableChildren, (bool), void), AS_CALL_THISCALL);
     engine->RegisterObjectMethod(className, "void set_autoDisableChildren(bool)", AS_METHODPR(T, SetAutoDisableChildren, (bool), void), AS_CALL_THISCALL);
@@ -18568,15 +18509,6 @@ template <class T> void RegisterMembers_Sprite(asIScriptEngine* engine, const ch
     engine->RegisterObjectMethod(className, "bool IsSelected() const", AS_METHODPR(T, IsSelected, () const, bool), AS_CALL_THISCALL);
     engine->RegisterObjectMethod(className, "bool IsSelected() const", AS_METHODPR(T, IsSelected, () const, bool), AS_CALL_THISCALL);
     engine->RegisterObjectMethod(className, "bool get_selected() const", AS_METHODPR(T, IsSelected, () const, bool), AS_CALL_THISCALL);
     engine->RegisterObjectMethod(className, "bool get_selected() const", AS_METHODPR(T, IsSelected, () const, bool), AS_CALL_THISCALL);
 
 
-    // bool UIElement::LoadXML(const XMLElement& source) override
-    engine->RegisterObjectMethod(className, "bool LoadXML(const XMLElement&in)", AS_METHODPR(T, LoadXML, (const XMLElement&), bool), AS_CALL_THISCALL);
-
-    // bool UIElement::LoadXML(Deserializer& source)
-    engine->RegisterObjectMethod(className, "bool LoadXML(Deserializer&)", AS_METHODPR(T, LoadXML, (Deserializer&), bool), AS_CALL_THISCALL);
-
-    // bool UIElement::SaveXML(Serializer& dest, const String& indentation = "\t") const
-    engine->RegisterObjectMethod(className, "bool SaveXML(Serializer&, const String&in = \"\t\") const", AS_METHODPR(T, SaveXML, (Serializer&, const String&) const, bool), AS_CALL_THISCALL);
-
     // void Sprite::SetBlendMode(BlendMode mode)
     // void Sprite::SetBlendMode(BlendMode mode)
     engine->RegisterObjectMethod(className, "void SetBlendMode(BlendMode)", AS_METHODPR(T, SetBlendMode, (BlendMode), void), AS_CALL_THISCALL);
     engine->RegisterObjectMethod(className, "void SetBlendMode(BlendMode)", AS_METHODPR(T, SetBlendMode, (BlendMode), void), AS_CALL_THISCALL);
     engine->RegisterObjectMethod(className, "void set_blendMode(BlendMode)", AS_METHODPR(T, SetBlendMode, (BlendMode), void), AS_CALL_THISCALL);
     engine->RegisterObjectMethod(className, "void set_blendMode(BlendMode)", AS_METHODPR(T, SetBlendMode, (BlendMode), void), AS_CALL_THISCALL);
@@ -19054,18 +18986,9 @@ template <class T> void RegisterMembers_ToolTip(asIScriptEngine* engine, const c
     engine->RegisterObjectMethod(className, "bool IsSelected() const", AS_METHODPR(T, IsSelected, () const, bool), AS_CALL_THISCALL);
     engine->RegisterObjectMethod(className, "bool IsSelected() const", AS_METHODPR(T, IsSelected, () const, bool), AS_CALL_THISCALL);
     engine->RegisterObjectMethod(className, "bool get_selected() const", AS_METHODPR(T, IsSelected, () const, bool), AS_CALL_THISCALL);
     engine->RegisterObjectMethod(className, "bool get_selected() const", AS_METHODPR(T, IsSelected, () const, bool), AS_CALL_THISCALL);
 
 
-    // bool UIElement::LoadXML(const XMLElement& source) override
-    engine->RegisterObjectMethod(className, "bool LoadXML(const XMLElement&in)", AS_METHODPR(T, LoadXML, (const XMLElement&), bool), AS_CALL_THISCALL);
-
-    // bool UIElement::LoadXML(Deserializer& source)
-    engine->RegisterObjectMethod(className, "bool LoadXML(Deserializer&)", AS_METHODPR(T, LoadXML, (Deserializer&), bool), AS_CALL_THISCALL);
-
     // void ToolTip::Reset()
     // void ToolTip::Reset()
     engine->RegisterObjectMethod(className, "void Reset()", AS_METHODPR(T, Reset, (), void), AS_CALL_THISCALL);
     engine->RegisterObjectMethod(className, "void Reset()", AS_METHODPR(T, Reset, (), void), AS_CALL_THISCALL);
 
 
-    // bool UIElement::SaveXML(Serializer& dest, const String& indentation = "\t") const
-    engine->RegisterObjectMethod(className, "bool SaveXML(Serializer&, const String&in = \"\t\") const", AS_METHODPR(T, SaveXML, (Serializer&, const String&) const, bool), AS_CALL_THISCALL);
-
     // void ToolTip::SetDelay(float delay)
     // void ToolTip::SetDelay(float delay)
     engine->RegisterObjectMethod(className, "void SetDelay(float)", AS_METHODPR(T, SetDelay, (float), void), AS_CALL_THISCALL);
     engine->RegisterObjectMethod(className, "void SetDelay(float)", AS_METHODPR(T, SetDelay, (float), void), AS_CALL_THISCALL);
     engine->RegisterObjectMethod(className, "void set_delay(float)", AS_METHODPR(T, SetDelay, (float), void), AS_CALL_THISCALL);
     engine->RegisterObjectMethod(className, "void set_delay(float)", AS_METHODPR(T, SetDelay, (float), void), AS_CALL_THISCALL);
@@ -19134,15 +19057,6 @@ template <class T> void RegisterMembers_UISelectable(asIScriptEngine* engine, co
     engine->RegisterObjectMethod(className, "bool IsSelected() const", AS_METHODPR(T, IsSelected, () const, bool), AS_CALL_THISCALL);
     engine->RegisterObjectMethod(className, "bool IsSelected() const", AS_METHODPR(T, IsSelected, () const, bool), AS_CALL_THISCALL);
     engine->RegisterObjectMethod(className, "bool get_selected() const", AS_METHODPR(T, IsSelected, () const, bool), AS_CALL_THISCALL);
     engine->RegisterObjectMethod(className, "bool get_selected() const", AS_METHODPR(T, IsSelected, () const, bool), AS_CALL_THISCALL);
 
 
-    // bool UIElement::LoadXML(const XMLElement& source) override
-    engine->RegisterObjectMethod(className, "bool LoadXML(const XMLElement&in)", AS_METHODPR(T, LoadXML, (const XMLElement&), bool), AS_CALL_THISCALL);
-
-    // bool UIElement::LoadXML(Deserializer& source)
-    engine->RegisterObjectMethod(className, "bool LoadXML(Deserializer&)", AS_METHODPR(T, LoadXML, (Deserializer&), bool), AS_CALL_THISCALL);
-
-    // bool UIElement::SaveXML(Serializer& dest, const String& indentation = "\t") const
-    engine->RegisterObjectMethod(className, "bool SaveXML(Serializer&, const String&in = \"\t\") const", AS_METHODPR(T, SaveXML, (Serializer&, const String&) const, bool), AS_CALL_THISCALL);
-
     // void UISelectable::SetHoverColor(const Color& color)
     // void UISelectable::SetHoverColor(const Color& color)
     engine->RegisterObjectMethod(className, "void SetHoverColor(const Color&in)", AS_METHODPR(T, SetHoverColor, (const Color&), void), AS_CALL_THISCALL);
     engine->RegisterObjectMethod(className, "void SetHoverColor(const Color&in)", AS_METHODPR(T, SetHoverColor, (const Color&), void), AS_CALL_THISCALL);
     engine->RegisterObjectMethod(className, "void set_hoverColor(const Color&in)", AS_METHODPR(T, SetHoverColor, (const Color&), void), AS_CALL_THISCALL);
     engine->RegisterObjectMethod(className, "void set_hoverColor(const Color&in)", AS_METHODPR(T, SetHoverColor, (const Color&), void), AS_CALL_THISCALL);
@@ -21787,15 +21701,6 @@ template <class T> void RegisterMembers_CheckBox(asIScriptEngine* engine, const
     engine->RegisterObjectMethod(className, "bool IsChecked() const", AS_METHODPR(T, IsChecked, () const, bool), AS_CALL_THISCALL);
     engine->RegisterObjectMethod(className, "bool IsChecked() const", AS_METHODPR(T, IsChecked, () const, bool), AS_CALL_THISCALL);
     engine->RegisterObjectMethod(className, "bool get_checked() const", AS_METHODPR(T, IsChecked, () const, bool), AS_CALL_THISCALL);
     engine->RegisterObjectMethod(className, "bool get_checked() const", AS_METHODPR(T, IsChecked, () const, bool), AS_CALL_THISCALL);
 
 
-    // bool UIElement::LoadXML(const XMLElement& source) override
-    engine->RegisterObjectMethod(className, "bool LoadXML(const XMLElement&in)", AS_METHODPR(T, LoadXML, (const XMLElement&), bool), AS_CALL_THISCALL);
-
-    // bool UIElement::LoadXML(Deserializer& source)
-    engine->RegisterObjectMethod(className, "bool LoadXML(Deserializer&)", AS_METHODPR(T, LoadXML, (Deserializer&), bool), AS_CALL_THISCALL);
-
-    // bool UIElement::SaveXML(Serializer& dest, const String& indentation = "\t") const
-    engine->RegisterObjectMethod(className, "bool SaveXML(Serializer&, const String&in = \"\t\") const", AS_METHODPR(T, SaveXML, (Serializer&, const String&) const, bool), AS_CALL_THISCALL);
-
     // void CheckBox::SetChecked(bool enable)
     // void CheckBox::SetChecked(bool enable)
     engine->RegisterObjectMethod(className, "void SetChecked(bool)", AS_METHODPR(T, SetChecked, (bool), void), AS_CALL_THISCALL);
     engine->RegisterObjectMethod(className, "void SetChecked(bool)", AS_METHODPR(T, SetChecked, (bool), void), AS_CALL_THISCALL);
     engine->RegisterObjectMethod(className, "void set_checked(bool)", AS_METHODPR(T, SetChecked, (bool), void), AS_CALL_THISCALL);
     engine->RegisterObjectMethod(className, "void set_checked(bool)", AS_METHODPR(T, SetChecked, (bool), void), AS_CALL_THISCALL);
@@ -21839,15 +21744,6 @@ template <class T> void RegisterMembers_Cursor(asIScriptEngine* engine, const ch
     engine->RegisterObjectMethod(className, "bool GetUseSystemShapes() const", AS_METHODPR(T, GetUseSystemShapes, () const, bool), AS_CALL_THISCALL);
     engine->RegisterObjectMethod(className, "bool GetUseSystemShapes() const", AS_METHODPR(T, GetUseSystemShapes, () const, bool), AS_CALL_THISCALL);
     engine->RegisterObjectMethod(className, "bool get_useSystemShapes() const", AS_METHODPR(T, GetUseSystemShapes, () const, bool), AS_CALL_THISCALL);
     engine->RegisterObjectMethod(className, "bool get_useSystemShapes() const", AS_METHODPR(T, GetUseSystemShapes, () const, bool), AS_CALL_THISCALL);
 
 
-    // bool UIElement::LoadXML(const XMLElement& source) override
-    engine->RegisterObjectMethod(className, "bool LoadXML(const XMLElement&in)", AS_METHODPR(T, LoadXML, (const XMLElement&), bool), AS_CALL_THISCALL);
-
-    // bool UIElement::LoadXML(Deserializer& source)
-    engine->RegisterObjectMethod(className, "bool LoadXML(Deserializer&)", AS_METHODPR(T, LoadXML, (Deserializer&), bool), AS_CALL_THISCALL);
-
-    // bool UIElement::SaveXML(Serializer& dest, const String& indentation = "\t") const
-    engine->RegisterObjectMethod(className, "bool SaveXML(Serializer&, const String&in = \"\t\") const", AS_METHODPR(T, SaveXML, (Serializer&, const String&) const, bool), AS_CALL_THISCALL);
-
     // void Cursor::SetShape(const String& shape)
     // void Cursor::SetShape(const String& shape)
     engine->RegisterObjectMethod(className, "void SetShape(const String&in)", AS_METHODPR(T, SetShape, (const String&), void), AS_CALL_THISCALL);
     engine->RegisterObjectMethod(className, "void SetShape(const String&in)", AS_METHODPR(T, SetShape, (const String&), void), AS_CALL_THISCALL);
     engine->RegisterObjectMethod(className, "void set_shape(const String&in)", AS_METHODPR(T, SetShape, (const String&), void), AS_CALL_THISCALL);
     engine->RegisterObjectMethod(className, "void set_shape(const String&in)", AS_METHODPR(T, SetShape, (const String&), void), AS_CALL_THISCALL);
@@ -22330,15 +22226,6 @@ template <class T> void RegisterMembers_LineEdit(asIScriptEngine* engine, const
     engine->RegisterObjectMethod(className, "bool IsTextSelectable() const", AS_METHODPR(T, IsTextSelectable, () const, bool), AS_CALL_THISCALL);
     engine->RegisterObjectMethod(className, "bool IsTextSelectable() const", AS_METHODPR(T, IsTextSelectable, () const, bool), AS_CALL_THISCALL);
     engine->RegisterObjectMethod(className, "bool get_textSelectable() const", AS_METHODPR(T, IsTextSelectable, () const, bool), AS_CALL_THISCALL);
     engine->RegisterObjectMethod(className, "bool get_textSelectable() const", AS_METHODPR(T, IsTextSelectable, () const, bool), AS_CALL_THISCALL);
 
 
-    // bool UIElement::LoadXML(const XMLElement& source) override
-    engine->RegisterObjectMethod(className, "bool LoadXML(const XMLElement&in)", AS_METHODPR(T, LoadXML, (const XMLElement&), bool), AS_CALL_THISCALL);
-
-    // bool UIElement::LoadXML(Deserializer& source)
-    engine->RegisterObjectMethod(className, "bool LoadXML(Deserializer&)", AS_METHODPR(T, LoadXML, (Deserializer&), bool), AS_CALL_THISCALL);
-
-    // bool UIElement::SaveXML(Serializer& dest, const String& indentation = "\t") const
-    engine->RegisterObjectMethod(className, "bool SaveXML(Serializer&, const String&in = \"\t\") const", AS_METHODPR(T, SaveXML, (Serializer&, const String&) const, bool), AS_CALL_THISCALL);
-
     // void LineEdit::SetCursorBlinkRate(float rate)
     // void LineEdit::SetCursorBlinkRate(float rate)
     engine->RegisterObjectMethod(className, "void SetCursorBlinkRate(float)", AS_METHODPR(T, SetCursorBlinkRate, (float), void), AS_CALL_THISCALL);
     engine->RegisterObjectMethod(className, "void SetCursorBlinkRate(float)", AS_METHODPR(T, SetCursorBlinkRate, (float), void), AS_CALL_THISCALL);
     engine->RegisterObjectMethod(className, "void set_cursorBlinkRate(float)", AS_METHODPR(T, SetCursorBlinkRate, (float), void), AS_CALL_THISCALL);
     engine->RegisterObjectMethod(className, "void set_cursorBlinkRate(float)", AS_METHODPR(T, SetCursorBlinkRate, (float), void), AS_CALL_THISCALL);
@@ -22590,15 +22477,6 @@ template <class T> void RegisterMembers_ProgressBar(asIScriptEngine* engine, con
     engine->RegisterObjectMethod(className, "float GetValue() const", AS_METHODPR(T, GetValue, () const, float), AS_CALL_THISCALL);
     engine->RegisterObjectMethod(className, "float GetValue() const", AS_METHODPR(T, GetValue, () const, float), AS_CALL_THISCALL);
     engine->RegisterObjectMethod(className, "float get_value() const", AS_METHODPR(T, GetValue, () const, float), AS_CALL_THISCALL);
     engine->RegisterObjectMethod(className, "float get_value() const", AS_METHODPR(T, GetValue, () const, float), AS_CALL_THISCALL);
 
 
-    // bool UIElement::LoadXML(const XMLElement& source) override
-    engine->RegisterObjectMethod(className, "bool LoadXML(const XMLElement&in)", AS_METHODPR(T, LoadXML, (const XMLElement&), bool), AS_CALL_THISCALL);
-
-    // bool UIElement::LoadXML(Deserializer& source)
-    engine->RegisterObjectMethod(className, "bool LoadXML(Deserializer&)", AS_METHODPR(T, LoadXML, (Deserializer&), bool), AS_CALL_THISCALL);
-
-    // bool UIElement::SaveXML(Serializer& dest, const String& indentation = "\t") const
-    engine->RegisterObjectMethod(className, "bool SaveXML(Serializer&, const String&in = \"\t\") const", AS_METHODPR(T, SaveXML, (Serializer&, const String&) const, bool), AS_CALL_THISCALL);
-
     // void ProgressBar::SetLoadingPercentStyle(const String& style)
     // void ProgressBar::SetLoadingPercentStyle(const String& style)
     engine->RegisterObjectMethod(className, "void SetLoadingPercentStyle(const String&in)", AS_METHODPR(T, SetLoadingPercentStyle, (const String&), void), AS_CALL_THISCALL);
     engine->RegisterObjectMethod(className, "void SetLoadingPercentStyle(const String&in)", AS_METHODPR(T, SetLoadingPercentStyle, (const String&), void), AS_CALL_THISCALL);
 
 
@@ -22809,15 +22687,6 @@ template <class T> void RegisterMembers_ScrollBar(asIScriptEngine* engine, const
     engine->RegisterObjectMethod(className, "float GetValue() const", AS_METHODPR(T, GetValue, () const, float), AS_CALL_THISCALL);
     engine->RegisterObjectMethod(className, "float GetValue() const", AS_METHODPR(T, GetValue, () const, float), AS_CALL_THISCALL);
     engine->RegisterObjectMethod(className, "float get_value() const", AS_METHODPR(T, GetValue, () const, float), AS_CALL_THISCALL);
     engine->RegisterObjectMethod(className, "float get_value() const", AS_METHODPR(T, GetValue, () const, float), AS_CALL_THISCALL);
 
 
-    // bool UIElement::LoadXML(const XMLElement& source) override
-    engine->RegisterObjectMethod(className, "bool LoadXML(const XMLElement&in)", AS_METHODPR(T, LoadXML, (const XMLElement&), bool), AS_CALL_THISCALL);
-
-    // bool UIElement::LoadXML(Deserializer& source)
-    engine->RegisterObjectMethod(className, "bool LoadXML(Deserializer&)", AS_METHODPR(T, LoadXML, (Deserializer&), bool), AS_CALL_THISCALL);
-
-    // bool UIElement::SaveXML(Serializer& dest, const String& indentation = "\t") const
-    engine->RegisterObjectMethod(className, "bool SaveXML(Serializer&, const String&in = \"\t\") const", AS_METHODPR(T, SaveXML, (Serializer&, const String&) const, bool), AS_CALL_THISCALL);
-
     // void ScrollBar::SetOrientation(Orientation orientation)
     // void ScrollBar::SetOrientation(Orientation orientation)
     engine->RegisterObjectMethod(className, "void SetOrientation(Orientation)", AS_METHODPR(T, SetOrientation, (Orientation), void), AS_CALL_THISCALL);
     engine->RegisterObjectMethod(className, "void SetOrientation(Orientation)", AS_METHODPR(T, SetOrientation, (Orientation), void), AS_CALL_THISCALL);
     engine->RegisterObjectMethod(className, "void set_orientation(Orientation)", AS_METHODPR(T, SetOrientation, (Orientation), void), AS_CALL_THISCALL);
     engine->RegisterObjectMethod(className, "void set_orientation(Orientation)", AS_METHODPR(T, SetOrientation, (Orientation), void), AS_CALL_THISCALL);
@@ -22877,15 +22746,6 @@ template <class T> void RegisterMembers_Slider(asIScriptEngine* engine, const ch
     engine->RegisterObjectMethod(className, "float GetValue() const", AS_METHODPR(T, GetValue, () const, float), AS_CALL_THISCALL);
     engine->RegisterObjectMethod(className, "float GetValue() const", AS_METHODPR(T, GetValue, () const, float), AS_CALL_THISCALL);
     engine->RegisterObjectMethod(className, "float get_value() const", AS_METHODPR(T, GetValue, () const, float), AS_CALL_THISCALL);
     engine->RegisterObjectMethod(className, "float get_value() const", AS_METHODPR(T, GetValue, () const, float), AS_CALL_THISCALL);
 
 
-    // bool UIElement::LoadXML(const XMLElement& source) override
-    engine->RegisterObjectMethod(className, "bool LoadXML(const XMLElement&in)", AS_METHODPR(T, LoadXML, (const XMLElement&), bool), AS_CALL_THISCALL);
-
-    // bool UIElement::LoadXML(Deserializer& source)
-    engine->RegisterObjectMethod(className, "bool LoadXML(Deserializer&)", AS_METHODPR(T, LoadXML, (Deserializer&), bool), AS_CALL_THISCALL);
-
-    // bool UIElement::SaveXML(Serializer& dest, const String& indentation = "\t") const
-    engine->RegisterObjectMethod(className, "bool SaveXML(Serializer&, const String&in = \"\t\") const", AS_METHODPR(T, SaveXML, (Serializer&, const String&) const, bool), AS_CALL_THISCALL);
-
     // void Slider::SetOrientation(Orientation orientation)
     // void Slider::SetOrientation(Orientation orientation)
     engine->RegisterObjectMethod(className, "void SetOrientation(Orientation)", AS_METHODPR(T, SetOrientation, (Orientation), void), AS_CALL_THISCALL);
     engine->RegisterObjectMethod(className, "void SetOrientation(Orientation)", AS_METHODPR(T, SetOrientation, (Orientation), void), AS_CALL_THISCALL);
     engine->RegisterObjectMethod(className, "void set_orientation(Orientation)", AS_METHODPR(T, SetOrientation, (Orientation), void), AS_CALL_THISCALL);
     engine->RegisterObjectMethod(className, "void set_orientation(Orientation)", AS_METHODPR(T, SetOrientation, (Orientation), void), AS_CALL_THISCALL);
@@ -23542,15 +23402,6 @@ template <class T> void RegisterMembers_Window(asIScriptEngine* engine, const ch
     engine->RegisterObjectMethod(className, "bool IsResizable() const", AS_METHODPR(T, IsResizable, () const, bool), AS_CALL_THISCALL);
     engine->RegisterObjectMethod(className, "bool IsResizable() const", AS_METHODPR(T, IsResizable, () const, bool), AS_CALL_THISCALL);
     engine->RegisterObjectMethod(className, "bool get_resizable() const", AS_METHODPR(T, IsResizable, () const, bool), AS_CALL_THISCALL);
     engine->RegisterObjectMethod(className, "bool get_resizable() const", AS_METHODPR(T, IsResizable, () const, bool), AS_CALL_THISCALL);
 
 
-    // bool UIElement::LoadXML(const XMLElement& source) override
-    engine->RegisterObjectMethod(className, "bool LoadXML(const XMLElement&in)", AS_METHODPR(T, LoadXML, (const XMLElement&), bool), AS_CALL_THISCALL);
-
-    // bool UIElement::LoadXML(Deserializer& source)
-    engine->RegisterObjectMethod(className, "bool LoadXML(Deserializer&)", AS_METHODPR(T, LoadXML, (Deserializer&), bool), AS_CALL_THISCALL);
-
-    // bool UIElement::SaveXML(Serializer& dest, const String& indentation = "\t") const
-    engine->RegisterObjectMethod(className, "bool SaveXML(Serializer&, const String&in = \"\t\") const", AS_METHODPR(T, SaveXML, (Serializer&, const String&) const, bool), AS_CALL_THISCALL);
-
     // void Window::SetFixedHeightResizing(bool enable)
     // void Window::SetFixedHeightResizing(bool enable)
     engine->RegisterObjectMethod(className, "void SetFixedHeightResizing(bool)", AS_METHODPR(T, SetFixedHeightResizing, (bool), void), AS_CALL_THISCALL);
     engine->RegisterObjectMethod(className, "void SetFixedHeightResizing(bool)", AS_METHODPR(T, SetFixedHeightResizing, (bool), void), AS_CALL_THISCALL);
     engine->RegisterObjectMethod(className, "void set_fixedHeightResizing(bool)", AS_METHODPR(T, SetFixedHeightResizing, (bool), void), AS_CALL_THISCALL);
     engine->RegisterObjectMethod(className, "void set_fixedHeightResizing(bool)", AS_METHODPR(T, SetFixedHeightResizing, (bool), void), AS_CALL_THISCALL);

+ 1 - 0
Source/Urho3D/AngelScript/Manual_Container.h

@@ -28,6 +28,7 @@ namespace Urho3D
 #define REGISTER_MEMBERS_MANUAL_PART_RefCounted() \
 #define REGISTER_MEMBERS_MANUAL_PART_RefCounted() \
     /* void RefCounted::AddRef() | File: ../Container/RefCounted.h */ \
     /* void RefCounted::AddRef() | File: ../Container/RefCounted.h */ \
     engine->RegisterObjectBehaviour(className, asBEHAVE_ADDREF, "void f()", AS_METHODPR(T, AddRef, (), void), AS_CALL_THISCALL); \
     engine->RegisterObjectBehaviour(className, asBEHAVE_ADDREF, "void f()", AS_METHODPR(T, AddRef, (), void), AS_CALL_THISCALL); \
+    \
     /* void RefCounted::ReleaseRef() | File: ../Container/RefCounted.h */ \
     /* void RefCounted::ReleaseRef() | File: ../Container/RefCounted.h */ \
     engine->RegisterObjectBehaviour(className, asBEHAVE_RELEASE, "void f()", AS_METHODPR(T, ReleaseRef, (), void), AS_CALL_THISCALL)
     engine->RegisterObjectBehaviour(className, asBEHAVE_RELEASE, "void f()", AS_METHODPR(T, ReleaseRef, (), void), AS_CALL_THISCALL)
 
 

+ 15 - 15
Source/Urho3D/AngelScript/Manual_Core.h

@@ -38,8 +38,8 @@ template <class T> CScriptArray* AttributeInfo_GetEnumNames(T* ptr)
     return VectorToArray<String>(enumNames, "Array<String>");
     return VectorToArray<String>(enumNames, "Array<String>");
 }
 }
 
 
-#define REGISTER_MEMBERS_MANUAL_PART_AttributeInfo()                                       \
-    /* const char** AttributeInfo::enumNames_ | File: ../Core/Attribute.h */               \
+#define REGISTER_MEMBERS_MANUAL_PART_AttributeInfo() \
+    /* const char** AttributeInfo::enumNames_ | File: ../Core/Attribute.h */ \
     engine->RegisterObjectMethod(className, "Array<String>@ get_enumNames() const", AS_FUNCTION_OBJLAST(AttributeInfo_GetEnumNames<T>), AS_CALL_CDECL_OBJLAST);
     engine->RegisterObjectMethod(className, "Array<String>@ get_enumNames() const", AS_FUNCTION_OBJLAST(AttributeInfo_GetEnumNames<T>), AS_CALL_CDECL_OBJLAST);
 
 
 // ========================================================================================
 // ========================================================================================
@@ -86,11 +86,11 @@ template <class T> const String& ResourceRefList_GetName(unsigned index, Resourc
     return ptr->names_[index];
     return ptr->names_[index];
 }
 }
 
 
-#define REGISTER_MEMBERS_MANUAL_PART_ResourceRefList()                                                                                                              \
-    /* StringVector ResourceRefList::names_ | File: ../Core/Variant.h */                                                                                            \
-    engine->RegisterObjectMethod(className, "void Resize(uint)", AS_FUNCTION_OBJLAST(ResourceRefList_Resize<T>), AS_CALL_CDECL_OBJLAST);                            \
-    engine->RegisterObjectMethod(className, "uint get_length() const", AS_FUNCTION_OBJLAST(ResourceRefList_GetSize<T>), AS_CALL_CDECL_OBJLAST);                     \
-    engine->RegisterObjectMethod(className, "bool get_empty() const", AS_FUNCTION_OBJLAST(ResourceRefList_IsEmpty<T>), AS_CALL_CDECL_OBJLAST);                      \
+#define REGISTER_MEMBERS_MANUAL_PART_ResourceRefList() \
+    /* StringVector ResourceRefList::names_ | File: ../Core/Variant.h */ \
+    engine->RegisterObjectMethod(className, "void Resize(uint)", AS_FUNCTION_OBJLAST(ResourceRefList_Resize<T>), AS_CALL_CDECL_OBJLAST); \
+    engine->RegisterObjectMethod(className, "uint get_length() const", AS_FUNCTION_OBJLAST(ResourceRefList_GetSize<T>), AS_CALL_CDECL_OBJLAST); \
+    engine->RegisterObjectMethod(className, "bool get_empty() const", AS_FUNCTION_OBJLAST(ResourceRefList_IsEmpty<T>), AS_CALL_CDECL_OBJLAST); \
     engine->RegisterObjectMethod(className, "void set_names(uint, const String&in) const", AS_FUNCTION_OBJLAST(ResourceRefList_SetName<T>), AS_CALL_CDECL_OBJLAST); \
     engine->RegisterObjectMethod(className, "void set_names(uint, const String&in) const", AS_FUNCTION_OBJLAST(ResourceRefList_SetName<T>), AS_CALL_CDECL_OBJLAST); \
     engine->RegisterObjectMethod(className, "const String& get_names(uint) const", AS_FUNCTION_OBJLAST(ResourceRefList_GetName<T>), AS_CALL_CDECL_OBJLAST);
     engine->RegisterObjectMethod(className, "const String& get_names(uint) const", AS_FUNCTION_OBJLAST(ResourceRefList_GetName<T>), AS_CALL_CDECL_OBJLAST);
 
 
@@ -124,14 +124,14 @@ template <class T> void Spline_SetKnot(unsigned index, const Variant& in, T* ptr
     ptr->SetKnot(in, index);
     ptr->SetKnot(in, index);
 }
 }
 
 
-#define REGISTER_MEMBERS_MANUAL_PART_Spline()                                                                                                      \
-    /* const VariantVector& Spline::GetKnots() const | File: ../Core/Spline.h */                                                                   \
-    engine->RegisterObjectMethod(className, "Array<Variant>@ get_knots() const", AS_FUNCTION_OBJLAST(Spline_GetKnots<T>), AS_CALL_CDECL_OBJLAST);  \
-                                                                                                                                                   \
-    /* void Spline::SetKnots(const Vector<Variant>& knots) | File: ../Core/Spline.h */                                                             \
-    engine->RegisterObjectMethod(className, "void set_knots(Array<Variant>@+)", AS_FUNCTION_OBJLAST(Spline_SetKnots<T>), AS_CALL_CDECL_OBJLAST);   \
-                                                                                                                                                   \
-    /* void Spline::SetKnot(const Variant& knot, unsigned index) | File: ../Core/Spline.h */                                                       \
+#define REGISTER_MEMBERS_MANUAL_PART_Spline() \
+    /* const VariantVector& Spline::GetKnots() const | File: ../Core/Spline.h */ \
+    engine->RegisterObjectMethod(className, "Array<Variant>@ get_knots() const", AS_FUNCTION_OBJLAST(Spline_GetKnots<T>), AS_CALL_CDECL_OBJLAST); \
+    \
+    /* void Spline::SetKnots(const Vector<Variant>& knots) | File: ../Core/Spline.h */ \
+    engine->RegisterObjectMethod(className, "void set_knots(Array<Variant>@+)", AS_FUNCTION_OBJLAST(Spline_SetKnots<T>), AS_CALL_CDECL_OBJLAST); \
+    \
+    /* void Spline::SetKnot(const Variant& knot, unsigned index) | File: ../Core/Spline.h */ \
     engine->RegisterObjectMethod(className, "void set_knot(uint, const Variant&in)", AS_FUNCTION_OBJLAST(Spline_SetKnot<T>), AS_CALL_CDECL_OBJLAST);
     engine->RegisterObjectMethod(className, "void set_knot(uint, const Variant&in)", AS_FUNCTION_OBJLAST(Spline_SetKnot<T>), AS_CALL_CDECL_OBJLAST);
 
 
 }
 }

+ 39 - 54
Source/Urho3D/AngelScript/Manual_Graphics.h

@@ -75,8 +75,8 @@ template <class T> RenderPathCommand* RenderPath_GetCommand(unsigned index, T* p
 #define REGISTER_MEMBERS_MANUAL_PART_RenderPath() \
 #define REGISTER_MEMBERS_MANUAL_PART_RenderPath() \
     /* Vector<RenderTargetInfo> RenderPath::renderTargets_ | File: ../Graphics/RenderPath.h */ \
     /* Vector<RenderTargetInfo> RenderPath::renderTargets_ | File: ../Graphics/RenderPath.h */ \
     engine->RegisterObjectMethod(className, "const RenderTargetInfo& get_renderTargets(uint) const", AS_FUNCTION_OBJLAST(RenderPath_GetRenderTarget<T>), AS_CALL_CDECL_OBJLAST); \
     engine->RegisterObjectMethod(className, "const RenderTargetInfo& get_renderTargets(uint) const", AS_FUNCTION_OBJLAST(RenderPath_GetRenderTarget<T>), AS_CALL_CDECL_OBJLAST); \
-                                                                                               \
-    /* Vector<RenderPathCommand> RenderPath::commands_ | File: ../Graphics/RenderPath.h */     \
+    \
+    /* Vector<RenderPathCommand> RenderPath::commands_ | File: ../Graphics/RenderPath.h */ \
     engine->RegisterObjectMethod(className, "const RenderPathCommand& get_commands(uint) const", AS_FUNCTION_OBJLAST(RenderPath_GetCommand<T>), AS_CALL_CDECL_OBJLAST);
     engine->RegisterObjectMethod(className, "const RenderPathCommand& get_commands(uint) const", AS_FUNCTION_OBJLAST(RenderPath_GetCommand<T>), AS_CALL_CDECL_OBJLAST);
 
 
 // ========================================================================================
 // ========================================================================================
@@ -132,27 +132,15 @@ template <class T> const TechniqueEntry& Material_GetTechniqueEntry(unsigned ind
     return ptr->GetTechniqueEntry(index);
     return ptr->GetTechniqueEntry(index);
 }
 }
 
 
-#define REGISTER_MEMBERS_MANUAL_PART_Material()                                                                                            \
-    /*engine->RegisterObjectMethod(className, "bool Load(File@+)", AS_FUNCTION_OBJLAST(Material_Load_File<T>), AS_CALL_CDECL_OBJLAST);*/       \
-                                                                                                                                           \
-    /* const HashMap<StringHash, MaterialShaderParameter>& Material::GetShaderParameters() const | File: ../Graphics/Material.h */         \
+#define REGISTER_MEMBERS_MANUAL_PART_Material() \
+    /* const HashMap<StringHash, MaterialShaderParameter>& Material::GetShaderParameters() const | File: ../Graphics/Material.h */ \
     engine->RegisterObjectMethod(className, "Array<String>@ get_shaderParameterNames() const", AS_FUNCTION_OBJLAST(Material_GetShaderParameterNames<T>), AS_CALL_CDECL_OBJLAST); \
     engine->RegisterObjectMethod(className, "Array<String>@ get_shaderParameterNames() const", AS_FUNCTION_OBJLAST(Material_GetShaderParameterNames<T>), AS_CALL_CDECL_OBJLAST); \
-                                                                                                                                           \
-    /* const TechniqueEntry& Material::GetTechniqueEntry(unsigned index) const | File: ../Graphics/Material.h */                           \
+    \
+    /* const TechniqueEntry& Material::GetTechniqueEntry(unsigned index) const | File: ../Graphics/Material.h */ \
     engine->RegisterObjectMethod(className, "const TechniqueEntry& get_techniqueEntries(uint) const", AS_FUNCTION_OBJLAST(Material_GetTechniqueEntry<T>), AS_CALL_CDECL_OBJLAST);
     engine->RegisterObjectMethod(className, "const TechniqueEntry& get_techniqueEntries(uint) const", AS_FUNCTION_OBJLAST(Material_GetTechniqueEntry<T>), AS_CALL_CDECL_OBJLAST);
 
 
 // ========================================================================================
 // ========================================================================================
 
 
-template <class T> bool ParticleEffect_Load_File(File* file, T* ptr)
-{
-    return file && ptr->Resource::Load(*file);
-}
-
-//#define REGISTER_MEMBERS_MANUAL_PART_ParticleEffect() \
-//    engine->RegisterObjectMethod(className, "bool Load(File@+)", AS_FUNCTION_OBJLAST(ParticleEffect_Load_File<T>), AS_CALL_CDECL_OBJLAST);
-
-// ========================================================================================
-
 template <class T> VectorBuffer VertexBuffer_GetData(T* ptr)
 template <class T> VectorBuffer VertexBuffer_GetData(T* ptr)
 {
 {
     VectorBuffer ret;
     VectorBuffer ret;
@@ -188,12 +176,12 @@ template <class T> bool VertexBuffer_SetDataRange(VectorBuffer& src, unsigned st
         return false;
         return false;
 }
 }
 
 
-#define REGISTER_MEMBERS_MANUAL_PART_VertexBuffer()                                                                                                  \
-    engine->RegisterObjectMethod(className, "VectorBuffer GetData() const", AS_FUNCTION_OBJLAST(VertexBuffer_GetData<T>), AS_CALL_CDECL_OBJLAST);    \
-                                                                                                                                                     \
-    /* bool VertexBuffer::SetData(const void* data) | File: ../Graphics/VertexBuffer.h */                                                            \
-    engine->RegisterObjectMethod(className, "bool SetData(VectorBuffer&)", AS_FUNCTION_OBJLAST(VertexBuffer_SetData<T>), AS_CALL_CDECL_OBJLAST);     \
-                                                                                                                                                     \
+#define REGISTER_MEMBERS_MANUAL_PART_VertexBuffer() \
+    engine->RegisterObjectMethod(className, "VectorBuffer GetData() const", AS_FUNCTION_OBJLAST(VertexBuffer_GetData<T>), AS_CALL_CDECL_OBJLAST); \
+    \
+    /* bool VertexBuffer::SetData(const void* data) | File: ../Graphics/VertexBuffer.h */ \
+    engine->RegisterObjectMethod(className, "bool SetData(VectorBuffer&)", AS_FUNCTION_OBJLAST(VertexBuffer_SetData<T>), AS_CALL_CDECL_OBJLAST); \
+    \
     /* bool VertexBuffer::SetDataRange(const void* data, unsigned start, unsigned count, bool discard = false) | File: ../Graphics/VertexBuffer.h */ \
     /* bool VertexBuffer::SetDataRange(const void* data, unsigned start, unsigned count, bool discard = false) | File: ../Graphics/VertexBuffer.h */ \
     engine->RegisterObjectMethod(className, "bool SetDataRange(VectorBuffer&, uint, uint, bool = false)", AS_FUNCTION_OBJLAST(VertexBuffer_SetDataRange<T>), AS_CALL_CDECL_OBJLAST);
     engine->RegisterObjectMethod(className, "bool SetDataRange(VectorBuffer&, uint, uint, bool = false)", AS_FUNCTION_OBJLAST(VertexBuffer_SetDataRange<T>), AS_CALL_CDECL_OBJLAST);
 
 
@@ -234,18 +222,18 @@ template <class T> bool IndexBuffer_SetDataRange(VectorBuffer& src, unsigned sta
         return false;
         return false;
 }
 }
 
 
-#define REGISTER_MEMBERS_MANUAL_PART_IndexBuffer()                                                                                                 \
-    engine->RegisterObjectMethod(className, "VectorBuffer GetData()", AS_FUNCTION_OBJLAST(IndexBuffer_GetData<T>), AS_CALL_CDECL_OBJLAST);         \
-                                                                                                                                                   \
-    /* bool IndexBuffer::SetData(const void* data) | File: ../Graphics/IndexBuffer.h */                                                            \
-    engine->RegisterObjectMethod(className, "bool SetData(VectorBuffer&)", AS_FUNCTION_OBJLAST(IndexBuffer_SetData<T>), AS_CALL_CDECL_OBJLAST);    \
-                                                                                                                                                   \
+#define REGISTER_MEMBERS_MANUAL_PART_IndexBuffer() \
+    engine->RegisterObjectMethod(className, "VectorBuffer GetData()", AS_FUNCTION_OBJLAST(IndexBuffer_GetData<T>), AS_CALL_CDECL_OBJLAST); \
+    \
+    /* bool IndexBuffer::SetData(const void* data) | File: ../Graphics/IndexBuffer.h */ \
+    engine->RegisterObjectMethod(className, "bool SetData(VectorBuffer&)", AS_FUNCTION_OBJLAST(IndexBuffer_SetData<T>), AS_CALL_CDECL_OBJLAST); \
+    \
     /* bool IndexBuffer::SetDataRange(const void* data, unsigned start, unsigned count, bool discard = false) | File: ../Graphics/IndexBuffer.h */ \
     /* bool IndexBuffer::SetDataRange(const void* data, unsigned start, unsigned count, bool discard = false) | File: ../Graphics/IndexBuffer.h */ \
     engine->RegisterObjectMethod(className, "bool SetDataRange(VectorBuffer&, uint, uint, bool discard = false)", AS_FUNCTION_OBJLAST(IndexBuffer_SetDataRange<T>), AS_CALL_CDECL_OBJLAST);
     engine->RegisterObjectMethod(className, "bool SetDataRange(VectorBuffer&, uint, uint, bool discard = false)", AS_FUNCTION_OBJLAST(IndexBuffer_SetDataRange<T>), AS_CALL_CDECL_OBJLAST);
 
 
 // ========================================================================================
 // ========================================================================================
 
 
-#define REGISTER_MEMBERS_MANUAL_PART_AnimationTrack()                                                    \
+#define REGISTER_MEMBERS_MANUAL_PART_AnimationTrack() \
     /* AnimationKeyFrame* AnimationTrack::GetKeyFrame(unsigned index) | File: ../Graphics/Animation.h */ \
     /* AnimationKeyFrame* AnimationTrack::GetKeyFrame(unsigned index) | File: ../Graphics/Animation.h */ \
     engine->RegisterObjectMethod(className, "const AnimationKeyFrame& get_keyFrames(uint) const", AS_METHOD(T, GetKeyFrame), AS_CALL_THISCALL);
     engine->RegisterObjectMethod(className, "const AnimationKeyFrame& get_keyFrames(uint) const", AS_METHOD(T, GetKeyFrame), AS_CALL_THISCALL);
 
 
@@ -272,7 +260,7 @@ template <class T> AnimationTriggerPoint* Animation_GetTrigger(unsigned index, T
 // ========================================================================================
 // ========================================================================================
 
 
 #define REGISTER_MEMBERS_MANUAL_PART_CascadeParameters() \
 #define REGISTER_MEMBERS_MANUAL_PART_CascadeParameters() \
-    /* Vector4 CascadeParameters::splits_ | File: ../Graphics/Light.h */                \
+    /* Vector4 CascadeParameters::splits_ | File: ../Graphics/Light.h */ \
     engine->RegisterObjectProperty(className, "float split1", offsetof(T, splits_.x_)); \
     engine->RegisterObjectProperty(className, "float split1", offsetof(T, splits_.x_)); \
     engine->RegisterObjectProperty(className, "float split2", offsetof(T, splits_.y_)); \
     engine->RegisterObjectProperty(className, "float split2", offsetof(T, splits_.y_)); \
     engine->RegisterObjectProperty(className, "float split3", offsetof(T, splits_.z_)); \
     engine->RegisterObjectProperty(className, "float split3", offsetof(T, splits_.z_)); \
@@ -304,7 +292,7 @@ template <class T> void StaticModel_SetModel(Model* model, T* ptr)
 }
 }
 
 
 #define REGISTER_MEMBERS_MANUAL_PART_StaticModel() \
 #define REGISTER_MEMBERS_MANUAL_PART_StaticModel() \
-    /* virtual void StaticModel::SetModel(Model* model) | File: ../Graphics/StaticModel.h */                                                    \
+    /* virtual void StaticModel::SetModel(Model* model) | File: ../Graphics/StaticModel.h */ \
     engine->RegisterObjectMethod(className, "void SetModel(Model@+)", AS_FUNCTION_OBJLAST(StaticModel_SetModel<T>), AS_CALL_CDECL_OBJLAST); \
     engine->RegisterObjectMethod(className, "void SetModel(Model@+)", AS_FUNCTION_OBJLAST(StaticModel_SetModel<T>), AS_CALL_CDECL_OBJLAST); \
     engine->RegisterObjectMethod(className, "void set_model(Model@+)", AS_FUNCTION_OBJLAST(StaticModel_SetModel<T>), AS_CALL_CDECL_OBJLAST);
     engine->RegisterObjectMethod(className, "void set_model(Model@+)", AS_FUNCTION_OBJLAST(StaticModel_SetModel<T>), AS_CALL_CDECL_OBJLAST);
 
 
@@ -324,11 +312,8 @@ template <class T> void AnimatedModel_SetModel(Model* model, T* ptr)
 }
 }
 
 
 #define REGISTER_MEMBERS_MANUAL_PART_AnimatedModel() \
 #define REGISTER_MEMBERS_MANUAL_PART_AnimatedModel() \
-    /* const Vector<ModelMorph>& AnimatedModel::GetMorphs() const | File: ../Graphics/AnimatedModel.h */                                                            \
-    engine->RegisterObjectMethod(className, "const String& get_morphNames(uint) const", AS_FUNCTION_OBJLAST(AnimatedModel_GetMorphName<T>), AS_CALL_CDECL_OBJLAST); \
-                                                                                                                                                                    \
-    /* void AnimatedModel::SetModel(Model* model, bool createBones = true) | File: ../Graphics/AnimatedModel.h */                                                   \
-    /*engine->RegisterObjectMethod(className, "void set_model(Model@+)", AS_FUNCTION_OBJLAST(AnimatedModel_SetModel<T>), AS_CALL_CDECL_OBJLAST);*/
+    /* const Vector<ModelMorph>& AnimatedModel::GetMorphs() const | File: ../Graphics/AnimatedModel.h */ \
+    engine->RegisterObjectMethod(className, "const String& get_morphNames(uint) const", AS_FUNCTION_OBJLAST(AnimatedModel_GetMorphName<T>), AS_CALL_CDECL_OBJLAST);
 
 
 // ========================================================================================
 // ========================================================================================
 
 
@@ -346,10 +331,10 @@ template <class T> const AnimationControl* AnimationController_GetAnimation(unsi
 }
 }
 
 
 #define REGISTER_MEMBERS_MANUAL_PART_AnimationController() \
 #define REGISTER_MEMBERS_MANUAL_PART_AnimationController() \
-    /* const Vector<AnimationControl>& AnimationController::GetAnimations() const | File: ../Graphics/AnimationController.h */                                      \
+    /* const Vector<AnimationControl>& AnimationController::GetAnimations() const | File: ../Graphics/AnimationController.h */ \
     engine->RegisterObjectMethod(className, "uint get_numAnimations() const", AS_FUNCTION_OBJLAST(AnimationController_GetNumAnimations<T>), AS_CALL_CDECL_OBJLAST); \
     engine->RegisterObjectMethod(className, "uint get_numAnimations() const", AS_FUNCTION_OBJLAST(AnimationController_GetNumAnimations<T>), AS_CALL_CDECL_OBJLAST); \
-                                                                                                                                                                    \
-    /* const Vector<AnimationControl>& AnimationController::GetAnimations() const | File: ../Graphics/AnimationController.h */                                      \
+    \
+    /* const Vector<AnimationControl>& AnimationController::GetAnimations() const | File: ../Graphics/AnimationController.h */ \
     engine->RegisterObjectMethod(className, "const AnimationControl@+ get_animations(uint) const", AS_FUNCTION_OBJLAST(AnimationController_GetAnimation<T>), AS_CALL_CDECL_OBJLAST);
     engine->RegisterObjectMethod(className, "const AnimationControl@+ get_animations(uint) const", AS_FUNCTION_OBJLAST(AnimationController_GetAnimation<T>), AS_CALL_CDECL_OBJLAST);
 
 
 // ========================================================================================
 // ========================================================================================
@@ -368,10 +353,10 @@ template <class T> void Graphics_PrecacheShaders_VectorBuffer(VectorBuffer& buff
 }
 }
 
 
 #define REGISTER_MEMBERS_MANUAL_PART_Graphics() \
 #define REGISTER_MEMBERS_MANUAL_PART_Graphics() \
-    /* void Graphics::PrecacheShaders(Deserializer& source) | File: ../Graphics/Graphics.h */                                                              \
+    /* void Graphics::PrecacheShaders(Deserializer& source) | File: ../Graphics/Graphics.h */ \
     engine->RegisterObjectMethod(className, "void PrecacheShaders(File@+)", AS_FUNCTION_OBJLAST(Graphics_PrecacheShaders_File<T>), AS_CALL_CDECL_OBJLAST); \
     engine->RegisterObjectMethod(className, "void PrecacheShaders(File@+)", AS_FUNCTION_OBJLAST(Graphics_PrecacheShaders_File<T>), AS_CALL_CDECL_OBJLAST); \
-                                                                                                                                                           \
-    /* void Graphics::PrecacheShaders(Deserializer& source) | File: ../Graphics/Graphics.h */                                                              \
+    \
+    /* void Graphics::PrecacheShaders(Deserializer& source) | File: ../Graphics/Graphics.h */ \
     engine->RegisterObjectMethod(className, "void PrecacheShaders(VectorBuffer&)", AS_FUNCTION_OBJLAST(Graphics_PrecacheShaders_VectorBuffer<T>), AS_CALL_CDECL_OBJLAST);
     engine->RegisterObjectMethod(className, "void PrecacheShaders(VectorBuffer&)", AS_FUNCTION_OBJLAST(Graphics_PrecacheShaders_VectorBuffer<T>), AS_CALL_CDECL_OBJLAST);
 
 
 // ========================================================================================
 // ========================================================================================
@@ -389,10 +374,10 @@ template <class T> Node* RayQueryResult_GetNode(T* ptr)
 }
 }
 
 
 #define REGISTER_MEMBERS_MANUAL_PART_RayQueryResult() \
 #define REGISTER_MEMBERS_MANUAL_PART_RayQueryResult() \
-    /* Drawable* RayQueryResult::drawable_ | File: ../Graphics/OctreeQuery.h */                                                                            \
+    /* Drawable* RayQueryResult::drawable_ | File: ../Graphics/OctreeQuery.h */ \
     engine->RegisterObjectMethod(className, "Drawable@+ get_drawable() const", AS_FUNCTION_OBJLAST(RayQueryResult_GetDrawable<T>), AS_CALL_CDECL_OBJLAST); \
     engine->RegisterObjectMethod(className, "Drawable@+ get_drawable() const", AS_FUNCTION_OBJLAST(RayQueryResult_GetDrawable<T>), AS_CALL_CDECL_OBJLAST); \
-                                                                                                                                                           \
-    /* Node* RayQueryResult::node_ | File: ../Graphics/OctreeQuery.h */                                                                                    \
+    \
+    /* Node* RayQueryResult::node_ | File: ../Graphics/OctreeQuery.h */ \
     engine->RegisterObjectMethod(className, "Node@+ get_node() const", AS_FUNCTION_OBJLAST(RayQueryResult_GetNode<T>), AS_CALL_CDECL_OBJLAST);
     engine->RegisterObjectMethod(className, "Node@+ get_node() const", AS_FUNCTION_OBJLAST(RayQueryResult_GetNode<T>), AS_CALL_CDECL_OBJLAST);
 
 
 // ========================================================================================
 // ========================================================================================
@@ -474,17 +459,17 @@ template <class T> CScriptArray* Octree_GetDrawables_All(unsigned char drawableF
 }
 }
 
 
 #define REGISTER_MEMBERS_MANUAL_PART_Octree() \
 #define REGISTER_MEMBERS_MANUAL_PART_Octree() \
-    /* void Octree::Raycast(RayOctreeQuery& query) const | File: ../Graphics/Octree.h */              \
+    /* void Octree::Raycast(RayOctreeQuery& query) const | File: ../Graphics/Octree.h */ \
     engine->RegisterObjectMethod(className, "Array<RayQueryResult>@ Raycast(const Ray&in, RayQueryLevel = RAY_TRIANGLE, float = M_INFINITY, uint8 = DRAWABLE_ANY, uint = DEFAULT_VIEWMASK) const", AS_FUNCTION_OBJLAST(Octree_Raycast<T>), AS_CALL_CDECL_OBJLAST); \
     engine->RegisterObjectMethod(className, "Array<RayQueryResult>@ Raycast(const Ray&in, RayQueryLevel = RAY_TRIANGLE, float = M_INFINITY, uint8 = DRAWABLE_ANY, uint = DEFAULT_VIEWMASK) const", AS_FUNCTION_OBJLAST(Octree_Raycast<T>), AS_CALL_CDECL_OBJLAST); \
-                                                                                                      \
-    /* void Octree::RaycastSingle(RayOctreeQuery& query) const | File: ../Graphics/Octree.h */        \
+    \
+    /* void Octree::RaycastSingle(RayOctreeQuery& query) const | File: ../Graphics/Octree.h */ \
     engine->RegisterObjectMethod(className, "RayQueryResult RaycastSingle(const Ray&in, RayQueryLevel = RAY_TRIANGLE, float = M_INFINITY, uint8 = DRAWABLE_ANY, uint = DEFAULT_VIEWMASK) const", AS_FUNCTION_OBJLAST(Octree_RaycastSingle<T>), AS_CALL_CDECL_OBJLAST); \
     engine->RegisterObjectMethod(className, "RayQueryResult RaycastSingle(const Ray&in, RayQueryLevel = RAY_TRIANGLE, float = M_INFINITY, uint8 = DRAWABLE_ANY, uint = DEFAULT_VIEWMASK) const", AS_FUNCTION_OBJLAST(Octree_RaycastSingle<T>), AS_CALL_CDECL_OBJLAST); \
-                                                                                                      \
-    /* void Octree::GetDrawables(OctreeQuery& query) const | File: ../Graphics/Octree.h */            \
-    engine->RegisterObjectMethod(className, "Array<Drawable@>@ GetDrawables(const Vector3&in, uint8 = DRAWABLE_ANY, uint = DEFAULT_VIEWMASK)", AS_FUNCTION_OBJLAST(Octree_GetDrawables_Point<T>), AS_CALL_CDECL_OBJLAST);   \
+    \
+    /* void Octree::GetDrawables(OctreeQuery& query) const | File: ../Graphics/Octree.h */ \
+    engine->RegisterObjectMethod(className, "Array<Drawable@>@ GetDrawables(const Vector3&in, uint8 = DRAWABLE_ANY, uint = DEFAULT_VIEWMASK)", AS_FUNCTION_OBJLAST(Octree_GetDrawables_Point<T>), AS_CALL_CDECL_OBJLAST); \
     engine->RegisterObjectMethod(className, "Array<Drawable@>@ GetDrawables(const BoundingBox&in, uint8 = DRAWABLE_ANY, uint = DEFAULT_VIEWMASK)", AS_FUNCTION_OBJLAST(Octree_GetDrawables_Box<T>), AS_CALL_CDECL_OBJLAST); \
     engine->RegisterObjectMethod(className, "Array<Drawable@>@ GetDrawables(const BoundingBox&in, uint8 = DRAWABLE_ANY, uint = DEFAULT_VIEWMASK)", AS_FUNCTION_OBJLAST(Octree_GetDrawables_Box<T>), AS_CALL_CDECL_OBJLAST); \
     engine->RegisterObjectMethod(className, "Array<Drawable@>@ GetDrawables(const Frustum&in, uint8 = DRAWABLE_ANY, uint = DEFAULT_VIEWMASK)", AS_FUNCTION_OBJLAST(Octree_GetDrawables_Frustum<T>), AS_CALL_CDECL_OBJLAST); \
     engine->RegisterObjectMethod(className, "Array<Drawable@>@ GetDrawables(const Frustum&in, uint8 = DRAWABLE_ANY, uint = DEFAULT_VIEWMASK)", AS_FUNCTION_OBJLAST(Octree_GetDrawables_Frustum<T>), AS_CALL_CDECL_OBJLAST); \
-    engine->RegisterObjectMethod(className, "Array<Drawable@>@ GetDrawables(const Sphere&in, uint8 = DRAWABLE_ANY, uint = DEFAULT_VIEWMASK)", AS_FUNCTION_OBJLAST(Octree_GetDrawables_Sphere<T>), AS_CALL_CDECL_OBJLAST);   \
+    engine->RegisterObjectMethod(className, "Array<Drawable@>@ GetDrawables(const Sphere&in, uint8 = DRAWABLE_ANY, uint = DEFAULT_VIEWMASK)", AS_FUNCTION_OBJLAST(Octree_GetDrawables_Sphere<T>), AS_CALL_CDECL_OBJLAST); \
     engine->RegisterObjectMethod(className, "Array<Drawable@>@ GetAllDrawables(uint8 = DRAWABLE_ANY, uint = DEFAULT_VIEWMASK)", AS_FUNCTION_OBJLAST(Octree_GetDrawables_All<T>), AS_CALL_CDECL_OBJLAST);
     engine->RegisterObjectMethod(className, "Array<Drawable@>@ GetAllDrawables(uint8 = DRAWABLE_ANY, uint = DEFAULT_VIEWMASK)", AS_FUNCTION_OBJLAST(Octree_GetDrawables_All<T>), AS_CALL_CDECL_OBJLAST);
 
 
 // ========================================================================================
 // ========================================================================================

+ 6 - 6
Source/Urho3D/AngelScript/Manual_IO.h

@@ -44,11 +44,11 @@ template <class T> VectorBuffer Deserializer_ReadVectorBuffer(unsigned size, Des
     return VectorBuffer(*ptr, size);
     return VectorBuffer(*ptr, size);
 }
 }
 
 
-#define REGISTER_MEMBERS_MANUAL_PART_Deserializer()                                                                                        \
-    /* virtual unsigned Deserializer::Read(void* dest, unsigned size) = 0 | File: ../IO/Deserializer.h */                                  \
+#define REGISTER_MEMBERS_MANUAL_PART_Deserializer() \
+    /* virtual unsigned Deserializer::Read(void* dest, unsigned size) = 0 | File: ../IO/Deserializer.h */ \
     engine->RegisterObjectMethod(className, "Array<uint8>@ Read(uint)", AS_FUNCTION_OBJLAST(Deserializer_Read<T>), AS_CALL_CDECL_OBJLAST); \
     engine->RegisterObjectMethod(className, "Array<uint8>@ Read(uint)", AS_FUNCTION_OBJLAST(Deserializer_Read<T>), AS_CALL_CDECL_OBJLAST); \
-                                                                                                                                           \
-    /* VectorBuffer::VectorBuffer(Deserializer& source, unsigned size) | File: .. / IO / VectorBuffer.h */                                 \
+    \
+    /* VectorBuffer::VectorBuffer(Deserializer& source, unsigned size) | File: .. / IO / VectorBuffer.h */ \
     engine->RegisterObjectMethod(className, "VectorBuffer ReadVectorBuffer(uint)", AS_FUNCTION_OBJLAST(Deserializer_ReadVectorBuffer<T>), AS_CALL_CDECL_OBJLAST);
     engine->RegisterObjectMethod(className, "VectorBuffer ReadVectorBuffer(uint)", AS_FUNCTION_OBJLAST(Deserializer_ReadVectorBuffer<T>), AS_CALL_CDECL_OBJLAST);
 
 
 // ================================================================================
 // ================================================================================
@@ -66,8 +66,8 @@ template <class T> bool Serializer_Write_VectorBuffer(VectorBuffer* src, Seriali
     return ptr->Write(src->GetData(), src->GetSize()) == src->GetSize();
     return ptr->Write(src->GetData(), src->GetSize()) == src->GetSize();
 }
 }
 
 
-#define REGISTER_MEMBERS_MANUAL_PART_Serializer()                                                                                           \
-    /* virtual unsigned Serializer::Write(const void* data, unsigned size) = 0 | File: ../IO/Serializer.h */                                \
+#define REGISTER_MEMBERS_MANUAL_PART_Serializer() \
+    /* virtual unsigned Serializer::Write(const void* data, unsigned size) = 0 | File: ../IO/Serializer.h */ \
     engine->RegisterObjectMethod(className, "uint Write(Array<uint8>@+)", AS_FUNCTION_OBJLAST(Serializer_Write<T>), AS_CALL_CDECL_OBJLAST); \
     engine->RegisterObjectMethod(className, "uint Write(Array<uint8>@+)", AS_FUNCTION_OBJLAST(Serializer_Write<T>), AS_CALL_CDECL_OBJLAST); \
     engine->RegisterObjectMethod(className, "bool WriteVectorBuffer(const VectorBuffer&in)", AS_FUNCTION_OBJLAST(Serializer_Write_VectorBuffer<T>), AS_CALL_CDECL_OBJLAST);
     engine->RegisterObjectMethod(className, "bool WriteVectorBuffer(const VectorBuffer&in)", AS_FUNCTION_OBJLAST(Serializer_Write_VectorBuffer<T>), AS_CALL_CDECL_OBJLAST);
 
 

+ 17 - 17
Source/Urho3D/AngelScript/Manual_Input.h

@@ -81,26 +81,26 @@ template <class T> void Input_SetMouseVisible(bool enable, T* ptr)
     ptr->SetMouseVisible(enable, false);
     ptr->SetMouseVisible(enable, false);
 }
 }
 
 
-#define REGISTER_MEMBERS_MANUAL_PART_Input()                                                                                                                     \
-    /* bool Input::SaveGestures(Serializer& dest) | File: ../Input/Input.h */                                                                                    \
-    engine->RegisterObjectMethod(className, "bool SaveGestures(File@+)", AS_FUNCTION_OBJLAST(Input_SaveGestures_File<T>), AS_CALL_CDECL_OBJLAST);                \
+#define REGISTER_MEMBERS_MANUAL_PART_Input() \
+    /* bool Input::SaveGestures(Serializer& dest) | File: ../Input/Input.h */ \
+    engine->RegisterObjectMethod(className, "bool SaveGestures(File@+)", AS_FUNCTION_OBJLAST(Input_SaveGestures_File<T>), AS_CALL_CDECL_OBJLAST); \
     engine->RegisterObjectMethod(className, "bool SaveGestures(VectorBuffer&)", AS_FUNCTION_OBJLAST(Input_SaveGestures_VectorBuffer<T>), AS_CALL_CDECL_OBJLAST); \
     engine->RegisterObjectMethod(className, "bool SaveGestures(VectorBuffer&)", AS_FUNCTION_OBJLAST(Input_SaveGestures_VectorBuffer<T>), AS_CALL_CDECL_OBJLAST); \
-                                                                                                                                                                 \
-    /* bool Input::SaveGesture(Serializer& dest, unsigned gestureID) | File: ../Input/Input.h */                                                                 \
-    engine->RegisterObjectMethod(className, "bool SaveGesture(File@+, uint)", AS_FUNCTION_OBJLAST(Input_SaveGesture_File_uint<T>), AS_CALL_CDECL_OBJLAST);       \
+    \
+    /* bool Input::SaveGesture(Serializer& dest, unsigned gestureID) | File: ../Input/Input.h */ \
+    engine->RegisterObjectMethod(className, "bool SaveGesture(File@+, uint)", AS_FUNCTION_OBJLAST(Input_SaveGesture_File_uint<T>), AS_CALL_CDECL_OBJLAST); \
     engine->RegisterObjectMethod(className, "bool SaveGesture(VectorBuffer&, uint)", AS_FUNCTION_OBJLAST(Input_SaveGesture_VectorBuffer_uint<T>), AS_CALL_CDECL_OBJLAST); \
     engine->RegisterObjectMethod(className, "bool SaveGesture(VectorBuffer&, uint)", AS_FUNCTION_OBJLAST(Input_SaveGesture_VectorBuffer_uint<T>), AS_CALL_CDECL_OBJLAST); \
-                                                                                                                                                                 \
-    /* unsigned Input::LoadGestures(Deserializer& source) | File: ../Input/Input.h */                                                                            \
-    engine->RegisterObjectMethod(className, "uint LoadGestures(File@+)", AS_FUNCTION_OBJLAST(Input_LoadGestures_File<T>), AS_CALL_CDECL_OBJLAST);                \
+    \
+    /* unsigned Input::LoadGestures(Deserializer& source) | File: ../Input/Input.h */ \
+    engine->RegisterObjectMethod(className, "uint LoadGestures(File@+)", AS_FUNCTION_OBJLAST(Input_LoadGestures_File<T>), AS_CALL_CDECL_OBJLAST); \
     engine->RegisterObjectMethod(className, "uint LoadGestures(VectorBuffer&)", AS_FUNCTION_OBJLAST(Input_LoadGestures_VectorBuffer<T>), AS_CALL_CDECL_OBJLAST); \
     engine->RegisterObjectMethod(className, "uint LoadGestures(VectorBuffer&)", AS_FUNCTION_OBJLAST(Input_LoadGestures_VectorBuffer<T>), AS_CALL_CDECL_OBJLAST); \
-                                                                                                                                                                 \
-    /* void Input::SetMouseGrabbed(bool grab, bool suppressEvent = false) | File: ../Input/Input.h */                                                            \
-    engine->RegisterObjectMethod(className, "void set_mouseGrabbed(bool)", AS_FUNCTION_OBJLAST(Input_SetMouseGrabbed<T>), AS_CALL_CDECL_OBJLAST);                \
-                                                                                                                                                                 \
-    /* void Input::SetMouseMode(MouseMode mode, bool suppressEvent = false) | File: ../Input/Input.h */                                                          \
-    engine->RegisterObjectMethod(className, "void set_mouseMode(MouseMode)", AS_FUNCTION_OBJLAST(Input_SetMouseMode<T>), AS_CALL_CDECL_OBJLAST);                 \
-                                                                                                                                                                 \
-    /* void Input::SetMouseVisible(bool enable, bool suppressEvent = false) | File: ../Input/Input.h */                                                          \
+    \
+    /* void Input::SetMouseGrabbed(bool grab, bool suppressEvent = false) | File: ../Input/Input.h */ \
+    engine->RegisterObjectMethod(className, "void set_mouseGrabbed(bool)", AS_FUNCTION_OBJLAST(Input_SetMouseGrabbed<T>), AS_CALL_CDECL_OBJLAST); \
+    \
+    /* void Input::SetMouseMode(MouseMode mode, bool suppressEvent = false) | File: ../Input/Input.h */ \
+    engine->RegisterObjectMethod(className, "void set_mouseMode(MouseMode)", AS_FUNCTION_OBJLAST(Input_SetMouseMode<T>), AS_CALL_CDECL_OBJLAST); \
+    \
+    /* void Input::SetMouseVisible(bool enable, bool suppressEvent = false) | File: ../Input/Input.h */ \
     engine->RegisterObjectMethod(className, "void set_mouseVisible(bool)", AS_FUNCTION_OBJLAST(Input_SetMouseVisible<T>), AS_CALL_CDECL_OBJLAST);
     engine->RegisterObjectMethod(className, "void set_mouseVisible(bool)", AS_FUNCTION_OBJLAST(Input_SetMouseVisible<T>), AS_CALL_CDECL_OBJLAST);
 
 
 }
 }

+ 12 - 13
Source/Urho3D/AngelScript/Manual_Math.h

@@ -56,8 +56,8 @@ static void Vector2_Vector2_Data(CScriptArray* data, Vector2* ptr)
     new(ptr) Vector2(static_cast<float*>(data->At(0)));
     new(ptr) Vector2(static_cast<float*>(data->At(0)));
 }
 }
 
 
-#define REGISTER_CLASS_MANUAL_PART_Vector2()                                                  \
-    /* explicit Vector2::Vector2(const float* data) noexcept | File: ../Math/Vector2.h */     \
+#define REGISTER_CLASS_MANUAL_PART_Vector2() \
+    /* explicit Vector2::Vector2(const float* data) noexcept | File: ../Math/Vector2.h */ \
     engine->RegisterObjectBehaviour("Vector2", asBEHAVE_CONSTRUCT, "void f(float[]&)", AS_FUNCTION_OBJLAST(Vector2_Vector2_Data), AS_CALL_CDECL_OBJLAST);
     engine->RegisterObjectBehaviour("Vector2", asBEHAVE_CONSTRUCT, "void f(float[]&)", AS_FUNCTION_OBJLAST(Vector2_Vector2_Data), AS_CALL_CDECL_OBJLAST);
 
 
 // const float* Vector2::Data() const | File: ../Math/Vector2.h
 // const float* Vector2::Data() const | File: ../Math/Vector2.h
@@ -66,8 +66,8 @@ template <class T> CScriptArray* Vector2_Data(T* ptr)
     return BufferToArray<float>(ptr->Data(), 2, "float[]");
     return BufferToArray<float>(ptr->Data(), 2, "float[]");
 }
 }
 
 
-#define REGISTER_MEMBERS_MANUAL_PART_Vector2()                                            \
-    /* const float* Vector2::Data() const | File: ../Math/Vector2.h */                    \
+#define REGISTER_MEMBERS_MANUAL_PART_Vector2() \
+    /* const float* Vector2::Data() const | File: ../Math/Vector2.h */ \
     engine->RegisterObjectMethod(className, "float[]& get_data() const", AS_FUNCTION_OBJLAST(Vector2_Data<T>), AS_CALL_CDECL_OBJLAST);
     engine->RegisterObjectMethod(className, "float[]& get_data() const", AS_FUNCTION_OBJLAST(Vector2_Data<T>), AS_CALL_CDECL_OBJLAST);
 
 
 // ========================================================================================
 // ========================================================================================
@@ -100,8 +100,8 @@ static void Vector3_Vector3_Data(CScriptArray* data, Vector3* ptr)
     new(ptr) Vector3(static_cast<float*>(data->At(0)));
     new(ptr) Vector3(static_cast<float*>(data->At(0)));
 }
 }
 
 
-#define REGISTER_CLASS_MANUAL_PART_Vector3()                                                         \
-    /* explicit Vector3::Vector3(const float* data) noexcept | File: ../Math/Vector3.h */            \
+#define REGISTER_CLASS_MANUAL_PART_Vector3() \
+    /* explicit Vector3::Vector3(const float* data) noexcept | File: ../Math/Vector3.h */ \
     engine->RegisterObjectBehaviour("Vector3", asBEHAVE_CONSTRUCT, "void f(float[]&)", AS_FUNCTION_OBJLAST(Vector3_Vector3_Data), AS_CALL_CDECL_OBJLAST);
     engine->RegisterObjectBehaviour("Vector3", asBEHAVE_CONSTRUCT, "void f(float[]&)", AS_FUNCTION_OBJLAST(Vector3_Vector3_Data), AS_CALL_CDECL_OBJLAST);
 
 
 // const float* Vector3::Data() const | File: ../Math/Vector3.h
 // const float* Vector3::Data() const | File: ../Math/Vector3.h
@@ -110,8 +110,8 @@ template <class T> CScriptArray* Vector3_Data(T* ptr)
     return BufferToArray<float>(ptr->Data(), 3, "float[]");
     return BufferToArray<float>(ptr->Data(), 3, "float[]");
 }
 }
 
 
-#define REGISTER_MEMBERS_MANUAL_PART_Vector3()                                                       \
-    /* const float* Vector3::Data() const | File: ../Math/Vector3.h */                               \
+#define REGISTER_MEMBERS_MANUAL_PART_Vector3() \
+    /* const float* Vector3::Data() const | File: ../Math/Vector3.h */ \
     engine->RegisterObjectMethod(className, "float[]& get_data() const", AS_FUNCTION_OBJLAST(Vector3_Data<T>), AS_CALL_CDECL_OBJLAST);
     engine->RegisterObjectMethod(className, "float[]& get_data() const", AS_FUNCTION_OBJLAST(Vector3_Data<T>), AS_CALL_CDECL_OBJLAST);
 
 
 // ========================================================================================
 // ========================================================================================
@@ -122,8 +122,8 @@ static void Vector4_Vector4_Data(CScriptArray* data, Vector4* ptr)
     new(ptr) Vector4(static_cast<float*>(data->At(0)));
     new(ptr) Vector4(static_cast<float*>(data->At(0)));
 }
 }
 
 
-#define REGISTER_CLASS_MANUAL_PART_Vector4()                                                     \
-    /* explicit Vector4::Vector4(const float* data) noexcept | File: ../Math/Vector4.h */        \
+#define REGISTER_CLASS_MANUAL_PART_Vector4() \
+    /* explicit Vector4::Vector4(const float* data) noexcept | File: ../Math/Vector4.h */ \
     engine->RegisterObjectBehaviour("Vector4", asBEHAVE_CONSTRUCT, "void f(float[]&)", AS_FUNCTION_OBJLAST(Vector4_Vector4_Data), AS_CALL_CDECL_OBJLAST);
     engine->RegisterObjectBehaviour("Vector4", asBEHAVE_CONSTRUCT, "void f(float[]&)", AS_FUNCTION_OBJLAST(Vector4_Vector4_Data), AS_CALL_CDECL_OBJLAST);
 
 
 // const float* Vector4::Data() const | File: ../Math/Vector4.h
 // const float* Vector4::Data() const | File: ../Math/Vector4.h
@@ -132,8 +132,8 @@ template <class T> CScriptArray* Vector4_Data(T* ptr)
     return BufferToArray<float>(ptr->Data(), 4, "float[]");
     return BufferToArray<float>(ptr->Data(), 4, "float[]");
 }
 }
 
 
-#define REGISTER_MEMBERS_MANUAL_PART_Vector4()                                            \
-    /* const float* Vector4::Data() const | File: ../Math/Vector4.h */                    \
+#define REGISTER_MEMBERS_MANUAL_PART_Vector4() \
+    /* const float* Vector4::Data() const | File: ../Math/Vector4.h */ \
     engine->RegisterObjectMethod(className, "float[]& get_data() const", AS_FUNCTION_OBJLAST(Vector4_Data<T>), AS_CALL_CDECL_OBJLAST);
     engine->RegisterObjectMethod(className, "float[]& get_data() const", AS_FUNCTION_OBJLAST(Vector4_Data<T>), AS_CALL_CDECL_OBJLAST);
 
 
 // ========================================================================================
 // ========================================================================================
@@ -226,7 +226,6 @@ template <class T> CScriptArray* Polyhedron_GetFace(unsigned index, T* ptr)
 #define REGISTER_MEMBERS_MANUAL_PART_Polyhedron() \
 #define REGISTER_MEMBERS_MANUAL_PART_Polyhedron() \
     /* Vector<PODVector<Vector3>> Polyhedron::faces_ | File: ../Math/Polyhedron.h */ \
     /* Vector<PODVector<Vector3>> Polyhedron::faces_ | File: ../Math/Polyhedron.h */ \
     engine->RegisterObjectMethod(className, "uint get_numFaces() const", AS_FUNCTION_OBJLAST(Polyhedron_GetNumFaces<T>), AS_CALL_CDECL_OBJLAST); \
     engine->RegisterObjectMethod(className, "uint get_numFaces() const", AS_FUNCTION_OBJLAST(Polyhedron_GetNumFaces<T>), AS_CALL_CDECL_OBJLAST); \
-    /* Vector<PODVector<Vector3>> Polyhedron::faces_ | File: ../Math/Polyhedron.h */ \
     engine->RegisterObjectMethod(className, "Array<Vector3>@ get_face(uint) const", AS_FUNCTION_OBJLAST(Polyhedron_GetFace<T>), AS_CALL_CDECL_OBJLAST);
     engine->RegisterObjectMethod(className, "Array<Vector3>@ get_face(uint) const", AS_FUNCTION_OBJLAST(Polyhedron_GetFace<T>), AS_CALL_CDECL_OBJLAST);
 
 
 }
 }

+ 15 - 15
Source/Urho3D/AngelScript/Manual_Navigation.h

@@ -90,31 +90,31 @@ template <class T> CScriptArray* NavigationMesh_FindPath(const Vector3& start, c
     return VectorToArray<Vector3>(dest, "Array<Vector3>");
     return VectorToArray<Vector3>(dest, "Array<Vector3>");
 }
 }
 
 
-#define REGISTER_MEMBERS_MANUAL_PART_NavigationMesh()                                                                               \
+#define REGISTER_MEMBERS_MANUAL_PART_NavigationMesh() \
     /* virtual PODVector<unsigned char> NavigationMesh::GetTileData(const IntVector2& tile) const | File: ../Navigation/NavigationMesh.h */ \
     /* virtual PODVector<unsigned char> NavigationMesh::GetTileData(const IntVector2& tile) const | File: ../Navigation/NavigationMesh.h */ \
     engine->RegisterObjectMethod(className, "VectorBuffer GetTileData(const IntVector2&) const", AS_FUNCTION_OBJLAST(NavigationMesh_GetTileData<T>), AS_CALL_CDECL_OBJLAST); \
     engine->RegisterObjectMethod(className, "VectorBuffer GetTileData(const IntVector2&) const", AS_FUNCTION_OBJLAST(NavigationMesh_GetTileData<T>), AS_CALL_CDECL_OBJLAST); \
-                                                                                                                                    \
-    /* virtual bool NavigationMesh::AddTile(const PODVector<unsigned char>& tileData) | File: ../Navigation/NavigationMesh.h */     \
+    \
+    /* virtual bool NavigationMesh::AddTile(const PODVector<unsigned char>& tileData) | File: ../Navigation/NavigationMesh.h */ \
     engine->RegisterObjectMethod(className, "bool AddTile(const VectorBuffer&in) const", AS_FUNCTION_OBJLAST(NavigationMesh_AddTile<T>), AS_CALL_CDECL_OBJLAST); \
     engine->RegisterObjectMethod(className, "bool AddTile(const VectorBuffer&in) const", AS_FUNCTION_OBJLAST(NavigationMesh_AddTile<T>), AS_CALL_CDECL_OBJLAST); \
-                                                                                                                                    \
+    \
     /* Vector3 NavigationMesh::FindNearestPoint(const Vector3& point, const Vector3& extents = Vector3::ONE, const dtQueryFilter* filter = nullptr, dtPolyRef* nearestRef = nullptr) | File: ../Navigation/NavigationMesh.h */ \
     /* Vector3 NavigationMesh::FindNearestPoint(const Vector3& point, const Vector3& extents = Vector3::ONE, const dtQueryFilter* filter = nullptr, dtPolyRef* nearestRef = nullptr) | File: ../Navigation/NavigationMesh.h */ \
     engine->RegisterObjectMethod(className, "Vector3 FindNearestPoint(const Vector3&in, const Vector3&in = Vector3::ONE)", AS_FUNCTION_OBJLAST(NavigationMesh_FindNearestPoint<T>), AS_CALL_CDECL_OBJLAST); \
     engine->RegisterObjectMethod(className, "Vector3 FindNearestPoint(const Vector3&in, const Vector3&in = Vector3::ONE)", AS_FUNCTION_OBJLAST(NavigationMesh_FindNearestPoint<T>), AS_CALL_CDECL_OBJLAST); \
-                                                                                                                                    \
+    \
     /* Vector3 NavigationMesh::GetRandomPoint(const dtQueryFilter* filter = nullptr, dtPolyRef* randomRef = nullptr) | File: ../Navigation/NavigationMesh.h */ \
     /* Vector3 NavigationMesh::GetRandomPoint(const dtQueryFilter* filter = nullptr, dtPolyRef* randomRef = nullptr) | File: ../Navigation/NavigationMesh.h */ \
     engine->RegisterObjectMethod(className, "Vector3 GetRandomPoint()", AS_FUNCTION_OBJLAST(NavigationMesh_GetRandomPoint<T>), AS_CALL_CDECL_OBJLAST); \
     engine->RegisterObjectMethod(className, "Vector3 GetRandomPoint()", AS_FUNCTION_OBJLAST(NavigationMesh_GetRandomPoint<T>), AS_CALL_CDECL_OBJLAST); \
-                                                                                                                                    \
+    \
     /* Vector3 NavigationMesh::GetRandomPointInCircle(const Vector3& center, float radius, const Vector3& extents = Vector3::ONE, const dtQueryFilter* filter = nullptr, dtPolyRef* randomRef = nullptr) | File: ../Navigation/NavigationMesh.h */ \
     /* Vector3 NavigationMesh::GetRandomPointInCircle(const Vector3& center, float radius, const Vector3& extents = Vector3::ONE, const dtQueryFilter* filter = nullptr, dtPolyRef* randomRef = nullptr) | File: ../Navigation/NavigationMesh.h */ \
     engine->RegisterObjectMethod(className, "Vector3 GetRandomPointInCircle(const Vector3&in, float, const Vector3&in = Vector3::ONE)", AS_FUNCTION_OBJLAST(NavigationMesh_GetRandomPointInCircle<T>), AS_CALL_CDECL_OBJLAST); \
     engine->RegisterObjectMethod(className, "Vector3 GetRandomPointInCircle(const Vector3&in, float, const Vector3&in = Vector3::ONE)", AS_FUNCTION_OBJLAST(NavigationMesh_GetRandomPointInCircle<T>), AS_CALL_CDECL_OBJLAST); \
-                                                                                                                                    \
+    \
     /* float NavigationMesh::GetDistanceToWall(const Vector3& point, float radius, const Vector3& extents = Vector3::ONE, const dtQueryFilter* filter = nullptr, Vector3* hitPos = nullptr, Vector3* hitNormal = nullptr) | File: ../Navigation/NavigationMesh.h */ \
     /* float NavigationMesh::GetDistanceToWall(const Vector3& point, float radius, const Vector3& extents = Vector3::ONE, const dtQueryFilter* filter = nullptr, Vector3* hitPos = nullptr, Vector3* hitNormal = nullptr) | File: ../Navigation/NavigationMesh.h */ \
     engine->RegisterObjectMethod(className, "float GetDistanceToWall(const Vector3&in, float, const Vector3&in = Vector3::ONE)", AS_FUNCTION_OBJLAST(NavigationMesh_GetDistanceToWall<T>), AS_CALL_CDECL_OBJLAST); \
     engine->RegisterObjectMethod(className, "float GetDistanceToWall(const Vector3&in, float, const Vector3&in = Vector3::ONE)", AS_FUNCTION_OBJLAST(NavigationMesh_GetDistanceToWall<T>), AS_CALL_CDECL_OBJLAST); \
-                                                                                                                                    \
+    \
     /* Vector3 NavigationMesh::Raycast(const Vector3& start, const Vector3& end, const Vector3& extents = Vector3::ONE, const dtQueryFilter* filter = nullptr, Vector3* hitNormal = nullptr) | File: ../Navigation/NavigationMesh.h */ \
     /* Vector3 NavigationMesh::Raycast(const Vector3& start, const Vector3& end, const Vector3& extents = Vector3::ONE, const dtQueryFilter* filter = nullptr, Vector3* hitNormal = nullptr) | File: ../Navigation/NavigationMesh.h */ \
     engine->RegisterObjectMethod(className, "Vector3 Raycast(const Vector3&in, const Vector3&in, const Vector3&in = Vector3::ONE)", AS_FUNCTION_OBJLAST(NavigationMesh_Raycast<T>), AS_CALL_CDECL_OBJLAST); \
     engine->RegisterObjectMethod(className, "Vector3 Raycast(const Vector3&in, const Vector3&in, const Vector3&in = Vector3::ONE)", AS_FUNCTION_OBJLAST(NavigationMesh_Raycast<T>), AS_CALL_CDECL_OBJLAST); \
-                                                                                                                                    \
+    \
     /* Vector3 NavigationMesh::MoveAlongSurface(const Vector3& start, const Vector3& end, const Vector3& extents = Vector3::ONE, int maxVisited = 3, const dtQueryFilter* filter = nullptr)  | File: ../Navigation/NavigationMesh.h */ \
     /* Vector3 NavigationMesh::MoveAlongSurface(const Vector3& start, const Vector3& end, const Vector3& extents = Vector3::ONE, int maxVisited = 3, const dtQueryFilter* filter = nullptr)  | File: ../Navigation/NavigationMesh.h */ \
     engine->RegisterObjectMethod(className, "Vector3 MoveAlongSurface(const Vector3&in, const Vector3&in, const Vector3&in = Vector3::ONE, int = 3)", AS_FUNCTION_OBJLAST(NavigationMesh_MoveAlongSurface<T>), AS_CALL_CDECL_OBJLAST); \
     engine->RegisterObjectMethod(className, "Vector3 MoveAlongSurface(const Vector3&in, const Vector3&in, const Vector3&in = Vector3::ONE, int = 3)", AS_FUNCTION_OBJLAST(NavigationMesh_MoveAlongSurface<T>), AS_CALL_CDECL_OBJLAST); \
-                                                                                                                                    \
+    \
     /* void NavigationMesh::FindPath(PODVector<Vector3>& dest, const Vector3& start, const Vector3& end, const Vector3& extents = Vector3::ONE, const dtQueryFilter* filter = nullptr) | File: ../Navigation/NavigationMesh.h */ \
     /* void NavigationMesh::FindPath(PODVector<Vector3>& dest, const Vector3& start, const Vector3& end, const Vector3& extents = Vector3::ONE, const dtQueryFilter* filter = nullptr) | File: ../Navigation/NavigationMesh.h */ \
     engine->RegisterObjectMethod(className, "Array<Vector3>@ FindPath(const Vector3&in, const Vector3&in, const Vector3&in extents = Vector3::ONE)", AS_FUNCTION_OBJLAST(NavigationMesh_FindPath<T>), AS_CALL_CDECL_OBJLAST);
     engine->RegisterObjectMethod(className, "Array<Vector3>@ FindPath(const Vector3&in, const Vector3&in, const Vector3&in extents = Vector3::ONE)", AS_FUNCTION_OBJLAST(NavigationMesh_FindPath<T>), AS_CALL_CDECL_OBJLAST);
 
 
@@ -150,19 +150,19 @@ template <class T> Vector3 CrowdManager_Raycast(const Vector3& start, const Vect
     return ptr->Raycast(start, end, queryFilterType);
     return ptr->Raycast(start, end, queryFilterType);
 }
 }
 
 
-#define REGISTER_MEMBERS_MANUAL_PART_CrowdManager()                                                                                      \
+#define REGISTER_MEMBERS_MANUAL_PART_CrowdManager() \
     /* Vector3 CrowdManager::GetRandomPoint(int queryFilterType, dtPolyRef* randomRef = nullptr) | File: ../Navigation/CrowdManager.h */ \
     /* Vector3 CrowdManager::GetRandomPoint(int queryFilterType, dtPolyRef* randomRef = nullptr) | File: ../Navigation/CrowdManager.h */ \
     engine->RegisterObjectMethod(className, "Vector3 GetRandomPoint(int)", AS_FUNCTION_OBJLAST(CrowdManager_GetRandomPoint<T>), AS_CALL_CDECL_OBJLAST); \
     engine->RegisterObjectMethod(className, "Vector3 GetRandomPoint(int)", AS_FUNCTION_OBJLAST(CrowdManager_GetRandomPoint<T>), AS_CALL_CDECL_OBJLAST); \
-                                                                                                                                         \
+    \
     /* Vector3 CrowdManager::GetRandomPointInCircle(const Vector3& center, float radius, int queryFilterType, dtPolyRef* randomRef = nullptr) | File: ../Navigation/CrowdManager.h */ \
     /* Vector3 CrowdManager::GetRandomPointInCircle(const Vector3& center, float radius, int queryFilterType, dtPolyRef* randomRef = nullptr) | File: ../Navigation/CrowdManager.h */ \
     engine->RegisterObjectMethod(className, "Vector3 GetRandomPointInCircle(const Vector3&in, float, int)", AS_FUNCTION_OBJLAST(CrowdManager_RandomPointInCircle<T>), AS_CALL_CDECL_OBJLAST); \
     engine->RegisterObjectMethod(className, "Vector3 GetRandomPointInCircle(const Vector3&in, float, int)", AS_FUNCTION_OBJLAST(CrowdManager_RandomPointInCircle<T>), AS_CALL_CDECL_OBJLAST); \
-                                                                                                                                         \
+    \
     /* Vector3 CrowdManager::FindNearestPoint(const Vector3& point, int queryFilterType, dtPolyRef* nearestRef = nullptr) | File: ../Navigation/CrowdManager.h */ \
     /* Vector3 CrowdManager::FindNearestPoint(const Vector3& point, int queryFilterType, dtPolyRef* nearestRef = nullptr) | File: ../Navigation/CrowdManager.h */ \
     engine->RegisterObjectMethod(className, "Vector3 FindNearestPoint(const Vector3&in, int)", AS_FUNCTION_OBJLAST(CrowdManager_FindNearestPoint<T>), AS_CALL_CDECL_OBJLAST); \
     engine->RegisterObjectMethod(className, "Vector3 FindNearestPoint(const Vector3&in, int)", AS_FUNCTION_OBJLAST(CrowdManager_FindNearestPoint<T>), AS_CALL_CDECL_OBJLAST); \
-                                                                                                                                         \
+    \
     /* float CrowdManager::GetDistanceToWall(const Vector3& point, float radius, int queryFilterType, Vector3* hitPos = nullptr, Vector3* hitNormal = nullptr) | File: ../Navigation/CrowdManager.h */ \
     /* float CrowdManager::GetDistanceToWall(const Vector3& point, float radius, int queryFilterType, Vector3* hitPos = nullptr, Vector3* hitNormal = nullptr) | File: ../Navigation/CrowdManager.h */ \
     engine->RegisterObjectMethod(className, "float GetDistanceToWall(const Vector3&in, float, int)", AS_FUNCTION_OBJLAST(CrowdManager_GetDistanceToWall<T>), AS_CALL_CDECL_OBJLAST); \
     engine->RegisterObjectMethod(className, "float GetDistanceToWall(const Vector3&in, float, int)", AS_FUNCTION_OBJLAST(CrowdManager_GetDistanceToWall<T>), AS_CALL_CDECL_OBJLAST); \
-                                                                                                                                         \
+    \
     /* Vector3 CrowdManager::Raycast(const Vector3& start, const Vector3& end, int queryFilterType, Vector3* hitNormal = nullptr) | File: ../Navigation/CrowdManager.h */ \
     /* Vector3 CrowdManager::Raycast(const Vector3& start, const Vector3& end, int queryFilterType, Vector3* hitNormal = nullptr) | File: ../Navigation/CrowdManager.h */ \
     engine->RegisterObjectMethod(className, "Vector3 Raycast(const Vector3&in, const Vector3&in, int)", AS_FUNCTION_OBJLAST(CrowdManager_Raycast<T>), AS_CALL_CDECL_OBJLAST);
     engine->RegisterObjectMethod(className, "Vector3 Raycast(const Vector3&in, const Vector3&in, int)", AS_FUNCTION_OBJLAST(CrowdManager_Raycast<T>), AS_CALL_CDECL_OBJLAST);
 
 

+ 0 - 5
Source/Urho3D/AngelScript/Manual_Network.h

@@ -30,11 +30,6 @@
 namespace Urho3D
 namespace Urho3D
 {
 {
 
 
-// Workaround crash in 43_HttpRequestDemo.as ( may be thread related)
-//#define REGISTER_MEMBERS_MANUAL_PART_HttpRequest() \
-//    Remove(members.methods_, "String Deserializer::ReadLine()"); \
-//    members.methods_.Push(RegisterObjectMethodArgs("String Deserializer::ReadLine()", "String ReadLine()", AS_METHODPR(HttpRequest, ReadLine, (), String), AS_CALL_THISCALL));
-
 }
 }
 
 
 #endif // def URHO3D_NETWORK
 #endif // def URHO3D_NETWORK

+ 13 - 13
Source/Urho3D/AngelScript/Manual_Physics.h

@@ -40,8 +40,8 @@ template <class T> RigidBody* PhysicsRaycastResult_GetRigidBody(T* ptr)
     return ptr->body_;
     return ptr->body_;
 }
 }
 
 
-#define REGISTER_MEMBERS_MANUAL_PART_PhysicsRaycastResult()                               \
-    /* RigidBody* PhysicsRaycastResult::body_ | File: ../Physics/PhysicsWorld.h */        \
+#define REGISTER_MEMBERS_MANUAL_PART_PhysicsRaycastResult() \
+    /* RigidBody* PhysicsRaycastResult::body_ | File: ../Physics/PhysicsWorld.h */ \
     engine->RegisterObjectMethod(className, "RigidBody@+ get_body() const", AS_FUNCTION_OBJLAST(PhysicsRaycastResult_GetRigidBody<T>), AS_CALL_CDECL_OBJLAST);
     engine->RegisterObjectMethod(className, "RigidBody@+ get_body() const", AS_FUNCTION_OBJLAST(PhysicsRaycastResult_GetRigidBody<T>), AS_CALL_CDECL_OBJLAST);
 
 
 // ========================================================================================
 // ========================================================================================
@@ -54,8 +54,8 @@ template <class T> CScriptArray* RigidBody_GetCollidingBodies(T* ptr)
     return VectorToHandleArray<RigidBody>(result, "Array<RigidBody@>");
     return VectorToHandleArray<RigidBody>(result, "Array<RigidBody@>");
 }
 }
 
 
-#define REGISTER_MEMBERS_MANUAL_PART_RigidBody()                                                                   \
-    /* void RigidBody::GetCollidingBodies(PODVector<RigidBody*>& result) const | File: ../Physics/RigidBody.h */   \
+#define REGISTER_MEMBERS_MANUAL_PART_RigidBody() \
+    /* void RigidBody::GetCollidingBodies(PODVector<RigidBody*>& result) const | File: ../Physics/RigidBody.h */ \
     engine->RegisterObjectMethod(className, "Array<RigidBody@>@ get_collidingBodies() const", AS_FUNCTION_OBJLAST(RigidBody_GetCollidingBodies<T>), AS_CALL_CDECL_OBJLAST);
     engine->RegisterObjectMethod(className, "Array<RigidBody@>@ get_collidingBodies() const", AS_FUNCTION_OBJLAST(RigidBody_GetCollidingBodies<T>), AS_CALL_CDECL_OBJLAST);
 
 
 // ========================================================================================
 // ========================================================================================
@@ -135,31 +135,31 @@ template <class T> PhysicsRaycastResult PhysicsWorld_ConvexCast(CollisionShape*
     return result;
     return result;
 }
 }
 
 
-#define REGISTER_MEMBERS_MANUAL_PART_PhysicsWorld()                                                                   \
+#define REGISTER_MEMBERS_MANUAL_PART_PhysicsWorld() \
     /* void PhysicsWorld::Raycast(PODVector<PhysicsRaycastResult>& result, const Ray& ray, float maxDistance, unsigned collisionMask = M_MAX_UNSIGNED) | File: ../Physics/PhysicsWorld.h */ \
     /* void PhysicsWorld::Raycast(PODVector<PhysicsRaycastResult>& result, const Ray& ray, float maxDistance, unsigned collisionMask = M_MAX_UNSIGNED) | File: ../Physics/PhysicsWorld.h */ \
     engine->RegisterObjectMethod(className, "Array<PhysicsRaycastResult>@ Raycast(const Ray&in, float, uint = 0xffff)", AS_FUNCTION_OBJLAST(PhysicsWorld_Raycast<T>), AS_CALL_CDECL_OBJLAST); \
     engine->RegisterObjectMethod(className, "Array<PhysicsRaycastResult>@ Raycast(const Ray&in, float, uint = 0xffff)", AS_FUNCTION_OBJLAST(PhysicsWorld_Raycast<T>), AS_CALL_CDECL_OBJLAST); \
-                                                                                                                      \
+    \
     /* void PhysicsWorld::RaycastSingle(PhysicsRaycastResult& result, const Ray& ray, float maxDistance, unsigned collisionMask = M_MAX_UNSIGNED) | File: ../Physics/PhysicsWorld.h */ \
     /* void PhysicsWorld::RaycastSingle(PhysicsRaycastResult& result, const Ray& ray, float maxDistance, unsigned collisionMask = M_MAX_UNSIGNED) | File: ../Physics/PhysicsWorld.h */ \
     engine->RegisterObjectMethod(className, "PhysicsRaycastResult RaycastSingle(const Ray&in, float, uint = 0xffff)", AS_FUNCTION_OBJLAST(PhysicsWorld_RaycastSingle<T>), AS_CALL_CDECL_OBJLAST); \
     engine->RegisterObjectMethod(className, "PhysicsRaycastResult RaycastSingle(const Ray&in, float, uint = 0xffff)", AS_FUNCTION_OBJLAST(PhysicsWorld_RaycastSingle<T>), AS_CALL_CDECL_OBJLAST); \
-                                                                                                                      \
+    \
     /* void PhysicsWorld::RaycastSingleSegmented(PhysicsRaycastResult& result, const Ray& ray, float maxDistance, float segmentDistance, unsigned collisionMask = M_MAX_UNSIGNED, float overlapDistance = 0.1f) | File: ../Physics/PhysicsWorld.h */ \
     /* void PhysicsWorld::RaycastSingleSegmented(PhysicsRaycastResult& result, const Ray& ray, float maxDistance, float segmentDistance, unsigned collisionMask = M_MAX_UNSIGNED, float overlapDistance = 0.1f) | File: ../Physics/PhysicsWorld.h */ \
     engine->RegisterObjectMethod(className, "PhysicsRaycastResult RaycastSingleSegmented(const Ray&in, float, float, uint collisionMask = 0xffff, float overlapDistance = 0.1f)", AS_FUNCTION_OBJLAST(PhysicsWorld_RaycastSingleSegmented<T>), AS_CALL_CDECL_OBJLAST); \
     engine->RegisterObjectMethod(className, "PhysicsRaycastResult RaycastSingleSegmented(const Ray&in, float, float, uint collisionMask = 0xffff, float overlapDistance = 0.1f)", AS_FUNCTION_OBJLAST(PhysicsWorld_RaycastSingleSegmented<T>), AS_CALL_CDECL_OBJLAST); \
-                                                                                                                      \
+    \
     /* void PhysicsWorld::SphereCast(PhysicsRaycastResult& result, const Ray& ray, float radius, float maxDistance, unsigned collisionMask = M_MAX_UNSIGNED) | File: ../Physics/PhysicsWorld.h */ \
     /* void PhysicsWorld::SphereCast(PhysicsRaycastResult& result, const Ray& ray, float radius, float maxDistance, unsigned collisionMask = M_MAX_UNSIGNED) | File: ../Physics/PhysicsWorld.h */ \
     engine->RegisterObjectMethod(className, "PhysicsRaycastResult SphereCast(const Ray&in, float, float, uint collisionMask = 0xffff)", AS_FUNCTION_OBJLAST(PhysicsWorld_SphereCast<T>), AS_CALL_CDECL_OBJLAST); \
     engine->RegisterObjectMethod(className, "PhysicsRaycastResult SphereCast(const Ray&in, float, float, uint collisionMask = 0xffff)", AS_FUNCTION_OBJLAST(PhysicsWorld_SphereCast<T>), AS_CALL_CDECL_OBJLAST); \
-                                                                                                                      \
+    \
     /* void PhysicsWorld::GetRigidBodies(PODVector<RigidBody*>& result, const Sphere& sphere, unsigned collisionMask = M_MAX_UNSIGNED) | File: ../Physics/PhysicsWorld.h */ \
     /* void PhysicsWorld::GetRigidBodies(PODVector<RigidBody*>& result, const Sphere& sphere, unsigned collisionMask = M_MAX_UNSIGNED) | File: ../Physics/PhysicsWorld.h */ \
     engine->RegisterObjectMethod(className, "Array<RigidBody@>@ GetRigidBodies(const Sphere&in, uint = 0xffff)", AS_FUNCTION_OBJLAST(PhysicsWorld_GetRigidBodies_Sphere<T>), AS_CALL_CDECL_OBJLAST); \
     engine->RegisterObjectMethod(className, "Array<RigidBody@>@ GetRigidBodies(const Sphere&in, uint = 0xffff)", AS_FUNCTION_OBJLAST(PhysicsWorld_GetRigidBodies_Sphere<T>), AS_CALL_CDECL_OBJLAST); \
-                                                                                                                      \
+    \
     /* void PhysicsWorld::GetRigidBodies(PODVector<RigidBody*>& result, const BoundingBox& box, unsigned collisionMask = M_MAX_UNSIGNED) | File: ../Physics/PhysicsWorld.h */ \
     /* void PhysicsWorld::GetRigidBodies(PODVector<RigidBody*>& result, const BoundingBox& box, unsigned collisionMask = M_MAX_UNSIGNED) | File: ../Physics/PhysicsWorld.h */ \
     engine->RegisterObjectMethod(className, "Array<RigidBody@>@ GetRigidBodies(const BoundingBox&in, uint collisionMask = 0xffff)", AS_FUNCTION_OBJLAST(PhysicsWorld_GetRigidBodies_Box<T>), AS_CALL_CDECL_OBJLAST); \
     engine->RegisterObjectMethod(className, "Array<RigidBody@>@ GetRigidBodies(const BoundingBox&in, uint collisionMask = 0xffff)", AS_FUNCTION_OBJLAST(PhysicsWorld_GetRigidBodies_Box<T>), AS_CALL_CDECL_OBJLAST); \
-                                                                                                                      \
+    \
     /* void PhysicsWorld::GetRigidBodies(PODVector<RigidBody*>& result, const RigidBody* body) | File: ../Physics/PhysicsWorld.h */ \
     /* void PhysicsWorld::GetRigidBodies(PODVector<RigidBody*>& result, const RigidBody* body) | File: ../Physics/PhysicsWorld.h */ \
     engine->RegisterObjectMethod(className, "Array<RigidBody@>@ GetRigidBodies(RigidBody@+)", AS_FUNCTION_OBJLAST(PhysicsWorld_GetRigidBodies_Body<T>), AS_CALL_CDECL_OBJLAST); \
     engine->RegisterObjectMethod(className, "Array<RigidBody@>@ GetRigidBodies(RigidBody@+)", AS_FUNCTION_OBJLAST(PhysicsWorld_GetRigidBodies_Body<T>), AS_CALL_CDECL_OBJLAST); \
-                                                                                                                      \
+    \
     /* void PhysicsWorld::GetCollidingBodies(PODVector<RigidBody*>& result, const RigidBody* body) | File: ../Physics/PhysicsWorld.h */ \
     /* void PhysicsWorld::GetCollidingBodies(PODVector<RigidBody*>& result, const RigidBody* body) | File: ../Physics/PhysicsWorld.h */ \
     engine->RegisterObjectMethod(className, "Array<RigidBody@>@ GetCollidingBodies(RigidBody@+)", AS_FUNCTION_OBJLAST(PhysicsWorld_GetCollidingBodies<T>), AS_CALL_CDECL_OBJLAST); \
     engine->RegisterObjectMethod(className, "Array<RigidBody@>@ GetCollidingBodies(RigidBody@+)", AS_FUNCTION_OBJLAST(PhysicsWorld_GetCollidingBodies<T>), AS_CALL_CDECL_OBJLAST); \
-                                                                                                                      \
+    \
     /* There seems to be a bug in AngelScript resulting in a crash if we use an auto handle with this function. */    \
     /* There seems to be a bug in AngelScript resulting in a crash if we use an auto handle with this function. */    \
     /* Work around by manually releasing the CollisionShape handle */                                                 \
     /* Work around by manually releasing the CollisionShape handle */                                                 \
     /* void PhysicsWorld::ConvexCast(PhysicsRaycastResult& result, CollisionShape* shape, const Vector3& startPos, const Quaternion& startRot, const Vector3& endPos, const Quaternion& endRot, unsigned collisionMask = M_MAX_UNSIGNED) | File: ../Physics/PhysicsWorld.h */ \
     /* void PhysicsWorld::ConvexCast(PhysicsRaycastResult& result, CollisionShape* shape, const Vector3& startPos, const Quaternion& startRot, const Vector3& endPos, const Quaternion& endRot, unsigned collisionMask = M_MAX_UNSIGNED) | File: ../Physics/PhysicsWorld.h */ \

+ 11 - 22
Source/Urho3D/AngelScript/Manual_Resource.h

@@ -33,15 +33,13 @@ namespace Urho3D
 // bool Resource::Load(Deserializer& source) | File: ../Resource/Resource.h
 // bool Resource::Load(Deserializer& source) | File: ../Resource/Resource.h
 template <class T> bool Resource_Load_File(File* file, T* ptr)
 template <class T> bool Resource_Load_File(File* file, T* ptr)
 {
 {
-    // TODO: Remove conversion
-    return file && ((Resource*)ptr)->Load(*file);
+    return file && ptr->Load(*file);
 }
 }
 
 
 // bool Resource::Load(Deserializer& source) | File: ../Resource/Resource.h
 // bool Resource::Load(Deserializer& source) | File: ../Resource/Resource.h
 template <class T> bool Resource_Load_VectorBuffer(VectorBuffer& buffer, T* ptr)
 template <class T> bool Resource_Load_VectorBuffer(VectorBuffer& buffer, T* ptr)
 {
 {
-    // TODO: Remove conversion
-    return ((Resource*)ptr)->Load(buffer);
+    return ptr->Load(buffer);
 }
 }
 
 
 // virtual bool Resource::Save(Serializer& dest) const | File: ../Resource/Resource.h
 // virtual bool Resource::Save(Serializer& dest) const | File: ../Resource/Resource.h
@@ -56,29 +54,17 @@ template <class T> bool Resource_Save_VectorBuffer(VectorBuffer& buffer, T* ptr)
     return ptr->Save(buffer);
     return ptr->Save(buffer);
 }
 }
 
 
-#define REGISTER_MEMBERS_MANUAL_PART_Resource()                                                 \
-    /* bool Resource::Load(Deserializer& source) | File: ../Resource/Resource.h */              \
+#define REGISTER_MEMBERS_MANUAL_PART_Resource() \
+    /* bool Resource::Load(Deserializer& source) | File: ../Resource/Resource.h */ \
     engine->RegisterObjectMethod(className, "bool Load(File@+)", AS_FUNCTION_OBJLAST(Resource_Load_File<T>), AS_CALL_CDECL_OBJLAST); \
     engine->RegisterObjectMethod(className, "bool Load(File@+)", AS_FUNCTION_OBJLAST(Resource_Load_File<T>), AS_CALL_CDECL_OBJLAST); \
     engine->RegisterObjectMethod(className, "bool Load(VectorBuffer&)", AS_FUNCTION_OBJLAST(Resource_Load_VectorBuffer<T>), AS_CALL_CDECL_OBJLAST); \
     engine->RegisterObjectMethod(className, "bool Load(VectorBuffer&)", AS_FUNCTION_OBJLAST(Resource_Load_VectorBuffer<T>), AS_CALL_CDECL_OBJLAST); \
-                                                                                                \
-    /* virtual bool Resource::Save(Serializer& dest) const | File: ../Resource/Resource.h */    \
+    \
+    /* virtual bool Resource::Save(Serializer& dest) const | File: ../Resource/Resource.h */ \
     engine->RegisterObjectMethod(className, "bool Save(File@+) const", AS_FUNCTION_OBJLAST(Resource_Save_File<T>), AS_CALL_CDECL_OBJLAST); \
     engine->RegisterObjectMethod(className, "bool Save(File@+) const", AS_FUNCTION_OBJLAST(Resource_Save_File<T>), AS_CALL_CDECL_OBJLAST); \
     engine->RegisterObjectMethod(className, "bool Save(VectorBuffer&) const", AS_FUNCTION_OBJLAST(Resource_Save_VectorBuffer<T>), AS_CALL_CDECL_OBJLAST);
     engine->RegisterObjectMethod(className, "bool Save(VectorBuffer&) const", AS_FUNCTION_OBJLAST(Resource_Save_VectorBuffer<T>), AS_CALL_CDECL_OBJLAST);
 
 
 // ========================================================================================
 // ========================================================================================
 
 
-// bool Image::Save(Serializer& dest) const override | File: ../Resource/Image.h
-template <class T> bool Image_Save_VectorBuffer(VectorBuffer& buffer, T* ptr)
-{
-    return ptr->Save(buffer);
-}
-
-//#define REGISTER_MEMBERS_MANUAL_PART_Image() \
-//    /* bool Image::Save(Serializer& dest) const override | File: ../Resource/Image.h */ \
-//    engine->RegisterObjectMethod(className, "bool Save(VectorBuffer&) const", AS_FUNCTION_OBJLAST(Image_Save_VectorBuffer<T>), AS_CALL_CDECL_OBJLAST);
-
-// ========================================================================================
-
 // bool XPathQuery::SetQuery(const String& queryString, const String& variableString = String::EMPTY, bool bind = true) | File: ../Resource/XMLElement.h
 // bool XPathQuery::SetQuery(const String& queryString, const String& variableString = String::EMPTY, bool bind = true) | File: ../Resource/XMLElement.h
 template <class T> bool XPathQuery_SetQuery(const String& queryString, T* ptr)
 template <class T> bool XPathQuery_SetQuery(const String& queryString, T* ptr)
 {
 {
@@ -97,8 +83,8 @@ template <class T> XMLElement XMLFile_GetRoot_Default(T* ptr)
     return ptr->GetRoot();
     return ptr->GetRoot();
 }
 }
 
 
-#define REGISTER_MEMBERS_MANUAL_PART_XMLFile()                                                             \
-    /* XMLElement XMLFile::GetRoot(const String& name = String::EMPTY) | File: ../Resource/XMLFile.h */    \
+#define REGISTER_MEMBERS_MANUAL_PART_XMLFile() \
+    /* XMLElement XMLFile::GetRoot(const String& name = String::EMPTY) | File: ../Resource/XMLFile.h */ \
     engine->RegisterObjectMethod(className, "XMLElement get_root()", AS_FUNCTION_OBJLAST(XMLFile_GetRoot_Default<T>), AS_CALL_CDECL_OBJLAST);
     engine->RegisterObjectMethod(className, "XMLElement get_root()", AS_FUNCTION_OBJLAST(XMLFile_GetRoot_Default<T>), AS_CALL_CDECL_OBJLAST);
 
 
 // ========================================================================================
 // ========================================================================================
@@ -134,10 +120,13 @@ template <class T> CScriptArray* XMLElement_GetVariantVector(T* ptr)
 #define REGISTER_MEMBERS_MANUAL_PART_XMLElement() \
 #define REGISTER_MEMBERS_MANUAL_PART_XMLElement() \
     /* XMLElement XMLElement::SelectSingle(const String& query, pugi::xpath_variable_set* variables = nullptr) const | File: ../Resource/XMLElement.h */ \
     /* XMLElement XMLElement::SelectSingle(const String& query, pugi::xpath_variable_set* variables = nullptr) const | File: ../Resource/XMLElement.h */ \
     engine->RegisterObjectMethod(className, "XMLElement SelectSingle(const String&in)", AS_FUNCTION_OBJLAST(XMLElement_SelectSingle<T>), AS_CALL_CDECL_OBJLAST); \
     engine->RegisterObjectMethod(className, "XMLElement SelectSingle(const String&in)", AS_FUNCTION_OBJLAST(XMLElement_SelectSingle<T>), AS_CALL_CDECL_OBJLAST); \
+    \
     /* XPathResultSet XMLElement::Select(const String& query, pugi::xpath_variable_set* variables = nullptr) const | File: ../Resource/XMLElement.h */ \
     /* XPathResultSet XMLElement::Select(const String& query, pugi::xpath_variable_set* variables = nullptr) const | File: ../Resource/XMLElement.h */ \
     engine->RegisterObjectMethod(className, "XPathResultSet Select(const String&in)", AS_FUNCTION_OBJLAST(XMLElement_Select<T>), AS_CALL_CDECL_OBJLAST); \
     engine->RegisterObjectMethod(className, "XPathResultSet Select(const String&in)", AS_FUNCTION_OBJLAST(XMLElement_Select<T>), AS_CALL_CDECL_OBJLAST); \
+    \
     /* bool XMLElement::SetVariantVector(const VariantVector& value) | File: ../Resource/XMLElement.h */ \
     /* bool XMLElement::SetVariantVector(const VariantVector& value) | File: ../Resource/XMLElement.h */ \
     engine->RegisterObjectMethod(className, "bool SetVariantVector(Array<Variant>@+)", AS_FUNCTION_OBJLAST(XMLElement_SetVariantVector<T>), AS_CALL_CDECL_OBJLAST); \
     engine->RegisterObjectMethod(className, "bool SetVariantVector(Array<Variant>@+)", AS_FUNCTION_OBJLAST(XMLElement_SetVariantVector<T>), AS_CALL_CDECL_OBJLAST); \
+    \
     /* VariantVector XMLElement::GetVariantVector() const | File: ../Resource/XMLElement.h */ \
     /* VariantVector XMLElement::GetVariantVector() const | File: ../Resource/XMLElement.h */ \
     engine->RegisterObjectMethod(className, "Array<Variant>@ GetVariantVector() const", AS_FUNCTION_OBJLAST(XMLElement_GetVariantVector<T>), AS_CALL_CDECL_OBJLAST);
     engine->RegisterObjectMethod(className, "Array<Variant>@ GetVariantVector() const", AS_FUNCTION_OBJLAST(XMLElement_GetVariantVector<T>), AS_CALL_CDECL_OBJLAST);
 
 

+ 69 - 73
Source/Urho3D/AngelScript/Manual_Scene.h

@@ -86,8 +86,7 @@ template <class T> bool Node_SaveJSON_VectorBuffer(VectorBuffer& buffer, T* ptr)
 template <class T> CScriptArray* Node_GetChildren_Script(bool recursive, T* ptr)
 template <class T> CScriptArray* Node_GetChildren_Script(bool recursive, T* ptr)
 {
 {
     PODVector<Node*> nodes;
     PODVector<Node*> nodes;
-    // TODO: Remove conversion
-    ((Node*)ptr)->GetChildrenWithComponent<ScriptInstance>(nodes, recursive);
+    ptr->template GetChildrenWithComponent<ScriptInstance>(nodes, recursive);
     return VectorToHandleArray<Node>(nodes, "Array<Node@>");
     return VectorToHandleArray<Node>(nodes, "Array<Node@>");
 }
 }
 
 
@@ -95,8 +94,7 @@ template <class T> CScriptArray* Node_GetChildren_Script(bool recursive, T* ptr)
 template <class T> CScriptArray* Node_GetChildren_Script_ClassName(const String& className, bool recursive, T* ptr)
 template <class T> CScriptArray* Node_GetChildren_Script_ClassName(const String& className, bool recursive, T* ptr)
 {
 {
     PODVector<Node*> nodes;
     PODVector<Node*> nodes;
-    // TODO: Remove conversion
-    ((Node*)ptr)->GetChildrenWithComponent<ScriptInstance>(nodes, recursive);
+    ptr->template GetChildrenWithComponent<ScriptInstance>(nodes, recursive);
 
 
     PODVector<Node*> result;
     PODVector<Node*> result;
 
 
@@ -183,53 +181,53 @@ template <class T> VariantMap& Node_GetVars(T* ptr)
     return const_cast<VariantMap&>(ptr->GetVars());
     return const_cast<VariantMap&>(ptr->GetVars());
 }
 }
 
 
-#define REGISTER_MEMBERS_MANUAL_PART_Node()                                                                                                     \
-    RegisterNamedObjectConstructor<T>(engine, className);                                                                                       \
-                                                                                                                                                \
-    /* bool Node::SaveXML(Serializer& dest, const String& indentation = "\t") const | File: ../Scene/Node.h */                                  \
+#define REGISTER_MEMBERS_MANUAL_PART_Node() \
+    RegisterNamedObjectConstructor<T>(engine, className); \
+    \
+    /* bool Node::SaveXML(Serializer& dest, const String& indentation = "\t") const | File: ../Scene/Node.h */ \
     engine->RegisterObjectMethod(className, "bool SaveXML(File@+, const String&in = \"\t\")", AS_FUNCTION_OBJLAST(Node_SaveXML_File<T>), AS_CALL_CDECL_OBJLAST); \
     engine->RegisterObjectMethod(className, "bool SaveXML(File@+, const String&in = \"\t\")", AS_FUNCTION_OBJLAST(Node_SaveXML_File<T>), AS_CALL_CDECL_OBJLAST); \
     engine->RegisterObjectMethod(className, "bool SaveXML(VectorBuffer&, const String&in = \"\t\")", AS_FUNCTION_OBJLAST(Node_SaveXML_VectorBuffer<T>), AS_CALL_CDECL_OBJLAST); \
     engine->RegisterObjectMethod(className, "bool SaveXML(VectorBuffer&, const String&in = \"\t\")", AS_FUNCTION_OBJLAST(Node_SaveXML_VectorBuffer<T>), AS_CALL_CDECL_OBJLAST); \
-                                                                                                                                                \
-    /* bool Node::SaveJSON(Serializer& dest, const String& indentation = "\t") const | File: ../Scene/Node.h */                                 \
-    engine->RegisterObjectMethod(className, "bool SaveJSON(File@+)", AS_FUNCTION_OBJLAST(Node_SaveJSON_File<T>), AS_CALL_CDECL_OBJLAST);        \
+    \
+    /* bool Node::SaveJSON(Serializer& dest, const String& indentation = "\t") const | File: ../Scene/Node.h */ \
+    engine->RegisterObjectMethod(className, "bool SaveJSON(File@+)", AS_FUNCTION_OBJLAST(Node_SaveJSON_File<T>), AS_CALL_CDECL_OBJLAST); \
     engine->RegisterObjectMethod(className, "bool SaveJSON(VectorBuffer&)", AS_FUNCTION_OBJLAST(Node_SaveJSON_VectorBuffer<T>), AS_CALL_CDECL_OBJLAST); \
     engine->RegisterObjectMethod(className, "bool SaveJSON(VectorBuffer&)", AS_FUNCTION_OBJLAST(Node_SaveJSON_VectorBuffer<T>), AS_CALL_CDECL_OBJLAST); \
-                                                                                                                                                \
-    /* template <class T> void Node::GetChildrenWithComponent(PODVector<Node*>& dest, bool recursive = false) const | File: ../Scene/Node.h */  \
+    \
+    /* template <class T> void Node::GetChildrenWithComponent(PODVector<Node*>& dest, bool recursive = false) const | File: ../Scene/Node.h */ \
     engine->RegisterObjectMethod(className, "Array<Node@>@ GetChildrenWithScript(bool = false) const", AS_FUNCTION_OBJLAST(Node_GetChildren_Script<T>), AS_CALL_CDECL_OBJLAST); \
     engine->RegisterObjectMethod(className, "Array<Node@>@ GetChildrenWithScript(bool = false) const", AS_FUNCTION_OBJLAST(Node_GetChildren_Script<T>), AS_CALL_CDECL_OBJLAST); \
     engine->RegisterObjectMethod(className, "Array<Node@>@ GetChildrenWithScript(const String&in, bool = false) const", AS_FUNCTION_OBJLAST(Node_GetChildren_Script_ClassName<T>), AS_CALL_CDECL_OBJLAST); \
     engine->RegisterObjectMethod(className, "Array<Node@>@ GetChildrenWithScript(const String&in, bool = false) const", AS_FUNCTION_OBJLAST(Node_GetChildren_Script_ClassName<T>), AS_CALL_CDECL_OBJLAST); \
-                                                                                                                                                \
-    /* void Node::GetComponents(PODVector<Component*>& dest, StringHash type, bool recursive = false) const | File: ../Scene/Node.h */          \
+    \
+    /* void Node::GetComponents(PODVector<Component*>& dest, StringHash type, bool recursive = false) const | File: ../Scene/Node.h */ \
     engine->RegisterObjectMethod(className, "Array<Component@>@ GetComponents(const String&in, bool = false) const", AS_FUNCTION_OBJLAST(Node_GetComponents_Type<T>), AS_CALL_CDECL_OBJLAST); \
     engine->RegisterObjectMethod(className, "Array<Component@>@ GetComponents(const String&in, bool = false) const", AS_FUNCTION_OBJLAST(Node_GetComponents_Type<T>), AS_CALL_CDECL_OBJLAST); \
-                                                                                                                                                \
-    /* unsigned Node::GetNumChildren(bool recursive = false) const | File: ../Scene/Node.h */                                                   \
+    \
+    /* unsigned Node::GetNumChildren(bool recursive = false) const | File: ../Scene/Node.h */ \
     engine->RegisterObjectMethod(className, "uint get_numChildren() const", AS_FUNCTION_OBJLAST(Node_GetNumChildren_NonRecursive<T>), AS_CALL_CDECL_OBJLAST); \
     engine->RegisterObjectMethod(className, "uint get_numChildren() const", AS_FUNCTION_OBJLAST(Node_GetNumChildren_NonRecursive<T>), AS_CALL_CDECL_OBJLAST); \
     engine->RegisterObjectMethod(className, "uint get_numAllChildren() const", AS_FUNCTION_OBJLAST(Node_GetNumChildren_Recursive<T>), AS_CALL_CDECL_OBJLAST); \
     engine->RegisterObjectMethod(className, "uint get_numAllChildren() const", AS_FUNCTION_OBJLAST(Node_GetNumChildren_Recursive<T>), AS_CALL_CDECL_OBJLAST); \
-                                                                                                                                                \
-    /* Node* Node::GetChild(unsigned index) const | File: ../Scene/Node.h */                                                                    \
-    engine->RegisterObjectMethod(className, "Node@+ get_children(uint) const", AS_FUNCTION_OBJLAST(Node_GetChild<T>), AS_CALL_CDECL_OBJLAST);   \
-                                                                                                                                                \
-    /* Node* Node::GetChild(const String& name, bool recursive = false) const | File: ../Scene/Node.h */                                        \
+    \
+    /* Node* Node::GetChild(unsigned index) const | File: ../Scene/Node.h */ \
+    engine->RegisterObjectMethod(className, "Node@+ get_children(uint) const", AS_FUNCTION_OBJLAST(Node_GetChild<T>), AS_CALL_CDECL_OBJLAST); \
+    \
+    /* Node* Node::GetChild(const String& name, bool recursive = false) const | File: ../Scene/Node.h */ \
     engine->RegisterObjectMethod(className, "Node@+ get_childrenByName(const String&in) const", AS_FUNCTION_OBJLAST(Node_GetChild_Name_NonRecursive<T>), AS_CALL_CDECL_OBJLAST); \
     engine->RegisterObjectMethod(className, "Node@+ get_childrenByName(const String&in) const", AS_FUNCTION_OBJLAST(Node_GetChild_Name_NonRecursive<T>), AS_CALL_CDECL_OBJLAST); \
     engine->RegisterObjectMethod(className, "Node@+ get_allChildrenByName(const String&in) const", AS_FUNCTION_OBJLAST(Node_GetChild_Name_Recursive<T>), AS_CALL_CDECL_OBJLAST); \
     engine->RegisterObjectMethod(className, "Node@+ get_allChildrenByName(const String&in) const", AS_FUNCTION_OBJLAST(Node_GetChild_Name_Recursive<T>), AS_CALL_CDECL_OBJLAST); \
-                                                                                                                                                \
-    /* const Vector<SharedPtr<Component>>& Node::GetComponents() const | File: ../Scene/Node.h */                                               \
+    \
+    /* const Vector<SharedPtr<Component>>& Node::GetComponents() const | File: ../Scene/Node.h */ \
     engine->RegisterObjectMethod(className, "Component@+ get_components(uint) const", AS_FUNCTION_OBJLAST(Node_GetComponent<T>), AS_CALL_CDECL_OBJLAST); \
     engine->RegisterObjectMethod(className, "Component@+ get_components(uint) const", AS_FUNCTION_OBJLAST(Node_GetComponent<T>), AS_CALL_CDECL_OBJLAST); \
-                                                                                                                                      \
-    /* const VariantMap& Node::GetVars() const | File: ../Scene/Node.h */                                                             \
-    engine->RegisterObjectMethod(className, "VariantMap& get_vars()", AS_FUNCTION_OBJLAST(Node_GetVars<T>), AS_CALL_CDECL_OBJLAST);   \
-                                                                                                                                      \
-    /* Workarounds for Connection that used outside URHO3D_NETWORK define */                                                          \
-    if (URHO3D_NETWORK_DEFINED)                                                                                                       \
-    {                                                                                                                                 \
-        /* void Node::SetOwner(Connection* owner) | File: ../Scene/Node.h */                                                          \
-        engine->RegisterObjectMethod(className, "void SetOwner(Connection@+)", AS_METHOD(T, SetOwner), AS_CALL_THISCALL);             \
-        engine->RegisterObjectMethod(className, "void set_owner(Connection@+)", AS_METHOD(T, SetOwner), AS_CALL_THISCALL);            \
-                                                                                                                                      \
-        /* Connection* Node::GetOwner() const | File: ../Scene/Node.h */                                                              \
-        engine->RegisterObjectMethod(className, "Connection@+ GetOwner() const", AS_METHOD(T, GetOwner), AS_CALL_THISCALL);           \
-        engine->RegisterObjectMethod(className, "Connection@+ get_owner() const", AS_METHOD(T, GetOwner), AS_CALL_THISCALL);          \
-                                                                                                                                      \
-        /* void Node::CleanupConnection(Connection* connection) | File: ../Scene/Node.h */                                            \
+    \
+    /* const VariantMap& Node::GetVars() const | File: ../Scene/Node.h */ \
+    engine->RegisterObjectMethod(className, "VariantMap& get_vars()", AS_FUNCTION_OBJLAST(Node_GetVars<T>), AS_CALL_CDECL_OBJLAST); \
+    \
+    /* Workarounds for Connection that used outside URHO3D_NETWORK define */ \
+    if (URHO3D_NETWORK_DEFINED) \
+    { \
+        /* void Node::SetOwner(Connection* owner) | File: ../Scene/Node.h */ \
+        engine->RegisterObjectMethod(className, "void SetOwner(Connection@+)", AS_METHOD(T, SetOwner), AS_CALL_THISCALL); \
+        engine->RegisterObjectMethod(className, "void set_owner(Connection@+)", AS_METHOD(T, SetOwner), AS_CALL_THISCALL); \
+        \
+        /* Connection* Node::GetOwner() const | File: ../Scene/Node.h */ \
+        engine->RegisterObjectMethod(className, "Connection@+ GetOwner() const", AS_METHOD(T, GetOwner), AS_CALL_THISCALL); \
+        engine->RegisterObjectMethod(className, "Connection@+ get_owner() const", AS_METHOD(T, GetOwner), AS_CALL_THISCALL); \
+        \
+        /* void Node::CleanupConnection(Connection* connection) | File: ../Scene/Node.h */ \
         engine->RegisterObjectMethod(className, "void CleanupConnection(Connection@+)", AS_METHOD(T, CleanupConnection), AS_CALL_THISCALL); \
         engine->RegisterObjectMethod(className, "void CleanupConnection(Connection@+)", AS_METHOD(T, CleanupConnection), AS_CALL_THISCALL); \
     }
     }
 
 
@@ -318,56 +316,54 @@ template <class T> CScriptArray* Scene_GetNodesWithTag(const String& tag, T* ptr
 // template <class T> T* Scene::GetComponent(bool recursive = false) const | File: ../Scene/Node.h
 // template <class T> T* Scene::GetComponent(bool recursive = false) const | File: ../Scene/Node.h
 template <class T> DebugRenderer* Scene_GetDebugRenderer(T* ptr)
 template <class T> DebugRenderer* Scene_GetDebugRenderer(T* ptr)
 {
 {
-    // TODO: Remove conversion
-    return ((Scene*)ptr)->GetComponent<DebugRenderer>();
+    return ptr->template GetComponent<DebugRenderer>();
 }
 }
 
 
 // template <class T> T* Scene::GetComponent(bool recursive = false) const | File: ../Scene/Node.h
 // template <class T> T* Scene::GetComponent(bool recursive = false) const | File: ../Scene/Node.h
 template <class T> Octree* Scene_GetOctree(T* ptr)
 template <class T> Octree* Scene_GetOctree(T* ptr)
 {
 {
-    // TODO: Remove conversion
-    return ((Scene*)ptr)->GetComponent<Octree>();
+    return ptr->template GetComponent<Octree>();
 }
 }
 
 
-#define REGISTER_MEMBERS_MANUAL_PART_Scene()                                                                                                             \
-    /* bool Scene::LoadXML(Deserializer& source) | File: ../Scene/Scene.h */                                                                             \
-    engine->RegisterObjectMethod(className, "bool LoadXML(File@+)", AS_FUNCTION_OBJLAST(Scene_LoadXML_File<T>), AS_CALL_CDECL_OBJLAST);                  \
-    engine->RegisterObjectMethod(className, "bool LoadXML(VectorBuffer&)", AS_FUNCTION_OBJLAST(Scene_LoadXML_VectorBuffer<T>), AS_CALL_CDECL_OBJLAST);   \
-                                                                                                                                                         \
-    /* bool Scene::LoadJSON(Deserializer& source) | File: ../Scene/Scene.h */                                                                            \
-    engine->RegisterObjectMethod(className, "bool LoadJSON(File@+)", AS_FUNCTION_OBJLAST(Scene_LoadJSON_File<T>), AS_CALL_CDECL_OBJLAST);                \
+#define REGISTER_MEMBERS_MANUAL_PART_Scene() \
+    /* bool Scene::LoadXML(Deserializer& source) | File: ../Scene/Scene.h */ \
+    engine->RegisterObjectMethod(className, "bool LoadXML(File@+)", AS_FUNCTION_OBJLAST(Scene_LoadXML_File<T>), AS_CALL_CDECL_OBJLAST); \
+    engine->RegisterObjectMethod(className, "bool LoadXML(VectorBuffer&)", AS_FUNCTION_OBJLAST(Scene_LoadXML_VectorBuffer<T>), AS_CALL_CDECL_OBJLAST); \
+    \
+    /* bool Scene::LoadJSON(Deserializer& source) | File: ../Scene/Scene.h */ \
+    engine->RegisterObjectMethod(className, "bool LoadJSON(File@+)", AS_FUNCTION_OBJLAST(Scene_LoadJSON_File<T>), AS_CALL_CDECL_OBJLAST); \
     engine->RegisterObjectMethod(className, "bool LoadJSON(VectorBuffer&)", AS_FUNCTION_OBJLAST(Scene_LoadJSON_VectorBuffer<T>), AS_CALL_CDECL_OBJLAST); \
     engine->RegisterObjectMethod(className, "bool LoadJSON(VectorBuffer&)", AS_FUNCTION_OBJLAST(Scene_LoadJSON_VectorBuffer<T>), AS_CALL_CDECL_OBJLAST); \
-                                                                                                                                                         \
+    \
     /* Node* Scene::Instantiate(Deserializer& source, const Vector3& position, const Quaternion& rotation, CreateMode mode = REPLICATED) | File: ../Scene/Scene.h */ \
     /* Node* Scene::Instantiate(Deserializer& source, const Vector3& position, const Quaternion& rotation, CreateMode mode = REPLICATED) | File: ../Scene/Scene.h */ \
     engine->RegisterObjectMethod(className, "Node@+ Instantiate(File@+, const Vector3&in, const Quaternion&in, CreateMode = REPLICATED)", AS_FUNCTION_OBJLAST(Scene_Instantiate_File<T>), AS_CALL_CDECL_OBJLAST); \
     engine->RegisterObjectMethod(className, "Node@+ Instantiate(File@+, const Vector3&in, const Quaternion&in, CreateMode = REPLICATED)", AS_FUNCTION_OBJLAST(Scene_Instantiate_File<T>), AS_CALL_CDECL_OBJLAST); \
     engine->RegisterObjectMethod(className, "Node@+ Instantiate(VectorBuffer&, const Vector3&in, const Quaternion&in, CreateMode = REPLICATED)", AS_FUNCTION_OBJLAST(Scene_Instantiate_VectorBuffer<T>), AS_CALL_CDECL_OBJLAST); \
     engine->RegisterObjectMethod(className, "Node@+ Instantiate(VectorBuffer&, const Vector3&in, const Quaternion&in, CreateMode = REPLICATED)", AS_FUNCTION_OBJLAST(Scene_Instantiate_VectorBuffer<T>), AS_CALL_CDECL_OBJLAST); \
-                                                                                                                                                         \
+    \
     /* Node* Scene::InstantiateXML(Deserializer& source, const Vector3& position, const Quaternion& rotation, CreateMode mode = REPLICATED) | File: ../Scene/Scene.h */ \
     /* Node* Scene::InstantiateXML(Deserializer& source, const Vector3& position, const Quaternion& rotation, CreateMode mode = REPLICATED) | File: ../Scene/Scene.h */ \
     engine->RegisterObjectMethod(className, "Node@+ InstantiateXML(File@+, const Vector3&in, const Quaternion&in, CreateMode = REPLICATED)", AS_FUNCTION_OBJLAST(Scene_InstantiateXML_File<T>), AS_CALL_CDECL_OBJLAST); \
     engine->RegisterObjectMethod(className, "Node@+ InstantiateXML(File@+, const Vector3&in, const Quaternion&in, CreateMode = REPLICATED)", AS_FUNCTION_OBJLAST(Scene_InstantiateXML_File<T>), AS_CALL_CDECL_OBJLAST); \
     engine->RegisterObjectMethod(className, "Node@+ InstantiateXML(VectorBuffer&, const Vector3&in, const Quaternion&in, CreateMode = REPLICATED)", AS_FUNCTION_OBJLAST(Scene_InstantiateXML_VectorBuffer<T>), AS_CALL_CDECL_OBJLAST); \
     engine->RegisterObjectMethod(className, "Node@+ InstantiateXML(VectorBuffer&, const Vector3&in, const Quaternion&in, CreateMode = REPLICATED)", AS_FUNCTION_OBJLAST(Scene_InstantiateXML_VectorBuffer<T>), AS_CALL_CDECL_OBJLAST); \
-                                                                                                                                                         \
+    \
     /*Node* Scene::InstantiateJSON(Deserializer& source, const Vector3& position, const Quaternion& rotation, CreateMode mode = REPLICATED) | File: ../Scene/Scene.h */ \
     /*Node* Scene::InstantiateJSON(Deserializer& source, const Vector3& position, const Quaternion& rotation, CreateMode mode = REPLICATED) | File: ../Scene/Scene.h */ \
     engine->RegisterObjectMethod(className, "Node@+ InstantiateJSON(File@+, const Vector3&in, const Quaternion&in, CreateMode = REPLICATED)", AS_FUNCTION_OBJLAST(Scene_InstantiateJSON_File<T>), AS_CALL_CDECL_OBJLAST); \
     engine->RegisterObjectMethod(className, "Node@+ InstantiateJSON(File@+, const Vector3&in, const Quaternion&in, CreateMode = REPLICATED)", AS_FUNCTION_OBJLAST(Scene_InstantiateJSON_File<T>), AS_CALL_CDECL_OBJLAST); \
     engine->RegisterObjectMethod(className, "Node@+ InstantiateJSON(VectorBuffer&, const Vector3&in, const Quaternion&in, CreateMode = REPLICATED)", AS_FUNCTION_OBJLAST(Scene_InstantiateJSON_VectorBuffer<T>), AS_CALL_CDECL_OBJLAST); \
     engine->RegisterObjectMethod(className, "Node@+ InstantiateJSON(VectorBuffer&, const Vector3&in, const Quaternion&in, CreateMode = REPLICATED)", AS_FUNCTION_OBJLAST(Scene_InstantiateJSON_VectorBuffer<T>), AS_CALL_CDECL_OBJLAST); \
-                                                                                                                                                         \
+    \
     /* Node* Scene::InstantiateXML(const XMLElement& source, const Vector3& position, const Quaternion& rotation, CreateMode mode = REPLICATED) | File: ../Scene/Scene.h */ \
     /* Node* Scene::InstantiateXML(const XMLElement& source, const Vector3& position, const Quaternion& rotation, CreateMode mode = REPLICATED) | File: ../Scene/Scene.h */ \
     engine->RegisterObjectMethod(className, "Node@+ InstantiateXML(XMLFile@+, const Vector3&in, const Quaternion&in, CreateMode = REPLICATED)", AS_FUNCTION_OBJLAST(Scene_InstantiateXML_XMLFile<T>), AS_CALL_CDECL_OBJLAST); \
     engine->RegisterObjectMethod(className, "Node@+ InstantiateXML(XMLFile@+, const Vector3&in, const Quaternion&in, CreateMode = REPLICATED)", AS_FUNCTION_OBJLAST(Scene_InstantiateXML_XMLFile<T>), AS_CALL_CDECL_OBJLAST); \
-                                                                                                                                                         \
+    \
     /* Node* Scene::InstantiateJSON(const JSONValue& source, const Vector3& position, const Quaternion& rotation, CreateMode mode = REPLICATED)  | File: ../Scene/Scene.h */ \
     /* Node* Scene::InstantiateJSON(const JSONValue& source, const Vector3& position, const Quaternion& rotation, CreateMode mode = REPLICATED)  | File: ../Scene/Scene.h */ \
     engine->RegisterObjectMethod(className, "Node@+ InstantiateJSON(JSONFile@+, const Vector3&in, const Quaternion&in, CreateMode = REPLICATED)", AS_FUNCTION_OBJLAST(Scene_InstantiateJSON_JSONFile<T>), AS_CALL_CDECL_OBJLAST); \
     engine->RegisterObjectMethod(className, "Node@+ InstantiateJSON(JSONFile@+, const Vector3&in, const Quaternion&in, CreateMode = REPLICATED)", AS_FUNCTION_OBJLAST(Scene_InstantiateJSON_JSONFile<T>), AS_CALL_CDECL_OBJLAST); \
-                                                                                                                                                         \
-    /* bool Scene::GetNodesWithTag(PODVector<Node*>& dest, const String& tag) const | File: ../Scene/Scene.h */                                          \
+    \
+    /* bool Scene::GetNodesWithTag(PODVector<Node*>& dest, const String& tag) const | File: ../Scene/Scene.h */ \
     engine->RegisterObjectMethod(className, "Array<Node@>@ GetNodesWithTag(const String&in) const", AS_FUNCTION_OBJLAST(Scene_GetNodesWithTag<T>), AS_CALL_CDECL_OBJLAST); \
     engine->RegisterObjectMethod(className, "Array<Node@>@ GetNodesWithTag(const String&in) const", AS_FUNCTION_OBJLAST(Scene_GetNodesWithTag<T>), AS_CALL_CDECL_OBJLAST); \
-                                                                                                                                                         \
-    /* template <class T> T* Scene::GetComponent(bool recursive = false) const | File: ../Scene/Node.h */                                                \
+    \
+    /* template <class T> T* Scene::GetComponent(bool recursive = false) const | File: ../Scene/Node.h */ \
     engine->RegisterObjectMethod(className, "DebugRenderer@+ get_debugRenderer() const", AS_FUNCTION_OBJLAST(Scene_GetDebugRenderer<T>), AS_CALL_CDECL_OBJLAST); \
     engine->RegisterObjectMethod(className, "DebugRenderer@+ get_debugRenderer() const", AS_FUNCTION_OBJLAST(Scene_GetDebugRenderer<T>), AS_CALL_CDECL_OBJLAST); \
-    engine->RegisterObjectMethod(className, "Octree@+ get_octree() const", AS_FUNCTION_OBJLAST(Scene_GetOctree<T>), AS_CALL_CDECL_OBJLAST);              \
-                                                                                                                                                         \
-    /* Workaround Doxygen bug: have no const flag in xml */                                                                                              \
+    engine->RegisterObjectMethod(className, "Octree@+ get_octree() const", AS_FUNCTION_OBJLAST(Scene_GetOctree<T>), AS_CALL_CDECL_OBJLAST); \
+    \
+    /* Workaround Doxygen bug: have no const flag in xml (but already registered in template because string GetSignature(const MethodAnalyzer& method) ignores const) */ \
     /* Component* Node::GetComponent(StringHash type, bool recursive=false) const | File: ../Scene/Scene.h */ \
     /* Component* Node::GetComponent(StringHash type, bool recursive=false) const | File: ../Scene/Scene.h */ \
-    /*engine->RegisterObjectMethod(className, "Component@+ GetComponent(StringHash, bool = false) const", AS_METHODPR(Scene, GetComponent, (StringHash, bool) const, Component*), AS_CALL_THISCALL); */ \
+    /*engine->RegisterObjectMethod(className, "Component@+ GetComponent(StringHash, bool = false) const", AS_METHODPR(Scene, GetComponent, (StringHash, bool) const, Component*), AS_CALL_THISCALL);*/ \
     /* bool Node::SaveXML(XMLElement &dest) const override | File: ../Scene/Scene.h */ \
     /* bool Node::SaveXML(XMLElement &dest) const override | File: ../Scene/Scene.h */ \
-    /*engine->RegisterObjectMethod(className, "bool SaveXML(XMLElement&) const", AS_METHODPR(Scene, SaveXML, (XMLElement &) const, bool), AS_CALL_THISCALL); */ \
+    /*engine->RegisterObjectMethod(className, "bool SaveXML(XMLElement&) const", AS_METHODPR(Scene, SaveXML, (XMLElement &) const, bool), AS_CALL_THISCALL);*/ \
     /* bool Node::SaveJSON(JSONValue &dest) const override | File: ../Scene/Scene.h */ \
     /* bool Node::SaveJSON(JSONValue &dest) const override | File: ../Scene/Scene.h */ \
     /*engine->RegisterObjectMethod(className, "bool SaveJSON(JSONValue&) const", AS_METHODPR(Scene, SaveJSON, (JSONValue &) const, bool), AS_CALL_THISCALL);*/
     /*engine->RegisterObjectMethod(className, "bool SaveJSON(JSONValue&) const", AS_METHODPR(Scene, SaveJSON, (JSONValue &) const, bool), AS_CALL_THISCALL);*/
 
 
@@ -385,18 +381,18 @@ template <class T> void Bone_SetNode(Node* node, T* ptr)
     ptr->node_ = node;
     ptr->node_ = node;
 }
 }
 
 
-#define REGISTER_MEMBERS_MANUAL_PART_Bone()                                                                                          \
-    /* WeakPtr<Node> Bone::node_ | File: ../Graphics/Skeleton.h */                                                                   \
-    engine->RegisterObjectMethod(className, "void set_node(Node@+)", AS_FUNCTION_OBJLAST(Bone_SetNode<T>), AS_CALL_CDECL_OBJLAST);   \
+#define REGISTER_MEMBERS_MANUAL_PART_Bone() \
+    /* WeakPtr<Node> Bone::node_ | File: ../Graphics/Skeleton.h */ \
+    engine->RegisterObjectMethod(className, "void set_node(Node@+)", AS_FUNCTION_OBJLAST(Bone_SetNode<T>), AS_CALL_CDECL_OBJLAST); \
     engine->RegisterObjectMethod(className, "Node@+ get_node() const", AS_FUNCTION_OBJLAST(Bone_GetNode<T>), AS_CALL_CDECL_OBJLAST);
     engine->RegisterObjectMethod(className, "Node@+ get_node() const", AS_FUNCTION_OBJLAST(Bone_GetNode<T>), AS_CALL_CDECL_OBJLAST);
 
 
 // ========================================================================================
 // ========================================================================================
 
 
-#define REGISTER_MEMBERS_MANUAL_PART_Component()                                                            \
-    /* Workarounds for Connection that used outside URHO3D_NETWORK define */                                \
-    if (URHO3D_NETWORK_DEFINED)                                                                             \
-    {                                                                                                       \
-        /* void Component::CleanupConnection(Connection* connection) | File: ../Scene/Component.h */        \
+#define REGISTER_MEMBERS_MANUAL_PART_Component() \
+    /* Workarounds for Connection that used outside URHO3D_NETWORK define */ \
+    if (URHO3D_NETWORK_DEFINED) \
+    { \
+        /* void Component::CleanupConnection(Connection* connection) | File: ../Scene/Component.h */ \
         engine->RegisterObjectMethod(className, "void CleanupConnection(Connection@+)", AS_METHODPR(T, CleanupConnection, (Connection*), void), AS_CALL_THISCALL); \
         engine->RegisterObjectMethod(className, "void CleanupConnection(Connection@+)", AS_METHODPR(T, CleanupConnection, (Connection*), void), AS_CALL_THISCALL); \
     }
     }
 
 

+ 12 - 14
Source/Urho3D/AngelScript/Manual_UI.h

@@ -53,8 +53,8 @@ template <class T> bool Font_SaveXML_FileName(const String& fileName, int pointS
     return ptr->SaveXML(file, pointSize, usedGlyphs, indentation);
     return ptr->SaveXML(file, pointSize, usedGlyphs, indentation);
 }
 }
 
 
-#define REGISTER_MEMBERS_MANUAL_PART_Font()                                                                                                          \
-    /* bool Font::SaveXML(Serializer& dest, int pointSize, bool usedGlyphs = false, const String& indentation = "\t") | File: ../UI/Font.h */        \
+#define REGISTER_MEMBERS_MANUAL_PART_Font() \
+    /* bool Font::SaveXML(Serializer& dest, int pointSize, bool usedGlyphs = false, const String& indentation = "\t") | File: ../UI/Font.h */ \
     engine->RegisterObjectMethod(className, "bool SaveXML(File@+, int, bool usedGlyphs = false, const String&in indentation = \"\t\")", AS_FUNCTION_OBJLAST(Font_SaveXML_File<T>), AS_CALL_CDECL_OBJLAST); \
     engine->RegisterObjectMethod(className, "bool SaveXML(File@+, int, bool usedGlyphs = false, const String&in indentation = \"\t\")", AS_FUNCTION_OBJLAST(Font_SaveXML_File<T>), AS_CALL_CDECL_OBJLAST); \
     engine->RegisterObjectMethod(className, "bool SaveXML(VectorBuffer&, int, bool usedGlyphs = false, const String&in indentation = \"\t\")", AS_FUNCTION_OBJLAST(Font_SaveXML_VectorBuffer<T>), AS_CALL_CDECL_OBJLAST); \
     engine->RegisterObjectMethod(className, "bool SaveXML(VectorBuffer&, int, bool usedGlyphs = false, const String&in indentation = \"\t\")", AS_FUNCTION_OBJLAST(Font_SaveXML_VectorBuffer<T>), AS_CALL_CDECL_OBJLAST); \
     engine->RegisterObjectMethod(className, "bool SaveXML(const String&in, int, bool usedGlyphs = false, const String&in indentation = \"\t\")", AS_FUNCTION_OBJLAST(Font_SaveXML_FileName<T>), AS_CALL_CDECL_OBJLAST);
     engine->RegisterObjectMethod(className, "bool SaveXML(const String&in, int, bool usedGlyphs = false, const String&in indentation = \"\t\")", AS_FUNCTION_OBJLAST(Font_SaveXML_FileName<T>), AS_CALL_CDECL_OBJLAST);
@@ -104,15 +104,13 @@ template <class T> UIElement* UIElement_LoadChildXML(XMLFile* file, XMLFile* sty
 // bool UIElement::SaveXML(Serializer& dest, const String& indentation = "\t") const | File: ../UI/UIElement.h
 // bool UIElement::SaveXML(Serializer& dest, const String& indentation = "\t") const | File: ../UI/UIElement.h
 template <class T> bool UIElement_SaveXML_File(File* file, const String& indentation, T* ptr)
 template <class T> bool UIElement_SaveXML_File(File* file, const String& indentation, T* ptr)
 {
 {
-    // TODO: remove converison
-    return file && ((UIElement*)ptr)->SaveXML(*file, indentation);
+    return file && ptr->SaveXML(*file, indentation);
 }
 }
 
 
 // bool UIElement::SaveXML(Serializer& dest, const String& indentation = "\t") const | File: ../UI/UIElement.h
 // bool UIElement::SaveXML(Serializer& dest, const String& indentation = "\t") const | File: ../UI/UIElement.h
 template <class T> bool UIElement_SaveXML_VectorBuffer(VectorBuffer& buffer, const String& indentation, T* ptr)
 template <class T> bool UIElement_SaveXML_VectorBuffer(VectorBuffer& buffer, const String& indentation, T* ptr)
 {
 {
-    // TODO: remove converison
-    return ((UIElement*)ptr)->SaveXML(buffer, indentation);
+    return ptr->SaveXML(buffer, indentation);
 }
 }
 
 
 // void UIElement::RemoveChildAtIndex(unsigned index) | File: ../UI/UIElement.h
 // void UIElement::RemoveChildAtIndex(unsigned index) | File: ../UI/UIElement.h
@@ -266,21 +264,21 @@ template <class T> void UI_SetFocusElement(UIElement* element, UI* ptr)
     ptr->SetFocusElement(element);
     ptr->SetFocusElement(element);
 }
 }
 
 
-#define REGISTER_MEMBERS_MANUAL_PART_UI()                                                                                      \
-    /* SharedPtr<UIElement> UI::LoadLayout(Deserializer& source, XMLFile* styleFile = nullptr) | File: ../UI/UI.h */           \
+#define REGISTER_MEMBERS_MANUAL_PART_UI() \
+    /* SharedPtr<UIElement> UI::LoadLayout(Deserializer& source, XMLFile* styleFile = nullptr) | File: ../UI/UI.h */ \
     engine->RegisterObjectMethod(className, "UIElement@ LoadLayout(File@+)", AS_FUNCTION_OBJLAST(UI_LoadLayout_File<T>), AS_CALL_CDECL_OBJLAST); \
     engine->RegisterObjectMethod(className, "UIElement@ LoadLayout(File@+)", AS_FUNCTION_OBJLAST(UI_LoadLayout_File<T>), AS_CALL_CDECL_OBJLAST); \
     engine->RegisterObjectMethod(className, "UIElement@ LoadLayout(File@+, XMLFile@+)", AS_FUNCTION_OBJLAST(UI_LoadLayout_File_Style<T>), AS_CALL_CDECL_OBJLAST); \
     engine->RegisterObjectMethod(className, "UIElement@ LoadLayout(File@+, XMLFile@+)", AS_FUNCTION_OBJLAST(UI_LoadLayout_File_Style<T>), AS_CALL_CDECL_OBJLAST); \
     engine->RegisterObjectMethod(className, "UIElement@ LoadLayout(VectorBuffer&)", AS_FUNCTION_OBJLAST(UI_LoadLayout_VectorBuffer<T>), AS_CALL_CDECL_OBJLAST); \
     engine->RegisterObjectMethod(className, "UIElement@ LoadLayout(VectorBuffer&)", AS_FUNCTION_OBJLAST(UI_LoadLayout_VectorBuffer<T>), AS_CALL_CDECL_OBJLAST); \
     engine->RegisterObjectMethod(className, "UIElement@ LoadLayout(VectorBuffer&, XMLFile@+)", AS_FUNCTION_OBJLAST(UI_LoadLayout_VectorBuffer_Style<T>), AS_CALL_CDECL_OBJLAST); \
     engine->RegisterObjectMethod(className, "UIElement@ LoadLayout(VectorBuffer&, XMLFile@+)", AS_FUNCTION_OBJLAST(UI_LoadLayout_VectorBuffer_Style<T>), AS_CALL_CDECL_OBJLAST); \
-                                                                                                                               \
-    /* bool UI::SaveLayout(Serializer& dest, UIElement* element) | File: ../UI/UI.h */                                         \
+    \
+    /* bool UI::SaveLayout(Serializer& dest, UIElement* element) | File: ../UI/UI.h */ \
     engine->RegisterObjectMethod(className, "bool SaveLayout(File@+, UIElement@+)", AS_FUNCTION_OBJLAST(UI_SaveLayout_File<T>), AS_CALL_CDECL_OBJLAST); \
     engine->RegisterObjectMethod(className, "bool SaveLayout(File@+, UIElement@+)", AS_FUNCTION_OBJLAST(UI_SaveLayout_File<T>), AS_CALL_CDECL_OBJLAST); \
     engine->RegisterObjectMethod(className, "bool SaveLayout(VectorBuffer&, UIElement@+)", AS_FUNCTION_OBJLAST(UI_SaveLayout_VectorBuffer<T>), AS_CALL_CDECL_OBJLAST); \
     engine->RegisterObjectMethod(className, "bool SaveLayout(VectorBuffer&, UIElement@+)", AS_FUNCTION_OBJLAST(UI_SaveLayout_VectorBuffer<T>), AS_CALL_CDECL_OBJLAST); \
-                                                                                                                               \
-    /* const Vector<UIElement*> UI::GetDragElements() | File: ../UI/UI.h */                                                    \
+    \
+    /* const Vector<UIElement*> UI::GetDragElements() | File: ../UI/UI.h */ \
     engine->RegisterObjectMethod(className, "const Array<UIElement@>@ GetDragElements()", AS_FUNCTION_OBJLAST(UI_GetDragElements<T>), AS_CALL_CDECL_OBJLAST); \
     engine->RegisterObjectMethod(className, "const Array<UIElement@>@ GetDragElements()", AS_FUNCTION_OBJLAST(UI_GetDragElements<T>), AS_CALL_CDECL_OBJLAST); \
-                                                                                                                               \
-    /* void UI::SetFocusElement(UIElement* element, bool byKey = false) | File: ../UI/UI.h */                                  \
+    \
+    /* void UI::SetFocusElement(UIElement* element, bool byKey = false) | File: ../UI/UI.h */ \
     engine->RegisterObjectMethod(className, "void set_focusElement(UIElement@+)", AS_FUNCTION_OBJLAST(UI_SetFocusElement<T>), AS_CALL_CDECL_OBJLAST);
     engine->RegisterObjectMethod(className, "void set_focusElement(UIElement@+)", AS_FUNCTION_OBJLAST(UI_SetFocusElement<T>), AS_CALL_CDECL_OBJLAST);
 
 
 // ========================================================================================
 // ========================================================================================

+ 5 - 5
Source/Urho3D/AngelScript/Manual_Urho2D.h

@@ -40,8 +40,8 @@ template <class T> RigidBody2D* PhysicsRaycastResult2D_GetBody(T* ptr)
     return ptr->body_;
     return ptr->body_;
 }
 }
 
 
-#define REGISTER_MEMBERS_MANUAL_PART_PhysicsRaycastResult2D()                                           \
-    /* RigidBody2D* PhysicsRaycastResult2D::body_ | File: ../Urho2D/PhysicsWorld2D.h */                 \
+#define REGISTER_MEMBERS_MANUAL_PART_PhysicsRaycastResult2D() \
+    /* RigidBody2D* PhysicsRaycastResult2D::body_ | File: ../Urho2D/PhysicsWorld2D.h */ \
     engine->RegisterObjectMethod(className, "RigidBody2D@+ get_body() const", AS_FUNCTION_OBJLAST(PhysicsRaycastResult2D_GetBody<T>), AS_CALL_CDECL_OBJLAST);
     engine->RegisterObjectMethod(className, "RigidBody2D@+ get_body() const", AS_FUNCTION_OBJLAST(PhysicsRaycastResult2D_GetBody<T>), AS_CALL_CDECL_OBJLAST);
 
 
 // ========================================================================================
 // ========================================================================================
@@ -70,13 +70,13 @@ template <class T> CScriptArray* PhysicsWorld2D_GetRigidBodies(const Rect& aabb,
     return VectorToHandleArray<RigidBody2D>(results, "Array<RigidBody2D@>");
     return VectorToHandleArray<RigidBody2D>(results, "Array<RigidBody2D@>");
 }
 }
 
 
-#define REGISTER_MEMBERS_MANUAL_PART_PhysicsWorld2D()                                             \
+#define REGISTER_MEMBERS_MANUAL_PART_PhysicsWorld2D() \
     /* void PhysicsWorld2D::Raycast(PODVector<PhysicsRaycastResult2D>& results, const Vector2& startPoint, const Vector2& endPoint, unsigned collisionMask = M_MAX_UNSIGNED) */ \
     /* void PhysicsWorld2D::Raycast(PODVector<PhysicsRaycastResult2D>& results, const Vector2& startPoint, const Vector2& endPoint, unsigned collisionMask = M_MAX_UNSIGNED) */ \
     engine->RegisterObjectMethod(className, "Array<PhysicsRaycastResult2D>@ Raycast(const Vector2&, const Vector2&, uint = 0xffff)", AS_FUNCTION_OBJLAST(PhysicsWorld2D_Raycast<T>), AS_CALL_CDECL_OBJLAST); \
     engine->RegisterObjectMethod(className, "Array<PhysicsRaycastResult2D>@ Raycast(const Vector2&, const Vector2&, uint = 0xffff)", AS_FUNCTION_OBJLAST(PhysicsWorld2D_Raycast<T>), AS_CALL_CDECL_OBJLAST); \
-                                                                                                  \
+    \
     /* void PhysicsWorld2D::RaycastSingle(PhysicsRaycastResult2D& result, const Vector2& startPoint, const Vector2& endPoint, unsigned collisionMask = M_MAX_UNSIGNED) | File: ../Urho2D/PhysicsWorld2D.h */ \
     /* void PhysicsWorld2D::RaycastSingle(PhysicsRaycastResult2D& result, const Vector2& startPoint, const Vector2& endPoint, unsigned collisionMask = M_MAX_UNSIGNED) | File: ../Urho2D/PhysicsWorld2D.h */ \
     engine->RegisterObjectMethod(className, "PhysicsRaycastResult2D RaycastSingle(const Vector2&, const Vector2&, uint = 0xffff)", AS_FUNCTION_OBJLAST(PhysicsWorld2D_RaycastSingle<T>), AS_CALL_CDECL_OBJLAST); \
     engine->RegisterObjectMethod(className, "PhysicsRaycastResult2D RaycastSingle(const Vector2&, const Vector2&, uint = 0xffff)", AS_FUNCTION_OBJLAST(PhysicsWorld2D_RaycastSingle<T>), AS_CALL_CDECL_OBJLAST); \
-                                                                                                  \
+    \
     /* void PhysicsWorld2D::GetRigidBodies(PODVector<RigidBody2D*>& results, const Rect& aabb, unsigned collisionMask = M_MAX_UNSIGNED) | File: ../Urho2D/PhysicsWorld2D.h */ \
     /* void PhysicsWorld2D::GetRigidBodies(PODVector<RigidBody2D*>& results, const Rect& aabb, unsigned collisionMask = M_MAX_UNSIGNED) | File: ../Urho2D/PhysicsWorld2D.h */ \
     engine->RegisterObjectMethod(className, "Array<RigidBody2D@>@ GetRigidBodies(const Rect&in, uint = 0xffff)", AS_FUNCTION_OBJLAST(PhysicsWorld2D_GetRigidBodies<T>), AS_CALL_CDECL_OBJLAST);
     engine->RegisterObjectMethod(className, "Array<RigidBody2D@>@ GetRigidBodies(const Rect&in, uint = 0xffff)", AS_FUNCTION_OBJLAST(PhysicsWorld2D_GetRigidBodies<T>), AS_CALL_CDECL_OBJLAST);
 
 

+ 2 - 0
Source/Urho3D/Graphics/Material.h

@@ -123,6 +123,8 @@ public:
     /// Save resource. Return true if successful.
     /// Save resource. Return true if successful.
     bool Save(Serializer& dest) const override;
     bool Save(Serializer& dest) const override;
 
 
+    using Resource::Load;
+
     /// Load from an XML element. Return true if successful.
     /// Load from an XML element. Return true if successful.
     bool Load(const XMLElement& source);
     bool Load(const XMLElement& source);
     /// Save to an XML element. Return true if successful.
     /// Save to an XML element. Return true if successful.

+ 2 - 0
Source/Urho3D/Graphics/ParticleEffect.h

@@ -127,6 +127,8 @@ public:
     /// Save resource. Return true if successful.
     /// Save resource. Return true if successful.
     bool Save(Serializer& dest) const override;
     bool Save(Serializer& dest) const override;
 
 
+    using Resource::Load;
+
     /// Save resource to XMLElement. Return true if successful.
     /// Save resource to XMLElement. Return true if successful.
     bool Save(XMLElement& dest) const;
     bool Save(XMLElement& dest) const;
     /// Load resource from XMLElement synchronously. Return true if successful.
     /// Load resource from XMLElement synchronously. Return true if successful.

+ 3 - 2
Source/Urho3D/UI/Menu.h

@@ -32,8 +32,6 @@ class URHO3D_API Menu : public Button
 {
 {
     URHO3D_OBJECT(Menu, Button);
     URHO3D_OBJECT(Menu, Button);
 
 
-    using UIElement::LoadXML;
-
 public:
 public:
     /// Construct.
     /// Construct.
     explicit Menu(Context* context);
     explicit Menu(Context* context);
@@ -43,6 +41,9 @@ public:
     /// @nobind
     /// @nobind
     static void RegisterObject(Context* context);
     static void RegisterObject(Context* context);
 
 
+    using UIElement::LoadXML;
+    using UIElement::SaveXML;
+
     /// Load from XML data with style. Return true if successful.
     /// Load from XML data with style. Return true if successful.
     bool LoadXML(const XMLElement& source, XMLFile* styleFile) override;
     bool LoadXML(const XMLElement& source, XMLFile* styleFile) override;
     /// Save as XML data. Return true if successful.
     /// Save as XML data. Return true if successful.