aboutsummaryrefslogtreecommitdiff
path: root/core
diff options
context:
space:
mode:
Diffstat (limited to 'core')
-rw-r--r--core/allocators.h1
-rw-r--r--core/array.cpp1
-rw-r--r--core/array.h1
-rw-r--r--core/bind/core_bind.cpp40
-rw-r--r--core/bind/core_bind.h3
-rw-r--r--core/class_db.cpp1
-rw-r--r--core/class_db.h1
-rw-r--r--core/color.cpp108
-rw-r--r--core/color.h13
-rw-r--r--core/command_queue_mt.cpp1
-rw-r--r--core/command_queue_mt.h1
-rw-r--r--core/compressed_translation.cpp1
-rw-r--r--core/compressed_translation.h1
-rw-r--r--core/core_string_names.cpp1
-rw-r--r--core/core_string_names.h1
-rw-r--r--core/dictionary.cpp22
-rw-r--r--core/dictionary.h1
-rw-r--r--core/dvector.cpp1
-rw-r--r--core/dvector.h1
-rw-r--r--core/engine.cpp1
-rw-r--r--core/engine.h1
-rw-r--r--core/error_list.h1
-rw-r--r--core/error_macros.cpp1
-rw-r--r--core/error_macros.h1
-rw-r--r--core/func_ref.cpp1
-rw-r--r--core/func_ref.h1
-rw-r--r--core/global_constants.cpp3
-rw-r--r--core/global_constants.h1
-rw-r--r--core/hash_map.h1
-rw-r--r--core/hashfuncs.h1
-rw-r--r--core/helper/math_fieldwise.h1
-rw-r--r--core/helper/value_evaluator.h1
-rw-r--r--core/image.cpp10
-rw-r--r--core/image.h1
-rw-r--r--core/input_map.cpp1
-rw-r--r--core/input_map.h1
-rw-r--r--core/io/compression.cpp1
-rw-r--r--core/io/compression.h1
-rw-r--r--core/io/config_file.cpp1
-rw-r--r--core/io/config_file.h1
-rw-r--r--core/io/file_access_buffered.cpp1
-rw-r--r--core/io/file_access_buffered.h1
-rw-r--r--core/io/file_access_buffered_fa.h1
-rw-r--r--core/io/file_access_compressed.cpp1
-rw-r--r--core/io/file_access_compressed.h1
-rw-r--r--core/io/file_access_encrypted.cpp1
-rw-r--r--core/io/file_access_encrypted.h1
-rw-r--r--core/io/file_access_memory.cpp1
-rw-r--r--core/io/file_access_memory.h1
-rw-r--r--core/io/file_access_network.cpp3
-rw-r--r--core/io/file_access_network.h1
-rw-r--r--core/io/file_access_pack.cpp1
-rw-r--r--core/io/file_access_pack.h1
-rw-r--r--core/io/file_access_zip.cpp1
-rw-r--r--core/io/file_access_zip.h7
-rw-r--r--core/io/http_client.cpp4
-rw-r--r--core/io/http_client.h1
-rw-r--r--core/io/image_loader.cpp1
-rw-r--r--core/io/image_loader.h1
-rw-r--r--core/io/ip.cpp1
-rw-r--r--core/io/ip.h1
-rw-r--r--core/io/ip_address.cpp1
-rw-r--r--core/io/ip_address.h1
-rw-r--r--core/io/json.cpp1
-rw-r--r--core/io/json.h1
-rw-r--r--core/io/marshalls.cpp3
-rw-r--r--core/io/marshalls.h1
-rw-r--r--core/io/networked_multiplayer_peer.cpp5
-rw-r--r--core/io/networked_multiplayer_peer.h2
-rw-r--r--core/io/packet_peer.cpp15
-rw-r--r--core/io/packet_peer.h2
-rw-r--r--core/io/packet_peer_udp.cpp1
-rw-r--r--core/io/packet_peer_udp.h1
-rw-r--r--core/io/pck_packer.cpp1
-rw-r--r--core/io/pck_packer.h6
-rw-r--r--core/io/resource_format_binary.cpp1
-rw-r--r--core/io/resource_format_binary.h1
-rw-r--r--core/io/resource_import.cpp37
-rw-r--r--core/io/resource_import.h5
-rw-r--r--core/io/resource_loader.cpp4
-rw-r--r--core/io/resource_loader.h1
-rw-r--r--core/io/resource_saver.cpp1
-rw-r--r--core/io/resource_saver.h1
-rw-r--r--core/io/stream_peer.cpp29
-rw-r--r--core/io/stream_peer.h1
-rw-r--r--core/io/stream_peer_ssl.cpp1
-rw-r--r--core/io/stream_peer_ssl.h1
-rw-r--r--core/io/stream_peer_tcp.cpp2
-rw-r--r--core/io/stream_peer_tcp.h3
-rw-r--r--core/io/tcp_server.cpp1
-rw-r--r--core/io/tcp_server.h1
-rw-r--r--core/io/translation_loader_po.cpp1
-rw-r--r--core/io/translation_loader_po.h1
-rw-r--r--core/io/xml_parser.cpp1
-rw-r--r--core/io/xml_parser.h1
-rw-r--r--core/io/zip_io.h1
-rw-r--r--core/list.h3
-rw-r--r--core/map.h1
-rw-r--r--core/math/a_star.cpp1
-rw-r--r--core/math/a_star.h1
-rw-r--r--core/math/aabb.cpp1
-rw-r--r--core/math/aabb.h1
-rw-r--r--core/math/audio_frame.cpp1
-rw-r--r--core/math/audio_frame.h1
-rw-r--r--core/math/bsp_tree.cpp1
-rw-r--r--core/math/bsp_tree.h1
-rw-r--r--core/math/camera_matrix.cpp1
-rw-r--r--core/math/camera_matrix.h1
-rw-r--r--core/math/face3.cpp1
-rw-r--r--core/math/face3.h1
-rw-r--r--core/math/geometry.cpp12
-rw-r--r--core/math/geometry.h4
-rw-r--r--core/math/math_2d.cpp1
-rw-r--r--core/math/math_2d.h1
-rw-r--r--core/math/math_defs.h1
-rw-r--r--core/math/math_funcs.cpp1
-rw-r--r--core/math/math_funcs.h1
-rw-r--r--core/math/matrix3.cpp18
-rw-r--r--core/math/matrix3.h3
-rw-r--r--core/math/octree.h3
-rw-r--r--core/math/plane.cpp1
-rw-r--r--core/math/plane.h1
-rw-r--r--core/math/quat.cpp1
-rw-r--r--core/math/quick_hull.cpp1
-rw-r--r--core/math/quick_hull.h1
-rw-r--r--core/math/transform.cpp1
-rw-r--r--core/math/transform.h1
-rw-r--r--core/math/triangle_mesh.cpp1
-rw-r--r--core/math/triangle_mesh.h1
-rw-r--r--core/math/triangulate.cpp1
-rw-r--r--core/math/triangulate.h1
-rw-r--r--core/math/vector3.cpp1
-rw-r--r--core/math/vector3.h1
-rw-r--r--core/message_queue.cpp1
-rw-r--r--core/message_queue.h1
-rw-r--r--core/method_bind.cpp1
-rw-r--r--core/method_bind.h3
-rw-r--r--core/method_ptrcall.h1
-rw-r--r--core/node_path.cpp1
-rw-r--r--core/node_path.h1
-rw-r--r--core/oa_hash_map.h3
-rw-r--r--core/object.cpp5
-rw-r--r--core/object.h5
-rw-r--r--core/ordered_hash_map.h3
-rw-r--r--core/os/copymem.h1
-rw-r--r--core/os/dir_access.cpp7
-rw-r--r--core/os/dir_access.h5
-rw-r--r--core/os/file_access.cpp1
-rw-r--r--core/os/file_access.h1
-rw-r--r--core/os/input.cpp21
-rw-r--r--core/os/input.h26
-rw-r--r--core/os/input_event.cpp1
-rw-r--r--core/os/input_event.h5
-rw-r--r--core/os/keyboard.cpp1
-rw-r--r--core/os/keyboard.h1
-rw-r--r--core/os/main_loop.cpp1
-rw-r--r--core/os/main_loop.h1
-rw-r--r--core/os/memory.cpp1
-rw-r--r--core/os/memory.h1
-rw-r--r--core/os/mutex.cpp1
-rw-r--r--core/os/mutex.h1
-rw-r--r--core/os/os.cpp1
-rw-r--r--core/os/os.h4
-rw-r--r--core/os/rw_lock.cpp1
-rw-r--r--core/os/rw_lock.h1
-rw-r--r--core/os/semaphore.cpp1
-rw-r--r--core/os/semaphore.h1
-rw-r--r--core/os/shell.cpp1
-rw-r--r--core/os/shell.h1
-rw-r--r--core/os/thread.cpp1
-rw-r--r--core/os/thread.h1
-rw-r--r--core/os/thread_dummy.cpp1
-rw-r--r--core/os/thread_dummy.h1
-rw-r--r--core/os/thread_safe.cpp1
-rw-r--r--core/os/thread_safe.h1
-rw-r--r--core/os/threaded_array_processor.cpp2
-rw-r--r--core/os/threaded_array_processor.h30
-rw-r--r--core/packed_data_container.cpp1
-rw-r--r--core/packed_data_container.h1
-rw-r--r--core/pair.h1
-rw-r--r--core/path_remap.cpp1
-rw-r--r--core/path_remap.h1
-rw-r--r--core/pool_allocator.cpp1
-rw-r--r--core/pool_allocator.h1
-rw-r--r--core/print_string.cpp1
-rw-r--r--core/print_string.h1
-rw-r--r--core/project_settings.cpp3
-rw-r--r--core/project_settings.h7
-rw-r--r--core/ref_ptr.cpp1
-rw-r--r--core/ref_ptr.h1
-rw-r--r--core/reference.cpp1
-rw-r--r--core/reference.h1
-rw-r--r--core/register_core_types.cpp1
-rw-r--r--core/register_core_types.h1
-rw-r--r--core/resource.cpp3
-rw-r--r--core/resource.h1
-rw-r--r--core/rid.cpp1
-rw-r--r--core/rid.h1
-rw-r--r--core/ring_buffer.h18
-rw-r--r--core/safe_refcount.h1
-rw-r--r--core/script_debugger_local.cpp6
-rw-r--r--core/script_debugger_local.h2
-rw-r--r--core/script_debugger_remote.cpp146
-rw-r--r--core/script_debugger_remote.h6
-rw-r--r--core/script_language.cpp3
-rw-r--r--core/script_language.h7
-rw-r--r--core/self_list.h1
-rw-r--r--core/set.h1
-rw-r--r--core/simple_type.h1
-rw-r--r--core/sort.h1
-rw-r--r--core/string_buffer.cpp1
-rw-r--r--core/string_buffer.h1
-rw-r--r--core/string_builder.cpp4
-rw-r--r--core/string_builder.h1
-rw-r--r--core/string_db.cpp1
-rw-r--r--core/string_db.h1
-rw-r--r--core/translation.cpp3
-rw-r--r--core/translation.h1
-rw-r--r--core/type_info.h30
-rw-r--r--core/typedefs.h1
-rw-r--r--core/ucaps.h1
-rw-r--r--core/undo_redo.cpp27
-rw-r--r--core/undo_redo.h5
-rw-r--r--core/ustring.cpp23
-rw-r--r--core/ustring.h1
-rw-r--r--core/variant.cpp1
-rw-r--r--core/variant.h1
-rw-r--r--core/variant_call.cpp14
-rw-r--r--core/variant_construct_string.cpp1
-rw-r--r--core/variant_op.cpp9
-rw-r--r--core/variant_parser.cpp1
-rw-r--r--core/variant_parser.h1
-rw-r--r--core/vector.h1
-rw-r--r--core/version.h1
-rw-r--r--core/vmap.h1
-rw-r--r--core/vset.h1
236 files changed, 730 insertions, 251 deletions
diff --git a/core/allocators.h b/core/allocators.h
index 0d5989b4a..e17ab298d 100644
--- a/core/allocators.h
+++ b/core/allocators.h
@@ -27,6 +27,7 @@
/* TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE */
/* SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE. */
/*************************************************************************/
+
#ifndef ALLOCATORS_H
#define ALLOCATORS_H
diff --git a/core/array.cpp b/core/array.cpp
index a333830d3..c53fea1f2 100644
--- a/core/array.cpp
+++ b/core/array.cpp
@@ -27,6 +27,7 @@
/* TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE */
/* SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE. */
/*************************************************************************/
+
#include "array.h"
#include "hashfuncs.h"
diff --git a/core/array.h b/core/array.h
index 4aef4f49c..7c6fc5904 100644
--- a/core/array.h
+++ b/core/array.h
@@ -27,6 +27,7 @@
/* TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE */
/* SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE. */
/*************************************************************************/
+
#ifndef ARRAY_H
#define ARRAY_H
diff --git a/core/bind/core_bind.cpp b/core/bind/core_bind.cpp
index c1e33c149..32b94b9b0 100644
--- a/core/bind/core_bind.cpp
+++ b/core/bind/core_bind.cpp
@@ -27,6 +27,7 @@
/* TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE */
/* SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE. */
/*************************************************************************/
+
#include "core_bind.h"
#include "core/project_settings.h"
@@ -70,7 +71,13 @@ Ref<ResourceInteractiveLoader> _ResourceLoader::load_interactive(const String &p
RES _ResourceLoader::load(const String &p_path, const String &p_type_hint, bool p_no_cache) {
- RES ret = ResourceLoader::load(p_path, p_type_hint, p_no_cache);
+ Error err = OK;
+ RES ret = ResourceLoader::load(p_path, p_type_hint, p_no_cache, &err);
+
+ if (err != OK) {
+ ERR_EXPLAIN("Error loading resource: '" + p_path + "'");
+ ERR_FAIL_COND_V(err != OK, ret);
+ }
return ret;
}
@@ -1122,6 +1129,22 @@ void _OS::_bind_methods() {
ClassDB::bind_method(D_METHOD("get_power_seconds_left"), &_OS::get_power_seconds_left);
ClassDB::bind_method(D_METHOD("get_power_percent_left"), &_OS::get_power_percent_left);
+ ADD_PROPERTY(PropertyInfo(Variant::STRING, "clipboard"), "set_clipboard", "get_clipboard");
+ ADD_PROPERTY(PropertyInfo(Variant::INT, "current_screen"), "set_current_screen", "get_current_screen");
+ ADD_PROPERTY(PropertyInfo(Variant::INT, "exit_code"), "set_exit_code", "get_exit_code");
+ ADD_PROPERTY(PropertyInfo(Variant::BOOL, "vsync_enabled"), "set_use_vsync", "is_vsync_enabled");
+ ADD_PROPERTY(PropertyInfo(Variant::BOOL, "low_processor_usage_mode"), "set_low_processor_usage_mode", "is_in_low_processor_usage_mode");
+ ADD_PROPERTY(PropertyInfo(Variant::BOOL, "keep_screen_on"), "set_keep_screen_on", "is_keep_screen_on");
+ ADD_PROPERTY(PropertyInfo(Variant::INT, "screen_orientation", PROPERTY_HINT_ENUM, "Landscape,Portrait,Reverse Landscape,Reverse Portrait,Sensor Landscape,Sensor Portrait,Sensor"), "set_screen_orientation", "get_screen_orientation");
+ ADD_GROUP("Window", "window_");
+ ADD_PROPERTY(PropertyInfo(Variant::BOOL, "window_borderless"), "set_borderless_window", "get_borderless_window");
+ ADD_PROPERTY(PropertyInfo(Variant::BOOL, "window_fullscreen"), "set_window_fullscreen", "is_window_fullscreen");
+ ADD_PROPERTY(PropertyInfo(Variant::BOOL, "window_maximized"), "set_window_maximized", "is_window_maximized");
+ ADD_PROPERTY(PropertyInfo(Variant::BOOL, "window_minimized"), "set_window_minimized", "is_window_minimized");
+ ADD_PROPERTY(PropertyInfo(Variant::BOOL, "window_resizable"), "set_window_resizable", "is_window_resizable");
+ ADD_PROPERTY(PropertyInfo(Variant::VECTOR2, "window_position"), "set_window_position", "get_window_position");
+ ADD_PROPERTY(PropertyInfo(Variant::VECTOR2, "window_size"), "set_window_size", "get_window_size");
+
BIND_ENUM_CONSTANT(DAY_SUNDAY);
BIND_ENUM_CONSTANT(DAY_MONDAY);
BIND_ENUM_CONSTANT(DAY_TUESDAY);
@@ -1801,6 +1824,8 @@ void _File::_bind_methods() {
ClassDB::bind_method(D_METHOD("file_exists", "path"), &_File::file_exists);
ClassDB::bind_method(D_METHOD("get_modified_time", "file"), &_File::get_modified_time);
+ ADD_PROPERTY(PropertyInfo(Variant::BOOL, "endian_swap"), "set_endian_swap", "get_endian_swap");
+
BIND_ENUM_CONSTANT(READ);
BIND_ENUM_CONSTANT(WRITE);
BIND_ENUM_CONSTANT(READ_WRITE);
@@ -2459,7 +2484,13 @@ Array _ClassDB::get_method_list(StringName p_class, bool p_no_inheritance) const
Array ret;
for (List<MethodInfo>::Element *E = methods.front(); E; E = E->next()) {
+#ifdef DEBUG_METHODS_ENABLED
ret.push_back(E->get().operator Dictionary());
+#else
+ Dictionary dict;
+ dict["name"] = E->get().name;
+ ret.push_back(dict);
+#endif
}
return ret;
@@ -2554,7 +2585,7 @@ void _Engine::set_target_fps(int p_fps) {
Engine::get_singleton()->set_target_fps(p_fps);
}
-float _Engine::get_target_fps() const {
+int _Engine::get_target_fps() const {
return Engine::get_singleton()->get_target_fps();
}
@@ -2636,6 +2667,11 @@ void _Engine::_bind_methods() {
ClassDB::bind_method(D_METHOD("set_editor_hint", "enabled"), &_Engine::set_editor_hint);
ClassDB::bind_method(D_METHOD("is_editor_hint"), &_Engine::is_editor_hint);
+
+ ADD_PROPERTY(PropertyInfo(Variant::BOOL, "editor_hint"), "set_editor_hint", "is_editor_hint");
+ ADD_PROPERTY(PropertyInfo(Variant::INT, "iterations_per_second"), "set_iterations_per_second", "get_iterations_per_second");
+ ADD_PROPERTY(PropertyInfo(Variant::INT, "target_fps"), "set_target_fps", "get_target_fps");
+ ADD_PROPERTY(PropertyInfo(Variant::REAL, "time_scale"), "set_time_scale", "get_time_scale");
}
_Engine *_Engine::singleton = NULL;
diff --git a/core/bind/core_bind.h b/core/bind/core_bind.h
index ed4111fea..2353b6d09 100644
--- a/core/bind/core_bind.h
+++ b/core/bind/core_bind.h
@@ -27,6 +27,7 @@
/* TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE */
/* SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE. */
/*************************************************************************/
+
#ifndef CORE_BIND_H
#define CORE_BIND_H
@@ -655,7 +656,7 @@ public:
int get_iterations_per_second() const;
void set_target_fps(int p_fps);
- float get_target_fps() const;
+ int get_target_fps() const;
float get_frames_per_second() const;
diff --git a/core/class_db.cpp b/core/class_db.cpp
index 141bc1c5e..d2cd36279 100644
--- a/core/class_db.cpp
+++ b/core/class_db.cpp
@@ -27,6 +27,7 @@
/* TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE */
/* SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE. */
/*************************************************************************/
+
#include "class_db.h"
#include "os/mutex.h"
diff --git a/core/class_db.h b/core/class_db.h
index c977068be..14e36e459 100644
--- a/core/class_db.h
+++ b/core/class_db.h
@@ -27,6 +27,7 @@
/* TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE */
/* SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE. */
/*************************************************************************/
+
#ifndef CLASS_DB_H
#define CLASS_DB_H
diff --git a/core/color.cpp b/core/color.cpp
index 00a31dfdd..a0568d26e 100644
--- a/core/color.cpp
+++ b/core/color.cpp
@@ -27,6 +27,7 @@
/* TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE */
/* SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE. */
/*************************************************************************/
+
#include "color.h"
#include "color_names.inc"
@@ -412,96 +413,95 @@ Color::operator String() const {
Color Color::operator+(const Color &p_color) const {
return Color(
- CLAMP(r + p_color.r, 0.0, 1.0),
- CLAMP(g + p_color.g, 0.0, 1.0),
- CLAMP(b + p_color.b, 0.0, 1.0),
- CLAMP(a + p_color.a, 0.0, 1.0));
+ r + p_color.r,
+ g + p_color.g,
+ b + p_color.b,
+ a + p_color.a);
}
void Color::operator+=(const Color &p_color) {
- r = CLAMP(r + p_color.r, 0.0, 1.0);
- g = CLAMP(g + p_color.g, 0.0, 1.0);
- b = CLAMP(b + p_color.b, 0.0, 1.0);
- a = CLAMP(a + p_color.a, 0.0, 1.0);
+ r = r + p_color.r;
+ g = g + p_color.g;
+ b = b + p_color.b;
+ a = a + p_color.a;
}
Color Color::operator-(const Color &p_color) const {
return Color(
- CLAMP(r - p_color.r, 0.0, 1.0),
- CLAMP(g - p_color.g, 0.0, 1.0),
- CLAMP(b - p_color.b, 0.0, 1.0),
- CLAMP(a - p_color.a, 0.0, 1.0));
+ r - p_color.r,
+ g - p_color.g,
+ b - p_color.b,
+ a - p_color.a);
}
void Color::operator-=(const Color &p_color) {
- r = CLAMP(r - p_color.r, 0.0, 1.0);
- g = CLAMP(g - p_color.g, 0.0, 1.0);
- b = CLAMP(b - p_color.b, 0.0, 1.0);
- a = CLAMP(a - p_color.a, 0.0, 1.0);
+ r = r - p_color.r;
+ g = g - p_color.g;
+ b = b - p_color.b;
+ a = a - p_color.a;
}
Color Color::operator*(const Color &p_color) const {
return Color(
- CLAMP(r * p_color.r, 0.0, 1.0),
- CLAMP(g * p_color.g, 0.0, 1.0),
- CLAMP(b * p_color.b, 0.0, 1.0),
- CLAMP(a * p_color.a, 0.0, 1.0));
+ r * p_color.r,
+ g * p_color.g,
+ b * p_color.b,
+ a * p_color.a);
}
Color Color::operator*(const real_t &rvalue) const {
return Color(
- CLAMP(r * rvalue, 0.0, 1.0),
- CLAMP(g * rvalue, 0.0, 1.0),
- CLAMP(b * rvalue, 0.0, 1.0),
- CLAMP(a * rvalue, 0.0, 1.0));
+ r * rvalue,
+ g * rvalue,
+ b * rvalue,
+ a * rvalue);
}
void Color::operator*=(const Color &p_color) {
- r = CLAMP(r * p_color.r, 0.0, 1.0);
- g = CLAMP(g * p_color.g, 0.0, 1.0);
- b = CLAMP(b * p_color.b, 0.0, 1.0);
- a = CLAMP(a * p_color.a, 0.0, 1.0);
+ r = r * p_color.r;
+ g = g * p_color.g;
+ b = b * p_color.b;
+ a = a * p_color.a;
}
void Color::operator*=(const real_t &rvalue) {
- r = CLAMP(r * rvalue, 0.0, 1.0);
- g = CLAMP(g * rvalue, 0.0, 1.0);
- b = CLAMP(b * rvalue, 0.0, 1.0);
- a = CLAMP(a * rvalue, 0.0, 1.0);
-};
+ r = r * rvalue;
+ g = g * rvalue;
+ b = b * rvalue;
+ a = a * rvalue;
+}
Color Color::operator/(const Color &p_color) const {
return Color(
- p_color.r == 0 ? 1 : CLAMP(r / p_color.r, 0.0, 1.0),
- p_color.g == 0 ? 1 : CLAMP(g / p_color.g, 0.0, 1.0),
- p_color.b == 0 ? 1 : CLAMP(b / p_color.b, 0.0, 1.0),
- p_color.a == 0 ? 1 : CLAMP(a / p_color.a, 0.0, 1.0));
+ r / p_color.r,
+ g / p_color.g,
+ b / p_color.b,
+ a / p_color.a);
}
Color Color::operator/(const real_t &rvalue) const {
- if (rvalue == 0) return Color(1.0, 1.0, 1.0, 1.0);
return Color(
- CLAMP(r / rvalue, 0.0, 1.0),
- CLAMP(g / rvalue, 0.0, 1.0),
- CLAMP(b / rvalue, 0.0, 1.0),
- CLAMP(a / rvalue, 0.0, 1.0));
+ r / rvalue,
+ g / rvalue,
+ b / rvalue,
+ a / rvalue);
}
void Color::operator/=(const Color &p_color) {
- r = p_color.r == 0 ? 1 : CLAMP(r / p_color.r, 0.0, 1.0);
- g = p_color.g == 0 ? 1 : CLAMP(g / p_color.g, 0.0, 1.0);
- b = p_color.b == 0 ? 1 : CLAMP(b / p_color.b, 0.0, 1.0);
- a = p_color.a == 0 ? 1 : CLAMP(a / p_color.a, 0.0, 1.0);
+ r = r / p_color.r;
+ g = g / p_color.g;
+ b = b / p_color.b;
+ a = a / p_color.a;
}
void Color::operator/=(const real_t &rvalue) {
@@ -512,18 +512,18 @@ void Color::operator/=(const real_t &rvalue) {
b = 1.0;
a = 1.0;
} else {
- r = CLAMP(r / rvalue, 0.0, 1.0);
- g = CLAMP(g / rvalue, 0.0, 1.0);
- b = CLAMP(b / rvalue, 0.0, 1.0);
- a = CLAMP(a / rvalue, 0.0, 1.0);
+ r = r / rvalue;
+ g = g / rvalue;
+ b = b / rvalue;
+ a = a / rvalue;
}
};
Color Color::operator-() const {
return Color(
- CLAMP(1.0 - r, 0.0, 1.0),
- CLAMP(1.0 - g, 0.0, 1.0),
- CLAMP(1.0 - b, 0.0, 1.0),
- CLAMP(1.0 - a, 0.0, 1.0));
+ 1.0 - r,
+ 1.0 - g,
+ 1.0 - b,
+ 1.0 - a);
}
diff --git a/core/color.h b/core/color.h
index 70b0e1fea..9af8fb0a7 100644
--- a/core/color.h
+++ b/core/color.h
@@ -27,6 +27,7 @@
/* TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE */
/* SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE. */
/*************************************************************************/
+
#ifndef COLOR_H
#define COLOR_H
@@ -104,18 +105,18 @@ struct Color {
_FORCE_INLINE_ Color darkened(float p_amount) const {
Color res = *this;
- res.r = CLAMP(res.r * (1.0f - p_amount), 0.0, 1.0);
- res.g = CLAMP(res.g * (1.0f - p_amount), 0.0, 1.0);
- res.b = CLAMP(res.b * (1.0f - p_amount), 0.0, 1.0);
+ res.r = res.r * (1.0f - p_amount);
+ res.g = res.g * (1.0f - p_amount);
+ res.b = res.b * (1.0f - p_amount);
return res;
}
_FORCE_INLINE_ Color lightened(float p_amount) const {
Color res = *this;
- res.r = CLAMP(res.r + (1.0f - res.r) * p_amount, 0.0, 1.0);
- res.g = CLAMP(res.g + (1.0f - res.g) * p_amount, 0.0, 1.0);
- res.b = CLAMP(res.b + (1.0f - res.b) * p_amount, 0.0, 1.0);
+ res.r = res.r + (1.0f - res.r) * p_amount;
+ res.g = res.g + (1.0f - res.g) * p_amount;
+ res.b = res.b + (1.0f - res.b) * p_amount;
return res;
}
diff --git a/core/command_queue_mt.cpp b/core/command_queue_mt.cpp
index 8ce0ba781..6bb313575 100644
--- a/core/command_queue_mt.cpp
+++ b/core/command_queue_mt.cpp
@@ -27,6 +27,7 @@
/* TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE */
/* SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE. */
/*************************************************************************/
+
#include "command_queue_mt.h"
#include "os/os.h"
diff --git a/core/command_queue_mt.h b/core/command_queue_mt.h
index e53ded675..cecc9e405 100644
--- a/core/command_queue_mt.h
+++ b/core/command_queue_mt.h
@@ -27,6 +27,7 @@
/* TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE */
/* SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE. */
/*************************************************************************/
+
#ifndef COMMAND_QUEUE_MT_H
#define COMMAND_QUEUE_MT_H
diff --git a/core/compressed_translation.cpp b/core/compressed_translation.cpp
index b393b67d5..266d793af 100644
--- a/core/compressed_translation.cpp
+++ b/core/compressed_translation.cpp
@@ -27,6 +27,7 @@
/* TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE */
/* SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE. */
/*************************************************************************/
+
#include "compressed_translation.h"
#include "pair.h"
diff --git a/core/compressed_translation.h b/core/compressed_translation.h
index bedd38d1b..400fa4491 100644
--- a/core/compressed_translation.h
+++ b/core/compressed_translation.h
@@ -27,6 +27,7 @@
/* TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE */
/* SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE. */
/*************************************************************************/
+
#ifndef COMPRESSED_TRANSLATION_H
#define COMPRESSED_TRANSLATION_H
diff --git a/core/core_string_names.cpp b/core/core_string_names.cpp
index 7a9edcad4..ba596f7f1 100644
--- a/core/core_string_names.cpp
+++ b/core/core_string_names.cpp
@@ -27,6 +27,7 @@
/* TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE */
/* SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE. */
/*************************************************************************/
+
#include "core_string_names.h"
CoreStringNames *CoreStringNames::singleton = NULL;
diff --git a/core/core_string_names.h b/core/core_string_names.h
index f48692f47..dcbce14aa 100644
--- a/core/core_string_names.h
+++ b/core/core_string_names.h
@@ -27,6 +27,7 @@
/* TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE */
/* SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE. */
/*************************************************************************/
+
#ifndef CORE_STRING_NAMES_H
#define CORE_STRING_NAMES_H
diff --git a/core/dictionary.cpp b/core/dictionary.cpp
index 72893c41f..e3f4aa5f2 100644
--- a/core/dictionary.cpp
+++ b/core/dictionary.cpp
@@ -27,21 +27,17 @@
/* TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE */
/* SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE. */
/*************************************************************************/
+
#include "dictionary.h"
#include "ordered_hash_map.h"
#include "safe_refcount.h"
#include "variant.h"
-struct _DictionaryVariantHash {
-
- static _FORCE_INLINE_ uint32_t hash(const Variant &p_variant) { return p_variant.hash(); }
-};
-
struct DictionaryPrivate {
SafeRefCount refcount;
- OrderedHashMap<Variant, Variant, _DictionaryVariantHash> variant_map;
+ OrderedHashMap<Variant, Variant, VariantHasher, VariantComparator> variant_map;
};
void Dictionary::get_key_list(List<Variant> *p_keys) const {
@@ -49,7 +45,7 @@ void Dictionary::get_key_list(List<Variant> *p_keys) const {
if (_p->variant_map.empty())
return;
- for (OrderedHashMap<Variant, Variant, _DictionaryVariantHash>::Element E = _p->variant_map.front(); E; E = E.next()) {
+ for (OrderedHashMap<Variant, Variant, VariantHasher, VariantComparator>::Element E = _p->variant_map.front(); E; E = E.next()) {
p_keys->push_back(E.key());
}
}
@@ -65,7 +61,7 @@ const Variant &Dictionary::operator[](const Variant &p_key) const {
}
const Variant *Dictionary::getptr(const Variant &p_key) const {
- OrderedHashMap<Variant, Variant, _DictionaryVariantHash>::ConstElement E = ((const OrderedHashMap<Variant, Variant, _DictionaryVariantHash> *)&_p->variant_map)->find(p_key);
+ OrderedHashMap<Variant, Variant, VariantHasher, VariantComparator>::ConstElement E = ((const OrderedHashMap<Variant, Variant, VariantHasher, VariantComparator> *)&_p->variant_map)->find(p_key);
if (!E)
return NULL;
@@ -74,7 +70,7 @@ const Variant *Dictionary::getptr(const Variant &p_key) const {
Variant *Dictionary::getptr(const Variant &p_key) {
- OrderedHashMap<Variant, Variant, _DictionaryVariantHash>::Element E = _p->variant_map.find(p_key);
+ OrderedHashMap<Variant, Variant, VariantHasher, VariantComparator>::Element E = _p->variant_map.find(p_key);
if (!E)
return NULL;
@@ -83,7 +79,7 @@ Variant *Dictionary::getptr(const Variant &p_key) {
Variant Dictionary::get_valid(const Variant &p_key) const {
- OrderedHashMap<Variant, Variant, _DictionaryVariantHash>::ConstElement E = ((const OrderedHashMap<Variant, Variant, _DictionaryVariantHash> *)&_p->variant_map)->find(p_key);
+ OrderedHashMap<Variant, Variant, VariantHasher, VariantComparator>::ConstElement E = ((const OrderedHashMap<Variant, Variant, VariantHasher, VariantComparator> *)&_p->variant_map)->find(p_key);
if (!E)
return Variant();
@@ -176,7 +172,7 @@ Array Dictionary::keys() const {
return varr;
int i = 0;
- for (OrderedHashMap<Variant, Variant, _DictionaryVariantHash>::Element E = _p->variant_map.front(); E; E = E.next()) {
+ for (OrderedHashMap<Variant, Variant, VariantHasher, VariantComparator>::Element E = _p->variant_map.front(); E; E = E.next()) {
varr[i] = E.key();
i++;
}
@@ -192,7 +188,7 @@ Array Dictionary::values() const {
return varr;
int i = 0;
- for (OrderedHashMap<Variant, Variant, _DictionaryVariantHash>::Element E = _p->variant_map.front(); E; E = E.next()) {
+ for (OrderedHashMap<Variant, Variant, VariantHasher, VariantComparator>::Element E = _p->variant_map.front(); E; E = E.next()) {
varr[i] = E.get();
i++;
}
@@ -208,7 +204,7 @@ const Variant *Dictionary::next(const Variant *p_key) const {
return &_p->variant_map.front().key();
return NULL;
}
- OrderedHashMap<Variant, Variant, _DictionaryVariantHash>::Element E = _p->variant_map.find(*p_key);
+ OrderedHashMap<Variant, Variant, VariantHasher, VariantComparator>::Element E = _p->variant_map.find(*p_key);
if (E && E.next())
return &E.next().key();
diff --git a/core/dictionary.h b/core/dictionary.h
index 86f676fc3..f001f2d5e 100644
--- a/core/dictionary.h
+++ b/core/dictionary.h
@@ -27,6 +27,7 @@
/* TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE */
/* SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE. */
/*************************************************************************/
+
#ifndef DICTIONARY_H
#define DICTIONARY_H
diff --git a/core/dvector.cpp b/core/dvector.cpp
index 653c04b49..b679df55a 100644
--- a/core/dvector.cpp
+++ b/core/dvector.cpp
@@ -27,6 +27,7 @@
/* TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE */
/* SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE. */
/*************************************************************************/
+
#include "dvector.h"
Mutex *dvector_lock = NULL;
diff --git a/core/dvector.h b/core/dvector.h
index 492a4e0ed..c0190fb9e 100644
--- a/core/dvector.h
+++ b/core/dvector.h
@@ -27,6 +27,7 @@
/* TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE */
/* SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE. */
/*************************************************************************/
+
#ifndef DVECTOR_H
#define DVECTOR_H
diff --git a/core/engine.cpp b/core/engine.cpp
index 4cadad1f6..af9052110 100644
--- a/core/engine.cpp
+++ b/core/engine.cpp
@@ -27,6 +27,7 @@
/* TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE */
/* SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE. */
/*************************************************************************/
+
#include "engine.h"
#include "version.h"
diff --git a/core/engine.h b/core/engine.h
index 2741d09b5..54b30ab81 100644
--- a/core/engine.h
+++ b/core/engine.h
@@ -27,6 +27,7 @@
/* TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE */
/* SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE. */
/*************************************************************************/
+
#ifndef ENGINE_H
#define ENGINE_H
diff --git a/core/error_list.h b/core/error_list.h
index 47233e39f..6b9cd0016 100644
--- a/core/error_list.h
+++ b/core/error_list.h
@@ -27,6 +27,7 @@
/* TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE */
/* SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE. */
/*************************************************************************/
+
#ifndef ERROR_LIST_H
#define ERROR_LIST_H
diff --git a/core/error_macros.cpp b/core/error_macros.cpp
index 76be0756b..578680293 100644
--- a/core/error_macros.cpp
+++ b/core/error_macros.cpp
@@ -27,6 +27,7 @@
/* TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE */
/* SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE. */
/*************************************************************************/
+
#include "error_macros.h"
#include "io/logger.h"
diff --git a/core/error_macros.h b/core/error_macros.h
index 2bfa94b99..1f9164a99 100644
--- a/core/error_macros.h
+++ b/core/error_macros.h
@@ -27,6 +27,7 @@
/* TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE */
/* SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE. */
/*************************************************************************/
+
#ifndef ERROR_MACROS_H
#define ERROR_MACROS_H
diff --git a/core/func_ref.cpp b/core/func_ref.cpp
index 98053808b..c707f1c4c 100644
--- a/core/func_ref.cpp
+++ b/core/func_ref.cpp
@@ -27,6 +27,7 @@
/* TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE */
/* SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE. */
/*************************************************************************/
+
#include "func_ref.h"
Variant FuncRef::call_func(const Variant **p_args, int p_argcount, Variant::CallError &r_error) {
diff --git a/core/func_ref.h b/core/func_ref.h
index 9f2df8cb5..681fe747d 100644
--- a/core/func_ref.h
+++ b/core/func_ref.h
@@ -27,6 +27,7 @@
/* TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE */
/* SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE. */
/*************************************************************************/
+
#ifndef FUNC_REF_H
#define FUNC_REF_H
diff --git a/core/global_constants.cpp b/core/global_constants.cpp
index abe829420..a24bf03c9 100644
--- a/core/global_constants.cpp
+++ b/core/global_constants.cpp
@@ -10,7 +10,7 @@
/* */
/* 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 */
+/* "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 */
@@ -27,6 +27,7 @@
/* TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE */
/* SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE. */
/*************************************************************************/
+
#include "global_constants.h"
#include "object.h"
diff --git a/core/global_constants.h b/core/global_constants.h
index 09f93e34a..76f618989 100644
--- a/core/global_constants.h
+++ b/core/global_constants.h
@@ -27,6 +27,7 @@
/* TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE */
/* SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE. */
/*************************************************************************/
+
#ifndef GLOBAL_CONSTANTS_H
#define GLOBAL_CONSTANTS_H
diff --git a/core/hash_map.h b/core/hash_map.h
index 1a4f879fe..2df743ba7 100644
--- a/core/hash_map.h
+++ b/core/hash_map.h
@@ -27,6 +27,7 @@
/* TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE */
/* SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE. */
/*************************************************************************/
+
#ifndef HASH_MAP_H
#define HASH_MAP_H
diff --git a/core/hashfuncs.h b/core/hashfuncs.h
index 0725a7ebf..ae99fa39c 100644
--- a/core/hashfuncs.h
+++ b/core/hashfuncs.h
@@ -27,6 +27,7 @@
/* TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE */
/* SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE. */
/*************************************************************************/
+
#ifndef HASHFUNCS_H
#define HASHFUNCS_H
diff --git a/core/helper/math_fieldwise.h b/core/helper/math_fieldwise.h
index c883c44f8..0e7cc3ea4 100644
--- a/core/helper/math_fieldwise.h
+++ b/core/helper/math_fieldwise.h
@@ -27,6 +27,7 @@
/* TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE */
/* SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE. */
/*************************************************************************/
+
#ifndef MATH_FIELDWISE_H
#define MATH_FIELDWISE_H
diff --git a/core/helper/value_evaluator.h b/core/helper/value_evaluator.h
index 954d22951..39177a782 100644
--- a/core/helper/value_evaluator.h
+++ b/core/helper/value_evaluator.h
@@ -27,6 +27,7 @@
/* TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE */
/* SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE. */
/*************************************************************************/
+
#ifndef VALUE_EVALUATOR_H
#define VALUE_EVALUATOR_H
diff --git a/core/image.cpp b/core/image.cpp
index 11429b878..07e705265 100644
--- a/core/image.cpp
+++ b/core/image.cpp
@@ -27,6 +27,7 @@
/* TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE */
/* SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE. */
/*************************************************************************/
+
#include "image.h"
#include "core/io/image_loader.h"
@@ -446,8 +447,6 @@ void Image::convert(Format p_new_format) {
Image new_img(width, height, 0, p_new_format);
- //int len=data.size();
-
PoolVector<uint8_t>::Read r = data.read();
PoolVector<uint8_t>::Write w = new_img.data.write();
@@ -695,6 +694,11 @@ void Image::resize_to_po2(bool p_square) {
void Image::resize(int p_width, int p_height, Interpolation p_interpolation) {
+ if (data.size() == 0) {
+ ERR_EXPLAIN("Cannot resize image before creating it, use create() or create_from_data() first.");
+ ERR_FAIL();
+ }
+
if (!_can_modify(format)) {
ERR_EXPLAIN("Cannot resize in indexed, compressed or custom image formats.");
ERR_FAIL();
@@ -771,7 +775,7 @@ void Image::crop_from_point(int p_x, int p_y, int p_width, int p_height) {
ERR_FAIL_COND(p_y + p_height > MAX_HEIGHT);
/* to save memory, cropping should be done in-place, however, since this function
- will most likely either not be used much, or in critical areas, for now it wont, because
+ will most likely either not be used much, or in critical areas, for now it won't, because
it's a waste of time. */
if (p_width == width && p_height == height && p_x == 0 && p_y == 0)
diff --git a/core/image.h b/core/image.h
index 767f3c6ac..e962787ae 100644
--- a/core/image.h
+++ b/core/image.h
@@ -27,6 +27,7 @@
/* TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE */
/* SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE. */
/*************************************************************************/
+
#ifndef IMAGE_H
#define IMAGE_H
diff --git a/core/input_map.cpp b/core/input_map.cpp
index 7833aab3f..a9ea1d954 100644
--- a/core/input_map.cpp
+++ b/core/input_map.cpp
@@ -27,6 +27,7 @@
/* TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE */
/* SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE. */
/*************************************************************************/
+
#include "input_map.h"
#include "os/keyboard.h"
diff --git a/core/input_map.h b/core/input_map.h
index 12ac1b339..84d90f6f2 100644
--- a/core/input_map.h
+++ b/core/input_map.h
@@ -27,6 +27,7 @@
/* TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE */
/* SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE. */
/*************************************************************************/
+
#ifndef INPUT_MAP_H
#define INPUT_MAP_H
diff --git a/core/io/compression.cpp b/core/io/compression.cpp
index a4dbebe9f..bc3bfcf35 100644
--- a/core/io/compression.cpp
+++ b/core/io/compression.cpp
@@ -27,6 +27,7 @@
/* TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE */
/* SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE. */
/*************************************************************************/
+
#include "compression.h"
#include "os/copymem.h"
#include "project_settings.h"
diff --git a/core/io/compression.h b/core/io/compression.h
index 034c5ab70..a0ccd539c 100644
--- a/core/io/compression.h
+++ b/core/io/compression.h
@@ -27,6 +27,7 @@
/* TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE */
/* SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE. */
/*************************************************************************/
+
#ifndef COMPRESSION_H
#define COMPRESSION_H
diff --git a/core/io/config_file.cpp b/core/io/config_file.cpp
index 9a013cb77..aa06ae5cc 100644
--- a/core/io/config_file.cpp
+++ b/core/io/config_file.cpp
@@ -27,6 +27,7 @@
/* TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE */
/* SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE. */
/*************************************************************************/
+
#include "config_file.h"
#include "os/file_access.h"
#include "os/keyboard.h"
diff --git a/core/io/config_file.h b/core/io/config_file.h
index 2168e654d..ac749bed7 100644
--- a/core/io/config_file.h
+++ b/core/io/config_file.h
@@ -27,6 +27,7 @@
/* TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE */
/* SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE. */
/*************************************************************************/
+
#ifndef CONFIG_FILE_H
#define CONFIG_FILE_H
diff --git a/core/io/file_access_buffered.cpp b/core/io/file_access_buffered.cpp
index 442ab2c6e..dcaf99e24 100644
--- a/core/io/file_access_buffered.cpp
+++ b/core/io/file_access_buffered.cpp
@@ -27,6 +27,7 @@
/* TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE */
/* SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE. */
/*************************************************************************/
+
#include "file_access_buffered.h"
#include <string.h>
diff --git a/core/io/file_access_buffered.h b/core/io/file_access_buffered.h
index 2d6df5d48..f4ed47d6b 100644
--- a/core/io/file_access_buffered.h
+++ b/core/io/file_access_buffered.h
@@ -27,6 +27,7 @@
/* TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE */
/* SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE. */
/*************************************************************************/
+
#ifndef FILE_ACCESS_BUFFERED_H
#define FILE_ACCESS_BUFFERED_H
diff --git a/core/io/file_access_buffered_fa.h b/core/io/file_access_buffered_fa.h
index bb3d3f33f..493fa1c24 100644
--- a/core/io/file_access_buffered_fa.h
+++ b/core/io/file_access_buffered_fa.h
@@ -27,6 +27,7 @@
/* TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE */
/* SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE. */
/*************************************************************************/
+
#ifndef FILE_ACCESS_BUFFERED_FA_H
#define FILE_ACCESS_BUFFERED_FA_H
diff --git a/core/io/file_access_compressed.cpp b/core/io/file_access_compressed.cpp
index aabd70cc7..d6547ba19 100644
--- a/core/io/file_access_compressed.cpp
+++ b/core/io/file_access_compressed.cpp
@@ -27,6 +27,7 @@
/* TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE */
/* SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE. */
/*************************************************************************/
+
#include "file_access_compressed.h"
#include "print_string.h"
void FileAccessCompressed::configure(const String &p_magic, Compression::Mode p_mode, int p_block_size) {
diff --git a/core/io/file_access_compressed.h b/core/io/file_access_compressed.h
index 65eefbcd9..587f58a7c 100644
--- a/core/io/file_access_compressed.h
+++ b/core/io/file_access_compressed.h
@@ -27,6 +27,7 @@
/* TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE */
/* SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE. */
/*************************************************************************/
+
#ifndef FILE_ACCESS_COMPRESSED_H
#define FILE_ACCESS_COMPRESSED_H
diff --git a/core/io/file_access_encrypted.cpp b/core/io/file_access_encrypted.cpp
index 67151f693..221f457b7 100644
--- a/core/io/file_access_encrypted.cpp
+++ b/core/io/file_access_encrypted.cpp
@@ -27,6 +27,7 @@
/* TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE */
/* SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE. */
/*************************************************************************/
+
#include "file_access_encrypted.h"
#include "core/variant.h"
diff --git a/core/io/file_access_encrypted.h b/core/io/file_access_encrypted.h
index 002a124e8..b9365a9fd 100644
--- a/core/io/file_access_encrypted.h
+++ b/core/io/file_access_encrypted.h
@@ -27,6 +27,7 @@
/* TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE */
/* SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE. */
/*************************************************************************/
+
#ifndef FILE_ACCESS_ENCRYPTED_H
#define FILE_ACCESS_ENCRYPTED_H
diff --git a/core/io/file_access_memory.cpp b/core/io/file_access_memory.cpp
index 8812aa847..1aa1e4a59 100644
--- a/core/io/file_access_memory.cpp
+++ b/core/io/file_access_memory.cpp
@@ -27,6 +27,7 @@
/* TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE */
/* SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE. */
/*************************************************************************/
+
#include "file_access_memory.h"
#include "map.h"
diff --git a/core/io/file_access_memory.h b/core/io/file_access_memory.h
index 1d438409c..2136f4cc0 100644
--- a/core/io/file_access_memory.h
+++ b/core/io/file_access_memory.h
@@ -27,6 +27,7 @@
/* TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE */
/* SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE. */
/*************************************************************************/
+
#ifndef FILE_ACCESS_MEMORY_H
#define FILE_ACCESS_MEMORY_H
diff --git a/core/io/file_access_network.cpp b/core/io/file_access_network.cpp
index 1aa431dca..ef886cdb3 100644
--- a/core/io/file_access_network.cpp
+++ b/core/io/file_access_network.cpp
@@ -27,6 +27,7 @@
/* TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE */
/* SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE. */
/*************************************************************************/
+
#include "file_access_network.h"
#include "io/ip.h"
#include "marshalls.h"
@@ -82,7 +83,7 @@ int64_t FileAccessNetworkClient::get_64() {
void FileAccessNetworkClient::_thread_func() {
- client->set_nodelay(true);
+ client->set_no_delay(true);
while (!quit) {
DEBUG_PRINT("SEM WAIT - " + itos(sem->get()));
diff --git a/core/io/file_access_network.h b/core/io/file_access_network.h
index 4d8e8f1a9..be9bdb1af 100644
--- a/core/io/file_access_network.h
+++ b/core/io/file_access_network.h
@@ -27,6 +27,7 @@
/* TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE */
/* SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE. */
/*************************************************************************/
+
#ifndef FILE_ACCESS_NETWORK_H
#define FILE_ACCESS_NETWORK_H
diff --git a/core/io/file_access_pack.cpp b/core/io/file_access_pack.cpp
index 318e3ad75..1a16d0f61 100644
--- a/core/io/file_access_pack.cpp
+++ b/core/io/file_access_pack.cpp
@@ -27,6 +27,7 @@
/* TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE */
/* SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE. */
/*************************************************************************/
+
#include "file_access_pack.h"
#include "version.h"
diff --git a/core/io/file_access_pack.h b/core/io/file_access_pack.h
index 6c5fec149..8a40e6d78 100644
--- a/core/io/file_access_pack.h
+++ b/core/io/file_access_pack.h
@@ -27,6 +27,7 @@
/* TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE */
/* SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE. */
/*************************************************************************/
+
#ifndef FILE_ACCESS_PACK_H
#define FILE_ACCESS_PACK_H
diff --git a/core/io/file_access_zip.cpp b/core/io/file_access_zip.cpp
index c439ac7fa..7b6385c3f 100644
--- a/core/io/file_access_zip.cpp
+++ b/core/io/file_access_zip.cpp
@@ -27,6 +27,7 @@
/* TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE */
/* SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE. */
/*************************************************************************/
+
#ifdef MINIZIP_ENABLED
#include "file_access_zip.h"
diff --git a/core/io/file_access_zip.h b/core/io/file_access_zip.h
index b8f4a93e2..df83575f6 100644
--- a/core/io/file_access_zip.h
+++ b/core/io/file_access_zip.h
@@ -27,10 +27,11 @@
/* TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE */
/* SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE. */
/*************************************************************************/
+
#ifdef MINIZIP_ENABLED
-#ifndef FILE_ACCESS_Zip_H
-#define FILE_ACCESS_Zip_H
+#ifndef FILE_ACCESS_ZIP_H
+#define FILE_ACCESS_ZIP_H
#include "core/io/file_access_pack.h"
#include "map.h"
@@ -120,4 +121,4 @@ public:
#endif // FILE_ACCESS_ZIP_H
-#endif
+#endif // MINIZIP_ENABLED
diff --git a/core/io/http_client.cpp b/core/io/http_client.cpp
index 088c05dfa..a9eb9466b 100644
--- a/core/io/http_client.cpp
+++ b/core/io/http_client.cpp
@@ -27,6 +27,7 @@
/* TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE */
/* SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE. */
/*************************************************************************/
+
#include "http_client.h"
#include "io/stream_peer_ssl.h"
@@ -681,6 +682,9 @@ void HTTPClient::_bind_methods() {
ClassDB::bind_method(D_METHOD("query_string_from_dict", "fields"), &HTTPClient::query_string_from_dict);
+ ADD_PROPERTY(PropertyInfo(Variant::BOOL, "blocking_mode_enabled"), "set_blocking_mode", "is_blocking_mode_enabled");
+ ADD_PROPERTY(PropertyInfo(Variant::OBJECT, "connection", PROPERTY_HINT_RESOURCE_TYPE, "StreamPeer", 0), "set_connection", "get_connection");
+
BIND_ENUM_CONSTANT(METHOD_GET);
BIND_ENUM_CONSTANT(METHOD_HEAD);
BIND_ENUM_CONSTANT(METHOD_POST);
diff --git a/core/io/http_client.h b/core/io/http_client.h
index 0fcaf26fd..839012e70 100644
--- a/core/io/http_client.h
+++ b/core/io/http_client.h
@@ -27,6 +27,7 @@
/* TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE */
/* SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE. */
/*************************************************************************/
+
#ifndef HTTP_CLIENT_H
#define HTTP_CLIENT_H
diff --git a/core/io/image_loader.cpp b/core/io/image_loader.cpp
index c4cdb86c8..999c9a8ca 100644
--- a/core/io/image_loader.cpp
+++ b/core/io/image_loader.cpp
@@ -27,6 +27,7 @@
/* TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE */
/* SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE. */
/*************************************************************************/
+
#include "image_loader.h"
#include "print_string.h"
diff --git a/core/io/image_loader.h b/core/io/image_loader.h
index b147566ae..052a8b8a4 100644
--- a/core/io/image_loader.h
+++ b/core/io/image_loader.h
@@ -27,6 +27,7 @@
/* TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE */
/* SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE. */
/*************************************************************************/
+
#ifndef IMAGE_LOADER_H
#define IMAGE_LOADER_H
diff --git a/core/io/ip.cpp b/core/io/ip.cpp
index 9d55c5258..66bd96df4 100644
--- a/core/io/ip.cpp
+++ b/core/io/ip.cpp
@@ -27,6 +27,7 @@
/* TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE */
/* SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE. */
/*************************************************************************/
+
#include "ip.h"
#include "hash_map.h"
#include "os/semaphore.h"
diff --git a/core/io/ip.h b/core/io/ip.h
index 69a9b7fd6..d55b05b6f 100644
--- a/core/io/ip.h
+++ b/core/io/ip.h
@@ -27,6 +27,7 @@
/* TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE */
/* SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE. */
/*************************************************************************/
+
#ifndef IP_H
#define IP_H
diff --git a/core/io/ip_address.cpp b/core/io/ip_address.cpp
index 6495e0503..7261363ad 100644
--- a/core/io/ip_address.cpp
+++ b/core/io/ip_address.cpp
@@ -27,6 +27,7 @@
/* TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE */
/* SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE. */
/*************************************************************************/
+
#include "ip_address.h"
/*
IP_Address::operator Variant() const {
diff --git a/core/io/ip_address.h b/core/io/ip_address.h
index 7a1c1a17e..d7b031b96 100644
--- a/core/io/ip_address.h
+++ b/core/io/ip_address.h
@@ -27,6 +27,7 @@
/* TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE */
/* SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE. */
/*************************************************************************/
+
#ifndef IP_ADDRESS_H
#define IP_ADDRESS_H
diff --git a/core/io/json.cpp b/core/io/json.cpp
index 1cc44f855..7b2c5a62d 100644
--- a/core/io/json.cpp
+++ b/core/io/json.cpp
@@ -27,6 +27,7 @@
/* TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE */
/* SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE. */
/*************************************************************************/
+
#include "json.h"
#include "print_string.h"
diff --git a/core/io/json.h b/core/io/json.h
index f47e0c42c..9c1242379 100644
--- a/core/io/json.h
+++ b/core/io/json.h
@@ -27,6 +27,7 @@
/* TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE */
/* SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE. */
/*************************************************************************/
+
#ifndef JSON_H
#define JSON_H
diff --git a/core/io/marshalls.cpp b/core/io/marshalls.cpp
index 3bdd4454e..9e2128778 100644
--- a/core/io/marshalls.cpp
+++ b/core/io/marshalls.cpp
@@ -27,6 +27,7 @@
/* TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE */
/* SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE. */
/*************************************************************************/
+
#include "marshalls.h"
#include "os/keyboard.h"
#include "print_string.h"
@@ -332,7 +333,7 @@ Error decode_variant(Variant &r_variant, const uint8_t *p_buffer, int p_len, int
len -= 12;
buf += 12;
- if (flags & 2) // Obsolete format with property seperate from subpath
+ if (flags & 2) // Obsolete format with property separate from subpath
subnamecount++;
uint32_t total = namecount + subnamecount;
diff --git a/core/io/marshalls.h b/core/io/marshalls.h
index b7ce1d39e..381e4e3d2 100644
--- a/core/io/marshalls.h
+++ b/core/io/marshalls.h
@@ -27,6 +27,7 @@
/* TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE */
/* SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE. */
/*************************************************************************/
+
#ifndef MARSHALLS_H
#define MARSHALLS_H
diff --git a/core/io/networked_multiplayer_peer.cpp b/core/io/networked_multiplayer_peer.cpp
index 95a2048b0..6354eef8b 100644
--- a/core/io/networked_multiplayer_peer.cpp
+++ b/core/io/networked_multiplayer_peer.cpp
@@ -27,11 +27,13 @@
/* TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE */
/* SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE. */
/*************************************************************************/
+
#include "networked_multiplayer_peer.h"
void NetworkedMultiplayerPeer::_bind_methods() {
ClassDB::bind_method(D_METHOD("set_transfer_mode", "mode"), &NetworkedMultiplayerPeer::set_transfer_mode);
+ ClassDB::bind_method(D_METHOD("get_transfer_mode"), &NetworkedMultiplayerPeer::get_transfer_mode);
ClassDB::bind_method(D_METHOD("set_target_peer", "id"), &NetworkedMultiplayerPeer::set_target_peer);
ClassDB::bind_method(D_METHOD("get_packet_peer"), &NetworkedMultiplayerPeer::get_packet_peer);
@@ -44,6 +46,9 @@ void NetworkedMultiplayerPeer::_bind_methods() {
ClassDB::bind_method(D_METHOD("set_refuse_new_connections", "enable"), &NetworkedMultiplayerPeer::set_refuse_new_connections);
ClassDB::bind_method(D_METHOD("is_refusing_new_connections"), &NetworkedMultiplayerPeer::is_refusing_new_connections);
+ ADD_PROPERTY(PropertyInfo(Variant::BOOL, "refuse_new_connections"), "set_refuse_new_connections", "is_refusing_new_connections");
+ ADD_PROPERTY(PropertyInfo(Variant::INT, "transfer_mode", PROPERTY_HINT_ENUM, "Unreliable,Unreliable Ordered,Reliable"), "set_transfer_mode", "get_transfer_mode");
+
BIND_ENUM_CONSTANT(TRANSFER_MODE_UNRELIABLE);
BIND_ENUM_CONSTANT(TRANSFER_MODE_UNRELIABLE_ORDERED);
BIND_ENUM_CONSTANT(TRANSFER_MODE_RELIABLE);
diff --git a/core/io/networked_multiplayer_peer.h b/core/io/networked_multiplayer_peer.h
index 3094aa8b9..66089c27b 100644
--- a/core/io/networked_multiplayer_peer.h
+++ b/core/io/networked_multiplayer_peer.h
@@ -27,6 +27,7 @@
/* TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE */
/* SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE. */
/*************************************************************************/
+
#ifndef NETWORKED_MULTIPLAYER_PEER_H
#define NETWORKED_MULTIPLAYER_PEER_H
@@ -57,6 +58,7 @@ public:
};
virtual void set_transfer_mode(TransferMode p_mode) = 0;
+ virtual TransferMode get_transfer_mode() const = 0;
virtual void set_target_peer(int p_peer_id) = 0;
virtual int get_packet_peer() const = 0;
diff --git a/core/io/packet_peer.cpp b/core/io/packet_peer.cpp
index 472f6296d..bd851ebb6 100644
--- a/core/io/packet_peer.cpp
+++ b/core/io/packet_peer.cpp
@@ -27,6 +27,7 @@
/* TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE */
/* SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE. */
/*************************************************************************/
+
#include "packet_peer.h"
#include "io/marshalls.h"
@@ -140,6 +141,8 @@ void PacketPeer::_bind_methods() {
ClassDB::bind_method(D_METHOD("set_allow_object_decoding", "enable"), &PacketPeer::set_allow_object_decoding);
ClassDB::bind_method(D_METHOD("is_object_decoding_allowed"), &PacketPeer::is_object_decoding_allowed);
+
+ ADD_PROPERTY(PropertyInfo(Variant::BOOL, "allow_object_decoding"), "set_allow_object_decoding", "is_object_decoding_allowed");
};
/***************/
@@ -152,11 +155,16 @@ void PacketPeerStream::_set_stream_peer(REF p_peer) {
void PacketPeerStream::_bind_methods() {
- ClassDB::bind_method(D_METHOD("set_stream_peer", "peer"), &PacketPeerStream::_set_stream_peer);
+ ClassDB::bind_method(D_METHOD("set_stream_peer", "peer"), &PacketPeerStream::set_stream_peer);
+ ClassDB::bind_method(D_METHOD("get_stream_peer"), &PacketPeerStream::get_stream_peer);
ClassDB::bind_method(D_METHOD("set_input_buffer_max_size", "max_size_bytes"), &PacketPeerStream::set_input_buffer_max_size);
ClassDB::bind_method(D_METHOD("set_output_buffer_max_size", "max_size_bytes"), &PacketPeerStream::set_output_buffer_max_size);
ClassDB::bind_method(D_METHOD("get_input_buffer_max_size"), &PacketPeerStream::get_input_buffer_max_size);
ClassDB::bind_method(D_METHOD("get_output_buffer_max_size"), &PacketPeerStream::get_output_buffer_max_size);
+
+ ADD_PROPERTY(PropertyInfo(Variant::INT, "input_buffer_max_size"), "set_input_buffer_max_size", "get_input_buffer_max_size");
+ ADD_PROPERTY(PropertyInfo(Variant::INT, "output_buffer_max_size"), "set_output_buffer_max_size", "get_output_buffer_max_size");
+ ADD_PROPERTY(PropertyInfo(Variant::OBJECT, "stream_peer", PROPERTY_HINT_RESOURCE_TYPE, "StreamPeer", 0), "set_stream_peer", "get_stream_peer");
}
Error PacketPeerStream::_poll_buffer() const {
@@ -261,6 +269,11 @@ void PacketPeerStream::set_stream_peer(const Ref<StreamPeer> &p_peer) {
peer = p_peer;
}
+Ref<StreamPeer> PacketPeerStream::get_stream_peer() const {
+
+ return peer;
+}
+
void PacketPeerStream::set_input_buffer_max_size(int p_max_size) {
//warning may lose packets
diff --git a/core/io/packet_peer.h b/core/io/packet_peer.h
index 3e9373a18..b10152e96 100644
--- a/core/io/packet_peer.h
+++ b/core/io/packet_peer.h
@@ -27,6 +27,7 @@
/* TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE */
/* SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE. */
/*************************************************************************/
+
#ifndef PACKET_PEER_H
#define PACKET_PEER_H
@@ -97,6 +98,7 @@ public:
virtual int get_max_packet_size() const;
void set_stream_peer(const Ref<StreamPeer> &p_peer);
+ Ref<StreamPeer> get_stream_peer() const;
void set_input_buffer_max_size(int p_max_size);
int get_input_buffer_max_size() const;
void set_output_buffer_max_size(int p_max_size);
diff --git a/core/io/packet_peer_udp.cpp b/core/io/packet_peer_udp.cpp
index 708c7d456..bfbea1558 100644
--- a/core/io/packet_peer_udp.cpp
+++ b/core/io/packet_peer_udp.cpp
@@ -27,6 +27,7 @@
/* TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE */
/* SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE. */
/*************************************************************************/
+
#include "packet_peer_udp.h"
#include "io/ip.h"
diff --git a/core/io/packet_peer_udp.h b/core/io/packet_peer_udp.h
index d0a1bcf19..035f4ad1c 100644
--- a/core/io/packet_peer_udp.h
+++ b/core/io/packet_peer_udp.h
@@ -27,6 +27,7 @@
/* TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE */
/* SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE. */
/*************************************************************************/
+
#ifndef PACKET_PEER_UDP_H
#define PACKET_PEER_UDP_H
diff --git a/core/io/pck_packer.cpp b/core/io/pck_packer.cpp
index 13a36813c..596060221 100644
--- a/core/io/pck_packer.cpp
+++ b/core/io/pck_packer.cpp
@@ -27,6 +27,7 @@
/* TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE */
/* SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE. */
/*************************************************************************/
+
#include "pck_packer.h"
#include "core/os/file_access.h"
diff --git a/core/io/pck_packer.h b/core/io/pck_packer.h
index e725155ed..4fcf9a882 100644
--- a/core/io/pck_packer.h
+++ b/core/io/pck_packer.h
@@ -27,6 +27,10 @@
/* TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE */
/* SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE. */
/*************************************************************************/
+
+#ifndef PCK_PACKER_H
+#define PCK_PACKER_H
+
#include "core/reference.h"
class FileAccess;
@@ -57,3 +61,5 @@ public:
PCKPacker();
~PCKPacker();
};
+
+#endif // PCK_PACKER_H
diff --git a/core/io/resource_format_binary.cpp b/core/io/resource_format_binary.cpp
index d652720ad..15c4835dc 100644
--- a/core/io/resource_format_binary.cpp
+++ b/core/io/resource_format_binary.cpp
@@ -27,6 +27,7 @@
/* TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE */
/* SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE. */
/*************************************************************************/
+
#include "resource_format_binary.h"
#include "core/image.h"
diff --git a/core/io/resource_format_binary.h b/core/io/resource_format_binary.h
index 0329d0298..021f7f6a2 100644
--- a/core/io/resource_format_binary.h
+++ b/core/io/resource_format_binary.h
@@ -27,6 +27,7 @@
/* TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE */
/* SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE. */
/*************************************************************************/
+
#ifndef RESOURCE_FORMAT_BINARY_H
#define RESOURCE_FORMAT_BINARY_H
diff --git a/core/io/resource_import.cpp b/core/io/resource_import.cpp
index 8d21f41ea..cfe665550 100644
--- a/core/io/resource_import.cpp
+++ b/core/io/resource_import.cpp
@@ -27,6 +27,7 @@
/* TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE */
/* SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE. */
/*************************************************************************/
+
#include "resource_import.h"
#include "os/os.h"
@@ -137,9 +138,9 @@ void ResourceFormatImporter::get_recognized_extensions(List<String> *p_extension
Set<String> found;
- for (Set<Ref<ResourceImporter> >::Element *E = importers.front(); E; E = E->next()) {
+ for (int i = 0; i < importers.size(); i++) {
List<String> local_exts;
- E->get()->get_recognized_extensions(&local_exts);
+ importers[i]->get_recognized_extensions(&local_exts);
for (List<String>::Element *F = local_exts.front(); F; F = F->next()) {
if (!found.has(F->get())) {
p_extensions->push_back(F->get());
@@ -157,8 +158,8 @@ void ResourceFormatImporter::get_recognized_extensions_for_type(const String &p_
Set<String> found;
- for (Set<Ref<ResourceImporter> >::Element *E = importers.front(); E; E = E->next()) {
- String res_type = E->get()->get_resource_type();
+ for (int i = 0; i < importers.size(); i++) {
+ String res_type = importers[i]->get_resource_type();
if (res_type == String())
continue;
@@ -166,7 +167,7 @@ void ResourceFormatImporter::get_recognized_extensions_for_type(const String &p_
continue;
List<String> local_exts;
- E->get()->get_recognized_extensions(&local_exts);
+ importers[i]->get_recognized_extensions(&local_exts);
for (List<String>::Element *F = local_exts.front(); F; F = F->next()) {
if (!found.has(F->get())) {
p_extensions->push_back(F->get());
@@ -211,9 +212,9 @@ int ResourceFormatImporter::get_import_order(const String &p_path) const {
bool ResourceFormatImporter::handles_type(const String &p_type) const {
- for (Set<Ref<ResourceImporter> >::Element *E = importers.front(); E; E = E->next()) {
+ for (int i = 0; i < importers.size(); i++) {
- String res_type = E->get()->get_resource_type();
+ String res_type = importers[i]->get_resource_type();
if (res_type == String())
continue;
if (ClassDB::is_parent_class(res_type, p_type))
@@ -318,9 +319,9 @@ void ResourceFormatImporter::get_dependencies(const String &p_path, List<String>
Ref<ResourceImporter> ResourceFormatImporter::get_importer_by_name(const String &p_name) const {
- for (Set<Ref<ResourceImporter> >::Element *E = importers.front(); E; E = E->next()) {
- if (E->get()->get_importer_name() == p_name) {
- return E->get();
+ for (int i = 0; i < importers.size(); i++) {
+ if (importers[i]->get_importer_name() == p_name) {
+ return importers[i];
}
}
@@ -329,12 +330,12 @@ Ref<ResourceImporter> ResourceFormatImporter::get_importer_by_name(const String
void ResourceFormatImporter::get_importers_for_extension(const String &p_extension, List<Ref<ResourceImporter> > *r_importers) {
- for (Set<Ref<ResourceImporter> >::Element *E = importers.front(); E; E = E->next()) {
+ for (int i = 0; i < importers.size(); i++) {
List<String> local_exts;
- E->get()->get_recognized_extensions(&local_exts);
+ importers[i]->get_recognized_extensions(&local_exts);
for (List<String>::Element *F = local_exts.front(); F; F = F->next()) {
if (p_extension.to_lower() == F->get()) {
- r_importers->push_back(E->get());
+ r_importers->push_back(importers[i]);
}
}
}
@@ -345,14 +346,14 @@ Ref<ResourceImporter> ResourceFormatImporter::get_importer_by_extension(const St
Ref<ResourceImporter> importer;
float priority = 0;
- for (Set<Ref<ResourceImporter> >::Element *E = importers.front(); E; E = E->next()) {
+ for (int i = 0; i < importers.size(); i++) {
List<String> local_exts;
- E->get()->get_recognized_extensions(&local_exts);
+ importers[i]->get_recognized_extensions(&local_exts);
for (List<String>::Element *F = local_exts.front(); F; F = F->next()) {
- if (p_extension.to_lower() == F->get() && E->get()->get_priority() > priority) {
- importer = E->get();
- priority = E->get()->get_priority();
+ if (p_extension.to_lower() == F->get() && importers[i]->get_priority() > priority) {
+ importer = importers[i];
+ priority = importers[i]->get_priority();
}
}
}
diff --git a/core/io/resource_import.h b/core/io/resource_import.h
index 358358409..80e0743ed 100644
--- a/core/io/resource_import.h
+++ b/core/io/resource_import.h
@@ -27,6 +27,7 @@
/* TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE */
/* SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE. */
/*************************************************************************/
+
#ifndef RESOURCE_IMPORT_H
#define RESOURCE_IMPORT_H
@@ -45,7 +46,7 @@ class ResourceFormatImporter : public ResourceFormatLoader {
static ResourceFormatImporter *singleton;
- Set<Ref<ResourceImporter> > importers;
+ Vector<Ref<ResourceImporter> > importers;
public:
static ResourceFormatImporter *get_singleton() { return singleton; }
@@ -64,7 +65,7 @@ public:
String get_internal_resource_path(const String &p_path) const;
void get_internal_resource_path_list(const String &p_path, List<String> *r_paths);
- void add_importer(const Ref<ResourceImporter> &p_importer) { importers.insert(p_importer); }
+ void add_importer(const Ref<ResourceImporter> &p_importer) { importers.push_back(p_importer); }
void remove_importer(const Ref<ResourceImporter> &p_importer) { importers.erase(p_importer); }
Ref<ResourceImporter> get_importer_by_name(const String &p_name) const;
Ref<ResourceImporter> get_importer_by_extension(const String &p_extension) const;
diff --git a/core/io/resource_loader.cpp b/core/io/resource_loader.cpp
index 527e6997e..1351030d1 100644
--- a/core/io/resource_loader.cpp
+++ b/core/io/resource_loader.cpp
@@ -27,6 +27,7 @@
/* TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE */
/* SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE. */
/*************************************************************************/
+
#include "resource_loader.h"
#include "io/resource_import.h"
#include "os/file_access.h"
@@ -201,7 +202,8 @@ RES ResourceLoader::load(const String &p_path, const String &p_type_hint, bool p
if (OS::get_singleton()->is_stdout_verbose())
print_line("load resource: " + local_path + " (cached)");
-
+ if (r_error)
+ *r_error = OK;
return RES(ResourceCache::get(local_path));
}
diff --git a/core/io/resource_loader.h b/core/io/resource_loader.h
index fad768778..9be82abb4 100644
--- a/core/io/resource_loader.h
+++ b/core/io/resource_loader.h
@@ -27,6 +27,7 @@
/* TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE */
/* SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE. */
/*************************************************************************/
+
#ifndef RESOURCE_LOADER_H
#define RESOURCE_LOADER_H
diff --git a/core/io/resource_saver.cpp b/core/io/resource_saver.cpp
index 8a0ccd90c..609dd7e93 100644
--- a/core/io/resource_saver.cpp
+++ b/core/io/resource_saver.cpp
@@ -27,6 +27,7 @@
/* TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE */
/* SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE. */
/*************************************************************************/
+
#include "resource_saver.h"
#include "os/file_access.h"
#include "project_settings.h"
diff --git a/core/io/resource_saver.h b/core/io/resource_saver.h
index fd4d563e4..396f37d41 100644
--- a/core/io/resource_saver.h
+++ b/core/io/resource_saver.h
@@ -27,6 +27,7 @@
/* TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE */
/* SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE. */
/*************************************************************************/
+
#ifndef RESOURCE_SAVER_H
#define RESOURCE_SAVER_H
diff --git a/core/io/stream_peer.cpp b/core/io/stream_peer.cpp
index b0fd229ac..f6c4948fc 100644
--- a/core/io/stream_peer.cpp
+++ b/core/io/stream_peer.cpp
@@ -27,6 +27,7 @@
/* TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE */
/* SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE. */
/*************************************************************************/
+
#include "stream_peer.h"
#include "io/marshalls.h"
@@ -374,18 +375,18 @@ void StreamPeer::_bind_methods() {
ClassDB::bind_method(D_METHOD("set_big_endian", "enable"), &StreamPeer::set_big_endian);
ClassDB::bind_method(D_METHOD("is_big_endian_enabled"), &StreamPeer::is_big_endian_enabled);
- ClassDB::bind_method(D_METHOD("put_8", "val"), &StreamPeer::put_8);
- ClassDB::bind_method(D_METHOD("put_u8", "val"), &StreamPeer::put_u8);
- ClassDB::bind_method(D_METHOD("put_16", "val"), &StreamPeer::put_16);
- ClassDB::bind_method(D_METHOD("put_u16", "val"), &StreamPeer::put_u16);
- ClassDB::bind_method(D_METHOD("put_32", "val"), &StreamPeer::put_32);
- ClassDB::bind_method(D_METHOD("put_u32", "val"), &StreamPeer::put_u32);
- ClassDB::bind_method(D_METHOD("put_64", "val"), &StreamPeer::put_64);
- ClassDB::bind_method(D_METHOD("put_u64", "val"), &StreamPeer::put_u64);
- ClassDB::bind_method(D_METHOD("put_float", "val"), &StreamPeer::put_float);
- ClassDB::bind_method(D_METHOD("put_double", "val"), &StreamPeer::put_double);
- ClassDB::bind_method(D_METHOD("put_utf8_string", "val"), &StreamPeer::put_utf8_string);
- ClassDB::bind_method(D_METHOD("put_var", "val"), &StreamPeer::put_var);
+ ClassDB::bind_method(D_METHOD("put_8", "value"), &StreamPeer::put_8);
+ ClassDB::bind_method(D_METHOD("put_u8", "value"), &StreamPeer::put_u8);
+ ClassDB::bind_method(D_METHOD("put_16", "value"), &StreamPeer::put_16);
+ ClassDB::bind_method(D_METHOD("put_u16", "value"), &StreamPeer::put_u16);
+ ClassDB::bind_method(D_METHOD("put_32", "value"), &StreamPeer::put_32);
+ ClassDB::bind_method(D_METHOD("put_u32", "value"), &StreamPeer::put_u32);
+ ClassDB::bind_method(D_METHOD("put_64", "value"), &StreamPeer::put_64);
+ ClassDB::bind_method(D_METHOD("put_u64", "value"), &StreamPeer::put_u64);
+ ClassDB::bind_method(D_METHOD("put_float", "value"), &StreamPeer::put_float);
+ ClassDB::bind_method(D_METHOD("put_double", "value"), &StreamPeer::put_double);
+ ClassDB::bind_method(D_METHOD("put_utf8_string", "value"), &StreamPeer::put_utf8_string);
+ ClassDB::bind_method(D_METHOD("put_var", "value"), &StreamPeer::put_var);
ClassDB::bind_method(D_METHOD("get_8"), &StreamPeer::get_8);
ClassDB::bind_method(D_METHOD("get_u8"), &StreamPeer::get_u8);
@@ -400,6 +401,8 @@ void StreamPeer::_bind_methods() {
ClassDB::bind_method(D_METHOD("get_string", "bytes"), &StreamPeer::get_string);
ClassDB::bind_method(D_METHOD("get_utf8_string", "bytes"), &StreamPeer::get_utf8_string);
ClassDB::bind_method(D_METHOD("get_var"), &StreamPeer::get_var);
+
+ ADD_PROPERTY(PropertyInfo(Variant::BOOL, "big_endian"), "set_big_endian", "is_big_endian_enabled");
}
////////////////////////////////
@@ -413,6 +416,8 @@ void StreamPeerBuffer::_bind_methods() {
ClassDB::bind_method(D_METHOD("get_data_array"), &StreamPeerBuffer::get_data_array);
ClassDB::bind_method(D_METHOD("clear"), &StreamPeerBuffer::clear);
ClassDB::bind_method(D_METHOD("duplicate"), &StreamPeerBuffer::duplicate);
+
+ ADD_PROPERTY(PropertyInfo(Variant::POOL_BYTE_ARRAY, "data_array"), "set_data_array", "get_data_array");
}
Error StreamPeerBuffer::put_data(const uint8_t *p_data, int p_bytes) {
diff --git a/core/io/stream_peer.h b/core/io/stream_peer.h
index 212bff0e3..ff9ae788e 100644
--- a/core/io/stream_peer.h
+++ b/core/io/stream_peer.h
@@ -27,6 +27,7 @@
/* TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE */
/* SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE. */
/*************************************************************************/
+
#ifndef STREAM_PEER_H
#define STREAM_PEER_H
diff --git a/core/io/stream_peer_ssl.cpp b/core/io/stream_peer_ssl.cpp
index f92b57a04..633b35310 100644
--- a/core/io/stream_peer_ssl.cpp
+++ b/core/io/stream_peer_ssl.cpp
@@ -27,6 +27,7 @@
/* TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE */
/* SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE. */
/*************************************************************************/
+
#include "stream_peer_ssl.h"
StreamPeerSSL *(*StreamPeerSSL::_create)() = NULL;
diff --git a/core/io/stream_peer_ssl.h b/core/io/stream_peer_ssl.h
index bb4d2edce..e4d14ebdf 100644
--- a/core/io/stream_peer_ssl.h
+++ b/core/io/stream_peer_ssl.h
@@ -27,6 +27,7 @@
/* TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE */
/* SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE. */
/*************************************************************************/
+
#ifndef STREAM_PEER_SSL_H
#define STREAM_PEER_SSL_H
diff --git a/core/io/stream_peer_tcp.cpp b/core/io/stream_peer_tcp.cpp
index 0524a3590..5d008904f 100644
--- a/core/io/stream_peer_tcp.cpp
+++ b/core/io/stream_peer_tcp.cpp
@@ -27,6 +27,7 @@
/* TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE */
/* SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE. */
/*************************************************************************/
+
#include "stream_peer_tcp.h"
StreamPeerTCP *(*StreamPeerTCP::_create)() = NULL;
@@ -54,6 +55,7 @@ void StreamPeerTCP::_bind_methods() {
ClassDB::bind_method(D_METHOD("get_connected_host"), &StreamPeerTCP::get_connected_host);
ClassDB::bind_method(D_METHOD("get_connected_port"), &StreamPeerTCP::get_connected_port);
ClassDB::bind_method(D_METHOD("disconnect_from_host"), &StreamPeerTCP::disconnect_from_host);
+ ClassDB::bind_method(D_METHOD("set_no_delay", "enabled"), &StreamPeerTCP::set_no_delay);
BIND_ENUM_CONSTANT(STATUS_NONE);
BIND_ENUM_CONSTANT(STATUS_CONNECTING);
diff --git a/core/io/stream_peer_tcp.h b/core/io/stream_peer_tcp.h
index 9a14f57c2..8a16d820f 100644
--- a/core/io/stream_peer_tcp.h
+++ b/core/io/stream_peer_tcp.h
@@ -27,6 +27,7 @@
/* TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE */
/* SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE. */
/*************************************************************************/
+
#ifndef STREAM_PEER_TCP_H
#define STREAM_PEER_TCP_H
@@ -64,7 +65,7 @@ public:
virtual void disconnect_from_host() = 0;
virtual IP_Address get_connected_host() const = 0;
virtual uint16_t get_connected_port() const = 0;
- virtual void set_nodelay(bool p_enabled) = 0;
+ virtual void set_no_delay(bool p_enabled) = 0;
static Ref<StreamPeerTCP> create_ref();
static StreamPeerTCP *create();
diff --git a/core/io/tcp_server.cpp b/core/io/tcp_server.cpp
index 5d33cd6f1..5916d5839 100644
--- a/core/io/tcp_server.cpp
+++ b/core/io/tcp_server.cpp
@@ -27,6 +27,7 @@
/* TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE */
/* SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE. */
/*************************************************************************/
+
#include "tcp_server.h"
TCP_Server *(*TCP_Server::_create)() = NULL;
diff --git a/core/io/tcp_server.h b/core/io/tcp_server.h
index 28c80f76f..a250e8b24 100644
--- a/core/io/tcp_server.h
+++ b/core/io/tcp_server.h
@@ -27,6 +27,7 @@
/* TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE */
/* SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE. */
/*************************************************************************/
+
#ifndef TCP_SERVER_H
#define TCP_SERVER_H
diff --git a/core/io/translation_loader_po.cpp b/core/io/translation_loader_po.cpp
index 0f62dbeb9..e01e2a84c 100644
--- a/core/io/translation_loader_po.cpp
+++ b/core/io/translation_loader_po.cpp
@@ -27,6 +27,7 @@
/* TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE */
/* SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE. */
/*************************************************************************/
+
#include "translation_loader_po.h"
#include "os/file_access.h"
#include "translation.h"
diff --git a/core/io/translation_loader_po.h b/core/io/translation_loader_po.h
index 82a2da103..33cf9bd8b 100644
--- a/core/io/translation_loader_po.h
+++ b/core/io/translation_loader_po.h
@@ -27,6 +27,7 @@
/* TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE */
/* SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE. */
/*************************************************************************/
+
#ifndef TRANSLATION_LOADER_PO_H
#define TRANSLATION_LOADER_PO_H
diff --git a/core/io/xml_parser.cpp b/core/io/xml_parser.cpp
index a88150fa3..33c9b56d5 100644
--- a/core/io/xml_parser.cpp
+++ b/core/io/xml_parser.cpp
@@ -27,6 +27,7 @@
/* TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE */
/* SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE. */
/*************************************************************************/
+
#include "xml_parser.h"
#include "print_string.h"
//#define DEBUG_XML
diff --git a/core/io/xml_parser.h b/core/io/xml_parser.h
index 62d2d2bc9..297b57ffd 100644
--- a/core/io/xml_parser.h
+++ b/core/io/xml_parser.h
@@ -27,6 +27,7 @@
/* TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE */
/* SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE. */
/*************************************************************************/
+
#ifndef XML_PARSER_H
#define XML_PARSER_H
diff --git a/core/io/zip_io.h b/core/io/zip_io.h
index d3c1d1fc5..3a7fdb030 100644
--- a/core/io/zip_io.h
+++ b/core/io/zip_io.h
@@ -27,6 +27,7 @@
/* TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE */
/* SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE. */
/*************************************************************************/
+
#ifndef ZIP_IO_H
#define ZIP_IO_H
diff --git a/core/list.h b/core/list.h
index 0c748aeb8..f977df463 100644
--- a/core/list.h
+++ b/core/list.h
@@ -27,6 +27,7 @@
/* TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE */
/* SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE. */
/*************************************************************************/
+
#ifndef GLOBALS_LIST_H
#define GLOBALS_LIST_H
@@ -387,7 +388,7 @@ public:
};
/**
- * return wether the list is empty
+ * return whether the list is empty
*/
_FORCE_INLINE_ bool empty() const {
diff --git a/core/map.h b/core/map.h
index 1e47b4262..5ff269c26 100644
--- a/core/map.h
+++ b/core/map.h
@@ -27,6 +27,7 @@
/* TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE */
/* SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE. */
/*************************************************************************/
+
#ifndef MAP_H
#define MAP_H
diff --git a/core/math/a_star.cpp b/core/math/a_star.cpp
index cb90116d6..6908d7831 100644
--- a/core/math/a_star.cpp
+++ b/core/math/a_star.cpp
@@ -27,6 +27,7 @@
/* TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE */
/* SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE. */
/*************************************************************************/
+
#include "a_star.h"
#include "geometry.h"
#include "scene/scene_string_names.h"
diff --git a/core/math/a_star.h b/core/math/a_star.h
index 563f82826..f89e17c7b 100644
--- a/core/math/a_star.h
+++ b/core/math/a_star.h
@@ -27,6 +27,7 @@
/* TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE */
/* SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE. */
/*************************************************************************/
+
#ifndef ASTAR_H
#define ASTAR_H
diff --git a/core/math/aabb.cpp b/core/math/aabb.cpp
index a6e5ced29..cff19f990 100644
--- a/core/math/aabb.cpp
+++ b/core/math/aabb.cpp
@@ -27,6 +27,7 @@
/* TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE */
/* SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE. */
/*************************************************************************/
+
#include "aabb.h"
#include "print_string.h"
diff --git a/core/math/aabb.h b/core/math/aabb.h
index ff4933720..39b8f403e 100644
--- a/core/math/aabb.h
+++ b/core/math/aabb.h
@@ -27,6 +27,7 @@
/* TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE */
/* SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE. */
/*************************************************************************/
+
#ifndef AABB_H
#define AABB_H
diff --git a/core/math/audio_frame.cpp b/core/math/audio_frame.cpp
index d22b0f05f..eff817bba 100644
--- a/core/math/audio_frame.cpp
+++ b/core/math/audio_frame.cpp
@@ -27,4 +27,5 @@
/* TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE */
/* SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE. */
/*************************************************************************/
+
#include "audio_frame.h"
diff --git a/core/math/audio_frame.h b/core/math/audio_frame.h
index fd58848c0..67ba025e1 100644
--- a/core/math/audio_frame.h
+++ b/core/math/audio_frame.h
@@ -27,6 +27,7 @@
/* TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE */
/* SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE. */
/*************************************************************************/
+
#ifndef AUDIOFRAME_H
#define AUDIOFRAME_H
diff --git a/core/math/bsp_tree.cpp b/core/math/bsp_tree.cpp
index 5d8ac000a..b1424e1d7 100644
--- a/core/math/bsp_tree.cpp
+++ b/core/math/bsp_tree.cpp
@@ -27,6 +27,7 @@
/* TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE */
/* SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE. */
/*************************************************************************/
+
#include "bsp_tree.h"
#include "error_macros.h"
#include "print_string.h"
diff --git a/core/math/bsp_tree.h b/core/math/bsp_tree.h
index 6a7b577fd..fb16818ae 100644
--- a/core/math/bsp_tree.h
+++ b/core/math/bsp_tree.h
@@ -27,6 +27,7 @@
/* TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE */
/* SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE. */
/*************************************************************************/
+
#ifndef BSP_TREE_H
#define BSP_TREE_H
diff --git a/core/math/camera_matrix.cpp b/core/math/camera_matrix.cpp
index 8714a0733..1ab9b3532 100644
--- a/core/math/camera_matrix.cpp
+++ b/core/math/camera_matrix.cpp
@@ -27,6 +27,7 @@
/* TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE */
/* SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE. */
/*************************************************************************/
+
#include "camera_matrix.h"
#include "math_funcs.h"
#include "print_string.h"
diff --git a/core/math/camera_matrix.h b/core/math/camera_matrix.h
index 9dde244e5..226b4d572 100644
--- a/core/math/camera_matrix.h
+++ b/core/math/camera_matrix.h
@@ -27,6 +27,7 @@
/* TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE */
/* SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE. */
/*************************************************************************/
+
#ifndef CAMERA_MATRIX_H
#define CAMERA_MATRIX_H
diff --git a/core/math/face3.cpp b/core/math/face3.cpp
index e76719f73..801f2a3b4 100644
--- a/core/math/face3.cpp
+++ b/core/math/face3.cpp
@@ -27,6 +27,7 @@
/* TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE */
/* SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE. */
/*************************************************************************/
+
#include "face3.h"
#include "geometry.h"
diff --git a/core/math/face3.h b/core/math/face3.h
index dd4cb25c8..faed0fa8d 100644
--- a/core/math/face3.h
+++ b/core/math/face3.h
@@ -27,6 +27,7 @@
/* TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE */
/* SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE. */
/*************************************************************************/
+
#ifndef FACE3_H
#define FACE3_H
diff --git a/core/math/geometry.cpp b/core/math/geometry.cpp
index b2145eca8..24f077a4c 100644
--- a/core/math/geometry.cpp
+++ b/core/math/geometry.cpp
@@ -27,9 +27,21 @@
/* TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE */
/* SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE. */
/*************************************************************************/
+
#include "geometry.h"
#include "print_string.h"
+bool Geometry::is_point_in_polygon(const Vector2 &p_point, const Vector<Vector2> &p_polygon) {
+
+ Vector<int> indices = Geometry::triangulate_polygon(p_polygon);
+ for (int j = 0; j + 3 <= indices.size(); j += 3) {
+ int i1 = indices[j], i2 = indices[j + 1], i3 = indices[j + 2];
+ if (Geometry::is_point_in_triangle(p_point, p_polygon[i1], p_polygon[i2], p_polygon[i3]))
+ return true;
+ }
+ return false;
+}
+
void Geometry::MeshData::optimize_vertices() {
Map<int, int> vtx_remap;
diff --git a/core/math/geometry.h b/core/math/geometry.h
index ac1a22289..ca4363e12 100644
--- a/core/math/geometry.h
+++ b/core/math/geometry.h
@@ -27,6 +27,7 @@
/* TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE */
/* SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE. */
/*************************************************************************/
+
#ifndef GEOMETRY_H
#define GEOMETRY_H
@@ -512,6 +513,9 @@ public:
return true;
}
+
+ static bool is_point_in_polygon(const Vector2 &p_point, const Vector<Vector2> &p_polygon);
+
static Vector2 get_closest_point_to_segment_uncapped_2d(const Vector2 &p_point, const Vector2 *p_segment) {
Vector2 p = p_point - p_segment[0];
diff --git a/core/math/math_2d.cpp b/core/math/math_2d.cpp
index 2c83bc197..d2e410199 100644
--- a/core/math/math_2d.cpp
+++ b/core/math/math_2d.cpp
@@ -27,6 +27,7 @@
/* TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE */
/* SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE. */
/*************************************************************************/
+
#include "math_2d.h"
real_t Vector2::angle() const {
diff --git a/core/math/math_2d.h b/core/math/math_2d.h
index 32e1bb915..8928349a4 100644
--- a/core/math/math_2d.h
+++ b/core/math/math_2d.h
@@ -27,6 +27,7 @@
/* TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE */
/* SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE. */
/*************************************************************************/
+
#ifndef MATH_2D_H
#define MATH_2D_H
diff --git a/core/math/math_defs.h b/core/math/math_defs.h
index e260bcd54..d3484d8d0 100644
--- a/core/math/math_defs.h
+++ b/core/math/math_defs.h
@@ -27,6 +27,7 @@
/* TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE */
/* SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE. */
/*************************************************************************/
+
#ifndef MATH_DEFS_H
#define MATH_DEFS_H
diff --git a/core/math/math_funcs.cpp b/core/math/math_funcs.cpp
index 1025e8be7..f060a8e4a 100644
--- a/core/math/math_funcs.cpp
+++ b/core/math/math_funcs.cpp
@@ -27,6 +27,7 @@
/* TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE */
/* SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE. */
/*************************************************************************/
+
#include "math_funcs.h"
#include "core/os/os.h"
diff --git a/core/math/math_funcs.h b/core/math/math_funcs.h
index d2d49d85d..e15abc6b5 100644
--- a/core/math/math_funcs.h
+++ b/core/math/math_funcs.h
@@ -27,6 +27,7 @@
/* TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE */
/* SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE. */
/*************************************************************************/
+
#ifndef MATH_FUNCS_H
#define MATH_FUNCS_H
diff --git a/core/math/matrix3.cpp b/core/math/matrix3.cpp
index e1708a44b..189b1ef9b 100644
--- a/core/math/matrix3.cpp
+++ b/core/math/matrix3.cpp
@@ -27,6 +27,7 @@
/* TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE */
/* SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE. */
/*************************************************************************/
+
#include "matrix3.h"
#include "math_funcs.h"
#include "os/copymem.h"
@@ -228,12 +229,24 @@ void Basis::scale(const Vector3 &p_scale) {
}
Basis Basis::scaled(const Vector3 &p_scale) const {
-
Basis m = *this;
m.scale(p_scale);
return m;
}
+void Basis::scale_local(const Vector3 &p_scale) {
+ // performs a scaling in object-local coordinate system:
+ // M -> (M.S.Minv).M = M.S.
+ *this = scaled_local(p_scale);
+}
+
+Basis Basis::scaled_local(const Vector3 &p_scale) const {
+ Basis b;
+ b.set_scale(p_scale);
+
+ return (*this) * b;
+}
+
void Basis::set_scale(const Vector3 &p_scale) {
set_axis(0, get_axis(0).normalized() * p_scale.x);
@@ -312,7 +325,8 @@ void Basis::rotate(const Vector3 &p_axis, real_t p_phi) {
}
void Basis::rotate_local(const Vector3 &p_axis, real_t p_phi) {
-
+ // performs a rotation in object-local coordinate system:
+ // M -> (M.R.Minv).M = M.R.
*this = rotated_local(p_axis, p_phi);
}
Basis Basis::rotated_local(const Vector3 &p_axis, real_t p_phi) const {
diff --git a/core/math/matrix3.h b/core/math/matrix3.h
index 71971bdea..c42643572 100644
--- a/core/math/matrix3.h
+++ b/core/math/matrix3.h
@@ -103,6 +103,9 @@ public:
void scale(const Vector3 &p_scale);
Basis scaled(const Vector3 &p_scale) const;
+ void scale_local(const Vector3 &p_scale);
+ Basis scaled_local(const Vector3 &p_scale) const;
+
void set_scale(const Vector3 &p_scale);
Vector3 get_scale() const;
Vector3 get_signed_scale() const;
diff --git a/core/math/octree.h b/core/math/octree.h
index c874d6089..4e3d6257f 100644
--- a/core/math/octree.h
+++ b/core/math/octree.h
@@ -27,6 +27,7 @@
/* TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE */
/* SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE. */
/*************************************************************************/
+
#ifndef OCTREE_H
#define OCTREE_H
@@ -611,7 +612,7 @@ bool Octree<T, use_pairs, AL>::_remove_element_from_octant(Element *p_element, O
bool unpaired = false;
if (use_pairs && p_octant->last_pass != pass) {
- // check wether we should unpair stuff
+ // check whether we should unpair stuff
// always test pairable
typename List<Element *, AL>::Element *E = p_octant->pairable_elements.front();
while (E) {
diff --git a/core/math/plane.cpp b/core/math/plane.cpp
index c4e2f04fa..78bb1771a 100644
--- a/core/math/plane.cpp
+++ b/core/math/plane.cpp
@@ -27,6 +27,7 @@
/* TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE */
/* SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE. */
/*************************************************************************/
+
#include "plane.h"
#include "math_funcs.h"
diff --git a/core/math/plane.h b/core/math/plane.h
index 5497fde59..e567422dd 100644
--- a/core/math/plane.h
+++ b/core/math/plane.h
@@ -27,6 +27,7 @@
/* TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE */
/* SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE. */
/*************************************************************************/
+
#ifndef PLANE_H
#define PLANE_H
diff --git a/core/math/quat.cpp b/core/math/quat.cpp
index 5706848b3..9aa8b537d 100644
--- a/core/math/quat.cpp
+++ b/core/math/quat.cpp
@@ -27,6 +27,7 @@
/* TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE */
/* SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE. */
/*************************************************************************/
+
#include "quat.h"
#include "matrix3.h"
#include "print_string.h"
diff --git a/core/math/quick_hull.cpp b/core/math/quick_hull.cpp
index e13f2e9c1..102e454e0 100644
--- a/core/math/quick_hull.cpp
+++ b/core/math/quick_hull.cpp
@@ -27,6 +27,7 @@
/* TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE */
/* SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE. */
/*************************************************************************/
+
#include "quick_hull.h"
#include "map.h"
diff --git a/core/math/quick_hull.h b/core/math/quick_hull.h
index 40f601536..eef4a9adf 100644
--- a/core/math/quick_hull.h
+++ b/core/math/quick_hull.h
@@ -27,6 +27,7 @@
/* TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE */
/* SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE. */
/*************************************************************************/
+
#ifndef QUICK_HULL_H
#define QUICK_HULL_H
diff --git a/core/math/transform.cpp b/core/math/transform.cpp
index ffad8cfc4..f727d00e3 100644
--- a/core/math/transform.cpp
+++ b/core/math/transform.cpp
@@ -27,6 +27,7 @@
/* TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE */
/* SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE. */
/*************************************************************************/
+
#include "transform.h"
#include "math_funcs.h"
#include "os/copymem.h"
diff --git a/core/math/transform.h b/core/math/transform.h
index e5bc7832a..c06eaec60 100644
--- a/core/math/transform.h
+++ b/core/math/transform.h
@@ -27,6 +27,7 @@
/* TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE */
/* SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE. */
/*************************************************************************/
+
#ifndef TRANSFORM_H
#define TRANSFORM_H
diff --git a/core/math/triangle_mesh.cpp b/core/math/triangle_mesh.cpp
index 6138abc6b..edd4ad344 100644
--- a/core/math/triangle_mesh.cpp
+++ b/core/math/triangle_mesh.cpp
@@ -27,6 +27,7 @@
/* TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE */
/* SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE. */
/*************************************************************************/
+
#include "triangle_mesh.h"
#include "sort.h"
diff --git a/core/math/triangle_mesh.h b/core/math/triangle_mesh.h
index 4687b0e91..9f145f2af 100644
--- a/core/math/triangle_mesh.h
+++ b/core/math/triangle_mesh.h
@@ -27,6 +27,7 @@
/* TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE */
/* SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE. */
/*************************************************************************/
+
#ifndef TRIANGLE_MESH_H
#define TRIANGLE_MESH_H
diff --git a/core/math/triangulate.cpp b/core/math/triangulate.cpp
index ff6514234..957e16f92 100644
--- a/core/math/triangulate.cpp
+++ b/core/math/triangulate.cpp
@@ -27,6 +27,7 @@
/* TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE */
/* SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE. */
/*************************************************************************/
+
#include "triangulate.h"
real_t Triangulate::get_area(const Vector<Vector2> &contour) {
diff --git a/core/math/triangulate.h b/core/math/triangulate.h
index 01b4a50a3..e336dc575 100644
--- a/core/math/triangulate.h
+++ b/core/math/triangulate.h
@@ -27,6 +27,7 @@
/* TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE */
/* SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE. */
/*************************************************************************/
+
#ifndef TRIANGULATE_H
#define TRIANGULATE_H
diff --git a/core/math/vector3.cpp b/core/math/vector3.cpp
index 02140bc33..78d52d5cd 100644
--- a/core/math/vector3.cpp
+++ b/core/math/vector3.cpp
@@ -27,6 +27,7 @@
/* TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE */
/* SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE. */
/*************************************************************************/
+
#include "vector3.h"
#include "matrix3.h"
diff --git a/core/math/vector3.h b/core/math/vector3.h
index 17dbdafbd..10ec4f564 100644
--- a/core/math/vector3.h
+++ b/core/math/vector3.h
@@ -27,6 +27,7 @@
/* TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE */
/* SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE. */
/*************************************************************************/
+
#ifndef VECTOR3_H
#define VECTOR3_H
diff --git a/core/message_queue.cpp b/core/message_queue.cpp
index b7b8827f4..3ceafe1a3 100644
--- a/core/message_queue.cpp
+++ b/core/message_queue.cpp
@@ -27,6 +27,7 @@
/* TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE */
/* SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE. */
/*************************************************************************/
+
#include "message_queue.h"
#include "project_settings.h"
diff --git a/core/message_queue.h b/core/message_queue.h
index 7312f0e1e..be5ffe4fa 100644
--- a/core/message_queue.h
+++ b/core/message_queue.h
@@ -27,6 +27,7 @@
/* TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE */
/* SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE. */
/*************************************************************************/
+
#ifndef MESSAGE_QUEUE_H
#define MESSAGE_QUEUE_H
diff --git a/core/method_bind.cpp b/core/method_bind.cpp
index 4022b22ff..52ee9e084 100644
--- a/core/method_bind.cpp
+++ b/core/method_bind.cpp
@@ -27,6 +27,7 @@
/* TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE */
/* SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE. */
/*************************************************************************/
+
// object.h needs to be the first include *before* method_bind.h
// FIXME: Find out why and fix potential cyclical dependencies.
#include "object.h"
diff --git a/core/method_bind.h b/core/method_bind.h
index aaf3640ce..e02d64c93 100644
--- a/core/method_bind.h
+++ b/core/method_bind.h
@@ -27,6 +27,7 @@
/* TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE */
/* SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE. */
/*************************************************************************/
+
#ifndef METHOD_BIND_H
#define METHOD_BIND_H
@@ -242,7 +243,7 @@ public:
PropertyInfo get_argument_info(int p_argument) const;
PropertyInfo get_return_info() const;
- void set_argument_names(const Vector<StringName> &p_names); //set by class, db, cant be inferred otherwise
+ void set_argument_names(const Vector<StringName> &p_names); //set by class, db, can't be inferred otherwise
Vector<StringName> get_argument_names() const;
#endif
diff --git a/core/method_ptrcall.h b/core/method_ptrcall.h
index 1fe0cf0bc..2007c3def 100644
--- a/core/method_ptrcall.h
+++ b/core/method_ptrcall.h
@@ -27,6 +27,7 @@
/* TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE */
/* SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE. */
/*************************************************************************/
+
#ifndef METHOD_PTRCALL_H
#define METHOD_PTRCALL_H
diff --git a/core/node_path.cpp b/core/node_path.cpp
index abde887b3..cd7ad7753 100644
--- a/core/node_path.cpp
+++ b/core/node_path.cpp
@@ -27,6 +27,7 @@
/* TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE */
/* SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE. */
/*************************************************************************/
+
#include "node_path.h"
#include "print_string.h"
diff --git a/core/node_path.h b/core/node_path.h
index af134e840..288f39721 100644
--- a/core/node_path.h
+++ b/core/node_path.h
@@ -27,6 +27,7 @@
/* TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE */
/* SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE. */
/*************************************************************************/
+
#ifndef NODE_PATH_H
#define NODE_PATH_H
diff --git a/core/oa_hash_map.h b/core/oa_hash_map.h
index 308624dcc..280aea6a1 100644
--- a/core/oa_hash_map.h
+++ b/core/oa_hash_map.h
@@ -27,6 +27,7 @@
/* TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE */
/* SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE. */
/*************************************************************************/
+
#ifndef OA_HASH_MAP_H
#define OA_HASH_MAP_H
@@ -35,7 +36,7 @@
#include "os/copymem.h"
#include "os/memory.h"
-// uncomment this to disable intial local storage.
+// uncomment this to disable initial local storage.
#define OA_HASH_MAP_INITIAL_LOCAL_STORAGE
/**
diff --git a/core/object.cpp b/core/object.cpp
index 2e3196dc4..aaa37e6cf 100644
--- a/core/object.cpp
+++ b/core/object.cpp
@@ -27,6 +27,7 @@
/* TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE */
/* SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE. */
/*************************************************************************/
+
#include "object.h"
#include "class_db.h"
@@ -604,11 +605,11 @@ void Object::get_property_list(List<PropertyInfo> *p_list, bool p_reversed) cons
p_list->push_back(PropertyInfo(Variant::OBJECT, "script", PROPERTY_HINT_RESOURCE_TYPE, "Script", PROPERTY_USAGE_DEFAULT | PROPERTY_USAGE_STORE_IF_NONZERO));
#ifdef TOOLS_ENABLED
if (editor_section_folding.size()) {
- p_list->push_back(PropertyInfo(Variant::ARRAY, CoreStringNames::get_singleton()->_sections_unfolded, PROPERTY_HINT_NONE, "", PROPERTY_USAGE_NOEDITOR));
+ p_list->push_back(PropertyInfo(Variant::ARRAY, CoreStringNames::get_singleton()->_sections_unfolded, PROPERTY_HINT_NONE, "", PROPERTY_USAGE_NOEDITOR | PROPERTY_USAGE_INTERNAL));
}
#endif
if (!metadata.empty())
- p_list->push_back(PropertyInfo(Variant::DICTIONARY, "__meta__", PROPERTY_HINT_NONE, "", PROPERTY_USAGE_NOEDITOR | PROPERTY_USAGE_STORE_IF_NONZERO));
+ p_list->push_back(PropertyInfo(Variant::DICTIONARY, "__meta__", PROPERTY_HINT_NONE, "", PROPERTY_USAGE_NOEDITOR | PROPERTY_USAGE_INTERNAL | PROPERTY_USAGE_STORE_IF_NONZERO));
if (script_instance && !p_reversed) {
p_list->push_back(PropertyInfo(Variant::NIL, "Script Variables", PROPERTY_HINT_NONE, String(), PROPERTY_USAGE_CATEGORY));
script_instance->get_property_list(p_list);
diff --git a/core/object.h b/core/object.h
index 635c59915..8306b5a35 100644
--- a/core/object.h
+++ b/core/object.h
@@ -27,6 +27,7 @@
/* TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE */
/* SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE. */
/*************************************************************************/
+
#ifndef OBJECT_H
#define OBJECT_H
@@ -85,6 +86,7 @@ enum PropertyHint {
PROPERTY_HINT_PROPERTY_OF_SCRIPT, ///< a property of a script & base
PROPERTY_HINT_OBJECT_TOO_BIG, ///< object is too big to send
PROPERTY_HINT_MAX,
+ // When updating PropertyHint, also sync the hardcoded list in VisualScriptEditorVariableEdit
};
enum PropertyUsageFlags {
@@ -110,10 +112,11 @@ enum PropertyUsageFlags {
PROPERTY_USAGE_CLASS_IS_ENUM = 1 << 18,
PROPERTY_USAGE_NIL_IS_VARIANT = 1 << 19,
PROPERTY_USAGE_INTERNAL = 1 << 20,
+ PROPERTY_USAGE_DO_NOT_SHARE_ON_DUPLICATE = 1 << 21, // If the object is duplicated also this property will be duplicated
PROPERTY_USAGE_DEFAULT = PROPERTY_USAGE_STORAGE | PROPERTY_USAGE_EDITOR | PROPERTY_USAGE_NETWORK,
PROPERTY_USAGE_DEFAULT_INTL = PROPERTY_USAGE_STORAGE | PROPERTY_USAGE_EDITOR | PROPERTY_USAGE_NETWORK | PROPERTY_USAGE_INTERNATIONALIZED,
- PROPERTY_USAGE_NOEDITOR = PROPERTY_USAGE_STORAGE | PROPERTY_USAGE_NETWORK | PROPERTY_USAGE_INTERNAL,
+ PROPERTY_USAGE_NOEDITOR = PROPERTY_USAGE_STORAGE | PROPERTY_USAGE_NETWORK,
};
#define ADD_SIGNAL(m_signal) ClassDB::add_signal(get_class_static(), m_signal)
diff --git a/core/ordered_hash_map.h b/core/ordered_hash_map.h
index 5954952b6..93ce9a90a 100644
--- a/core/ordered_hash_map.h
+++ b/core/ordered_hash_map.h
@@ -3,7 +3,7 @@
/*************************************************************************/
/* This file is part of: */
/* GODOT ENGINE */
-/* http://www.godotengine.org */
+/* https://godotengine.org */
/*************************************************************************/
/* Copyright (c) 2007-2018 Juan Linietsky, Ariel Manzur. */
/* Copyright (c) 2014-2018 Godot Engine contributors (cf. AUTHORS.md) */
@@ -27,6 +27,7 @@
/* TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE */
/* SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE. */
/*************************************************************************/
+
#ifndef ORDERED_HASH_MAP_H
#define ORDERED_HASH_MAP_H
diff --git a/core/os/copymem.h b/core/os/copymem.h
index 998c0a8b9..87d77bd42 100644
--- a/core/os/copymem.h
+++ b/core/os/copymem.h
@@ -27,6 +27,7 @@
/* TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE */
/* SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE. */
/*************************************************************************/
+
#ifndef COPYMEM_H
#define COPYMEM_H
diff --git a/core/os/dir_access.cpp b/core/os/dir_access.cpp
index c906fa733..1941b8260 100644
--- a/core/os/dir_access.cpp
+++ b/core/os/dir_access.cpp
@@ -27,6 +27,7 @@
/* TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE */
/* SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE. */
/*************************************************************************/
+
#include "dir_access.h"
#include "os/file_access.h"
#include "os/memory.h"
@@ -293,7 +294,7 @@ String DirAccess::get_full_path(const String &p_path, AccessType p_access) {
return full;
}
-Error DirAccess::copy(String p_from, String p_to, int chmod_flags) {
+Error DirAccess::copy(String p_from, String p_to, int p_chmod_flags) {
//printf("copy %s -> %s\n",p_from.ascii().get_data(),p_to.ascii().get_data());
Error err;
@@ -330,9 +331,9 @@ Error DirAccess::copy(String p_from, String p_to, int chmod_flags) {
fdst->store_8(fsrc->get_8());
}
- if (err == OK && chmod_flags != -1) {
+ if (err == OK && p_chmod_flags != -1) {
fdst->close();
- err = fdst->_chmod(p_to, chmod_flags);
+ err = fdst->_chmod(p_to, p_chmod_flags);
// If running on a platform with no chmod support (i.e., Windows), don't fail
if (err == ERR_UNAVAILABLE)
err = OK;
diff --git a/core/os/dir_access.h b/core/os/dir_access.h
index f29f61e83..4df061802 100644
--- a/core/os/dir_access.h
+++ b/core/os/dir_access.h
@@ -27,6 +27,7 @@
/* TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE */
/* SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE. */
/*************************************************************************/
+
#ifndef DIR_ACCESS_H
#define DIR_ACCESS_H
@@ -92,8 +93,8 @@ public:
static bool exists(String p_dir);
virtual size_t get_space_left() = 0;
- Error copy_dir(String p_from, String p_to, int chmod_flags = -1);
- virtual Error copy(String p_from, String p_to, int chmod_flags = -1);
+ Error copy_dir(String p_from, String p_to, int p_chmod_flags = -1);
+ virtual Error copy(String p_from, String p_to, int p_chmod_flags = -1);
virtual Error rename(String p_from, String p_to) = 0;
virtual Error remove(String p_name) = 0;
diff --git a/core/os/file_access.cpp b/core/os/file_access.cpp
index 989230b16..368b4ad09 100644
--- a/core/os/file_access.cpp
+++ b/core/os/file_access.cpp
@@ -27,6 +27,7 @@
/* TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE */
/* SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE. */
/*************************************************************************/
+
#include "file_access.h"
#include "core/io/file_access_pack.h"
diff --git a/core/os/file_access.h b/core/os/file_access.h
index 61edc9a5d..5d10c1a9a 100644
--- a/core/os/file_access.h
+++ b/core/os/file_access.h
@@ -27,6 +27,7 @@
/* TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE */
/* SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE. */
/*************************************************************************/
+
#ifndef FILE_ACCESS_H
#define FILE_ACCESS_H
diff --git a/core/os/input.cpp b/core/os/input.cpp
index 2795b1124..3089ab2ce 100644
--- a/core/os/input.cpp
+++ b/core/os/input.cpp
@@ -27,6 +27,7 @@
/* TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE */
/* SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE. */
/*************************************************************************/
+
#include "input.h"
#include "input_map.h"
#include "os/os.h"
@@ -84,7 +85,7 @@ void Input::_bind_methods() {
ClassDB::bind_method(D_METHOD("warp_mouse_position", "to"), &Input::warp_mouse_position);
ClassDB::bind_method(D_METHOD("action_press", "action"), &Input::action_press);
ClassDB::bind_method(D_METHOD("action_release", "action"), &Input::action_release);
- ClassDB::bind_method(D_METHOD("set_custom_mouse_cursor", "image", "hotspot"), &Input::set_custom_mouse_cursor, DEFVAL(Vector2()));
+ ClassDB::bind_method(D_METHOD("set_custom_mouse_cursor", "image", "shape", "hotspot"), &Input::set_custom_mouse_cursor, DEFVAL(CURSOR_ARROW), DEFVAL(Vector2()));
ClassDB::bind_method(D_METHOD("parse_input_event", "event"), &Input::parse_input_event);
BIND_ENUM_CONSTANT(MOUSE_MODE_VISIBLE);
@@ -92,6 +93,24 @@ void Input::_bind_methods() {
BIND_ENUM_CONSTANT(MOUSE_MODE_CAPTURED);
BIND_ENUM_CONSTANT(MOUSE_MODE_CONFINED);
+ BIND_ENUM_CONSTANT(CURSOR_ARROW);
+ BIND_ENUM_CONSTANT(CURSOR_IBEAM);
+ BIND_ENUM_CONSTANT(CURSOR_POINTING_HAND);
+ BIND_ENUM_CONSTANT(CURSOR_CROSS);
+ BIND_ENUM_CONSTANT(CURSOR_WAIT);
+ BIND_ENUM_CONSTANT(CURSOR_BUSY);
+ BIND_ENUM_CONSTANT(CURSOR_DRAG);
+ BIND_ENUM_CONSTANT(CURSOR_CAN_DROP);
+ BIND_ENUM_CONSTANT(CURSOR_FORBIDDEN);
+ BIND_ENUM_CONSTANT(CURSOR_VSIZE);
+ BIND_ENUM_CONSTANT(CURSOR_HSIZE);
+ BIND_ENUM_CONSTANT(CURSOR_BDIAGSIZE);
+ BIND_ENUM_CONSTANT(CURSOR_FDIAGSIZE);
+ BIND_ENUM_CONSTANT(CURSOR_MOVE);
+ BIND_ENUM_CONSTANT(CURSOR_VSPLIT);
+ BIND_ENUM_CONSTANT(CURSOR_HSPLIT);
+ BIND_ENUM_CONSTANT(CURSOR_HELP);
+
ADD_SIGNAL(MethodInfo("joy_connection_changed", PropertyInfo(Variant::INT, "index"), PropertyInfo(Variant::BOOL, "connected")));
}
diff --git a/core/os/input.h b/core/os/input.h
index 608484ccd..9c7595ff7 100644
--- a/core/os/input.h
+++ b/core/os/input.h
@@ -27,6 +27,7 @@
/* TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE */
/* SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE. */
/*************************************************************************/
+
#ifndef INPUT_H
#define INPUT_H
@@ -51,6 +52,28 @@ public:
MOUSE_MODE_CONFINED
};
+#undef CursorShape
+ enum CursorShape {
+ CURSOR_ARROW,
+ CURSOR_IBEAM,
+ CURSOR_POINTING_HAND,
+ CURSOR_CROSS,
+ CURSOR_WAIT,
+ CURSOR_BUSY,
+ CURSOR_DRAG,
+ CURSOR_CAN_DROP,
+ CURSOR_FORBIDDEN,
+ CURSOR_VSIZE,
+ CURSOR_HSIZE,
+ CURSOR_BDIAGSIZE,
+ CURSOR_FDIAGSIZE,
+ CURSOR_MOVE,
+ CURSOR_VSPLIT,
+ CURSOR_HSPLIT,
+ CURSOR_HELP,
+ CURSOR_MAX
+ };
+
void set_mouse_mode(MouseMode p_mode);
MouseMode get_mouse_mode() const;
@@ -96,7 +119,7 @@ public:
virtual bool is_emulating_touchscreen() const = 0;
- virtual void set_custom_mouse_cursor(const RES &p_cursor, const Vector2 &p_hotspot = Vector2()) = 0;
+ virtual void set_custom_mouse_cursor(const RES &p_cursor, CursorShape p_shape = CURSOR_ARROW, const Vector2 &p_hotspot = Vector2()) = 0;
virtual void set_mouse_in_window(bool p_in_window) = 0;
virtual String get_joy_button_string(int p_button) = 0;
@@ -110,5 +133,6 @@ public:
};
VARIANT_ENUM_CAST(Input::MouseMode);
+VARIANT_ENUM_CAST(Input::CursorShape);
#endif // INPUT_H
diff --git a/core/os/input_event.cpp b/core/os/input_event.cpp
index 67590517f..12060f31d 100644
--- a/core/os/input_event.cpp
+++ b/core/os/input_event.cpp
@@ -27,6 +27,7 @@
/* TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE */
/* SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE. */
/*************************************************************************/
+
#include "input_event.h"
#include "input_map.h"
diff --git a/core/os/input_event.h b/core/os/input_event.h
index 53da79f59..ad754d0d1 100644
--- a/core/os/input_event.h
+++ b/core/os/input_event.h
@@ -27,6 +27,7 @@
/* TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE */
/* SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE. */
/*************************************************************************/
+
#ifndef INPUT_EVENT_H
#define INPUT_EVENT_H
@@ -109,8 +110,8 @@ enum JoystickList {
JOY_WII_C = JOY_BUTTON_5,
JOY_WII_Z = JOY_BUTTON_6,
- JOY_WII_MINUS = JOY_BUTTON_9,
- JOY_WII_PLUS = JOY_BUTTON_10,
+ JOY_WII_MINUS = JOY_BUTTON_10,
+ JOY_WII_PLUS = JOY_BUTTON_11,
// end of history
diff --git a/core/os/keyboard.cpp b/core/os/keyboard.cpp
index 00d78d71f..fa53cc85c 100644
--- a/core/os/keyboard.cpp
+++ b/core/os/keyboard.cpp
@@ -27,6 +27,7 @@
/* TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE */
/* SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE. */
/*************************************************************************/
+
#include "keyboard.h"
#include "os/os.h"
diff --git a/core/os/keyboard.h b/core/os/keyboard.h
index f910f07f9..4c253fa4c 100644
--- a/core/os/keyboard.h
+++ b/core/os/keyboard.h
@@ -27,6 +27,7 @@
/* TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE */
/* SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE. */
/*************************************************************************/
+
#ifndef KEYBOARD_H
#define KEYBOARD_H
diff --git a/core/os/main_loop.cpp b/core/os/main_loop.cpp
index 186acb034..916c86613 100644
--- a/core/os/main_loop.cpp
+++ b/core/os/main_loop.cpp
@@ -27,6 +27,7 @@
/* TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE */
/* SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE. */
/*************************************************************************/
+
#include "main_loop.h"
#include "script_language.h"
diff --git a/core/os/main_loop.h b/core/os/main_loop.h
index e5d917ec6..546e4e280 100644
--- a/core/os/main_loop.h
+++ b/core/os/main_loop.h
@@ -27,6 +27,7 @@
/* TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE */
/* SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE. */
/*************************************************************************/
+
#ifndef MAIN_LOOP_H
#define MAIN_LOOP_H
diff --git a/core/os/memory.cpp b/core/os/memory.cpp
index a8b49a085..3eab4343a 100644
--- a/core/os/memory.cpp
+++ b/core/os/memory.cpp
@@ -27,6 +27,7 @@
/* TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE */
/* SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE. */
/*************************************************************************/
+
#include "memory.h"
#include "copymem.h"
#include "core/safe_refcount.h"
diff --git a/core/os/memory.h b/core/os/memory.h
index 27eb57c87..f5c6c0b38 100644
--- a/core/os/memory.h
+++ b/core/os/memory.h
@@ -27,6 +27,7 @@
/* TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE */
/* SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE. */
/*************************************************************************/
+
#ifndef MEMORY_H
#define MEMORY_H
diff --git a/core/os/mutex.cpp b/core/os/mutex.cpp
index 21480fece..7c4ea2323 100644
--- a/core/os/mutex.cpp
+++ b/core/os/mutex.cpp
@@ -27,6 +27,7 @@
/* TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE */
/* SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE. */
/*************************************************************************/
+
#include "mutex.h"
#include "error_macros.h"
#include <stddef.h>
diff --git a/core/os/mutex.h b/core/os/mutex.h
index ecd1f5915..9debe7f41 100644
--- a/core/os/mutex.h
+++ b/core/os/mutex.h
@@ -27,6 +27,7 @@
/* TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE */
/* SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE. */
/*************************************************************************/
+
#ifndef MUTEX_H
#define MUTEX_H
diff --git a/core/os/os.cpp b/core/os/os.cpp
index bdcdfed06..c6e5de703 100644
--- a/core/os/os.cpp
+++ b/core/os/os.cpp
@@ -27,6 +27,7 @@
/* TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE */
/* SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE. */
/*************************************************************************/
+
#include "os.h"
#include "dir_access.h"
diff --git a/core/os/os.h b/core/os/os.h
index 5dc39b52d..248e1dbef 100644
--- a/core/os/os.h
+++ b/core/os/os.h
@@ -27,6 +27,7 @@
/* TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE */
/* SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE. */
/*************************************************************************/
+
#ifndef OS_H
#define OS_H
@@ -121,7 +122,7 @@ protected:
void add_logger(Logger *p_logger);
virtual void initialize_core() = 0;
- virtual void initialize(const VideoMode &p_desired, int p_video_driver, int p_audio_driver) = 0;
+ virtual Error initialize(const VideoMode &p_desired, int p_video_driver, int p_audio_driver) = 0;
virtual void set_main_loop(MainLoop *p_main_loop) = 0;
virtual void delete_main_loop() = 0;
@@ -325,6 +326,7 @@ public:
virtual int get_virtual_keyboard_height() const;
virtual void set_cursor_shape(CursorShape p_shape) = 0;
+ virtual void set_custom_mouse_cursor(const RES &p_cursor, CursorShape p_shape, const Vector2 &p_hotspot) = 0;
virtual bool get_swap_ok_cancel() { return false; }
virtual void dump_memory_to_file(const char *p_file);
diff --git a/core/os/rw_lock.cpp b/core/os/rw_lock.cpp
index 9603ccf0b..35489490e 100644
--- a/core/os/rw_lock.cpp
+++ b/core/os/rw_lock.cpp
@@ -27,6 +27,7 @@
/* TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE */
/* SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE. */
/*************************************************************************/
+
#include "rw_lock.h"
#include "error_macros.h"
diff --git a/core/os/rw_lock.h b/core/os/rw_lock.h
index d0ce38f45..9053794c8 100644
--- a/core/os/rw_lock.h
+++ b/core/os/rw_lock.h
@@ -27,6 +27,7 @@
/* TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE */
/* SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE. */
/*************************************************************************/
+
#ifndef RWLOCK_H
#define RWLOCK_H
diff --git a/core/os/semaphore.cpp b/core/os/semaphore.cpp
index 9455124e4..0377aeeb2 100644
--- a/core/os/semaphore.cpp
+++ b/core/os/semaphore.cpp
@@ -27,6 +27,7 @@
/* TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE */
/* SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE. */
/*************************************************************************/
+
#include "semaphore.h"
#include "error_macros.h"
diff --git a/core/os/semaphore.h b/core/os/semaphore.h
index 8bad64ace..f3021bf74 100644
--- a/core/os/semaphore.h
+++ b/core/os/semaphore.h
@@ -27,6 +27,7 @@
/* TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE */
/* SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE. */
/*************************************************************************/
+
#ifndef SEMAPHORE_H
#define SEMAPHORE_H
diff --git a/core/os/shell.cpp b/core/os/shell.cpp
index 781d922d4..32649a066 100644
--- a/core/os/shell.cpp
+++ b/core/os/shell.cpp
@@ -27,6 +27,7 @@
/* TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE */
/* SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE. */
/*************************************************************************/
+
#include "shell.h"
Shell *Shell::singleton = NULL;
diff --git a/core/os/shell.h b/core/os/shell.h
index 84ac7eae4..d3d92028e 100644
--- a/core/os/shell.h
+++ b/core/os/shell.h
@@ -27,6 +27,7 @@
/* TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE */
/* SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE. */
/*************************************************************************/
+
#ifndef SHELL_H
#define SHELL_H
diff --git a/core/os/thread.cpp b/core/os/thread.cpp
index 13bf147ca..250cf80a3 100644
--- a/core/os/thread.cpp
+++ b/core/os/thread.cpp
@@ -27,6 +27,7 @@
/* TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE */
/* SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE. */
/*************************************************************************/
+
#include "thread.h"
Thread *(*Thread::create_func)(ThreadCreateCallback, void *, const Settings &) = NULL;
diff --git a/core/os/thread.h b/core/os/thread.h
index 92dd00cf0..c2947bcca 100644
--- a/core/os/thread.h
+++ b/core/os/thread.h
@@ -27,6 +27,7 @@
/* TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE */
/* SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE. */
/*************************************************************************/
+
#ifndef THREAD_H
#define THREAD_H
diff --git a/core/os/thread_dummy.cpp b/core/os/thread_dummy.cpp
index 2f8f3d494..fa0bb3daf 100644
--- a/core/os/thread_dummy.cpp
+++ b/core/os/thread_dummy.cpp
@@ -27,6 +27,7 @@
/* TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE */
/* SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE. */
/*************************************************************************/
+
#include "thread_dummy.h"
#include "memory.h"
diff --git a/core/os/thread_dummy.h b/core/os/thread_dummy.h
index 5681f4509..b67b52a72 100644
--- a/core/os/thread_dummy.h
+++ b/core/os/thread_dummy.h
@@ -27,6 +27,7 @@
/* TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE */
/* SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE. */
/*************************************************************************/
+
#ifndef THREAD_DUMMY_H
#define THREAD_DUMMY_H
diff --git a/core/os/thread_safe.cpp b/core/os/thread_safe.cpp
index 394876ae1..acb37df02 100644
--- a/core/os/thread_safe.cpp
+++ b/core/os/thread_safe.cpp
@@ -27,6 +27,7 @@
/* TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE */
/* SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE. */
/*************************************************************************/
+
#include "thread_safe.h"
#include "error_macros.h"
#include "os/memory.h"
diff --git a/core/os/thread_safe.h b/core/os/thread_safe.h
index 05510bcbb..f0876f38a 100644
--- a/core/os/thread_safe.h
+++ b/core/os/thread_safe.h
@@ -27,6 +27,7 @@
/* TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE */
/* SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE. */
/*************************************************************************/
+
#ifndef THREAD_SAFE_H
#define THREAD_SAFE_H
diff --git a/core/os/threaded_array_processor.cpp b/core/os/threaded_array_processor.cpp
deleted file mode 100644
index 8e92508ea..000000000
--- a/core/os/threaded_array_processor.cpp
+++ /dev/null
@@ -1,2 +0,0 @@
-#include "threaded_array_processor.h"
-
diff --git a/core/os/threaded_array_processor.h b/core/os/threaded_array_processor.h
index e584fbb19..e0fb58976 100644
--- a/core/os/threaded_array_processor.h
+++ b/core/os/threaded_array_processor.h
@@ -1,3 +1,33 @@
+/*************************************************************************/
+/* threaded_array_processor.h */
+/*************************************************************************/
+/* This file is part of: */
+/* GODOT ENGINE */
+/* https://godotengine.org */
+/*************************************************************************/
+/* Copyright (c) 2007-2018 Juan Linietsky, Ariel Manzur. */
+/* Copyright (c) 2014-2018 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. */
+/*************************************************************************/
+
#ifndef THREADED_ARRAY_PROCESSOR_H
#define THREADED_ARRAY_PROCESSOR_H
diff --git a/core/packed_data_container.cpp b/core/packed_data_container.cpp
index 4d5890685..eaccdba9b 100644
--- a/core/packed_data_container.cpp
+++ b/core/packed_data_container.cpp
@@ -27,6 +27,7 @@
/* TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE */
/* SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE. */
/*************************************************************************/
+
#include "packed_data_container.h"
#include "core_string_names.h"
diff --git a/core/packed_data_container.h b/core/packed_data_container.h
index b711d795d..fe3641700 100644
--- a/core/packed_data_container.h
+++ b/core/packed_data_container.h
@@ -27,6 +27,7 @@
/* TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE */
/* SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE. */
/*************************************************************************/
+
#ifndef PACKED_DATA_CONTAINER_H
#define PACKED_DATA_CONTAINER_H
diff --git a/core/pair.h b/core/pair.h
index 349c034ab..1d35ae1b6 100644
--- a/core/pair.h
+++ b/core/pair.h
@@ -27,6 +27,7 @@
/* TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE */
/* SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE. */
/*************************************************************************/
+
#ifndef PAIR_H
#define PAIR_H
diff --git a/core/path_remap.cpp b/core/path_remap.cpp
index d92d034f1..80308d72c 100644
--- a/core/path_remap.cpp
+++ b/core/path_remap.cpp
@@ -27,4 +27,5 @@
/* TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE */
/* SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE. */
/*************************************************************************/
+
#include "path_remap.h"
diff --git a/core/path_remap.h b/core/path_remap.h
index 1b40c9cac..5e25628ae 100644
--- a/core/path_remap.h
+++ b/core/path_remap.h
@@ -27,6 +27,7 @@
/* TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE */
/* SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE. */
/*************************************************************************/
+
#ifndef PATH_REMAP_H
#define PATH_REMAP_H
diff --git a/core/pool_allocator.cpp b/core/pool_allocator.cpp
index 13d5c5082..d81e1912b 100644
--- a/core/pool_allocator.cpp
+++ b/core/pool_allocator.cpp
@@ -27,6 +27,7 @@
/* TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE */
/* SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE. */
/*************************************************************************/
+
#include "pool_allocator.h"
#include "core/os/os.h"
diff --git a/core/pool_allocator.h b/core/pool_allocator.h
index a1cc65f1f..d9731aa3e 100644
--- a/core/pool_allocator.h
+++ b/core/pool_allocator.h
@@ -27,6 +27,7 @@
/* TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE */
/* SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE. */
/*************************************************************************/
+
#ifndef POOL_ALLOCATOR_H
#define POOL_ALLOCATOR_H
diff --git a/core/print_string.cpp b/core/print_string.cpp
index 2b366f814..035515448 100644
--- a/core/print_string.cpp
+++ b/core/print_string.cpp
@@ -27,6 +27,7 @@
/* TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE */
/* SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE. */
/*************************************************************************/
+
#include "print_string.h"
#include "os/os.h"
diff --git a/core/print_string.h b/core/print_string.h
index c3eaf3f33..3465888d4 100644
--- a/core/print_string.h
+++ b/core/print_string.h
@@ -27,6 +27,7 @@
/* TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE */
/* SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE. */
/*************************************************************************/
+
#ifndef PRINT_STRING_H
#define PRINT_STRING_H
diff --git a/core/project_settings.cpp b/core/project_settings.cpp
index bb2408fb1..0991c0df6 100644
--- a/core/project_settings.cpp
+++ b/core/project_settings.cpp
@@ -27,6 +27,7 @@
/* TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE */
/* SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE. */
/*************************************************************************/
+
#include "project_settings.h"
#include "bind/core_bind.h"
@@ -166,7 +167,7 @@ bool ProjectSettings::_set(const StringName &p_name, const Variant &p_value) {
}
if (props.has(p_name)) {
- if (!props[p_name].overrided)
+ if (!props[p_name].overridden)
props[p_name].variant = p_value;
} else {
diff --git a/core/project_settings.h b/core/project_settings.h
index e60efea22..eba53441c 100644
--- a/core/project_settings.h
+++ b/core/project_settings.h
@@ -27,6 +27,7 @@
/* TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE */
/* SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE. */
/*************************************************************************/
+
#ifndef GLOBAL_CONFIG_H
#define GLOBAL_CONFIG_H
@@ -57,19 +58,19 @@ protected:
Variant variant;
Variant initial;
bool hide_from_editor;
- bool overrided;
+ bool overridden;
VariantContainer() :
order(0),
persist(false),
hide_from_editor(false),
- overrided(false) {
+ overridden(false) {
}
VariantContainer(const Variant &p_variant, int p_order, bool p_persist = false) :
order(p_order),
persist(p_persist),
variant(p_variant),
hide_from_editor(false),
- overrided(false) {
+ overridden(false) {
}
};
diff --git a/core/ref_ptr.cpp b/core/ref_ptr.cpp
index 0f5abdd45..e3ef817df 100644
--- a/core/ref_ptr.cpp
+++ b/core/ref_ptr.cpp
@@ -27,6 +27,7 @@
/* TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE */
/* SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE. */
/*************************************************************************/
+
#include "ref_ptr.h"
#include "reference.h"
diff --git a/core/ref_ptr.h b/core/ref_ptr.h
index 27acfb798..a074718d2 100644
--- a/core/ref_ptr.h
+++ b/core/ref_ptr.h
@@ -27,6 +27,7 @@
/* TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE */
/* SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE. */
/*************************************************************************/
+
#ifndef REF_PTR_H
#define REF_PTR_H
/**
diff --git a/core/reference.cpp b/core/reference.cpp
index 3b5a9bc7c..c33a7c683 100644
--- a/core/reference.cpp
+++ b/core/reference.cpp
@@ -27,6 +27,7 @@
/* TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE */
/* SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE. */
/*************************************************************************/
+
#include "reference.h"
#include "script_language.h"
diff --git a/core/reference.h b/core/reference.h
index 16b912a40..a0bdb6225 100644
--- a/core/reference.h
+++ b/core/reference.h
@@ -27,6 +27,7 @@
/* TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE */
/* SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE. */
/*************************************************************************/
+
#ifndef REFERENCE_H
#define REFERENCE_H
diff --git a/core/register_core_types.cpp b/core/register_core_types.cpp
index 29c7cf460..006459c5f 100644
--- a/core/register_core_types.cpp
+++ b/core/register_core_types.cpp
@@ -27,6 +27,7 @@
/* TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE */
/* SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE. */
/*************************************************************************/
+
#include "register_core_types.h"
#include "bind/core_bind.h"
diff --git a/core/register_core_types.h b/core/register_core_types.h
index 4f5b7e03a..201da5cd0 100644
--- a/core/register_core_types.h
+++ b/core/register_core_types.h
@@ -27,6 +27,7 @@
/* TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE */
/* SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE. */
/*************************************************************************/
+
#ifndef REGISTER_CORE_TYPES_H
#define REGISTER_CORE_TYPES_H
diff --git a/core/resource.cpp b/core/resource.cpp
index 3e411a875..2eeed50d9 100644
--- a/core/resource.cpp
+++ b/core/resource.cpp
@@ -27,6 +27,7 @@
/* TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE */
/* SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE. */
/*************************************************************************/
+
#include "resource.h"
#include "core_string_names.h"
@@ -73,7 +74,7 @@ void Resource::set_path(const String &p_path, bool p_take_over) {
bool exists = ResourceCache::resources.has(p_path);
ResourceCache::lock->read_unlock();
- ERR_EXPLAIN("Another resource is loaded from path: " + p_path);
+ ERR_EXPLAIN("Another resource is loaded from path: " + p_path + " (possible cyclic resource inclusion)");
ERR_FAIL_COND(exists);
}
}
diff --git a/core/resource.h b/core/resource.h
index 4c5a44d7f..60c63bfe7 100644
--- a/core/resource.h
+++ b/core/resource.h
@@ -27,6 +27,7 @@
/* TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE */
/* SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE. */
/*************************************************************************/
+
#ifndef RESOURCE_H
#define RESOURCE_H
diff --git a/core/rid.cpp b/core/rid.cpp
index 3cfb28c04..9661af927 100644
--- a/core/rid.cpp
+++ b/core/rid.cpp
@@ -27,6 +27,7 @@
/* TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE */
/* SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE. */
/*************************************************************************/
+
#include "rid.h"
RID_Data::~RID_Data() {
diff --git a/core/rid.h b/core/rid.h
index 3768083fe..42306aea3 100644
--- a/core/rid.h
+++ b/core/rid.h
@@ -27,6 +27,7 @@
/* TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE */
/* SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE. */
/*************************************************************************/
+
#ifndef RID_H
#define RID_H
diff --git a/core/ring_buffer.h b/core/ring_buffer.h
index 4b4a7fe9c..de4757612 100644
--- a/core/ring_buffer.h
+++ b/core/ring_buffer.h
@@ -27,6 +27,7 @@
/* TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE */
/* SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE. */
/*************************************************************************/
+
#ifndef RINGBUFFER_H
#define RINGBUFFER_H
@@ -40,7 +41,7 @@ class RingBuffer {
int write_pos;
int size_mask;
- inline int inc(int &p_var, int p_size) {
+ inline int inc(int &p_var, int p_size) const {
int ret = p_var;
p_var += p_size;
p_var = p_var & size_mask;
@@ -50,7 +51,7 @@ class RingBuffer {
public:
T read() {
ERR_FAIL_COND_V(space_left() < 1, T());
- return data[inc(read_pos, 1)];
+ return data.ptr()[inc(read_pos, 1)];
};
int read(T *p_buf, int p_size, bool p_advance = true) {
@@ -63,8 +64,9 @@ public:
int end = pos + to_read;
end = MIN(end, size());
int total = end - pos;
+ const T *read = data.ptr();
for (int i = 0; i < total; i++) {
- p_buf[dst++] = data[pos + i];
+ p_buf[dst++] = read[pos + i];
};
to_read -= total;
pos = 0;
@@ -75,7 +77,7 @@ public:
return p_size;
};
- int copy(T *p_buf, int p_offset, int p_size) {
+ int copy(T *p_buf, int p_offset, int p_size) const {
int left = data_left();
if ((p_offset + p_size) > left) {
@@ -101,7 +103,7 @@ public:
return p_size;
};
- int find(const T &t, int p_offset, int p_max_size) {
+ int find(const T &t, int p_offset, int p_max_size) const {
int left = data_left();
if ((p_offset + p_max_size) > left) {
@@ -164,7 +166,7 @@ public:
return p_size;
};
- inline int space_left() {
+ inline int space_left() const {
int left = read_pos - write_pos;
if (left < 0) {
return size() + left - 1;
@@ -174,11 +176,11 @@ public:
};
return left - 1;
};
- inline int data_left() {
+ inline int data_left() const {
return size() - space_left() - 1;
};
- inline int size() {
+ inline int size() const {
return data.size();
};
diff --git a/core/safe_refcount.h b/core/safe_refcount.h
index 217cf6914..eff209c2d 100644
--- a/core/safe_refcount.h
+++ b/core/safe_refcount.h
@@ -27,6 +27,7 @@
/* TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE */
/* SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE. */
/*************************************************************************/
+
#ifndef SAFE_REFCOUNT_H
#define SAFE_REFCOUNT_H
diff --git a/core/script_debugger_local.cpp b/core/script_debugger_local.cpp
index 83cdb348b..0da377453 100644
--- a/core/script_debugger_local.cpp
+++ b/core/script_debugger_local.cpp
@@ -27,6 +27,7 @@
/* TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE */
/* SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE. */
/*************************************************************************/
+
#include "script_debugger_local.h"
#include "os/os.h"
@@ -293,6 +294,11 @@ void ScriptDebuggerLocal::send_message(const String &p_message, const Array &p_a
print_line("MESSAGE: '" + p_message + "' - " + String(Variant(p_args)));
}
+void ScriptDebuggerLocal::send_error(const String &p_func, const String &p_file, int p_line, const String &p_err, const String &p_descr, ErrorHandlerType p_type, const Vector<ScriptLanguage::StackInfo> &p_stack_info) {
+
+ print_line("ERROR: '" + (p_descr.empty() ? p_err : p_descr) + "'");
+}
+
ScriptDebuggerLocal::ScriptDebuggerLocal() {
profiling = false;
diff --git a/core/script_debugger_local.h b/core/script_debugger_local.h
index f1111612b..c87bc90bb 100644
--- a/core/script_debugger_local.h
+++ b/core/script_debugger_local.h
@@ -27,6 +27,7 @@
/* TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE */
/* SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE. */
/*************************************************************************/
+
#ifndef SCRIPT_DEBUGGER_LOCAL_H
#define SCRIPT_DEBUGGER_LOCAL_H
@@ -43,6 +44,7 @@ class ScriptDebuggerLocal : public ScriptDebugger {
public:
void debug(ScriptLanguage *p_script, bool p_can_continue);
virtual void send_message(const String &p_message, const Array &p_args);
+ virtual void send_error(const String &p_func, const String &p_file, int p_line, const String &p_err, const String &p_descr, ErrorHandlerType p_type, const Vector<ScriptLanguage::StackInfo> &p_stack_info);
virtual bool is_profiling() const { return profiling; }
virtual void add_profiling_frame_data(const StringName &p_name, const Array &p_data) {}
diff --git a/core/script_debugger_remote.cpp b/core/script_debugger_remote.cpp
index 27633ec55..41071ace5 100644
--- a/core/script_debugger_remote.cpp
+++ b/core/script_debugger_remote.cpp
@@ -27,6 +27,7 @@
/* TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE */
/* SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE. */
/*************************************************************************/
+
#include "script_debugger_remote.h"
#include "engine.h"
@@ -67,17 +68,20 @@ Error ScriptDebuggerRemote::connect_to_host(const String &p_host, uint16_t p_por
int port = p_port;
- int tries = 3;
+ const int tries = 6;
+ int waits[tries] = { 1, 10, 100, 1000, 1000, 1000 };
+
tcp_client->connect_to_host(ip, port);
- while (tries--) {
+ for (int i = 0; i < tries; i++) {
if (tcp_client->get_status() == StreamPeerTCP::STATUS_CONNECTED) {
break;
} else {
- OS::get_singleton()->delay_usec(1000000);
- print_line("Remote Debugger: Connection failed with status: '" + String::num(tcp_client->get_status()) + "', retrying in 1 sec.");
+ const int ms = waits[i];
+ OS::get_singleton()->delay_usec(ms * 1000);
+ print_line("Remote Debugger: Connection failed with status: '" + String::num(tcp_client->get_status()) + "', retrying in " + String::num(ms) + " msec.");
};
};
@@ -126,15 +130,21 @@ static ObjectID safe_get_instance_id(const Variant &p_v) {
void ScriptDebuggerRemote::_put_variable(const String &p_name, const Variant &p_variable) {
packet_peer_stream->put_var(p_name);
+
+ Variant var = p_variable;
+ if (p_variable.get_type() == Variant::OBJECT && !ObjectDB::instance_validate(p_variable)) {
+ var = Variant();
+ }
+
int len = 0;
- Error err = encode_variant(p_variable, NULL, len);
+ Error err = encode_variant(var, NULL, len);
if (err != OK)
ERR_PRINT("Failed to encode variant");
if (len > packet_peer_stream->get_output_buffer_max_size()) { //limit to max size
packet_peer_stream->put_var(Variant());
} else {
- packet_peer_stream->put_var(p_variable);
+ packet_peer_stream->put_var(var);
}
}
@@ -345,6 +355,13 @@ void ScriptDebuggerRemote::_get_output() {
locking = false;
}
+ if (n_messages_dropped > 0) {
+ Message msg;
+ msg.message = "Too many messages! " + String::num_int64(n_messages_dropped) + " messages were dropped.";
+ messages.push_back(msg);
+ n_messages_dropped = 0;
+ }
+
while (messages.size()) {
locking = true;
packet_peer_stream->put_var("message:" + messages.front()->get().message);
@@ -356,6 +373,20 @@ void ScriptDebuggerRemote::_get_output() {
locking = false;
}
+ if (n_errors_dropped > 0) {
+ OutputError oe;
+ oe.error = "TOO_MANY_ERRORS";
+ oe.error_descr = "Too many errors! " + String::num_int64(n_errors_dropped) + " errors were dropped.";
+ oe.warning = false;
+ uint64_t time = OS::get_singleton()->get_ticks_msec();
+ oe.hr = time / 3600000;
+ oe.min = (time / 60000) % 60;
+ oe.sec = (time / 1000) % 60;
+ oe.msec = time % 1000;
+ errors.push_back(oe);
+ n_errors_dropped = 0;
+ }
+
while (errors.size()) {
locking = true;
packet_peer_stream->put_var("error");
@@ -401,22 +432,6 @@ void ScriptDebuggerRemote::_err_handler(void *ud, const char *p_func, const char
if (p_type == ERR_HANDLER_SCRIPT)
return; //ignore script errors, those go through debugger
- ScriptDebuggerRemote *sdr = (ScriptDebuggerRemote *)ud;
-
- OutputError oe;
- oe.error = p_err;
- oe.error_descr = p_descr;
- oe.source_file = p_file;
- oe.source_line = p_line;
- oe.source_func = p_func;
- oe.warning = p_type == ERR_HANDLER_WARNING;
- uint64_t time = OS::get_singleton()->get_ticks_msec();
- oe.hr = time / 3600000;
- oe.min = (time / 60000) % 60;
- oe.sec = (time / 1000) % 60;
- oe.msec = time % 1000;
- Array cstack;
-
Vector<ScriptLanguage::StackInfo> si;
for (int i = 0; i < ScriptServer::get_language_count(); i++) {
@@ -425,28 +440,8 @@ void ScriptDebuggerRemote::_err_handler(void *ud, const char *p_func, const char
break;
}
- cstack.resize(si.size() * 2);
- for (int i = 0; i < si.size(); i++) {
- String path;
- int line = 0;
- if (si[i].script.is_valid()) {
- path = si[i].script->get_path();
- line = si[i].line;
- }
- cstack[i * 2 + 0] = path;
- cstack[i * 2 + 1] = line;
- }
-
- oe.callstack = cstack;
-
- sdr->mutex->lock();
-
- if (!sdr->locking && sdr->tcp_client->is_connected_to_host()) {
-
- sdr->errors.push_back(oe);
- }
-
- sdr->mutex->unlock();
+ ScriptDebuggerRemote *sdr = (ScriptDebuggerRemote *)ud;
+ sdr->send_error(p_func, p_file, p_line, p_err, p_descr, p_type, si);
}
bool ScriptDebuggerRemote::_parse_live_edit(const Array &p_command) {
@@ -603,7 +598,13 @@ void ScriptDebuggerRemote::_send_object_id(ObjectID p_id) {
Array send_props;
for (int i = 0; i < properties.size(); i++) {
const PropertyInfo &pi = properties[i].first;
- const Variant &var = properties[i].second;
+ Variant &var = properties[i].second;
+
+ WeakRef *ref = Object::cast_to<WeakRef>(var);
+ if (ref) {
+ var = ref->get_ref();
+ }
+
RES res = var;
Array prop;
@@ -881,11 +882,54 @@ void ScriptDebuggerRemote::send_message(const String &p_message, const Array &p_
mutex->lock();
if (!locking && tcp_client->is_connected_to_host()) {
- Message msg;
- msg.message = p_message;
- msg.data = p_args;
- messages.push_back(msg);
+ if (messages.size() >= max_messages_per_frame) {
+ n_messages_dropped++;
+ } else {
+ Message msg;
+ msg.message = p_message;
+ msg.data = p_args;
+ messages.push_back(msg);
+ }
+ }
+ mutex->unlock();
+}
+
+void ScriptDebuggerRemote::send_error(const String &p_func, const String &p_file, int p_line, const String &p_err, const String &p_descr, ErrorHandlerType p_type, const Vector<ScriptLanguage::StackInfo> &p_stack_info) {
+
+ OutputError oe;
+ oe.error = p_err;
+ oe.error_descr = p_descr;
+ oe.source_file = p_file;
+ oe.source_line = p_line;
+ oe.source_func = p_func;
+ oe.warning = p_type == ERR_HANDLER_WARNING;
+ uint64_t time = OS::get_singleton()->get_ticks_msec();
+ oe.hr = time / 3600000;
+ oe.min = (time / 60000) % 60;
+ oe.sec = (time / 1000) % 60;
+ oe.msec = time % 1000;
+ Array cstack;
+
+ cstack.resize(p_stack_info.size() * 3);
+ for (int i = 0; i < p_stack_info.size(); i++) {
+ cstack[i * 3 + 0] = p_stack_info[i].file;
+ cstack[i * 3 + 1] = p_stack_info[i].func;
+ cstack[i * 3 + 2] = p_stack_info[i].line;
}
+
+ oe.callstack = cstack;
+
+ mutex->lock();
+
+ if (!locking && tcp_client->is_connected_to_host()) {
+
+ if (errors.size() >= max_errors_per_frame) {
+ n_errors_dropped++;
+ } else {
+ errors.push_back(oe);
+ }
+ }
+
mutex->unlock();
}
@@ -1001,7 +1045,11 @@ ScriptDebuggerRemote::ScriptDebuggerRemote() :
requested_quit(false),
mutex(Mutex::create()),
max_cps(GLOBAL_GET("network/limits/debugger_stdout/max_chars_per_second")),
+ max_messages_per_frame(GLOBAL_GET("network/limits/debugger_stdout/max_messages_per_frame")),
+ max_errors_per_frame(GLOBAL_GET("network/limits/debugger_stdout/max_errors_per_frame")),
char_count(0),
+ n_messages_dropped(0),
+ n_errors_dropped(0),
last_msec(0),
msec_count(0),
locking(false),
diff --git a/core/script_debugger_remote.h b/core/script_debugger_remote.h
index 15afc866e..2c4e29f17 100644
--- a/core/script_debugger_remote.h
+++ b/core/script_debugger_remote.h
@@ -27,6 +27,7 @@
/* TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE */
/* SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE. */
/*************************************************************************/
+
#ifndef SCRIPT_DEBUGGER_REMOTE_H
#define SCRIPT_DEBUGGER_REMOTE_H
@@ -86,7 +87,11 @@ class ScriptDebuggerRemote : public ScriptDebugger {
List<String> output_strings;
List<Message> messages;
+ int max_messages_per_frame;
+ int n_messages_dropped;
List<OutputError> errors;
+ int max_errors_per_frame;
+ int n_errors_dropped;
int max_cps;
int char_count;
@@ -152,6 +157,7 @@ public:
virtual void request_quit();
virtual void send_message(const String &p_message, const Array &p_args);
+ virtual void send_error(const String &p_func, const String &p_file, int p_line, const String &p_err, const String &p_descr, ErrorHandlerType p_type, const Vector<ScriptLanguage::StackInfo> &p_stack_info);
virtual void set_request_scene_tree_message_func(RequestSceneTreeMessageFunc p_func, void *p_udata);
virtual void set_live_edit_funcs(LiveEditFuncs *p_funcs);
diff --git a/core/script_language.cpp b/core/script_language.cpp
index 773eb2903..1dab58e29 100644
--- a/core/script_language.cpp
+++ b/core/script_language.cpp
@@ -27,6 +27,7 @@
/* TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE */
/* SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE. */
/*************************************************************************/
+
#include "script_language.h"
ScriptLanguage *ScriptServer::_languages[MAX_LANGUAGES];
@@ -60,6 +61,8 @@ void Script::_bind_methods() {
ClassDB::bind_method(D_METHOD("has_script_signal", "signal_name"), &Script::has_script_signal);
ClassDB::bind_method(D_METHOD("is_tool"), &Script::is_tool);
+
+ ADD_PROPERTY(PropertyInfo(Variant::STRING, "source_code", PROPERTY_HINT_NONE, "", 0), "set_source_code", "get_source_code");
}
void ScriptServer::set_scripting_enabled(bool p_enabled) {
diff --git a/core/script_language.h b/core/script_language.h
index 1a9d101dd..d1da0a3b7 100644
--- a/core/script_language.h
+++ b/core/script_language.h
@@ -27,6 +27,7 @@
/* TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE */
/* SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE. */
/*************************************************************************/
+
#ifndef SCRIPT_LANGUAGE_H
#define SCRIPT_LANGUAGE_H
@@ -178,7 +179,7 @@ class ScriptCodeCompletionCache {
public:
virtual RES get_cached_resource(const String &p_path) = 0;
- static ScriptCodeCompletionCache *get_sigleton() { return singleton; }
+ static ScriptCodeCompletionCache *get_singleton() { return singleton; }
ScriptCodeCompletionCache();
};
@@ -253,7 +254,8 @@ public:
virtual String debug_parse_stack_level_expression(int p_level, const String &p_expression, int p_max_subitems = -1, int p_max_depth = -1) = 0;
struct StackInfo {
- Ref<Script> script;
+ String file;
+ String func;
int line;
};
@@ -390,6 +392,7 @@ public:
ScriptLanguage *get_break_language() const;
virtual void send_message(const String &p_message, const Array &p_args) = 0;
+ virtual void send_error(const String &p_func, const String &p_file, int p_line, const String &p_err, const String &p_descr, ErrorHandlerType p_type, const Vector<ScriptLanguage::StackInfo> &p_stack_info) = 0;
virtual bool is_remote() const { return false; }
virtual void request_quit() {}
diff --git a/core/self_list.h b/core/self_list.h
index bb7f1a8a5..e83afb66e 100644
--- a/core/self_list.h
+++ b/core/self_list.h
@@ -27,6 +27,7 @@
/* TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE */
/* SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE. */
/*************************************************************************/
+
#ifndef SELF_LIST_H
#define SELF_LIST_H
diff --git a/core/set.h b/core/set.h
index b2a8ee163..4f17c953b 100644
--- a/core/set.h
+++ b/core/set.h
@@ -27,6 +27,7 @@
/* TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE */
/* SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE. */
/*************************************************************************/
+
#ifndef SET_H
#define SET_H
diff --git a/core/simple_type.h b/core/simple_type.h
index 5429719f0..a645d0318 100644
--- a/core/simple_type.h
+++ b/core/simple_type.h
@@ -27,6 +27,7 @@
/* TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE */
/* SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE. */
/*************************************************************************/
+
#ifndef SIMPLE_TYPE_H
#define SIMPLE_TYPE_H
diff --git a/core/sort.h b/core/sort.h
index 94c2c1ecd..a6780309d 100644
--- a/core/sort.h
+++ b/core/sort.h
@@ -27,6 +27,7 @@
/* TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE */
/* SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE. */
/*************************************************************************/
+
#ifndef SORT_H
#define SORT_H
diff --git a/core/string_buffer.cpp b/core/string_buffer.cpp
index 970477b90..aac209037 100644
--- a/core/string_buffer.cpp
+++ b/core/string_buffer.cpp
@@ -27,6 +27,7 @@
/* TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE */
/* SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE. */
/*************************************************************************/
+
#include "string_buffer.h"
#include <string.h>
diff --git a/core/string_buffer.h b/core/string_buffer.h
index 4b502f3d9..f0ead66bb 100644
--- a/core/string_buffer.h
+++ b/core/string_buffer.h
@@ -27,6 +27,7 @@
/* TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE */
/* SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE. */
/*************************************************************************/
+
#ifndef STRING_BUFFER_H
#define STRING_BUFFER_H
diff --git a/core/string_builder.cpp b/core/string_builder.cpp
index f24e23c98..8ab7e0ea8 100644
--- a/core/string_builder.cpp
+++ b/core/string_builder.cpp
@@ -27,6 +27,7 @@
/* TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE */
/* SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE. */
/*************************************************************************/
+
#include "string_builder.h"
#include <string.h>
@@ -55,6 +56,9 @@ StringBuilder &StringBuilder::append(const char *p_cstring) {
String StringBuilder::as_string() const {
+ if (string_length == 0)
+ return "";
+
CharType *buffer = memnew_arr(CharType, string_length);
int current_position = 0;
diff --git a/core/string_builder.h b/core/string_builder.h
index 48e3fd663..9e2599ac3 100644
--- a/core/string_builder.h
+++ b/core/string_builder.h
@@ -27,6 +27,7 @@
/* TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE */
/* SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE. */
/*************************************************************************/
+
#ifndef STRING_BUILDER_H
#define STRING_BUILDER_H
diff --git a/core/string_db.cpp b/core/string_db.cpp
index 3d77aee0a..6e1f88775 100644
--- a/core/string_db.cpp
+++ b/core/string_db.cpp
@@ -27,6 +27,7 @@
/* TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE */
/* SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE. */
/*************************************************************************/
+
#include "string_db.h"
#include "os/os.h"
diff --git a/core/string_db.h b/core/string_db.h
index 5e3086d4e..28ca812a4 100644
--- a/core/string_db.h
+++ b/core/string_db.h
@@ -27,6 +27,7 @@
/* TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE */
/* SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE. */
/*************************************************************************/
+
#ifndef STRING_DB_H
#define STRING_DB_H
diff --git a/core/translation.cpp b/core/translation.cpp
index 0c9af4e62..32096d2ea 100644
--- a/core/translation.cpp
+++ b/core/translation.cpp
@@ -27,6 +27,7 @@
/* TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE */
/* SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE. */
/*************************************************************************/
+
#include "translation.h"
#include "io/resource_loader.h"
@@ -872,7 +873,7 @@ void Translation::_bind_methods() {
ClassDB::bind_method(D_METHOD("_set_messages"), &Translation::_set_messages);
ClassDB::bind_method(D_METHOD("_get_messages"), &Translation::_get_messages);
- ADD_PROPERTY(PropertyInfo(Variant::POOL_STRING_ARRAY, "messages", PROPERTY_HINT_NONE, "", PROPERTY_USAGE_NOEDITOR), "_set_messages", "_get_messages");
+ ADD_PROPERTY(PropertyInfo(Variant::POOL_STRING_ARRAY, "messages", PROPERTY_HINT_NONE, "", PROPERTY_USAGE_NOEDITOR | PROPERTY_USAGE_INTERNAL), "_set_messages", "_get_messages");
ADD_PROPERTY(PropertyInfo(Variant::STRING, "locale"), "set_locale", "get_locale");
}
diff --git a/core/translation.h b/core/translation.h
index b8ff1722f..e7c0dcbc0 100644
--- a/core/translation.h
+++ b/core/translation.h
@@ -27,6 +27,7 @@
/* TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE */
/* SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE. */
/*************************************************************************/
+
#ifndef TRANSLATION_H
#define TRANSLATION_H
diff --git a/core/type_info.h b/core/type_info.h
index 24d96c51e..c1af4fac6 100644
--- a/core/type_info.h
+++ b/core/type_info.h
@@ -1,3 +1,33 @@
+/*************************************************************************/
+/* type_info.h */
+/*************************************************************************/
+/* This file is part of: */
+/* GODOT ENGINE */
+/* https://godotengine.org */
+/*************************************************************************/
+/* Copyright (c) 2007-2018 Juan Linietsky, Ariel Manzur. */
+/* Copyright (c) 2014-2018 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. */
+/*************************************************************************/
+
#ifndef GET_TYPE_INFO_H
#define GET_TYPE_INFO_H
diff --git a/core/typedefs.h b/core/typedefs.h
index 9508fe28d..4758a5408 100644
--- a/core/typedefs.h
+++ b/core/typedefs.h
@@ -27,6 +27,7 @@
/* TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE */
/* SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE. */
/*************************************************************************/
+
#ifndef TYPEDEFS_H
#define TYPEDEFS_H
diff --git a/core/ucaps.h b/core/ucaps.h
index 764350504..95bac1aac 100644
--- a/core/ucaps.h
+++ b/core/ucaps.h
@@ -27,6 +27,7 @@
/* TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE */
/* SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE. */
/*************************************************************************/
+
#ifndef UCAPS_H
#define UCAPS_H
diff --git a/core/undo_redo.cpp b/core/undo_redo.cpp
index 46d38b3ab..b3f9dd818 100644
--- a/core/undo_redo.cpp
+++ b/core/undo_redo.cpp
@@ -27,6 +27,7 @@
/* TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE */
/* SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE. */
/*************************************************************************/
+
#include "undo_redo.h"
#include "os/os.h"
@@ -107,6 +108,7 @@ void UndoRedo::create_action(const String &p_name, MergeMode p_mode) {
void UndoRedo::add_do_method(Object *p_object, const String &p_method, VARIANT_ARG_DECLARE) {
VARIANT_ARGPTRS
+ ERR_FAIL_COND(p_object == NULL);
ERR_FAIL_COND(action_level <= 0);
ERR_FAIL_COND((current_action + 1) >= actions.size());
Operation do_op;
@@ -126,6 +128,7 @@ void UndoRedo::add_do_method(Object *p_object, const String &p_method, VARIANT_A
void UndoRedo::add_undo_method(Object *p_object, const String &p_method, VARIANT_ARG_DECLARE) {
VARIANT_ARGPTRS
+ ERR_FAIL_COND(p_object == NULL);
ERR_FAIL_COND(action_level <= 0);
ERR_FAIL_COND((current_action + 1) >= actions.size());
@@ -148,6 +151,7 @@ void UndoRedo::add_undo_method(Object *p_object, const String &p_method, VARIANT
}
void UndoRedo::add_do_property(Object *p_object, const String &p_property, const Variant &p_value) {
+ ERR_FAIL_COND(p_object == NULL);
ERR_FAIL_COND(action_level <= 0);
ERR_FAIL_COND((current_action + 1) >= actions.size());
Operation do_op;
@@ -162,6 +166,7 @@ void UndoRedo::add_do_property(Object *p_object, const String &p_property, const
}
void UndoRedo::add_undo_property(Object *p_object, const String &p_property, const Variant &p_value) {
+ ERR_FAIL_COND(p_object == NULL);
ERR_FAIL_COND(action_level <= 0);
ERR_FAIL_COND((current_action + 1) >= actions.size());
@@ -181,6 +186,7 @@ void UndoRedo::add_undo_property(Object *p_object, const String &p_property, con
}
void UndoRedo::add_do_reference(Object *p_object) {
+ ERR_FAIL_COND(p_object == NULL);
ERR_FAIL_COND(action_level <= 0);
ERR_FAIL_COND((current_action + 1) >= actions.size());
Operation do_op;
@@ -193,6 +199,7 @@ void UndoRedo::add_do_reference(Object *p_object) {
}
void UndoRedo::add_undo_reference(Object *p_object) {
+ ERR_FAIL_COND(p_object == NULL);
ERR_FAIL_COND(action_level <= 0);
ERR_FAIL_COND((current_action + 1) >= actions.size());
@@ -239,13 +246,6 @@ void UndoRedo::commit_action() {
redo(); // perform action
- if (max_steps > 0 && actions.size() > max_steps) {
- //clear early steps
-
- while (actions.size() > max_steps)
- _pop_history_tail();
- }
-
if (callback && actions.size() > 0) {
callback(callback_ud, actions[actions.size() - 1].name);
}
@@ -340,16 +340,6 @@ String UndoRedo::get_current_action_name() const {
return actions[current_action].name;
}
-void UndoRedo::set_max_steps(int p_max_steps) {
-
- max_steps = p_max_steps;
-}
-
-int UndoRedo::get_max_steps() const {
-
- return max_steps;
-}
-
uint64_t UndoRedo::get_version() const {
return version;
@@ -378,7 +368,6 @@ UndoRedo::UndoRedo() {
version = 1;
action_level = 0;
current_action = -1;
- max_steps = -1;
merge_mode = MERGE_DISABLE;
callback = NULL;
callback_ud = NULL;
@@ -503,8 +492,6 @@ void UndoRedo::_bind_methods() {
ClassDB::bind_method(D_METHOD("clear_history"), &UndoRedo::clear_history);
ClassDB::bind_method(D_METHOD("get_current_action_name"), &UndoRedo::get_current_action_name);
ClassDB::bind_method(D_METHOD("get_version"), &UndoRedo::get_version);
- ClassDB::bind_method(D_METHOD("set_max_steps", "max_steps"), &UndoRedo::set_max_steps);
- ClassDB::bind_method(D_METHOD("get_max_steps"), &UndoRedo::get_max_steps);
ClassDB::bind_method(D_METHOD("redo"), &UndoRedo::redo);
ClassDB::bind_method(D_METHOD("undo"), &UndoRedo::undo);
diff --git a/core/undo_redo.h b/core/undo_redo.h
index 27bd7c2fd..a373296b7 100644
--- a/core/undo_redo.h
+++ b/core/undo_redo.h
@@ -27,6 +27,7 @@
/* TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE */
/* SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE. */
/*************************************************************************/
+
#ifndef UNDO_REDO_H
#define UNDO_REDO_H
@@ -78,7 +79,6 @@ private:
Vector<Action> actions;
int current_action;
int action_level;
- int max_steps;
MergeMode merge_mode;
uint64_t version;
@@ -114,9 +114,6 @@ public:
String get_current_action_name() const;
void clear_history();
- void set_max_steps(int p_max_steps);
- int get_max_steps() const;
-
uint64_t get_version() const;
void set_commit_notify_callback(CommitNotifyCallback p_callback, void *p_ud);
diff --git a/core/ustring.cpp b/core/ustring.cpp
index 11d83a573..d445e4ed4 100644
--- a/core/ustring.cpp
+++ b/core/ustring.cpp
@@ -27,6 +27,7 @@
/* TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE */
/* SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE. */
/*************************************************************************/
+
#include "ustring.h"
#include "color.h"
@@ -685,6 +686,9 @@ Vector<String> String::split_spaces() const {
int from = 0;
int i = 0;
int len = length();
+ if (len == 0)
+ return ret;
+
bool inside = false;
while (true) {
@@ -1097,9 +1101,8 @@ String String::num(double p_num, int p_decimals) {
String String::num_int64(int64_t p_num, int base, bool capitalize_hex) {
bool sign = p_num < 0;
- int64_t num = ABS(p_num);
- int64_t n = num;
+ int64_t n = p_num;
int chars = 0;
do {
@@ -1113,9 +1116,9 @@ String String::num_int64(int64_t p_num, int base, bool capitalize_hex) {
s.resize(chars + 1);
CharType *c = s.ptrw();
c[chars] = 0;
- n = num;
+ n = p_num;
do {
- int mod = n % base;
+ int mod = ABS(n % base);
if (mod >= 10) {
char a = (capitalize_hex ? 'A' : 'a');
c[--chars] = a + (mod - 10);
@@ -2214,7 +2217,7 @@ int String::find(const String &p_str, int p_from) const {
const int len = length();
if (src_len == 0 || len == 0)
- return -1; //wont find anything!
+ return -1; // won't find anything!
const CharType *src = c_str();
const CharType *str = p_str.c_str();
@@ -2253,7 +2256,7 @@ int String::find(const char *p_str, int p_from) const {
const int len = length();
if (len == 0)
- return -1; //wont find anything!
+ return -1; // won't find anything!
const CharType *src = c_str();
@@ -2314,7 +2317,7 @@ int String::findmk(const Vector<String> &p_keys, int p_from, int *r_key) const {
int len = length();
if (len == 0)
- return -1; //wont find anything!
+ return -1; // won't find anything!
const CharType *src = c_str();
@@ -2363,7 +2366,7 @@ int String::findn(const String &p_str, int p_from) const {
int src_len = p_str.length();
if (src_len == 0 || length() == 0)
- return -1; //wont find anything!
+ return -1; // won't find anything!
const CharType *srcd = c_str();
@@ -2459,7 +2462,7 @@ int String::rfindn(const String &p_str, int p_from) const {
int len = length();
if (src_len == 0 || len == 0)
- return -1; //wont find anything!
+ return -1; // won't find anything!
const CharType *src = c_str();
@@ -3164,7 +3167,7 @@ String String::http_unescape() const {
if ((ord1 >= '0' && ord1 <= '9') || (ord1 >= 'A' && ord1 <= 'Z')) {
CharType ord2 = ord_at(i + 2);
if ((ord2 >= '0' && ord2 <= '9') || (ord2 >= 'A' && ord2 <= 'Z')) {
- char bytes[2] = { ord1, ord2 };
+ char bytes[2] = { (char)ord1, (char)ord2 };
res += (char)strtol(bytes, NULL, 16);
i += 2;
}
diff --git a/core/ustring.h b/core/ustring.h
index 8dd8b0fed..90496b71b 100644
--- a/core/ustring.h
+++ b/core/ustring.h
@@ -27,6 +27,7 @@
/* TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE */
/* SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE. */
/*************************************************************************/
+
#ifndef RSTRING_H
#define RSTRING_H
diff --git a/core/variant.cpp b/core/variant.cpp
index 5d4879dba..2e26169bf 100644
--- a/core/variant.cpp
+++ b/core/variant.cpp
@@ -27,6 +27,7 @@
/* TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE */
/* SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE. */
/*************************************************************************/
+
#include "variant.h"
#include "core_string_names.h"
diff --git a/core/variant.h b/core/variant.h
index 6c9204a18..51ee8ea9d 100644
--- a/core/variant.h
+++ b/core/variant.h
@@ -27,6 +27,7 @@
/* TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE */
/* SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE. */
/*************************************************************************/
+
#ifndef VARIANT_H
#define VARIANT_H
diff --git a/core/variant_call.cpp b/core/variant_call.cpp
index a2794e705..2ca435611 100644
--- a/core/variant_call.cpp
+++ b/core/variant_call.cpp
@@ -27,6 +27,7 @@
/* TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE */
/* SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE. */
/*************************************************************************/
+
#include "variant.h"
#include "core_string_names.h"
@@ -101,9 +102,10 @@ struct _VariantCall {
const Variant *newargs[VARIANT_ARG_MAX];
for (int i = 0; i < p_argcount; i++)
newargs[i] = p_args[i];
- int defargcount = def_argcount;
+ // fill in any remaining parameters with defaults
+ int first_default_arg = arg_count - def_argcount;
for (int i = p_argcount; i < arg_count; i++)
- newargs[i] = &default_args[defargcount - (i - p_argcount) - 1]; //default arguments
+ newargs[i] = &default_args[i - first_default_arg];
#ifdef DEBUG_ENABLED
if (!verify_arguments(newargs, r_error))
return;
@@ -1746,10 +1748,10 @@ void register_variant_methods() {
ADDFUNC1R(TRANSFORM2D, TRANSFORM2D, Transform2D, rotated, REAL, "phi", varray());
ADDFUNC1R(TRANSFORM2D, TRANSFORM2D, Transform2D, scaled, VECTOR2, "scale", varray());
ADDFUNC1R(TRANSFORM2D, TRANSFORM2D, Transform2D, translated, VECTOR2, "offset", varray());
- ADDFUNC1R(TRANSFORM2D, TRANSFORM2D, Transform2D, xform, NIL, "v", varray());
- ADDFUNC1R(TRANSFORM2D, TRANSFORM2D, Transform2D, xform_inv, NIL, "v", varray());
- ADDFUNC1R(TRANSFORM2D, TRANSFORM2D, Transform2D, basis_xform, NIL, "v", varray());
- ADDFUNC1R(TRANSFORM2D, TRANSFORM2D, Transform2D, basis_xform_inv, NIL, "v", varray());
+ ADDFUNC1R(TRANSFORM2D, NIL, Transform2D, xform, NIL, "v", varray());
+ ADDFUNC1R(TRANSFORM2D, NIL, Transform2D, xform_inv, NIL, "v", varray());
+ ADDFUNC1R(TRANSFORM2D, VECTOR2, Transform2D, basis_xform, VECTOR2, "v", varray());
+ ADDFUNC1R(TRANSFORM2D, VECTOR2, Transform2D, basis_xform_inv, VECTOR2, "v", varray());
ADDFUNC2R(TRANSFORM2D, TRANSFORM2D, Transform2D, interpolate_with, TRANSFORM2D, "transform", REAL, "weight", varray());
ADDFUNC0R(BASIS, BASIS, Basis, inverse, varray());
diff --git a/core/variant_construct_string.cpp b/core/variant_construct_string.cpp
index 408e54bc9..2250c03f3 100644
--- a/core/variant_construct_string.cpp
+++ b/core/variant_construct_string.cpp
@@ -27,6 +27,7 @@
/* TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE */
/* SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE. */
/*************************************************************************/
+
#include "variant.h"
class VariantConstruct {
diff --git a/core/variant_op.cpp b/core/variant_op.cpp
index 96b09c904..e46fac77e 100644
--- a/core/variant_op.cpp
+++ b/core/variant_op.cpp
@@ -27,6 +27,7 @@
/* TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE */
/* SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE. */
/*************************************************************************/
+
#include "variant.h"
#include "core_string_names.h"
@@ -338,7 +339,7 @@ bool Variant::booleanize() const {
CASE_TYPE(m_prefix, m_op_name, m_name) { \
if (p_b.type == NIL) \
_RETURN(true) \
- DEFAULT_OP_ARRAY_OP_BODY(m_prefix, m_op_name, m_name, m_type, !=, ==, true, true, false) \
+ DEFAULT_OP_ARRAY_OP_BODY(m_prefix, m_op_name, m_name, m_type, !=, !=, false, true, true) \
}
#define DEFAULT_OP_ARRAY_LT(m_prefix, m_op_name, m_name, m_type) \
@@ -538,12 +539,12 @@ void Variant::evaluate(const Operator &p_op, const Variant &p_a,
if (arr_b->size() != l)
_RETURN(true);
for (int i = 0; i < l; i++) {
- if (((*arr_a)[i] == (*arr_b)[i])) {
- _RETURN(false);
+ if (((*arr_a)[i] != (*arr_b)[i])) {
+ _RETURN(true);
}
}
- _RETURN(true);
+ _RETURN(false);
}
DEFAULT_OP_NUM_NULL(math, OP_NOT_EQUAL, INT, !=, _int);
diff --git a/core/variant_parser.cpp b/core/variant_parser.cpp
index a78e18112..54edb0234 100644
--- a/core/variant_parser.cpp
+++ b/core/variant_parser.cpp
@@ -27,6 +27,7 @@
/* TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE */
/* SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE. */
/*************************************************************************/
+
#include "variant_parser.h"
#include "core/string_buffer.h"
diff --git a/core/variant_parser.h b/core/variant_parser.h
index 18b6998f5..8d9559523 100644
--- a/core/variant_parser.h
+++ b/core/variant_parser.h
@@ -27,6 +27,7 @@
/* TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE */
/* SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE. */
/*************************************************************************/
+
#ifndef VARIANT_PARSER_H
#define VARIANT_PARSER_H
diff --git a/core/vector.h b/core/vector.h
index 456d446a4..f586471e2 100644
--- a/core/vector.h
+++ b/core/vector.h
@@ -27,6 +27,7 @@
/* TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE */
/* SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE. */
/*************************************************************************/
+
#ifndef VECTOR_H
#define VECTOR_H
diff --git a/core/version.h b/core/version.h
index bf2f2c9d9..7a55d69ad 100644
--- a/core/version.h
+++ b/core/version.h
@@ -27,6 +27,7 @@
/* TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE */
/* SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE. */
/*************************************************************************/
+
#include "version_generated.gen.h"
#ifdef VERSION_PATCH
diff --git a/core/vmap.h b/core/vmap.h
index 341fc273d..8636c0299 100644
--- a/core/vmap.h
+++ b/core/vmap.h
@@ -27,6 +27,7 @@
/* TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE */
/* SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE. */
/*************************************************************************/
+
#ifndef VMAP_H
#define VMAP_H
diff --git a/core/vset.h b/core/vset.h
index f4036c7c7..449943b4a 100644
--- a/core/vset.h
+++ b/core/vset.h
@@ -27,6 +27,7 @@
/* TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE */
/* SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE. */
/*************************************************************************/
+
#ifndef VSET_H
#define VSET_H