FSerializer &Serialize(FSerializer &arc, const char *key, ReverbContainer *&c, ReverbContainer **def) { int id = (arc.isReading() || c == nullptr) ? 0 : c->ID; Serialize(arc, key, id, nullptr); if (arc.isReading()) { c = S_FindEnvironment(id); } return arc; }
FArchive &operator<< (FArchive &arc, ReverbContainer *&env) { WORD id; if (arc.IsStoring()) { if (env != NULL) { arc << env->ID; } else { id = 0; arc << id; } } else { arc << id; env = S_FindEnvironment (id); } return arc; }
void ASoundEnvironment::Activate (AActor *activator) { zones[Sector->ZoneNumber].Environment = S_FindEnvironment ((args[0]<<8) | (args[1])); }