summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
Diffstat (limited to 'src/battlemap/query')
-rw-r--r--src/battlemap/query/bm_character_turn.erl8
-rw-r--r--src/battlemap/query/bm_load_state.erl15
2 files changed, 20 insertions, 3 deletions
diff --git a/src/battlemap/query/bm_character_turn.erl b/src/battlemap/query/bm_character_turn.erl
index 74def12..7a7476c 100644
--- a/src/battlemap/query/bm_character_turn.erl
+++ b/src/battlemap/query/bm_character_turn.erl
@@ -73,10 +73,14 @@ assert_user_is_current_player (Data, Request) ->
) -> 'ok'.
assert_user_owns_played_character (Data, Request) ->
PlayerID = bm_character_turn_request:get_player_id(Request),
+ Battle = bm_character_turn_data:get_battle(Data),
+ Players = bm_battle:get_players(Battle),
Character = bm_character_turn_data:get_character(Data),
- CharacterOwnerID = bm_character:get_owner_id(Character),
+ CharacterPlayerIX = bm_character:get_player_index(Character),
+ CharacterPlayer = array:get(CharacterPlayerIX, Players),
+ CharacterPlayerID = bm_player:get_id(CharacterPlayer),
- true = (PlayerID == CharacterOwnerID),
+ true = (PlayerID == CharacterPlayerID),
ok.
diff --git a/src/battlemap/query/bm_load_state.erl b/src/battlemap/query/bm_load_state.erl
index 4b5b3ab..505ec3b 100644
--- a/src/battlemap/query/bm_load_state.erl
+++ b/src/battlemap/query/bm_load_state.erl
@@ -64,6 +64,19 @@ fetch_data (Input) ->
generate_reply (QueryState, Input) ->
PlayerID = Input#input.player_id,
Battle = QueryState#query_state.battle,
+ Players = bm_battle:get_players(Battle),
+
+ PlayerIX =
+ sh_array_util:first
+ (
+ fun (Player) ->
+ (bm_player:get_id(Player) == PlayerID)
+ end,
+ Players
+ ),
+
+ true = (PlayerIX >= 0),
+
SetTimeline =
bm_set_timeline:generate
(
@@ -78,7 +91,7 @@ generate_reply (QueryState, Input) ->
array:map
(
fun (IX, Character) ->
- bm_add_char:generate(IX, Character, PlayerID)
+ bm_add_char:generate(IX, Character, PlayerIX)
end,
bm_battle:get_characters(Battle)
)