From 2f32a3454ce6d493eb6f6b8fa08be9e3170271a2 Mon Sep 17 00:00:00 2001 From: Emmanouil Papadeas Date: Mon, 10 Jul 2023 03:57:10 +0300 Subject: [PATCH] Fix `Camera2D.rotating` not being converted and reversed properly Godot 3's Camera2D `rotating = true` and `rotating = false` are supposed to be converted and reversed to `ignore_rotation = false` and `ignore_rotation = true` respectively, but this wasn't the case before this PR, as the project converted was failing to properly read the `true` and `false` strings, thus resulting in `ignore_rotation = true` in all cases. (cherry picked from commit 256b99ca40dda4b187dadea8302ca3578281af85) --- editor/project_converter_3_to_4.cpp | 9 +++++---- 1 file changed, 5 insertions(+), 4 deletions(-) diff --git a/editor/project_converter_3_to_4.cpp b/editor/project_converter_3_to_4.cpp index 3af8615b0cd..b2994f3065c 100644 --- a/editor/project_converter_3_to_4.cpp +++ b/editor/project_converter_3_to_4.cpp @@ -2241,9 +2241,10 @@ void ProjectConverter3To4::process_gdscript_line(String &line, const RegExContai // rotating = true -> ignore_rotation = false # reversed "rotating" for Camera2D if (contains_function_call(line, "rotating")) { - int start = line.find("rotating"); + String function_name = "rotating"; + int start = line.find(function_name); bool foundNextEqual = false; - String line_to_check = line.substr(start + String("rotating").length()); + String line_to_check = line.substr(start + function_name.length()); String assigned_value; for (int current_index = 0; line_to_check.length() > current_index; current_index++) { char32_t chr = line_to_check.get(current_index); @@ -2251,14 +2252,14 @@ void ProjectConverter3To4::process_gdscript_line(String &line, const RegExContai continue; } else if (chr == '=') { foundNextEqual = true; - assigned_value = line.right(current_index).strip_edges(); + assigned_value = line.substr(start + function_name.length() + current_index + 1).strip_edges(); assigned_value = assigned_value == "true" ? "false" : "true"; } else { break; } } if (foundNextEqual) { - line = line.substr(0, start) + "ignore_rotation =" + assigned_value + " # reversed \"rotating\" for Camera2D"; + line = line.substr(0, start) + "ignore_rotation = " + assigned_value + " # reversed \"rotating\" for Camera2D"; } }