summaryrefslogtreecommitdiff
path: root/src/query
diff options
context:
space:
mode:
authornsensfel <SpamShield0@noot-noot.org>2018-03-12 17:55:25 +0100
committernsensfel <SpamShield0@noot-noot.org>2018-03-12 17:55:25 +0100
commit68cfa3b73e6f7def9641b08c4acf2f0f96685843 (patch)
tree5d6bbe4b6f1e777235fcc1235060b5101ca46c4d /src/query
parent11a7a03a0088b2c4b8edc394469396d54190dc53 (diff)
Stores and sends entire turn timelines.
Diffstat (limited to 'src/query')
-rw-r--r--src/query/character_turn.erl26
-rw-r--r--src/query/load_state.erl3
2 files changed, 12 insertions, 17 deletions
diff --git a/src/query/character_turn.erl b/src/query/character_turn.erl
index e796493..e2b6165 100644
--- a/src/query/character_turn.erl
+++ b/src/query/character_turn.erl
@@ -145,27 +145,18 @@ update_cache (Battle, Input) ->
Battle
).
--spec generate_reply
- (
- list(turn_result:struct())
- )
- -> binary().
-generate_reply (ClientUpdate) ->
+-spec generate_reply ( list(any())) -> binary().
+generate_reply (EncodedClientUpdate) ->
jiffy:encode
(
[
- {
- [
- {<<"msg">>, <<"turn_results">>},
- {<<"cnt">>, lists:map(fun turn_result:encode/1, ClientUpdate)}
- ]
- }
+ turn_results:generate(EncodedClientUpdate)
]
).
handle_actions (RData, Input) ->
Battle = RData#relevant_data.battle,
- CharacterInstance= RData#relevant_data.played_character_instance,
+ CharacterInstance = RData#relevant_data.played_character_instance,
CharacterInstanceIX = Input#input.character_instance_ix,
Actions = Input#input.actions,
@@ -236,10 +227,15 @@ handle (Req) ->
{ActionsDiffUpdate, ClientUpdate, UpdatedRData} =
handle_actions(RData, Input),
+ EncodedClientUpdate = lists:map(fun turn_result:encode/1, ClientUpdate),
+
UpdatedBattle = finalize_and_fuse_relevant_data(UpdatedRData, Input),
+ UpdatedBattle2 =
+ battle_turn:store_timeline(EncodedClientUpdate, UpdatedBattle),
+
{TurnDiffUpdate, FinalizedBattle} =
- battle_turn:handle_post_play(UpdatedBattle),
+ battle_turn:handle_post_play(UpdatedBattle2),
DiffUpdate = (TurnDiffUpdate ++ ActionsDiffUpdate),
@@ -251,7 +247,7 @@ handle (Req) ->
security:unlock_queries(PlayerID),
- generate_reply(ClientUpdate).
+ generate_reply(EncodedClientUpdate).
%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
%% EXPORTED FUNCTIONS %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
diff --git a/src/query/load_state.erl b/src/query/load_state.erl
index cc8f28f..d92c091 100644
--- a/src/query/load_state.erl
+++ b/src/query/load_state.erl
@@ -74,6 +74,7 @@ generate_reply (QueryState, Input) ->
jiffy:encode
(
[
+ turn_results:generate(battle:get_encoded_last_turns_effects(Battle)),
set_map:generate(battle:get_battlemap(Battle))
|
array:sparse_to_list
@@ -87,8 +88,6 @@ generate_reply (QueryState, Input) ->
)
)
]
- ++
- battle:get_encoded_last_turns_effects(Battle)
).
-spec handle (binary()) -> binary().