summaryrefslogtreecommitdiff |
diff options
Diffstat (limited to 'src/battlemap/struct/bm_battlemap.erl')
-rw-r--r-- | src/battlemap/struct/bm_battlemap.erl | 22 |
1 files changed, 21 insertions, 1 deletions
diff --git a/src/battlemap/struct/bm_battlemap.erl b/src/battlemap/struct/bm_battlemap.erl index c3eabb0..6c9fbf9 100644 --- a/src/battlemap/struct/bm_battlemap.erl +++ b/src/battlemap/struct/bm_battlemap.erl @@ -38,7 +38,8 @@ -export ( [ - random/3 + random/3, + from_list/4 ] ). @@ -119,3 +120,22 @@ random (ID, Width, Height) -> height = Height, tile_ids = array:from_list(TileIDs) }. + +-spec from_list + ( + non_neg_integer(), + non_neg_integer(), + non_neg_integer(), + list(non_neg_integer()) + ) + -> type(). +from_list (ID, Width, Height, List) -> + TileIDs = lists:map(fun bm_tile:id_from_int/1, List), + + #battlemap + { + id = list_to_binary(integer_to_list(ID)), + width = Width, + height = Height, + tile_ids = array:from_list(TileIDs) + }. |