Initialize class/struct variables with default values in modules/

This commit is contained in:
Rafał Mikrut 2021-02-08 10:57:18 +01:00
parent 57e2822a05
commit f7209b459b
100 changed files with 533 additions and 772 deletions

View file

@ -49,7 +49,7 @@ class VisualScriptNode : public Resource {
Ref<VisualScript> script_used;
Array default_input_values;
bool breakpoint;
bool breakpoint = false;
void _set_default_input_values(Array p_values);
Array _get_default_input_values() const;
@ -90,13 +90,9 @@ public:
virtual VisualScriptNodeInstance *instance(VisualScriptInstance *p_instance) = 0;
struct TypeGuess {
Variant::Type type;
Variant::Type type = Variant::NIL;
StringName gdclass;
Ref<Script> script;
TypeGuess() {
type = Variant::NIL;
}
};
virtual TypeGuess guess_output_type(TypeGuess *p_inputs, int p_output) const;
@ -114,19 +110,19 @@ class VisualScriptNodeInstance {
INPUT_DEFAULT_VALUE_BIT = INPUT_SHIFT, // from unassigned input port, using default value (edited by user)
};
int id;
int sequence_index;
VisualScriptNodeInstance **sequence_outputs;
int sequence_output_count;
int id = 0;
int sequence_index = 0;
VisualScriptNodeInstance **sequence_outputs = nullptr;
int sequence_output_count = 0;
Vector<VisualScriptNodeInstance *> dependencies;
int *input_ports;
int input_port_count;
int *output_ports;
int output_port_count;
int working_mem_idx;
int pass_idx;
int *input_ports = nullptr;
int input_port_count = 0;
int *output_ports = nullptr;
int output_port_count = 0;
int working_mem_idx = 0;
int pass_idx = 0;
VisualScriptNode *base;
VisualScriptNode *base = nullptr;
public:
enum StartMode {
@ -178,7 +174,7 @@ public:
uint64_t from_output : 16;
uint64_t to_node : 24;
};
uint64_t id;
uint64_t id = 0;
};
bool operator<(const SequenceConnection &p_connection) const {
@ -194,7 +190,7 @@ public:
uint64_t to_node : 24;
uint64_t to_port : 8;
};
uint64_t id;
uint64_t id = 0;
};
bool operator<(const DataConnection &p_connection) const {
@ -208,7 +204,7 @@ private:
StringName base_type;
struct Argument {
String name;
Variant::Type type;
Variant::Type type = Variant::Type::NIL;
};
struct NodeData {
@ -231,7 +227,7 @@ private:
struct Variable {
PropertyInfo info;
Variant default_value;
bool _export;
bool _export = false;
// Add getter & setter options here.
};
@ -388,26 +384,27 @@ public:
};
class VisualScriptInstance : public ScriptInstance {
Object *owner;
Object *owner = nullptr;
Ref<VisualScript> script;
Map<StringName, Variant> variables; // Using variable path, not script.
Map<int, VisualScriptNodeInstance *> instances;
struct Function {
int node;
int max_stack;
int trash_pos;
int flow_stack_size;
int pass_stack_size;
int node_count;
int argument_count;
int node = 0;
int max_stack = 0;
int trash_pos = 0;
int flow_stack_size = 0;
int pass_stack_size = 0;
int node_count = 0;
int argument_count = 0;
};
Map<StringName, Function> functions;
Vector<Variant> default_values;
int max_input_args, max_output_args;
int max_input_args = 0;
int max_output_args = 0;
StringName source;
@ -479,14 +476,14 @@ class VisualScriptFunctionState : public Reference {
ObjectID instance_id;
ObjectID script_id;
VisualScriptInstance *instance;
VisualScriptInstance *instance = nullptr;
StringName function;
Vector<uint8_t> stack;
int working_mem_index;
int variant_stack_size;
VisualScriptNodeInstance *node;
int flow_stack_pos;
int pass;
int working_mem_index = 0;
int variant_stack_size = 0;
VisualScriptNodeInstance *node = nullptr;
int flow_stack_pos = 0;
int pass = 0;
Variant _signal_callback(const Variant **p_args, int p_argcount, Callable::CallError &r_error);
@ -507,25 +504,25 @@ class VisualScriptLanguage : public ScriptLanguage {
Map<String, VisualScriptNodeRegisterFunc> register_funcs;
struct CallLevel {
Variant *stack;
Variant **work_mem;
const StringName *function;
VisualScriptInstance *instance;
int *current_id;
Variant *stack = nullptr;
Variant **work_mem = nullptr;
const StringName *function = nullptr;
VisualScriptInstance *instance = nullptr;
int *current_id = nullptr;
};
int _debug_parse_err_node;
String _debug_parse_err_file;
int _debug_parse_err_node = -1;
String _debug_parse_err_file = "";
String _debug_error;
int _debug_call_stack_pos;
int _debug_call_stack_pos = 0;
int _debug_max_call_stack;
CallLevel *_call_stack;
public:
StringName notification;
StringName notification = "_notification";
StringName _get_output_port_unsequenced;
StringName _step;
StringName _subcall;
StringName _step = "_step";
StringName _subcall = "_subcall";
static VisualScriptLanguage *singleton;