| 205 | } |
| 206 | |
| 207 | void traverseZoneTree(u32 id) |
| 208 | { |
| 209 | if (id == NULL_ZONE) { return; } |
| 210 | Zone* zone = &s_zoneList[id]; |
| 211 | // Make sure zones are only inserted once for now. |
| 212 | if (zone->frame != s_currentFrame) |
| 213 | { |
| 214 | s_sortedZoneList.push_back(id); |
| 215 | } |
| 216 | zone->frame = s_currentFrame; |
| 217 | |
| 218 | while (zone->child != NULL_ZONE) |
| 219 | { |
| 220 | traverseZoneTree(zone->child); |
| 221 | zone = &s_zoneList[zone->child]; |
| 222 | } |
| 223 | |
| 224 | zone = &s_zoneList[id]; |
| 225 | while (zone->sibling != NULL_ZONE) |
| 226 | { |
| 227 | traverseZoneTree(zone->sibling); |
| 228 | zone = &s_zoneList[zone->sibling]; |
| 229 | } |
| 230 | } |
| 231 | |
| 232 | void frameEnd() |
| 233 | { |