summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorNathanael Sensfelder <SpamShield0@MultiAgentSystems.org>2018-08-02 16:42:51 +0200
committerNathanael Sensfelder <SpamShield0@MultiAgentSystems.org>2018-08-02 16:42:51 +0200
commitc0349f22f281940bd2f9b3cf670b21dc895dca85 (patch)
tree8e29927872c4175e1ce7a2b3e108bc23bf56a9e4 /src/battle/struct/btl_tile.erl.m4
parent234193c59f79a71b4aedb5cdcc748fb70ef52712 (diff)
Moves to the new tile format.
Diffstat (limited to 'src/battle/struct/btl_tile.erl.m4')
-rw-r--r--src/battle/struct/btl_tile.erl.m468
1 files changed, 37 insertions, 31 deletions
diff --git a/src/battle/struct/btl_tile.erl.m4 b/src/battle/struct/btl_tile.erl.m4
index 7a8ea21..170b855 100644
--- a/src/battle/struct/btl_tile.erl.m4
+++ b/src/battle/struct/btl_tile.erl.m4
@@ -7,16 +7,15 @@
(
tile,
{
- id :: id(),
+ id :: class_id(),
name :: binary(),
- cost :: non_neg_integer(),
- class_range_min :: non_neg_integer(),
- class_range_max :: non_neg_integer()
+ cost :: non_neg_integer()
}
).
--opaque id() :: non_neg_integer().
-opaque class_id() :: non_neg_integer().
+-opaque id() :: {class_id(), class_id(), non_neg_integer()}.
+
-opaque type() :: #tile{}.
-export_type([type/0, class_id/0, id/0]).
@@ -26,12 +25,10 @@
-export
(
[
- get_id/1,
+ get_class_id/1,
get_name/1,
get_cost/1,
- get_range_minimum/1,
- get_range_maximum/1,
- from_id/1,
+ from_class_id/1,
cost_when_oob/0
]
).
@@ -39,8 +36,17 @@
-export
(
[
- class_id_to_type_id/1,
- class_id_from_int/1
+ id_to_int_list/1,
+ id_from_ints/1
+ ]
+).
+
+-export
+(
+ [
+ extract_main_class_id/1,
+ extract_border_class_id/1,
+ extract_variant_ix/1
]
).
@@ -52,27 +58,27 @@
%% EXPORTED FUNCTIONS %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
--spec class_id_to_type_id (class_id()) -> id().
-class_id_to_type_id (ClassID) ->
- case ClassID of
-m4_include(__MAKEFILE_DATA_DIR/tile/global.m4.conf)m4_dnl
-__TILE_CLASS_USE_ERLANG_SELECT_STYLE
-m4_include(__MAKEFILE_DATA_DIR/tile/grassland.m4d)m4_dnl
- _ -> 0
- end.
+-spec extract_main_class_id (id()) -> class_id().
+extract_main_class_id ({M, _, _}) -> M.
--spec from_id (id()) -> type().
+-spec extract_border_class_id (id()) -> class_id().
+extract_border_class_id ({_, B, _}) -> B.
+
+-spec extract_variant_ix (id()) -> class_id().
+extract_variant_ix ({_, _, V}) -> V.
+
+-spec from_class_id (class_id()) -> type().
m4_include(__MAKEFILE_DATA_DIR/tile/global.m4.conf)m4_dnl
__TILE_CLASS_USE_ERLANG_STYLE
m4_include(__MAKEFILE_DATA_DIR/tile/grassland.m4d)m4_dnl
-from_id(_) ->
- from_id(0).
+from_class_id(_) ->
+ from_class_id(0).
-spec cost_when_oob () -> non_neg_integer().
cost_when_oob () -> __TILE_COST_WHEN_OOB.
--spec get_id (type()) -> non_neg_integer().
-get_id (Tile) -> Tile#tile.id.
+-spec get_class_id (type()) -> non_neg_integer().
+get_class_id (Tile) -> Tile#tile.id.
-spec get_cost (type()) -> non_neg_integer().
get_cost (Tile) -> Tile#tile.cost.
@@ -80,11 +86,11 @@ get_cost (Tile) -> Tile#tile.cost.
-spec get_name (type()) -> binary().
get_name (Tile) -> Tile#tile.name.
--spec get_range_minimum (type()) -> non_neg_integer().
-get_range_minimum (Tile) -> Tile#tile.class_range_min.
-
--spec get_range_maximum (type()) -> non_neg_integer().
-get_range_maximum (Tile) -> Tile#tile.class_range_max.
+-spec id_from_ints
+ (
+ {non_neg_integer(), non_neg_integer(), non_neg_integer()}
+ ) -> id().
+id_from_ints ({M, B, V}) -> {M, B, V}.
--spec class_id_from_int (non_neg_integer()) -> id().
-class_id_from_int (I) -> I.
+-spec id_to_int_list (id()) -> list(non_neg_integer()).
+id_to_int_list ({M, B, V}) -> [M, B, V].