[CF-Devel] Sound proposal
crossfire-devel at archives.real-time.com
crossfire-devel at archives.real-time.com
Wed Apr 14 04:24:56 CDT 2004
Hello.
There has been some discussion about sound support.
If no one works on it, i'll fix it, and try to improve.
Here's how I see the stuff:
* add a new line for archetypes, 'sound <event name>, <sound file>,
<optional parameters like relative volume etc>'
with <event name> something like 'cast, die, move', you get the clue
* put .raw files with archetypes
* assign generic sounds to archetypes. Ex: goblin archetype gets a
'sound die, goblin_horrible_death' line
* change collect.pl to copy .raw files to crossfire/share/sounds (or
wherever we want) and generate a /share/arch_sounds file containing a
simple list with filenames
* server will then read this file, give a unique identifier to each
sound. When loading archetypes, link sound_event to that identifier
* client can request arch_sounds file, then individual sound files (like
1024 bytes by 1024 bytes)
* when a sound event needs to occur, server just sends the unique sound
identifier
Client can then have a sound cache, based on filename.
An extension which could be nice: allow map-specific sounds. Like a
special sound when your mega-monster dies :)
I'd see this this way:
* add sounds in same directory as map file, or in a sound subdir
(whatever). This way, we know which sounds go with which maps. Also,
give a unique sound to the file - like <mapnams>_<sound_event>.raw
* at some point, collect the sounds, and copy'em to the same directory
as other sounds from archetypes
* override sound event on object from archetype, as any other field
The only thing which I don't like with this is that it requires 2
passes: collect sounds from archetypes, collect sounds from maps.
Comments or brilliant ideas?
Nicolas
_______________________________________________
crossfire-devel mailing list
crossfire-devel at lists.real-time.com
https://mailman.real-time.com/mailman/listinfo/crossfire-devel
More information about the crossfire
mailing list