summaryrefslogtreecommitdiff |
diff options
Diffstat (limited to 'src/battle/src/Comm')
-rw-r--r-- | src/battle/src/Comm/SetMap.elm | 88 |
1 files changed, 3 insertions, 85 deletions
diff --git a/src/battle/src/Comm/SetMap.elm b/src/battle/src/Comm/SetMap.elm index e1cc565..10d527a 100644 --- a/src/battle/src/Comm/SetMap.elm +++ b/src/battle/src/Comm/SetMap.elm @@ -1,87 +1,19 @@ module Comm.SetMap exposing (decode) -- Elm ------------------------------------------------------------------------- -import Dict - import Json.Decode --- Battle ---------------------------------------------------------------------- -import Constants.Movement - +-- Map ------------------------------------------------------------------------- import Struct.Map -import Struct.MapMarker import Struct.ServerReply -import Struct.Tile -------------------------------------------------------------------------------- -- TYPES ----------------------------------------------------------------------- -------------------------------------------------------------------------------- -type alias MapData = - { - w : Int, - h : Int, - t : (List (List String)), - m : (Dict.Dict String Struct.MapMarker.Type) - } -------------------------------------------------------------------------------- -- LOCAL ----------------------------------------------------------------------- -------------------------------------------------------------------------------- -deserialize_tile_borders : ( - (List String) -> - (List Struct.Tile.Border) -> - (List Struct.Tile.Border) - ) -deserialize_tile_borders rem_ints current_borders = - case rem_ints of - [] -> (List.reverse current_borders) - (a :: (b :: c)) -> - (deserialize_tile_borders - c - ((Struct.Tile.new_border a b) :: current_borders) - ) - - _ -> [] - -deserialize_tile_instance : Int -> Int -> (List String) -> Struct.Tile.Instance -deserialize_tile_instance map_width index t = - case t of - (a :: (b :: c)) -> - (Struct.Tile.new_instance - { - x = (modBy map_width index), - y = (index // map_width) - } - a - b - Constants.Movement.cost_when_out_of_bounds - (deserialize_tile_borders c []) - ) - - _ -> - (Struct.Tile.new_instance - { - x = (modBy map_width index), - y = (index // map_width) - } - "0" - "0" - Constants.Movement.cost_when_out_of_bounds - [] - ) - -internal_decoder : MapData -> Struct.ServerReply.Type -internal_decoder map_data = - (Struct.ServerReply.SetMap - (Struct.Map.new - map_data.w - map_data.h - (List.indexedMap - (deserialize_tile_instance map_data.w) - map_data.t - ) - ) - ) -------------------------------------------------------------------------------- -- EXPORTED -------------------------------------------------------------------- @@ -89,20 +21,6 @@ internal_decoder map_data = decode : (Json.Decode.Decoder Struct.ServerReply.Type) decode = (Json.Decode.map - internal_decoder - (Json.Decode.map4 MapData - (Json.Decode.field "w" Json.Decode.int) - (Json.Decode.field "h" Json.Decode.int) - (Json.Decode.field - "t" - (Json.Decode.list (Json.Decode.list Json.Decode.string)) - ) - (Json.Decode.field - "m" - (Json.Decode.map - (Dict.fromList) - (Json.Decode.keyValuePairs (Struct.MapMarker.decoder)) - ) - ) - ) + (\map -> (Struct.ServerReply.SetMap map)) + (Struct.Map.decoder) ) |