I am requesting a way to define which OPL patch to load based on the current map, OR on demand. This would allow me to make custom patches that are not only different drum sets, but also have a similar set-up to Descent where I could load in a completely different set of instruments per level. This would require some extra functions, obviously, so I propose "dmxpatch" for MAPINFO and SetDMXPatch() for scripts. SetDMXPatch() should only trigger when the music changes.
An example in MAPINFO:
Code: Select all
map MAP01 "Grandpa Found The Car Keys" {
sky1 = "CITYSKY2", 0
music = "CITYMUS"
dmxpatch = "DMXCITY"
}
Code: Select all
Script 100 (int tid) // Boss battle
{
SetDMXPatch("DMXBOSS"); // Load DMX patch , would listen for a SetMusic
SetMusic("BosFight", 0);
ACS_Execute(666, 0, tid, 0, 0); // Starts a health tracker for the boss
while (ThingCount(T_NONE, tid) > 0) delay(35);
SetDMXPatch("DMXCITY"); // Restore the default patch
SetMusic("*", 0); // Restore the level's default music
}