summaryrefslogtreecommitdiff |
diff options
author | nsensfel <SpamShield0@noot-noot.org> | 2018-07-12 17:10:30 +0200 |
---|---|---|
committer | nsensfel <SpamShield0@noot-noot.org> | 2018-07-12 17:10:30 +0200 |
commit | 0b2562792eb35c35b573fd9a79d1c73576e0d536 (patch) | |
tree | 0a42b767f19e6c1ea76fd9520c886a6716b26966 /src | |
parent | 73bea4600f5bb3ad748d9bfa65ef6cd14e6bbd55 (diff) |
Shared sec. module, some renammings.
Diffstat (limited to 'src')
-rw-r--r-- | src/battle/btl_shim.erl | 12 | ||||
-rw-r--r-- | src/battle/game-logic/btl_movement.erl | 6 | ||||
-rw-r--r-- | src/battle/game-logic/btl_turn_actions.erl | 2 | ||||
-rw-r--r-- | src/battle/io/btl_security.erl | 33 | ||||
-rw-r--r-- | src/battle/query/btl_character_turn.erl | 6 | ||||
-rw-r--r-- | src/battle/query/btl_load_state.erl | 159 | ||||
-rw-r--r-- | src/battle/reply/btl_set_map.erl | 8 | ||||
-rw-r--r-- | src/battle/struct/btl_battle.erl | 20 | ||||
-rw-r--r-- | src/battle/struct/btl_battlemap.erl | 100 | ||||
-rw-r--r-- | src/map/io/map_security.erl | 33 | ||||
-rw-r--r-- | src/map/query/map_load_state.erl | 159 |
11 files changed, 27 insertions, 511 deletions
diff --git a/src/battle/btl_shim.erl b/src/battle/btl_shim.erl index fddc2f6..2964a76 100644 --- a/src/battle/btl_shim.erl +++ b/src/battle/btl_shim.erl @@ -19,7 +19,7 @@ non_neg_integer(), non_neg_integer(), non_neg_integer(), - btl_battlemap:type(), + btl_map:type(), list(btl_location:type()), list(btl_character:type()) ) @@ -70,8 +70,8 @@ generate_random_characters ( TotalCharacterCount, MaxPlayerIX, - btl_battlemap:get_width(Battlemap), - btl_battlemap:get_height(Battlemap), + btl_map:get_width(Battlemap), + btl_map:get_height(Battlemap), ForbiddenLocations ), Character = @@ -134,8 +134,8 @@ demo_map () -> generate_random_battle () -> %BattlemapWidth = 32, % shr_roll:between(16, 32), %BattlemapHeight = 32, %shr_roll:between(16, 32), - %Battlemap = btl_battlemap:random(0, BattlemapWidth, BattlemapHeight), - Battlemap = btl_battlemap:from_list(0, 32, 32, demo_map()), + %Battlemap = btl_map:random(0, BattlemapWidth, BattlemapHeight), + Battlemap = btl_map:from_list(0, 32, 32, demo_map()), Characters = generate_random_characters(1, 8, 8, 0, Battlemap, [], []), PlayersAsList = [btl_player:new(0, 8, <<"0">>), btl_player:new(1, 0, <<"1">>)], @@ -165,7 +165,7 @@ generate_random_battle () -> ) end, sets:new(), - btl_battlemap:get_tile_class_ids(Battlemap) + btl_map:get_tile_class_ids(Battlemap) ), Battle = diff --git a/src/battle/game-logic/btl_movement.erl b/src/battle/game-logic/btl_movement.erl index 87b1806..f78eca1 100644 --- a/src/battle/game-logic/btl_movement.erl +++ b/src/battle/game-logic/btl_movement.erl @@ -19,7 +19,7 @@ %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% -spec cross ( - btl_battlemap:type(), + btl_map:type(), list(btl_location:type()), list(btl_direction:enum()), non_neg_integer(), @@ -30,7 +30,7 @@ cross (_Battlemap, _ForbiddenLocations, [], Cost, Location) -> {Location, Cost}; cross (Battlemap, ForbiddenLocations, [Step|NextSteps], Cost, Location) -> NextLocation = btl_location:apply_direction(Step, Location), - NextTileClassID = btl_battlemap:get_tile_class_id(NextLocation, Battlemap), + NextTileClassID = btl_map:get_tile_class_id(NextLocation, Battlemap), NextTileID = btl_tile:class_id_to_type_id(NextTileClassID), NextTile = btl_tile:from_id(NextTileID), NextCost = (Cost + btl_tile:get_cost(NextTile)), @@ -50,7 +50,7 @@ cross (Battlemap, ForbiddenLocations, [Step|NextSteps], Cost, Location) -> -spec cross ( - btl_battlemap:type(), + btl_map:type(), list(btl_location:type()), list(btl_direction:enum()), btl_location:type() diff --git a/src/battle/game-logic/btl_turn_actions.erl b/src/battle/game-logic/btl_turn_actions.erl index e7153f9..d46818f 100644 --- a/src/battle/game-logic/btl_turn_actions.erl +++ b/src/battle/game-logic/btl_turn_actions.erl @@ -79,7 +79,7 @@ get_path_cost_and_destination (Data, Path) -> Character = btl_character_turn_data:get_character(Data), CharacterIX = btl_character_turn_data:get_character_ix(Data), Battle = btl_character_turn_data:get_battle(Data), - Battlemap = btl_battle:get_battlemap(Battle), + Battlemap = btl_battle:get_map(Battle), ForbiddenLocations = array:foldl diff --git a/src/battle/io/btl_security.erl b/src/battle/io/btl_security.erl deleted file mode 100644 index cf6bb9b..0000000 --- a/src/battle/io/btl_security.erl +++ /dev/null @@ -1,33 +0,0 @@ --module(btl_security). - -%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% -%% TYPES %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% -%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% - -%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% -%% EXPORTS %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% -%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% --export -( - [ - assert_identity/2, - lock_queries/1, - unlock_queries/1 - ] -). - -%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% -%% LOCAL FUNCTIONS %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% -%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% - -%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% -%% EXPORTED FUNCTIONS %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% -%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% --spec assert_identity (any(), any()) -> 'unimplemented'. -assert_identity (_PlayerID, _SessionToken) -> unimplemented. - --spec lock_queries (any()) -> 'unimplemented'. -lock_queries (_PlayerID) -> unimplemented. - --spec unlock_queries (any()) -> 'unimplemented'. -unlock_queries (_PlayerID) -> unimplemented. diff --git a/src/battle/query/btl_character_turn.erl b/src/battle/query/btl_character_turn.erl index ed6ca86..a65dc91 100644 --- a/src/battle/query/btl_character_turn.erl +++ b/src/battle/query/btl_character_turn.erl @@ -30,8 +30,8 @@ authenticate_user (Request) -> PlayerID = btl_character_turn_request:get_player_id(Request), SessionToken = btl_character_turn_request:get_session_token(Request), - btl_security:assert_identity(PlayerID, SessionToken), - btl_security:lock_queries(PlayerID), + shr_security:assert_identity(PlayerID, SessionToken), + shr_security:lock_queries(PlayerID), ok. @@ -246,7 +246,7 @@ commit_update (Update, Request) -> disconnect_user (Request) -> PlayerID = btl_character_turn_request:get_player_id(Request), - btl_security:unlock_queries(PlayerID), + shr_security:unlock_queries(PlayerID), ok. diff --git a/src/battle/query/btl_load_state.erl b/src/battle/query/btl_load_state.erl deleted file mode 100644 index 2026222..0000000 --- a/src/battle/query/btl_load_state.erl +++ /dev/null @@ -1,159 +0,0 @@ --module(btl_load_state). - -%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% -%% TYPES %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% -%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% --include("../../../include/yaws_api.hrl"). - --record -( - input, - { - player_id :: btl_player:id(), - session_token :: binary(), - battle_id :: binary() - } -). - --record -( - query_state, - { - battle :: btl_battle:type() - } -). - --type input() :: #input{}. --type query_state() :: #query_state{}. - -%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% -%% EXPORTS %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% -%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% --export([out/1]). - -%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% -%% LOCAL FUNCTIONS %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% -%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% --spec parse_input (binary()) -> input(). -parse_input (Req) -> - JSONReqMap = jiffy:decode(Req, [return_maps]), - PlayerID = maps:get(<<"pid">>, JSONReqMap), - SessionToken = maps:get(<<"stk">>, JSONReqMap), - BattleID = maps:get(<<"bid">>, JSONReqMap), - - #input - { - player_id = PlayerID, - session_token = SessionToken, - battle_id = BattleID - }. - --spec fetch_data (input()) -> query_state(). -fetch_data (Input) -> - PlayerID = Input#input.player_id, - BattleID = Input#input.battle_id, - - Battle = shr_timed_cache:fetch(battle_db, PlayerID, BattleID), - - #query_state - { - battle = Battle - }. - --spec generate_reply(query_state(), input()) -> binary(). -generate_reply (QueryState, Input) -> - PlayerID = Input#input.player_id, - Battle = QueryState#query_state.battle, - Players = btl_battle:get_players(Battle), - - PlayerIX = - shr_array_util:first - ( - fun (Player) -> - (btl_player:get_id(Player) == PlayerID) - end, - Players - ), - - true = (PlayerIX >= 0), - - SetTimeline = - btl_set_timeline:generate - ( - btl_battle:get_encoded_last_turns_effects(Battle) - ), - - SetMap = btl_set_map:generate(btl_battle:get_battlemap(Battle)), - - AddCharList = - array:sparse_to_list - ( - array:map - ( - fun (IX, Character) -> - btl_add_char:generate(IX, Character, PlayerIX) - end, - btl_battle:get_characters(Battle) - ) - ), - - AddWeaponList = - lists:map - ( - fun (WeaponID) -> - btl_add_weapon:generate(shr_weapon:from_id(WeaponID)) - end, - btl_battle:get_used_weapon_ids(Battle) - ), - - AddArmorList = - lists:map - ( - fun (ArmorID) -> - btl_add_armor:generate(shr_armor:from_id(ArmorID)) - end, - btl_battle:get_used_armor_ids(Battle) - ), - - AddTileList = - lists:map - ( - fun (TileID) -> - btl_add_tile:generate(btl_tile:from_id(TileID)) - end, - btl_battle:get_used_tile_ids(Battle) - ), - - OutputList = - ( - AddTileList - ++ [SetTimeline, SetMap | AddWeaponList] - ++ AddArmorList - ++ AddCharList - ), - Output = jiffy:encode(OutputList), - - Output. - --spec handle (binary()) -> binary(). -handle (Req) -> - Input = parse_input(Req), - btl_security:assert_identity - ( - Input#input.player_id, - Input#input.session_token - ), - btl_security:lock_queries(Input#input.player_id), - QueryState = fetch_data(Input), - btl_security:unlock_queries(Input#input.player_id), - generate_reply(QueryState, Input). - -%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% -%% EXPORTED FUNCTIONS %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% -%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% -out(A) -> - { - content, - "application/json; charset=UTF-8", - handle(A#arg.clidata) - }. diff --git a/src/battle/reply/btl_set_map.erl b/src/battle/reply/btl_set_map.erl index 37c6331..c520930 100644 --- a/src/battle/reply/btl_set_map.erl +++ b/src/battle/reply/btl_set_map.erl @@ -16,16 +16,16 @@ %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% %% EXPORTED FUNCTIONS %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% --spec generate (btl_battlemap:type()) -> {list(any())}. +-spec generate (btl_map:type()) -> {list(any())}. generate (Battlemap) -> { [ {<<"msg">>, <<"set_map">>}, - {<<"w">>, btl_battlemap:get_width(Battlemap)}, - {<<"h">>, btl_battlemap:get_height(Battlemap)}, + {<<"w">>, btl_map:get_width(Battlemap)}, + {<<"h">>, btl_map:get_height(Battlemap)}, { <<"t">>, - array:sparse_to_list(btl_battlemap:get_tile_class_ids(Battlemap)) + array:sparse_to_list(btl_map:get_tile_class_ids(Battlemap)) } ] }. diff --git a/src/battle/struct/btl_battle.erl b/src/battle/struct/btl_battle.erl index dd68b42..97742aa 100644 --- a/src/battle/struct/btl_battle.erl +++ b/src/battle/struct/btl_battle.erl @@ -13,7 +13,7 @@ used_armor_ids :: list(shr_armor:id()), used_weapon_ids :: list(shr_weapon:id()), used_tile_ids :: list(btl_tile:id()), - battlemap :: btl_battlemap:type(), + map :: btl_map:type(), characters :: array:array(btl_character:type()), players :: array:array(btl_player:type()), current_player_turn :: btl_player_turn:type() @@ -35,7 +35,7 @@ get_used_weapon_ids/1, get_used_armor_ids/1, get_used_tile_ids/1, - get_battlemap/1, + get_map/1, get_characters/1, get_character/2, get_players/1, @@ -43,7 +43,7 @@ get_current_player_turn/1, get_encoded_last_turns_effects/1, - set_battlemap/2, + set_map/2, set_characters/2, set_character/3, set_players/2, @@ -95,8 +95,8 @@ get_used_armor_ids (Battle) -> Battle#battle.used_armor_ids. -spec get_used_tile_ids (type()) -> list(btl_tile:id()). get_used_tile_ids (Battle) -> Battle#battle.used_tile_ids. --spec get_battlemap (type()) -> btl_battlemap:type(). -get_battlemap (Battle) -> Battle#battle.battlemap. +-spec get_map (type()) -> btl_map:type(). +get_map (Battle) -> Battle#battle.map. -spec get_characters (type()) -> array:array(btl_character:type()). get_characters (Battle) -> Battle#battle.characters. @@ -127,11 +127,11 @@ get_encoded_last_turns_effects (Battle) -> StartingPoint = ((CurrentPlayerIX + 1) rem PlayersCount), get_all_timelines([], StartingPoint, CurrentPlayerIX, PlayersCount, Players). --spec set_battlemap (btl_battlemap:type(), type()) -> type(). -set_battlemap (Battlemap, Battle) -> +-spec set_map (btl_map:type(), type()) -> type(). +set_map (Battlemap, Battle) -> Battle#battle { - battlemap = Battlemap + map = Battlemap }. -spec set_characters (array:array(btl_character:type()), type()) -> type(). @@ -185,7 +185,7 @@ set_current_player_turn (PlayerTurn, Battle) -> ( id(), list(btl_player:type()), - btl_battlemap:type(), + btl_map:type(), list(btl_character:type()), list(shr_weapon:id()), list(shr_armor:id()), @@ -199,7 +199,7 @@ new (ID, PlayersAsList, Battlemap, CharactersAsList, UWIDs, UAIDs, UTIDs) -> used_weapon_ids = UWIDs, used_armor_ids = UAIDs, used_tile_ids = UTIDs, - battlemap = Battlemap, + map = Battlemap, characters = array:from_list(CharactersAsList), players = array:from_list(PlayersAsList), current_player_turn = btl_player_turn:new(0, 0) diff --git a/src/battle/struct/btl_battlemap.erl b/src/battle/struct/btl_battlemap.erl deleted file mode 100644 index 886e2a9..0000000 --- a/src/battle/struct/btl_battlemap.erl +++ /dev/null @@ -1,100 +0,0 @@ --module(btl_battlemap). - -%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% -%% TYPES %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% -%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% --type id() :: binary(). - --record -( - battlemap, - { - id :: id(), - width :: integer(), - height :: integer(), - tile_class_ids :: array:array(btl_tile:class_id()) - } -). - --opaque type() :: #battlemap{}. - --export_type([type/0, id/0]). - -%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% -%% EXPORTS %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% -%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% -%%%% Accessors --export -( - [ - get_id/1, - get_width/1, - get_height/1, - get_tile_class_ids/1, - get_tile_class_id/2 - ] -). - --export -( - [ - from_list/4 - ] -). - -%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% -%% LOCAL FUNCTIONS %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% -%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% --spec location_to_array_index - ( - non_neg_integer(), - btl_location:type() - ) - -> ('error' | non_neg_integer()). -location_to_array_index (ArrayWidth, {X, Y}) -> - if - (X < 0) -> error; - (Y < 0) -> error; - (X >= ArrayWidth) -> error; - true -> ((Y * ArrayWidth) + X) - end. - -%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% -%% EXPORTED FUNCTIONS %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% -%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% -%%%% Accessors --spec get_id (type()) -> id(). -get_id (Battlemap) -> Battlemap#battlemap.id. - --spec get_width (type()) -> integer(). -get_width (Battlemap) -> Battlemap#battlemap.width. - --spec get_height (type()) -> integer(). -get_height (Battlemap) -> Battlemap#battlemap.height. - --spec get_tile_class_ids (type()) -> array:array(btl_tile:class_id()). -get_tile_class_ids (Battlemap) -> Battlemap#battlemap.tile_class_ids. - --spec get_tile_class_id (btl_location:type(), type()) -> btl_tile:class_id(). -get_tile_class_id (Location, Battlemap) -> - TileIX = location_to_array_index(Battlemap#battlemap.width, Location), - array:get(TileIX, Battlemap#battlemap.tile_class_ids). - --spec from_list - ( - non_neg_integer(), - non_neg_integer(), - non_neg_integer(), - list(non_neg_integer()) - ) - -> type(). -from_list (ID, Width, Height, List) -> - TileClassIDs = lists:map(fun btl_tile:class_id_from_int/1, List), - - #battlemap - { - id = list_to_binary(integer_to_list(ID)), - width = Width, - height = Height, - tile_class_ids = array:from_list(TileClassIDs) - }. diff --git a/src/map/io/map_security.erl b/src/map/io/map_security.erl deleted file mode 100644 index cf6bb9b..0000000 --- a/src/map/io/map_security.erl +++ /dev/null @@ -1,33 +0,0 @@ --module(btl_security). - -%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% -%% TYPES %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% -%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% - -%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% -%% EXPORTS %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% -%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% --export -( - [ - assert_identity/2, - lock_queries/1, - unlock_queries/1 - ] -). - -%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% -%% LOCAL FUNCTIONS %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% -%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% - -%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% -%% EXPORTED FUNCTIONS %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% -%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% --spec assert_identity (any(), any()) -> 'unimplemented'. -assert_identity (_PlayerID, _SessionToken) -> unimplemented. - --spec lock_queries (any()) -> 'unimplemented'. -lock_queries (_PlayerID) -> unimplemented. - --spec unlock_queries (any()) -> 'unimplemented'. -unlock_queries (_PlayerID) -> unimplemented. diff --git a/src/map/query/map_load_state.erl b/src/map/query/map_load_state.erl deleted file mode 100644 index 2026222..0000000 --- a/src/map/query/map_load_state.erl +++ /dev/null @@ -1,159 +0,0 @@ --module(btl_load_state). - -%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% -%% TYPES %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% -%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% --include("../../../include/yaws_api.hrl"). - --record -( - input, - { - player_id :: btl_player:id(), - session_token :: binary(), - battle_id :: binary() - } -). - --record -( - query_state, - { - battle :: btl_battle:type() - } -). - --type input() :: #input{}. --type query_state() :: #query_state{}. - -%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% -%% EXPORTS %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% -%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% --export([out/1]). - -%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% -%% LOCAL FUNCTIONS %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% -%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% --spec parse_input (binary()) -> input(). -parse_input (Req) -> - JSONReqMap = jiffy:decode(Req, [return_maps]), - PlayerID = maps:get(<<"pid">>, JSONReqMap), - SessionToken = maps:get(<<"stk">>, JSONReqMap), - BattleID = maps:get(<<"bid">>, JSONReqMap), - - #input - { - player_id = PlayerID, - session_token = SessionToken, - battle_id = BattleID - }. - --spec fetch_data (input()) -> query_state(). -fetch_data (Input) -> - PlayerID = Input#input.player_id, - BattleID = Input#input.battle_id, - - Battle = shr_timed_cache:fetch(battle_db, PlayerID, BattleID), - - #query_state - { - battle = Battle - }. - --spec generate_reply(query_state(), input()) -> binary(). -generate_reply (QueryState, Input) -> - PlayerID = Input#input.player_id, - Battle = QueryState#query_state.battle, - Players = btl_battle:get_players(Battle), - - PlayerIX = - shr_array_util:first - ( - fun (Player) -> - (btl_player:get_id(Player) == PlayerID) - end, - Players - ), - - true = (PlayerIX >= 0), - - SetTimeline = - btl_set_timeline:generate - ( - btl_battle:get_encoded_last_turns_effects(Battle) - ), - - SetMap = btl_set_map:generate(btl_battle:get_battlemap(Battle)), - - AddCharList = - array:sparse_to_list - ( - array:map - ( - fun (IX, Character) -> - btl_add_char:generate(IX, Character, PlayerIX) - end, - btl_battle:get_characters(Battle) - ) - ), - - AddWeaponList = - lists:map - ( - fun (WeaponID) -> - btl_add_weapon:generate(shr_weapon:from_id(WeaponID)) - end, - btl_battle:get_used_weapon_ids(Battle) - ), - - AddArmorList = - lists:map - ( - fun (ArmorID) -> - btl_add_armor:generate(shr_armor:from_id(ArmorID)) - end, - btl_battle:get_used_armor_ids(Battle) - ), - - AddTileList = - lists:map - ( - fun (TileID) -> - btl_add_tile:generate(btl_tile:from_id(TileID)) - end, - btl_battle:get_used_tile_ids(Battle) - ), - - OutputList = - ( - AddTileList - ++ [SetTimeline, SetMap | AddWeaponList] - ++ AddArmorList - ++ AddCharList - ), - Output = jiffy:encode(OutputList), - - Output. - --spec handle (binary()) -> binary(). -handle (Req) -> - Input = parse_input(Req), - btl_security:assert_identity - ( - Input#input.player_id, - Input#input.session_token - ), - btl_security:lock_queries(Input#input.player_id), - QueryState = fetch_data(Input), - btl_security:unlock_queries(Input#input.player_id), - generate_reply(QueryState, Input). - -%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% -%% EXPORTED FUNCTIONS %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% -%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% -out(A) -> - { - content, - "application/json; charset=UTF-8", - handle(A#arg.clidata) - }. |