egs_items_db: Add a function to return an item's description.
This commit is contained in:
parent
6cf2c77823
commit
01daa3c6f2
@ -361,12 +361,7 @@ event({hits, Hits}, State) ->
|
|||||||
events(Hits, State);
|
events(Hits, State);
|
||||||
|
|
||||||
event({item_description_request, ItemID}, State) ->
|
event({item_description_request, ItemID}, State) ->
|
||||||
Filename = io_lib:format("priv/item_descs/~8.16.0b.txt", [ItemID]),
|
psu_proto:send_0a11(ItemID, egs_items_db:desc(ItemID), State);
|
||||||
Desc = case filelib:is_regular(Filename) of
|
|
||||||
false -> << << X:8, 0:8 >> || X <- "Always bet on Dammy." >>;
|
|
||||||
true -> {ok, File} = file:read_file(Filename), File
|
|
||||||
end,
|
|
||||||
psu_proto:send_0a11(ItemID, Desc, State);
|
|
||||||
|
|
||||||
%% @todo A and B are unknown.
|
%% @todo A and B are unknown.
|
||||||
%% Melee uses a format similar to: AAAA--BBCCCC----DDDDDDDDEE----FF with
|
%% Melee uses a format similar to: AAAA--BBCCCC----DDDDDDDDEE----FF with
|
||||||
|
@ -19,7 +19,7 @@
|
|||||||
|
|
||||||
-module(egs_items_db).
|
-module(egs_items_db).
|
||||||
-behavior(gen_server).
|
-behavior(gen_server).
|
||||||
-export([start_link/0, stop/0, read/1, reload/0]). %% API.
|
-export([start_link/0, stop/0, desc/1, read/1, reload/0]). %% API.
|
||||||
-export([init/1, handle_call/3, handle_cast/2, handle_info/2, terminate/2, code_change/3]). %% gen_server.
|
-export([init/1, handle_call/3, handle_cast/2, handle_info/2, terminate/2, code_change/3]). %% gen_server.
|
||||||
|
|
||||||
%% Use the module name for the server's name.
|
%% Use the module name for the server's name.
|
||||||
@ -38,6 +38,10 @@ start_link() ->
|
|||||||
stop() ->
|
stop() ->
|
||||||
gen_server:call(?SERVER, stop).
|
gen_server:call(?SERVER, stop).
|
||||||
|
|
||||||
|
%% @spec desc(ItemID) -> string()
|
||||||
|
desc(ItemID) ->
|
||||||
|
gen_server:call(?SERVER, {desc, ItemID}).
|
||||||
|
|
||||||
%% @spec read(ItemID) -> term() | undefined
|
%% @spec read(ItemID) -> term() | undefined
|
||||||
read(ItemID) ->
|
read(ItemID) ->
|
||||||
gen_server:call(?SERVER, {read, ItemID}).
|
gen_server:call(?SERVER, {read, ItemID}).
|
||||||
@ -52,6 +56,14 @@ init([]) ->
|
|||||||
error_logger:info_report("egs_items_db started"),
|
error_logger:info_report("egs_items_db started"),
|
||||||
{ok, undefined}.
|
{ok, undefined}.
|
||||||
|
|
||||||
|
handle_call({desc, ItemID}, _From, State) ->
|
||||||
|
Filename = io_lib:format("priv/item_descs/~8.16.0b.txt", [ItemID]),
|
||||||
|
Desc = case filelib:is_regular(Filename) of
|
||||||
|
false -> << << X:8, 0:8 >> || X <- "Always bet on Dammy." >>;
|
||||||
|
true -> {ok, File} = file:read_file(Filename), File
|
||||||
|
end,
|
||||||
|
{reply, Desc, State};
|
||||||
|
|
||||||
handle_call({read, ItemID}, _From, State) ->
|
handle_call({read, ItemID}, _From, State) ->
|
||||||
{reply, proplists:get_value(ItemID, ?ITEMS), State};
|
{reply, proplists:get_value(ItemID, ?ITEMS), State};
|
||||||
|
|
||||||
|
Loading…
Reference in New Issue
Block a user