module Game.Waddle
(module Game.Waddle.Types,
module Game.Waddle.Load,
module Game.Waddle.ExportJS,
mergeWads
) where
import Game.Waddle.Types
import Game.Waddle.Load
import Game.Waddle.ExportJS
import qualified Data.Map as Map
mergeWads :: [Wad] -> Wad
mergeWads wads = foldl1 mrg wads
where
mrg wad1 wad2 = Wad {
wadHeader = wadHeader wad2,
wadDirectory = wadDirectory wad1 ++ wadDirectory wad2,
wadLumps = wadLumps wad1 ++ wadLumps wad2,
wadLumpLookup = Map.union (wadLumpLookup wad2) (wadLumpLookup wad1),
wadFlats = Map.union (wadFlats wad2) (wadFlats wad1),
wadSprites = Map.union (wadSprites wad2) (wadSprites wad1),
wadPatches = wadPatches wad2,
wadTextures = Map.union (wadTextures wad2) (wadTextures wad1),
wadLevels = Map.union (wadLevels wad2) (wadLevels wad1),
wadPNames = wadPNames wad2,
wadColormap = wadColormap wad2,
wadPalettes = wadPalettes wad2
}