summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authornsensfel <SpamShield0@noot-noot.org>2018-10-01 17:28:10 +0200
committernsensfel <SpamShield0@noot-noot.org>2018-10-01 17:28:10 +0200
commitd4414ea403c77aae2433ea97cb18d4cf69d3b845 (patch)
tree1bf1509538970c110dc7931044ee13a81d27b879 /src/battle
parentad9535ddc9cc733548d7c1701add913ef9a7fc79 (diff)
Working on battle generation.
Diffstat (limited to 'src/battle')
-rw-r--r--src/battle/btl_shim.erl2
-rw-r--r--src/battle/struct/btl_map.erl31
2 files changed, 20 insertions, 13 deletions
diff --git a/src/battle/btl_shim.erl b/src/battle/btl_shim.erl
index 915b75e..aeb4b10 100644
--- a/src/battle/btl_shim.erl
+++ b/src/battle/btl_shim.erl
@@ -231,7 +231,7 @@ generate_random_battle () ->
%MapWidth = 32, % shr_roll:between(16, 32),
%MapHeight = 32, %shr_roll:between(16, 32),
%Map = btl_map:random(0, MapWidth, MapHeight),
- Map = btl_map:from_list(0, 32, 32, new_demo_map()),
+ Map = btl_map:from_list(32, 32, new_demo_map()),
Characters = generate_random_characters(1, 8, 8, 0, Map, [], []),
PlayersAsList = [btl_player:new(0, 8, <<"0">>), btl_player:new(1, 0, <<"1">>)],
diff --git a/src/battle/struct/btl_map.erl b/src/battle/struct/btl_map.erl
index c784bca..157382d 100644
--- a/src/battle/struct/btl_map.erl
+++ b/src/battle/struct/btl_map.erl
@@ -3,13 +3,10 @@
%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
%% TYPES %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
--type id() :: binary().
-
-record
(
map,
{
- id :: id(),
width :: integer(),
height :: integer(),
tile_ids :: array:array(shr_tile:instance())
@@ -18,7 +15,7 @@
-opaque type() :: #map{}.
--export_type([type/0, id/0]).
+-export_type([type/0]).
%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
%% EXPORTS %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
@@ -27,7 +24,6 @@
-export
(
[
- get_id/1,
get_width/1,
get_height/1,
get_tile_instances/1,
@@ -38,7 +34,8 @@
-export
(
[
- from_list/4
+ from_list/3,
+ from_array/3
]
).
@@ -63,9 +60,6 @@ location_to_array_index (ArrayWidth, {X, Y}) ->
%% EXPORTED FUNCTIONS %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
%%%% Accessors
--spec get_id (type()) -> id().
-get_id (Map) -> Map#map.id.
-
-spec get_width (type()) -> integer().
get_width (Map) -> Map#map.width.
@@ -84,17 +78,30 @@ get_tile_instance (Location, Map) ->
(
non_neg_integer(),
non_neg_integer(),
- non_neg_integer(),
list(list(non_neg_integer()))
)
-> type().
-from_list (ID, Width, Height, List) ->
+from_list (Width, Height, List) ->
TileInstances = lists:map(fun shr_tile:instance_from_ints/1, List),
#map
{
- id = list_to_binary(integer_to_list(ID)),
width = Width,
height = Height,
tile_ids = array:from_list(TileInstances)
}.
+
+-spec from_array
+ (
+ non_neg_integer(),
+ non_neg_integer(),
+ array:array(shr_tile:instance())
+ )
+ -> type().
+from_array (Width, Height, TileInstances) ->
+ #map
+ {
+ width = Width,
+ height = Height,
+ tile_ids = TileInstances
+ }.