Nicolas Weeger wrote: >> But that actually isn't true. Since copy_object() copies the sound >> information, and since anything that is generated on the map after >> loading involves copy_object(), all those objects will now have sound >> information which is the same as the archetype, but because sound_info >> is now set, will get saved out. That isn't terrible, but is a bit odd. > > > Well, it isn't nice, but soundinfo gets cleared in loader.[lc]. > Just after doing a copy_object, there's a free_soundinfo_for_object( tmp ); > Actually, the copy in copy_object is there only for the loading of > archetypes, i think - since an object is first loaded, then copied as > arch.clone, we need to copy sound info at that point. But I'm thinking of things like generators. Generators have other_arch set. When that monster is created from a generator, the calls that are used to create it will not free the sound information. Same would actually be true for the treasure code for that matter. So the only sound info that is getting cleared is that that is in the map file. All items generated after the fact, unless copies from the map (eg, black puddings perhaps) will have the full sound info, because it won't get freed, so it will get saved out to disk. A better approach than this is really needed. As said previously, it should be pretty easy to add a flag saying 'this sound is unmodified from the archetype, and just points at that sound data' vs a 'this sound is customized'. _______________________________________________ crossfire-devel mailing list crossfire-devel at lists.real-time.com https://mailman.real-time.com/mailman/listinfo/crossfire-devel