module MEDPlaySeq where import Amiga (stringFromBytes) import qualified MMD0Song import MMD0Song(MMD0Song) import qualified PlaySeq import PlaySeq(PlaySeq) import Human import qualified Data.List as List data MEDPlaySeq = MEDPlaySeq { name :: String , indices :: [Int] -- ^ block indices } playSeq0 :: MMD0Song -> MEDPlaySeq playSeq0 song = MEDPlaySeq "" $ take (fromIntegral $ MMD0Song.songlen song) $ map fromIntegral $ MMD0Song.playseq song playSeq2 :: PlaySeq -> MEDPlaySeq playSeq2 pseq = MEDPlaySeq { name = stringFromBytes (PlaySeq.name pseq) , indices = map fromIntegral (PlaySeq.seq pseq) } instance Human MEDPlaySeq where human (MEDPlaySeq name' indices') = (if null name' then "playseq" else name') ++ ": " ++ List.intercalate ", " (map show indices')