summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
-rw-r--r--src/battle/btl_handler.erl12
-rw-r--r--src/battle/btl_shim.erl279
-rw-r--r--src/battle/reply/btl_add_char.erl3
-rw-r--r--src/battle/struct/btl_character.erl18
-rw-r--r--src/login/query/lgn_sign_up.erl49
-rw-r--r--src/query/qry_handler.erl1
-rw-r--r--src/query/qry_shim.erl21
-rw-r--r--src/shared/struct/shr_portrait.erl.m42
-rw-r--r--src/special/spe_battle.erl2
-rw-r--r--src/special/spe_player.erl70
10 files changed, 104 insertions, 353 deletions
diff --git a/src/battle/btl_handler.erl b/src/battle/btl_handler.erl
index 0bcd40a..750c1f2 100644
--- a/src/battle/btl_handler.erl
+++ b/src/battle/btl_handler.erl
@@ -18,17 +18,5 @@
%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
-spec start (pid()) -> 'ok'.
start (TimedCachesManagerPid) ->
- case shr_database:fetch(battle_db, <<"0">>, admin) of
- {ok, _} -> ok;
- not_found ->
- shr_database:insert_at
- (
- battle_db,
- <<"0">>,
- any,
- any,
- btl_shim:generate_random_battle()
- )
- end,
shr_timed_caches_manager:new_cache(TimedCachesManagerPid, battle_db, none),
ok.
diff --git a/src/battle/btl_shim.erl b/src/battle/btl_shim.erl
deleted file mode 100644
index aeb4b10..0000000
--- a/src/battle/btl_shim.erl
+++ /dev/null
@@ -1,279 +0,0 @@
--module(btl_shim).
-
-%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
-%% TYPES %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
-%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
-
-%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
-%% EXPORTS %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
-%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
--export([generate_random_battle/0]).
-
-%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
-%% LOCAL FUNCTIONS %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
-%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
--spec generate_random_glyph_board_omnimods () -> shr_omnimods:type().
-generate_random_glyph_board_omnimods () ->
- % TODO [DEBUG: battle][HIGH]: unimplemented.
- shr_omnimods:new([],[],[],[]).
-
--spec generate_random_characters
- (
- non_neg_integer(),
- non_neg_integer(),
- non_neg_integer(),
- non_neg_integer(),
- btl_map:type(),
- list(btl_location:type()),
- list(btl_character:type())
- )
- -> list(btl_character:type()).
-generate_random_characters
-(
- 0,
- 0,
- _CharactersPerPlayer,
- _TotalCharacterCount,
- _Map,
- _ForbiddenLocations,
- Result
-) ->
- Result;
-generate_random_characters
-(
- MaxPlayerIX,
- 0,
- CharactersPerPlayer,
- TotalCharacterCount,
- Map,
- ForbiddenLocations,
- Result
-) ->
- generate_random_characters
- (
- (MaxPlayerIX - 1),
- CharactersPerPlayer,
- CharactersPerPlayer,
- TotalCharacterCount,
- Map,
- ForbiddenLocations,
- Result
- );
-generate_random_characters
-(
- MaxPlayerIX,
- PlayerCharacterCount,
- CharactersPerPlayer,
- TotalCharacterCount,
- Map,
- ForbiddenLocations,
- Result
-) ->
- NewCharacter =
- btl_character:random
- (
- TotalCharacterCount,
- MaxPlayerIX,
- generate_random_glyph_board_omnimods(),
- Map,
- ForbiddenLocations
- ),
- Character =
- case MaxPlayerIX of
- 0 -> btl_character:set_is_active(true, NewCharacter);
- _ -> NewCharacter
- end,
-
- generate_random_characters
- (
- MaxPlayerIX,
- (PlayerCharacterCount - 1),
- CharactersPerPlayer,
- (TotalCharacterCount + 1),
- Map,
- [btl_character:get_location(Character)|ForbiddenLocations],
- [Character|Result]
- ).
-
--spec new_demo_map () -> list(list(non_neg_integer())).
-new_demo_map () ->
- [[4,0], [4,0], [4,0], [4,0], [4,0], [4,0], [4,0], [4,0], [4,0], [4,0],
- [4,0], [4,0], [4,0], [4,0], [4,0], [4,0], [4,0], [4,0], [4,0], [4,0], [4,0],
- [4,0], [4,0], [4,0], [4,0], [4,0], [4,0], [4,0], [4,0], [4,0], [4,0], [4,0],
- [4,0], [4,0], [4,0], [1,0,4,34], [1,0,4,36], [4,0], [1,0,4,18], [4,0],
- [4,0], [2,0,4,34], [2,0,4,36], [4,0], [4,0], [4,0], [4,0], [4,0], [4,0],
- [4,0], [4,0], [4,0], [4,0], [4,0], [4,0], [4,0], [4,0], [4,0], [4,0], [4,0],
- [4,0], [4,0], [4,0], [4,0], [4,0], [4,0], [4,0], [1,0,4,16], [1,0,4,45],
- [1,0,4,40], [1,0,4,41], [1,0,2,12,4,40], [1,0,2,5,4,40], [2,0,4,43],
- [2,0,4,45], [2,0,4,36], [4,0], [2,0,4,34], [2,0,4,40], [2,0,4,40],
- [2,0,4,40], [1,0,2,3,4,36], [4,0], [4,0], [4,0], [4,0], [4,0], [4,0], [4,0],
- [4,0], [4,0], [4,0], [1,0,4,18], [4,0], [4,0], [4,0], [4,0], [4,0],
- [1,0,4,34], [1,0,4,43], [1,0], [1,0], [1,0,2,12], [1,0,2,5], [2,0], [2,0],
- [2,0], [2,0,4,45], [2,0,4,40], [2,0,4,43], [2,0], [2,0], [2,0], [2,0,4,45],
- [2,0,4,40], [1,0,2,16,4,40], [1,0,4,40], [1,0,4,40], [1,0,4,36], [4,0],
- [4,0], [4,0], [1,0,4,34], [1,0,4,40], [1,0,4,29], [4,0], [4,0], [4,0],
- [4,0], [1,0,4,34], [1,0,4,43], [1,0], [1,0], [1,0,2,12], [1,0,2,5], [2,0],
- [2,0], [2,0], [2,0], [2,0], [2,0], [2,0], [2,0], [2,0], [2,0], [2,0],
- [1,0,2,34], [1,0,2,43], [1,0], [1,0], [1,0,4,45], [1,0,4,40],
- [1,0,2,12,4,40], [1,0,2,9,4,40], [1,0,2,9,4,43], [1,0,2,9], [1,0,2,10,4,45],
- [1,0,2,9,4,39], [1,0,2,11,4,21], [4,0], [4,0], [1,0,4,3], [1,0,4,11], [1,0],
- [1,0,2,12], [1,0,2,5], [2,0], [2,0], [2,0], [2,0], [2,0], [2,0], [2,0],
- [2,0], [2,0], [2,0], [3,0,2,34], [1,0,2,40], [1,0,2,43], [1,0], [1,0],
- [1,0], [1,0], [1,0,2,12], [1,0,2,5], [2,0], [2,0], [2,0], [1,0,2,23],
- [2,0,4,30], [4,0], [4,0], [4,0], [4,0], [1,0,4,3], [1,0,4,11], [1,0,2,30],
- [2,0], [2,0], [2,0], [2,0], [2,0], [2,0], [2,0], [2,0], [2,0], [2,0],
- [3,0,2,34], [3,0,2,43], [1,0], [1,0], [1,0], [1,0], [1,0], [1,0],
- [1,0,2,30], [2,0], [2,0], [2,0], [2,0], [2,0], [2,0,4,30], [4,0], [4,0],
- [4,0], [4,0], [4,0], [1,0,4,16], [1,0,2,30], [2,0], [2,0], [2,0], [2,0],
- [2,0], [2,0], [2,0], [2,0], [3,0,2,34], [3,0,2,40], [3,0,2,43], [3,0],
- [3,0], [1,0], [1,0], [1,0], [1,0], [1,0], [1,0,2,31], [1,0,2,21], [2,0],
- [2,0], [2,0], [2,0], [2,0,4,30], [4,0], [4,0], [4,0], [4,0], [4,0],
- [1,0,4,16], [1,0,2,45], [1,0,2,36], [2,0], [2,0], [2,0], [2,0], [2,0],
- [2,0], [3,0,2,34], [3,0,2,43], [3,0], [3,0], [3,0], [1,0], [1,0], [1,0],
- [1,0], [1,0], [1,0], [1,0,2,30], [2,0], [2,0], [2,0], [2,0], [2,0,4,12],
- [1,0,2,34,4,8], [1,0,2,43,4,21], [4,0], [4,0], [4,0], [1,0,4,34],
- [1,0,4,43], [1,0], [1,0,2,45], [1,0,2,36], [2,0], [2,0], [2,0], [2,0],
- [3,0,2,34], [3,0,2,43], [3,0], [3,0], [3,0], [3,0], [1,0], [1,0], [1,0],
- [1,0], [1,0,4,12], [1,0,4,9], [1,0,2,30,4,11], [2,0], [1,0,2,34],
- [1,0,2,40,4,12], [1,0,2,40,4,9], [1,0,2,40,4,27], [4,0], [4,0], [4,0],
- [4,0], [4,0], [1,0,4,3], [1,0,4,11], [1,0], [1,0], [1,0,2,45], [1,0,2,36],
- [2,0], [2,0], [3,0,2,34], [3,0,2,43], [3,0], [3,0], [3,0], [3,0], [1,0],
- [1,0], [1,0], [1,0,4,12], [1,0,4,9], [1,0,4,5], [4,0], [1,0,2,45,4,3],
- [1,0,2,40,4,9], [1,0,2,43,4,9], [1,0,4,5], [4,0], [1,0,4,23], [4,0], [4,0],
- [4,0], [4,0], [4,0], [4,0], [1,0,4,16], [1,0], [1,0], [1,0], [1,0,2,45],
- [1,0,2,40], [1,0,2,40], [3,0,2,43], [3,0], [3,0], [3,0], [1,0], [1,0],
- [1,0], [1,0], [1,0], [1,0,4,30], [4,0], [4,0], [4,0], [4,0], [4,0], [4,0],
- [4,0], [4,0], [4,0], [4,0], [4,0], [4,0], [4,0], [4,0], [1,0,4,34],
- [1,0,4,43], [1,0], [1,0], [1,0], [1,0], [1,0,2,12], [1,0,2,9], [1,0,2,11],
- [1,0], [1,0], [3,0,2,12], [1,0,2,9], [1,0,2,11], [1,0], [1,0], [1,0],
- [1,0,4,45], [1,0,4,40], [1,0,4,36], [4,0], [4,0], [4,0], [4,0], [4,0],
- [4,0], [4,0], [4,0], [4,0], [4,0], [4,0], [4,0], [1,0,4,3], [1,0,4,11],
- [1,0], [1,0], [1,0], [1,0], [1,0,2,30], [2,0], [1,0,2,3], [1,0,2,10],
- [1,0,2,9], [1,0,2,5], [2,0], [1,0,2,3], [1,0,2,11], [1,0], [1,0], [1,0],
- [1,0], [1,0,4,45], [1,0,4,40], [1,0,4,40], [1,0,4,36], [4,0], [2,0,4,34],
- [2,0,4,40], [2,0,4,36], [4,0], [1,0,4,18], [4,0], [4,0], [4,0], [4,0],
- [1,0,4,16], [1,0,2,12], [1,0,2,9], [1,0,2,9], [1,0,2,9], [1,0,2,5], [2,0],
- [2,0], [1,0,2,23], [2,0], [2,0], [2,0], [2,0], [1,0,2,16], [1,0], [1,0],
- [1,0], [1,0], [1,0], [1,0], [1,0], [1,0,2,12,4,45], [1,0,2,5,4,40],
- [2,0,4,43], [2,0], [2,0,4,45], [1,0,2,16,4,39], [1,0,4,4], [4,0], [4,0],
- [4,0], [4,0], [1,0,4,3], [1,0,2,30,4,11], [2,0], [2,0], [2,0], [2,0], [2,0],
- [2,0], [2,0], [2,0], [2,0], [2,0], [2,0], [1,0,2,16], [1,0], [3,0],
- [1,0,4,12], [1,0,4,9], [1,0,4,11], [1,0], [1,0], [1,0,2,30], [2,0], [2,0],
- [2,0], [1,0,2,34], [1,0,2,43,4,30], [4,0], [4,0], [4,0], [4,0], [4,0],
- [4,0], [1,0,2,30,4,16], [2,0], [2,0], [2,0], [1,0,2,34], [1,0,2,36], [2,0],
- [1,0,2,18], [2,0], [2,0], [2,0], [1,0,2,34], [1,0,2,43], [3,0], [3,0,4,12],
- [1,0,4,5], [4,0], [1,0,4,3], [1,0,4,9], [1,0,4,11], [1,0,2,30], [2,0],
- [2,0], [2,0], [1,0,2,3], [1,0,2,9,4,30], [4,0], [4,0], [4,0], [4,0], [4,0],
- [1,0,4,34], [1,0,2,45,4,43], [1,0,2,36], [2,0], [1,0,2,34], [1,0,2,43],
- [1,0,2,45], [1,0,2,40], [1,0,2,29], [2,0], [3,0,2,18], [2,0], [3,0,2,16],
- [3,0], [3,0], [3,0,4,30], [4,0], [4,0], [4,0], [4,0], [1,0,4,16],
- [1,0,2,30], [2,0], [2,0], [2,0], [2,0], [2,0,4,31], [2,0,4,21], [4,0],
- [4,0], [4,0], [4,0], [1,0,4,16], [1,0], [1,0,2,45], [1,0,2,40], [1,0,2,43],
- [1,0,4,12], [1,0,4,9], [1,0,4,9], [1,0,2,45,4,11], [1,0,2,40], [3,0,2,41],
- [3,0,2,40], [3,0,2,43], [3,0], [3,0], [3,0,4,45], [1,0,4,36], [4,0], [4,0],
- [1,0,4,34], [1,0,4,43], [1,0,2,45], [1,0,2,36], [2,0], [2,0], [2,0,4,12],
- [2,0,4,5], [4,0], [4,0], [4,0], [4,0], [1,0,4,22], [1,0,4,17], [1,0], [1,0],
- [1,0,4,12], [1,0,4,9], [1,0,4,5], [4,0], [4,0], [1,0,4,16], [3,0], [3,0],
- [3,0], [3,0], [3,0], [3,0], [3,0,2,12], [1,0,2,9,4,45], [1,0,2,9,4,40],
- [1,0,2,9,4,40], [1,0,2,11,4,43], [1,0], [1,0], [1,0,2,45], [1,0,2,36],
- [2,0,4,12], [2,0,4,5], [4,0], [4,0], [4,0], [4,0], [4,0], [4,0], [1,0,4,16],
- [1,0], [1,0], [1,0,4,30], [4,0], [4,0], [4,0], [4,0], [1,0,4,16], [3,0],
- [3,0], [3,0], [3,0,2,12], [3,0,2,9], [3,0,2,9], [3,0,2,5], [2,0], [2,0],
- [2,0], [1,0,2,16], [1,0], [1,0], [1,0], [1,0,2,45], [1,0,2,40,4,30], [4,0],
- [4,0], [4,0], [4,0], [4,0], [4,0], [4,0], [1,0,4,16], [1,0], [1,0],
- [1,0,4,30], [4,0], [4,0], [4,0], [4,0], [1,0,4,16], [1,0], [3,0,2,12],
- [3,0,2,9], [3,0,2,5], [2,0], [2,0], [2,0], [2,0], [2,0], [2,0], [1,0,2,16],
- [1,0], [1,0], [1,0], [1,0], [1,0,4,31], [1,0,4,21], [4,0], [4,0], [4,0],
- [4,0], [4,0], [4,0], [1,0,4,16], [1,0], [1,0], [1,0,4,30], [4,0], [4,0],
- [4,0], [4,0], [1,0,4,16], [1,0], [1,0,2,30], [2,0], [2,0], [2,0], [2,0],
- [2,0], [2,0], [2,0], [1,0,2,34], [1,0,2,43], [1,0], [1,0], [1,0],
- [1,0,4,12], [1,0,4,5], [4,0], [4,0], [4,0], [4,0], [4,0], [4,0], [4,0],
- [1,0,4,16], [1,0], [1,0], [1,0,4,30], [4,0], [4,0], [1,0,4,34], [1,0,4,40],
- [1,0,4,43], [1,0], [1,0,2,30], [2,0], [2,0], [2,0], [2,0], [2,0],
- [1,0,2,34], [1,0,2,40], [1,0,2,43], [1,0], [1,0], [1,0], [1,0], [1,0,4,30],
- [4,0], [4,0], [4,0], [4,0], [4,0], [4,0], [4,0], [4,0], [1,0,4,16], [1,0],
- [1,0], [1,0,4,45], [1,0,4,40], [1,0,4,40], [1,0,2,12,4,43], [1,0,2,9],
- [1,0,2,9], [1,0,2,9], [1,0,2,44], [1,0,2,40], [1,0,2,40], [1,0,2,40],
- [1,0,2,40], [1,0,2,40], [1,0,2,43], [1,0], [1,0], [1,0], [1,0], [1,0],
- [1,0,4,12], [1,0,4,5], [4,0], [4,0], [4,0], [4,0], [4,0], [4,0], [4,0],
- [1,0,4,34], [1,0,4,43], [1,0], [1,0], [1,0,2,12], [1,0,2,9], [1,0,2,9],
- [1,0,2,5], [2,0], [2,0], [2,0], [1,0,2,3], [1,0,2,11], [1,0], [1,0], [1,0],
- [1,0], [1,0], [1,0], [1,0], [1,0], [1,0], [1,0,4,12], [1,0,4,5], [4,0],
- [4,0], [4,0], [4,0], [4,0], [4,0], [4,0], [1,0,4,33], [1,0,4,7], [1,0,4,9],
- [1,0,4,11], [1,0], [1,0,2,30], [2,0], [2,0], [2,0], [2,0], [2,0], [2,0],
- [2,0], [1,0,2,16], [1,0], [1,0], [1,0], [1,0], [1,0], [1,0], [1,0], [1,0],
- [1,0], [1,0,4,30], [4,0], [4,0], [4,0], [4,0], [4,0], [4,0], [4,0], [4,0],
- [1,0,4,23], [4,0], [4,0], [1,0,4,16], [1,0], [1,0,2,45], [1,0,2,40],
- [1,0,2,36], [2,0], [2,0], [2,0], [2,0], [2,0], [1,0,2,16], [1,0],
- [1,0,4,12], [1,0,4,9], [1,0,4,11], [1,0], [1,0,4,12], [1,0,4,9], [1,0,4,9],
- [1,0,4,10], [1,0,4,8], [1,0,4,21], [4,0], [4,0], [4,0], [4,0], [4,0], [4,0],
- [4,0], [4,0], [4,0], [4,0], [1,0,4,16], [1,0,4,12], [1,0,4,9], [1,0,4,9],
- [1,0,2,45,4,9], [1,0,2,40,4,11], [1,0,2,36], [2,0], [2,0], [1,0,2,34,4,12],
- [1,0,2,43,4,9], [1,0,4,9], [1,0,4,5], [4,0], [1,0,4,3], [1,0,4,9],
- [1,0,4,5], [4,0], [4,0], [1,0,4,26], [4,0], [4,0], [4,0], [4,0], [4,0],
- [4,0], [4,0], [4,0], [4,0], [4,0], [4,0], [1,0,4,22], [1,0,4,17],
- [1,0,4,30], [4,0], [4,0], [4,0], [1,0,4,16], [1,0,2,45,4,12],
- [1,0,2,40,4,9], [1,0,2,40,4,10], [1,0,2,43,4,5], [4,0], [4,0], [4,0], [4,0],
- [4,0], [4,0], [4,0], [4,0], [4,0], [1,0,4,23], [4,0], [4,0], [4,0], [4,0],
- [4,0], [4,0], [4,0], [4,0], [4,0], [4,0], [4,0], [4,0], [1,0,4,3],
- [1,0,4,5], [4,0], [4,0], [1,0,4,22], [1,0,4,7], [1,0,4,5], [4,0],
- [1,0,4,23], [4,0], [4,0], [4,0], [4,0], [4,0], [4,0], [4,0], [4,0], [4,0],
- [4,0], [4,0], [4,0], [4,0], [4,0], [4,0], [4,0], [4,0], [4,0], [4,0], [4,0],
- [4,0], [4,0], [4,0], [4,0], [4,0], [4,0], [4,0], [4,0], [4,0], [4,0], [4,0],
- [4,0], [4,0], [4,0], [4,0], [4,0], [4,0], [4,0], [4,0], [4,0], [4,0], [4,0],
- [4,0], [4,0], [4,0], [4,0], [4,0], [4,0], [4,0], [4,0], [4,0]].
-
-%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
-%% EXPORTED FUNCTIONS %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
-%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
--spec generate_random_battle () -> btl_battle:type().
-generate_random_battle () ->
- %MapWidth = 32, % shr_roll:between(16, 32),
- %MapHeight = 32, %shr_roll:between(16, 32),
- %Map = btl_map:random(0, MapWidth, MapHeight),
- Map = btl_map:from_list(32, 32, new_demo_map()),
- Characters = generate_random_characters(1, 8, 8, 0, Map, [], []),
- PlayersAsList = [btl_player:new(0, 8, <<"0">>), btl_player:new(1, 0, <<"1">>)],
-
- {UsedWeaponIDs, UsedArmorIDs} =
- lists:foldl
- (
- fun (Character, {UWIDs, UAIDs}) ->
- {MWpID, SWpID} = btl_character:get_weapon_ids(Character),
- AID = btl_character:get_armor_id(Character),
- {
- sets:add_element(MWpID, sets:add_element(SWpID, UWIDs)),
- sets:add_element(AID, UAIDs)
- }
- end,
- {sets:new(), sets:new()},
- Characters
- ),
-
- UsedTileIDs =
- array:sparse_foldl
- (
- fun (_IX, TileInstance, CurrentTileIDs) ->
- sets:add_element
- (
- shr_tile:extract_main_class_id(TileInstance),
- CurrentTileIDs
- )
- end,
- sets:new(),
- btl_map:get_tile_instances(Map)
- ),
-
- Battle =
- btl_battle:new
- (
- <<"0">>,
- PlayersAsList,
- Map,
- Characters,
- sets:to_list(UsedWeaponIDs),
- sets:to_list(UsedArmorIDs),
- sets:to_list(UsedTileIDs)
- ),
-
- Battle.
diff --git a/src/battle/reply/btl_add_char.erl b/src/battle/reply/btl_add_char.erl
index a6fb60c..6cd2157 100644
--- a/src/battle/reply/btl_add_char.erl
+++ b/src/battle/reply/btl_add_char.erl
@@ -41,8 +41,7 @@ generate (IX, Character, PlayerIX) ->
{<<"ix">>, IX},
{<<"nam">>, btl_character:get_name(Character)},
{<<"rnk">>, rank_to_string(btl_character:get_rank(Character))},
- {<<"ico">>, btl_character:get_icon(Character)},
- {<<"prt">>, btl_character:get_portrait(Character)},
+ {<<"prt">>, btl_character:get_portrait_id(Character)},
{
<<"hea">>,
btl_character:get_current_health(Character)
diff --git a/src/battle/struct/btl_character.erl b/src/battle/struct/btl_character.erl
index 1b90141..84eecfb 100644
--- a/src/battle/struct/btl_character.erl
+++ b/src/battle/struct/btl_character.erl
@@ -12,8 +12,7 @@
player_ix :: non_neg_integer(),
name :: binary(),
rank :: rank(),
- icon :: binary(),
- portrait :: binary(),
+ portrait_id :: shr_portrait:id(),
weapon_ids :: {shr_weapon:id(), shr_weapon:id()},
armor_id :: shr_armor:id(),
location :: {non_neg_integer(), non_neg_integer()},
@@ -26,7 +25,7 @@
-opaque type() :: #character{}.
--export_type([type/0, rank/0, id/0]).
+-export_type([type/0, rank/0]).
%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
%% EXPORTS %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
@@ -37,7 +36,7 @@
get_player_index/1,
get_name/1,
get_rank/1,
- get_portrait/1,
+ get_portrait_id/1,
get_weapon_ids/1,
get_armor_id/1,
get_location/1,
@@ -67,7 +66,7 @@
-export
(
[
- new/10
+ new/9
]
).
@@ -88,11 +87,8 @@ get_name (Char) -> Char#character.name.
-spec get_rank (type()) -> rank().
get_rank (Char) -> Char#character.rank.
--spec get_icon (type()) -> binary().
-get_icon (Char) -> Char#character.icon.
-
--spec get_portrait (type()) -> binary().
-get_portrait (Char) -> Char#character.portrait.
+-spec get_portrait_id (type()) -> shr_portrait:id().
+get_portrait_id (Char) -> Char#character.portrait_id.
-spec get_armor_id (type()) -> shr_armor:id().
get_armor_id (Char) -> Char#character.armor_id.
@@ -245,7 +241,7 @@ new
player_ix = PlayerIX,
name = Name,
rank = Rank,
- portrait = PortraitID,
+ portrait_id = PortraitID,
weapon_ids = WeaponIDs,
armor_id = ArmorID,
location = Location,
diff --git a/src/login/query/lgn_sign_up.erl b/src/login/query/lgn_sign_up.erl
index 4111597..0632ac1 100644
--- a/src/login/query/lgn_sign_up.erl
+++ b/src/login/query/lgn_sign_up.erl
@@ -54,56 +54,11 @@ register_user (Input) ->
Password = Input#input.password,
Email = Input#input.email,
- UsernameLC = string:lowercase(Username),
- EmailLC = string:lowercase(Email),
-
- shr_janitor:new(login_db, UsernameLC),
- shr_janitor:new(login_db, EmailLC),
-
- ok = shr_database:reserve(login_db, UsernameLC, janitor),
- ok = shr_database:reserve(login_db, EmailLC, janitor),
-
- Player = shr_player:new(<<"">>, Username, Password, Email),
-
- {ok, PlayerID} = shr_database:insert(player_db, janitor, janitor, Player),
-
- shr_janitor:new(player_db, PlayerID),
-
- LoginUpdateQueryOps =
- [
- shr_db_query:set_value(PlayerID),
- shr_db_query:set_read_permission(any),
- shr_db_query:set_write_permission([{user, PlayerID}])
- ],
-
- PlayerUpdateQueryOps =
- [
- shr_db_query:set_field(shr_player:get_id_field(), PlayerID),
- shr_db_query:set_read_permission(any),
- shr_db_query:set_write_permission([{user, PlayerID}])
- ],
-
- ok =
- shr_database:commit
- (
- shr_db_query:new(login_db, UsernameLC, janitor, LoginUpdateQueryOps)
- ),
-
- ok =
- shr_database:commit
- (
- shr_db_query:new(login_db, EmailLC, janitor, LoginUpdateQueryOps)
- ),
-
- ok =
- shr_database:commit
- (
- shr_db_query:new(player_db, PlayerID, janitor, PlayerUpdateQueryOps)
- ),
+ GeneratedPlayer = spe_player:generate(Username, Password, Email),
#query_state
{
- player = shr_player:set_id(PlayerID, Player)
+ player = GeneratedPlayer
}.
-spec generate_reply(query_state()) -> binary().
diff --git a/src/query/qry_handler.erl b/src/query/qry_handler.erl
index deb4e33..8cab69f 100644
--- a/src/query/qry_handler.erl
+++ b/src/query/qry_handler.erl
@@ -24,4 +24,5 @@ start (_YawsParams) ->
ok = btl_handler:start(TimedCachesManagerPid),
ok = map_handler:start(TimedCachesManagerPid),
ok = rst_handler:start(TimedCachesManagerPid),
+ ok = qry_shim:fill_db(),
ok.
diff --git a/src/query/qry_shim.erl b/src/query/qry_shim.erl
new file mode 100644
index 0000000..666f7ec
--- /dev/null
+++ b/src/query/qry_shim.erl
@@ -0,0 +1,21 @@
+-module(qry_shim).
+
+%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
+%% TYPES %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
+%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
+
+%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
+%% EXPORTS %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
+%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
+-export([fill_db/0]).
+
+%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
+%% LOCAL FUNCTIONS %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
+%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
+
+%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
+%% EXPORTED FUNCTIONS %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
+%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
+-spec fill_db () -> 'ok'.
+fill_db () ->
+ ok.
diff --git a/src/shared/struct/shr_portrait.erl.m4 b/src/shared/struct/shr_portrait.erl.m4
index 2ea3ca0..e009527 100644
--- a/src/shared/struct/shr_portrait.erl.m4
+++ b/src/shared/struct/shr_portrait.erl.m4
@@ -66,4 +66,4 @@ get_icon_id (Pt) -> Pt#portrait.icon_id.
m4_include(__MAKEFILE_DATA_DIR/portrait/global.m4.conf)m4_dnl
m4_include(__MAKEFILE_DATA_DIR/portrait/basic.m4d)m4_dnl
from_id(_) ->
- from_id(0).
+ from_id(<<"cat">>).
diff --git a/src/special/spe_battle.erl b/src/special/spe_battle.erl
index 31f844a..4836fd2 100644
--- a/src/special/spe_battle.erl
+++ b/src/special/spe_battle.erl
@@ -48,7 +48,7 @@ get_equipment_ids (Characters) ->
{UsedWeaponIDs, UsedArmorIDs}.
--spec get_tile_ids (array:array(shr_tile:type())) -> sets:set(binary()).
+-spec get_tile_ids (array:array(shr_tile:instance())) -> sets:set(binary()).
get_tile_ids (TileInstances) ->
UsedTileIDs =
array:sparse_foldl
diff --git a/src/special/spe_player.erl b/src/special/spe_player.erl
new file mode 100644
index 0000000..9cf3fea
--- /dev/null
+++ b/src/special/spe_player.erl
@@ -0,0 +1,70 @@
+-module(spe_player).
+
+%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
+%% TYPES %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
+%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
+
+%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
+%% EXPORTS %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
+%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
+-export([generate/3]).
+
+%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
+%% LOCAL FUNCTIONS %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
+%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
+
+%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
+%% EXPORTED FUNCTIONS %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
+%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
+-spec generate (binary(), binary(), binary()) -> shr_player:type().
+generate (Username, Password, Email) ->
+ UsernameLC = string:lowercase(Username),
+ EmailLC = string:lowercase(Email),
+
+ shr_janitor:new(login_db, UsernameLC),
+ shr_janitor:new(login_db, EmailLC),
+
+ ok = shr_database:reserve(login_db, UsernameLC, janitor),
+ ok = shr_database:reserve(login_db, EmailLC, janitor),
+
+ Player = shr_player:new(<<"">>, Username, Password, Email),
+
+ {ok, PlayerID} = shr_database:insert(player_db, janitor, janitor, Player),
+
+ shr_janitor:new(player_db, PlayerID),
+
+ LoginUpdateQueryOps =
+ [
+ shr_db_query:set_value(PlayerID),
+ shr_db_query:set_read_permission(any),
+ shr_db_query:set_write_permission([{user, PlayerID}])
+ ],
+
+ PlayerUpdateQueryOps =
+ [
+ shr_db_query:set_field(shr_player:get_id_field(), PlayerID),
+ shr_db_query:set_read_permission(any),
+ shr_db_query:set_write_permission([{user, PlayerID}])
+ ],
+
+ ok =
+ shr_database:commit
+ (
+ shr_db_query:new(login_db, UsernameLC, janitor, LoginUpdateQueryOps)
+ ),
+
+ ok =
+ shr_database:commit
+ (
+ shr_db_query:new(login_db, EmailLC, janitor, LoginUpdateQueryOps)
+ ),
+
+ ok =
+ shr_database:commit
+ (
+ shr_db_query:new(player_db, PlayerID, janitor, PlayerUpdateQueryOps)
+ ),
+
+ Result = shr_player:set_id(PlayerID, Player),
+
+ Result.