summaryrefslogtreecommitdiffstats
path: root/modules/gdscript/gdscript.cpp
diff options
context:
space:
mode:
authorDanil Alexeev <danil@alexeev.xyz>2023-06-20 12:03:54 +0300
committerDanil Alexeev <danil@alexeev.xyz>2023-06-20 12:03:54 +0300
commita0577eb23b303b2f60a9237c877bd2ca370a6cc2 (patch)
treeeb732401af79edad284e092e7470e366d0fdb598 /modules/gdscript/gdscript.cpp
parent73ac33342fa8326e533604f43494844483dcca3d (diff)
downloadredot-engine-a0577eb23b303b2f60a9237c877bd2ca370a6cc2.tar.gz
GDScript: Fix `_get_script_name()` function collision for SCU build
Diffstat (limited to 'modules/gdscript/gdscript.cpp')
-rw-r--r--modules/gdscript/gdscript.cpp28
1 files changed, 26 insertions, 2 deletions
diff --git a/modules/gdscript/gdscript.cpp b/modules/gdscript/gdscript.cpp
index 7a3b9dc597..8f870368ce 100644
--- a/modules/gdscript/gdscript.cpp
+++ b/modules/gdscript/gdscript.cpp
@@ -1354,7 +1354,7 @@ GDScript::GDScript() :
path = vformat("gdscript://%d.gd", get_instance_id());
}
-void GDScript::_save_orphaned_subclasses(GDScript::ClearData *p_clear_data) {
+void GDScript::_save_orphaned_subclasses(ClearData *p_clear_data) {
struct ClassRefWithName {
ObjectID id;
String fully_qualified_name;
@@ -1411,7 +1411,31 @@ void GDScript::_init_rpc_methods_properties() {
}
}
-void GDScript::clear(GDScript::ClearData *p_clear_data) {
+#ifdef DEBUG_ENABLED
+String GDScript::debug_get_script_name(const Ref<Script> &p_script) {
+ if (p_script.is_valid()) {
+ Ref<GDScript> gdscript = p_script;
+ if (gdscript.is_valid()) {
+ if (!gdscript->get_script_class_name().is_empty()) {
+ return gdscript->get_script_class_name();
+ }
+ return gdscript->get_fully_qualified_name().get_file();
+ }
+
+ if (p_script->get_global_name() != StringName()) {
+ return p_script->get_global_name();
+ } else if (!p_script->get_path().is_empty()) {
+ return p_script->get_path().get_file();
+ } else if (!p_script->get_name().is_empty()) {
+ return p_script->get_name(); // Resource name.
+ }
+ }
+
+ return "<unknown script>";
+}
+#endif
+
+void GDScript::clear(ClearData *p_clear_data) {
if (clearing) {
return;
}