| summaryrefslogtreecommitdiff | 
diff options
Diffstat (limited to 'src')
| -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 | 


