summaryrefslogtreecommitdiff |
diff options
-rw-r--r-- | src/query/load_state.erl | 12 | ||||
-rw-r--r-- | src/reply/add_char.erl | 31 | ||||
-rw-r--r-- | src/shim/database_shim.erl | 2 |
3 files changed, 32 insertions, 13 deletions
diff --git a/src/query/load_state.erl b/src/query/load_state.erl index f63a4b1..9999050 100644 --- a/src/query/load_state.erl +++ b/src/query/load_state.erl @@ -66,9 +66,11 @@ fetch_data (Input) -> battlemap_instance = BattlemapInstance }. --spec generate_reply(query_state()) -> binary(). -generate_reply (QueryState) -> +-spec generate_reply(query_state(), input()) -> binary(). +generate_reply (QueryState, Input) -> + PlayerID = Input#input.player_id, BattlemapInstance = QueryState#query_state.battlemap_instance, + jiffy:encode ( [ @@ -78,7 +80,9 @@ generate_reply (QueryState) -> ( array:map ( - fun add_char:generate/2, + fun (IX, CharacterInstance) -> + add_char:generate(IX, CharacterInstance, PlayerID) + end, battlemap_instance:get_character_instances(BattlemapInstance) ) ) @@ -92,7 +96,7 @@ handle (Req) -> security:lock_queries(Input#input.player_id), QueryState = fetch_data(Input), security:unlock_queries(Input#input.player_id), - generate_reply(QueryState). + generate_reply(QueryState, Input). %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% %% EXPORTED FUNCTIONS %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% diff --git a/src/reply/add_char.erl b/src/reply/add_char.erl index 42c3359..8518372 100644 --- a/src/reply/add_char.erl +++ b/src/reply/add_char.erl @@ -7,7 +7,7 @@ %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% %% EXPORTS %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% --export([generate/2]). +-export([generate/3]). %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% %% LOCAL FUNCTIONS %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% @@ -29,12 +29,19 @@ attributes_as_json (Attributes) -> ] }. --spec encode (non_neg_integer(), character_instance:struct()) -> binary(). -encode (IX, CharacterInstance) -> +-spec encode + ( + non_neg_integer(), + character_instance:struct(), + player:id() + ) + -> binary(). +encode (IX, CharacterInstance, PlayerID) -> Character = character_instance:get_character(CharacterInstance), {X, Y} = character_instance:get_location(CharacterInstance), Attributes = character:get_attributes(Character), {ActiveWeapon, SecondaryWeapon} = character:get_weapon_ids(Character), + OwnerID = character:get_owner_id(Character), jiffy:encode ( @@ -50,8 +57,15 @@ encode (IX, CharacterInstance) -> }, {<<"lcx">>, X}, {<<"lcy">>, Y}, - {<<"pla">>, character:get_owner_id(Character)}, - {<<"ena">>, character_instance:get_is_active(CharacterInstance)}, + {<<"pla">>, OwnerID}, + { + <<"ena">>, + ( + character_instance:get_is_active(CharacterInstance) + and + (OwnerID == PlayerID) + ) + }, {<<"att">>, attributes_as_json(Attributes)}, {<<"awp">>, ActiveWeapon}, {<<"swp">>, SecondaryWeapon} @@ -65,8 +79,9 @@ encode (IX, CharacterInstance) -> -spec generate ( non_neg_integer(), - character_instance:struct() + character_instance:struct(), + player:id() ) -> list(binary()). -generate (IX, CharacterInstance) -> - [<<"add_char">>, encode(IX, CharacterInstance)]. +generate (IX, CharacterInstance, PlayerID) -> + [<<"add_char">>, encode(IX, CharacterInstance, PlayerID)]. diff --git a/src/shim/database_shim.erl b/src/shim/database_shim.erl index 68b6ca8..12d5bd5 100644 --- a/src/shim/database_shim.erl +++ b/src/shim/database_shim.erl @@ -111,7 +111,7 @@ generate_db (Heir) -> BattlemapWidth = roll:between(16, 64), BattlemapHeight = roll:between(16, 64), Battlemap = battlemap:random(0, BattlemapWidth, BattlemapHeight), - Characters = generate_random_characters(1, 7, 8, 0, []), + Characters = generate_random_characters(1, 8, 8, 0, []), PlayersAsList = [<<"0">>, <<"1">>], BattlemapInstance = battlemap_instance:random |