summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
Diffstat (limited to 'src/shim/battlemap_shim.erl')
-rw-r--r--src/shim/battlemap_shim.erl64
1 files changed, 64 insertions, 0 deletions
diff --git a/src/shim/battlemap_shim.erl b/src/shim/battlemap_shim.erl
new file mode 100644
index 0000000..b19a653
--- /dev/null
+++ b/src/shim/battlemap_shim.erl
@@ -0,0 +1,64 @@
+-module(battlemap_shim).
+
+%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
+%% TYPES %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
+%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
+-record
+(
+ battlemap,
+ {
+ id,
+ width,
+ height,
+ content,
+ instances
+ }
+).
+
+%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
+%% EXPORTS %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
+%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
+-export
+(
+ [
+ generate_random/0
+ ]
+).
+
+%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
+%% LOCAL FUNCTIONS %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
+%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
+generate(_Prev, Result, _X, 0, _BaseWidth) ->
+ Result;
+generate(Prev, Result, 0, Y, BaseWidth) ->
+ generate(Prev, Result, BaseWidth, (Y - 1), BaseWidth);
+generate(Prev, Result, X, Y, BaseWidth) ->
+ case rand:uniform(100) of
+ N when (N >= 10) ->
+ generate(Prev, [Prev|Result], (X - 1), Y, BaseWidth);
+
+ N ->
+ NewTileType = (N - 1),
+ generate
+ (
+ NewTileType,
+ [NewTileType|Result],
+ (X - 1),
+ Y,
+ BaseWidth
+ )
+ end.
+
+%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
+%% EXPORTED FUNCTIONS %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
+%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
+generate_random () ->
+ Width = (rand:uniform(48) + 16),
+ Height = (rand:uniform(48) + 16),
+ #battlemap
+ {
+ id = <<"0">>,
+ width = Width,
+ height = Height,
+ content = array:from_list(generate(0, [], Width, Height, Width))
+ }.