Add override keywords.
This commit is contained in:
parent
ad9e5ae984
commit
26fcf2b04c
351 changed files with 4123 additions and 4146 deletions
|
|
@ -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() {}
|
||||
|
|
|
|||
|
|
@ -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();
|
||||
|
|
|
|||
|
|
@ -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();
|
||||
|
||||
|
|
|
|||
|
|
@ -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() {}
|
||||
};
|
||||
|
|
|
|||
|
|
@ -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;
|
||||
|
|
|
|||
|
|
@ -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);
|
||||
|
|
|
|||
|
|
@ -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;
|
||||
|
|
|
|||
|
|
@ -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();
|
||||
|
|
|
|||
280
core/object.h
280
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;
|
||||
|
|
|
|||
|
|
@ -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() {}
|
||||
};
|
||||
|
|
|
|||
|
|
@ -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;
|
||||
|
|
|
|||
|
|
@ -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();
|
||||
|
||||
|
|
|
|||
Loading…
Add table
Add a link
Reference in a new issue