diff options
-rw-r--r-- | src/pso/TObject.cpp | 15 |
1 files changed, 8 insertions, 7 deletions
diff --git a/src/pso/TObject.cpp b/src/pso/TObject.cpp index c832ebe..b0c288d 100644 --- a/src/pso/TObject.cpp +++ b/src/pso/TObject.cpp @@ -117,14 +117,13 @@ void TObject::render_nodes() { } } -// Perfect match, needed to do some weird stuff to get it to match, see below. void TObject::run_tasks() { TObject *child = this->m_down; while (this->m_down != NULL && child != NULL) { TObject *node = child; child = child->m_next; if (node->m_flags & DISALLOW_UPDATE) { - // Clearing flag 0 in the if statement is required to match. + // NOTE: Clearing flag 0 in the if statement is required to match. if (node->m_flags & QUEUE_DESTRUCTION && (node->m_flags &= ~QUEUE_DESTRUCTION, !(node->m_flags & DISALLOW_DESTRUCTION))) { delete node; } else { @@ -134,11 +133,13 @@ void TObject::run_tasks() { node->m_flags &= ~CHILD_QUEUE_DESTRUCTION; } - if (!(node->m_flags & BIT_2)) { - // Adding this here somehow causes the - // dead code to be compiled. - // `volatile` typecast is required to match. - (vu16)node->m_flags & QUEUE_DESTRUCTION; + // NOTE: Both if statements below are required to match. + if (node->m_flags & BIT_2) { + continue; + } + + if (node->m_flags & BIT_3) { + continue; } } } else { |