summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
Diffstat (limited to 'src/battle/src/Comm/SetMap.elm')
-rw-r--r--src/battle/src/Comm/SetMap.elm39
1 files changed, 27 insertions, 12 deletions
diff --git a/src/battle/src/Comm/SetMap.elm b/src/battle/src/Comm/SetMap.elm
index 7bfd56f..8c58ab3 100644
--- a/src/battle/src/Comm/SetMap.elm
+++ b/src/battle/src/Comm/SetMap.elm
@@ -3,7 +3,9 @@ module Comm.SetMap exposing (decode)
-- Elm -------------------------------------------------------------------------
import Json.Decode
--- Map -------------------------------------------------------------------
+-- Map -------------------------------------------------------------------------
+import Constants.Movement
+
import Struct.Map
import Struct.ServerReply
import Struct.Tile
@@ -15,21 +17,34 @@ type alias MapData =
{
w : Int,
h : Int,
- t : (List Int)
+ t : (List (List Int))
}
--------------------------------------------------------------------------------
-- LOCAL -----------------------------------------------------------------------
--------------------------------------------------------------------------------
-deserialize_tile_instance : Int -> Int -> Int -> Struct.Tile.Instance
-deserialize_tile_instance map_width index id =
- (Struct.Tile.new_instance
- (index % map_width)
- (index // map_width)
- id
- -1
- -1
- )
+deserialize_tile_instance : Int -> Int -> (List Int) -> Struct.Tile.Instance
+deserialize_tile_instance map_width index t =
+ case t of
+ [type_id, border_id, variant_ix] ->
+ (Struct.Tile.new_instance
+ (index % map_width)
+ (index // map_width)
+ type_id
+ border_id
+ variant_ix
+ Constants.Movement.cost_when_out_of_bounds
+ )
+
+ _ ->
+ (Struct.Tile.new_instance
+ (index % map_width)
+ (index // map_width)
+ 0
+ 0
+ 0
+ Constants.Movement.cost_when_out_of_bounds
+ )
internal_decoder : MapData -> Struct.ServerReply.Type
internal_decoder map_data =
@@ -56,7 +71,7 @@ decode =
(Json.Decode.field "h" Json.Decode.int)
(Json.Decode.field
"t"
- (Json.Decode.list Json.Decode.int)
+ (Json.Decode.list (Json.Decode.list Json.Decode.int))
)
)
)