summaryrefslogtreecommitdiff
path: root/src
diff options
context:
space:
mode:
Diffstat (limited to 'src')
-rw-r--r--src/query/load_state.erl12
-rw-r--r--src/reply/add_char.erl31
-rw-r--r--src/shim/database_shim.erl2
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