From 4009cbf1320de13dc926be8d3399edb47d871769 Mon Sep 17 00:00:00 2001 From: Nathanael Sensfelder Date: Mon, 18 Feb 2019 22:07:17 +0100 Subject: ... --- src/battle/query/btl_load.erl | 2 ++ src/map/query/map_load.erl | 9 +++++---- src/shared/reply/shr_set_map.erl | 31 ++++++++++++++++++++++++++----- 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) + ) } ] }. -- cgit v1.2.3-70-g09d2