mirror of
https://github.com/wesnoth/wesnoth
synced 2025-04-29 02:51:42 +00:00

I originally added it in #719. At that point ms_after= affected the *previous* track due to a bug; however, I had assumed the behavior to be intentional and compensated for it by adding ms_after= to the first track of a scenario instead of the story screen music. In April, I saw the documentation for ms_after= which said that it's supposed to affect the track itself, not the previous one. Hence, I fixed the bug in commit b023b818c742cee0bc75460235c9d1088c0b495d. However, I had forgotten that the changes I had made in #719 depended on the old broken behavior of ms_after=. This commit moves ms_after= to the right place, restoring the fade-out on scenario start and removing the pointless pause after the first track.
623 lines
14 KiB
INI
623 lines
14 KiB
INI
#textdomain wesnoth
|
||
# Music control macros, and declarations of sound resource lists.
|
||
#
|
||
# As of 1.1.3, music is parsed as follows:
|
||
#! 1. the [scenario]-level [music] tag
|
||
#! 2. the [story]-level music key
|
||
#! 3. any [event]-level [music] tags
|
||
#
|
||
# If you change the music at a lower level, the tags above it will NOT
|
||
# be re-parsed and your scenario will sound wrong. For example, if
|
||
# you set scenario music with the normal [scenario]-level music tag
|
||
# but change the music during the [story], it is never reset back to
|
||
# normal. Therefore, these macros are intended to catch instances
|
||
# like that. Of course, if you want something more elaborate, code it
|
||
# manually.
|
||
|
||
# These macros do not rely on any other macros. Please don't change this.
|
||
|
||
#define DEFAULT_MUSIC_PLAYLIST_NO_EVENT
|
||
[music]
|
||
name=knolls.ogg
|
||
ms_before=12000
|
||
[/music]
|
||
[music]
|
||
name=wanderer.ogg
|
||
ms_before=12000
|
||
append=yes
|
||
[/music]
|
||
[music]
|
||
name=battle.ogg
|
||
ms_before=12000
|
||
append=yes
|
||
[/music]
|
||
[music]
|
||
name=transience.ogg
|
||
ms_before=12000
|
||
append=yes
|
||
[/music]
|
||
[music]
|
||
name=the_king_is_dead.ogg
|
||
ms_before=12000
|
||
append=yes
|
||
[/music]
|
||
[music]
|
||
name=knalgan_theme.ogg
|
||
ms_before=12000
|
||
append=yes
|
||
[/music]
|
||
[music]
|
||
name=the_city_falls.ogg
|
||
ms_before=12000
|
||
append=yes
|
||
[/music]
|
||
[music]
|
||
name=nunc_dimittis.ogg
|
||
ms_before=12000
|
||
append=yes
|
||
[/music]
|
||
[music]
|
||
name=revelation.ogg
|
||
ms_before=12000
|
||
append=yes
|
||
[/music]
|
||
[music]
|
||
name=loyalists.ogg
|
||
ms_before=12000
|
||
append=yes
|
||
[/music]
|
||
[music]
|
||
name=breaking_the_chains.ogg
|
||
ms_before=12000
|
||
append=yes
|
||
[/music]
|
||
[music]
|
||
name=elvish-theme.ogg
|
||
ms_before=12000
|
||
append=yes
|
||
[/music]
|
||
[music]
|
||
name=legends_of_the_north.ogg
|
||
ms_before=12000
|
||
append=yes
|
||
[/music]
|
||
[music]
|
||
name=traveling_minstrels.ogg
|
||
ms_before=12000
|
||
append=yes
|
||
[/music]
|
||
[music]
|
||
name=underground.ogg
|
||
ms_before=12000
|
||
append=yes
|
||
[/music]
|
||
[music]
|
||
name=vengeful.ogg
|
||
ms_before=12000
|
||
append=yes
|
||
[/music]
|
||
[music]
|
||
name=frantic.ogg
|
||
ms_before=12000
|
||
append=yes
|
||
[/music]
|
||
[music]
|
||
name=the_dangerous_symphony.ogg
|
||
ms_before=12000
|
||
append=yes
|
||
[/music]
|
||
[music]
|
||
name=heroes_rite.ogg
|
||
ms_before=12000
|
||
append=yes
|
||
[/music]
|
||
[music]
|
||
name=suspense.ogg
|
||
ms_before=12000
|
||
append=yes
|
||
[/music]
|
||
[music]
|
||
name=the_deep_path.ogg
|
||
ms_before=12000
|
||
append=yes
|
||
[/music]
|
||
[music]
|
||
name=siege_of_laurelmor.ogg
|
||
ms_before=12000
|
||
append=yes
|
||
[/music]
|
||
[music]
|
||
name=casualties_of_war.ogg
|
||
ms_before=12000
|
||
append=yes
|
||
[/music]
|
||
[music]
|
||
name=silvan_sanctuary.ogg
|
||
ms_before=12000
|
||
append=yes
|
||
[/music]
|
||
[music]
|
||
name=battle-epic.ogg
|
||
ms_before=12000
|
||
append=yes
|
||
[/music]
|
||
#enddef
|
||
|
||
#define DEFAULT_MUSIC_PLAYLIST
|
||
{DEFAULT_MUSIC_PLAYLIST_NO_EVENT}
|
||
[event]
|
||
name=prestart
|
||
{DEFAULT_MUSIC_PLAYLIST_NO_EVENT}
|
||
[/event]
|
||
#enddef
|
||
|
||
#define FULL_MUSIC_PLAYLIST_NO_EVENT
|
||
[music]
|
||
name=battle-epic.ogg
|
||
title= _ "Battle Epic"
|
||
ms_before=12000
|
||
append=yes
|
||
[/music]
|
||
[music]
|
||
name=battle.ogg
|
||
title= _ "Battle Music"
|
||
ms_before=12000
|
||
append=yes
|
||
[/music]
|
||
[music]
|
||
name=breaking_the_chains.ogg
|
||
title= _ "Breaking the Chains"
|
||
ms_before=12000
|
||
append=yes
|
||
[/music]
|
||
[music]
|
||
name=casualties_of_war.ogg
|
||
title= _ "Casualties of War"
|
||
ms_before=12000
|
||
append=yes
|
||
[/music]
|
||
[music]
|
||
name=elf-land.ogg
|
||
title= _ "Elf Land"
|
||
ms_before=12000
|
||
append=yes
|
||
[/music]
|
||
[music]
|
||
name=elvish-theme.ogg
|
||
title= _ "Elvish theme"
|
||
ms_before=12000
|
||
append=yes
|
||
[/music]
|
||
[music]
|
||
name=frantic.ogg
|
||
title= _ "Frantic"
|
||
ms_before=12000
|
||
append=yes
|
||
[/music]
|
||
[music]
|
||
name=heroes_rite.ogg
|
||
title= _ "Heroes Rite"
|
||
ms_before=12000
|
||
append=yes
|
||
[/music]
|
||
[music]
|
||
name=into_the_shadows.ogg
|
||
title= _ "Into the Shadows"
|
||
ms_before=12000
|
||
append=yes
|
||
[/music]
|
||
[music]
|
||
name=journeys_end.ogg
|
||
title= _ "Journey’s End"
|
||
ms_before=12000
|
||
append=yes
|
||
[/music]
|
||
[music]
|
||
name=knalgan_theme.ogg
|
||
title= _ "Knalgan Theme"
|
||
ms_before=12000
|
||
append=yes
|
||
[/music]
|
||
[music]
|
||
name=knolls.ogg
|
||
title= _ "The Knolls of Doldesh"
|
||
ms_before=12000
|
||
append=yes
|
||
[/music]
|
||
[music]
|
||
name=legends_of_the_north.ogg
|
||
title= _ "Legends of the North"
|
||
ms_before=12000
|
||
append=yes
|
||
[/music]
|
||
[music]
|
||
name=love_theme.ogg
|
||
title= _ "Love Theme"
|
||
ms_before=12000
|
||
append=yes
|
||
[/music]
|
||
[music]
|
||
name=loyalists.ogg
|
||
title= _ "Loyalists"
|
||
ms_before=12000
|
||
append=yes
|
||
[/music]
|
||
[music]
|
||
name=northern_mountains.ogg
|
||
title= _ "Over the Northern Mountains"
|
||
ms_before=12000
|
||
append=yes
|
||
[/music]
|
||
[music]
|
||
name=northerners.ogg
|
||
title= _ "Northerners"
|
||
ms_before=12000
|
||
append=yes
|
||
[/music]
|
||
[music]
|
||
name=nunc_dimittis.ogg
|
||
title= _ "Nunc Dimittis"
|
||
ms_before=12000
|
||
append=yes
|
||
[/music]
|
||
[music]
|
||
name=revelation.ogg
|
||
title= _ "Revelation"
|
||
ms_before=12000
|
||
append=yes
|
||
[/music]
|
||
[music]
|
||
name=sad.ogg
|
||
title= _ "Sad"
|
||
ms_before=12000
|
||
append=yes
|
||
[/music]
|
||
[music]
|
||
name=siege_of_laurelmor.ogg
|
||
title= _ "Siege of Laurelmor"
|
||
ms_before=12000
|
||
append=yes
|
||
[/music]
|
||
[music]
|
||
name=silvan_sanctuary.ogg
|
||
title= _ "Silvan Sanctuary"
|
||
ms_before=12000
|
||
append=yes
|
||
[/music]
|
||
[music]
|
||
name=suspense.ogg
|
||
title= _ "Suspense"
|
||
ms_before=12000
|
||
append=yes
|
||
[/music]
|
||
[music]
|
||
name=the_city_falls.ogg
|
||
title= _ "The City Falls"
|
||
ms_before=12000
|
||
append=yes
|
||
[/music]
|
||
[music]
|
||
name=the_dangerous_symphony.ogg
|
||
title= _ "The Dangerous Symphony"
|
||
ms_before=12000
|
||
append=yes
|
||
[/music]
|
||
[music]
|
||
name=the_deep_path.ogg
|
||
title= _ "The Deep Path"
|
||
ms_before=12000
|
||
append=yes
|
||
[/music]
|
||
[music]
|
||
name=the_king_is_dead.ogg
|
||
title= _ "The King is Dead"
|
||
ms_before=12000
|
||
append=yes
|
||
[/music]
|
||
[music]
|
||
name=transience.ogg
|
||
title= _ "Transience"
|
||
ms_before=12000
|
||
append=yes
|
||
[/music]
|
||
[music]
|
||
name=traveling_minstrels.ogg
|
||
title= _ "Traveling Minstrels"
|
||
ms_before=12000
|
||
append=yes
|
||
[/music]
|
||
[music]
|
||
name=underground.ogg
|
||
title= _ "Underground"
|
||
ms_before=12000
|
||
append=yes
|
||
[/music]
|
||
[music]
|
||
name=vengeful.ogg
|
||
title= _ "Vengeful Pursuit"
|
||
ms_before=12000
|
||
append=yes
|
||
[/music]
|
||
[music]
|
||
name=wanderer.ogg
|
||
title= _ "Still Another Wanderer"
|
||
ms_before=12000
|
||
append=yes
|
||
[/music]
|
||
[music]
|
||
name=weight_of_revenge.ogg
|
||
title= _ "Weight of Revenge"
|
||
ms_before=12000
|
||
append=yes
|
||
[/music]
|
||
#enddef
|
||
|
||
#define FULL_MUSIC_PLAYLIST
|
||
{FULL_MUSIC_PLAYLIST_NO_EVENT}
|
||
[event]
|
||
name=prestart
|
||
{FULL_MUSIC_PLAYLIST_NO_EVENT}
|
||
[/event]
|
||
#enddef
|
||
|
||
#define SCENARIO_MUSIC MUSIC
|
||
# This music macro ensures that the correct music is selected
|
||
# for a scenario just in case it is changed by [story].
|
||
# It should be positioned at the top of the scenario file
|
||
# so it can be overridden by other prestart or start events.
|
||
#
|
||
# It also allows for the convenient use of standardized
|
||
# intra-scenario music, should we decide to use one.
|
||
[music]
|
||
name="revelation.ogg"
|
||
ms_after=2000
|
||
[/music]
|
||
[event]
|
||
name=prestart
|
||
[music]
|
||
name={MUSIC}
|
||
immediate=yes
|
||
[/music]
|
||
[/event]
|
||
#enddef
|
||
|
||
#define EXTRA_SCENARIO_MUSIC MUSIC
|
||
# Use this immediately after the above SCENARIO_MUSIC macro to append extra
|
||
# tracks to the playlist.
|
||
#
|
||
# Example:
|
||
#! {SCENARIO_MUSIC battle.ogg}
|
||
#! {EXTRA_SCENARIO_MUSIC knolls.ogg}
|
||
#! {EXTRA_SCENARIO_MUSIC frantic.ogg}
|
||
[+event]
|
||
[music]
|
||
name={MUSIC}
|
||
append=yes
|
||
[/music]
|
||
[/event]
|
||
#enddef
|
||
|
||
#define INTRO_AND_SCENARIO_MUSIC INTRO_MUSIC SCENARIO_MUSIC
|
||
# This works as SCENARIO_MUSIC does, except that it allows you to specify
|
||
# the music used for the story screen (if any) as well.
|
||
[music]
|
||
name={INTRO_MUSIC}
|
||
immediate=yes
|
||
ms_after=2000
|
||
[/music]
|
||
[event]
|
||
name=prestart
|
||
[music]
|
||
name={SCENARIO_MUSIC}
|
||
immediate=yes
|
||
append=no
|
||
[/music]
|
||
[/event]
|
||
#enddef
|
||
|
||
#define LET_INTRO_MUSIC_FINISH
|
||
# Use immediately following INTRO_AND_SCENARIO_MUSIC, to let the intro music
|
||
# finish before switching to scenario music.
|
||
[+event]
|
||
[+music]
|
||
immediate=no
|
||
[/music]
|
||
[/event]
|
||
#enddef
|
||
|
||
#define INCIDENTAL_MUSIC MUSIC
|
||
# To be played immediately to mark an incident,
|
||
# but not appended to the scenario playlist.
|
||
# The playlist will be resumed afterwards.
|
||
[music]
|
||
name={MUSIC}
|
||
play_once=yes
|
||
[/music]
|
||
#enddef
|
||
|
||
#define APPEND_MUSIC MUSIC
|
||
# Append to playlist. Meant to be used after REPLACE_SCENARIO_MUSIC.
|
||
[music]
|
||
name={MUSIC}
|
||
append=yes
|
||
[/music]
|
||
#enddef
|
||
|
||
#define REPLACE_SCENARIO_MUSIC MUSIC
|
||
# To be used mid-scenario to replace the current playlist.
|
||
[music]
|
||
name={MUSIC}
|
||
immediate=yes
|
||
append=no
|
||
[/music]
|
||
#enddef
|
||
|
||
# For some animations some units use a list of sounds, from which one is
|
||
# randomly picked every time, instead of a single sound. Here the most commonly
|
||
# used lists are wrapped inside macros.
|
||
#
|
||
# These are used in unit .cfg files, for example like this:
|
||
#
|
||
#! [animation]
|
||
#! hits=no
|
||
#! start_time=-200
|
||
#!
|
||
#! [frame]
|
||
#! sound={SOUND_LIST:MISS}
|
||
#! image="units/dwarves/warrior-attack.png:200"
|
||
#! [/frame]
|
||
|
||
#define SOUND_LIST:HOLY
|
||
magic-holy-[1~4].ogg #enddef
|
||
|
||
#define SOUND_LIST:HOLY_MISS
|
||
magic-holy-miss-[1~4].ogg #enddef
|
||
|
||
#define SOUND_LIST:MISS
|
||
miss-[1~3].ogg #enddef
|
||
|
||
#define SOUND_LIST:THROW
|
||
throw-[1~4].wav #enddef
|
||
|
||
#define SOUND_LIST:SWORD_SWISH
|
||
sword-1.ogg #enddef
|
||
|
||
#define SOUND_LIST:BAT_HIT
|
||
bat-hit-[1~4].ogg #enddef
|
||
|
||
#define SOUND_LIST:DRAKE_HIT
|
||
drake-hit-[1~3].ogg #enddef
|
||
|
||
#define SOUND_LIST:DWARF_HIT
|
||
dwarf-hit-[1~4].ogg #enddef
|
||
|
||
#define SOUND_LIST:DWARF_DIE
|
||
dwarf-die-[1~3].ogg #enddef
|
||
|
||
#define SOUND_LIST:ELF_HIT
|
||
human-hit-[1~4].ogg,elf-hit-[1~2].ogg #enddef
|
||
|
||
#define SOUND_LIST:ELF_FEMALE_HIT
|
||
human-female-hit-[1~3].ogg #enddef
|
||
|
||
#define SOUND_LIST:GOBLIN_HIT
|
||
goblin-hit-[1~3].ogg #enddef
|
||
|
||
#define SOUND_LIST:GOBLIN_DIE
|
||
goblin-die-[1~2].ogg #enddef
|
||
|
||
#define SOUND_LIST:GRYPHON_HIT
|
||
gryphon-hit-[1~3].ogg #enddef
|
||
|
||
#define SOUND_LIST:GRYPHON_DIE
|
||
gryphon-die-[1~2].ogg #enddef
|
||
|
||
#define SOUND_LIST:HORSE_HIT
|
||
horse-hit-[1~3].ogg #enddef
|
||
|
||
#define SOUND_LIST:HUMAN_HIT
|
||
human-hit-[1~5].ogg #enddef
|
||
|
||
#define SOUND_LIST:HUMAN_FEMALE_HIT
|
||
human-female-hit-[1~3].ogg #enddef
|
||
|
||
#define SOUND_LIST:HUMAN_OLD_HIT
|
||
human-old-hit-[1~4].ogg #enddef
|
||
|
||
#define SOUND_LIST:HUMAN_OLD_DIE
|
||
human-old-die-[1~3].ogg #enddef
|
||
|
||
#define SOUND_LIST:HUMAN_DIE
|
||
human-die-[1~3].ogg #enddef
|
||
|
||
#define SOUND_LIST:HUMAN_FEMALE_DIE
|
||
human-female-die-[1~3].ogg #enddef
|
||
|
||
#define SOUND_LIST:LICH_HIT
|
||
lich-hit-[1~2].ogg #enddef
|
||
|
||
#define SOUND_LIST:NAGA_HIT
|
||
naga-hit-[1~3].ogg #enddef
|
||
|
||
#define SOUND_LIST:OGRE_HIT
|
||
ogre-hit-[1~4].ogg #enddef
|
||
|
||
#define SOUND_LIST:OGRE_DIE
|
||
ogre-die-[1~3].ogg #enddef
|
||
|
||
#define SOUND_LIST:ORC_HIT
|
||
orc-hit-[1~4].ogg #enddef
|
||
|
||
#define SOUND_LIST:ORC_DIE
|
||
orc-die-[1~3].ogg #enddef
|
||
|
||
#define SOUND_LIST:ORC_SMALL_HIT
|
||
orc-small-hit-[1~4].ogg #enddef
|
||
|
||
#define SOUND_LIST:ORC_SMALL_DIE
|
||
orc-small-die-[1~2].ogg #enddef
|
||
|
||
#define SOUND_LIST:SKELETON_HIT
|
||
skeleton-hit-[1~3].ogg #enddef
|
||
|
||
#define SOUND_LIST:SKELETON_BIG_HIT
|
||
skeleton-big-hit-[1~3].ogg #enddef
|
||
|
||
#define SOUND_LIST:SKELETON_DIE
|
||
skeleton-die-[1~2].ogg #enddef
|
||
|
||
#define SOUND_LIST:TROLL_HIT
|
||
troll-hit-[1~4].ogg #enddef
|
||
|
||
#define SOUND_LIST:TROLL_DIE
|
||
troll-die-[1~3].ogg #enddef
|
||
|
||
#define SOUND_LIST:WOLF_GROWL
|
||
wolf-growl-[1~4].ogg #enddef
|
||
|
||
#define SOUND_LIST:WOLF_HIT
|
||
wolf-hit-[1~3].ogg #enddef
|
||
|
||
#define SOUND_LIST:WOLF_DIE
|
||
wolf-die-[1~4].ogg #enddef
|
||
|
||
#define SOUND_LIST:ZOMBIE_WEAK_HIT
|
||
zombie-hit-[4~6].ogg #enddef
|
||
|
||
#define SOUND_LIST:ZOMBIE_HIT
|
||
zombie-hit-[1~6].ogg #enddef
|
||
|
||
#define SOUND:HIT_AND_MISS HITSOUND MISSSOUND TIME
|
||
# A more convenient way of wiring in hit and miss sounds to an
|
||
# attack animation. Just specify the sounds to use and the time
|
||
# when they should trigger.
|
||
|
||
attack_sound_start_time={TIME}
|
||
[if]
|
||
hits=yes
|
||
[attack_sound_frame]
|
||
sound={HITSOUND}
|
||
[/attack_sound_frame]
|
||
[/if]
|
||
[else]
|
||
hits=no
|
||
[attack_sound_frame]
|
||
sound={MISSSOUND}
|
||
[/attack_sound_frame]
|
||
[/else]
|
||
#enddef
|
||
|
||
#define SOUND:HIT HITSOUND TIME
|
||
# A more convenient way of wiring in hit only sounds to an
|
||
# attack animation. Just specify the sound to use and the time
|
||
# when it should trigger.
|
||
|
||
[if]
|
||
hits=yes
|
||
attack_sound_start_time={TIME}
|
||
[attack_sound_frame]
|
||
sound={HITSOUND}
|
||
[/attack_sound_frame]
|
||
[/if]
|
||
#enddef
|