Been thinking again about sounds, here's what I'm gonna do. Put .snd files with archetypes, format: sound goblin_death file goblin_death_1 <- .raw omitted voluntarily volume 'normal' volume text a goblin die <- client could display 'you hear <text>' <more info if/when needed> endsound .raw files will just stay where they are (in the future maybe client could request a sound, but let's first make the big part, improve sound support :)). Those .snd will get collected by collect.pl, and make a sounds_arch file. This file get parsed by server at startup, assigning a unique identifier to each unique name (thus ignoring duplicate names) and trashing the rest. Add sound lines to archetypes: Object goblin .... sound death goblin_death <optional info if/when needed> .... Server at loading links the sound with event ('death', 'apply', ...) and makes sure sound actually is defined. Of course, 'sound' could get 'overriden' in artifacts, like other fields. Maybe simply be an array of values, mapping event => sound number. Now this sounds_arch file is parsed by client too, merging info from the sounds with same name. When server sends a sound, giving identifier and volume, client finds the group of sounds with that name, and uses one randomly. Each sound has its 'nominal' volume, to adjust it correctly. The choice of putting all info (client and server) into .snd is to have only one sounds_arch file shared between client & server. Also, it wouldn't be hard to have a 'sounds_maps' file, with info from special sounds in maps (text to congratulate a player on defeating a big bad boss?), and parse it too at client/server startup. The only link between client & server is the 'sound name'. Server has no idea of different sounds for one event. This could also be used for 'server' events like 'player login/logout', and why not background music (special event 'sound background'?) I'm starting to implement that, but of course if you have better ideas just fork'em :) Nicolas 'Ryo' _______________________________________________ crossfire-devel mailing list crossfire-devel at lists.real-time.com https://mailman.real-time.com/mailman/listinfo/crossfire-devel