|
@@ -435,7 +435,7 @@ double AnimationNodeStateMachinePlayback::process(AnimationNodeStateMachine *p_s
|
|
|
|
|
|
// handles start_node: if previous state machine is pointing to a node inside the current state machine, starts the current machine from start_node to prev_local_to
|
|
|
if (p_state_machine->start_node == current && p_state_machine->transitions[i].local_from == current) {
|
|
|
- if (p_state_machine->prev_state_machine.is_valid()) {
|
|
|
+ if (p_state_machine->prev_state_machine != nullptr) {
|
|
|
Ref<AnimationNodeStateMachinePlayback> prev_playback = p_state_machine->prev_state_machine->get_parameter("playback");
|
|
|
|
|
|
if (prev_playback.is_valid()) {
|
|
@@ -471,9 +471,9 @@ double AnimationNodeStateMachinePlayback::process(AnimationNodeStateMachine *p_s
|
|
|
}
|
|
|
|
|
|
if (next == p_state_machine->end_node) {
|
|
|
- Ref<AnimationNodeStateMachine> prev_state_machine = p_state_machine->prev_state_machine;
|
|
|
+ AnimationNodeStateMachine *prev_state_machine = p_state_machine->prev_state_machine;
|
|
|
|
|
|
- if (prev_state_machine.is_valid()) {
|
|
|
+ if (prev_state_machine != nullptr) {
|
|
|
Ref<AnimationNodeStateMachinePlayback> prev_playback = prev_state_machine->get_parameter("playback");
|
|
|
|
|
|
if (prev_playback.is_valid()) {
|
|
@@ -655,7 +655,7 @@ void AnimationNodeStateMachine::add_node(const StringName &p_name, Ref<Animation
|
|
|
|
|
|
if (anodesm.is_valid()) {
|
|
|
anodesm->state_machine_name = p_name;
|
|
|
- anodesm->prev_state_machine = (Ref<AnimationNodeStateMachine>)this;
|
|
|
+ anodesm->prev_state_machine = this;
|
|
|
}
|
|
|
|
|
|
emit_changed();
|
|
@@ -821,7 +821,7 @@ void AnimationNodeStateMachine::_rename_transition(const StringName &p_name, con
|
|
|
void AnimationNodeStateMachine::get_node_list(List<StringName> *r_nodes) const {
|
|
|
List<StringName> nodes;
|
|
|
for (const KeyValue<StringName, State> &E : states) {
|
|
|
- if (E.key == end_node && !prev_state_machine.is_valid()) {
|
|
|
+ if (E.key == end_node && prev_state_machine == nullptr) {
|
|
|
continue;
|
|
|
}
|
|
|
|
|
@@ -834,7 +834,7 @@ void AnimationNodeStateMachine::get_node_list(List<StringName> *r_nodes) const {
|
|
|
}
|
|
|
}
|
|
|
|
|
|
-Ref<AnimationNodeStateMachine> AnimationNodeStateMachine::get_prev_state_machine() const {
|
|
|
+AnimationNodeStateMachine *AnimationNodeStateMachine::get_prev_state_machine() const {
|
|
|
return prev_state_machine;
|
|
|
}
|
|
|
|
|
@@ -862,10 +862,10 @@ int AnimationNodeStateMachine::find_transition(const StringName &p_from, const S
|
|
|
return -1;
|
|
|
}
|
|
|
|
|
|
-bool AnimationNodeStateMachine::_can_connect(const StringName &p_name, Vector<Ref<AnimationNodeStateMachine>> p_parents) const {
|
|
|
+bool AnimationNodeStateMachine::_can_connect(const StringName &p_name, Vector<AnimationNodeStateMachine *> p_parents) {
|
|
|
if (p_parents.is_empty()) {
|
|
|
- Ref<AnimationNodeStateMachine> prev = (Ref<AnimationNodeStateMachine>)this;
|
|
|
- while (prev.is_valid()) {
|
|
|
+ AnimationNodeStateMachine *prev = this;
|
|
|
+ while (prev != nullptr) {
|
|
|
p_parents.push_back(prev);
|
|
|
prev = prev->prev_state_machine;
|
|
|
}
|
|
@@ -874,7 +874,7 @@ bool AnimationNodeStateMachine::_can_connect(const StringName &p_name, Vector<Re
|
|
|
if (states.has(p_name)) {
|
|
|
Ref<AnimationNodeStateMachine> anodesm = states[p_name].node;
|
|
|
|
|
|
- if (anodesm.is_valid() && p_parents.find(anodesm) != -1) {
|
|
|
+ if (anodesm.is_valid() && p_parents.find(anodesm.ptr()) != -1) {
|
|
|
return false;
|
|
|
}
|
|
|
|
|
@@ -889,7 +889,7 @@ bool AnimationNodeStateMachine::_can_connect(const StringName &p_name, Vector<Re
|
|
|
}
|
|
|
|
|
|
if (path[0] == "..") {
|
|
|
- if (prev_state_machine.is_valid()) {
|
|
|
+ if (prev_state_machine != nullptr) {
|
|
|
return prev_state_machine->_can_connect(name.replace_first("../", ""), p_parents);
|
|
|
}
|
|
|
} else if (states.has(path[0])) {
|