The current implementation of the [music] tag sets the title after adding the track, however the title field was read only. This makes the field writable.
Turns out I mistook @celticminstrel's opinion that we should use include guards over pragma (737916e).
Since all major compilers support `#pragma once`, there's no reason not to use it.
For future mergability reasons, this excludes src/spirit_po and src/xBRZ. It also excludes src/boost-patched.
The music_track struct has been rewritten (and "promoted" to class) and
music caching behavior in Wesnoth has changed a bit. This should not
noticeably affect performance or be visible to users in other ways (if
it is, we've got regressions).
There's a hidden, disarmed core bomb in this commit. Can you find it?
Formerly, the engine resolved binary paths to music files whenever it
hit one in the playlist. Now it resolves the binary path when
loading/editing the playlist, reducing the time it takes to play a new
track by an insignificant amount of time. It will also consider a
data/add-ons/foo/music/track1.ogg as a different file to
data/core/music/track1.ogg as far as the music cache is concerned, since
it now stores entries by real paths rather than just filenames.