From 4e012e376555087b1cc65cb95e2c621f43f7612c Mon Sep 17 00:00:00 2001 From: Christoph Oelckers Date: Sat, 24 Mar 2018 21:19:10 +0100 Subject: [PATCH] - fill in the ADL bank menu from the internal table. Some of the names had to be shortened to prevent it from getting too confusing. --- src/menu/menudef.cpp | 17 ++++++++++++++ src/sound/adlmidi/adldata.cpp | 42 +++++++++++++++++------------------ wadsrc/static/menudef.txt | 8 +++++-- 3 files changed, 44 insertions(+), 23 deletions(-) diff --git a/src/menu/menudef.cpp b/src/menu/menudef.cpp index beb1562f2..ea410f571 100644 --- a/src/menu/menudef.cpp +++ b/src/menu/menudef.cpp @@ -1381,6 +1381,8 @@ static void InitCrosshairsList() // Initialize the music configuration submenus // //============================================================================= +extern const char* const banknames[74]; + static void InitMusicMenus() { DMenuDescriptor **advmenu = MenuDescriptors.CheckKey("AdvSoundOptions"); @@ -1418,6 +1420,21 @@ static void InitMusicMenus() } } } + + DMenuDescriptor **menu = MenuDescriptors.CheckKey("ADLBankMenu"); + + if (menu != nullptr) + { + if (soundfonts.Size() > 0) + { + for(int i=0;i<74;i++) + { + auto it = CreateOptionMenuItemCommand(banknames[i], FStringf("adl_bank %d", i), true); + static_cast(*menu)->mItems.Push(it); + i++; + } + } + } } //============================================================================= diff --git a/src/sound/adlmidi/adldata.cpp b/src/sound/adlmidi/adldata.cpp index d43f33b2f..f17d0c839 100644 --- a/src/sound/adlmidi/adldata.cpp +++ b/src/sound/adlmidi/adldata.cpp @@ -9002,7 +9002,7 @@ int maxAdlBanks() const char* const banknames[74] = { - "AIL (Star Control 3, Albion, Empire 2, Sensible Soccer, Settlers 2, many others)", + "AIL (Star Control 3, Albion, Empire 2, many others)", "Bisqwit (selection of 4op and 2op)", "HMI (Descent, Asterix)", "HMI (Descent:: Int)", @@ -9016,47 +9016,47 @@ const char* const banknames[74] = "HMI (Aces of the Deep)", "HMI (Earthsiege)", "HMI (Anvil of Dawn)", - "DMX (Doom :: partially pseudo 4op)", - "DMX (Hexen, Heretic :: partially pseudo 4op)", - "DMX (MUS Play :: partially pseudo 4op)", - "AIL (Discworld, Grandest Fleet, Pocahontas, Slob Zone 3d, Ultima 4, Zorro)", + "DMX (Doom)", + "DMX (Hexen, Heretic)", + "DMX (MUS Play)", + "AIL (Discworld, Grandest Fleet)", "AIL (Warcraft 2)", "AIL (Syndicate)", - "AIL (Guilty, Orion Conspiracy, Terra Nova Strike Force Centauri :: 4op)", + "AIL (Guilty, Orion Conspiracy)", "AIL (Magic Carpet 2)", "AIL (Nemesis)", "AIL (Jagged Alliance)", - "AIL (When Two Worlds War :: 4op, MISSING INSTRUMENTS)", - "AIL (Bards Tale Construction :: MISSING INSTRUMENTS)", + "AIL (When Two Worlds War)", + "AIL (Bards Tale Construction)", "AIL (Return to Zork)", "AIL (Theme Hospital)", "AIL (National Hockey League PA)", "AIL (Inherit The Earth)", "AIL (Inherit The Earth, file two)", - "AIL (Little Big Adventure :: 4op)", + "AIL (Little Big Adventure)", "AIL (Wreckin Crew)", "AIL (Death Gate)", "AIL (FIFA International Soccer)", "AIL (Starship Invasion)", - "AIL (Super Street Fighter 2 :: 4op)", - "AIL (Lords of the Realm :: MISSING INSTRUMENTS)", - "AIL (SimFarm, SimHealth :: 4op)", + "AIL (Super Street Fighter 2)", + "AIL (Lords of the Realm)", + "AIL (SimFarm, SimHealth)", "AIL (SimFarm, Settlers, Serf City)", - "AIL (Caesar 2 :: partially 4op, MISSING INSTRUMENTS)", + "AIL (Caesar 2, MISSING INSTRUMENTS)", "AIL (Syndicate Wars)", "AIL (Bubble Bobble Feat. Rainbow Islands, Z)", "AIL (Warcraft)", - "AIL (Terra Nova Strike Force Centuri :: partially 4op)", - "AIL (System Shock :: partially 4op)", + "AIL (Terra Nova Strike Force Centuri)", + "AIL (System Shock)", "AIL (Advanced Civilization)", - "AIL (Battle Chess 4000 :: partially 4op, melodic only)", - "AIL (Ultimate Soccer Manager :: partially 4op)", - "AIL (Air Bucks, Blue And The Gray, America Invades, Terminator 2029)", + "AIL (Battle Chess 4000, melodic only)", + "AIL (Ultimate Soccer Manager)", + "AIL (Air Bucks, Blue And The Gray)", "AIL (Ultima Underworld 2)", "AIL (Kasparov's Gambit)", - "AIL (High Seas Trader :: MISSING INSTRUMENTS)", - "AIL (Master of Magic, Master of Orion 2 :: 4op, std percussion)", - "AIL (Master of Magic, Master of Orion 2 :: 4op, orchestral percussion)", + "AIL (High Seas Trader)", + "AIL (Master of Magic, std percussion)", + "AIL (Master of Magic, orchestral percussion)", "SB (Action Soccer)", "SB (3d Cyberpuck :: melodic only)", "SB (Simon the Sorcerer :: melodic only)", diff --git a/wadsrc/static/menudef.txt b/wadsrc/static/menudef.txt index 0277fdad0..73ee39e84 100644 --- a/wadsrc/static/menudef.txt +++ b/wadsrc/static/menudef.txt @@ -1687,6 +1687,11 @@ OptionMenu FluidPatchsetMenu protected Title "$ADVSNDMNU_SELCONFIG" } +OptionMenu ADLBankMenu protected +{ + Title "$ADVSNDMNU_OPLBANK" +} + /*======================================= * * Module Replayer Options Menu @@ -1811,8 +1816,7 @@ OptionMenu ModReplayerOptions protected OptionMenu ADLOptions protected { Title "$ADVSNDMNU_ADLMIDI" - StaticText "$ADVSNDMNU_OPLBANK", 1 - // todo: fill in from internal data + LabeledSubmenu "$ADVSNDMNU_OPLBANK", "adl_bank", "ADLBankMenu" } /*=======================================