From 933ccbba6244cd8aefb04dadf8324be2442eb858 Mon Sep 17 00:00:00 2001 From: Mario Zechner Date: Sat, 3 Sep 2022 12:52:50 +0200 Subject: [PATCH] [godot] Fix compilation for latest 4.0 master commit. --- spine-godot/spine_godot/SpineBone.cpp | 8 ++++---- spine-godot/spine_godot/SpineBoneNode.cpp | 4 ++++ spine-godot/spine_godot/SpineEditorPlugin.cpp | 2 +- spine-godot/spine_godot/SpineSprite.cpp | 8 ++++++-- 4 files changed, 15 insertions(+), 7 deletions(-) diff --git a/spine-godot/spine_godot/SpineBone.cpp b/spine-godot/spine_godot/SpineBone.cpp index 1f4777d15..a0994bb52 100644 --- a/spine-godot/spine_godot/SpineBone.cpp +++ b/spine-godot/spine_godot/SpineBone.cpp @@ -410,7 +410,7 @@ void SpineBone::set_active(bool v) { Transform2D SpineBone::get_transform() { SPINE_CHECK(get_spine_object(), Transform2D()) Transform2D transform; - transform.rotate(Math::deg2rad(get_rotation())); + transform.rotate(spine::MathUtil::Deg_Rad * get_rotation()); transform.scale(Size2(get_scale_x(), get_scale_y())); transform.set_origin(Vector2(get_x(), get_y())); return transform; @@ -419,7 +419,7 @@ Transform2D SpineBone::get_transform() { void SpineBone::set_transform(Transform2D transform) { SPINE_CHECK(get_spine_object(), ) Vector2 position = transform.get_origin(); - float rotation = Math::rad2deg(transform.get_rotation()); + float rotation = spine::MathUtil::Rad_Deg * transform.get_rotation(); Vector2 scale = transform.get_scale(); set_x(position.x); @@ -436,7 +436,7 @@ Transform2D SpineBone::get_global_transform() { if (!get_spine_owner()) return get_transform(); if (!get_spine_owner()->is_visible_in_tree()) return get_transform(); Transform2D local; - local.rotate(Math::deg2rad(get_world_rotation_x())); + local.rotate(spine::MathUtil::Deg_Rad * get_world_rotation_x()); local.scale(Vector2(get_world_scale_x(), get_world_scale_y())); local.set_origin(Vector2(get_world_x(), get_world_y())); return get_spine_owner()->get_global_transform() * local; @@ -452,7 +452,7 @@ void SpineBone::set_global_transform(Transform2D transform) { Transform2D inverse_sprite_transform = get_spine_owner()->get_global_transform().affine_inverse(); transform = inverse_sprite_transform * transform; Vector2 position = transform.get_origin(); - float rotation = Math::rad2deg(transform.get_rotation()); + float rotation = spine::MathUtil::Rad_Deg * transform.get_rotation(); Vector2 scale = transform.get_scale(); Vector2 local_position = position; float local_rotation = bone->worldToLocalRotation(rotation) - 180; diff --git a/spine-godot/spine_godot/SpineBoneNode.cpp b/spine-godot/spine_godot/SpineBoneNode.cpp index 3ba3a5c40..f9f0b0c21 100644 --- a/spine-godot/spine_godot/SpineBoneNode.cpp +++ b/spine-godot/spine_godot/SpineBoneNode.cpp @@ -141,7 +141,11 @@ bool SpineBoneNode::_set(const StringName &property, const Variant &value) { void SpineBoneNode::on_world_transforms_changed(const Variant &_sprite) { SpineSprite *sprite = cast_to(_sprite.operator Object *()); update_transform(sprite); +#if VERSION_MAJOR > 3 + queue_redraw(); +#else update(); +#endif } void SpineBoneNode::update_transform(SpineSprite *sprite) { diff --git a/spine-godot/spine_godot/SpineEditorPlugin.cpp b/spine-godot/spine_godot/SpineEditorPlugin.cpp index 359a702f9..e5cbeeeb0 100644 --- a/spine-godot/spine_godot/SpineEditorPlugin.cpp +++ b/spine-godot/spine_godot/SpineEditorPlugin.cpp @@ -253,7 +253,7 @@ void SpineEditorPropertyAnimationMix::_bind_methods() { void SpineEditorPropertyAnimationMix::data_changed(const String &property, const Variant &value, const String &name, bool changing) { auto mix = Object::cast_to(get_edited_object()->get(get_edited_property())); - UndoRedo *undo_redo = EditorNode::get_undo_redo(); + auto undo_redo = EditorNode::get_undo_redo(); undo_redo->create_action("Set mix property " + property); undo_redo->add_do_property(mix, property, value); undo_redo->add_undo_property(mix, property, mix->get(property)); diff --git a/spine-godot/spine_godot/SpineSprite.cpp b/spine-godot/spine_godot/SpineSprite.cpp index 86b07560f..9eb9ceb7c 100644 --- a/spine-godot/spine_godot/SpineSprite.cpp +++ b/spine-godot/spine_godot/SpineSprite.cpp @@ -483,7 +483,11 @@ void SpineSprite::update_skeleton(float delta) { if (modified_bones) skeleton->update_world_transform(); sort_slot_nodes(); update_meshes(skeleton); +#if VERSION_MAJOR > 3 + queue_redraw(); +#else update(); +#endif } static void clear_mesh_instance(MeshInstance2D *mesh_instance) { @@ -794,7 +798,7 @@ void SpineSprite::draw() { scratch_points.set(2, Vector2(bone_length, 0)); scratch_points.set(3, Vector2(0, -debug_bones_thickness)); scratch_points.set(4, Vector2(-debug_bones_thickness, 0)); - Transform2D bone_transform(Math::deg2rad(bone->getWorldRotationX()), Vector2(bone->getWorldX(), bone->getWorldY())); + Transform2D bone_transform(spine::MathUtil::Deg_Rad * bone->getWorldRotationX(), Vector2(bone->getWorldX(), bone->getWorldY())); bone_transform.scale_basis(Vector2(bone->getWorldScaleX(), bone->getWorldScaleY())); auto mouse_local_position = bone_transform.affine_inverse().xform(mouse_position); if (GEOMETRY2D::is_point_in_polygon(mouse_local_position, scratch_points)) { @@ -858,7 +862,7 @@ void SpineSprite::draw() { } void SpineSprite::draw_bone(spine::Bone *bone, const Color &color) { - draw_set_transform(Vector2(bone->getWorldX(), bone->getWorldY()), Math::deg2rad(bone->getWorldRotationX()), Vector2(bone->getWorldScaleX(), bone->getWorldScaleY())); + draw_set_transform(Vector2(bone->getWorldX(), bone->getWorldY()), spine::MathUtil::Deg_Rad * bone->getWorldRotationX(), Vector2(bone->getWorldScaleX(), bone->getWorldScaleY())); float bone_length = bone->getData().getLength(); if (bone_length == 0) bone_length = debug_bones_thickness * 2; Vector points;