Respect returned bool from virtual process methods in SceneTree
SceneTree overrides the virtual `process` and `physics_process` methods that it inherits from MainLoop. These methods return a boolean that determines if the main loop should end. The SceneTree was ignoring the returned boolean, so scripts inheriting from SceneTree that override these methods and return true didn't exit the main loop. Now the boolean is checked.
This commit is contained in:
parent
4a0bb80b18
commit
5373b67e2a
|
@ -456,7 +456,9 @@ bool SceneTree::physics_process(double p_time) {
|
||||||
|
|
||||||
flush_transform_notifications();
|
flush_transform_notifications();
|
||||||
|
|
||||||
MainLoop::physics_process(p_time);
|
if (MainLoop::physics_process(p_time)) {
|
||||||
|
_quit = true;
|
||||||
|
}
|
||||||
physics_process_time = p_time;
|
physics_process_time = p_time;
|
||||||
|
|
||||||
emit_signal(SNAME("physics_frame"));
|
emit_signal(SNAME("physics_frame"));
|
||||||
|
@ -484,7 +486,9 @@ bool SceneTree::physics_process(double p_time) {
|
||||||
bool SceneTree::process(double p_time) {
|
bool SceneTree::process(double p_time) {
|
||||||
root_lock++;
|
root_lock++;
|
||||||
|
|
||||||
MainLoop::process(p_time);
|
if (MainLoop::process(p_time)) {
|
||||||
|
_quit = true;
|
||||||
|
}
|
||||||
|
|
||||||
process_time = p_time;
|
process_time = p_time;
|
||||||
|
|
||||||
|
|
Loading…
Reference in New Issue