From 4cfc29611e21811065d024a6de1685418e60111e Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?R=C3=A9mi=20Verschelde?= Date: Thu, 16 Nov 2017 18:38:18 +0100 Subject: GDScript: Refactor "GD" class prefix to "GDScript" --- modules/gdscript/gd_script.cpp | 1911 ---------------------------------------- 1 file changed, 1911 deletions(-) delete mode 100644 modules/gdscript/gd_script.cpp (limited to 'modules/gdscript/gd_script.cpp') diff --git a/modules/gdscript/gd_script.cpp b/modules/gdscript/gd_script.cpp deleted file mode 100644 index e5d834c9e7..0000000000 --- a/modules/gdscript/gd_script.cpp +++ /dev/null @@ -1,1911 +0,0 @@ -/*************************************************************************/ -/* gd_script.cpp */ -/*************************************************************************/ -/* This file is part of: */ -/* GODOT ENGINE */ -/* https://godotengine.org */ -/*************************************************************************/ -/* Copyright (c) 2007-2017 Juan Linietsky, Ariel Manzur. */ -/* Copyright (c) 2014-2017 Godot Engine contributors (cf. AUTHORS.md) */ -/* */ -/* Permission is hereby granted, free of charge, to any person obtaining */ -/* a copy of this software and associated documentation files (the */ -/* "Software"), to deal in the Software without restriction, including */ -/* without limitation the rights to use, copy, modify, merge, publish, */ -/* distribute, sublicense, and/or sell copies of the Software, and to */ -/* permit persons to whom the Software is furnished to do so, subject to */ -/* the following conditions: */ -/* */ -/* The above copyright notice and this permission notice shall be */ -/* included in all copies or substantial portions of the Software. */ -/* */ -/* THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, */ -/* EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF */ -/* MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT.*/ -/* IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY */ -/* CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, */ -/* TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE */ -/* SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE. */ -/*************************************************************************/ -#include "gd_script.h" - -#include "engine.h" -#include "gd_compiler.h" -#include "global_constants.h" -#include "io/file_access_encrypted.h" -#include "os/file_access.h" -#include "os/os.h" -#include "project_settings.h" - -/////////////////////////// - -GDNativeClass::GDNativeClass(const StringName &p_name) { - - name = p_name; -} - -bool GDNativeClass::_get(const StringName &p_name, Variant &r_ret) const { - - bool ok; - int v = ClassDB::get_integer_constant(name, p_name, &ok); - - if (ok) { - r_ret = v; - return true; - } else { - return false; - } -} - -void GDNativeClass::_bind_methods() { - - ClassDB::bind_method(D_METHOD("new"), &GDNativeClass::_new); -} - -Variant GDNativeClass::_new() { - - Object *o = instance(); - if (!o) { - ERR_EXPLAIN("Class type: '" + String(name) + "' is not instantiable."); - ERR_FAIL_COND_V(!o, Variant()); - } - - Reference *ref = Object::cast_to(o); - if (ref) { - return REF(ref); - } else { - return o; - } -} - -Object *GDNativeClass::instance() { - - return ClassDB::instance(name); -} - -GDInstance *GDScript::_create_instance(const Variant **p_args, int p_argcount, Object *p_owner, bool p_isref, Variant::CallError &r_error) { - - /* STEP 1, CREATE */ - - GDInstance *instance = memnew(GDInstance); - instance->base_ref = p_isref; - instance->members.resize(member_indices.size()); - instance->script = Ref(this); - instance->owner = p_owner; -#ifdef DEBUG_ENABLED - //needed for hot reloading - for (Map::Element *E = member_indices.front(); E; E = E->next()) { - instance->member_indices_cache[E->key()] = E->get().index; - } -#endif - instance->owner->set_script_instance(instance); - -/* STEP 2, INITIALIZE AND CONSRTUCT */ - -#ifndef NO_THREADS - GDScriptLanguage::singleton->lock->lock(); -#endif - - instances.insert(instance->owner); - -#ifndef NO_THREADS - GDScriptLanguage::singleton->lock->unlock(); -#endif - - initializer->call(instance, p_args, p_argcount, r_error); - - if (r_error.error != Variant::CallError::CALL_OK) { - instance->script = Ref(); - instance->owner->set_script_instance(NULL); -#ifndef NO_THREADS - GDScriptLanguage::singleton->lock->lock(); -#endif - instances.erase(p_owner); -#ifndef NO_THREADS - GDScriptLanguage::singleton->lock->unlock(); -#endif - - ERR_FAIL_COND_V(r_error.error != Variant::CallError::CALL_OK, NULL); //error constructing - } - - //@TODO make thread safe - return instance; -} - -Variant GDScript::_new(const Variant **p_args, int p_argcount, Variant::CallError &r_error) { - - /* STEP 1, CREATE */ - - if (!valid) { - r_error.error = Variant::CallError::CALL_ERROR_INVALID_METHOD; - return Variant(); - } - - r_error.error = Variant::CallError::CALL_OK; - REF ref; - Object *owner = NULL; - - GDScript *_baseptr = this; - while (_baseptr->_base) { - _baseptr = _baseptr->_base; - } - - ERR_FAIL_COND_V(_baseptr->native.is_null(), Variant()); - - if (_baseptr->native.ptr()) { - owner = _baseptr->native->instance(); - } else { - owner = memnew(Reference); //by default, no base means use reference - } - - Reference *r = Object::cast_to(owner); - if (r) { - ref = REF(r); - } - - GDInstance *instance = _create_instance(p_args, p_argcount, owner, r != NULL, r_error); - if (!instance) { - if (ref.is_null()) { - memdelete(owner); //no owner, sorry - } - return Variant(); - } - - if (ref.is_valid()) { - return ref; - } else { - return owner; - } -} - -bool GDScript::can_instance() const { - - return valid || (!tool && !ScriptServer::is_scripting_enabled()); -} - -Ref