summaryrefslogtreecommitdiff
path: root/core
diff options
context:
space:
mode:
Diffstat (limited to 'core')
-rw-r--r--core/bind/core_bind.cpp21
-rw-r--r--core/compressed_translation.h2
-rw-r--r--core/image.h2
-rw-r--r--core/input/input.h2
-rw-r--r--core/input/input_event.h76
-rw-r--r--core/io/logger.cpp2
-rw-r--r--core/io/packet_peer.h8
-rw-r--r--core/io/packet_peer_udp.h8
-rw-r--r--core/io/stream_peer.h10
-rw-r--r--core/io/stream_peer_tcp.h10
-rw-r--r--core/object.h280
-rw-r--r--core/os/os.cpp4
-rw-r--r--core/os/os.h2
-rw-r--r--core/packed_data_container.h4
-rw-r--r--core/resource.h8
-rw-r--r--core/script_language.h2
16 files changed, 228 insertions, 213 deletions
diff --git a/core/bind/core_bind.cpp b/core/bind/core_bind.cpp
index 6df8dd380a..94da74cbda 100644
--- a/core/bind/core_bind.cpp
+++ b/core/bind/core_bind.cpp
@@ -1673,8 +1673,15 @@ int _Directory::get_current_drive() {
}
Error _Directory::change_dir(String p_dir) {
- ERR_FAIL_COND_V_MSG(!is_open(), ERR_UNCONFIGURED, "Directory must be opened before use.");
- return d->change_dir(p_dir);
+ ERR_FAIL_COND_V_MSG(!d, ERR_UNCONFIGURED, "Directory is not configured properly.");
+ Error err = d->change_dir(p_dir);
+
+ if (err != OK) {
+ return err;
+ }
+ dir_open = true;
+
+ return OK;
}
String _Directory::get_current_dir() {
@@ -1705,8 +1712,7 @@ Error _Directory::make_dir_recursive(String p_dir) {
}
bool _Directory::file_exists(String p_file) {
- ERR_FAIL_COND_V_MSG(!is_open(), false, "Directory must be opened before use.");
-
+ ERR_FAIL_COND_V_MSG(!d, false, "Directory is not configured properly.");
if (!p_file.is_rel_path()) {
return FileAccess::exists(p_file);
}
@@ -1715,16 +1721,15 @@ bool _Directory::file_exists(String p_file) {
}
bool _Directory::dir_exists(String p_dir) {
- ERR_FAIL_COND_V_MSG(!is_open(), false, "Directory must be opened before use.");
+ ERR_FAIL_COND_V_MSG(!d, false, "Directory is not configured properly.");
if (!p_dir.is_rel_path()) {
DirAccess *d = DirAccess::create_for_path(p_dir);
bool exists = d->dir_exists(p_dir);
memdelete(d);
return exists;
-
- } else {
- return d->dir_exists(p_dir);
}
+
+ return d->dir_exists(p_dir);
}
int _Directory::get_space_left() {
diff --git a/core/compressed_translation.h b/core/compressed_translation.h
index 3c029bdf58..4f9c422e1e 100644
--- a/core/compressed_translation.h
+++ b/core/compressed_translation.h
@@ -79,7 +79,7 @@ protected:
static void _bind_methods();
public:
- virtual StringName get_message(const StringName &p_src_text) const; //overridable for other implementations
+ virtual StringName get_message(const StringName &p_src_text) const override; //overridable for other implementations
void generate(const Ref<Translation> &p_from);
PHashTranslation() {}
diff --git a/core/image.h b/core/image.h
index 711bf5721c..d2572b072e 100644
--- a/core/image.h
+++ b/core/image.h
@@ -369,7 +369,7 @@ public:
Image(const uint8_t *p_mem_png_jpg, int p_len = -1);
Image(const char **p_xpm);
- virtual Ref<Resource> duplicate(bool p_subresources = false) const;
+ virtual Ref<Resource> duplicate(bool p_subresources = false) const override;
UsedChannels detect_used_channels(CompressSource p_source = COMPRESS_SOURCE_GENERIC);
void optimize_channels();
diff --git a/core/input/input.h b/core/input/input.h
index 91e3b83b95..775663503b 100644
--- a/core/input/input.h
+++ b/core/input/input.h
@@ -255,7 +255,7 @@ protected:
public:
void set_mouse_mode(MouseMode p_mode);
MouseMode get_mouse_mode() const;
- void get_argument_options(const StringName &p_function, int p_idx, List<String> *r_options) const;
+ void get_argument_options(const StringName &p_function, int p_idx, List<String> *r_options) const override;
static Input *get_singleton();
diff --git a/core/input/input_event.h b/core/input/input_event.h
index dd1cc11982..815ba5ae80 100644
--- a/core/input/input_event.h
+++ b/core/input/input_event.h
@@ -266,7 +266,7 @@ protected:
public:
void set_pressed(bool p_pressed);
- virtual bool is_pressed() const;
+ virtual bool is_pressed() const override;
void set_keycode(uint32_t p_keycode);
uint32_t get_keycode() const;
@@ -278,17 +278,17 @@ public:
uint32_t get_unicode() const;
void set_echo(bool p_enable);
- virtual bool is_echo() const;
+ virtual bool is_echo() const override;
uint32_t get_keycode_with_modifiers() const;
uint32_t get_physical_keycode_with_modifiers() const;
- virtual bool action_match(const Ref<InputEvent> &p_event, bool *p_pressed, float *p_strength, float p_deadzone) const;
- virtual bool shortcut_match(const Ref<InputEvent> &p_event) const;
+ virtual bool action_match(const Ref<InputEvent> &p_event, bool *p_pressed, float *p_strength, float p_deadzone) const override;
+ virtual bool shortcut_match(const Ref<InputEvent> &p_event) const override;
- virtual bool is_action_type() const { return true; }
+ virtual bool is_action_type() const override { return true; }
- virtual String as_text() const;
+ virtual String as_text() const override;
InputEventKey() {}
};
@@ -336,16 +336,16 @@ public:
int get_button_index() const;
void set_pressed(bool p_pressed);
- virtual bool is_pressed() const;
+ virtual bool is_pressed() const override;
void set_doubleclick(bool p_doubleclick);
bool is_doubleclick() const;
- virtual Ref<InputEvent> xformed_by(const Transform2D &p_xform, const Vector2 &p_local_ofs = Vector2()) const;
- virtual bool action_match(const Ref<InputEvent> &p_event, bool *p_pressed, float *p_strength, float p_deadzone) const;
+ virtual Ref<InputEvent> xformed_by(const Transform2D &p_xform, const Vector2 &p_local_ofs = Vector2()) const override;
+ virtual bool action_match(const Ref<InputEvent> &p_event, bool *p_pressed, float *p_strength, float p_deadzone) const override;
- virtual bool is_action_type() const { return true; }
- virtual String as_text() const;
+ virtual bool is_action_type() const override { return true; }
+ virtual String as_text() const override;
InputEventMouseButton() {}
};
@@ -374,10 +374,10 @@ public:
void set_speed(const Vector2 &p_speed);
Vector2 get_speed() const;
- virtual Ref<InputEvent> xformed_by(const Transform2D &p_xform, const Vector2 &p_local_ofs = Vector2()) const;
- virtual String as_text() const;
+ virtual Ref<InputEvent> xformed_by(const Transform2D &p_xform, const Vector2 &p_local_ofs = Vector2()) const override;
+ virtual String as_text() const override;
- virtual bool accumulate(const Ref<InputEvent> &p_event);
+ virtual bool accumulate(const Ref<InputEvent> &p_event) override;
InputEventMouseMotion() {}
};
@@ -397,12 +397,12 @@ public:
void set_axis_value(float p_value);
float get_axis_value() const;
- virtual bool is_pressed() const;
+ virtual bool is_pressed() const override;
- virtual bool action_match(const Ref<InputEvent> &p_event, bool *p_pressed, float *p_strength, float p_deadzone) const;
+ virtual bool action_match(const Ref<InputEvent> &p_event, bool *p_pressed, float *p_strength, float p_deadzone) const override;
- virtual bool is_action_type() const { return true; }
- virtual String as_text() const;
+ virtual bool is_action_type() const override { return true; }
+ virtual String as_text() const override;
InputEventJoypadMotion() {}
};
@@ -421,16 +421,16 @@ public:
int get_button_index() const;
void set_pressed(bool p_pressed);
- virtual bool is_pressed() const;
+ virtual bool is_pressed() const override;
void set_pressure(float p_pressure);
float get_pressure() const;
- virtual bool action_match(const Ref<InputEvent> &p_event, bool *p_pressed, float *p_strength, float p_deadzone) const;
- virtual bool shortcut_match(const Ref<InputEvent> &p_event) const;
+ virtual bool action_match(const Ref<InputEvent> &p_event, bool *p_pressed, float *p_strength, float p_deadzone) const override;
+ virtual bool shortcut_match(const Ref<InputEvent> &p_event) const override;
- virtual bool is_action_type() const { return true; }
- virtual String as_text() const;
+ virtual bool is_action_type() const override { return true; }
+ virtual String as_text() const override;
InputEventJoypadButton() {}
};
@@ -452,10 +452,10 @@ public:
Vector2 get_position() const;
void set_pressed(bool p_pressed);
- virtual bool is_pressed() const;
+ virtual bool is_pressed() const override;
- virtual Ref<InputEvent> xformed_by(const Transform2D &p_xform, const Vector2 &p_local_ofs = Vector2()) const;
- virtual String as_text() const;
+ virtual Ref<InputEvent> xformed_by(const Transform2D &p_xform, const Vector2 &p_local_ofs = Vector2()) const override;
+ virtual String as_text() const override;
InputEventScreenTouch() {}
};
@@ -483,8 +483,8 @@ public:
void set_speed(const Vector2 &p_speed);
Vector2 get_speed() const;
- virtual Ref<InputEvent> xformed_by(const Transform2D &p_xform, const Vector2 &p_local_ofs = Vector2()) const;
- virtual String as_text() const;
+ virtual Ref<InputEvent> xformed_by(const Transform2D &p_xform, const Vector2 &p_local_ofs = Vector2()) const override;
+ virtual String as_text() const override;
InputEventScreenDrag() {}
};
@@ -504,18 +504,18 @@ public:
StringName get_action() const;
void set_pressed(bool p_pressed);
- virtual bool is_pressed() const;
+ virtual bool is_pressed() const override;
void set_strength(float p_strength);
float get_strength() const;
virtual bool is_action(const StringName &p_action) const;
- virtual bool action_match(const Ref<InputEvent> &p_event, bool *p_pressed, float *p_strength, float p_deadzone) const;
+ virtual bool action_match(const Ref<InputEvent> &p_event, bool *p_pressed, float *p_strength, float p_deadzone) const override;
- virtual bool shortcut_match(const Ref<InputEvent> &p_event) const;
- virtual bool is_action_type() const { return true; }
- virtual String as_text() const;
+ virtual bool shortcut_match(const Ref<InputEvent> &p_event) const override;
+ virtual bool is_action_type() const override { return true; }
+ virtual String as_text() const override;
InputEventAction() {}
};
@@ -544,8 +544,8 @@ public:
void set_factor(real_t p_factor);
real_t get_factor() const;
- virtual Ref<InputEvent> xformed_by(const Transform2D &p_xform, const Vector2 &p_local_ofs = Vector2()) const;
- virtual String as_text() const;
+ virtual Ref<InputEvent> xformed_by(const Transform2D &p_xform, const Vector2 &p_local_ofs = Vector2()) const override;
+ virtual String as_text() const override;
InputEventMagnifyGesture() {}
};
@@ -561,8 +561,8 @@ public:
void set_delta(const Vector2 &p_delta);
Vector2 get_delta() const;
- virtual Ref<InputEvent> xformed_by(const Transform2D &p_xform, const Vector2 &p_local_ofs = Vector2()) const;
- virtual String as_text() const;
+ virtual Ref<InputEvent> xformed_by(const Transform2D &p_xform, const Vector2 &p_local_ofs = Vector2()) const override;
+ virtual String as_text() const override;
InputEventPanGesture() {}
};
@@ -607,7 +607,7 @@ public:
void set_controller_value(const int p_controller_value);
int get_controller_value() const;
- virtual String as_text() const;
+ virtual String as_text() const override;
InputEventMIDI() {}
};
diff --git a/core/io/logger.cpp b/core/io/logger.cpp
index ef78b1194e..886e5695b1 100644
--- a/core/io/logger.cpp
+++ b/core/io/logger.cpp
@@ -152,7 +152,7 @@ void RotatedFileLogger::rotate_file() {
char timestamp[21];
OS::Date date = OS::get_singleton()->get_date();
OS::Time time = OS::get_singleton()->get_time();
- sprintf(timestamp, "-%04d-%02d-%02d-%02d-%02d-%02d", date.year, date.month, date.day, time.hour, time.min, time.sec);
+ sprintf(timestamp, "_%04d-%02d-%02d_%02d-%02d-%02d", date.year, date.month, date.day, time.hour, time.min, time.sec);
String backup_name = base_path.get_basename() + timestamp;
if (base_path.get_extension() != String()) {
diff --git a/core/io/packet_peer.h b/core/io/packet_peer.h
index f0ba50087f..92cdbc4151 100644
--- a/core/io/packet_peer.h
+++ b/core/io/packet_peer.h
@@ -90,11 +90,11 @@ protected:
static void _bind_methods();
public:
- virtual int get_available_packet_count() const;
- virtual Error get_packet(const uint8_t **r_buffer, int &r_buffer_size);
- virtual Error put_packet(const uint8_t *p_buffer, int p_buffer_size);
+ virtual int get_available_packet_count() const override;
+ virtual Error get_packet(const uint8_t **r_buffer, int &r_buffer_size) override;
+ virtual Error put_packet(const uint8_t *p_buffer, int p_buffer_size) override;
- virtual int get_max_packet_size() const;
+ virtual int get_max_packet_size() const override;
void set_stream_peer(const Ref<StreamPeer> &p_peer);
Ref<StreamPeer> get_stream_peer() const;
diff --git a/core/io/packet_peer_udp.h b/core/io/packet_peer_udp.h
index 23fc5460a6..ad0a60f60d 100644
--- a/core/io/packet_peer_udp.h
+++ b/core/io/packet_peer_udp.h
@@ -80,10 +80,10 @@ public:
int get_packet_port() const;
void set_dest_address(const IP_Address &p_address, int p_port);
- Error put_packet(const uint8_t *p_buffer, int p_buffer_size);
- Error get_packet(const uint8_t **r_buffer, int &r_buffer_size);
- int get_available_packet_count() const;
- int get_max_packet_size() const;
+ Error put_packet(const uint8_t *p_buffer, int p_buffer_size) override;
+ Error get_packet(const uint8_t **r_buffer, int &r_buffer_size) override;
+ int get_available_packet_count() const override;
+ int get_max_packet_size() const override;
void set_broadcast_enabled(bool p_enabled);
Error join_multicast_group(IP_Address p_multi_address, String p_if_name);
Error leave_multicast_group(IP_Address p_multi_address, String p_if_name);
diff --git a/core/io/stream_peer.h b/core/io/stream_peer.h
index ec0b989ed8..39097a57f2 100644
--- a/core/io/stream_peer.h
+++ b/core/io/stream_peer.h
@@ -102,13 +102,13 @@ protected:
static void _bind_methods();
public:
- Error put_data(const uint8_t *p_data, int p_bytes);
- Error put_partial_data(const uint8_t *p_data, int p_bytes, int &r_sent);
+ Error put_data(const uint8_t *p_data, int p_bytes) override;
+ Error put_partial_data(const uint8_t *p_data, int p_bytes, int &r_sent) override;
- Error get_data(uint8_t *p_buffer, int p_bytes);
- Error get_partial_data(uint8_t *p_buffer, int p_bytes, int &r_received);
+ Error get_data(uint8_t *p_buffer, int p_bytes) override;
+ Error get_partial_data(uint8_t *p_buffer, int p_bytes, int &r_received) override;
- virtual int get_available_bytes() const;
+ virtual int get_available_bytes() const override;
void seek(int p_pos);
int get_size() const;
diff --git a/core/io/stream_peer_tcp.h b/core/io/stream_peer_tcp.h
index ab98d494d6..45205866b4 100644
--- a/core/io/stream_peer_tcp.h
+++ b/core/io/stream_peer_tcp.h
@@ -72,7 +72,7 @@ public:
uint16_t get_connected_port() const;
void disconnect_from_host();
- int get_available_bytes() const;
+ int get_available_bytes() const override;
Status get_status();
void set_no_delay(bool p_enabled);
@@ -81,10 +81,10 @@ public:
Error poll(NetSocket::PollType p_type, int timeout = 0);
// Read/Write from StreamPeer
- Error put_data(const uint8_t *p_data, int p_bytes);
- Error put_partial_data(const uint8_t *p_data, int p_bytes, int &r_sent);
- Error get_data(uint8_t *p_buffer, int p_bytes);
- Error get_partial_data(uint8_t *p_buffer, int p_bytes, int &r_received);
+ Error put_data(const uint8_t *p_data, int p_bytes) override;
+ Error put_partial_data(const uint8_t *p_data, int p_bytes, int &r_sent) override;
+ Error get_data(uint8_t *p_buffer, int p_bytes) override;
+ Error get_partial_data(uint8_t *p_buffer, int p_bytes, int &r_received) override;
StreamPeerTCP();
~StreamPeerTCP();
diff --git a/core/object.h b/core/object.h
index 5b46a0f93a..954be5304c 100644
--- a/core/object.h
+++ b/core/object.h
@@ -250,142 +250,142 @@ public: \
\
private:
-#define GDCLASS(m_class, m_inherits) \
-private: \
- void operator=(const m_class &p_rval) {} \
- mutable StringName _class_name; \
- friend class ClassDB; \
- \
-public: \
- virtual String get_class() const { \
- return String(#m_class); \
- } \
- virtual const StringName *_get_class_namev() const { \
- if (!_class_name) { \
- _class_name = get_class_static(); \
- } \
- return &_class_name; \
- } \
- static _FORCE_INLINE_ void *get_class_ptr_static() { \
- static int ptr; \
- return &ptr; \
- } \
- static _FORCE_INLINE_ String get_class_static() { \
- return String(#m_class); \
- } \
- static _FORCE_INLINE_ String get_parent_class_static() { \
- return m_inherits::get_class_static(); \
- } \
- static void get_inheritance_list_static(List<String> *p_inheritance_list) { \
- m_inherits::get_inheritance_list_static(p_inheritance_list); \
- p_inheritance_list->push_back(String(#m_class)); \
- } \
- static String get_category_static() { \
- String category = m_inherits::get_category_static(); \
- if (_get_category != m_inherits::_get_category) { \
- if (category != "") { \
- category += "/"; \
- } \
- category += _get_category(); \
- } \
- return category; \
- } \
- static String inherits_static() { \
- return String(#m_inherits); \
- } \
- virtual bool is_class(const String &p_class) const { return (p_class == (#m_class)) ? true : m_inherits::is_class(p_class); } \
- virtual bool is_class_ptr(void *p_ptr) const { return (p_ptr == get_class_ptr_static()) ? true : m_inherits::is_class_ptr(p_ptr); } \
- \
- static void get_valid_parents_static(List<String> *p_parents) { \
- if (m_class::_get_valid_parents_static != m_inherits::_get_valid_parents_static) { \
- m_class::_get_valid_parents_static(p_parents); \
- } \
- \
- m_inherits::get_valid_parents_static(p_parents); \
- } \
- \
-protected: \
- _FORCE_INLINE_ static void (*_get_bind_methods())() { \
- return &m_class::_bind_methods; \
- } \
- \
-public: \
- static void initialize_class() { \
- static bool initialized = false; \
- if (initialized) { \
- return; \
- } \
- m_inherits::initialize_class(); \
- ClassDB::_add_class<m_class>(); \
- if (m_class::_get_bind_methods() != m_inherits::_get_bind_methods()) { \
- _bind_methods(); \
- } \
- initialized = true; \
- } \
- \
-protected: \
- virtual void _initialize_classv() { \
- initialize_class(); \
- } \
- _FORCE_INLINE_ bool (Object::*_get_get() const)(const StringName &p_name, Variant &) const { \
- return (bool (Object::*)(const StringName &, Variant &) const) & m_class::_get; \
- } \
- virtual bool _getv(const StringName &p_name, Variant &r_ret) const { \
- if (m_class::_get_get() != m_inherits::_get_get()) { \
- if (_get(p_name, r_ret)) { \
- return true; \
- } \
- } \
- return m_inherits::_getv(p_name, r_ret); \
- } \
- _FORCE_INLINE_ bool (Object::*_get_set() const)(const StringName &p_name, const Variant &p_property) { \
- return (bool (Object::*)(const StringName &, const Variant &)) & m_class::_set; \
- } \
- virtual bool _setv(const StringName &p_name, const Variant &p_property) { \
- if (m_inherits::_setv(p_name, p_property)) { \
- return true; \
- } \
- if (m_class::_get_set() != m_inherits::_get_set()) { \
- return _set(p_name, p_property); \
- } \
- return false; \
- } \
- _FORCE_INLINE_ void (Object::*_get_get_property_list() const)(List<PropertyInfo> * p_list) const { \
- return (void (Object::*)(List<PropertyInfo> *) const) & m_class::_get_property_list; \
- } \
- virtual void _get_property_listv(List<PropertyInfo> *p_list, bool p_reversed) const { \
- if (!p_reversed) { \
- m_inherits::_get_property_listv(p_list, p_reversed); \
- } \
- p_list->push_back(PropertyInfo(Variant::NIL, get_class_static(), PROPERTY_HINT_NONE, String(), PROPERTY_USAGE_CATEGORY)); \
- if (!_is_gpl_reversed()) { \
- ClassDB::get_property_list(#m_class, p_list, true, this); \
- } \
- if (m_class::_get_get_property_list() != m_inherits::_get_get_property_list()) { \
- _get_property_list(p_list); \
- } \
- if (_is_gpl_reversed()) { \
- ClassDB::get_property_list(#m_class, p_list, true, this); \
- } \
- if (p_reversed) { \
- m_inherits::_get_property_listv(p_list, p_reversed); \
- } \
- } \
- _FORCE_INLINE_ void (Object::*_get_notification() const)(int) { \
- return (void (Object::*)(int)) & m_class::_notification; \
- } \
- virtual void _notificationv(int p_notification, bool p_reversed) { \
- if (!p_reversed) { \
- m_inherits::_notificationv(p_notification, p_reversed); \
- } \
- if (m_class::_get_notification() != m_inherits::_get_notification()) { \
- _notification(p_notification); \
- } \
- if (p_reversed) { \
- m_inherits::_notificationv(p_notification, p_reversed); \
- } \
- } \
- \
+#define GDCLASS(m_class, m_inherits) \
+private: \
+ void operator=(const m_class &p_rval) {} \
+ mutable StringName _class_name; \
+ friend class ClassDB; \
+ \
+public: \
+ virtual String get_class() const override { \
+ return String(#m_class); \
+ } \
+ virtual const StringName *_get_class_namev() const override { \
+ if (!_class_name) { \
+ _class_name = get_class_static(); \
+ } \
+ return &_class_name; \
+ } \
+ static _FORCE_INLINE_ void *get_class_ptr_static() { \
+ static int ptr; \
+ return &ptr; \
+ } \
+ static _FORCE_INLINE_ String get_class_static() { \
+ return String(#m_class); \
+ } \
+ static _FORCE_INLINE_ String get_parent_class_static() { \
+ return m_inherits::get_class_static(); \
+ } \
+ static void get_inheritance_list_static(List<String> *p_inheritance_list) { \
+ m_inherits::get_inheritance_list_static(p_inheritance_list); \
+ p_inheritance_list->push_back(String(#m_class)); \
+ } \
+ static String get_category_static() { \
+ String category = m_inherits::get_category_static(); \
+ if (_get_category != m_inherits::_get_category) { \
+ if (category != "") { \
+ category += "/"; \
+ } \
+ category += _get_category(); \
+ } \
+ return category; \
+ } \
+ static String inherits_static() { \
+ return String(#m_inherits); \
+ } \
+ virtual bool is_class(const String &p_class) const override { return (p_class == (#m_class)) ? true : m_inherits::is_class(p_class); } \
+ virtual bool is_class_ptr(void *p_ptr) const override { return (p_ptr == get_class_ptr_static()) ? true : m_inherits::is_class_ptr(p_ptr); } \
+ \
+ static void get_valid_parents_static(List<String> *p_parents) { \
+ if (m_class::_get_valid_parents_static != m_inherits::_get_valid_parents_static) { \
+ m_class::_get_valid_parents_static(p_parents); \
+ } \
+ \
+ m_inherits::get_valid_parents_static(p_parents); \
+ } \
+ \
+protected: \
+ _FORCE_INLINE_ static void (*_get_bind_methods())() { \
+ return &m_class::_bind_methods; \
+ } \
+ \
+public: \
+ static void initialize_class() { \
+ static bool initialized = false; \
+ if (initialized) { \
+ return; \
+ } \
+ m_inherits::initialize_class(); \
+ ClassDB::_add_class<m_class>(); \
+ if (m_class::_get_bind_methods() != m_inherits::_get_bind_methods()) { \
+ _bind_methods(); \
+ } \
+ initialized = true; \
+ } \
+ \
+protected: \
+ virtual void _initialize_classv() override { \
+ initialize_class(); \
+ } \
+ _FORCE_INLINE_ bool (Object::*_get_get() const)(const StringName &p_name, Variant &) const { \
+ return (bool (Object::*)(const StringName &, Variant &) const) & m_class::_get; \
+ } \
+ virtual bool _getv(const StringName &p_name, Variant &r_ret) const override { \
+ if (m_class::_get_get() != m_inherits::_get_get()) { \
+ if (_get(p_name, r_ret)) { \
+ return true; \
+ } \
+ } \
+ return m_inherits::_getv(p_name, r_ret); \
+ } \
+ _FORCE_INLINE_ bool (Object::*_get_set() const)(const StringName &p_name, const Variant &p_property) { \
+ return (bool (Object::*)(const StringName &, const Variant &)) & m_class::_set; \
+ } \
+ virtual bool _setv(const StringName &p_name, const Variant &p_property) override { \
+ if (m_inherits::_setv(p_name, p_property)) { \
+ return true; \
+ } \
+ if (m_class::_get_set() != m_inherits::_get_set()) { \
+ return _set(p_name, p_property); \
+ } \
+ return false; \
+ } \
+ _FORCE_INLINE_ void (Object::*_get_get_property_list() const)(List<PropertyInfo> * p_list) const { \
+ return (void (Object::*)(List<PropertyInfo> *) const) & m_class::_get_property_list; \
+ } \
+ virtual void _get_property_listv(List<PropertyInfo> *p_list, bool p_reversed) const override { \
+ if (!p_reversed) { \
+ m_inherits::_get_property_listv(p_list, p_reversed); \
+ } \
+ p_list->push_back(PropertyInfo(Variant::NIL, get_class_static(), PROPERTY_HINT_NONE, String(), PROPERTY_USAGE_CATEGORY)); \
+ if (!_is_gpl_reversed()) { \
+ ClassDB::get_property_list(#m_class, p_list, true, this); \
+ } \
+ if (m_class::_get_get_property_list() != m_inherits::_get_get_property_list()) { \
+ _get_property_list(p_list); \
+ } \
+ if (_is_gpl_reversed()) { \
+ ClassDB::get_property_list(#m_class, p_list, true, this); \
+ } \
+ if (p_reversed) { \
+ m_inherits::_get_property_listv(p_list, p_reversed); \
+ } \
+ } \
+ _FORCE_INLINE_ void (Object::*_get_notification() const)(int) { \
+ return (void (Object::*)(int)) & m_class::_notification; \
+ } \
+ virtual void _notificationv(int p_notification, bool p_reversed) override { \
+ if (!p_reversed) { \
+ m_inherits::_notificationv(p_notification, p_reversed); \
+ } \
+ if (m_class::_get_notification() != m_inherits::_get_notification()) { \
+ _notification(p_notification); \
+ } \
+ if (p_reversed) { \
+ m_inherits::_notificationv(p_notification, p_reversed); \
+ } \
+ } \
+ \
private:
#define OBJ_CATEGORY(m_category) \
@@ -394,10 +394,10 @@ protected: \
\
private:
-#define OBJ_SAVE_TYPE(m_class) \
-public: \
- virtual String get_save_class() const { return #m_class; } \
- \
+#define OBJ_SAVE_TYPE(m_class) \
+public: \
+ virtual String get_save_class() const override { return #m_class; } \
+ \
private:
class ScriptInstance;
diff --git a/core/os/os.cpp b/core/os/os.cpp
index 231069fcfb..dc8bd5ee69 100644
--- a/core/os/os.cpp
+++ b/core/os/os.cpp
@@ -163,6 +163,10 @@ bool OS::is_stdout_verbose() const {
return _verbose_stdout;
}
+bool OS::is_stdout_debug_enabled() const {
+ return _debug_stdout;
+}
+
void OS::dump_memory_to_file(const char *p_file) {
//Memory::dump_static_mem_to_file(p_file);
}
diff --git a/core/os/os.h b/core/os/os.h
index f21c0d4df7..48dae99188 100644
--- a/core/os/os.h
+++ b/core/os/os.h
@@ -50,6 +50,7 @@ class OS {
bool low_processor_usage_mode = false;
int low_processor_usage_mode_sleep_usec = 10000;
bool _verbose_stdout = false;
+ bool _debug_stdout = false;
String _local_clipboard;
uint64_t _msec_splash;
bool _no_window = false;
@@ -222,6 +223,7 @@ public:
virtual bool is_userfs_persistent() const { return true; }
bool is_stdout_verbose() const;
+ bool is_stdout_debug_enabled() const;
virtual void disable_crash_handler() {}
virtual bool is_disable_crash_handler() const { return false; }
diff --git a/core/packed_data_container.h b/core/packed_data_container.h
index b41e9aaefc..28ec9cc87c 100644
--- a/core/packed_data_container.h
+++ b/core/packed_data_container.h
@@ -72,7 +72,7 @@ protected:
static void _bind_methods();
public:
- virtual Variant getvar(const Variant &p_key, bool *r_valid = nullptr) const;
+ virtual Variant getvar(const Variant &p_key, bool *r_valid = nullptr) const override;
Error pack(const Variant &p_data);
int size() const;
@@ -97,7 +97,7 @@ public:
bool _is_dictionary() const;
int size() const;
- virtual Variant getvar(const Variant &p_key, bool *r_valid = nullptr) const;
+ virtual Variant getvar(const Variant &p_key, bool *r_valid = nullptr) const override;
PackedDataContainerRef() {}
};
diff --git a/core/resource.h b/core/resource.h
index ad2f3ce913..7699d48735 100644
--- a/core/resource.h
+++ b/core/resource.h
@@ -40,15 +40,19 @@
#define RES_BASE_EXTENSION(m_ext) \
public: \
static void register_custom_data_to_otdb() { ClassDB::add_resource_base_extension(m_ext, get_class_static()); } \
- virtual String get_base_extension() const { return m_ext; } \
+ virtual String get_base_extension() const override { return m_ext; } \
\
private:
class Resource : public Reference {
GDCLASS(Resource, Reference);
OBJ_CATEGORY("Resources");
- RES_BASE_EXTENSION("res");
+public:
+ static void register_custom_data_to_otdb() { ClassDB::add_resource_base_extension("res", get_class_static()); }
+ virtual String get_base_extension() const { return "res"; }
+
+private:
Set<ObjectID> owners;
friend class ResBase;
diff --git a/core/script_language.h b/core/script_language.h
index b6c2a47245..96c49e9c42 100644
--- a/core/script_language.h
+++ b/core/script_language.h
@@ -116,7 +116,7 @@ class Script : public Resource {
OBJ_SAVE_TYPE(Script);
protected:
- virtual bool editor_can_reload_from_file() { return false; } // this is handled by editor better
+ virtual bool editor_can_reload_from_file() override { return false; } // this is handled by editor better
void _notification(int p_what);
static void _bind_methods();