| 156 | } |
| 157 | |
| 158 | void widget::updater(F32 dt) |
| 159 | { |
| 160 | _motive_temp_tail = &_motive_temp; |
| 161 | motive_node** ppmVar2 = &_motive_top; |
| 162 | motive_node* top = _motive_top; |
| 163 | while (top != NULL) |
| 164 | { |
| 165 | bool unk = top->m.update(*this, dt); |
| 166 | if (!unk) |
| 167 | { |
| 168 | *ppmVar2 = top->next; |
| 169 | motive_allocator()->free(top); |
| 170 | } |
| 171 | else |
| 172 | { |
| 173 | ppmVar2 = &top->next; |
| 174 | } |
| 175 | top = *ppmVar2; |
| 176 | } |
| 177 | |
| 178 | if (_motive_temp != NULL) |
| 179 | { |
| 180 | *_motive_temp_tail = _motive_top; |
| 181 | _motive_top = _motive_temp; |
| 182 | _motive_temp = NULL; |
| 183 | } |
| 184 | |
| 185 | _motive_temp_tail = NULL; |
| 186 | if (_motive_top == NULL) |
| 187 | { |
| 188 | activity = ACT_NONE; |
| 189 | } |
| 190 | } |
| 191 | |
| 192 | void widget::dispatcher(xBase*, U32 event, const F32* toParam, xBase*) |
| 193 | { |