summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
-rw-r--r--src/battlemap.erl (renamed from src/battlemap_battlemap.erl)2
-rw-r--r--src/battlemap_character_turn.erl37
-rw-r--r--src/battlemap_load_state.erl36
-rw-r--r--src/battlemap_node.erl11
-rw-r--r--src/battlemap_shim.erl (renamed from src/shim_battlemap_battlemap.erl)2
-rw-r--r--src/character.erl (renamed from src/battlemap_character.erl)2
-rw-r--r--src/character_shim.erl (renamed from src/shim_battlemap_character.erl)2
-rw-r--r--src/database_shim.erl26
-rw-r--r--src/handler.erl12
-rw-r--r--src/shim_database.erl17
-rw-r--r--src/timed_cache.erl (renamed from src/timed_cache_object.erl)4
-rw-r--r--src/timed_cache_data.hrl6
-rw-r--r--src/timed_caches_manager.erl4
-rw-r--r--www/handler/battlemap/character_turn.yaws32
-rw-r--r--www/handler/battlemap/load_state.yaws40
15 files changed, 122 insertions, 111 deletions
diff --git a/src/battlemap_battlemap.erl b/src/battlemap.erl
index 64cf10d..4366852 100644
--- a/src/battlemap_battlemap.erl
+++ b/src/battlemap.erl
@@ -1,4 +1,4 @@
--module(battlemap_battlemap).
+-module(battlemap).
-export([encode_in_json/1]).
encode_in_json (
diff --git a/src/battlemap_character_turn.erl b/src/battlemap_character_turn.erl
deleted file mode 100644
index bf70823..0000000
--- a/src/battlemap_character_turn.erl
+++ /dev/null
@@ -1,37 +0,0 @@
--module(battlemap_character_turn).
-
--export(
- [
- handle/1
- ]
-).
-
-handle (Req) ->
- io:format("~nReceived~p...", [Req]),
- JSON_Req_Map = jiffy:decode(Req, [return_maps]),
- UserToken = maps:get(<<"user_token">>, JSON_Req_Map),
- io:format("~nCharacter Turn for ~p...", [UserToken]),
-%% ok = users_manager:ping(UserToken),
- jiffy:encode(
- {
- [
- {<<"types">>, [<<"STATUS">>]},
- {
- <<"data">>,
- [
- jiffy:encode
- (
- {
- [
- {
- <<"status">>,
- <<"OK">>
- }
- ]
- }
- )
- ]
- }
- ]
- }
- ).
diff --git a/src/battlemap_load_state.erl b/src/battlemap_load_state.erl
deleted file mode 100644
index f311946..0000000
--- a/src/battlemap_load_state.erl
+++ /dev/null
@@ -1,36 +0,0 @@
--module(battlemap_load_state).
-
--export(
- [
- handle/1
- ]
-).
-
-handle (Req) ->
- JSONReqMap = jiffy:decode(Req, [return_maps]),
- BattlemapID = maps:get(<<"battlemap_id">>, JSONReqMap),
- io:format("~nLoading Battlemap ~p...~n", [BattlemapID]),
- {Battlemap, CharList} =
- timed_cache_object:fetch(
- battlemaps_db,
- BattlemapID
- ),
-%% ok = users_manager:ping(UserToken),
- jiffy:encode(
- [
- [
- <<"set_map">>,
- battlemap_battlemap:encode_in_json(Battlemap)
- ]
- |
- lists:map(
- fun (Char) ->
- [
- <<"add_char">>,
- battlemap_character:encode_in_json(Char)
- ]
- end,
- CharList
- )
- ]
- ).
diff --git a/src/battlemap_node.erl b/src/battlemap_node.erl
deleted file mode 100644
index cf6b65b..0000000
--- a/src/battlemap_node.erl
+++ /dev/null
@@ -1,11 +0,0 @@
--module(battlemap_node).
--export([start/1]).
-
-start(_YawsParams) ->
- {ok, Pid} = gen_server:start(timed_caches_manager, [], []),
- gen_server:cast(Pid, {add, battlemaps_db, none}),
-%% timed_caches_manager:add_cache([], battlemaps_db, none),
- receive
- after 5000 ->
- [] = ets:lookup(battlemaps_db, <<"00">>)
- end.
diff --git a/src/shim_battlemap_battlemap.erl b/src/battlemap_shim.erl
index a6adc83..37a953b 100644
--- a/src/shim_battlemap_battlemap.erl
+++ b/src/battlemap_shim.erl
@@ -1,4 +1,4 @@
--module(shim_battlemap_battlemap).
+-module(battlemap_shim).
-export(
[
diff --git a/src/battlemap_character.erl b/src/character.erl
index 0e9d0af..aa0d5f0 100644
--- a/src/battlemap_character.erl
+++ b/src/character.erl
@@ -1,4 +1,4 @@
--module(battlemap_character).
+-module(character).
-export([encode_in_json/1]).
encode_in_json (
diff --git a/src/shim_battlemap_character.erl b/src/character_shim.erl
index adea111..7390cc4 100644
--- a/src/shim_battlemap_character.erl
+++ b/src/character_shim.erl
@@ -1,4 +1,4 @@
--module(shim_battlemap_character).
+-module(character_shim).
-export(
[
diff --git a/src/database_shim.erl b/src/database_shim.erl
new file mode 100644
index 0000000..3e88c34
--- /dev/null
+++ b/src/database_shim.erl
@@ -0,0 +1,26 @@
+-module(database_shim).
+-export([fetch/2]).
+
+-include("timed_cache_data.hrl").
+
+fetch(battlemap_db, Object_ID) ->
+ Width = (rand:uniform(54) + 10),
+ Height = (rand:uniform(54) + 10),
+ io:format
+ (
+ "~nGenerating new Battlemap ~p of size (~p, ~p)...~n",
+ [Object_ID, Width, Height]
+ ),
+ Result =
+ #battlemap {
+ id = Object_ID,
+ width = Width,
+ height = Height,
+ content = battlemap_shim:generate(Width, Height)
+ },
+ {ok,
+ {
+ character_shim:generate(Width, Height)
+ }
+ };
+fetch(battlemap_db, Object_ID) ->
diff --git a/src/handler.erl b/src/handler.erl
new file mode 100644
index 0000000..9270aa4
--- /dev/null
+++ b/src/handler.erl
@@ -0,0 +1,12 @@
+-module(handler).
+-export([start/1]).
+
+start(_YawsParams) ->
+ {ok, Pid} = gen_server:start(timed_caches_manager, [], []),
+ gen_server:cast(Pid, {add, battlemap_db, none}),
+ gen_server:cast(Pid, {add, battlemap_instance_db, none}),
+ gen_server:cast(Pid, {add, character_db, none}),
+ gen_server:cast(Pid, {add, character_instance_db, none}),
+ gen_server:cast(Pid, {add, character_turn_db, none}),
+ gen_server:cast(Pid, {add, player_data_db, none}),
+ ok.
diff --git a/src/shim_database.erl b/src/shim_database.erl
deleted file mode 100644
index f1abd8b..0000000
--- a/src/shim_database.erl
+++ /dev/null
@@ -1,17 +0,0 @@
--module(shim_database).
--export([fetch/2]).
-
-fetch(battlemaps_db, Object_ID) ->
- Width = (rand:uniform(54) + 10),
- Height = (rand:uniform(54) + 10),
- io:format
- (
- "~nGenerating new Battlemap ~p of size (~p, ~p)...~n",
- [Object_ID, Width, Height]
- ),
- {ok,
- {
- shim_battlemap_battlemap:generate(Width, Height),
- shim_battlemap_character:generate(Width, Height)
- }
- }.
diff --git a/src/timed_cache_object.erl b/src/timed_cache.erl
index 341d128..70f9896 100644
--- a/src/timed_cache_object.erl
+++ b/src/timed_cache.erl
@@ -1,4 +1,4 @@
--module(timed_cache_object).
+-module(timed_cache).
-behavior(gen_server).
%%%% gen_server exports
@@ -27,7 +27,7 @@
%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
add_to_cache (DB, ObjectID) ->
{ok, TimerPID} = gen_server:start(?MODULE, {DB, ObjectID}, []),
- {ok, Data} = shim_database:fetch(DB, ObjectID),
+ {ok, Data} = database_shim:fetch(DB, ObjectID),
ets:insert(DB, {ObjectID, TimerPID, Data}),
Data.
diff --git a/src/timed_cache_data.hrl b/src/timed_cache_data.hrl
new file mode 100644
index 0000000..b0d7ba6
--- /dev/null
+++ b/src/timed_cache_data.hrl
@@ -0,0 +1,6 @@
+-record(battlemap, {id, width, height, content, instances}).
+-record(battlemap_instance, {id, chars, curr_player, rem_chars, last_turn}).
+-record(character, {id, name, icon, portrait, mov_pts, atk_rg}).
+-record(character_instance, {id, x, y, team}).
+-record(character_turn, {id, path, target}).
+-record(player, {id, battlemaps, characters}).
diff --git a/src/timed_caches_manager.erl b/src/timed_caches_manager.erl
index 4c3c267..019aed9 100644
--- a/src/timed_caches_manager.erl
+++ b/src/timed_caches_manager.erl
@@ -76,7 +76,7 @@ inherit_cache (CacheList, DB, Heir) ->
%%%% gen_server
init (CacheList) ->
io:format("~nStarting Timed Caches Manager..."),
- {ok,CacheList}.
+ {ok, CacheList}.
handle_call ({delete, CacheName}, _Caller, State) ->
{noreply, delete_cache(State, CacheName)};
@@ -135,7 +135,7 @@ add_cache (CacheList, DB, Heir) ->
[DB|CacheList]
end.
-get_timeout(battlemaps_db) ->
+get_timeout(battlemap_db) ->
60000;
get_timeout(_) ->
60000.
diff --git a/www/handler/battlemap/character_turn.yaws b/www/handler/battlemap/character_turn.yaws
index 8b0a229..c42e26b 100644
--- a/www/handler/battlemap/character_turn.yaws
+++ b/www/handler/battlemap/character_turn.yaws
@@ -1,8 +1,38 @@
<erl>
+handle (Req) ->
+ io:format("~nReceived~p...", [Req]),
+ JSON_Req_Map = jiffy:decode(Req, [return_maps]),
+ UserToken = maps:get(<<"user_token">>, JSON_Req_Map),
+ io:format("~nCharacter Turn for ~p...", [UserToken]),
+%% ok = users_manager:ping(UserToken),
+ jiffy:encode(
+ {
+ [
+ {<<"types">>, [<<"STATUS">>]},
+ {
+ <<"data">>,
+ [
+ jiffy:encode
+ (
+ {
+ [
+ {
+ <<"status">>,
+ <<"OK">>
+ }
+ ]
+ }
+ )
+ ]
+ }
+ ]
+ }
+ ).
+
out(A) ->
{
content,
"application/json; charset=UTF-8",
- battlemap_character_turn:handle(A#arg.clidata)
+ handle(A#arg.clidata)
}.
</erl>
diff --git a/www/handler/battlemap/load_state.yaws b/www/handler/battlemap/load_state.yaws
index c778b66..fb7cda6 100644
--- a/www/handler/battlemap/load_state.yaws
+++ b/www/handler/battlemap/load_state.yaws
@@ -1,8 +1,46 @@
<erl>
+-record(input, {battlemap_id}).
+
+parse_input (Req) ->
+ JSONReqMap = jiffy:decode(Req, [return_maps]),
+ #input {
+ battlemap_id = maps:get(<<"battlemap_id">>, JSONReqMap)
+ }.
+
+fetch_battlemap (Input) ->
+ {Battlemap, CharList} =
+ timed_cache:fetch(
+ battlemap_db,
+ Input#input.battlemap_id
+ ),
+
+handle (Req) ->
+ Input = parse_input(Req),
+ io:format("~nLoading Battlemap ~p...~n", [Input#input.battlemap_id]),
+%% ok = users_manager:ping(UserToken),
+ jiffy:encode(
+ [
+ [
+ <<"set_map">>,
+ battlemap:encode_in_json(Battlemap)
+ ]
+ |
+ lists:map(
+ fun (Char) ->
+ [
+ <<"add_char">>,
+ character:encode_in_json(Char)
+ ]
+ end,
+ CharList
+ )
+ ]
+ ).
+
out(A) ->
{
content,
"application/json; charset=UTF-8",
- battlemap_load_state:handle(A#arg.clidata)
+ handle(A#arg.clidata)
}.
</erl>