// @music atcommand
// changes the music for all players on the map
//
// group lv: 80
// group char lv: 80
// log: True
//
// usage:
//    @music <short name>
//
// example:
//    @music forest

-	script	@music	32767,{
    end;

OnCall:
    if (!is_gm()) {
        end;
    }

    // TODO: tmw-like argv splitter
    getmapxy .@map$, .@void, .@void, UNITTYPE_PC; // get map

    .@key$ = .@atcmd_parameters$[0];
    .@m$ = htget(.hash, .@key$, "Not found");

    if (.@m$ == "Not found") {
        //.@m$ = implode(.@atcmd_parameters$[0], " ");
        dispbottom "Invalid music key. Current accepted values are:";
        dispbottom "ship, city, ghoul, surreal, magic, forest, mythica, acid, misuse, prelude, sunrise, peace, toast, woodland2, lands, deepcave";
    } else {
        changemusic .@map$, .@m$;
    }
    end;

OnInit:
    bindatcmd "music", "@music::OnCall", 80, 80, 1;

    .hash = htnew; // create hashtable
    htput(.hash, "ship",       "bartk_forest_of_birches.ogg");
    htput(.hash, "city",       "bartk_adventure.ogg");
    htput(.hash, "ghoul",      "eric_matyas_ghouls.ogg");
    htput(.hash, "surreal",    "eric_matyas_surreal.ogg");
    htput(.hash, "magic",      "magick_real.ogg");
    htput(.hash, "forest",     "dariunas_forest.ogg");
    htput(.hash, "mythica",    "mythica.ogg");
    htput(.hash, "acid",       "3b5.ogg");
    htput(.hash, "misuse",     "misuse.ogg");
    htput(.hash, "prelude",    "water_prelude.ogg");
    htput(.hash, "sunrise",    "tws_birds_in_the_sunrise.ogg");
    htput(.hash, "peace",      "peace.ogg");
    htput(.hash, "toast",      "dragon_and_toast.ogg");
    htput(.hash, "woodland2",  "New_Woodlands.ogg");
    htput(.hash, "lands",      "Unforgiving_Lands.ogg");
    htput(.hash, "deepcave",   "Deep_Cave.ogg");
}