summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorNathanael Sensfelder <SpamShield0@MultiAgentSystems.org>2019-02-18 22:07:17 +0100
committerNathanael Sensfelder <SpamShield0@MultiAgentSystems.org>2019-02-18 22:07:17 +0100
commit4009cbf1320de13dc926be8d3399edb47d871769 (patch)
treef9e104bc9ab71c80debde404c79febbd9b8387a7
parentd12d6328f1001552ad8ce0f44bc1271eeb94ddbb (diff)
...
-rw-r--r--src/battle/query/btl_load.erl2
-rw-r--r--src/map/query/map_load.erl9
-rw-r--r--src/shared/reply/shr_set_map.erl31
3 files changed, 33 insertions, 9 deletions
diff --git a/src/battle/query/btl_load.erl b/src/battle/query/btl_load.erl
index 7748c68..107419f 100644
--- a/src/battle/query/btl_load.erl
+++ b/src/battle/query/btl_load.erl
@@ -80,6 +80,7 @@ fetch_data (Input) ->
-spec generate_reply(query_state(), input()) -> binary().
generate_reply (QueryState, Input) ->
PlayerID = Input#input.player_id,
+ PUser = ataxia_security:user_from_id(PlayerID),
Battle = QueryState#query_state.battle,
Players = btl_battle:get_players(Battle),
@@ -103,6 +104,7 @@ generate_reply (QueryState, Input) ->
SetMap =
shr_set_map:generate
(
+ PUser,
fun (_TriggerName) -> false end,
btl_battle:get_map(Battle)
),
diff --git a/src/map/query/map_load.erl b/src/map/query/map_load.erl
index 19facf6..b07ffe8 100644
--- a/src/map/query/map_load.erl
+++ b/src/map/query/map_load.erl
@@ -76,11 +76,12 @@ fetch_data (Input) ->
map = Map
}.
--spec generate_reply(query_state()) -> binary().
-generate_reply (QueryState) ->
+-spec generate_reply (input(), query_state()) -> binary().
+generate_reply (Input, QueryState) ->
+ PUser = ataxia_security:user_from_id(Input#input.player_id),
Map = QueryState#query_state.map,
- SetMap = shr_set_map:generate(fun (_TriggerName) -> true end, Map),
+ SetMap = shr_set_map:generate(PUser, fun (_TriggerName) -> true end, Map),
Output = jiffy:encode([SetMap]),
Output.
@@ -93,7 +94,7 @@ handle (Query) ->
shr_security:lock_queries(Input#input.player_id),
QueryState = fetch_data(Input),
shr_security:unlock_queries(Input#input.player_id),
- generate_reply(QueryState);
+ generate_reply(Input, QueryState);
error -> jiffy:encode([shr_disconnected:generate()])
end.
diff --git a/src/shared/reply/shr_set_map.erl b/src/shared/reply/shr_set_map.erl
index 0096b52..2e10c2e 100644
--- a/src/shared/reply/shr_set_map.erl
+++ b/src/shared/reply/shr_set_map.erl
@@ -7,7 +7,7 @@
%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
%% EXPORTS %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
--export([generate/2]).
+-export([generate/3]).
%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
%% LOCAL FUNCTIONS %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
@@ -18,11 +18,12 @@
%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
-spec generate
(
+ ataxia_security:user(),
fun ((shr_tile_instance:trigger_name()) -> boolean()),
shr_map:type()
)
-> {list(any())}.
-generate (TriggerVisibilityFun, Map) ->
+generate (User, TriggerVisibilityFun, Map) ->
{
[
{<<"msg">>, <<"set_map">>},
@@ -32,11 +33,31 @@ generate (TriggerVisibilityFun, Map) ->
<<"t">>,
lists:map
(
- fun (E) ->
- shr_tile_instance:encode(TriggerVisibilityFun, E)
- end,
+ fun (E) -> shr_tile_instance:encode(TriggerVisibilityFun, E) end,
tuple_to_list(shr_map:get_tile_instances(Map))
)
+ },
+ {
+ <<"m">>,
+ lists:filtermap
+ (
+ fun ({Key, Value}) ->
+ case shr_map_marker:can_access(User, Value) of
+ true ->
+ {
+ true,
+ {
+ [
+ { Key, shr_map_marker:encode(Value) }
+ ]
+ }
+ };
+
+ false -> false
+ end
+ end,
+ shr_map:get_markers(Map)
+ )
}
]
}.