/// Обновление void UpdateEvent (const char* name, ResourceState state) { EventMap::iterator iter = event_map.find (name); if (iter == event_map.end ()) { EventPtr event = EventPtr (new EventDesc (name, state), false); EventList::iterator iter = event_list.insert (event_list.end (), event); event_map.insert_pair (name, iter); } else { EventPtr event = *iter->second; if (state == event->state) return; if (event->state == ResourceState_Ignore) { event_list.splice (event_list.end (), event_list, iter->second); event->state = state; return; } switch (state) { case ResourceState_Unloaded: event->state = ResourceState_Ignore; break; case ResourceState_Prefetched: if (event->state != ResourceState_Unloaded) return; event_list.splice (event_list.end (), event_list, iter->second); event->state = state; break; case ResourceState_Loaded: if (event->state == ResourceState_Unloaded) event->state = ResourceState_Ignore; else { event_list.splice (event_list.end (), event_list, iter->second); event->state = state; } break; default: break; } } }